@mittwald/flow-react-components 0.2.0-alpha.1024 → 0.2.0-alpha.1026
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 +15629 -15515
- package/dist/css/all-layered.css +1 -1
- package/dist/css/all.css +1 -1
- package/dist/js/default.mjs +1 -1
- package/dist/js/flr-universal.mjs +2 -1
- package/dist/js/flr-universal.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Button/Button.mjs +21 -6
- package/dist/js/packages/components/src/components/Button/Button.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Link/Link.mjs +15 -2
- package/dist/js/packages/components/src/components/Link/Link.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Link/Link.module.scss.mjs +6 -4
- package/dist/js/packages/components/src/components/Link/Link.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Modal/Modal.mjs +1 -1
- package/dist/js/packages/components/src/lib/componentFactory/flowComponent.mjs +1 -1
- package/dist/js/packages/components/src/views/ClearPropsContextView.mjs +1 -1
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/Link/Link.d.ts.map +1 -1
- package/dist/types/components/Link/stories/Default.stories.d.ts +1 -0
- package/dist/types/components/Link/stories/Default.stories.d.ts.map +1 -1
- package/package.json +9 -9
package/dist/js/default.mjs
CHANGED
|
@@ -29,6 +29,7 @@ export { Chat } from './packages/components/src/components/Chat/Chat.mjs';
|
|
|
29
29
|
export { Checkbox } from './packages/components/src/components/Checkbox/Checkbox.mjs';
|
|
30
30
|
export { CheckboxButton } from './packages/components/src/components/CheckboxButton/CheckboxButton.mjs';
|
|
31
31
|
export { CheckboxGroup } from './packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs';
|
|
32
|
+
export { ClearPropsContext } from './packages/components/src/lib/propsContext/components/ClearPropsContext.mjs';
|
|
32
33
|
export { CodeBlock } from './packages/components/src/components/CodeBlock/CodeBlock.mjs';
|
|
33
34
|
export { CodeEditor } from './packages/components/src/components/CodeEditor/CodeEditor.mjs';
|
|
34
35
|
export { Color } from './packages/components/src/components/Color/Color.mjs';
|
|
@@ -286,7 +287,6 @@ export { CartesianGrid } from './packages/components/src/components/CartesianCha
|
|
|
286
287
|
export { ChartGrid, TypedChartGrid } from './packages/components/src/components/CartesianChart/components/ChartGrid/ChartGrid.mjs';
|
|
287
288
|
export { ChartLegend, TypedChartLegend } from './packages/components/src/components/CartesianChart/components/ChartLegend/ChartLegend.mjs';
|
|
288
289
|
export { ChartTooltip } from './packages/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs';
|
|
289
|
-
export { ClearPropsContext } from './packages/components/src/lib/propsContext/components/ClearPropsContext.mjs';
|
|
290
290
|
export { ComponentPropsContextProvider } from './packages/components/src/lib/propsContext/components/ComponentPropsContextProvider.mjs';
|
|
291
291
|
export { ContextMenuContent } from './packages/components/src/components/ContextMenu/components/ContextMenuContent/ContextMenuContent.mjs';
|
|
292
292
|
export { ContextMenuSection } from './packages/components/src/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs';
|
|
@@ -136,6 +136,8 @@ export { Action } from './packages/components/src/components/Action/Action.mjs';
|
|
|
136
136
|
export { ActionBatch } from './packages/components/src/components/Action/ActionBatch.mjs';
|
|
137
137
|
import './packages/components/src/components/Activity/Activity.mjs';
|
|
138
138
|
export { BrowserOnly } from './packages/components/src/components/BrowserOnly/BrowserOnly.mjs';
|
|
139
|
+
import 'react/jsx-runtime';
|
|
140
|
+
import 'react';
|
|
139
141
|
import './packages/components/src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.mjs';
|
|
140
142
|
export { CountryOptions } from './packages/components/src/components/CountryOptions/CountryOptions.mjs';
|
|
141
143
|
export { DeprecationWarningProvider } from './packages/components/src/components/DeprecationWarningProvider/DeprecationWarningProvider.mjs';
|
|
@@ -152,7 +154,6 @@ import './packages/components/src/components/TranslationProvider/TranslationProv
|
|
|
152
154
|
import 'remeda';
|
|
153
155
|
import 'intl-messageformat';
|
|
154
156
|
import '@react-aria/i18n';
|
|
155
|
-
import 'react';
|
|
156
157
|
export { useLanguage } from './packages/components/src/lib/hooks/useLanguage.mjs';
|
|
157
158
|
export { Wrap } from './packages/components/src/components/Wrap/Wrap.mjs';
|
|
158
159
|
export { useOnChange } from './packages/components/src/lib/hooks/useOnChange.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
-
import { jsxs,
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import styles from './Button.module.scss.mjs';
|
|
5
5
|
import * as Aria from 'react-aria-components';
|
|
6
6
|
import clsx from 'clsx';
|
|
@@ -13,6 +13,7 @@ import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
|
|
|
13
13
|
import { LoadingSpinner } from '../LoadingSpinner/LoadingSpinner.mjs';
|
|
14
14
|
import { useAriaAnnounceActionState } from '../Action/lib/ariaLive.mjs';
|
|
15
15
|
import { extractTextFromFirstChild } from '../../lib/react/remote.mjs';
|
|
16
|
+
import { filterDOMProps } from '@react-aria/utils';
|
|
16
17
|
|
|
17
18
|
const disablePendingProps = (props) => {
|
|
18
19
|
if (props.isPending || props.isSucceeded || props.isFailed || props["aria-disabled"] || props.isReadOnly) {
|
|
@@ -57,6 +58,7 @@ const Button = flowComponent("Button", (props) => {
|
|
|
57
58
|
ariaSlot: slot,
|
|
58
59
|
unstyled,
|
|
59
60
|
isReadOnly,
|
|
61
|
+
elementType,
|
|
60
62
|
...restProps
|
|
61
63
|
} = props;
|
|
62
64
|
const rootClassName = unstyled ? className : clsx(
|
|
@@ -98,7 +100,23 @@ const Button = flowComponent("Button", (props) => {
|
|
|
98
100
|
};
|
|
99
101
|
const stateIcon = isSucceeded ? /* @__PURE__ */ jsx(IconSucceeded, { size, className: styles.stateIcon, color: "success" }) : isFailed ? /* @__PURE__ */ jsx(IconFailed, { size, className: styles.stateIcon, color: "danger" }) : isPending ? /* @__PURE__ */ jsx(LoadingSpinner, { size, className: styles.stateIcon }) : void 0;
|
|
100
102
|
const isStringContent = extractTextFromFirstChild(children) !== void 0;
|
|
101
|
-
|
|
103
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
104
|
+
/* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(Wrap, { if: !unstyled, children: /* @__PURE__ */ jsx("span", { className: styles.content, children: /* @__PURE__ */ jsx(Wrap, { if: isStringContent, children: /* @__PURE__ */ jsx(Text, { className: styles.text, children }) }) }) }) }),
|
|
105
|
+
stateIcon
|
|
106
|
+
] });
|
|
107
|
+
if (elementType === "span") {
|
|
108
|
+
const spanProps = filterDOMProps(restProps, { global: true });
|
|
109
|
+
return /* @__PURE__ */ jsx(
|
|
110
|
+
"span",
|
|
111
|
+
{
|
|
112
|
+
...spanProps,
|
|
113
|
+
"data-disabled": restProps.isDisabled || void 0,
|
|
114
|
+
className: typeof rootClassName === "string" ? rootClassName : void 0,
|
|
115
|
+
children: content
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
return /* @__PURE__ */ jsx(
|
|
102
120
|
Aria.Button,
|
|
103
121
|
{
|
|
104
122
|
className: rootClassName,
|
|
@@ -106,10 +124,7 @@ const Button = flowComponent("Button", (props) => {
|
|
|
106
124
|
slot,
|
|
107
125
|
...isReadOnly === true ? { "data-readonly": true } : {},
|
|
108
126
|
...restProps,
|
|
109
|
-
children:
|
|
110
|
-
/* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(Wrap, { if: !unstyled, children: /* @__PURE__ */ jsx("span", { className: styles.content, children: /* @__PURE__ */ jsx(Wrap, { if: isStringContent, children: /* @__PURE__ */ jsx(Text, { className: styles.text, children }) }) }) }) }),
|
|
111
|
-
stateIcon
|
|
112
|
-
]
|
|
127
|
+
children: content
|
|
113
128
|
}
|
|
114
129
|
);
|
|
115
130
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.mjs","sources":["../../../../../../../src/components/Button/Button.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./Button.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport { IconFailed, IconSucceeded } from \"@/components/Icon/components/icons\";\nimport { Wrap } from \"@/components/Wrap\";\nimport { Text } from \"@/components/Text\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport LoadingSpinner from \"@/components/LoadingSpinner/LoadingSpinner\";\nimport { useAriaAnnounceActionState } from \"@/components/Action/lib/ariaLive\";\nimport { extractTextFromFirstChild } from \"@/lib/react/remote\";\nimport type { AlphaColor } from \"@/lib/types/props\";\n\nexport interface ButtonProps\n extends\n PropsWithChildren<Aria.ButtonProps>,\n FlowComponentProps<HTMLButtonElement> {\n /** Slot for button placement in action groups. */\n slot?: string;\n /** The color of the button. @default \"primary\" */\n color?: \"primary\" | \"accent\" | \"secondary\" | \"danger\" | AlphaColor;\n /** The visual variant of the button. @default \"solid\" */\n variant?: \"plain\" | \"solid\" | \"soft\" | \"outline\";\n /** The size of the button. @default \"m\" */\n size?: \"m\" | \"s\";\n /** Disables button but keeps it focusable. */\n \"aria-disabled\"?: boolean;\n /** Whether the button is in a pending state. */\n isPending?: boolean;\n /** Whether the button is in a succeeded state. */\n isSucceeded?: boolean;\n /** Whether the button is in a failed state. */\n isFailed?: boolean;\n /** Whether the button is in a read only state. */\n isReadOnly?: boolean;\n /** @internal */\n unstyled?: boolean;\n /** @internal */\n ariaSlot?: string | null;\n}\n\nconst disablePendingProps = (props: ButtonProps) => {\n if (\n props.isPending ||\n props.isSucceeded ||\n props.isFailed ||\n props[\"aria-disabled\"] ||\n props.isReadOnly\n ) {\n props = { ...props };\n\n const mutedActionHandler = (e: unknown) => {\n if (e && typeof e === \"object\") {\n // stopPropagation is the default behavior in React Aria\n const isReactAriaEvent =\n \"continuePropagation\" in e &&\n typeof e.continuePropagation === \"function\";\n\n if (\n !isReactAriaEvent &&\n \"stopPropagation\" in e &&\n typeof e.stopPropagation === \"function\"\n ) {\n e.stopPropagation();\n }\n if (\"preventDefault\" in e && typeof e.preventDefault === \"function\") {\n e.preventDefault();\n }\n }\n\n return false;\n };\n\n props.onClick = mutedActionHandler;\n props.onPress = mutedActionHandler;\n props.onPressStart = mutedActionHandler;\n props.onPressEnd = mutedActionHandler;\n props.onPressChange = mutedActionHandler;\n props.onPressUp = mutedActionHandler;\n props.onKeyDown = mutedActionHandler;\n props.onKeyUp = mutedActionHandler;\n }\n\n return props;\n};\n\n/** @flr-generate all */\nexport const Button = flowComponent(\"Button\", (props) => {\n props = disablePendingProps(props);\n\n const {\n color = \"primary\",\n variant = \"solid\",\n children,\n className,\n size = \"m\",\n isPending,\n isSucceeded,\n isFailed,\n \"aria-disabled\": ariaDisabled,\n ref,\n slot: ignoredSlotProp,\n ariaSlot: slot,\n unstyled,\n isReadOnly,\n ...restProps\n } = props;\n\n const rootClassName = unstyled\n ? className\n : clsx(\n styles.button,\n isPending && styles.isPending,\n isSucceeded && styles.isSucceeded,\n isFailed && styles.isFailed,\n size === \"s\" && styles[\"size-s\"],\n styles[color],\n styles[variant],\n /**\n * Workaround warning: The Aria.Button does not support \"aria-disabled\"\n * by now, so this Button will be visually disabled via CSS.\n */\n ariaDisabled && styles.ariaDisabled,\n className,\n );\n\n useAriaAnnounceActionState(\n isPending\n ? \"isPending\"\n : isSucceeded\n ? \"isSucceeded\"\n : isFailed\n ? \"isFailed\"\n : \"isIdle\",\n );\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n \"aria-hidden\": true,\n size,\n },\n Text: {\n className: styles.text,\n },\n Avatar: {\n className: styles.avatar,\n },\n CounterBadge: {\n className: styles.counterBadge,\n },\n Image: {\n className: styles.image,\n },\n };\n\n const stateIcon = isSucceeded ? (\n <IconSucceeded size={size} className={styles.stateIcon} color=\"success\" />\n ) : isFailed ? (\n <IconFailed size={size} className={styles.stateIcon} color=\"danger\" />\n ) : isPending ? (\n <LoadingSpinner size={size} className={styles.stateIcon} />\n ) : undefined;\n\n const isStringContent = extractTextFromFirstChild(children) !== undefined;\n\n return (\n <Aria.Button\n className={rootClassName}\n ref={ref}\n slot={slot}\n {...(isReadOnly === true ? { \"data-readonly\": true } : {})}\n {...restProps}\n >\n <PropsContextProvider props={propsContext}>\n <Wrap if={!unstyled}>\n <span className={styles.content}>\n <Wrap if={isStringContent}>\n <Text className={styles.text}>{children}</Text>\n </Wrap>\n </span>\n </Wrap>\n </PropsContextProvider>\n {stateIcon}\n </Aria.Button>\n );\n});\n\nexport default Button;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.mjs","sources":["../../../../../../../src/components/Button/Button.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./Button.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport { IconFailed, IconSucceeded } from \"@/components/Icon/components/icons\";\nimport { Wrap } from \"@/components/Wrap\";\nimport { Text } from \"@/components/Text\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport LoadingSpinner from \"@/components/LoadingSpinner/LoadingSpinner\";\nimport { useAriaAnnounceActionState } from \"@/components/Action/lib/ariaLive\";\nimport { extractTextFromFirstChild } from \"@/lib/react/remote\";\nimport type { AlphaColor } from \"@/lib/types/props\";\nimport { filterDOMProps } from \"@react-aria/utils\";\n\nexport interface ButtonProps\n extends\n PropsWithChildren<Aria.ButtonProps>,\n FlowComponentProps<HTMLButtonElement> {\n /** Slot for button placement in action groups. */\n slot?: string;\n /** The color of the button. @default \"primary\" */\n color?: \"primary\" | \"accent\" | \"secondary\" | \"danger\" | AlphaColor;\n /** The visual variant of the button. @default \"solid\" */\n variant?: \"plain\" | \"solid\" | \"soft\" | \"outline\";\n /** The size of the button. @default \"m\" */\n size?: \"m\" | \"s\";\n /** Disables button but keeps it focusable. */\n \"aria-disabled\"?: boolean;\n /** Whether the button is in a pending state. */\n isPending?: boolean;\n /** Whether the button is in a succeeded state. */\n isSucceeded?: boolean;\n /** Whether the button is in a failed state. */\n isFailed?: boolean;\n /** Whether the button is in a read only state. */\n isReadOnly?: boolean;\n /** @internal */\n unstyled?: boolean;\n /** @internal */\n ariaSlot?: string | null;\n /** @internal */\n elementType?: \"button\" | \"span\";\n}\n\nconst disablePendingProps = (props: ButtonProps) => {\n if (\n props.isPending ||\n props.isSucceeded ||\n props.isFailed ||\n props[\"aria-disabled\"] ||\n props.isReadOnly\n ) {\n props = { ...props };\n\n const mutedActionHandler = (e: unknown) => {\n if (e && typeof e === \"object\") {\n // stopPropagation is the default behavior in React Aria\n const isReactAriaEvent =\n \"continuePropagation\" in e &&\n typeof e.continuePropagation === \"function\";\n\n if (\n !isReactAriaEvent &&\n \"stopPropagation\" in e &&\n typeof e.stopPropagation === \"function\"\n ) {\n e.stopPropagation();\n }\n if (\"preventDefault\" in e && typeof e.preventDefault === \"function\") {\n e.preventDefault();\n }\n }\n\n return false;\n };\n\n props.onClick = mutedActionHandler;\n props.onPress = mutedActionHandler;\n props.onPressStart = mutedActionHandler;\n props.onPressEnd = mutedActionHandler;\n props.onPressChange = mutedActionHandler;\n props.onPressUp = mutedActionHandler;\n props.onKeyDown = mutedActionHandler;\n props.onKeyUp = mutedActionHandler;\n }\n\n return props;\n};\n\n/** @flr-generate all */\nexport const Button = flowComponent(\"Button\", (props) => {\n props = disablePendingProps(props);\n\n const {\n color = \"primary\",\n variant = \"solid\",\n children,\n className,\n size = \"m\",\n isPending,\n isSucceeded,\n isFailed,\n \"aria-disabled\": ariaDisabled,\n ref,\n slot: ignoredSlotProp,\n ariaSlot: slot,\n unstyled,\n isReadOnly,\n elementType,\n ...restProps\n } = props;\n\n const rootClassName = unstyled\n ? className\n : clsx(\n styles.button,\n isPending && styles.isPending,\n isSucceeded && styles.isSucceeded,\n isFailed && styles.isFailed,\n size === \"s\" && styles[\"size-s\"],\n styles[color],\n styles[variant],\n /**\n * Workaround warning: The Aria.Button does not support \"aria-disabled\"\n * by now, so this Button will be visually disabled via CSS.\n */\n ariaDisabled && styles.ariaDisabled,\n className,\n );\n\n useAriaAnnounceActionState(\n isPending\n ? \"isPending\"\n : isSucceeded\n ? \"isSucceeded\"\n : isFailed\n ? \"isFailed\"\n : \"isIdle\",\n );\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n \"aria-hidden\": true,\n size,\n },\n Text: {\n className: styles.text,\n },\n Avatar: {\n className: styles.avatar,\n },\n CounterBadge: {\n className: styles.counterBadge,\n },\n Image: {\n className: styles.image,\n },\n };\n\n const stateIcon = isSucceeded ? (\n <IconSucceeded size={size} className={styles.stateIcon} color=\"success\" />\n ) : isFailed ? (\n <IconFailed size={size} className={styles.stateIcon} color=\"danger\" />\n ) : isPending ? (\n <LoadingSpinner size={size} className={styles.stateIcon} />\n ) : undefined;\n\n const isStringContent = extractTextFromFirstChild(children) !== undefined;\n\n const content = (\n <>\n <PropsContextProvider props={propsContext}>\n <Wrap if={!unstyled}>\n <span className={styles.content}>\n <Wrap if={isStringContent}>\n <Text className={styles.text}>{children}</Text>\n </Wrap>\n </span>\n </Wrap>\n </PropsContextProvider>\n {stateIcon}\n </>\n );\n\n if (elementType === \"span\") {\n const spanProps = filterDOMProps(restProps, { global: true });\n\n return (\n <span\n {...spanProps}\n data-disabled={restProps.isDisabled || undefined}\n className={\n typeof rootClassName === \"string\" ? rootClassName : undefined\n }\n >\n {content}\n </span>\n );\n }\n\n return (\n <Aria.Button\n className={rootClassName}\n ref={ref}\n slot={slot}\n {...(isReadOnly === true ? { \"data-readonly\": true } : {})}\n {...restProps}\n >\n {content}\n </Aria.Button>\n );\n});\n\nexport default Button;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useContext } from 'react';
|
|
5
5
|
import * as Aria from 'react-aria-components';
|
|
6
|
+
import { dynamic } from '../../lib/propsContext/dynamicProps/dynamic.mjs';
|
|
6
7
|
import { PropsContextProvider } from '../../lib/propsContext/components/PropsContextProvider.mjs';
|
|
7
8
|
import styles from './Link.module.scss.mjs';
|
|
8
9
|
import clsx from 'clsx';
|
|
9
10
|
import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
|
|
10
11
|
import { isAlphaColor } from '../../lib/types/props.mjs';
|
|
11
12
|
import { linkContext } from './context.mjs';
|
|
13
|
+
import { Text } from '../Text/Text.mjs';
|
|
12
14
|
import { LinkIcon } from './components/LinkIcon/LinkIcon.mjs';
|
|
13
15
|
import { useRouter, handleLinkClick } from '@react-aria/utils';
|
|
14
16
|
|
|
@@ -54,7 +56,18 @@ const Link = flowComponent("Link", (props) => {
|
|
|
54
56
|
className: styles.alertText
|
|
55
57
|
},
|
|
56
58
|
AccentBox: { className: styles.accentBox },
|
|
57
|
-
LayoutCard: { className: styles.layoutCard }
|
|
59
|
+
LayoutCard: { className: styles.layoutCard },
|
|
60
|
+
Button: {
|
|
61
|
+
elementType: "span",
|
|
62
|
+
className: styles.button,
|
|
63
|
+
size: props.size,
|
|
64
|
+
color: props.color === "default" ? void 0 : props.color,
|
|
65
|
+
isDisabled: props.isDisabled,
|
|
66
|
+
children: dynamic((buttonProps) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
67
|
+
/* @__PURE__ */ jsx(Text, { children: buttonProps.children }),
|
|
68
|
+
/* @__PURE__ */ jsx(LinkIcon, { ...props })
|
|
69
|
+
] }))
|
|
70
|
+
}
|
|
58
71
|
};
|
|
59
72
|
const unsupportedTypingsLinkProps = ariaCurrent ? {
|
|
60
73
|
"aria-current": true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.mjs","sources":["../../../../../../../src/components/Link/Link.tsx"],"sourcesContent":["import type {\n ComponentProps,\n ComponentType,\n CSSProperties,\n MouseEvent,\n PropsWithChildren,\n} from \"react\";\nimport { useContext } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport type
|
|
1
|
+
{"version":3,"file":"Link.mjs","sources":["../../../../../../../src/components/Link/Link.tsx"],"sourcesContent":["import type {\n ComponentProps,\n ComponentType,\n CSSProperties,\n MouseEvent,\n PropsWithChildren,\n} from \"react\";\nimport { useContext } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { dynamic, type PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport styles from \"./Link.module.scss\";\nimport clsx from \"clsx\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport {\n type AlphaColor,\n isAlphaColor,\n type PropsWithClassName,\n} from \"@/lib/types/props\";\nimport { linkContext } from \"@/components/Link/context\";\nimport { Text } from \"@/components/Text\";\nimport { LinkIcon } from \"@/components/Link/components/LinkIcon\";\nimport { handleLinkClick, useRouter } from \"@react-aria/utils\";\n\nexport interface LinkProps\n extends\n PropsWithChildren<Omit<Aria.LinkProps, \"children\" | \"slot\" | \"className\">>,\n FlowComponentProps<HTMLAnchorElement>,\n PropsWithClassName {\n /** Whether the link should be styled for being displayed inside a text. */\n inline?: boolean;\n /** An alternative link component. */\n linkComponent?: ComponentType<Omit<ComponentProps<\"a\">, \"ref\">>;\n /** The color of the link. @default \"default\" */\n color?: \"default\" | AlphaColor;\n \"aria-current\"?: string;\n slot?: string;\n /** The whiteSpace css value of the element. */\n whiteSpace?: CSSProperties[\"whiteSpace\"];\n /** The size of the element. @default \"m\" */\n size?: \"s\" | \"m\";\n /** @internal */\n unstyled?: boolean;\n}\n\n/** @flr-generate all */\nexport const Link = flowComponent(\"Link\", (props) => {\n const {\n children,\n className,\n inline,\n linkComponent: linkComponentFromProps,\n color = \"default\",\n unstyled = false,\n \"aria-current\": ariaCurrent,\n ref,\n slot: ignoredSlotProp,\n style,\n whiteSpace,\n size = \"m\",\n onClickCapture: onClickCaptureFromProps,\n ...rest\n } = props;\n\n const { linkComponent: linkComponentFromContext } = useContext(linkContext);\n const Link = linkComponentFromProps\n ? (linkComponentFromProps as typeof Aria.Link)\n : props.href && linkComponentFromContext\n ? (linkComponentFromContext as typeof Aria.Link)\n : Aria.Link;\n\n const router = useRouter();\n\n /**\n * An interactive child (e.g. a Button) stops click propagation via React\n * Aria's `usePress`, so the anchor's own `onClick` never runs and navigation\n * falls back to a full page load. Handling it in the capture phase (top-down,\n * before the child) keeps navigation client-side. Only needed for React\n * Aria's `<a>`; custom link components handle navigation themselves.\n */\n const handleClickCapture =\n Link === Aria.Link && props.href\n ? (event: MouseEvent<HTMLAnchorElement>) => {\n onClickCaptureFromProps?.(event);\n if (event.target !== event.currentTarget) {\n handleLinkClick(event, router, props.href, props.routerOptions);\n }\n }\n : onClickCaptureFromProps;\n\n const rootClassName = unstyled\n ? className\n : clsx(\n styles.link,\n inline && styles.inline,\n isAlphaColor(color) && styles[color],\n size === \"s\" && styles[\"size-s\"],\n className,\n );\n\n const propsContext: PropsContext = {\n Icon: {\n className: styles.icon,\n size: \"s\",\n },\n AlertText: {\n className: styles.alertText,\n },\n AccentBox: { className: styles.accentBox },\n LayoutCard: { className: styles.layoutCard },\n Button: {\n elementType: \"span\",\n className: styles.button,\n size: props.size,\n color: props.color === \"default\" ? undefined : props.color,\n isDisabled: props.isDisabled,\n children: dynamic((buttonProps) => (\n <>\n <Text>{buttonProps.children}</Text>\n <LinkIcon {...props} />\n </>\n )),\n },\n };\n\n const unsupportedTypingsLinkProps = ariaCurrent\n ? ({\n \"aria-current\": true,\n } as Record<string, unknown>)\n : {};\n\n return (\n <Link\n {...unsupportedTypingsLinkProps}\n {...rest}\n onClickCapture={handleClickCapture}\n className={rootClassName}\n ref={ref}\n style={{ ...style, whiteSpace }}\n >\n <PropsContextProvider props={propsContext}>\n {children}\n <LinkIcon {...props} />\n </PropsContextProvider>\n </Link>\n );\n});\n\nexport default Link;\n"],"names":["Link"],"mappings":"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"}
|
|
@@ -3,26 +3,28 @@
|
|
|
3
3
|
const link = "flow--link";
|
|
4
4
|
const inline = "flow--link--inline";
|
|
5
5
|
const icon = "flow--link--icon";
|
|
6
|
+
const button = "flow--link--button";
|
|
7
|
+
const linkIcon = "flow--link--link-icon";
|
|
6
8
|
const light = "flow--link--light";
|
|
7
9
|
const dark = "flow--link--dark";
|
|
8
10
|
const alertText = "flow--link--alert-text";
|
|
9
11
|
const accentBox = "flow--link--accent-box";
|
|
10
12
|
const layoutCard = "flow--link--layout-card";
|
|
11
|
-
const linkIcon = "flow--link--link-icon";
|
|
12
13
|
const styles = {
|
|
13
14
|
link: link,
|
|
14
15
|
inline: inline,
|
|
15
16
|
icon: icon,
|
|
16
17
|
"size-s": "flow--link--size-s",
|
|
18
|
+
button: button,
|
|
19
|
+
linkIcon: linkIcon,
|
|
17
20
|
light: light,
|
|
18
21
|
dark: dark,
|
|
19
22
|
"dark-static": "flow--link--dark-static",
|
|
20
23
|
"light-static": "flow--link--light-static",
|
|
21
24
|
alertText: alertText,
|
|
22
25
|
accentBox: accentBox,
|
|
23
|
-
layoutCard: layoutCard
|
|
24
|
-
linkIcon: linkIcon
|
|
26
|
+
layoutCard: layoutCard
|
|
25
27
|
};
|
|
26
28
|
|
|
27
|
-
export { accentBox, alertText, dark, styles as default, icon, inline, layoutCard, light, link, linkIcon };
|
|
29
|
+
export { accentBox, alertText, button, dark, styles as default, icon, inline, layoutCard, light, link, linkIcon };
|
|
28
30
|
//# sourceMappingURL=Link.module.scss.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Link.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -14,12 +14,12 @@ import ButtonView from '../../views/ButtonView.mjs';
|
|
|
14
14
|
import { OffCanvasSuspenseFallback } from './components/OffCanvasSuspenseFallback/OffCanvasSuspenseFallback.mjs';
|
|
15
15
|
import { ConfirmUnsavedChangesModal } from './components/ConfirmUnsavedChangesModal/ConfirmUnsavedChangesModal.mjs';
|
|
16
16
|
import { Wrap } from '../Wrap/Wrap.mjs';
|
|
17
|
+
import { ClearPropsContext } from '../../lib/propsContext/components/ClearPropsContext.mjs';
|
|
17
18
|
import '../TranslationProvider/TranslationProvider.mjs';
|
|
18
19
|
import { useLocalizedStringFormatter } from '../TranslationProvider/useLocalizedStringFormatter.mjs';
|
|
19
20
|
import { useVirtualKeyboardVisible } from '../../lib/hooks/dom/useVirtualKeyboardVisible.mjs';
|
|
20
21
|
import locales from '../../../../../_virtual/_.locale.json@4119db69ca94e24d796b8e08482bc927.mjs';
|
|
21
22
|
import { OverlayController } from '../../lib/controller/overlay/OverlayController.mjs';
|
|
22
|
-
import { ClearPropsContext } from '../../lib/propsContext/components/ClearPropsContext.mjs';
|
|
23
23
|
|
|
24
24
|
const Modal = flowComponent("Modal", (props) => {
|
|
25
25
|
const {
|
|
@@ -5,12 +5,12 @@ import { memo, cloneElement } from 'react';
|
|
|
5
5
|
import { SlotContextProvider } from '../slotContext/SlotContextProvider.mjs';
|
|
6
6
|
import { useProps } from '../hooks/useProps.mjs';
|
|
7
7
|
import { useComponentPropsContext } from '../propsContext/propsContext.mjs';
|
|
8
|
+
import { ClearPropsContext } from '../propsContext/components/ClearPropsContext.mjs';
|
|
8
9
|
import ClearPropsContextView from '../../views/ClearPropsContextView.mjs';
|
|
9
10
|
import { UiComponentTunnelProvider } from '../../components/UiComponentTunnel/UiComponentTunnelProvider.mjs';
|
|
10
11
|
import { UiComponentTunnelEntry } from '../../components/UiComponentTunnel/UiComponentTunnelEntry.mjs';
|
|
11
12
|
import { useReportComponentUsage, ViewCompositionReset } from '../../components/ComponentUsageProvider/ComponentUsageProvider.mjs';
|
|
12
13
|
import { ComponentPropsContextProvider } from '../propsContext/components/ComponentPropsContextProvider.mjs';
|
|
13
|
-
import { ClearPropsContext } from '../propsContext/components/ClearPropsContext.mjs';
|
|
14
14
|
|
|
15
15
|
function flowComponent(componentName, ImplementationComponentType, options = {}) {
|
|
16
16
|
const { type = "ui", isRemoteComponent = false } = options;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/* */
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { memo, useContext } from 'react';
|
|
5
|
-
import { viewComponentContext } from '../lib/viewComponentContext/viewComponentContext.mjs';
|
|
6
5
|
import { ClearPropsContext } from '../lib/propsContext/components/ClearPropsContext.mjs';
|
|
6
|
+
import { viewComponentContext } from '../lib/viewComponentContext/viewComponentContext.mjs';
|
|
7
7
|
|
|
8
8
|
const ClearPropsContextView = memo((props) => {
|
|
9
9
|
const View = useContext(viewComponentContext)["ClearPropsContext"] ?? ClearPropsContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAO9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAK/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAO9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAK/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,WAAW,WACf,SACE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EACnC,kBAAkB,CAAC,iBAAiB,CAAC;IACvC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACnE,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD,2CAA2C;IAC3C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;CAOtB;AA+CD,wBAAwB;AACxB,eAAO,MAAM,MAAM,mGA0HjB,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EAEb,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAK9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EAEb,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAK9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,SACf,SACE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,EAC1E,kBAAkB,CAAC,iBAAiB,CAAC,EACrC,kBAAkB;IACpB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,aAAa,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAGlB;AAED,wBAAwB;AACxB,eAAO,MAAM,IAAI,iGAoGf,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Link/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Link/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;AAQ3B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CA2B3B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,MAAM,EAAE,KAQpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAQ1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mittwald/flow-react-components",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.1026",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A React implementation of Flow, mittwald’s design system",
|
|
6
6
|
"homepage": "https://flow.mittwald.de",
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
"@internationalized/string-compiler": "^3.4.1",
|
|
75
75
|
"@lezer/common": "^1.5.2",
|
|
76
76
|
"@lezer/highlight": "^1.2.3",
|
|
77
|
-
"@mittwald/flow-icons": "0.2.0-alpha.
|
|
77
|
+
"@mittwald/flow-icons": "0.2.0-alpha.1026",
|
|
78
78
|
"@mittwald/password-tools-js": "3.0.0-alpha.31",
|
|
79
|
-
"@mittwald/react-tunnel": "0.2.0-alpha.
|
|
79
|
+
"@mittwald/react-tunnel": "0.2.0-alpha.1026",
|
|
80
80
|
"@mittwald/react-use-promise": "^4.2.2",
|
|
81
81
|
"@react-aria/form": "^3.2.1",
|
|
82
82
|
"@react-aria/i18n": "^3.13.1",
|
|
@@ -130,12 +130,12 @@
|
|
|
130
130
|
"@internationalized/date": "^3.12.2",
|
|
131
131
|
"@lezer/generator": "^1.8.0",
|
|
132
132
|
"@lezer/lr": "^1.4.10",
|
|
133
|
-
"@mittwald/flow-core": "0.2.0-alpha.
|
|
134
|
-
"@mittwald/flow-design-tokens": "0.2.0-alpha.
|
|
135
|
-
"@mittwald/flow-icons-base": "0.2.0-alpha.
|
|
133
|
+
"@mittwald/flow-core": "0.2.0-alpha.1026",
|
|
134
|
+
"@mittwald/flow-design-tokens": "0.2.0-alpha.1026",
|
|
135
|
+
"@mittwald/flow-icons-base": "0.2.0-alpha.1026",
|
|
136
136
|
"@mittwald/react-use-promise": "^4.2.2",
|
|
137
137
|
"@mittwald/remote-dom-react": "1.2.2-mittwald.10",
|
|
138
|
-
"@mittwald/typescript-config": "0.2.0-alpha.
|
|
138
|
+
"@mittwald/typescript-config": "0.2.0-alpha.1026",
|
|
139
139
|
"@nx/storybook": "^22.7.6",
|
|
140
140
|
"@storybook/addon-a11y": "^10.4.6",
|
|
141
141
|
"@storybook/addon-actions": "^9.0.8",
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
},
|
|
189
189
|
"peerDependencies": {
|
|
190
190
|
"@internationalized/date": "^3.12.2",
|
|
191
|
-
"@mittwald/flow-icons-pro": "0.2.0-alpha.
|
|
191
|
+
"@mittwald/flow-icons-pro": "0.2.0-alpha.1026",
|
|
192
192
|
"@mittwald/react-use-promise": "^4.2.2",
|
|
193
193
|
"next": "^16.2.3",
|
|
194
194
|
"react": "^19.2.0",
|
|
@@ -209,5 +209,5 @@
|
|
|
209
209
|
"optional": true
|
|
210
210
|
}
|
|
211
211
|
},
|
|
212
|
-
"gitHead": "
|
|
212
|
+
"gitHead": "1033e5bb535364441e2d83b093b0f04380b74b69"
|
|
213
213
|
}
|