@3t-transform/threeteeui 0.2.78 → 0.2.80

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 (34) hide show
  1. package/dist/cjs/{domsanitiser.options-1dfa7205.js → domsanitiser.options-32e670aa.js} +115 -75
  2. package/dist/cjs/tttx-dialog-box.cjs.entry.js +1 -1
  3. package/dist/cjs/tttx-form.cjs.entry.js +1 -1
  4. package/dist/cjs/tttx-list.cjs.entry.js +1 -1
  5. package/dist/cjs/tttx-multiselect-box.cjs.entry.js +1 -1
  6. package/dist/cjs/tttx-select-box.cjs.entry.js +1 -1
  7. package/dist/cjs/tttx-tabs.cjs.entry.js +1 -1
  8. package/dist/cjs/tttx-textarea.cjs.entry.js +1 -1
  9. package/dist/cjs/tttx-tree-view.cjs.entry.js +1 -1
  10. package/dist/collection/components/molecules/tttx-textarea/tttx-textarea.css +20 -11
  11. package/dist/components/domsanitiser.options.js +115 -75
  12. package/dist/components/tttx-textarea.js +1 -1
  13. package/dist/esm/{domsanitiser.options-97a33389.js → domsanitiser.options-68752a19.js} +115 -75
  14. package/dist/esm/tttx-dialog-box.entry.js +1 -1
  15. package/dist/esm/tttx-form.entry.js +1 -1
  16. package/dist/esm/tttx-list.entry.js +1 -1
  17. package/dist/esm/tttx-multiselect-box.entry.js +1 -1
  18. package/dist/esm/tttx-select-box.entry.js +1 -1
  19. package/dist/esm/tttx-tabs.entry.js +1 -1
  20. package/dist/esm/tttx-textarea.entry.js +1 -1
  21. package/dist/esm/tttx-tree-view.entry.js +1 -1
  22. package/dist/tttx/{p-f34bface.entry.js → p-02da8327.entry.js} +1 -1
  23. package/dist/tttx/{p-b30a1025.entry.js → p-1c3ab606.entry.js} +1 -1
  24. package/dist/tttx/{p-5f1f699d.entry.js → p-4a967804.entry.js} +1 -1
  25. package/dist/tttx/p-55831705.entry.js +1 -0
  26. package/dist/tttx/{p-75c31e23.entry.js → p-6e23f980.entry.js} +1 -1
  27. package/dist/tttx/p-88ee2406.js +3 -0
  28. package/dist/tttx/{p-129df5a2.entry.js → p-9556a164.entry.js} +1 -1
  29. package/dist/tttx/{p-887f56cb.entry.js → p-a3b446f8.entry.js} +1 -1
  30. package/dist/tttx/{p-67c342d7.entry.js → p-f4594fe2.entry.js} +1 -1
  31. package/dist/tttx/tttx.esm.js +1 -1
  32. package/package.json +1 -1
  33. package/dist/tttx/p-5ed38d61.js +0 -3
  34. package/dist/tttx/p-9c3f730f.entry.js +0 -1
@@ -3,7 +3,7 @@
3
3
  const _commonjsHelpers = require('./_commonjsHelpers-537d719a.js');
4
4
 
5
5
  var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
6
- /*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */
6
+ /*! @license DOMPurify 3.0.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.6/LICENSE */
7
7
 
