@mittwald/flow-react-components 0.2.0-alpha.28 → 0.2.0-alpha.30

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 (123) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/MIGRATION.md +67 -0
  3. package/dist/assets/doc-properties.json +10388 -10388
  4. package/dist/css/all.css +1 -1
  5. package/dist/js/components/Action/context.mjs +1 -1
  6. package/dist/js/components/Action/context.mjs.map +1 -1
  7. package/dist/js/components/Action/hooks/useConfirmationModalButtonSlot.mjs +1 -1
  8. package/dist/js/components/Action/hooks/useConfirmationModalButtonSlot.mjs.map +1 -1
  9. package/dist/js/components/Action/models/ActionModel.mjs +1 -1
  10. package/dist/js/components/Action/models/ActionModel.mjs.map +1 -1
  11. package/dist/js/components/Action/models/ActionState.mjs +4 -4
  12. package/dist/js/components/Action/models/ActionState.mjs.map +1 -1
  13. package/dist/js/components/Action/models/ActionStateContext.mjs +5 -4
  14. package/dist/js/components/Action/models/ActionStateContext.mjs.map +1 -1
  15. package/dist/js/components/ActionGroup/lib/getActionGroupSlot.mjs +1 -1
  16. package/dist/js/components/ActionGroup/lib/getActionGroupSlot.mjs.map +1 -1
  17. package/dist/js/components/Align/Align.mjs +2 -1
  18. package/dist/js/components/Align/Align.mjs.map +1 -1
  19. package/dist/js/components/Align/Align.module.scss.mjs +4 -2
  20. package/dist/js/components/Align/Align.module.scss.mjs.map +1 -1
  21. package/dist/js/components/Button/Button.mjs +8 -8
  22. package/dist/js/components/Button/Button.mjs.map +1 -1
  23. package/dist/js/components/ColumnLayout/ColumnLayout.mjs +3 -3
  24. package/dist/js/components/ColumnLayout/ColumnLayout.mjs.map +1 -1
  25. package/dist/js/components/ContextMenu/ContextMenu.mjs +1 -1
  26. package/dist/js/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs +1 -1
  27. package/dist/js/components/ContextMenu/lib.mjs +1 -1
  28. package/dist/js/components/ContextMenu/lib.mjs.map +1 -1
  29. package/dist/js/components/FileCard/components/FileSizeText/FileSizeText.mjs +1 -1
  30. package/dist/js/components/FileCard/components/FileSizeText/FileSizeText.mjs.map +1 -1
  31. package/dist/js/components/FileField/FileField.mjs +4 -4
  32. package/dist/js/components/FileField/FileField.mjs.map +1 -1
  33. package/dist/js/components/IllustratedMessage/IllustratedMessage.mjs +1 -1
  34. package/dist/js/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  35. package/dist/js/components/Initials/lib/getInitialsFromString.mjs +1 -1
  36. package/dist/js/components/Initials/lib/getInitialsFromString.mjs.map +1 -1
  37. package/dist/js/components/List/List.mjs +4 -4
  38. package/dist/js/components/List/List.mjs.map +1 -1
  39. package/dist/js/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +2 -2
  40. package/dist/js/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
  41. package/dist/js/components/List/components/Header/components/ActiveFilters/ActiveFilters.module.scss.mjs +2 -5
  42. package/dist/js/components/List/components/Header/components/ActiveFilters/ActiveFilters.module.scss.mjs.map +1 -1
  43. package/dist/js/components/List/components/Header/components/SearchField/SearchField.mjs +2 -2
  44. package/dist/js/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
  45. package/dist/js/components/List/components/Items/components/Item/Item.mjs +2 -2
  46. package/dist/js/components/List/components/Items/components/Item/Item.mjs.map +1 -1
  47. package/dist/js/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +3 -3
  48. package/dist/js/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
  49. package/dist/js/components/List/components/Table/Table.mjs +2 -2
  50. package/dist/js/components/List/components/Table/Table.mjs.map +1 -1
  51. package/dist/js/components/List/model/List.mjs +5 -5
  52. package/dist/js/components/List/model/List.mjs.map +1 -1
  53. package/dist/js/components/List/model/ReactTable.mjs +1 -1
  54. package/dist/js/components/List/model/filter/Filter.mjs +1 -1
  55. package/dist/js/components/List/model/filter/Filter.mjs.map +1 -1
  56. package/dist/js/components/List/model/item/ItemView.mjs +1 -1
  57. package/dist/js/components/List/model/item/ItemView.mjs.map +1 -1
  58. package/dist/js/components/List/model/loading/IncrementalLoader.mjs +9 -9
  59. package/dist/js/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
  60. package/dist/js/components/List/model/loading/IncrementalLoaderState.mjs +4 -4
  61. package/dist/js/components/List/model/loading/IncrementalLoaderState.mjs.map +1 -1
  62. package/dist/js/components/List/model/search/Search.mjs +4 -4
  63. package/dist/js/components/List/model/search/Search.mjs.map +1 -1
  64. package/dist/js/components/LoadingSpinner/LoadingSpinner.module.scss.mjs +2 -5
  65. package/dist/js/components/LoadingSpinner/LoadingSpinner.module.scss.mjs.map +1 -1
  66. package/dist/js/components/Markdown/Markdown.mjs +2 -2
  67. package/dist/js/components/Markdown/Markdown.mjs.map +1 -1
  68. package/dist/js/components/Navigation/Navigation.module.scss.mjs +2 -8
  69. package/dist/js/components/Navigation/Navigation.module.scss.mjs.map +1 -1
  70. package/dist/js/components/NotificationProvider/NotificationController.mjs +3 -3
  71. package/dist/js/components/NotificationProvider/NotificationController.mjs.map +1 -1
  72. package/dist/js/components/Option/Option.module.scss.mjs +2 -10
  73. package/dist/js/components/Option/Option.module.scss.mjs.map +1 -1
  74. package/dist/js/components/Overlay/Overlay.module.scss.mjs +1 -3
  75. package/dist/js/components/Overlay/Overlay.module.scss.mjs.map +1 -1
  76. package/dist/js/components/ProgressBar/ProgressBar.mjs +1 -1
  77. package/dist/js/components/ProgressBar/ProgressBar.mjs.map +1 -1
  78. package/dist/js/components/SettingsProvider/SettingsProvider.mjs +1 -1
  79. package/dist/js/components/SettingsProvider/SettingsProvider.mjs.map +1 -1
  80. package/dist/js/components/Skeleton/Skeleton.module.scss.mjs +2 -5
  81. package/dist/js/components/Skeleton/Skeleton.module.scss.mjs.map +1 -1
  82. package/dist/js/components/SkeletonText/SkeletonText.module.scss.mjs +2 -5
  83. package/dist/js/components/SkeletonText/SkeletonText.module.scss.mjs.map +1 -1
  84. package/dist/js/components/Tabs/Tabs.module.scss.mjs +2 -5
  85. package/dist/js/components/Tabs/Tabs.module.scss.mjs.map +1 -1
  86. package/dist/js/components/Tabs/components/TabList/TabList.mjs +1 -1
  87. package/dist/js/components/Tabs/components/TabList/TabList.mjs.map +1 -1
  88. package/dist/js/components/Tooltip/Tooltip.module.scss.mjs +2 -5
  89. package/dist/js/components/Tooltip/Tooltip.module.scss.mjs.map +1 -1
  90. package/dist/js/index.mjs +1 -0
  91. package/dist/js/index.mjs.map +1 -1
  92. package/dist/js/integrations/react-hook-form/components/ActionGroupWrapper/SubmitButtonStateProvider.mjs +1 -1
  93. package/dist/js/integrations/react-hook-form/components/ActionGroupWrapper/SubmitButtonStateProvider.mjs.map +1 -1
  94. package/dist/js/integrations/react-hook-form/components/AutoFormResetEffect/AutoFormResetEffect.mjs +1 -1
  95. package/dist/js/integrations/react-hook-form/components/AutoFormResetEffect/AutoFormResetEffect.mjs.map +1 -1
  96. package/dist/js/integrations/react-hook-form/components/Form/Form.mjs +2 -2
  97. package/dist/js/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
  98. package/dist/js/integrations/react-hook-form/components/context/formContext.mjs +1 -1
  99. package/dist/js/integrations/react-hook-form/components/context/formContext.mjs.map +1 -1
  100. package/dist/js/lib/componentFactory/flowComponent.mjs +1 -1
  101. package/dist/js/lib/componentFactory/flowComponent.mjs.map +1 -1
  102. package/dist/js/lib/controller/overlay/OverlayController.mjs +3 -3
  103. package/dist/js/lib/controller/overlay/OverlayController.mjs.map +1 -1
  104. package/dist/js/lib/hooks/useProps.mjs +2 -2
  105. package/dist/js/lib/hooks/useProps.mjs.map +1 -1
  106. package/dist/js/lib/hooks/useStatic.mjs +8 -0
  107. package/dist/js/lib/hooks/useStatic.mjs.map +1 -0
  108. package/dist/js/lib/timer/Timer.mjs +4 -4
  109. package/dist/js/lib/timer/Timer.mjs.map +1 -1
  110. package/dist/types/components/Action/models/ActionStateContext.d.ts.map +1 -1
  111. package/dist/types/components/Align/Align.d.ts.map +1 -1
  112. package/dist/types/components/Align/stories/IconText.stories.d.ts +7 -0
  113. package/dist/types/components/Align/stories/IconText.stories.d.ts.map +1 -0
  114. package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts +1 -1
  115. package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts.map +1 -1
  116. package/dist/types/components/NotificationProvider/NotificationController.d.ts.map +1 -1
  117. package/dist/types/components/public.d.ts +1 -0
  118. package/dist/types/components/public.d.ts.map +1 -1
  119. package/dist/types/integrations/react-hook-form/components/Form/Form.d.ts.map +1 -1
  120. package/dist/types/lib/childProps/ChildPropsStore.d.ts.map +1 -1
  121. package/dist/types/lib/hooks/useStatic.d.ts +2 -0
  122. package/dist/types/lib/hooks/useStatic.d.ts.map +1 -0
  123. package/package.json +13 -15
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  import { createContext } from 'react';
4
4
 
5
- const actionContext = createContext(undefined);
5
+ const actionContext = createContext(void 0);
6
6
  const ActionContextProvider = actionContext.Provider;
7
7
 
8
8
  export { ActionContextProvider, actionContext };
@@ -1 +1 @@
1
- {"version":3,"file":"context.mjs","sources":["../../../../src/components/Action/context.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport type { ActionModel } from \"@/components/Action/models/ActionModel\";\n\nexport const actionContext = createContext<ActionModel | undefined>(undefined);\nexport const ActionContextProvider = actionContext.Provider;\n"],"names":[],"mappings":";;AAGa,MAAA,aAAA,GAAgB,cAAuC,SAAS;AACtE,MAAM,wBAAwB,aAAc,CAAA;;;;"}
1
+ {"version":3,"file":"context.mjs","sources":["../../../../src/components/Action/context.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport type { ActionModel } from \"@/components/Action/models/ActionModel\";\n\nexport const actionContext = createContext<ActionModel | undefined>(undefined);\nexport const ActionContextProvider = actionContext.Provider;\n"],"names":[],"mappings":";;AAGa,MAAA,aAAA,GAAgB,cAAuC,MAAS;AACtE,MAAM,wBAAwB,aAAc,CAAA;;;;"}
@@ -5,7 +5,7 @@ import { getActionGroupSlot } from '../../ActionGroup/lib/getActionGroupSlot.mjs
5
5
 
6
6
  const useConfirmationModalButtonSlot = (props) => {
7
7
  const inConfirmationModal = useContextSlot("Modal") === "actionConfirm";
8
- return inConfirmationModal ? getActionGroupSlot(props) : undefined;
8
+ return inConfirmationModal ? getActionGroupSlot(props) : void 0;
9
9
  };
10
10
 
11
11
  export { useConfirmationModalButtonSlot };
@@ -1 +1 @@
1
- {"version":3,"file":"useConfirmationModalButtonSlot.mjs","sources":["../../../../../src/components/Action/hooks/useConfirmationModalButtonSlot.ts"],"sourcesContent":["import type { ButtonProps } from \"@/components/Button\";\nimport useContextSlot from \"@/lib/slotContext/useContextSlot\";\nimport { getActionGroupSlot } from \"@/components/ActionGroup/lib/getActionGroupSlot\";\n\nexport const useConfirmationModalButtonSlot = (\n props: ButtonProps,\n): string | undefined => {\n const inConfirmationModal = useContextSlot(\"Modal\") === \"actionConfirm\";\n return inConfirmationModal ? getActionGroupSlot(props) : undefined;\n};\n"],"names":[],"mappings":";;;AAIa,MAAA,8BAAA,GAAiC,CAC5C,KACuB,KAAA;AACvB,EAAM,MAAA,mBAAA,GAAsB,cAAe,CAAA,OAAO,CAAM,KAAA,eAAA;AACxD,EAAO,OAAA,mBAAA,GAAsB,kBAAmB,CAAA,KAAK,CAAI,GAAA,SAAA;AAC3D;;;;"}
1
+ {"version":3,"file":"useConfirmationModalButtonSlot.mjs","sources":["../../../../../src/components/Action/hooks/useConfirmationModalButtonSlot.ts"],"sourcesContent":["import type { ButtonProps } from \"@/components/Button\";\nimport useContextSlot from \"@/lib/slotContext/useContextSlot\";\nimport { getActionGroupSlot } from \"@/components/ActionGroup/lib/getActionGroupSlot\";\n\nexport const useConfirmationModalButtonSlot = (\n props: ButtonProps,\n): string | undefined => {\n const inConfirmationModal = useContextSlot(\"Modal\") === \"actionConfirm\";\n return inConfirmationModal ? getActionGroupSlot(props) : undefined;\n};\n"],"names":[],"mappings":";;;AAIa,MAAA,8BAAA,GAAiC,CAC5C,KACuB,KAAA;AACvB,EAAM,MAAA,mBAAA,GAAsB,cAAe,CAAA,OAAO,CAAM,KAAA,eAAA;AACxD,EAAO,OAAA,mBAAA,GAAsB,kBAAmB,CAAA,KAAK,CAAI,GAAA,MAAA;AAC3D;;;;"}
@@ -73,7 +73,7 @@ class ActionModel {
73
73
  }
