@mittwald/flow-react-components 0.2.0-alpha.537 → 0.2.0-alpha.539
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 +23983 -23964
- package/dist/css/all.css +1 -1
- package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs +2 -2
- package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/dist/js/components/src/components/Checkbox/Checkbox.mjs +8 -3
- package/dist/js/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/js/components/src/components/CheckboxButton/CheckboxButton.mjs +2 -2
- package/dist/js/components/src/components/CheckboxButton/CheckboxButton.mjs.map +1 -1
- package/dist/js/components/src/components/CheckboxGroup/CheckboxGroup.mjs +2 -2
- package/dist/js/components/src/components/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
- package/dist/js/components/src/components/ComboBox/ComboBox.mjs +2 -2
- package/dist/js/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
- package/dist/js/components/src/components/DatePicker/DatePicker.mjs +19 -12
- package/dist/js/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
- package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs +19 -12
- package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
- package/dist/js/components/src/components/FieldError/FieldError.mjs +26 -25
- package/dist/js/components/src/components/FieldError/FieldError.mjs.map +1 -1
- package/dist/js/components/src/components/FileDropZone/FileDropZone.mjs +2 -2
- package/dist/js/components/src/components/FileDropZone/FileDropZone.mjs.map +1 -1
- package/dist/js/components/src/components/FileField/FileField.mjs +2 -2
- package/dist/js/components/src/components/FileField/FileField.mjs.map +1 -1
- package/dist/js/components/src/components/NumberField/NumberField.mjs +7 -2
- package/dist/js/components/src/components/NumberField/NumberField.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/PasswordCreationField.mjs +56 -82
- package/dist/js/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
- package/dist/js/components/src/components/RadioGroup/RadioGroup.mjs +2 -2
- package/dist/js/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
- package/dist/js/components/src/components/SearchField/SearchField.mjs +2 -2
- package/dist/js/components/src/components/SearchField/SearchField.mjs.map +1 -1
- package/dist/js/components/src/components/SegmentedControl/SegmentedControl.mjs +2 -2
- package/dist/js/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
- package/dist/js/components/src/components/Select/Select.mjs +2 -2
- package/dist/js/components/src/components/Select/Select.mjs.map +1 -1
- package/dist/js/components/src/components/Switch/Switch.mjs +8 -3
- package/dist/js/components/src/components/Switch/Switch.mjs.map +1 -1
- package/dist/js/components/src/components/TextArea/TextArea.mjs +7 -1
- package/dist/js/components/src/components/TextArea/TextArea.mjs.map +1 -1
- package/dist/js/components/src/components/TextField/TextField.mjs +7 -1
- package/dist/js/components/src/components/TextField/TextField.mjs.map +1 -1
- package/dist/js/components/src/components/TextFieldBase/TextFieldBase.mjs +6 -3
- package/dist/js/components/src/components/TextFieldBase/TextFieldBase.mjs.map +1 -1
- package/dist/js/components/src/components/TimeField/TimeField.mjs +10 -3
- package/dist/js/components/src/components/TimeField/TimeField.mjs.map +1 -1
- package/dist/js/components/src/integrations/react-hook-form/components/Field/Field.mjs +12 -28
- package/dist/js/components/src/integrations/react-hook-form/components/Field/Field.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useFieldComponent.mjs +5 -9
- package/dist/js/components/src/lib/hooks/useFieldComponent.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useFieldError.mjs +132 -21
- package/dist/js/components/src/lib/hooks/useFieldError.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/components/PropsContextProvider.mjs +2 -1
- package/dist/js/components/src/lib/propsContext/components/PropsContextProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/inherit/lib.mjs +11 -2
- package/dist/js/components/src/lib/propsContext/inherit/lib.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/inherit/types.mjs.map +1 -1
- package/dist/js/components/src/views/FieldErrorView.mjs +15 -0
- package/dist/js/components/src/views/FieldErrorView.mjs.map +1 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/types/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/types/components/FieldError/FieldError.d.ts.map +1 -1
- package/dist/types/components/LayoutCard/stories/Default.stories.d.ts +1 -0
- package/dist/types/components/LayoutCard/stories/Default.stories.d.ts.map +1 -1
- package/dist/types/components/NumberField/NumberField.d.ts.map +1 -1
- package/dist/types/components/PasswordCreationField/PasswordCreationField.d.ts.map +1 -1
- package/dist/types/components/Switch/Switch.d.ts.map +1 -1
- package/dist/types/components/TextArea/TextArea.d.ts +1 -1
- package/dist/types/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/types/components/TextField/TextField.d.ts +1 -1
- package/dist/types/components/TextField/TextField.d.ts.map +1 -1
- package/dist/types/components/TextFieldBase/TextFieldBase.d.ts +1 -1
- package/dist/types/components/TextFieldBase/TextFieldBase.d.ts.map +1 -1
- package/dist/types/components/TimeField/TimeField.d.ts.map +1 -1
- package/dist/types/integrations/react-hook-form/components/Field/Field.d.ts.map +1 -1
- package/dist/types/integrations/react-hook-form/components/Field/stories/PasswordCreationField.stories.d.ts.map +1 -1
- package/dist/types/lib/hooks/useFieldComponent.d.ts +1 -1
- package/dist/types/lib/hooks/useFieldComponent.d.ts.map +1 -1
- package/dist/types/lib/hooks/useFieldError.d.ts +5 -7
- package/dist/types/lib/hooks/useFieldError.d.ts.map +1 -1
- package/dist/types/lib/propsContext/components/PropsContextProvider.d.ts.map +1 -1
- package/dist/types/lib/propsContext/inherit/lib.d.ts +2 -0
- package/dist/types/lib/propsContext/inherit/lib.d.ts.map +1 -1
- package/dist/types/lib/propsContext/inherit/types.d.ts +1 -1
- package/dist/types/lib/propsContext/inherit/types.d.ts.map +1 -1
- package/dist/types/lib/propsContext/nestedPropsContext/lib.d.ts +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.mjs","sources":["../../../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport type { TextFieldBaseProps } from \"@/components/TextFieldBase\";\nimport { TextFieldBase } from \"@/components/TextFieldBase\";\nimport styles from \"./TextArea.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useObjectRef } from \"@react-aria/utils\";\nimport { ReactAriaControlledValueFix } from \"@/lib/react/ReactAriaControlledValueFix\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport clsx from \"clsx\";\nimport { useEffect, useState } from \"react\";\n\nexport interface TextAreaProps\n extends Omit
|
|
1
|
+
{"version":3,"file":"TextArea.mjs","sources":["../../../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport type { TextFieldBaseProps } from \"@/components/TextFieldBase\";\nimport { TextFieldBase } from \"@/components/TextFieldBase\";\nimport styles from \"./TextArea.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useObjectRef } from \"@react-aria/utils\";\nimport { ReactAriaControlledValueFix } from \"@/lib/react/ReactAriaControlledValueFix\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport clsx from \"clsx\";\nimport { useEffect, useState } from \"react\";\n\nexport interface TextAreaProps\n extends Omit<\n TextFieldBaseProps,\n \"FieldErrorView\" | \"FieldErrorCaptureContext\" | \"input\" | \"ref\"\n >,\n Pick<Aria.TextAreaProps, \"placeholder\" | \"rows\">,\n FlowComponentProps<HTMLTextAreaElement> {\n /**\n * Whether the text area should grow if its content gets longer than its\n * initial height.\n */\n autoResizeMaxRows?: number;\n /** Allows the user to manually resize the textArea horizontally. */\n allowHorizontalResize?: boolean;\n /** Allows the user to manually resize the textArea vertically. */\n allowVerticalResize?: boolean;\n /**\n * Allows the user to manually resize the textArea horizontally and\n * vertically.\n */\n allowResize?: boolean;\n}\n\n/** @flr-generate all */\nexport const TextArea = flowComponent(\"TextArea\", (props) => {\n const {\n children,\n placeholder,\n rows = 5,\n autoResizeMaxRows = rows,\n ref,\n allowResize,\n allowVerticalResize,\n allowHorizontalResize,\n ...rest\n } = props;\n\n const rootClassName = clsx(\n styles.textArea,\n allowResize && styles.resize,\n allowVerticalResize && styles.verticalResize,\n allowHorizontalResize && styles.horizontalResize,\n );\n\n const localRef = useObjectRef(ref);\n\n const getHeight = (rows: number) => {\n return `calc(var(--line-height--m) * ${rows} + (var(--form-control--padding-y) * 2))`;\n };\n\n const [resized, setResized] = useState(false);\n\n const autoResizable = rows !== autoResizeMaxRows;\n\n const verticallyResizable =\n (allowResize || allowVerticalResize) &&\n (!autoResizable || (autoResizable && resized));\n\n useEffect(() => {\n const textarea = localRef.current;\n if (!textarea) return;\n\n const startHeight = textarea.offsetHeight;\n let tracking = false;\n\n const handleMouseDown = () => {\n tracking = true;\n };\n\n const handleMouseMove = () => {\n if (!tracking || resized) return;\n\n const currentHeight = textarea.offsetHeight;\n\n if (currentHeight !== startHeight) {\n setResized(true);\n tracking = false;\n }\n };\n\n const handleMouseUp = () => {\n tracking = false;\n };\n\n window.addEventListener(\"mousedown\", handleMouseDown);\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n window.removeEventListener(\"mousedown\", handleMouseDown);\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [resized]);\n\n const updateHeight = () => {\n if (localRef.current && autoResizable && !verticallyResizable) {\n // https://stackoverflow.com/a/60795884\n localRef.current.style.height = \"0px\";\n const scrollHeight = localRef.current.scrollHeight;\n // + 2 to add border height\n localRef.current.style.height = scrollHeight + 2 + \"px\";\n }\n };\n\n const input = (\n <ReactAriaControlledValueFix\n inputContext={Aria.TextAreaContext}\n props={props}\n >\n <Aria.TextArea\n rows={rows}\n placeholder={placeholder}\n className={rootClassName}\n ref={localRef}\n onChange={updateHeight}\n style={{\n minHeight: getHeight(rows),\n maxHeight: verticallyResizable\n ? undefined\n : getHeight(autoResizeMaxRows),\n }}\n />\n </ReactAriaControlledValueFix>\n );\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldPropsContext,\n fieldProps,\n } = useFieldComponent(props);\n\n return (\n <TextFieldBase\n {...rest}\n {...fieldProps}\n className={clsx(rest.className, fieldProps.className)}\n FieldErrorView={FieldErrorView}\n FieldErrorCaptureContext={FieldErrorCaptureContext}\n input={input}\n >\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n </TextFieldBase>\n );\n});\n\nexport default TextArea;\n"],"names":["rows"],"mappings":"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"}
|
|
@@ -21,13 +21,19 @@ const TextField = flowComponent("TextField", (props) => {
|
|
|
21
21
|
ref
|
|
22
22
|
}
|
|
23
23
|
) });
|
|
24
|
-
const {
|
|
24
|
+
const {
|
|
25
|
+
FieldErrorView,
|
|
26
|
+
FieldErrorCaptureContext,
|
|
27
|
+
fieldPropsContext,
|
|
28
|
+
fieldProps
|
|
29
|
+
} = useFieldComponent(props);
|
|
25
30
|
return /* @__PURE__ */ jsx(
|
|
26
31
|
TextFieldBase,
|
|
27
32
|
{
|
|
28
33
|
...rest,
|
|
29
34
|
...fieldProps,
|
|
30
35
|
FieldErrorView,
|
|
36
|
+
FieldErrorCaptureContext,
|
|
31
37
|
input,
|
|
32
38
|
children: /* @__PURE__ */ jsx(PropsContextProvider, { props: fieldPropsContext, children })
|
|
33
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.mjs","sources":["../../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport {\n TextFieldBase,\n type TextFieldBaseProps,\n} from \"@/components/TextFieldBase\";\nimport styles from \"./TextField.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { ReactAriaControlledValueFix } from \"@/lib/react/ReactAriaControlledValueFix\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\nexport interface TextFieldProps\n extends Omit
|
|
1
|
+
{"version":3,"file":"TextField.mjs","sources":["../../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport {\n TextFieldBase,\n type TextFieldBaseProps,\n} from \"@/components/TextFieldBase\";\nimport styles from \"./TextField.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { ReactAriaControlledValueFix } from \"@/lib/react/ReactAriaControlledValueFix\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\n\nexport interface TextFieldProps\n extends Omit<\n TextFieldBaseProps,\n \"FieldErrorView\" | \"FieldErrorCaptureContext\" | \"input\" | \"className\"\n >,\n Pick<Aria.InputProps, \"placeholder\" | \"form\">,\n PropsWithClassName,\n FlowComponentProps<HTMLInputElement> {}\n\n/** @flr-generate all */\nexport const TextField = flowComponent(\"TextField\", (props) => {\n const { children, placeholder, ref, form, ...rest } = props;\n\n const input = (\n <ReactAriaControlledValueFix inputContext={Aria.InputContext} props={props}>\n <Aria.Input\n form={form}\n placeholder={placeholder}\n className={styles.textField}\n ref={ref}\n />\n </ReactAriaControlledValueFix>\n );\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldPropsContext,\n fieldProps,\n } = useFieldComponent(props);\n\n return (\n <TextFieldBase\n {...rest}\n {...fieldProps}\n FieldErrorView={FieldErrorView}\n FieldErrorCaptureContext={FieldErrorCaptureContext}\n input={input}\n >\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n </TextFieldBase>\n );\n});\n\nexport default TextField;\n"],"names":[],"mappings":";;;;;;;;;;AAuBO,MAAM,SAAA,GAAY,aAAA,CAAc,WAAA,EAAa,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,KAAK,IAAA,EAAM,GAAG,MAAK,GAAI,KAAA;AAEtD,EAAA,MAAM,wBACJ,GAAA,CAAC,2BAAA,EAAA,EAA4B,YAAA,EAAc,IAAA,CAAK,cAAc,KAAA,EAC5D,QAAA,kBAAA,GAAA;AAAA,IAAC,IAAA,CAAK,KAAA;AAAA,IAAL;AAAA,MACC,IAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAW,MAAA,CAAO,SAAA;AAAA,MAClB;AAAA;AAAA,GACF,EACF,CAAA;AAGF,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,cAAA;AAAA,MACA,wBAAA;AAAA,MACA,KAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,iBAAA,EAC1B,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}
|
|
@@ -16,6 +16,7 @@ const TextFieldBase = (props) => {
|
|
|
16
16
|
showCharacterCount,
|
|
17
17
|
ref,
|
|
18
18
|
FieldErrorView,
|
|
19
|
+
FieldErrorCaptureContext,
|
|
19
20
|
...rest
|
|
20
21
|
} = props;
|
|
21
22
|
const [charactersCount, setCharactersCount] = useState(
|
|
@@ -49,9 +50,11 @@ const TextFieldBase = (props) => {
|
|
|
49
50
|
onChange: handleOnChange,
|
|
50
51
|
...propsWithOptionalStringValue,
|
|
51
52
|
children: [
|
|
52
|
-
children
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
/* @__PURE__ */ jsxs(FieldErrorCaptureContext, { children: [
|
|
54
|
+
children,
|
|
55
|
+
input,
|
|
56
|
+
showCharacterCount && /* @__PURE__ */ jsx(FieldDescription, { className: formFieldStyles.fieldDescription, children: charactersCountDescription })
|
|
57
|
+
] }),
|
|
55
58
|
/* @__PURE__ */ jsx(FieldErrorView, {})
|
|
56
59
|
]
|
|
57
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextFieldBase.mjs","sources":["../../../../../../src/components/TextFieldBase/TextFieldBase.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, type ReactNode } from \"react\";\nimport { useState } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { FieldDescription } from \"@/components/FieldDescription\";\nimport locales from \"./locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport type { UseFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport styles from \"../FormField/FormField.module.scss\";\n\nexport interface TextFieldBaseProps\n extends PropsWithChildren<Omit<Aria.TextFieldProps, \"children\">>,\n Pick<FlowComponentProps<HTMLInputElement>, \"ref\">,\n Pick<UseFieldComponent, \"FieldErrorView\"> {\n /** The input element */\n input: ReactNode;\n /** Whether a character count should be displayed inside the field description. */\n showCharacterCount?: boolean;\n}\n\nexport const TextFieldBase: FC<TextFieldBaseProps> = (props) => {\n const {\n children,\n className,\n input,\n showCharacterCount,\n ref,\n FieldErrorView,\n ...rest\n } = props;\n\n const [charactersCount, setCharactersCount] = useState(\n props.value?.length ?? 0,\n );\n\n const translation = useLocalizedStringFormatter(locales);\n\n const handleOnChange = (v: string) => {\n if (showCharacterCount) {\n setCharactersCount(v.length);\n }\n if (props.onChange) {\n props.onChange(v);\n }\n };\n\n const charactersCountDescription = translation.format(\n \"textFieldBase.characters\",\n {\n count: charactersCount,\n maxCount: props.maxLength ?? 0,\n },\n );\n\n /** Prevent weird reset behavior when value is 'undefined' */\n const propsWithOptionalStringValue =\n \"value\" in props\n ? {\n value: props.value ?? \"\",\n }\n : {};\n\n return (\n <Aria.TextField\n ref={ref}\n {...rest}\n className={className}\n onChange={handleOnChange}\n {...propsWithOptionalStringValue}\n >\n {children}\n
|
|
1
|
+
{"version":3,"file":"TextFieldBase.mjs","sources":["../../../../../../src/components/TextFieldBase/TextFieldBase.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, type ReactNode } from \"react\";\nimport { useState } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { FieldDescription } from \"@/components/FieldDescription\";\nimport locales from \"./locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport type { UseFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport styles from \"../FormField/FormField.module.scss\";\n\nexport interface TextFieldBaseProps\n extends PropsWithChildren<Omit<Aria.TextFieldProps, \"children\">>,\n Pick<FlowComponentProps<HTMLInputElement>, \"ref\">,\n Pick<UseFieldComponent, \"FieldErrorView\" | \"FieldErrorCaptureContext\"> {\n /** The input element */\n input: ReactNode;\n /** Whether a character count should be displayed inside the field description. */\n showCharacterCount?: boolean;\n}\n\nexport const TextFieldBase: FC<TextFieldBaseProps> = (props) => {\n const {\n children,\n className,\n input,\n showCharacterCount,\n ref,\n FieldErrorView,\n FieldErrorCaptureContext,\n ...rest\n } = props;\n\n const [charactersCount, setCharactersCount] = useState(\n props.value?.length ?? 0,\n );\n\n const translation = useLocalizedStringFormatter(locales);\n\n const handleOnChange = (v: string) => {\n if (showCharacterCount) {\n setCharactersCount(v.length);\n }\n if (props.onChange) {\n props.onChange(v);\n }\n };\n\n const charactersCountDescription = translation.format(\n \"textFieldBase.characters\",\n {\n count: charactersCount,\n maxCount: props.maxLength ?? 0,\n },\n );\n\n /** Prevent weird reset behavior when value is 'undefined' */\n const propsWithOptionalStringValue =\n \"value\" in props\n ? {\n value: props.value ?? \"\",\n }\n : {};\n\n return (\n <Aria.TextField\n ref={ref}\n {...rest}\n className={className}\n onChange={handleOnChange}\n {...propsWithOptionalStringValue}\n >\n <FieldErrorCaptureContext>\n {children}\n {input}\n {showCharacterCount && (\n <FieldDescription className={styles.fieldDescription}>\n {charactersCountDescription}\n </FieldDescription>\n )}\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </Aria.TextField>\n );\n};\n\nexport default TextFieldBase;\n"],"names":["styles"],"mappings":";;;;;;;;AAoBO,MAAM,aAAA,GAAwC,CAAC,KAAA,KAAU;AAC9D,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,kBAAA;AAAA,IACA,GAAA;AAAA,IACA,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,QAAA;AAAA,IAC5C,KAAA,CAAM,OAAO,MAAA,IAAU;AAAA,GACzB;AAEA,EAAA,MAAM,WAAA,GAAc,4BAA4B,OAAO,CAAA;AAEvD,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAc;AACpC,IAAA,IAAI,kBAAA,EAAoB;AACtB,MAAA,kBAAA,CAAmB,EAAE,MAAM,CAAA;AAAA,IAC7B;AACA,IAAA,IAAI,MAAM,QAAA,EAAU;AAClB,MAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AAAA,IAClB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,6BAA6B,WAAA,CAAY,MAAA;AAAA,IAC7C,0BAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,eAAA;AAAA,MACP,QAAA,EAAU,MAAM,SAAA,IAAa;AAAA;AAC/B,GACF;AAGA,EAAA,MAAM,4BAAA,GACJ,WAAW,KAAA,GACP;AAAA,IACE,KAAA,EAAO,MAAM,KAAA,IAAS;AAAA,MAExB,EAAC;AAEP,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,SAAA;AAAA,IAAL;AAAA,MACC,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,SAAA;AAAA,MACA,QAAA,EAAU,cAAA;AAAA,MACT,GAAG,4BAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,wBAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,KAAA;AAAA,UACA,sCACC,GAAA,CAAC,gBAAA,EAAA,EAAiB,SAAA,EAAWA,eAAA,CAAO,kBACjC,QAAA,EAAA,0BAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA;AAAA;AAAA,GAClB;AAEJ;;;;"}
|
|
@@ -13,12 +13,19 @@ import { useFieldComponent } from '../../lib/hooks/useFieldComponent.mjs';
|
|
|
13
13
|
|
|
14
14
|
const TimeField = flowComponent("TimeField", (props) => {
|
|
15
15
|
const { children, ref, ...rest } = props;
|
|
16
|
-
const {
|
|
16
|
+
const {
|
|
17
|
+
FieldErrorView,
|
|
18
|
+
FieldErrorCaptureContext,
|
|
19
|
+
fieldPropsContext,
|
|
20
|
+
fieldProps
|
|
21
|
+
} = useFieldComponent(props);
|
|
17
22
|
const localRef = useObjectRef(ref);
|
|
18
23
|
useMakeFocusable(localRef);
|
|
19
24
|
return /* @__PURE__ */ jsxs(Aria.TimeField, { ref: localRef, hourCycle: 24, ...rest, ...fieldProps, children: [
|
|
20
|
-
/* @__PURE__ */
|
|
21
|
-
|
|
25
|
+
/* @__PURE__ */ jsxs(FieldErrorCaptureContext, { children: [
|
|
26
|
+
/* @__PURE__ */ jsx(Aria.DateInput, { className: styles.dateInput, children: (segment) => /* @__PURE__ */ jsx(Aria.DateSegment, { segment }) }),
|
|
27
|
+
/* @__PURE__ */ jsx(PropsContextProvider, { props: fieldPropsContext, children })
|
|
28
|
+
] }),
|
|
22
29
|
/* @__PURE__ */ jsx(FieldErrorView, {})
|
|
23
30
|
] });
|
|
24
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeField.mjs","sources":["../../../../../../src/components/TimeField/TimeField.tsx"],"sourcesContent":["import React, { type PropsWithChildren } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport styles from \"./TimeField.module.scss\";\nimport { useMakeFocusable } from \"@/lib/hooks/dom/useMakeFocusable\";\nimport { useObjectRef } from \"@react-aria/utils\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nexport interface TimeFieldProps<T extends Aria.TimeValue = Aria.TimeValue>\n extends PropsWithChildren<Omit<Aria.TimeFieldProps<T>, \"children\">>,\n FlowComponentProps<HTMLInputElement> {}\n\n/** @flr-generate all */\nexport const TimeField = flowComponent(\"TimeField\", (props) => {\n const { children, ref, ...rest } = props;\n\n const {
|
|
1
|
+
{"version":3,"file":"TimeField.mjs","sources":["../../../../../../src/components/TimeField/TimeField.tsx"],"sourcesContent":["import React, { type PropsWithChildren } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport styles from \"./TimeField.module.scss\";\nimport { useMakeFocusable } from \"@/lib/hooks/dom/useMakeFocusable\";\nimport { useObjectRef } from \"@react-aria/utils\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nexport interface TimeFieldProps<T extends Aria.TimeValue = Aria.TimeValue>\n extends PropsWithChildren<Omit<Aria.TimeFieldProps<T>, \"children\">>,\n FlowComponentProps<HTMLInputElement> {}\n\n/** @flr-generate all */\nexport const TimeField = flowComponent(\"TimeField\", (props) => {\n const { children, ref, ...rest } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldPropsContext,\n fieldProps,\n } = useFieldComponent(props);\n\n const localRef = useObjectRef(ref);\n useMakeFocusable(localRef);\n\n return (\n <Aria.TimeField ref={localRef} hourCycle={24} {...rest} {...fieldProps}>\n <FieldErrorCaptureContext>\n <Aria.DateInput className={styles.dateInput}>\n {(segment) => <Aria.DateSegment segment={segment} />}\n </Aria.DateInput>\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </Aria.TimeField>\n );\n});\n\nexport default TimeField;\n"],"names":[],"mappings":";;;;;;;;;;;AAgBO,MAAM,SAAA,GAAY,aAAA,CAAc,WAAA,EAAa,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,EAAE,QAAA,EAAU,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAEnC,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,MAAM,QAAA,GAAW,aAAa,GAAG,CAAA;AACjC,EAAA,gBAAA,CAAiB,QAAQ,CAAA;AAEzB,EAAA,uBACE,IAAA,CAAC,IAAA,CAAK,SAAA,EAAL,EAAe,GAAA,EAAK,QAAA,EAAU,SAAA,EAAW,EAAA,EAAK,GAAG,IAAA,EAAO,GAAG,UAAA,EAC1D,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,CAAK,SAAA,EAAL,EAAe,SAAA,EAAW,MAAA,CAAO,SAAA,EAC/B,QAAA,EAAA,CAAC,OAAA,qBAAY,GAAA,CAAC,IAAA,CAAK,WAAA,EAAL,EAAiB,SAAkB,CAAA,EACpD,CAAA;AAAA,sBACA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,iBAAA,EAC1B,QAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,wBACC,cAAA,EAAA,EAAe;AAAA,GAAA,EAClB,CAAA;AAEJ,CAAC;;;;"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useFormContext } from '../context/formContext.mjs';
|
|
5
|
+
import { dynamic } from '../../../../lib/propsContext/dynamicProps/dynamic.mjs';
|
|
5
6
|
import '../../../../lib/propsContext/propsContext.mjs';
|
|
6
7
|
import { PropsContextProvider } from '../../../../lib/propsContext/components/PropsContextProvider.mjs';
|
|
8
|
+
import 'react';
|
|
7
9
|
import { useController, useWatch } from 'react-hook-form';
|
|
8
10
|
import { useLocalizedStringFormatter } from 'react-aria';
|
|
9
11
|
import locales from '../../../../../../_virtual/_.locale.json@72ba2ce40f190df671686fec50c04ddf.mjs';
|
|
10
12
|
import { inheritProps } from '../../../../lib/propsContext/inherit/types.mjs';
|
|
11
|
-
import
|
|
13
|
+
import FieldErrorView from '../../../../views/FieldErrorView.mjs';
|
|
12
14
|
|
|
13
15
|
function Field(props) {
|
|
14
16
|
const { children, name, defaultValue, ...rest } = props;
|
|
@@ -46,7 +48,13 @@ function Field(props) {
|
|
|
46
48
|
isRequired: !!rest.rules?.required,
|
|
47
49
|
validationBehavior: "aria",
|
|
48
50
|
defaultValue,
|
|
49
|
-
isInvalid: isFieldInvalid
|
|
51
|
+
isInvalid: isFieldInvalid,
|
|
52
|
+
children: dynamic((p) => {
|
|
53
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
54
|
+
p.children,
|
|
55
|
+
/* @__PURE__ */ jsx(FieldErrorView, { children: controller.fieldState.error?.message })
|
|
56
|
+
] });
|
|
57
|
+
})
|
|
50
58
|
};
|
|
51
59
|
const { value: ignoredValue, ...fieldPropsWithoutValue } = fieldProps;
|
|
52
60
|
const propsContext = {
|
|
@@ -93,31 +101,7 @@ function Field(props) {
|
|
|
93
101
|
{
|
|
94
102
|
props: propsContext,
|
|
95
103
|
dependencies: [controller.fieldState, controller.field, value],
|
|
96
|
-
children
|
|
97
|
-
FieldErrorContext,
|
|
98
|
-
{
|
|
99
|
-
value: {
|
|
100
|
-
isInvalid: isFieldInvalid,
|
|
101
|
-
validationErrors: [
|
|
102
|
-
controller.fieldState.error?.message ?? "noMessage"
|
|
103
|
-
],
|
|
104
|
-
validationDetails: {
|
|
105
|
-
valid: !isFieldInvalid,
|
|
106
|
-
badInput: false,
|
|
107
|
-
customError: isFieldInvalid,
|
|
108
|
-
patternMismatch: false,
|
|
109
|
-
rangeOverflow: false,
|
|
110
|
-
rangeUnderflow: false,
|
|
111
|
-
stepMismatch: false,
|
|
112
|
-
tooLong: false,
|
|
113
|
-
tooShort: false,
|
|
114
|
-
valueMissing: false,
|
|
115
|
-
typeMismatch: false
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
children
|
|
119
|
-
}
|
|
120
|
-
)
|
|
104
|
+
children
|
|
121
105
|
}
|
|
122
106
|
);
|
|
123
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.mjs","sources":["../../../../../../../../src/integrations/react-hook-form/components/Field/Field.tsx"],"sourcesContent":["import { useFormContext } from \"@/integrations/react-hook-form/components/context/formContext\";\nimport type
|
|
1
|
+
{"version":3,"file":"Field.mjs","sources":["../../../../../../../../src/integrations/react-hook-form/components/Field/Field.tsx"],"sourcesContent":["import { useFormContext } from \"@/integrations/react-hook-form/components/context/formContext\";\nimport { dynamic, type PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport { type PropsWithChildren } from \"react\";\nimport {\n type ControllerProps,\n type FieldValues,\n useController,\n type UseFormReturn,\n useWatch,\n} from \"react-hook-form\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"./locales/*.locale.json\";\nimport { inheritProps } from \"@/lib/propsContext/inherit/types\";\nimport FieldErrorView from \"@/views/FieldErrorView\";\n\nexport interface FieldProps<T extends FieldValues>\n extends Omit<ControllerProps<T>, \"render\">,\n PropsWithChildren {}\n\nexport function Field<T extends FieldValues>(props: FieldProps<T>) {\n const { children, name, defaultValue, ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n const controller = useController({\n ...props,\n rules: {\n ...props.rules,\n minLength:\n typeof rest.rules?.minLength === \"number\"\n ? {\n value: rest.rules.minLength,\n message: stringFormatter.format(\"minLength\", {\n number: rest.rules.minLength,\n }),\n }\n : rest.rules?.minLength,\n maxLength:\n typeof rest.rules?.maxLength === \"number\"\n ? {\n value: rest.rules.maxLength,\n message: stringFormatter.format(\"maxLength\", {\n number: rest.rules.maxLength,\n }),\n }\n : rest.rules?.maxLength,\n },\n });\n const formContext = useFormContext<T>();\n /**\n * We don't use controller.field.value here, because it doesn't update when\n * the form value is updated outside of this field (e.g. when setting values\n * with form.setValue or resetting the form), and the Field unmounts in\n * between. This is generally a feature of React Hook Form, but this breaks\n * dynamic forms where fields are conditionally rendered.\n *\n * By using formContext.form.watch(name), we ensure that the field value is\n * always in sync with the form state. See:\n * https://react-hook-form.com/api/usecontroller/controller/\n */\n const value =\n useWatch({\n control: formContext.form.control,\n name,\n }) ?? controller.field.value;\n\n const isFieldInvalid = controller.fieldState.invalid;\n\n const fieldProps = {\n ...inheritProps,\n ...controller.field,\n value,\n name,\n form: formContext.id,\n isRequired: !!rest.rules?.required,\n validationBehavior: \"aria\" as const,\n defaultValue,\n isInvalid: isFieldInvalid,\n children: dynamic((p) => {\n return (\n <>\n {p.children}\n <FieldErrorView>\n {controller.fieldState.error?.message}\n </FieldErrorView>\n </>\n );\n }),\n };\n\n const { value: ignoredValue, ...fieldPropsWithoutValue } = fieldProps;\n\n const propsContext: PropsContext = {\n SearchField: fieldProps,\n TextField: fieldProps,\n TextArea: fieldProps,\n MarkdownEditor: fieldProps,\n Checkbox: {\n ...fieldProps,\n isSelected: value,\n },\n CheckboxGroup: {\n ...fieldProps,\n },\n CheckboxButton: {\n ...fieldProps,\n isSelected: value,\n },\n FileField: fieldProps,\n FileDropZone: fieldProps,\n NumberField: fieldProps,\n RadioGroup: fieldProps,\n Switch: {\n ...fieldProps,\n isSelected: value,\n },\n Slider: fieldProps,\n PasswordCreationField: fieldProps,\n DatePicker: fieldProps,\n DateRangePicker: fieldProps,\n TimeField: fieldProps,\n SegmentedControl: fieldProps,\n Select: {\n ...fieldProps,\n selectedKey: value,\n },\n ComboBox: {\n ...fieldPropsWithoutValue,\n selectedKey: value,\n },\n };\n\n return (\n <PropsContextProvider\n props={propsContext}\n dependencies={[controller.fieldState, controller.field, value]}\n >\n {children}\n </PropsContextProvider>\n );\n}\n\nexport const typedField = <T extends FieldValues>(\n ignoredForm: UseFormReturn<T> | UseFormReturn<T>[\"control\"],\n): typeof Field<T> => Field;\n\nexport default Field;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
import 'react';
|
|
5
3
|
import '../propsContext/propsContext.mjs';
|
|
6
|
-
import
|
|
4
|
+
import '../propsContext/components/PropsContextProvider.mjs';
|
|
7
5
|
import formFieldStyles from '../../components/FormField/FormField.module.scss.mjs';
|
|
8
6
|
import { useFieldError } from './useFieldError.mjs';
|
|
9
7
|
import clsx from 'clsx';
|
|
10
8
|
|
|
11
9
|
const useFieldComponent = (props) => {
|
|
12
|
-
const { FieldErrorView,
|
|
10
|
+
const { FieldErrorView, FieldErrorCaptureContext } = useFieldError();
|
|
13
11
|
const fieldPropsContext = {
|
|
14
12
|
Label: {
|
|
15
13
|
className: formFieldStyles.label,
|
|
@@ -18,13 +16,11 @@ const useFieldComponent = (props) => {
|
|
|
18
16
|
},
|
|
19
17
|
FieldDescription: {
|
|
20
18
|
className: formFieldStyles.fieldDescription
|
|
21
|
-
}
|
|
22
|
-
...fieldErrorViewPropsContext
|
|
19
|
+
}
|
|
23
20
|
};
|
|
24
|
-
const FieldErrorViewWithPropsContext = () => /* @__PURE__ */ jsx(PropsContextProvider, { props: fieldErrorViewPropsContext, children: /* @__PURE__ */ jsx(FieldErrorView, {}) });
|
|
25
21
|
return {
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
FieldErrorView,
|
|
23
|
+
FieldErrorCaptureContext,
|
|
28
24
|
fieldPropsContext,
|
|
29
25
|
fieldProps: {
|
|
30
26
|
className: clsx(formFieldStyles.formField)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldComponent.mjs","sources":["../../../../../../src/lib/hooks/useFieldComponent.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport
|
|
1
|
+
{"version":3,"file":"useFieldComponent.mjs","sources":["../../../../../../src/lib/hooks/useFieldComponent.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport { type PropsContext } from \"@/lib/propsContext\";\nimport formFieldStyles from \"@/components/FormField/FormField.module.scss\";\nimport { useFieldError } from \"@/lib/hooks/useFieldError\";\nimport clsx, { type ClassValue } from \"clsx\";\n\ninterface FieldComponentProps {\n className?: ClassValue;\n isRequired?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface UseFieldComponent {\n FieldErrorCaptureContext: FC<PropsWithChildren>;\n FieldErrorView: FC;\n fieldPropsContext: PropsContext;\n fieldProps: {\n className?: ReturnType<typeof clsx>;\n };\n}\n\nexport const useFieldComponent = (\n props: FieldComponentProps,\n): UseFieldComponent => {\n const { FieldErrorView, FieldErrorCaptureContext } = useFieldError();\n\n // setting up the props context for all components that\n // are part of a form control\n const fieldPropsContext: PropsContext = {\n Label: {\n className: formFieldStyles.label,\n optional: !props.isRequired,\n isDisabled: !!props.isDisabled,\n },\n FieldDescription: {\n className: formFieldStyles.fieldDescription,\n },\n };\n\n return {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldPropsContext,\n fieldProps: {\n className: clsx(formFieldStyles.formField),\n },\n } as const;\n};\n"],"names":[],"mappings":";;;;;;AAqBO,MAAM,iBAAA,GAAoB,CAC/B,KAAA,KACsB;AACtB,EAAA,MAAM,EAAE,cAAA,EAAgB,wBAAA,EAAyB,GAAI,aAAA,EAAc;AAInE,EAAA,MAAM,iBAAA,GAAkC;AAAA,IACtC,KAAA,EAAO;AAAA,MACL,WAAW,eAAA,CAAgB,KAAA;AAAA,MAC3B,QAAA,EAAU,CAAC,KAAA,CAAM,UAAA;AAAA,MACjB,UAAA,EAAY,CAAC,CAAC,KAAA,CAAM;AAAA,KACtB;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,WAAW,eAAA,CAAgB;AAAA;AAC7B,GACF;AAEA,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,iBAAA;AAAA,IACA,UAAA,EAAY;AAAA,MACV,SAAA,EAAW,IAAA,CAAK,eAAA,CAAgB,SAAS;AAAA;AAC3C,GACF;AACF;;;;"}
|
|
@@ -1,41 +1,152 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
import React, {
|
|
4
|
+
import React, { useId, useMemo } from 'react';
|
|
5
5
|
import '../propsContext/propsContext.mjs';
|
|
6
|
-
import '../propsContext/components/PropsContextProvider.mjs';
|
|
6
|
+
import { PropsContextProvider } from '../propsContext/components/PropsContextProvider.mjs';
|
|
7
7
|
import formFieldStyles from '../../components/FormField/FormField.module.scss.mjs';
|
|
8
|
-
import { FieldErrorContext } from 'react-aria-components';
|
|
9
|
-
import { FieldError } from '../../components/FieldError/FieldError.mjs';
|
|
10
8
|
import { TunnelExit } from '@mittwald/react-tunnel';
|
|
11
9
|
import { ClearPropsContext } from '../propsContext/components/ClearPropsContext.mjs';
|
|
10
|
+
import '../../components/AccentBox/AccentBox.mjs';
|
|
11
|
+
import 'clsx';
|
|
12
|
+
import '../../components/Button/Button.mjs';
|
|
13
|
+
import '@tabler/icons-react';
|
|
14
|
+
import '../../components/Icon/Icon.mjs';
|
|
15
|
+
import '../../views/IconView.mjs';
|
|
16
|
+
import '../../components/SuspenseTrigger/SuspenseTrigger.mjs';
|
|
17
|
+
import 'react-aria';
|
|
18
|
+
import '../../components/Action/Action.mjs';
|
|
19
|
+
import '@react-aria/live-announcer';
|
|
20
|
+
import '../../components/ActionGroup/ActionGroup.mjs';
|
|
21
|
+
import '../../components/Alert/Alert.mjs';
|
|
22
|
+
import '../../components/AlertBadge/AlertBadge.mjs';
|
|
23
|
+
import '../../components/Align/Align.mjs';
|
|
24
|
+
import '../../components/Autocomplete/Autocomplete.mjs';
|
|
25
|
+
import '../../components/Avatar/Avatar.mjs';
|
|
26
|
+
import '../../components/Badge/Badge.mjs';
|
|
27
|
+
import 'react-aria-components';
|
|
28
|
+
import 'mobx';
|
|
29
|
+
import '../controller/overlay/context.mjs';
|
|
30
|
+
import { useProps } from './useProps.mjs';
|
|
31
|
+
import 'recharts';
|
|
32
|
+
import '../../components/Heading/Heading.mjs';
|
|
33
|
+
import '../../components/Text/Text.mjs';
|
|
34
|
+
import '../../components/Checkbox/Checkbox.mjs';
|
|
35
|
+
import '../../components/CheckboxButton/CheckboxButton.mjs';
|
|
36
|
+
import '../../components/CheckboxGroup/CheckboxGroup.mjs';
|
|
37
|
+
import 'react-syntax-highlighter';
|
|
38
|
+
import '../../components/CopyButton/CopyButton.mjs';
|
|
39
|
+
import '../../components/ColumnLayout/ColumnLayout.mjs';
|
|
40
|
+
import '../../components/ComboBox/ComboBox.mjs';
|
|
41
|
+
import '../propsContext/components/ComponentPropsContextProvider.mjs';
|
|
42
|
+
import '../../components/Content/Content.mjs';
|
|
43
|
+
import '../../components/ContextMenu/ContextMenu.mjs';
|
|
44
|
+
import '../../components/MenuItem/MenuItem.mjs';
|
|
45
|
+
import '../../components/ContextMenu/components/ContextMenuTrigger/ContextMenuTrigger.mjs';
|
|
46
|
+
import '../../components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs';
|
|
47
|
+
import '../../components/ContextualHelp/ContextualHelp.mjs';
|
|
48
|
+
import '../../components/ContextualHelp/components/ContextualHelpTrigger/ContextualHelpTrigger.mjs';
|
|
49
|
+
import '../../components/CounterBadge/CounterBadge.mjs';
|
|
50
|
+
import '../../components/CountryOptions/CountryOptions.mjs';
|
|
51
|
+
import '../../components/DatePicker/DatePicker.mjs';
|
|
52
|
+
import '../../components/DateRangePicker/DateRangePicker.mjs';
|
|
53
|
+
import '../../components/FieldDescription/FieldDescription.mjs';
|
|
54
|
+
import '../../components/FieldError/FieldError.mjs';
|
|
55
|
+
import '../../components/FileCard/FileCard.mjs';
|
|
56
|
+
import '../../components/FileCardList/FileCardList.mjs';
|
|
57
|
+
import '../../components/FileDropZone/FileDropZone.mjs';
|
|
58
|
+
import '../../components/FileField/FileField.mjs';
|
|
59
|
+
import '../../components/Header/Header.mjs';
|
|
60
|
+
import '../../components/Image/Image.mjs';
|
|
61
|
+
import '../../components/Initials/Initials.mjs';
|
|
62
|
+
import '../../components/Label/Label.mjs';
|
|
63
|
+
import '../../components/LayoutCard/LayoutCard.mjs';
|
|
64
|
+
import '../../components/OverlayTrigger/components/MenuTrigger/MenuTrigger.mjs';
|
|
65
|
+
import '../../views/DialogTriggerView.mjs';
|
|
66
|
+
import '../../components/LightBox/LightBox.mjs';
|
|
67
|
+
import '../../components/Link/Link.mjs';
|
|
68
|
+
import 'invariant';
|
|
69
|
+
import '../../views/ListItemViewContentView.mjs';
|
|
70
|
+
import '../../views/ButtonView.mjs';
|
|
71
|
+
import '../../views/ContextMenuTriggerView.mjs';
|
|
72
|
+
import '../../components/List/components/ListSummary/ListSummary.mjs';
|
|
73
|
+
import '../../components/List/listContext.mjs';
|
|
74
|
+
import '../../components/List/List.mjs';
|
|
75
|
+
import 'react-markdown';
|
|
76
|
+
import 'remeda';
|
|
77
|
+
import 'remark-gfm';
|
|
78
|
+
import '../../components/MarkdownEditor/MarkdownEditor.mjs';
|
|
79
|
+
import '../../components/Message/Message.mjs';
|
|
80
|
+
import '../../components/MessageThread/MessageThread.mjs';
|
|
81
|
+
import '../../components/Modal/Modal.mjs';
|
|
82
|
+
import '../../components/Navigation/Navigation.mjs';
|
|
83
|
+
import '../../components/Navigation/components/NavigationGroup/NavigationGroup.mjs';
|
|
84
|
+
import '../../components/NotificationProvider/NotificationProvider.mjs';
|
|
85
|
+
import 'luxon';
|
|
86
|
+
import '../../components/NumberField/NumberField.mjs';
|
|
87
|
+
import '../../components/Option/Option.mjs';
|
|
88
|
+
import '../../views/OverlayContentView.mjs';
|
|
89
|
+
import '../../views/ClearPropsContextView.mjs';
|
|
90
|
+
import '../../views/LoadingSpinnerView.mjs';
|
|
91
|
+
import '../../components/PasswordCreationField/PasswordCreationField.mjs';
|
|
92
|
+
import '../../components/Popover/components/PopoverTrigger/PopoverTrigger.mjs';
|
|
93
|
+
import '../../components/Popover/Popover.mjs';
|
|
94
|
+
import '../../components/ProgressBar/ProgressBar.mjs';
|
|
95
|
+
import '../../components/RadioGroup/RadioGroup.mjs';
|
|
96
|
+
import '../../components/RadioGroup/components/Radio/Radio.mjs';
|
|
97
|
+
import '../../components/RadioGroup/components/RadioButton/RadioButton.mjs';
|
|
98
|
+
import '../../components/SearchField/SearchField.mjs';
|
|
99
|
+
import '../../components/Section/Section.mjs';
|
|
100
|
+
import '../../components/SegmentedControl/SegmentedControl.mjs';
|
|
101
|
+
import '../../components/SegmentedControl/components/Segment/Segment.mjs';
|
|
102
|
+
import '../../components/Select/Select.mjs';
|
|
103
|
+
import '../../components/SettingsProvider/SettingsProvider.mjs';
|
|
104
|
+
import '../../components/Slider/Slider.mjs';
|
|
105
|
+
import '../../components/Switch/Switch.mjs';
|
|
106
|
+
import '../../components/Tabs/Tabs.mjs';
|
|
107
|
+
import '../../components/Tabs/components/Tab/context.mjs';
|
|
108
|
+
import '../../components/TextArea/TextArea.mjs';
|
|
109
|
+
import '../../components/TextField/TextField.mjs';
|
|
110
|
+
import '../../components/TimeField/TimeField.mjs';
|
|
111
|
+
import '../../components/TranslationProvider/TranslationProvider.mjs';
|
|
12
112
|
|
|
13
|
-
const
|
|
14
|
-
const useFieldError = () => {
|
|
113
|
+
const useFieldError = (tunnelIdFromProps) => {
|
|
15
114
|
const id = useId();
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
115
|
+
const currentTunnelId = useProps("FieldError", {}).tunnelId;
|
|
116
|
+
const tunnelId = currentTunnelId ?? `${id}.fieldError`;
|
|
117
|
+
const fieldErrorCapturePropsContext = {
|
|
19
118
|
FieldError: {
|
|
119
|
+
___inherit: "preserve",
|
|
20
120
|
tunnelId,
|
|
21
121
|
className: formFieldStyles.fieldError
|
|
22
122
|
}
|
|
23
123
|
};
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
124
|
+
const FieldErrorCaptureContext = useMemo(
|
|
125
|
+
() => (props) => {
|
|
126
|
+
return /* @__PURE__ */ jsx(
|
|
127
|
+
PropsContextProvider,
|
|
128
|
+
{
|
|
129
|
+
levelMode: "keep",
|
|
130
|
+
props: fieldErrorCapturePropsContext,
|
|
131
|
+
dependencies: [tunnelId],
|
|
132
|
+
children: props.children
|
|
133
|
+
}
|
|
134
|
+
);
|
|
135
|
+
},
|
|
136
|
+
[tunnelId]
|
|
137
|
+
);
|
|
138
|
+
const FieldErrorView = () => {
|
|
139
|
+
if (currentTunnelId) {
|
|
31
140
|
return null;
|
|
32
141
|
}
|
|
33
|
-
return /* @__PURE__ */ jsx(
|
|
34
|
-
|
|
142
|
+
return /* @__PURE__ */ jsx(TunnelExit, { id: tunnelId, children: (children) => {
|
|
143
|
+
const childrenArray = React.Children.toArray(children);
|
|
144
|
+
return /* @__PURE__ */ jsx(ClearPropsContext, { children: childrenArray[0] });
|
|
145
|
+
} });
|
|
146
|
+
};
|
|
35
147
|
return {
|
|
36
|
-
|
|
37
|
-
FieldErrorView
|
|
38
|
-
FieldErrorResetContext
|
|
148
|
+
FieldErrorCaptureContext,
|
|
149
|
+
FieldErrorView
|
|
39
150
|
};
|
|
40
151
|
};
|
|
41
152
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldError.mjs","sources":["../../../../../../src/lib/hooks/useFieldError.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"useFieldError.mjs","sources":["../../../../../../src/lib/hooks/useFieldError.tsx"],"sourcesContent":["import React, { type FC, type PropsWithChildren, useId, useMemo } from \"react\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport formFieldStyles from \"@/components/FormField/FormField.module.scss\";\nimport { TunnelExit } from \"@mittwald/react-tunnel\";\nimport ClearPropsContext from \"@/lib/propsContext/components/ClearPropsContext\";\nimport { useProps } from \"@/index/default\";\n\nexport const useFieldError = (tunnelIdFromProps?: string) => {\n const id = useId();\n const currentTunnelId = useProps(\"FieldError\", {}).tunnelId;\n const tunnelId = tunnelIdFromProps ?? currentTunnelId ?? `${id}.fieldError`;\n\n const fieldErrorCapturePropsContext: PropsContext = {\n FieldError: {\n ___inherit: \"preserve\",\n tunnelId,\n className: formFieldStyles.fieldError,\n },\n };\n\n const FieldErrorCaptureContext: FC<PropsWithChildren> = useMemo(\n () => (props) => {\n return (\n <PropsContextProvider\n levelMode=\"keep\"\n props={fieldErrorCapturePropsContext}\n dependencies={[tunnelId]}\n >\n {props.children}\n </PropsContextProvider>\n );\n },\n [tunnelId],\n );\n\n const FieldErrorView = () => {\n if (currentTunnelId) {\n return null;\n }\n\n return (\n <TunnelExit id={tunnelId}>\n {(children) => {\n const childrenArray = React.Children.toArray(children);\n return <ClearPropsContext>{childrenArray[0]}</ClearPropsContext>;\n }}\n </TunnelExit>\n );\n };\n\n return {\n FieldErrorCaptureContext,\n FieldErrorView,\n } as const;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,aAAA,GAAgB,CAAC,iBAAA,KAA+B;AAC3D,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,eAAA,GAAkB,QAAA,CAAS,YAAA,EAAc,EAAE,CAAA,CAAE,QAAA;AACnD,EAAA,MAAM,QAAA,GAAgC,eAAA,IAAmB,CAAA,EAAG,EAAE,CAAA,WAAA,CAAA;AAE9D,EAAA,MAAM,6BAAA,GAA8C;AAAA,IAClD,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,UAAA;AAAA,MACZ,QAAA;AAAA,MACA,WAAW,eAAA,CAAgB;AAAA;AAC7B,GACF;AAEA,EAAA,MAAM,wBAAA,GAAkD,OAAA;AAAA,IACtD,MAAM,CAAC,KAAA,KAAU;AACf,MAAA,uBACE,GAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,MAAA;AAAA,UACV,KAAA,EAAO,6BAAA;AAAA,UACP,YAAA,EAAc,CAAC,QAAQ,CAAA;AAAA,UAEtB,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,OACT;AAAA,IAEJ,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,IAAI,eAAA,EAAiB;AACnB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAI,QAAA,EACb,WAAC,QAAA,KAAa;AACb,MAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AACrD,MAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,QAAA,EAAA,aAAA,CAAc,CAAC,CAAA,EAAE,CAAA;AAAA,IAC9C,CAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,wBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -6,6 +6,7 @@ import { PropsContextLevelProvider } from '../inherit/PropsContextLevelProvider.
|
|
|
6
6
|
import { mergePropsContext } from '../mergePropsContext.mjs';
|
|
7
7
|
import { propsContext, usePropsContext } from '../propsContext.mjs';
|
|
8
8
|
import { memo, useMemo } from 'react';
|
|
9
|
+
import { filterPreservedInheritEntries } from '../inherit/lib.mjs';
|
|
9
10
|
|
|
10
11
|
const Provider = memo(propsContext.Provider);
|
|
11
12
|
Provider.displayName = "PropsContextProviderInner";
|
|
@@ -23,7 +24,7 @@ const PropsContextProvider = memo((props) => {
|
|
|
23
24
|
);
|
|
24
25
|
const propsWithParentPropsContext = useMemo(
|
|
25
26
|
() => mergePropsContext(
|
|
26
|
-
clear ?
|
|
27
|
+
clear ? filterPreservedInheritEntries(parentPropsContext) : parentPropsContext,
|
|
27
28
|
providedProps,
|
|
28
29
|
readPropsContextLevel
|
|
29
30
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropsContextProvider.mjs","sources":["../../../../../../../src/lib/propsContext/components/PropsContextProvider.tsx"],"sourcesContent":["import { usePropsContextLevel } from \"@/lib/propsContext/inherit/propsContextLevel\";\nimport { PropsContextLevelProvider } from \"@/lib/propsContext/inherit/PropsContextLevelProvider\";\nimport type { PropsContextLevelMode } from \"@/lib/propsContext/inherit/types\";\nimport mergePropsContext from \"@/lib/propsContext/mergePropsContext\";\nimport { propsContext, usePropsContext } from \"@/lib/propsContext/propsContext\";\nimport type { PropsContext as PropsContextShape } from \"@/lib/propsContext/types\";\nimport type { DependencyList, FC, PropsWithChildren } from \"react\";\nimport { memo, useMemo } from \"react\";\n\ninterface Props extends PropsWithChildren {\n props: PropsContextShape;\n dependencies?: DependencyList;\n clear?: boolean;\n levelMode?: PropsContextLevelMode;\n}\n\nconst Provider = memo(propsContext.Provider);\nProvider.displayName = \"PropsContextProviderInner\";\n\nexport const PropsContextProvider: FC<Props> = memo((props) => {\n const {\n props: providedProps,\n dependencies = [],\n levelMode = \"reset\",\n children,\n clear = false,\n } = props;\n\n const parentPropsContext = usePropsContext();\n\n const readPropsContextLevel = usePropsContextLevel(\n levelMode === \"keep\" ? \"decrement\" : levelMode,\n );\n\n const propsWithParentPropsContext = useMemo(\n () =>\n mergePropsContext(\n clear
|
|
1
|
+
{"version":3,"file":"PropsContextProvider.mjs","sources":["../../../../../../../src/lib/propsContext/components/PropsContextProvider.tsx"],"sourcesContent":["import { usePropsContextLevel } from \"@/lib/propsContext/inherit/propsContextLevel\";\nimport { PropsContextLevelProvider } from \"@/lib/propsContext/inherit/PropsContextLevelProvider\";\nimport type { PropsContextLevelMode } from \"@/lib/propsContext/inherit/types\";\nimport mergePropsContext from \"@/lib/propsContext/mergePropsContext\";\nimport { propsContext, usePropsContext } from \"@/lib/propsContext/propsContext\";\nimport type { PropsContext as PropsContextShape } from \"@/lib/propsContext/types\";\nimport type { DependencyList, FC, PropsWithChildren } from \"react\";\nimport { memo, useMemo } from \"react\";\nimport { filterPreservedInheritEntries } from \"@/lib/propsContext/inherit/lib\";\n\ninterface Props extends PropsWithChildren {\n props: PropsContextShape;\n dependencies?: DependencyList;\n clear?: boolean;\n levelMode?: PropsContextLevelMode;\n}\n\nconst Provider = memo(propsContext.Provider);\nProvider.displayName = \"PropsContextProviderInner\";\n\nexport const PropsContextProvider: FC<Props> = memo((props) => {\n const {\n props: providedProps,\n dependencies = [],\n levelMode = \"reset\",\n children,\n clear = false,\n } = props;\n\n const parentPropsContext = usePropsContext();\n\n const readPropsContextLevel = usePropsContextLevel(\n levelMode === \"keep\" ? \"decrement\" : levelMode,\n );\n\n const propsWithParentPropsContext = useMemo(\n () =>\n mergePropsContext(\n clear\n ? filterPreservedInheritEntries(parentPropsContext)\n : parentPropsContext,\n providedProps,\n readPropsContextLevel,\n ),\n [parentPropsContext, clear, readPropsContextLevel, ...dependencies],\n );\n\n return (\n <PropsContextLevelProvider mode={levelMode}>\n <Provider value={propsWithParentPropsContext}>{children}</Provider>\n </PropsContextLevelProvider>\n );\n});\n\nPropsContextProvider.displayName = \"PropsContextProvider\";\n\nexport default PropsContextProvider;\n"],"names":[],"mappings":";;;;;;;;AAiBA,MAAM,QAAA,GAAW,IAAA,CAAK,YAAA,CAAa,QAAQ,CAAA;AAC3C,QAAA,CAAS,WAAA,GAAc,2BAAA;AAEhB,MAAM,oBAAA,GAAkC,IAAA,CAAK,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO,aAAA;AAAA,IACP,eAAe,EAAC;AAAA,IAChB,SAAA,GAAY,OAAA;AAAA,IACZ,QAAA;AAAA,IACA,KAAA,GAAQ;AAAA,GACV,GAAI,KAAA;AAEJ,EAAA,MAAM,qBAAqB,eAAA,EAAgB;AAE3C,EAAA,MAAM,qBAAA,GAAwB,oBAAA;AAAA,IAC5B,SAAA,KAAc,SAAS,WAAA,GAAc;AAAA,GACvC;AAEA,EAAA,MAAM,2BAAA,GAA8B,OAAA;AAAA,IAClC,MACE,iBAAA;AAAA,MACE,KAAA,GACI,6BAAA,CAA8B,kBAAkB,CAAA,GAChD,kBAAA;AAAA,MACJ,aAAA;AAAA,MACA;AAAA,KACF;AAAA,IACF,CAAC,kBAAA,EAAoB,KAAA,EAAO,qBAAA,EAAuB,GAAG,YAAY;AAAA,GACpE;AAEA,EAAA,uBACE,GAAA,CAAC,6BAA0B,IAAA,EAAM,SAAA,EAC/B,8BAAC,QAAA,EAAA,EAAS,KAAA,EAAO,2BAAA,EAA8B,QAAA,EAAS,CAAA,EAC1D,CAAA;AAEJ,CAAC;AAED,oBAAA,CAAqB,WAAA,GAAc,sBAAA;;;;"}
|
|
@@ -7,7 +7,7 @@ function isMaxRecursionLevelProp(something) {
|
|
|
7
7
|
}
|
|
8
8
|
const getMaxRecursionLevel = (props) => {
|
|
9
9
|
if (isMaxRecursionLevelProp(props)) {
|
|
10
|
-
return props[inheritPropsContextKey]
|
|
10
|
+
return props[inheritPropsContextKey] ? Infinity : 0;
|
|
11
11
|
}
|
|
12
12
|
return 0;
|
|
13
13
|
};
|
|
@@ -25,6 +25,15 @@ const getLevelAfterModeApplied = (currentLevel, mode) => {
|
|
|
25
25
|
return currentLevel;
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
|
+
const filterPreservedInheritEntries = (currentPropsContext) => {
|
|
29
|
+
const resultPropsContext = {};
|
|
30
|
+
for (const [key, value] of Object.entries(currentPropsContext)) {
|
|
31
|
+
if (value && typeof value === "object" && !Array.isArray(value) && value.___inherit && value.___inherit === "preserve") {
|
|
32
|
+
resultPropsContext[key] = value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return resultPropsContext;
|
|
36
|
+
};
|
|
28
37
|
|
|
29
|
-
export { getLevelAfterModeApplied, getMaxRecursionLevel, isInheritedPropsContextKey, isMaxRecursionLevelProp };
|
|
38
|
+
export { filterPreservedInheritEntries, getLevelAfterModeApplied, getMaxRecursionLevel, isInheritedPropsContextKey, isMaxRecursionLevelProp };
|
|
30
39
|
//# sourceMappingURL=lib.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.mjs","sources":["../../../../../../../src/lib/propsContext/inherit/lib.ts"],"sourcesContent":["import {\n inheritPropsContextKey,\n type InheritPropsContextSettings,\n type PropsContextLevelMode,\n} from \"@/lib/propsContext/inherit/types\";\n\nexport function isMaxRecursionLevelProp(\n something: unknown,\n): something is InheritPropsContextSettings {\n return (\n !!something &&\n typeof something === \"object\" &&\n inheritPropsContextKey in something\n );\n}\n\nexport const getMaxRecursionLevel = (props: unknown) => {\n if (isMaxRecursionLevelProp(props)) {\n return props[inheritPropsContextKey]
|
|
1
|
+
{"version":3,"file":"lib.mjs","sources":["../../../../../../../src/lib/propsContext/inherit/lib.ts"],"sourcesContent":["import {\n inheritPropsContextKey,\n type InheritPropsContextSettings,\n type PropsContextLevelMode,\n} from \"@/lib/propsContext/inherit/types\";\nimport type { PropsContext as PropsContextShape } from \"@/lib/propsContext\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\n\nexport function isMaxRecursionLevelProp(\n something: unknown,\n): something is InheritPropsContextSettings {\n return (\n !!something &&\n typeof something === \"object\" &&\n inheritPropsContextKey in something\n );\n}\n\nexport const getMaxRecursionLevel = (props: unknown) => {\n if (isMaxRecursionLevelProp(props)) {\n return props[inheritPropsContextKey] ? Infinity : 0;\n }\n return 0;\n};\n\nexport const isInheritedPropsContextKey = (key: unknown) =>\n key === inheritPropsContextKey;\n\nexport const getLevelAfterModeApplied = (\n currentLevel: number,\n mode: PropsContextLevelMode,\n) => {\n switch (mode) {\n case \"increment\":\n return currentLevel + 1;\n case \"decrement\":\n return currentLevel - 1;\n case \"reset\":\n return 0;\n case \"keep\":\n default:\n return currentLevel;\n }\n};\n\nexport const filterPreservedInheritEntries = (\n currentPropsContext: PropsContextShape,\n): Partial<PropsContextShape> => {\n const resultPropsContext: Partial<PropsContextShape> = {};\n\n for (const [key, value] of Object.entries(currentPropsContext)) {\n if (\n value &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n value.___inherit &&\n value.___inherit === \"preserve\"\n ) {\n resultPropsContext[key as FlowComponentName] = value;\n }\n }\n\n return resultPropsContext;\n};\n"],"names":[],"mappings":";;AAQO,SAAS,wBACd,SAAA,EAC0C;AAC1C,EAAA,OACE,CAAC,CAAC,SAAA,IACF,OAAO,SAAA,KAAc,YACrB,sBAAA,IAA0B,SAAA;AAE9B;AAEO,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAAmB;AACtD,EAAA,IAAI,uBAAA,CAAwB,KAAK,CAAA,EAAG;AAClC,IAAA,OAAO,KAAA,CAAM,sBAAsB,CAAA,GAAI,QAAA,GAAW,CAAA;AAAA,EACpD;AACA,EAAA,OAAO,CAAA;AACT;AAEO,MAAM,0BAAA,GAA6B,CAAC,GAAA,KACzC,GAAA,KAAQ;AAEH,MAAM,wBAAA,GAA2B,CACtC,YAAA,EACA,IAAA,KACG;AACH,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,WAAA;AACH,MAAA,OAAO,YAAA,GAAe,CAAA;AAAA,IACxB,KAAK,WAAA;AACH,MAAA,OAAO,YAAA,GAAe,CAAA;AAAA,IACxB,KAAK,OAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,MAAA;AAAA,IACL;AACE,MAAA,OAAO,YAAA;AAAA;AAEb;AAEO,MAAM,6BAAA,GAAgC,CAC3C,mBAAA,KAC+B;AAC/B,EAAA,MAAM,qBAAiD,EAAC;AAExD,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,mBAAmB,CAAA,EAAG;AAC9D,IAAA,IACE,KAAA,IACA,OAAO,KAAA,KAAU,QAAA,IACjB,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IACpB,KAAA,CAAM,UAAA,IACN,KAAA,CAAM,eAAe,UAAA,EACrB;AACA,MAAA,kBAAA,CAAmB,GAAwB,CAAA,GAAI,KAAA;AAAA,IACjD;AAAA,EACF;AAEA,EAAA,OAAO,kBAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":["../../../../../../../src/lib/propsContext/inherit/types.ts"],"sourcesContent":["/** @internal */\nexport const inheritPropsContextKey = \"___inherit\" as const;\n\n/** @internal */\nexport type InheritPropsContextKey = typeof inheritPropsContextKey;\n\nexport interface InheritPropsContextSettings {\n [inheritPropsContextKey]?: boolean;\n}\n\nexport const inheritProps: InheritPropsContextSettings = {\n [inheritPropsContextKey]: true,\n};\n\nexport type PropsContextLevelMode =\n | \"reset\"\n | \"increment\"\n | \"decrement\"\n | \"keep\";\n"],"names":[],"mappings":"AACO,MAAM,sBAAA,GAAyB;AAS/B,MAAM,YAAA,GAA4C;AAAA,EACvD,CAAC,sBAAsB,GAAG;AAC5B;;;;"}
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../../../../../../src/lib/propsContext/inherit/types.ts"],"sourcesContent":["/** @internal */\nexport const inheritPropsContextKey = \"___inherit\" as const;\n\n/** @internal */\nexport type InheritPropsContextKey = typeof inheritPropsContextKey;\n\nexport interface InheritPropsContextSettings {\n [inheritPropsContextKey]?: boolean | \"preserve\";\n}\n\nexport const inheritProps: InheritPropsContextSettings = {\n [inheritPropsContextKey]: true,\n};\n\nexport type PropsContextLevelMode =\n | \"reset\"\n | \"increment\"\n | \"decrement\"\n | \"keep\";\n"],"names":[],"mappings":"AACO,MAAM,sBAAA,GAAyB;AAS/B,MAAM,YAAA,GAA4C;AAAA,EACvD,CAAC,sBAAsB,GAAG;AAC5B;;;;"}
|