design-zystem 1.0.252 → 1.0.254
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/index.d.mts +15 -31
- package/dist/index.d.ts +15 -31
- package/dist/index.js +78 -84
- package/dist/index.mjs +160 -167
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -32,6 +32,8 @@ interface BoxProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
|
|
|
32
32
|
justifyContent?: string;
|
|
33
33
|
borderRadius?: string;
|
|
34
34
|
border?: string;
|
|
35
|
+
/** Colored left accent bar (status/score encoding), painted over the box border. */
|
|
36
|
+
borderColor?: string;
|
|
35
37
|
style?: CSSProperties;
|
|
36
38
|
}
|
|
37
39
|
declare const Box: ({ children, hasShadow, ...rest }: BoxProps) => react_jsx_runtime.JSX.Element;
|
|
@@ -247,6 +249,7 @@ interface IconProps {
|
|
|
247
249
|
height?: string;
|
|
248
250
|
backgroundColor?: string;
|
|
249
251
|
isRound?: boolean;
|
|
252
|
+
shadow?: string;
|
|
250
253
|
onClick?: () => void;
|
|
251
254
|
className?: string;
|
|
252
255
|
style?: CSSProperties;
|
|
@@ -294,6 +297,10 @@ interface LinkProps {
|
|
|
294
297
|
}
|
|
295
298
|
declare const Link: ({ children, url, newTab, download, size, variant, ...rest }: LinkProps) => react_jsx_runtime.JSX.Element;
|
|
296
299
|
|
|
300
|
+
interface AvatarBadge {
|
|
301
|
+
name: string;
|
|
302
|
+
family?: 'solid' | 'regular' | 'light' | 'brands';
|
|
303
|
+
}
|
|
297
304
|
interface AvatarProps {
|
|
298
305
|
name: string;
|
|
299
306
|
src?: string | null;
|
|
@@ -301,8 +308,9 @@ interface AvatarProps {
|
|
|
301
308
|
textColor?: string;
|
|
302
309
|
size?: number;
|
|
303
310
|
shape?: 'circle' | 'square';
|
|
311
|
+
badge?: AvatarBadge | null;
|
|
304
312
|
}
|
|
305
|
-
declare const Avatar: ({ name, src, backgroundColor, textColor, size, shape, }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
313
|
+
declare const Avatar: ({ name, src, backgroundColor, textColor, size, shape, badge, }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
306
314
|
|
|
307
315
|
interface ButtonProps extends HTMLAttributes<HTMLButtonElement> {
|
|
308
316
|
label?: string;
|
|
@@ -974,35 +982,6 @@ interface TimelineProps {
|
|
|
974
982
|
*/
|
|
975
983
|
declare const Timeline: ({ items, lineColor, emptyLabel, }: TimelineProps) => react_jsx_runtime.JSX.Element;
|
|
976
984
|
|
|
977
|
-
interface BorderedRowProps {
|
|
978
|
-
/** Accent color (DZ color token) — used to encode a score/status/level. */
|
|
979
|
-
borderColor?: string;
|
|
980
|
-
/** Accent thickness in px. */
|
|
981
|
-
borderWidth?: number;
|
|
982
|
-
/** Background color (DZ color token). */
|
|
983
|
-
background?: string;
|
|
984
|
-
/** Inner padding. */
|
|
985
|
-
padding?: string;
|
|
986
|
-
/** Corner radius — pass "0" for flush table rows, default rounded card. */
|
|
987
|
-
borderRadius?: string;
|
|
988
|
-
/**
|
|
989
|
-
* Accent style:
|
|
990
|
-
* - 'edge' (default): full-height colored left border (flush rows / score bars).
|
|
991
|
-
* - 'bar': short rounded inset accent bar, centered (white card look).
|
|
992
|
-
*/
|
|
993
|
-
accent?: 'edge' | 'bar';
|
|
994
|
-
/** Subtle 1px full border around the card (card look). */
|
|
995
|
-
bordered?: boolean;
|
|
996
|
-
children: ReactNode;
|
|
997
|
-
onClick?: () => void;
|
|
998
|
-
}
|
|
999
|
-
/**
|
|
1000
|
-
* Row/card with a colored accent, used to encode a status (recovery score,
|
|
1001
|
-
* feedback level…). Flush table rows: accent="edge" + borderRadius="0".
|
|
1002
|
-
* White cards: accent="bar" + bordered + background.
|
|
1003
|
-
*/
|
|
1004
|
-
declare const BorderedRow: ({ borderColor, borderWidth, background, padding, borderRadius, accent, bordered, children, onClick, }: BorderedRowProps) => react_jsx_runtime.JSX.Element;
|
|
1005
|
-
|
|
1006
985
|
/**
|
|
1007
986
|
* formatDate(date, type?, language?)
|
|
1008
987
|
* - language : fr/en/es/... (locale inferred), default "en"
|
|
@@ -1021,6 +1000,11 @@ declare const formatDistance: (distanceKm: number | string | null | undefined, l
|
|
|
1021
1000
|
declare const formatDuration: (minutes: number | null | undefined, language?: string) => string;
|
|
1022
1001
|
declare const truncateText: (text: string | null | undefined, maxLength?: number) => string;
|
|
1023
1002
|
declare const truncateFileName: (fileName: string | null | undefined, maxLength?: number) => string;
|
|
1003
|
+
declare const formatEuro: (amount?: number | null) => string;
|
|
1004
|
+
declare const formatName: (person?: {
|
|
1005
|
+
firstname?: string | null;
|
|
1006
|
+
lastname?: string | null;
|
|
1007
|
+
} | null, fallback?: string) => string;
|
|
1024
1008
|
|
|
1025
1009
|
/**
|
|
1026
1010
|
* Optimiser image:
|
|
@@ -1049,4 +1033,4 @@ interface OptimizeImageOptions {
|
|
|
1049
1033
|
}
|
|
1050
1034
|
declare const optimizeImage: (file: File | null | undefined, desiredBaseName: string, opts?: OptimizeImageOptions) => Promise<OptimizeImageResult>;
|
|
1051
1035
|
|
|
1052
|
-
export { Accordion, type AccordionItem, Avatar,
|
|
1036
|
+
export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, Divider, Drawer, EmptyState, FileUploadZone, type FloatingAction, FloatingButton, type FloatingButtonProps, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, Popover, ProgressBar, Radio, Row, Select, type SelectOption, type SelectProps, SkeletonRow, SliderInput, type SortOrder, Spinner, Stepper, Switch, Table, TableBody, TableCell, TableFooter, TableFooterCell, TableFooterRow, TableHeader, TableHeaderCell, type TableHeaderCellProps, TableHeaderRow, TableRow, Tabs, TagBubble, Text, Timeline, type TimelineItem, Tooltip, colors, formatDate, formatDistance, formatDuration, formatEuro, formatName, optimizeImage, truncateFileName, truncateText };
|
package/dist/index.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ interface BoxProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
|
|
|
32
32
|
justifyContent?: string;
|
|
33
33
|
borderRadius?: string;
|
|
34
34
|
border?: string;
|
|
35
|
+
/** Colored left accent bar (status/score encoding), painted over the box border. */
|
|
36
|
+
borderColor?: string;
|
|
35
37
|
style?: CSSProperties;
|
|
36
38
|
}
|
|
37
39
|
declare const Box: ({ children, hasShadow, ...rest }: BoxProps) => react_jsx_runtime.JSX.Element;
|
|
@@ -247,6 +249,7 @@ interface IconProps {
|
|
|
247
249
|
height?: string;
|
|
248
250
|
backgroundColor?: string;
|
|
249
251
|
isRound?: boolean;
|
|
252
|
+
shadow?: string;
|
|
250
253
|
onClick?: () => void;
|
|
251
254
|
className?: string;
|
|
252
255
|
style?: CSSProperties;
|
|
@@ -294,6 +297,10 @@ interface LinkProps {
|
|
|
294
297
|
}
|
|
295
298
|
declare const Link: ({ children, url, newTab, download, size, variant, ...rest }: LinkProps) => react_jsx_runtime.JSX.Element;
|
|
296
299
|
|
|
300
|
+
interface AvatarBadge {
|
|
301
|
+
name: string;
|
|
302
|
+
family?: 'solid' | 'regular' | 'light' | 'brands';
|
|
303
|
+
}
|
|
297
304
|
interface AvatarProps {
|
|
298
305
|
name: string;
|
|
299
306
|
src?: string | null;
|
|
@@ -301,8 +308,9 @@ interface AvatarProps {
|
|
|
301
308
|
textColor?: string;
|
|
302
309
|
size?: number;
|
|
303
310
|
shape?: 'circle' | 'square';
|
|
311
|
+
badge?: AvatarBadge | null;
|
|
304
312
|
}
|
|
305
|
-
declare const Avatar: ({ name, src, backgroundColor, textColor, size, shape, }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
313
|
+
declare const Avatar: ({ name, src, backgroundColor, textColor, size, shape, badge, }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
306
314
|
|
|
307
315
|
interface ButtonProps extends HTMLAttributes<HTMLButtonElement> {
|
|
308
316
|
label?: string;
|
|
@@ -974,35 +982,6 @@ interface TimelineProps {
|
|
|
974
982
|
*/
|
|
975
983
|
declare const Timeline: ({ items, lineColor, emptyLabel, }: TimelineProps) => react_jsx_runtime.JSX.Element;
|
|
976
984
|
|
|
977
|
-
interface BorderedRowProps {
|
|
978
|
-
/** Accent color (DZ color token) — used to encode a score/status/level. */
|
|
979
|
-
borderColor?: string;
|
|
980
|
-
/** Accent thickness in px. */
|
|
981
|
-
borderWidth?: number;
|
|
982
|
-
/** Background color (DZ color token). */
|
|
983
|
-
background?: string;
|
|
984
|
-
/** Inner padding. */
|
|
985
|
-
padding?: string;
|
|
986
|
-
/** Corner radius — pass "0" for flush table rows, default rounded card. */
|
|
987
|
-
borderRadius?: string;
|
|
988
|
-
/**
|
|
989
|
-
* Accent style:
|
|
990
|
-
* - 'edge' (default): full-height colored left border (flush rows / score bars).
|
|
991
|
-
* - 'bar': short rounded inset accent bar, centered (white card look).
|
|
992
|
-
*/
|
|
993
|
-
accent?: 'edge' | 'bar';
|
|
994
|
-
/** Subtle 1px full border around the card (card look). */
|
|
995
|
-
bordered?: boolean;
|
|
996
|
-
children: ReactNode;
|
|
997
|
-
onClick?: () => void;
|
|
998
|
-
}
|
|
999
|
-
/**
|
|
1000
|
-
* Row/card with a colored accent, used to encode a status (recovery score,
|
|
1001
|
-
* feedback level…). Flush table rows: accent="edge" + borderRadius="0".
|
|
1002
|
-
* White cards: accent="bar" + bordered + background.
|
|
1003
|
-
*/
|
|
1004
|
-
declare const BorderedRow: ({ borderColor, borderWidth, background, padding, borderRadius, accent, bordered, children, onClick, }: BorderedRowProps) => react_jsx_runtime.JSX.Element;
|
|
1005
|
-
|
|
1006
985
|
/**
|
|
1007
986
|
* formatDate(date, type?, language?)
|
|
1008
987
|
* - language : fr/en/es/... (locale inferred), default "en"
|
|
@@ -1021,6 +1000,11 @@ declare const formatDistance: (distanceKm: number | string | null | undefined, l
|
|
|
1021
1000
|
declare const formatDuration: (minutes: number | null | undefined, language?: string) => string;
|
|
1022
1001
|
declare const truncateText: (text: string | null | undefined, maxLength?: number) => string;
|
|
1023
1002
|
declare const truncateFileName: (fileName: string | null | undefined, maxLength?: number) => string;
|
|
1003
|
+
declare const formatEuro: (amount?: number | null) => string;
|
|
1004
|
+
declare const formatName: (person?: {
|
|
1005
|
+
firstname?: string | null;
|
|
1006
|
+
lastname?: string | null;
|
|
1007
|
+
} | null, fallback?: string) => string;
|
|
1024
1008
|
|
|
1025
1009
|
/**
|
|
1026
1010
|
* Optimiser image:
|
|
@@ -1049,4 +1033,4 @@ interface OptimizeImageOptions {
|
|
|
1049
1033
|
}
|
|
1050
1034
|
declare const optimizeImage: (file: File | null | undefined, desiredBaseName: string, opts?: OptimizeImageOptions) => Promise<OptimizeImageResult>;
|
|
1051
1035
|
|
|
1052
|
-
export { Accordion, type AccordionItem, Avatar,
|
|
1036
|
+
export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, Divider, Drawer, EmptyState, FileUploadZone, type FloatingAction, FloatingButton, type FloatingButtonProps, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, Popover, ProgressBar, Radio, Row, Select, type SelectOption, type SelectProps, SkeletonRow, SliderInput, type SortOrder, Spinner, Stepper, Switch, Table, TableBody, TableCell, TableFooter, TableFooterCell, TableFooterRow, TableHeader, TableHeaderCell, type TableHeaderCellProps, TableHeaderRow, TableRow, Tabs, TagBubble, Text, Timeline, type TimelineItem, Tooltip, colors, formatDate, formatDistance, formatDuration, formatEuro, formatName, optimizeImage, truncateFileName, truncateText };
|
package/dist/index.js
CHANGED
|
@@ -61,7 +61,6 @@ var index_exports = {};
|
|
|
61
61
|
__export(index_exports, {
|
|
62
62
|
Accordion: () => Accordion,
|
|
63
63
|
Avatar: () => Avatar,
|
|
64
|
-
BorderedRow: () => BorderedRow,
|
|
65
64
|
Box: () => Box,
|
|
66
65
|
Bubble: () => Bubble,
|
|
67
66
|
Bulk: () => Bulk,
|
|
@@ -122,6 +121,8 @@ __export(index_exports, {
|
|
|
122
121
|
formatDate: () => formatDate,
|
|
123
122
|
formatDistance: () => formatDistance,
|
|
124
123
|
formatDuration: () => formatDuration,
|
|
124
|
+
formatEuro: () => formatEuro,
|
|
125
|
+
formatName: () => formatName,
|
|
125
126
|
optimizeImage: () => optimizeImage_default,
|
|
126
127
|
truncateFileName: () => truncateFileName,
|
|
127
128
|
truncateText: () => truncateText
|
|
@@ -330,6 +331,7 @@ var shouldForwardProp2 = (prop) => ![
|
|
|
330
331
|
"hasShadow",
|
|
331
332
|
"borderRadius",
|
|
332
333
|
"border",
|
|
334
|
+
"borderColor",
|
|
333
335
|
"height"
|
|
334
336
|
].includes(prop);
|
|
335
337
|
var StyledBox = import_styled_components2.default.div.withConfig({ shouldForwardProp: shouldForwardProp2 })`
|
|
@@ -339,6 +341,7 @@ var StyledBox = import_styled_components2.default.div.withConfig({ shouldForward
|
|
|
339
341
|
var _a;
|
|
340
342
|
return (_a = props.border) != null ? _a : `1px solid ${colors.grey_300}`;
|
|
341
343
|
}};
|
|
344
|
+
${(props) => props.borderColor ? `border-left: 4px solid ${colors[props.borderColor] || props.borderColor};` : ""}
|
|
342
345
|
|
|
343
346
|
border-radius: ${(props) => props.borderRadius || "8px"};
|
|
344
347
|
|
|
@@ -588,7 +591,8 @@ var shouldForwardProp3 = (prop) => ![
|
|
|
588
591
|
"width",
|
|
589
592
|
"height",
|
|
590
593
|
"backgroundColor",
|
|
591
|
-
"isRound"
|
|
594
|
+
"isRound",
|
|
595
|
+
"shadow"
|
|
592
596
|
].includes(prop);
|
|
593
597
|
var StyledIcon = import_styled_components6.default.i.withConfig({ shouldForwardProp: shouldForwardProp3 })`
|
|
594
598
|
font-size: ${(props) => textSizes2[props.size] || props.size || "1em"};
|
|
@@ -606,6 +610,7 @@ var StyledIcon = import_styled_components6.default.i.withConfig({ shouldForwardP
|
|
|
606
610
|
cursor: ${(props) => props.onClick ? "pointer" : "inherit"};
|
|
607
611
|
background-color: ${(props) => colors[props.backgroundColor] || props.backgroundColor || "transparent"};
|
|
608
612
|
border-radius: ${(props) => props.isRound ? "50%" : "0"};
|
|
613
|
+
text-shadow: ${(props) => props.shadow ? `0 0 6px ${colors[props.shadow] || props.shadow}` : "none"};
|
|
609
614
|
`;
|
|
610
615
|
var Icon = (props) => {
|
|
611
616
|
const _a = props, {
|
|
@@ -1855,6 +1860,11 @@ var Image2 = (_a) => {
|
|
|
1855
1860
|
|
|
1856
1861
|
// src/Components/Avatar/Avatar.tsx
|
|
1857
1862
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1863
|
+
var Wrapper3 = import_styled_components16.default.div`
|
|
1864
|
+
position: relative;
|
|
1865
|
+
display: inline-flex;
|
|
1866
|
+
flex-shrink: 0;
|
|
1867
|
+
`;
|
|
1858
1868
|
var Container = import_styled_components16.default.div`
|
|
1859
1869
|
width: ${(props) => props.$size}px;
|
|
1860
1870
|
height: ${(props) => props.$size}px;
|
|
@@ -1866,6 +1876,25 @@ var Container = import_styled_components16.default.div`
|
|
|
1866
1876
|
flex-shrink: 0;
|
|
1867
1877
|
overflow: hidden;
|
|
1868
1878
|
`;
|
|
1879
|
+
var BadgeSlot = import_styled_components16.default.div`
|
|
1880
|
+
position: absolute;
|
|
1881
|
+
right: 0;
|
|
1882
|
+
bottom: 0;
|
|
1883
|
+
width: ${(props) => Math.round(props.$size * 0.4)}px;
|
|
1884
|
+
height: ${(props) => Math.round(props.$size * 0.4)}px;
|
|
1885
|
+
display: flex;
|
|
1886
|
+
align-items: center;
|
|
1887
|
+
justify-content: center;
|
|
1888
|
+
background-color: ${colors.white};
|
|
1889
|
+
border-radius: 50%;
|
|
1890
|
+
box-shadow: 0 2px 6px ${colors.blue_950}66;
|
|
1891
|
+
line-height: 0;
|
|
1892
|
+
`;
|
|
1893
|
+
var BadgeIcon = import_styled_components16.default.i`
|
|
1894
|
+
color: ${colors.blue_950};
|
|
1895
|
+
font-size: ${(props) => Math.round(props.$size * 0.2)}px;
|
|
1896
|
+
line-height: 2;
|
|
1897
|
+
`;
|
|
1869
1898
|
var Initials = import_styled_components16.default.span`
|
|
1870
1899
|
color: ${(props) => props.$textColor};
|
|
1871
1900
|
font-weight: 600;
|
|
@@ -1884,33 +1913,44 @@ var Avatar = ({
|
|
|
1884
1913
|
backgroundColor,
|
|
1885
1914
|
textColor,
|
|
1886
1915
|
size = 56,
|
|
1887
|
-
shape = "circle"
|
|
1916
|
+
shape = "circle",
|
|
1917
|
+
badge
|
|
1888
1918
|
}) => {
|
|
1919
|
+
var _a;
|
|
1889
1920
|
const [hasImageError, setHasImageError] = (0, import_react7.useState)(false);
|
|
1890
1921
|
const resolvedBackground = resolveColor(backgroundColor, colors.grey_300);
|
|
1891
1922
|
const resolvedText = resolveColor(textColor, colors.dark);
|
|
1892
1923
|
const initials = getInitials(name);
|
|
1893
1924
|
const sizePx = `${size}px`;
|
|
1894
1925
|
const borderRadius = shape === "circle" ? "50%" : "4px";
|
|
1895
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1926
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Wrapper3, { children: [
|
|
1927
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1928
|
+
Container,
|
|
1929
|
+
{
|
|
1930
|
+
$size: size,
|
|
1931
|
+
$shape: shape,
|
|
1932
|
+
$backgroundColor: resolvedBackground,
|
|
1933
|
+
children: src && !hasImageError ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1934
|
+
Image2,
|
|
1935
|
+
{
|
|
1936
|
+
src,
|
|
1937
|
+
alt: name,
|
|
1938
|
+
width: sizePx,
|
|
1939
|
+
height: sizePx,
|
|
1940
|
+
borderRadius,
|
|
1941
|
+
onError: () => setHasImageError(true)
|
|
1942
|
+
}
|
|
1943
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Initials, { $textColor: resolvedText, $size: size, children: initials })
|
|
1944
|
+
}
|
|
1945
|
+
),
|
|
1946
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(BadgeSlot, { $size: size, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1947
|
+
BadgeIcon,
|
|
1948
|
+
{
|
|
1949
|
+
$size: size,
|
|
1950
|
+
className: `fa-${(_a = badge.family) != null ? _a : "regular"} fa-${badge.name}`
|
|
1951
|
+
}
|
|
1952
|
+
) })
|
|
1953
|
+
] });
|
|
1914
1954
|
};
|
|
1915
1955
|
|
|
1916
1956
|
// src/Components/Select/Select.tsx
|
|
@@ -2748,7 +2788,7 @@ var Radio = ({
|
|
|
2748
2788
|
var import_react11 = require("react");
|
|
2749
2789
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
2750
2790
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2751
|
-
var
|
|
2791
|
+
var Wrapper4 = import_styled_components21.default.div`
|
|
2752
2792
|
width: 100%;
|
|
2753
2793
|
border-radius: 8px;
|
|
2754
2794
|
overflow: hidden;
|
|
@@ -2835,7 +2875,7 @@ var Accordion = ({
|
|
|
2835
2875
|
[disabled, activeItemId, isMultiControlled, onItemToggle]
|
|
2836
2876
|
);
|
|
2837
2877
|
if (items) {
|
|
2838
|
-
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper4, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(ItemWrapper, { $bordered: bordered, children: [
|
|
2839
2879
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2840
2880
|
Header,
|
|
2841
2881
|
{
|
|
@@ -3788,7 +3828,7 @@ var Options = ({
|
|
|
3788
3828
|
var import_react19 = require("react");
|
|
3789
3829
|
var import_styled_components37 = __toESM(require("styled-components"));
|
|
3790
3830
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
3791
|
-
var
|
|
3831
|
+
var Wrapper5 = import_styled_components37.default.nav`
|
|
3792
3832
|
width: 100%;
|
|
3793
3833
|
display: flex;
|
|
3794
3834
|
align-items: center;
|
|
@@ -3821,7 +3861,7 @@ var Stepper = ({
|
|
|
3821
3861
|
size = 28,
|
|
3822
3862
|
className
|
|
3823
3863
|
}) => {
|
|
3824
|
-
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
3864
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Wrapper5, { "aria-label": "progression", className, children: Array.from({ length: numberOfSteps }, (_, i) => {
|
|
3825
3865
|
const isActive = i === current;
|
|
3826
3866
|
const isCompleted = i < current;
|
|
3827
3867
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_react19.Fragment, { children: [
|
|
@@ -5387,7 +5427,7 @@ var CountBadge = import_styled_components45.default.span`
|
|
|
5387
5427
|
var import_styled_components46 = __toESM(require("styled-components"));
|
|
5388
5428
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
5389
5429
|
var clampPercent = (value) => Math.max(0, Math.min(100, value));
|
|
5390
|
-
var
|
|
5430
|
+
var Wrapper6 = import_styled_components46.default.div`
|
|
5391
5431
|
display: flex;
|
|
5392
5432
|
align-items: center;
|
|
5393
5433
|
gap: 8px;
|
|
@@ -5416,7 +5456,7 @@ var ProgressBar = ({
|
|
|
5416
5456
|
showLabel = false
|
|
5417
5457
|
}) => {
|
|
5418
5458
|
const percent = clampPercent(value);
|
|
5419
|
-
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
5459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Wrapper6, { children: [
|
|
5420
5460
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Track2, { $height: height, $trackColor: trackColor, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Fill, { $height: height, $color: color, $percent: percent }) }),
|
|
5421
5461
|
showLabel && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Text, { size: "s", weight: "600", children: [
|
|
5422
5462
|
Math.round(percent),
|
|
@@ -5489,61 +5529,6 @@ var Timeline = ({
|
|
|
5489
5529
|
}) });
|
|
5490
5530
|
};
|
|
5491
5531
|
|
|
5492
|
-
// src/Components/BorderedRow/BorderedRow.tsx
|
|
5493
|
-
var import_styled_components48 = __toESM(require("styled-components"));
|
|
5494
|
-
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
5495
|
-
var Wrapper6 = import_styled_components48.default.div`
|
|
5496
|
-
box-sizing: border-box;
|
|
5497
|
-
position: relative;
|
|
5498
|
-
width: 100%;
|
|
5499
|
-
padding: ${({ $padding }) => $padding};
|
|
5500
|
-
${({ $accent, $borderWidth }) => $accent === "bar" ? `padding-left: ${$borderWidth + 16}px;` : ""}
|
|
5501
|
-
border-radius: ${({ $borderRadius }) => $borderRadius};
|
|
5502
|
-
background: ${({ $background }) => $background || "transparent"};
|
|
5503
|
-
cursor: ${({ $clickable }) => $clickable ? "pointer" : "default"};
|
|
5504
|
-
${({ $bordered }) => $bordered ? `border: 1px solid ${colors.grey_300};` : ""}
|
|
5505
|
-
${({ $accent, $borderWidth, $borderColor }) => $accent === "edge" ? `border-left: ${$borderWidth}px solid ${$borderColor};` : ""}
|
|
5506
|
-
|
|
5507
|
-
${({ $accent, $borderWidth, $borderColor }) => $accent === "bar" ? `
|
|
5508
|
-
&::before {
|
|
5509
|
-
content: '';
|
|
5510
|
-
position: absolute;
|
|
5511
|
-
left: 10px;
|
|
5512
|
-
top: 50%;
|
|
5513
|
-
transform: translateY(-50%);
|
|
5514
|
-
height: 62%;
|
|
5515
|
-
width: ${$borderWidth}px;
|
|
5516
|
-
border-radius: ${$borderWidth}px;
|
|
5517
|
-
background: ${$borderColor};
|
|
5518
|
-
}
|
|
5519
|
-
` : ""}
|
|
5520
|
-
`;
|
|
5521
|
-
var BorderedRow = ({
|
|
5522
|
-
borderColor = colors.blue_700,
|
|
5523
|
-
borderWidth = 4,
|
|
5524
|
-
background,
|
|
5525
|
-
padding = "12px",
|
|
5526
|
-
borderRadius = "8px",
|
|
5527
|
-
accent = "edge",
|
|
5528
|
-
bordered = false,
|
|
5529
|
-
children,
|
|
5530
|
-
onClick
|
|
5531
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
5532
|
-
Wrapper6,
|
|
5533
|
-
{
|
|
5534
|
-
$borderColor: borderColor,
|
|
5535
|
-
$borderWidth: borderWidth,
|
|
5536
|
-
$background: background,
|
|
5537
|
-
$padding: padding,
|
|
5538
|
-
$borderRadius: borderRadius,
|
|
5539
|
-
$accent: accent,
|
|
5540
|
-
$bordered: bordered,
|
|
5541
|
-
$clickable: !!onClick,
|
|
5542
|
-
onClick,
|
|
5543
|
-
children
|
|
5544
|
-
}
|
|
5545
|
-
);
|
|
5546
|
-
|
|
5547
5532
|
// src/data/globalMethods.ts
|
|
5548
5533
|
var formatDate = (dateString, type = "date", language = "en") => {
|
|
5549
5534
|
if (!dateString) return "";
|
|
@@ -5653,6 +5638,14 @@ var truncateFileName = (fileName, maxLength = 20) => {
|
|
|
5653
5638
|
}
|
|
5654
5639
|
return fileName;
|
|
5655
5640
|
};
|
|
5641
|
+
var formatEuro = (amount) => `${(amount != null ? amount : 0).toLocaleString("fr-FR", {
|
|
5642
|
+
minimumFractionDigits: 2,
|
|
5643
|
+
maximumFractionDigits: 2
|
|
5644
|
+
})} \u20AC`;
|
|
5645
|
+
var formatName = (person, fallback = "") => {
|
|
5646
|
+
var _a, _b;
|
|
5647
|
+
return person ? `${(_a = person.firstname) != null ? _a : ""} ${(_b = person.lastname) != null ? _b : ""}`.trim() || fallback : fallback;
|
|
5648
|
+
};
|
|
5656
5649
|
|
|
5657
5650
|
// src/services/optimizeImage/optimizeImage.ts
|
|
5658
5651
|
var hasDocument = () => typeof document !== "undefined";
|
|
@@ -5791,7 +5784,6 @@ var optimizeImage_default = optimizeImage;
|
|
|
5791
5784
|
0 && (module.exports = {
|
|
5792
5785
|
Accordion,
|
|
5793
5786
|
Avatar,
|
|
5794
|
-
BorderedRow,
|
|
5795
5787
|
Box,
|
|
5796
5788
|
Bubble,
|
|
5797
5789
|
Bulk,
|
|
@@ -5852,6 +5844,8 @@ var optimizeImage_default = optimizeImage;
|
|
|
5852
5844
|
formatDate,
|
|
5853
5845
|
formatDistance,
|
|
5854
5846
|
formatDuration,
|
|
5847
|
+
formatEuro,
|
|
5848
|
+
formatName,
|
|
5855
5849
|
optimizeImage,
|
|
5856
5850
|
truncateFileName,
|
|
5857
5851
|
truncateText
|