@mittwald/flow-react-components 1.5.0-next.30 → 1.5.0-next.31

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 (60) hide show
  1. package/dist/assets/component-index.json +1 -1
  2. package/dist/assets/doc-properties.json +1 -1
  3. package/dist/css/all-layered.css +1 -1
  4. package/dist/css/all.css +1 -1
  5. package/dist/js/_virtual/_32.locale.mjs +3 -9
  6. package/dist/js/_virtual/_33.locale.mjs +5 -7
  7. package/dist/js/_virtual/_34.locale.mjs +7 -13
  8. package/dist/js/_virtual/_35.locale.mjs +23 -0
  9. package/dist/js/default.mjs +3 -2
  10. package/dist/js/packages/components/src/components/AlertText/AlertText.mjs +9 -2
  11. package/dist/js/packages/components/src/components/AlertText/AlertText.mjs.map +1 -1
  12. package/dist/js/packages/components/src/components/Content/Content.mjs +2 -1
  13. package/dist/js/packages/components/src/components/Content/Content.mjs.map +1 -1
  14. package/dist/js/packages/components/src/components/Heading/Heading.mjs +8 -1
  15. package/dist/js/packages/components/src/components/Heading/Heading.mjs.map +1 -1
  16. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs +8 -1
  17. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs.map +1 -1
  18. package/dist/js/packages/components/src/components/Label/Label.mjs +9 -2
  19. package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
  20. package/dist/js/packages/components/src/components/Link/Link.mjs +31 -14
  21. package/dist/js/packages/components/src/components/Link/Link.mjs.map +1 -1
  22. package/dist/js/packages/components/src/components/Skeleton/Skeleton.module.mjs +3 -3
  23. package/dist/js/packages/components/src/components/Skeleton/Skeleton.module.mjs.map +1 -1
  24. package/dist/js/packages/components/src/components/SkeletonMode/SkeletonMode.mjs +35 -0
  25. package/dist/js/packages/components/src/components/SkeletonMode/SkeletonMode.mjs.map +1 -0
  26. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.mjs +25 -0
  27. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.mjs.map +1 -0
  28. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs +27 -0
  29. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs.map +1 -0
  30. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.mjs +13 -0
  31. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.mjs.map +1 -0
  32. package/dist/js/packages/components/src/components/SkeletonMode/lib/hasContent.mjs +11 -0
  33. package/dist/js/packages/components/src/components/SkeletonMode/lib/hasContent.mjs.map +1 -0
  34. package/dist/js/packages/components/src/components/SkeletonMode/lib/isTextChild.mjs +19 -0
  35. package/dist/js/packages/components/src/components/SkeletonMode/lib/isTextChild.mjs.map +1 -0
  36. package/dist/js/packages/components/src/components/SkeletonMode/skeletonModeContext.mjs +27 -0
  37. package/dist/js/packages/components/src/components/SkeletonMode/skeletonModeContext.mjs.map +1 -0
  38. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.module.mjs +3 -3
  39. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.module.mjs.map +1 -1
  40. package/dist/js/packages/components/src/components/Tabs/components/FallbackTab/FallbackTab.mjs +1 -1
  41. package/dist/js/packages/components/src/components/Text/Text.mjs +9 -2
  42. package/dist/js/packages/components/src/components/Text/Text.mjs.map +1 -1
  43. package/dist/js/packages/components/src/components/TextField/TextField.mjs +1 -1
  44. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs +1 -1
  45. package/dist/js/packages/components/src/status/component-status.mjs +4 -0
  46. package/dist/js/packages/components/src/status/component-status.mjs.map +1 -1
  47. package/dist/types/components/SkeletonMode/SkeletonMode.d.ts +16 -0
  48. package/dist/types/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.d.ts +8 -0
  49. package/dist/types/components/SkeletonMode/components/SkeletonRawText/index.d.ts +2 -0
  50. package/dist/types/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.d.ts +12 -0
  51. package/dist/types/components/SkeletonMode/components/SkeletonTextContent/index.d.ts +2 -0
  52. package/dist/types/components/SkeletonMode/index.d.ts +3 -0
  53. package/dist/types/components/SkeletonMode/lib/hasContent.d.ts +3 -0
  54. package/dist/types/components/SkeletonMode/lib/isTextChild.d.ts +8 -0
  55. package/dist/types/components/SkeletonMode/skeletonModeContext.d.ts +16 -0
  56. package/dist/types/components/SkeletonMode/view.d.ts +7 -0
  57. package/dist/types/components/public.d.ts +1 -0
  58. package/dist/types/status/component-status.json.d.ts +4 -0
  59. package/dist/types/views/SkeletonModeView.d.ts +4 -0
  60. package/package.json +9 -9
