@qwickapps/react-framework 1.9.0 → 1.9.1

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 (44) hide show
  1. package/dist/components/Html.d.ts.map +1 -1
  2. package/dist/components/blocks/HeroSlideshow.d.ts +54 -0
  3. package/dist/components/blocks/HeroSlideshow.d.ts.map +1 -0
  4. package/dist/components/blocks/index.d.ts +2 -0
  5. package/dist/components/blocks/index.d.ts.map +1 -1
  6. package/dist/components/forms/FormField.d.ts +2 -0
  7. package/dist/components/forms/FormField.d.ts.map +1 -1
  8. package/dist/components/forms/FormSelect.d.ts +2 -0
  9. package/dist/components/forms/FormSelect.d.ts.map +1 -1
  10. package/dist/index.css +1 -1
  11. package/dist/index.esm.css +1 -1
  12. package/dist/index.esm.js +189 -42
  13. package/dist/index.js +189 -41
  14. package/dist/palettes/manifest.json +22 -22
  15. package/package.json +3 -3
  16. package/src/components/Scaffold.css +3 -0
  17. package/dist/palettes/palette-autumn.1.8.1.css +0 -174
  18. package/dist/palettes/palette-autumn.1.8.1.min.css +0 -1
  19. package/dist/palettes/palette-boutique.1.8.1.css +0 -176
  20. package/dist/palettes/palette-boutique.1.8.1.min.css +0 -1
  21. package/dist/palettes/palette-cosmic.1.8.1.css +0 -174
  22. package/dist/palettes/palette-cosmic.1.8.1.min.css +0 -1
  23. package/dist/palettes/palette-default.1.8.1.css +0 -178
  24. package/dist/palettes/palette-default.1.8.1.min.css +0 -1
  25. package/dist/palettes/palette-ocean.1.8.1.css +0 -174
  26. package/dist/palettes/palette-ocean.1.8.1.min.css +0 -1
  27. package/dist/palettes/palette-spring.1.8.1.css +0 -168
  28. package/dist/palettes/palette-spring.1.8.1.min.css +0 -1
  29. package/dist/palettes/palette-winter.1.8.1.css +0 -174
  30. package/dist/palettes/palette-winter.1.8.1.min.css +0 -1
  31. /package/dist/palettes/{palette-autumn.1.8.0.css → palette-autumn.1.9.1.css} +0 -0
  32. /package/dist/palettes/{palette-autumn.1.8.0.min.css → palette-autumn.1.9.1.min.css} +0 -0
  33. /package/dist/palettes/{palette-boutique.1.8.0.css → palette-boutique.1.9.1.css} +0 -0
  34. /package/dist/palettes/{palette-boutique.1.8.0.min.css → palette-boutique.1.9.1.min.css} +0 -0
  35. /package/dist/palettes/{palette-cosmic.1.8.0.css → palette-cosmic.1.9.1.css} +0 -0
  36. /package/dist/palettes/{palette-cosmic.1.8.0.min.css → palette-cosmic.1.9.1.min.css} +0 -0
  37. /package/dist/palettes/{palette-default.1.8.0.css → palette-default.1.9.1.css} +0 -0
  38. /package/dist/palettes/{palette-default.1.8.0.min.css → palette-default.1.9.1.min.css} +0 -0
  39. /package/dist/palettes/{palette-ocean.1.8.0.css → palette-ocean.1.9.1.css} +0 -0
  40. /package/dist/palettes/{palette-ocean.1.8.0.min.css → palette-ocean.1.9.1.min.css} +0 -0
  41. /package/dist/palettes/{palette-spring.1.8.0.css → palette-spring.1.9.1.css} +0 -0
  42. /package/dist/palettes/{palette-spring.1.8.0.min.css → palette-spring.1.9.1.min.css} +0 -0
  43. /package/dist/palettes/{palette-winter.1.8.0.css → palette-winter.1.9.1.css} +0 -0
  44. /package/dist/palettes/{palette-winter.1.8.0.min.css → palette-winter.1.9.1.min.css} +0 -0
