@mittwald/flow-react-components 0.2.0-alpha.623 → 0.2.0-alpha.625

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 (86) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/assets/doc-properties.json +3981 -3791
  3. package/dist/css/all.css +1 -1
  4. package/dist/js/_virtual/_.locale.json@24b745a6ce9353be513d1f98e927d8d3.mjs +10 -8
  5. package/dist/js/_virtual/_.locale.json@24b745a6ce9353be513d1f98e927d8d3.mjs.map +1 -1
  6. package/dist/js/components/src/components/AlertBadge/AlertBadge.mjs +1 -1
  7. package/dist/js/components/src/components/AlertBadge/AlertBadge.mjs.map +1 -1
  8. package/dist/js/components/src/components/AlertIcon/AlertIcon.mjs +3 -1
  9. package/dist/js/components/src/components/AlertIcon/AlertIcon.mjs.map +1 -1
  10. package/dist/js/components/src/components/AlertText/AlertText.mjs +21 -0
  11. package/dist/js/components/src/components/AlertText/AlertText.mjs.map +1 -0
  12. package/dist/js/components/src/components/AlertText/AlertText.module.scss.mjs +21 -0
  13. package/dist/js/components/src/components/AlertText/AlertText.module.scss.mjs.map +1 -0
  14. package/dist/js/components/src/components/CartesianChart/CartesianChart.mjs +2 -0
  15. package/dist/js/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  16. package/dist/js/components/src/components/FieldError/FieldError.mjs +3 -9
  17. package/dist/js/components/src/components/FieldError/FieldError.mjs.map +1 -1
  18. package/dist/js/components/src/components/FileDropZone/FileDropZone.mjs +17 -15
  19. package/dist/js/components/src/components/FileDropZone/FileDropZone.mjs.map +1 -1
  20. package/dist/js/components/src/components/Heading/Heading.mjs +5 -0
  21. package/dist/js/components/src/components/Heading/Heading.mjs.map +1 -1
  22. package/dist/js/components/src/components/Icon/Icon.mjs.map +1 -1
  23. package/dist/js/components/src/components/Icon/Icon.module.scss.mjs +4 -2
  24. package/dist/js/components/src/components/Icon/Icon.module.scss.mjs.map +1 -1
  25. package/dist/js/components/src/components/Icon/components/icons/IconUnavailable.mjs +14 -0
  26. package/dist/js/components/src/components/Icon/components/icons/IconUnavailable.mjs.map +1 -0
  27. package/dist/js/components/src/components/IllustratedMessage/IllustratedMessage.mjs +35 -31
  28. package/dist/js/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  29. package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs +4 -3
  30. package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs.map +1 -1
  31. package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs +4 -3
  32. package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs.map +1 -1
  33. package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs +4 -3
  34. package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs.map +1 -1
  35. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs +4 -3
  36. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs.map +1 -1
  37. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs +4 -3
  38. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs.map +1 -1
  39. package/dist/js/components/src/components/List/components/Header/lib.mjs +4 -3
  40. package/dist/js/components/src/components/List/components/Header/lib.mjs.map +1 -1
  41. package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +5 -4
  42. package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
  43. package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs +2 -1
  44. package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
  45. package/dist/js/components/src/components/List/components/Table/Table.mjs +4 -3
  46. package/dist/js/components/src/components/List/components/Table/Table.mjs.map +1 -1
  47. package/dist/js/components/src/components/propTypes/index.mjs +2 -0
  48. package/dist/js/components/src/components/propTypes/index.mjs.map +1 -1
  49. package/dist/js/default.mjs +2 -0
  50. package/dist/js/default.mjs.map +1 -1
  51. package/dist/js/flr-universal.mjs +3 -0
  52. package/dist/js/flr-universal.mjs.map +1 -1
  53. package/dist/types/components/AlertBadge/AlertBadge.d.ts +1 -1
  54. package/dist/types/components/AlertBadge/AlertBadge.d.ts.map +1 -1
  55. package/dist/types/components/AlertIcon/AlertIcon.d.ts +1 -3
  56. package/dist/types/components/AlertIcon/AlertIcon.d.ts.map +1 -1
  57. package/dist/types/components/AlertIcon/stories/Default.stories.d.ts +1 -0
  58. package/dist/types/components/AlertIcon/stories/Default.stories.d.ts.map +1 -1
  59. package/dist/types/components/AlertText/AlertText.d.ts +10 -0
  60. package/dist/types/components/AlertText/AlertText.d.ts.map +1 -0
  61. package/dist/types/components/AlertText/index.d.ts +4 -0
  62. package/dist/types/components/AlertText/index.d.ts.map +1 -0
  63. package/dist/types/components/AlertText/stories/Default.stories.d.ts +13 -0
  64. package/dist/types/components/AlertText/stories/Default.stories.d.ts.map +1 -0
  65. package/dist/types/components/AlertText/view.d.ts +8 -0
  66. package/dist/types/components/AlertText/view.d.ts.map +1 -0
  67. package/dist/types/components/FieldError/FieldError.d.ts.map +1 -1
  68. package/dist/types/components/FileDropZone/FileDropZone.d.ts.map +1 -1
  69. package/dist/types/components/Heading/Heading.d.ts.map +1 -1
  70. package/dist/types/components/Icon/Icon.d.ts +3 -2
  71. package/dist/types/components/Icon/Icon.d.ts.map +1 -1
  72. package/dist/types/components/Icon/components/icons/IconUnavailable.d.ts +5 -0
  73. package/dist/types/components/Icon/components/icons/IconUnavailable.d.ts.map +1 -0
  74. package/dist/types/components/Icon/components/icons/index.d.ts +1 -0
  75. package/dist/types/components/Icon/components/icons/index.d.ts.map +1 -1
  76. package/dist/types/components/IllustratedMessage/IllustratedMessage.d.ts +4 -3
  77. package/dist/types/components/IllustratedMessage/IllustratedMessage.d.ts.map +1 -1
  78. package/dist/types/components/IllustratedMessage/stories/Default.stories.d.ts +1 -0
  79. package/dist/types/components/IllustratedMessage/stories/Default.stories.d.ts.map +1 -1
  80. package/dist/types/components/propTypes/index.d.ts +4 -0
  81. package/dist/types/components/propTypes/index.d.ts.map +1 -1
  82. package/dist/types/components/public.d.ts +1 -0
  83. package/dist/types/components/public.d.ts.map +1 -1
  84. package/dist/types/views/AlertTextView.d.ts +5 -0
  85. package/dist/types/views/AlertTextView.d.ts.map +1 -0
  86. package/package.json +4 -4
@@ -1,13 +1,15 @@
1
1
  "use client"
2
2
  /* */