8
8
  (function (global, factory) {
9
9
  module.exports = factory() ;
@@ -26,12 +26,6 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
26
26
  construct
27
27
  } = typeof Reflect !== 'undefined' && Reflect;
28
28
 
29
- if (!apply) {
30
- apply = function apply(fun, thisValue, args) {
31
- return fun.apply(thisValue, args);
32
- };
33
- }
34
-
35
29
  if (!freeze) {
36
30
  freeze = function freeze(x) {
37
31
  return x;
@@ -44,6 +38,12 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
44
38
  };
45
39
  }
46
40
 
41
+ if (!apply) {
42
+ apply = function apply(fun, thisValue, args) {
43
+ return fun.apply(thisValue, args);
44
+ };
45
+ }
46
+
47
47
  if (!construct) {
48
48
  construct = function construct(Func, args) {
49
49
  return new Func(...args);
@@ -61,6 +61,13 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
61
61
  const stringTrim = unapply(String.prototype.trim);
62
62
  const regExpTest = unapply(RegExp.prototype.test);
63
63
  const typeErrorCreate = unconstruct(TypeError);
64
+ /**
65
+ * Creates a new function that calls the given function with a specified thisArg and arguments.
66
+ *
67
+ * @param {Function} func - The function to be wrapped and called.
68
+ * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.
69
+ */
70
+
64
71
  function unapply(func) {
65
72
  return function (thisArg) {
66
73
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
@@ -70,6 +77,14 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
70
77
  return apply(func, thisArg, args);
71
78
  };
72
79
  }
80
+ /**
81
+ * Creates a new function that constructs an instance of the given constructor function with the provided arguments.
82
+ *
83
+ * @param {Function} func - The constructor function to be wrapped and called.
84
+ * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.
85
+ */
86
+
87
+
73
88
  function unconstruct(func) {
74
89
  return function () {
75
90
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
@@ -79,12 +94,18 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
79
94
  return construct(func, args);
80
95
  };
81
96
  }
82
- /* Add properties to a lookup table */
97
+ /**
98
+ * Add properties to a lookup table
99
+ *
100
+ * @param {Object} set - The set to which elements will be added.
101
+ * @param {Array} array - The array containing elements to be added to the set.
102
+ * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.
103
+ * @returns {Object} The modified set with added elements.
104
+ */
83
105
 
84
- function addToSet(set, array, transformCaseFunc) {
85
- var _transformCaseFunc;
86
106
 
87
- transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;
107
+ function addToSet(set, array) {
108
+ let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;
88
109
 
89
110
  if (setPrototypeOf) {
90
111
  // Make 'in' and truthy checks like Boolean(set.constructor)
@@ -116,19 +137,32 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
116
137
 
117
138
  return set;
118
139
  }
119
- /* Shallow clone an object */
140
+ /**
141
+ * Shallow clone an object
142
+ *
143
+ * @param {Object} object - The object to be cloned.
144
+ * @returns {Object} A new object that copies the original.
145
+ */
146
+
120
147
 
121
148
  function clone(object) {
122
149
  const newObject = create(null);
123
150
 
124
151
  for (const [property, value] of entries(object)) {
125
- newObject[property] = value;
152
+ if (getOwnPropertyDescriptor(object, property) !== undefined) {
153
+ newObject[property] = value;
154
+ }
126
155
  }
127
156
 
128
157
  return newObject;
129
158
  }
130
- /* This method automatically checks if the prop is function
131
- * or getter and behaves accordingly. */
159
+ /**
160
+ * This method automatically checks if the prop is function or getter and behaves accordingly.
161
+ *
162
+ * @param {Object} object - The object to look up the getter function in its prototype chain.
163
+ * @param {String} prop - The property name for which to find the getter function.
164
+ * @returns {Function} The getter function found in the prototype chain or a fallback function.
165
+ */
132
166
 
133
167
  function lookupGetter(object, prop) {
134
168
  while (object !== null) {
@@ -203,7 +237,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
203
237
  DOCTYPE_NAME: DOCTYPE_NAME
204
238
  });
205
239
 
206
- const getGlobal = () => typeof window === 'undefined' ? null : window;
240
+ const getGlobal = function getGlobal() {
241
+ return typeof window === 'undefined' ? null : window;
242
+ };
207
243
  /**
208
244
  * Creates a no-op policy for internal use only.
209
245
  * Don't export this function outside this module!
@@ -261,7 +297,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
261
297
  */
262
298
 
263
299
 
264
- DOMPurify.version = '3.0.5';
300
+ DOMPurify.version = '3.0.6';
265
301
  /**
266
302
  * Array of elements that DOMPurify removed during sanitation.
267
303
  * Empty if nothing was removed.
@@ -276,11 +312,11 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
276
312
  return DOMPurify;
277
313
  }
278
314
 
279
- const originalDocument = window.document;
280
- const currentScript = originalDocument.currentScript;
281
315
  let {
282
316
  document
283
317
  } = window;
318
+ const originalDocument = document;
319
+ const currentScript = originalDocument.currentScript;
284
320
  const {
285
321
  DocumentFragment,
286
322
  HTMLTemplateElement,
@@ -360,7 +396,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
360
396
  * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
361
397
  */
362
398
 
363
- let CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
399
+ let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
364
400
  tagNameCheck: {
365
401
  writable: true,
366
402
  configurable: false,
@@ -484,10 +520,10 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
484
520
  const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
485
521
  /* Parsing of strict XHTML documents */
486
522
 
487
- let PARSER_MEDIA_TYPE;
523
+ let PARSER_MEDIA_TYPE = null;
488
524
  const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];
489
525
  const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
490
- let transformCaseFunc;
526
+ let transformCaseFunc = null;
491
527
  /* Keep a reference to config to pass to hooks */
492
528
 
493
529
  let CONFIG = null;
@@ -508,7 +544,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
508
544
  // eslint-disable-next-line complexity
509
545
 
510
546
 
511
- const _parseConfig = function _parseConfig(cfg) {
547
+ const _parseConfig = function _parseConfig() {
548
+ let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
549
+
512
550
  if (CONFIG && CONFIG === cfg) {
513
551
  return;
514
552
  }
@@ -727,8 +765,6 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
727
765
  const ALL_MATHML_TAGS = addToSet({}, mathMl$1);
728
766
  addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
729
767
  /**
730
- *
731
- *
732
768
  * @param {Element} element a DOM element whose namespace is being checked
733
769
  * @returns {boolean} Return false if the element has a
734
770
  * namespace that a spec-compliant parser would never
@@ -884,8 +920,8 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
884
920
 
885
921
  const _initDocument = function _initDocument(dirty) {
886
922
  /* Create a HTML document */
887
- let doc;
888
- let leadingWhitespace;
923
+ let doc = null;
924
+ let leadingWhitespace = null;
889
925
 
890
926
  if (FORCE_BODY) {
891
927
  dirty = '<remove></remove>' + dirty;
@@ -938,16 +974,16 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
938
974
  return WHOLE_DOCUMENT ? doc.documentElement : body;
939
975
  };
940
976
  /**
941
- * _createIterator
977
+ * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
942
978
  *
943
- * @param {Document} root document/fragment to create iterator for
944
- * @return {Iterator} iterator instance
979
+ * @param {Node} root The root element or node to start traversing on.
980
+ * @return {NodeIterator} The created NodeIterator
945
981
  */
946
982
 
947
983
 
948
- const _createIterator = function _createIterator(root) {
984
+ const _createNodeIterator = function _createNodeIterator(root) {
949
985
  return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise
950
- NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);
986
+ NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null);
951
987
  };
952
988
  /**
953
989
  * _isClobbered
@@ -961,15 +997,15 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
961
997
  return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');
962
998
  };
963
999
  /**
964
- * _isNode
1000
+ * Checks whether the given object is a DOM node.
965
1001
  *
966
- * @param {Node} obj object to check whether it's a DOM node
1002
+ * @param {Node} object object to check whether it's a DOM node
967
1003
  * @return {Boolean} true is object is a DOM node
968
1004
  */
969
1005
 
970
1006
 
971
1007
  const _isNode = function _isNode(object) {
972
- return typeof Node === 'object' ? object instanceof Node : object && typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';
1008
+ return typeof Node === 'function' && object instanceof Node;
973
1009
  };
974
1010
  /**
975
1011
  * _executeHook
@@ -1003,7 +1039,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1003
1039
 
1004
1040
 
1005
1041
  const _sanitizeElements = function _sanitizeElements(currentNode) {
1006
- let content;
1042
+ let content = null;
1007
1043
  /* Execute a hook if present */
1008
1044
 
1009
1045
  _executeHook('beforeSanitizeElements', currentNode, null);
@@ -1028,7 +1064,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1028
1064
  /* Detect mXSS attempts abusing namespace confusion */
1029
1065
 
1030
1066
 
1031
- if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
1067
+ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
1032
1068
  _forceRemove(currentNode);
1033
1069
 
1034
1070
  return true;
@@ -1038,9 +1074,14 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1038
1074
 
1039
1075
  if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
1040
1076
  /* Check if we have a custom element to handle */
1041
- if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
1042
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
1043
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
1077
+ if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
1078
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
1079
+ return false;
1080
+ }
1081
+
1082
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
1083
+ return false;
1084
+ }
1044
1085
  }
1045
1086
  /* Keep content except for bad-listed elements */
1046
1087
 
@@ -1084,9 +1125,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1084
1125
  if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
1085
1126
  /* Get the element's text content */
1086
1127
  content = currentNode.textContent;
1087
- content = stringReplace(content, MUSTACHE_EXPR, ' ');
1088
- content = stringReplace(content, ERB_EXPR, ' ');
1089
- content = stringReplace(content, TMPLIT_EXPR, ' ');
1128
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
1129
+ content = stringReplace(content, expr, ' ');
1130
+ });
1090
1131
 
1091
1132
  if (currentNode.textContent !== content) {
1092
1133
  arrayPush(DOMPurify.removed, {
@@ -1128,7 +1169,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1128
1169
  if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND
1129
1170
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
1130
1171
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
1131
- _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
1172
+ _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
1132
1173
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
1133
1174
  lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
1134
1175
  return false;
@@ -1142,14 +1183,16 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1142
1183
  return true;
1143
1184
  };
1144
1185
  /**
1145
- * _basicCustomElementCheck
1186
+ * _isBasicCustomElement
1146
1187
  * checks if at least one dash is included in tagName, and it's not the first char
1147
1188
  * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
1189
+ *
1148
1190
  * @param {string} tagName name of the tag of the node to sanitize
1191
+ * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
1149
1192
  */
1150
1193
 
1151
1194
 
1152
- const _basicCustomElementTest = function _basicCustomElementTest(tagName) {
1195
+ const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
1153
1196
  return tagName.indexOf('-') > 0;
1154
1197
  };
1155
1198
  /**
@@ -1165,12 +1208,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1165
1208
 
1166
1209
 
1167
1210
  const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
1168
- let attr;
1169
- let value;
1170
- let lcName;
1171
- let l;
1172
1211
  /* Execute a hook if present */
1173
-
1174
1212
  _executeHook('beforeSanitizeAttributes', currentNode, null);
1175
1213
 
1176
1214
  const {
@@ -1188,17 +1226,18 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1188
1226
  keepAttr: true,
1189
1227
  allowedAttributes: ALLOWED_ATTR
1190
1228
  };
1191
- l = attributes.length;
1229
+ let l = attributes.length;
1192
1230
  /* Go backwards over all attributes; safely remove bad ones */
1193
1231
 
1194
1232
  while (l--) {
1195
- attr = attributes[l];
1233
+ const attr = attributes[l];
1196
1234
  const {
1197
1235
  name,
1198
- namespaceURI
1236
+ namespaceURI,
1237
+ value: attrValue
1199
1238
  } = attr;
1200
- value = name === 'value' ? attr.value : stringTrim(attr.value);
1201
- lcName = transformCaseFunc(name);
1239
+ const lcName = transformCaseFunc(name);
1240
+ let value = name === 'value' ? attrValue : stringTrim(attrValue);
1202
1241
  /* Execute a hook if present */
1203
1242
 
1204
1243
  hookEvent.attrName = lcName;
@@ -1236,9 +1275,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1236
1275
 
1237
1276
 
1238
1277
  if (SAFE_FOR_TEMPLATES) {
1239
- value = stringReplace(value, MUSTACHE_EXPR, ' ');
1240
- value = stringReplace(value, ERB_EXPR, ' ');
1241
- value = stringReplace(value, TMPLIT_EXPR, ' ');
1278
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
1279
+ value = stringReplace(value, expr, ' ');
1280
+ });
1242
1281
  }
1243
1282
  /* Is `value` valid for this attribute? */
1244
1283
 
@@ -1307,9 +1346,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1307
1346
 
1308
1347
 
1309
1348
  const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
1310
- let shadowNode;
1349
+ let shadowNode = null;
1311
1350
 
1312
- const shadowIterator = _createIterator(fragment);
1351
+ const shadowIterator = _createNodeIterator(fragment);
1313
1352
  /* Execute a hook if present */
1314
1353
 
1315
1354
 
@@ -1345,17 +1384,17 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1345
1384
  * Public method providing core sanitation functionality
1346
1385
  *
1347
1386
  * @param {String|Node} dirty string or DOM node
1348
- * @param {Object} configuration object
1387
+ * @param {Object} cfg object
1349
1388
  */
1350
1389
  // eslint-disable-next-line complexity
1351
1390
 
1352
1391
 
1353
1392
  DOMPurify.sanitize = function (dirty) {
1354
1393
  let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1355
- let body;
1356
- let importedNode;
1357
- let currentNode;
1358
- let returnNode;
1394
+ let body = null;
1395
+ let importedNode = null;
1396
+ let currentNode = null;
1397
+ let returnNode = null;
1359
1398
  /* Make sure we have a string to sanitize.
1360
1399
  DO NOT return early, as this will return the wrong type if
1361
1400
  the user has requested a DOM object rather than a string */
@@ -1450,7 +1489,7 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1450
1489
  /* Get node iterator */
1451
1490
 
1452
1491
 
1453
- const nodeIterator = _createIterator(IN_PLACE ? dirty : body);
1492
+ const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
1454
1493
  /* Now start iterating over the created document */
1455
1494
 
1456
1495
 
@@ -1515,9 +1554,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1515
1554
 
1516
1555
 
1517
1556
  if (SAFE_FOR_TEMPLATES) {
1518
- serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');
1519
- serializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');
1520
- serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR, ' ');
1557
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
1558
+ serializedHTML = stringReplace(serializedHTML, expr, ' ');
1559
+ });
1521
1560
  }
