@3t-transform/threeteeui 0.1.69 → 0.1.70

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 (65) hide show
  1. package/dist/cjs/{index-43af0e62.js → index-4cfa8e25.js} +59 -0
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/tttx-button.cjs.entry.js +1 -1
  4. package/dist/cjs/tttx-dialog-box.cjs.entry.js +1 -1
  5. package/dist/cjs/tttx-filter.cjs.entry.js +1 -1
  6. package/dist/cjs/tttx-form.cjs.entry.js +1 -1
  7. package/dist/cjs/tttx-icon.cjs.entry.js +1 -1
  8. package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +1 -1
  9. package/dist/cjs/tttx-list.cjs.entry.js +12 -22
  10. package/dist/cjs/tttx-loading-spinner.cjs.entry.js +1 -1
  11. package/dist/cjs/tttx-qrcode.cjs.entry.js +1 -1
  12. package/dist/cjs/tttx-select-box.cjs.entry.js +2 -2
  13. package/dist/cjs/tttx-sorter.cjs.entry.js +1 -1
  14. package/dist/cjs/tttx-standalone-input.cjs.entry.js +1 -1
  15. package/dist/cjs/tttx-tag.cjs.entry.js +1 -1
  16. package/dist/cjs/tttx-toolbar.cjs.entry.js +1 -1
  17. package/dist/cjs/tttx-tree-view.cjs.entry.js +1 -1
  18. package/dist/cjs/tttx.cjs.js +2 -2
  19. package/dist/collection/components/molecules/tttx-list/tttx-list.css +21 -3
  20. package/dist/collection/components/molecules/tttx-list/tttx-list.js +13 -46
  21. package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +134 -4
  22. package/dist/collection/components/molecules/tttx-select-box/tttx-select-box.css +1 -1
  23. package/dist/components/tttx-list.js +13 -24
  24. package/dist/components/tttx-select-box.js +1 -1
  25. package/dist/esm/{index-1c711ead.js → index-6a372ea6.js} +59 -1
  26. package/dist/esm/loader.js +3 -3
  27. package/dist/esm/tttx-button.entry.js +1 -1
  28. package/dist/esm/tttx-dialog-box.entry.js +1 -1
  29. package/dist/esm/tttx-filter.entry.js +1 -1
  30. package/dist/esm/tttx-form.entry.js +1 -1
  31. package/dist/esm/tttx-icon.entry.js +1 -1
  32. package/dist/esm/tttx-keyvalue-block.entry.js +1 -1
  33. package/dist/esm/tttx-list.entry.js +12 -22
  34. package/dist/esm/tttx-loading-spinner.entry.js +1 -1
  35. package/dist/esm/tttx-qrcode.entry.js +1 -1
  36. package/dist/esm/tttx-select-box.entry.js +2 -2
  37. package/dist/esm/tttx-sorter.entry.js +1 -1
  38. package/dist/esm/tttx-standalone-input.entry.js +1 -1
  39. package/dist/esm/tttx-tag.entry.js +1 -1
  40. package/dist/esm/tttx-toolbar.entry.js +1 -1
  41. package/dist/esm/tttx-tree-view.entry.js +1 -1
  42. package/dist/esm/tttx.js +3 -3
  43. package/dist/tttx/{p-6535df53.entry.js → p-3597dea7.entry.js} +1 -1
  44. package/dist/tttx/p-3f1b6013.js +2 -0
  45. package/dist/tttx/{p-cff962bf.entry.js → p-50cdce65.entry.js} +1 -1
  46. package/dist/tttx/{p-225e6fa6.entry.js → p-5290db99.entry.js} +1 -1
  47. package/dist/tttx/{p-3c7e11d9.entry.js → p-5b7b8539.entry.js} +1 -1
  48. package/dist/tttx/{p-f80ab1d8.entry.js → p-6fe0af4e.entry.js} +1 -1
  49. package/dist/tttx/p-750cf31b.entry.js +1 -0
  50. package/dist/tttx/{p-2f066b53.entry.js → p-75c31e23.entry.js} +1 -1
  51. package/dist/tttx/{p-e6bbdae3.entry.js → p-818574fe.entry.js} +1 -1
  52. package/dist/tttx/{p-57621fdb.entry.js → p-895526aa.entry.js} +1 -1
  53. package/dist/tttx/{p-68680d65.entry.js → p-a6582ab0.entry.js} +1 -1
  54. package/dist/tttx/{p-6a40d3cc.entry.js → p-c0c022cd.entry.js} +1 -1
  55. package/dist/tttx/{p-a658e1ac.entry.js → p-c714f7c0.entry.js} +1 -1
  56. package/dist/tttx/{p-64479f02.entry.js → p-d77e74fd.entry.js} +1 -1
  57. package/dist/tttx/{p-3467c62e.entry.js → p-e55a967b.entry.js} +1 -1
  58. package/dist/tttx/{p-53fa8b4d.entry.js → p-e89b053f.entry.js} +1 -1
  59. package/dist/tttx/tttx.esm.js +1 -1
  60. package/dist/types/components/molecules/tttx-list/interfaces.d.ts +30 -1
  61. package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +0 -2
  62. package/dist/types/components.d.ts +1 -2
  63. package/package.json +1 -1
  64. package/dist/tttx/p-40c66a2e.entry.js +0 -1
  65. package/dist/tttx/p-c544551b.js +0 -2