@@ -0,0 +1,25 @@
1
+ "use client"
2
+ /* */
3
+ import { getTextOfChild, isTextChild } from "../../lib/isTextChild.mjs";
4
+ import { useSkeletonMode } from "../../skeletonModeContext.mjs";
5
+ import { SkeletonTextContent } from "../SkeletonTextContent/SkeletonTextContent.mjs";
6
+ import { Children } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.tsx
9
+ /**
10
+ * The text rule for containers: turns raw string and number children into bars
11
+ * and leaves every element child to its own skeleton rendering. Outside an
12
+ * enabled `SkeletonMode` it renders its children unchanged.
13
+ */
14
+ var SkeletonRawText = (props) => {
15
+ const { children } = props;
16
+ if (!useSkeletonMode()) return children;
17
+ return Children.map(children, (child) => isTextChild(child) && getTextOfChild(child) !== "" ? /* @__PURE__ */ jsx(SkeletonTextContent, {
18
+ defaultWidth: "8em",
19
+ children: child
20
+ }) : child);
21
+ };
22
+ //#endregion
23
+ export { SkeletonRawText, SkeletonRawText as default };
24
+
25
+ //# sourceMappingURL=SkeletonRawText.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkeletonRawText.mjs","names":[],"sources":["../../../../../../../../../src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.tsx"],"sourcesContent":["import { Children, type FC, type PropsWithChildren } from \"react\";\nimport { SkeletonTextContent } from \"@/components/SkeletonMode/components/SkeletonTextContent\";\nimport { useSkeletonMode } from \"@/components/SkeletonMode/skeletonModeContext\";\nimport {\n getTextOfChild,\n isTextChild,\n} from \"@/components/SkeletonMode/lib/isTextChild\";\n\n/**\n * The text rule for containers: turns raw string and number children into bars\n * and leaves every element child to its own skeleton rendering. Outside an\n * enabled `SkeletonMode` it renders its children unchanged.\n */\nexport const SkeletonRawText: FC<PropsWithChildren> = (props) => {\n const { children } = props;\n\n const isSkeleton = useSkeletonMode();\n\n if (!isSkeleton) {\n return children;\n }\n\n return Children.map(children, (child) =>\n isTextChild(child) && getTextOfChild(child) !== \"\" ? (\n <SkeletonTextContent defaultWidth=\"8em\">{child}</SkeletonTextContent>\n ) : (\n child\n ),\n );\n};\n\nexport default SkeletonRawText;\n"],"mappings":";;;;;;;;;;;;;AAaA,IAAa,mBAA0C,UAAU;CAC/D,MAAM,EAAE,aAAa;CAIrB,IAAI,CAFe,gBAEd,GACH,OAAO;CAGT,OAAO,SAAS,IAAI,WAAW,UAC7B,YAAY,KAAK,KAAK,eAAe,KAAK,MAAM,KAC9C,oBAAC,qBAAD;EAAqB,cAAa;EAAO,UAAA;CAA2B,CAAA,IAEpE,KAEJ;AACF"}
@@ -0,0 +1,27 @@
1
+ "use client"
2
+ /* */
3
+ import { SkeletonText } from "../../../SkeletonText/SkeletonText.mjs";
4
+ import { hasContent } from "../../lib/hasContent.mjs";
5
+ import { SkeletonModeReset, useSkeletonMode } from "../../skeletonModeContext.mjs";
6
+ import SkeletonTextContent_module_default from "./SkeletonTextContent.module.mjs";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.tsx
9
+ /**
10
+ * The text rule of `SkeletonMode`: content becomes one bar per line in the
11
+ * width of that line, no content becomes a `SkeletonText` in `defaultWidth`.
12
+ * Outside an enabled `SkeletonMode` it renders its children unchanged.
13
+ */
14
+ var SkeletonTextContent = (props) => {
15
+ const { children, defaultWidth } = props;
16
+ if (!useSkeletonMode()) return children;
17
+ if (!hasContent(children)) return /* @__PURE__ */ jsx(SkeletonText, { width: defaultWidth });
18
+ return /* @__PURE__ */ jsx("span", {
19
+ className: SkeletonTextContent_module_default.skeletonTextContent,
20
+ "aria-hidden": true,
21
+ children: /* @__PURE__ */ jsx(SkeletonModeReset, { children })
22
+ });
23
+ };
24
+ //#endregion
25
+ export { SkeletonTextContent, SkeletonTextContent as default };
26
+
27
+ //# sourceMappingURL=SkeletonTextContent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkeletonTextContent.mjs","names":["styles"],"sources":["../../../../../../../../../src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.tsx"],"sourcesContent":["import type { CSSProperties, FC, PropsWithChildren } from \"react\";\nimport { SkeletonText } from \"@/components/SkeletonText\";\nimport { hasContent } from \"@/components/SkeletonMode/lib/hasContent\";\nimport {\n SkeletonModeReset,\n useSkeletonMode,\n} from \"@/components/SkeletonMode/skeletonModeContext\";\nimport styles from \"./SkeletonTextContent.module.scss\";\n\nexport interface SkeletonTextContentProps extends PropsWithChildren {\n /** Width of the bar when there is no content to take the width from. */\n defaultWidth: CSSProperties[\"width\"];\n}\n\n/**\n * The text rule of `SkeletonMode`: content becomes one bar per line in the\n * width of that line, no content becomes a `SkeletonText` in `defaultWidth`.\n * Outside an enabled `SkeletonMode` it renders its children unchanged.\n */\nexport const SkeletonTextContent: FC<SkeletonTextContentProps> = (props) => {\n const { children, defaultWidth } = props;\n\n const isSkeleton = useSkeletonMode();\n\n if (!isSkeleton) {\n return children;\n }\n\n if (!hasContent(children)) {\n return <SkeletonText width={defaultWidth} />;\n }\n\n return (\n <span className={styles.skeletonTextContent} aria-hidden>\n <SkeletonModeReset>{children}</SkeletonModeReset>\n </span>\n );\n};\n\nexport default SkeletonTextContent;\n"],"mappings":";;;;;;;;;;;;;AAmBA,IAAa,uBAAqD,UAAU;CAC1E,MAAM,EAAE,UAAU,iBAAiB;CAInC,IAAI,CAFe,gBAEd,GACH,OAAO;CAGT,IAAI,CAAC,WAAW,QAAQ,GACtB,OAAO,oBAAC,cAAD,EAAc,OAAO,aAAe,CAAA;CAG7C,OACE,oBAAC,QAAD;EAAM,WAAWA,mCAAO;EAAqB,eAAA;EAC3C,UAAA,oBAAC,mBAAD,EAAoB,SAA4B,CAAA;CAC5C,CAAA;AAEV"}
@@ -0,0 +1,13 @@
1
+ "use client"
2
+ /* */
3
+ //#region src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.scss
4
+ var skeletonTextContent = "flow--skeleton-mode--skeleton-text-content";
5
+ var SkeletonTextContent_module_default = {
6
+ skeletonTextContent,
7
+ "skeleton-text-shimmer": "flow--skeleton-mode--skeleton-text-content--skeleton-text-shimmer",
8
+ "skeleton-surface-shimmer": "flow--skeleton-mode--skeleton-text-content--skeleton-surface-shimmer"
9
+ };
10
+ //#endregion
11
+ export { SkeletonTextContent_module_default as default, skeletonTextContent };
12
+
13
+ //# sourceMappingURL=SkeletonTextContent.module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkeletonTextContent.module.mjs","names":[],"sources":["../../../../../../../../../src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.scss"],"sourcesContent":["@use \"@/styles/mixins/skeleton\";\n\n.skeletonTextContent {\n @include skeleton.text;\n}\n\n@include skeleton.keyframes;\n"],"mappings":""}
@@ -0,0 +1,11 @@
1
+ "use client"
2
+ /* */
3
+ import { getTextOfChild } from "./isTextChild.mjs";
4
+ import { Children } from "react";
5
+ //#region src/components/SkeletonMode/lib/hasContent.ts
6
+ /** Whether `children` renders anything — `null`, booleans and empty text do not. */
7
+ var hasContent = (children) => Children.toArray(children).some((child) => getTextOfChild(child) !== "");
8
+ //#endregion
9
+ export { hasContent };
10
+
11
+ //# sourceMappingURL=hasContent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasContent.mjs","names":[],"sources":["../../../../../../../../src/components/SkeletonMode/lib/hasContent.ts"],"sourcesContent":["import { Children, type ReactNode } from \"react\";\nimport { getTextOfChild } from \"./isTextChild\";\n\n/** Whether `children` renders anything — `null`, booleans and empty text do not. */\nexport const hasContent = (children: ReactNode): boolean =>\n Children.toArray(children).some((child) => getTextOfChild(child) !== \"\");\n"],"mappings":";;;;;;AAIA,IAAa,cAAc,aACzB,SAAS,QAAQ,QAAQ,CAAC,CAAC,MAAM,UAAU,eAAe,KAAK,MAAM,EAAE"}
@@ -0,0 +1,19 @@
1
+ "use client"
2
+ /* */
3
+ import { isRemoteTextRenderProps } from "../../../lib/react/remote.mjs";
4
+ import { isValidElement } from "react";
5
+ //#region src/components/SkeletonMode/lib/isTextChild.ts
6
+ /**
7
+ * Whether `child` is a text node — locally a string or number, remotely a
8
+ * `RemoteTextRenderer` element.
9
+ */
10
+ var isTextChild = (child) => typeof child === "string" || typeof child === "number" || isValidElement(child) && isRemoteTextRenderProps(child.props);
11
+ /** The text of a text node from {@link isTextChild}, `undefined` otherwise. */
12
+ var getTextOfChild = (child) => {
13
+ if (typeof child === "string" || typeof child === "number") return String(child);
14
+ return isValidElement(child) && isRemoteTextRenderProps(child.props) ? child.props.remote.data : void 0;
15
+ };
16
+ //#endregion
17
+ export { getTextOfChild, isTextChild };
18
+
19
+ //# sourceMappingURL=isTextChild.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isTextChild.mjs","names":[],"sources":["../../../../../../../../src/components/SkeletonMode/lib/isTextChild.ts"],"sourcesContent":["import { isValidElement, type ReactNode } from \"react\";\nimport { isRemoteTextRenderProps } from \"@/lib/react/remote\";\n\n/**\n * Whether `child` is a text node — locally a string or number, remotely a\n * `RemoteTextRenderer` element.\n */\nexport const isTextChild = (child: ReactNode): boolean =>\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n (isValidElement(child) && isRemoteTextRenderProps(child.props));\n\n/** The text of a text node from {@link isTextChild}, `undefined` otherwise. */\nexport const getTextOfChild = (child: ReactNode): string | undefined => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n\n return isValidElement(child) && isRemoteTextRenderProps(child.props)\n ? child.props.remote.data\n : undefined;\n};\n"],"mappings":";;;;;;;;;AAOA,IAAa,eAAe,UAC1B,OAAO,UAAU,YACjB,OAAO,UAAU,YAChB,eAAe,KAAK,KAAK,wBAAwB,MAAM,KAAK;;AAG/D,IAAa,kBAAkB,UAAyC;CACtE,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAChD,OAAO,OAAO,KAAK;CAGrB,OAAO,eAAe,KAAK,KAAK,wBAAwB,MAAM,KAAK,IAC/D,MAAM,MAAM,OAAO,OACnB,KAAA;AACN"}
@@ -0,0 +1,27 @@
1
+ "use client"
2
+ /* */
3
+ import { createContext, useContext } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ var skeletonModeContext = createContext({
6
+ isEnabled: false,
7
+ isAnnounced: false
8
+ });
9
+ /** Whether the calling component renders as skeleton. */
10
+ var useSkeletonMode = () => useContext(skeletonModeContext).isEnabled;
11
+ var resetState = {
12
+ isEnabled: false,
13
+ isAnnounced: true
14
+ };
15
+ /**
16
+ * Renders its children as real UI below a component that already draws the
17
+ * skeleton for them — the Text inside a text bar or a button surface must not
18
+ * draw a second bar on top.
19
+ */
20
+ var SkeletonModeReset = (props) => /* @__PURE__ */ jsx(skeletonModeContext.Provider, {
21
+ value: resetState,
22
+ children: props.children
23
+ });
24
+ //#endregion
25
+ export { SkeletonModeReset, skeletonModeContext, useSkeletonMode };
26
+
27
+ //# sourceMappingURL=skeletonModeContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeletonModeContext.mjs","names":[],"sources":["../../../../../../../src/components/SkeletonMode/skeletonModeContext.tsx"],"sourcesContent":["import {\n createContext,\n type FC,\n type PropsWithChildren,\n useContext,\n} from \"react\";\n\nexport interface SkeletonModeState {\n /** Whether components render as skeleton. */\n isEnabled: boolean;\n /** Whether an enabled `SkeletonMode` above already announces the loading. */\n isAnnounced: boolean;\n}\n\nconst disabledState: SkeletonModeState = {\n isEnabled: false,\n isAnnounced: false,\n};\n\nexport const skeletonModeContext =\n createContext<SkeletonModeState>(disabledState);\n\n/** Whether the calling component renders as skeleton. */\nexport const useSkeletonMode = (): boolean =>\n useContext(skeletonModeContext).isEnabled;\n\nconst resetState: SkeletonModeState = {\n isEnabled: false,\n isAnnounced: true,\n};\n\n/**\n * Renders its children as real UI below a component that already draws the\n * skeleton for them — the Text inside a text bar or a button surface must not\n * draw a second bar on top.\n */\nexport const SkeletonModeReset: FC<PropsWithChildren> = (props) => (\n <skeletonModeContext.Provider value={resetState}>\n {props.children}\n </skeletonModeContext.Provider>\n);\n"],"mappings":";;;;AAmBA,IAAa,sBACX,cAAiC;CALjC,WAAW;CACX,aAAa;AAIoB,CAAa;;AAGhD,IAAa,wBACX,WAAW,mBAAmB,CAAC,CAAC;AAElC,IAAM,aAAgC;CACpC,WAAW;CACX,aAAa;AACf;;;;;;AAOA,IAAa,qBAA4C,UACvD,oBAAC,oBAAoB,UAArB;CAA8B,OAAO;CAClC,UAAA,MAAM;AACqB,CAAA"}
@@ -2,12 +2,12 @@
2
2
  /* */
