@alveole/components 0.20.0 → 0.22.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.
Files changed (53) hide show
  1. package/dist/core/A/A.d.ts +16 -0
  2. package/dist/core/A/A.d.ts.map +1 -0
  3. package/dist/core/A/A.js +16 -0
  4. package/dist/core/A/A.stories.d.ts +20 -0
  5. package/dist/core/A/A.stories.d.ts.map +1 -0
  6. package/dist/core/A/A.stories.js +13 -0
  7. package/dist/core/A/A.styles.d.ts +11 -0
  8. package/dist/core/A/A.styles.d.ts.map +1 -0
  9. package/dist/core/A/A.styles.js +11 -0
  10. package/dist/core/A/index.d.ts +2 -0
  11. package/dist/core/A/index.d.ts.map +1 -0
  12. package/dist/core/A/index.js +1 -0
  13. package/dist/core/index.d.ts +1 -0
  14. package/dist/core/index.d.ts.map +1 -1
  15. package/dist/core/index.js +1 -0
  16. package/dist/stories/index.d.ts +3 -0
  17. package/dist/stories/index.d.ts.map +1 -1
  18. package/dist/stories/index.js +3 -0
  19. package/dist/ui/Breadcrumbs/Breadcrumbs.d.ts +28 -0
  20. package/dist/ui/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  21. package/dist/ui/Breadcrumbs/Breadcrumbs.js +40 -0
  22. package/dist/ui/Breadcrumbs/Breadcrumbs.stories.d.ts +45 -0
  23. package/dist/ui/Breadcrumbs/Breadcrumbs.stories.d.ts.map +1 -0
  24. package/dist/ui/Breadcrumbs/Breadcrumbs.stories.js +34 -0
  25. package/dist/ui/Breadcrumbs/Breadcrumbs.styles.d.ts +33 -0
  26. package/dist/ui/Breadcrumbs/Breadcrumbs.styles.d.ts.map +1 -0
  27. package/dist/ui/Breadcrumbs/Breadcrumbs.styles.js +27 -0
  28. package/dist/ui/Breadcrumbs/index.d.ts +3 -0
  29. package/dist/ui/Breadcrumbs/index.d.ts.map +1 -0
  30. package/dist/ui/Breadcrumbs/index.js +1 -0
  31. package/dist/ui/EmptyState/EmptyState.d.ts.map +1 -1
  32. package/dist/ui/EmptyState/EmptyState.js +1 -1
  33. package/dist/ui/EmptyState/EmptyState.stories.d.ts +3 -3
  34. package/dist/ui/EmptyState/EmptyState.styles.d.ts +3 -3
  35. package/dist/ui/EmptyState/EmptyState.styles.js +6 -6
  36. package/dist/ui/LucideIcon/LucideIcon.props.d.ts +2 -2
  37. package/dist/ui/LucideIcon/LucideIcon.stories.d.ts +1 -1
  38. package/dist/ui/PageHeader/PageHeader.d.ts +15 -0
  39. package/dist/ui/PageHeader/PageHeader.d.ts.map +1 -0
  40. package/dist/ui/PageHeader/PageHeader.js +12 -0
  41. package/dist/ui/PageHeader/PageHeader.stories.d.ts +39 -0
  42. package/dist/ui/PageHeader/PageHeader.stories.d.ts.map +1 -0
  43. package/dist/ui/PageHeader/PageHeader.stories.js +15 -0
  44. package/dist/ui/PageHeader/PageHeader.styles.d.ts +29 -0
  45. package/dist/ui/PageHeader/PageHeader.styles.d.ts.map +1 -0
  46. package/dist/ui/PageHeader/PageHeader.styles.js +26 -0
  47. package/dist/ui/PageHeader/index.d.ts +3 -0
  48. package/dist/ui/PageHeader/index.d.ts.map +1 -0
  49. package/dist/ui/PageHeader/index.js +1 -0
  50. package/dist/ui/index.d.ts +2 -0
  51. package/dist/ui/index.d.ts.map +1 -1
  52. package/dist/ui/index.js +2 -0
  53. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ import { Href } from 'expo-router';
