@genexus/genexus-ide-ui 0.0.56 → 0.0.57

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 (135) hide show
  1. package/dist/cjs/ch-checkbox_4.cjs.entry.js +41 -27
  2. package/dist/cjs/{ch-grid-action-refresh_6.cjs.entry.js → ch-grid-action-refresh_7.cjs.entry.js} +168 -4
  3. package/dist/cjs/ch-icon_2.cjs.entry.js +1 -0
  4. package/dist/cjs/ch-suggest_4.cjs.entry.js +6 -2
  5. package/dist/cjs/ch-test-tree-x.cjs.entry.js +57 -32
  6. package/dist/cjs/config-082c7c76.js +9 -0
  7. package/dist/cjs/{form-a22de8f3.js → form-a2de5b1c.js} +14 -0
  8. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  9. package/dist/cjs/gx-grid-chameleon.cjs.entry.js +21 -3
  10. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +10 -9
  11. package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -1
  12. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -2
  13. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +9 -4
  14. package/dist/cjs/gxg-form-checkbox-group.cjs.entry.js +1 -1
  15. package/dist/cjs/gxg-form-checkbox.cjs.entry.js +2 -2
  16. package/dist/cjs/gxg-form-radio-group.cjs.entry.js +1 -1
  17. package/dist/cjs/gxg-form-text.cjs.entry.js +19 -4
  18. package/dist/cjs/gxg-form-textarea.cjs.entry.js +8 -4
  19. package/dist/cjs/gxg-label_2.cjs.entry.js +27 -2
  20. package/dist/cjs/gxg-list-box_2.cjs.entry.js +2 -2
  21. package/dist/cjs/gxg-select.cjs.entry.js +1 -1
  22. package/dist/cjs/gxg-test.cjs.entry.js +1 -16
  23. package/dist/cjs/gxg-tree-view.cjs.entry.js +81 -40
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/common/config.js +5 -0
  26. package/dist/collection/components/new-kb/new-kb.js +10 -9
  27. package/dist/collection/components/new-object/new-object.js +2 -1
  28. package/dist/collection/components/share-kb/share-kb.js +3 -2
  29. package/dist/components/ch-paginator-pages.js +1 -171
  30. package/dist/{esm/ch-paginator-pages.entry.js → components/ch-paginator-pages2.js} +29 -8
  31. package/dist/components/ch-paginator2.js +18 -4
  32. package/dist/components/ch-suggest2.js +5 -1
  33. package/dist/components/ch-test-tree-x.js +63 -35
  34. package/dist/components/checkbox.js +1 -1
  35. package/dist/components/combo-box.js +10 -4
  36. package/dist/components/config.js +7 -0
  37. package/dist/components/form-checkbox.js +1 -1
  38. package/dist/components/form-text.js +20 -4
  39. package/dist/components/form-textarea.js +9 -4
  40. package/dist/components/form.js +14 -1
  41. package/dist/components/gx-grid-chameleon.js +52 -28
  42. package/dist/components/gx-ide-new-kb.js +10 -9
  43. package/dist/components/gx-ide-new-object.js +2 -1
  44. package/dist/components/gx-ide-share-kb.js +3 -2
  45. package/dist/components/gxg-test.js +25 -22
  46. package/dist/components/gxg-tree-view.js +90 -44
  47. package/dist/components/icon2.js +1 -0
  48. package/dist/components/list-box.js +1 -1
  49. package/dist/components/suggest.js +1 -1
  50. package/dist/components/tooltip.js +30 -2
  51. package/dist/components/tree-x-list-item.js +25 -10
  52. package/dist/components/tree-x-list.js +2 -8
  53. package/dist/components/tree-x.js +16 -13
  54. package/dist/esm/ch-checkbox_4.entry.js +42 -28
  55. package/dist/esm/{ch-grid-action-refresh_6.entry.js → ch-grid-action-refresh_7.entry.js} +168 -5
  56. package/dist/esm/ch-icon_2.entry.js +1 -0
  57. package/dist/esm/ch-suggest_4.entry.js +6 -2
  58. package/dist/esm/ch-test-tree-x.entry.js +57 -32
  59. package/dist/esm/config-94445cc2.js +7 -0
  60. package/dist/esm/{form-5e68671c.js → form-9c41f579.js} +14 -1
  61. package/dist/esm/genexus-ide-ui.js +1 -1
  62. package/dist/esm/gx-grid-chameleon.entry.js +21 -3
  63. package/dist/esm/gx-ide-new-kb.entry.js +10 -9
  64. package/dist/esm/gx-ide-new-object.entry.js +2 -1
  65. package/dist/esm/gx-ide-share-kb.entry.js +3 -2
  66. package/dist/esm/gxg-combo-box_2.entry.js +9 -4
  67. package/dist/esm/gxg-form-checkbox-group.entry.js +1 -1
  68. package/dist/esm/gxg-form-checkbox.entry.js +2 -2
  69. package/dist/esm/gxg-form-radio-group.entry.js +1 -1
  70. package/dist/esm/gxg-form-text.entry.js +19 -4
  71. package/dist/esm/gxg-form-textarea.entry.js +8 -4
  72. package/dist/esm/gxg-label_2.entry.js +28 -3
  73. package/dist/esm/gxg-list-box_2.entry.js +2 -2
  74. package/dist/esm/gxg-select.entry.js +1 -1
  75. package/dist/esm/gxg-test.entry.js +1 -16
  76. package/dist/esm/gxg-tree-view.entry.js +81 -40
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -2
  79. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  80. package/dist/genexus-ide-ui/icon-assets/gemini-tools/error.svg +1 -1
  81. package/dist/genexus-ide-ui/icon-assets/gemini-tools/success.svg +1 -1
  82. package/dist/genexus-ide-ui/icon-assets/gemini-tools/warning.svg +1 -1
  83. package/dist/genexus-ide-ui/{p-afe9515e.entry.js → p-0268cc45.entry.js} +1 -1
  84. package/dist/genexus-ide-ui/p-0aa11d6f.entry.js +1 -0
  85. package/dist/genexus-ide-ui/p-0f4fe7ad.js +1 -0
  86. package/dist/genexus-ide-ui/{p-a440a73f.entry.js → p-1294d220.entry.js} +1 -1
  87. package/dist/genexus-ide-ui/p-1f3a81e3.entry.js +1 -0
  88. package/dist/genexus-ide-ui/{p-4eaffd02.entry.js → p-2096031c.entry.js} +1 -1
  89. package/dist/genexus-ide-ui/{p-f3a1dc7c.entry.js → p-2537b4d6.entry.js} +1 -1
  90. package/dist/genexus-ide-ui/p-3657924a.entry.js +1 -0
  91. package/dist/genexus-ide-ui/p-3ec2f036.entry.js +1 -0
  92. package/dist/genexus-ide-ui/p-4923cffa.entry.js +1 -0
  93. package/dist/genexus-ide-ui/p-4e81926d.entry.js +1 -0
  94. package/dist/genexus-ide-ui/p-5669baf5.entry.js +1 -0
  95. package/dist/genexus-ide-ui/p-60b2bd2f.entry.js +1 -0
  96. package/dist/genexus-ide-ui/{p-e586d05e.entry.js → p-875e5979.entry.js} +1 -1
  97. package/dist/genexus-ide-ui/p-9e428123.entry.js +1 -0
  98. package/dist/genexus-ide-ui/p-a8b8baf9.entry.js +1 -0
  99. package/dist/genexus-ide-ui/p-dd2e0590.entry.js +1 -0
  100. package/dist/genexus-ide-ui/{p-5cb871e3.entry.js → p-ebcdef37.entry.js} +1 -1
  101. package/dist/genexus-ide-ui/p-ed5cf480.entry.js +1 -0
  102. package/dist/genexus-ide-ui/p-f1ff6b48.entry.js +1 -0
  103. package/dist/genexus-ide-ui/p-f82f25e2.js +1 -0
  104. package/dist/genexus-ide-ui/p-f9f1d95d.entry.js +1 -0
  105. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +3 -3
  106. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +1 -47
  107. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x/tree-x.css +2 -2
  108. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list-item/tree-x-list-item.css +5 -3
  109. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css +5 -0
  110. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-checkbox/form-checkbox.css +18 -0
  111. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-text/form-text.css +37 -0
  112. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +22 -0
  113. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box/list-box.css +18 -0
  114. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +18 -0
  115. package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +47 -3
  116. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +10 -1
  117. package/dist/types/common/config.d.ts +3 -0
  118. package/package.json +3 -3
  119. package/dist/cjs/ch-paginator-pages.cjs.entry.js +0 -156
  120. package/dist/genexus-ide-ui/p-01406cbc.js +0 -1
  121. package/dist/genexus-ide-ui/p-03efca69.entry.js +0 -1
  122. package/dist/genexus-ide-ui/p-1d7c22d5.entry.js +0 -1
  123. package/dist/genexus-ide-ui/p-395a65de.entry.js +0 -1
  124. package/dist/genexus-ide-ui/p-3b4fca51.entry.js +0 -1
  125. package/dist/genexus-ide-ui/p-447c3a31.entry.js +0 -1
  126. package/dist/genexus-ide-ui/p-58f882c6.entry.js +0 -1
  127. package/dist/genexus-ide-ui/p-60bea19c.entry.js +0 -1
  128. package/dist/genexus-ide-ui/p-64cbe277.entry.js +0 -1
  129. package/dist/genexus-ide-ui/p-9a6cb543.entry.js +0 -1
  130. package/dist/genexus-ide-ui/p-a2fa3132.entry.js +0 -1
  131. package/dist/genexus-ide-ui/p-a708db45.entry.js +0 -1
  132. package/dist/genexus-ide-ui/p-c0edbeb5.entry.js +0 -1
  133. package/dist/genexus-ide-ui/p-cd5482fa.entry.js +0 -1
  134. package/dist/genexus-ide-ui/p-d312fe25.entry.js +0 -1
  135. package/dist/genexus-ide-ui/p-e6ae0460.entry.js +0 -1