3
3
  //#region src/components/SkeletonText/SkeletonText.module.scss
4
4
  var skeletonText = "flow--skeleton-text";
5
- var shimmer = "flow--skeleton-text--shimmer";
6
5
  var SkeletonText_module_default = {
7
6
  skeletonText,
8
- shimmer
7
+ "skeleton-surface-shimmer": "flow--skeleton-text--skeleton-surface-shimmer",
8
+ "skeleton-text-shimmer": "flow--skeleton-text--skeleton-text-shimmer"
9
9
  };
10
10
  //#endregion
11
- export { SkeletonText_module_default as default, shimmer, skeletonText };
11
+ export { SkeletonText_module_default as default, skeletonText };
12
12
 
13
13
  //# sourceMappingURL=SkeletonText.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonText.module.mjs","names":[],"sources":["../../../../../../../src/components/SkeletonText/SkeletonText.module.scss"],"sourcesContent":[".skeletonText {\n position: relative;\n overflow: hidden;\n background-color: rgba(183, 201, 219, 0.5);\n border-radius: var(--corner-radius--m);\n width: 100%;\n display: inline-block;\n max-width: 100%;\n vertical-align: middle;\n height: 1em;\n\n &::before {\n content: \"-\";\n visibility: hidden;\n }\n\n &::after {\n position: absolute;\n inset: 0;\n transform: translateX(-100%);\n background-image: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0,\n rgba(255, 255, 255, 0.4) 60%,\n rgba(255, 255, 255, 0)\n );\n animation: shimmer 3s infinite;\n content: \"\";\n }\n}\n\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"SkeletonText.module.mjs","names":[],"sources":["../../../../../../../src/components/SkeletonText/SkeletonText.module.scss"],"sourcesContent":["@use \"@/styles/mixins/skeleton\";\n\n.skeletonText {\n @include skeleton.surface;\n\n width: 100%;\n display: inline-block;\n max-width: 100%;\n vertical-align: middle;\n height: 1em;\n\n &::before {\n content: \"-\";\n visibility: hidden;\n }\n}\n\n@include skeleton.keyframes;\n"],"mappings":""}
