@alveole/components 0.29.4 → 0.30.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/dist/stories/index.d.ts +2 -0
- package/dist/stories/index.d.ts.map +1 -1
- package/dist/stories/index.js +2 -0
- package/dist/ui/ActionMenu/ActionMenu.d.ts +10 -0
- package/dist/ui/ActionMenu/ActionMenu.d.ts.map +1 -0
- package/dist/ui/ActionMenu/ActionMenu.js +11 -0
- package/dist/ui/ActionMenu/ActionMenu.stories.d.ts +14 -0
- package/dist/ui/ActionMenu/ActionMenu.stories.d.ts.map +1 -0
- package/dist/ui/ActionMenu/ActionMenu.stories.js +30 -0
- package/dist/ui/ActionMenu/ActionMenuItem.d.ts +10 -0
- package/dist/ui/ActionMenu/ActionMenuItem.d.ts.map +1 -0
- package/dist/ui/ActionMenu/ActionMenuItem.js +15 -0
- package/dist/ui/ActionMenu/ActionMenuItem.styles.d.ts +6 -0
- package/dist/ui/ActionMenu/ActionMenuItem.styles.d.ts.map +1 -0
- package/dist/ui/ActionMenu/ActionMenuItem.styles.js +6 -0
- package/dist/ui/ActionMenu/index.d.ts +2 -0
- package/dist/ui/ActionMenu/index.d.ts.map +1 -0
- package/dist/ui/ActionMenu/index.js +1 -0
- package/dist/ui/Button/Button.d.ts +2 -0
- package/dist/ui/Button/Button.d.ts.map +1 -1
- package/dist/ui/Button/Button.js +16 -5
- package/dist/ui/Button/Button.stories.d.ts +14 -0
- package/dist/ui/Button/Button.stories.d.ts.map +1 -1
- package/dist/ui/Button/Button.stories.js +5 -4
- package/dist/ui/Button/Button.styles.d.ts +12 -0
- package/dist/ui/Button/Button.styles.d.ts.map +1 -1
- package/dist/ui/Button/Button.styles.js +12 -0
- package/dist/ui/Card/CardHeader.d.ts.map +1 -1
- package/dist/ui/Card/CardHeader.js +1 -1
- package/dist/ui/LucideIcon/LucideIcon.props.d.ts +4 -4
- package/dist/ui/LucideIcon/LucideIcon.stories.d.ts +2 -2
- package/dist/ui/Popover/Popover.d.ts +14 -0
- package/dist/ui/Popover/Popover.d.ts.map +1 -0
- package/dist/ui/Popover/Popover.js +21 -0
- package/dist/ui/Popover/Popover.stories.d.ts +53 -0
- package/dist/ui/Popover/Popover.stories.d.ts.map +1 -0
- package/dist/ui/Popover/Popover.stories.js +30 -0
- package/dist/ui/Popover/Popover.styles.d.ts +43 -0
- package/dist/ui/Popover/Popover.styles.d.ts.map +1 -0
- package/dist/ui/Popover/Popover.styles.js +15 -0
- package/dist/ui/Popover/index.d.ts +2 -0
- package/dist/ui/Popover/index.d.ts.map +1 -0
- package/dist/ui/Popover/index.js +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -0
- package/package.json +1 -1
package/dist/stories/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * as PdfViewerStory from '../core/PdfViewer/PdfViewer.stories';
|
|
|
8
8
|
export * as SectionStory from '../core/Section/Section.stories';
|
|
9
9
|
export * as TypographyStory from '../core/Typography/Typography.stories';
|
|
10
10
|
export * as VersionStory from '../core/Version/Version.stories';
|
|
11
|
+
export * as ActionMenuStory from '../ui/ActionMenu/ActionMenu.stories';
|
|
11
12
|
export * as AvatarStory from '../ui/Avatar/Avatar.stories';
|
|
12
13
|
export * as BadgeStory from '../ui/Badge/Badge.stories';
|
|
13
14
|
export * as BreadcrumbsStory from '../ui/Breadcrumbs/Breadcrumbs.stories';
|
|
@@ -18,6 +19,7 @@ export * as EmptyStateStory from '../ui/EmptyState/EmptyState.stories';
|
|
|
18
19
|
export * as ListItemStory from '../ui/ListItem/ListItem.stories';
|
|
19
20
|
export * as LucideIconStory from '../ui/LucideIcon/LucideIcon.stories';
|
|
20
21
|
export * as PageHeaderStory from '../ui/PageHeader/PageHeader.stories';
|
|
22
|
+
export * as PopoverStory from '../ui/Popover/Popover.stories';
|
|
21
23
|
export * as ResourceListStory from '../ui/ResourceList/ResourceList.stories';
|
|
22
24
|
export * as SidebarStory from '../ui/Sidebar/Sidebar.stories';
|
|
23
25
|
export * as TabsStory from '../ui/Tabs/Tabs.stories';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stories/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,eAAe,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAGhE,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,gBAAgB,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,aAAa,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,iBAAiB,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,qBAAqB,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stories/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,eAAe,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAGhE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,gBAAgB,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,aAAa,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,iBAAiB,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,qBAAqB,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC"}
|
package/dist/stories/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * as SectionStory from '../core/Section/Section.stories';
|
|
|
10
10
|
export * as TypographyStory from '../core/Typography/Typography.stories';
|
|
11
11
|
export * as VersionStory from '../core/Version/Version.stories';
|
|
12
12
|
// UI
|
|
13
|
+
export * as ActionMenuStory from '../ui/ActionMenu/ActionMenu.stories';
|
|
13
14
|
export * as AvatarStory from '../ui/Avatar/Avatar.stories';
|
|
14
15
|
export * as BadgeStory from '../ui/Badge/Badge.stories';
|
|
15
16
|
export * as BreadcrumbsStory from '../ui/Breadcrumbs/Breadcrumbs.stories';
|
|
@@ -20,6 +21,7 @@ export * as EmptyStateStory from '../ui/EmptyState/EmptyState.stories';
|
|
|
20
21
|
export * as ListItemStory from '../ui/ListItem/ListItem.stories';
|
|
21
22
|
export * as LucideIconStory from '../ui/LucideIcon/LucideIcon.stories';
|
|
22
23
|
export * as PageHeaderStory from '../ui/PageHeader/PageHeader.stories';
|
|
24
|
+
export * as PopoverStory from '../ui/Popover/Popover.stories';
|
|
23
25
|
export * as ResourceListStory from '../ui/ResourceList/ResourceList.stories';
|
|
24
26
|
export * as SidebarStory from '../ui/Sidebar/Sidebar.stories';
|
|
25
27
|
export * as TabsStory from '../ui/Tabs/Tabs.stories';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BoxProps, PopoverProps } from '@alveole/components';
|
|
2
|
+
import { ActionMenuItem } from './ActionMenuItem';
|
|
3
|
+
export type { ActionMenuItemProps } from './ActionMenuItem';
|
|
4
|
+
export type ActionMenuProps = BoxProps & PopoverProps;
|
|
5
|
+
declare const ActionMenuBase: (props: ActionMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
type ActionMenuCompoundComponent = typeof ActionMenuBase & {
|
|
7
|
+
Item: typeof ActionMenuItem;
|
|
8
|
+
};
|
|
9
|
+
export declare const ActionMenu: ActionMenuCompoundComponent;
|
|
10
|
+
//# sourceMappingURL=ActionMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/ActionMenu/ActionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAW,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEtD,QAAA,MAAM,cAAc,GAAI,OAAO,eAAe,4CAU7C,CAAC;AAEF,KAAK,2BAA2B,GAAG,OAAO,cAAc,GAAG;IACzD,IAAI,EAAE,OAAO,cAAc,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,2BAEvB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Popover } from '@alveole/components';
|
|
3
|
+
import { Box } from '../../core';
|
|
4
|
+
import { ActionMenuItem } from './ActionMenuItem';
|
|
5
|
+
const ActionMenuBase = (props) => {
|
|
6
|
+
const { children, placement = 'bottom', renderTrigger, ...boxProps } = props;
|
|
7
|
+
return (_jsx(Popover, { placement: placement, renderTrigger: renderTrigger, children: _jsx(Box, { tag: "action-menu-content", ...boxProps, children: children }) }));
|
|
8
|
+
};
|
|
9
|
+
export const ActionMenu = Object.assign(ActionMenuBase, {
|
|
10
|
+
Item: ActionMenuItem,
|
|
11
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
title: string;
|
|
3
|
+
tags: "Components"[];
|
|
4
|
+
experimental: false;
|
|
5
|
+
figmaURL: string;
|
|
6
|
+
description: string;
|
|
7
|
+
component: ((props: import("./ActionMenu").ActionMenuProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
8
|
+
Item: typeof import("./ActionMenuItem").ActionMenuItem;
|
|
9
|
+
};
|
|
10
|
+
styleFn: () => string;
|
|
11
|
+
};
|
|
12
|
+
export default _default;
|
|
13
|
+
export declare const Default: () => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=ActionMenu.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenu.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/ActionMenu/ActionMenu.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;AAKA,wBAQkB;AAElB,eAAO,MAAM,OAAO,+CAuCnB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '../../core';
|
|
3
|
+
import { Button } from '../Button';
|
|
4
|
+
import { ActionMenu } from './ActionMenu';
|
|
5
|
+
export default {
|
|
6
|
+
title: 'ActionMenu',
|
|
7
|
+
tags: ['Components'],
|
|
8
|
+
experimental: false,
|
|
9
|
+
figmaURL: 'https://www.figma.com/design/xJz8Z6vfrnZPKTtRbuT2W8/Composants?node-id=1002-547',
|
|
10
|
+
description: 'Composant de type Box.',
|
|
11
|
+
component: ActionMenu,
|
|
12
|
+
styleFn: () => '',
|
|
13
|
+
};
|
|
14
|
+
export const Default = () => {
|
|
15
|
+
const alignments = [
|
|
16
|
+
'top',
|
|
17
|
+
'right',
|
|
18
|
+
'bottom',
|
|
19
|
+
'left',
|
|
20
|
+
'top-start',
|
|
21
|
+
'top-end',
|
|
22
|
+
'right-start',
|
|
23
|
+
'right-end',
|
|
24
|
+
'bottom-start',
|
|
25
|
+
'bottom-end',
|
|
26
|
+
'left-start',
|
|
27
|
+
'left-end',
|
|
28
|
+
];
|
|
29
|
+
return (_jsx(Box, { display: "flex", flexWrap: "wrap", gap: "1W", flexDirection: "row", "justify-content": "center", "align-items": "center", width: "100%", children: alignments.map(alignment => (_jsxs(ActionMenu, { placement: alignment, renderTrigger: () => _jsx(Button, { variant: "secondary", title: alignment }), children: [_jsx(ActionMenu.Item, { title: "Contenu de l'action menu", icon: "Settings", selected: true }), _jsx(ActionMenu.Item, { title: "Contenu de l'action menu", icon: "Copy" }), _jsx(ActionMenu.Item, { title: "Contenu de l'action menu", icon: "Trash" })] }, alignment))) }));
|
|
30
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BoxProps } from '../../core';
|
|
2
|
+
import { LucideIconProps } from '../LucideIcon';
|
|
3
|
+
export type ActionMenuItemProps = Omit<BoxProps, 'children'> & {
|
|
4
|
+
title: string;
|
|
5
|
+
icon?: LucideIconProps['name'];
|
|
6
|
+
onPress?: () => void;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const ActionMenuItem: (props: ActionMenuItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=ActionMenuItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuItem.d.ts","sourceRoot":"","sources":["../../../src/ui/ActionMenu/ActionMenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAc,MAAM,YAAY,CAAC;AACvD,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAI5D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,4CAmCxD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Typography } from '../../core';
|
|
3
|
+
import { LucideIcon } from '../LucideIcon';
|
|
4
|
+
import { useStyles } from '../Sidebar/Sidebar.styles';
|
|
5
|
+
import { useStyles as useActionMenuItemStyles } from './ActionMenuItem.styles';
|
|
6
|
+
export const ActionMenuItem = (props) => {
|
|
7
|
+
const { title, icon, onPress, selected = false, style, ...boxProps } = props;
|
|
8
|
+
const styles = useStyles();
|
|
9
|
+
const actionMenuItemStyles = useActionMenuItemStyles();
|
|
10
|
+
const itemStyleSelected = selected ? styles.sidebarItemSelectedDesktop : {};
|
|
11
|
+
const titleStyleSelected = selected ? styles.sidebarItemTitleSelectedDesktop : {};
|
|
12
|
+
const sidebarItemHover = selected ? styles.sidebarItemCurrentHover : styles.sidebarItemHover;
|
|
13
|
+
const sidebarItemTitleDesktop = selected ? styles.sidebarItemTitleCurrentHoverDesktop : {};
|
|
14
|
+
return (_jsx(Box, { tag: "action-menu-item", onPress: onPress, style: style, ...boxProps, children: _jsxs(Box, { style: { ...styles.sidebarItemContainerDesktop, ...actionMenuItemStyles.actionMenuItemContainerDesktop }, children: [selected && (_jsx(Box, { tag: "sidebar-item-indicator", style: styles.sidebarItemSelectedIndicator, children: _jsx(Box, { style: styles.sidebarItemSelectedIndicatorContent }) })), _jsxs(Box, { tag: "sidebar-item", style: { ...styles.sidebarItemDesktop, ...itemStyleSelected }, hoverStyle: { ...sidebarItemHover }, children: [icon && _jsx(LucideIcon, { size: "md", name: icon }), _jsx(Typography, { style: { ...styles.sidebarItemTitleDesktop, ...titleStyleSelected }, hoverStyle: { ...sidebarItemTitleDesktop }, children: title })] })] }) }));
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuItem.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/ActionMenu/ActionMenuItem.styles.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;CAInB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/ActionMenu/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ActionMenu';
|
|
@@ -8,6 +8,7 @@ export type ButtonProps = Omit<PressableProps, 'children' | 'style'> & {
|
|
|
8
8
|
variant: 'primary' | 'secondary' | 'tertiary' | 'danger' | 'link';
|
|
9
9
|
startIcon?: IconProps['name'];
|
|
10
10
|
endIcon?: IconProps['name'];
|
|
11
|
+
selected?: boolean;
|
|
11
12
|
ContainerProps?: BoxProps;
|
|
12
13
|
fullWidth?: boolean;
|
|
13
14
|
noPadding?: boolean;
|
|
@@ -22,6 +23,7 @@ export declare const Button: React.ForwardRefExoticComponent<Omit<PressableProps
|
|
|
22
23
|
variant: "primary" | "secondary" | "tertiary" | "danger" | "link";
|
|
23
24
|
startIcon?: IconProps["name"];
|
|
24
25
|
endIcon?: IconProps["name"];
|
|
26
|
+
selected?: boolean;
|
|
25
27
|
ContainerProps?: BoxProps;
|
|
26
28
|
fullWidth?: boolean;
|
|
27
29
|
noPadding?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAA0C,cAAc,EAA8B,IAAI,EAAE,MAAM,cAAc,CAAC;AACxH,OAAO,EAAO,QAAQ,EAAc,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AAOtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClE,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAA0C,cAAc,EAA8B,IAAI,EAAE,MAAM,cAAc,CAAC;AACxH,OAAO,EAAO,QAAQ,EAAc,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AAOtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClE,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,MAAM;WAfV,MAAM;WACN,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;aACvB,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM;gBACrD,SAAS,CAAC,MAAM,CAAC;cACnB,SAAS,CAAC,MAAM,CAAC;eAChB,OAAO;qBACD,QAAQ;gBACb,OAAO;gBACP,OAAO;iBACN,OAAO;gBACR,OAAO;WACZ,QAAQ,GAAG,QAAQ;gBACd,OAAO;8BA0MnB,CAAC"}
|
package/dist/ui/Button/Button.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Box, Typography } from '../../core';
|
|
|
5
5
|
import { LucideIcon } from '../LucideIcon';
|
|
6
6
|
import { useStyles } from './Button.styles';
|
|
7
7
|
export const Button = React.forwardRef(function Button(props, ref) {
|
|
8
|
-
const { title, type, size, variant, disabled, startIcon, endIcon, noPadding, borderNone, leftAlign, isLoading, fullWidth = false, ContainerProps = {}, ...buttonProps } = props;
|
|
8
|
+
const { title, type, size, variant, disabled, startIcon, endIcon, noPadding, borderNone, leftAlign, isLoading, selected, fullWidth = false, ContainerProps = {}, ...buttonProps } = props;
|
|
9
9
|
const { style, hoverStyle, ...containerProps } = ContainerProps;
|
|
10
10
|
const styles = useStyles();
|
|
11
11
|
const containerSize = size === 'sm'
|
|
@@ -35,7 +35,10 @@ export const Button = React.forwardRef(function Button(props, ref) {
|
|
|
35
35
|
: styles.mdContainerEndIcon
|
|
36
36
|
: {}),
|
|
37
37
|
};
|
|
38
|
-
if (
|
|
38
|
+
if (selected) {
|
|
39
|
+
applicableStyles = { ...applicableStyles, ...styles.selectedContainer };
|
|
40
|
+
}
|
|
41
|
+
else if (variant === 'primary') {
|
|
39
42
|
applicableStyles = { ...applicableStyles, ...styles.primaryContainer };
|
|
40
43
|
if (disabled)
|
|
41
44
|
applicableStyles = { ...applicableStyles, ...styles.primaryContainerDisabled };
|
|
@@ -82,7 +85,9 @@ export const Button = React.forwardRef(function Button(props, ref) {
|
|
|
82
85
|
const buttonContainerHoverStyle = () => {
|
|
83
86
|
if (disabled)
|
|
84
87
|
return {};
|
|
85
|
-
if (
|
|
88
|
+
if (selected)
|
|
89
|
+
return styles.selectedContainerHover;
|
|
90
|
+
else if (variant === 'primary')
|
|
86
91
|
return styles.primaryContainerHover;
|
|
87
92
|
else if (variant === 'secondary')
|
|
88
93
|
return styles.secondaryContainerHover;
|
|
@@ -95,7 +100,10 @@ export const Button = React.forwardRef(function Button(props, ref) {
|
|
|
95
100
|
};
|
|
96
101
|
const textStyle = (state) => {
|
|
97
102
|
let applicableStyles = styles.title;
|
|
98
|
-
if (
|
|
103
|
+
if (selected) {
|
|
104
|
+
applicableStyles = { ...applicableStyles, ...styles.selectedTitle };
|
|
105
|
+
}
|
|
106
|
+
else if (variant === 'primary') {
|
|
99
107
|
applicableStyles = { ...applicableStyles, ...styles.primaryTitle };
|
|
100
108
|
if (disabled)
|
|
101
109
|
applicableStyles = { ...applicableStyles, ...styles.primaryTitleDisabled };
|
|
@@ -136,7 +144,10 @@ export const Button = React.forwardRef(function Button(props, ref) {
|
|
|
136
144
|
};
|
|
137
145
|
const iconStyle = (state) => {
|
|
138
146
|
const iconSize = size === 'lg' ? 'md' : 'sm';
|
|
139
|
-
if (
|
|
147
|
+
if (selected) {
|
|
148
|
+
return { size: iconSize, color: styles.selectedIcon.color };
|
|
149
|
+
}
|
|
150
|
+
else if (variant === 'primary') {
|
|
140
151
|
if (disabled)
|
|
141
152
|
return { size: iconSize, color: styles.primaryIconDisabled.color };
|
|
142
153
|
else if (state.hovered)
|
|
@@ -10,6 +10,7 @@ declare const _default: {
|
|
|
10
10
|
variant: "primary" | "secondary" | "tertiary" | "danger" | "link";
|
|
11
11
|
startIcon?: import("..").IconProps["name"];
|
|
12
12
|
endIcon?: import("..").IconProps["name"];
|
|
13
|
+
selected?: boolean;
|
|
13
14
|
ContainerProps?: import("../..").BoxProps;
|
|
14
15
|
fullWidth?: boolean;
|
|
15
16
|
noPadding?: boolean;
|
|
@@ -129,6 +130,18 @@ declare const _default: {
|
|
|
129
130
|
linkContainerPressed: {
|
|
130
131
|
backgroundColor: "transparent";
|
|
131
132
|
};
|
|
133
|
+
selectedContainer: {
|
|
134
|
+
backgroundColor: "#F2F9FF";
|
|
135
|
+
borderColor: "#0264C7";
|
|
136
|
+
borderWidth: number;
|
|
137
|
+
};
|
|
138
|
+
selectedContainerHover: {};
|
|
139
|
+
selectedTitle: {
|
|
140
|
+
color: "#012B53";
|
|
141
|
+
};
|
|
142
|
+
selectedIcon: {
|
|
143
|
+
color: "#012B53";
|
|
144
|
+
};
|
|
132
145
|
xsContainer: {
|
|
133
146
|
paddingLeft: import("@alveole/theme").Spacing;
|
|
134
147
|
paddingRight: import("@alveole/theme").Spacing;
|
|
@@ -294,4 +307,5 @@ export declare const Danger: () => import("react/jsx-runtime").JSX.Element;
|
|
|
294
307
|
export declare const Link: () => import("react/jsx-runtime").JSX.Element;
|
|
295
308
|
export declare const Icons: () => import("react/jsx-runtime").JSX.Element;
|
|
296
309
|
export declare const FullWidth: () => import("react/jsx-runtime").JSX.Element;
|
|
310
|
+
export declare const Selected: () => import("react/jsx-runtime").JSX.Element;
|
|
297
311
|
//# sourceMappingURL=Button.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/Button.stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/Button.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBAQkB;AAElB,eAAO,MAAM,KAAK,+CAMjB,CAAC;AAEF,eAAO,MAAM,OAAO,+CAKnB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAKrB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAKpB,CAAC;AAEF,eAAO,MAAM,MAAM,+CAKlB,CAAC;AAEF,eAAO,MAAM,IAAI,+CAQhB,CAAC;AAEF,eAAO,MAAM,KAAK,+CAQjB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAAkE,CAAC;AAEzF,eAAO,MAAM,QAAQ,+CAIpB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box } from '../../core';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Typography } from '../../core';
|
|
3
3
|
import { Button } from './Button';
|
|
4
4
|
import { useStyles } from './Button.styles';
|
|
5
5
|
import { ButtonIcon } from './ButtonIcon';
|
|
@@ -17,6 +17,7 @@ export const Primary = () => (_jsxs(Box, { display: "flex", flexDirection: "row"
|
|
|
17
17
|
export const Secondary = () => (_jsxs(Box, { display: "flex", flexDirection: "row", gap: 4, children: [_jsx(Button, { variant: "secondary", title: "Bouton secondary" }), _jsx(Button, { variant: "secondary", title: "Disabled", disabled: true })] }));
|
|
18
18
|
export const Tertiary = () => (_jsxs(Box, { display: "flex", flexDirection: "row", gap: 4, children: [_jsx(Button, { variant: "tertiary", title: "Bouton tertiary" }), _jsx(Button, { variant: "tertiary", title: "Disabled", disabled: true })] }));
|
|
19
19
|
export const Danger = () => (_jsxs(Box, { display: "flex", flexDirection: "row", gap: 4, children: [_jsx(Button, { variant: "danger", title: "Bouton danger" }), _jsx(Button, { variant: "danger", title: "Disabled", disabled: true })] }));
|
|
20
|
-
export const Link = () => (_jsxs(Box, { display: "flex", flexDirection: "row", gap: 4, children: [_jsx(Button, { variant: "link", title: "Bouton link" }), _jsx(Button, { variant: "link", title: "Disabled", disabled: true })] }));
|
|
20
|
+
export const Link = () => (_jsxs(_Fragment, { children: [_jsx(Typography, { children: "Deprecated" }), _jsxs(Box, { display: "flex", flexDirection: "row", gap: 4, children: [_jsx(Button, { variant: "link", title: "Bouton link" }), _jsx(Button, { variant: "link", title: "Disabled", disabled: true })] })] }));
|
|
21
21
|
export const Icons = () => (_jsxs(Box, { display: "flex", flexDirection: "row", gap: 4, children: [_jsx(Button, { variant: "primary", title: "Start Icon", startIcon: "Plus" }), _jsx(Button, { variant: "primary", title: "End Icon", endIcon: "Plus" }), _jsx(Button, { variant: "primary", title: "End Icon", endIcon: "Plus" }), _jsx(ButtonIcon, { variant: "primary", icon: "CircleUser" }), _jsx(ButtonIcon, { variant: "primary", icon: "CircleUser" })] }));
|
|
22
|
-
export const FullWidth = () =>
|
|
22
|
+
export const FullWidth = () => _jsx(Button, { variant: "primary", title: "Full Width", fullWidth: true });
|
|
23
|
+
export const Selected = () => (_jsx(Box, { display: "flex", flexDirection: "row", gap: 4, children: _jsx(Button, { variant: "secondary", title: "Selected", selected: true }) }));
|
|
@@ -109,6 +109,18 @@ export declare const useStyles: () => {
|
|
|
109
109
|
linkContainerPressed: {
|
|
110
110
|
backgroundColor: "transparent";
|
|
111
111
|
};
|
|
112
|
+
selectedContainer: {
|
|
113
|
+
backgroundColor: "#F2F9FF";
|
|
114
|
+
borderColor: "#0264C7";
|
|
115
|
+
borderWidth: number;
|
|
116
|
+
};
|
|
117
|
+
selectedContainerHover: {};
|
|
118
|
+
selectedTitle: {
|
|
119
|
+
color: "#012B53";
|
|
120
|
+
};
|
|
121
|
+
selectedIcon: {
|
|
122
|
+
color: "#012B53";
|
|
123
|
+
};
|
|
112
124
|
xsContainer: {
|
|
113
125
|
paddingLeft: import("@alveole/theme").Spacing;
|
|
114
126
|
paddingRight: import("@alveole/theme").Spacing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/Button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"Button.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/Button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiRnB,CAAC"}
|
|
@@ -111,6 +111,18 @@ export const useStyles = makeStyles(({ text, color, spacing, radius }) => ({
|
|
|
111
111
|
linkContainerPressed: {
|
|
112
112
|
backgroundColor: color.background.button.tertiary.default,
|
|
113
113
|
},
|
|
114
|
+
selectedContainer: {
|
|
115
|
+
backgroundColor: color.light.background['alt-primary'],
|
|
116
|
+
borderColor: color.light.border['default-primary'],
|
|
117
|
+
borderWidth: 1,
|
|
118
|
+
},
|
|
119
|
+
selectedContainerHover: {},
|
|
120
|
+
selectedTitle: {
|
|
121
|
+
color: color.light.text['action-high-primary'],
|
|
122
|
+
},
|
|
123
|
+
selectedIcon: {
|
|
124
|
+
color: color.light.text['action-high-primary'],
|
|
125
|
+
},
|
|
114
126
|
// Sizes
|
|
115
127
|
xsContainer: {
|
|
116
128
|
paddingLeft: spacing('075'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHeader.d.ts","sourceRoot":"","sources":["../../../src/ui/Card/CardHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAO,QAAQ,EAAc,MAAM,YAAY,CAAC;AAGvD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,
|
|
1
|
+
{"version":3,"file":"CardHeader.d.ts","sourceRoot":"","sources":["../../../src/ui/Card/CardHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAO,QAAQ,EAAc,MAAM,YAAY,CAAC;AAGvD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CAiBhD,CAAC"}
|
|
@@ -5,5 +5,5 @@ export const CardHeader = (props) => {
|
|
|
5
5
|
const { variant = 'default', titre, sousTitre, image, badge, style, children, ...boxProps } = props;
|
|
6
6
|
const styles = useStyles();
|
|
7
7
|
const disabledTextStyle = variant === 'disabled' ? styles.disabledText : {};
|
|
8
|
-
return (_jsxs(Box, { tag: "card-header", style: [styles.cardHeader, disabledTextStyle, style], ...boxProps, children: [image, _jsxs(Box, { tag: "card-header-texte", style: styles.texte, children: [_jsx(Typography, { style: [styles.titre, disabledTextStyle], children: titre }), sousTitre &&
|
|
8
|
+
return (_jsxs(Box, { tag: "card-header", style: [styles.cardHeader, disabledTextStyle, style], ...boxProps, children: [image, _jsxs(Box, { tag: "card-header-texte", style: styles.texte, children: [_jsx(Typography, { style: [styles.titre, disabledTextStyle], children: titre }), sousTitre && _jsx(Typography, { style: [styles.sousTitre, disabledTextStyle], children: sousTitre })] }), badge] }));
|
|
9
9
|
};
|
|
@@ -8,10 +8,10 @@ export type IconName = LucideIconName | LabIconName;
|
|
|
8
8
|
export declare const isLucideIconName: (name: string) => name is LucideIconName;
|
|
9
9
|
declare const PublicPropsSchema: z.ZodObject<{
|
|
10
10
|
size: z.ZodEnum<{
|
|
11
|
+
xs: "xs";
|
|
11
12
|
sm: "sm";
|
|
12
13
|
md: "md";
|
|
13
14
|
lg: "lg";
|
|
14
|
-
xs: "xs";
|
|
15
15
|
xl: "xl";
|
|
16
16
|
}>;
|
|
17
17
|
name: z.ZodEnum<{
|
|
@@ -20,7 +20,6 @@ declare const PublicPropsSchema: z.ZodObject<{
|
|
|
20
20
|
olive: "olive";
|
|
21
21
|
Menu: "Menu";
|
|
22
22
|
toolbox: "toolbox";
|
|
23
|
-
Image: "Image";
|
|
24
23
|
AArrowDown: "AArrowDown";
|
|
25
24
|
AArrowUp: "AArrowUp";
|
|
26
25
|
ALargeSmall: "ALargeSmall";
|
|
@@ -835,6 +834,7 @@ declare const PublicPropsSchema: z.ZodObject<{
|
|
|
835
834
|
IceCreamCone: "IceCreamCone";
|
|
836
835
|
IdCard: "IdCard";
|
|
837
836
|
IdCardLanyard: "IdCardLanyard";
|
|
837
|
+
Image: "Image";
|
|
838
838
|
ImageDown: "ImageDown";
|
|
839
839
|
ImageMinus: "ImageMinus";
|
|
840
840
|
ImageOff: "ImageOff";
|
|
@@ -2106,10 +2106,10 @@ type PrivateProps = {
|
|
|
2106
2106
|
export type LucideIconProps = z.infer<typeof PublicPropsSchema> & PrivateProps;
|
|
2107
2107
|
export declare const LucideIconPropsJSON: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
2108
2108
|
size: z.ZodEnum<{
|
|
2109
|
+
xs: "xs";
|
|
2109
2110
|
sm: "sm";
|
|
2110
2111
|
md: "md";
|
|
2111
2112
|
lg: "lg";
|
|
2112
|
-
xs: "xs";
|
|
2113
2113
|
xl: "xl";
|
|
2114
2114
|
}>;
|
|
2115
2115
|
name: z.ZodEnum<{
|
|
@@ -2118,7 +2118,6 @@ export declare const LucideIconPropsJSON: z.core.ZodStandardJSONSchemaPayload<z.
|
|
|
2118
2118
|
olive: "olive";
|
|
2119
2119
|
Menu: "Menu";
|
|
2120
2120
|
toolbox: "toolbox";
|
|
2121
|
-
Image: "Image";
|
|
2122
2121
|
AArrowDown: "AArrowDown";
|
|
2123
2122
|
AArrowUp: "AArrowUp";
|
|
2124
2123
|
ALargeSmall: "ALargeSmall";
|
|
@@ -2933,6 +2932,7 @@ export declare const LucideIconPropsJSON: z.core.ZodStandardJSONSchemaPayload<z.
|
|
|
2933
2932
|
IceCreamCone: "IceCreamCone";
|
|
2934
2933
|
IdCard: "IdCard";
|
|
2935
2934
|
IdCardLanyard: "IdCardLanyard";
|
|
2935
|
+
Image: "Image";
|
|
2936
2936
|
ImageDown: "ImageDown";
|
|
2937
2937
|
ImageMinus: "ImageMinus";
|
|
2938
2938
|
ImageOff: "ImageOff";
|
|
@@ -6,10 +6,10 @@ declare const _default: {
|
|
|
6
6
|
description: string;
|
|
7
7
|
props: import("zod/v4/core").ZodStandardJSONSchemaPayload<import("zod").ZodObject<{
|
|
8
8
|
size: import("zod").ZodEnum<{
|
|
9
|
+
xs: "xs";
|
|
9
10
|
sm: "sm";
|
|
10
11
|
md: "md";
|
|
11
12
|
lg: "lg";
|
|
12
|
-
xs: "xs";
|
|
13
13
|
xl: "xl";
|
|
14
14
|
}>;
|
|
15
15
|
name: import("zod").ZodEnum<{
|
|
@@ -18,7 +18,6 @@ declare const _default: {
|
|
|
18
18
|
olive: "olive";
|
|
19
19
|
Menu: "Menu";
|
|
20
20
|
toolbox: "toolbox";
|
|
21
|
-
Image: "Image";
|
|
22
21
|
AArrowDown: "AArrowDown";
|
|
23
22
|
AArrowUp: "AArrowUp";
|
|
24
23
|
ALargeSmall: "ALargeSmall";
|
|
@@ -833,6 +832,7 @@ declare const _default: {
|
|
|
833
832
|
IceCreamCone: "IceCreamCone";
|
|
834
833
|
IdCard: "IdCard";
|
|
835
834
|
IdCardLanyard: "IdCardLanyard";
|
|
835
|
+
Image: "Image";
|
|
836
836
|
ImageDown: "ImageDown";
|
|
837
837
|
ImageMinus: "ImageMinus";
|
|
838
838
|
ImageOff: "ImageOff";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PopoverProps as TamaguiPopoverProps } from 'tamagui';
|
|
3
|
+
export type PopoverStyles = {
|
|
4
|
+
maxW?: number;
|
|
5
|
+
maxH?: number;
|
|
6
|
+
};
|
|
7
|
+
export type PopoverProps = PopoverStyles & React.PropsWithChildren<{
|
|
8
|
+
placement: TamaguiPopoverProps['placement'];
|
|
9
|
+
renderTrigger: (context: {
|
|
10
|
+
open: boolean;
|
|
11
|
+
}) => React.ReactNode;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const Popover: (props: PopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=Popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/ui/Popover/Popover.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAyC,YAAY,IAAI,mBAAmB,EAAU,MAAM,SAAS,CAAC;AAG7G,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,KAAK,CAAC,iBAAiB,CAAC;IACtB,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;CAChE,CAAC,CAAC;AAEL,eAAO,MAAM,OAAO,GAAI,OAAO,YAAY,4CAqC1C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTheme } from '@alveole/theme';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { ScrollView, Popover as TamaguiPopover, YStack } from 'tamagui';
|
|
5
|
+
import { useStyles } from './Popover.styles';
|
|
6
|
+
export const Popover = (props) => {
|
|
7
|
+
const { children, placement, renderTrigger, ...popoverStyles } = props;
|
|
8
|
+
const [open, setOpen] = React.useState(false);
|
|
9
|
+
const styles = useStyles();
|
|
10
|
+
const { spacing } = useTheme();
|
|
11
|
+
const spacings = {
|
|
12
|
+
p: 0,
|
|
13
|
+
mr: placement?.includes('left') ? spacing('025') : undefined,
|
|
14
|
+
mb: placement?.includes('top') ? spacing('025') : undefined,
|
|
15
|
+
ml: placement?.includes('right') ? spacing('025') : undefined,
|
|
16
|
+
mt: placement?.includes('bottom') ? spacing('025') : undefined,
|
|
17
|
+
};
|
|
18
|
+
const maxH = popoverStyles.maxH ?? 500;
|
|
19
|
+
const maxW = popoverStyles.maxW ?? '100%';
|
|
20
|
+
return (_jsxs(TamaguiPopover, { placement: placement, disableFocus: true, open: open, onOpenChange: setOpen, children: [_jsx(TamaguiPopover.Trigger, { asChild: true, children: renderTrigger({ open }) }), _jsx(TamaguiPopover.Content, { trapFocus: false, disableFocusScope: true, overflow: "hidden", style: { maxHeight: maxH, maxWidth: maxW }, ...spacings, ...styles.content, children: _jsx(YStack, { style: { maxHeight: maxH, overflow: 'hidden' }, children: _jsx(ScrollView, { style: { maxHeight: maxH - spacing('025') }, children: children }) }) })] }));
|
|
21
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
title: string;
|
|
3
|
+
tags: "Kit"[];
|
|
4
|
+
experimental: false;
|
|
5
|
+
description: string;
|
|
6
|
+
figmaURL: string;
|
|
7
|
+
component: (props: import("@alveole/components").PopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
styleFn: () => {
|
|
9
|
+
content: {
|
|
10
|
+
display: "flex";
|
|
11
|
+
padding: import("@alveole/theme").Spacing;
|
|
12
|
+
flexDirection: "column";
|
|
13
|
+
alignItems: "flex-start";
|
|
14
|
+
borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
|
|
15
|
+
borderWidth: number;
|
|
16
|
+
borderStyle: "solid";
|
|
17
|
+
borderColor: "#DEE3EC";
|
|
18
|
+
backgroundColor: "#FFFFFF";
|
|
19
|
+
} | {
|
|
20
|
+
shadowColor: import("@alveole/theme").Color;
|
|
21
|
+
shadowOffset: {
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
};
|
|
25
|
+
shadowOpacity: number;
|
|
26
|
+
shadowRadius: number;
|
|
27
|
+
elevation: number;
|
|
28
|
+
display: "flex";
|
|
29
|
+
padding: import("@alveole/theme").Spacing;
|
|
30
|
+
flexDirection: "column";
|
|
31
|
+
alignItems: "flex-start";
|
|
32
|
+
borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
|
|
33
|
+
borderWidth: number;
|
|
34
|
+
borderStyle: "solid";
|
|
35
|
+
borderColor: "#DEE3EC";
|
|
36
|
+
backgroundColor: "#FFFFFF";
|
|
37
|
+
} | {
|
|
38
|
+
boxShadow: string;
|
|
39
|
+
display: "flex";
|
|
40
|
+
padding: import("@alveole/theme").Spacing;
|
|
41
|
+
flexDirection: "column";
|
|
42
|
+
alignItems: "flex-start";
|
|
43
|
+
borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
|
|
44
|
+
borderWidth: number;
|
|
45
|
+
borderStyle: "solid";
|
|
46
|
+
borderColor: "#DEE3EC";
|
|
47
|
+
backgroundColor: "#FFFFFF";
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export default _default;
|
|
52
|
+
export declare const Default: () => import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
//# sourceMappingURL=Popover.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/Popover/Popover.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBASkB;AAElB,eAAO,MAAM,OAAO,+CA2BnB,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Button, Typography } from '@alveole/components';
|
|
3
|
+
import { Popover } from './Popover';
|
|
4
|
+
import { useStyles } from './Popover.styles';
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Popover',
|
|
7
|
+
tags: ['Kit'],
|
|
8
|
+
experimental: false,
|
|
9
|
+
description: 'Zone cliquable avec ouverture d’un Popover (Tamagui Popover).',
|
|
10
|
+
figmaURL: 'https://www.figma.com/design/xJz8Z6vfrnZPKTtRbuT2W8/Alveole---Composants?node-id=2881-442&t=A0jkRqZdoWBKbIWd-4',
|
|
11
|
+
component: Popover,
|
|
12
|
+
styleFn: useStyles,
|
|
13
|
+
};
|
|
14
|
+
export const Default = () => {
|
|
15
|
+
const alignments = [
|
|
16
|
+
'top',
|
|
17
|
+
'right',
|
|
18
|
+
'bottom',
|
|
19
|
+
'left',
|
|
20
|
+
'top-start',
|
|
21
|
+
'top-end',
|
|
22
|
+
'right-start',
|
|
23
|
+
'right-end',
|
|
24
|
+
'bottom-start',
|
|
25
|
+
'bottom-end',
|
|
26
|
+
'left-start',
|
|
27
|
+
'left-end'
|
|
28
|
+
];
|
|
29
|
+
return (_jsx(Box, { display: "flex", flexWrap: "wrap", gap: "1W", flexDirection: "row", "justify-content": "center", "align-items": "center", width: "100%", children: alignments.map((alignment) => (_jsx(Popover, { placement: alignment, renderTrigger: () => _jsx(Button, { variant: "secondary", title: alignment }), children: _jsx(Typography, { children: "Contenu du popover" }) }, alignment))) }));
|
|
30
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare const useStyles: () => {
|
|
2
|
+
content: {
|
|
3
|
+
display: "flex";
|
|
4
|
+
padding: import("@alveole/theme").Spacing;
|
|
5
|
+
flexDirection: "column";
|
|
6
|
+
alignItems: "flex-start";
|
|
7
|
+
borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
|
|
8
|
+
borderWidth: number;
|
|
9
|
+
borderStyle: "solid";
|
|
10
|
+
borderColor: "#DEE3EC";
|
|
11
|
+
backgroundColor: "#FFFFFF";
|
|
12
|
+
} | {
|
|
13
|
+
shadowColor: import("@alveole/theme").Color;
|
|
14
|
+
shadowOffset: {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
shadowOpacity: number;
|
|
19
|
+
shadowRadius: number;
|
|
20
|
+
elevation: number;
|
|
21
|
+
display: "flex";
|
|
22
|
+
padding: import("@alveole/theme").Spacing;
|
|
23
|
+
flexDirection: "column";
|
|
24
|
+
alignItems: "flex-start";
|
|
25
|
+
borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
|
|
26
|
+
borderWidth: number;
|
|
27
|
+
borderStyle: "solid";
|
|
28
|
+
borderColor: "#DEE3EC";
|
|
29
|
+
backgroundColor: "#FFFFFF";
|
|
30
|
+
} | {
|
|
31
|
+
boxShadow: string;
|
|
32
|
+
display: "flex";
|
|
33
|
+
padding: import("@alveole/theme").Spacing;
|
|
34
|
+
flexDirection: "column";
|
|
35
|
+
alignItems: "flex-start";
|
|
36
|
+
borderRadius: import("@alveole/theme/dist/constants/Radius").Radius;
|
|
37
|
+
borderWidth: number;
|
|
38
|
+
borderStyle: "solid";
|
|
39
|
+
borderColor: "#DEE3EC";
|
|
40
|
+
backgroundColor: "#FFFFFF";
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=Popover.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/Popover/Popover.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAanB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { makeStyles } from '@alveole/theme';
|
|
2
|
+
export const useStyles = makeStyles(({ color, spacing, shadows, radius }) => ({
|
|
3
|
+
content: {
|
|
4
|
+
display: 'flex',
|
|
5
|
+
padding: spacing('1W'),
|
|
6
|
+
flexDirection: 'column',
|
|
7
|
+
alignItems: 'flex-start',
|
|
8
|
+
borderRadius: radius('lg'),
|
|
9
|
+
borderWidth: 1,
|
|
10
|
+
borderStyle: 'solid',
|
|
11
|
+
borderColor: color.light.border['default-grey'],
|
|
12
|
+
backgroundColor: color.light.background['active-inverted'],
|
|
13
|
+
...shadows(2),
|
|
14
|
+
},
|
|
15
|
+
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Popover/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Popover';
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './ActionMenu';
|
|
1
2
|
export * from './Avatar';
|
|
2
3
|
export * from './Badge';
|
|
3
4
|
export * from './Breadcrumbs';
|
|
@@ -8,6 +9,7 @@ export * from './EmptyState';
|
|
|
8
9
|
export * from './ListItem';
|
|
9
10
|
export * from './LucideIcon';
|
|
10
11
|
export * from './PageHeader';
|
|
12
|
+
export * from './Popover';
|
|
11
13
|
export * from './ResourceList';
|
|
12
14
|
export * from './Sidebar';
|
|
13
15
|
export * from './Tabs';
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
|
package/dist/ui/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './ActionMenu';
|
|
1
2
|
export * from './Avatar';
|
|
2
3
|
export * from './Badge';
|
|
3
4
|
export * from './Breadcrumbs';
|
|
@@ -8,6 +9,7 @@ export * from './EmptyState';
|
|
|
8
9
|
export * from './ListItem';
|
|
9
10
|
export * from './LucideIcon';
|
|
10
11
|
export * from './PageHeader';
|
|
12
|
+
export * from './Popover';
|
|
11
13
|
export * from './ResourceList';
|
|
12
14
|
export * from './Sidebar';
|
|
13
15
|
export * from './Tabs';
|