3
- const locales = {"de-DE": { "alertIcon.danger": `Status Fehler`,
4
- "alertIcon.info": `Status Information`,
5
- "alertIcon.success": `Status Erfolg`,
6
- "alertIcon.warning": `Status Warnung`,
7
- },"en-US": { "alertIcon.danger": `Status error`,
8
- "alertIcon.info": `Status information`,
9
- "alertIcon.success": `Status success`,
10
- "alertIcon.warning": `Status warning`,
3
+ const locales = {"de-DE": { "alertIcon.danger": `Status "Fehler"`,
4
+ "alertIcon.info": `Status "Information"`,
5
+ "alertIcon.success": `Status "Erfolg"`,
6
+ "alertIcon.unavailable": `Status "Nicht verfügbar"`,
7
+ "alertIcon.warning": `Status "Warnung"`,
8
+ },"en-US": { "alertIcon.danger": `Status "error"`,
9
+ "alertIcon.info": `Status "information"`,
10
+ "alertIcon.success": `Status "success"`,
11
+ "alertIcon.unavailable": `Status "unavailable"`,
12
+ "alertIcon.warning": `Status "warning"`,
11
13
  }};
12
14
 
13
15
  export { locales as default };
@@ -1 +1 @@
1
- {"version":3,"file":"_.locale.json@24b745a6ce9353be513d1f98e927d8d3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"_.locale.json@24b745a6ce9353be513d1f98e927d8d3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -11,7 +11,7 @@ const AlertBadge = flowComponent("AlertBadge", (props) => {
11
11
  const { children, className, status = "info", ref, ...rest } = props;
12
12
  const rootClassName = clsx(styles.alertBadge, styles[status], className);
13
13
  return /* @__PURE__ */ jsxs("div", { className: rootClassName, ...rest, ref, children: [
14
- /* @__PURE__ */ jsx(AlertIcon, { size: "s", className: styles.alertIcon, status }),
14
+ /* @__PURE__ */ jsx(AlertIcon, { size: "s", status }),
15
15
  /* @__PURE__ */ jsx(Text, { className: styles.text, children })
16
16
  ] });
17
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AlertBadge.mjs","sources":["../../../../../../src/components/AlertBadge/AlertBadge.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./AlertBadge.module.scss\";\nimport clsx from \"clsx\";\nimport { AlertIcon } from \"@/components/AlertIcon\";\nimport { Text } from \"@/components/Text\";\nimport type { PropsWithClassName, PropsWithStatus } from \"@/lib/types/props\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\n\nexport interface AlertBadgeProps\n extends PropsWithChildren,\n PropsWithStatus,\n FlowComponentProps<HTMLDivElement>,\n PropsWithClassName {}\n\n/** @flr-generate all */\nexport const AlertBadge = flowComponent(\"AlertBadge\", (props) => {\n const { children, className, status = \"info\", ref, ...rest } = props;\n\n const rootClassName = clsx(styles.alertBadge, styles[status], className);\n\n return (\n <div className={rootClassName} {...rest} ref={ref}>\n <AlertIcon size=\"s\" className={styles.alertIcon} status={status} />\n <Text className={styles.text}>{children}</Text>\n </div>\n );\n});\n\nexport default AlertBadge;\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM,EAAE,UAAU,SAAA,EAAW,MAAA,GAAS,QAAQ,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAE/D,EAAA,MAAM,gBAAgB,IAAA,CAAK,MAAA,CAAO,YAAY,MAAA,CAAO,MAAM,GAAG,SAAS,CAAA;AAEvE,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,aAAA,EAAgB,GAAG,MAAM,GAAA,EACvC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAU,IAAA,EAAK,GAAA,EAAI,SAAA,EAAW,MAAA,CAAO,WAAW,MAAA,EAAgB,CAAA;AAAA,oBACjE,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,MAAO,QAAA,EAAS;AAAA,GAAA,EAC1C,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"AlertBadge.mjs","sources":["../../../../../../src/components/AlertBadge/AlertBadge.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./AlertBadge.module.scss\";\nimport clsx from \"clsx\";\nimport { AlertIcon } from \"@/components/AlertIcon\";\nimport { Text } from \"@/components/Text\";\nimport type { PropsWithStatus, PropsWithClassName } from \"@/lib/types/props\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\n\nexport interface AlertBadgeProps\n extends PropsWithChildren,\n PropsWithStatus,\n FlowComponentProps<HTMLDivElement>,\n PropsWithClassName {}\n\n/** @flr-generate all */\nexport const AlertBadge = flowComponent(\"AlertBadge\", (props) => {\n const { children, className, status = \"info\", ref, ...rest } = props;\n\n const rootClassName = clsx(styles.alertBadge, styles[status], className);\n\n return (\n <div className={rootClassName} {...rest} ref={ref}>\n <AlertIcon size=\"s\" status={status} />\n <Text className={styles.text}>{children}</Text>\n </div>\n );\n});\n\nexport default AlertBadge;\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM,EAAE,UAAU,SAAA,EAAW,MAAA,GAAS,QAAQ,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAE/D,EAAA,MAAM,gBAAgB,IAAA,CAAK,MAAA,CAAO,YAAY,MAAA,CAAO,MAAM,GAAG,SAAS,CAAA;AAEvE,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,aAAA,EAAgB,GAAG,MAAM,GAAA,EACvC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAK,GAAA,EAAI,MAAA,EAAgB,CAAA;AAAA,oBACpC,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,MAAO,QAAA,EAAS;AAAA,GAAA,EAC1C,CAAA;AAEJ,CAAC;;;;"}
@@ -8,6 +8,7 @@ import '../../views/IconView.mjs';
8
8
  import { IconDanger } from '../Icon/components/icons/IconDanger.mjs';
9
9
  import { IconInfo } from '../Icon/components/icons/IconInfo.mjs';
10
10
  import { IconSuccess } from '../Icon/components/icons/IconSuccess.mjs';
11
+ import { IconUnavailable } from '../Icon/components/icons/IconUnavailable.mjs';
11
12
  import { IconWarning } from '../Icon/components/icons/IconWarning.mjs';
12
13
  import locales from '../../../../_virtual/_.locale.json@24b745a6ce9353be513d1f98e927d8d3.mjs';
13
14
  import { useLocalizedStringFormatter } from 'react-aria';
@@ -16,7 +17,8 @@ const icons = {
16
17
  danger: IconDanger,
17
18
  info: IconInfo,
18
19
  success: IconSuccess,
19
- warning: IconWarning
20
+ warning: IconWarning,
21
+ unavailable: IconUnavailable
20
22
  };
21
23
  const AlertIcon = (props) => {
22
24
  const { status = "info", ...rest } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"AlertIcon.mjs","sources":["../../../../../../src/components/AlertIcon/AlertIcon.tsx"],"sourcesContent":["import type { ComponentType, FC } from \"react\";\nimport {\n IconDanger,\n IconInfo,\n IconSuccess,\n IconWarning,\n} from \"@/components/Icon/components/icons\";\nimport locales from \"./locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport type { PropsWithStatus, Status } from \"@/lib/types/props\";\nimport type { IconProps } from \"@/components/Icon\";\n\nexport interface AlertIconProps extends PropsWithStatus, IconProps {}\n\nconst icons: Record<Status, ComponentType> = {\n danger: IconDanger,\n info: IconInfo,\n success: IconSuccess,\n warning: IconWarning,\n};\n\n/** @flr-generate all */\nexport const AlertIcon: FC<AlertIconProps> = (props) => {\n const { status = \"info\", ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n const Icon = icons[status];\n\n const iconProps: IconProps = {\n status,\n \"aria-label\": stringFormatter.format(`alertIcon.${status}`),\n ...rest,\n };\n\n return <Icon {...iconProps} />;\n};\n\nexport default AlertIcon;\n"],"names":[],"mappings":";;;;;;;;;;;;AAcA,MAAM,KAAA,GAAuC;AAAA,EAC3C,MAAA,EAAQ,UAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,WAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAGO,MAAM,SAAA,GAAgC,CAAC,KAAA,KAAU;AACtD,EAAA,MAAM,EAAE,MAAA,GAAS,MAAA,EAAQ,GAAG,MAAK,GAAI,KAAA;AAErC,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,MAAM,IAAA,GAAO,MAAM,MAAM,CAAA;AAEzB,EAAA,MAAM,SAAA,GAAuB;AAAA,IAC3B,MAAA;AAAA,IACA,YAAA,EAAc,eAAA,CAAgB,MAAA,CAAO,CAAA,UAAA,EAAa,MAAM,CAAA,CAAE,CAAA;AAAA,IAC1D,GAAG;AAAA,GACL;AAEA,EAAA,uBAAO,GAAA,CAAC,IAAA,EAAA,EAAM,GAAG,SAAA,EAAW,CAAA;AAC9B;;;;"}
1
+ {"version":3,"file":"AlertIcon.mjs","sources":["../../../../../../src/components/AlertIcon/AlertIcon.tsx"],"sourcesContent":["import type { ComponentType, FC } from \"react\";\nimport {\n IconDanger,\n IconInfo,\n IconSuccess,\n IconUnavailable,\n IconWarning,\n} from \"@/components/Icon/components/icons\";\nimport locales from \"./locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport type { Status } from \"@/lib/types/props\";\nimport type { IconProps } from \"@/components/Icon\";\n\nexport type AlertIconProps = IconProps;\n\nconst icons: Record<Status | \"unavailable\", ComponentType> = {\n danger: IconDanger,\n info: IconInfo,\n success: IconSuccess,\n warning: IconWarning,\n unavailable: IconUnavailable,\n};\n\n/** @flr-generate all */\nexport const AlertIcon: FC<AlertIconProps> = (props) => {\n const { status = \"info\", ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n const Icon = icons[status];\n\n const iconProps: IconProps = {\n status,\n \"aria-label\": stringFormatter.format(`alertIcon.${status}`),\n ...rest,\n };\n\n return <Icon {...iconProps} />;\n};\n\nexport default AlertIcon;\n"],"names":[],"mappings":";;;;;;;;;;;;;AAeA,MAAM,KAAA,GAAuD;AAAA,EAC3D,MAAA,EAAQ,UAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,WAAA;AAAA,EACT,OAAA,EAAS,WAAA;AAAA,EACT,WAAA,EAAa;AACf,CAAA;AAGO,MAAM,SAAA,GAAgC,CAAC,KAAA,KAAU;AACtD,EAAA,MAAM,EAAE,MAAA,GAAS,MAAA,EAAQ,GAAG,MAAK,GAAI,KAAA;AAErC,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,MAAM,IAAA,GAAO,MAAM,MAAM,CAAA;AAEzB,EAAA,MAAM,SAAA,GAAuB;AAAA,IAC3B,MAAA;AAAA,IACA,YAAA,EAAc,eAAA,CAAgB,MAAA,CAAO,CAAA,UAAA,EAAa,MAAM,CAAA,CAAE,CAAA;AAAA,IAC1D,GAAG;AAAA,GACL;AAEA,EAAA,uBAAO,GAAA,CAAC,IAAA,EAAA,EAAM,GAAG,SAAA,EAAW,CAAA;AAC9B;;;;"}
@@ -0,0 +1,21 @@
1
+ "use client"
2
+ /* */
3
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
+ import clsx from 'clsx';
5
+ import styles from './AlertText.module.scss.mjs';
6
+ import { AlertIcon } from '../AlertIcon/AlertIcon.mjs';
7
+ import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
8
+ import '../../lib/propsContext/propsContext.mjs';
9
+ import { PropsContextProvider } from '../../lib/propsContext/components/PropsContextProvider.mjs';
10
+
11
+ const AlertText = flowComponent("AlertText", (props) => {
12
+ const { className, children, status = "info" } = props;
13
+ const rootClassName = clsx(styles.alertText, styles[status], className);
14
+ return /* @__PURE__ */ jsxs("span", { className: rootClassName, children: [
15
+ /* @__PURE__ */ jsx(PropsContextProvider, { props: { Icon: { size: "s" } }, children: /* @__PURE__ */ jsx(AlertIcon, { status, className: styles.icon }) }),
16
+ /* @__PURE__ */ jsx(Fragment, { children })
17
+ ] });
18
+ });
19
+
20
+ export { AlertText, AlertText as default };
21
+ //# sourceMappingURL=AlertText.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertText.mjs","sources":["../../../../../../src/components/AlertText/AlertText.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport type { PropsWithClassName, Status } from \"@/lib/types/props\";\nimport clsx from \"clsx\";\nimport styles from \"./AlertText.module.scss\";\nimport { AlertIcon } from \"@/components/AlertIcon\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\nexport interface AlertTextProps\n extends PropsWithClassName,\n PropsWithChildren,\n FlowComponentProps {\n status?: Status | \"unavailable\";\n}\n\n/** @flr-generate all */\nexport const AlertText = flowComponent(\"AlertText\", (props) => {\n const { className, children, status = \"info\" } = props;\n\n const rootClassName = clsx(styles.alertText, styles[status], className);\n\n return (\n <span className={rootClassName}>\n <PropsContextProvider props={{ Icon: { size: \"s\" } }}>\n <AlertIcon status={status} className={styles.icon} />\n </PropsContextProvider>\n <>{children}</>\n </span>\n );\n});\n\nexport default AlertText;\n"],"names":[],"mappings":";;;;;;;;AAmBO,MAAM,SAAA,GAAY,aAAA,CAAc,WAAA,EAAa,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,MAAA,GAAS,QAAO,GAAI,KAAA;AAEjD,EAAA,MAAM,gBAAgB,IAAA,CAAK,MAAA,CAAO,WAAW,MAAA,CAAO,MAAM,GAAG,SAAS,CAAA;AAEtE,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,aAAA,EACf,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,EAAE,IAAA,EAAM,EAAE,IAAA,EAAM,GAAA,EAAI,EAAE,EACjD,8BAAC,SAAA,EAAA,EAAU,MAAA,EAAgB,SAAA,EAAW,MAAA,CAAO,MAAM,CAAA,EACrD,CAAA;AAAA,oCACG,QAAA,EAAS;AAAA,GAAA,EACd,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,21 @@
1
+ "use client"
2
+ /* */
3
+ const alertText = "flow--alert-text";
4
+ const icon = "flow--alert-text--icon";
5
+ const danger = "flow--alert-text--danger";
6
+ const success = "flow--alert-text--success";
7
+ const warning = "flow--alert-text--warning";
8
+ const info = "flow--alert-text--info";
9
+ const unavailable = "flow--alert-text--unavailable";
10
+ const styles = {
11
+ alertText: alertText,
12
+ icon: icon,
13
+ danger: danger,
14
+ success: success,
15
+ warning: warning,
16
+ info: info,
17
+ unavailable: unavailable
18
+ };
19
+
20
+ export { alertText, danger, styles as default, icon, info, success, unavailable, warning };
21
+ //# sourceMappingURL=AlertText.module.scss.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertText.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -21,6 +21,7 @@ import '@react-aria/live-announcer';
21
21
  import '../ActionGroup/ActionGroup.mjs';
22
22
  import '../Alert/Alert.mjs';
23
23
  import '../AlertBadge/AlertBadge.mjs';
24
+ import '../AlertText/AlertText.mjs';
24
25
  import '../Align/Align.mjs';
25
26
  import '../Autocomplete/Autocomplete.mjs';
26
27
  import '../Avatar/Avatar.mjs';
@@ -61,6 +62,7 @@ import '../FileCardList/FileCardList.mjs';
61
62
  import '../FileDropZone/FileDropZone.mjs';
62
63
  import '../FileField/FileField.mjs';
63
64
  import '../Header/Header.mjs';
65
+ import '../IllustratedMessage/IllustratedMessage.mjs';
64
66
  import '../Image/Image.mjs';
65
67
  import '../Initials/Initials.mjs';
66
68
  import '../Label/Label.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"CartesianChart.mjs","sources":["../../../../../../src/components/CartesianChart/CartesianChart.tsx"],"sourcesContent":["import * as Recharts from \"recharts\";\nimport React, {\n Children,\n useEffect,\n useRef,\n useState,\n type ComponentProps,\n type FC,\n type PropsWithChildren,\n type ReactElement,\n type SVGProps,\n} from \"react\";\nimport clsx from \"clsx\";\nimport styles from \"./CartesianChart.module.scss\";\nimport Wrap from \"../Wrap\";\nimport { CartesianGrid } from \"../public\";\n\nexport interface CartesianChartEmptyViewProps {\n data?: ComponentProps<typeof Recharts.ComposedChart>[\"data\"];\n}\n\nexport interface CartesianChartProps\n extends Pick<\n ComponentProps<typeof Recharts.ComposedChart>,\n \"data\" | \"className\" | \"syncId\" | \"syncMethod\"\n >,\n PropsWithChildren {\n height?: string;\n /** View that is provided when data is empty/undefined */\n emptyView?: React.ComponentType<CartesianChartEmptyViewProps>;\n /**\n * Allow the height controlling container to set flex-grow: 1. Can only be\n * used in combination with `height`\n */\n flexGrow?: boolean;\n}\n\n/** @flr-generate all */\nexport const CartesianChart: FC<CartesianChartProps> = (props) => {\n const {\n children,\n data,\n className,\n height,\n flexGrow,\n emptyView: EmptyView,\n ...rest\n } = props;\n const rootClassName = clsx(styles.cartesianChart, className);\n\n const otherChildren: ReactElement[] = [];\n const gridChildren: ReactElement[] = [];\n\n Children.forEach(children, (child) => {\n if (!child) return;\n const element = child as ReactElement;\n\n if (element.type === CartesianGrid) {\n gridChildren.push(element);\n } else {\n otherChildren.push(element);\n }\n });\n\n const showEmptyView = (!data || data.length === 0) && EmptyView;\n\n const chartContainerRef = useRef<HTMLDivElement>(null);\n const [viewDimensions, setViewDimensions] = useState<Partial<\n SVGProps<SVGForeignObjectElement>\n > | null>(null);\n\n // resizing the foreignObject for the EmptyView on size changes\n useEffect(() => {\n if (showEmptyView) {\n const updateDimensions = () => {\n const svg = chartContainerRef.current?.querySelector(\n \"svg\",\n ) as SVGSVGElement | null;\n if (!svg) return;\n\n const clip = svg.querySelector(\"clipPath rect\");\n if (clip) {\n const x = parseFloat(clip.getAttribute(\"x\") ?? \"0\");\n const y = parseFloat(clip.getAttribute(\"y\") ?? \"0\");\n const width = parseFloat(clip.getAttribute(\"width\") ?? \"0\");\n const height = parseFloat(clip.getAttribute(\"height\") ?? \"0\");\n setViewDimensions({ x, y, width, height });\n }\n };\n\n updateDimensions();\n\n const container = chartContainerRef.current;\n const observer = new ResizeObserver(updateDimensions);\n if (container) observer.observe(container);\n\n return () => {\n observer.disconnect();\n };\n }\n }, [showEmptyView]);\n\n return (\n <Wrap if={height}>\n <div\n style={{ height, flex: flexGrow ? 1 : undefined }}\n ref={chartContainerRef}\n >\n <Recharts.ResponsiveContainer\n initialDimension={{\n // fix warning on initial render\n width: 1,\n height: 1,\n }}\n >\n <Recharts.ComposedChart\n data={data}\n className={rootClassName}\n {...rest}\n >\n {!showEmptyView && gridChildren}\n {otherChildren}\n {showEmptyView && viewDimensions && (\n <foreignObject {...viewDimensions}>\n <div className={styles.emptyViewContainer}>\n <EmptyView data={data} />\n </div>\n </foreignObject>\n )}\n </Recharts.ComposedChart>\n </Recharts.ResponsiveContainer>\n </div>\n </Wrap>\n );\n};\n\nexport default CartesianChart;\n"],"names":["height"],"mappings":"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"}
1
+ {"version":3,"file":"CartesianChart.mjs","sources":["../../../../../../src/components/CartesianChart/CartesianChart.tsx"],"sourcesContent":["import * as Recharts from \"recharts\";\nimport React, {\n Children,\n useEffect,\n useRef,\n useState,\n type ComponentProps,\n type FC,\n type PropsWithChildren,\n type ReactElement,\n type SVGProps,\n} from \"react\";\nimport clsx from \"clsx\";\nimport styles from \"./CartesianChart.module.scss\";\nimport Wrap from \"../Wrap\";\nimport { CartesianGrid } from \"../public\";\n\nexport interface CartesianChartEmptyViewProps {\n data?: ComponentProps<typeof Recharts.ComposedChart>[\"data\"];\n}\n\nexport interface CartesianChartProps\n extends Pick<\n ComponentProps<typeof Recharts.ComposedChart>,\n \"data\" | \"className\" | \"syncId\" | \"syncMethod\"\n >,\n PropsWithChildren {\n height?: string;\n /** View that is provided when data is empty/undefined */\n emptyView?: React.ComponentType<CartesianChartEmptyViewProps>;\n /**\n * Allow the height controlling container to set flex-grow: 1. Can only be\n * used in combination with `height`\n */\n flexGrow?: boolean;\n}\n\n/** @flr-generate all */\nexport const CartesianChart: FC<CartesianChartProps> = (props) => {\n const {\n children,\n data,\n className,\n height,\n flexGrow,\n emptyView: EmptyView,\n ...rest\n } = props;\n const rootClassName = clsx(styles.cartesianChart, className);\n\n const otherChildren: ReactElement[] = [];\n const gridChildren: ReactElement[] = [];\n\n Children.forEach(children, (child) => {\n if (!child) return;\n const element = child as ReactElement;\n\n if (element.type === CartesianGrid) {\n gridChildren.push(element);\n } else {\n otherChildren.push(element);\n }\n });\n\n const showEmptyView = (!data || data.length === 0) && EmptyView;\n\n const chartContainerRef = useRef<HTMLDivElement>(null);\n const [viewDimensions, setViewDimensions] = useState<Partial<\n SVGProps<SVGForeignObjectElement>\n > | null>(null);\n\n // resizing the foreignObject for the EmptyView on size changes\n useEffect(() => {\n if (showEmptyView) {\n const updateDimensions = () => {\n const svg = chartContainerRef.current?.querySelector(\n \"svg\",\n ) as SVGSVGElement | null;\n if (!svg) return;\n\n const clip = svg.querySelector(\"clipPath rect\");\n if (clip) {\n const x = parseFloat(clip.getAttribute(\"x\") ?? \"0\");\n const y = parseFloat(clip.getAttribute(\"y\") ?? \"0\");\n const width = parseFloat(clip.getAttribute(\"width\") ?? \"0\");\n const height = parseFloat(clip.getAttribute(\"height\") ?? \"0\");\n setViewDimensions({ x, y, width, height });\n }\n };\n\n updateDimensions();\n\n const container = chartContainerRef.current;\n const observer = new ResizeObserver(updateDimensions);\n if (container) observer.observe(container);\n\n return () => {\n observer.disconnect();\n };\n }\n }, [showEmptyView]);\n\n return (\n <Wrap if={height}>\n <div\n style={{ height, flex: flexGrow ? 1 : undefined }}\n ref={chartContainerRef}\n >\n <Recharts.ResponsiveContainer\n initialDimension={{\n // fix warning on initial render\n width: 1,\n height: 1,\n }}\n >\n <Recharts.ComposedChart\n data={data}\n className={rootClassName}\n {...rest}\n >\n {!showEmptyView && gridChildren}\n {otherChildren}\n {showEmptyView && viewDimensions && (\n <foreignObject {...viewDimensions}>\n <div className={styles.emptyViewContainer}>\n <EmptyView data={data} />\n </div>\n </foreignObject>\n )}\n </Recharts.ComposedChart>\n </Recharts.ResponsiveContainer>\n </div>\n </Wrap>\n );\n};\n\nexport default CartesianChart;\n"],"names":["height"],"mappings":"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"}
@@ -1,16 +1,13 @@
1
1
  "use client"
2
2
  /* */
3
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { jsx } from 'react/jsx-runtime';
4
4
  import React, { useContext, useMemo } from 'react';
5
5
  import styles from './FieldError.module.scss.mjs';
6
6
  import * as Aria from 'react-aria-components';
7
7
  import { FieldErrorContext, TextContext } from 'react-aria-components';
8
8
  import clsx from 'clsx';
9
- import '@tabler/icons-react';
10
- import '../Icon/Icon.mjs';
11
- import '../../views/IconView.mjs';
12
- import { IconDanger } from '../Icon/components/icons/IconDanger.mjs';
13
9
  import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
10
+ import { AlertText } from '../AlertText/AlertText.mjs';
14
11
 
15
12
  const FieldError = flowComponent("FieldError", (props) => {
16
13
  const { children, className, ref, ...rest } = props;
@@ -48,10 +45,7 @@ const FieldError = flowComponent("FieldError", (props) => {
48
45
  return void 0;
49
46
  }
50
47
  return /* @__PURE__ */ jsx(Aria.Provider, { values: [[TextContext, { slot: void 0 }]], children: /* @__PURE__ */ jsx(FieldErrorContext, { value: mergedErrorState, children: /* @__PURE__ */ jsx(Aria.FieldError, { ref, ...rest, className: rootClassName, children: ({ validationErrors }) => {
51
- return /* @__PURE__ */ jsxs(Fragment, { children: [
52
- /* @__PURE__ */ jsx(IconDanger, { size: "s" }),
53
- /* @__PURE__ */ jsx("span", { children: validationErrors })
54
- ] });
48
+ return /* @__PURE__ */ jsx(AlertText, { status: "danger", children: validationErrors });
55
49
  } }) }) });
56
50
  });
57
51
 
@@ -1 +1 @@
1
- {"version":3,"file":"FieldError.mjs","sources":["../../../../../../src/components/FieldError/FieldError.tsx"],"sourcesContent":["import React, {\n type PropsWithChildren,\n type ReactNode,\n useContext,\n useMemo,\n} from \"react\";\nimport styles from \"./FieldError.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport { FieldErrorContext, TextContext } from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport { IconDanger } from \"@/components/Icon/components/icons\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\n\nexport interface FieldErrorProps\n extends PropsWithChildren<Omit<Aria.FieldErrorProps, \"children\">>,\n FlowComponentProps {}\n\n/** @flr-generate all */\nexport const FieldError = flowComponent(\"FieldError\", (props) => {\n const { children, className, ref, ...rest } = props;\n\n const rootClassName = clsx(styles.fieldError, className);\n const fieldErrorFromAriaContext = useContext(FieldErrorContext);\n const isInvalidFromChildren = React.Children.count(children) >= 1;\n\n const mergedErrorState = useMemo(() => {\n const errors: (string | ReactNode)[] =\n fieldErrorFromAriaContext?.validationErrors ?? [];\n\n if (isInvalidFromChildren) {\n errors.push(children);\n }\n\n const isInvalid = !!(\n isInvalidFromChildren || fieldErrorFromAriaContext?.isInvalid\n );\n const lastError =\n errors.length >= 1 ? errors[errors.length - 1] : undefined;\n\n return {\n isInvalid: isInvalid,\n validationDetails: {\n valid: !isInvalid,\n badInput: false,\n customError: isInvalid,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n valueMissing: false,\n typeMismatch: false,\n ...fieldErrorFromAriaContext?.validationDetails,\n },\n ...fieldErrorFromAriaContext,\n validationErrors: lastError ? [lastError] : [],\n };\n }, [fieldErrorFromAriaContext, children]);\n\n if (!mergedErrorState.isInvalid) {\n return undefined;\n }\n\n return (\n <Aria.Provider values={[[TextContext, { slot: undefined }]]}>\n <FieldErrorContext value={mergedErrorState as never}>\n <Aria.FieldError ref={ref} {...rest} className={rootClassName}>\n {({ validationErrors }) => {\n return (\n <>\n <IconDanger size=\"s\" />\n <span>{validationErrors}</span>\n </>\n );\n }}\n </Aria.FieldError>\n </FieldErrorContext>\n </Aria.Provider>\n );\n});\n\nexport default FieldError;\n"],"names":[],"mappings":";;;;;;;;;;;;AAmBO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAE9C,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,MAAA,CAAO,UAAA,EAAY,SAAS,CAAA;AACvD,EAAA,MAAM,yBAAA,GAA4B,WAAW,iBAAiB,CAAA;AAC9D,EAAA,MAAM,qBAAA,GAAwB,KAAA,CAAM,QAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,IAAK,CAAA;AAEhE,EAAA,MAAM,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,MAAM,MAAA,GACJ,yBAAA,EAA2B,gBAAA,IAAoB,EAAC;AAElD,IAAA,IAAI,qBAAA,EAAuB;AACzB,MAAA,MAAA,CAAO,KAAK,QAAQ,CAAA;AAAA,IACtB;AAEA,IAAA,MAAM,SAAA,GAAY,CAAC,EACjB,qBAAA,IAAyB,yBAAA,EAA2B,SAAA,CAAA;AAEtD,IAAA,MAAM,SAAA,GACJ,OAAO,MAAA,IAAU,CAAA,GAAI,OAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,GAAI,MAAA;AAEnD,IAAA,OAAO;AAAA,MACL,SAAA;AAAA,MACA,iBAAA,EAAmB;AAAA,QACjB,OAAO,CAAC,SAAA;AAAA,QACR,QAAA,EAAU,KAAA;AAAA,QACV,WAAA,EAAa,SAAA;AAAA,QACb,eAAA,EAAiB,KAAA;AAAA,QACjB,aAAA,EAAe,KAAA;AAAA,QACf,cAAA,EAAgB,KAAA;AAAA,QAChB,YAAA,EAAc,KAAA;AAAA,QACd,OAAA,EAAS,KAAA;AAAA,QACT,QAAA,EAAU,KAAA;AAAA,QACV,YAAA,EAAc,KAAA;AAAA,QACd,YAAA,EAAc,KAAA;AAAA,QACd,GAAG,yBAAA,EAA2B;AAAA,OAChC;AAAA,MACA,GAAG,yBAAA;AAAA,MACH,gBAAA,EAAkB,SAAA,GAAY,CAAC,SAAS,IAAI;AAAC,KAC/C;AAAA,EACF,CAAA,EAAG,CAAC,yBAAA,EAA2B,QAAQ,CAAC,CAAA;AAExC,EAAA,IAAI,CAAC,iBAAiB,SAAA,EAAW;AAC/B,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA,CAAC,IAAA,CAAK,QAAA,EAAL,EAAc,MAAA,EAAQ,CAAC,CAAC,WAAA,EAAa,EAAE,IAAA,EAAM,MAAA,EAAW,CAAC,CAAA,EACxD,QAAA,kBAAA,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,gBAAA,EACxB,QAAA,kBAAA,GAAA,CAAC,IAAA,CAAK,UAAA,EAAL,EAAgB,GAAA,EAAW,GAAG,IAAA,EAAM,SAAA,EAAW,aAAA,EAC7C,QAAA,EAAA,CAAC,EAAE,kBAAiB,KAAM;AACzB,IAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,MAAK,GAAA,EAAI,CAAA;AAAA,sBACrB,GAAA,CAAC,UAAM,QAAA,EAAA,gBAAA,EAAiB;AAAA,KAAA,EAC1B,CAAA;AAAA,EAEJ,CAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"FieldError.mjs","sources":["../../../../../../src/components/FieldError/FieldError.tsx"],"sourcesContent":["import React, {\n type PropsWithChildren,\n type ReactNode,\n useContext,\n useMemo,\n} from \"react\";\nimport styles from \"./FieldError.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport { FieldErrorContext, TextContext } from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { AlertText } from \"@/components/AlertText\";\n\nexport interface FieldErrorProps\n extends PropsWithChildren<Omit<Aria.FieldErrorProps, \"children\">>,\n FlowComponentProps {}\n\n/** @flr-generate all */\nexport const FieldError = flowComponent(\"FieldError\", (props) => {\n const { children, className, ref, ...rest } = props;\n\n const rootClassName = clsx(styles.fieldError, className);\n const fieldErrorFromAriaContext = useContext(FieldErrorContext);\n const isInvalidFromChildren = React.Children.count(children) >= 1;\n\n const mergedErrorState = useMemo(() => {\n const errors: (string | ReactNode)[] =\n fieldErrorFromAriaContext?.validationErrors ?? [];\n\n if (isInvalidFromChildren) {\n errors.push(children);\n }\n\n const isInvalid = !!(\n isInvalidFromChildren || fieldErrorFromAriaContext?.isInvalid\n );\n const lastError =\n errors.length >= 1 ? errors[errors.length - 1] : undefined;\n\n return {\n isInvalid: isInvalid,\n validationDetails: {\n valid: !isInvalid,\n badInput: false,\n customError: isInvalid,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n valueMissing: false,\n typeMismatch: false,\n ...fieldErrorFromAriaContext?.validationDetails,\n },\n ...fieldErrorFromAriaContext,\n validationErrors: lastError ? [lastError] : [],\n };\n }, [fieldErrorFromAriaContext, children]);\n\n if (!mergedErrorState.isInvalid) {\n return undefined;\n }\n\n return (\n <Aria.Provider values={[[TextContext, { slot: undefined }]]}>\n <FieldErrorContext value={mergedErrorState as never}>\n <Aria.FieldError ref={ref} {...rest} className={rootClassName}>\n {({ validationErrors }) => {\n return <AlertText status=\"danger\">{validationErrors}</AlertText>;\n }}\n </Aria.FieldError>\n </FieldErrorContext>\n </Aria.Provider>\n );\n});\n\nexport default FieldError;\n"],"names":[],"mappings":";;;;;;;;;AAmBO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAE9C,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,MAAA,CAAO,UAAA,EAAY,SAAS,CAAA;AACvD,EAAA,MAAM,yBAAA,GAA4B,WAAW,iBAAiB,CAAA;AAC9D,EAAA,MAAM,qBAAA,GAAwB,KAAA,CAAM,QAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,IAAK,CAAA;AAEhE,EAAA,MAAM,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,MAAM,MAAA,GACJ,yBAAA,EAA2B,gBAAA,IAAoB,EAAC;AAElD,IAAA,IAAI,qBAAA,EAAuB;AACzB,MAAA,MAAA,CAAO,KAAK,QAAQ,CAAA;AAAA,IACtB;AAEA,IAAA,MAAM,SAAA,GAAY,CAAC,EACjB,qBAAA,IAAyB,yBAAA,EAA2B,SAAA,CAAA;AAEtD,IAAA,MAAM,SAAA,GACJ,OAAO,MAAA,IAAU,CAAA,GAAI,OAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,GAAI,MAAA;AAEnD,IAAA,OAAO;AAAA,MACL,SAAA;AAAA,MACA,iBAAA,EAAmB;AAAA,QACjB,OAAO,CAAC,SAAA;AAAA,QACR,QAAA,EAAU,KAAA;AAAA,QACV,WAAA,EAAa,SAAA;AAAA,QACb,eAAA,EAAiB,KAAA;AAAA,QACjB,aAAA,EAAe,KAAA;AAAA,QACf,cAAA,EAAgB,KAAA;AAAA,QAChB,YAAA,EAAc,KAAA;AAAA,QACd,OAAA,EAAS,KAAA;AAAA,QACT,QAAA,EAAU,KAAA;AAAA,QACV,YAAA,EAAc,KAAA;AAAA,QACd,YAAA,EAAc,KAAA;AAAA,QACd,GAAG,yBAAA,EAA2B;AAAA,OAChC;AAAA,MACA,GAAG,yBAAA;AAAA,MACH,gBAAA,EAAkB,SAAA,GAAY,CAAC,SAAS,IAAI;AAAC,KAC/C;AAAA,EACF,CAAA,EAAG,CAAC,yBAAA,EAA2B,QAAQ,CAAC,CAAA;AAExC,EAAA,IAAI,CAAC,iBAAiB,SAAA,EAAW;AAC/B,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA,CAAC,IAAA,CAAK,QAAA,EAAL,EAAc,MAAA,EAAQ,CAAC,CAAC,WAAA,EAAa,EAAE,IAAA,EAAM,MAAA,EAAW,CAAC,CAAA,EACxD,QAAA,kBAAA,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,gBAAA,EACxB,QAAA,kBAAA,GAAA,CAAC,IAAA,CAAK,UAAA,EAAL,EAAgB,GAAA,EAAW,GAAG,IAAA,EAAM,SAAA,EAAW,aAAA,EAC7C,QAAA,EAAA,CAAC,EAAE,kBAAiB,KAAM;AACzB,IAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAU,MAAA,EAAO,QAAA,EAAU,QAAA,EAAA,gBAAA,EAAiB,CAAA;AAAA,EACtD,CAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -39,21 +39,23 @@ const FileDropZone = flowComponent(
39
39
  );
40
40
  const propsContext = {
41
41
  ...fieldPropsContext,
42
- FileField: {
43
- name,
44
- onChange: onChangeDropZone,
45
- ref: fileFieldRef,
46
- accept,
47
- multiple,
48
- Button: { variant: "outline", color: "dark" },
49
- isDisabled,
50
- isReadOnly
51
- },
52
- Heading: {
53
- className: styles.heading
54
- },
55
- Icon: { className: styles.icon },
56
- Text: { className: styles.text }
42
+ IllustratedMessage: {
43
+ FileField: {
44
+ name,
45
+ onChange: onChangeDropZone,
46
+ ref: fileFieldRef,
47
+ accept,
48
+ multiple,
49
+ Button: { variant: "outline", color: "dark" },
50
+ isDisabled,
51
+ isReadOnly
52
+ },
53
+ Heading: {
54
+ className: styles.heading
55
+ },
56
+ Icon: { className: styles.icon },
57
+ Text: { className: styles.text }
58
+ }
57
59
  };
58
60
  const onDropHandler = async (event) => {
59
61
  if (isReadOnly) {
@@ -1 +1 @@
1
- {"version":3,"file":"FileDropZone.mjs","sources":["../../../../../../src/components/FileDropZone/FileDropZone.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, useRef } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { IllustratedMessage } from \"@/components/IllustratedMessage\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport styles from \"./FileDropZone.module.scss\";\nimport clsx from \"clsx\";\nimport type { FileInputOnChangeHandler } from \"@/components/FileField/components/FileInput\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport type { DropEvent, FocusableElement } from \"@react-types/shared\";\nimport { addAwaitedArrayBuffer } from \"@mittwald/flow-core\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface FileDropZoneProps\n extends PropsWithClassName,\n FlowComponentProps<FocusableElement>,\n PropsWithChildren,\n Pick<Aria.InputProps, \"accept\" | \"multiple\" | \"name\">,\n Pick<Aria.DropZoneProps, \"isDisabled\"> {\n onChange?: FileInputOnChangeHandler;\n /** Whether the component is read only. */\n isReadOnly?: boolean;\n}\n\n/** @flr-generate all */\nexport const FileDropZone: FC<FileDropZoneProps> = flowComponent(\n \"FileDropZone\",\n (props) => {\n const {\n multiple,\n accept,\n className,\n onChange: onChangeDropZone,\n children,\n name,\n isDisabled,\n isReadOnly,\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const fileFieldRef = useRef<HTMLInputElement>(null);\n const rootClassName = clsx(\n styles.fileDropZone,\n isDisabled && styles.disabled,\n className,\n );\n\n const propsContext: PropsContext = {\n ...fieldPropsContext,\n FileField: {\n name,\n onChange: onChangeDropZone,\n ref: fileFieldRef,\n accept: accept,\n multiple: multiple,\n Button: { variant: \"outline\", color: \"dark\" },\n isDisabled,\n isReadOnly,\n },\n Heading: {\n className: styles.heading,\n },\n Icon: { className: styles.icon },\n Text: { className: styles.text },\n };\n\n const onDropHandler = async (event: DropEvent) => {\n if (isReadOnly) {\n return;\n }\n\n const fileDropItems = event.items.filter(\n (file) => file.kind === \"file\",\n ) as Aria.FileDropItem[];\n\n const files = await Promise.all(\n fileDropItems\n .filter((f) => !accept || accept?.includes(f.type))\n .map(async (f) => {\n const file = await f.getFile();\n return await addAwaitedArrayBuffer(file);\n }),\n );\n\n if (files.length > 0) {\n const fileTransfer = new DataTransfer();\n for (const file of multiple ? files : [files[0]]) {\n if (file) {\n fileTransfer.items.add(file);\n }\n }\n\n onChangeDropZone?.(fileTransfer.files);\n if (fileFieldRef.current) {\n fileFieldRef.current.files = fileTransfer.files;\n }\n }\n };\n\n return (\n <div {...fieldProps}>\n <FieldErrorCaptureContext>\n <PropsContextProvider props={propsContext}>\n <Aria.DropZone\n className={rootClassName}\n onDrop={onDropHandler}\n isDisabled={isDisabled}\n data-readonly={isReadOnly}\n >\n <IllustratedMessage color=\"dark\">{children}</IllustratedMessage>\n </Aria.DropZone>\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </div>\n );\n },\n);\n\nexport default FileDropZone;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileDropZone.mjs","sources":["../../../../../../src/components/FileDropZone/FileDropZone.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, useRef } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { IllustratedMessage } from \"@/components/IllustratedMessage\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport styles from \"./FileDropZone.module.scss\";\nimport clsx from \"clsx\";\nimport type { FileInputOnChangeHandler } from \"@/components/FileField/components/FileInput\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport type { DropEvent, FocusableElement } from \"@react-types/shared\";\nimport { addAwaitedArrayBuffer } from \"@mittwald/flow-core\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface FileDropZoneProps\n extends PropsWithClassName,\n FlowComponentProps<FocusableElement>,\n PropsWithChildren,\n Pick<Aria.InputProps, \"accept\" | \"multiple\" | \"name\">,\n Pick<Aria.DropZoneProps, \"isDisabled\"> {\n onChange?: FileInputOnChangeHandler;\n /** Whether the component is read only. */\n isReadOnly?: boolean;\n}\n\n/** @flr-generate all */\nexport const FileDropZone: FC<FileDropZoneProps> = flowComponent(\n \"FileDropZone\",\n (props) => {\n const {\n multiple,\n accept,\n className,\n onChange: onChangeDropZone,\n children,\n name,\n isDisabled,\n isReadOnly,\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const fileFieldRef = useRef<HTMLInputElement>(null);\n const rootClassName = clsx(\n styles.fileDropZone,\n isDisabled && styles.disabled,\n className,\n );\n\n const propsContext: PropsContext = {\n ...fieldPropsContext,\n IllustratedMessage: {\n FileField: {\n name,\n onChange: onChangeDropZone,\n ref: fileFieldRef,\n accept: accept,\n multiple: multiple,\n Button: { variant: \"outline\", color: \"dark\" },\n isDisabled,\n isReadOnly,\n },\n Heading: {\n className: styles.heading,\n },\n Icon: { className: styles.icon },\n Text: { className: styles.text },\n },\n };\n\n const onDropHandler = async (event: DropEvent) => {\n if (isReadOnly) {\n return;\n }\n\n const fileDropItems = event.items.filter(\n (file) => file.kind === \"file\",\n ) as Aria.FileDropItem[];\n\n const files = await Promise.all(\n fileDropItems\n .filter((f) => !accept || accept?.includes(f.type))\n .map(async (f) => {\n const file = await f.getFile();\n return await addAwaitedArrayBuffer(file);\n }),\n );\n\n if (files.length > 0) {\n const fileTransfer = new DataTransfer();\n for (const file of multiple ? files : [files[0]]) {\n if (file) {\n fileTransfer.items.add(file);\n }\n }\n\n onChangeDropZone?.(fileTransfer.files);\n if (fileFieldRef.current) {\n fileFieldRef.current.files = fileTransfer.files;\n }\n }\n };\n\n return (\n <div {...fieldProps}>\n <FieldErrorCaptureContext>\n <PropsContextProvider props={propsContext}>\n <Aria.DropZone\n className={rootClassName}\n onDrop={onDropHandler}\n isDisabled={isDisabled}\n data-readonly={isReadOnly}\n >\n <IllustratedMessage color=\"dark\">{children}</IllustratedMessage>\n </Aria.DropZone>\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </div>\n );\n },\n);\n\nexport default FileDropZone;\n"],"names":[],"mappings":";;;;;;;;;;;;AA6BO,MAAM,YAAA,GAAsC,aAAA;AAAA,EACjD,cAAA;AAAA,EACA,CAAC,KAAA,KAAU;AACT,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA,EAAU,gBAAA;AAAA,MACV,QAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,KACF,GAAI,KAAA;AAEJ,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,wBAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,KACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,IAAA,MAAM,YAAA,GAAe,OAAyB,IAAI,CAAA;AAClD,IAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,MACpB,MAAA,CAAO,YAAA;AAAA,MACP,cAAc,MAAA,CAAO,QAAA;AAAA,MACrB;AAAA,KACF;AAEA,IAAA,MAAM,YAAA,GAA6B;AAAA,MACjC,GAAG,iBAAA;AAAA,MACH,kBAAA,EAAoB;AAAA,QAClB,SAAA,EAAW;AAAA,UACT,IAAA;AAAA,UACA,QAAA,EAAU,gBAAA;AAAA,UACV,GAAA,EAAK,YAAA;AAAA,UACL,MAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAA,EAAQ,EAAE,OAAA,EAAS,SAAA,EAAW,OAAO,MAAA,EAAO;AAAA,UAC5C,UAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,OAAA,EAAS;AAAA,UACP,WAAW,MAAA,CAAO;AAAA,SACpB;AAAA,QACA,IAAA,EAAM,EAAE,SAAA,EAAW,MAAA,CAAO,IAAA,EAAK;AAAA,QAC/B,IAAA,EAAM,EAAE,SAAA,EAAW,MAAA,CAAO,IAAA;AAAK;AACjC,KACF;AAEA,IAAA,MAAM,aAAA,GAAgB,OAAO,KAAA,KAAqB;AAChD,MAAA,IAAI,UAAA,EAAY;AACd,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAM,KAAA,CAAM,MAAA;AAAA,QAChC,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,KAAS;AAAA,OAC1B;AAEA,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,GAAA;AAAA,QAC1B,aAAA,CACG,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,MAAA,IAAU,MAAA,EAAQ,QAAA,CAAS,CAAA,CAAE,IAAI,CAAC,CAAA,CACjD,GAAA,CAAI,OAAO,CAAA,KAAM;AAChB,UAAA,MAAM,IAAA,GAAO,MAAM,CAAA,CAAE,OAAA,EAAQ;AAC7B,UAAA,OAAO,MAAM,sBAAsB,IAAI,CAAA;AAAA,QACzC,CAAC;AAAA,OACL;AAEA,MAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,QAAA,MAAM,YAAA,GAAe,IAAI,YAAA,EAAa;AACtC,QAAA,KAAA,MAAW,QAAQ,QAAA,GAAW,KAAA,GAAQ,CAAC,KAAA,CAAM,CAAC,CAAC,CAAA,EAAG;AAChD,UAAA,IAAI,IAAA,EAAM;AACR,YAAA,YAAA,CAAa,KAAA,CAAM,IAAI,IAAI,CAAA;AAAA,UAC7B;AAAA,QACF;AAEA,QAAA,gBAAA,GAAmB,aAAa,KAAK,CAAA;AACrC,QAAA,IAAI,aAAa,OAAA,EAAS;AACxB,UAAA,YAAA,CAAa,OAAA,CAAQ,QAAQ,YAAA,CAAa,KAAA;AAAA,QAC5C;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,UAAA,EACP,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,wBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA,CAAK,QAAA;AAAA,QAAL;AAAA,UACC,SAAA,EAAW,aAAA;AAAA,UACX,MAAA,EAAQ,aAAA;AAAA,UACR,UAAA;AAAA,UACA,eAAA,EAAe,UAAA;AAAA,UAEf,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,KAAA,EAAM,MAAA,EAAQ,QAAA,EAAS;AAAA;AAAA,SAE/C,CAAA,EACF,CAAA;AAAA,0BACC,cAAA,EAAA,EAAe;AAAA,KAAA,EAClB,CAAA;AAAA,EAEJ;AACF;;;;"}
@@ -43,6 +43,11 @@ const Heading = flowComponent("Heading", (props) => {
43
43
  Button: {
44
44
  tunnelId: null
45
45
  }
46
+ },
47
+ AlertText: {
48
+ Icon: {
49
+ className: styles.icon
50
+ }
46
51
  }
47
52
  };
48
53
  return /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(TunnelProvider, { children: /* @__PURE__ */ jsxs(
@@ -1 +1 @@
1
- {"version":3,"file":"Heading.mjs","sources":["../../../../../../src/components/Heading/Heading.tsx"],"sourcesContent":["export * from \"./view\";\nimport styles from \"./Heading.module.scss\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport * as Aria from \"react-aria-components\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\n\nexport interface HeadingProps extends Aria.HeadingProps, FlowComponentProps {\n /** The font size of the heading. */\n size?: \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\";\n /** The color of the heading. @default \"primary\" */\n color?: \"primary\" | \"dark\" | \"light\";\n /** The text-wrap property of the text. @default undefined */\n wrap?: \"wrap\" | \"balance\";\n}\n\n/** @flr-generate all */\nexport const Heading = flowComponent(\"Heading\", (props) => {\n const {\n children,\n className,\n level = 2,\n color = \"primary\",\n wrap,\n size,\n ref,\n ...rest\n } = props;\n\n const rootClassName = clsx(\n styles.heading,\n size && styles[size],\n styles[color],\n wrap && styles[`wrap-${wrap}`],\n className,\n );\n\n const propsContext: PropsContext = {\n Icon: {\n \"aria-hidden\": true,\n className: styles.icon,\n },\n AlertBadge: {\n tunnelId: \"headingContent\",\n },\n Badge: {\n tunnelId: \"headingContent\",\n },\n ContextualHelpTrigger: {\n tunnelId: \"headingContent\",\n Button: {\n tunnelId: null,\n },\n },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <Aria.Heading\n level={level}\n className={rootClassName}\n {...rest}\n ref={ref}\n >\n <span className={styles.headingText}>{children}</span>\n <span className={styles.headingContent}>\n <TunnelExit id=\"headingContent\" />\n </span>\n </Aria.Heading>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default Heading;\n"],"names":[],"mappings":";;;;;;;;;AAoBO,MAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,CAAC,KAAA,KAAU;AACzD,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,GAAQ,CAAA;AAAA,IACR,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,OAAA;AAAA,IACP,IAAA,IAAQ,OAAO,IAAI,CAAA;AAAA,IACnB,OAAO,KAAK,CAAA;AAAA,IACZ,IAAA,IAAQ,MAAA,CAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAA;AAAA,IAC7B;AAAA,GACF;AAEA,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,IAAA,EAAM;AAAA,MACJ,aAAA,EAAe,IAAA;AAAA,MACf,WAAW,MAAA,CAAO;AAAA,KACpB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,KAAA,EAAO;AAAA,MACL,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,qBAAA,EAAuB;AAAA,MACrB,QAAA,EAAU,gBAAA;AAAA,MACV,MAAA,EAAQ;AAAA,QACN,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAEA,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,8BAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,IAAA,CAAK,OAAA;AAAA,IAAL;AAAA,MACC,KAAA;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,WAAA,EAAc,QAAA,EAAS,CAAA;AAAA,wBAC/C,GAAA,CAAC,UAAK,SAAA,EAAW,MAAA,CAAO,gBACtB,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,gBAAA,EAAiB,CAAA,EAClC;AAAA;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Heading.mjs","sources":["../../../../../../src/components/Heading/Heading.tsx"],"sourcesContent":["export * from \"./view\";\nimport styles from \"./Heading.module.scss\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport * as Aria from \"react-aria-components\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\n\nexport interface HeadingProps extends Aria.HeadingProps, FlowComponentProps {\n /** The font size of the heading. */\n size?: \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\";\n /** The color of the heading. @default \"primary\" */\n color?: \"primary\" | \"dark\" | \"light\";\n /** The text-wrap property of the text. @default undefined */\n wrap?: \"wrap\" | \"balance\";\n}\n\n/** @flr-generate all */\nexport const Heading = flowComponent(\"Heading\", (props) => {\n const {\n children,\n className,\n level = 2,\n color = \"primary\",\n wrap,\n size,\n ref,\n ...rest\n } = props;\n\n const rootClassName = clsx(\n styles.heading,\n size && styles[size],\n styles[color],\n wrap && styles[`wrap-${wrap}`],\n className,\n );\n\n const propsContext: PropsContext = {\n Icon: {\n \"aria-hidden\": true,\n className: styles.icon,\n },\n AlertBadge: {\n tunnelId: \"headingContent\",\n },\n Badge: {\n tunnelId: \"headingContent\",\n },\n ContextualHelpTrigger: {\n tunnelId: \"headingContent\",\n Button: {\n tunnelId: null,\n },\n },\n AlertText: {\n Icon: {\n className: styles.icon,\n },\n },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <Aria.Heading\n level={level}\n className={rootClassName}\n {...rest}\n ref={ref}\n >\n <span className={styles.headingText}>{children}</span>\n <span className={styles.headingContent}>\n <TunnelExit id=\"headingContent\" />\n </span>\n </Aria.Heading>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default Heading;\n"],"names":[],"mappings":";;;;;;;;;AAoBO,MAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,CAAC,KAAA,KAAU;AACzD,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,GAAQ,CAAA;AAAA,IACR,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,OAAA;AAAA,IACP,IAAA,IAAQ,OAAO,IAAI,CAAA;AAAA,IACnB,OAAO,KAAK,CAAA;AAAA,IACZ,IAAA,IAAQ,MAAA,CAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAA;AAAA,IAC7B;AAAA,GACF;AAEA,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,IAAA,EAAM;AAAA,MACJ,aAAA,EAAe,IAAA;AAAA,MACf,WAAW,MAAA,CAAO;AAAA,KACpB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,KAAA,EAAO;AAAA,MACL,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,qBAAA,EAAuB;AAAA,MACrB,QAAA,EAAU,gBAAA;AAAA,MACV,MAAA,EAAQ;AAAA,QACN,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM;AAAA,QACJ,WAAW,MAAA,CAAO;AAAA;AACpB;AACF,GACF;AAEA,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,8BAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,IAAA,CAAK,OAAA;AAAA,IAAL;AAAA,MACC,KAAA;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,WAAA,EAAc,QAAA,EAAS,CAAA;AAAA,wBAC/C,GAAA,CAAC,UAAK,SAAA,EAAW,MAAA,CAAO,gBACtB,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,gBAAA,EAAiB,CAAA,EAClC;AAAA;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.mjs","sources":["../../../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import type { PropsWithChildren, SVGAttributes } from \"react\";\nimport React from \"react\";\nimport styles from \"./Icon.module.scss\";\nimport clsx from \"clsx\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { cloneElement } from \"@/lib/react/cloneElement\";\nimport type { PropsWithStatus } from \"@/lib/types/props\";\n\ntype SvgAttributeProps = SVGAttributes<SVGSVGElement>;\n\nexport interface IconProps\n extends PropsWithChildren<Omit<SvgAttributeProps, \"name\">>,\n FlowComponentProps,\n PropsWithStatus {\n /** The size of the icon. @default \"m\" */\n size?: \"s\" | \"m\" | \"l\";\n}\n\n/** @flr-generate all */\nexport const Icon = flowComponent(\"Icon\", (props) => {\n const {\n className,\n \"aria-label\": ariaLabel,\n children,\n size = \"m\",\n status,\n ref: ignoredRef,\n ...svgAttributes\n } = props;\n\n const iconProps: SvgAttributeProps = {\n ...svgAttributes,\n focusable: \"false\",\n role: \"img\",\n \"aria-hidden\": !ariaLabel,\n \"aria-label\": ariaLabel,\n className: clsx(\n styles.icon,\n className,\n styles[`size-${size}`],\n status && styles[status],\n ),\n };\n\n const iconElement = React.Children.toArray(children)[0];\n\n if (!React.isValidElement(iconElement)) {\n throw new Error(\n `Expected children of Icon component to be a valid React element (got ${String(\n children,\n )})`,\n );\n }\n\n return cloneElement(iconElement, iconProps);\n});\n\nexport default Icon;\n"],"names":[],"mappings":";;;;;;AAoBO,MAAM,IAAA,GAAO,aAAA,CAAc,MAAA,EAAQ,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,QAAA;AAAA,IACA,IAAA,GAAO,GAAA;AAAA,IACP,MAAA;AAAA,IACA,GAAA,EAAK,UAAA;AAAA,IACL,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,SAAA,GAA+B;AAAA,IACnC,GAAG,aAAA;AAAA,IACH,SAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAM,KAAA;AAAA,IACN,eAAe,CAAC,SAAA;AAAA,IAChB,YAAA,EAAc,SAAA;AAAA,IACd,SAAA,EAAW,IAAA;AAAA,MACT,MAAA,CAAO,IAAA;AAAA,MACP,SAAA;AAAA,MACA,MAAA,CAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAA;AAAA,MACrB,MAAA,IAAU,OAAO,MAAM;AAAA;AACzB,GACF;AAEA,EAAA,MAAM,cAAc,KAAA,CAAM,QAAA,CAAS,OAAA,CAAQ,QAAQ,EAAE,CAAC,CAAA;AAEtD,EAAA,IAAI,CAAC,KAAA,CAAM,cAAA,CAAe,WAAW,CAAA,EAAG;AACtC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,qEAAA,EAAwE,MAAA;AAAA,QACtE;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,EACF;AAEA,EAAA,OAAO,YAAA,CAAa,aAAa,SAAS,CAAA;AAC5C,CAAC;;;;"}
1
+ {"version":3,"file":"Icon.mjs","sources":["../../../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import type { PropsWithChildren, SVGAttributes } from \"react\";\nimport React from \"react\";\nimport styles from \"./Icon.module.scss\";\nimport clsx from \"clsx\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { cloneElement } from \"@/lib/react/cloneElement\";\nimport type { Status } from \"@/lib/types/props\";\n\ntype SvgAttributeProps = SVGAttributes<SVGSVGElement>;\n\nexport interface IconProps\n extends PropsWithChildren<Omit<SvgAttributeProps, \"name\">>,\n FlowComponentProps {\n status?: Status | \"unavailable\";\n /** The size of the icon. @default \"m\" */\n size?: \"s\" | \"m\" | \"l\";\n}\n\n/** @flr-generate all */\nexport const Icon = flowComponent(\"Icon\", (props) => {\n const {\n className,\n \"aria-label\": ariaLabel,\n children,\n size = \"m\",\n status,\n ref: ignoredRef,\n ...svgAttributes\n } = props;\n\n const iconProps: SvgAttributeProps = {\n ...svgAttributes,\n focusable: \"false\",\n role: \"img\",\n \"aria-hidden\": !ariaLabel,\n \"aria-label\": ariaLabel,\n className: clsx(\n styles.icon,\n className,\n styles[`size-${size}`],\n status && styles[status],\n ),\n };\n\n const iconElement = React.Children.toArray(children)[0];\n\n if (!React.isValidElement(iconElement)) {\n throw new Error(\n `Expected children of Icon component to be a valid React element (got ${String(\n children,\n )})`,\n );\n }\n\n return cloneElement(iconElement, iconProps);\n});\n\nexport default Icon;\n"],"names":[],"mappings":";;;;;;AAoBO,MAAM,IAAA,GAAO,aAAA,CAAc,MAAA,EAAQ,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,QAAA;AAAA,IACA,IAAA,GAAO,GAAA;AAAA,IACP,MAAA;AAAA,IACA,GAAA,EAAK,UAAA;AAAA,IACL,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,SAAA,GAA+B;AAAA,IACnC,GAAG,aAAA;AAAA,IACH,SAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAM,KAAA;AAAA,IACN,eAAe,CAAC,SAAA;AAAA,IAChB,YAAA,EAAc,SAAA;AAAA,IACd,SAAA,EAAW,IAAA;AAAA,MACT,MAAA,CAAO,IAAA;AAAA,MACP,SAAA;AAAA,MACA,MAAA,CAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAA;AAAA,MACrB,MAAA,IAAU,OAAO,MAAM;AAAA;AACzB,GACF;AAEA,EAAA,MAAM,cAAc,KAAA,CAAM,QAAA,CAAS,OAAA,CAAQ,QAAQ,EAAE,CAAC,CAAA;AAEtD,EAAA,IAAI,CAAC,KAAA,CAAM,cAAA,CAAe,WAAW,CAAA,EAAG;AACtC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,qEAAA,EAAwE,MAAA;AAAA,QACtE;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,EACF;AAEA,EAAA,OAAO,YAAA,CAAa,aAAa,SAAS,CAAA;AAC5C,CAAC;;;;"}
@@ -5,6 +5,7 @@ const danger = "flow--icon--danger";
5
5
  const success = "flow--icon--success";
6
6
  const warning = "flow--icon--warning";
7
7
  const info = "flow--icon--info";
8
+ const unavailable = "flow--icon--unavailable";
8
9
  const styles = {
9
10
  icon: icon,
10
11
  "size-m": "flow--icon--size-m",
@@ -13,8 +14,9 @@ const styles = {
13
14
  danger: danger,
14
15
  success: success,
15
16
  warning: warning,
16
- info: info
17
+ info: info,
18
+ unavailable: unavailable
17
19
  };
18
20
 
19
- export { danger, styles as default, icon, info, success, warning };
21
+ export { danger, styles as default, icon, info, success, unavailable, warning };
20
22
  //# sourceMappingURL=Icon.module.scss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Icon.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,14 @@
1
+ "use client"
2
+ /* */
3
+ import { jsx } from 'react/jsx-runtime';
4
+ import 'react';
5
+ import { IconCircleMinus } from '@tabler/icons-react';
6
+ import '../../Icon.mjs';
7
+ import IconView from '../../../../views/IconView.mjs';
8
+
9
+ const IconUnavailable = (props) => {
10
+ return /* @__PURE__ */ jsx(IconView, { ...props, children: /* @__PURE__ */ jsx(IconCircleMinus, {}) });
11
+ };
12
+
13
+ export { IconUnavailable, IconUnavailable as default };
14
+ //# sourceMappingURL=IconUnavailable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconUnavailable.mjs","sources":["../../../../../../../../src/components/Icon/components/icons/IconUnavailable.tsx"],"sourcesContent":["/* auto-generated file */\nimport React, { type ComponentProps, type FC } from \"react\";\nimport { IconCircleMinus as Tabler } from \"@tabler/icons-react\";\nimport { type Icon } from \"@/components/Icon\";\nimport View from \"@/views/IconView\";\n\nexport const IconUnavailable: FC<\n Omit<ComponentProps<typeof Icon>, \"children\">\n> = (props) => {\n return (\n <View {...props}>\n <Tabler />\n </View>\n );\n};\n\nexport default IconUnavailable;\n"],"names":["View","Tabler"],"mappings":";;;;;;AAMO,MAAM,eAAA,GAET,CAAC,KAAA,KAAU;AACb,EAAA,2BACGA,QAAA,EAAA,EAAM,GAAG,KAAA,EACR,QAAA,kBAAA,GAAA,CAACC,mBAAO,CAAA,EACV,CAAA;AAEJ;;;;"}
@@ -5,38 +5,42 @@ import styles from './IllustratedMessage.module.scss.mjs';
5
5
  import clsx from 'clsx';
6
6
  import '../../lib/propsContext/propsContext.mjs';
7
7
  import { PropsContextProvider } from '../../lib/propsContext/components/PropsContextProvider.mjs';
8
+ import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
8
9
 
9
- const IllustratedMessage = (props) => {
10
- const { className, children, color = "primary", ...rest } = props;
11
- const rootClassName = clsx(
12
- styles.illustratedMessage,
13
- className,
14
- styles[color]
15
- );
16
- const lightOrDarkColor = color === "dark" || color === "light" ? color : void 0;
17
- const propsContext = {
18
- Icon: {
19
- className: styles.icon,
20
- size: "l"
21
- },
22
- Heading: {
23
- className: styles.heading,
24
- color: lightOrDarkColor
25
- },
26
- Text: {
27
- className: styles.text,
28
- color: lightOrDarkColor
29
- },
30
- Button: {
31
- color: lightOrDarkColor ?? "accent"
32
- },
33
- ActionGroup: {
34
- className: styles.actionGroup
35
- },
36
- ProgressBar: { className: styles.progressBar }
37
- };
38
- return /* @__PURE__ */ jsx("div", { ...rest, className: rootClassName, children: /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children }) });
39
- };
10
+ const IllustratedMessage = flowComponent(
11
+ "IllustratedMessage",
12
+ (props) => {
13
+ const { className, children, color = "primary", ...rest } = props;
14
+ const rootClassName = clsx(
15
+ styles.illustratedMessage,
16
+ className,
17
+ styles[color]
18
+ );
19
+ const lightOrDarkColor = color === "dark" || color === "light" ? color : void 0;
20
+ const propsContext = {
21
+ Icon: {
22
+ className: styles.icon,
23
+ size: "l"
24
+ },
25
+ Heading: {
26
+ className: styles.heading,
27
+ color: lightOrDarkColor
28
+ },
29
+ Text: {
30
+ className: styles.text,
31
+ color: lightOrDarkColor
32
+ },
33
+ Button: {
34
+ color: lightOrDarkColor ?? "accent"
35
+ },
36
+ ActionGroup: {
37
+ className: styles.actionGroup
38
+ },
39
+ ProgressBar: { className: styles.progressBar }
40
+ };
41
+ return /* @__PURE__ */ jsx("div", { ...rest, className: rootClassName, children: /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children }) });
42
+ }
43
+ );
40
44
 
41
45
  export { IllustratedMessage, IllustratedMessage as default };
42
46
  //# sourceMappingURL=IllustratedMessage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"IllustratedMessage.mjs","sources":["../../../../../../src/components/IllustratedMessage/IllustratedMessage.tsx"],"sourcesContent":["import type { ComponentProps, FC, PropsWithChildren } from \"react\";\nimport styles from \"./IllustratedMessage.module.scss\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\nexport interface IllustratedMessageProps\n extends PropsWithChildren<ComponentProps<\"div\">> {\n /** The color of the illustrated message. @default \"primary\" */\n color?: \"primary\" | \"danger\" | \"light\" | \"dark\";\n}\n\n/** @flr-generate all */\nexport const IllustratedMessage: FC<IllustratedMessageProps> = (props) => {\n const { className, children, color = \"primary\", ...rest } = props;\n\n const rootClassName = clsx(\n styles.illustratedMessage,\n className,\n styles[color],\n );\n\n const lightOrDarkColor =\n color === \"dark\" || color === \"light\" ? color : undefined;\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n size: \"l\",\n },\n Heading: {\n className: styles.heading,\n color: lightOrDarkColor,\n },\n Text: {\n className: styles.text,\n color: lightOrDarkColor,\n },\n Button: {\n color: lightOrDarkColor ?? \"accent\",\n },\n ActionGroup: {\n className: styles.actionGroup,\n },\n ProgressBar: { className: styles.progressBar },\n };\n\n return (\n <div {...rest} className={rootClassName}>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </div>\n );\n};\n\nexport default IllustratedMessage;\n"],"names":[],"mappings":";;;;;;AAaO,MAAM,kBAAA,GAAkD,CAAC,KAAA,KAAU;AACxE,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,QAAQ,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAE5D,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,kBAAA;AAAA,IACP,SAAA;AAAA,IACA,OAAO,KAAK;AAAA,GACd;AAEA,EAAA,MAAM,gBAAA,GACJ,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,UAAU,KAAA,GAAQ,MAAA;AAElD,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,IAAA,EAAM;AAAA,MACJ,WAAW,MAAA,CAAO,IAAA;AAAA,MAClB,IAAA,EAAM;AAAA,KACR;AAAA,IACA,OAAA,EAAS;AAAA,MACP,WAAW,MAAA,CAAO,OAAA;AAAA,MAClB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,WAAW,MAAA,CAAO,IAAA;AAAA,MAClB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAO,gBAAA,IAAoB;AAAA,KAC7B;AAAA,IACA,WAAA,EAAa;AAAA,MACX,WAAW,MAAA,CAAO;AAAA,KACpB;AAAA,IACA,WAAA,EAAa,EAAE,SAAA,EAAW,MAAA,CAAO,WAAA;AAAY,GAC/C;AAEA,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,SAAA,EAAW,aAAA,EACxB,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC1B,QAAA,EACH,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"IllustratedMessage.mjs","sources":["../../../../../../src/components/IllustratedMessage/IllustratedMessage.tsx"],"sourcesContent":["import type { ComponentProps, PropsWithChildren } from \"react\";\nimport styles from \"./IllustratedMessage.module.scss\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\n\nexport interface IllustratedMessageProps\n extends PropsWithChildren<ComponentProps<\"div\">>,\n FlowComponentProps {\n /** The color of the illustrated message. @default \"primary\" */\n color?: \"primary\" | \"danger\" | \"light\" | \"dark\";\n}\n\n/** @flr-generate all */\nexport const IllustratedMessage = flowComponent(\n \"IllustratedMessage\",\n (props) => {\n const { className, children, color = \"primary\", ...rest } = props;\n\n const rootClassName = clsx(\n styles.illustratedMessage,\n className,\n styles[color],\n );\n\n const lightOrDarkColor =\n color === \"dark\" || color === \"light\" ? color : undefined;\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n size: \"l\",\n },\n Heading: {\n className: styles.heading,\n color: lightOrDarkColor,\n },\n Text: {\n className: styles.text,\n color: lightOrDarkColor,\n },\n Button: {\n color: lightOrDarkColor ?? \"accent\",\n },\n ActionGroup: {\n className: styles.actionGroup,\n },\n ProgressBar: { className: styles.progressBar },\n };\n\n return (\n <div {...rest} className={rootClassName}>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </div>\n );\n },\n);\n\nexport default IllustratedMessage;\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,kBAAA,GAAqB,aAAA;AAAA,EAChC,oBAAA;AAAA,EACA,CAAC,KAAA,KAAU;AACT,IAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,QAAQ,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAE5D,IAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,MACpB,MAAA,CAAO,kBAAA;AAAA,MACP,SAAA;AAAA,MACA,OAAO,KAAK;AAAA,KACd;AAEA,IAAA,MAAM,gBAAA,GACJ,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,UAAU,KAAA,GAAQ,MAAA;AAElD,IAAA,MAAM,YAAA,GAA6B;AAAA,MACjC,IAAA,EAAM;AAAA,QACJ,WAAW,MAAA,CAAO,IAAA;AAAA,QAClB,IAAA,EAAM;AAAA,OACR;AAAA,MACA,OAAA,EAAS;AAAA,QACP,WAAW,MAAA,CAAO,OAAA;AAAA,QAClB,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,WAAW,MAAA,CAAO,IAAA;AAAA,QAClB,KAAA,EAAO;AAAA,OACT;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,OAAO,gBAAA,IAAoB;AAAA,OAC7B;AAAA,MACA,WAAA,EAAa;AAAA,QACX,WAAW,MAAA,CAAO;AAAA,OACpB;AAAA,MACA,WAAA,EAAa,EAAE,SAAA,EAAW,MAAA,CAAO,WAAA;AAAY,KAC/C;AAEA,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,SAAA,EAAW,aAAA,EACxB,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC1B,QAAA,EACH,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;;;;"}
@@ -9,15 +9,16 @@ import { IconFilter } from '../../../../../Icon/components/icons/IconFilter.mjs'
9
9
  import ButtonView from '../../../../../../views/ButtonView.mjs';
10
10
  import 'invariant';
11
11
  import 'react-aria-components';
12
- import 'clsx';
13
- import '../../../../../../lib/propsContext/propsContext.mjs';
14
- import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
12
+ import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
15
13
  import '../../../../../Heading/Heading.mjs';
16
14
  import '../../../../../Text/Text.mjs';
17
15
  import locales from '../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
18
16
  import { useLocalizedStringFormatter } from 'react-aria';
17
+ import 'clsx';
19
18
  import '@mittwald/react-tunnel';
20
19
  import '../../../../../../views/ListItemViewContentView.mjs';
20
+ import '../../../../../../lib/propsContext/propsContext.mjs';
21
+ import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
21
22
  import ContextMenuTriggerView from '../../../../../../views/ContextMenuTriggerView.mjs';
22
23
  import '../../../../../ColumnLayout/ColumnLayout.mjs';
23
24
  import '../../../ListSummary/ListSummary.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"CombinedFilterMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/CombinedFilterMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { useList } from \"@/components/List\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/Filters/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport ContextMenuSectionView from \"@/views/ContextMenuSectionView\";\nimport SeparatorView from \"@/views/SeparatorView\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\nexport const CombinedFilterMenu: FC = () => {\n const list = useList();\n\n const filters = list.filters;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n if (filters.length === 0) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.mobile}\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"list.filters\")}\n >\n <IconFilter />\n </ButtonView>\n <ContextMenuView>\n {filters.map((f, i) => {\n const activeFilterKeys = f.values\n .filter((v) => v.isActive)\n .map((v) => v.id);\n\n return (\n <React.Fragment key={f.property}>\n <ContextMenuSectionView\n selectionMode={f.mode === \"one\" ? \"single\" : \"multiple\"}\n selectedKeys={activeFilterKeys}\n >\n <HeadingView>{f.name ?? f.property}</HeadingView>\n {f.values.map((v) => (\n <FilterMenuItem key={v.id} filterValue={v} />\n ))}\n </ContextMenuSectionView>\n {i + 1 < filters.length && <SeparatorView />}\n </React.Fragment>\n );\n })}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,qBAAyB,MAAM;AAC1C,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,UAAU,IAAA,CAAK,OAAA;AAErB,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAWA,YAAA,CAAO,MAAA;AAAA,QAClB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QACN,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,cAAc,CAAA;AAAA,QAEjD,8BAAC,UAAA,EAAA,EAAW;AAAA;AAAA,KACd;AAAA,wBACC,eAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AACrB,MAAA,MAAM,gBAAA,GAAmB,CAAA,CAAE,MAAA,CACxB,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CACxB,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAElB,MAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAe,CAAA,CAAE,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,UAAA;AAAA,YAC7C,YAAA,EAAc,gBAAA;AAAA,YAEd,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,QAAA,EAAS,CAAA;AAAA,cAClC,CAAA,CAAE,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBACb,GAAA,CAAC,cAAA,EAAA,EAA0B,WAAA,EAAa,CAAA,EAAA,EAAnB,CAAA,CAAE,EAAoB,CAC5C;AAAA;AAAA;AAAA,SACH;AAAA,QACC,CAAA,GAAI,CAAA,GAAI,OAAA,CAAQ,MAAA,wBAAW,aAAA,EAAA,EAAc;AAAA,OAAA,EAAA,EAVvB,EAAE,QAWvB,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CombinedFilterMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/CombinedFilterMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { useList } from \"@/components/List\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/Filters/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport ContextMenuSectionView from \"@/views/ContextMenuSectionView\";\nimport SeparatorView from \"@/views/SeparatorView\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\nexport const CombinedFilterMenu: FC = () => {\n const list = useList();\n\n const filters = list.filters;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n if (filters.length === 0) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.mobile}\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"list.filters\")}\n >\n <IconFilter />\n </ButtonView>\n <ContextMenuView>\n {filters.map((f, i) => {\n const activeFilterKeys = f.values\n .filter((v) => v.isActive)\n .map((v) => v.id);\n\n return (\n <React.Fragment key={f.property}>\n <ContextMenuSectionView\n selectionMode={f.mode === \"one\" ? \"single\" : \"multiple\"}\n selectedKeys={activeFilterKeys}\n >\n <HeadingView>{f.name ?? f.property}</HeadingView>\n {f.values.map((v) => (\n <FilterMenuItem key={v.id} filterValue={v} />\n ))}\n </ContextMenuSectionView>\n {i + 1 < filters.length && <SeparatorView />}\n </React.Fragment>\n );\n })}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,qBAAyB,MAAM;AAC1C,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,UAAU,IAAA,CAAK,OAAA;AAErB,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAWA,YAAA,CAAO,MAAA;AAAA,QAClB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QACN,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,cAAc,CAAA;AAAA,QAEjD,8BAAC,UAAA,EAAA,EAAW;AAAA;AAAA,KACd;AAAA,wBACC,eAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AACrB,MAAA,MAAM,gBAAA,GAAmB,CAAA,CAAE,MAAA,CACxB,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CACxB,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAElB,MAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAe,CAAA,CAAE,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,UAAA;AAAA,YAC7C,YAAA,EAAc,gBAAA;AAAA,YAEd,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,QAAA,EAAS,CAAA;AAAA,cAClC,CAAA,CAAE,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBACb,GAAA,CAAC,cAAA,EAAA,EAA0B,WAAA,EAAa,CAAA,EAAA,EAAnB,CAAA,CAAE,EAAoB,CAC5C;AAAA;AAAA;AAAA,SACH;AAAA,QACC,CAAA,GAAI,CAAA,GAAI,OAAA,CAAQ,MAAA,wBAAW,aAAA,EAAA,EAAc;AAAA,OAAA,EAAA,EAVvB,EAAE,QAWvB,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -4,17 +4,18 @@ import { jsx } from 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import 'invariant';
6
6
  import 'react-aria-components';
7
- import 'clsx';
8
- import '../../../../../../lib/propsContext/propsContext.mjs';
9
- import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
7
+ import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
10
8
  import '@tabler/icons-react';
11
9
  import '../../../../../Icon/Icon.mjs';
12
10
  import '../../../../../../views/IconView.mjs';
13
11
  import '../../../../../Heading/Heading.mjs';
14
12
  import '../../../../../Text/Text.mjs';
15
13
  import 'react-aria';
14
+ import 'clsx';
16
15
  import '@mittwald/react-tunnel';
17
16
  import '../../../../../../views/ListItemViewContentView.mjs';
17
+ import '../../../../../../lib/propsContext/propsContext.mjs';
18
+ import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
18
19
  import '../../../../../../views/ButtonView.mjs';
19
20
  import '../../../../../../views/ContextMenuTriggerView.mjs';
20
21
  import '../../../../../ColumnLayout/ColumnLayout.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"FilterMenuList.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/FilterMenuList.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List\";\nimport { FilterMenu } from \"@/components/List/components/Header/components/Filters/FilterMenu\";\n\nexport const FilterMenuList: FC = () => {\n const list = useList();\n\n return list.filters.map((filter) => (\n <FilterMenu key={filter.property} filter={filter} />\n ));\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAAqB,MAAM;AACtC,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,yBACtB,UAAA,EAAA,EAAiC,MAAA,EAAA,EAAjB,MAAA,CAAO,QAA0B,CACnD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"FilterMenuList.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/FilterMenuList.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List\";\nimport { FilterMenu } from \"@/components/List/components/Header/components/Filters/FilterMenu\";\n\nexport const FilterMenuList: FC = () => {\n const list = useList();\n\n return list.filters.map((filter) => (\n <FilterMenu key={filter.property} filter={filter} />\n ));\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAAqB,MAAM;AACtC,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,yBACtB,UAAA,EAAA,EAAiC,MAAA,EAAA,EAAjB,MAAA,CAAO,QAA0B,CACnD,CAAA;AACH;;;;"}