@genexus/genexus-ide-ui 0.0.71 → 0.0.73

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 (132) hide show
  1. package/dist/cjs/ch-checkbox_4.cjs.entry.js +75 -51
  2. package/dist/cjs/ch-shortcuts.cjs.entry.js +187 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +101 -0
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  22. package/dist/cjs/gxg-form-textarea.cjs.entry.js +28 -9
  23. package/dist/cjs/gxg-text.cjs.entry.js +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/collection-manifest.json +2 -0
  26. package/dist/collection/components/_starting-template/template.css +1 -0
  27. package/dist/collection/components/ai-assistant/ai-assistant.css +389 -0
  28. package/dist/collection/components/ai-assistant/ai-assistant.js +269 -0
  29. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +6 -0
  30. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +3 -0
  31. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +3 -0
  32. package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +1 -0
  33. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +1 -0
  34. package/dist/collection/components/kb-manager-export/kb-manager-export.css +1 -0
  35. package/dist/collection/components/kb-manager-import/kb-manager-import.css +1 -0
  36. package/dist/collection/components/new-environment/new-environment.css +1 -0
  37. package/dist/collection/components/new-kb/new-kb.css +1 -0
  38. package/dist/collection/components/new-object/new-object.css +1 -0
  39. package/dist/collection/components/object-selector/object-selector.css +1 -0
  40. package/dist/collection/components/references/references.css +1 -0
  41. package/dist/collection/components/share-kb/share-kb.css +1 -0
  42. package/dist/collection/components/team-dev/commit/commit.css +1 -0
  43. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +1 -0
  44. package/dist/collection/components/team-dev/update/update.css +1 -0
  45. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +1 -0
  46. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +1 -0
  47. package/dist/collection/components/ww-images/ww-images.css +1 -0
  48. package/dist/components/ch-shortcuts.js +217 -0
  49. package/dist/components/form-textarea.js +30 -9
  50. package/dist/components/gx-ide-ai-assistant.d.ts +11 -0
  51. package/dist/components/gx-ide-ai-assistant.js +151 -0
  52. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  53. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  54. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  55. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  56. package/dist/components/gx-ide-new-environment.js +1 -1
  57. package/dist/components/gx-ide-new-kb.js +1 -1
  58. package/dist/components/gx-ide-new-object.js +1 -1
  59. package/dist/components/gx-ide-object-selector.js +1 -1
  60. package/dist/components/gx-ide-references.js +1 -1
  61. package/dist/components/gx-ide-share-kb.js +1 -1
  62. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  63. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  64. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  65. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  66. package/dist/components/gx-ide-team-dev-update.js +1 -1
  67. package/dist/components/gx-ide-template.js +1 -1
  68. package/dist/components/gx-ide-ww-images.js +1 -1
  69. package/dist/components/index.d.ts +1 -0
  70. package/dist/components/index.js +2 -0
  71. package/dist/components/text.js +1 -1
  72. package/dist/components/tree-view-item.js +1 -1
  73. package/dist/components/tree-view-render.js +73 -48
  74. package/dist/components/tree-view.js +2 -2
  75. package/dist/esm/ch-checkbox_4.entry.js +75 -51
  76. package/dist/esm/ch-shortcuts.entry.js +183 -0
  77. package/dist/esm/genexus-ide-ui.js +1 -1
  78. package/dist/esm/gx-ide-ai-assistant.entry.js +97 -0
  79. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  80. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  81. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  82. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  83. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  84. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  85. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  86. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  87. package/dist/esm/gx-ide-references.entry.js +1 -1
  88. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  89. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  90. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  91. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  92. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  93. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  94. package/dist/esm/gx-ide-template.entry.js +1 -1
  95. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  96. package/dist/esm/gxg-form-textarea.entry.js +28 -9
  97. package/dist/esm/gxg-text.entry.js +1 -1
  98. package/dist/esm/loader.js +1 -1
  99. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  100. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +6 -0
  101. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +3 -0
  102. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +3 -0
  103. package/dist/genexus-ide-ui/{p-aacd75fc.entry.js → p-11fa1c83.entry.js} +1 -1
  104. package/dist/genexus-ide-ui/{p-8f4d3169.entry.js → p-13085dd7.entry.js} +1 -1
  105. package/dist/genexus-ide-ui/p-3cb1b400.entry.js +1 -0
  106. package/dist/genexus-ide-ui/{p-da1ae937.entry.js → p-3d410e77.entry.js} +1 -1
  107. package/dist/genexus-ide-ui/{p-3f8995ba.entry.js → p-3d4722f2.entry.js} +1 -1
  108. package/dist/genexus-ide-ui/{p-99a0cd49.entry.js → p-440fe7b3.entry.js} +1 -1
  109. package/dist/genexus-ide-ui/{p-4c0ecfe3.entry.js → p-446c0831.entry.js} +1 -1
  110. package/dist/genexus-ide-ui/{p-46c2406e.entry.js → p-7e52f6fb.entry.js} +1 -1
  111. package/dist/genexus-ide-ui/{p-7bcb1954.entry.js → p-8c5919ec.entry.js} +1 -1
  112. package/dist/genexus-ide-ui/{p-4313d9be.entry.js → p-9a15e22e.entry.js} +1 -1
  113. package/dist/genexus-ide-ui/{p-6929875a.entry.js → p-9ad85778.entry.js} +1 -1
  114. package/dist/genexus-ide-ui/{p-2b2acd3d.entry.js → p-abfa88ed.entry.js} +1 -1
  115. package/dist/genexus-ide-ui/{p-e23d6f44.entry.js → p-b34d258d.entry.js} +1 -1
  116. package/dist/genexus-ide-ui/p-b417c899.entry.js +1 -0
  117. package/dist/genexus-ide-ui/{p-c2ffd150.entry.js → p-ba31a49e.entry.js} +1 -1
  118. package/dist/genexus-ide-ui/{p-24b2988b.entry.js → p-baffd9b1.entry.js} +1 -1
  119. package/dist/genexus-ide-ui/{p-083e01a8.entry.js → p-c3895c79.entry.js} +1 -1
  120. package/dist/genexus-ide-ui/{p-8e68f1d3.entry.js → p-cb07fc99.entry.js} +1 -1
  121. package/dist/genexus-ide-ui/{p-46901569.entry.js → p-d2aca59f.entry.js} +1 -1
  122. package/dist/genexus-ide-ui/{p-7af7779b.entry.js → p-d664fa18.entry.js} +1 -1
  123. package/dist/genexus-ide-ui/{p-e090d88c.entry.js → p-e13a299b.entry.js} +1 -1
  124. package/dist/genexus-ide-ui/p-f1922c2f.entry.js +1 -0
  125. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/shortcuts/ch-shortcuts.css +3 -0
  126. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +0 -1
  127. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +44 -2
  128. package/dist/node_modules/@genexus/gemini/dist/collection/components/text/text.css +4 -1
  129. package/dist/types/components/ai-assistant/ai-assistant.d.ts +69 -0
  130. package/dist/types/components.d.ts +70 -0
  131. package/package.json +3 -3
  132. package/dist/genexus-ide-ui/p-ee85040d.entry.js +0 -1
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -105,6 +105,7 @@ gxg-tabs {
105
105
  display: flex;
106
106
  flex-direction: column;
107
107
  flex-grow: 1;
108
+ box-sizing: border-box;
108
109
  }
