@alveole/components 0.14.5 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/core/Box/Box.d.ts +1 -1
  2. package/dist/core/Box/Box.stories.d.ts +3 -3
  3. package/dist/core/Typography/Typography.stories.d.ts +2 -2
  4. package/dist/ui/Avatar/Avatar.d.ts +10 -0
  5. package/dist/ui/Avatar/Avatar.d.ts.map +1 -0
  6. package/dist/ui/Avatar/Avatar.js +27 -0
  7. package/dist/ui/Avatar/Avatar.stories.d.ts +27 -0
  8. package/dist/ui/Avatar/Avatar.stories.d.ts.map +1 -0
  9. package/dist/ui/Avatar/Avatar.stories.js +15 -0
  10. package/dist/ui/Avatar/Avatar.styles.d.ts +16 -0
  11. package/dist/ui/Avatar/Avatar.styles.d.ts.map +1 -0
  12. package/dist/ui/Avatar/Avatar.styles.js +13 -0
  13. package/dist/ui/Avatar/index.d.ts +2 -0
  14. package/dist/ui/Avatar/index.d.ts.map +1 -0
  15. package/dist/ui/Avatar/index.js +1 -0
  16. package/dist/ui/Button/Button.d.ts.map +1 -1
  17. package/dist/ui/Button/Button.js +1 -0
  18. package/dist/ui/ListItem/ListItem.d.ts +15 -0
  19. package/dist/ui/ListItem/ListItem.d.ts.map +1 -0
  20. package/dist/ui/ListItem/ListItem.js +10 -0
  21. package/dist/ui/ListItem/ListItem.stories.d.ts +104 -0
  22. package/dist/ui/ListItem/ListItem.stories.d.ts.map +1 -0
  23. package/dist/ui/ListItem/ListItem.stories.js +23 -0
  24. package/dist/ui/ListItem/ListItem.styles.d.ts +88 -0
  25. package/dist/ui/ListItem/ListItem.styles.d.ts.map +1 -0
  26. package/dist/ui/ListItem/ListItem.styles.js +82 -0
  27. package/dist/ui/ListItem/index.d.ts +2 -0
  28. package/dist/ui/ListItem/index.d.ts.map +1 -0
  29. package/dist/ui/ListItem/index.js +1 -0
  30. package/dist/ui/LucideIcon/LucideIcon.props.d.ts +6 -6
  31. package/dist/ui/LucideIcon/LucideIcon.stories.d.ts +3 -3
  32. package/dist/ui/ResourceList/ResourceList.d.ts +14 -0
  33. package/dist/ui/ResourceList/ResourceList.d.ts.map +1 -0
  34. package/dist/ui/ResourceList/ResourceList.js +28 -0
  35. package/dist/ui/ResourceList/ResourceList.stories.d.ts +96 -0
  36. package/dist/ui/ResourceList/ResourceList.stories.d.ts.map +1 -0
  37. package/dist/ui/ResourceList/ResourceList.stories.js +45 -0
  38. package/dist/ui/ResourceList/ResourceList.styles.d.ts +82 -0
  39. package/dist/ui/ResourceList/ResourceList.styles.d.ts.map +1 -0
  40. package/dist/ui/ResourceList/ResourceList.styles.js +73 -0
  41. package/dist/ui/ResourceList/ResourceListNoContent.d.ts +95 -0
  42. package/dist/ui/ResourceList/ResourceListNoContent.d.ts.map +1 -0
  43. package/dist/ui/ResourceList/ResourceListNoContent.js +13 -0
  44. package/dist/ui/ResourceList/index.d.ts +3 -0
  45. package/dist/ui/ResourceList/index.d.ts.map +1 -0
  46. package/dist/ui/ResourceList/index.js +2 -0
  47. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.d.ts +6 -0
  48. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.d.ts.map +1 -0
  49. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.js +16 -0
  50. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.stories.d.ts +33 -0
  51. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.stories.d.ts.map +1 -0
  52. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.stories.js +18 -0
  53. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.styles.d.ts +23 -0
  54. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.styles.d.ts.map +1 -0
  55. package/dist/ui/ToolbarBottomNav/ToolbarBottomNav.styles.js +18 -0
  56. package/dist/ui/ToolbarBottomNav/ToolbarBottomNavIcon.d.ts +9 -0
  57. package/dist/ui/ToolbarBottomNav/ToolbarBottomNavIcon.d.ts.map +1 -0
  58. package/dist/ui/ToolbarBottomNav/ToolbarBottomNavIcon.js +5 -0
  59. package/dist/ui/ToolbarBottomNav/index.d.ts +3 -0
  60. package/dist/ui/ToolbarBottomNav/index.d.ts.map +1 -0
  61. package/dist/ui/ToolbarBottomNav/index.js +9 -0
  62. package/dist/ui/ToolbarTop/ToolbarTop.d.ts +14 -0
  63. package/dist/ui/ToolbarTop/ToolbarTop.d.ts.map +1 -0
  64. package/dist/ui/ToolbarTop/ToolbarTop.js +18 -0
  65. package/dist/ui/ToolbarTop/ToolbarTop.stories.d.ts +59 -0
  66. package/dist/ui/ToolbarTop/ToolbarTop.stories.d.ts.map +1 -0
  67. package/dist/ui/ToolbarTop/ToolbarTop.stories.js +20 -0
  68. package/dist/ui/ToolbarTop/ToolbarTop.styles.d.ts +43 -0
  69. package/dist/ui/ToolbarTop/ToolbarTop.styles.d.ts.map +1 -0
  70. package/dist/ui/ToolbarTop/ToolbarTop.styles.js +37 -0
  71. package/dist/ui/ToolbarTop/index.d.ts +2 -0
  72. package/dist/ui/ToolbarTop/index.d.ts.map +1 -0
  73. package/dist/ui/ToolbarTop/index.js +1 -0
  74. package/dist/ui/index.d.ts +5 -0
  75. package/dist/ui/index.d.ts.map +1 -1
  76. package/dist/ui/index.js +5 -0
  77. package/package.json +18 -3