2
+ import React, { CSSProperties } from 'react';
3
+ export type CanAccessHref = (href: Href & string) => boolean;
4
+ /** Contexte optionnel pour fournir la logique d'accès aux liens (ex. droits métier). Non fourni = tous les liens sont cliquables. */
5
+ export declare const LinkAccessContext: React.Context<CanAccessHref | null>;
6
+ export type AProps = React.PropsWithChildren<{
7
+ href: Href & string;
8
+ /** default: "push" */
9
+ direction?: 'push' | 'replace' | 'dismiss';
10
+ style?: CSSProperties;
11
+ hoverStyle?: CSSProperties;
12
+ /** Override la logique d'accès (sinon utilise LinkAccessContext si fourni, sinon accès autorisé). */
13
+ canAccessHref?: CanAccessHref;
14
+ }>;
15
+ export declare const A: (props: AProps) => import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=A.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A.d.ts","sourceRoot":"","sources":["../../../src/core/A/A.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,aAAa,EAA6B,MAAM,OAAO,CAAC;AAKxE,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC;AAE7D,qIAAqI;AACrI,eAAO,MAAM,iBAAiB,qCAA4C,CAAC;AAE3E,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC3C,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,qGAAqG;IACrG,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC,CAAC;AAEH,eAAO,MAAM,CAAC,GAAI,OAAO,MAAM,4CAwB9B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Link } from 'expo-router';
3
+ import { createContext, useContext } from 'react';
4
+ import { Pressable } from 'react-native';
5
+ import { Box } from '../Box';
6
+ import { useStyles } from './A.styles';
7
+ /** Contexte optionnel pour fournir la logique d'accès aux liens (ex. droits métier). Non fourni = tous les liens sont cliquables. */
8
+ export const LinkAccessContext = createContext(null);
9
+ export const A = (props) => {
10
+ const { children, href, direction = 'push', style, hoverStyle, canAccessHref: canAccessProp } = props;
11
+ const styles = useStyles();
12
+ const canAccessFromContext = useContext(LinkAccessContext);
13
+ const canAccess = canAccessProp ?? canAccessFromContext ?? (() => true);
14
+ const expoLink = (_jsx(Link, { href: href, asChild: true, replace: direction === 'replace', push: direction === 'push', dismissTo: direction === 'dismiss', children: _jsx(Pressable, { children: _jsx(Box, { tag: "a-pressable", style: { ...styles.pressable, ...style }, hoverStyle: hoverStyle, children: children }) }) }));
15
+ return canAccess(href) ? expoLink : _jsx(_Fragment, { children: children });
16
+ };
@@ -0,0 +1,20 @@
1
+ declare const _default: {
2
+ title: string;
3
+ tags: ["Kit"];
4
+ experimental: true;
5
+ description: string;
6
+ component: (props: import("./A").AProps) => import("react/jsx-runtime").JSX.Element;
7
+ styleFn: () => {
8
+ container: {};
9
+ pressable: {
10
+ cursor: "pointer";
11
+ color: "inherit";
12
+ transitionProperty: "all";
13
+ transitionDuration: "0.1s";
14
+ transitionTimingFunction: "ease-in-out";
15
+ };
16
+ };
17
+ };
18
+ export default _default;
19
+ export declare const Default: () => import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=A.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A.stories.d.ts","sourceRoot":"","sources":["../../../src/core/A/A.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA,wBAOkB;AAElB,eAAO,MAAM,OAAO,+CAInB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Typography } from '../Typography';
3
+ import { A } from './A';
4
+ import { useStyles } from './A.styles';
5
+ export default {
6
+ title: 'A',
7
+ tags: ['Kit'],
8
+ experimental: true,
9
+ description: 'Equivalent d’une balise <a>',
10
+ component: A,
11
+ styleFn: useStyles,
12
+ };
13
+ export const Default = () => (_jsx(A, { href: '/ui-kit/components/A', children: _jsx(Typography, { children: "Children" }) }));
@@ -0,0 +1,11 @@
1
+ export declare const useStyles: () => {
2
+ container: {};
3
+ pressable: {
4
+ cursor: "pointer";
5
+ color: "inherit";
6
+ transitionProperty: "all";
7
+ transitionDuration: "0.1s";
8
+ transitionTimingFunction: "ease-in-out";
9
+ };
10
+ };
11
+ //# sourceMappingURL=A.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A.styles.d.ts","sourceRoot":"","sources":["../../../src/core/A/A.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;CASnB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { makeStyles } from '@alveole/theme';
2
+ export const useStyles = makeStyles(() => ({
3
+ container: {},
4
+ pressable: {
5
+ cursor: 'pointer',
6
+ color: 'inherit',
7
+ transitionProperty: 'all',
8
+ transitionDuration: '0.1s',
9
+ transitionTimingFunction: 'ease-in-out',
10
+ },
11
+ }));
@@ -0,0 +1,2 @@
1
+ export * from './A';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/A/index.ts"],"names":[],"mappings":"AAAA,cAAc,KAAK,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './A';
@@ -1,3 +1,4 @@
1
+ export * from './A';
1
2
  export * from './Box';
2
3
  export * from './Image';
3
4
  export * from './Metabase';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,KAAK,CAAC;AACpB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './A';
1
2
  export * from './Box';
2
3
  export * from './Image';
3
4
  export * from './Metabase';
