@mittwald/flow-react-components 0.2.0-alpha.677 → 0.2.0-alpha.679
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.
- package/CHANGELOG.md +12 -0
- package/dist/assets/doc-properties.json +4390 -4138
- package/dist/js/components/src/components/Action/ActionBatch.mjs +12 -0
- package/dist/js/components/src/components/Action/ActionBatch.mjs.map +1 -0
- package/dist/js/components/src/components/Action/models/ActionModel.mjs +15 -3
- package/dist/js/components/src/components/Action/models/ActionModel.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/getExecutionFunction.mjs +16 -8
- package/dist/js/components/src/components/Action/models/getExecutionFunction.mjs.map +1 -1
- package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs +3 -0
- package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/dist/js/components/src/components/ComboBox/ComboBox.mjs +3 -0
- package/dist/js/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
- package/dist/js/components/src/components/ContextMenu/ContextMenu.mjs +4 -1
- package/dist/js/components/src/components/ContextMenu/ContextMenu.mjs.map +1 -1
- package/dist/js/components/src/components/ContextualHelp/ContextualHelp.mjs +3 -0
- package/dist/js/components/src/components/ContextualHelp/ContextualHelp.mjs.map +1 -1
- package/dist/js/components/src/components/DatePicker/DatePicker.mjs +3 -0
- package/dist/js/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
- package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs +3 -0
- package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
- package/dist/js/components/src/components/LightBox/LightBox.mjs +3 -0
- package/dist/js/components/src/components/LightBox/LightBox.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +3 -0
- package/dist/js/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
- package/dist/js/components/src/components/Modal/Modal.mjs +1 -9
- package/dist/js/components/src/components/Modal/Modal.mjs.map +1 -1
- package/dist/js/components/src/components/Overlay/Overlay.mjs +14 -2
- package/dist/js/components/src/components/Overlay/Overlay.mjs.map +1 -1
- package/dist/js/components/src/components/OverlayTrigger/OverlayTrigger.mjs +3 -0
- package/dist/js/components/src/components/OverlayTrigger/OverlayTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/Popover/Popover.mjs +4 -0
- package/dist/js/components/src/components/Popover/Popover.mjs.map +1 -1
- package/dist/js/components/src/components/Select/Select.mjs +3 -0
- package/dist/js/components/src/components/Select/Select.mjs.map +1 -1
- package/dist/js/components/src/lib/controller/overlay/OverlayController.mjs +57 -29
- package/dist/js/components/src/lib/controller/overlay/OverlayController.mjs.map +1 -1
- package/dist/js/components/src/lib/controller/overlay/useModalController.mjs +14 -0
- package/dist/js/components/src/lib/controller/overlay/useModalController.mjs.map +1 -0
- package/dist/js/components/src/lib/controller/overlay/useOverlayController.mjs +7 -15
- package/dist/js/components/src/lib/controller/overlay/useOverlayController.mjs.map +1 -1
- package/dist/js/default.mjs +2 -0
- package/dist/js/default.mjs.map +1 -1
- package/dist/js/flr-universal.mjs +2 -0
- package/dist/js/flr-universal.mjs.map +1 -1
- package/dist/types/components/Action/ActionBatch.d.ts +13 -0
- package/dist/types/components/Action/ActionBatch.d.ts.map +1 -0
- package/dist/types/components/Action/index.d.ts +1 -0
- package/dist/types/components/Action/index.d.ts.map +1 -1
- package/dist/types/components/Action/models/ActionModel.d.ts +1 -1
- package/dist/types/components/Action/models/ActionModel.d.ts.map +1 -1
- package/dist/types/components/Action/models/getExecutionFunction.d.ts.map +1 -1
- package/dist/types/components/Action/types.d.ts +3 -0
- package/dist/types/components/Action/types.d.ts.map +1 -1
- package/dist/types/components/Modal/Modal.browser.test.d.ts +2 -0
- package/dist/types/components/Modal/Modal.browser.test.d.ts.map +1 -0
- package/dist/types/components/Modal/Modal.d.ts +3 -1
- package/dist/types/components/Modal/Modal.d.ts.map +1 -1
- package/dist/types/components/Modal/stories/Default.stories.d.ts.map +1 -1
- package/dist/types/components/Modal/stories/EdgeCases.stories.d.ts.map +1 -1
- package/dist/types/components/Overlay/Overlay.d.ts +5 -0
- package/dist/types/components/Overlay/Overlay.d.ts.map +1 -1
- package/dist/types/index/flr-universal.d.ts +1 -1
- package/dist/types/index/flr-universal.d.ts.map +1 -1
- package/dist/types/lib/controller/overlay/OverlayController.d.ts +17 -5
- package/dist/types/lib/controller/overlay/OverlayController.d.ts.map +1 -1
- package/dist/types/lib/controller/overlay/index.d.ts +2 -1
- package/dist/types/lib/controller/overlay/index.d.ts.map +1 -1
- package/dist/types/lib/controller/overlay/useModalController.d.ts +5 -0
- package/dist/types/lib/controller/overlay/useModalController.d.ts.map +1 -0
- package/dist/types/lib/controller/overlay/useOverlayController.d.ts +2 -3
- package/dist/types/lib/controller/overlay/useOverlayController.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayTrigger.mjs","sources":["../../../../../../src/components/OverlayTrigger/OverlayTrigger.tsx"],"sourcesContent":["import type { ComponentType, FC, PropsWithChildren, ReactNode } from \"react\";\nimport { OverlayController } from \"@/lib/controller\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\nimport OverlayContextProvider from \"@/lib/controller/overlay/OverlayContextProvider\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\n\ntype AriaComponentType = ComponentType<{\n isOpen?: boolean;\n children: ReactNode;\n}>;\n\nexport interface OverlayTriggerProps\n extends FlowComponentProps, PropsWithChildren {\n /** Whether the overlay should be open initially. */\n isDefaultOpen?: boolean;\n /** A controller to control the state of the overlay. */\n controller?: OverlayController;\n}\n\ninterface Props extends OverlayTriggerProps {\n overlayType: FlowComponentName;\n component: AriaComponentType;\n}\n\nexport const OverlayTrigger: FC<Props> = (props) => {\n const {\n overlayType,\n isDefaultOpen = false,\n component: AriaOverlayTrigger,\n children,\n controller: controllerFromProps,\n } = props;\n\n const newOverlayController = OverlayController.useNew({ isDefaultOpen });\n const overlayController = controllerFromProps ?? newOverlayController;\n const isOpen = overlayController.useIsOpen();\n\n const propsContext: PropsContext = {\n Button: {\n onPress: overlayController.open,\n },\n };\n\n return (\n <OverlayContextProvider type={overlayType} controller={overlayController}>\n <PropsContextProvider props={propsContext}>\n <AriaOverlayTrigger isOpen={isOpen}>{children}</AriaOverlayTrigger>\n </PropsContextProvider>\n </OverlayContextProvider>\n );\n};\n\nexport default OverlayTrigger;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OverlayTrigger.mjs","sources":["../../../../../../src/components/OverlayTrigger/OverlayTrigger.tsx"],"sourcesContent":["import type { ComponentType, FC, PropsWithChildren, ReactNode } from \"react\";\nimport { OverlayController } from \"@/lib/controller\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\nimport OverlayContextProvider from \"@/lib/controller/overlay/OverlayContextProvider\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\n\ntype AriaComponentType = ComponentType<{\n isOpen?: boolean;\n children: ReactNode;\n}>;\n\nexport interface OverlayTriggerProps\n extends FlowComponentProps, PropsWithChildren {\n /** Whether the overlay should be open initially. */\n isDefaultOpen?: boolean;\n /** A controller to control the state of the overlay. */\n controller?: OverlayController;\n}\n\ninterface Props extends OverlayTriggerProps {\n overlayType: FlowComponentName;\n component: AriaComponentType;\n}\n\nexport const OverlayTrigger: FC<Props> = (props) => {\n const {\n overlayType,\n isDefaultOpen = false,\n component: AriaOverlayTrigger,\n children,\n controller: controllerFromProps,\n } = props;\n\n const newOverlayController = OverlayController.useNew({ isDefaultOpen });\n const overlayController = controllerFromProps ?? newOverlayController;\n const isOpen = overlayController.useIsOpen();\n\n const propsContext: PropsContext = {\n Button: {\n onPress: overlayController.open,\n },\n };\n\n return (\n <OverlayContextProvider type={overlayType} controller={overlayController}>\n <PropsContextProvider props={propsContext}>\n <AriaOverlayTrigger isOpen={isOpen}>{children}</AriaOverlayTrigger>\n </PropsContextProvider>\n </OverlayContextProvider>\n );\n};\n\nexport default OverlayTrigger;\n"],"names":[],"mappings":";;;;;;;;;;;AA0BO,MAAM,cAAA,GAA4B,CAAC,KAAA,KAAU;AAClD,EAAA,MAAM;AAAA,IACJ,WAAA;AAAA,IACA,aAAA,GAAgB,KAAA;AAAA,IAChB,SAAA,EAAW,kBAAA;AAAA,IACX,QAAA;AAAA,IACA,UAAA,EAAY;AAAA,GACd,GAAI,KAAA;AAEJ,EAAA,MAAM,oBAAA,GAAuB,iBAAA,CAAkB,MAAA,CAAO,EAAE,eAAe,CAAA;AACvE,EAAA,MAAM,oBAAoB,mBAAA,IAAuB,oBAAA;AACjD,EAAA,MAAM,MAAA,GAAS,kBAAkB,SAAA,EAAU;AAE3C,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,MAAA,EAAQ;AAAA,MACN,SAAS,iBAAA,CAAkB;AAAA;AAC7B,GACF;AAEA,EAAA,uBACE,GAAA,CAAC,sBAAA,EAAA,EAAuB,IAAA,EAAM,WAAA,EAAa,YAAY,iBAAA,EACrD,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,cAC3B,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,MAAA,EAAiB,QAAA,EAAS,GAChD,CAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -5,6 +5,10 @@ import 'react';
|
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import 'mobx';
|
|
7
7
|
import { useOverlayController } from '../../lib/controller/overlay/useOverlayController.mjs';
|
|
8
|
+
import '../../lib/propsContext/propsContext.mjs';
|
|
9
|
+
import 'remeda';
|
|
10
|
+
import '@react-aria/utils';
|
|
11
|
+
import 'dot-prop';
|
|
8
12
|
import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
|
|
9
13
|
import { OverlayContextProvider } from '../../lib/controller/overlay/OverlayContextProvider.mjs';
|
|
10
14
|
import styles from './Popover.module.scss.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.mjs","sources":["../../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport type * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport { type OverlayController, useOverlayController } from \"@/lib/controller\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport OverlayContextProvider from \"@/lib/controller/overlay/OverlayContextProvider\";\nimport styles from \"./Popover.module.scss\";\nimport PopoverContentView from \"@/views/PopoverContentView\";\n\nexport interface PopoverProps\n extends\n PropsWithChildren<Omit<Aria.PopoverProps, \"children\" | \"ref\">>,\n FlowComponentProps<HTMLDivElement> {\n /**\n * Whether the popover should display a tip, pointing towards the trigger\n * element.\n */\n withTip?: boolean;\n /** Whether the popover contains a dialog. */\n isDialogContent?: boolean;\n /** An overlay controller to control the popover state. */\n controller?: OverlayController;\n /** A fixed width for the popover. */\n width?: string | number;\n}\n\nexport const Popover = flowComponent(\"Popover\", (props) => {\n const {\n children,\n className,\n controller: controllerFromProps,\n onOpenChange: onOpenChangeFromProps,\n defaultOpen = false,\n ...contentProps\n } = props;\n\n const controllerFromContext = useOverlayController(\"Popover\", {\n reuseControllerFromContext: true,\n isDefaultOpen: defaultOpen,\n });\n\n const controller = controllerFromProps ?? controllerFromContext;\n const isOpen = controller.useIsOpen();\n\n const rootClassName = clsx(styles.popover, className);\n\n return (\n <PopoverContentView\n {...contentProps}\n className={rootClassName}\n isOpen={isOpen}\n onOpenChange={(isOpen) => {\n if (!onOpenChangeFromProps) {\n controller.setOpen(isOpen);\n } else {\n onOpenChangeFromProps(isOpen);\n }\n }}\n >\n <OverlayContextProvider type=\"Popover\" controller={controller}>\n {children}\n </OverlayContextProvider>\n </PopoverContentView>\n );\n});\n\nexport default Popover;\n"],"names":["isOpen"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Popover.mjs","sources":["../../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport type * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport { type OverlayController, useOverlayController } from \"@/lib/controller\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport OverlayContextProvider from \"@/lib/controller/overlay/OverlayContextProvider\";\nimport styles from \"./Popover.module.scss\";\nimport PopoverContentView from \"@/views/PopoverContentView\";\n\nexport interface PopoverProps\n extends\n PropsWithChildren<Omit<Aria.PopoverProps, \"children\" | \"ref\">>,\n FlowComponentProps<HTMLDivElement> {\n /**\n * Whether the popover should display a tip, pointing towards the trigger\n * element.\n */\n withTip?: boolean;\n /** Whether the popover contains a dialog. */\n isDialogContent?: boolean;\n /** An overlay controller to control the popover state. */\n controller?: OverlayController;\n /** A fixed width for the popover. */\n width?: string | number;\n}\n\nexport const Popover = flowComponent(\"Popover\", (props) => {\n const {\n children,\n className,\n controller: controllerFromProps,\n onOpenChange: onOpenChangeFromProps,\n defaultOpen = false,\n ...contentProps\n } = props;\n\n const controllerFromContext = useOverlayController(\"Popover\", {\n reuseControllerFromContext: true,\n isDefaultOpen: defaultOpen,\n });\n\n const controller = controllerFromProps ?? controllerFromContext;\n const isOpen = controller.useIsOpen();\n\n const rootClassName = clsx(styles.popover, className);\n\n return (\n <PopoverContentView\n {...contentProps}\n className={rootClassName}\n isOpen={isOpen}\n onOpenChange={(isOpen) => {\n if (!onOpenChangeFromProps) {\n controller.setOpen(isOpen);\n } else {\n onOpenChangeFromProps(isOpen);\n }\n }}\n >\n <OverlayContextProvider type=\"Popover\" controller={controller}>\n {children}\n </OverlayContextProvider>\n </PopoverContentView>\n );\n});\n\nexport default Popover;\n"],"names":["isOpen"],"mappings":";;;;;;;;;;;;;;AA6BO,MAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,CAAC,KAAA,KAAU;AACzD,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA,EAAY,mBAAA;AAAA,IACZ,YAAA,EAAc,qBAAA;AAAA,IACd,WAAA,GAAc,KAAA;AAAA,IACd,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,qBAAA,GAAwB,qBAAqB,SAAA,EAAW;AAAA,IAC5D,0BAAA,EAA4B,IAAA;AAAA,IAC5B,aAAA,EAAe;AAAA,GAChB,CAAA;AAED,EAAA,MAAM,aAAa,mBAAA,IAAuB,qBAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,WAAW,SAAA,EAAU;AAEpC,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,MAAA,CAAO,OAAA,EAAS,SAAS,CAAA;AAEpD,EAAA,uBACE,GAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACE,GAAG,YAAA;AAAA,MACJ,SAAA,EAAW,aAAA;AAAA,MACX,MAAA;AAAA,MACA,YAAA,EAAc,CAACA,OAAAA,KAAW;AACxB,QAAA,IAAI,CAAC,qBAAA,EAAuB;AAC1B,UAAA,UAAA,CAAW,QAAQA,OAAM,CAAA;AAAA,QAC3B,CAAA,MAAO;AACL,UAAA,qBAAA,CAAsBA,OAAM,CAAA;AAAA,QAC9B;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,sBAAA,EAAA,EAAuB,IAAA,EAAK,SAAA,EAAU,YACpC,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}
|
|
@@ -17,6 +17,9 @@ import { Options } from '../Options/Options.mjs';
|
|
|
17
17
|
import { TunnelProvider, TunnelExit } from '@mittwald/react-tunnel';
|
|
18
18
|
import 'mobx';
|
|
19
19
|
import { useOverlayController } from '../../lib/controller/overlay/useOverlayController.mjs';
|
|
20
|
+
import 'remeda';
|
|
21
|
+
import '@react-aria/utils';
|
|
22
|
+
import 'dot-prop';
|
|
20
23
|
import { useFieldComponent } from '../../lib/hooks/useFieldComponent.mjs';
|
|
21
24
|
|
|
22
25
|
const Select = flowComponent("Select", (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.mjs","sources":["../../../../../../src/components/Select/Select.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport * as Aria from \"react-aria-components\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport formFieldStyles from \"@/components/FormField/FormField.module.scss\";\nimport styles from \"./Select.module.scss\";\nimport clsx from \"clsx\";\nimport { IconChevronDown } from \"@/components/Icon/components/icons\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { Options } from \"@/components/Options\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface SelectProps\n extends\n PropsWithChildren<Omit<Aria.SelectProps, \"children\" | \"className\" | \"ref\">>,\n FlowComponentProps<HTMLButtonElement>,\n PropsWithClassName {\n /** Handler that is called when the selected value changes. */\n onChange?: (value: Key | null) => void;\n /** Whether the component is read only. */\n isReadOnly?: boolean;\n}\n\n/** @flr-generate all */\nexport const Select = flowComponent(\"Select\", (props) => {\n const {\n children,\n className,\n onChange,\n onSelectionChange,\n isReadOnly,\n ref,\n ...rest\n } = props;\n\n const {\n FieldErrorView,\n fieldPropsContext,\n fieldProps,\n FieldErrorCaptureContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(\n styles.select,\n formFieldStyles.formField,\n className,\n );\n\n const propsContext: PropsContext = {\n Option: {\n tunnelId: \"options\",\n },\n ...fieldPropsContext,\n };\n\n const controller = useOverlayController(\"Select\", {\n reuseControllerFromContext: false,\n });\n const isOpen = controller.useIsOpen();\n\n return (\n <Aria.Select\n {...rest}\n {...fieldProps}\n className={clsx(rootClassName, fieldProps.className)}\n onChange={(value) => {\n if (!isReadOnly) {\n onChange?.(value);\n onSelectionChange?.(value);\n }\n }}\n onOpenChange={(isOpen) => !isReadOnly && controller.setOpen(isOpen)}\n isOpen={isOpen}\n data-readonly={isReadOnly}\n >\n <TunnelProvider>\n <FieldErrorCaptureContext>\n <PropsContextProvider props={propsContext}>\n <Aria.Button\n data-readonly={isReadOnly}\n className={styles.toggle}\n ref={ref}\n >\n <Aria.SelectValue />\n <IconChevronDown />\n </Aria.Button>\n {children}\n <Options controller={controller}>\n <TunnelExit id=\"options\" />\n </Options>\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </TunnelProvider>\n </Aria.Select>\n );\n});\n\nexport default Select;\n"],"names":["isOpen"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Select.mjs","sources":["../../../../../../src/components/Select/Select.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport * as Aria from \"react-aria-components\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport formFieldStyles from \"@/components/FormField/FormField.module.scss\";\nimport styles from \"./Select.module.scss\";\nimport clsx from \"clsx\";\nimport { IconChevronDown } from \"@/components/Icon/components/icons\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { Options } from \"@/components/Options\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface SelectProps\n extends\n PropsWithChildren<Omit<Aria.SelectProps, \"children\" | \"className\" | \"ref\">>,\n FlowComponentProps<HTMLButtonElement>,\n PropsWithClassName {\n /** Handler that is called when the selected value changes. */\n onChange?: (value: Key | null) => void;\n /** Whether the component is read only. */\n isReadOnly?: boolean;\n}\n\n/** @flr-generate all */\nexport const Select = flowComponent(\"Select\", (props) => {\n const {\n children,\n className,\n onChange,\n onSelectionChange,\n isReadOnly,\n ref,\n ...rest\n } = props;\n\n const {\n FieldErrorView,\n fieldPropsContext,\n fieldProps,\n FieldErrorCaptureContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(\n styles.select,\n formFieldStyles.formField,\n className,\n );\n\n const propsContext: PropsContext = {\n Option: {\n tunnelId: \"options\",\n },\n ...fieldPropsContext,\n };\n\n const controller = useOverlayController(\"Select\", {\n reuseControllerFromContext: false,\n });\n const isOpen = controller.useIsOpen();\n\n return (\n <Aria.Select\n {...rest}\n {...fieldProps}\n className={clsx(rootClassName, fieldProps.className)}\n onChange={(value) => {\n if (!isReadOnly) {\n onChange?.(value);\n onSelectionChange?.(value);\n }\n }}\n onOpenChange={(isOpen) => !isReadOnly && controller.setOpen(isOpen)}\n isOpen={isOpen}\n data-readonly={isReadOnly}\n >\n <TunnelProvider>\n <FieldErrorCaptureContext>\n <PropsContextProvider props={propsContext}>\n <Aria.Button\n data-readonly={isReadOnly}\n className={styles.toggle}\n ref={ref}\n >\n <Aria.SelectValue />\n <IconChevronDown />\n </Aria.Button>\n {children}\n <Options controller={controller}>\n <TunnelExit id=\"options\" />\n </Options>\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </TunnelProvider>\n </Aria.Select>\n );\n});\n\nexport default Select;\n"],"names":["isOpen"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BO,MAAM,MAAA,GAAS,aAAA,CAAc,QAAA,EAAU,CAAC,KAAA,KAAU;AACvD,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,iBAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,MAAA;AAAA,IACP,eAAA,CAAgB,SAAA;AAAA,IAChB;AAAA,GACF;AAEA,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,UAAA,GAAa,qBAAqB,QAAA,EAAU;AAAA,IAChD,0BAAA,EAA4B;AAAA,GAC7B,CAAA;AACD,EAAA,MAAM,MAAA,GAAS,WAAW,SAAA,EAAU;AAEpC,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA,CAAK,MAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,SAAA,EAAW,IAAA,CAAK,aAAA,EAAe,UAAA,CAAW,SAAS,CAAA;AAAA,MACnD,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,QAAA,IAAI,CAAC,UAAA,EAAY;AACf,UAAA,QAAA,GAAW,KAAK,CAAA;AAChB,UAAA,iBAAA,GAAoB,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF,CAAA;AAAA,MACA,cAAc,CAACA,OAAAA,KAAW,CAAC,UAAA,IAAc,UAAA,CAAW,QAAQA,OAAM,CAAA;AAAA,MAClE,MAAA;AAAA,MACA,eAAA,EAAe,UAAA;AAAA,MAEf,+BAAC,cAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,wBAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,QAAA,EAAA;AAAA,0BAAA,IAAA;AAAA,YAAC,IAAA,CAAK,MAAA;AAAA,YAAL;AAAA,cACC,eAAA,EAAe,UAAA;AAAA,cACf,WAAW,MAAA,CAAO,MAAA;AAAA,cAClB,GAAA;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,IAAA,CAAK,aAAL,EAAiB,CAAA;AAAA,oCACjB,eAAA,EAAA,EAAgB;AAAA;AAAA;AAAA,WACnB;AAAA,UACC,QAAA;AAAA,8BACA,OAAA,EAAA,EAAQ,UAAA,EACP,8BAAC,UAAA,EAAA,EAAW,EAAA,EAAG,WAAU,CAAA,EAC3B;AAAA,SAAA,EACF,CAAA,EACF,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA,OAAA,EAClB;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
import { makeObservable, action, observable } from 'mobx';
|
|
4
4
|
import useSelector from '../../mobx/useSelector.mjs';
|
|
5
5
|
import { useStatic } from '../../hooks/useStatic.mjs';
|
|
6
|
+
import { useEffect } from 'react';
|
|
6
7
|
|
|
7
8
|
class OverlayController {
|
|
8
9
|
isOpen = false;
|
|
9
10
|
onOpenHandlers = /* @__PURE__ */ new Set();
|
|
10
11
|
onCloseHandlers = /* @__PURE__ */ new Set();
|
|
12
|
+
onOpenChangeHandlers = /* @__PURE__ */ new Set();
|
|
11
13
|
constructor(options) {
|
|
12
14
|
makeObservable(this, {
|
|
13
15
|
isOpen: observable,
|
|
@@ -23,56 +25,82 @@ class OverlayController {
|
|
|
23
25
|
if (options?.onClose) {
|
|
24
26
|
this.onCloseHandlers.add(options.onClose);
|
|
25
27
|
}
|
|
28
|
+
if (options?.onOpenChange) {
|
|
29
|
+
this.onOpenChangeHandlers.add(options.onOpenChange);
|
|
30
|
+
}
|
|
26
31
|
}
|
|
27
|
-
static useNew(options) {
|
|
32
|
+
static useNew(options = {}) {
|
|
28
33
|
return useStatic(() => new OverlayController(options));
|
|
29
34
|
}
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
addOpenStateHandler(handler, handlersSet) {
|
|
36
|
+
handlersSet.add(handler);
|
|
32
37
|
return () => {
|
|
33
|
-
|
|
38
|
+
handlersSet.delete(handler);
|
|
34
39
|
};
|
|
35
40
|
}
|
|
41
|
+
addOnOpen(handler) {
|
|
42
|
+
return this.addOpenStateHandler(handler, this.onOpenHandlers);
|
|
43
|
+
}
|
|
36
44
|
addOnClose(handler) {
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
return this.addOpenStateHandler(handler, this.onCloseHandlers);
|
|
46
|
+
}
|
|
47
|
+
addOnOpenChange(handler) {
|
|
48
|
+
return this.addOpenStateHandler(handler, this.onOpenChangeHandlers);
|
|
49
|
+
}
|
|
50
|
+
useOnHandler(handler, addHandlerFn) {
|
|
51
|
+
useEffect(
|
|
52
|
+
() => handler ? addHandlerFn(handler) : void 0,
|
|
53
|
+
[handler, this]
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
useOnOpen(handler) {
|
|
57
|
+
this.useOnHandler(handler, (h) => this.addOnOpen(h));
|
|
58
|
+
}
|
|
59
|
+
useOnClose(handler) {
|
|
60
|
+
this.useOnHandler(handler, (h) => this.addOnClose(h));
|
|
61
|
+
}
|
|
62
|
+
useOnOpenChange(handler) {
|
|
63
|
+
this.useOnHandler(handler, (h) => this.addOnOpenChange(h));
|
|
64
|
+
}
|
|
65
|
+
executeHandlers(isOpen, handlers) {
|
|
66
|
+
const handlerResult = Array.from(handlers).map(
|
|
67
|
+
(handler) => handler(isOpen)
|
|
68
|
+
);
|
|
69
|
+
return handlerResult.some((result) => result === false);
|
|
41
70
|
}
|
|
42
71
|
executeOnClose() {
|
|
43
|
-
this.
|
|
72
|
+
return this.executeHandlers(false, this.onCloseHandlers);
|
|
44
73
|
}
|
|
45
74
|
executeOnOpen() {
|
|
46
|
-
this.
|
|
75
|
+
return this.executeHandlers(true, this.onOpenHandlers);
|
|
76
|
+
}
|
|
77
|
+
executeOnOpenChange(isOpen) {
|
|
78
|
+
return this.executeHandlers(isOpen, this.onOpenChangeHandlers);
|
|
47
79
|
}
|
|
48
80
|
open() {
|
|
49
|
-
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.isOpen = true;
|
|
53
|
-
this.executeOnOpen();
|
|
81
|
+
this.setOpen(true);
|
|
54
82
|
}
|
|
55
83
|
close() {
|
|
56
|
-
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
this.isOpen = false;
|
|
60
|
-
this.executeOnClose();
|
|
84
|
+
this.setOpen(false);
|
|
61
85
|
}
|
|
62
86
|
toggle() {
|
|
63
|
-
this.
|
|
64
|
-
if (this.isOpen) {
|
|
65
|
-
this.executeOnOpen();
|
|
66
|
-
} else {
|
|
67
|
-
this.executeOnClose();
|
|
68
|
-
}
|
|
87
|
+
this.setOpen(!this.isOpen);
|
|
69
88
|
}
|
|
70
89
|
setOpen(to) {
|
|
71
|
-
this.isOpen
|
|
90
|
+
if (this.isOpen === to) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
let aborted = false;
|
|
72
94
|
if (to) {
|
|
73
|
-
this.executeOnOpen();
|
|
95
|
+
aborted = this.executeOnOpen();
|
|
74
96
|
} else {
|
|
75
|
-
this.executeOnClose();
|
|
97
|
+
aborted = this.executeOnClose();
|
|
98
|
+
}
|
|
99
|
+
if (!aborted) {
|
|
100
|
+
aborted = this.executeOnOpenChange(to);
|
|
101
|
+
}
|
|
102
|
+
if (!aborted) {
|
|
103
|
+
this.isOpen = to;
|
|
76
104
|
}
|
|
77
105
|
}
|
|
78
106
|
useIsOpen() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayController.mjs","sources":["../../../../../../../src/lib/controller/overlay/OverlayController.ts"],"sourcesContent":["import { action, makeObservable, observable } from \"mobx\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\n\
|
|
1
|
+
{"version":3,"file":"OverlayController.mjs","sources":["../../../../../../../src/lib/controller/overlay/OverlayController.ts"],"sourcesContent":["import { action, makeObservable, observable } from \"mobx\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\nimport { useEffect } from \"react\";\n\nexport type OverlayOpenHandler = () => unknown;\nexport type OverlayCloseHandler = () => unknown;\nexport type OverlayOpenStateHandler = (isOpen: boolean) => unknown;\ntype AnyOverlayOpenStateHandler =\n | OverlayOpenHandler\n | OverlayCloseHandler\n | OverlayOpenStateHandler;\n\ntype DisposerFn = () => void;\n\nexport interface OverlayControllerOptions {\n isDefaultOpen?: boolean;\n onOpen?: OverlayOpenHandler;\n onClose?: OverlayCloseHandler;\n onOpenChange?: OverlayOpenStateHandler;\n}\n\nexport class OverlayController {\n public isOpen = false;\n private onOpenHandlers = new Set<OverlayOpenHandler>();\n private onCloseHandlers = new Set<OverlayCloseHandler>();\n private onOpenChangeHandlers = new Set<OverlayOpenStateHandler>();\n\n public constructor(options?: OverlayControllerOptions) {\n makeObservable(this, {\n isOpen: observable,\n open: action.bound,\n close: action.bound,\n toggle: action.bound,\n setOpen: action.bound,\n });\n this.isOpen = options?.isDefaultOpen ?? false;\n\n if (options?.onOpen) {\n this.onOpenHandlers.add(options.onOpen);\n }\n if (options?.onClose) {\n this.onCloseHandlers.add(options.onClose);\n }\n if (options?.onOpenChange) {\n this.onOpenChangeHandlers.add(options.onOpenChange);\n }\n }\n\n public static useNew(\n options: OverlayControllerOptions = {},\n ): OverlayController {\n return useStatic(() => new OverlayController(options));\n }\n\n private addOpenStateHandler<T extends AnyOverlayOpenStateHandler>(\n handler: T,\n handlersSet: Set<T>,\n ): DisposerFn {\n handlersSet.add(handler);\n return () => {\n handlersSet.delete(handler);\n };\n }\n\n public addOnOpen(handler: OverlayOpenHandler): DisposerFn {\n return this.addOpenStateHandler(handler, this.onOpenHandlers);\n }\n\n public addOnClose(handler: OverlayCloseHandler): DisposerFn {\n return this.addOpenStateHandler(handler, this.onCloseHandlers);\n }\n\n public addOnOpenChange(handler: OverlayOpenStateHandler): DisposerFn {\n return this.addOpenStateHandler(handler, this.onOpenChangeHandlers);\n }\n\n private useOnHandler<T extends AnyOverlayOpenStateHandler>(\n handler: T | undefined,\n addHandlerFn: (handler: T) => DisposerFn,\n ) {\n useEffect(\n () => (handler ? addHandlerFn(handler) : undefined),\n [handler, this],\n );\n }\n\n public useOnOpen(handler?: OverlayOpenHandler): void {\n this.useOnHandler(handler, (h) => this.addOnOpen(h));\n }\n\n public useOnClose(handler?: OverlayCloseHandler): void {\n this.useOnHandler(handler, (h) => this.addOnClose(h));\n }\n\n public useOnOpenChange(handler?: OverlayOpenStateHandler): void {\n this.useOnHandler(handler, (h) => this.addOnOpenChange(h));\n }\n\n private executeHandlers(\n isOpen: boolean,\n handlers: Set<\n OverlayOpenHandler | OverlayCloseHandler | OverlayOpenStateHandler\n >,\n ): boolean {\n const handlerResult = Array.from(handlers).map((handler) =>\n handler(isOpen),\n );\n return handlerResult.some((result) => result === false);\n }\n\n private executeOnClose(): boolean {\n return this.executeHandlers(false, this.onCloseHandlers);\n }\n\n private executeOnOpen(): boolean {\n return this.executeHandlers(true, this.onOpenHandlers);\n }\n\n private executeOnOpenChange(isOpen: boolean): boolean {\n return this.executeHandlers(isOpen, this.onOpenChangeHandlers);\n }\n\n public open(): void {\n this.setOpen(true);\n }\n\n public close(): void {\n this.setOpen(false);\n }\n\n public toggle(): void {\n this.setOpen(!this.isOpen);\n }\n\n public setOpen(to: boolean): void {\n if (this.isOpen === to) {\n return;\n }\n\n let aborted = false;\n if (to) {\n aborted = this.executeOnOpen();\n } else {\n aborted = this.executeOnClose();\n }\n if (!aborted) {\n aborted = this.executeOnOpenChange(to);\n }\n\n if (!aborted) {\n this.isOpen = to;\n }\n }\n\n public useIsOpen() {\n return useSelector(() => this.isOpen);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import 'mobx';
|
|
4
|
+
import 'react';
|
|
5
|
+
import { useOverlayController } from './useOverlayController.mjs';
|
|
6
|
+
import '../../propsContext/propsContext.mjs';
|
|
7
|
+
import 'remeda';
|
|
8
|
+
import '@react-aria/utils';
|
|
9
|
+
import 'dot-prop';
|
|
10
|
+
|
|
11
|
+
const useModalController = (options) => useOverlayController("Modal", options);
|
|
12
|
+
|
|
13
|
+
export { useModalController };
|
|
14
|
+
//# sourceMappingURL=useModalController.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModalController.mjs","sources":["../../../../../../../src/lib/controller/overlay/useModalController.ts"],"sourcesContent":["import { useOverlayController } from \"@/lib/hooks\";\n\ntype UseModalControllerArgs = Parameters<typeof useOverlayController>;\n\nexport const useModalController = (options?: UseModalControllerArgs[1]) =>\n useOverlayController(\"Modal\", options);\n"],"names":[],"mappings":";;;;;;;;AAIO,MAAM,kBAAA,GAAqB,CAAC,OAAA,KACjC,oBAAA,CAAqB,SAAS,OAAO;;;;"}
|
|
@@ -2,34 +2,26 @@
|
|
|
2
2
|
/* */
|
|
3
3
|
import { useOverlayContext } from './context.mjs';
|
|
4
4
|
import { OverlayController } from './OverlayController.mjs';
|
|
5
|
-
import { useEffect } from 'react';
|
|
6
5
|
|
|
7
6
|
const useOverlayController = (overlayType, opts = {}) => {
|
|
8
7
|
const {
|
|
9
8
|
reuseControllerFromContext = true,
|
|
10
9
|
isDefaultOpen,
|
|
11
10
|
onOpen,
|
|
12
|
-
onClose
|
|
11
|
+
onClose,
|
|
12
|
+
onOpenChange
|
|
13
13
|
} = opts;
|
|
14
14
|
const newController = OverlayController.useNew({
|
|
15
15
|
isDefaultOpen,
|
|
16
16
|
onOpen,
|
|
17
|
-
onClose
|
|
17
|
+
onClose,
|
|
18
|
+
onOpenChange
|
|
18
19
|
});
|
|
19
20
|
const controllerFromContext = useOverlayContext()[overlayType];
|
|
20
21
|
const controller = reuseControllerFromContext && controllerFromContext ? controllerFromContext : newController;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
disposers.push(controller.addOnOpen(onOpen));
|
|
25
|
-
}
|
|
26
|
-
if (onClose) {
|
|
27
|
-
disposers.push(controller.addOnClose(onClose));
|
|
28
|
-
}
|
|
29
|
-
return () => {
|
|
30
|
-
disposers.forEach((dispose) => dispose());
|
|
31
|
-
};
|
|
32
|
-
}, [onOpen, onClose]);
|
|
22
|
+
controller.useOnOpen(onOpen);
|
|
23
|
+
controller.useOnClose(onClose);
|
|
24
|
+
controller.useOnOpenChange(onOpenChange);
|
|
33
25
|
return controller;
|
|
34
26
|
};
|
|
35
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverlayController.mjs","sources":["../../../../../../../src/lib/controller/overlay/useOverlayController.ts"],"sourcesContent":["import { useOverlayContext } from \"@/lib/controller/overlay/context\";\nimport type { OverlayControllerOptions } from \"@/lib/controller/overlay/OverlayController\";\nimport { OverlayController } from \"@/lib/controller/overlay/OverlayController\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\
|
|
1
|
+
{"version":3,"file":"useOverlayController.mjs","sources":["../../../../../../../src/lib/controller/overlay/useOverlayController.ts"],"sourcesContent":["import { useOverlayContext } from \"@/lib/controller/overlay/context\";\nimport type { OverlayControllerOptions } from \"@/lib/controller/overlay/OverlayController\";\nimport { OverlayController } from \"@/lib/controller/overlay/OverlayController\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\n\nexport interface UseOverlayControllerOptions extends OverlayControllerOptions {\n reuseControllerFromContext?: boolean;\n}\n\nexport const useOverlayController = (\n overlayType: FlowComponentName,\n opts: UseOverlayControllerOptions = {},\n): OverlayController => {\n const {\n reuseControllerFromContext = true,\n isDefaultOpen,\n onOpen,\n onClose,\n onOpenChange,\n } = opts;\n\n const newController = OverlayController.useNew({\n isDefaultOpen,\n onOpen,\n onClose,\n onOpenChange,\n });\n const controllerFromContext = useOverlayContext()[overlayType];\n\n const controller =\n reuseControllerFromContext && controllerFromContext\n ? controllerFromContext\n : newController;\n\n controller.useOnOpen(onOpen);\n controller.useOnClose(onClose);\n controller.useOnOpenChange(onOpenChange);\n\n return controller;\n};\n"],"names":[],"mappings":";;;AASO,MAAM,oBAAA,GAAuB,CAClC,WAAA,EACA,IAAA,GAAoC,EAAC,KACf;AACtB,EAAA,MAAM;AAAA,IACJ,0BAAA,GAA6B,IAAA;AAAA,IAC7B,aAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,MAAM,aAAA,GAAgB,kBAAkB,MAAA,CAAO;AAAA,IAC7C,aAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,MAAM,qBAAA,GAAwB,iBAAA,EAAkB,CAAE,WAAW,CAAA;AAE7D,EAAA,MAAM,UAAA,GACJ,0BAAA,IAA8B,qBAAA,GAC1B,qBAAA,GACA,aAAA;AAEN,EAAA,UAAA,CAAW,UAAU,MAAM,CAAA;AAC3B,EAAA,UAAA,CAAW,WAAW,OAAO,CAAA;AAC7B,EAAA,UAAA,CAAW,gBAAgB,YAAY,CAAA;AAEvC,EAAA,OAAO,UAAA;AACT;;;;"}
|
package/dist/js/default.mjs
CHANGED
|
@@ -4,6 +4,7 @@ export { AccentBox } from './components/src/components/AccentBox/AccentBox.mjs';
|
|
|
4
4
|
export { Accordion } from './components/src/components/Accordion/Accordion.mjs';
|
|
5
5
|
export { Action } from './components/src/components/Action/Action.mjs';
|
|
6
6
|
export { MutedActionError } from './components/src/components/Action/MutedActionError.mjs';
|
|
7
|
+
export { ActionBatch } from './components/src/components/Action/ActionBatch.mjs';
|
|
7
8
|
export { useAriaAnnounceSuspense } from './components/src/components/Action/lib/ariaLive.mjs';
|
|
8
9
|
export { ActionGroup } from './components/src/components/ActionGroup/ActionGroup.mjs';
|
|
9
10
|
export { Activity } from './components/src/components/Activity/Activity.mjs';
|
|
@@ -280,6 +281,7 @@ export { Wrap } from './components/src/components/Wrap/Wrap.mjs';
|
|
|
280
281
|
export { Render } from './components/src/lib/react/components/Render/Render.mjs';
|
|
281
282
|
export { OverlayController } from './components/src/lib/controller/overlay/OverlayController.mjs';
|
|
282
283
|
export { useOverlayController } from './components/src/lib/controller/overlay/useOverlayController.mjs';
|
|
284
|
+
export { useModalController } from './components/src/lib/controller/overlay/useModalController.mjs';
|
|
283
285
|
export { useOnChange } from './components/src/lib/hooks/useOnChange.mjs';
|
|
284
286
|
export { useIsMounted } from './components/src/lib/hooks/useIsMounted.mjs';
|
|
285
287
|
export { useProps } from './components/src/lib/hooks/useProps.mjs';
|
package/dist/js/default.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -131,6 +131,7 @@ import './components/src/components/Button/Button.mjs';
|
|
|
131
131
|
import '@mittwald/react-tunnel';
|
|
132
132
|
import './components/src/components/Activity/Activity.mjs';
|
|
133
133
|
export { Action } from './components/src/components/Action/Action.mjs';
|
|
134
|
+
export { ActionBatch } from './components/src/components/Action/ActionBatch.mjs';
|
|
134
135
|
import 'react-aria';
|
|
135
136
|
import '@react-aria/live-announcer';
|
|
136
137
|
import './components/src/components/ActionGroup/ActionGroup.mjs';
|
|
@@ -211,6 +212,7 @@ import './components/src/components/NumberField/NumberField.mjs';
|
|
|
211
212
|
import './components/src/components/Option/Option.mjs';
|
|
212
213
|
export { OverlayController } from './components/src/lib/controller/overlay/OverlayController.mjs';
|
|
213
214
|
export { useOverlayController } from './components/src/lib/controller/overlay/useOverlayController.mjs';
|
|
215
|
+
export { useModalController } from './components/src/lib/controller/overlay/useModalController.mjs';
|
|
214
216
|
import './components/src/lib/controller/overlay/context.mjs';
|
|
215
217
|
import './components/src/views/OverlayContentView.mjs';
|
|
216
218
|
import './components/src/components/OverlayTrigger/components/MenuTrigger/MenuTrigger.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flr-universal.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flr-universal.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
|
2
|
+
export type ActionBatchProps = PropsWithChildren;
|
|
3
|
+
/**
|
|
4
|
+
* Batches multiple actions together and shows feedback when all actions have
|
|
5
|
+
* completed.
|
|
6
|
+
*
|
|
7
|
+
* By default function actions are automatically batched. You can use this
|
|
8
|
+
* component to split function actions into multiple batches with separate
|
|
9
|
+
* feedback.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ActionBatch: FC<ActionBatchProps>;
|
|
12
|
+
export default ActionBatch;
|
|
13
|
+
//# sourceMappingURL=ActionBatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionBatch.d.ts","sourceRoot":"","sources":["../../../../src/components/Action/ActionBatch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAI5C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Action/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Action/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -22,7 +22,7 @@ export declare class ActionModel {
|
|
|
22
22
|
static useNew(actionProps: ActionProps, init?: Partial<InitObject>): ActionModel;
|
|
23
23
|
static use(): ActionModel;
|
|
24
24
|
static useConfirmationAction(): ActionModel;
|
|
25
|
-
getOverlayController(
|
|
25
|
+
getOverlayController(from: FlowComponentName | OverlayController): OverlayController | undefined;
|
|
26
26
|
execute: (...args: unknown[]) => void;
|
|
27
27
|
}
|
|
28
28
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionModel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Action/models/ActionModel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ActionModel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Action/models/ActionModel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,UAAU,UAAU;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,2BAA2B,EAAE,iBAAiB,CAAC;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,qBAAa,WAAW;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAClC,SAAgB,WAAW,EAAE,WAAW,CAAC;IACzC,SAAgB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAgB,2BAA2B,EAAE,iBAAiB,CAAC;IAC/D,SAAgB,cAAc,EAAE,cAAc,CAAC;IAE/C,OAAO;WAkBO,MAAM,CAClB,WAAW,EAAE,WAAW,EACxB,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM,GAC7B,WAAW;WAiBA,GAAG,IAAI,WAAW;WAOlB,qBAAqB,IAAI,WAAW;IAoB3C,oBAAoB,CACzB,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAC1C,iBAAiB,GAAG,SAAS;IAyBzB,OAAO,GAAI,GAAG,MAAM,OAAO,EAAE,KAAG,IAAI,CAEzC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExecutionFunction.d.ts","sourceRoot":"","sources":["../../../../../src/components/Action/models/getExecutionFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"getExecutionFunction.d.ts","sourceRoot":"","sources":["../../../../../src/components/Action/models/getExecutionFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMpD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAgClE"}
|
|
@@ -10,6 +10,9 @@ export interface ActionProps extends PropsWithChildren, FlowComponentProps {
|
|
|
10
10
|
closeOverlay?: FlowComponentName | OverlayController;
|
|
11
11
|
openOverlay?: FlowComponentName | OverlayController;
|
|
12
12
|
toggleOverlay?: FlowComponentName | OverlayController;
|
|
13
|
+
closeModal?: boolean;
|
|
14
|
+
openModal?: boolean;
|
|
15
|
+
toggleModal?: boolean;
|
|
13
16
|
break?: boolean;
|
|
14
17
|
skip?: number | boolean;
|
|
15
18
|
showFeedback?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/Action/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,iBAAiB,EAAE,kBAAkB;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACrD,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACpD,aAAa,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/Action/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,iBAAiB,EAAE,kBAAkB;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACrD,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACpD,aAAa,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.browser.test.d.ts","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.browser.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { OverlayController } from '../../lib/controller/overlay';
|
|
3
3
|
import { FlowComponentProps } from '../../lib/componentFactory/flowComponent';
|
|
4
|
+
import { OverlayProps } from '../Overlay/Overlay';
|
|
4
5
|
import { PropsWithClassName } from '../../lib/types/props';
|
|
5
|
-
|
|
6
|
+
type SupportedOverlayProps = Pick<OverlayProps, "isOpen" | "isDefaultOpen" | "onOpen" | "onClose" | "onOpenChange">;
|
|
7
|
+
export interface ModalProps extends PropsWithChildren, FlowComponentProps, PropsWithClassName, SupportedOverlayProps {
|
|
6
8
|
/** The size of the modal. @default "s" */
|
|
7
9
|
size?: "s" | "m" | "l";
|
|
8
10
|
/** Whether the modal should be displayed as an off canvas. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,iBAAiB,EAAkB,MAAM,OAAO,CAAC;AAQzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,iBAAiB,EAAkB,MAAM,OAAO,CAAC;AAQzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM5D,KAAK,qBAAqB,GAAG,IAAI,CAC/B,YAAY,EACZ,QAAQ,GAAG,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CACnE,CAAC;AAEF,MAAM,WAAW,UACf,SACE,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB;IACvB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,wDAAwD;IACxD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,KAAK,+FAkFhB,CAAC;AAEH,eAAe,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,KAAuB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,KAAuB,MAAM,oBAAoB,CAAC;AAoBzD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CA4C5B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAEpC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,cAAc,EAAE,KAmC5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoBzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAEtC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAG7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAkCtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAkC/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqC5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqC5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAiE7B,CAAC;AAUF,eAAO,MAAM,YAAY,EAAE,KAU1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeCases.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/stories/EdgeCases.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAA0B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"EdgeCases.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/stories/EdgeCases.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAA0B,MAAM,UAAU,CAAC;AAclD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAG5B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAEpC,eAAO,MAAM,WAAW,EAAE,KA+BzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KA+BlC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA+BxB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FC, PropsWithChildren, Ref } from 'react';
|
|
2
2
|
import { OverlayController } from '../../lib/controller';
|
|
3
3
|
import { PropsWithClassName } from '../../lib/types/props';
|
|
4
|
+
import { OverlayCloseHandler, OverlayOpenHandler, OverlayOpenStateHandler } from '../../lib/controller/overlay/OverlayController';
|
|
4
5
|
export interface OverlayProps extends PropsWithChildren, PropsWithClassName {
|
|
5
6
|
ref?: Ref<HTMLDivElement>;
|
|
6
7
|
/** The controller to control the overlay state. */
|
|
@@ -10,6 +11,10 @@ export interface OverlayProps extends PropsWithChildren, PropsWithClassName {
|
|
|
10
11
|
/** Whether the overlay is a modal or a light box. */
|
|
11
12
|
overlayType?: "Modal" | "LightBox";
|
|
12
13
|
isOpen?: boolean;
|
|
14
|
+
isDefaultOpen?: boolean;
|
|
15
|
+
onOpen?: OverlayOpenHandler;
|
|
16
|
+
onClose?: OverlayCloseHandler;
|
|
17
|
+
onOpenChange?: OverlayOpenStateHandler;
|
|
13
18
|
}
|
|
14
19
|
export declare const Overlay: FC<OverlayProps>;
|
|
15
20
|
export default Overlay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/components/Overlay/Overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/components/Overlay/Overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AAEpD,MAAM,WAAW,YAAa,SAAQ,iBAAiB,EAAE,kBAAkB;IACzE,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,mDAAmD;IACnD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CA0CpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from '../components/Icon/components/icons';
|
|
2
|
-
export { Action, type ActionFn, type ActionProps, BrowserOnly, type BrowserOnlyProps, CountryOptions, type CountryOptionsProps, LightBox, type LightBoxProps, LightBoxTrigger, type LightBoxTriggerProps, List, type ListProps, ListItemView, type ListItemViewProps, Modal, type ModalProps, ModalTrigger, type ModalTriggerProps, Popover, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, SettingsProvider, typedList, NotificationProvider, type NotificationProviderProps, Wrap, type WrapProps, } from '../components/public';
|
|
2
|
+
export { Action, ActionBatch, type ActionFn, type ActionProps, BrowserOnly, type BrowserOnlyProps, CountryOptions, type CountryOptionsProps, LightBox, type LightBoxProps, LightBoxTrigger, type LightBoxTriggerProps, List, type ListProps, ListItemView, type ListItemViewProps, Modal, type ModalProps, ModalTrigger, type ModalTriggerProps, Popover, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, SettingsProvider, typedList, NotificationProvider, type NotificationProviderProps, Wrap, type WrapProps, } from '../components/public';
|
|
3
3
|
export * from '../lib/controller/public';
|
|
4
4
|
export * from '../lib/hooks/public';
|
|
5
5
|
//# sourceMappingURL=flr-universal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flr-universal.d.ts","sourceRoot":"","sources":["../../../src/index/flr-universal.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AAEnD,OAAO,EACL,MAAM,EACN,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,mBAAmB,EACxB,QAAQ,EACR,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,oBAAoB,EACzB,IAAI,EACJ,KAAK,SAAS,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,EACL,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,iBAAiB,EACtB,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,IAAI,EACJ,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAE7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"flr-universal.d.ts","sourceRoot":"","sources":["../../../src/index/flr-universal.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AAEnD,OAAO,EACL,MAAM,EACN,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,mBAAmB,EACxB,QAAQ,EACR,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,oBAAoB,EACzB,IAAI,EACJ,KAAK,SAAS,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,EACL,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,iBAAiB,EACtB,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,IAAI,EACJ,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAE7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,20 +1,32 @@
|
|
|
1
|
-
type
|
|
1
|
+
export type OverlayOpenHandler = () => unknown;
|
|
2
|
+
export type OverlayCloseHandler = () => unknown;
|
|
3
|
+
export type OverlayOpenStateHandler = (isOpen: boolean) => unknown;
|
|
2
4
|
type DisposerFn = () => void;
|
|
3
5
|
export interface OverlayControllerOptions {
|
|
4
6
|
isDefaultOpen?: boolean;
|
|
5
|
-
onOpen?:
|
|
6
|
-
onClose?:
|
|
7
|
+
onOpen?: OverlayOpenHandler;
|
|
8
|
+
onClose?: OverlayCloseHandler;
|
|
9
|
+
onOpenChange?: OverlayOpenStateHandler;
|
|
7
10
|
}
|
|
8
11
|
export declare class OverlayController {
|
|
9
12
|
isOpen: boolean;
|
|
10
13
|
private onOpenHandlers;
|
|
11
14
|
private onCloseHandlers;
|
|
15
|
+
private onOpenChangeHandlers;
|
|
12
16
|
constructor(options?: OverlayControllerOptions);
|
|
13
17
|
static useNew(options?: OverlayControllerOptions): OverlayController;
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
private addOpenStateHandler;
|
|
19
|
+
addOnOpen(handler: OverlayOpenHandler): DisposerFn;
|
|
20
|
+
addOnClose(handler: OverlayCloseHandler): DisposerFn;
|
|
21
|
+
addOnOpenChange(handler: OverlayOpenStateHandler): DisposerFn;
|
|
22
|
+
private useOnHandler;
|
|
23
|
+
useOnOpen(handler?: OverlayOpenHandler): void;
|
|
24
|
+
useOnClose(handler?: OverlayCloseHandler): void;
|
|
25
|
+
useOnOpenChange(handler?: OverlayOpenStateHandler): void;
|
|
26
|
+
private executeHandlers;
|
|
16
27
|
private executeOnClose;
|
|
17
28
|
private executeOnOpen;
|
|
29
|
+
private executeOnOpenChange;
|
|
18
30
|
open(): void;
|
|
19
31
|
close(): void;
|
|
20
32
|
toggle(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayController.d.ts","sourceRoot":"","sources":["../../../../../src/lib/controller/overlay/OverlayController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OverlayController.d.ts","sourceRoot":"","sources":["../../../../../src/lib/controller/overlay/OverlayController.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC;AAChD,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;AAMnE,KAAK,UAAU,GAAG,MAAM,IAAI,CAAC;AAE7B,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAED,qBAAa,iBAAiB;IACrB,MAAM,UAAS;IACtB,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,oBAAoB,CAAsC;gBAE/C,OAAO,CAAC,EAAE,wBAAwB;WAqBvC,MAAM,CAClB,OAAO,GAAE,wBAA6B,GACrC,iBAAiB;IAIpB,OAAO,CAAC,mBAAmB;IAUpB,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;IAIlD,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU;IAIpD,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU;IAIpE,OAAO,CAAC,YAAY;IAUb,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAI7C,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAI/C,eAAe,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAI/D,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,mBAAmB;IAIpB,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;IAId,OAAO,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAoB1B,SAAS;CAGjB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { OverlayController } from './OverlayController';
|
|
2
|
-
export { useOverlayController } from './useOverlayController';
|
|
2
|
+
export { useOverlayController, type UseOverlayControllerOptions, } from './useOverlayController';
|
|
3
|
+
export { useModalController } from './useModalController';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/controller/overlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/controller/overlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC"}
|