109
110
 
110
111
  /*This is the main element. This is the one that take the remaining vertical space*/
@@ -0,0 +1,217 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { f as focusComposedPath } from './helpers.js';
3
+ import { d as defineCustomElement$3 } from './ch-window2.js';
4
+ import { d as defineCustomElement$2 } from './ch-window-close2.js';
5
+
6
+ const CH_SHORTCUTS = new Map();
7
+ function loadShortcuts(name, root, shortcuts) {
8
+ shortcuts.forEach(shortcut => {
9
+ const keyShortcuts = parseKeyShortcuts(shortcut.keyShortcuts);
10
+ keyShortcuts.forEach(keyShortcut => {
11
+ CH_SHORTCUTS.set(normalize(keyShortcut.ctrl, keyShortcut.alt, keyShortcut.shift, keyShortcut.meta, keyShortcut.key), {
12
+ name,
13
+ root,
14
+ shortcut
15
+ });
16
+ });
17
+ });
18
+ addListener();
19
+ }
20
+ function unloadShortcuts(name) {
21
+ const removeKeyShortcuts = [];
22
+ CH_SHORTCUTS.forEach((shortcutMap, key) => {
23
+ if (shortcutMap.name === name) {
24
+ removeKeyShortcuts.push(key);
25
+ }
26
+ });
27
+ removeKeyShortcuts.forEach(key => CH_SHORTCUTS.delete(key));
28
+ removeListener();
29
+ }
30
+ function getShortcuts() {
31
+ return Array.from(CH_SHORTCUTS.values())
32
+ .filter(shortcutMap => {
33
+ var _a;
34
+ return !((_a = shortcutMap.shortcut.conditions) === null || _a === void 0 ? void 0 : _a.focusInclude);
35
+ })
36
+ .map(shortcutMap => ({
37
+ element: querySelectorPlus(shortcutMap.shortcut.selector, shortcutMap.root),
38
+ keyShortcuts: shortcutMap.shortcut.keyShortcuts,
39
+ legendPosition: shortcutMap.shortcut.legendPosition
40
+ }));
41
+ }
42
+ function addListener() {
43
+ if (CH_SHORTCUTS.size > 0) {
44
+ window.addEventListener("keydown", keydownHandler, { capture: true });
45
+ }
46
+ }
47
+ function removeListener() {
48
+ if (CH_SHORTCUTS.size === 0) {
49
+ window.removeEventListener("keydown", keydownHandler, { capture: true });
50
+ }
51
+ }
52
+ function keydownHandler(eventInfo) {
53
+ const shortcutMap = CH_SHORTCUTS.get(normalize(eventInfo.ctrlKey, eventInfo.altKey, eventInfo.shiftKey, eventInfo.metaKey, eventInfo.key));
54
+ if (shortcutMap && conditions(shortcutMap)) {
55
+ const element = querySelectorPlus(shortcutMap.shortcut.selector, shortcutMap.root);
56
+ if (element) {
57
+ switch (shortcutMap.shortcut.action) {
58
+ case "click":
59
+ element.dispatchEvent(new Event("click"));
60
+ break;
61
+ default:
62
+ element.focus();
63
+ }
64
+ if (shortcutMap.shortcut.preventDefault !== false) {
65
+ eventInfo.preventDefault();
66
+ }
67
+ }
68
+ }
69
+ }
70
+ function parseKeyShortcuts(value = "") {
71
+ return value.split(" ").map(item => {
72
+ const match = item.match(/(?:(?<ctrl>Ctrl)?(?<alt>Alt)?(?<shift>Shift)?(?<meta>Meta)?\+?)*(?<key>.*)?/i);
73
+ if (match.groups.key !== "") {
74
+ return {
75
+ ctrl: match.groups.ctrl !== undefined,
76
+ alt: match.groups.alt !== undefined,
77
+ shift: match.groups.shift !== undefined,
78
+ meta: match.groups.meta !== undefined,
79
+ key: match.groups.key
80
+ };
81
+ }
82
+ });
83
+ }
84
+ function normalize(ctrl, alt, shift, meta, key) {
85
+ return [
86
+ ctrl ? "Ctrl" : null,
87
+ alt ? "Alt" : null,
88
+ shift ? "Shift" : null,
89
+ meta ? "Meta" : null,
90
+ key ? key.charAt(0).toUpperCase() + key.slice(1) : null
91
+ ]
92
+ .filter(element => {
93
+ return element !== null;
94
+ })
95
+ .join("+");
96
+ }
97
+ function conditions(shortcutMap) {
98
+ var _a, _b, _c, _d;
99
+ const focus = focusComposedPath();
100
+ if ((_a = shortcutMap.shortcut.conditions) === null || _a === void 0 ? void 0 : _a.focusInclude) {
101
+ return Array.from(shortcutMap.root.querySelectorAll((_b = shortcutMap.shortcut.conditions) === null || _b === void 0 ? void 0 : _b.focusInclude)).some((el) => focus.includes(el));
102
+ }
103
+ if ((_c = shortcutMap.shortcut.conditions) === null || _c === void 0 ? void 0 : _c.focusExclude) {
104
+ return !Array.from(shortcutMap.root.querySelectorAll((_d = shortcutMap.shortcut.conditions) === null || _d === void 0 ? void 0 : _d.focusExclude)).some((el) => focus.includes(el));
105
+ }
106
+ return true;
107
+ }
108
+ function querySelectorPlus(selector, root) {
109
+ const querySelectorDeep = (element, parts) => {
110
+ const shadow = element.shadowRoot;
111
+ const partList = parts.split(" ");
112
+ const partElement = shadow.querySelector(partList.map(partName => `[part~="${partName}"]`).join(""));
113
+ if (partElement) {
114
+ return partElement;
115
+ }
116
+ const exportPartElement = shadow.querySelector(partList.map(partName => `[exportparts*="${partName}"]`).join(""));
117
+ if (exportPartElement) {
118
+ const exportPartList = [];
119
+ const exportparts = exportPartElement.getAttribute("exportparts");
120
+ partList.forEach(partItem => {
121
+ const exportPartName = exportparts.match(`(?:([\\w-]+):)?(${partItem})`)[1];
122
+ if (exportPartName) {
123
+ exportPartList.push(exportPartName);
124
+ }
125
+ });
126
+ if (partList.length === exportPartList.length) {
127
+ return querySelectorDeep(exportPartElement, exportPartList.join(" "));
128
+ }
129
+ }
130
+ return null;
131
+ };
132
+ if (selector.includes("::part")) {
133
+ const selectorItems = selector.match("(.*)::part\\(([^)]+)\\)");
134
+ const entity = selectorItems[1];
135
+ const partName = selectorItems[2];
136
+ return querySelectorDeep(root.querySelector(entity), partName);
137
+ }
138
+ else {
139
+ return root.querySelector(selector);
140
+ }
141
+ }
142
+
143
+ const chShortcutsCss = ":host{display:contents}";
144
+
145
+ const ChShortcuts$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
146
+ constructor() {
147
+ super();
148
+ this.__registerHost();
149
+ this.__attachShadow();
150
+ this.showShortcuts = false;
151
+ this.showKey = "F10";
152
+ this.windowClosedHandler = () => {
153
+ this.showShortcuts = false;
154
+ };
155
+ }
156
+ componentDidLoad() {
157
+ if (this.src) {
158
+ fetch(this.src).then(response => {
159
+ if (response.ok) {
160
+ response.json().then(json => {
161
+ const root = this.el.getRootNode();
162
+ loadShortcuts(this.src, root, json);
163
+ });
164
+ }
165
+ });
166
+ }
167
+ }
168
+ disconnectedCallback() {
169
+ unloadShortcuts(this.src);
170
+ }
171
+ windowKeyDownHandler(eventInfo) {
172
+ if (eventInfo.key === this.showKey) {
173
+ this.showShortcuts = !this.showShortcuts;
174
+ eventInfo.preventDefault();
175
+ }
176
+ }
177
+ renderShortcuts() {
178
+ return getShortcuts().map(shortcut => (h("ch-window", { container: shortcut.element, modal: false, hidden: false, closeOnEscape: true, closeOnOutsideClick: true, xAlign: "outside-end", yAlign: "inside-start", onWindowClosed: this.windowClosedHandler, exportparts: "mask:element" }, h("span", { part: "tooltip" }, shortcut.keyShortcuts))));
179
+ }
180
+ render() {
181
+ return h(Host, null, this.showShortcuts && this.renderShortcuts());
182
+ }
183
+ get el() { return this; }
184
+ static get style() { return chShortcutsCss; }
185
+ }, [1, "ch-shortcuts", {
186
+ "src": [1],
187
+ "showKey": [1, "show-key"],
188
+ "showShortcuts": [32]
189
+ }, [[10, "keydown", "windowKeyDownHandler"]]]);
190
+ function defineCustomElement$1() {
191
+ if (typeof customElements === "undefined") {
192
+ return;
193
+ }
194
+ const components = ["ch-shortcuts", "ch-window", "ch-window-close"];
195
+ components.forEach(tagName => { switch (tagName) {
196
+ case "ch-shortcuts":
197
+ if (!customElements.get(tagName)) {
198
+ customElements.define(tagName, ChShortcuts$1);
199
+ }
200
+ break;
201
+ case "ch-window":
202
+ if (!customElements.get(tagName)) {
203
+ defineCustomElement$3();
204
+ }
205
+ break;
206
+ case "ch-window-close":
207
+ if (!customElements.get(tagName)) {
208
+ defineCustomElement$2();
209
+ }
210
+ break;
211
+ } });
212
+ }
213
+
214
+ const ChShortcuts = ChShortcuts$1;
215
+ const defineCustomElement = defineCustomElement$1;
216
+
217
+ export { ChShortcuts, defineCustomElement };
@@ -6,7 +6,7 @@ import { e as exportParts } from './export-parts.js';
6
6
  import { d as defineCustomElement$2 } from './gxg-label2.js';