74
74
  getOverlayController(component) {
75
75
  const getController = (controller) => {
76
- return controller === undefined ? undefined : controller ? this.overlayContext[component] : undefined;
76
+ return controller === void 0 ? void 0 : controller ? this.overlayContext[component] : void 0;
77
77
  };
78
78
  return getController(this.actionProps.openOverlay) ?? getController(this.actionProps.closeOverlay) ?? getController(this.actionProps.toggleOverlay);
79
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionModel.mjs","sources":["../../../../../src/components/Action/models/ActionModel.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { OverlayController } from \"@/lib/controller\";\nimport invariant from \"invariant\";\nimport type { ActionProps } from \"@/components/Action/types\";\nimport { actionContext } from \"@/components/Action/context\";\nimport { ActionState } from \"@/components/Action/models/ActionState\";\nimport { ActionExecution } from \"@/components/Action/models/ActionExecution\";\nimport { ActionStateContext } from \"@/components/Action/models/ActionStateContext\";\nimport type { OverlayContext } from \"@/lib/controller/overlay/context\";\nimport { useOverlayContext } from \"@/lib/controller/overlay/context\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\n\ninterface InitObject {\n actionProps: ActionProps;\n parentAction?: ActionModel;\n confirmationModalController: OverlayController;\n needsConfirmation: boolean;\n overlayContext: OverlayContext;\n state: ActionState;\n}\n\nexport class ActionModel {\n public state: ActionState;\n public needsConfirmation: boolean;\n public readonly actionProps: ActionProps;\n public readonly parentAction?: ActionModel;\n public readonly confirmationModalController: OverlayController;\n public readonly overlayContext: OverlayContext;\n\n private constructor(init: InitObject) {\n const {\n actionProps,\n needsConfirmation,\n parentAction,\n overlayContext,\n confirmationModalController,\n state,\n } = init;\n\n this.actionProps = actionProps;\n this.parentAction = parentAction;\n this.confirmationModalController = confirmationModalController;\n this.needsConfirmation = needsConfirmation;\n this.overlayContext = overlayContext;\n this.state = state;\n }\n\n public static useNew(\n actionProps: ActionProps,\n init: Partial<InitObject> = {},\n ): ActionModel {\n const parentAction = useContext(actionContext);\n const overlayContext = useOverlayContext();\n const confirmationModalController = OverlayController.useNew();\n const state = ActionState.useNew();\n\n return new ActionModel({\n parentAction,\n overlayContext,\n confirmationModalController,\n needsConfirmation: false,\n actionProps,\n state,\n ...init,\n });\n }\n\n public static use(): ActionModel {\n const c = useContext(actionContext);\n invariant(!!c, \"Action context is not defined\");\n ActionStateContext.useRegisterState(c.state);\n return c;\n }\n\n public static useConfirmationAction(): ActionModel {\n const action = ActionModel.use();\n\n return new ActionModel({\n actionProps: action.actionProps,\n confirmationModalController: action.confirmationModalController,\n overlayContext: action.overlayContext,\n state: action.state,\n needsConfirmation: false,\n parentAction: ActionModel.useNew(\n {\n closeOverlay: action.confirmationModalController,\n },\n {\n parentAction: action.parentAction,\n },\n ),\n });\n }\n\n public getOverlayController(\n component: FlowComponentName,\n ): OverlayController | undefined {\n const getController = (\n controller?: OverlayController | FlowComponentName,\n ): OverlayController | undefined => {\n return controller === undefined\n ? undefined\n : controller\n ? this.overlayContext[component]\n : undefined;\n };\n\n return (\n getController(this.actionProps.openOverlay) ??\n getController(this.actionProps.closeOverlay) ??\n getController(this.actionProps.toggleOverlay)\n );\n }\n\n public execute = (...args: unknown[]): void => {\n new ActionExecution(this).execute(...args);\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAqBO,MAAM,WAAY,CAAA;AAAA,EAChB,KAAA;AAAA,EACA,iBAAA;AAAA,EACS,WAAA;AAAA,EACA,YAAA;AAAA,EACA,2BAAA;AAAA,EACA,cAAA;AAAA,EAER,YAAY,IAAkB,EAAA;AACpC,IAAM,MAAA;AAAA,MACJ,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,2BAAA;AAAA,MACA;AAAA,KACE,GAAA,IAAA;AAEJ,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA;AACnB,IAAA,IAAA,CAAK,YAAe,GAAA,YAAA;AACpB,IAAA,IAAA,CAAK,2BAA8B,GAAA,2BAAA;AACnC,IAAA,IAAA,CAAK,iBAAoB,GAAA,iBAAA;AACzB,IAAA,IAAA,CAAK,cAAiB,GAAA,cAAA;AACtB,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA;AACf,EAEA,OAAc,MAAA,CACZ,WACA,EAAA,IAAA,GAA4B,EACf,EAAA;AACb,IAAM,MAAA,YAAA,GAAe,WAAW,aAAa,CAAA;AAC7C,IAAA,MAAM,iBAAiB,iBAAkB,EAAA;AACzC,IAAM,MAAA,2BAAA,GAA8B,kBAAkB,MAAO,EAAA;AAC7D,IAAM,MAAA,KAAA,GAAQ,YAAY,MAAO,EAAA;AAEjC,IAAA,OAAO,IAAI,WAAY,CAAA;AAAA,MACrB,YAAA;AAAA,MACA,cAAA;AAAA,MACA,2BAAA;AAAA,MACA,iBAAmB,EAAA,KAAA;AAAA,MACnB,WAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA,KACJ,CAAA;AAAA;AACH,EAEA,OAAc,GAAmB,GAAA;AAC/B,IAAM,MAAA,CAAA,GAAI,WAAW,aAAa,CAAA;AAClC,IAAU,SAAA,CAAA,CAAC,CAAC,CAAA,EAAG,+BAA+B,CAAA;AAC9C,IAAmB,kBAAA,CAAA,gBAAA,CAAiB,EAAE,KAAK,CAAA;AAC3C,IAAO,OAAA,CAAA;AAAA;AACT,EAEA,OAAc,qBAAqC,GAAA;AACjD,IAAM,MAAA,MAAA,GAAS,YAAY,GAAI,EAAA;AAE/B,IAAA,OAAO,IAAI,WAAY,CAAA;AAAA,MACrB,aAAa,MAAO,CAAA,WAAA;AAAA,MACpB,6BAA6B,MAAO,CAAA,2BAAA;AAAA,MACpC,gBAAgB,MAAO,CAAA,cAAA;AAAA,MACvB,OAAO,MAAO,CAAA,KAAA;AAAA,MACd,iBAAmB,EAAA,KAAA;AAAA,MACnB,cAAc,WAAY,CAAA,MAAA;AAAA,QACxB;AAAA,UACE,cAAc,MAAO,CAAA;AAAA,SACvB;AAAA,QACA;AAAA,UACE,cAAc,MAAO,CAAA;AAAA;AACvB;AACF,KACD,CAAA;AAAA;AACH,EAEO,qBACL,SAC+B,EAAA;AAC/B,IAAM,MAAA,aAAA,GAAgB,CACpB,UACkC,KAAA;AAClC,MAAA,OAAO,eAAe,SAClB,GAAA,SAAA,GACA,aACE,IAAK,CAAA,cAAA,CAAe,SAAS,CAC7B,GAAA,SAAA;AAAA,KACR;AAEA,IAAA,OACE,aAAc,CAAA,IAAA,CAAK,WAAY,CAAA,WAAW,CAC1C,IAAA,aAAA,CAAc,IAAK,CAAA,WAAA,CAAY,YAAY,CAAA,IAC3C,aAAc,CAAA,IAAA,CAAK,YAAY,aAAa,CAAA;AAAA;AAEhD,EAEO,OAAA,GAAU,IAAI,IAA0B,KAAA;AAC7C,IAAA,IAAI,eAAgB,CAAA,IAAI,CAAE,CAAA,OAAA,CAAQ,GAAG,IAAI,CAAA;AAAA,GAC3C;AACF;;;;"}
1
+ {"version":3,"file":"ActionModel.mjs","sources":["../../../../../src/components/Action/models/ActionModel.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { OverlayController } from \"@/lib/controller\";\nimport invariant from \"invariant\";\nimport type { ActionProps } from \"@/components/Action/types\";\nimport { actionContext } from \"@/components/Action/context\";\nimport { ActionState } from \"@/components/Action/models/ActionState\";\nimport { ActionExecution } from \"@/components/Action/models/ActionExecution\";\nimport { ActionStateContext } from \"@/components/Action/models/ActionStateContext\";\nimport type { OverlayContext } from \"@/lib/controller/overlay/context\";\nimport { useOverlayContext } from \"@/lib/controller/overlay/context\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\n\ninterface InitObject {\n actionProps: ActionProps;\n parentAction?: ActionModel;\n confirmationModalController: OverlayController;\n needsConfirmation: boolean;\n overlayContext: OverlayContext;\n state: ActionState;\n}\n\nexport class ActionModel {\n public state: ActionState;\n public needsConfirmation: boolean;\n public readonly actionProps: ActionProps;\n public readonly parentAction?: ActionModel;\n public readonly confirmationModalController: OverlayController;\n public readonly overlayContext: OverlayContext;\n\n private constructor(init: InitObject) {\n const {\n actionProps,\n needsConfirmation,\n parentAction,\n overlayContext,\n confirmationModalController,\n state,\n } = init;\n\n this.actionProps = actionProps;\n this.parentAction = parentAction;\n this.confirmationModalController = confirmationModalController;\n this.needsConfirmation = needsConfirmation;\n this.overlayContext = overlayContext;\n this.state = state;\n }\n\n public static useNew(\n actionProps: ActionProps,\n init: Partial<InitObject> = {},\n ): ActionModel {\n const parentAction = useContext(actionContext);\n const overlayContext = useOverlayContext();\n const confirmationModalController = OverlayController.useNew();\n const state = ActionState.useNew();\n\n return new ActionModel({\n parentAction,\n overlayContext,\n confirmationModalController,\n needsConfirmation: false,\n actionProps,\n state,\n ...init,\n });\n }\n\n public static use(): ActionModel {\n const c = useContext(actionContext);\n invariant(!!c, \"Action context is not defined\");\n ActionStateContext.useRegisterState(c.state);\n return c;\n }\n\n public static useConfirmationAction(): ActionModel {\n const action = ActionModel.use();\n\n return new ActionModel({\n actionProps: action.actionProps,\n confirmationModalController: action.confirmationModalController,\n overlayContext: action.overlayContext,\n state: action.state,\n needsConfirmation: false,\n parentAction: ActionModel.useNew(\n {\n closeOverlay: action.confirmationModalController,\n },\n {\n parentAction: action.parentAction,\n },\n ),\n });\n }\n\n public getOverlayController(\n component: FlowComponentName,\n ): OverlayController | undefined {\n const getController = (\n controller?: OverlayController | FlowComponentName,\n ): OverlayController | undefined => {\n return controller === undefined\n ? undefined\n : controller\n ? this.overlayContext[component]\n : undefined;\n };\n\n return (\n getController(this.actionProps.openOverlay) ??\n getController(this.actionProps.closeOverlay) ??\n getController(this.actionProps.toggleOverlay)\n );\n }\n\n public execute = (...args: unknown[]): void => {\n new ActionExecution(this).execute(...args);\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAqBO,MAAM,WAAY,CAAA;AAAA,EAChB,KAAA;AAAA,EACA,iBAAA;AAAA,EACS,WAAA;AAAA,EACA,YAAA;AAAA,EACA,2BAAA;AAAA,EACA,cAAA;AAAA,EAER,YAAY,IAAkB,EAAA;AACpC,IAAM,MAAA;AAAA,MACJ,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,2BAAA;AAAA,MACA;AAAA,KACE,GAAA,IAAA;AAEJ,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA;AACnB,IAAA,IAAA,CAAK,YAAe,GAAA,YAAA;AACpB,IAAA,IAAA,CAAK,2BAA8B,GAAA,2BAAA;AACnC,IAAA,IAAA,CAAK,iBAAoB,GAAA,iBAAA;AACzB,IAAA,IAAA,CAAK,cAAiB,GAAA,cAAA;AACtB,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA;AACf,EAEA,OAAc,MAAA,CACZ,WACA,EAAA,IAAA,GAA4B,EACf,EAAA;AACb,IAAM,MAAA,YAAA,GAAe,WAAW,aAAa,CAAA;AAC7C,IAAA,MAAM,iBAAiB,iBAAkB,EAAA;AACzC,IAAM,MAAA,2BAAA,GAA8B,kBAAkB,MAAO,EAAA;AAC7D,IAAM,MAAA,KAAA,GAAQ,YAAY,MAAO,EAAA;AAEjC,IAAA,OAAO,IAAI,WAAY,CAAA;AAAA,MACrB,YAAA;AAAA,MACA,cAAA;AAAA,MACA,2BAAA;AAAA,MACA,iBAAmB,EAAA,KAAA;AAAA,MACnB,WAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA,KACJ,CAAA;AAAA;AACH,EAEA,OAAc,GAAmB,GAAA;AAC/B,IAAM,MAAA,CAAA,GAAI,WAAW,aAAa,CAAA;AAClC,IAAU,SAAA,CAAA,CAAC,CAAC,CAAA,EAAG,+BAA+B,CAAA;AAC9C,IAAmB,kBAAA,CAAA,gBAAA,CAAiB,EAAE,KAAK,CAAA;AAC3C,IAAO,OAAA,CAAA;AAAA;AACT,EAEA,OAAc,qBAAqC,GAAA;AACjD,IAAM,MAAA,MAAA,GAAS,YAAY,GAAI,EAAA;AAE/B,IAAA,OAAO,IAAI,WAAY,CAAA;AAAA,MACrB,aAAa,MAAO,CAAA,WAAA;AAAA,MACpB,6BAA6B,MAAO,CAAA,2BAAA;AAAA,MACpC,gBAAgB,MAAO,CAAA,cAAA;AAAA,MACvB,OAAO,MAAO,CAAA,KAAA;AAAA,MACd,iBAAmB,EAAA,KAAA;AAAA,MACnB,cAAc,WAAY,CAAA,MAAA;AAAA,QACxB;AAAA,UACE,cAAc,MAAO,CAAA;AAAA,SACvB;AAAA,QACA;AAAA,UACE,cAAc,MAAO,CAAA;AAAA;AACvB;AACF,KACD,CAAA;AAAA;AACH,EAEO,qBACL,SAC+B,EAAA;AAC/B,IAAM,MAAA,aAAA,GAAgB,CACpB,UACkC,KAAA;AAClC,MAAA,OAAO,eAAe,MAClB,GAAA,MAAA,GACA,aACE,IAAK,CAAA,cAAA,CAAe,SAAS,CAC7B,GAAA,MAAA;AAAA,KACR;AAEA,IAAA,OACE,aAAc,CAAA,IAAA,CAAK,WAAY,CAAA,WAAW,CAC1C,IAAA,aAAA,CAAc,IAAK,CAAA,WAAA,CAAY,YAAY,CAAA,IAC3C,aAAc,CAAA,IAAA,CAAK,YAAY,aAAa,CAAA;AAAA;AAEhD,EAEO,OAAA,GAAU,IAAI,IAA0B,KAAA;AAC7C,IAAA,IAAI,eAAgB,CAAA,IAAI,CAAE,CAAA,OAAA,CAAQ,GAAG,IAAI,CAAA;AAAA,GAC3C;AACF;;;;"}
@@ -1,9 +1,9 @@
1
1
  "use client"
2
2
  /* */
3
- import { makeObservable, observable, action, computed } from 'mobx';
3
+ import { makeObservable, computed, action, observable } from 'mobx';
4
4
  import { useSelector } from '../../../lib/mobx/useSelector.mjs';
5
- import { useRef } from 'react';
6
5
  import { sleep } from '../../../lib/promises/sleep.mjs';
6
+ import { useStatic } from '../../../lib/hooks/useStatic.mjs';
7
7
 
8
8
  const duration = {
9
9
  pending: 1e3,
@@ -24,7 +24,7 @@ class ActionState {
24
24
  });
25
25
  }