@@ -1,3 +1,4 @@
1
+ export * as AStory from '../core/A/A.stories';
1
2
  export * as BoxStory from '../core/Box/Box.stories';
2
3
  export * as ImageStory from '../core/Image/Image.stories';
3
4
  export * as MetabaseStory from '../core/Metabase/Metabase.stories';
@@ -6,12 +7,14 @@ export * as SectionStory from '../core/Section/Section.stories';
6
7
  export * as TypographyStory from '../core/Typography/Typography.stories';
7
8
  export * as VersionStory from '../core/Version/Version.stories';
8
9
  export * as AvatarStory from '../ui/Avatar/Avatar.stories';
10
+ export * as BreadcrumbsStory from '../ui/Breadcrumbs/Breadcrumbs.stories';
9
11
  export * as ButtonStory from '../ui/Button/Button.stories';
10
12
  export * as CardStory from '../ui/Card/Card.stories';
11
13
  export * as DividerStory from '../ui/Divider/Divider.stories';
12
14
  export * as EmptyStateStory from '../ui/EmptyState/EmptyState.stories';
13
15
  export * as ListItemStory from '../ui/ListItem/ListItem.stories';
14
16
  export * as LucideIconStory from '../ui/LucideIcon/LucideIcon.stories';
17
+ export * as PageHeaderStory from '../ui/PageHeader/PageHeader.stories';
15
18
  export * as ResourceListStory from '../ui/ResourceList/ResourceList.stories';
16
19
  export * as ToolbarBottomNavStory from '../ui/ToolbarBottomNav/ToolbarBottomNav.stories';
17
20
  export * as ToolbarTopStory from '../ui/ToolbarTop/ToolbarTop.stories';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stories/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,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,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,iBAAiB,MAAM,yCAAyC,CAAC;AAC7E,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,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,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,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,qBAAqB,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // Core
2
+ export * as AStory from '../core/A/A.stories';
2
3
  export * as BoxStory from '../core/Box/Box.stories';
3
4
  export * as ImageStory from '../core/Image/Image.stories';
4
5
  export * as MetabaseStory from '../core/Metabase/Metabase.stories';
@@ -8,12 +9,14 @@ export * as TypographyStory from '../core/Typography/Typography.stories';
8
9
  export * as VersionStory from '../core/Version/Version.stories';
9
10
  // UI
10
11
  export * as AvatarStory from '../ui/Avatar/Avatar.stories';
12
+ export * as BreadcrumbsStory from '../ui/Breadcrumbs/Breadcrumbs.stories';
11
13
  export * as ButtonStory from '../ui/Button/Button.stories';
12
14
  export * as CardStory from '../ui/Card/Card.stories';
13
15
  export * as DividerStory from '../ui/Divider/Divider.stories';
14
16
  export * as EmptyStateStory from '../ui/EmptyState/EmptyState.stories';
15
17
  export * as ListItemStory from '../ui/ListItem/ListItem.stories';
16
18
  export * as LucideIconStory from '../ui/LucideIcon/LucideIcon.stories';
19
+ export * as PageHeaderStory from '../ui/PageHeader/PageHeader.stories';
17
20
  export * as ResourceListStory from '../ui/ResourceList/ResourceList.stories';
18
21
  export * as ToolbarBottomNavStory from '../ui/ToolbarBottomNav/ToolbarBottomNav.stories';