7
7
  import { d as defineCustomElement$1 } from './tooltip.js';
8
8
 
9
- const formTextareaCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}: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:var(--gxg-scrollbar-width, 6px);height:var(--gxg-scrollbar-width, 6px)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background, --gray-02);border-radius:var(--gxg-scrollbar-track-border-radius, 10px)}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gxg-scrollbar-track-thumb-background, --gray-05);border-radius:var(--gxg-scrollbar-track-thumb-radius, 10px)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gxg-scrollbar-track-thumb-hover-background, --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{overflow:hidden;transition:150ms width;width:0}.tooltip-inner-wrapper gxg-icon{display:flex;position:relative !important;top:0 !important;transform:none !important;margin-inline-start:var(--spacing-comp-01)}.tooltip-inner-wrapper--visible{width:24px}.tooltip-inner-wrapper--hidden{display:none}:host(.gxg--disabled) .form-element,:host(.gxg--disabled.form-element){pointer-events:none;background-color:var(--gxg-background-color--disabled) !important;color:var(--gxg-color--disabled) !important;border-color:var(--gxg-border-color--disabled) !important;cursor:default !important}:host{display:flex;flex-direction:column;width:100%}:host .form-element-wrapper{position:relative;width:100%}:host 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}:host label .required{padding-left:2px}:host textarea{transition:height 200ms;width:100%;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}:host .textarea-wrapper{display:flex;gap:var(--spacing-comp-01);flex:1}:host textarea{resize:none;border-width:var(--border-width-sm);border-color:var(--gray-02);border-style:var(--border-style-regular);border-radius:var(--border-radius-sm);padding-left:var(--spacing-comp-01);padding-right:var(--spacing-comp-01);color:var(--color-on-background);background-color:var(--color-background)}:host textarea::-webkit-scrollbar{width:var(--gxg-scrollbar-width, 6px);height:var(--gxg-scrollbar-width, 6px)}:host textarea::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background, --gray-02);border-radius:var(--gxg-scrollbar-track-border-radius, 10px)}:host textarea::-webkit-scrollbar-thumb{background:var(--gxg-scrollbar-track-thumb-background, --gray-05);border-radius:var(--gxg-scrollbar-track-thumb-radius, 10px)}:host textarea::-webkit-scrollbar-thumb:hover{background:var(--gxg-scrollbar-track-thumb-hover-background, --gray-04);cursor:pointer}:host textarea:focus{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}:host textarea--resize{resize:both}:host textarea[disabled]{background-color:var(--gray-01);color:var(--color-on-disabled)}:host textarea.textarea--error{border-color:var(--color-error-dark);background-color:var(--color-error-light);margin-bottom:0}:host textarea.textarea--error:focus{outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}:host textarea.textarea--warning{border-color:var(--color-warning-dark);background-color:var(--color-warning-light);margin-bottom:0}:host textarea.textarea--warning:focus{outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}:host(.shrink[single-line]) .textarea{box-sizing:border-box;height:24px !important;overflow:hidden}.messages-wrapper{margin-top:var(--spacing-comp-02);display:flex;gap:var(--spacing-comp-01);flex-direction:column}:host(.large) label,:host(.large) textarea{font-size:var(--font-size-lg)}:host(.large) textarea{padding:var(--spacing-comp-01) var(--spacing-comp-02)}";
9
+ const formTextareaCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}: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:var(--gxg-scrollbar-width, 6px);height:var(--gxg-scrollbar-width, 6px)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background, --gray-02);border-radius:var(--gxg-scrollbar-track-border-radius, 10px)}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gxg-scrollbar-track-thumb-background, --gray-05);border-radius:var(--gxg-scrollbar-track-thumb-radius, 10px)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gxg-scrollbar-track-thumb-hover-background, --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{overflow:hidden;transition:150ms width;width:0}.tooltip-inner-wrapper gxg-icon{display:flex;position:relative !important;top:0 !important;transform:none !important;margin-inline-start:var(--spacing-comp-01)}.tooltip-inner-wrapper--visible{width:24px}.tooltip-inner-wrapper--hidden{display:none}:host(.gxg--disabled) .form-element,:host(.gxg--disabled.form-element){pointer-events:none;background-color:var(--gxg-background-color--disabled) !important;color:var(--gxg-color--disabled) !important;border-color:var(--gxg-border-color--disabled) !important;cursor:default !important}:host{display:flex;flex-direction:column;width:100%}:host .form-element-wrapper{position:relative;width:100%}:host 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}:host label .required{padding-left:2px}:host textarea{transition:height 200ms;width:100%;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}:host .textarea-wrapper{display:flex;gap:var(--spacing-comp-01);flex:1}:host textarea{resize:none;border-width:var(--border-width-sm);border-color:var(--gray-02);border-style:var(--border-style-regular);border-radius:var(--border-radius-sm);padding-left:var(--spacing-comp-01);padding-right:var(--spacing-comp-01);color:var(--color-on-background);background-color:var(--color-background)}:host textarea::-webkit-scrollbar{width:var(--gxg-scrollbar-width, 6px);height:var(--gxg-scrollbar-width, 6px)}:host textarea::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background, --gray-02);border-radius:var(--gxg-scrollbar-track-border-radius, 10px)}:host textarea::-webkit-scrollbar-thumb{background:var(--gxg-scrollbar-track-thumb-background, --gray-05);border-radius:var(--gxg-scrollbar-track-thumb-radius, 10px)}:host textarea::-webkit-scrollbar-thumb:hover{background:var(--gxg-scrollbar-track-thumb-hover-background, --gray-04);cursor:pointer}:host textarea:focus{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}:host textarea--resize{resize:both}:host textarea[disabled]{background-color:var(--gray-01);color:var(--color-on-disabled)}:host textarea.textarea--error{border-color:var(--color-error-dark);background-color:var(--color-error-light);margin-bottom:0}:host textarea.textarea--error:focus{outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}:host textarea.textarea--warning{border-color:var(--color-warning-dark);background-color:var(--color-warning-light);margin-bottom:0}:host textarea.textarea--warning:focus{outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}:host(.shrink[single-line]) .textarea{box-sizing:border-box;height:24px !important;overflow:hidden}.messages-wrapper{margin-top:var(--spacing-comp-02);display:flex;gap:var(--spacing-comp-01);flex-direction:column}:host(.large) label,:host(.large) textarea{font-size:var(--font-size-lg);padding:var(--spacing-comp-01) var(--spacing-comp-02)}:host(.mercury){font-size:var(--mc-font-size-xs)}:host(.mercury) .textarea-wrapper{font-family:var(--font-family-primary);font-size:var(--mc-font-size-xs);color:var(--gray-03);line-height:var(--line-height-default);font-weight:var(--font-weight-regular);box-sizing:border-box;font-size:inherit;border:var(--border-width-sm) solid var(--gray-05);border-radius:var(--border-radius-sm);padding:var(--spacing-comp-02) var(--spacing-comp-03)}:host(.mercury) .textarea-wrapper:focus-within{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}:host(.mercury) textarea{border:none;padding:0;font-size:inherit;font-family:inherit;line-height:inherit;padding-inline-end:var(--spacing-comp-02);background-color:transparent}:host(.mercury) textarea:focus{outline:none}:host([grow].mercury) textarea{box-sizing:border-box;resize:none}";
10
10
 