26
26
  static useNew() {
27
- return useRef(new ActionState()).current;
27
+ return useStatic(() => new ActionState());
28
28
  }
29
29
  updateState(newState) {
30
30
  this.state = newState;
@@ -70,7 +70,7 @@ class ActionState {
70
70
  resetAfterDone() {
71
71
  this.updateState("isIdle");
72
72
  this.isAsync = false;
73
- this.error = undefined;
73
+ this.error = void 0;
74
74
  }
75
75
  async onDone() {
76
76
  if (this.setPendingTimeout) {
@@ -1 +1 @@
1
- {"version":3,"file":"ActionState.mjs","sources":["../../../../../src/components/Action/models/ActionState.ts"],"sourcesContent":["import {\n action as mobxAction,\n computed,\n makeObservable,\n observable,\n} from \"mobx\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport { useRef } from \"react\";\nimport { sleep } from \"@/lib/promises/sleep\";\n\nexport type ActionStateValue =\n | \"isIdle\"\n | \"isSucceeded\"\n | \"isPending\"\n | \"isExecuting\"\n | \"isFailed\";\n\nconst duration = {\n pending: 1000,\n succeeded: 1500,\n failed: 2000,\n};\n\nexport class ActionState {\n private showFeedback?: boolean;\n public state: ActionStateValue = \"isIdle\";\n private setPendingTimeout: number | undefined;\n public error: unknown;\n private isAsync = false;\n\n public constructor() {\n makeObservable(this, {\n state: observable,\n updateState: mobxAction,\n isBusy: computed,\n });\n }\n\n public static useNew(): ActionState {\n return useRef(new ActionState()).current;\n }\n\n public updateState(newState: ActionStateValue): void {\n this.state = newState;\n }\n\n public useValue(): ActionStateValue {\n return useSelector(() => this.state, [this]);\n }\n\n public useIsBusy(): boolean {\n return useSelector(() => this.isBusy, [this]);\n }\n\n public get isBusy(): boolean {\n return this.state !== \"isIdle\";\n }\n\n public onAsyncStart(): void {\n this.isAsync = true;\n this.updateState(\"isExecuting\");\n this.setPendingTimeout = window.setTimeout(\n () => this.startPending(),\n duration.pending,\n );\n }\n\n public async onSucceeded(): Promise<void> {\n await this.onDone();\n }\n\n public async onFailed(error: unknown): Promise<void> {\n this.error = error ?? new Error(\"Unknown error\");\n await this.onDone();\n }\n\n public withFeedback(feedback?: boolean): ActionState {\n this.showFeedback = feedback;\n return this;\n }\n\n private async startFailedFeedback(): Promise<void> {\n this.updateState(\"isFailed\");\n await sleep(duration.failed);\n this.resetAfterDone();\n }\n\n private async startSucceededFeedback(): Promise<void> {\n this.updateState(\"isSucceeded\");\n await sleep(duration.succeeded);\n this.resetAfterDone();\n }\n\n private resetAfterDone(): void {\n this.updateState(\"isIdle\");\n this.isAsync = false;\n this.error = undefined;\n }\n\n private async onDone(): Promise<void> {\n if (this.setPendingTimeout) {\n window.clearTimeout(this.setPendingTimeout);\n }\n if (this.error) {\n await this.startFailedFeedback();\n } else if (\n this.showFeedback !== false &&\n (this.showFeedback || this.isAsync)\n ) {\n await this.startSucceededFeedback();\n } else {\n this.resetAfterDone();\n }\n }\n\n private startPending(): void {\n this.updateState(\"isPending\");\n }\n}\n"],"names":["mobxAction"],"mappings":"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"}
1
+ {"version":3,"file":"ActionState.mjs","sources":["../../../../../src/components/Action/models/ActionState.ts"],"sourcesContent":["import {\n action as mobxAction,\n computed,\n makeObservable,\n observable,\n} from \"mobx\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport { sleep } from \"@/lib/promises/sleep\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\n\nexport type ActionStateValue =\n | \"isIdle\"\n | \"isSucceeded\"\n | \"isPending\"\n | \"isExecuting\"\n | \"isFailed\";\n\nconst duration = {\n pending: 1000,\n succeeded: 1500,\n failed: 2000,\n};\n\nexport class ActionState {\n private showFeedback?: boolean;\n public state: ActionStateValue = \"isIdle\";\n private setPendingTimeout: number | undefined;\n public error: unknown;\n private isAsync = false;\n\n public constructor() {\n makeObservable(this, {\n state: observable,\n updateState: mobxAction,\n isBusy: computed,\n });\n }\n\n public static useNew(): ActionState {\n return useStatic(() => new ActionState());\n }\n\n public updateState(newState: ActionStateValue): void {\n this.state = newState;\n }\n\n public useValue(): ActionStateValue {\n return useSelector(() => this.state, [this]);\n }\n\n public useIsBusy(): boolean {\n return useSelector(() => this.isBusy, [this]);\n }\n\n public get isBusy(): boolean {\n return this.state !== \"isIdle\";\n }\n\n public onAsyncStart(): void {\n this.isAsync = true;\n this.updateState(\"isExecuting\");\n this.setPendingTimeout = window.setTimeout(\n () => this.startPending(),\n duration.pending,\n );\n }\n\n public async onSucceeded(): Promise<void> {\n await this.onDone();\n }\n\n public async onFailed(error: unknown): Promise<void> {\n this.error = error ?? new Error(\"Unknown error\");\n await this.onDone();\n }\n\n public withFeedback(feedback?: boolean): ActionState {\n this.showFeedback = feedback;\n return this;\n }\n\n private async startFailedFeedback(): Promise<void> {\n this.updateState(\"isFailed\");\n await sleep(duration.failed);\n this.resetAfterDone();\n }\n\n private async startSucceededFeedback(): Promise<void> {\n this.updateState(\"isSucceeded\");\n await sleep(duration.succeeded);\n this.resetAfterDone();\n }\n\n private resetAfterDone(): void {\n this.updateState(\"isIdle\");\n this.isAsync = false;\n this.error = undefined;\n }\n\n private async onDone(): Promise<void> {\n if (this.setPendingTimeout) {\n window.clearTimeout(this.setPendingTimeout);\n }\n if (this.error) {\n await this.startFailedFeedback();\n } else if (\n this.showFeedback !== false &&\n (this.showFeedback || this.isAsync)\n ) {\n await this.startSucceededFeedback();\n } else {\n this.resetAfterDone();\n }\n }\n\n private startPending(): void {\n this.updateState(\"isPending\");\n }\n}\n"],"names":["mobxAction"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { jsx } from 'react/jsx-runtime';
4
- import { createContext, useRef, useEffect, useContext } from 'react';
5
- import { makeObservable, observable, action, computed } from 'mobx';
4
+ import { createContext, useEffect, useContext } from 'react';
5
+ import { makeObservable, computed, action, observable } from 'mobx';
6
6
  import { useSelector } from '../../../lib/mobx/useSelector.mjs';
7
+ import { useStatic } from '../../../lib/hooks/useStatic.mjs';
7
8
 
8
9
  class ActionStateContext {
9
10
  states = /* @__PURE__ */ new Set();
@@ -16,7 +17,7 @@ class ActionStateContext {
16
17
  });
17
18
  }
18
19
  static useNew() {
19
- return useRef(new ActionStateContext()).current;
20
+ return useStatic(() => new ActionStateContext());
20
21
  }
21
22
  static useRegisterState(state) {
22
23
  const context2 = useActionStateContext();
@@ -45,7 +46,7 @@ class ActionStateContext {
45
46
  return false;
46
47
  }
47
48
  }
48
- const context = createContext(undefined);
49
+ const context = createContext(void 0);
49
50
  const ActionStateContextProvider = (props) => {
50
51
  const { children } = props;
51
52
  const ctx = ActionStateContext.useNew();
@@ -1 +1 @@
1
- {"version":3,"file":"ActionStateContext.mjs","sources":["../../../../../src/components/Action/models/ActionStateContext.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport React, { createContext, useContext, useEffect, useRef } from \"react\";\nimport type { ActionState } from \"@/components/Action/models/ActionState\";\nimport { action, computed, makeObservable, observable } from \"mobx\";\nimport useSelector from \"@/lib/mobx/useSelector\";\n\nexport class ActionStateContext {\n public states = new Set<ActionState>();\n\n public constructor() {\n makeObservable(this, {\n states: observable,\n addState: action,\n removeState: action,\n isBusy: computed,\n });\n }\n\n public static useNew(): ActionStateContext {\n return useRef(new ActionStateContext()).current;\n }\n\n public static useRegisterState(state: ActionState): void {\n const context = useActionStateContext();\n\n useEffect(() => {\n context?.addState(state);\n return () => {\n context?.removeState(state);\n };\n }, [context, state]);\n }\n\n public addState(state: ActionState): void {\n this.states.add(state);\n }\n\n public removeState(state: ActionState): void {\n this.states.delete(state);\n }\n\n public useIsBusy(): boolean {\n return useSelector(() => this.isBusy);\n }\n\n public get isBusy(): boolean {\n for (const s of this.states) {\n if (s.isBusy) {\n return true;\n }\n }\n return false;\n }\n}\n\nconst context = createContext<ActionStateContext | undefined>(undefined);\n\nexport const ActionStateContextProvider: FC<PropsWithChildren> = (props) => {\n const { children } = props;\n const ctx = ActionStateContext.useNew();\n return <context.Provider value={ctx}>{children}</context.Provider>;\n};\n\nexport const useActionStateContext = (): ActionStateContext => {\n const newContext = ActionStateContext.useNew();\n return useContext(context) ?? newContext;\n};\n"],"names":["context"],"mappings":";;;;;AAMO,MAAM,kBAAmB,CAAA;AAAA,EACvB,MAAA,uBAAa,GAAiB,EAAA;AAAA,EAE9B,WAAc,GAAA;AACnB,IAAA,cAAA,CAAe,IAAM,EAAA;AAAA,MACnB,MAAQ,EAAA,UAAA;AAAA,MACR,QAAU,EAAA,MAAA;AAAA,MACV,WAAa,EAAA,MAAA;AAAA,MACb,MAAQ,EAAA;AAAA,KACT,CAAA;AAAA;AACH,EAEA,OAAc,MAA6B,GAAA;AACzC,IAAA,OAAO,MAAO,CAAA,IAAI,kBAAmB,EAAC,CAAE,CAAA,OAAA;AAAA;AAC1C,EAEA,OAAc,iBAAiB,KAA0B,EAAA;AACvD,IAAA,MAAMA,WAAU,qBAAsB,EAAA;AAEtC,IAAA,SAAA,CAAU,MAAM;AACd,MAAAA,QAAAA,EAAS,SAAS,KAAK,CAAA;AACvB,MAAA,OAAO,MAAM;AACX,QAAAA,QAAAA,EAAS,YAAY,KAAK,CAAA;AAAA,OAC5B;AAAA,KACC,EAAA,CAACA,QAAS,EAAA,KAAK,CAAC,CAAA;AAAA;AACrB,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAK,IAAA,CAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AAAA;AACvB,EAEO,YAAY,KAA0B,EAAA;AAC3C,IAAK,IAAA,CAAA,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA;AAC1B,EAEO,SAAqB,GAAA;AAC1B,IAAO,OAAA,WAAA,CAAY,MAAM,IAAA,CAAK,MAAM,CAAA;AAAA;AACtC,EAEA,IAAW,MAAkB,GAAA;AAC3B,IAAW,KAAA,MAAA,CAAA,IAAK,KAAK,MAAQ,EAAA;AAC3B,MAAA,IAAI,EAAE,MAAQ,EAAA;AACZ,QAAO,OAAA,IAAA;AAAA;AACT;AAEF,IAAO,OAAA,KAAA;AAAA;AAEX;AAEA,MAAM,OAAA,GAAU,cAA8C,SAAS,CAAA;AAE1D,MAAA,0BAAA,GAAoD,CAAC,KAAU,KAAA;AAC1E,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AACrB,EAAM,MAAA,GAAA,GAAM,mBAAmB,MAAO,EAAA;AACtC,EAAA,2BAAQ,OAAQ,CAAA,QAAA,EAAR,EAAiB,KAAA,EAAO,KAAM,QAAS,EAAA,CAAA;AACjD;AAEO,MAAM,wBAAwB,MAA0B;AAC7D,EAAM,MAAA,UAAA,GAAa,mBAAmB,MAAO,EAAA;AAC7C,EAAO,OAAA,UAAA,CAAW,OAAO,CAAK,IAAA,UAAA;AAChC;;;;"}
1
+ {"version":3,"file":"ActionStateContext.mjs","sources":["../../../../../src/components/Action/models/ActionStateContext.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport React, { createContext, useContext, useEffect } from \"react\";\nimport type { ActionState } from \"@/components/Action/models/ActionState\";\nimport { action, computed, makeObservable, observable } from \"mobx\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\n\nexport class ActionStateContext {\n public states = new Set<ActionState>();\n\n public constructor() {\n makeObservable(this, {\n states: observable,\n addState: action,\n removeState: action,\n isBusy: computed,\n });\n }\n\n public static useNew(): ActionStateContext {\n return useStatic(() => new ActionStateContext());\n }\n\n public static useRegisterState(state: ActionState): void {\n const context = useActionStateContext();\n\n useEffect(() => {\n context?.addState(state);\n return () => {\n context?.removeState(state);\n };\n }, [context, state]);\n }\n\n public addState(state: ActionState): void {\n this.states.add(state);\n }\n\n public removeState(state: ActionState): void {\n this.states.delete(state);\n }\n\n public useIsBusy(): boolean {\n return useSelector(() => this.isBusy);\n }\n\n public get isBusy(): boolean {\n for (const s of this.states) {\n if (s.isBusy) {\n return true;\n }\n }\n return false;\n }\n}\n\nconst context = createContext<ActionStateContext | undefined>(undefined);\n\nexport const ActionStateContextProvider: FC<PropsWithChildren> = (props) => {\n const { children } = props;\n const ctx = ActionStateContext.useNew();\n return <context.Provider value={ctx}>{children}</context.Provider>;\n};\n\nexport const useActionStateContext = (): ActionStateContext => {\n const newContext = ActionStateContext.useNew();\n return useContext(context) ?? newContext;\n};\n"],"names":["context"],"mappings":";;;;;;AAOO,MAAM,kBAAmB,CAAA;AAAA,EACvB,MAAA,uBAAa,GAAiB,EAAA;AAAA,EAE9B,WAAc,GAAA;AACnB,IAAA,cAAA,CAAe,IAAM,EAAA;AAAA,MACnB,MAAQ,EAAA,UAAA;AAAA,MACR,QAAU,EAAA,MAAA;AAAA,MACV,WAAa,EAAA,MAAA;AAAA,MACb,MAAQ,EAAA;AAAA,KACT,CAAA;AAAA;AACH,EAEA,OAAc,MAA6B,GAAA;AACzC,IAAA,OAAO,SAAU,CAAA,MAAM,IAAI,kBAAA,EAAoB,CAAA;AAAA;AACjD,EAEA,OAAc,iBAAiB,KAA0B,EAAA;AACvD,IAAA,MAAMA,WAAU,qBAAsB,EAAA;AAEtC,IAAA,SAAA,CAAU,MAAM;AACd,MAAAA,QAAAA,EAAS,SAAS,KAAK,CAAA;AACvB,MAAA,OAAO,MAAM;AACX,QAAAA,QAAAA,EAAS,YAAY,KAAK,CAAA;AAAA,OAC5B;AAAA,KACC,EAAA,CAACA,QAAS,EAAA,KAAK,CAAC,CAAA;AAAA;AACrB,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAK,IAAA,CAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AAAA;AACvB,EAEO,YAAY,KAA0B,EAAA;AAC3C,IAAK,IAAA,CAAA,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA;AAC1B,EAEO,SAAqB,GAAA;AAC1B,IAAO,OAAA,WAAA,CAAY,MAAM,IAAA,CAAK,MAAM,CAAA;AAAA;AACtC,EAEA,IAAW,MAAkB,GAAA;AAC3B,IAAW,KAAA,MAAA,CAAA,IAAK,KAAK,MAAQ,EAAA;AAC3B,MAAA,IAAI,EAAE,MAAQ,EAAA;AACZ,QAAO,OAAA,IAAA;AAAA;AACT;AAEF,IAAO,OAAA,KAAA;AAAA;AAEX;AAEA,MAAM,OAAA,GAAU,cAA8C,MAAS,CAAA;AAE1D,MAAA,0BAAA,GAAoD,CAAC,KAAU,KAAA;AAC1E,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AACrB,EAAM,MAAA,GAAA,GAAM,mBAAmB,MAAO,EAAA;AACtC,EAAA,2BAAQ,OAAQ,CAAA,QAAA,EAAR,EAAiB,KAAA,EAAO,KAAM,QAAS,EAAA,CAAA;AACjD;AAEO,MAAM,wBAAwB,MAA0B;AAC7D,EAAM,MAAA,UAAA,GAAa,mBAAmB,MAAO,EAAA;AAC7C,EAAO,OAAA,UAAA,CAAW,OAAO,CAAK,IAAA,UAAA;AAChC;;;;"}
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  const getActionGroupSlot = (props) => {
4
4
  const { slot: slotFromProps, ...buttonProps } = props;
5
- const guessedSlot = buttonProps.color === undefined || buttonProps.color === "primary" || buttonProps.color === "danger" || buttonProps.color === "accent" ? "primary" : "abort";
5
+ const guessedSlot = buttonProps.color === void 0 || buttonProps.color === "primary" || buttonProps.color === "danger" || buttonProps.color === "accent" ? "primary" : "abort";
6
6
  return slotFromProps ?? guessedSlot;
7
7
  };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"getActionGroupSlot.mjs","sources":["../../../../../src/components/ActionGroup/lib/getActionGroupSlot.tsx"],"sourcesContent":["import type { ButtonProps } from \"@/components/Button\";\n\nexport const getActionGroupSlot = (props: ButtonProps): string => {\n const { slot: slotFromProps, ...buttonProps } = props;\n\n const guessedSlot =\n buttonProps.color === undefined ||\n buttonProps.color === \"primary\" ||\n buttonProps.color === \"danger\" ||\n buttonProps.color === \"accent\"\n ? \"primary\"\n : \"abort\";\n\n return slotFromProps ?? guessedSlot;\n};\n"],"names":[],"mappings":"AAEa,MAAA,kBAAA,GAAqB,CAAC,KAA+B,KAAA;AAChE,EAAA,MAAM,EAAE,IAAA,EAAM,aAAe,EAAA,GAAG,aAAgB,GAAA,KAAA;AAEhD,EAAA,MAAM,WACJ,GAAA,WAAA,CAAY,KAAU,KAAA,SAAA,IACtB,WAAY,CAAA,KAAA,KAAU,SACtB,IAAA,WAAA,CAAY,KAAU,KAAA,QAAA,IACtB,WAAY,CAAA,KAAA,KAAU,WAClB,SACA,GAAA,OAAA;AAEN,EAAA,OAAO,aAAiB,IAAA,WAAA;AAC1B;;;;"}
1
+ {"version":3,"file":"getActionGroupSlot.mjs","sources":["../../../../../src/components/ActionGroup/lib/getActionGroupSlot.tsx"],"sourcesContent":["import type { ButtonProps } from \"@/components/Button\";\n\nexport const getActionGroupSlot = (props: ButtonProps): string => {\n const { slot: slotFromProps, ...buttonProps } = props;\n\n const guessedSlot =\n buttonProps.color === undefined ||\n buttonProps.color === \"primary\" ||\n buttonProps.color === \"danger\" ||\n buttonProps.color === \"accent\"\n ? \"primary\"\n : \"abort\";\n\n return slotFromProps ?? guessedSlot;\n};\n"],"names":[],"mappings":"AAEa,MAAA,kBAAA,GAAqB,CAAC,KAA+B,KAAA;AAChE,EAAA,MAAM,EAAE,IAAA,EAAM,aAAe,EAAA,GAAG,aAAgB,GAAA,KAAA;AAEhD,EAAA,MAAM,WACJ,GAAA,WAAA,CAAY,KAAU,KAAA,MAAA,IACtB,WAAY,CAAA,KAAA,KAAU,SACtB,IAAA,WAAA,CAAY,KAAU,KAAA,QAAA,IACtB,WAAY,CAAA,KAAA,KAAU,WAClB,SACA,GAAA,OAAA;AAEN,EAAA,OAAO,aAAiB,IAAA,WAAA;AAC1B;;;;"}
@@ -14,7 +14,8 @@ const Align = flowComponent("Align", (props) => {
14
14
  Text: { className: styles.text },
15
15
  Button: { className: styles.button },
16
16
  Avatar: { className: styles.avatar, size: "m" },
17
- CopyButton: { size: "s", className: styles.copyButton }
17
+ CopyButton: { size: "s", className: styles.copyButton },
18
+ Icon: { size: "s", className: styles.icon }
18
19
  };
19
20
  return /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx("div", { className: rootClassName, children }) });
20
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Align.mjs","sources":["../../../../src/components/Align/Align.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./Align.module.scss\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport PropsContextProvider from \"@/lib/propsContext/PropsContextProvider\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\n\nexport interface AlignProps\n extends PropsWithChildren,\n PropsWithClassName,\n FlowComponentProps {}\n\n/** @flr-generate all */\nexport const Align = flowComponent(\"Align\", (props) => {\n const { children, className } = props;\n\n const rootClassName = clsx(styles.align, className);\n\n const propsContext: PropsContext = {\n Text: { className: styles.text },\n Button: { className: styles.button },\n Avatar: { className: styles.avatar, size: \"m\" },\n CopyButton: { size: \"s\", className: styles.copyButton },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <div className={rootClassName}>{children}</div>\n </PropsContextProvider>\n );\n});\n\nexport default Align;\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,KAAQ,GAAA,aAAA,CAAc,OAAS,EAAA,CAAC,KAAU,KAAA;AACrD,EAAM,MAAA,EAAE,QAAU,EAAA,SAAA,EAAc,GAAA,KAAA;AAEhC,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,MAAO,CAAA,KAAA,EAAO,SAAS,CAAA;AAElD,EAAA,MAAM,YAA6B,GAAA;AAAA,IACjC,IAAM,EAAA,EAAE,SAAW,EAAA,MAAA,CAAO,IAAK,EAAA;AAAA,IAC/B,MAAQ,EAAA,EAAE,SAAW,EAAA,MAAA,CAAO,MAAO,EAAA;AAAA,IACnC,QAAQ,EAAE,SAAA,EAAW,MAAO,CAAA,MAAA,EAAQ,MAAM,GAAI,EAAA;AAAA,IAC9C,YAAY,EAAE,IAAA,EAAM,GAAK,EAAA,SAAA,EAAW,OAAO,UAAW;AAAA,GACxD;AAEA,EACE,uBAAA,GAAA,CAAC,wBAAqB,KAAO,EAAA,YAAA,EAC3B,8BAAC,KAAI,EAAA,EAAA,SAAA,EAAW,aAAgB,EAAA,QAAA,EAAS,CAC3C,EAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Align.mjs","sources":["../../../../src/components/Align/Align.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./Align.module.scss\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport PropsContextProvider from \"@/lib/propsContext/PropsContextProvider\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\n\nexport interface AlignProps\n extends PropsWithChildren,\n PropsWithClassName,\n FlowComponentProps {}\n\n/** @flr-generate all */\nexport const Align = flowComponent(\"Align\", (props) => {\n const { children, className } = props;\n\n const rootClassName = clsx(styles.align, className);\n\n const propsContext: PropsContext = {\n Text: { className: styles.text },\n Button: { className: styles.button },\n Avatar: { className: styles.avatar, size: \"m\" },\n CopyButton: { size: \"s\", className: styles.copyButton },\n Icon: { size: \"s\", className: styles.icon },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <div className={rootClassName}>{children}</div>\n </PropsContextProvider>\n );\n});\n\nexport default Align;\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,KAAQ,GAAA,aAAA,CAAc,OAAS,EAAA,CAAC,KAAU,KAAA;AACrD,EAAM,MAAA,EAAE,QAAU,EAAA,SAAA,EAAc,GAAA,KAAA;AAEhC,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,MAAO,CAAA,KAAA,EAAO,SAAS,CAAA;AAElD,EAAA,MAAM,YAA6B,GAAA;AAAA,IACjC,IAAM,EAAA,EAAE,SAAW,EAAA,MAAA,CAAO,IAAK,EAAA;AAAA,IAC/B,MAAQ,EAAA,EAAE,SAAW,EAAA,MAAA,CAAO,MAAO,EAAA;AAAA,IACnC,QAAQ,EAAE,SAAA,EAAW,MAAO,CAAA,MAAA,EAAQ,MAAM,GAAI,EAAA;AAAA,IAC9C,YAAY,EAAE,IAAA,EAAM,GAAK,EAAA,SAAA,EAAW,OAAO,UAAW,EAAA;AAAA,IACtD,MAAM,EAAE,IAAA,EAAM,GAAK,EAAA,SAAA,EAAW,OAAO,IAAK;AAAA,GAC5C;AAEA,EACE,uBAAA,GAAA,CAAC,wBAAqB,KAAO,EAAA,YAAA,EAC3B,8BAAC,KAAI,EAAA,EAAA,SAAA,EAAW,aAAgB,EAAA,QAAA,EAAS,CAC3C,EAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -5,13 +5,15 @@ const avatar = "flow--align--avatar";
5
5
  const text = "flow--align--text";
6
6
  const button = "flow--align--button";
7
7
  const copyButton = "flow--align--copy-button";
8
+ const icon = "flow--align--icon";
8
9
  const styles = {
9
10
  align: align,
10
11
  avatar: avatar,
11
12
  text: text,
12
13
  button: button,
13
- copyButton: copyButton
14
+ copyButton: copyButton,
15
+ icon: icon
14
16
  };
15
17
 
16
- export { align, avatar, button, copyButton, styles as default, text };
18
+ export { align, avatar, button, copyButton, styles as default, icon, text };
17
19
  //# sourceMappingURL=Align.module.scss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Align.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Align.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -21,13 +21,13 @@ import { useAriaAnnounceActionState } from '../Action/lib/ariaLive.mjs';
21
21
  const disablePendingProps = (props) => {
22
22
  if (props.isPending || props.isSucceeded || props.isFailed || props["aria-disabled"]) {
23
23
  props = { ...props };
24
- props.onPress = undefined;
25
- props.onPressStart = undefined;
26
- props.onPressEnd = undefined;
27
- props.onPressChange = undefined;
28
- props.onPressUp = undefined;
29
- props.onKeyDown = undefined;
30
- props.onKeyUp = undefined;
24
+ props.onPress = void 0;
25
+ props.onPressStart = void 0;
26
+ props.onPressEnd = void 0;
27
+ props.onPressChange = void 0;
28
+ props.onPressUp = void 0;
29
+ props.onKeyDown = void 0;
30
+ props.onKeyUp = void 0;
31
31
  }
32
32
  return props;
33
33
  };
@@ -86,7 +86,7 @@ const Button = flowComponent(
86
86
  className: styles.counterBadge
87
87
  }
88
88
  };
89
- const StateIconComponent = isSucceeded ? IconSucceeded : isFailed ? IconFailed : isPending ? LoadingSpinner : undefined;
89
+ const StateIconComponent = isSucceeded ? IconSucceeded : isFailed ? IconFailed : isPending ? LoadingSpinner : void 0;
90
90
  const stateIcon = StateIconComponent && /* @__PURE__ */ jsx(StateIconComponent, { size, className: styles.stateIcon });
91
91
  const isStringContent = typeof children === "string";
92
92
  return /* @__PURE__ */ jsx(ClearPropsContext, { children: /* @__PURE__ */ jsxs(
@@ -1 +1 @@
1
- {"version":3,"file":"Button.mjs","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./Button.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { ClearPropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { IconFailed, IconSucceeded } from \"@/components/Icon/components/icons\";\nimport { Wrap } from \"@/components/Wrap\";\nimport { Text } from \"@/components/Text\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport LoadingSpinner from \"@/components/LoadingSpinner/LoadingSpinner\";\nimport { useAriaAnnounceActionState } from \"@/components/Action/lib/ariaLive\";\n\nexport interface ButtonProps\n extends PropsWithChildren<Aria.ButtonProps>,\n FlowComponentProps {\n /** Slot for button placement in action groups. */\n slot?: string;\n /** The color of the button. @default \"primary\" */\n color?: \"primary\" | \"accent\" | \"secondary\" | \"danger\" | \"dark\" | \"light\";\n /** The visual variant of the button. @default \"solid\" */\n variant?: \"plain\" | \"solid\" | \"soft\" | \"outline\";\n /** The size of the button. @default \"m\" */\n size?: \"m\" | \"s\";\n /** Disables button but keeps it focusable. */\n \"aria-disabled\"?: boolean;\n /** Whether the button is in a pending state. */\n isPending?: boolean;\n /** Whether the button is in a succeeded state. */\n isSucceeded?: boolean;\n /** Whether the button is in a failed state. */\n isFailed?: boolean;\n /** @internal */\n unstyled?: boolean;\n /** @internal */\n ariaSlot?: string;\n}\n\nconst disablePendingProps = (props: ButtonProps) => {\n if (\n props.isPending ||\n props.isSucceeded ||\n props.isFailed ||\n props[\"aria-disabled\"]\n ) {\n props = { ...props };\n props.onPress = undefined;\n props.onPressStart = undefined;\n props.onPressEnd = undefined;\n props.onPressChange = undefined;\n props.onPressUp = undefined;\n props.onKeyDown = undefined;\n props.onKeyUp = undefined;\n }\n\n return props;\n};\n\n/** @flr-generate all */\nexport const Button = flowComponent<\"Button\", HTMLButtonElement>(\n \"Button\",\n (props) => {\n props = disablePendingProps(props);\n\n const {\n color = \"primary\",\n variant = \"solid\",\n children,\n className,\n size = \"m\",\n isPending,\n isSucceeded,\n isFailed,\n \"aria-disabled\": ariaDisabled,\n ref,\n slot: ignoredSlotProp,\n ariaSlot: slot,\n unstyled,\n ...restProps\n } = props;\n\n const rootClassName = unstyled\n ? className\n : clsx(\n styles.button,\n isPending && styles.isPending,\n isSucceeded && styles.isSucceeded,\n isFailed && styles.isFailed,\n styles[`size-${size}`],\n styles[color],\n styles[variant],\n className,\n /**\n * Workaround warning: The Aria.Button does not support\n * \"aria-disabled\" by now, so this Button will be visually disabled\n * via CSS.\n */\n ariaDisabled && styles.ariaDisabled,\n );\n\n useAriaAnnounceActionState(\n isPending\n ? \"isPending\"\n : isSucceeded\n ? \"isSucceeded\"\n : isFailed\n ? \"isFailed\"\n : \"isIdle\",\n );\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n \"aria-hidden\": true,\n size,\n },\n Text: {\n className: styles.text,\n },\n Avatar: {\n className: styles.avatar,\n },\n CounterBadge: {\n className: styles.counterBadge,\n },\n };\n\n const StateIconComponent = isSucceeded\n ? IconSucceeded\n : isFailed\n ? IconFailed\n : isPending\n ? LoadingSpinner\n : undefined;\n\n const stateIcon = StateIconComponent && (\n <StateIconComponent size={size} className={styles.stateIcon} />\n );\n\n const isStringContent = typeof children === \"string\";\n\n return (\n <ClearPropsContext>\n <Aria.Button\n className={rootClassName}\n ref={ref}\n slot={slot}\n {...restProps}\n >\n <PropsContextProvider props={propsContext}>\n <Wrap if={!unstyled}>\n <span className={styles.content}>\n <Wrap if={isStringContent}>\n <Text className={styles.text}>{children}</Text>\n </Wrap>\n </span>\n </Wrap>\n </PropsContextProvider>\n {stateIcon}\n </Aria.Button>\n </ClearPropsContext>\n );\n },\n);\n\nexport default Button;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.mjs","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./Button.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { ClearPropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { IconFailed, IconSucceeded } from \"@/components/Icon/components/icons\";\nimport { Wrap } from \"@/components/Wrap\";\nimport { Text } from \"@/components/Text\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport LoadingSpinner from \"@/components/LoadingSpinner/LoadingSpinner\";\nimport { useAriaAnnounceActionState } from \"@/components/Action/lib/ariaLive\";\n\nexport interface ButtonProps\n extends PropsWithChildren<Aria.ButtonProps>,\n FlowComponentProps {\n /** Slot for button placement in action groups. */\n slot?: string;\n /** The color of the button. @default \"primary\" */\n color?: \"primary\" | \"accent\" | \"secondary\" | \"danger\" | \"dark\" | \"light\";\n /** The visual variant of the button. @default \"solid\" */\n variant?: \"plain\" | \"solid\" | \"soft\" | \"outline\";\n /** The size of the button. @default \"m\" */\n size?: \"m\" | \"s\";\n /** Disables button but keeps it focusable. */\n \"aria-disabled\"?: boolean;\n /** Whether the button is in a pending state. */\n isPending?: boolean;\n /** Whether the button is in a succeeded state. */\n isSucceeded?: boolean;\n /** Whether the button is in a failed state. */\n isFailed?: boolean;\n /** @internal */\n unstyled?: boolean;\n /** @internal */\n ariaSlot?: string;\n}\n\nconst disablePendingProps = (props: ButtonProps) => {\n if (\n props.isPending ||\n props.isSucceeded ||\n props.isFailed ||\n props[\"aria-disabled\"]\n ) {\n props = { ...props };\n props.onPress = undefined;\n props.onPressStart = undefined;\n props.onPressEnd = undefined;\n props.onPressChange = undefined;\n props.onPressUp = undefined;\n props.onKeyDown = undefined;\n props.onKeyUp = undefined;\n }\n\n return props;\n};\n\n/** @flr-generate all */\nexport const Button = flowComponent<\"Button\", HTMLButtonElement>(\n \"Button\",\n (props) => {\n props = disablePendingProps(props);\n\n const {\n color = \"primary\",\n variant = \"solid\",\n children,\n className,\n size = \"m\",\n isPending,\n isSucceeded,\n isFailed,\n \"aria-disabled\": ariaDisabled,\n ref,\n slot: ignoredSlotProp,\n ariaSlot: slot,\n unstyled,\n ...restProps\n } = props;\n\n const rootClassName = unstyled\n ? className\n : clsx(\n styles.button,\n isPending && styles.isPending,\n isSucceeded && styles.isSucceeded,\n isFailed && styles.isFailed,\n styles[`size-${size}`],\n styles[color],\n styles[variant],\n className,\n /**\n * Workaround warning: The Aria.Button does not support\n * \"aria-disabled\" by now, so this Button will be visually disabled\n * via CSS.\n */\n ariaDisabled && styles.ariaDisabled,\n );\n\n useAriaAnnounceActionState(\n isPending\n ? \"isPending\"\n : isSucceeded\n ? \"isSucceeded\"\n : isFailed\n ? \"isFailed\"\n : \"isIdle\",\n );\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n \"aria-hidden\": true,\n size,\n },\n Text: {\n className: styles.text,\n },\n Avatar: {\n className: styles.avatar,\n },\n CounterBadge: {\n className: styles.counterBadge,\n },\n };\n\n const StateIconComponent = isSucceeded\n ? IconSucceeded\n : isFailed\n ? IconFailed\n : isPending\n ? LoadingSpinner\n : undefined;\n\n const stateIcon = StateIconComponent && (\n <StateIconComponent size={size} className={styles.stateIcon} />\n );\n\n const isStringContent = typeof children === \"string\";\n\n return (\n <ClearPropsContext>\n <Aria.Button\n className={rootClassName}\n ref={ref}\n slot={slot}\n {...restProps}\n >\n <PropsContextProvider props={propsContext}>\n <Wrap if={!unstyled}>\n <span className={styles.content}>\n <Wrap if={isStringContent}>\n <Text className={styles.text}>{children}</Text>\n </Wrap>\n </span>\n </Wrap>\n </PropsContextProvider>\n {stateIcon}\n </Aria.Button>\n </ClearPropsContext>\n );\n },\n);\n\nexport default Button;\n"],"names":[],"mappings":"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"}
@@ -21,9 +21,9 @@ const ColumnLayout = (props) => {
21
21
  elementType = "div",
22
22
  "aria-label": ariaLabel
23
23
  } = props;
24
- const columnsS = s ? getColumns(s) : undefined;
25
- const columnsM = m ? getColumns(m) : s ? columnsS : undefined;
26
- const columnsL = l ? getColumns(l) : m || s ? columnsM : undefined;
24
+ const columnsS = s ? getColumns(s) : void 0;
25
+ const columnsM = m ? getColumns(m) : s ? columnsS : void 0;
26
+ const columnsL = l ? getColumns(l) : m || s ? columnsM : void 0;
27
27
  const style = {
28
28
  "--column-layout--columns-s": columnsS,
29
29
  "--column-layout--columns-m": columnsM,
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnLayout.mjs","sources":["../../../../src/components/ColumnLayout/ColumnLayout.tsx"],"sourcesContent":["import type { CSSProperties, FC, PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./ColumnLayout.module.scss\";\nimport { getColumns } from \"./lib/getColumns\";\nimport clsx from \"clsx\";\nimport type {\n PropsWithClassName,\n PropsWithElementType,\n} from \"@/lib/types/props\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\ntype GapSize = \"s\" | \"m\" | \"l\" | \"xl\";\n\nexport interface ColumnLayoutProps\n extends PropsWithChildren,\n PropsWithElementType<\"div\" | \"ul\">,\n PropsWithClassName {\n /** Column layout for container size s. */\n s?: number[];\n /** Column layout for container size m. */\n m?: number[];\n /** Column layout for container size l. */\n l?: number[];\n /**\n * Size of the row and column gap between the content blocks inside the column\n * layout.\n *\n * @default \"m\"\n */\n gap?: GapSize;\n /** Size of the row gap between the content blocks inside the column layout. */\n rowGap?: GapSize;\n /** Size of the column gap between the content blocks inside the column layout. */\n columnGap?: GapSize;\n}\n\n/** @flr-generate all */\nexport const ColumnLayout: FC<ColumnLayoutProps> = (props) => {\n const {\n children,\n className,\n s,\n m,\n l,\n gap = \"m\",\n rowGap = gap,\n columnGap = gap,\n elementType = \"div\",\n \"aria-label\": ariaLabel,\n } = props;\n\n const columnsS = s ? getColumns(s) : undefined;\n const columnsM = m ? getColumns(m) : s ? columnsS : undefined;\n const columnsL = l ? getColumns(l) : m || s ? columnsM : undefined;\n\n const style = {\n \"--column-layout--columns-s\": columnsS,\n \"--column-layout--columns-m\": columnsM,\n \"--column-layout--columns-l\": columnsL,\n \"--column-layout--row-gap\": `var(--column-layout--gap--${rowGap})`,\n \"--column-layout--column-gap\": `var(--column-layout--gap--${columnGap})`,\n } as CSSProperties;\n\n const rootClassName = clsx(styles.columnLayoutContainer, className);\n\n const Element = elementType;\n\n const propsContext: PropsContext = {\n Section: {\n hideSeparator: true,\n },\n };\n\n return (\n <div className={rootClassName} style={style}>\n <Element aria-label={ariaLabel} className={styles.columnLayout}>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </Element>\n </div>\n );\n};\n\nexport default ColumnLayout;\n"],"names":[],"mappings":";;;;;;;;AAsCa,MAAA,YAAA,GAAsC,CAAC,KAAU,KAAA;AAC5D,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,GAAM,GAAA,GAAA;AAAA,IACN,MAAS,GAAA,GAAA;AAAA,IACT,SAAY,GAAA,GAAA;AAAA,IACZ,WAAc,GAAA,KAAA;AAAA,IACd,YAAc,EAAA;AAAA,GACZ,GAAA,KAAA;AAEJ,EAAA,MAAM,QAAW,GAAA,CAAA,GAAI,UAAW,CAAA,CAAC,CAAI,GAAA,SAAA;AACrC,EAAA,MAAM,WAAW,CAAI,GAAA,UAAA,CAAW,CAAC,CAAA,GAAI,IAAI,QAAW,GAAA,SAAA;AACpD,EAAA,MAAM,WAAW,CAAI,GAAA,UAAA,CAAW,CAAC,CAAI,GAAA,CAAA,IAAK,IAAI,QAAW,GAAA,SAAA;AAEzD,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,4BAA8B,EAAA,QAAA;AAAA,IAC9B,4BAA8B,EAAA,QAAA;AAAA,IAC9B,4BAA8B,EAAA,QAAA;AAAA,IAC9B,0BAAA,EAA4B,6BAA6B,MAAM,CAAA,CAAA,CAAA;AAAA,IAC/D,6BAAA,EAA+B,6BAA6B,SAAS,CAAA,CAAA;AAAA,GACvE;AAEA,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,MAAO,CAAA,qBAAA,EAAuB,SAAS,CAAA;AAElE,EAAA,MAAM,OAAU,GAAA,WAAA;AAEhB,EAAA,MAAM,YAA6B,GAAA;AAAA,IACjC,OAAS,EAAA;AAAA,MACP,aAAe,EAAA;AAAA;AACjB,GACF;AAEA,EAAA,2BACG,KAAI,EAAA,EAAA,SAAA,EAAW,eAAe,KAC7B,EAAA,QAAA,kBAAA,GAAA,CAAC,WAAQ,YAAY,EAAA,SAAA,EAAW,SAAW,EAAA,MAAA,CAAO,cAChD,QAAC,kBAAA,GAAA,CAAA,oBAAA,EAAA,EAAqB,OAAO,YAC1B,EAAA,QAAA,EACH,GACF,CACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ColumnLayout.mjs","sources":["../../../../src/components/ColumnLayout/ColumnLayout.tsx"],"sourcesContent":["import type { CSSProperties, FC, PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./ColumnLayout.module.scss\";\nimport { getColumns } from \"./lib/getColumns\";\nimport clsx from \"clsx\";\nimport type {\n PropsWithClassName,\n PropsWithElementType,\n} from \"@/lib/types/props\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\ntype GapSize = \"s\" | \"m\" | \"l\" | \"xl\";\n\nexport interface ColumnLayoutProps\n extends PropsWithChildren,\n PropsWithElementType<\"div\" | \"ul\">,\n PropsWithClassName {\n /** Column layout for container size s. */\n s?: number[];\n /** Column layout for container size m. */\n m?: number[];\n /** Column layout for container size l. */\n l?: number[];\n /**\n * Size of the row and column gap between the content blocks inside the column\n * layout.\n *\n * @default \"m\"\n */\n gap?: GapSize;\n /** Size of the row gap between the content blocks inside the column layout. */\n rowGap?: GapSize;\n /** Size of the column gap between the content blocks inside the column layout. */\n columnGap?: GapSize;\n}\n\n/** @flr-generate all */\nexport const ColumnLayout: FC<ColumnLayoutProps> = (props) => {\n const {\n children,\n className,\n s,\n m,\n l,\n gap = \"m\",\n rowGap = gap,\n columnGap = gap,\n elementType = \"div\",\n \"aria-label\": ariaLabel,\n } = props;\n\n const columnsS = s ? getColumns(s) : undefined;\n const columnsM = m ? getColumns(m) : s ? columnsS : undefined;\n const columnsL = l ? getColumns(l) : m || s ? columnsM : undefined;\n\n const style = {\n \"--column-layout--columns-s\": columnsS,\n \"--column-layout--columns-m\": columnsM,\n \"--column-layout--columns-l\": columnsL,\n \"--column-layout--row-gap\": `var(--column-layout--gap--${rowGap})`,\n \"--column-layout--column-gap\": `var(--column-layout--gap--${columnGap})`,\n } as CSSProperties;\n\n const rootClassName = clsx(styles.columnLayoutContainer, className);\n\n const Element = elementType;\n\n const propsContext: PropsContext = {\n Section: {\n hideSeparator: true,\n },\n };\n\n return (\n <div className={rootClassName} style={style}>\n <Element aria-label={ariaLabel} className={styles.columnLayout}>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </Element>\n </div>\n );\n};\n\nexport default ColumnLayout;\n"],"names":[],"mappings":";;;;;;;;AAsCa,MAAA,YAAA,GAAsC,CAAC,KAAU,KAAA;AAC5D,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,GAAM,GAAA,GAAA;AAAA,IACN,MAAS,GAAA,GAAA;AAAA,IACT,SAAY,GAAA,GAAA;AAAA,IACZ,WAAc,GAAA,KAAA;AAAA,IACd,YAAc,EAAA;AAAA,GACZ,GAAA,KAAA;AAEJ,EAAA,MAAM,QAAW,GAAA,CAAA,GAAI,UAAW,CAAA,CAAC,CAAI,GAAA,MAAA;AACrC,EAAA,MAAM,WAAW,CAAI,GAAA,UAAA,CAAW,CAAC,CAAA,GAAI,IAAI,QAAW,GAAA,MAAA;AACpD,EAAA,MAAM,WAAW,CAAI,GAAA,UAAA,CAAW,CAAC,CAAI,GAAA,CAAA,IAAK,IAAI,QAAW,GAAA,MAAA;AAEzD,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,4BAA8B,EAAA,QAAA;AAAA,IAC9B,4BAA8B,EAAA,QAAA;AAAA,IAC9B,4BAA8B,EAAA,QAAA;AAAA,IAC9B,0BAAA,EAA4B,6BAA6B,MAAM,CAAA,CAAA,CAAA;AAAA,IAC/D,6BAAA,EAA+B,6BAA6B,SAAS,CAAA,CAAA;AAAA,GACvE;AAEA,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,MAAO,CAAA,qBAAA,EAAuB,SAAS,CAAA;AAElE,EAAA,MAAM,OAAU,GAAA,WAAA;AAEhB,EAAA,MAAM,YAA6B,GAAA;AAAA,IACjC,OAAS,EAAA;AAAA,MACP,aAAe,EAAA;AAAA;AACjB,GACF;AAEA,EAAA,2BACG,KAAI,EAAA,EAAA,SAAA,EAAW,eAAe,KAC7B,EAAA,QAAA,kBAAA,GAAA,CAAC,WAAQ,YAAY,EAAA,SAAA,EAAW,SAAW,EAAA,MAAA,CAAO,cAChD,QAAC,kBAAA,GAAA,CAAA,oBAAA,EAAA,EAAqB,OAAO,YAC1B,EAAA,QAAA,EACH,GACF,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -15,7 +15,7 @@ import '../../lib/viewComponentContext/viewComponentContext.mjs';
15
15
  import 'clsx';
16
16
  import { Popover } from '../Popover/Popover.mjs';
17
17
  import { Action } from '../Action/Action.mjs';
18
- import { getAriaSelectionMode, getCloseOverlayType, getMenuItemSelectionVariant } from './lib.mjs';
18
+ import { getAriaSelectionMode, getMenuItemSelectionVariant, getCloseOverlayType } from './lib.mjs';
19
19
  import ContextMenuContentView from '../../views/ContextMenuContentView.mjs';
20
20
 
21
21
  const ContextMenu = flowComponent("ContextMenu", (props) => {
@@ -7,7 +7,7 @@ import '../../../../lib/propsContext/propsContext.mjs';
7
7
  import { PropsContextProvider } from '../../../../lib/propsContext/PropsContextProvider.mjs';
8
8
  import { flowComponent } from '../../../../lib/componentFactory/flowComponent.mjs';
9
9
  import styles from '../../ContextMenu.module.scss.mjs';
10
- import { getAriaSelectionMode, getCloseOverlayType, getMenuItemSelectionVariant } from '../../lib.mjs';
10
+ import { getAriaSelectionMode, getMenuItemSelectionVariant, getCloseOverlayType } from '../../lib.mjs';
11
11
  import { Action } from '../../../Action/Action.mjs';
12
12
 
13
13
  const ContextMenuSection = flowComponent(
@@ -7,7 +7,7 @@ const getMenuItemSelectionVariant = (selectionMode) => {
7
7
  return selectionMode === "single" || selectionMode === "multiple" ? "control" : selectionMode;
8
8
  };
9
9
  const getCloseOverlayType = (selectionMode) => {
10
- return selectionMode === "multiple" ? undefined : "ContextMenu";
10
+ return selectionMode === "multiple" ? void 0 : "ContextMenu";
11
11
  };
12
12
 
13
13
  export { getAriaSelectionMode, getCloseOverlayType, getMenuItemSelectionVariant };
@@ -1 +1 @@
1
- {"version":3,"file":"lib.mjs","sources":["../../../../src/components/ContextMenu/lib.ts"],"sourcesContent":["export type ContextMenuSelectionMode =\n | \"single\"\n | \"multiple\"\n | \"navigation\"\n | \"switch\";\n\nexport const getAriaSelectionMode = (\n selectionMode?: ContextMenuSelectionMode,\n) => {\n return selectionMode === \"navigation\"\n ? \"none\"\n : selectionMode === \"switch\"\n ? \"multiple\"\n : selectionMode;\n};\n\nexport const getMenuItemSelectionVariant = (\n selectionMode?: ContextMenuSelectionMode,\n) => {\n return selectionMode === \"single\" || selectionMode === \"multiple\"\n ? \"control\"\n : selectionMode;\n};\n\nexport const getCloseOverlayType = (\n selectionMode?: ContextMenuSelectionMode,\n) => {\n return selectionMode === \"multiple\" ? undefined : \"ContextMenu\";\n};\n"],"names":[],"mappings":"AAMa,MAAA,oBAAA,GAAuB,CAClC,aACG,KAAA;AACH,EAAA,OAAO,aAAkB,KAAA,YAAA,GACrB,MACA,GAAA,aAAA,KAAkB,WAChB,UACA,GAAA,aAAA;AACR;AAEa,MAAA,2BAAA,GAA8B,CACzC,aACG,KAAA;AACH,EAAA,OAAO,aAAkB,KAAA,QAAA,IAAY,aAAkB,KAAA,UAAA,GACnD,SACA,GAAA,aAAA;AACN;AAEa,MAAA,mBAAA,GAAsB,CACjC,aACG,KAAA;AACH,EAAO,OAAA,aAAA,KAAkB,aAAa,SAAY,GAAA,aAAA;AACpD;;;;"}
1
+ {"version":3,"file":"lib.mjs","sources":["../../../../src/components/ContextMenu/lib.ts"],"sourcesContent":["export type ContextMenuSelectionMode =\n | \"single\"\n | \"multiple\"\n | \"navigation\"\n | \"switch\";\n\nexport const getAriaSelectionMode = (\n selectionMode?: ContextMenuSelectionMode,\n) => {\n return selectionMode === \"navigation\"\n ? \"none\"\n : selectionMode === \"switch\"\n ? \"multiple\"\n : selectionMode;\n};\n\nexport const getMenuItemSelectionVariant = (\n selectionMode?: ContextMenuSelectionMode,\n) => {\n return selectionMode === \"single\" || selectionMode === \"multiple\"\n ? \"control\"\n : selectionMode;\n};\n\nexport const getCloseOverlayType = (\n selectionMode?: ContextMenuSelectionMode,\n) => {\n return selectionMode === \"multiple\" ? undefined : \"ContextMenu\";\n};\n"],"names":[],"mappings":"AAMa,MAAA,oBAAA,GAAuB,CAClC,aACG,KAAA;AACH,EAAA,OAAO,aAAkB,KAAA,YAAA,GACrB,MACA,GAAA,aAAA,KAAkB,WAChB,UACA,GAAA,aAAA;AACR;AAEa,MAAA,2BAAA,GAA8B,CACzC,aACG,KAAA;AACH,EAAA,OAAO,aAAkB,KAAA,QAAA,IAAY,aAAkB,KAAA,UAAA,GACnD,SACA,GAAA,aAAA;AACN;AAEa,MAAA,mBAAA,GAAsB,CACjC,aACG,KAAA;AACH,EAAO,OAAA,aAAA,KAAkB,aAAa,MAAY,GAAA,aAAA;AACpD;;;;"}
@@ -7,7 +7,7 @@ import styles from '../../FileCard.module.scss.mjs';
7
7
 
8
8
  const FileSizeText = (props) => {
9
9
  const { sizeInBytes } = props;
10
- return /* @__PURE__ */ jsx(Text, { className: styles.subTitle, children: new Intl.NumberFormat(undefined, {
10
+ return /* @__PURE__ */ jsx(Text, { className: styles.subTitle, children: new Intl.NumberFormat(void 0, {
11
11
  notation: "compact",
12
12
  style: "unit",
13
13
  unit: "byte",
@@ -1 +1 @@
1
- {"version":3,"file":"FileSizeText.mjs","sources":["../../../../../../src/components/FileCard/components/FileSizeText/FileSizeText.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { Text } from \"@/components/Text\";\nimport styles from \"@/components/FileCard/FileCard.module.scss\";\n\ninterface Props {\n sizeInBytes: number;\n}\n\nexport const FileSizeText: FC<Props> = (props) => {\n const { sizeInBytes } = props;\n\n return (\n <Text className={styles.subTitle}>\n {new Intl.NumberFormat(undefined, {\n notation: \"compact\",\n style: \"unit\",\n unit: \"byte\",\n unitDisplay: \"narrow\",\n }).format(sizeInBytes)}\n </Text>\n );\n};\n\nexport default FileSizeText;\n"],"names":[],"mappings":";;;;;AASa,MAAA,YAAA,GAA0B,CAAC,KAAU,KAAA;AAChD,EAAM,MAAA,EAAE,aAAgB,GAAA,KAAA;AAExB,EACE,uBAAA,GAAA,CAAC,QAAK,SAAW,EAAA,MAAA,CAAO,UACrB,QAAI,EAAA,IAAA,IAAA,CAAK,aAAa,SAAW,EAAA;AAAA,IAChC,QAAU,EAAA,SAAA;AAAA,IACV,KAAO,EAAA,MAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,WAAa,EAAA;AAAA,GACd,CAAA,CAAE,MAAO,CAAA,WAAW,CACvB,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FileSizeText.mjs","sources":["../../../../../../src/components/FileCard/components/FileSizeText/FileSizeText.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { Text } from \"@/components/Text\";\nimport styles from \"@/components/FileCard/FileCard.module.scss\";\n\ninterface Props {\n sizeInBytes: number;\n}\n\nexport const FileSizeText: FC<Props> = (props) => {\n const { sizeInBytes } = props;\n\n return (\n <Text className={styles.subTitle}>\n {new Intl.NumberFormat(undefined, {\n notation: \"compact\",\n style: \"unit\",\n unit: \"byte\",\n unitDisplay: \"narrow\",\n }).format(sizeInBytes)}\n </Text>\n );\n};\n\nexport default FileSizeText;\n"],"names":[],"mappings":";;;;;AASa,MAAA,YAAA,GAA0B,CAAC,KAAU,KAAA;AAChD,EAAM,MAAA,EAAE,aAAgB,GAAA,KAAA;AAExB,EACE,uBAAA,GAAA,CAAC,QAAK,SAAW,EAAA,MAAA,CAAO,UACrB,QAAI,EAAA,IAAA,IAAA,CAAK,aAAa,MAAW,EAAA;AAAA,IAChC,QAAU,EAAA,SAAA;AAAA,IACV,KAAO,EAAA,MAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,WAAa,EAAA;AAAA,GACd,CAAA,CAAE,MAAO,CAAA,WAAW,CACvB,EAAA,CAAA;AAEJ;;;;"}
@@ -26,7 +26,7 @@ const FileField = flowComponent(
26
26
  } = props;
27
27
  const inputRef = useRef(null);
28
28
  const formValidationState = useFormValidationState({
29
- value: undefined,
29
+ value: void 0,
30
30
  validationBehavior,
31
31
  isInvalid
32
32
  });
@@ -36,7 +36,7 @@ const FileField = flowComponent(
36
36
  ...restInputProps,
37
37
  ref: inputRef,
38
38
  "aria-invalid": formValidationState.displayValidation.isInvalid,
39
- value: undefined
39
+ value: void 0
40
40
  }),
41
41
  [formValidationState, isRequired, ...Object.values(restInputProps)]
42
42
  );
@@ -59,8 +59,8 @@ const FileField = flowComponent(
59
59
  children: /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(
60
60
  "div",
61
61
  {
62
- "data-required": !!isRequired || undefined,
63
- "data-invalid": formValidationState.displayValidation.isInvalid || undefined,
62
+ "data-required": !!isRequired || void 0,
63
+ "data-invalid": formValidationState.displayValidation.isInvalid || void 0,
64
64
  className: formFieldStyles.formField,
65
65
  children: /* @__PURE__ */ jsx(FileInput, { ref, onChange, isDisabled, children })
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileField.mjs","sources":["../../../../src/components/FileField/FileField.tsx"],"sourcesContent":["import formFieldStyles from \"@/components/FormField/FormField.module.scss\";\nimport { useFormValidation } from \"@react-aria/form\";\nimport { useFormValidationState } from \"@react-stately/form\";\nimport type { PropsWithChildren } from \"react\";\nimport React, { useMemo, useRef } from \"react\";\nimport type * as Aria from \"react-aria-components\";\nimport { FieldErrorContext, InputContext } from \"react-aria-components\";\nimport type { FileInputOnChangeHandler } from \"@/components/FileField/components/FileInput\";\nimport { FileInput } from \"@/components/FileField/components/FileInput\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\nexport interface FileFieldProps\n extends PropsWithChildren,\n FlowComponentProps,\n Pick<Aria.InputProps, \"accept\" | \"multiple\" | \"name\">,\n Pick<\n Aria.TextFieldProps,\n \"isRequired\" | \"isInvalid\" | \"validationBehavior\" | \"isDisabled\"\n > {\n /** Handler that is called when the file input changes. */\n onChange?: FileInputOnChangeHandler;\n}\n\n/** @flr-generate all */\nexport const FileField = flowComponent<\"FileField\", HTMLInputElement>(\n \"FileField\",\n (props) => {\n const {\n children,\n ref,\n isRequired,\n isInvalid,\n isDisabled,\n validationBehavior,\n onChange,\n ...restInputProps\n } = props;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const formValidationState = useFormValidationState({\n value: undefined,\n validationBehavior,\n isInvalid,\n });\n\n useFormValidation({ validationBehavior }, formValidationState, inputRef);\n\n const inputProps = useMemo(\n () => ({\n ...restInputProps,\n ref: inputRef,\n \"aria-invalid\": formValidationState.displayValidation.isInvalid,\n value: undefined,\n }),\n [formValidationState, isRequired, ...Object.values(restInputProps)],\n );\n\n const propsContext: PropsContext = {\n Label: {\n className: formFieldStyles.label,\n optional: !props.isRequired,\n },\n FieldDescription: {\n className: formFieldStyles.fieldDescription,\n },\n FieldError: {\n className: formFieldStyles.customFieldError,\n },\n };\n\n return (\n <InputContext.Provider value={inputProps}>\n <FieldErrorContext.Provider\n value={formValidationState.displayValidation}\n >\n <PropsContextProvider props={propsContext}>\n <div\n data-required={!!isRequired || undefined}\n data-invalid={\n formValidationState.displayValidation.isInvalid || undefined\n }\n className={formFieldStyles.formField}\n >\n <FileInput ref={ref} onChange={onChange} isDisabled={isDisabled}>\n {children}\n </FileInput>\n </div>\n </PropsContextProvider>\n </FieldErrorContext.Provider>\n </InputContext.Provider>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;;;AA2BO,MAAM,SAAY,GAAA,aAAA;AAAA,EACvB,WAAA;AAAA,EACA,CAAC,KAAU,KAAA;AACT,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,GAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AACJ,IAAM,MAAA,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,IAAA,MAAM,sBAAsB,sBAAuB,CAAA;AAAA,MACjD,KAAO,EAAA,SAAA;AAAA,MACP,kBAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,iBAAA,CAAkB,EAAE,kBAAA,EAAsB,EAAA,mBAAA,EAAqB,QAAQ,CAAA;AAEvE,IAAA,MAAM,UAAa,GAAA,OAAA;AAAA,MACjB,OAAO;AAAA,QACL,GAAG,cAAA;AAAA,QACH,GAAK,EAAA,QAAA;AAAA,QACL,cAAA,EAAgB,oBAAoB,iBAAkB,CAAA,SAAA;AAAA,QACtD,KAAO,EAAA;AAAA,OACT,CAAA;AAAA,MACA,CAAC,mBAAqB,EAAA,UAAA,EAAY,GAAG,MAAO,CAAA,MAAA,CAAO,cAAc,CAAC;AAAA,KACpE;AAEA,IAAA,MAAM,YAA6B,GAAA;AAAA,MACjC,KAAO,EAAA;AAAA,QACL,WAAW,eAAgB,CAAA,KAAA;AAAA,QAC3B,QAAA,EAAU,CAAC,KAAM,CAAA;AAAA,OACnB;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,WAAW,eAAgB,CAAA;AAAA,OAC7B;AAAA,MACA,UAAY,EAAA;AAAA,QACV,WAAW,eAAgB,CAAA;AAAA;AAC7B,KACF;AAEA,IAAA,uBACG,GAAA,CAAA,YAAA,CAAa,QAAb,EAAA,EAAsB,OAAO,UAC5B,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,iBAAkB,CAAA,QAAA;AAAA,MAAlB;AAAA,QACC,OAAO,mBAAoB,CAAA,iBAAA;AAAA,QAE3B,QAAA,kBAAA,GAAA,CAAC,oBAAqB,EAAA,EAAA,KAAA,EAAO,YAC3B,EAAA,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,eAAA,EAAe,CAAC,CAAC,UAAc,IAAA,SAAA;AAAA,YAC/B,cAAA,EACE,mBAAoB,CAAA,iBAAA,CAAkB,SAAa,IAAA,SAAA;AAAA,YAErD,WAAW,eAAgB,CAAA,SAAA;AAAA,YAE3B,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,GAAU,EAAA,QAAA,EAAoB,YACtC,QACH,EAAA;AAAA;AAAA,SAEJ,EAAA;AAAA;AAAA,KAEJ,EAAA,CAAA;AAAA;AAGN;;;;"}
1
+ {"version":3,"file":"FileField.mjs","sources":["../../../../src/components/FileField/FileField.tsx"],"sourcesContent":["import formFieldStyles from \"@/components/FormField/FormField.module.scss\";\nimport { useFormValidation } from \"@react-aria/form\";\nimport { useFormValidationState } from \"@react-stately/form\";\nimport type { PropsWithChildren } from \"react\";\nimport React, { useMemo, useRef } from \"react\";\nimport type * as Aria from \"react-aria-components\";\nimport { FieldErrorContext, InputContext } from \"react-aria-components\";\nimport type { FileInputOnChangeHandler } from \"@/components/FileField/components/FileInput\";\nimport { FileInput } from \"@/components/FileField/components/FileInput\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\nexport interface FileFieldProps\n extends PropsWithChildren,\n FlowComponentProps,\n Pick<Aria.InputProps, \"accept\" | \"multiple\" | \"name\">,\n Pick<\n Aria.TextFieldProps,\n \"isRequired\" | \"isInvalid\" | \"validationBehavior\" | \"isDisabled\"\n > {\n /** Handler that is called when the file input changes. */\n onChange?: FileInputOnChangeHandler;\n}\n\n/** @flr-generate all */\nexport const FileField = flowComponent<\"FileField\", HTMLInputElement>(\n \"FileField\",\n (props) => {\n const {\n children,\n ref,\n isRequired,\n isInvalid,\n isDisabled,\n validationBehavior,\n onChange,\n ...restInputProps\n } = props;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const formValidationState = useFormValidationState({\n value: undefined,\n validationBehavior,\n isInvalid,\n });\n\n useFormValidation({ validationBehavior }, formValidationState, inputRef);\n\n const inputProps = useMemo(\n () => ({\n ...restInputProps,\n ref: inputRef,\n \"aria-invalid\": formValidationState.displayValidation.isInvalid,\n value: undefined,\n }),\n [formValidationState, isRequired, ...Object.values(restInputProps)],\n );\n\n const propsContext: PropsContext = {\n Label: {\n className: formFieldStyles.label,\n optional: !props.isRequired,\n },\n FieldDescription: {\n className: formFieldStyles.fieldDescription,\n },\n FieldError: {\n className: formFieldStyles.customFieldError,\n },\n };\n\n return (\n <InputContext.Provider value={inputProps}>\n <FieldErrorContext.Provider\n value={formValidationState.displayValidation}\n >\n <PropsContextProvider props={propsContext}>\n <div\n data-required={!!isRequired || undefined}\n data-invalid={\n formValidationState.displayValidation.isInvalid || undefined\n }\n className={formFieldStyles.formField}\n >\n <FileInput ref={ref} onChange={onChange} isDisabled={isDisabled}>\n {children}\n </FileInput>\n </div>\n </PropsContextProvider>\n </FieldErrorContext.Provider>\n </InputContext.Provider>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;;;AA2BO,MAAM,SAAY,GAAA,aAAA;AAAA,EACvB,WAAA;AAAA,EACA,CAAC,KAAU,KAAA;AACT,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,GAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AACJ,IAAM,MAAA,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,IAAA,MAAM,sBAAsB,sBAAuB,CAAA;AAAA,MACjD,KAAO,EAAA,MAAA;AAAA,MACP,kBAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,iBAAA,CAAkB,EAAE,kBAAA,EAAsB,EAAA,mBAAA,EAAqB,QAAQ,CAAA;AAEvE,IAAA,MAAM,UAAa,GAAA,OAAA;AAAA,MACjB,OAAO;AAAA,QACL,GAAG,cAAA;AAAA,QACH,GAAK,EAAA,QAAA;AAAA,QACL,cAAA,EAAgB,oBAAoB,iBAAkB,CAAA,SAAA;AAAA,QACtD,KAAO,EAAA;AAAA,OACT,CAAA;AAAA,MACA,CAAC,mBAAqB,EAAA,UAAA,EAAY,GAAG,MAAO,CAAA,MAAA,CAAO,cAAc,CAAC;AAAA,KACpE;AAEA,IAAA,MAAM,YAA6B,GAAA;AAAA,MACjC,KAAO,EAAA;AAAA,QACL,WAAW,eAAgB,CAAA,KAAA;AAAA,QAC3B,QAAA,EAAU,CAAC,KAAM,CAAA;AAAA,OACnB;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,WAAW,eAAgB,CAAA;AAAA,OAC7B;AAAA,MACA,UAAY,EAAA;AAAA,QACV,WAAW,eAAgB,CAAA;AAAA;AAC7B,KACF;AAEA,IAAA,uBACG,GAAA,CAAA,YAAA,CAAa,QAAb,EAAA,EAAsB,OAAO,UAC5B,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,iBAAkB,CAAA,QAAA;AAAA,MAAlB;AAAA,QACC,OAAO,mBAAoB,CAAA,iBAAA;AAAA,QAE3B,QAAA,kBAAA,GAAA,CAAC,oBAAqB,EAAA,EAAA,KAAA,EAAO,YAC3B,EAAA,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,eAAA,EAAe,CAAC,CAAC,UAAc,IAAA,MAAA;AAAA,YAC/B,cAAA,EACE,mBAAoB,CAAA,iBAAA,CAAkB,SAAa,IAAA,MAAA;AAAA,YAErD,WAAW,eAAgB,CAAA,SAAA;AAAA,YAE3B,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,GAAU,EAAA,QAAA,EAAoB,YACtC,QACH,EAAA;AAAA;AAAA,SAEJ,EAAA;AAAA;AAAA,KAEJ,EAAA,CAAA;AAAA;AAGN;;;;"}
@@ -10,7 +10,7 @@ import { PropsContextProvider } from '../../lib/propsContext/PropsContextProvide
10
10
  const IllustratedMessage = (props) => {
11
11
  const { className, children, color = "primary", ...rest } = props;
12
12
  const rootClassName = clsx(styles.illustratedMessageContainer, className);
13
- const lightOrDarkColor = color === "dark" || color === "light" ? color : undefined;
13
+ const lightOrDarkColor = color === "dark" || color === "light" ? color : void 0;
14
14
  const propsContext = {
15
15
  Icon: {
16
16
  className: styles.icon,
@@ -1 +1 @@
1
- {"version":3,"file":"IllustratedMessage.mjs","sources":["../../../../src/components/IllustratedMessage/IllustratedMessage.tsx"],"sourcesContent":["import type { ComponentProps, FC, PropsWithChildren } from \"react\";\nimport React 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(styles.illustratedMessageContainer, className);\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 },\n Text: {\n className: styles.text,\n color: lightOrDarkColor,\n },\n Button: {\n color: lightOrDarkColor ?? \"accent\",\n },\n ActionGroup: {\n ignoreBreakpoint: true,\n className: styles.actionGroup,\n },\n };\n\n return (\n <div {...rest} className={rootClassName}>\n <div className={clsx(styles.illustratedMessage, styles[color])}>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </div>\n </div>\n );\n};\n\nexport default IllustratedMessage;\n"],"names":[],"mappings":";;;;;;;AAca,MAAA,kBAAA,GAAkD,CAAC,KAAU,KAAA;AACxE,EAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAU,QAAQ,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AAE5D,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,MAAO,CAAA,2BAAA,EAA6B,SAAS,CAAA;AAExE,EAAA,MAAM,gBACJ,GAAA,KAAA,KAAU,MAAU,IAAA,KAAA,KAAU,UAAU,KAAQ,GAAA,SAAA;AAElD,EAAA,MAAM,YAA6B,GAAA;AAAA,IACjC,IAAM,EAAA;AAAA,MACJ,WAAW,MAAO,CAAA,IAAA;AAAA,MAClB,IAAM,EAAA;AAAA,KACR;AAAA,IACA,OAAS,EAAA;AAAA,MACP,WAAW,MAAO,CAAA;AAAA,KACpB;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,WAAW,MAAO,CAAA,IAAA;AAAA,MAClB,KAAO,EAAA;AAAA,KACT;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAO,gBAAoB,IAAA;AAAA,KAC7B;AAAA,IACA,WAAa,EAAA;AAAA,MACX,gBAAkB,EAAA,IAAA;AAAA,MAClB,WAAW,MAAO,CAAA;AAAA;AACpB,GACF;AAEA,EACE,uBAAA,GAAA,CAAC,SAAK,GAAG,IAAA,EAAM,WAAW,aACxB,EAAA,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,IAAK,CAAA,MAAA,CAAO,oBAAoB,MAAO,CAAA,KAAK,CAAC,CAC3D,EAAA,QAAA,kBAAA,GAAA,CAAC,wBAAqB,KAAO,EAAA,YAAA,EAC1B,QACH,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"IllustratedMessage.mjs","sources":["../../../../src/components/IllustratedMessage/IllustratedMessage.tsx"],"sourcesContent":["import type { ComponentProps, FC, PropsWithChildren } from \"react\";\nimport React 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(styles.illustratedMessageContainer, className);\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 },\n Text: {\n className: styles.text,\n color: lightOrDarkColor,\n },\n Button: {\n color: lightOrDarkColor ?? \"accent\",\n },\n ActionGroup: {\n ignoreBreakpoint: true,\n className: styles.actionGroup,\n },\n };\n\n return (\n <div {...rest} className={rootClassName}>\n <div className={clsx(styles.illustratedMessage, styles[color])}>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </div>\n </div>\n );\n};\n\nexport default IllustratedMessage;\n"],"names":[],"mappings":";;;;;;;AAca,MAAA,kBAAA,GAAkD,CAAC,KAAU,KAAA;AACxE,EAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAU,QAAQ,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AAE5D,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,MAAO,CAAA,2BAAA,EAA6B,SAAS,CAAA;AAExE,EAAA,MAAM,gBACJ,GAAA,KAAA,KAAU,MAAU,IAAA,KAAA,KAAU,UAAU,KAAQ,GAAA,MAAA;AAElD,EAAA,MAAM,YAA6B,GAAA;AAAA,IACjC,IAAM,EAAA;AAAA,MACJ,WAAW,MAAO,CAAA,IAAA;AAAA,MAClB,IAAM,EAAA;AAAA,KACR;AAAA,IACA,OAAS,EAAA;AAAA,MACP,WAAW,MAAO,CAAA;AAAA,KACpB;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,WAAW,MAAO,CAAA,IAAA;AAAA,MAClB,KAAO,EAAA;AAAA,KACT;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAO,gBAAoB,IAAA;AAAA,KAC7B;AAAA,IACA,WAAa,EAAA;AAAA,MACX,gBAAkB,EAAA,IAAA;AAAA,MAClB,WAAW,MAAO,CAAA;AAAA;AACpB,GACF;AAEA,EACE,uBAAA,GAAA,CAAC,SAAK,GAAG,IAAA,EAAM,WAAW,aACxB,EAAA,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,IAAK,CAAA,MAAA,CAAO,oBAAoB,MAAO,CAAA,KAAK,CAAC,CAC3D,EAAA,QAAA,kBAAA,GAAA,CAAC,wBAAqB,KAAO,EAAA,YAAA,EAC1B,QACH,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  "use client"
2
2
  /* */
3
3
  const getInitialsFromString = (initials) => {
4
- return initials.replace(/[^\p{L}\s]/giu, "").split(" ").map((part) => part.trim()[0]).filter((p) => p !== undefined).map((char) => char.toUpperCase()).slice(0, 2);
4
+ return initials.replace(/[^\p{L}\s]/giu, "").split(" ").map((part) => part.trim()[0]).filter((p) => p !== void 0).map((char) => char.toUpperCase()).slice(0, 2);
5
5
  };
6
6
 
7
7
  export { getInitialsFromString };
@@ -1 +1 @@
1
- {"version":3,"file":"getInitialsFromString.mjs","sources":["../../../../../src/components/Initials/lib/getInitialsFromString.ts"],"sourcesContent":["export const getInitialsFromString = (initials: string): string[] => {\n return initials\n .replace(/[^\\p{L}\\s]/giu, \"\")\n .split(\" \")\n .map((part) => part.trim()[0])\n .filter((p) => p !== undefined)\n .map((char) => char.toUpperCase())\n .slice(0, 2);\n};\n"],"names":[],"mappings":"AAAa,MAAA,qBAAA,GAAwB,CAAC,QAA+B,KAAA;AACnE,EAAA,OAAO,QACJ,CAAA,OAAA,CAAQ,eAAiB,EAAA,EAAE,EAC3B,KAAM,CAAA,GAAG,CACT,CAAA,GAAA,CAAI,CAAC,IAAA,KAAS,IAAK,CAAA,IAAA,GAAO,CAAC,CAAC,CAC5B,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAM,KAAA,SAAS,EAC7B,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,WAAY,EAAC,CAChC,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACf;;;;"}
1
+ {"version":3,"file":"getInitialsFromString.mjs","sources":["../../../../../src/components/Initials/lib/getInitialsFromString.ts"],"sourcesContent":["export const getInitialsFromString = (initials: string): string[] => {\n return initials\n .replace(/[^\\p{L}\\s]/giu, \"\")\n .split(\" \")\n .map((part) => part.trim()[0])\n .filter((p) => p !== undefined)\n .map((char) => char.toUpperCase())\n .slice(0, 2);\n};\n"],"names":[],"mappings":"AAAa,MAAA,qBAAA,GAAwB,CAAC,QAA+B,KAAA;AACnE,EAAA,OAAO,QACJ,CAAA,OAAA,CAAQ,eAAiB,EAAA,EAAE,EAC3B,KAAM,CAAA,GAAG,CACT,CAAA,GAAA,CAAI,CAAC,IAAA,KAAS,IAAK,CAAA,IAAA,GAAO,CAAC,CAAC,CAC5B,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAM,KAAA,MAAS,EAC7B,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,WAAY,EAAC,CAChC,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACf;;;;"}
@@ -53,7 +53,7 @@ const List = flowComponent("List", (props) => {
53
53
  asyncResourceFactory: listLoaderAsyncResource.children
54
54
  } : listStaticData ? {
55
55
  staticData: listStaticData.data
56
- } : undefined
56
+ } : void 0
57
57
  };
58
58
  const searchProps = deepFindOfType(children, ListSearch)?.props;
59
59
  const itemViewProps = deepFindOfType(children, ListItem)?.props;
@@ -86,12 +86,12 @@ const List = flowComponent("List", (props) => {
86
86
  render: searchProps.children,
87
87
  textFieldProps: searchProps,
88
88
  defaultValue: searchProps.defaultValue
89
- } : undefined,
89
+ } : void 0,
90
90
  sorting: deepFilterByType(children, ListSorting).map((s) => s.props),
91
91
  itemView: itemViewProps ? {
92
92
  ...itemViewProps,
93
93
  renderFn: itemViewProps.children
94
- } : undefined,
94
+ } : void 0,
95
95
  table: tableColumnProps.length > 0 ? {
96
96
  header: {
97
97
  ...tableHeaderProps,
@@ -105,7 +105,7 @@ const List = flowComponent("List", (props) => {
105
105
  }
106
106
  },
107
107
  ...tableProps
108
- } : undefined,
108
+ } : void 0,
109
109
  batchesController: {
110
110
  batchSize
111
111
  },