19
22
  export * as ToolbarTopStory from '../ui/ToolbarTop/ToolbarTop.stories';
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ export type BreadcrumbItem = {
3
+ label: string;
4
+ href: string;
5
+ isCurrent: boolean;
6
+ };
7
+ export type BreadcrumbsProps = React.PropsWithChildren<{
8
+ /** Label du premier élément (lien vers la racine). Défaut : "Accueil" */
9
+ rootLabel?: string;
10
+ /**
11
+ * Segments à ne pas afficher dans le fil d'Ariane (ex. ["admin"] pour avoir Accueil > Missions au lieu de Accueil > Admin > Missions).
12
+ */
13
+ segmentsToSkip?: string[];
14
+ /**
15
+ * Personnalisation du libellé pour un segment.
16
+ * Par défaut : capitalisation + remplacement des - et _ par des espaces.
17
+ */
18
+ getLabel?: (segment: string, index: number, path: string) => string;
19
+ }>;
20
+ /**
21
+ * Fil d'Ariane construit à partir de la navigation Expo Router.
22
+ * Tous les éléments sauf le dernier (page en cours) sont cliquables.
23
+ *
24
+ * @example
25
+ * Accueil > Admin > Missions > Détail
26
+ */
27
+ export declare const Breadcrumbs: (props: BreadcrumbsProps) => import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=Breadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/ui/Breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrE,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CA6ClD,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { usePathname } from 'expo-router';
3
+ import { A, Box, Typography } from '../../core';
4
+ import { useStyles } from './Breadcrumbs.styles';
5
+ function humanizeSegment(segment) {
6
+ return segment.replace(/[-_]/g, ' ').replace(/^\w/, c => c.toUpperCase());
7
+ }
8
+ /**
9
+ * Fil d'Ariane construit à partir de la navigation Expo Router.
10
+ * Tous les éléments sauf le dernier (page en cours) sont cliquables.
11
+ *
12
+ * @example
13
+ * Accueil > Admin > Missions > Détail
14
+ */
15
+ export const Breadcrumbs = (props) => {
16
+ const { rootLabel = 'Accueil', segmentsToSkip, getLabel = segment => humanizeSegment(segment) } = props;
17
+ const pathname = usePathname();
18
+ const styles = useStyles();
19
+ const segments = pathname.split('/').filter(Boolean);
20
+ const segmentItems = segments
21
+ .map((segment, index) => ({
22
+ segment,
23
+ index,
24
+ path: '/' + segments.slice(0, index + 1).join('/'),
25
+ }))
26
+ .filter(({ segment }) => !segmentsToSkip?.includes(segment));
27
+ const items = [
28
+ {
29
+ label: rootLabel,
30
+ href: '/',
31
+ isCurrent: segments.length === 0,
32
+ },
33
+ ...segmentItems.map(({ segment, index, path }) => ({
34
+ label: getLabel(segment, index, path),
35
+ href: path,
36
+ isCurrent: index === segments.length - 1,
37
+ })),
38
+ ];
39
+ return (_jsx(Box, { style: styles.container, children: items.map((item, index) => (_jsxs(Box, { style: { flexDirection: 'row', alignItems: 'center' }, children: [index > 0 && _jsx(Typography, { style: styles.separator, children: " > " }), item.isCurrent ? (_jsx(Typography, { style: styles.current, children: item.label })) : (_jsx(A, { href: item.href, style: styles.link, hoverStyle: styles.linkHover, children: item.label }))] }, `${item.href}-${index}`))) }));
40
+ };
@@ -0,0 +1,45 @@
1
+ declare const _default: {
2
+ title: string;
3
+ tags: ["Kit"];
4
+ experimental: false;
5
+ description: string;
6
+ component: (props: import("./Breadcrumbs").BreadcrumbsProps) => import("react/jsx-runtime").JSX.Element;
7
+ styleFn: () => {
8
+ container: {
9
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
10
+ fontSize: 12;
11
+ lineHeight: 20;
12
+ letterSpacing: 0;
13
+ flexDirection: "row";
14
+ flexWrap: "wrap";
15
+ alignItems: "center";
16
+ gap: import("@alveole/theme").Spacing;
17
+ };
18
+ separator: {
19
+ color: "#5F6571";
20
+ };
21
+ current: {
22
+ color: "#151617";
23
+ };
24
+ link: {
25
+ transitionProperty: "text-decoration";
26
+ transitionDuration: "0.1s";
27
+ transitionTimingFunction: "ease-in-out";
28
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
29
+ fontSize: 12;
30
+ lineHeight: 20;
31
+ letterSpacing: 0;
32
+ color: "#5F6571";
33
+ textDecoration: string;
34
+ };
35
+ linkHover: {
36
+ textDecoration: string;
37
+ };
38
+ };
39
+ };
40
+ export default _default;
41
+ export declare const Default: () => import("react/jsx-runtime").JSX.Element;
42
+ export declare const WithCustomRootLabel: () => import("react/jsx-runtime").JSX.Element;
43
+ export declare const WithCustomLabels: () => import("react/jsx-runtime").JSX.Element;
44
+ export declare const WithSegmentsToSkip: () => import("react/jsx-runtime").JSX.Element;
45
+ //# sourceMappingURL=Breadcrumbs.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/Breadcrumbs/Breadcrumbs.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBAQkB;AAElB,eAAO,MAAM,OAAO,+CAInB,CAAC;AAEF,eAAO,MAAM,mBAAmB,+CAI/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAe5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAgB9B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '../../core';
3
+ import { Breadcrumbs } from './Breadcrumbs';
4
+ import { useStyles } from './Breadcrumbs.styles';
5
+ export default {
6
+ title: 'Breadcrumbs',
7
+ tags: ['Kit'],
8
+ experimental: false,
9
+ description: "Fil d'Ariane construit à partir de la navigation Expo Router. Tous les éléments sauf le dernier (page en cours) sont cliquables.",
10
+ component: Breadcrumbs,
11
+ styleFn: useStyles,
12
+ };
13
+ export const Default = () => (_jsx(Box, { p: 4, children: _jsx(Breadcrumbs, {}) }));
14
+ export const WithCustomRootLabel = () => (_jsx(Box, { p: 4, children: _jsx(Breadcrumbs, { rootLabel: "Tableau de bord" }) }));
15
+ export const WithCustomLabels = () => (_jsx(Box, { p: 4, children: _jsx(Breadcrumbs, { getLabel: (segment, _index, _path) => {
16
+ const labels = {
17
+ admin: 'Administration',
18
+ missions: 'Missions',
19
+ show: 'Détail',
20
+ salarie: 'Espace salarié',
21
+ client: 'Espace client',
22
+ };
23
+ return labels[segment] ?? segment;
24
+ } }) }));
25
+ export const WithSegmentsToSkip = () => (_jsx(Box, { p: 4, children: _jsx(Breadcrumbs, { segmentsToSkip: ['admin', 'ui-kit'], getLabel: (segment, _index, _path) => {
26
+ const labels = {
27
+ admin: 'Administration',
28
+ missions: 'Missions',
29
+ show: 'Détail',
30
+ salarie: 'Espace salarié',
31
+ client: 'Espace client',
32
+ };
33
+ return labels[segment] ?? segment;
34
+ } }) }));
@@ -0,0 +1,33 @@
1
+ export declare const useStyles: () => {
2
+ container: {
3
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
4
+ fontSize: 12;
5
+ lineHeight: 20;
6
+ letterSpacing: 0;
7
+ flexDirection: "row";
8
+ flexWrap: "wrap";
9
+ alignItems: "center";
10
+ gap: import("@alveole/theme").Spacing;
11
+ };
12
+ separator: {
13
+ color: "#5F6571";
14
+ };
15
+ current: {
16
+ color: "#151617";
17
+ };
18
+ link: {
19
+ transitionProperty: "text-decoration";
20
+ transitionDuration: "0.1s";
21
+ transitionTimingFunction: "ease-in-out";
22
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
23
+ fontSize: 12;
24
+ lineHeight: 20;
25
+ letterSpacing: 0;
26
+ color: "#5F6571";
27
+ textDecoration: string;
28
+ };
29
+ linkHover: {
30
+ textDecoration: string;
31
+ };
32
+ };
33
+ //# sourceMappingURL=Breadcrumbs.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/Breadcrumbs/Breadcrumbs.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { makeStyles } from '@alveole/theme';
2
+ export const useStyles = makeStyles(({ text, color, spacing }) => ({
3
+ container: {
4
+ flexDirection: 'row',
5
+ flexWrap: 'wrap',
6
+ alignItems: 'center',
7
+ gap: spacing('1V'),
8
+ ...text['Corps de texte'].XS.Regular,
9
+ },
10
+ separator: {
11
+ color: color.light.text['mention-grey'],
12
+ },
13
+ current: {
14
+ color: color.light.text['active-grey'],
15
+ },
16
+ link: {
17
+ color: color.light.text['mention-grey'],
18
+ textDecoration: 'underline',
19
+ ...text['Corps de texte'].XS.Regular,
20
+ transitionProperty: 'text-decoration',
21
+ transitionDuration: '0.1s',
22
+ transitionTimingFunction: 'ease-in-out',
23
+ },
24
+ linkHover: {
25
+ textDecoration: 'none',
26
+ },
27
+ }));
@@ -0,0 +1,3 @@
1
+ export { Breadcrumbs } from './Breadcrumbs';
2
+ export type { BreadcrumbItem, BreadcrumbsProps } from './Breadcrumbs';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Breadcrumbs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ export { Breadcrumbs } from './Breadcrumbs';
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/ui/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAO,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAgC,eAAe,EAAE,MAAM,eAAe,CAAC;AAG9E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CA8BhD,CAAC"}
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/ui/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAO,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAgC,eAAe,EAAE,MAAM,eAAe,CAAC;AAG9E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CAkChD,CAAC"}
@@ -8,5 +8,5 @@ export const EmptyState = (props) => {
8
8
  const styles = useStyles();
9
9
  const descriptionToRender = description ?? text;
10
10
  const footer = actions ?? children;
11
- return (_jsxs(Box, { tag: "empty-state", style: [styles.container, style], ...boxProps, children: [_jsxs(Box, { tag: "empty-state-contenu", style: styles.contenu, children: [(illustration || iconName) && (_jsx(Box, { style: styles.media, children: illustration ? (illustration) : iconName && isLucideIconName(iconName) ? (_jsx(LucideIcon, { name: iconName, size: "lg", color: styles.media.color })) : null })), _jsxs(Box, { style: styles.messageEtDescription, children: [title && _jsx(Typography, { style: styles.title, children: title }), descriptionToRender && _jsx(Typography, { style: styles.description, children: descriptionToRender })] })] }), footer && _jsx(Box, { style: styles.footer, children: footer })] }));
11
+ return (_jsxs(Box, { tag: "empty-state", style: [styles.container, style], ...boxProps, children: [_jsxs(Box, { tag: "empty-state-contenu", style: styles.contenu, children: [(illustration || iconName) && (_jsx(Box, { style: styles.media, children: illustration ? (illustration) : iconName && isLucideIconName(iconName) ? (_jsx(LucideIcon, { name: iconName, size: "lg", color: styles.media.color })) : null })), _jsxs(Box, { style: styles.messageEtDescription, children: [title && _jsx(Typography, { style: styles.title, children: title }), descriptionToRender && _jsx(Typography, { style: styles.description, children: descriptionToRender })] })] }), footer && (_jsx(Box, { tag: "empty-state-footer", style: styles.footer, children: footer }))] }));
12
12
  };
