@3t-transform/threeteeui 0.1.25 → 0.1.26

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 (58) hide show
  1. package/dist/cjs/{index-dc6cc829.js → index-b8a62ede.js} +88 -2
  2. package/dist/cjs/loader.cjs.js +4 -3
  3. package/dist/cjs/tttx-button.cjs.entry.js +1 -1
  4. package/dist/cjs/tttx-filter.cjs.entry.js +1 -1
  5. package/dist/cjs/tttx-form.cjs.entry.js +2 -2
  6. package/dist/cjs/tttx-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +1 -1
  8. package/dist/cjs/tttx-list.cjs.entry.js +1 -1
  9. package/dist/cjs/tttx-loading-spinner.cjs.entry.js +1 -1
  10. package/dist/cjs/tttx-sorter.cjs.entry.js +1 -1
  11. package/dist/cjs/tttx-standalone-input.cjs.entry.js +9 -8
  12. package/dist/cjs/tttx-toolbar.cjs.entry.js +1 -1
  13. package/dist/cjs/tttx.cjs.js +7 -3
  14. package/dist/collection/collection-manifest.json +2 -2
  15. package/dist/collection/components/molecules/tttx-form/tttx-form.css +20 -4
  16. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.css +20 -4
  17. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +35 -17
  18. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +12 -5
  19. package/dist/components/index.d.ts +9 -0
  20. package/dist/components/index.js +1 -1
  21. package/dist/components/tttx-form.js +1 -1
  22. package/dist/components/tttx-standalone-input.js +14 -12
  23. package/dist/esm/{index-86faeaab.js → index-e888a5f4.js} +88 -3
  24. package/dist/esm/loader.js +4 -3
  25. package/dist/esm/polyfills/css-shim.js +1 -1
  26. package/dist/esm/tttx-button.entry.js +1 -1
  27. package/dist/esm/tttx-filter.entry.js +1 -1
  28. package/dist/esm/tttx-form.entry.js +2 -2
  29. package/dist/esm/tttx-icon.entry.js +1 -1
  30. package/dist/esm/tttx-keyvalue-block.entry.js +1 -1
  31. package/dist/esm/tttx-list.entry.js +1 -1
  32. package/dist/esm/tttx-loading-spinner.entry.js +1 -1
  33. package/dist/esm/tttx-sorter.entry.js +1 -1
  34. package/dist/esm/tttx-standalone-input.entry.js +9 -8
  35. package/dist/esm/tttx-toolbar.entry.js +1 -1
  36. package/dist/esm/tttx.js +4 -3
  37. package/dist/tttx/{p-8f3badad.entry.js → p-043f9b8a.entry.js} +1 -1
  38. package/dist/tttx/{p-2e43a578.entry.js → p-39485e15.entry.js} +1 -1
  39. package/dist/tttx/p-6dff6b5a.entry.js +3 -0
  40. package/dist/tttx/{p-c4538d55.entry.js → p-82bb3136.entry.js} +1 -1
  41. package/dist/tttx/p-92bc0a38.entry.js +1 -0
  42. package/dist/tttx/{p-e25d5fe2.entry.js → p-96bbf1ed.entry.js} +1 -1
  43. package/dist/tttx/p-afd21f67.entry.js +1 -0
  44. package/dist/tttx/{p-f1d7eb35.entry.js → p-b3a03986.entry.js} +1 -1
  45. package/dist/tttx/{p-ae00cae3.entry.js → p-ccd0065e.entry.js} +1 -1
  46. package/dist/tttx/{p-c72d1a03.entry.js → p-dc5c356b.entry.js} +1 -1
  47. package/dist/tttx/p-f764ffc4.js +2 -0
  48. package/dist/tttx/tttx.esm.js +1 -1
  49. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +16 -12
  50. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +6 -1
  51. package/dist/types/components.d.ts +22 -14
  52. package/dist/types/stencil-public-runtime.d.ts +59 -3
  53. package/loader/index.d.ts +9 -0
  54. package/package.json +1 -1
  55. package/dist/tttx/p-12fc0b16.entry.js +0 -3
  56. package/dist/tttx/p-52a47b7c.js +0 -2
  57. package/dist/tttx/p-72b4c98a.entry.js +0 -1
  58. package/dist/tttx/p-bdb054b2.entry.js +0 -1
@@ -2,6 +2,10 @@
2
2
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
3
3
  }
4
4
 