1522
1561
 
1523
1562
  return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
@@ -1530,7 +1569,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1530
1569
  */
1531
1570
 
1532
1571
 
1533
- DOMPurify.setConfig = function (cfg) {
1572
+ DOMPurify.setConfig = function () {
1573
+ let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1574
+
1534
1575
  _parseConfig(cfg);
1535
1576
 
1536
1577
  SET_CONFIG = true;
@@ -1551,9 +1592,9 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1551
1592
  * Uses last set config, if any. Otherwise, uses config defaults.
1552
1593
  * isValidAttribute
1553
1594
  *
1554
- * @param {string} tag Tag name of containing element.
1555
- * @param {string} attr Attribute name.
1556
- * @param {string} value Attribute value.
1595
+ * @param {String} tag Tag name of containing element.
1596
+ * @param {String} attr Attribute name.
1597
+ * @param {String} value Attribute value.
1557
1598
  * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.
1558
1599
  */
1559
1600
 
@@ -1616,7 +1657,6 @@ var purify = _commonjsHelpers.createCommonjsModule(function (module, exports) {
1616
1657
  /**
1617
1658
  * RemoveAllHooks
1618
1659
  * Public method to remove all DOMPurify hooks
1619
- *
1620
1660
  */
1621
1661
 
1622
1662
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  const tttxDialogBoxCss = ".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}h3{margin-block-start:0em;margin-block-end:0em}.dialog-box{background-color:#ffffff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0px 1px 5px #1111114d;padding:0}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}dialog::backdrop{background-color:#75757580}.dialog-box.small{width:400px;min-height:200px}.dialog-box.regular{width:600px;min-height:200px}.dialog-box.large{width:900px;min-height:200px}.dialog-box.mobile{max-width:424px;width:calc(100vw - 20px)}.dialog-box-clickable{cursor:pointer}.contents{display:flex;flex-direction:column;min-height:inherit}.dialog-box-padding{padding:8px 16px}.dialog-box-align-right{margin-left:auto;display:flex}.dialog-box-header-box{border-bottom:1px solid #d5d5d5;display:flex;flex-direction:row;height:36px}.dialog-box-header{display:flex;align-items:center;width:100%}.dialog-box-title{font-size:18;font-weight:500;font-family:\"Roboto\", serif}.dialog-box-icon{padding-right:8px;width:24px;height:24px}.dialog-box-icon-close{margin-left:auto;padding-top:3px;width:24px;height:24px}.dialog-box-content{font-size:16;font-weight:400;font-family:\"Roboto\", serif}.dialog-box-body{text-overflow:ellipsis}.dialog-box-body-box{padding:16px}.dialog-box-footer-box{display:flex;flex-direction:row;margin-top:auto;border-top:1px solid #d5d5d5;height:36px}.dialog-box-footer{display:flex;align-items:center;width:100%}.dialog-box-spacing-button{margin-right:8px}.dialog-box-header-box.info{border-bottom:1px solid #1479c6}.dialog-box-header-box.success{border-bottom:1px solid #a2bb31}.dialog-box-header-box.warning{border-bottom:1px solid #f59500}.dialog-box-header-box.critical{border-bottom:1px solid #dc0000}";
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  /**
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  const tttxListCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.toggleable:hover{cursor:pointer}li.item.active{background-color:rgba(17, 17, 17, 0.1)}li.item.active:hover{background-color:rgba(17, 17, 17, 0.15)}li.item.selected{background-color:#ebfbfc}li.item.selected:hover{background-color:#e0f8f9}li.item.selected.active{background-color:#ccf3f6}li.item.selected.active:hover{background-color:#bff0f3}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li.item:hover{background-color:rgba(17, 17, 17, 0.05)}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}";
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  const tttxMultiselectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{display:grid;position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{grid-row:1;align-items:center;gap:8px;padding:6px 8px 6px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-selector-chevron>tttx-icon{cursor:pointer}.dropdown-selector-html-content{display:flex;gap:8px;flex-wrap:wrap}.dropdown-body-container{grid-row:2;position:relative}.dropdown-body{position:absolute;display:flex;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;width:100%}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;scrollbar-gutter:stable;max-height:288px}.dropdown-option{padding:6px 8px 6px 16px;cursor:pointer;display:flex;gap:8px}.dropdown-option .checkbox-icon{height:24px}.dropdown-option .plaintext-option{line-height:24px}.dropdown-option:hover{background-color:#1111110d}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 8px 16px;height:52px;box-sizing:border-box}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}.footer{display:flex;gap:8px;flex-direction:row-reverse;padding:8px 16px 0 16px;border-top:1px solid #d5d5d5}";
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  const tttxSelectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{align-items:center;gap:8px;padding:8px 8px 8px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-selector-chevron>tttx-icon{cursor:pointer}.dropdown-body{display:flex;position:absolute;flex-direction:column;top:inherit;margin-top:45px;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;z-index:1000}.dropdown-body.search{max-height:410px}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;max-height:368px}.dropdown-option{padding:8px 8px 8px 16px;cursor:pointer}.dropdown-option:hover{background-color:#1111110d}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#757575}.searchbox{padding:8px 16px 0 16px}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}";
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  const tttxTabsCss = ".material-symbols-rounded.sc-tttx-tabs{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.sc-tttx-tabs-h{display:block}.tab-bar.sc-tttx-tabs{display:flex;height:52px}.tab-bar.sc-tttx-tabs>.left-navigation.sc-tttx-tabs,.tab-bar.sc-tttx-tabs>.right-navigation.sc-tttx-tabs{padding:14px 8px;cursor:pointer}.tab-bar.sc-tttx-tabs>.left-navigation.sc-tttx-tabs>*.sc-tttx-tabs,.tab-bar.sc-tttx-tabs>.right-navigation.sc-tttx-tabs>*.sc-tttx-tabs{height:24px;width:24px;cursor:pointer}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs{display:flex;border-bottom:1px solid #d5d5d5}.tab-bar.sc-tttx-tabs>.tabs-container.wide.sc-tttx-tabs{flex-grow:1}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs>*[role=tab].sc-tttx-tabs{padding:18px 16px;line-height:16px;font-size:14px;font-weight:500;text-transform:uppercase;user-select:none;color:#757575;cursor:pointer}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs>*[role=tab].sc-tttx-tabs:hover{background-color:rgba(17, 17, 17, 0.05)}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs>*[role=tab][aria-selected].sc-tttx-tabs{color:#212121;cursor:default;border-bottom:3px solid #1579c6}";
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
6
 
7
- const tttxTextareaCss = ".material-symbols-rounded.sc-tttx-textarea{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.sc-tttx-textarea-h{display:block}.textarea-container.sc-tttx-textarea{position:relative}textarea.sc-tttx-textarea{font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;padding:9px 16px;font-size:16px;line-height:19px;border:1px solid #d5d5d5;border-radius:4px;margin-top:8px;resize:none}textarea.no-label.sc-tttx-textarea{margin-top:0}textarea.sc-tttx-textarea~.errorBubble.sc-tttx-textarea{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}textarea.sc-tttx-textarea~.errorBubble.sc-tttx-textarea:not(.visible){display:none}textarea.sc-tttx-textarea~.errorBubble.sc-tttx-textarea span.sc-tttx-textarea{color:#dc0000;font-size:16px;margin-right:4px}.secondarylabel.sc-tttx-textarea{color:#757575;font-size:14px;line-height:16px;font-weight:normal;display:flex;margin-top:4px}.optional.sc-tttx-textarea{color:#757575;font-weight:normal}";
7
+ const tttxTextareaCss = ".material-symbols-rounded.sc-tttx-textarea{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.sc-tttx-textarea-h{display:block}label.sc-tttx-textarea{font-weight:500;font-size:16px;line-height:19px;color:#212121}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea{position:relative}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.sc-tttx-textarea{font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;padding:9px 16px;font-size:16px;line-height:19px;border:1px solid #d5d5d5;border-radius:4px;margin-top:8px;resize:none}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.no-label.sc-tttx-textarea{margin-top:0}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.sc-tttx-textarea~.errorBubble.sc-tttx-textarea{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}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.sc-tttx-textarea~.errorBubble.sc-tttx-textarea:not(.visible){display:none}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.sc-tttx-textarea~.errorBubble.sc-tttx-textarea span.sc-tttx-textarea{color:#dc0000;font-size:16px;margin-right:4px}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.sc-tttx-textarea:focus{border-color:#1479c6}label.sc-tttx-textarea .textarea-container.sc-tttx-textarea textarea.sc-tttx-textarea:focus-visible{outline:none}label.sc-tttx-textarea .secondarylabel.sc-tttx-textarea{color:#757575;font-size:14px;line-height:16px;font-weight:normal;display:flex;margin-top:4px}label.sc-tttx-textarea .optional.sc-tttx-textarea{color:#757575;font-weight:normal}";
8
8
 
9
9
  const TttxTextarea = class {
10
10
  constructor(hostRef) {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-4cfa8e25.js');
6
- const domsanitiser_options = require('./domsanitiser.options-1dfa7205.js');
6
+ const domsanitiser_options = require('./domsanitiser.options-32e670aa.js');
7
7
  require('./_commonjsHelpers-537d719a.js');
8
8
 
9
9
  const tttxTreeViewCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.tree-view-element{margin-left:-50px}.inline-tree-item{display:flex;align-items:center}.element{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;width:100%}.element-row{min-height:36px;font-family:\"Roboto\", serif;font-size:16px;padding:8px 0px;border-bottom:1px solid #d5d5d5}.rowHover{cursor:pointer}li{list-style-type:none}.toggleNode{padding-right:3px}.padding-icon{padding:6px 6px;height:24px;width:24px;display:flex;align-items:center;justify-content:center}.treeNode{font-weight:500}.treeLeaf{font-weight:400}.right-buttons-container{margin-left:auto;display:flex}.borderless:active{outline-style:none}@media (hover: hover){.rowHover:hover{background-color:rgba(17, 17, 17, 0.05)}}";
@@ -6,11 +6,16 @@
6
6
  display: block;
7
7
  }
8
8
 
9
- .textarea-container {
9
+ label {
10
+ font-weight: 500;
11
+ font-size: 16px;
12
+ line-height: 19px;
13
+ color: #212121;
14
+ }
15
+ label .textarea-container {
10
16
  position: relative;
11
17
  }
12
-
13
- textarea {
18
+ label .textarea-container textarea {
14
19
  font-family: "Roboto", serif;
15
20
  box-sizing: border-box;
16
21
  width: 100%;
@@ -22,10 +27,10 @@ textarea {
22
27
  margin-top: 8px;
23
28
  resize: none;
24
29
  }
25
- textarea.no-label {
30
+ label .textarea-container textarea.no-label {
26
31
  margin-top: 0;
27
32
  }
28
- textarea ~ .errorBubble {
33
+ label .textarea-container textarea ~ .errorBubble {
29
34
  font-size: 14px;
30
35
  line-height: 16px;
31
36
  font-weight: normal;
@@ -38,16 +43,21 @@ textarea ~ .errorBubble {
38
43
  justify-items: center;
39
44
  margin-top: 4px;
40
45
  }
41
- textarea ~ .errorBubble:not(.visible) {
46
+ label .textarea-container textarea ~ .errorBubble:not(.visible) {
42
47
  display: none;
43
48
  }
44
- textarea ~ .errorBubble span {
49
+ label .textarea-container textarea ~ .errorBubble span {
45
50
  color: #dc0000;
46
51
  font-size: 16px;
47
52
  margin-right: 4px;
48
53
  }
49
-
50
- .secondarylabel {
54
+ label .textarea-container textarea:focus {
55
+ border-color: #1479c6;
56
+ }
57
+ label .textarea-container textarea:focus-visible {
58
+ outline: none;
59
+ }
60
+ label .secondarylabel {
51
61
  color: #757575;
52
62
  font-size: 14px;
53
63
  line-height: 16px;
@@ -55,8 +65,7 @@ textarea ~ .errorBubble span {
55
65
  display: flex;
56
66
  margin-top: 4px;
57
67
  }
58
-
59
- .optional {
68
+ label .optional {
60
69
  color: #757575;
61
70
  font-weight: normal;
62
71
  }