@@ -89,10 +89,86 @@ const TemplateWorkerList = ({ data }) => `
89
89
  export const WorkerList = TemplateWorkerList.bind({});
90
90
  WorkerList.args = {
91
91
  data: [
92
+ {
93
+ key: '54c5b6fd-12d1-4794-92cb-93f4c2e1a890',
94
+ toggleable: true,
95
+ icon: 'chevron_right',
96
+ element: `
97
+ <div style="display: flex; flex-direction: row; align-items: flex-start;">
98
+ <label>
99
+ <ul style="list-style-type: none; padding: 0; margin: 0;">
100
+ <li>
101
+ <span style="padding: 8px; display: inline-flex; align-items: center;">
102
+ <a style="font-weight: 500; color: #146EB3; text-decoration: none;" href>Worker name</a>
103
+ </span>
104
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 4px;">
105
+ <span style="color: #757575;">ID:</span> <span style="color: #212121;">9125</span>
106
+ </span>
107
+ </li>
108
+ <li>
109
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
110
+ <tttx-tag text="Driller" color="#F4DFFF"></tttx-tag>
111
+ <tttx-tag text="Offshore" color="#CEF4EB"></tttx-tag>
112
+ <tttx-tag text="3t Transform" color="#DDE6FA"></tttx-tag>
113
+ </span>
114
+ </li>
115
+ <li>
116
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
117
+ <span><tttx-icon icon="school" color="gray" /></span><span><tttx-icon icon="check_circle" color="green" /></span> 80%
118
+ </span>
119
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
120
+ <span><tttx-icon icon="verified_user" color="gray" /></span><span><tttx-icon icon="warning" color="orange" /></span> 60%
121
+ </span>
122
+ </li>
123
+ </ul>
124
+ </label>
125
+ </div>
126
+ `,
127
+ rowData: '{ "name": "Worker name", "id": 9125, "groups": ["Driller", "Offshore", "3t Transform"], "compliance": 80, "competence": 60 }',
128
+ },
129
+ {
130
+ key: '54c5b6fd-12d1-4794-92cb-93f4c2e1a891',
131
+ toggleable: true,
132
+ active: true,
133
+ icon: 'chevron_right',
134
+ element: `
135
+ <div style="display: flex; flex-direction: row; align-items: flex-start;">
136
+ <label>
137
+ <ul style="list-style-type: none; padding: 0; margin: 0;">
138
+ <li>
139
+ <span style="padding: 8px; display: inline-flex; align-items: center;">
140
+ <a style="font-weight: 500; color: #146EB3; text-decoration: none;" href>Worker name</a>
141
+ </span>
142
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 4px;">
143
+ <span style="color: #757575;">ID:</span> <span style="color: #212121;">9125</span>
144
+ </span>
145
+ </li>
146
+ <li>
147
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
148
+ <tttx-tag text="Driller" color="#F4DFFF"></tttx-tag>
149
+ <tttx-tag text="Offshore" color="#CEF4EB"></tttx-tag>
150
+ <tttx-tag text="3t Transform" color="#DDE6FA"></tttx-tag>
151
+ </span>
152
+ </li>
153
+ <li>
154
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
155
+ <span><tttx-icon icon="school" color="gray" /></span><span><tttx-icon icon="check_circle" color="green" /></span> 80%
156
+ </span>
157
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
158
+ <span><tttx-icon icon="verified_user" color="gray" /></span><span><tttx-icon icon="warning" color="orange" /></span> 60%
159
+ </span>
160
+ </li>
161
+ </ul>
162
+ </label>
163
+ </div>
164
+ `,
165
+ rowData: '{ "name": "Worker name", "id": 9125, "groups": ["Driller", "Offshore", "3t Transform"], "compliance": 80, "competence": 60 }',
166
+ },
92
167
  {
93
168
  key: '54c5b6fd-12d1-4794-92cb-93f4c2e1a892',
94
169
  hasCheckbox: true,
95
170
  clickable: true,
171
+ checked: true,
96
172
  icon: 'chevron_right',
97
173
  element: `
98
174
  <div style="display: flex; flex-direction: row; align-items: flex-start;">
@@ -108,9 +184,9 @@ WorkerList.args = {
108
184
  </li>
109
185
  <li>
110
186
  <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
111
- <tttx-tag text="Driller" color="#EABFFF"></tttx-tag>
112
- <tttx-tag text="Offshore" color="#9BE8D5"></tttx-tag>
113
- <tttx-tag text="3t Transform" color="#B9CCF5"></tttx-tag>
187
+ <tttx-tag text="Driller" color="#F4DFFF"></tttx-tag>
188
+ <tttx-tag text="Offshore" color="#CEF4EB"></tttx-tag>
189
+ <tttx-tag text="3t Transform" color="#DDE6FA"></tttx-tag>
114
190
  </span>
115
191
  </li>
116
192
  <li>
@@ -128,7 +204,47 @@ WorkerList.args = {
128
204
  rowData: '{ "name": "Worker name", "id": 9125, "groups": ["Driller", "Offshore", "3t Transform"], "compliance": 80, "competence": 60 }',
129
205
  },
130
206
  {
131
- key: 'a5df3398-2bd0-4e16-83a1-b962b74dc712',
207
+ key: '54c5b6fd-12d1-4794-92cb-93f4c2e1a893',
208
+ hasCheckbox: true,
209
+ toggleable: true,
210
+ checked: true,
211
+ active: true,
212
+ icon: 'chevron_right',
213
+ element: `
214
+ <div style="display: flex; flex-direction: row; align-items: flex-start;">
215
+ <label>
216
+ <ul style="list-style-type: none; padding: 0; margin: 0;">
217
+ <li>
218
+ <span style="padding: 8px; display: inline-flex; align-items: center;">
219
+ <a style="font-weight: 500; color: #146EB3; text-decoration: none;" href>Worker name</a>
220
+ </span>
221
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 4px;">
222
+ <span style="color: #757575;">ID:</span> <span style="color: #212121;">9125</span>
223
+ </span>
224
+ </li>
225
+ <li>
226
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
227
+ <tttx-tag text="Driller" color="#F4DFFF"></tttx-tag>
228
+ <tttx-tag text="Offshore" color="#CEF4EB"></tttx-tag>
229
+ <tttx-tag text="3t Transform" color="#DDE6FA"></tttx-tag>
230
+ </span>
231
+ </li>
232
+ <li>
233
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
234
+ <span><tttx-icon icon="school" color="gray" /></span><span><tttx-icon icon="check_circle" color="green" /></span> 80%
235
+ </span>
236
+ <span style="padding: 8px; display: inline-flex; align-items: center; gap: 8px;">
237
+ <span><tttx-icon icon="verified_user" color="gray" /></span><span><tttx-icon icon="warning" color="orange" /></span> 60%
238
+ </span>
239
+ </li>
240
+ </ul>
241
+ </label>
242
+ </div>
243
+ `,
244
+ rowData: '{ "name": "Worker name", "id": 9125, "groups": ["Driller", "Offshore", "3t Transform"], "compliance": 80, "competence": 60 }',
245
+ },
246
+ {
247
+ key: '54c5b6fd-12d1-4794-92cb-93f4c2e1a894',
132
248
  clickable: true,
133
249
  icon: 'chevron_right',
134
250
  element: `
@@ -139,6 +255,20 @@ WorkerList.args = {
139
255
  <span style="color: #757575;">Awarded:</span> <span style="color: #212121;">10 Jan 2022</span>
140
256
  <span style="color: #757575;">Expiry:</span> <span style="color: #212121;">10 Jan 2023</span>
141
257
  </div>
258
+ `,
259
+ rowData: 'any data',
260
+ },
261
+ {
262
+ key: '54c5b6fd-12d1-4794-92cb-93f4c2e1a895',
263
+ icon: 'chevron_right',
264
+ element: `
265
+ <div style="display: flex; flex-direction: row; align-items: center; gap: 8px;">
266
+ <span><tttx-icon icon="check_circle" color="green" /></span>
267
+ Qualification row
268
+ <tttx-tag text="Vantage" color="#D5D5D5"></tttx-tag>
269
+ <span style="color: #757575;">Awarded:</span> <span style="color: #212121;">10 Jan 2022</span>
270
+ <span style="color: #757575;">Expiry:</span> <span style="color: #212121;">10 Jan 2023</span>
271
+ </div>
142
272
  `,
143
273
  rowData: 'any data',
144
274
  },
@@ -80,7 +80,7 @@
80
80
  cursor: pointer;
81
81
  }