package/dist/index.esm.js CHANGED
@@ -5767,7 +5767,7 @@ function LogoView({
5767
5767
  setCalculatedBadgePosition(badgePos);
5768
5768
  setSvgWidth(requiredWidth);
5769
5769
  }
5770
- }, [name, badge, badgeOffset, calculateBadgePosition, fontSize, height, parseNameParts, svgWidth]);
5770
+ }, [name, badge, badgeOffset, calculateBadgePosition, fontSize, height, parseNameParts]);
5771
5771
  // Determine CSS class for variant
5772
5772
  let variantClass = '';
5773
5773
  if (variant === 'high-contrast' || variant === 'monochrome' || variant === 'on-primary') {
@@ -15933,7 +15933,8 @@ function sanitizeHtml(html, options, _recursing) {
15933
15933
  }
15934
15934
 
15935
15935
  let result = '';
15936
- // Used for hot swapping the result variable with an empty string in order to "capture" the text written to it.
15936
+ // Used for hot swapping the result variable with an empty string
15937
+ // in order to "capture" the text written to it.
15937
15938
  let tempResult = '';
15938
15939
 
15939
15940
  function Frame(tag, attribs) {
@@ -15964,7 +15965,8 @@ function sanitizeHtml(html, options, _recursing) {
15964
15965
  options.parser = Object.assign({}, htmlParserDefaults, options.parser);
15965
15966
 
15966
15967
  const tagAllowed = function (name) {
15967
- return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;
15968
+ return options.allowedTags === false ||
15969
+ (options.allowedTags || []).indexOf(name) > -1;
15968
15970
  };
15969
15971
 
15970
15972
  // vulnerableTags
@@ -16146,7 +16148,8 @@ function sanitizeHtml(html, options, _recursing) {
16146
16148
  }
16147
16149
 
16148
16150
  const isBeingEscaped = skip && (options.disallowedTagsMode === 'escape' || options.disallowedTagsMode === 'recursiveEscape');
16149
- const shouldPreserveEscapedAttributes = isBeingEscaped && options.preserveEscapedAttributes;
16151
+ const shouldPreserveEscapedAttributes = isBeingEscaped &&
16152
+ options.preserveEscapedAttributes;
16150
16153
 
16151
16154
  if (shouldPreserveEscapedAttributes) {
16152
16155
  each(attribs, function(value, a) {
@@ -16160,8 +16163,10 @@ function sanitizeHtml(html, options, _recursing) {
16160
16163
  delete frame.attribs[a];
16161
16164
  return;
16162
16165
  }
16163
- // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.
16164
- // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it
16166
+ // If the value is empty, check if the attribute is
16167
+ // in the allowedEmptyAttributes array.
16168
+ // If it is not in the allowedEmptyAttributes array,
16169
+ // and it is a known non-boolean attribute, delete it
16165
16170
  // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3
16166
16171
  if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&
16167
16172
  (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {
@@ -16172,9 +16177,11 @@ function sanitizeHtml(html, options, _recursing) {
16172
16177
  // as necessary if there are specific values defined.
16173
16178
  let passedAllowedAttributesMapCheck = false;
16174
16179
  if (!allowedAttributesMap ||
16175
- (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||
16180
+ (has(allowedAttributesMap, name) &&
16181
+ allowedAttributesMap[name].indexOf(a) !== -1) ||
16176
16182
  (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||
16177
- (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||
16183
+ (has(allowedAttributesGlobMap, name) &&
16184
+ allowedAttributesGlobMap[name].test(a)) ||
16178
16185
  (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {
16179
16186
  passedAllowedAttributesMapCheck = true;
16180
16187
  } else if (allowedAttributesMap && allowedAttributesMap[name]) {
@@ -16218,12 +16225,14 @@ function sanitizeHtml(html, options, _recursing) {
16218
16225
  const parsed = parseUrl(value);
16219
16226
 
16220
16227
  if (options.allowedScriptHostnames || options.allowedScriptDomains) {
16221
- const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {
16222
- return hostname === parsed.url.hostname;
16223
- });
16224
- const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {
16225
- return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
16226
- });
16228
+ const allowedHostname = (options.allowedScriptHostnames || [])
16229
+ .find(function (hostname) {
16230
+ return hostname === parsed.url.hostname;
16231
+ });
16232
+ const allowedDomain = (options.allowedScriptDomains || [])
16233
+ .find(function(domain) {
16234
+ return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
16235
+ });
16227
16236
  allowed = allowedHostname || allowedDomain;
16228
16237
  }
16229
16238
  } catch (e) {
@@ -16247,13 +16256,18 @@ function sanitizeHtml(html, options, _recursing) {
16247
16256
  allowed = has(options, 'allowIframeRelativeUrls')
16248
16257
  ? options.allowIframeRelativeUrls
16249
16258
  : (!options.allowedIframeHostnames && !options.allowedIframeDomains);
16250
- } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {
16251
- const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {
16252
- return hostname === parsed.url.hostname;
16253
- });
16254
- const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {
16255
- return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
16256
- });
16259
+ } else if (
16260
+ options.allowedIframeHostnames ||
16261
+ options.allowedIframeDomains
16262
+ ) {
16263
+ const allowedHostname = (options.allowedIframeHostnames || [])
16264
+ .find(function (hostname) {
16265
+ return hostname === parsed.url.hostname;
16266
+ });
16267
+ const allowedDomain = (options.allowedIframeDomains || [])
16268
+ .find(function(domain) {
16269
+ return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
16270
+ });
16257
16271
  allowed = allowedHostname || allowedDomain;
16258
16272
  }
16259
16273
  } catch (e) {
@@ -16307,9 +16321,17 @@ function sanitizeHtml(html, options, _recursing) {
16307
16321
  return t;
16308
16322
  });
16309
16323
  if (allowedSpecificClasses && allowedWildcardClasses) {
16310
- value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);
16324
+ value = filterClasses(
16325
+ value,
16326
+ deepmerge(allowedSpecificClasses, allowedWildcardClasses),
16327
+ allowedClassesGlobs
16328
+ );
16311
16329
  } else {
16312
- value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);
16330
+ value = filterClasses(
16331
+ value,
16332
+ allowedSpecificClasses || allowedWildcardClasses,
16333
+ allowedClassesGlobs
16334
+ );
16313
16335
  }
16314
16336
  if (!value.length) {
16315
16337
  delete frame.attribs[a];
@@ -16320,7 +16342,10 @@ function sanitizeHtml(html, options, _recursing) {
16320
16342
  if (options.parseStyleAttributes) {
16321
16343
  try {
16322
16344
  const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });
16323
- const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);
16345
+ const filteredAST = filterCss(
16346
+ abstractSyntaxTree,
16347
+ options.allowedStyles
16348
+ );
16324
16349
 
16325
16350
  value = stringifyStyleAttributes(filteredAST);
16326
16351
 
@@ -16453,7 +16478,8 @@ function sanitizeHtml(html, options, _recursing) {
16453
16478
  tempResult = '';
16454
16479
  }
16455
16480
  // remove the opening tag from the result
16456
- result = result.substring(0, frame.tagPosition) + result.substring(frame.tagPosition + frame.openingTagLength);
16481
+ result = result.substring(0, frame.tagPosition) +
16482
+ result.substring(frame.tagPosition + frame.openingTagLength);
16457
16483
  return;
16458
16484
  } else if (filterResult) {
16459
16485
  result = result.substring(0, frame.tagPosition);
@@ -16488,6 +16514,16 @@ function sanitizeHtml(html, options, _recursing) {
16488
16514
  parser.write(html);
16489
16515
  parser.end();
16490
16516
 
16517
+ if (options.disallowedTagsMode === 'escape' || options.disallowedTagsMode === 'recursiveEscape') {
16518
+ const lastParsedIndex = parser.endIndex;
16519
+ if (lastParsedIndex != null && lastParsedIndex >= 0 && lastParsedIndex < html.length) {
16520
+ const unparsed = html.substring(lastParsedIndex);
16521
+ result += escapeHtml(unparsed);
16522
+ } else if ((lastParsedIndex == null || lastParsedIndex < 0) && html.length > 0 && result === '') {
16523
+ result = escapeHtml(html);
16524
+ }
16525
+ }
16526
+
16491
16527
  return result;
16492
16528
 
16493
16529
  function initializeState() {
@@ -16598,8 +16634,10 @@ function sanitizeHtml(html, options, _recursing) {
16598
16634
  * Modifies the abstractSyntaxTree object.
16599
16635
  *
16600
16636
  * @param {object} abstractSyntaxTree - Object representation of CSS attributes.
16601
- * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.
16602
- * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).
16637
+ * @property {array[Declaration]} abstractSyntaxTree.nodes[0] -
16638
+ * Each object contains prop and value key, i.e { prop: 'color', value: 'red' }.
16639
+ * @param {object} allowedStyles - Keys are properties (i.e color),
16640
+ * value is list of permitted regex rules (i.e /green/i).
16603
16641
  * @return {object} - The modified tree.
16604
16642
  */
16605
16643
  function filterCss(abstractSyntaxTree, allowedStyles) {
@@ -16621,7 +16659,8 @@ function sanitizeHtml(html, options, _recursing) {
16621
16659
  }
16622
16660
 
16623
16661
  if (selectedRule) {
16624
- abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);
16662
+ abstractSyntaxTree.nodes[0].nodes = astRules.nodes
16663
+ .reduce(filterDeclarations(selectedRule), []);
16625
16664
  }
16626
16665
 
16627
16666
  return abstractSyntaxTree;
@@ -16632,7 +16671,8 @@ function sanitizeHtml(html, options, _recursing) {
16632
16671
  * values in the inline style attribute format.
16633
16672
  *
16634
16673
  * @param {AbstractSyntaxTree} filteredAST
16635
- * @return {string} - Example: "color:yellow;text-align:center !important;font-family:helvetica;"
16674
+ * @return {string} - Example:
16675
+ * "color:yellow;text-align:center !important;font-family:helvetica;"
16636
16676
  */
16637
16677
  function stringifyStyleAttributes(filteredAST) {
16638
16678
  return filteredAST.nodes[0].nodes
@@ -16649,21 +16689,25 @@ function sanitizeHtml(html, options, _recursing) {
16649
16689
  * Filters the existing attributes for the given property. Discards any attributes
16650
16690
  * which don't match the allowlist.
16651
16691
  *
16652
- * @param {object} selectedRule - Example: { color: red, font-family: helvetica }
16653
- * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.
16654
- * @param {object} attributeObject - Object representing the current css property.
16655
- * @property {string} attributeObject.type - Typically 'declaration'.
16656
- * @property {string} attributeObject.prop - The CSS property, i.e 'color'.
16657
- * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.
16658
- * @return {function} - When used in Array.reduce, will return an array of Declaration objects
16692
+ * @param {object} selectedRule - Example: { color: red, font-family: helvetica }
16693
+ * @param {array} allowedDeclarationsList - List of declarations
16694
+ * which pass the allowlist.
16695
+ * @param {object} attributeObject - Object representing the current css property.
16696
+ * @property {string} attributeObject.type - Typically 'declaration'.
16697
+ * @property {string} attributeObject.prop - The CSS property, i.e 'color'.
16698
+ * @property {string} attributeObject.value - The corresponding value to
16699
+ * the css property, i.e 'red'.
16700
+ * @return {function} - When used in Array.reduce,
16701
+ * will return an array of Declaration objects
16659
16702
  */
16660
16703
  function filterDeclarations(selectedRule) {
16661
16704
  return function (allowedDeclarationsList, attributeObject) {
16662
16705
  // If this property is allowlisted...
16663
16706
  if (has(selectedRule, attributeObject.prop)) {
16664
- const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {
16665
- return regularExpression.test(attributeObject.value);
16666
- });
16707
+ const matchesRegex = selectedRule[attributeObject.prop]
16708
+ .some(function(regularExpression) {
16709
+ return regularExpression.test(attributeObject.value);
16710
+ });
16667
16711
 
16668
16712
  if (matchesRegex) {
16669
16713
  allowedDeclarationsList.push(attributeObject);
@@ -16795,7 +16839,7 @@ sanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {
16795
16839
 
16796
16840
  return {
16797
16841
  tagName: newTagName,
16798
- attribs: attribs
16842
+ attribs
16799
16843
  };
16800
16844
  };
16801
16845
  };
@@ -18116,7 +18160,9 @@ function HtmlView({
18116
18160
  },
18117
18161
  ...styleProps.sx
18118
18162
  },
18119
- children: components
18163
+ children: Array.isArray(components) ? components.map((child, idx) => /*#__PURE__*/React.isValidElement(child) && child.key == null ? /*#__PURE__*/React.cloneElement(child, {
18164
+ key: `html-child-${idx}`
18165
+ }) : child) : components
18120
18166
  });
18121
18167
  } catch (error) {
18122
18168
  console.error('Error transforming HTML content:', error);
@@ -18951,6 +18997,103 @@ function registerSerializableComponents() {
18951
18997
  */
18952
18998
  registerSerializableComponents();
18953
18999
 
19000
+ /**
19001
+ * HeroSlideshow Component
19002
+ *
19003
+ * A slideshow built on top of HeroBlock that cycles through multiple slides
19004
+ * with auto-rotation, fade transitions, and progress dot navigation.
19005
+ *
19006
+ * Usage (props-driven, e.g. qwickdocs):
19007
+ * <HeroSlideshow slides={[{ title: 'Slide 1', ... }, ...]} />
19008
+ *
19009
+ * Usage (CMS-driven, e.g. work-macha):
19010
+ * const slideshow = await payload.findByID({ collection: 'hero-slideshows', id });
19011
+ * <HeroSlideshow slides={slideshow.slides} autoPlayInterval={slideshow.autoPlayInterval} />
19012
+ *
19013
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
19014
+ */
19015
+ const TRANSITION_DURATION = 300; // ms
19016
+ /**
19017
+ * HeroSlideshow - Cycles through HeroBlock slides with fade transitions
19018
+ */
19019
+ function HeroSlideshow({
19020
+ slides,
19021
+ autoPlayInterval = 5000,
19022
+ showDots = true,
19023
+ blockHeight = 'large',
19024
+ textAlign = 'center'
19025
+ }) {
19026
+ const [currentIndex, setCurrentIndex] = useState(0);
19027
+ const [isVisible, setIsVisible] = useState(true);
19028
+ const goToSlide = useCallback(index => {
19029
+ if (index === currentIndex) return;
19030
+ setIsVisible(false);
19031
+ setTimeout(() => {
19032
+ setCurrentIndex(index);
19033
+ setIsVisible(true);
19034
+ }, TRANSITION_DURATION);
19035
+ }, [currentIndex]);
19036
+ useEffect(() => {
19037
+ if (slides.length <= 1 || autoPlayInterval <= 0) return;
19038
+ const timer = setTimeout(() => {
19039
+ goToSlide((currentIndex + 1) % slides.length);
19040
+ }, autoPlayInterval);
19041
+ return () => clearTimeout(timer);
19042
+ }, [currentIndex, slides.length, autoPlayInterval, goToSlide]);
19043
+ if (!slides.length) return null;
19044
+ const slide = slides[currentIndex];
19045
+ return jsxs(Box, {
19046
+ sx: {
19047
+ position: 'relative',
19048
+ overflow: 'hidden'
19049
+ },
19050
+ children: [jsx(Box, {
19051
+ sx: {
19052
+ opacity: isVisible ? 1 : 0,
19053
+ transition: `opacity ${TRANSITION_DURATION}ms ease-in-out`
19054
+ },
19055
+ children: jsx(HeroBlock, {
19056
+ title: slide.title,
19057
+ subtitle: slide.subtitle,
19058
+ backgroundImage: slide.backgroundImage,
19059
+ backgroundGradient: slide.backgroundGradient,
19060
+ backgroundColor: slide.backgroundColor,
19061
+ actions: slide.actions,
19062
+ overlayOpacity: slide.overlayOpacity,
19063
+ blockHeight: blockHeight,
19064
+ textAlign: textAlign
19065
+ })
19066
+ }), showDots && slides.length > 1 && jsx(Box, {
19067
+ sx: {
19068
+ position: 'absolute',
19069
+ bottom: 20,
19070
+ left: '50%',
19071
+ transform: 'translateX(-50%)',
19072
+ display: 'flex',
19073
+ gap: 1,
19074
+ zIndex: 10
19075
+ },
19076
+ children: slides.map((_, index) => jsx(Box, {
19077
+ role: "button",
19078
+ "aria-label": `Go to slide ${index + 1}`,
19079
+ onClick: () => goToSlide(index),
19080
+ sx: {
19081
+ width: index === currentIndex ? 28 : 8,
19082
+ height: 8,
19083
+ borderRadius: 4,
19084
+ backgroundColor: 'rgba(255, 255, 255, 0.9)',
19085
+ opacity: index === currentIndex ? 1 : 0.45,
19086
+ cursor: 'pointer',
19087
+ transition: 'all 0.3s ease',
19088
+ '&:hover': {
19089
+ opacity: 0.8
19090
+ }
19091
+ }
19092
+ }, index))
19093
+ })]
19094
+ });
19095
+ }
19096
+
18954
19097
  // View component - handles the actual rendering
18955
19098
  function ArticleView({
18956
19099
  html = '',
@@ -23225,6 +23368,7 @@ function FormFieldView({
23225
23368
  startAdornment,
23226
23369
  endAdornment,
23227
23370
  inputProps,
23371
+ error,
23228
23372
  // Exclude ViewProps that conflict with MUI FormControl types
23229
23373
  margin: _margin,
23230
23374
  marginTop: _marginTop,
@@ -23279,6 +23423,7 @@ function FormFieldView({
23279
23423
  };
23280
23424
  return jsxs(FormControl, {
23281
23425
  fullWidth: fullWidth,
23426
+ error: error,
23282
23427
  ...restProps,
23283
23428
  children: [jsx(InputLabel, {
23284
23429
  htmlFor: fieldId,
@@ -23338,6 +23483,7 @@ function FormSelectView({
23338
23483
  size = 'small',
23339
23484
  placeholder,
23340
23485
  name,
23486
+ error,
23341
23487
  // Exclude ViewProps that conflict with MUI FormControl types
23342
23488
  margin: _margin,
23343
23489
  marginTop: _marginTop,
@@ -23381,6 +23527,7 @@ function FormSelectView({
23381
23527
  return jsxs(FormControl, {
23382
23528
  fullWidth: fullWidth,
23383
23529
  size: size,
23530
+ error: error,
23384
23531
  ...restProps,
23385
23532
  children: [label && jsx(InputLabel, {
23386
23533
  sx: labelStyles,
@@ -33719,4 +33866,4 @@ __decorate([Field({
33719
33866
  }), IsOptional(), __metadata("design:type", Boolean)], PageTemplateSchema.prototype, "indexable", void 0);
33720
33867
  PageTemplateSchema = __decorate([Schema('PageTemplate', '1.0.0')], PageTemplateSchema);
33721
33868
 
33722
- export { AVAILABLE_PALETTES, AccessibilityProvider, ActionModel, ActionType, AllPalettes, AppConfig, AppConfigBuilder, Article, ArticleModel, Breadcrumbs, Button, Captcha, CaptchaModel, CardListGrid, CardListGridModel, ChoiceInputField, ChoiceInputFieldModel, Code, CodeModel, CollapsibleLayout, CollapsibleLayoutView, ComponentTransformer$1 as ComponentTransformer, Container$8 as Container, Content, ContentModel, CoverImageHeader, CoverImageHeaderModel, DataProvider, DataProxy, DataTable, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, DimensionsProvider, ErrorBoundary, FeatureCard, FeatureCardActionModel, FeatureCardModel, FeatureGrid, FeatureGridModel, FeatureItemModel, Footer, FooterItemModel, FooterModel, FooterSectionModel, FormBlock, FormBlockModel, FormCheckbox, FormCheckboxModel, FormField, FormFieldModel, FormMethod, FormPage, FormSelect, FormSelectModel, GalleryImageModel, GridCell, GridCellModel, GridLayout, GridLayoutModel, HeaderActionModel, HeroBlock, HeroBlockModel, Html, HtmlInputField, HtmlModel, Image, ImageGallery, ImageGalleryModel, ImageModel, Logo, Markdown, MarkdownModel, MetadataItemModel, ModelView, NavigationProvider, OptionSelector, OptionSelectorModel, Page, PageBannerHeader, PageBannerHeaderModel, PageTemplateSchema, PaletteAutumn, PaletteBoutique, PaletteCosmic, PaletteDefault, PaletteOcean, PaletteProvider, PaletteSpring, PaletteSwitcher, PaletteSwitcherModel, PaletteWinter, PrintConfigSchema, PrintModeProvider, ProductCard, ProductCardActionModel, ProductCardModel, ProductLogo, ProductModel, QWICKAPP_COMPONENT, QwickApp, QwickAppsLogo, QwickIcon, ResponsiveMenu, SafeSpan, SafeSpanModel, Scaffold, SchemaFormRenderer, Section, SectionModel, SelectInputField, SelectOptionModel, StatCard, SwitchInputField, T, Text$1 as Text, TextField, TextInputField, TextInputFieldModel, TextModel, ThemeProvider, ThemeSwitcher, ThemeSwitcherModel, ViewSchema, animationConfigs, applyCustomPalette, clearManifestCache, clearPaletteCache, clearUserPalettePreference, clearUserThemePreference, configurePaletteLoader, createAppConfig, createModelViewClass, createPaletteFromCurrentTheme, createSerializableView, defaultCollapsibleLayoutProps, deleteCustomPalette, exportPalette, extractTextFromReactNode, getAvailablePalettes, getCSSVariable, getComputedTheme, getCurrentPalette, getCurrentTheme, getCustomPalettes, getIconComponent, getIconEmoji, getLogger, getPaletteConfig, getPaletteFromManifest, getPaletteName, getRegisteredIcons, getSystemTheme, getThemePerformanceStats, hasIcon, iconMap, importPalette, initializePalette, initializeTheme, isCollapsibleLayoutProps, isPaletteLoaded, loadPalette, loadPaletteManifest, loadUserPalettePreference, loadUserThemePreference, logThemePerformanceStats, loggers, preloadPalettes, registerCustomPalette, registerIcon, resetThemePerformanceStats, resolveDimension, resolveDimensions, resolveSpacing, resolveSpacingProps, saveCustomPalette, savePalettePreference, saveThemePreference, saveUserPalettePreference, saveUserThemePreference, setCSSVariable, setPalette, setTheme, spacingConfigs, t, toCssLength, useAccessibility, useBaseProps, useBreadcrumbs, useCollapsibleState, useData, useDataBinding, useDataContext, useDataProvider, useDimensions, useNavigation, usePageContext, usePalette, usePrintMode$1 as usePrintMode, usePrintMode as usePrintModeHook, useQwickApp, useResolveTemplate, useTemplate, useTheme, withAccessibility, withErrorBoundary };
33869
+ export { AVAILABLE_PALETTES, AccessibilityProvider, ActionModel, ActionType, AllPalettes, AppConfig, AppConfigBuilder, Article, ArticleModel, Breadcrumbs, Button, Captcha, CaptchaModel, CardListGrid, CardListGridModel, ChoiceInputField, ChoiceInputFieldModel, Code, CodeModel, CollapsibleLayout, CollapsibleLayoutView, ComponentTransformer$1 as ComponentTransformer, Container$8 as Container, Content, ContentModel, CoverImageHeader, CoverImageHeaderModel, DataProvider, DataProxy, DataTable, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, DimensionsProvider, ErrorBoundary, FeatureCard, FeatureCardActionModel, FeatureCardModel, FeatureGrid, FeatureGridModel, FeatureItemModel, Footer, FooterItemModel, FooterModel, FooterSectionModel, FormBlock, FormBlockModel, FormCheckbox, FormCheckboxModel, FormField, FormFieldModel, FormMethod, FormPage, FormSelect, FormSelectModel, GalleryImageModel, GridCell, GridCellModel, GridLayout, GridLayoutModel, HeaderActionModel, HeroBlock, HeroBlockModel, HeroSlideshow, Html, HtmlInputField, HtmlModel, Image, ImageGallery, ImageGalleryModel, ImageModel, Logo, Markdown, MarkdownModel, MetadataItemModel, ModelView, NavigationProvider, OptionSelector, OptionSelectorModel, Page, PageBannerHeader, PageBannerHeaderModel, PageTemplateSchema, PaletteAutumn, PaletteBoutique, PaletteCosmic, PaletteDefault, PaletteOcean, PaletteProvider, PaletteSpring, PaletteSwitcher, PaletteSwitcherModel, PaletteWinter, PrintConfigSchema, PrintModeProvider, ProductCard, ProductCardActionModel, ProductCardModel, ProductLogo, ProductModel, QWICKAPP_COMPONENT, QwickApp, QwickAppsLogo, QwickIcon, ResponsiveMenu, SafeSpan, SafeSpanModel, Scaffold, SchemaFormRenderer, Section, SectionModel, SelectInputField, SelectOptionModel, StatCard, SwitchInputField, T, Text$1 as Text, TextField, TextInputField, TextInputFieldModel, TextModel, ThemeProvider, ThemeSwitcher, ThemeSwitcherModel, ViewSchema, animationConfigs, applyCustomPalette, clearManifestCache, clearPaletteCache, clearUserPalettePreference, clearUserThemePreference, configurePaletteLoader, createAppConfig, createModelViewClass, createPaletteFromCurrentTheme, createSerializableView, defaultCollapsibleLayoutProps, deleteCustomPalette, exportPalette, extractTextFromReactNode, getAvailablePalettes, getCSSVariable, getComputedTheme, getCurrentPalette, getCurrentTheme, getCustomPalettes, getIconComponent, getIconEmoji, getLogger, getPaletteConfig, getPaletteFromManifest, getPaletteName, getRegisteredIcons, getSystemTheme, getThemePerformanceStats, hasIcon, iconMap, importPalette, initializePalette, initializeTheme, isCollapsibleLayoutProps, isPaletteLoaded, loadPalette, loadPaletteManifest, loadUserPalettePreference, loadUserThemePreference, logThemePerformanceStats, loggers, preloadPalettes, registerCustomPalette, registerIcon, resetThemePerformanceStats, resolveDimension, resolveDimensions, resolveSpacing, resolveSpacingProps, saveCustomPalette, savePalettePreference, saveThemePreference, saveUserPalettePreference, saveUserThemePreference, setCSSVariable, setPalette, setTheme, spacingConfigs, t, toCssLength, useAccessibility, useBaseProps, useBreadcrumbs, useCollapsibleState, useData, useDataBinding, useDataContext, useDataProvider, useDimensions, useNavigation, usePageContext, usePalette, usePrintMode$1 as usePrintMode, usePrintMode as usePrintModeHook, useQwickApp, useResolveTemplate, useTemplate, useTheme, withAccessibility, withErrorBoundary };