5
+ .material-symbols-rounded {
6
+ font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
7
+ }
8
+
5
9
  .material-symbols-rounded {
6
10
  font-family: "Material Symbols Rounded", sans-serif;
7
11
  font-weight: 400;
@@ -76,6 +80,7 @@
76
80
  background-color: transparent;
77
81
  height: 26px;
78
82
  font-size: 14px;
83
+ line-height: 16px;
79
84
  border-radius: none;
80
85
  z-index: 2;
81
86
  color: #dc0000;
@@ -85,6 +90,7 @@
85
90
  width: 16px;
86
91
  height: 16px;
87
92
  font-size: 16px;
93
+ line-height: 19px;
88
94
  margin-right: 4px;
89
95
  vertical-align: middle;
90
96
  color: #dc0000;
@@ -122,6 +128,8 @@ label.inputInline .input-container {
122
128
  label {
123
129
  font-weight: 500;
124
130
  font-size: 16px;
131
+ line-height: 19px;
132
+ margin-bottom: 16px;
125
133
  }
126
134
 
127
135
  input:not([type=submit]) {
@@ -131,6 +139,7 @@ input:not([type=submit]) {
131
139
  height: 36px;
132
140
  padding: 0 16px;
133
141
  font-size: 16px;
142
+ line-height: 19px;
134
143
  border: 1px solid #d5d5d5;
135
144
  border-radius: 4px;
136
145
  margin-top: 4px;
@@ -159,9 +168,9 @@ input.invalid:invalid, input.standalone.invalid {
159
168
  }
160
169
 
161
170
  input ~ .errorBubble {
162
- min-height: 27px;
163
171
  position: relative;
164
172
  font-size: 14px;
173
+ line-height: 16px;
165
174
  font-weight: normal;
166
175
  width: 100%;
167
176
  font-family: "Roboto", sans-serif;
@@ -170,17 +179,17 @@ input ~ .errorBubble {
170
179
  align-content: center;
171
180
  align-items: center;
172
181
  justify-items: center;
182
+ margin-top: 4px;
173
183
  }
174
184
 
175
185
  input ~ .errorBubble:not(.visible) {
176
- visibility: hidden;
186
+ display: none;
177
187
  }
178
188
 
179
189
  input ~ .errorBubble span {
180
190
  color: #dc0000;
181
191
  font-size: 16px;
182
192
  margin-right: 4px;
183
- height: 16px;
184
193
  }
185
194
 
186
195
  input.invalid:invalid ~ .errorBubble {
@@ -190,7 +199,6 @@ input.invalid:invalid ~ .errorBubble {
190
199
  width: 100%;
191
200
  font-family: "Roboto", sans-serif;
192
201
  color: #dc0000;
193
- visibility: visible;
194
202
  }
195
203
 
196
204
  input:focus {
@@ -201,6 +209,14 @@ input:focus-visible {
201
209
  outline: none;
202
210
  }
203
211
 
212
+ .secondarylabel {
213
+ color: #757575;
214
+ font-size: 14px;
215
+ line-height: 16px;
216
+ display: flex;
217
+ margin-top: 4px;
218
+ }
219
+
204
220
  :host {
205
221
  display: block;
206
222
  }
@@ -3,6 +3,7 @@ import { Host, h } from '@stencil/core';
3
3
  export class TttxInput {
4
4
  constructor() {
5
5
  this.label = undefined;
6
+ this.secondarylabel = undefined;
6
7
  this.showerrormsg = undefined;
7
8
  this.showerrorbubble = true;
8
9
  this.errormsg = undefined;
@@ -10,11 +11,11 @@ export class TttxInput {
10
11
  this.iconright = undefined;
11
12
  this.inputicon = undefined;
12
13
  this.inline = undefined;
13
- this.inputAutocapitalize = undefined;
14
- this.inputAutofocus = undefined;
15
- this.inputKeyhint = undefined;
16
- this.inputIndex = undefined;
17
- this.inputTitle = undefined;
14
+ this.inputautocapitalize = undefined;
15
+ this.inputautofocus = undefined;
16
+ this.inputkeyhint = undefined;
17
+ this.inputindex = undefined;
18
+ this.inputtitle = undefined;
18
19
  this.autocomplete = undefined;
19
20
  this.checked = undefined;
20
21
  this.disabled = undefined;
@@ -51,7 +52,7 @@ export class TttxInput {
51
52
  }
52
53
  render() {
53
54
  const classNames = ['standalone', this.showerrormsg ? 'invalid' : ''].join(' ');
54
- return (h(Host, null, h("label", { class: this.inline ? 'inputInline' : 'inputBlock' }, this.label, !this.required ? h("span", { class: "optional" }, "\u00A0(optional)") : '', h("div", { class: "input-container" }, this.inputicon && (h("tttx-icon", { class: "input-icon", icon: this.inputicon, color: "grey" })), this.iconleft && (h("tttx-icon", { id: "icon-left", icon: this.iconleft, color: "grey" })), this.iconright && (h("tttx-icon", { id: "icon-right", icon: this.iconright, color: "grey" })), h("input", { class: classNames, autocapitalize: this.inputAutocapitalize, autofocus: this.inputAutofocus, enterkeyhint: this.inputKeyhint, tabindex: this.inputIndex, title: this.inputTitle, autocomplete: this.autocomplete, checked: this.checked, disabled: this.disabled, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readonly: this.readonly, required: this.required, step: this.step, type: this.type, value: this.value, onBlur: this.handleBlur.bind(this), onFocus: this.handleFocus.bind(this), onInput: this.handleChange.bind(this), onInvalid: this.handleInvalid.bind(this) }), this.showerrorbubble && (h("span", { class: ['errorBubble', this.showerrormsg && this.errormsg ? 'visible' : ''].join(' ') }, h("span", { class: "material-symbols-rounded validationicon" }, "warning"), " ", this.errormsg))))));
55
+ return (h(Host, null, h("label", { class: this.inline ? 'inputInline' : 'inputBlock' }, this.label, !this.required ? h("span", { class: "optional" }, "\u00A0(optional)") : '', h("div", { class: "input-container" }, this.inputicon && h("tttx-icon", { class: "input-icon", icon: this.inputicon, color: "grey" }), this.iconleft && h("tttx-icon", { id: "icon-left", icon: this.iconleft, color: "grey" }), this.iconright && h("tttx-icon", { id: "icon-right", icon: this.iconright, color: "grey" }), h("input", { class: classNames, autocapitalize: this.inputautocapitalize, autofocus: this.inputautofocus, enterkeyhint: this.inputkeyhint, tabindex: this.inputindex, title: this.inputtitle, autocomplete: this.autocomplete, checked: this.checked, disabled: this.disabled, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readonly: this.readonly, required: this.required, step: this.step, type: this.type, value: this.value, onBlur: this.handleBlur.bind(this), onFocus: this.handleFocus.bind(this), onInput: this.handleChange.bind(this), onInvalid: this.handleInvalid.bind(this) }), this.secondarylabel && h("span", { class: "secondarylabel" }, this.secondarylabel), this.showerrorbubble && (h("span", { class: ['errorBubble', this.showerrormsg && this.errormsg ? 'visible' : ''].join(' ') }, h("span", { class: "material-symbols-rounded validationicon" }, "warning"), " ", this.errormsg))))));
55
56
  }
56
57
  static get is() { return "tttx-standalone-input"; }
57
58
  static get encapsulation() { return "scoped"; }
@@ -84,6 +85,23 @@ export class TttxInput {
84
85
  "attribute": "label",
85
86
  "reflect": false
86
87
  },
88
+ "secondarylabel": {
89
+ "type": "string",
90
+ "mutable": false,
91
+ "complexType": {
92
+ "original": "string",
93
+ "resolved": "string",
94
+ "references": {}
95
+ },
96
+ "required": false,
97
+ "optional": false,
98
+ "docs": {
99
+ "tags": [],
100
+ "text": "Footnote under the input field"
101
+ },
102
+ "attribute": "secondarylabel",
103
+ "reflect": false
104
+ },
87
105
  "showerrormsg": {
88
106
  "type": "boolean",
89
107
  "mutable": false,
@@ -204,7 +222,7 @@ export class TttxInput {
204
222
  "attribute": "inline",
205
223
  "reflect": false
206
224
  },
207
- "inputAutocapitalize": {
225
+ "inputautocapitalize": {
208
226
  "type": "string",
209
227
  "mutable": false,
210
228
  "complexType": {
@@ -218,10 +236,10 @@ export class TttxInput {
218
236
  "tags": [],
219
237
  "text": ""
220
238
  },
221
- "attribute": "input-autocapitalize",
239
+ "attribute": "inputautocapitalize",
222
240
  "reflect": false
223
241
  },
224
- "inputAutofocus": {
242
+ "inputautofocus": {
225
243
  "type": "boolean",
226
244
  "mutable": false,
227
245
  "complexType": {
@@ -235,10 +253,10 @@ export class TttxInput {
235
253
  "tags": [],
236
254
  "text": ""
237
255
  },
238
- "attribute": "input-autofocus",
256
+ "attribute": "inputautofocus",
239
257
  "reflect": false
240
258
  },
241
- "inputKeyhint": {
259
+ "inputkeyhint": {
242
260
  "type": "string",
243
261
  "mutable": false,
244
262
  "complexType": {
@@ -252,10 +270,10 @@ export class TttxInput {
252
270
  "tags": [],
253
271
  "text": "Defines what action to present for the enter key on virtual keyboards"
254
272
  },
255
- "attribute": "input-keyhint",
273
+ "attribute": "inputkeyhint",
256
274
  "reflect": false
257
275
  },
258
- "inputIndex": {
276
+ "inputindex": {
259
277
  "type": "any",
260
278
  "mutable": false,
261
279
  "complexType": {
@@ -271,14 +289,14 @@ export class TttxInput {
271
289
  "text": "<caption>In HTML (like `index.html`)</caption>\n<tttx-standalone-input input-index=\"1\" />"
272
290
  }, {
273
291
  "name": "example",
274
- "text": "<caption>In TSX files</caption>\n<tttx-standalone-input inputIndex={1} />"
292
+ "text": "<caption>In TSX files</caption>\n<tttx-standalone-input inputindex={1} />"
275
293
  }],
276
294
  "text": "tabindex - Allows the HTML elements to be focusable"
277
295
  },
278
- "attribute": "input-index",
296
+ "attribute": "inputindex",
279
297
  "reflect": false
280
298
  },
281
- "inputTitle": {
299
+ "inputtitle": {
282
300
  "type": "string",
283
301
  "mutable": false,
284
302
  "complexType": {
@@ -292,7 +310,7 @@ export class TttxInput {
292
310
  "tags": [],
293
311
  "text": ""
294
312
  },
295
- "attribute": "input-title",
313
+ "attribute": "inputtitle",
296
314
  "reflect": false
297
315
  },
298
316
  "autocomplete": {
@@ -11,13 +11,16 @@ export default {
11
11
  options: icons,
12
12
  control: { type: 'select' },
13
13
  },
14
- inputIcon: {
14
+ inputicon: {
15
15
  options: icons,
16
16
  control: { type: 'select' },
17
17
  },
18
18
  label: {
19
19
  control: { type: 'text' },
20
20
  },
21
+ secondarylabel: {
22
+ control: { type: 'text' },
23
+ },
21
24
  errormsg: {
22
25
  control: { type: 'text' },
23
26
  },
@@ -75,12 +78,13 @@ export default {
75
78
  },
76
79
  },
77
80
  };
78
- const TemplateTextInput = ({ iconleft, iconright, inputIcon, label, errormsg, showerrorbubble, showerrormsg, inline, checked, disabled, max, maxlength, min, minlength, name, pattern, placeholder, readonly, required, step, type, value, }) => `
81
+ const TemplateTextInput = ({ iconleft, iconright, inputicon, label, secondarylabel, errormsg, showerrorbubble, showerrormsg, inline, checked, disabled, max, maxlength, min, minlength, name, pattern, placeholder, readonly, required, step, type, value, }) => `
79
82
  <tttx-standalone-input
80
83
  iconleft="${iconleft || ''}"
81
84
  iconright="${iconright || ''}"
82
- inputicon="${inputIcon || ''}"
85
+ inputicon="${inputicon || ''}"
83
86
  label="${label}"
87
+ ${secondarylabel ? `secondarylabel="${secondarylabel}"` : ''}
84
88
  errormsg="${errormsg}"
85
89
  showerrorbubble="${showerrorbubble === false ? 'false' : 'true'}"
86
90
  ${showerrormsg ? 'showerrormsg' : ''}
@@ -105,6 +109,8 @@ export const InputField = TemplateTextInput.bind({});
105
109
  InputField.args = {
106
110
  value: '',
107
111
  label: 'First name',
112
+ secondarylabel: 'First name can be up to 100 characters long',
113
+ maxlength: '100',
108
114
  type: 'text',
109
115
  errormsg: 'Please enter your first name',
110
116
  required: false,
@@ -121,8 +127,9 @@ searchField.args = {
121
127
  showerrormsg: false,
122
128
  showerrorbubble: false,
123
129
  placeholder: 'Search',
124
- inline: true,
125
- inputIcon: 'search'
130
+ inline: false,
131
+ inputicon: 'search',
132
+ iconright: 'cancel'
126
133
  };
127
134
  // export const TextInputIconLeft = TemplateTextInput.bind({});
128
135
  // TextInputIconLeft.args = {
@@ -22,6 +22,15 @@ export { TttxToolbar as TttxToolbar } from '../types/components/molecules/tttx-t
22
22
  */
23
23
  export declare const setAssetPath: (path: string) => void;
24
24
 
25
+ /**
26
+ * Used to specify a nonce value that corresponds with an application's CSP.
27
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
28
+ * Alternatively, the nonce value can be set on a meta tag in the DOM head
29
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) which
30
+ * will result in the same behavior.
31
+ */
32
+ export declare const setNonce: (nonce: string) => void
33
+
25
34
  export interface SetPlatformOptions {
26
35
  raf?: (c: FrameRequestCallback) => number;
27
36
  ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
@@ -1,4 +1,4 @@
1
- export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
1
+ export { setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
2
2
  export { TttxButton, defineCustomElement as defineCustomElementTttxButton } from './tttx-button.js';
3
3
  export { TttxFilter, defineCustomElement as defineCustomElementTttxFilter } from './tttx-filter.js';
4
4
  export { TttxForm, defineCustomElement as defineCustomElementTttxForm } from './tttx-form.js';
@@ -93,7 +93,7 @@ function setErrorState(target, hasError, errorMessage) {
93
93
  }
94
94
  }
95
95
 
96
- const tttxFormCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left,.icon-right{flex-basis:24px}.icon-left span,.icon-right span{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left span{margin-left:4px}.icon-right span{margin-right:4px}.icon-right{margin-top:5px}.icon-left{margin-top:5px;margin-left:4px}.iconleft .input{padding-left:4px}.iconright .input{padding-right:4px}.input-icon{position:absolute;margin-top:9px;margin-left:4px}.errormsg{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;border-radius:none;z-index:2;color:#dc0000}.errormsg .validationicon{width:16px;height:16px;font-size:16px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger{color:#dc0000}.optional{color:#757575;font-weight:normal}label.inputBlock{display:block;position:relative;line-height:21px}label.inputInline{display:flex;white-space:nowrap;align-items:center}label.inputInline .input-container{margin:0 4px;width:100%;display:flex;align-items:center;gap:4px;position:relative}label{font-weight:500;font-size:16px}input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date]{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}@media (max-width: 600px){input[type=date]{padding-top:6px}}input.invalid:invalid,input.standalone.invalid{border:1px solid #dc0000}.input-icon~input{padding:0 32px}input~.errorBubble{min-height:27px;position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center}input~.errorBubble:not(.visible){visibility:hidden}input~.errorBubble span{color:#dc0000;font-size:16px;margin-right:4px;height:16px}input.invalid:invalid~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;visibility:visible}input:focus{border-color:#1479c6}input:focus-visible{outline:none}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #D5D5D5}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #D5D5D5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:hover{background:#146EB3;border:1px solid #146EB3}.primary:active{background:#1464A2;border:1px solid #1464A2}.borderless{background:transparent;border:none;color:#212121}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.danger{background:#DC0000;border:1px solid #DC0000;color:white}.danger:hover{background:#C60000;border:1px solid #C60000}.danger:active{background:#B00000;border:1px solid #B00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}:host{display:block}fieldset{margin:0;padding:0;border:none}input[type=submit]{margin-left:auto}";
96
+ const tttxFormCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left,.icon-right{flex-basis:24px}.icon-left span,.icon-right span{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left span{margin-left:4px}.icon-right span{margin-right:4px}.icon-right{margin-top:5px}.icon-left{margin-top:5px;margin-left:4px}.iconleft .input{padding-left:4px}.iconright .input{padding-right:4px}.input-icon{position:absolute;margin-top:9px;margin-left:4px}.errormsg{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;line-height:16px;border-radius:none;z-index:2;color:#dc0000}.errormsg .validationicon{width:16px;height:16px;font-size:16px;line-height:19px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger{color:#dc0000}.optional{color:#757575;font-weight:normal}label.inputBlock{display:block;position:relative;line-height:21px}label.inputInline{display:flex;white-space:nowrap;align-items:center}label.inputInline .input-container{margin:0 4px;width:100%;display:flex;align-items:center;gap:4px;position:relative}label{font-weight:500;font-size:16px;line-height:19px;margin-bottom:16px}input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;line-height:19px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date]{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}@media (max-width: 600px){input[type=date]{padding-top:6px}}input.invalid:invalid,input.standalone.invalid{border:1px solid #dc0000}.input-icon~input{padding:0 32px}input~.errorBubble{position:relative;font-size:14px;line-height:16px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center;margin-top:4px}input~.errorBubble:not(.visible){display:none}input~.errorBubble span{color:#dc0000;font-size:16px;margin-right:4px}input.invalid:invalid~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000}input:focus{border-color:#1479c6}input:focus-visible{outline:none}.secondarylabel{color:#757575;font-size:14px;line-height:16px;display:flex;margin-top:4px}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #D5D5D5}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #D5D5D5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:hover{background:#146EB3;border:1px solid #146EB3}.primary:active{background:#1464A2;border:1px solid #1464A2}.borderless{background:transparent;border:none;color:#212121}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.danger{background:#DC0000;border:1px solid #DC0000;color:white}.danger:hover{background:#C60000;border:1px solid #C60000}.danger:active{background:#B00000;border:1px solid #B00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}:host{display:block}fieldset{margin:0;padding:0;border:none}input[type=submit]{margin-left:auto}";
97
97
 
98
98
  const TttxForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
99
99
  constructor() {
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { d as defineCustomElement$2 } from './tttx-icon2.js';
3
3
 
4
- const tttxStandaloneInputCss = ".material-symbols-rounded.sc-tttx-standalone-input{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded.sc-tttx-standalone-input{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left.sc-tttx-standalone-input,.icon-right.sc-tttx-standalone-input{flex-basis:24px}.icon-left.sc-tttx-standalone-input span.sc-tttx-standalone-input,.icon-right.sc-tttx-standalone-input span.sc-tttx-standalone-input{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left.sc-tttx-standalone-input span.sc-tttx-standalone-input{margin-left:4px}.icon-right.sc-tttx-standalone-input span.sc-tttx-standalone-input{margin-right:4px}.icon-right.sc-tttx-standalone-input{margin-top:5px}.icon-left.sc-tttx-standalone-input{margin-top:5px;margin-left:4px}.iconleft.sc-tttx-standalone-input .input.sc-tttx-standalone-input{padding-left:4px}.iconright.sc-tttx-standalone-input .input.sc-tttx-standalone-input{padding-right:4px}.input-icon.sc-tttx-standalone-input{position:absolute;margin-top:9px;margin-left:4px}.errormsg.sc-tttx-standalone-input{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;border-radius:none;z-index:2;color:#dc0000}.errormsg.sc-tttx-standalone-input .validationicon.sc-tttx-standalone-input{width:16px;height:16px;font-size:16px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger.sc-tttx-standalone-input{color:#dc0000}.optional.sc-tttx-standalone-input{color:#757575;font-weight:normal}label.inputBlock.sc-tttx-standalone-input{display:block;position:relative;line-height:21px}label.inputInline.sc-tttx-standalone-input{display:flex;white-space:nowrap;align-items:center}label.inputInline.sc-tttx-standalone-input .input-container.sc-tttx-standalone-input{margin:0 4px;width:100%;display:flex;align-items:center;gap:4px;position:relative}label.sc-tttx-standalone-input{font-weight:500;font-size:16px}input.sc-tttx-standalone-input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date].sc-tttx-standalone-input{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}@media (max-width: 600px){input[type=date].sc-tttx-standalone-input{padding-top:6px}}input.invalid.sc-tttx-standalone-input:invalid,input.standalone.invalid.sc-tttx-standalone-input{border:1px solid #dc0000}.input-icon.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding:0 32px}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input{min-height:27px;position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input:not(.visible){visibility:hidden}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input span.sc-tttx-standalone-input{color:#dc0000;font-size:16px;margin-right:4px;height:16px}input.invalid.sc-tttx-standalone-input:invalid~.errorBubble.sc-tttx-standalone-input{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;visibility:visible}input.sc-tttx-standalone-input:focus{border-color:#1479c6}input.sc-tttx-standalone-input:focus-visible{outline:none}.sc-tttx-standalone-input-h{display:block}.input-container.sc-tttx-standalone-input{position:relative}#icon-left.sc-tttx-standalone-input{position:absolute;left:8px;top:10px}#icon-left.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding-left:36px}#icon-right.sc-tttx-standalone-input{position:absolute;right:8px;top:10px}#icon-right.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding-right:36px}";
4
+ const tttxStandaloneInputCss = ".material-symbols-rounded.sc-tttx-standalone-input{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded.sc-tttx-standalone-input{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded.sc-tttx-standalone-input{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left.sc-tttx-standalone-input,.icon-right.sc-tttx-standalone-input{flex-basis:24px}.icon-left.sc-tttx-standalone-input span.sc-tttx-standalone-input,.icon-right.sc-tttx-standalone-input span.sc-tttx-standalone-input{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left.sc-tttx-standalone-input span.sc-tttx-standalone-input{margin-left:4px}.icon-right.sc-tttx-standalone-input span.sc-tttx-standalone-input{margin-right:4px}.icon-right.sc-tttx-standalone-input{margin-top:5px}.icon-left.sc-tttx-standalone-input{margin-top:5px;margin-left:4px}.iconleft.sc-tttx-standalone-input .input.sc-tttx-standalone-input{padding-left:4px}.iconright.sc-tttx-standalone-input .input.sc-tttx-standalone-input{padding-right:4px}.input-icon.sc-tttx-standalone-input{position:absolute;margin-top:9px;margin-left:4px}.errormsg.sc-tttx-standalone-input{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;line-height:16px;border-radius:none;z-index:2;color:#dc0000}.errormsg.sc-tttx-standalone-input .validationicon.sc-tttx-standalone-input{width:16px;height:16px;font-size:16px;line-height:19px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger.sc-tttx-standalone-input{color:#dc0000}.optional.sc-tttx-standalone-input{color:#757575;font-weight:normal}label.inputBlock.sc-tttx-standalone-input{display:block;position:relative;line-height:21px}label.inputInline.sc-tttx-standalone-input{display:flex;white-space:nowrap;align-items:center}label.inputInline.sc-tttx-standalone-input .input-container.sc-tttx-standalone-input{margin:0 4px;width:100%;display:flex;align-items:center;gap:4px;position:relative}label.sc-tttx-standalone-input{font-weight:500;font-size:16px;line-height:19px;margin-bottom:16px}input.sc-tttx-standalone-input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;line-height:19px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date].sc-tttx-standalone-input{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}@media (max-width: 600px){input[type=date].sc-tttx-standalone-input{padding-top:6px}}input.invalid.sc-tttx-standalone-input:invalid,input.standalone.invalid.sc-tttx-standalone-input{border:1px solid #dc0000}.input-icon.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding:0 32px}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input{position:relative;font-size:14px;line-height:16px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center;margin-top:4px}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input:not(.visible){display:none}input.sc-tttx-standalone-input~.errorBubble.sc-tttx-standalone-input span.sc-tttx-standalone-input{color:#dc0000;font-size:16px;margin-right:4px}input.invalid.sc-tttx-standalone-input:invalid~.errorBubble.sc-tttx-standalone-input{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000}input.sc-tttx-standalone-input:focus{border-color:#1479c6}input.sc-tttx-standalone-input:focus-visible{outline:none}.secondarylabel.sc-tttx-standalone-input{color:#757575;font-size:14px;line-height:16px;display:flex;margin-top:4px}.sc-tttx-standalone-input-h{display:block}.input-container.sc-tttx-standalone-input{position:relative}#icon-left.sc-tttx-standalone-input{position:absolute;left:8px;top:10px}#icon-left.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding-left:36px}#icon-right.sc-tttx-standalone-input{position:absolute;right:8px;top:10px}#icon-right.sc-tttx-standalone-input~input.sc-tttx-standalone-input{padding-right:36px}";
5
5
 
6
6
  const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
7
  constructor() {
@@ -12,6 +12,7 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
12
  this.blurChanged = createEvent(this, "blurChanged", 7);
13
13
  this.invalidChanged = createEvent(this, "invalidChanged", 7);
14
14
  this.label = undefined;
15
+ this.secondarylabel = undefined;
15
16
  this.showerrormsg = undefined;
16
17
  this.showerrorbubble = true;
17
18
  this.errormsg = undefined;
@@ -19,11 +20,11 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
19
20
  this.iconright = undefined;
20
21
  this.inputicon = undefined;
21
22
  this.inline = undefined;
22
- this.inputAutocapitalize = undefined;
23
- this.inputAutofocus = undefined;
24
- this.inputKeyhint = undefined;
25
- this.inputIndex = undefined;
26
- this.inputTitle = undefined;
23
+ this.inputautocapitalize = undefined;
24
+ this.inputautofocus = undefined;
25
+ this.inputkeyhint = undefined;
26
+ this.inputindex = undefined;
27
+ this.inputtitle = undefined;
27
28
  this.autocomplete = undefined;
28
29
  this.checked = undefined;
29
30
  this.disabled = undefined;
@@ -60,11 +61,12 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
60
61
  }
61
62
  render() {
62
63
  const classNames = ['standalone', this.showerrormsg ? 'invalid' : ''].join(' ');
63
- return (h(Host, null, h("label", { class: this.inline ? 'inputInline' : 'inputBlock' }, this.label, !this.required ? h("span", { class: "optional" }, "\u00A0(optional)") : '', h("div", { class: "input-container" }, this.inputicon && (h("tttx-icon", { class: "input-icon", icon: this.inputicon, color: "grey" })), this.iconleft && (h("tttx-icon", { id: "icon-left", icon: this.iconleft, color: "grey" })), this.iconright && (h("tttx-icon", { id: "icon-right", icon: this.iconright, color: "grey" })), h("input", { class: classNames, autocapitalize: this.inputAutocapitalize, autofocus: this.inputAutofocus, enterkeyhint: this.inputKeyhint, tabindex: this.inputIndex, title: this.inputTitle, autocomplete: this.autocomplete, checked: this.checked, disabled: this.disabled, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readonly: this.readonly, required: this.required, step: this.step, type: this.type, value: this.value, onBlur: this.handleBlur.bind(this), onFocus: this.handleFocus.bind(this), onInput: this.handleChange.bind(this), onInvalid: this.handleInvalid.bind(this) }), this.showerrorbubble && (h("span", { class: ['errorBubble', this.showerrormsg && this.errormsg ? 'visible' : ''].join(' ') }, h("span", { class: "material-symbols-rounded validationicon" }, "warning"), " ", this.errormsg))))));
64
+ return (h(Host, null, h("label", { class: this.inline ? 'inputInline' : 'inputBlock' }, this.label, !this.required ? h("span", { class: "optional" }, "\u00A0(optional)") : '', h("div", { class: "input-container" }, this.inputicon && h("tttx-icon", { class: "input-icon", icon: this.inputicon, color: "grey" }), this.iconleft && h("tttx-icon", { id: "icon-left", icon: this.iconleft, color: "grey" }), this.iconright && h("tttx-icon", { id: "icon-right", icon: this.iconright, color: "grey" }), h("input", { class: classNames, autocapitalize: this.inputautocapitalize, autofocus: this.inputautofocus, enterkeyhint: this.inputkeyhint, tabindex: this.inputindex, title: this.inputtitle, autocomplete: this.autocomplete, checked: this.checked, disabled: this.disabled, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readonly: this.readonly, required: this.required, step: this.step, type: this.type, value: this.value, onBlur: this.handleBlur.bind(this), onFocus: this.handleFocus.bind(this), onInput: this.handleChange.bind(this), onInvalid: this.handleInvalid.bind(this) }), this.secondarylabel && h("span", { class: "secondarylabel" }, this.secondarylabel), this.showerrorbubble && (h("span", { class: ['errorBubble', this.showerrormsg && this.errormsg ? 'visible' : ''].join(' ') }, h("span", { class: "material-symbols-rounded validationicon" }, "warning"), " ", this.errormsg))))));
64
65
  }
65
66
  static get style() { return tttxStandaloneInputCss; }
66
67
  }, [2, "tttx-standalone-input", {
67
68
  "label": [1],
69
+ "secondarylabel": [1],
68
70
  "showerrormsg": [4],
69
71
  "showerrorbubble": [4],
70
72
  "errormsg": [1],
@@ -72,11 +74,11 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
72
74
  "iconright": [1],
73
75
  "inputicon": [1],
74
76
  "inline": [4],
75
- "inputAutocapitalize": [1, "input-autocapitalize"],
76
- "inputAutofocus": [4, "input-autofocus"],
77
- "inputKeyhint": [1, "input-keyhint"],
78
- "inputIndex": [8, "input-index"],
79
- "inputTitle": [1, "input-title"],
77
+ "inputautocapitalize": [1],
78
+ "inputautofocus": [4],
79
+ "inputkeyhint": [1],
80
+ "inputindex": [8],
81
+ "inputtitle": [1],
80
82
  "autocomplete": [1],
81
83
  "checked": [4],
82
84
  "disabled": [4],
@@ -41,6 +41,18 @@ const isComplexType = (o) => {
41
41
  o = typeof o;
42
42
  return o === 'object' || o === 'function';
43
43
  };
44
+ /**
45
+ * Helper method for querying a `meta` tag that contains a nonce value
46
+ * out of a DOM's head.
47
+ *
48
+ * @param doc The DOM containing the `head` to query against
49
+ * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag
50
+ * exists or the tag has no content.
51
+ */
52
+ function queryNonceMetaTagContent(doc) {
53
+ var _a, _b, _c;
54
+ return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;
55
+ }
44
56
  /**
45
57
  * Production h() function based on Preact by
46
58
  * Jason Miller (@developit)
@@ -49,7 +61,6 @@ const isComplexType = (o) => {
49
61
  *
50
62
  * Modified for Stencil's compiler and vdom
51
63
  */
52
- // const stack: any[] = [];
53
64
  // export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;
54
65
  // export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;
55
66
  const h = (nodeName, vnodeData, ...children) => {
@@ -108,6 +119,14 @@ const h = (nodeName, vnodeData, ...children) => {
108
119
  }
109
120
  return vnode;
110
121
  };
122
+ /**
123
+ * A utility function for creating a virtual DOM node from a tag and some
124
+ * possible text content.
125
+ *
126
+ * @param tag the tag for this element
127
+ * @param text possible text content for the node
128
+ * @returns a newly-minted virtual DOM node
129
+ */
111
130
  const newVNode = (tag, text) => {
112
131
  const vnode = {
113
132
  $flags$: 0,
@@ -125,6 +144,12 @@ const newVNode = (tag, text) => {
125
144
  return vnode;
126
145
  };
127
146
  const Host = {};
147
+ /**
148
+ * Check whether a given node is a Host node or not
149
+ *
150
+ * @param node the virtual DOM node to check
151
+ * @returns whether it's a Host node or not
152
+ */
128
153
  const isHost = (node) => node && node.$tag$ === Host;
129
154
  /**
130
155
  * Parse a new property value for a given property type.
@@ -213,6 +238,7 @@ const registerStyle = (scopeId, cssText, allowCS) => {
213
238
  styles.set(scopeId, style);
214
239
  };
215
240
  const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
241
+ var _a;
216
242
  let scopeId = getScopeId(cmpMeta);
217
243
  const style = styles.get(scopeId);
218
244
  // if an element is NOT connected then getRootNode() will return the wrong root node
@@ -232,6 +258,11 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
232
258
  styleElm = doc.createElement('style');
233
259
  styleElm.innerHTML = style;
234
260
  }
261
+ // Apply CSP nonce to the style tag if it exists
262
+ const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
263
+ if (nonce != null) {
264
+ styleElm.setAttribute('nonce', nonce);
265
+ }
235
266
  styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
236
267
  }
237
268
  if (appliedStyles) {
@@ -466,6 +497,21 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
466
497
  }
467
498
  return elm;
468
499
  };
500
+ /**
501
+ * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and
502
+ * add them to the DOM in the appropriate place.
503
+ *
504
+ * @param parentElm the DOM node which should be used as a parent for the new
505
+ * DOM nodes
506
+ * @param before a child of the `parentElm` which the new children should be
507
+ * inserted before (optional)
508
+ * @param parentVNode the parent virtual DOM node
509
+ * @param vnodes the new child virtual DOM nodes to produce DOM nodes for
510
+ * @param startIdx the index in the child virtual DOM nodes at which to start
511
+ * creating DOM nodes (inclusive)
512
+ * @param endIdx the index in the child virtual DOM nodes at which to stop
513
+ * creating DOM nodes (inclusive)
514
+ */
469
515
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
470
516
  let containerElm = (parentElm);
471
517
  let childNode;
@@ -482,6 +528,19 @@ const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) =>
482
528
  }
483
529
  }
484
530
  };
531
+ /**
532
+ * Remove the DOM elements corresponding to a list of {@link d.VNode} objects.
533
+ * This can be used to, for instance, clean up after a list of children which
534
+ * should no longer be shown.
535
+ *
536
+ * This function also handles some of Stencil's slot relocation logic.
537
+ *
538
+ * @param vnodes a list of virtual DOM nodes to remove
539
+ * @param startIdx the index at which to start removing nodes (inclusive)
540
+ * @param endIdx the index at which to stop removing nodes (inclusive)
541
+ * @param vnode a VNode
542
+ * @param elm an element
543
+ */
485
544
  const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {
486
545
  for (; startIdx <= endIdx; ++startIdx) {
487
546
  if ((vnode = vnodes[startIdx])) {
@@ -711,7 +770,8 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
711
770
  *
712
771
  * So, in other words, if `key` attrs are not set on VNodes which may be
713
772
  * changing order within a `children` array or something along those lines then
714
- * we could obtain a false positive and then have to do needless re-rendering.
773
+ * we could obtain a false negative and then have to do needless re-rendering
774
+ * (i.e. we'd say two VNodes aren't equal when in fact they should be).
715
775
  *
716
776
  * @param leftVNode the first VNode to check
717
777
  * @param rightVNode the second VNode to check
@@ -784,6 +844,18 @@ const callNodeRefs = (vNode) => {
784
844
  vNode.$children$ && vNode.$children$.map(callNodeRefs);
785
845
  }
786
846
  };
847
+ /**
848
+ * The main entry point for Stencil's virtual DOM-based rendering engine
849
+ *
850
+ * Given a {@link d.HostRef} container and some virtual DOM nodes, this
851
+ * function will handle creating a virtual DOM tree with a single root, patching
852
+ * the current virtual DOM tree onto an old one (if any), dealing with slot
853
+ * relocation, and reflecting attributes.
854
+ *
855
+ * @param hostRef data needed to root and render the virtual DOM tree, such as
856
+ * the DOM node into which it should be rendered.
857
+ * @param renderFnResults the virtual DOM nodes to be rendered
858
+ */
787
859
  const renderVdom = (hostRef, renderFnResults) => {
788
860
  const hostElm = hostRef.$hostElement$;
789
861
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1230,6 +1302,7 @@ const disconnectedCallback = (elm) => {
1230
1302
  }
1231
1303
  };
1232
1304
  const bootstrapLazy = (lazyBundles, options = {}) => {
1305
+ var _a;
1233
1306
  const endBootstrap = createTime();
1234
1307
  const cmpTags = [];
1235
1308
  const exclude = options.exclude || [];
@@ -1308,6 +1381,11 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1308
1381
  {
1309
1382
  visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
1310
1383
  visibilityStyle.setAttribute('data-styles', '');
1384
+ // Apply CSP nonce to the style tag if it exists
1385
+ const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
1386
+ if (nonce != null) {
1387
+ visibilityStyle.setAttribute('nonce', nonce);
1388
+ }
1311
1389
  head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
1312
1390
  }
1313
1391
  // Process deferred connectedCallbacks now all components have been registered
@@ -1323,6 +1401,13 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1323
1401
  // Fallback appLoad event
1324
1402
  endBootstrap();
1325
1403
  };
1404
+ /**
1405
+ * Assigns the given value to the nonce property on the runtime platform object.
1406
+ * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.
1407
+ * @param nonce The value to be assigned to the platform nonce property.
1408
+ * @returns void
1409
+ */
1410
+ const setNonce = (nonce) => (plt.$nonce$ = nonce);
1326
1411
  const hostRefs = /*@__PURE__*/ new WeakMap();
1327
1412
  const getHostRef = (ref) => hostRefs.get(ref);
1328
1413
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
@@ -1429,4 +1514,4 @@ const flush = () => {
1429
1514
  const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1430
1515
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1431
1516
 
1432
- export { Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r };
1517
+ export { Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
@@ -1,7 +1,8 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-86faeaab.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-e888a5f4.js';
2
+ export { s as setNonce } from './index-e888a5f4.js';
2
3
 
3
4
  /*
4
- Stencil Client Patch Esm v2.20.0 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Patch Esm v2.22.3 | MIT Licensed | https://stenciljs.com
5
6
  */
6
7
  const patchEsm = () => {
7
8
  return promiseResolve();
@@ -10,7 +11,7 @@ const patchEsm = () => {
10
11
  const defineCustomElements = (win, options) => {
11
12
  if (typeof window === 'undefined') return Promise.resolve();
12
13
  return patchEsm().then(() => {
13
- return bootstrapLazy([["tttx-icon",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]],["tttx-button",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"design":[1]}]]],["tttx-filter",[[1,"tttx-filter",{"filterKey":[1,"filter-key"],"filterOptions":[1,"filter-options"],"showSelectAll":[4,"show-select-all"],"showSearchField":[4,"show-search-field"],"showOptionIcons":[4,"show-option-icons"],"filterButtonStyle":[1,"filter-button-style"],"filterHeader":[1,"filter-header"],"showPopover":[32],"displayedFilterSettings":[32],"selectedFilters":[32],"filterSearchTerm":[32],"allSelected":[32]}]]],["tttx-list",[[1,"tttx-list",{"data":[1025],"name":[1]}]]],["tttx-sorter",[[1,"tttx-sorter",{"sorterKey":[1,"sorter-key"],"defaultSortDirection":[1,"default-sort-direction"],"fieldOptionsData":[1,"field-options-data"],"defaultOption":[1,"default-option"],"selectedField":[32],"sortDirection":[32],"dropdownExpand":[32],"dropdownOptions":[32]}]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconright":[1],"inputicon":[1],"inline":[4],"inputAutocapitalize":[1,"input-autocapitalize"],"inputAutofocus":[4,"input-autofocus"],"inputKeyhint":[1,"input-keyhint"],"inputIndex":[8,"input-index"],"inputTitle":[1,"input-title"],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-form",[[1,"tttx-form",{"formschema":[1032],"submitValue":[1032,"submit-value"]}]]],["tttx-keyvalue-block",[[1,"tttx-keyvalue-block",{"keyvalues":[8],"horizontal":[4]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-toolbar",[[1,"tttx-toolbar",{"border":[4]}]]]], options);
14
+ return bootstrapLazy([["tttx-icon",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]],["tttx-button",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"design":[1]}]]],["tttx-filter",[[1,"tttx-filter",{"filterKey":[1,"filter-key"],"filterOptions":[1,"filter-options"],"showSelectAll":[4,"show-select-all"],"showSearchField":[4,"show-search-field"],"showOptionIcons":[4,"show-option-icons"],"filterButtonStyle":[1,"filter-button-style"],"filterHeader":[1,"filter-header"],"showPopover":[32],"displayedFilterSettings":[32],"selectedFilters":[32],"filterSearchTerm":[32],"allSelected":[32]}]]],["tttx-list",[[1,"tttx-list",{"data":[1025],"name":[1]}]]],["tttx-sorter",[[1,"tttx-sorter",{"sorterKey":[1,"sorter-key"],"defaultSortDirection":[1,"default-sort-direction"],"fieldOptionsData":[1,"field-options-data"],"defaultOption":[1,"default-option"],"selectedField":[32],"sortDirection":[32],"dropdownExpand":[32],"dropdownOptions":[32]}]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconright":[1],"inputicon":[1],"inline":[4],"inputautocapitalize":[1],"inputautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-form",[[1,"tttx-form",{"formschema":[1032],"submitValue":[1032,"submit-value"]}]]],["tttx-keyvalue-block",[[1,"tttx-keyvalue-block",{"keyvalues":[8],"horizontal":[4]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-toolbar",[[1,"tttx-toolbar",{"border":[4]}]]]], options);
14
15
  });
15
16
  };
16
17