@@ -149,10 +149,24 @@ const ChPaginator = class {
149
149
  }
150
150
  loadElements() {
151
151
  this.elPages = this.el.querySelector("ch-paginator-pages");
152
- this.elFirst = this.el.querySelector("ch-paginator-navigate[type='first']");
153
- this.elPrevious = this.el.querySelector("ch-paginator-navigate[type='previous']");
154
- this.elNext = this.el.querySelector("ch-paginator-navigate[type='next']");
155
- this.elLast = this.el.querySelector("ch-paginator-navigate[type='last']");
152
+ this.el
153
+ .querySelectorAll("ch-paginator-navigate")
154
+ .forEach((el) => {
155
+ switch (el.type) {
156
+ case "first":
157
+ this.elFirst = el;
158
+ break;
159
+ case "previous":
160
+ this.elPrevious = el;
161
+ break;
162
+ case "next":
163
+ this.elNext = el;
164
+ break;
165
+ case "last":
166
+ this.elLast = el;
167
+ break;
168
+ }
169
+ });
156
170
  }
157
171
  render() {
158
172
  if (this.elPages) {
@@ -202,6 +216,155 @@ const ChPaginatorNavigate = class {
202
216
  };
203
217
  ChPaginatorNavigate.style = chPaginatorNavigateCss;
204
218
 
219
+ const chPaginatorPagesCss = "button{all:unset}.pages{display:flex;align-items:center;list-style-type:none;margin:0;padding:0}";
220
+
221
+ const ChPaginatorPages = class {
222
+ constructor(hostRef) {
223
+ registerInstance(this, hostRef);
224
+ this.pageChanged = createEvent(this, "pageChanged", 7);
225
+ /**
226
+ * The active page number.
227
+ */
228
+ this.page = 1;
229
+ /**
230
+ * The total number of pages.
231
+ */
232
+ this.totalPages = 1;
233
+ /**
234
+ * The maximum number of items to display in the pagination.
235
+ */
236
+ this.maxSize = 9;
237
+ /**
238
+ * Flag to render the first and last pages.
239
+ */
240
+ this.renderFirstLastPages = true;
241
+ /**
242
+ * The text to display for the dots.
243
+ */
244
+ this.textDots = "...";
245
+ this.clickHandler = (eventInfo) => {
246
+ const button = eventInfo.target;
247
+ this.page = parseInt(button.value);
248
+ };
249
+ }
250
+ pageHandler() {
251
+ this.pageChanged.emit({ page: this.page });
252
+ }
253
+ maxSizeHandler() {
254
+ this.validateMaxSize();
255
+ }
256
+ renderFirstLastPagesHandler() {
257
+ this.validateMaxSize();
258
+ }
259
+ componentDidUpdate() {
260
+ if (document.activeElement === this.el) {
261
+ this.buttonActive.focus();
262
+ }
263
+ }
264
+ keyDownHandler(eventInfo) {
265
+ switch (eventInfo.key) {
266
+ case "ArrowLeft":
267
+ this.page = Math.max(this.page - 1, 1);
268
+ break;
269
+ case "ArrowRight":
270
+ this.page = Math.min(this.page + 1, this.totalPages);
271
+ break;
272
+ }
273
+ }
274
+ focusHandler() {
275
+ this.buttonActive.focus();
276
+ }
277
+ getItems() {
278
+ const padLeft = Math.ceil((this.maxSize - 1) / 2);
279
+ const padRight = Math.floor((this.maxSize - 1) / 2);
280
+ let fillLeft, fillStart;
281
+ let fillRight, fillEnd;
282
+ if (this.maxSize === 0 || this.maxSize >= this.totalPages) {
283
+ fillStart = this.fillStart(false);
284
+ fillLeft = this.page - 1;
285
+ fillRight = this.totalPages - this.page;
286
+ fillEnd = this.fillEnd(false);
287
+ }
288
+ else if (this.page <= padLeft && this.page < this.totalPages - padRight) {
289
+ fillStart = this.fillStart(false);
290
+ fillLeft = this.page - 1;
291
+ fillEnd = this.fillEnd(true);
292
+ fillRight = padRight - fillEnd.length + (padLeft - fillLeft);
293
+ }
294
+ else if (this.page > padLeft && this.page < this.totalPages - padRight) {
295
+ fillStart = this.fillStart(true);
296
+ fillLeft = padLeft - fillStart.length;
297
+ fillEnd = this.fillEnd(true);
298
+ fillRight = padRight - fillEnd.length;
299
+ }
300
+ else if (this.page > padLeft && this.page >= this.totalPages - padRight) {
301
+ fillEnd = this.fillEnd(false);
302
+ fillRight = this.totalPages - this.page;
303
+ fillStart = this.fillStart(true);
304
+ fillLeft = padLeft - fillStart.length + padRight - fillRight;
305
+ }
306
+ const items = fillStart
307
+ .concat(this.getRangeItems(this.page - fillLeft, this.page - 1))
308
+ .concat([this.page])
309
+ .concat(this.getRangeItems(this.page + 1, this.page + fillRight))
310
+ .concat(fillEnd);
311
+ return {
312
+ items,
313
+ activeIndex: fillStart.length + fillLeft
314
+ };
315
+ }
316
+ fillStart(render) {
317
+ if (render) {
318
+ return this.renderFirstLastPages ? [1, this.textDots] : [this.textDots];
319
+ }
320
+ else {
321
+ return [];
322
+ }
323
+ }
324
+ fillEnd(render) {
325
+ if (render) {
326
+ return this.renderFirstLastPages
327
+ ? [this.textDots, this.totalPages]
328
+ : [this.textDots];
329
+ }
330
+ else {
331
+ return [];
332
+ }
333
+ }
334
+ getRangeItems(start, end) {
335
+ return Array.from({ length: end - start + 1 }, (_, i) => start + i);
336
+ }
337
+ validateMaxSize() {
338
+ if (this.maxSize > 0) {
339
+ if (!this.renderFirstLastPages && this.maxSize < 3) {
340
+ this.maxSize = 3;
341
+ }
342
+ else if (this.renderFirstLastPages && this.maxSize < 5) {
343
+ this.maxSize = 5;
344
+ }
345
+ }
346
+ }
347
+ render() {
348
+ const { items, activeIndex } = this.getItems();
349
+ return (h("ol", { part: "pages", class: "pages" }, items.map((item, i) => {
350
+ if (typeof item === "number") {
351
+ return (h("li", null, h("button", { part: `page button ${i === activeIndex ? "active" : ""}`, value: item, onClick: this.clickHandler, ref: el => (this.buttonActive =
352
+ i === activeIndex ? el : this.buttonActive) }, item)));
353
+ }
354
+ else {
355
+ return (h("li", null, h("button", { part: "page button dots", disabled: true }, item)));
356
+ }
357
+ })));
358
+ }
359
+ get el() { return getElement(this); }
360
+ static get watchers() { return {
361
+ "page": ["pageHandler"],
362
+ "maxSize": ["maxSizeHandler"],
363
+ "renderFirstLastPages": ["renderFirstLastPagesHandler"]
364
+ }; }
365
+ };
366
+ ChPaginatorPages.style = chPaginatorPagesCss;
367
+
205
368
  var GxControlType;
206
369
  (function (GxControlType) {
207
370
  GxControlType[GxControlType["EDIT"] = 1] = "EDIT";
@@ -353,4 +516,4 @@ const GridChameleonColumnFilter = class {
353
516
  };
354
517
  GridChameleonColumnFilter.style = gxGridChameleonColumnFilterCss;
355
518
 
356
- export { ChGridActionRefresh as ch_grid_action_refresh, ChGridActionSettings as ch_grid_action_settings, ChGridActionbar as ch_grid_actionbar, ChPaginator as ch_paginator, ChPaginatorNavigate as ch_paginator_navigate, GridChameleonColumnFilter as gx_grid_chameleon_column_filter };
519
+ export { ChGridActionRefresh as ch_grid_action_refresh, ChGridActionSettings as ch_grid_action_settings, ChGridActionbar as ch_grid_actionbar, ChPaginator as ch_paginator, ChPaginatorNavigate as ch_paginator_navigate, ChPaginatorPages as ch_paginator_pages, GridChameleonColumnFilter as gx_grid_chameleon_column_filter };
@@ -121,6 +121,7 @@ const COLOR_MAPPINGS = {
121
121
  error: "color-error-dark",
122
122
  negative: "color-on-primary",
123
123
  onbackground: "color-on-background",
124
+ indeterminate: "color-primary-active",
124
125
  "primary-enabled": "color-primary-enabled",
125
126
  "primary-active": "color-primary-active",
126
127
  "primary-hover": "color-primary-hover",
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-0da01575.js';
2
2
  import { s as state } from './store-c2650ca5.js';
3
- import { a as formMessageLogic } from './form-5e68671c.js';
3
+ import { a as formMessageLogic } from './form-9c41f579.js';
4
4
  import { f as formClasses, c as commonClassesNames } from './classesNames-6cd8fadb.js';
5
5
 
6
6
  const chSuggestCss = "*,::after,::before{box-sizing:border-box}:host{--window-max-height:none;--window-gap:50px}.main-wrapper{display:block}.label-input-wrapper{display:flex}.label-input-wrapper .input{flex:1}:host([label-position=start]) .label-input-wrapper{flex-direction:row}:host([label-position=above]) .label-input-wrapper{flex-direction:column}.input{background-color:unset;border:none;color:inherit;font:inherit;margin:0;padding:0;outline:0}.ch-window-container{position:relative}ch-window::part(window){width:100%;max-height:calc(var(--window-max-height) - var(--window-gap));overflow-y:auto}";
@@ -11,6 +11,7 @@ const ChSuggest = class {
11
11
  constructor(hostRef) {
12
12
  registerInstance(this, hostRef);
13
13
  this.valueChanged = createEvent(this, "valueChanged", 7);
14
+ this.selectionChanged = createEvent(this, "selectionChanged", 7);
14
15
  this.keyEventsDictionary = {
15
16
  ArrowDown: (e) => {
16
17
  const newFocusedItem = this.getNewFocusedItem(e.currentFocusedItem, ARROW_DOWN$1);
@@ -171,8 +172,10 @@ const ChSuggest = class {
171
172
  // 6.COMPONENT LIFECYCLE EVENTS //
172
173
  // 7.LISTENERS //
173
174
  itemSelectedHandler(event) {
175
+ event.stopPropagation();
174
176
  this.value = event.detail.value;
175
177
  this.closeWindow();
178
+ this.selectionChanged.emit(event.detail);
176
179
  }
177
180
  focusChangeAttemptHandler(event) {
178
181
  const keyEventHandler = this.keyEventsDictionary[event.detail.code];
@@ -195,6 +198,7 @@ const ChSuggest = class {
195
198
  windowClosedHandler() {
196
199
  this.textInput.focus();
197
200
  this.windowHidden = true;
201
+ this.el.innerHTML = "";
198
202
  }
199
203
  // 9.PUBLIC METHODS API //
200
204
  /**
@@ -311,7 +315,7 @@ const ChSuggestListItem = class {
311
315
  };
312
316
  ChSuggestListItem.style = chSuggestListItemCss;
313
317
 
314
- const stylesCss = "@charset \"UTF-8\";:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host(.gxg-validation--warning) .form-element{border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus{outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-warning-dark)}:host(.gxg-validation--error) .form-element{border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus{outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-error-dark)}:host(.gxg-validation--success) .form-element{border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus{outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-success-dark)}ch-suggest{font-family:var(--font-family-primary);font-size:var(--font-size-lg);color:var(--color-on-background);}ch-suggest::-webkit-scrollbar{width:6px;height:6px}ch-suggest::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest ::-webkit-scrollbar{width:6px;height:6px}ch-suggest ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(label){font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;display:flex;align-items:center;cursor:default;font-size:inherit}ch-suggest[label-position=start]::part(label){margin-inline-end:var(--gxg-label-margin-horizontal)}ch-suggest[label-position=above]::part(label){margin-block-end:var(--gxg-label-margin-vertical)}ch-suggest::part(input){height:var(--spacing-comp-05);border:var(--border-width-sm) solid var(--gxg-border-color--regular);padding:var(--spacing-comp-01) var(--spacing-comp-02);box-sizing:border-box;background-color:var(--color-background)}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(header){display:block;padding-block-end:var(--spacing-comp-02);display:flex;justify-content:flex-end}ch-suggest::part(close-button){height:var(--spacing-comp-05);width:var(--spacing-comp-05);background-color:var(--color-background);color:var(--color-primary-hover);border:1px solid var(--color-primary-hover);box-sizing:border-box;cursor:pointer;display:block}ch-suggest::part(close-button):hover{background-color:var(--color-primary-hover-opacity-01)}ch-suggest::part(close-button)::after{content:\"✖\";width:100%;display:block;line-height:24px;text-align:center}ch-suggest::part(close-button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(dropdown){background-color:var(--color-background);margin-top:var(--spacing-comp-01);padding:var(--spacing-comp-02);box-shadow:var(--box-shadow-02);}ch-suggest::part(dropdown)::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown)::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(dropdown) ::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown) ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.messages-wrapper{margin-top:var(--spacing-comp-02);display:flex;gap:var(--spacing-comp-01);flex-direction:column}gxg-suggest.gxg-validation--success ch-suggest::part(input){outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--success ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input){outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input){outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-error-dark)}gxg-suggest.gxg--disabled ch-suggest{pointer-events:none}gxg-suggest.gxg--disabled ch-suggest::part(input){background-color:var(--gray-01);color:var(--color-on-disabled)}gxg-suggest[ellipsis]:not([ellipsis=false]) ch-suggest-list-item::part(content-wrapper){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}ch-suggest-list{margin-block-start:var(--spacing-comp-02);font-family:inherit;border:var(--border-width-sm) solid var(--gxg-border-color--regular)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list:last-child{margin-block-end:0}ch-suggest-list::part(title){text-transform:uppercase;font-weight:var(--font-weight-semibold);margin:var(--spacing-comp-01) 0 0 0;padding:var(--spacing-comp-01) var(--spacing-comp-02)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list+ch-suggest-list{margin-block-start:0;border-block-start:0}ch-suggest-list+ch-suggest-list::part(title){margin-block-start:0}ch-suggest-list-item{}ch-suggest-list-item::part(button){padding:var(--spacing-comp-01) var(--spacing-comp-02);align-items:center;gap:var(--spacing-comp-01);box-sizing:border-box}ch-suggest-list-item::part(button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest-list-item::part(description)::before{content:\" - \"}ch-suggest-list-item gxg-icon::part(ch-icon){--icon-size:16px;margin-right:2px}ch-suggest-list-item:hover{background-color:var(--gxg-background-color--hover)}";
318
+ const stylesCss = "@charset \"UTF-8\";:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host(.gxg-validation--warning) .form-element{border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus{outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-warning-dark)}:host(.gxg-validation--error) .form-element{border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus{outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-error-dark)}:host(.gxg-validation--success) .form-element{border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus{outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-success-dark)}.tooltip-outer-wrapper{display:grid;grid-template-columns:0fr;transition:grid-template-columns var(--timing-02)}:host(.tooltip--visible) .tooltip-outer-wrapper{grid-template-columns:1fr}.tooltip-inner-wrapper gxg-icon{display:flex;position:relative !important;top:0 !important;transform:none !important}ch-suggest{font-family:var(--font-family-primary);font-size:var(--font-size-lg);color:var(--color-on-background);}ch-suggest::-webkit-scrollbar{width:6px;height:6px}ch-suggest::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest ::-webkit-scrollbar{width:6px;height:6px}ch-suggest ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(label){font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;display:flex;align-items:center;cursor:default;font-size:inherit}ch-suggest[label-position=start]::part(label){margin-inline-end:var(--gxg-label-margin-horizontal)}ch-suggest[label-position=above]::part(label){margin-block-end:var(--gxg-label-margin-vertical)}ch-suggest::part(input){height:var(--spacing-comp-05);border:var(--border-width-sm) solid var(--gxg-border-color--regular);padding:var(--spacing-comp-01) var(--spacing-comp-02);box-sizing:border-box;background-color:var(--color-background)}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(header){display:block;padding-block-end:var(--spacing-comp-02);display:flex;justify-content:flex-end}ch-suggest::part(close-button){height:var(--spacing-comp-05);width:var(--spacing-comp-05);background-color:var(--color-background);color:var(--color-primary-hover);border:1px solid var(--color-primary-hover);box-sizing:border-box;cursor:pointer;display:block}ch-suggest::part(close-button):hover{background-color:var(--color-primary-hover-opacity-01)}ch-suggest::part(close-button)::after{content:\"✖\";width:100%;display:block;line-height:24px;text-align:center}ch-suggest::part(close-button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(dropdown){background-color:var(--color-background);margin-top:var(--spacing-comp-01);padding:var(--spacing-comp-02);box-shadow:var(--box-shadow-02);}ch-suggest::part(dropdown)::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown)::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(dropdown) ::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown) ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.messages-wrapper{margin-top:var(--spacing-comp-02);display:flex;gap:var(--spacing-comp-01);flex-direction:column}gxg-suggest.gxg-validation--success ch-suggest::part(input){outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--success ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input){outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input){outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-error-dark)}gxg-suggest.gxg--disabled ch-suggest{pointer-events:none}gxg-suggest.gxg--disabled ch-suggest::part(input){background-color:var(--gray-01);color:var(--color-on-disabled)}gxg-suggest[ellipsis]:not([ellipsis=false]) ch-suggest-list-item::part(content-wrapper){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}ch-suggest-list{margin-block-start:var(--spacing-comp-02);font-family:inherit;border:var(--border-width-sm) solid var(--gxg-border-color--regular)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list:last-child{margin-block-end:0}ch-suggest-list::part(title){text-transform:uppercase;font-weight:var(--font-weight-semibold);margin:var(--spacing-comp-01) 0 0 0;padding:var(--spacing-comp-01) var(--spacing-comp-02)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list+ch-suggest-list{margin-block-start:0;border-block-start:0}ch-suggest-list+ch-suggest-list::part(title){margin-block-start:0}ch-suggest-list-item{}ch-suggest-list-item::part(button){padding:var(--spacing-comp-01) var(--spacing-comp-02);align-items:center;gap:var(--spacing-comp-01);box-sizing:border-box}ch-suggest-list-item::part(button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest-list-item::part(description)::before{content:\" - \"}ch-suggest-list-item gxg-icon::part(ch-icon){--icon-size:16px;margin-right:2px}ch-suggest-list-item:hover{background-color:var(--gxg-background-color--hover)}";
315
319
 
316
320
  const GxgSuggest = class {
317
321
  constructor(hostRef) {
@@ -1,9 +1,10 @@
1
1
  import { r as registerInstance, h, f as forceUpdate, H as Host } from './index-0da01575.js';
2
2
 
3
- const testTreeXCss = "ch-test-tree-x{display:grid;grid-template-columns:500px max-content;grid-template-rows:1fr;height:100%}.tree-buttons{display:grid;grid-auto-rows:max-content;row-gap:8px}:not(.ch-tree-x-dragging-item) ch-tree-x-list-item:not([selected])::part(header):hover{background-color:#e8e8e9}.ch-tree-x-list-item--drag-enter{background-color:#eee;box-shadow:inset 0 0 1px 0px black}.ch-tree-x-list-item--drag-enter[selected]::part(header){background-color:#eee}ch-tree-x-list-item::part(header){border:1px solid transparent}ch-tree-x-list-item[selected]::part(header){background-color:#cfdee6;border-color:#0266a0}ch-tree-x-list-item.ch-tree-x-list-item--editing::part(header){background-color:rgba(207, 222, 230, 0.5);border-color:transparent}ch-tree-x-list-item:not(.ch-tree-x-list-item--editing)::part(header):focus-visible{border-color:black;z-index:1}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
3
+ const testTreeXCss = "ch-test-tree-x{display:contents}";
4
4
 
5
5
  const DEFAULT_DRAG_DISABLED_VALUE = false;
6
6
  const DEFAULT_DROP_DISABLED_VALUE = false;
7
+ const DEFAULT_CLASS_VALUE = "tree-view-item";
7
8
  const DEFAULT_EXPANDED_VALUE = false;
8
9
  const DEFAULT_INDETERMINATE_VALUE = false;
9
10
  const DEFAULT_LAZY_VALUE = false;
@@ -33,7 +34,7 @@ const ChTestTreeX = class {
33
34
  /**
34
35
  * This property lets you define the model of the ch-tree-x control.
35
36
  */
36
- this.treeModel = { items: [] };
37
+ this.treeModel = [];
37
38
  /**
38
39
  * Set this attribute if you want to allow multi selection of the items.
39
40
  */
@@ -44,14 +45,16 @@ const ChTestTreeX = class {
44
45
  */
45
46
  this.showLines = "none";
46
47
  this.handleDroppableZoneEnter = (event) => {
47
- const dropInformation = event.detail;
48
48
  if (!this.checkDroppableZoneCallback) {
49
49
  return;
50
50
  }
51
+ event.stopPropagation();
52
+ // Suppose the request is made immediately by executing the callback
51
53
  const requestTimestamp = new Date().getTime();
54
+ const dropInformation = event.detail;
52
55
  const promise = this.checkDroppableZoneCallback(dropInformation);
53
56
  promise.then(validDrop => {
54
- this.treeRef.updateValidDroppableZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
57
+ this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
55
58
  });
56
59
  };
57
60
  this.handleSelectedItemsChange = (event) => {
@@ -85,6 +88,10 @@ const ChTestTreeX = class {
85
88
  itemInfo.expanded = detail.expanded;
86
89
  };
87
90
  this.handleItemsDropped = (event) => {
91
+ if (!this.dropItemsCallback) {
92
+ return;
93
+ }
94
+ event.stopPropagation();
88
95
  const dataTransferInfo = event.detail;
89
96
  const newContainer = dataTransferInfo.newContainer;
90
97
  const newParentId = newContainer.id;
@@ -93,7 +100,7 @@ const ChTestTreeX = class {
93
100
  return;
94
101
  }
95
102
  const draggedItems = dataTransferInfo.draggedItems;
96
- if (draggedItems.length === 0 || !this.dropItemsCallback) {
103
+ if (draggedItems.length === 0) {
97
104
  return;
98
105
  }
99
106
  const promise = this.dropItemsCallback(dataTransferInfo);
@@ -145,9 +152,9 @@ const ChTestTreeX = class {
145
152
  };
146
153
  this.renderSubModel = (treeSubModel, lastItem, level) => {
147
154
  var _a, _b;
148
- return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
155
+ return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, downloading: treeSubModel.downloading, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
149
156
  treeSubModel.items != null &&
150
- treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree", level: level + 1 }, treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))))));
157
+ treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree" }, treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))))));
151
158
  };
152
159
  this.flattenItemUIModel = (parentModel) => (item) => {
153
160
  var _a, _b, _c, _d;
@@ -157,6 +164,7 @@ const ChTestTreeX = class {
157
164
  });
158
165
  // Make sure the properties are with their default values to avoid issues
159
166
  // when reusing DOM nodes
167
+ item.class || (item.class = DEFAULT_CLASS_VALUE);
160
168
  (_a = item.expanded) !== null && _a !== void 0 ? _a : (item.expanded = DEFAULT_EXPANDED_VALUE);
161
169
  (_b = item.indeterminate) !== null && _b !== void 0 ? _b : (item.indeterminate = DEFAULT_INDETERMINATE_VALUE);
162
170
  (_c = item.lazy) !== null && _c !== void 0 ? _c : (item.lazy = DEFAULT_LAZY_VALUE);
@@ -173,6 +181,27 @@ const ChTestTreeX = class {
173
181
  handleTreeModelChange() {
174
182
  this.flattenModel();
175
183
  }
184
+ /**
185
+ * Given an item id, an array of items to add, the download status and the
186
+ * lazy state, updates the item's UI Model.
187
+ */
188
+ async loadLazyContent(itemId, items, downloading = false, lazy = false) {
189
+ const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(itemId);
190
+ // Establish that the content was lazy loaded
191
+ this.flattenedLazyTreeModel.delete(itemId);
192
+ itemToLazyLoadContent.downloading = downloading;
193
+ itemToLazyLoadContent.lazy = lazy;
194
+ // Check if there is items to add
195
+ if (items == null) {
196
+ return;
197
+ }
198
+ // @todo What happens in the server when dropping items on a lazy node?
199
+ itemToLazyLoadContent.items = items;
200
+ this.sortItems(itemToLazyLoadContent.items);
201
+ this.flattenSubModel(itemToLazyLoadContent);
202
+ // Force re-render
203
+ forceUpdate(this);
204
+ }
176
205
  /**
177
206
  * Given an item id, it displays and scrolls into the item view.
178
207
  */
@@ -248,6 +277,16 @@ const ChTestTreeX = class {
248
277
  });
249
278
  forceUpdate(this);
250
279
  }
280
+ /**
281
+ * Update the information about the valid droppable zones.
282
+ * @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
283
+ * @param newContainerId ID of the container where the drag is trying to be made.
284
+ * @param draggedItems Information about the dragged items.
285
+ * @param validDrop Current state of the droppable zone.
286
+ */
287
+ async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
288
+ this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
289
+ }
251
290
  updateItemProperty(itemUIModel, properties) {
252
291
  if (!itemUIModel) {
253
292
  return;
@@ -258,36 +297,22 @@ const ChTestTreeX = class {
258
297
  });
259
298
  }
260
299
  loadLazyChildrenHandler(event) {
300
+ if (!this.lazyLoadTreeItemsCallback) {
301
+ return;
302
+ }
261
303
  event.stopPropagation();
262
304
  const treeItemId = event.detail;
263
- if (this.lazyLoadTreeItemsCallback) {
264
- const promise = this.lazyLoadTreeItemsCallback(treeItemId);
265
- const itemRef = event.target;
266
- itemRef.downloading = true;
267
- promise.then(result => {
268
- const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
269
- // Establish that the content was lazy loaded
270
- this.flattenedLazyTreeModel.delete(treeItemId);
271
- itemToLazyLoadContent.lazy = false;
272
- itemRef.downloading = false;
273
- // Check if there is items to add
274
- if (result == null) {
275
- return;
276
- }
277
- // @todo What happens in the server when dropping items on a lazy node?
278
- itemToLazyLoadContent.items = result;
279
- this.sortItems(itemToLazyLoadContent.items);
280
- this.flattenSubModel(itemToLazyLoadContent);
281
- // Force re-render
282
- forceUpdate(this);
283
- });
284
- }
305
+ const promise = this.lazyLoadTreeItemsCallback(treeItemId);
306
+ event.target.downloading = true;
307
+ promise.then(result => {
308
+ this.loadLazyContent(treeItemId, result);
309
+ });
285
310
  }
286
311
  handleCaptionModification(event) {
287
- event.stopPropagation();
288
312
  if (!this.modifyItemCaptionCallback) {
289
313
  return;
290
314
  }
315
+ event.stopPropagation();
291
316
  const itemRef = event.target;
292
317
  const itemId = event.detail.id;
293
318
  const itemUIModel = this.flattenedTreeModel.get(itemId);
@@ -335,13 +360,13 @@ const ChTestTreeX = class {
335
360
  flattenModel() {
336
361
  this.flattenedTreeModel.clear();
337
362
  this.flattenedLazyTreeModel.clear();
338
- this.flattenSubModel(this.treeModel);
363
+ this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
339
364
  }
340
365
  componentWillLoad() {
341
366
  this.flattenModel();
342
367
  }
343
368
  render() {
344
- return (h(Host, null, h("ch-tree-x", { multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: el => (this.treeRef = el) }, h("ch-tree-x-list", { level: 0 }, this.treeModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.items.length - 1, 0)))), h("div", { class: "tree-buttons" })));
369
+ return (h(Host, null, h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: el => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0)))));
345
370
  }
346
371
  static get watchers() { return {
347
372
  "treeModel": ["handleTreeModelChange"]
@@ -0,0 +1,7 @@
1
+ /* The purpose of config is to provide a simple way to change options/settings that are generally applied on all the components*/
2
+ const config = {
3
+ // tooltip is a property that exists on some gemini controls. When set to true, it will display the error/warning/success message (if any) by using a tooltip, instead of displaying the message under the control. The tooltip prevents changes on the component total height, which is desired.
4
+ tooltip: true
5
+ };
6
+
7
+ export { config as c };
@@ -34,5 +34,18 @@ function formMessageLogic(comp) {
34
34
  : null;
35
35
  }
36
36
  }
37
+ function formTooltipLogic(comp) {
38
+ {
39
+ const color = comp.validationStatus;
40
+ return (
41
+ // <div class="tooltip-outer-wrapper">
42
+ comp.validationStatus !== "indeterminate" &&
43
+ comp.validationMessage.length > 0 ? (h("div", { class: "tooltip-inner-wrapper" },
44
+ h("gxg-tooltip", { label: comp.validationMessage, noBorder: true, alignEnd: true, flex: true, fixed: true },
45
+ h("gxg-icon", { color: color, type: `gemini-tools/${comp.validationStatus}` })))) : null
46
+ // </div>
47
+ );
48
+ }
49
+ }
37
50
 
38
- export { formMessageLogic as a, formMessage as f, requiredLabel as r };
51
+ export { formMessageLogic as a, formTooltipLogic as b, formMessage as f, requiredLabel as r };