11
11
  const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
12
  constructor() {
@@ -15,6 +15,7 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
15
15
  this.__attachShadow();
16
16
  this.input = createEvent(this, "input", 7);
17
17
  this.change = createEvent(this, "change", 7);
18
+ this.enter = createEvent(this, "enter", 7);
18
19
  this.parts = {
19
20
  textarea: "textarea",
20
21
  };
@@ -25,6 +26,10 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
25
26
  * The presence of this attribute forces the textarea to be as tall as an input text. When the textarea gets focus, it grows as tall as the "height: property.
26
27
  */
27
28
  this.singleLine = false;
29
+ /**
30
+ * It will show the textarea with a single line, and grow in height as the text overflows, or the user hits shift + enter. This property will be ignored if "shrink" is true
31
+ */
32
+ this.grow = false;
28
33
  /**
29
34
  * The presence of this attribute displays a tooltip message, instead of a block message below the control
30
35
  */
@@ -92,6 +97,17 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
92
97
  const exportPartsResult = exportParts(part, this.parts);
93
98
  exportPartsResult.length && (this.exportparts = exportPartsResult);
94
99
  };
100
+ this.handleInput = (e) => {
101
+ e.stopPropagation();
102
+ const target = e.target;
103
+ this.value = target.value;
104
+ this.input.emit(this.value);
105
+ if (state.mercury && this.grow) {
106
+ const offset = this.textArea.offsetHeight - this.textArea.clientHeight;
107
+ this.textArea.style.height = "auto";
108
+ this.textArea.style.height = this.textArea.scrollHeight + offset + "px";
109
+ }
110
+ };
95
111
  this.focusHandler = () => {
96
112
  if (this.singleLine) {
97
113
  this.shrink = false;
@@ -102,6 +118,14 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
102
118
  this.shrink = true;
103
119
  }
104
120
  };
