@impulse-ui-native/primitives 3.0.0 → 5.0.0
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/README.md +63 -21
- package/dist/components/atoms/avatar.d.mts +1 -1
- package/dist/components/atoms/avatar.js +14 -30
- package/dist/components/atoms/avatar.js.map +1 -1
- package/dist/components/atoms/badge/root.d.mts +1 -1
- package/dist/components/atoms/badge/root.js +25 -38
- package/dist/components/atoms/badge/root.js.map +1 -1
- package/dist/components/atoms/button.d.mts +1 -1
- package/dist/components/atoms/button.js +22 -31
- package/dist/components/atoms/button.js.map +1 -1
- package/dist/components/atoms/circular-progress.js +2 -2
- package/dist/components/atoms/circular-progress.js.map +1 -1
- package/dist/components/atoms/divider.d.mts +1 -1
- package/dist/components/atoms/divider.js +18 -14
- package/dist/components/atoms/divider.js.map +1 -1
- package/dist/components/atoms/icon-button.d.mts +1 -1
- package/dist/components/atoms/icon-button.js +18 -22
- package/dist/components/atoms/icon-button.js.map +1 -1
- package/dist/components/atoms/progress.d.mts +1 -1
- package/dist/components/atoms/progress.js +0 -28
- package/dist/components/atoms/progress.js.map +1 -1
- package/dist/components/atoms/spinner.d.mts +1 -1
- package/dist/components/atoms/spinner.js +8 -29
- package/dist/components/atoms/spinner.js.map +1 -1
- package/dist/components/atoms/tag.js +9 -5
- package/dist/components/atoms/tag.js.map +1 -1
- package/dist/components/atoms/typography.js +25 -1
- package/dist/components/atoms/typography.js.map +1 -1
- package/dist/components/card/card.d.mts +1 -1
- package/dist/components/card/pressable.d.mts +1 -1
- package/dist/components/card/pressable.js +2 -20
- package/dist/components/card/pressable.js.map +1 -1
- package/dist/components/controls/addon.js +6 -3
- package/dist/components/controls/addon.js.map +1 -1
- package/dist/components/controls/container.js +8 -4
- package/dist/components/controls/container.js.map +1 -1
- package/dist/components/controls/input.js +7 -5
- package/dist/components/controls/input.js.map +1 -1
- package/dist/components/controls/label.js +9 -3
- package/dist/components/controls/label.js.map +1 -1
- package/dist/components/controls/placeholder.js +6 -3
- package/dist/components/controls/placeholder.js.map +1 -1
- package/dist/components/controls/value.js +6 -3
- package/dist/components/controls/value.js.map +1 -1
- package/dist/components/index.d.mts +2 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/list/content.d.mts +11 -0
- package/dist/components/list/content.js +27 -0
- package/dist/components/list/content.js.map +1 -0
- package/dist/components/list/index.d.mts +8 -0
- package/dist/components/list/index.js +5 -0
- package/dist/components/list/index.js.map +1 -0
- package/dist/components/list/item.d.mts +11 -0
- package/dist/components/list/item.js +32 -0
- package/dist/components/list/item.js.map +1 -0
- package/dist/components/list/leading.d.mts +11 -0
- package/dist/components/list/leading.js +32 -0
- package/dist/components/list/leading.js.map +1 -0
- package/dist/components/list/list.d.mts +18 -0
- package/dist/components/list/list.js +18 -0
- package/dist/components/list/list.js.map +1 -0
- package/dist/components/list/pressable.d.mts +11 -0
- package/dist/components/list/pressable.js +37 -0
- package/dist/components/list/pressable.js.map +1 -0
- package/dist/components/list/root.d.mts +11 -0
- package/dist/components/list/root.js +33 -0
- package/dist/components/list/root.js.map +1 -0
- package/dist/components/list/trailing.d.mts +11 -0
- package/dist/components/list/trailing.js +32 -0
- package/dist/components/list/trailing.js.map +1 -0
- package/dist/hocs/create-preset.hoc.d.mts +1 -1
- package/dist/hocs/create-preset.hoc.js +23 -8
- package/dist/hocs/create-preset.hoc.js.map +1 -1
- package/dist/hooks/use-indeterminate-progress-animation.hook.js +3 -24
- package/dist/hooks/use-indeterminate-progress-animation.hook.js.map +1 -1
- package/dist/index.d.mts +2 -0
- package/dist/types/avatar.types.d.mts +3 -3
- package/dist/types/badge.types.d.mts +3 -3
- package/dist/types/button.types.d.mts +4 -3
- package/dist/types/control-components.types.d.mts +2 -2
- package/dist/types/icon-button.types.d.mts +3 -2
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/list.types.d.mts +21 -0
- package/dist/types/list.types.js +1 -0
- package/dist/types/list.types.js.map +1 -0
- package/dist/types/tag.types.d.mts +3 -3
- package/package.json +6 -6
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useCallback
|
|
2
|
+
import { memo, useCallback } from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
4
|
import { useStyleProps, useThemedStyles } from "@impulse-ui-native/theme";
|
|
5
5
|
import { Pressable } from "../atoms/pressable";
|
|
6
6
|
import { cardRootStyles } from "./root.styles";
|
|
7
7
|
const CardPressable = memo(function CardPressable2({
|
|
8
|
-
accessibilityRole = "button",
|
|
9
|
-
accessibilityState,
|
|
10
8
|
disabled,
|
|
11
9
|
style,
|
|
12
10
|
...props
|
|
13
11
|
}) {
|
|
14
12
|
const styles = useThemedStyles(cardRootStyles);
|
|
15
13
|
const extractedStyleProps = useStyleProps(props);
|
|
16
|
-
const resolvedAccessibilityState = useMemo(
|
|
17
|
-
() => ({
|
|
18
|
-
...accessibilityState,
|
|
19
|
-
disabled: disabled === true
|
|
20
|
-
}),
|
|
21
|
-
[accessibilityState, disabled]
|
|
22
|
-
);
|
|
23
14
|
const rootStyle = useCallback(
|
|
24
15
|
(state) => StyleSheet.flatten([
|
|
25
16
|
styles.root,
|
|
@@ -28,16 +19,7 @@ const CardPressable = memo(function CardPressable2({
|
|
|
28
19
|
]),
|
|
29
20
|
[extractedStyleProps, style, styles.root]
|
|
30
21
|
);
|
|
31
|
-
return /* @__PURE__ */ jsx(
|
|
32
|
-
Pressable,
|
|
33
|
-
{
|
|
34
|
-
...props,
|
|
35
|
-
accessibilityRole,
|
|
36
|
-
accessibilityState: resolvedAccessibilityState,
|
|
37
|
-
disabled: disabled === true,
|
|
38
|
-
style: rootStyle
|
|
39
|
-
}
|
|
40
|
-
);
|
|
22
|
+
return /* @__PURE__ */ jsx(Pressable, { ...props, disabled: disabled === true, style: rootStyle });
|
|
41
23
|
});
|
|
42
24
|
export {
|
|
43
25
|
CardPressable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/card/pressable.tsx"],"sourcesContent":["import type {\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/card/pressable.tsx"],"sourcesContent":["import type {\n PressableStateCallbackType,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { memo, useCallback, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport { useStyleProps, useThemedStyles } from \"@impulse-ui-native/theme\";\n\nimport type { CardPressableProps } from \"../../types\";\nimport { Pressable } from \"../atoms/pressable\";\nimport { cardRootStyles } from \"./root.styles\";\n\nexport const CardPressable = memo(function CardPressable({\n disabled,\n style,\n ...props\n}: CardPressableProps) {\n const styles = useThemedStyles(cardRootStyles);\n const extractedStyleProps = useStyleProps(props);\n\n const rootStyle = useCallback(\n (state: PressableStateCallbackType): StyleProp<ViewStyle> =>\n StyleSheet.flatten([\n styles.root,\n extractedStyleProps,\n typeof style === \"function\" ? style(state) : style,\n ]),\n [extractedStyleProps, style, styles.root],\n );\n\n return (\n <Pressable {...props} disabled={disabled === true} style={rootStyle} />\n );\n});\n"],"mappings":"AAiCI;AA5BJ,SAAS,MAAM,mBAA4B;AAC3C,SAAS,kBAAkB;AAE3B,SAAS,eAAe,uBAAuB;AAG/C,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAExB,MAAM,gBAAgB,KAAK,SAASA,eAAc;AAAA,EACvD;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAuB;AACrB,QAAM,SAAS,gBAAgB,cAAc;AAC7C,QAAM,sBAAsB,cAAc,KAAK;AAE/C,QAAM,YAAY;AAAA,IAChB,CAAC,UACC,WAAW,QAAQ;AAAA,MACjB,OAAO;AAAA,MACP;AAAA,MACA,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AAAA,IAC/C,CAAC;AAAA,IACH,CAAC,qBAAqB,OAAO,OAAO,IAAI;AAAA,EAC1C;AAEA,SACE,oBAAC,aAAW,GAAG,OAAO,UAAU,aAAa,MAAM,OAAO,WAAW;AAEzE,CAAC;","names":["CardPressable"]}
|
|
@@ -3,6 +3,7 @@ import { memo, useMemo } from "react";
|
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
4
|
import { Icon } from "@impulse-ui-native/icon/components/icon";
|
|
5
5
|
import {
|
|
6
|
+
getFieldStateTokens,
|
|
6
7
|
useComponentsTokens,
|
|
7
8
|
useThemedStyles
|
|
8
9
|
} from "@impulse-ui-native/theme";
|
|
@@ -58,14 +59,16 @@ const ControlAddon = memo(function ControlAddon2(props) {
|
|
|
58
59
|
function themedStyles(theme, props) {
|
|
59
60
|
const { variant, disabled, error } = props;
|
|
60
61
|
const controlAddonTokens = theme.components.controlAddon;
|
|
61
|
-
const
|
|
62
|
-
|
|
62
|
+
const appearanceTokens = getFieldStateTokens(
|
|
63
|
+
controlAddonTokens.variants[variant],
|
|
64
|
+
{ disabled, error: Boolean(error) }
|
|
65
|
+
);
|
|
63
66
|
return StyleSheet.create({
|
|
64
67
|
container: {
|
|
65
68
|
marginHorizontal: controlAddonTokens.marginHorizontal
|
|
66
69
|
},
|
|
67
70
|
icon: {
|
|
68
|
-
color
|
|
71
|
+
color: appearanceTokens.iconColor
|
|
69
72
|
}
|
|
70
73
|
});
|
|
71
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/controls/addon.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport { Icon } from \"@impulse-ui-native/icon/components/icon\";\nimport {\n AppTheme,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/controls/addon.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport { Icon } from \"@impulse-ui-native/icon/components/icon\";\nimport {\n AppTheme,\n FieldVariant,\n getFieldStateTokens,\n useComponentsTokens,\n useThemedStyles,\n} from \"@impulse-ui-native/theme\";\n\nimport { ControlAddonProps } from \"../../types\";\nimport { Pressable, View } from \"../atoms\";\nimport { useControlContext } from \"./provider\";\n\nexport const ControlAddon = memo(function ControlAddon(\n props: ControlAddonProps,\n) {\n const { icon: AddonIcon, onPress, Content, style, ...rest } = props;\n\n const { variant, disabled, error } = useControlContext();\n\n const tokens = useComponentsTokens();\n\n const styles = useThemedStyles(\n themedStyles,\n {\n variant,\n disabled,\n error,\n },\n [variant, disabled, error],\n );\n\n const Container = useMemo(() => {\n if (onPress) {\n return Pressable;\n }\n\n return View;\n }, [onPress]);\n\n const children = useMemo(() => {\n if (Content) {\n return <Content />;\n }\n\n if (AddonIcon) {\n return <Icon color={styles.icon.color} icon={AddonIcon} />;\n }\n\n return null;\n }, [AddonIcon, Content, styles.icon.color]);\n\n const containerStyle = useMemo(\n () => [styles.container, style],\n [styles.container, style],\n );\n\n if (!children) {\n return null;\n }\n\n return (\n <Container\n {...rest}\n style={containerStyle}\n hitSlop={tokens.controlAddon.hitSlop}\n onPress={onPress}\n disabled={disabled}\n >\n {children}\n </Container>\n );\n});\n\nfunction themedStyles(\n theme: AppTheme,\n props: {\n variant: FieldVariant;\n disabled?: boolean;\n error?: string;\n },\n) {\n const { variant, disabled, error } = props;\n\n const controlAddonTokens = theme.components.controlAddon;\n const appearanceTokens = getFieldStateTokens(\n controlAddonTokens.variants[variant],\n { disabled, error: Boolean(error) },\n );\n\n return StyleSheet.create({\n container: {\n marginHorizontal: controlAddonTokens.marginHorizontal,\n },\n\n icon: {\n color: appearanceTokens.iconColor,\n },\n });\n}\n"],"mappings":"AA6Ca;AA7Cb,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAE3B,SAAS,YAAY;AACrB;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAS,WAAW,YAAY;AAChC,SAAS,yBAAyB;AAE3B,MAAM,eAAe,KAAK,SAASA,cACxC,OACA;AACA,QAAM,EAAE,MAAM,WAAW,SAAS,SAAS,OAAO,GAAG,KAAK,IAAI;AAE9D,QAAM,EAAE,SAAS,UAAU,MAAM,IAAI,kBAAkB;AAEvD,QAAM,SAAS,oBAAoB;AAEnC,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,SAAS,UAAU,KAAK;AAAA,EAC3B;AAEA,QAAM,YAAY,QAAQ,MAAM;AAC9B,QAAI,SAAS;AACX,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,WAAW,QAAQ,MAAM;AAC7B,QAAI,SAAS;AACX,aAAO,oBAAC,WAAQ;AAAA,IAClB;AAEA,QAAI,WAAW;AACb,aAAO,oBAAC,QAAK,OAAO,OAAO,KAAK,OAAO,MAAM,WAAW;AAAA,IAC1D;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,WAAW,SAAS,OAAO,KAAK,KAAK,CAAC;AAE1C,QAAM,iBAAiB;AAAA,IACrB,MAAM,CAAC,OAAO,WAAW,KAAK;AAAA,IAC9B,CAAC,OAAO,WAAW,KAAK;AAAA,EAC1B;AAEA,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO;AAAA,MACP,SAAS,OAAO,aAAa;AAAA,MAC7B;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ,CAAC;AAED,SAAS,aACP,OACA,OAKA;AACA,QAAM,EAAE,SAAS,UAAU,MAAM,IAAI;AAErC,QAAM,qBAAqB,MAAM,WAAW;AAC5C,QAAM,mBAAmB;AAAA,IACvB,mBAAmB,SAAS,OAAO;AAAA,IACnC,EAAE,UAAU,OAAO,QAAQ,KAAK,EAAE;AAAA,EACpC;AAEA,SAAO,WAAW,OAAO;AAAA,IACvB,WAAW;AAAA,MACT,kBAAkB,mBAAmB;AAAA,IACvC;AAAA,IAEA,MAAM;AAAA,MACJ,OAAO,iBAAiB;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;","names":["ControlAddon"]}
|
|
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo, useMemo } from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
4
|
import {
|
|
5
|
+
getFieldStateTokens,
|
|
5
6
|
useThemedStyles
|
|
6
7
|
} from "@impulse-ui-native/theme";
|
|
7
8
|
import { View } from "../atoms/view";
|
|
@@ -33,7 +34,10 @@ function themedStyles(theme, {
|
|
|
33
34
|
}) {
|
|
34
35
|
const controlContainerTokens = theme.components.controlContainer;
|
|
35
36
|
const sizeTokens = controlContainerTokens.sizes[size];
|
|
36
|
-
const
|
|
37
|
+
const appearanceTokens = getFieldStateTokens(
|
|
38
|
+
controlContainerTokens.variants[variant],
|
|
39
|
+
{ disabled, error: Boolean(error) }
|
|
40
|
+
);
|
|
37
41
|
return StyleSheet.create({
|
|
38
42
|
inputContainer: {
|
|
39
43
|
flexDirection: "row",
|
|
@@ -42,9 +46,9 @@ function themedStyles(theme, {
|
|
|
42
46
|
paddingHorizontal: sizeTokens.paddingHorizontal,
|
|
43
47
|
borderRadius: controlContainerTokens.borderRadius,
|
|
44
48
|
borderWidth: controlContainerTokens.borderWidth,
|
|
45
|
-
opacity:
|
|
46
|
-
backgroundColor:
|
|
47
|
-
borderColor:
|
|
49
|
+
opacity: appearanceTokens.opacity,
|
|
50
|
+
backgroundColor: appearanceTokens.backgroundColor,
|
|
51
|
+
borderColor: appearanceTokens.borderColor
|
|
48
52
|
}
|
|
49
53
|
});
|
|
50
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/controls/container.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/controls/container.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n FieldVariant,\n getFieldStateTokens,\n useThemedStyles,\n} from \"@impulse-ui-native/theme\";\n\nimport { ControlContainerProps } from \"../../types\";\nimport { View } from \"../atoms/view\";\nimport { useControlContext } from \"./provider\";\n\nexport const ControlContainer = memo(function ControlContainer(\n props: ControlContainerProps,\n) {\n const { style, ...rest } = props;\n\n const { size, variant, disabled, error } = useControlContext();\n\n const styles = useThemedStyles(\n themedStyles,\n {\n size,\n variant,\n disabled,\n error,\n },\n [size, variant, disabled, error],\n );\n\n const containerStyle = useMemo(\n () => [styles.inputContainer, style],\n [styles.inputContainer, style],\n );\n\n return <View style={containerStyle} {...rest} />;\n});\n\nfunction themedStyles(\n theme: AppTheme,\n {\n size,\n variant,\n disabled,\n error,\n }: {\n size: ComponentSize;\n variant: FieldVariant;\n disabled?: boolean;\n error?: string;\n },\n) {\n const controlContainerTokens = theme.components.controlContainer;\n const sizeTokens = controlContainerTokens.sizes[size];\n const appearanceTokens = getFieldStateTokens(\n controlContainerTokens.variants[variant],\n { disabled, error: Boolean(error) },\n );\n\n return StyleSheet.create({\n inputContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n\n height: sizeTokens.height,\n paddingHorizontal: sizeTokens.paddingHorizontal,\n\n borderRadius: controlContainerTokens.borderRadius,\n borderWidth: controlContainerTokens.borderWidth,\n\n opacity: appearanceTokens.opacity,\n backgroundColor: appearanceTokens.backgroundColor,\n borderColor: appearanceTokens.borderColor,\n },\n });\n}\n"],"mappings":"AAsCS;AAtCT,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAE3B;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,YAAY;AACrB,SAAS,yBAAyB;AAE3B,MAAM,mBAAmB,KAAK,SAASA,kBAC5C,OACA;AACA,QAAM,EAAE,OAAO,GAAG,KAAK,IAAI;AAE3B,QAAM,EAAE,MAAM,SAAS,UAAU,MAAM,IAAI,kBAAkB;AAE7D,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,MAAM,SAAS,UAAU,KAAK;AAAA,EACjC;AAEA,QAAM,iBAAiB;AAAA,IACrB,MAAM,CAAC,OAAO,gBAAgB,KAAK;AAAA,IACnC,CAAC,OAAO,gBAAgB,KAAK;AAAA,EAC/B;AAEA,SAAO,oBAAC,QAAK,OAAO,gBAAiB,GAAG,MAAM;AAChD,CAAC;AAED,SAAS,aACP,OACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA;AACA,QAAM,yBAAyB,MAAM,WAAW;AAChD,QAAM,aAAa,uBAAuB,MAAM,IAAI;AACpD,QAAM,mBAAmB;AAAA,IACvB,uBAAuB,SAAS,OAAO;AAAA,IACvC,EAAE,UAAU,OAAO,QAAQ,KAAK,EAAE;AAAA,EACpC;AAEA,SAAO,WAAW,OAAO;AAAA,IACvB,gBAAgB;AAAA,MACd,eAAe;AAAA,MACf,YAAY;AAAA,MAEZ,QAAQ,WAAW;AAAA,MACnB,mBAAmB,WAAW;AAAA,MAE9B,cAAc,uBAAuB;AAAA,MACrC,aAAa,uBAAuB;AAAA,MAEpC,SAAS,iBAAiB;AAAA,MAC1B,iBAAiB,iBAAiB;AAAA,MAClC,aAAa,iBAAiB;AAAA,IAChC;AAAA,EACF,CAAC;AACH;","names":["ControlContainer"]}
|
|
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo, useMemo } from "react";
|
|
3
3
|
import { StyleSheet, TextInput } from "react-native";
|
|
4
4
|
import {
|
|
5
|
+
getFieldStateTokens,
|
|
5
6
|
useThemedStyles
|
|
6
7
|
} from "@impulse-ui-native/theme";
|
|
7
8
|
import { useControlContext } from "./provider";
|
|
@@ -40,20 +41,21 @@ function themedStyles(theme, {
|
|
|
40
41
|
}) {
|
|
41
42
|
const controlInputTokens = theme.components.controlInput;
|
|
42
43
|
const sizeTokens = controlInputTokens.sizes[size];
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const appearanceTokens = getFieldStateTokens(
|
|
45
|
+
controlInputTokens.variants[variant],
|
|
46
|
+
{ disabled, error: Boolean(error) }
|
|
47
|
+
);
|
|
46
48
|
return StyleSheet.create({
|
|
47
49
|
input: {
|
|
48
50
|
flex: controlInputTokens.flex,
|
|
49
|
-
color,
|
|
51
|
+
color: appearanceTokens.color,
|
|
50
52
|
fontSize: sizeTokens.fontSize,
|
|
51
53
|
fontFamily: controlInputTokens.fontFamily,
|
|
52
54
|
paddingHorizontal: controlInputTokens.paddingHorizontal,
|
|
53
55
|
height: "100%"
|
|
54
56
|
},
|
|
55
57
|
placeholder: {
|
|
56
|
-
color: placeholderColor
|
|
58
|
+
color: appearanceTokens.placeholderColor
|
|
57
59
|
}
|
|
58
60
|
});
|
|
59
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/controls/input.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet, TextInput } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/controls/input.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet, TextInput } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n FieldVariant,\n getFieldStateTokens,\n useThemedStyles,\n} from \"@impulse-ui-native/theme\";\n\nimport { ControlInputProps } from \"../../types\";\nimport { useControlContext } from \"./provider\";\n\nexport const ControlInput = memo(function ControlInput(\n props: ControlInputProps,\n) {\n const { onPress, style, ...rest } = props;\n\n const { size, variant, disabled, error } = useControlContext();\n\n const styles = useThemedStyles(\n themedStyles,\n {\n size,\n variant,\n disabled,\n error,\n },\n [size, variant, disabled, error],\n );\n\n const inputStyles = useMemo(\n () => [styles.input, style],\n [styles.input, style],\n );\n\n return (\n <TextInput\n {...rest}\n style={inputStyles}\n placeholderTextColor={styles.placeholder.color}\n editable={!disabled}\n />\n );\n});\n\nfunction themedStyles(\n theme: AppTheme,\n {\n size,\n variant,\n disabled,\n error,\n }: {\n size: ComponentSize;\n variant: FieldVariant;\n disabled?: boolean;\n error?: string;\n },\n) {\n const controlInputTokens = theme.components.controlInput;\n const sizeTokens = controlInputTokens.sizes[size];\n const appearanceTokens = getFieldStateTokens(\n controlInputTokens.variants[variant],\n { disabled, error: Boolean(error) },\n );\n\n return StyleSheet.create({\n input: {\n flex: controlInputTokens.flex,\n color: appearanceTokens.color,\n fontSize: sizeTokens.fontSize,\n fontFamily: controlInputTokens.fontFamily,\n paddingHorizontal: controlInputTokens.paddingHorizontal,\n height: \"100%\",\n },\n\n placeholder: {\n color: appearanceTokens.placeholderColor,\n },\n });\n}\n"],"mappings":"AAsCI;AAtCJ,SAAS,MAAM,eAAe;AAC9B,SAAS,YAAY,iBAAiB;AAEtC;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,yBAAyB;AAE3B,MAAM,eAAe,KAAK,SAASA,cACxC,OACA;AACA,QAAM,EAAE,SAAS,OAAO,GAAG,KAAK,IAAI;AAEpC,QAAM,EAAE,MAAM,SAAS,UAAU,MAAM,IAAI,kBAAkB;AAE7D,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,MAAM,SAAS,UAAU,KAAK;AAAA,EACjC;AAEA,QAAM,cAAc;AAAA,IAClB,MAAM,CAAC,OAAO,OAAO,KAAK;AAAA,IAC1B,CAAC,OAAO,OAAO,KAAK;AAAA,EACtB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO;AAAA,MACP,sBAAsB,OAAO,YAAY;AAAA,MACzC,UAAU,CAAC;AAAA;AAAA,EACb;AAEJ,CAAC;AAED,SAAS,aACP,OACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA;AACA,QAAM,qBAAqB,MAAM,WAAW;AAC5C,QAAM,aAAa,mBAAmB,MAAM,IAAI;AAChD,QAAM,mBAAmB;AAAA,IACvB,mBAAmB,SAAS,OAAO;AAAA,IACnC,EAAE,UAAU,OAAO,QAAQ,KAAK,EAAE;AAAA,EACpC;AAEA,SAAO,WAAW,OAAO;AAAA,IACvB,OAAO;AAAA,MACL,MAAM,mBAAmB;AAAA,MACzB,OAAO,iBAAiB;AAAA,MACxB,UAAU,WAAW;AAAA,MACrB,YAAY,mBAAmB;AAAA,MAC/B,mBAAmB,mBAAmB;AAAA,MACtC,QAAQ;AAAA,IACV;AAAA,IAEA,aAAa;AAAA,MACX,OAAO,iBAAiB;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;","names":["ControlInput"]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useMemo } from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
getFieldStateTokens,
|
|
6
|
+
useThemedStyles
|
|
7
|
+
} from "@impulse-ui-native/theme";
|
|
5
8
|
import { Typography } from "../atoms";
|
|
6
9
|
import { useControlContext } from "./provider";
|
|
7
10
|
const ControlLabel = memo(function ControlLabel2(props) {
|
|
@@ -27,12 +30,15 @@ const ControlLabel = memo(function ControlLabel2(props) {
|
|
|
27
30
|
function themedStyles(theme, props) {
|
|
28
31
|
const { disabled, error } = props;
|
|
29
32
|
const controlLabelTokens = theme.components.controlLabel;
|
|
30
|
-
const
|
|
33
|
+
const appearanceTokens = getFieldStateTokens(controlLabelTokens.states, {
|
|
34
|
+
disabled,
|
|
35
|
+
error: Boolean(error)
|
|
36
|
+
});
|
|
31
37
|
return StyleSheet.create({
|
|
32
38
|
label: {
|
|
33
39
|
marginBottom: controlLabelTokens.marginBottom,
|
|
34
40
|
fontSize: controlLabelTokens.fontSize,
|
|
35
|
-
color
|
|
41
|
+
color: appearanceTokens.color
|
|
36
42
|
}
|
|
37
43
|
});
|
|
38
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/controls/label.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/controls/label.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n getFieldStateTokens,\n useThemedStyles,\n} from \"@impulse-ui-native/theme\";\n\nimport { ControlLabelProps } from \"../../types\";\nimport { Typography } from \"../atoms\";\nimport { useControlContext } from \"./provider\";\n\nexport const ControlLabel = memo(function ControlLabel(\n props: ControlLabelProps,\n) {\n const { children, disabled, style, ...rest } = props;\n\n const { error } = useControlContext();\n\n const styles = useThemedStyles(\n themedStyles,\n {\n disabled,\n error,\n },\n [disabled, error],\n );\n\n const labelStyle = useMemo(\n () => [styles.label, style],\n [styles.label, style],\n );\n\n if (!children) {\n return null;\n }\n\n return (\n <Typography.Label {...rest} style={labelStyle}>\n {children}\n </Typography.Label>\n );\n});\n\nfunction themedStyles(\n theme: AppTheme,\n props: {\n disabled?: boolean;\n error?: string;\n },\n) {\n const { disabled, error } = props;\n\n const controlLabelTokens = theme.components.controlLabel;\n const appearanceTokens = getFieldStateTokens(controlLabelTokens.states, {\n disabled,\n error: Boolean(error),\n });\n\n return StyleSheet.create({\n label: {\n marginBottom: controlLabelTokens.marginBottom,\n fontSize: controlLabelTokens.fontSize,\n color: appearanceTokens.color,\n },\n });\n}\n"],"mappings":"AAuCI;AAvCJ,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAE3B;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAE3B,MAAM,eAAe,KAAK,SAASA,cACxC,OACA;AACA,QAAM,EAAE,UAAU,UAAU,OAAO,GAAG,KAAK,IAAI;AAE/C,QAAM,EAAE,MAAM,IAAI,kBAAkB;AAEpC,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,UAAU,KAAK;AAAA,EAClB;AAEA,QAAM,aAAa;AAAA,IACjB,MAAM,CAAC,OAAO,OAAO,KAAK;AAAA,IAC1B,CAAC,OAAO,OAAO,KAAK;AAAA,EACtB;AAEA,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,SACE,oBAAC,WAAW,OAAX,EAAkB,GAAG,MAAM,OAAO,YAChC,UACH;AAEJ,CAAC;AAED,SAAS,aACP,OACA,OAIA;AACA,QAAM,EAAE,UAAU,MAAM,IAAI;AAE5B,QAAM,qBAAqB,MAAM,WAAW;AAC5C,QAAM,mBAAmB,oBAAoB,mBAAmB,QAAQ;AAAA,IACtE;AAAA,IACA,OAAO,QAAQ,KAAK;AAAA,EACtB,CAAC;AAED,SAAO,WAAW,OAAO;AAAA,IACvB,OAAO;AAAA,MACL,cAAc,mBAAmB;AAAA,MACjC,UAAU,mBAAmB;AAAA,MAC7B,OAAO,iBAAiB;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;","names":["ControlLabel"]}
|
|
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo, useMemo } from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
4
|
import {
|
|
5
|
+
getFieldStateTokens,
|
|
5
6
|
useThemedStyles
|
|
6
7
|
} from "@impulse-ui-native/theme";
|
|
7
8
|
import { Typography } from "../atoms";
|
|
@@ -33,12 +34,14 @@ function themedStyles(theme, {
|
|
|
33
34
|
}) {
|
|
34
35
|
const controlInputTokens = theme.components.controlInput;
|
|
35
36
|
const sizeTokens = controlInputTokens.sizes[size];
|
|
36
|
-
const
|
|
37
|
-
|
|
37
|
+
const appearanceTokens = getFieldStateTokens(
|
|
38
|
+
controlInputTokens.variants[variant],
|
|
39
|
+
{ disabled, error: Boolean(error) }
|
|
40
|
+
);
|
|
38
41
|
return StyleSheet.create({
|
|
39
42
|
placeholder: {
|
|
40
43
|
flex: controlInputTokens.flex,
|
|
41
|
-
color,
|
|
44
|
+
color: appearanceTokens.placeholderColor,
|
|
42
45
|
fontFamily: controlInputTokens.fontFamily,
|
|
43
46
|
fontSize: sizeTokens.fontSize,
|
|
44
47
|
paddingHorizontal: controlInputTokens.paddingHorizontal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/controls/placeholder.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/controls/placeholder.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n FieldVariant,\n getFieldStateTokens,\n useThemedStyles,\n} from \"@impulse-ui-native/theme\";\n\nimport { ControlPlaceholderProps } from \"../../types\";\nimport { Typography } from \"../atoms\";\nimport { useControlContext } from \"./provider\";\n\nexport const ControlPlaceholder = memo(function ControlPlaceholder(\n props: ControlPlaceholderProps,\n) {\n const { style, ...rest } = props;\n\n const { size, variant, disabled, error } = useControlContext();\n\n const styles = useThemedStyles(\n themedStyles,\n {\n size,\n variant,\n disabled,\n error,\n },\n [size, variant, disabled, error],\n );\n\n const placeholderStyle = useMemo(\n () => [styles.placeholder, style],\n [styles.placeholder, style],\n );\n\n return (\n <Typography.Master numberOfLines={1} {...rest} style={placeholderStyle} />\n );\n});\n\nfunction themedStyles(\n theme: AppTheme,\n {\n size,\n variant,\n disabled,\n error,\n }: {\n size: ComponentSize;\n variant: FieldVariant;\n disabled?: boolean;\n error?: string;\n },\n) {\n const controlInputTokens = theme.components.controlInput;\n const sizeTokens = controlInputTokens.sizes[size];\n const appearanceTokens = getFieldStateTokens(\n controlInputTokens.variants[variant],\n { disabled, error: Boolean(error) },\n );\n\n return StyleSheet.create({\n placeholder: {\n flex: controlInputTokens.flex,\n color: appearanceTokens.placeholderColor,\n fontFamily: controlInputTokens.fontFamily,\n fontSize: sizeTokens.fontSize,\n paddingHorizontal: controlInputTokens.paddingHorizontal,\n },\n });\n}\n"],"mappings":"AAuCI;AAvCJ,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAE3B;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAE3B,MAAM,qBAAqB,KAAK,SAASA,oBAC9C,OACA;AACA,QAAM,EAAE,OAAO,GAAG,KAAK,IAAI;AAE3B,QAAM,EAAE,MAAM,SAAS,UAAU,MAAM,IAAI,kBAAkB;AAE7D,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,MAAM,SAAS,UAAU,KAAK;AAAA,EACjC;AAEA,QAAM,mBAAmB;AAAA,IACvB,MAAM,CAAC,OAAO,aAAa,KAAK;AAAA,IAChC,CAAC,OAAO,aAAa,KAAK;AAAA,EAC5B;AAEA,SACE,oBAAC,WAAW,QAAX,EAAkB,eAAe,GAAI,GAAG,MAAM,OAAO,kBAAkB;AAE5E,CAAC;AAED,SAAS,aACP,OACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA;AACA,QAAM,qBAAqB,MAAM,WAAW;AAC5C,QAAM,aAAa,mBAAmB,MAAM,IAAI;AAChD,QAAM,mBAAmB;AAAA,IACvB,mBAAmB,SAAS,OAAO;AAAA,IACnC,EAAE,UAAU,OAAO,QAAQ,KAAK,EAAE;AAAA,EACpC;AAEA,SAAO,WAAW,OAAO;AAAA,IACvB,aAAa;AAAA,MACX,MAAM,mBAAmB;AAAA,MACzB,OAAO,iBAAiB;AAAA,MACxB,YAAY,mBAAmB;AAAA,MAC/B,UAAU,WAAW;AAAA,MACrB,mBAAmB,mBAAmB;AAAA,IACxC;AAAA,EACF,CAAC;AACH;","names":["ControlPlaceholder"]}
|
|
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo, useMemo } from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
4
|
import {
|
|
5
|
+
getFieldStateTokens,
|
|
5
6
|
useThemedStyles
|
|
6
7
|
} from "@impulse-ui-native/theme";
|
|
7
8
|
import { Typography } from "../atoms";
|
|
@@ -28,12 +29,14 @@ function themedStyles(theme, {
|
|
|
28
29
|
}) {
|
|
29
30
|
const controlInputTokens = theme.components.controlInput;
|
|
30
31
|
const sizeTokens = controlInputTokens.sizes[size];
|
|
31
|
-
const
|
|
32
|
-
|
|
32
|
+
const appearanceTokens = getFieldStateTokens(
|
|
33
|
+
controlInputTokens.variants[variant],
|
|
34
|
+
{ disabled, error: Boolean(error) }
|
|
35
|
+
);
|
|
33
36
|
return StyleSheet.create({
|
|
34
37
|
value: {
|
|
35
38
|
flex: controlInputTokens.flex,
|
|
36
|
-
color,
|
|
39
|
+
color: appearanceTokens.color,
|
|
37
40
|
fontFamily: controlInputTokens.fontFamily,
|
|
38
41
|
fontSize: sizeTokens.fontSize,
|
|
39
42
|
paddingHorizontal: controlInputTokens.paddingHorizontal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/controls/value.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/controls/value.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport {\n AppTheme,\n ComponentSize,\n FieldVariant,\n getFieldStateTokens,\n useThemedStyles,\n} from \"@impulse-ui-native/theme\";\n\nimport { ControlValueProps } from \"../../types\";\nimport { Typography } from \"../atoms\";\nimport { useControlContext } from \"./provider\";\n\nexport const ControlValue = memo(function ControlValue(\n props: ControlValueProps,\n) {\n const { style, ...rest } = props;\n\n const { size, variant, disabled, error } = useControlContext();\n\n const styles = useThemedStyles(\n themedStyles,\n { size, variant, disabled, error },\n [size, variant, disabled, error],\n );\n\n const valueStyle = useMemo(\n () => [styles.value, style],\n [styles.value, style],\n );\n\n return <Typography.Master numberOfLines={1} {...rest} style={valueStyle} />;\n});\n\nfunction themedStyles(\n theme: AppTheme,\n {\n size,\n variant,\n disabled,\n error,\n }: {\n size: ComponentSize;\n variant: FieldVariant;\n disabled?: boolean;\n error?: string;\n },\n) {\n const controlInputTokens = theme.components.controlInput;\n const sizeTokens = controlInputTokens.sizes[size];\n const appearanceTokens = getFieldStateTokens(\n controlInputTokens.variants[variant],\n { disabled, error: Boolean(error) },\n );\n\n return StyleSheet.create({\n value: {\n flex: controlInputTokens.flex,\n color: appearanceTokens.color,\n fontFamily: controlInputTokens.fontFamily,\n fontSize: sizeTokens.fontSize,\n paddingHorizontal: controlInputTokens.paddingHorizontal,\n },\n });\n}\n"],"mappings":"AAiCS;AAjCT,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAE3B;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAE3B,MAAM,eAAe,KAAK,SAASA,cACxC,OACA;AACA,QAAM,EAAE,OAAO,GAAG,KAAK,IAAI;AAE3B,QAAM,EAAE,MAAM,SAAS,UAAU,MAAM,IAAI,kBAAkB;AAE7D,QAAM,SAAS;AAAA,IACb;AAAA,IACA,EAAE,MAAM,SAAS,UAAU,MAAM;AAAA,IACjC,CAAC,MAAM,SAAS,UAAU,KAAK;AAAA,EACjC;AAEA,QAAM,aAAa;AAAA,IACjB,MAAM,CAAC,OAAO,OAAO,KAAK;AAAA,IAC1B,CAAC,OAAO,OAAO,KAAK;AAAA,EACtB;AAEA,SAAO,oBAAC,WAAW,QAAX,EAAkB,eAAe,GAAI,GAAG,MAAM,OAAO,YAAY;AAC3E,CAAC;AAED,SAAS,aACP,OACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA;AACA,QAAM,qBAAqB,MAAM,WAAW;AAC5C,QAAM,aAAa,mBAAmB,MAAM,IAAI;AAChD,QAAM,mBAAmB;AAAA,IACvB,mBAAmB,SAAS,OAAO;AAAA,IACnC,EAAE,UAAU,OAAO,QAAQ,KAAK,EAAE;AAAA,EACpC;AAEA,SAAO,WAAW,OAAO;AAAA,IACvB,OAAO;AAAA,MACL,MAAM,mBAAmB;AAAA,MACzB,OAAO,iBAAiB;AAAA,MACxB,YAAY,mBAAmB;AAAA,MAC/B,UAAU,WAAW;AAAA,MACrB,mBAAmB,mBAAmB;AAAA,IACxC;AAAA,EACF,CAAC;AACH;","names":["ControlValue"]}
|
|
@@ -13,6 +13,7 @@ export { Tag } from './atoms/tag.mjs';
|
|
|
13
13
|
export { Card } from './card/card.mjs';
|
|
14
14
|
export { Control } from './controls/control.mjs';
|
|
15
15
|
export { useControlContext } from './controls/provider.mjs';
|
|
16
|
+
export { List } from './list/list.mjs';
|
|
16
17
|
import 'react';
|
|
17
18
|
import 'react/jsx-runtime';
|
|
18
19
|
import '../types/avatar.types.mjs';
|
|
@@ -32,3 +33,4 @@ import '../types/icon-button.types.mjs';
|
|
|
32
33
|
import '../types/progress.types.mjs';
|
|
33
34
|
import '../types/tag.types.mjs';
|
|
34
35
|
import '../types/card.types.mjs';
|
|
36
|
+
import '../types/list.types.mjs';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export * from \"./atoms\";\nexport * from \"./card\";\nexport * from \"./controls\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export * from \"./atoms\";\nexport * from \"./card\";\nexport * from \"./controls\";\n\nexport * from \"./list\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ListContentProps } from '../../types/list.types.mjs';
|
|
4
|
+
import '../../types/button.types.mjs';
|
|
5
|
+
import 'react-native';
|
|
6
|
+
import '@impulse-ui-native/theme';
|
|
7
|
+
import '../../types/view.types.mjs';
|
|
8
|
+
|
|
9
|
+
declare const ListContent: react.MemoExoticComponent<({ style, ...props }: ListContentProps) => react_jsx_runtime.JSX.Element>;
|
|
10
|
+
|
|
11
|
+
export { ListContent };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from "react";
|
|
3
|
+
import { StyleSheet } from "react-native";
|
|
4
|
+
import { useStyleProps, useThemedStyles } from "@impulse-ui-native/theme";
|
|
5
|
+
import { View } from "../atoms/view";
|
|
6
|
+
const ListContent = memo(function ListContent2({
|
|
7
|
+
style,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
const extractedStyleProps = useStyleProps(props);
|
|
11
|
+
const styles = useThemedStyles(themedStyles);
|
|
12
|
+
const composedStyle = useMemo(
|
|
13
|
+
() => [styles.part, extractedStyleProps, style],
|
|
14
|
+
[styles.part, extractedStyleProps, style]
|
|
15
|
+
);
|
|
16
|
+
return /* @__PURE__ */ jsx(View, { ...props, style: composedStyle });
|
|
17
|
+
});
|
|
18
|
+
function themedStyles(theme) {
|
|
19
|
+
const tokens = theme.components.list;
|
|
20
|
+
return StyleSheet.create({
|
|
21
|
+
part: { flex: 1, minWidth: 0, gap: tokens.content.gap }
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
ListContent
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/list/content.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport type { AppTheme } from \"@impulse-ui-native/theme\";\nimport { useStyleProps, useThemedStyles } from \"@impulse-ui-native/theme\";\n\nimport type { ListContentProps } from \"../../types\";\nimport { View } from \"../atoms/view\";\n\nexport const ListContent = memo(function ListContent({\n style,\n ...props\n}: ListContentProps) {\n const extractedStyleProps = useStyleProps(props);\n const styles = useThemedStyles(themedStyles);\n const composedStyle = useMemo(\n () => [styles.part, extractedStyleProps, style],\n [styles.part, extractedStyleProps, style],\n );\n return <View {...props} style={composedStyle} />;\n});\nfunction themedStyles(theme: AppTheme) {\n const tokens = theme.components.list;\n return StyleSheet.create({\n part: { flex: 1, minWidth: 0, gap: tokens.content.gap },\n });\n}\n"],"mappings":"AAmBS;AAnBT,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAG3B,SAAS,eAAe,uBAAuB;AAG/C,SAAS,YAAY;AAEd,MAAM,cAAc,KAAK,SAASA,aAAY;AAAA,EACnD;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,QAAM,sBAAsB,cAAc,KAAK;AAC/C,QAAM,SAAS,gBAAgB,YAAY;AAC3C,QAAM,gBAAgB;AAAA,IACpB,MAAM,CAAC,OAAO,MAAM,qBAAqB,KAAK;AAAA,IAC9C,CAAC,OAAO,MAAM,qBAAqB,KAAK;AAAA,EAC1C;AACA,SAAO,oBAAC,QAAM,GAAG,OAAO,OAAO,eAAe;AAChD,CAAC;AACD,SAAS,aAAa,OAAiB;AACrC,QAAM,SAAS,MAAM,WAAW;AAChC,SAAO,WAAW,OAAO;AAAA,IACvB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,OAAO,QAAQ,IAAI;AAAA,EACxD,CAAC;AACH;","names":["ListContent"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/list/index.ts"],"sourcesContent":["export { List } from \"./list\";\n"],"mappings":"AAAA,SAAS,YAAY;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ListItemProps } from '../../types/list.types.mjs';
|
|
4
|
+
import '../../types/button.types.mjs';
|
|
5
|
+
import 'react-native';
|
|
6
|
+
import '@impulse-ui-native/theme';
|
|
7
|
+
import '../../types/view.types.mjs';
|
|
8
|
+
|
|
9
|
+
declare const ListItem: react.MemoExoticComponent<({ style, ...props }: ListItemProps) => react_jsx_runtime.JSX.Element>;
|
|
10
|
+
|
|
11
|
+
export { ListItem };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from "react";
|
|
3
|
+
import { StyleSheet } from "react-native";
|
|
4
|
+
import { useStyleProps, useThemedStyles } from "@impulse-ui-native/theme";
|
|
5
|
+
import { View } from "../atoms/view";
|
|
6
|
+
const ListItem = memo(function ListItem2({
|
|
7
|
+
style,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
const extractedStyleProps = useStyleProps(props);
|
|
11
|
+
const styles = useThemedStyles(themedStyles);
|
|
12
|
+
const composedStyle = useMemo(
|
|
13
|
+
() => [styles.part, extractedStyleProps, style],
|
|
14
|
+
[styles.part, extractedStyleProps, style]
|
|
15
|
+
);
|
|
16
|
+
return /* @__PURE__ */ jsx(View, { ...props, style: composedStyle });
|
|
17
|
+
});
|
|
18
|
+
function themedStyles(theme) {
|
|
19
|
+
const tokens = theme.components.list;
|
|
20
|
+
return StyleSheet.create({
|
|
21
|
+
part: {
|
|
22
|
+
flexDirection: "row",
|
|
23
|
+
alignItems: "center",
|
|
24
|
+
gap: tokens.item.gap,
|
|
25
|
+
padding: tokens.item.padding
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
ListItem
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/list/item.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport type { AppTheme } from \"@impulse-ui-native/theme\";\nimport { useStyleProps, useThemedStyles } from \"@impulse-ui-native/theme\";\n\nimport type { ListItemProps } from \"../../types\";\nimport { View } from \"../atoms/view\";\n\nexport const ListItem = memo(function ListItem({\n style,\n ...props\n}: ListItemProps) {\n const extractedStyleProps = useStyleProps(props);\n const styles = useThemedStyles(themedStyles);\n const composedStyle = useMemo(\n () => [styles.part, extractedStyleProps, style],\n [styles.part, extractedStyleProps, style],\n );\n return <View {...props} style={composedStyle} />;\n});\nfunction themedStyles(theme: AppTheme) {\n const tokens = theme.components.list;\n return StyleSheet.create({\n part: {\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: tokens.item.gap,\n padding: tokens.item.padding,\n },\n });\n}\n"],"mappings":"AAmBS;AAnBT,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAG3B,SAAS,eAAe,uBAAuB;AAG/C,SAAS,YAAY;AAEd,MAAM,WAAW,KAAK,SAASA,UAAS;AAAA,EAC7C;AAAA,EACA,GAAG;AACL,GAAkB;AAChB,QAAM,sBAAsB,cAAc,KAAK;AAC/C,QAAM,SAAS,gBAAgB,YAAY;AAC3C,QAAM,gBAAgB;AAAA,IACpB,MAAM,CAAC,OAAO,MAAM,qBAAqB,KAAK;AAAA,IAC9C,CAAC,OAAO,MAAM,qBAAqB,KAAK;AAAA,EAC1C;AACA,SAAO,oBAAC,QAAM,GAAG,OAAO,OAAO,eAAe;AAChD,CAAC;AACD,SAAS,aAAa,OAAiB;AACrC,QAAM,SAAS,MAAM,WAAW;AAChC,SAAO,WAAW,OAAO;AAAA,IACvB,MAAM;AAAA,MACJ,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,KAAK,OAAO,KAAK;AAAA,MACjB,SAAS,OAAO,KAAK;AAAA,IACvB;AAAA,EACF,CAAC;AACH;","names":["ListItem"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ListLeadingProps } from '../../types/list.types.mjs';
|
|
4
|
+
import '../../types/button.types.mjs';
|
|
5
|
+
import 'react-native';
|
|
6
|
+
import '@impulse-ui-native/theme';
|
|
7
|
+
import '../../types/view.types.mjs';
|
|
8
|
+
|
|
9
|
+
declare const ListLeading: react.MemoExoticComponent<({ style, ...props }: ListLeadingProps) => react_jsx_runtime.JSX.Element>;
|
|
10
|
+
|
|
11
|
+
export { ListLeading };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from "react";
|
|
3
|
+
import { StyleSheet } from "react-native";
|
|
4
|
+
import { useStyleProps, useThemedStyles } from "@impulse-ui-native/theme";
|
|
5
|
+
import { View } from "../atoms/view";
|
|
6
|
+
const ListLeading = memo(function ListLeading2({
|
|
7
|
+
style,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
const extractedStyleProps = useStyleProps(props);
|
|
11
|
+
const styles = useThemedStyles(themedStyles);
|
|
12
|
+
const composedStyle = useMemo(
|
|
13
|
+
() => [styles.part, extractedStyleProps, style],
|
|
14
|
+
[styles.part, extractedStyleProps, style]
|
|
15
|
+
);
|
|
16
|
+
return /* @__PURE__ */ jsx(View, { ...props, style: composedStyle });
|
|
17
|
+
});
|
|
18
|
+
function themedStyles(theme) {
|
|
19
|
+
const tokens = theme.components.list;
|
|
20
|
+
return StyleSheet.create({
|
|
21
|
+
part: {
|
|
22
|
+
gap: tokens.item.gap,
|
|
23
|
+
flexShrink: 0,
|
|
24
|
+
alignItems: "center",
|
|
25
|
+
justifyContent: "center"
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
ListLeading
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=leading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/list/leading.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { StyleSheet } from \"react-native\";\n\nimport type { AppTheme } from \"@impulse-ui-native/theme\";\nimport { useStyleProps, useThemedStyles } from \"@impulse-ui-native/theme\";\n\nimport type { ListLeadingProps } from \"../../types\";\nimport { View } from \"../atoms/view\";\n\nexport const ListLeading = memo(function ListLeading({\n style,\n ...props\n}: ListLeadingProps) {\n const extractedStyleProps = useStyleProps(props);\n const styles = useThemedStyles(themedStyles);\n const composedStyle = useMemo(\n () => [styles.part, extractedStyleProps, style],\n [styles.part, extractedStyleProps, style],\n );\n return <View {...props} style={composedStyle} />;\n});\nfunction themedStyles(theme: AppTheme) {\n const tokens = theme.components.list;\n return StyleSheet.create({\n part: {\n gap: tokens.item.gap,\n flexShrink: 0,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n });\n}\n"],"mappings":"AAmBS;AAnBT,SAAS,MAAM,eAAe;AAC9B,SAAS,kBAAkB;AAG3B,SAAS,eAAe,uBAAuB;AAG/C,SAAS,YAAY;AAEd,MAAM,cAAc,KAAK,SAASA,aAAY;AAAA,EACnD;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,QAAM,sBAAsB,cAAc,KAAK;AAC/C,QAAM,SAAS,gBAAgB,YAAY;AAC3C,QAAM,gBAAgB;AAAA,IACpB,MAAM,CAAC,OAAO,MAAM,qBAAqB,KAAK;AAAA,IAC9C,CAAC,OAAO,MAAM,qBAAqB,KAAK;AAAA,EAC1C;AACA,SAAO,oBAAC,QAAM,GAAG,OAAO,OAAO,eAAe;AAChD,CAAC;AACD,SAAS,aAAa,OAAiB;AACrC,QAAM,SAAS,MAAM,WAAW;AAChC,SAAO,WAAW,OAAO;AAAA,IACvB,MAAM;AAAA,MACJ,KAAK,OAAO,KAAK;AAAA,MACjB,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,gBAAgB;AAAA,IAClB;AAAA,EACF,CAAC;AACH;","names":["ListLeading"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ListRootProps, ListItemProps, ListPressableProps, ListLeadingProps, ListContentProps, ListTrailingProps } from '../../types/list.types.mjs';
|
|
4
|
+
import '../../types/button.types.mjs';
|
|
5
|
+
import 'react-native';
|
|
6
|
+
import '@impulse-ui-native/theme';
|
|
7
|
+
import '../../types/view.types.mjs';
|
|
8
|
+
|
|
9
|
+
declare const List: {
|
|
10
|
+
Root: react.MemoExoticComponent<({ style, ...props }: ListRootProps) => react_jsx_runtime.JSX.Element>;
|
|
11
|
+
Item: react.MemoExoticComponent<({ style, ...props }: ListItemProps) => react_jsx_runtime.JSX.Element>;
|
|
12
|
+
Pressable: react.MemoExoticComponent<({ disabled, style, ...props }: ListPressableProps) => react_jsx_runtime.JSX.Element>;
|
|
13
|
+
Leading: react.MemoExoticComponent<({ style, ...props }: ListLeadingProps) => react_jsx_runtime.JSX.Element>;
|
|
14
|
+
Content: react.MemoExoticComponent<({ style, ...props }: ListContentProps) => react_jsx_runtime.JSX.Element>;
|
|
15
|
+
Trailing: react.MemoExoticComponent<({ style, ...props }: ListTrailingProps) => react_jsx_runtime.JSX.Element>;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { List };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ListContent } from "./content";
|
|
2
|
+
import { ListItem } from "./item";
|
|
3
|
+
import { ListLeading } from "./leading";
|
|
4
|
+
import { ListPressable } from "./pressable";
|
|
5
|
+
import { ListRoot } from "./root";
|
|
6
|
+
import { ListTrailing } from "./trailing";
|
|
7
|
+
const List = {
|
|
8
|
+
Root: ListRoot,
|
|
9
|
+
Item: ListItem,
|
|
10
|
+
Pressable: ListPressable,
|
|
11
|
+
Leading: ListLeading,
|
|
12
|
+
Content: ListContent,
|
|
13
|
+
Trailing: ListTrailing
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
List
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/list/list.tsx"],"sourcesContent":["import { ListContent } from \"./content\";\nimport { ListItem } from \"./item\";\nimport { ListLeading } from \"./leading\";\nimport { ListPressable } from \"./pressable\";\nimport { ListRoot } from \"./root\";\nimport { ListTrailing } from \"./trailing\";\n\nexport const List = {\n Root: ListRoot,\n Item: ListItem,\n Pressable: ListPressable,\n Leading: ListLeading,\n Content: ListContent,\n Trailing: ListTrailing,\n};\n"],"mappings":"AAAA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAEtB,MAAM,OAAO;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AACZ;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ListPressableProps } from '../../types/list.types.mjs';
|
|
4
|
+
import '../../types/button.types.mjs';
|
|
5
|
+
import 'react-native';
|
|
6
|
+
import '@impulse-ui-native/theme';
|
|
7
|
+
import '../../types/view.types.mjs';
|
|
8
|
+
|
|
9
|
+
declare const ListPressable: react.MemoExoticComponent<({ disabled, style, ...props }: ListPressableProps) => react_jsx_runtime.JSX.Element>;
|
|
10
|
+
|
|
11
|
+
export { ListPressable };
|