82
82
  .dropdown-option:hover {
83
- background-color: #1111110D;
83
+ background-color: #1111110d;
84
84
  }
85
85
  .dropdown-option:active, .dropdown-option.selected {
86
86
  background-color: #ebfbfc;
@@ -1,8 +1,8 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Fragment } from '@stencil/core/internal/client';
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options.js';
3
3
  import { d as defineCustomElement$2 } from './tttx-icon2.js';
4
4
 
5
- const tttxListCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.clickable:active{background-color:#e6e6e6}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li:hover{background-color:#1111110D}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}";
5
+ const tttxListCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.toggleable:hover{cursor:pointer}li.item.active{background-color:rgba(17, 17, 17, 0.1)}li.item.active:hover{background-color:rgba(17, 17, 17, 0.15)}li.item.selected{background-color:#ebfbfc}li.item.selected:hover{background-color:#e0f8f9}li.item.selected.active{background-color:#ccf3f6}li.item.selected.active:hover{background-color:#bff0f3}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li:hover{background-color:rgba(17, 17, 17, 0.05)}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}";
6
6
 
7
7
  const TttxList$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
8
8
  constructor() {
@@ -39,39 +39,29 @@ const TttxList$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
39
39
  event.stopPropagation();
40
40
  if (!item.rowData)
41
41
  return;
42
- if (item.hasCheckbox) {
43
- item.checked = !item.checked;
44
- }
45
- // re-render component by updating its state
46
- this._data = [...this._data];
47
- this.rowCheckboxClick.emit({ key: item.key, name: this.name, data: item.rowData, checked: item.checked });
42
+ this.rowCheckboxClick.emit({ key: item.key, name: this.name, data: item.rowData });
48
43
  }
49
44
  onRowClickHandler(item) {
50
- if (!item.clickable || !item.rowData)
45
+ if ((!item.clickable && !item.toggleable) || !item.rowData)
51
46
  return;
52
47
  this.rowClick.emit({ key: item.key, name: this.name, data: item.rowData });
53
48
  }
54
- async setAllCheckboxes(check) {
55
- for (const data of this._data) {
56
- if (data.hasCheckbox) {
57
- data.checked = check;
58
- }
59
- }
60
- // re-render component by updating its state
61
- this._data = [...this._data];
62
- }
63
49
  renderListItem(item) {
64
50
  const cleanHTML = purify.sanitize(item.element, domSanitiserOptions);
65
- return (h("li", { class: `item ${item.clickable ? 'clickable' : ''}`, onClick: () => {
66
- this.onRowClickHandler(item);
67
- } }, item.hasCheckbox && (h("div", { class: "checkbox" }, h("tttx-icon", { icon: item.checked ? 'check_box' : 'check_box_outline_blank', color: item.checked ? 'blue' : 'grey', onClick: event => {
51
+ return (h(Fragment, null, item.hasCheckbox && (h("div", { class: "checkbox" }, h("tttx-icon", { icon: item.checked ? 'check_box' : 'check_box_outline_blank', color: item.checked ? 'blue' : 'grey', onClick: event => {
68
52
  this.onRowCheckboxHandler(event, item);
69
53
  } }))), item.element && h("span", { class: "item-content", innerHTML: cleanHTML }), item.icon && (h("span", { class: "icons" }, h("tttx-icon", { class: "align-right", icon: item.icon, color: 'black' })))));
70
54
  }
71
55
  render() {
72
56
  if (!this._data)
73
57
  return;
74
- return h("ul", { class: "list" }, this._data.map((item) => this.renderListItem(item)));
58
+ return (h("ul", { class: "list" }, this._data.map((item) => (h("li", { key: item.key, class: 'item' +
59
+ (item.clickable ? ' clickable' : '') +
60
+ (item.toggleable ? ' toggleable' : '') +
61
+ (item.checked ? ' selected' : '') +
62
+ (item.active ? ' active' : ''), onClick: () => {
63
+ this.onRowClickHandler(item);
64
+ } }, this.renderListItem(item))))));
75
65
  }
76
66
  static get watchers() { return {
77
67
  "data": ["onDataChange"]
@@ -80,8 +70,7 @@ const TttxList$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
80
70
  }, [1, "tttx-list", {
81
71
  "data": [1025],
82
72
  "name": [1],
83
- "_data": [32],
84
- "setAllCheckboxes": [64]
73
+ "_data": [32]
85
74
  }]);
86
75
  function defineCustomElement$1() {
87
76
  if (typeof customElements === "undefined") {
@@ -3,7 +3,7 @@ import { p as purify, d as domSanitiserOptions } from './domsanitiser.options.js
3
3
  import { d as defineCustomElement$3 } from './tttx-icon2.js';
4
4
  import { d as defineCustomElement$2 } from './tttx-standalone-input2.js';
5
5
 
6
- const tttxSelectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{align-items:center;gap:8px;padding:8px 8px 8px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-body{display:flex;width:inherit;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;top:42px}.dropdown-body.search{max-height:410px}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;max-height:368px}.dropdown-option{padding:8px 8px 8px 16px;cursor:pointer}.dropdown-option:hover{background-color:#1111110D}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 0 16px}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}";
6
+ const tttxSelectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{align-items:center;gap:8px;padding:8px 8px 8px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-body{display:flex;width:inherit;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;top:42px}.dropdown-body.search{max-height:410px}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;max-height:368px}.dropdown-option{padding:8px 8px 8px 16px;cursor:pointer}.dropdown-option:hover{background-color:#1111110d}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 0 16px}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}";
7
7
 
8
8
  const TttxSelectBox$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
9
9
  constructor() {
@@ -109,6 +109,10 @@ const h = (nodeName, vnodeData, ...children) => {
109
109
  }
110
110
  }
111
111
  }
112
+ if (typeof nodeName === 'function') {
113
+ // nodeName is a functional component
114
+ return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);
115
+ }
112
116
  const vnode = newVNode(nodeName, null);
113
117
  vnode.$attrs$ = vnodeData;
114
118
  if (vNodeChildren.length > 0) {
@@ -151,6 +155,59 @@ const Host = {};
151
155
  * @returns whether it's a Host node or not
152
156
  */
153
157
  const isHost = (node) => node && node.$tag$ === Host;
158
+ /**
159
+ * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom.
160
+ *
161
+ * Note that these functions convert from {@link d.VNode} to
162
+ * {@link d.ChildNode} to give functional component developers a friendly
163
+ * interface.
164
+ */
165
+ const vdomFnUtils = {
166
+ forEach: (children, cb) => children.map(convertToPublic).forEach(cb),
167
+ map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),
168
+ };
169
+ /**
170
+ * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a
171
+ * friendlier public interface (hence, 'convertToPublic').
172
+ *
173
+ * @param node the virtual DOM node to convert
174
+ * @returns a converted child node
175
+ */
176
+ const convertToPublic = (node) => ({
177
+ vattrs: node.$attrs$,
178
+ vchildren: node.$children$,
179
+ vkey: node.$key$,
180
+ vname: node.$name$,
181
+ vtag: node.$tag$,
182
+ vtext: node.$text$,
183
+ });
184
+ /**
185
+ * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in
186
+ * order to use the resulting object in the virtual DOM. The initial object was
187
+ * likely created as part of presenting a public API, so converting it back
188
+ * involved making it 'private' again (hence, `convertToPrivate`).
189
+ *
190
+ * @param node the child node to convert
191
+ * @returns a converted virtual DOM node
192
+ */
193
+ const convertToPrivate = (node) => {
194
+ if (typeof node.vtag === 'function') {
195
+ const vnodeData = Object.assign({}, node.vattrs);
196
+ if (node.vkey) {
197
+ vnodeData.key = node.vkey;
198
+ }
199
+ if (node.vname) {
200
+ vnodeData.name = node.vname;
201
+ }
202
+ return h(node.vtag, vnodeData, ...(node.vchildren || []));
203
+ }
204
+ const vnode = newVNode(node.vtag, node.vtext);
205
+ vnode.$attrs$ = node.vattrs;
206
+ vnode.$children$ = node.vchildren;
207
+ vnode.$key$ = node.vkey;
208
+ vnode.$name$ = node.vname;
209
+ return vnode;
210
+ };
154
211
  /**
155
212
  * Parse a new property value for a given property type.
156
213
  *
@@ -1443,6 +1500,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1443
1500
  // Fallback appLoad event
1444
1501
  endBootstrap();
1445
1502
  };
1503
+ const Fragment = (_, children) => children;
1446
1504
  const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
1447
1505
  if (listeners) {
1448
1506
  listeners.map(([flags, name, method]) => {
@@ -1594,4 +1652,4 @@ const flush = () => {
1594
1652
  const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1595
1653
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1596
1654
 
1597
- export { Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
1655
+ export { Fragment as F, Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-1c711ead.js';
2
- export { s as setNonce } from './index-1c711ead.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-6a372ea6.js';
2
+ export { s as setNonce } from './index-6a372ea6.js';
3
3
 
4
4
  /*
5
5
  Stencil Client Patch Esm v2.22.3 | MIT Licensed | https://stenciljs.com
@@ -11,7 +11,7 @@ const patchEsm = () => {
11
11
  const defineCustomElements = (win, options) => {
12
12
  if (typeof window === 'undefined') return Promise.resolve();
13
13
  return patchEsm().then(() => {
14
- return bootstrapLazy([["tttx-dialog-box",[[1,"tttx-dialog-box",{"data":[1025],"size":[1],"open":[1028],"elementSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-select-box",[[1,"tttx-select-box",{"optionsData":[1,"options-data"],"label":[1],"inline":[4],"placeholder":[1],"searchEnabled":[4,"search-enabled"],"open":[32],"selectedItem":[32],"searchTerm":[32]},[[0,"closeSelectBox","handleCloseSelectBox"],[0,"blur","handleBlur"]]]]],["tttx-tree-view",[[1,"tttx-tree-view",{"data":[1040],"treeData":[32]}]]],["tttx-filter",[[1,"tttx-filter",{"filterKey":[1,"filter-key"],"filterOptions":[1,"filter-options"],"showSelectAll":[4,"show-select-all"],"showSearchField":[4,"show-search-field"],"showOptionIcons":[4,"show-option-icons"],"filterButtonStyle":[1,"filter-button-style"],"filterHeader":[1,"filter-header"],"defaultFilterOptions":[1,"default-filter-options"],"popoverWidth":[1,"popover-width"],"showPopover":[32],"displayedFilterSettings":[32],"selectedFilters":[32],"filterSearchTerm":[32],"allSelected":[32]},[[0,"closeFilter","handleCloseFilter"]]]]],["tttx-list",[[1,"tttx-list",{"data":[1025],"name":[1],"_data":[32],"setAllCheckboxes":[64]}]]],["tttx-sorter",[[1,"tttx-sorter",{"sorterKey":[1,"sorter-key"],"defaultSortDirection":[1,"default-sort-direction"],"fieldOptionsData":[1,"field-options-data"],"defaultOption":[1,"default-option"],"selectedField":[32],"sortDirection":[32],"dropdownExpand":[32],"dropdownOptions":[32]},[[0,"closeSorter","handleCloseSorter"]]]]],["tttx-form",[[1,"tttx-form",{"formschema":[1032],"data":[1032],"submit":[64]}]]],["tttx-keyvalue-block",[[1,"tttx-keyvalue-block",{"keyvalues":[8],"horizontal":[4]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-qrcode",[[1,"tttx-qrcode",{"link":[1025],"size":[1026]}]]],["tttx-tag",[[1,"tttx-tag",{"text":[1],"color":[1]}]]],["tttx-toolbar",[[1,"tttx-toolbar",{"border":[4],"viewSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-icon",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconleftcolor":[1],"iconright":[1],"iconrightcolor":[1],"inputicon":[1],"inputiconcolor":[1],"inline":[4],"inputautocapitalize":[1],"inputautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-button",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"iconcolor":[1025],"design":[1]}]]]], options);
14
+ return bootstrapLazy([["tttx-dialog-box",[[1,"tttx-dialog-box",{"data":[1025],"size":[1],"open":[1028],"elementSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-select-box",[[1,"tttx-select-box",{"optionsData":[1,"options-data"],"label":[1],"inline":[4],"placeholder":[1],"searchEnabled":[4,"search-enabled"],"open":[32],"selectedItem":[32],"searchTerm":[32]},[[0,"closeSelectBox","handleCloseSelectBox"],[0,"blur","handleBlur"]]]]],["tttx-tree-view",[[1,"tttx-tree-view",{"data":[1040],"treeData":[32]}]]],["tttx-filter",[[1,"tttx-filter",{"filterKey":[1,"filter-key"],"filterOptions":[1,"filter-options"],"showSelectAll":[4,"show-select-all"],"showSearchField":[4,"show-search-field"],"showOptionIcons":[4,"show-option-icons"],"filterButtonStyle":[1,"filter-button-style"],"filterHeader":[1,"filter-header"],"defaultFilterOptions":[1,"default-filter-options"],"popoverWidth":[1,"popover-width"],"showPopover":[32],"displayedFilterSettings":[32],"selectedFilters":[32],"filterSearchTerm":[32],"allSelected":[32]},[[0,"closeFilter","handleCloseFilter"]]]]],["tttx-list",[[1,"tttx-list",{"data":[1025],"name":[1],"_data":[32]}]]],["tttx-sorter",[[1,"tttx-sorter",{"sorterKey":[1,"sorter-key"],"defaultSortDirection":[1,"default-sort-direction"],"fieldOptionsData":[1,"field-options-data"],"defaultOption":[1,"default-option"],"selectedField":[32],"sortDirection":[32],"dropdownExpand":[32],"dropdownOptions":[32]},[[0,"closeSorter","handleCloseSorter"]]]]],["tttx-form",[[1,"tttx-form",{"formschema":[1032],"data":[1032],"submit":[64]}]]],["tttx-keyvalue-block",[[1,"tttx-keyvalue-block",{"keyvalues":[8],"horizontal":[4]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-qrcode",[[1,"tttx-qrcode",{"link":[1025],"size":[1026]}]]],["tttx-tag",[[1,"tttx-tag",{"text":[1],"color":[1]}]]],["tttx-toolbar",[[1,"tttx-toolbar",{"border":[4],"viewSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-icon",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconleftcolor":[1],"iconright":[1],"iconrightcolor":[1],"inputicon":[1],"inputiconcolor":[1],"inline":[4],"inputautocapitalize":[1],"inputautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-button",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"iconcolor":[1025],"design":[1]}]]]], options);
15
15
  });
16
16
  };
17
17
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, h, H as Host } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxButtonCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}button{cursor:pointer}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #d5d5d5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:active{background:#1464a2;border:1px solid #1464a2}.borderless{background:transparent;border:none;color:#212121}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.borderless-circle{background:transparent;border:none;color:#212121;border-radius:50%}.borderless-circle:active{border:none}.borderless-circle:focus{border-color:transparent}.danger{background:#dc0000;border:1px solid #dc0000;color:white}.danger:active{background:#b00000;border:1px solid #b00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}@media (hover: hover){.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #d5d5d5}.primary:hover{background:#146eb3;border:1px solid #146eb3}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless-circle:hover{background:rgba(17, 17, 17, 0.1);border:none}.danger:hover{background:#c60000;border:1px solid #c60000}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}}:host{display:inline-block}tttx-icon{cursor:inherit}.spacingleft{margin-left:8px}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-6a372ea6.js';
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-97a33389.js';
3
3
  import './_commonjsHelpers-9943807e.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxFilterCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.filter-container{background-color:white;position:relative}.filter-container .filter-button{display:inline-flex;justify-content:center;align-items:center;font-size:14px;font-weight:400;font-family:\"Roboto\", serif;text-transform:uppercase;color:#212121;border:1px solid #d5d5d5;border-radius:4px;background:transparent;height:36px;width:95px;margin:0;padding-right:16px;cursor:pointer}@media (max-width: 475px){.filter-container .filter-button{padding-left:4px}}.filter-container .filter-button .filter-icon{padding-left:8px;padding-right:4px}.filter-container .filter-button.--list-icon{font-size:0;width:36px;height:36px;padding:0}.filter-container .filter-button.--list-icon .filter-icon{padding:0}.filter-container .filter-button.--list-icon:hover{background:#e3e3e3}.filter-container .filter-button.--table-icon{font-size:0;width:36px;height:36px;padding:0;border:none}.filter-container .filter-button.--table-icon .filter-icon{padding:0;width:24px;height:24px}.filter-container .filter-button.--table-icon:hover{background:#e3e3e3;border-radius:50%;width:36px;height:36px}.filter-container .filter-button:hover{background:#e3e3e3}.filter-container .filter-popover-container{display:flex;flex-direction:column;gap:8px;border-radius:4px;box-shadow:0px 1px 5px #1111114D;position:absolute;top:36px;left:0px;background-color:white;padding:8px 16px}.filter-container .filter-popover-container .filter-header{color:#757575;text-transform:uppercase;font-size:14px;font-weight:500;font-family:\"Roboto\", serif;padding-top:4px;padding-bottom:5px}.filter-container .filter-popover-container .filter-options-container{display:flex;flex-direction:column;gap:4px;border-top:1px solid #d5d5d5;border-bottom:1px solid #d5d5d5;padding-bottom:8px}.filter-container .filter-popover-container .filter-option{display:flex;flex-direction:row;align-items:center;min-height:36px;padding-left:8px}.filter-container .filter-popover-container .filter-option .select-all-icon{padding-right:6px}.filter-container .filter-popover-container .filter-option .checkbox-icon{padding-right:8px}.filter-container .filter-popover-container .filter-option .filter-label{padding-left:8px;padding-bottom:3px;font-size:16px;font-weight:500;font-family:\"Roboto\", serif}.filter-container .filter-popover-container .filter-option:first-child{padding-top:8px}.filter-container .filter-popover-container .filter-popover-button-container{display:flex;justify-content:flex-end;align-items:center}.filter-container .filter-popover-container .filter-popover-button-container .close-button{height:36px;width:74px;background-color:white;border:1px solid #d5d5d5;border-radius:4px;text-transform:uppercase;margin-right:8px;font-size:14px;font-weight:400;font-family:\"Roboto\", serif;color:#212121}.filter-container .filter-popover-container .filter-popover-button-container .apply-button{height:36px;width:73px;background-color:#1479c6;color:white;border-radius:4px;border:none;text-transform:uppercase;font-size:14px;font-weight:400;font-family:\"Roboto\", serif}.filter-container .filter-popover-container.--with-search-field .filter-header{border-bottom:1px solid #d5d5d5}.filter-container .filter-popover-container.--with-search-field .search-field-container{position:relative;color:#d5d5d5;height:36px}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-icon{position:absolute;top:6px;left:8px}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input{padding-left:36px;border:1px solid #d5d5d5;border-radius:4px;height:36px;width:100%;font-size:16px;font-family:\"Roboto\", serif;font-weight:500;box-sizing:border-box}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input:focus-visible,.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input:focus{outline:none;border:1px solid #1479c6}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input::placeholder{color:#9e9e9e;font-size:16px;font-family:\"Roboto\", serif;font-weight:500}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-6a372ea6.js';
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-97a33389.js';
3
3
  import './_commonjsHelpers-9943807e.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, h, H as Host } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxIconCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:inline-block;cursor:default;user-select:none}.icon-size{width:24px;height:24px}.tooltip{background:#ffffff;color:#343434;font-weight:bold;padding:8px 16px;font-size:13px;border-radius:4px;box-shadow:0 0 5px 1px rgba(0, 0, 0, 0.3);display:none}.tooltip[data-show]{display:block}.arrow,.arrow::before{position:absolute;width:8px;height:8px;background:inherit}.arrow{visibility:hidden}.arrow::before{visibility:visible;content:\"\";transform:rotate(45deg)}.tooltip[data-popper-placement^=top]>.arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.arrow{top:-4px}.tooltip[data-popper-placement^=left]>.arrow{right:-4px}.tooltip[data-popper-placement^=right]>.arrow{left:-4px}.red{color:#dc0000}.darkred{color:#A20000}.orange{color:#f59500}.blue{color:#1479c6}.green{color:#a2bb31}.gray{color:#757575}.black{color:#212121}.white{color:white}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, h, H as Host } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxKeyvalueBlockCss = ":host{display:block}dl{margin:0;padding:0;font-family:\"Roboto\", sans-serif;cursor:default}dt{font-weight:400;line-height:21px;font-size:16px}dt,dt.subTitle{color:#757575}dt.mainTitle{color:#212121}dt,dd{overflow-wrap:anywhere}dd{margin:0;font-weight:400;font-size:16px;color:#212121;line-height:21px;margin-bottom:18px}dl.horizontal{display:flex;flex-direction:row;width:100%}dl.horizontal div{flex-grow:1}@media (max-width: 769px){dl.horizontal{flex-wrap:wrap}dl.horizontal div{width:50%;max-width:50% !important}}@media (max-width: 600px){dl.horizontal div{width:100%;max-width:100% !important}}";
4
4
 
@@ -1,8 +1,8 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-6a372ea6.js';
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-97a33389.js';
3
3
  import './_commonjsHelpers-9943807e.js';
4
4
 
5
- const tttxListCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.clickable:active{background-color:#e6e6e6}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li:hover{background-color:#1111110D}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}";
5
+ const tttxListCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.toggleable:hover{cursor:pointer}li.item.active{background-color:rgba(17, 17, 17, 0.1)}li.item.active:hover{background-color:rgba(17, 17, 17, 0.15)}li.item.selected{background-color:#ebfbfc}li.item.selected:hover{background-color:#e0f8f9}li.item.selected.active{background-color:#ccf3f6}li.item.selected.active:hover{background-color:#bff0f3}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li:hover{background-color:rgba(17, 17, 17, 0.05)}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}";
6
6
 
7
7
  const TttxList = class {
8
8
  constructor(hostRef) {
@@ -37,39 +37,29 @@ const TttxList = class {
37
37
  event.stopPropagation();
38
38
  if (!item.rowData)
39
39
  return;
40
- if (item.hasCheckbox) {
41
- item.checked = !item.checked;
42
- }
43
- // re-render component by updating its state
44
- this._data = [...this._data];
45
- this.rowCheckboxClick.emit({ key: item.key, name: this.name, data: item.rowData, checked: item.checked });
40
+ this.rowCheckboxClick.emit({ key: item.key, name: this.name, data: item.rowData });
46
41
  }
47
42
  onRowClickHandler(item) {
48
- if (!item.clickable || !item.rowData)
43
+ if ((!item.clickable && !item.toggleable) || !item.rowData)
49
44
  return;
50
45
  this.rowClick.emit({ key: item.key, name: this.name, data: item.rowData });
51
46
  }
52
- async setAllCheckboxes(check) {
53
- for (const data of this._data) {
54
- if (data.hasCheckbox) {
55
- data.checked = check;
56
- }
57
- }
58
- // re-render component by updating its state
59
- this._data = [...this._data];
60
- }
61
47
  renderListItem(item) {
62
48
  const cleanHTML = purify.sanitize(item.element, domSanitiserOptions);
63
- return (h("li", { class: `item ${item.clickable ? 'clickable' : ''}`, onClick: () => {
64
- this.onRowClickHandler(item);
65
- } }, item.hasCheckbox && (h("div", { class: "checkbox" }, h("tttx-icon", { icon: item.checked ? 'check_box' : 'check_box_outline_blank', color: item.checked ? 'blue' : 'grey', onClick: event => {
49
+ return (h(Fragment, null, item.hasCheckbox && (h("div", { class: "checkbox" }, h("tttx-icon", { icon: item.checked ? 'check_box' : 'check_box_outline_blank', color: item.checked ? 'blue' : 'grey', onClick: event => {
66
50
  this.onRowCheckboxHandler(event, item);
67
51
  } }))), item.element && h("span", { class: "item-content", innerHTML: cleanHTML }), item.icon && (h("span", { class: "icons" }, h("tttx-icon", { class: "align-right", icon: item.icon, color: 'black' })))));
68
52
  }
69
53
  render() {
70
54
  if (!this._data)
71
55
  return;
72
- return h("ul", { class: "list" }, this._data.map((item) => this.renderListItem(item)));
56
+ return (h("ul", { class: "list" }, this._data.map((item) => (h("li", { key: item.key, class: 'item' +
57
+ (item.clickable ? ' clickable' : '') +
58
+ (item.toggleable ? ' toggleable' : '') +
59
+ (item.checked ? ' selected' : '') +
60
+ (item.active ? ' active' : ''), onClick: () => {
61
+ this.onRowClickHandler(item);
62
+ } }, this.renderListItem(item))))));
73
63
  }
74
64
  static get watchers() { return {
75
65
  "data": ["onDataChange"]
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-1c711ead.js';
1
+ import { r as registerInstance, h } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxLoadingSpinnerCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.loading-box{display:flex;align-items:center;justify-content:center}.loading-text{font-size:16px;font-weight:400;padding-top:10px;text-align:center}.spinner{border:solid #1479c6;border-bottom-color:#d5d5d5;border-radius:50%;position:relative;box-sizing:border-box;animation:rotation 1s linear infinite}.spinner.small{height:20px;width:20px;border-width:4px}.spinner.large{height:60px;width:60px;border-width:8px}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, g as getElement } from './index-1c711ead.js';
1
+ import { r as registerInstance, h, g as getElement } from './index-6a372ea6.js';
2
2
  import { c as createCommonjsModule } from './_commonjsHelpers-9943807e.js';
3
3
 
4
4
  var qrcode_min = createCommonjsModule(function (module, exports) {
@@ -1,8 +1,8 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-6a372ea6.js';
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-97a33389.js';
3
3
  import './_commonjsHelpers-9943807e.js';
4
4
 
5
- const tttxSelectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{align-items:center;gap:8px;padding:8px 8px 8px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-body{display:flex;width:inherit;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;top:42px}.dropdown-body.search{max-height:410px}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;max-height:368px}.dropdown-option{padding:8px 8px 8px 16px;cursor:pointer}.dropdown-option:hover{background-color:#1111110D}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 0 16px}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}";
5
+ const tttxSelectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{align-items:center;gap:8px;padding:8px 8px 8px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-body{display:flex;width:inherit;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;top:42px}.dropdown-body.search{max-height:410px}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;max-height:368px}.dropdown-option{padding:8px 8px 8px 16px;cursor:pointer}.dropdown-option:hover{background-color:#1111110d}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 0 16px}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}";
6
6
 
7
7
  const TttxSelectBox = class {
8
8
  constructor(hostRef) {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxSorterCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.sorter-container{display:flex;flex-direction:row;position:relative;border:1px solid #d5d5d5;border-radius:4px;font-weight:400;box-sizing:border-box;height:36px;cursor:pointer;width:220px}@media (max-width: 475px){.sorter-container{width:68px}}.sorter-container .arrow-toggle-button{display:inline-flex;justify-content:center;align-items:center;flex-direction:column;background-color:white;border:none;border-bottom-left-radius:4px;border-top-left-radius:4px}@media (max-width: 475px){.sorter-container .arrow-toggle-button{padding-right:0px;padding-left:8px}}.sorter-container .arrow-toggle-button .hydrated{display:flex;justify-content:center;align-items:center;cursor:pointer}.sorter-container .arrow-toggle-button span{display:block;margin:auto;line-height:16px}.sorter-container .arrow-toggle-button .material-symbols-rounded{color:#212121}.sorter-container .dropdown-selector{display:inline-flex;position:relative;flex-grow:1}.sorter-container .dropdown-selector .dropdown-selector-button{display:inline-flex;flex-direction:row;gap:4px;padding-right:4px;align-items:center;color:#212121;width:100%}@media (max-width: 475px){.sorter-container .dropdown-selector .dropdown-selector-button .dropdown-selector-text{display:none}}.sorter-container .dropdown-selector .dropdown-selector-chevron{display:inline-flex;margin-left:auto;right:0;top:0;flex-direction:row;align-items:center;height:36px}.sorter-container .dropdown-selector .dropdown-selector-chevron .hydrated{height:24px;cursor:pointer}@media (max-width: 475px){.sorter-container .dropdown-selector .dropdown-selector-chevron{padding-right:2px}}.sorter-container .dropdown-options-list{position:absolute;top:36px;left:0;z-index:1;width:220px;line-height:21px;font-size:16px;border-radius:4px;padding-top:8px;padding-bottom:7px;box-shadow:0px 1px 5px #1111114D;box-sizing:border-box;background-color:white}@media (max-width: 475px){.sorter-container .dropdown-options-list{width:220px;padding-top:8px}}.sorter-container .dropdown-options-list .dropdown-option{padding:8px 16px;font-size:16px;line-height:21px}.sorter-container .dropdown-options-list .dropdown-option:hover,.sorter-container .dropdown-options-list .dropdown-option:focus{background-color:#ebfbfc}.sorter-container.--expanded{border-color:#1579c6}@media (max-width: 475px){.sorter-container.--expanded{border:none}}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxStandaloneInputCss = ".material-symbols-rounded.sc-tttx-standalone-input{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded.sc-tttx-standalone-input{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded.sc-tttx-standalone-input{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left.sc-tttx-standalone-input,.icon-right.sc-tttx-standalone-input{flex-basis:24px}.icon-left.sc-tttx-standalone-input span.sc-tttx-standalone-input,.icon-right.sc-tttx-standalone-input span.sc-tttx-standalone-input{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left.sc-tttx-standalone-input span.sc-tttx-standalone-input{margin-left:4px}.icon-right.sc-tttx-standalone-input span.sc-tttx-standalone-input{margin-right:4px}.icon-right.sc-tttx-standalone-input{margin-top:5px}.icon-left.sc-tttx-standalone-input{margin-top:5px;margin-left:4px}.iconleft.sc-tttx-standalone-input .input.sc-tttx-standalone-input{padding-left:4px}.iconright.sc-tttx-standalone-input .input.sc-tttx-standalone-input{padding-right:4px}.input-icon.sc-tttx-standalone-input{position:absolute;margin-top:9px;margin-left:4px}.errormsg.sc-tttx-standalone-input{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;line-height:16px;border-radius:none;z-index:2;color:#dc0000}.errormsg.sc-tttx-standalone-input .validationicon.sc-tttx-standalone-input{width:16px;height:16px;font-size:16px;line-height:19px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger.sc-tttx-standalone-input{color:#dc0000}.optional.sc-tttx-standalone-input{color:#757575;font-weight:normal}label.inputBlock.sc-tttx-standalone-input{display:block;position:relative;line-height:21px}label.inputInline.sc-tttx-standalone-input{display:flex;white-space:nowrap;align-items:center}label.inputInline.sc-tttx-standalone-input .input-container.sc-tttx-standalone-input{margin:0 4px;width:100%;display:flex;align-items:center;gap:4px;position:relative}label.sc-tttx-standalone-input{font-weight:500;font-size:16px;line-height:19px;margin-bottom:16px}input.sc-tttx-standalone-input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;line-height:19px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date].sc-tttx-standalone-input{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}@media (max-width: 600px){input[type=date].sc-tttx-standalone-input{padding-top:6px}}input.invalid.sc-tttx-standalone-input:invalid,input.standalone.invalid.sc-tttx-standalone-input{border:1px solid #dc0000}.input-icon.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding:0 32px}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input{position:relative;font-size:14px;line-height:16px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center;margin-top:4px}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input:not(.visible){display:none}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input span.sc-tttx-standalone-input{color:#dc0000;font-size:16px;margin-right:4px}input.invalid.sc-tttx-standalone-input:invalid~.errorBubble.sc-tttx-standalone-input{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000}input.sc-tttx-standalone-input:focus{border-color:#1479c6}input.sc-tttx-standalone-input:focus-visible{outline:none}.secondarylabel.sc-tttx-standalone-input{color:#757575;font-size:14px;line-height:16px;font-weight:normal;display:flex;margin-top:4px}label.inputBlock.readonly.sc-tttx-standalone-input{pointer-events:none;user-select:none;color:gray}input[readonly].sc-tttx-standalone-input{cursor:default;pointer-events:none;user-select:none;color:gray}.sc-tttx-standalone-input-h{display:block}.input-container.sc-tttx-standalone-input{position:relative}#icon-left.sc-tttx-standalone-input{position:absolute;left:8px;top:10px}#icon-left.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding-left:36px}#icon-right.sc-tttx-standalone-input{position:absolute;right:8px;top:10px}#icon-right.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding-right:36px}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, h, H as Host } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxTagCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}button{cursor:pointer}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #d5d5d5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:active{background:#1464a2;border:1px solid #1464a2}.borderless{background:transparent;border:none;color:#212121}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.borderless-circle{background:transparent;border:none;color:#212121;border-radius:50%}.borderless-circle:active{border:none}.borderless-circle:focus{border-color:transparent}.danger{background:#dc0000;border:1px solid #dc0000;color:white}.danger:active{background:#b00000;border:1px solid #b00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}@media (hover: hover){.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #d5d5d5}.primary:hover{background:#146eb3;border:1px solid #146eb3}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless-circle:hover{background:rgba(17, 17, 17, 0.1);border:none}.danger:hover{background:#c60000;border:1px solid #c60000}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}}:host{display:inline-block}.tag{border-radius:20px;padding:4px;font-family:\"Roboto\", sans-serif;font-size:14px;font-weight:400}.tag span{margin-left:4px;margin-right:4px;color:#212121}.icon{height:18px;width:18px;font-weight:400}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-1c711ead.js';
1
+ import { r as registerInstance, h, H as Host } from './index-6a372ea6.js';
2
2
 
3
3
  const tttxToolbarCss = ".container{display:flex;align-items:flex-end;row-gap:8px;padding:8px 0;flex-wrap:wrap}.container.bordered{border-bottom:1px solid #d5d5d5}.desktop ::slotted([slot=before]){flex:1 1 0px}.desktop ::slotted([slot=center]){flex:0 1 fit-content}.desktop ::slotted([slot=after]){flex:1 1 0px}::slotted([slot=before]){display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}::slotted([slot=center]){display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;gap:8px}::slotted([slot=after]){display:flex;justify-content:end;align-items:flex-end;flex-wrap:wrap;gap:8px}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-1c711ead.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-6a372ea6.js';
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-97a33389.js';
3
3
  import './_commonjsHelpers-9943807e.js';
4
4