@@ -16,6 +16,9 @@ declare const _default: {
16
16
  Box: "Box";
17
17
  tab: "tab";
18
18
  olive: "olive";
19
+ Menu: "Menu";
20
+ Image: "Image";
21
+ toolbox: "toolbox";
19
22
  AArrowDown: "AArrowDown";
20
23
  AArrowUp: "AArrowUp";
21
24
  ALargeSmall: "ALargeSmall";
@@ -830,7 +833,6 @@ declare const _default: {
830
833
  IceCreamCone: "IceCreamCone";
831
834
  IdCard: "IdCard";
832
835
  IdCardLanyard: "IdCardLanyard";
833
- Image: "Image";
834
836
  ImageDown: "ImageDown";
835
837
  ImageMinus: "ImageMinus";
836
838
  ImageOff: "ImageOff";
@@ -971,7 +973,6 @@ declare const _default: {
971
973
  MegaphoneOff: "MegaphoneOff";
972
974
  Meh: "Meh";
973
975
  MemoryStick: "MemoryStick";
974
- Menu: "Menu";
975
976
  Merge: "Merge";
976
977
  MessageCircle: "MessageCircle";
977
978
  MessageCircleCode: "MessageCircleCode";
@@ -2017,7 +2018,6 @@ declare const _default: {
2017
2018
  toast: "toast";
2018
2019
  toaster: "toaster";
2019
2020
  toiletRoll: "toiletRoll";
2020
- toolbox: "toolbox";
2021
2021
  toolbox2: "toolbox2";
2022
2022
  topCrop: "topCrop";
2023
2023
  towelFolded: "towelFolded";
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { FlatListProps } from 'react-native';
3
+ export type ResourceListProps<Item> = FlatListProps<Item> & {
4
+ data: Item[];
5
+ isLoading?: boolean;
6
+ withPagination?: boolean;
7
+ noBorder?: boolean;
8
+ withWhiteBackground?: boolean;
9
+ titre?: string;
10
+ renderNoContent: () => React.ReactNode;
11
+ };
12
+ export declare const ResourceListDivider: () => import("react/jsx-runtime").JSX.Element;
13
+ export declare const ResourceList: <Item>(props: ResourceListProps<Item>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
14
+ //# sourceMappingURL=ResourceList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceList.d.ts","sourceRoot":"","sources":["../../../src/ui/ResourceList/ResourceList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,cAAc,CAAC;AAI1E,MAAM,MAAM,iBAAiB,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG;IAC1D,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,+CAI/B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,IAAI,EAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC,0TAsDjE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Typography } from '@alveole/components';
3
+ import { ActivityIndicator, FlatList } from 'react-native';
4
+ import { Divider } from '../Divider';
5
+ import { useStyles } from './ResourceList.styles';
6
+ export const ResourceListDivider = () => (_jsx(Box, { pl: "100", pr: "100", children: _jsx(Divider, {}) }));
7
+ export const ResourceList = (props) => {
8
+ const { style, data, isLoading, withPagination, renderNoContent, noBorder = false, withWhiteBackground = false, titre, ...listProps } = props;
9
+ const styles = useStyles();
10
+ if (isLoading) {
11
+ return (_jsx(Box, { tag: "resource-list-loader", style: styles.loader, children: _jsx(ActivityIndicator, { size: "large", style: { margin: 'auto' } }) }));
12
+ }
13
+ if (!data || data.length === 0)
14
+ return renderNoContent();
15
+ const paginationStyles = withPagination
16
+ ? {
17
+ borderBottomWidth: 0,
18
+ borderBottomLeftRadius: 0,
19
+ borderBottomRightRadius: 0,
20
+ }
21
+ : {};
22
+ return (_jsxs(Box, { tag: "resource-list", style: styles.list, children: [titre && (_jsx(Box, { tag: "resource-list-entete", style: styles.entete, children: _jsx(Typography, { style: styles.enteteTitle, children: titre }) })), _jsx(Box, { tag: "resource-list-items", width: "100%", style: {
23
+ ...styles.items,
24
+ ...paginationStyles,
25
+ ...(noBorder ? styles.noBorder : styles.withBorder),
26
+ ...(withWhiteBackground ? styles.itemsWithWhiteBackground : {}),
27
+ }, children: _jsx(FlatList, { data: data, contentContainerStyle: style, ...listProps }) })] }));
28
+ };
@@ -0,0 +1,96 @@
1
+ declare const _default: {
2
+ title: string;
3
+ tags: ["Composant"];
4
+ experimental: false;
5
+ figmaURL: string;
6
+ description: string;
7
+ component: <Item>(props: import("./ResourceList").ResourceListProps<Item>) => string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
8
+ styleFn: () => {
9
+ list: {
10
+ display: "flex";
11
+ flexDirection: "column";
12
+ gap: import("@alveole/theme").Spacing;
13
+ };
14
+ entete: {
15
+ paddingTop: import("@alveole/theme").Spacing;
16
+ paddingBottom: import("@alveole/theme").Spacing;
17
+ };
18
+ enteteTitle: {
19
+ color: "#151617";
20
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
21
+ fontSize: 14;
22
+ lineHeight: 20;
23
+ letterSpacing: 0;
24
+ };
25
+ items: {
26
+ borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
27
+ };
28
+ itemsWithWhiteBackground: {
29
+ backgroundColor: "#FFFFFF";
30
+ };
31
+ withBorder: {
32
+ borderWidth: number;
33
+ borderColor: "#DEE3EC";
34
+ borderLeftWidth: number;
35
+ borderRightWidth: number;
36
+ };
37
+ noBorder: {
38
+ borderWidth: number;
39
+ borderLeftWidth: number;
40
+ borderRightWidth: number;
41
+ };
42
+ loader: {
43
+ flex: number;
44
+ justifyContent: "center";
45
+ alignItems: "center";
46
+ padding: import("@alveole/theme").Spacing;
47
+ };
48
+ noContent: {
49
+ display: "flex";
50
+ padding: import("@alveole/theme").Spacing;
51
+ flexDirection: "column";
52
+ alignItems: "center";
53
+ gap: import("@alveole/theme").Spacing;
54
+ borderRadius: import("@alveole/theme").Spacing;
55
+ borderWidth: number;
56
+ borderColor: "#DEE3EC";
57
+ backgroundColor: "#FFFFFF";
58
+ borderLeftWidth: number;
59
+ borderRightWidth: number;
60
+ width: "100%";
61
+ };
62
+ noContentIntro: {
63
+ display: "flex";
64
+ flexDirection: "column";
65
+ alignItems: "center";
66
+ gap: import("@alveole/theme").Spacing;
67
+ };
68
+ noContentText: {
69
+ display: "flex";
70
+ flexDirection: "column";
71
+ alignItems: "center";
72
+ gap: import("@alveole/theme").Spacing;
73
+ };
74
+ noContentTextTitle: {
75
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
76
+ fontSize: 18 | 20;
77
+ lineHeight: 24 | 28;
78
+ letterSpacing: 0;
79
+ color: "#151617";
80
+ };
81
+ noContentTextDescription: {
82
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
83
+ fontSize: 14;
84
+ lineHeight: 20;
85
+ letterSpacing: 0;
86
+ color: "#5F6571";
87
+ };
88
+ };
89
+ };
90
+ export default _default;
91
+ export declare const Default: () => import("react/jsx-runtime").JSX.Element;
92
+ export declare const WithTitle: () => import("react/jsx-runtime").JSX.Element;
93
+ export declare const WithIcon: () => import("react/jsx-runtime").JSX.Element;
94
+ export declare const WithPreviewImageAndTrailing: () => import("react/jsx-runtime").JSX.Element;
95
+ export declare const WithNoContent: () => import("react/jsx-runtime").JSX.Element;
96
+ //# sourceMappingURL=ResourceList.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceList.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/ResourceList/ResourceList.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wBASkB;AA6BlB,eAAO,MAAM,OAAO,+CAgBnB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAiBrB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAqBpB,CAAC;AAEF,eAAO,MAAM,2BAA2B,+CAsBvC,CAAC;AAEF,eAAO,MAAM,aAAa,+CAczB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ListItem } from '../ListItem';
3
+ import { LucideIcon } from '../LucideIcon';
4
+ import { ResourceList } from './ResourceList';
5
+ import { useStyles } from './ResourceList.styles';
6
+ import { ResourceListNoContent } from './ResourceListNoContent';
7
+ export default {
8
+ title: 'ResourceList',
9
+ tags: ['Composant'],
10
+ experimental: false,
11
+ figmaURL: 'https://www.figma.com/design/xJz8Z6vfrnZPKTtRbuT2W8/Alveole---Composants?node-id=1002-558&p=f&t=wo7HwL3p0McYL9ei-0',
12
+ description: "Permet d’afficher une liste d'items avec un header et un footer",
13
+ component: ResourceList,
14
+ styleFn: useStyles,
15
+ };
16
+ const exampleData = [
17
+ { id: 'id_1', name: 'Joe Dalton', description: 'Peintre' },
18
+ { id: 'id_2', name: 'Peter Parker', description: 'Peintre' },
19
+ { id: 'id_3', name: 'John Snow', description: 'Peintre' },
20
+ ];
21
+ const exampleDataWithPreview = [
22
+ {
23
+ id: 'id_1',
24
+ name: 'Joe Dalton',
25
+ description: 'Peintre',
26
+ preview_url: 'https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=400',
27
+ },
28
+ {
29
+ id: 'id_2',
30
+ name: 'Peter Parker',
31
+ description: 'Peintre',
32
+ preview_url: 'https://images.unsplash.com/photo-1513475382585-d06e58bcb0e0?w=400',
33
+ },
34
+ {
35
+ id: 'id_3',
36
+ name: 'John Snow',
37
+ description: 'Peintre',
38
+ preview_url: 'https://images.unsplash.com/photo-1579783902614-a3fb3927b6a5?w=400',
39
+ },
40
+ ];
41
+ export const Default = () => (_jsx(ResourceList, { data: exampleData, keyExtractor: item => item.id, renderItem: ({ item, index }) => (_jsx(ListItem, { title: item.name, description: item.description, showSeparateur: index !== 0 })), renderNoContent: () => (_jsx(ResourceListNoContent, { title: "Aucun \u00E9l\u00E9ment", description: "Cliquez sur le bouton", IconProps: { name: 'House' }, ButtonProps: { title: 'Retour' } })) }));
42
+ export const WithTitle = () => (_jsx(ResourceList, { titre: "Titre de la liste", data: exampleData, keyExtractor: item => item.id, renderItem: ({ item, index }) => (_jsx(ListItem, { title: item.name, description: item.description, showSeparateur: index !== 0 })), renderNoContent: () => (_jsx(ResourceListNoContent, { title: "Aucun \u00E9l\u00E9ment", description: "Cliquez sur le bouton", IconProps: { name: 'House' }, ButtonProps: { title: 'Retour' } })) }));
43
+ export const WithIcon = () => (_jsx(ResourceList, { data: exampleData, keyExtractor: item => item.id, renderItem: ({ item, index }) => (_jsx(ListItem, { title: item.name, description: item.description, IconProps: { name: 'Settings' }, showSeparateur: index !== 0 })), renderNoContent: () => (_jsx(ResourceListNoContent, { title: "Aucun \u00E9l\u00E9ment", description: "Cliquez sur le bouton", IconProps: { name: 'House' }, ButtonProps: { title: 'Retour' } })) }));
44
+ export const WithPreviewImageAndTrailing = () => (_jsx(ResourceList, { data: exampleDataWithPreview, keyExtractor: item => item.id, renderItem: ({ item, index }) => (_jsx(ListItem, { title: item.name, description: item.description, preview_url: item.preview_url, trailing: () => _jsx(LucideIcon, { name: "ChevronRight", size: "sm" }), showSeparateur: index !== 0 })), renderNoContent: () => (_jsx(ResourceListNoContent, { title: "Aucun \u00E9l\u00E9ment", description: "Cliquez sur le bouton", IconProps: { name: 'House' }, ButtonProps: { title: 'Retour' } })) }));
45
+ export const WithNoContent = () => (_jsx(ResourceList, { data: [], keyExtractor: item => item.id, renderItem: ({ item }) => _jsx(ListItem, { title: item.name, description: item.description }), renderNoContent: () => (_jsx(ResourceListNoContent, { title: "Aucun \u00E9l\u00E9ment", description: "Cliquez sur le bouton", IconProps: { name: 'House' }, ButtonProps: { title: 'Retour' } })) }));
@@ -0,0 +1,82 @@
1
+ export declare const useStyles: () => {
2
+ list: {
3
+ display: "flex";
4
+ flexDirection: "column";
5
+ gap: import("@alveole/theme").Spacing;
6
+ };
7
+ entete: {
8
+ paddingTop: import("@alveole/theme").Spacing;
9
+ paddingBottom: import("@alveole/theme").Spacing;
10
+ };
11
+ enteteTitle: {
12
+ color: "#151617";
13
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
14
+ fontSize: 14;
15
+ lineHeight: 20;
16
+ letterSpacing: 0;
17
+ };
18
+ items: {
19
+ borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
20
+ };
21
+ itemsWithWhiteBackground: {
22
+ backgroundColor: "#FFFFFF";
23
+ };
24
+ withBorder: {
25
+ borderWidth: number;
26
+ borderColor: "#DEE3EC";
27
+ borderLeftWidth: number;
28
+ borderRightWidth: number;
29
+ };
30
+ noBorder: {
31
+ borderWidth: number;
32
+ borderLeftWidth: number;
33
+ borderRightWidth: number;
34
+ };
35
+ loader: {
36
+ flex: number;
37
+ justifyContent: "center";
38
+ alignItems: "center";
39
+ padding: import("@alveole/theme").Spacing;
40
+ };
41
+ noContent: {
42
+ display: "flex";
43
+ padding: import("@alveole/theme").Spacing;
44
+ flexDirection: "column";
45
+ alignItems: "center";
46
+ gap: import("@alveole/theme").Spacing;
47
+ borderRadius: import("@alveole/theme").Spacing;
48
+ borderWidth: number;
49
+ borderColor: "#DEE3EC";
50
+ backgroundColor: "#FFFFFF";
51
+ borderLeftWidth: number;
52
+ borderRightWidth: number;
53
+ width: "100%";
54
+ };
55
+ noContentIntro: {
56
+ display: "flex";
57
+ flexDirection: "column";
58
+ alignItems: "center";
59
+ gap: import("@alveole/theme").Spacing;
60
+ };
61
+ noContentText: {
62
+ display: "flex";
63
+ flexDirection: "column";
64
+ alignItems: "center";
65
+ gap: import("@alveole/theme").Spacing;
66
+ };
67
+ noContentTextTitle: {
68
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
69
+ fontSize: 18 | 20;
70
+ lineHeight: 24 | 28;
71
+ letterSpacing: 0;
72
+ color: "#151617";
73
+ };
74
+ noContentTextDescription: {
75
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
76
+ fontSize: 14;
77
+ lineHeight: 20;
78
+ letterSpacing: 0;
79
+ color: "#5F6571";
80
+ };
81
+ };
82
+ //# sourceMappingURL=ResourceList.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceList.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/ResourceList/ResourceList.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEnB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { makeStyles } from '@alveole/theme';
2
+ export const useStyles = makeStyles(({ color, text, radius, spacing, isVariant }) => ({
3
+ list: {
4
+ display: 'flex',
5
+ flexDirection: 'column',
6
+ gap: spacing('1V'),
7
+ },
8
+ entete: {
9
+ paddingTop: spacing('1V'),
10
+ paddingBottom: spacing('1V'),
11
+ },
12
+ enteteTitle: {
13
+ ...text['Corps de texte'].SM.Medium,
14
+ color: color.light.text['label-grey'],
15
+ },
16
+ items: {
17
+ borderRadius: radius('md'),
18
+ },
19
+ itemsWithWhiteBackground: {
20
+ backgroundColor: '#FFFFFF',
21
+ },
22
+ withBorder: {
23
+ borderWidth: 1,
24
+ borderColor: color.border['default-grey'],
25
+ borderLeftWidth: 1,
26
+ borderRightWidth: 1,
27
+ },
28
+ noBorder: {
29
+ borderWidth: 0,
30
+ borderLeftWidth: 0,
31
+ borderRightWidth: 0,
32
+ },
33
+ loader: {
34
+ flex: 1,
35
+ justifyContent: 'center',
36
+ alignItems: 'center',
37
+ padding: spacing('4W'),
38
+ },
39
+ noContent: {
40
+ display: 'flex',
41
+ padding: spacing('4W'),
42
+ flexDirection: 'column',
43
+ alignItems: 'center',
44
+ gap: spacing('5W'),
45
+ borderRadius: isVariant('mobile') ? 0 : spacing('2W'),
46
+ borderWidth: 1,
47
+ borderColor: color.border['default-grey'],
48
+ backgroundColor: '#FFFFFF',
49
+ borderLeftWidth: isVariant('mobile') ? 0 : 1,
50
+ borderRightWidth: isVariant('mobile') ? 0 : 1,
51
+ width: '100%',
52
+ },
53
+ noContentIntro: {
54
+ display: 'flex',
55
+ flexDirection: 'column',
56
+ alignItems: 'center',
57
+ gap: spacing('2W'),
58
+ },
59
+ noContentText: {
60
+ display: 'flex',
61
+ flexDirection: 'column',
62
+ alignItems: 'center',
63
+ gap: spacing('1W'),
64
+ },
65
+ noContentTextTitle: {
66
+ color: color.text['title-grey'],
67
+ ...text.Titres['H6 - XXS'],
68
+ },
69
+ noContentTextDescription: {
70
+ color: color.text['mention'],
71
+ ...text['Corps de texte'].SM.Regular,
72
+ },
73
+ }));
@@ -0,0 +1,95 @@
1
+ import { BoxProps } from '@alveole/components';
2
+ import { ButtonProps } from '../Button';
3
+ import { IconProps } from '../LucideIcon';
4
+ export type ResourceListNoContentProps = Pick<BoxProps, 'style'> & {
5
+ title: string;
6
+ description: string;
7
+ IconProps: Pick<IconProps, 'color' | 'name'>;
8
+ ButtonProps?: Pick<ButtonProps, 'title' | 'onPress'>;
9
+ };
10
+ export declare const ResourceListNoContent: {
11
+ (props: ResourceListNoContentProps): import("react/jsx-runtime").JSX.Element;
12
+ stylesFn: () => {
13
+ list: {
14
+ display: "flex";
15
+ flexDirection: "column";
16
+ gap: import("@alveole/theme").Spacing;
17
+ };
18
+ entete: {
19
+ paddingTop: import("@alveole/theme").Spacing;
20
+ paddingBottom: import("@alveole/theme").Spacing;
21
+ };
22
+ enteteTitle: {
23
+ color: "#151617";
24
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
25
+ fontSize: 14;
26
+ lineHeight: 20;
27
+ letterSpacing: 0;
28
+ };
29
+ items: {
30
+ borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
31
+ };
32
+ itemsWithWhiteBackground: {
33
+ backgroundColor: "#FFFFFF";
34
+ };
35
+ withBorder: {
36
+ borderWidth: number;
37
+ borderColor: "#DEE3EC";
38
+ borderLeftWidth: number;
39
+ borderRightWidth: number;
40
+ };
41
+ noBorder: {
42
+ borderWidth: number;
43
+ borderLeftWidth: number;
44
+ borderRightWidth: number;
45
+ };
46
+ loader: {
47
+ flex: number;
48
+ justifyContent: "center";
49
+ alignItems: "center";
50
+ padding: import("@alveole/theme").Spacing;
51
+ };
52
+ noContent: {
53
+ display: "flex";
54
+ padding: import("@alveole/theme").Spacing;
55
+ flexDirection: "column";
56
+ alignItems: "center";
57
+ gap: import("@alveole/theme").Spacing;
58
+ borderRadius: import("@alveole/theme").Spacing;
59
+ borderWidth: number;
60
+ borderColor: "#DEE3EC";
61
+ backgroundColor: "#FFFFFF";
62
+ borderLeftWidth: number;
63
+ borderRightWidth: number;
64
+ width: "100%";
65
+ };
66
+ noContentIntro: {
67
+ display: "flex";
68
+ flexDirection: "column";
69
+ alignItems: "center";
70
+ gap: import("@alveole/theme").Spacing;
71
+ };
72
+ noContentText: {
73
+ display: "flex";
74
+ flexDirection: "column";
75
+ alignItems: "center";
76
+ gap: import("@alveole/theme").Spacing;
77
+ };
78
+ noContentTextTitle: {
79
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
80
+ fontSize: 18 | 20;
81
+ lineHeight: 24 | 28;
82
+ letterSpacing: 0;
83
+ color: "#151617";
84
+ };
85
+ noContentTextDescription: {
86
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
87
+ fontSize: 14;
88
+ lineHeight: 20;
89
+ letterSpacing: 0;
90
+ color: "#5F6571";
91
+ };
92
+ };
93
+ description: string;
94
+ };
95
+ //# sourceMappingURL=ResourceListNoContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceListNoContent.d.ts","sourceRoot":"","sources":["../../../src/ui/ResourceList/ResourceListNoContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAc,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAU,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AAGtD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBtE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Typography } from '@alveole/components';
3
+ import { Button } from '../Button';
4
+ import { LucideIcon } from '../LucideIcon';
5
+ import { useStyles } from './ResourceList.styles';
6
+ export const ResourceListNoContent = (props) => {
7
+ const { title, description, style, IconProps, ButtonProps, ...boxProps } = props;
8
+ const styles = useStyles();
9
+ return (_jsxs(Box, { style: [styles.noContent, style], ...boxProps, children: [_jsxs(Box, { style: styles.noContentIntro, children: [_jsx(LucideIcon, { size: "lg", ...IconProps }), _jsxs(Box, { style: styles.noContentText, children: [_jsx(Typography, { style: styles.noContentTextTitle, children: title }), _jsx(Typography, { style: styles.noContentTextDescription, children: description })] })] }), ButtonProps && _jsx(Button, { size: "lg", variant: "primary", ...ButtonProps })] }));
10
+ };
11
+ // Component configuration
12
+ ResourceListNoContent.stylesFn = useStyles;
13
+ ResourceListNoContent.description = 'Elément affiché dans une liste vide';
@@ -0,0 +1,3 @@
1
+ export * from './ResourceList';
2
+ export * from './ResourceListNoContent';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/ResourceList/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './ResourceList';
2
+ export * from './ResourceListNoContent';
@@ -0,0 +1,6 @@
1
+ import { Tabs as ExpoTabs } from 'expo-router';
2
+ import React from 'react';
3
+ export type ToolbarBottomNavProps = React.ComponentProps<typeof ExpoTabs>;
4
+ export declare const TabItemHeight = 60;
5
+ export declare const ToolbarBottomNav: (props: ToolbarBottomNavProps) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=ToolbarBottomNav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarBottomNav.d.ts","sourceRoot":"","sources":["../../../src/ui/ToolbarBottomNav/ToolbarBottomNav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC1E,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,4CAkB5D,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Tabs as ExpoTabs } from 'expo-router';
3
+ import { useStyles } from './ToolbarBottomNav.styles';
4
+ export const TabItemHeight = 60;
5
+ export const ToolbarBottomNav = (props) => {
6
+ const { screenOptions, ...tabProps } = props;
7
+ const { tabBarActiveTintColor, tabBarInactiveTintColor, ...styles } = useStyles();
8
+ return (_jsx(ExpoTabs, { screenOptions: {
9
+ headerShown: false,
10
+ ...styles,
11
+ tabBarStyle: { ...styles.tabBarStyle, height: TabItemHeight },
12
+ tabBarActiveTintColor: tabBarActiveTintColor.color,
13
+ tabBarInactiveTintColor: tabBarInactiveTintColor.color,
14
+ ...screenOptions,
15
+ }, ...tabProps }));
16
+ };
@@ -0,0 +1,33 @@
1
+ declare const _default: {
2
+ title: string;
3
+ tags: ["Kit"];
4
+ experimental: false;
5
+ description: string;
6
+ figmaURL: string;
7
+ component: any;
8
+ styleFn: () => {
9
+ tabBarStyle: {
10
+ background: "#FFFFFF";
11
+ borderColor: "#DEE3EC";
12
+ };
13
+ tabBarLabelStyle: {
14
+ readonly fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
15
+ readonly fontSize: 12;
16
+ readonly lineHeight: 20;
17
+ readonly letterSpacing: 0;
18
+ };
19
+ tabBarItemStyle: {
20
+ padding: number;
21
+ margin: number;
22
+ };
23
+ tabBarActiveTintColor: {
24
+ color: "#012B53";
25
+ };
26
+ tabBarInactiveTintColor: {
27
+ color: "#373A3F";
28
+ };
29
+ };
30
+ };
31
+ export default _default;
32
+ export declare const ExampleUsage: () => string;
33
+ //# sourceMappingURL=ToolbarBottomNav.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarBottomNav.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/ToolbarBottomNav/ToolbarBottomNav.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBASkB;AASlB,eAAO,MAAM,YAAY,cAAoB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ToolbarBottomNav } from './index';
2
+ import { useStyles } from './ToolbarBottomNav.styles';
3
+ export default {
4
+ title: 'ToolbarBottomNav',
5
+ tags: ['Kit'],
6
+ experimental: false,
7
+ description: 'Navigation bottom de type TabsExpo. A utiliser dans les _layout.',
8
+ figmaURL: 'https://www.figma.com/design/xJz8Z6vfrnZPKTtRbuT2W8/Alveole---Composants?node-id=1880-852&t=baZKFA9BpkeQGeZm-4',
9
+ component: ToolbarBottomNav,
10
+ styleFn: useStyles,
11
+ };
12
+ const codeExample = `<ToolbarBottomNav>
13
+ // Vers index.tsx
14
+ <ToolbarBottomNav.Screen name="home" options={{ tabBarLabel: 'Home', tabBarIcon: ToolbarBottomNav.Icon('home') }} />
15
+ // Vers list.tsx
16
+ <ToolbarBottomNav.Screen name="list" options={{ tabBarLabel: 'Liste', tabBarIcon: ToolbarBottomNav.Icon('all-inbox') }} />
17
+ </ToolbarBottomNav>`;
18
+ export const ExampleUsage = () => codeExample;
@@ -0,0 +1,23 @@
1
+ export declare const useStyles: () => {
2
+ tabBarStyle: {
3
+ background: "#FFFFFF";
4
+ borderColor: "#DEE3EC";
5
+ };
6
+ tabBarLabelStyle: {
7
+ readonly fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
8
+ readonly fontSize: 12;
9
+ readonly lineHeight: 20;
10
+ readonly letterSpacing: 0;
11
+ };
12
+ tabBarItemStyle: {
13
+ padding: number;
14
+ margin: number;
15
+ };
16
+ tabBarActiveTintColor: {
17
+ color: "#012B53";
18
+ };
19
+ tabBarInactiveTintColor: {
20
+ color: "#373A3F";
21
+ };
22
+ };
23
+ //# sourceMappingURL=ToolbarBottomNav.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarBottomNav.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/ToolbarBottomNav/ToolbarBottomNav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAgBnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { makeStyles } from '@alveole/theme';
2
+ export const useStyles = makeStyles(({ text, color }) => ({
3
+ tabBarStyle: {
4
+ background: color.light.background['default-grey'],
5
+ borderColor: color.light.border['default-grey'],
6
+ },
7
+ tabBarLabelStyle: text['Corps de texte'].XS.Regular,
8
+ tabBarItemStyle: {
9
+ padding: 0,
10
+ margin: 0,
11
+ },
12
+ tabBarActiveTintColor: {
13
+ color: color.light.text['action-high-primary'],
14
+ },
15
+ tabBarInactiveTintColor: {
16
+ color: color.light.text['default-grey'],
17
+ },
18
+ }));