@@ -6,7 +6,7 @@ import { Text } from "../../../Text/Text.mjs";
6
6
  import { Heading } from "../../../Heading/Heading.mjs";
7
7
  import { IllustratedMessage } from "../../../IllustratedMessage/IllustratedMessage.mjs";
8
8
  import Tabs_module_default from "../../Tabs.module.mjs";
9
- import __locale_default from "../../../../../../../_virtual/_32.locale.mjs";
9
+ import __locale_default from "../../../../../../../_virtual/_33.locale.mjs";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  //#region src/components/Tabs/components/FallbackTab/FallbackTab.tsx
12
12
  var FallbackTab = (props) => {
@@ -6,6 +6,8 @@ import { isAlphaColor } from "../../lib/types/props.mjs";
6
6
  import { Wrap } from "../Wrap/Wrap.mjs";
7
7
  import { EmulatedBoldText } from "../EmulatedBoldText/EmulatedBoldText.mjs";
8
8
  import Text_module_default from "./Text.module.mjs";
9
+ import { useSkeletonMode } from "../SkeletonMode/skeletonModeContext.mjs";
10
+ import { SkeletonTextContent } from "../SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs";
9
11
  import clsx from "clsx";
10
12
  import { jsx } from "react/jsx-runtime";
11
13
  import * as Aria from "react-aria-components";
@@ -14,10 +16,12 @@ import invariant from "invariant";
14
16
  /** @flr-generate all */
15
17
  var Text = flowComponent("Text", (props) => {
16
18
  const { children, className, elementType = "span", emulateBoldWidth, ref, color = "default", align = "start", wrap, style: styleFromProps, whiteSpace, wordBreak, noLigatures, ...rest } = props;
19
+ const isSkeleton = useSkeletonMode();
17
20
  const rootClassName = clsx(Text_module_default.text, isAlphaColor(color) && Text_module_default[color], align && Text_module_default[`align-${align}`], wrap && Text_module_default[`wrap-${wrap}`], noLigatures && Text_module_default[`no-ligatures`], className);
18
21
  const textProps = {
19
22
  ...rest,
20
- className: rootClassName
23
+ className: rootClassName,
24
+ inert: isSkeleton || void 0
21
25
  };
22
26
  const propsContext = {
23
27
  Link: {
@@ -36,7 +40,10 @@ var Text = flowComponent("Text", (props) => {
36
40
  props: propsContext,
37
41
  children: /* @__PURE__ */ jsx(Wrap, {
38
42
  if: emulateBoldWidth,
39
- children: /* @__PURE__ */ jsx(EmulatedBoldText, { children })
43
+ children: /* @__PURE__ */ jsx(EmulatedBoldText, { children: /* @__PURE__ */ jsx(SkeletonTextContent, {
44
+ defaultWidth: "8em",
45
+ children
46
+ }) })
40
47
  })
41
48
  });
42
49
  if (!props.slot) return /* @__PURE__ */ jsx(elementType, {
@@ -1 +1 @@
1
- {"version":3,"file":"Text.mjs","names":["styles","Element"],"sources":["../../../../../../../src/components/Text/Text.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport type React from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n type AlphaColor,\n isAlphaColor,\n type PropsWithElementType,\n} from \"@/lib/types/props\";\nimport invariant from \"invariant\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { EmulatedBoldText } from \"@/components/EmulatedBoldText\";\nimport { Wrap } from \"@/components/Wrap\";\nimport clsx from \"clsx\";\nimport styles from \"./Text.module.scss\";\n\nexport interface TextProps\n extends\n PropsWithChildren,\n Omit<Aria.TextProps, \"children\" | \"elementType\">,\n PropsWithElementType<\"span\" | \"div\" | \"p\">,\n FlowComponentProps {\n /**\n * Whether the elements width should match the width it would have with bold\n * text.\n */\n emulateBoldWidth?: boolean;\n /** The color of the text. @default \"default\" */\n color?: \"default\" | AlphaColor;\n /** The alignment of the text. @default \"start\" */\n align?: \"start\" | \"end\" | \"center\";\n /** The text-wrap property of the text. */\n wrap?: \"wrap\" | \"balance\" | \"pretty\";\n /** The white-space property of the text. */\n whiteSpace?: React.CSSProperties[\"whiteSpace\"];\n /** The word-break property of the text. */\n wordBreak?: React.CSSProperties[\"wordBreak\"];\n /**\n * Disables standard and contextual ligatures for predictable, literal text\n * rendering.\n */\n noLigatures?: boolean;\n}\n\n/** @flr-generate all */\nexport const Text = flowComponent(\"Text\", (props) => {\n const {\n children,\n className,\n elementType = \"span\",\n emulateBoldWidth,\n ref,\n color = \"default\",\n align = \"start\",\n wrap,\n style: styleFromProps,\n whiteSpace,\n wordBreak,\n noLigatures,\n ...rest\n } = props;\n\n const rootClassName = clsx(\n styles.text,\n isAlphaColor(color) && styles[color],\n align && styles[`align-${align}`],\n wrap && styles[`wrap-${wrap}`],\n noLigatures && styles[`no-ligatures`],\n className,\n );\n\n const textProps = { ...rest, className: rootClassName };\n\n const propsContext: PropsContext = {\n Link: {\n inline: true,\n color: isAlphaColor(color) ? color : undefined,\n },\n Icon: { className: styles.icon },\n Kbd: { variant: \"soft\" },\n };\n\n const style = {\n whiteSpace,\n wordBreak,\n ...styleFromProps,\n };\n\n const childrenElement = (\n <PropsContextProvider props={propsContext}>\n <Wrap if={emulateBoldWidth}>\n <EmulatedBoldText>{children}</EmulatedBoldText>\n </Wrap>\n </PropsContextProvider>\n );\n\n if (!props.slot) {\n const Element = elementType;\n return (\n <Element style={style} {...textProps} ref={ref}>\n {childrenElement}\n </Element>\n );\n }\n\n invariant(\n typeof elementType === \"string\",\n \"'elementType' in Text component must be of type string\",\n );\n\n return (\n <Aria.Text style={style} {...textProps} elementType={elementType} ref={ref}>\n {childrenElement}\n </Aria.Text>\n );\n});\n\nexport default Text;\n"],"mappings":";;;;;;;;;;;;;;AA+CA,IAAa,OAAO,cAAc,SAAS,UAAU;CACnD,MAAM,EACJ,UACA,WACA,cAAc,QACd,kBACA,KACA,QAAQ,WACR,QAAQ,SACR,MACA,OAAO,gBACP,YACA,WACA,aACA,GAAG,SACD;CAEJ,MAAM,gBAAgB,KACpBA,oBAAO,MACP,aAAa,KAAK,KAAKA,oBAAO,QAC9B,SAASA,oBAAO,SAAS,UACzB,QAAQA,oBAAO,QAAQ,SACvB,eAAeA,oBAAO,iBACtB,SACF;CAEA,MAAM,YAAY;EAAE,GAAG;EAAM,WAAW;CAAc;CAEtD,MAAM,eAA6B;EACjC,MAAM;GACJ,QAAQ;GACR,OAAO,aAAa,KAAK,IAAI,QAAQ,KAAA;EACvC;EACA,MAAM,EAAE,WAAWA,oBAAO,KAAK;EAC/B,KAAK,EAAE,SAAS,OAAO;CACzB;CAEA,MAAM,QAAQ;EACZ;EACA;EACA,GAAG;CACL;CAEA,MAAM,kBACJ,oBAAC,sBAAD;EAAsB,OAAO;EAC3B,UAAA,oBAAC,MAAD;GAAM,IAAI;GACR,UAAA,oBAAC,kBAAD,EAAmB,SAA2B,CAAA;EAC1C,CAAA;CACc,CAAA;CAGxB,IAAI,CAAC,MAAM,MAET,OACE,oBAACC,aAAD;EAAgB;EAAO,GAAI;EAAgB;EACxC,UAAA;CACM,CAAA;CAIb,UACE,OAAO,gBAAgB,UACvB,wDACF;CAEA,OACE,oBAAC,KAAK,MAAN;EAAkB;EAAO,GAAI;EAAwB;EAAkB;EACpE,UAAA;CACQ,CAAA;AAEf,CAAC"}
1
+ {"version":3,"file":"Text.mjs","names":["styles","Element"],"sources":["../../../../../../../src/components/Text/Text.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport type React from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n type AlphaColor,\n isAlphaColor,\n type PropsWithElementType,\n} from \"@/lib/types/props\";\nimport invariant from \"invariant\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { EmulatedBoldText } from \"@/components/EmulatedBoldText\";\nimport { Wrap } from \"@/components/Wrap\";\nimport clsx from \"clsx\";\nimport styles from \"./Text.module.scss\";\nimport { SkeletonTextContent } from \"@/components/SkeletonMode/components/SkeletonTextContent\";\nimport { useSkeletonMode } from \"@/components/SkeletonMode/skeletonModeContext\";\n\nexport interface TextProps\n extends\n PropsWithChildren,\n Omit<Aria.TextProps, \"children\" | \"elementType\">,\n PropsWithElementType<\"span\" | \"div\" | \"p\">,\n FlowComponentProps {\n /**\n * Whether the elements width should match the width it would have with bold\n * text.\n */\n emulateBoldWidth?: boolean;\n /** The color of the text. @default \"default\" */\n color?: \"default\" | AlphaColor;\n /** The alignment of the text. @default \"start\" */\n align?: \"start\" | \"end\" | \"center\";\n /** The text-wrap property of the text. */\n wrap?: \"wrap\" | \"balance\" | \"pretty\";\n /** The white-space property of the text. */\n whiteSpace?: React.CSSProperties[\"whiteSpace\"];\n /** The word-break property of the text. */\n wordBreak?: React.CSSProperties[\"wordBreak\"];\n /**\n * Disables standard and contextual ligatures for predictable, literal text\n * rendering.\n */\n noLigatures?: boolean;\n}\n\n/** @flr-generate all */\nexport const Text = flowComponent(\"Text\", (props) => {\n const {\n children,\n className,\n elementType = \"span\",\n emulateBoldWidth,\n ref,\n color = \"default\",\n align = \"start\",\n wrap,\n style: styleFromProps,\n whiteSpace,\n wordBreak,\n noLigatures,\n ...rest\n } = props;\n\n const isSkeleton = useSkeletonMode();\n\n const rootClassName = clsx(\n styles.text,\n isAlphaColor(color) && styles[color],\n align && styles[`align-${align}`],\n wrap && styles[`wrap-${wrap}`],\n noLigatures && styles[`no-ligatures`],\n className,\n );\n\n const textProps = {\n ...rest,\n className: rootClassName,\n inert: isSkeleton || undefined,\n };\n\n const propsContext: PropsContext = {\n Link: {\n inline: true,\n color: isAlphaColor(color) ? color : undefined,\n },\n Icon: { className: styles.icon },\n Kbd: { variant: \"soft\" },\n };\n\n const style = {\n whiteSpace,\n wordBreak,\n ...styleFromProps,\n };\n\n const childrenElement = (\n <PropsContextProvider props={propsContext}>\n <Wrap if={emulateBoldWidth}>\n <EmulatedBoldText>\n <SkeletonTextContent defaultWidth=\"8em\">\n {children}\n </SkeletonTextContent>\n </EmulatedBoldText>\n </Wrap>\n </PropsContextProvider>\n );\n\n if (!props.slot) {\n const Element = elementType;\n return (\n <Element style={style} {...textProps} ref={ref}>\n {childrenElement}\n </Element>\n );\n }\n\n invariant(\n typeof elementType === \"string\",\n \"'elementType' in Text component must be of type string\",\n );\n\n return (\n <Aria.Text style={style} {...textProps} elementType={elementType} ref={ref}>\n {childrenElement}\n </Aria.Text>\n );\n});\n\nexport default Text;\n"],"mappings":";;;;;;;;;;;;;;;;AAiDA,IAAa,OAAO,cAAc,SAAS,UAAU;CACnD,MAAM,EACJ,UACA,WACA,cAAc,QACd,kBACA,KACA,QAAQ,WACR,QAAQ,SACR,MACA,OAAO,gBACP,YACA,WACA,aACA,GAAG,SACD;CAEJ,MAAM,aAAa,gBAAgB;CAEnC,MAAM,gBAAgB,KACpBA,oBAAO,MACP,aAAa,KAAK,KAAKA,oBAAO,QAC9B,SAASA,oBAAO,SAAS,UACzB,QAAQA,oBAAO,QAAQ,SACvB,eAAeA,oBAAO,iBACtB,SACF;CAEA,MAAM,YAAY;EAChB,GAAG;EACH,WAAW;EACX,OAAO,cAAc,KAAA;CACvB;CAEA,MAAM,eAA6B;EACjC,MAAM;GACJ,QAAQ;GACR,OAAO,aAAa,KAAK,IAAI,QAAQ,KAAA;EACvC;EACA,MAAM,EAAE,WAAWA,oBAAO,KAAK;EAC/B,KAAK,EAAE,SAAS,OAAO;CACzB;CAEA,MAAM,QAAQ;EACZ;EACA;EACA,GAAG;CACL;CAEA,MAAM,kBACJ,oBAAC,sBAAD;EAAsB,OAAO;EAC3B,UAAA,oBAAC,MAAD;GAAM,IAAI;GACR,UAAA,oBAAC,kBAAD,EAAA,UACE,oBAAC,qBAAD;IAAqB,cAAa;IAC/B;GACkB,CAAA,EACL,CAAA;EACd,CAAA;CACc,CAAA;CAGxB,IAAI,CAAC,MAAM,MAET,OACE,oBAACC,aAAD;EAAgB;EAAO,GAAI;EAAgB;EACxC,UAAA;CACM,CAAA;CAIb,UACE,OAAO,gBAAgB,UACvB,wDACF;CAEA,OACE,oBAAC,KAAK,MAAN;EAAkB;EAAO,GAAI;EAAwB;EAAkB;EACpE,UAAA;CACQ,CAAA;AAEf,CAAC"}
@@ -11,7 +11,7 @@ import { useFieldComponent } from "../../lib/hooks/useFieldComponent.mjs";
11
11
  import { useControlledHostValueProps } from "../../lib/remote/useControlledHostValueProps.mjs";
12
12
  import { FieldDescription } from "../FieldDescription/FieldDescription.mjs";
13
13
  import TextField_module_default from "./TextField.module.mjs";
14
- import __locale_default from "../../../../../_virtual/_33.locale.mjs";
14
+ import __locale_default from "../../../../../_virtual/_34.locale.mjs";
15
15
  import clsx from "clsx";
16
16
  import { useState } from "react";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -4,7 +4,7 @@ import { PropsContextProvider } from "../../../../lib/propsContext/components/Pr
4
4
  import dynamic from "../../../../lib/propsContext/dynamicProps/dynamic.mjs";
5
5
  import { useLocalizedStringFormatter } from "../../../../components/TranslationProvider/useLocalizedStringFormatter.mjs";
6
6
  import { useFormContext } from "../FormContextProvider/FormContextProvider.mjs";
7
- import __locale_default from "../../../../../../../_virtual/_34.locale.mjs";
7
+ import __locale_default from "../../../../../../../_virtual/_35.locale.mjs";
8
8
  import FieldErrorView from "../../../../views/FieldErrorView.mjs";
9
9
  import { useUpdateFormDefaultValue } from "./hooks/useUpdateFormDefaultValue.mjs";
10
10
  import "react";
@@ -384,6 +384,10 @@ var component_status_default = {
384
384
  "level": "stable",
385
385
  "isNew": false
386
386
  },
387
+ "@mittwald/flow-react-components#SkeletonMode": {
388
+ "level": "beta",
389
+ "isNew": true
390
+ },
387
391
  "@mittwald/flow-react-components#SkeletonText": {
388
392
  "level": "stable",
389
393
  "isNew": false
@@ -1 +1 @@
1
- {"version":3,"file":"component-status.mjs","names":[],"sources":["../../../../../../src/status/component-status.json"],"sourcesContent":["{\n \"@mittwald/flow-react-components#AccentBox\": {\n \"level\": \"beta\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Accordion\": {\n \"level\": \"beta\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Action\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ActionGroup\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Activity\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Alert\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AlertBadge\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AlertIcon\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AlertText\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Align\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use Combine instead\"\n },\n \"@mittwald/flow-react-components#Autocomplete\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Avatar\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AvatarStack\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Badge\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#BigNumber\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Breadcrumb\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#BrowserOnly\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Button\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CartesianChart\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Chat\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Checkbox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CheckboxButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CheckboxGroup\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ClearPropsContext\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CoachMark\": {\n \"level\": \"beta\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#CodeBlock\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CodeEditor\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Color\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ColumnLayout\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Combine\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#ComboBox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ComponentDefaultsProvider\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#ComponentPropsContextProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Content\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ContextMenu\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ContextualHelp\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CopyButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CounterBadge\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CountryOptions\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DatePicker\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DateRangePicker\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DeprecationWarningProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Div\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DonutChart\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FieldDescription\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FieldError\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileCard\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileCardList\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileDropZone\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Flex\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Header\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#HeaderNavigation\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Heading\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Icon\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#IllustratedMessage\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Image\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ImageCropper\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Initials\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#InlineCode\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Kbd\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Label\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LabeledValue\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LayoutCard\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Legend\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LightBox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Link\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#List\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LoadingSpinner\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Markdown\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#MarkdownEditor\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#MenuItem\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Message\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#MessageThread\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Modal\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Navigation\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Notification\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#NotificationProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#NumberField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Option\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Overlay\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#OverlayTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#PasswordCreationField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Popover\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ProgressBar\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#RadioGroup\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#RangeCalendar\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Rating\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SearchField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Section\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SegmentedControl\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use `Tabs` to switch content, or `RadioGroup` to select a value.\"\n },\n \"@mittwald/flow-react-components#Select\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Separator\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SettingsProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Skeleton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SkeletonText\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Slider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SuspenseTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Switch\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TabNavigation\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Table\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Tabs\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Text\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TextArea\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TextField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TimeField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Tooltip\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TranslationProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Truncate\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TunnelEntry\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Wrap\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Action\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ActionBatch\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#BrowserOnly\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ComponentDefaultsProvider\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components/flr-universal#CountryOptions\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#DeprecationWarningProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#LightBox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#LightBoxTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#List\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ListItemView\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Modal\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ModalTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#NotificationProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Popover\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#PopoverTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#SettingsProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Wrap\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/nextjs#Link\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use RouterProvider instead\"\n },\n \"@mittwald/flow-react-components/nextjs#LinkProvider\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use RouterProvider instead\"\n },\n \"@mittwald/flow-react-components/nextjs#RouterProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#Field\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#Form\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#FormAction\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#FormRootError\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components/react-hook-form#FormSettingsProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#ResetButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#SubmitButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"component-status.mjs","names":[],"sources":["../../../../../../src/status/component-status.json"],"sourcesContent":["{\n \"@mittwald/flow-react-components#AccentBox\": {\n \"level\": \"beta\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Accordion\": {\n \"level\": \"beta\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Action\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ActionGroup\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Activity\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Alert\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AlertBadge\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AlertIcon\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AlertText\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Align\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use Combine instead\"\n },\n \"@mittwald/flow-react-components#Autocomplete\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Avatar\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#AvatarStack\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Badge\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#BigNumber\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Breadcrumb\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#BrowserOnly\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Button\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CartesianChart\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Chat\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Checkbox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CheckboxButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CheckboxGroup\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ClearPropsContext\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CoachMark\": {\n \"level\": \"beta\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#CodeBlock\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CodeEditor\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Color\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ColumnLayout\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Combine\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#ComboBox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ComponentDefaultsProvider\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#ComponentPropsContextProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Content\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ContextMenu\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ContextualHelp\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CopyButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CounterBadge\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#CountryOptions\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DatePicker\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DateRangePicker\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DeprecationWarningProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Div\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#DonutChart\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FieldDescription\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FieldError\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileCard\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileCardList\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileDropZone\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#FileField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Flex\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Header\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#HeaderNavigation\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Heading\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Icon\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#IllustratedMessage\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Image\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ImageCropper\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Initials\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#InlineCode\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Kbd\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Label\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LabeledValue\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LayoutCard\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Legend\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LightBox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Link\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#List\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#LoadingSpinner\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Markdown\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#MarkdownEditor\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#MenuItem\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Message\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#MessageThread\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Modal\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Navigation\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Notification\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#NotificationProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#NumberField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Option\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Overlay\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#OverlayTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#PasswordCreationField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Popover\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#ProgressBar\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#RadioGroup\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#RangeCalendar\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Rating\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SearchField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Section\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SegmentedControl\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use `Tabs` to switch content, or `RadioGroup` to select a value.\"\n },\n \"@mittwald/flow-react-components#Select\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Separator\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SettingsProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Skeleton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SkeletonMode\": {\n \"level\": \"beta\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#SkeletonText\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Slider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#SuspenseTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Switch\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TabNavigation\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components#Table\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Tabs\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Text\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TextArea\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TextField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TimeField\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Tooltip\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TranslationProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Truncate\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#TunnelEntry\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components#Wrap\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Action\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ActionBatch\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#BrowserOnly\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ComponentDefaultsProvider\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components/flr-universal#CountryOptions\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#DeprecationWarningProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#LightBox\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#LightBoxTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#List\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ListItemView\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Modal\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#ModalTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#NotificationProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Popover\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#PopoverTrigger\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#SettingsProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/flr-universal#Wrap\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/nextjs#Link\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use RouterProvider instead\"\n },\n \"@mittwald/flow-react-components/nextjs#LinkProvider\": {\n \"level\": \"deprecated\",\n \"isNew\": false,\n \"deprecationNotice\": \"Use RouterProvider instead\"\n },\n \"@mittwald/flow-react-components/nextjs#RouterProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#Field\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#Form\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#FormAction\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#FormRootError\": {\n \"level\": \"stable\",\n \"isNew\": true\n },\n \"@mittwald/flow-react-components/react-hook-form#FormSettingsProvider\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#ResetButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n },\n \"@mittwald/flow-react-components/react-hook-form#SubmitButton\": {\n \"level\": \"stable\",\n \"isNew\": false\n }\n}\n"],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ export interface SkeletonModeProps extends PropsWithChildren {
3
+ /**
4
+ * Whether the components inside render as skeleton. A nested `SkeletonMode`
5
+ * with `isEnabled={false}` renders its content as real UI.
6
+ *
7
+ * @default true
8
+ */
9
+ isEnabled?: boolean;
10
+ }
11
+ /**
12
+ * @flr-generate all
13
+ * @flowStatus beta, new
14
+ */
15
+ export declare const SkeletonMode: FC<SkeletonModeProps>;
16
+ export default SkeletonMode;
@@ -0,0 +1,8 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ /**
3
+ * The text rule for containers: turns raw string and number children into bars
4
+ * and leaves every element child to its own skeleton rendering. Outside an
5
+ * enabled `SkeletonMode` it renders its children unchanged.
6
+ */
7
+ export declare const SkeletonRawText: FC<PropsWithChildren>;
8
+ export default SkeletonRawText;
@@ -0,0 +1,2 @@
1
+ export * from './SkeletonRawText';
2
+ export { default } from './SkeletonRawText';
@@ -0,0 +1,12 @@
1
+ import { CSSProperties, FC, PropsWithChildren } from 'react';
2
+ export interface SkeletonTextContentProps extends PropsWithChildren {
3
+ /** Width of the bar when there is no content to take the width from. */
4
+ defaultWidth: CSSProperties["width"];
5
+ }
6
+ /**
7
+ * The text rule of `SkeletonMode`: content becomes one bar per line in the
8
+ * width of that line, no content becomes a `SkeletonText` in `defaultWidth`.
9
+ * Outside an enabled `SkeletonMode` it renders its children unchanged.
10
+ */
11
+ export declare const SkeletonTextContent: FC<SkeletonTextContentProps>;
12
+ export default SkeletonTextContent;
@@ -0,0 +1,2 @@
1
+ export * from './SkeletonTextContent';
2
+ export { default } from './SkeletonTextContent';
@@ -0,0 +1,3 @@
1
+ export * from './view';
2
+ export { type SkeletonModeProps, SkeletonMode } from './SkeletonMode';
3
+ export { default } from './SkeletonMode';
@@ -0,0 +1,3 @@
1
+ import { ReactNode } from 'react';
2
+ /** Whether `children` renders anything — `null`, booleans and empty text do not. */
3
+ export declare const hasContent: (children: ReactNode) => boolean;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Whether `child` is a text node — locally a string or number, remotely a
4
+ * `RemoteTextRenderer` element.
5
+ */
6
+ export declare const isTextChild: (child: ReactNode) => boolean;
7
+ /** The text of a text node from {@link isTextChild}, `undefined` otherwise. */
8
+ export declare const getTextOfChild: (child: ReactNode) => string | undefined;
@@ -0,0 +1,16 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ export interface SkeletonModeState {
3
+ /** Whether components render as skeleton. */
4
+ isEnabled: boolean;
5
+ /** Whether an enabled `SkeletonMode` above already announces the loading. */
6
+ isAnnounced: boolean;
7
+ }
8
+ export declare const skeletonModeContext: import('react').Context<SkeletonModeState>;
9
+ /** Whether the calling component renders as skeleton. */
10
+ export declare const useSkeletonMode: () => boolean;
11
+ /**
12
+ * Renders its children as real UI below a component that already draws the
13
+ * skeleton for them — the Text inside a text bar or a button surface must not
14
+ * draw a second bar on top.
15
+ */
16
+ export declare const SkeletonModeReset: FC<PropsWithChildren>;
@@ -0,0 +1,7 @@
1
+ import { SkeletonMode } from './SkeletonMode';
2
+ import { ViewComponent } from '../../lib/viewComponentContext';
3
+ declare global {
4
+ interface FlowViewComponents {
5
+ SkeletonMode: ViewComponent<typeof SkeletonMode>;
6
+ }
7
+ }
@@ -97,6 +97,7 @@ export * from './Separator';
97
97
  export * from './SettingsProvider';
98
98
  export * from './Kbd';
99
99
  export * from './Skeleton';
100
+ export * from './SkeletonMode';
100
101
  export * from './SkeletonText';
101
102
  export * from './Slider';
102
103
  export * from './SuspenseTrigger';
@@ -381,6 +381,10 @@ declare const _default: {
381
381
  "level": "stable",
382
382
  "isNew": false
383
383
  },
384
+ "@mittwald/flow-react-components#SkeletonMode": {
385
+ "level": "beta",
386
+ "isNew": true
387
+ },
384
388
  "@mittwald/flow-react-components#SkeletonText": {
385
389
  "level": "stable",
386
390
  "isNew": false
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { SkeletonModeProps } from '../components/SkeletonMode/SkeletonMode';
3
+ declare const SkeletonModeView: FC<SkeletonModeProps>;
4
+ export default SkeletonModeView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/flow-react-components",
3
- "version": "1.5.0-next.30",
3
+ "version": "1.5.0-next.31",
4
4
  "type": "module",
5
5
  "description": "A React implementation of Flow, mittwald’s design system",
6
6
  "homepage": "https://flow.mittwald.de",
@@ -84,9 +84,9 @@
84
84
  "@internationalized/string-compiler": "^3.4.1",
85
85
  "@lezer/common": "^1.5.2",
86
86
  "@lezer/highlight": "^1.2.3",
87
- "@mittwald/flow-icons": "^1.5.0-next.30",
87
+ "@mittwald/flow-icons": "^1.5.0-next.31",
88
88
  "@mittwald/password-tools-js": "^3.0.0",
89
- "@mittwald/react-tunnel": "^1.5.0-next.30",
89
+ "@mittwald/react-tunnel": "^1.5.0-next.31",
90
90
  "@mittwald/react-use-promise": "^4.2.2",
91
91
  "@react-aria/form": "^3.2.1",
92
92
  "@react-aria/i18n": "^3.13.1",
@@ -139,12 +139,12 @@
139
139
  "@internationalized/date": "^3.12.3",
140
140
  "@lezer/generator": "^1.8.0",
141
141
  "@lezer/lr": "^1.4.10",
142
- "@mittwald/flow-core": "1.5.0-next.30",
143
- "@mittwald/flow-design-tokens": "1.5.0-next.30",
144
- "@mittwald/flow-icons-base": "1.5.0-next.30",
142
+ "@mittwald/flow-core": "1.5.0-next.31",
143
+ "@mittwald/flow-design-tokens": "1.5.0-next.31",
144
+ "@mittwald/flow-icons-base": "1.5.0-next.31",
145
145
  "@mittwald/react-use-promise": "^4.2.2",
146
146
  "@mittwald/remote-dom-react": "1.2.2-mittwald.10",
147
- "@mittwald/typescript-config": "1.5.0-next.30",
147
+ "@mittwald/typescript-config": "1.5.0-next.31",
148
148
  "@nx/storybook": "^22.7.6",
149
149
  "@storybook/addon-a11y": "^10.5.10",
150
150
  "@storybook/addon-actions": "^9.0.8",
@@ -198,7 +198,7 @@
198
198
  },
199
199
  "peerDependencies": {
200
200
  "@internationalized/date": "^3.12.2",
201
- "@mittwald/flow-icons-pro": "1.5.0-next.30",
201
+ "@mittwald/flow-icons-pro": "1.5.0-next.31",
202
202
  "@mittwald/react-use-promise": "^4.2.2",
203
203
  "next": "^16.2.3",
204
204
  "react": "^19.2.0",
@@ -222,5 +222,5 @@
222
222
  "browserslist": [
223
223
  "baseline widely available"
224
224
  ],
225
- "gitHead": "5d48baca7274f8efe6c289217743b9d36030024d"
225
+ "gitHead": "32830501988a267a91ea97cf0087ad68ac761f57"
226
226
  }