@@ -12,7 +12,7 @@ declare const _default: {
12
12
  alignItems: "center";
13
13
  justifyContent: "center";
14
14
  gap: import("@alveole/theme").Spacing;
15
- paddingTop: number;
15
+ paddingTop: import("@alveole/theme").Spacing;
16
16
  paddingBottom: import("@alveole/theme").Spacing;
17
17
  paddingLeft: import("@alveole/theme").Spacing;
18
18
  paddingRight: import("@alveole/theme").Spacing;
@@ -25,7 +25,7 @@ declare const _default: {
25
25
  gap: import("@alveole/theme").Spacing;
26
26
  alignItems: "center";
27
27
  textAlign: "center";
28
- flex: number;
28
+ flex: number | undefined;
29
29
  justifyContent: "center";
30
30
  width: "100%";
31
31
  };
@@ -62,7 +62,7 @@ declare const _default: {
62
62
  color: "#5F6571";
63
63
  };
64
64
  footer: {
65
- width: "100%";
65
+ width: "100%" | undefined;
66
66
  display: "flex";
67
67
  flexDirection: "column";
68
68
  gap: import("@alveole/theme").Spacing;
@@ -5,7 +5,7 @@ export declare const useStyles: () => {
5
5
  alignItems: "center";
6
6
  justifyContent: "center";
7
7
  gap: import("@alveole/theme").Spacing;
8
- paddingTop: number;
8
+ paddingTop: import("@alveole/theme").Spacing;
9
9
  paddingBottom: import("@alveole/theme").Spacing;
10
10
  paddingLeft: import("@alveole/theme").Spacing;
11
11
  paddingRight: import("@alveole/theme").Spacing;
@@ -18,7 +18,7 @@ export declare const useStyles: () => {
18
18
  gap: import("@alveole/theme").Spacing;
19
19
  alignItems: "center";
20
20
  textAlign: "center";
21
- flex: number;
21
+ flex: number | undefined;
22
22
  justifyContent: "center";
23
23
  width: "100%";
24
24
  };
@@ -55,7 +55,7 @@ export declare const useStyles: () => {
55
55
  color: "#5F6571";
56
56
  };
57
57
  footer: {
58
- width: "100%";
58
+ width: "100%" | undefined;
59
59
  display: "flex";
60
60
  flexDirection: "column";
61
61
  gap: import("@alveole/theme").Spacing;
@@ -1,5 +1,5 @@
1
1
  import { makeStyles } from '@alveole/theme';
2
- export const useStyles = makeStyles(({ externalPadding, text, color, spacing, radius }) => {
2
+ export const useStyles = makeStyles(({ externalPadding, text, color, spacing, radius, isVariant }) => {
3
3
  const paddingValue = externalPadding();
4
4
  return {
5
5
  container: {
@@ -7,9 +7,9 @@ export const useStyles = makeStyles(({ externalPadding, text, color, spacing, ra
7
7
  flexDirection: 'column',
8
8
  alignItems: 'center',
9
9
  justifyContent: 'center',
10
- gap: spacing('150'),
11
- paddingTop: 0,
12
- paddingBottom: spacing('2W'),
10
+ gap: isVariant('mobile') ? spacing('2W') : spacing('3W'),
11
+ paddingTop: isVariant('mobile') ? 0 : spacing('3W'),
12
+ paddingBottom: isVariant('mobile') ? 0 : spacing('3W'),
13
13
  paddingLeft: paddingValue,
14
14
  paddingRight: paddingValue,
15
15
  textAlign: 'center',
@@ -21,7 +21,7 @@ export const useStyles = makeStyles(({ externalPadding, text, color, spacing, ra
21
21
  gap: spacing('2W'),
22
22
  alignItems: 'center',
23
23
  textAlign: 'center',
24
- flex: 1,
24
+ flex: isVariant('mobile') ? 1 : undefined,
25
25
  justifyContent: 'center',
26
26
  width: '100%',
27
27
  },
@@ -52,7 +52,7 @@ export const useStyles = makeStyles(({ externalPadding, text, color, spacing, ra
52
52
  textAlign: 'center',
53
53
  },
54
54
  footer: {
55
- width: '100%',
55
+ width: isVariant('mobile') ? '100%' : undefined,
56
56
  display: 'flex',
57
57
  flexDirection: 'column',
58
58
  gap: spacing('100'),
@@ -19,8 +19,8 @@ declare const PublicPropsSchema: z.ZodObject<{
19
19
  tab: "tab";
20
20
  olive: "olive";
21
21
  Menu: "Menu";
22
- Image: "Image";
23
22
  toolbox: "toolbox";
23
+ Image: "Image";
24
24
  AArrowDown: "AArrowDown";
25
25
  AArrowUp: "AArrowUp";
26
26
  ALargeSmall: "ALargeSmall";
@@ -2126,8 +2126,8 @@ export declare const LucideIconPropsJSON: z.core.ZodStandardJSONSchemaPayload<z.
2126
2126
  tab: "tab";
2127
2127
  olive: "olive";
2128
2128
  Menu: "Menu";
2129
- Image: "Image";
2130
2129
  toolbox: "toolbox";
2130
+ Image: "Image";
2131
2131
  AArrowDown: "AArrowDown";
2132
2132
  AArrowUp: "AArrowUp";
2133
2133
  ALargeSmall: "ALargeSmall";
@@ -17,8 +17,8 @@ declare const _default: {
17
17
  tab: "tab";
18
18
  olive: "olive";
19
19
  Menu: "Menu";
20
- Image: "Image";
21
20
  toolbox: "toolbox";
21
+ Image: "Image";
22
22
  AArrowDown: "AArrowDown";
23
23
  AArrowUp: "AArrowUp";
24
24
  ALargeSmall: "ALargeSmall";
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { Breadcrumbs } from '../Breadcrumbs';
3
+ export type PageHeaderProps = React.PropsWithChildren<{
4
+ /** Titre de la page (à gauche). Peut être une chaîne ou un contenu personnalisé. */
5
+ title: string;
6
+ /** Contenu affiché à droite (boutons, liens, etc.). */
7
+ actions?: React.ReactNode;
8
+ /** Props passées au Breadcrumbs (rootLabel, getLabel). */
9
+ breadcrumbsProps?: React.ComponentProps<typeof Breadcrumbs>;
10
+ }>;
11
+ /**
12
+ * En-tête de page : fil d'Ariane, puis une ligne avec le titre à gauche et des actions à droite.
13
+ */
14
+ export declare const PageHeader: (props: PageHeaderProps) => import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=PageHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../src/ui/PageHeader/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACpD,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;CAC7D,CAAC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CAahD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Typography } from '../../core';
3
+ import { Breadcrumbs } from '../Breadcrumbs';
4
+ import { useStyles } from './PageHeader.styles';
5
+ /**
6
+ * En-tête de page : fil d'Ariane, puis une ligne avec le titre à gauche et des actions à droite.
7
+ */
8
+ export const PageHeader = (props) => {
9
+ const { title, actions, breadcrumbsProps } = props;
10
+ const styles = useStyles();
11
+ return (_jsxs(Box, { style: styles.container, children: [_jsx(Breadcrumbs, { ...breadcrumbsProps }), _jsxs(Box, { style: styles.row, children: [_jsx(Typography, { style: styles.title, children: title }), actions && _jsx(Box, { style: styles.actions, children: actions })] })] }));
12
+ };
@@ -0,0 +1,39 @@
1
+ declare const _default: {
2
+ title: string;
3
+ tags: ["Kit"];
4
+ experimental: false;
5
+ description: string;
6
+ component: (props: import("./PageHeader").PageHeaderProps) => import("react/jsx-runtime").JSX.Element;
7
+ styleFn: () => {
8
+ container: {
9
+ display: "flex";
10
+ flexDirection: "column";
11
+ gap: import("@alveole/theme").Spacing;
12
+ };
13
+ row: {
14
+ display: "flex";
15
+ flexDirection: "row";
16
+ justifyContent: "space-between";
17
+ alignItems: "center";
18
+ gap: import("@alveole/theme").Spacing;
19
+ };
20
+ title: {
21
+ color: "#151617";
22
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
23
+ fontSize: 28 | 32;
24
+ lineHeight: 36 | 32;
25
+ letterSpacing: 0;
26
+ };
27
+ actions: {
28
+ display: "flex";
29
+ flexDirection: "row";
30
+ alignItems: "center";
31
+ gap: import("@alveole/theme").Spacing;
32
+ flexShrink: number;
33
+ };
34
+ };
35
+ };
36
+ export default _default;
37
+ export declare const Default: () => import("react/jsx-runtime").JSX.Element;
38
+ export declare const WithActions: () => import("react/jsx-runtime").JSX.Element;
39
+ //# sourceMappingURL=PageHeader.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader.stories.d.ts","sourceRoot":"","sources":["../../../src/ui/PageHeader/PageHeader.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBAOkB;AAElB,eAAO,MAAM,OAAO,+CAInB,CAAC;AAEF,eAAO,MAAM,WAAW,+CAWvB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box } from '../../core';
3
+ import { Button } from '../Button';
4
+ import { PageHeader } from './PageHeader';
5
+ import { useStyles } from './PageHeader.styles';
6
+ export default {
7
+ title: 'PageHeader',
8
+ tags: ['Kit'],
9
+ experimental: false,
10
+ description: 'En-tête de page : fil d’Ariane, puis titre à gauche et actions à droite.',
11
+ component: PageHeader,
12
+ styleFn: useStyles,
13
+ };
14
+ export const Default = () => (_jsx(Box, { p: 4, children: _jsx(PageHeader, { title: "Titre de la page" }) }));
15
+ export const WithActions = () => (_jsx(Box, { p: 4, children: _jsx(PageHeader, { title: "D\u00E9tail de la mission", actions: _jsx(_Fragment, { children: _jsx(Button, { variant: "primary", title: "Enregistrer", size: "sm", onPress: () => { } }) }) }) }));
@@ -0,0 +1,29 @@
1
+ export declare const useStyles: () => {
2
+ container: {
3
+ display: "flex";
4
+ flexDirection: "column";
5
+ gap: import("@alveole/theme").Spacing;
6
+ };
7
+ row: {
8
+ display: "flex";
9
+ flexDirection: "row";
10
+ justifyContent: "space-between";
11
+ alignItems: "center";
12
+ gap: import("@alveole/theme").Spacing;
13
+ };
14
+ title: {
15
+ color: "#151617";
16
+ fontFamily: "Barlow-Light" | "Barlow-Regular" | "Barlow-Medium" | "Barlow-SemiBold" | "Barlow-Bold" | "Inter-Light" | "Inter-Regular" | "Inter-Medium" | "Inter-SemiBold" | "Inter-Bold";
17
+ fontSize: 28 | 32;
18
+ lineHeight: 36 | 32;
19
+ letterSpacing: 0;
20
+ };
21
+ actions: {
22
+ display: "flex";
23
+ flexDirection: "row";
24
+ alignItems: "center";
25
+ gap: import("@alveole/theme").Spacing;
26
+ flexShrink: number;
27
+ };
28
+ };
29
+ //# sourceMappingURL=PageHeader.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/PageHeader/PageHeader.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBnB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { makeStyles } from '@alveole/theme';
2
+ export const useStyles = makeStyles(({ color, text, spacing }) => ({
3
+ container: {
4
+ display: 'flex',
5
+ flexDirection: 'column',
6
+ gap: spacing('1W'),
7
+ },
8
+ row: {
9
+ display: 'flex',
10
+ flexDirection: 'row',
11
+ justifyContent: 'space-between',
12
+ alignItems: 'center',
13
+ gap: spacing('1V'),
14
+ },
15
+ title: {
16
+ ...text.Titres['H2 - LG'],
17
+ color: color.light.text['title-grey'],
18
+ },
19
+ actions: {
20
+ display: 'flex',
21
+ flexDirection: 'row',
22
+ alignItems: 'center',
23
+ gap: spacing('050'),
24
+ flexShrink: 0,
25
+ },
26
+ }));
@@ -0,0 +1,3 @@
1
+ export { PageHeader } from './PageHeader';
2
+ export type { PageHeaderProps } from './PageHeader';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/PageHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export { PageHeader } from './PageHeader';
@@ -1,10 +1,12 @@
1
1
  export * from './Avatar';
2
+ export * from './Breadcrumbs';
2
3
  export * from './Button';
3
4
  export * from './Card';
4
5
  export * from './Divider';
5
6
  export * from './EmptyState';
6
7
  export * from './ListItem';
7
8
  export * from './LucideIcon';
9
+ export * from './PageHeader';
8
10
  export * from './ResourceList';
9
11
  export * from './ToolbarBottomNav';
10
12
  export * from './ToolbarTop';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,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,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,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,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
package/dist/ui/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  export * from './Avatar';
2
+ export * from './Breadcrumbs';
2
3
  export * from './Button';
3
4
  export * from './Card';
4
5
  export * from './Divider';
5
6
  export * from './EmptyState';
6
7
  export * from './ListItem';
7
8
  export * from './LucideIcon';
9
+ export * from './PageHeader';
8
10
  export * from './ResourceList';
9
11
  export * from './ToolbarBottomNav';
10
12
  export * from './ToolbarTop';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alveole/components",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Shared UI components.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",