121
+ this.keyDownHandler = (e) => {
122
+ if (e.key === "Enter" && !e.shiftKey) {
123
+ e.preventDefault();
124
+ this.enter.emit(this.textArea.value);
125
+ this.textArea.style.height = "auto";
126
+ this.value = "";
127
+ }
128
+ };
105
129
  }
106
130
  /*********************************
107
131
  METHODS
@@ -115,12 +139,6 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
115
139
  updateTextareaValue() {
116
140
  this.value = this.textArea.value;
117
141
  }
118
- handleInput(e) {
119
- //formHandleValidation(this, e.target);
120
- const target = e.target;
121
- this.value = target.value;
122
- this.input.emit(this.value);
123
- }
124
142
  handleChange() {
125
143
  //formHandleValidation(this, e.target);
126
144
  this.change.emit(this.value);
@@ -129,22 +147,24 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
129
147
  return (h(Host, { role: "textbox", "aria-label": this.label, style: { maxWidth: this.maxWidth }, class: {
130
148
  textarea: true,
131
149
  large: state.large,
150
+ mercury: state.mercury,
132
151
  shrink: this.singleLine && this.shrink,
133
152
  [formClasses["VALIDATION_INDETERMINATE_CLASS"]]: this.validationStatus === "indeterminate",
134
153
  [formClasses["VALIDATION_WARNING_CLASS"]]: this.validationStatus === "warning",
135
154
  [formClasses["VALIDATION_ERROR_CLASS"]]: this.validationStatus === "error",
136
155
  [formClasses["VALIDATION_SUCCESS_CLASS"]]: this.validationStatus === "success",
137
156
  [commonClassesNames["DISABLED_CLASS"]]: this.disabled,
138
- }, exportParts: this.exportparts ? this.exportparts : null }, this.label ? (h("gxg-label", { labelPosition: this.labelPosition, center: this.centerLabel, width: this.labelWidth }, this.label, requiredLabel(this))) : null, h("div", { class: "textarea-wrapper" }, h("textarea", { ref: (el) => (this.textArea = el), class: {
157
+ }, exportParts: this.exportparts ? this.exportparts : null }, this.label ? (h("gxg-label", { labelPosition: this.labelPosition, center: this.centerLabel, width: this.labelWidth }, this.label, requiredLabel(this))) : null, h("div", { class: "textarea-wrapper", part: "textarea-wrapper" }, h("textarea", { ref: (el) => (this.textArea = el), class: {
139
158
  "form-element": true,
140
159
  textarea: true,
141
160
  "textarea--resize": this.resize,
142
- }, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput.bind(this), onChange: this.handleChange.bind(this), value: this.value, rows: this.rows, required: this.required, style: { height: this.height }, part: this.parts.textarea, onFocus: this.focusHandler, onBlur: this.blurHandler }), this.toolTip ? formTooltipLogic(this, true) : null), !this.toolTip ? formMessageLogic(this) : null));
161
+ }, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onChange: this.handleChange.bind(this), value: this.value, rows: state.mercury && this.grow ? 1 : this.rows, required: this.required, style: { height: this.height, maxHeight: this.maxHeight }, part: "textarea", onFocus: this.focusHandler, onBlur: this.blurHandler, onKeyDown: this.keyDownHandler }), this.toolTip ? formTooltipLogic(this, true) : null), !this.toolTip ? formMessageLogic(this) : null));
143
162
  }
144
163
  get el() { return this; }
145
164
  static get style() { return formTextareaCss; }
146
165
  }, [1, "gxg-form-textarea", {
147
166
  "singleLine": [516, "single-line"],
167
+ "grow": [516],
148
168
  "toolTip": [4, "tool-tip"],
149
169
  "error": [1028],
150
170
  "label": [513],
@@ -152,6 +172,7 @@ const GxgFormTextarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
152
172
  "labelWidth": [8, "label-width"],
153
173
  "centerLabel": [4, "center-label"],
154
174
  "maxWidth": [1, "max-width"],
175
+ "maxHeight": [1, "max-height"],
155
176
  "height": [1],
156
177
  "placeholder": [1],
157
178
  "value": [513],
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface GxIdeAiAssistant extends Components.GxIdeAiAssistant, HTMLElement {}
4
+ export const GxIdeAiAssistant: {
5
+ prototype: GxIdeAiAssistant;
6
+ new (): GxIdeAiAssistant;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;