design-zystem 1.0.261 → 1.0.263
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 +14 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +130 -92
- package/dist/index.mjs +111 -74
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -318,6 +318,8 @@ declare const Link: ({ children, url, newTab, download, size, variant, ...rest }
|
|
|
318
318
|
interface AvatarBadge {
|
|
319
319
|
name: string;
|
|
320
320
|
family?: 'solid' | 'regular' | 'light' | 'brands';
|
|
321
|
+
backgroundColor?: string;
|
|
322
|
+
iconColor?: string;
|
|
321
323
|
}
|
|
322
324
|
interface AvatarProps {
|
|
323
325
|
name: string;
|
|
@@ -893,6 +895,17 @@ interface MetricCardProps {
|
|
|
893
895
|
}
|
|
894
896
|
declare const MetricCard: ({ icon, title, value, valueColor, subtitle, iconBackgroundColor, iconColor, contentLayout, onClick, checked, }: MetricCardProps) => react_jsx_runtime.JSX.Element;
|
|
895
897
|
|
|
898
|
+
interface CardProps {
|
|
899
|
+
children?: ReactNode;
|
|
900
|
+
onClick?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
901
|
+
/** Left accent color — e.g. colors.red for 'critique', colors.secondary for 'alerte'. */
|
|
902
|
+
accentColor?: string;
|
|
903
|
+
backgroundColor?: string;
|
|
904
|
+
padding?: string;
|
|
905
|
+
borderRadius?: string;
|
|
906
|
+
}
|
|
907
|
+
declare const Card: ({ children, onClick, accentColor, backgroundColor, padding, borderRadius, }: CardProps) => react_jsx_runtime.JSX.Element;
|
|
908
|
+
|
|
896
909
|
interface TooltipProps {
|
|
897
910
|
children?: ReactNode;
|
|
898
911
|
backgroundColor?: string;
|
|
@@ -1162,4 +1175,4 @@ declare const formatKM: (value: string | number | null | undefined) => string;
|
|
|
1162
1175
|
|
|
1163
1176
|
declare const parseAmount: (value: string) => number | null;
|
|
1164
1177
|
|
|
1165
|
-
export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, type DatePickerProps, type DatePreset, 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, type ToastOptions, type ToastType, Toaster, Tooltip, addBusinessDays, appendCacheBuster, appendQueryParam, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
|
|
1178
|
+
export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, Card, type CardProps, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, type DatePickerProps, type DatePreset, 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, type ToastOptions, type ToastType, Toaster, Tooltip, addBusinessDays, appendCacheBuster, appendQueryParam, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
|
package/dist/index.d.ts
CHANGED
|
@@ -318,6 +318,8 @@ declare const Link: ({ children, url, newTab, download, size, variant, ...rest }
|
|
|
318
318
|
interface AvatarBadge {
|
|
319
319
|
name: string;
|
|
320
320
|
family?: 'solid' | 'regular' | 'light' | 'brands';
|
|
321
|
+
backgroundColor?: string;
|
|
322
|
+
iconColor?: string;
|
|
321
323
|
}
|
|
322
324
|
interface AvatarProps {
|
|
323
325
|
name: string;
|
|
@@ -893,6 +895,17 @@ interface MetricCardProps {
|
|
|
893
895
|
}
|
|
894
896
|
declare const MetricCard: ({ icon, title, value, valueColor, subtitle, iconBackgroundColor, iconColor, contentLayout, onClick, checked, }: MetricCardProps) => react_jsx_runtime.JSX.Element;
|
|
895
897
|
|
|
898
|
+
interface CardProps {
|
|
899
|
+
children?: ReactNode;
|
|
900
|
+
onClick?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
901
|
+
/** Left accent color — e.g. colors.red for 'critique', colors.secondary for 'alerte'. */
|
|
902
|
+
accentColor?: string;
|
|
903
|
+
backgroundColor?: string;
|
|
904
|
+
padding?: string;
|
|
905
|
+
borderRadius?: string;
|
|
906
|
+
}
|
|
907
|
+
declare const Card: ({ children, onClick, accentColor, backgroundColor, padding, borderRadius, }: CardProps) => react_jsx_runtime.JSX.Element;
|
|
908
|
+
|
|
896
909
|
interface TooltipProps {
|
|
897
910
|
children?: ReactNode;
|
|
898
911
|
backgroundColor?: string;
|
|
@@ -1162,4 +1175,4 @@ declare const formatKM: (value: string | number | null | undefined) => string;
|
|
|
1162
1175
|
|
|
1163
1176
|
declare const parseAmount: (value: string) => number | null;
|
|
1164
1177
|
|
|
1165
|
-
export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, type DatePickerProps, type DatePreset, 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, type ToastOptions, type ToastType, Toaster, Tooltip, addBusinessDays, appendCacheBuster, appendQueryParam, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
|
|
1178
|
+
export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, Card, type CardProps, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, type DatePickerProps, type DatePreset, 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, type ToastOptions, type ToastType, Toaster, Tooltip, addBusinessDays, appendCacheBuster, appendQueryParam, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
|
package/dist/index.js
CHANGED
|
@@ -65,6 +65,7 @@ __export(index_exports, {
|
|
|
65
65
|
Bubble: () => Bubble,
|
|
66
66
|
Bulk: () => Bulk,
|
|
67
67
|
Button: () => Button,
|
|
68
|
+
Card: () => Card2,
|
|
68
69
|
CardSkeleton: () => CardSkeleton,
|
|
69
70
|
Checkbox: () => Checkbox,
|
|
70
71
|
Col: () => Col,
|
|
@@ -2107,13 +2108,13 @@ var BadgeSlot = import_styled_components18.default.div`
|
|
|
2107
2108
|
display: flex;
|
|
2108
2109
|
align-items: center;
|
|
2109
2110
|
justify-content: center;
|
|
2110
|
-
background-color: ${colors
|
|
2111
|
+
background-color: ${(props) => colors[props.$bg] || props.$bg};
|
|
2111
2112
|
border-radius: 50%;
|
|
2112
2113
|
box-shadow: 0 2px 6px ${colors.blue_950}66;
|
|
2113
2114
|
line-height: 0;
|
|
2114
2115
|
`;
|
|
2115
2116
|
var BadgeIcon = import_styled_components18.default.i`
|
|
2116
|
-
color: ${colors
|
|
2117
|
+
color: ${(props) => colors[props.$color] || props.$color};
|
|
2117
2118
|
font-size: ${(props) => Math.round(props.$size * 0.2)}px;
|
|
2118
2119
|
line-height: 2;
|
|
2119
2120
|
`;
|
|
@@ -2138,7 +2139,7 @@ var Avatar = ({
|
|
|
2138
2139
|
shape = "circle",
|
|
2139
2140
|
badge
|
|
2140
2141
|
}) => {
|
|
2141
|
-
var _a;
|
|
2142
|
+
var _a, _b, _c;
|
|
2142
2143
|
const [hasImageError, setHasImageError] = (0, import_react9.useState)(false);
|
|
2143
2144
|
const resolvedBackground = resolveColor(backgroundColor, colors.grey_300);
|
|
2144
2145
|
const resolvedText = resolveColor(textColor, colors.dark);
|
|
@@ -2165,11 +2166,12 @@ var Avatar = ({
|
|
|
2165
2166
|
) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Initials, { $textColor: resolvedText, $size: size, children: initials })
|
|
2166
2167
|
}
|
|
2167
2168
|
),
|
|
2168
|
-
badge && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BadgeSlot, { $size: size, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2169
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BadgeSlot, { $size: size, $bg: (_a = badge.backgroundColor) != null ? _a : colors.white, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2169
2170
|
BadgeIcon,
|
|
2170
2171
|
{
|
|
2171
2172
|
$size: size,
|
|
2172
|
-
|
|
2173
|
+
$color: (_b = badge.iconColor) != null ? _b : colors.blue_950,
|
|
2174
|
+
className: `fa-${(_c = badge.family) != null ? _c : "regular"} fa-${badge.name}`
|
|
2173
2175
|
}
|
|
2174
2176
|
) })
|
|
2175
2177
|
] });
|
|
@@ -5141,16 +5143,51 @@ var MetricCard = ({
|
|
|
5141
5143
|
);
|
|
5142
5144
|
};
|
|
5143
5145
|
|
|
5144
|
-
// src/Components/
|
|
5145
|
-
var import_react27 = require("react");
|
|
5146
|
+
// src/Components/Card/Card.tsx
|
|
5146
5147
|
var import_styled_components44 = __toESM(require("styled-components"));
|
|
5147
5148
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
5148
|
-
var
|
|
5149
|
+
var StyledCard = import_styled_components44.default.div`
|
|
5150
|
+
overflow: hidden;
|
|
5151
|
+
transition: box-shadow 0.15s ease;
|
|
5152
|
+
background-color: ${(p) => p.$backgroundColor};
|
|
5153
|
+
border-radius: ${(p) => p.$borderRadius};
|
|
5154
|
+
${(p) => p.$accentColor ? `border-left: 2px solid ${p.$accentColor};` : ""}
|
|
5155
|
+
${(p) => p.$clickable ? "cursor: pointer;" : ""}
|
|
5156
|
+
${(p) => p.$clickable ? "&:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }" : ""}
|
|
5157
|
+
`;
|
|
5158
|
+
var StyledCardInner = import_styled_components44.default.div`
|
|
5159
|
+
width: 100%;
|
|
5160
|
+
padding: ${(p) => p.$padding};
|
|
5161
|
+
`;
|
|
5162
|
+
var Card2 = ({
|
|
5163
|
+
children,
|
|
5164
|
+
onClick,
|
|
5165
|
+
accentColor,
|
|
5166
|
+
backgroundColor = "#F8FAFC",
|
|
5167
|
+
padding = "10px 12px",
|
|
5168
|
+
borderRadius = "8px"
|
|
5169
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5170
|
+
StyledCard,
|
|
5171
|
+
{
|
|
5172
|
+
$clickable: !!onClick,
|
|
5173
|
+
$backgroundColor: backgroundColor,
|
|
5174
|
+
$borderRadius: borderRadius,
|
|
5175
|
+
$accentColor: accentColor,
|
|
5176
|
+
onClick,
|
|
5177
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(StyledCardInner, { $padding: padding, children })
|
|
5178
|
+
}
|
|
5179
|
+
);
|
|
5180
|
+
|
|
5181
|
+
// src/Components/Tooltip/Tooltip.tsx
|
|
5182
|
+
var import_react27 = require("react");
|
|
5183
|
+
var import_styled_components45 = __toESM(require("styled-components"));
|
|
5184
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
5185
|
+
var StyledTooltipWrapper = import_styled_components45.default.div`
|
|
5149
5186
|
position: relative;
|
|
5150
5187
|
display: inline-block;
|
|
5151
5188
|
cursor: pointer;
|
|
5152
5189
|
`;
|
|
5153
|
-
var StyledTooltipContent =
|
|
5190
|
+
var StyledTooltipContent = import_styled_components45.default.div`
|
|
5154
5191
|
visibility: ${(props) => props.$isVisible ? "visible" : "hidden"};
|
|
5155
5192
|
background-color: ${(props) => props.$backgroundColor || colors.black};
|
|
5156
5193
|
color: ${colors.white};
|
|
@@ -5249,14 +5286,14 @@ var Tooltip = ({
|
|
|
5249
5286
|
const [isVisible, setIsVisible] = (0, import_react27.useState)(false);
|
|
5250
5287
|
const handleMouseEnter = () => setIsVisible(true);
|
|
5251
5288
|
const handleMouseLeave = () => setIsVisible(false);
|
|
5252
|
-
return /* @__PURE__ */ (0,
|
|
5289
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
5253
5290
|
StyledTooltipWrapper,
|
|
5254
5291
|
{
|
|
5255
5292
|
onMouseEnter: handleMouseEnter,
|
|
5256
5293
|
onMouseLeave: handleMouseLeave,
|
|
5257
5294
|
children: [
|
|
5258
5295
|
children,
|
|
5259
|
-
/* @__PURE__ */ (0,
|
|
5296
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
5260
5297
|
StyledTooltipContent,
|
|
5261
5298
|
{
|
|
5262
5299
|
$isVisible: isVisible,
|
|
@@ -5264,7 +5301,7 @@ var Tooltip = ({
|
|
|
5264
5301
|
$width: width,
|
|
5265
5302
|
$height: height,
|
|
5266
5303
|
$direction: direction,
|
|
5267
|
-
children: data.length > 0 ? data.map((item, index) => /* @__PURE__ */ (0,
|
|
5304
|
+
children: data.length > 0 ? data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text, { size: "s", color: "white", children: item }, index)) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text, { size: "s", color: "white", children: "Aucune donn\xE9e" })
|
|
5268
5305
|
}
|
|
5269
5306
|
)
|
|
5270
5307
|
]
|
|
@@ -5274,7 +5311,7 @@ var Tooltip = ({
|
|
|
5274
5311
|
|
|
5275
5312
|
// src/Components/Pagination/Pagination.tsx
|
|
5276
5313
|
var import_react28 = require("react");
|
|
5277
|
-
var
|
|
5314
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
5278
5315
|
var getPageNumbers = (current, total) => {
|
|
5279
5316
|
if (total <= 5) {
|
|
5280
5317
|
return Array.from({ length: total }, (_, i) => i + 1);
|
|
@@ -5304,15 +5341,15 @@ var Pagination = ({
|
|
|
5304
5341
|
const startItem = (currentPage - 1) * itemsPerPage + 1;
|
|
5305
5342
|
const endItem = Math.min(currentPage * itemsPerPage, totalItems);
|
|
5306
5343
|
const summary = summaryLabel || defaultSummary(startItem, endItem, totalItems);
|
|
5307
|
-
return /* @__PURE__ */ (0,
|
|
5344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
5308
5345
|
Row,
|
|
5309
5346
|
{
|
|
5310
5347
|
justifyContent: showSummary ? "space-between" : "flex-end",
|
|
5311
5348
|
alignItems: "center",
|
|
5312
5349
|
children: [
|
|
5313
|
-
showSummary && /* @__PURE__ */ (0,
|
|
5314
|
-
/* @__PURE__ */ (0,
|
|
5315
|
-
/* @__PURE__ */ (0,
|
|
5350
|
+
showSummary && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { size: "s", color: colors.grey_500, children: summary }),
|
|
5351
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Row, { gap: "4", alignItems: "center", style: { width: "fit-content" }, children: [
|
|
5352
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5316
5353
|
Button,
|
|
5317
5354
|
{
|
|
5318
5355
|
size: "xs",
|
|
@@ -5323,7 +5360,7 @@ var Pagination = ({
|
|
|
5323
5360
|
}
|
|
5324
5361
|
),
|
|
5325
5362
|
pages.map(
|
|
5326
|
-
(page, index) => page === "..." ? /* @__PURE__ */ (0,
|
|
5363
|
+
(page, index) => page === "..." ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { size: "s", color: colors.grey_500, children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5327
5364
|
Button,
|
|
5328
5365
|
{
|
|
5329
5366
|
size: "xs",
|
|
@@ -5334,7 +5371,7 @@ var Pagination = ({
|
|
|
5334
5371
|
page
|
|
5335
5372
|
)
|
|
5336
5373
|
),
|
|
5337
|
-
/* @__PURE__ */ (0,
|
|
5374
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5338
5375
|
Button,
|
|
5339
5376
|
{
|
|
5340
5377
|
size: "xs",
|
|
@@ -5352,8 +5389,8 @@ var Pagination = ({
|
|
|
5352
5389
|
|
|
5353
5390
|
// src/Components/FileUploadZone/FileUploadZone.tsx
|
|
5354
5391
|
var import_react29 = require("react");
|
|
5355
|
-
var
|
|
5356
|
-
var
|
|
5392
|
+
var import_styled_components46 = __toESM(require("styled-components"));
|
|
5393
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
5357
5394
|
var ACCEPT_MAP = {
|
|
5358
5395
|
png: "image/png",
|
|
5359
5396
|
jpg: "image/jpeg",
|
|
@@ -5369,7 +5406,7 @@ var getMimeTypes = (accept) => {
|
|
|
5369
5406
|
return accept.map((ext) => ACCEPT_MAP[ext.toLowerCase()] || ext);
|
|
5370
5407
|
};
|
|
5371
5408
|
var isPdf = (type) => type === "application/pdf";
|
|
5372
|
-
var StyledDropZone =
|
|
5409
|
+
var StyledDropZone = import_styled_components46.default.label`
|
|
5373
5410
|
display: flex;
|
|
5374
5411
|
flex-direction: column;
|
|
5375
5412
|
align-items: center;
|
|
@@ -5393,7 +5430,7 @@ var StyledDropZone = import_styled_components45.default.label`
|
|
|
5393
5430
|
border-color: ${(p) => p.$disabled ? colors.blue_50 : colors.blue_100};
|
|
5394
5431
|
}
|
|
5395
5432
|
`;
|
|
5396
|
-
var StyledPreview =
|
|
5433
|
+
var StyledPreview = import_styled_components46.default.div`
|
|
5397
5434
|
display: flex;
|
|
5398
5435
|
flex-direction: column;
|
|
5399
5436
|
align-items: center;
|
|
@@ -5404,18 +5441,18 @@ var StyledPreview = import_styled_components45.default.div`
|
|
|
5404
5441
|
width: ${(p) => p.$fullWidth ? "100%" : "auto"};
|
|
5405
5442
|
box-sizing: border-box;
|
|
5406
5443
|
`;
|
|
5407
|
-
var StyledImage2 =
|
|
5444
|
+
var StyledImage2 = import_styled_components46.default.img`
|
|
5408
5445
|
max-width: 100%;
|
|
5409
5446
|
max-height: 400px;
|
|
5410
5447
|
border-radius: 4px;
|
|
5411
5448
|
object-fit: contain;
|
|
5412
5449
|
`;
|
|
5413
|
-
var StyledEmbed =
|
|
5450
|
+
var StyledEmbed = import_styled_components46.default.embed`
|
|
5414
5451
|
width: 100%;
|
|
5415
5452
|
height: 500px;
|
|
5416
5453
|
border-radius: 4px;
|
|
5417
5454
|
`;
|
|
5418
|
-
var HiddenInput2 =
|
|
5455
|
+
var HiddenInput2 = import_styled_components46.default.input`
|
|
5419
5456
|
display: none;
|
|
5420
5457
|
`;
|
|
5421
5458
|
var FileUploadZone = ({
|
|
@@ -5551,9 +5588,9 @@ var FileUploadZone = ({
|
|
|
5551
5588
|
onRemove == null ? void 0 : onRemove();
|
|
5552
5589
|
};
|
|
5553
5590
|
if (previewUrl) {
|
|
5554
|
-
return /* @__PURE__ */ (0,
|
|
5555
|
-
fileType && isPdf(fileType) ? /* @__PURE__ */ (0,
|
|
5556
|
-
/* @__PURE__ */ (0,
|
|
5591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(StyledPreview, { $fullWidth: fullWidth, children: [
|
|
5592
|
+
fileType && isPdf(fileType) ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StyledEmbed, { src: previewUrl, type: "application/pdf" }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StyledImage2, { src: previewUrl, alt: "Aper\xE7u du fichier" }),
|
|
5593
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Row, { gap: "8", justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5557
5594
|
Button,
|
|
5558
5595
|
{
|
|
5559
5596
|
onClick: handleRemove,
|
|
@@ -5567,8 +5604,8 @@ var FileUploadZone = ({
|
|
|
5567
5604
|
}
|
|
5568
5605
|
const showIcon = icon !== false;
|
|
5569
5606
|
const showBrowse = !compact && browseLabel !== false;
|
|
5570
|
-
return /* @__PURE__ */ (0,
|
|
5571
|
-
/* @__PURE__ */ (0,
|
|
5607
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Col, { gap: "4", fullWidth, children: [
|
|
5608
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
5572
5609
|
StyledDropZone,
|
|
5573
5610
|
{
|
|
5574
5611
|
$isDragging: isDragging,
|
|
@@ -5579,7 +5616,7 @@ var FileUploadZone = ({
|
|
|
5579
5616
|
onDragLeave: handleDragLeave,
|
|
5580
5617
|
onDrop: handleDrop,
|
|
5581
5618
|
children: [
|
|
5582
|
-
/* @__PURE__ */ (0,
|
|
5619
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5583
5620
|
HiddenInput2,
|
|
5584
5621
|
{
|
|
5585
5622
|
ref: inputRef,
|
|
@@ -5590,7 +5627,7 @@ var FileUploadZone = ({
|
|
|
5590
5627
|
multiple
|
|
5591
5628
|
}
|
|
5592
5629
|
),
|
|
5593
|
-
showIcon && /* @__PURE__ */ (0,
|
|
5630
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5594
5631
|
Icon,
|
|
5595
5632
|
{
|
|
5596
5633
|
name: icon,
|
|
@@ -5599,9 +5636,9 @@ var FileUploadZone = ({
|
|
|
5599
5636
|
color: "blue_700"
|
|
5600
5637
|
}
|
|
5601
5638
|
),
|
|
5602
|
-
/* @__PURE__ */ (0,
|
|
5603
|
-
showBrowse && /* @__PURE__ */ (0,
|
|
5604
|
-
showBrowse && /* @__PURE__ */ (0,
|
|
5639
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "s", variant: "grey_600", align: "center", children: label }),
|
|
5640
|
+
showBrowse && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "xs", variant: "grey_600", align: "center", children: "ou" }),
|
|
5641
|
+
showBrowse && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5605
5642
|
Button,
|
|
5606
5643
|
{
|
|
5607
5644
|
outline: true,
|
|
@@ -5614,31 +5651,31 @@ var FileUploadZone = ({
|
|
|
5614
5651
|
}
|
|
5615
5652
|
}
|
|
5616
5653
|
),
|
|
5617
|
-
sublabel && /* @__PURE__ */ (0,
|
|
5654
|
+
sublabel && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "xs", variant: "grey_500", align: "center", children: sublabel })
|
|
5618
5655
|
]
|
|
5619
5656
|
}
|
|
5620
5657
|
),
|
|
5621
|
-
showFileName && fileName && /* @__PURE__ */ (0,
|
|
5622
|
-
/* @__PURE__ */ (0,
|
|
5623
|
-
/* @__PURE__ */ (0,
|
|
5658
|
+
showFileName && fileName && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Row, { gap: "8", alignItems: "center", justifyContent: "center", children: [
|
|
5659
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: "file", size: "s", color: "green_700" }),
|
|
5660
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "s", color: "green_700", children: fileName })
|
|
5624
5661
|
] }),
|
|
5625
|
-
inlineError && /* @__PURE__ */ (0,
|
|
5662
|
+
inlineError && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "s", color: "danger", align: "center", children: inlineError })
|
|
5626
5663
|
] });
|
|
5627
5664
|
};
|
|
5628
5665
|
|
|
5629
5666
|
// src/Components/Spinner/Spinner.tsx
|
|
5630
|
-
var
|
|
5631
|
-
var
|
|
5667
|
+
var import_styled_components47 = __toESM(require("styled-components"));
|
|
5668
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
5632
5669
|
var SIZES3 = {
|
|
5633
5670
|
s: 20,
|
|
5634
5671
|
m: 32,
|
|
5635
5672
|
l: 48
|
|
5636
5673
|
};
|
|
5637
|
-
var spin =
|
|
5674
|
+
var spin = import_styled_components47.keyframes`
|
|
5638
5675
|
0% { transform: rotate(0deg); }
|
|
5639
5676
|
100% { transform: rotate(360deg); }
|
|
5640
5677
|
`;
|
|
5641
|
-
var StyledSpinner =
|
|
5678
|
+
var StyledSpinner = import_styled_components47.default.span`
|
|
5642
5679
|
display: inline-block;
|
|
5643
5680
|
width: ${(p) => p.$size}px;
|
|
5644
5681
|
height: ${(p) => p.$size}px;
|
|
@@ -5651,7 +5688,7 @@ var StyledSpinner = import_styled_components46.default.span`
|
|
|
5651
5688
|
var Spinner = ({ size = "m", color = "primary" }) => {
|
|
5652
5689
|
const resolvedSize = SIZES3[size];
|
|
5653
5690
|
const resolvedColor = colors[color] || color || colors.primary;
|
|
5654
|
-
return /* @__PURE__ */ (0,
|
|
5691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
5655
5692
|
StyledSpinner,
|
|
5656
5693
|
{
|
|
5657
5694
|
$size: resolvedSize,
|
|
@@ -5663,7 +5700,7 @@ var Spinner = ({ size = "m", color = "primary" }) => {
|
|
|
5663
5700
|
};
|
|
5664
5701
|
|
|
5665
5702
|
// src/Components/EmptyState/EmptyState.tsx
|
|
5666
|
-
var
|
|
5703
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
5667
5704
|
var EmptyState = ({
|
|
5668
5705
|
icon = "inbox",
|
|
5669
5706
|
title = "Aucun r\xE9sultat",
|
|
@@ -5671,7 +5708,7 @@ var EmptyState = ({
|
|
|
5671
5708
|
actionLabel,
|
|
5672
5709
|
onAction
|
|
5673
5710
|
}) => {
|
|
5674
|
-
return /* @__PURE__ */ (0,
|
|
5711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
5675
5712
|
Col,
|
|
5676
5713
|
{
|
|
5677
5714
|
fullWidth: true,
|
|
@@ -5680,20 +5717,20 @@ var EmptyState = ({
|
|
|
5680
5717
|
gap: "24",
|
|
5681
5718
|
padding: "24px 16px",
|
|
5682
5719
|
children: [
|
|
5683
|
-
/* @__PURE__ */ (0,
|
|
5684
|
-
/* @__PURE__ */ (0,
|
|
5685
|
-
/* @__PURE__ */ (0,
|
|
5686
|
-
description && /* @__PURE__ */ (0,
|
|
5720
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
|
|
5721
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
|
|
5722
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Text, { size: "m", weight: "600", variant: "grey_600", align: "center", children: title }),
|
|
5723
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Text, { size: "s", variant: "grey_500", align: "center", children: description })
|
|
5687
5724
|
] }),
|
|
5688
|
-
actionLabel && onAction && /* @__PURE__ */ (0,
|
|
5725
|
+
actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { label: actionLabel, onClick: onAction })
|
|
5689
5726
|
]
|
|
5690
5727
|
}
|
|
5691
5728
|
);
|
|
5692
5729
|
};
|
|
5693
5730
|
|
|
5694
5731
|
// src/Components/FloatingButton/FloatingButton.tsx
|
|
5695
|
-
var
|
|
5696
|
-
var
|
|
5732
|
+
var import_styled_components48 = __toESM(require("styled-components"));
|
|
5733
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
5697
5734
|
var FloatingButton = ({
|
|
5698
5735
|
isOpen,
|
|
5699
5736
|
onToggle,
|
|
@@ -5705,10 +5742,10 @@ var FloatingButton = ({
|
|
|
5705
5742
|
variant = "blue_700"
|
|
5706
5743
|
}) => {
|
|
5707
5744
|
const accent = colors[variant];
|
|
5708
|
-
return /* @__PURE__ */ (0,
|
|
5745
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Container6, { children: [
|
|
5709
5746
|
actions.map((action, index) => {
|
|
5710
5747
|
var _a;
|
|
5711
|
-
return /* @__PURE__ */ (0,
|
|
5748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
5712
5749
|
SubButton,
|
|
5713
5750
|
{
|
|
5714
5751
|
type: "button",
|
|
@@ -5717,14 +5754,14 @@ var FloatingButton = ({
|
|
|
5717
5754
|
$transform: arcTransform(index, actions.length),
|
|
5718
5755
|
onClick: action.onClick,
|
|
5719
5756
|
children: [
|
|
5720
|
-
/* @__PURE__ */ (0,
|
|
5721
|
-
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ (0,
|
|
5757
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: action.icon, family: "regular", size: "s", color: accent }),
|
|
5758
|
+
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CountBadge, { children: action.badge })
|
|
5722
5759
|
]
|
|
5723
5760
|
},
|
|
5724
5761
|
action.id
|
|
5725
5762
|
);
|
|
5726
5763
|
}),
|
|
5727
|
-
/* @__PURE__ */ (0,
|
|
5764
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
5728
5765
|
MainButton,
|
|
5729
5766
|
{
|
|
5730
5767
|
type: "button",
|
|
@@ -5733,7 +5770,7 @@ var FloatingButton = ({
|
|
|
5733
5770
|
$accent: accent,
|
|
5734
5771
|
onClick: onToggle,
|
|
5735
5772
|
children: [
|
|
5736
|
-
/* @__PURE__ */ (0,
|
|
5773
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
5737
5774
|
Icon,
|
|
5738
5775
|
{
|
|
5739
5776
|
name: isOpen ? openIcon : icon,
|
|
@@ -5742,7 +5779,7 @@ var FloatingButton = ({
|
|
|
5742
5779
|
color: colors.white
|
|
5743
5780
|
}
|
|
5744
5781
|
),
|
|
5745
|
-
!isOpen && mainBadge > 0 && /* @__PURE__ */ (0,
|
|
5782
|
+
!isOpen && mainBadge > 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CountBadge, { children: mainBadge })
|
|
5746
5783
|
]
|
|
5747
5784
|
}
|
|
5748
5785
|
)
|
|
@@ -5761,7 +5798,7 @@ var arcTransform = (index, total) => {
|
|
|
5761
5798
|
const y = Math.round(-Math.sin(angle) * ARC_RADIUS);
|
|
5762
5799
|
return `translate(${x}px, ${y}px)`;
|
|
5763
5800
|
};
|
|
5764
|
-
var Container6 =
|
|
5801
|
+
var Container6 = import_styled_components48.default.div`
|
|
5765
5802
|
position: fixed;
|
|
5766
5803
|
right: 32px;
|
|
5767
5804
|
bottom: 32px;
|
|
@@ -5769,7 +5806,7 @@ var Container6 = import_styled_components47.default.div`
|
|
|
5769
5806
|
height: ${FAB_SIZE}px;
|
|
5770
5807
|
z-index: 1000;
|
|
5771
5808
|
`;
|
|
5772
|
-
var MainButton =
|
|
5809
|
+
var MainButton = import_styled_components48.default.button`
|
|
5773
5810
|
position: absolute;
|
|
5774
5811
|
inset: 0;
|
|
5775
5812
|
display: flex;
|
|
@@ -5783,7 +5820,7 @@ var MainButton = import_styled_components47.default.button`
|
|
|
5783
5820
|
0 8px 5px rgba(0, 0, 0, 0.1),
|
|
5784
5821
|
0 20px 12.5px rgba(0, 0, 0, 0.1);
|
|
5785
5822
|
`;
|
|
5786
|
-
var SubButton =
|
|
5823
|
+
var SubButton = import_styled_components48.default.button`
|
|
5787
5824
|
position: absolute;
|
|
5788
5825
|
left: ${(FAB_SIZE - SUB_SIZE) / 2}px;
|
|
5789
5826
|
top: ${(FAB_SIZE - SUB_SIZE) / 2}px;
|
|
@@ -5806,7 +5843,7 @@ var SubButton = import_styled_components47.default.button`
|
|
|
5806
5843
|
opacity: ${({ $isOpen }) => $isOpen ? 1 : 0};
|
|
5807
5844
|
pointer-events: ${({ $isOpen }) => $isOpen ? "auto" : "none"};
|
|
5808
5845
|
`;
|
|
5809
|
-
var CountBadge =
|
|
5846
|
+
var CountBadge = import_styled_components48.default.span`
|
|
5810
5847
|
position: absolute;
|
|
5811
5848
|
top: -4px;
|
|
5812
5849
|
right: -4px;
|
|
@@ -5824,16 +5861,16 @@ var CountBadge = import_styled_components47.default.span`
|
|
|
5824
5861
|
`;
|
|
5825
5862
|
|
|
5826
5863
|
// src/Components/ProgressBar/ProgressBar.tsx
|
|
5827
|
-
var
|
|
5828
|
-
var
|
|
5864
|
+
var import_styled_components49 = __toESM(require("styled-components"));
|
|
5865
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
5829
5866
|
var clampPercent = (value) => Math.max(0, Math.min(100, value));
|
|
5830
|
-
var Wrapper6 =
|
|
5867
|
+
var Wrapper6 = import_styled_components49.default.div`
|
|
5831
5868
|
display: flex;
|
|
5832
5869
|
align-items: center;
|
|
5833
5870
|
gap: 8px;
|
|
5834
5871
|
width: 100%;
|
|
5835
5872
|
`;
|
|
5836
|
-
var Track2 =
|
|
5873
|
+
var Track2 = import_styled_components49.default.div`
|
|
5837
5874
|
position: relative;
|
|
5838
5875
|
flex: 1;
|
|
5839
5876
|
height: ${({ $height }) => $height}px;
|
|
@@ -5841,7 +5878,7 @@ var Track2 = import_styled_components48.default.div`
|
|
|
5841
5878
|
border-radius: ${({ $height }) => $height}px;
|
|
5842
5879
|
overflow: hidden;
|
|
5843
5880
|
`;
|
|
5844
|
-
var Fill =
|
|
5881
|
+
var Fill = import_styled_components49.default.div`
|
|
5845
5882
|
height: 100%;
|
|
5846
5883
|
width: ${({ $percent }) => $percent}%;
|
|
5847
5884
|
background: ${({ $color }) => $color};
|
|
@@ -5856,9 +5893,9 @@ var ProgressBar2 = ({
|
|
|
5856
5893
|
showLabel = false
|
|
5857
5894
|
}) => {
|
|
5858
5895
|
const percent = clampPercent(value);
|
|
5859
|
-
return /* @__PURE__ */ (0,
|
|
5860
|
-
/* @__PURE__ */ (0,
|
|
5861
|
-
showLabel && /* @__PURE__ */ (0,
|
|
5896
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Wrapper6, { children: [
|
|
5897
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Track2, { $height: height, $trackColor: trackColor, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Fill, { $height: height, $color: color, $percent: percent }) }),
|
|
5898
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Text, { size: "s", weight: "600", children: [
|
|
5862
5899
|
Math.round(percent),
|
|
5863
5900
|
" %"
|
|
5864
5901
|
] })
|
|
@@ -5866,24 +5903,24 @@ var ProgressBar2 = ({
|
|
|
5866
5903
|
};
|
|
5867
5904
|
|
|
5868
5905
|
// src/Components/Timeline/Timeline.tsx
|
|
5869
|
-
var
|
|
5870
|
-
var
|
|
5871
|
-
var List2 =
|
|
5906
|
+
var import_styled_components50 = __toESM(require("styled-components"));
|
|
5907
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
5908
|
+
var List2 = import_styled_components50.default.div`
|
|
5872
5909
|
display: flex;
|
|
5873
5910
|
flex-direction: column;
|
|
5874
5911
|
`;
|
|
5875
|
-
var Item2 =
|
|
5912
|
+
var Item2 = import_styled_components50.default.div`
|
|
5876
5913
|
display: flex;
|
|
5877
5914
|
gap: 12px;
|
|
5878
5915
|
align-items: stretch;
|
|
5879
5916
|
`;
|
|
5880
|
-
var Rail =
|
|
5917
|
+
var Rail = import_styled_components50.default.div`
|
|
5881
5918
|
display: flex;
|
|
5882
5919
|
flex-direction: column;
|
|
5883
5920
|
align-items: center;
|
|
5884
5921
|
width: 16px;
|
|
5885
5922
|
`;
|
|
5886
|
-
var Dot2 =
|
|
5923
|
+
var Dot2 = import_styled_components50.default.div`
|
|
5887
5924
|
width: 10px;
|
|
5888
5925
|
height: 10px;
|
|
5889
5926
|
border-radius: 50%;
|
|
@@ -5891,13 +5928,13 @@ var Dot2 = import_styled_components49.default.div`
|
|
|
5891
5928
|
flex: 0 0 auto;
|
|
5892
5929
|
background: ${({ $color }) => $color};
|
|
5893
5930
|
`;
|
|
5894
|
-
var Line =
|
|
5931
|
+
var Line = import_styled_components50.default.div`
|
|
5895
5932
|
width: 2px;
|
|
5896
5933
|
flex: 1;
|
|
5897
5934
|
min-height: 16px;
|
|
5898
5935
|
background: ${({ $color }) => $color};
|
|
5899
5936
|
`;
|
|
5900
|
-
var Content2 =
|
|
5937
|
+
var Content2 = import_styled_components50.default.div`
|
|
5901
5938
|
display: flex;
|
|
5902
5939
|
flex-direction: column;
|
|
5903
5940
|
gap: 2px;
|
|
@@ -5909,21 +5946,21 @@ var Timeline = ({
|
|
|
5909
5946
|
emptyLabel = "Aucun \xE9v\xE9nement"
|
|
5910
5947
|
}) => {
|
|
5911
5948
|
if (items.length === 0) {
|
|
5912
|
-
return /* @__PURE__ */ (0,
|
|
5949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Text, { size: "s", color: colors.grey_600, children: emptyLabel });
|
|
5913
5950
|
}
|
|
5914
|
-
return /* @__PURE__ */ (0,
|
|
5951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(List2, { children: items.map((item, index) => {
|
|
5915
5952
|
var _a;
|
|
5916
5953
|
const isLast = index === items.length - 1;
|
|
5917
5954
|
const dotColor = (_a = item.color) != null ? _a : colors.blue_700;
|
|
5918
|
-
return /* @__PURE__ */ (0,
|
|
5919
|
-
/* @__PURE__ */ (0,
|
|
5920
|
-
/* @__PURE__ */ (0,
|
|
5921
|
-
!isLast && /* @__PURE__ */ (0,
|
|
5955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Item2, { children: [
|
|
5956
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Rail, { children: [
|
|
5957
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Dot2, { $color: dotColor }),
|
|
5958
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Line, { $color: lineColor })
|
|
5922
5959
|
] }),
|
|
5923
|
-
/* @__PURE__ */ (0,
|
|
5924
|
-
/* @__PURE__ */ (0,
|
|
5925
|
-
item.subtitle && /* @__PURE__ */ (0,
|
|
5926
|
-
item.description && /* @__PURE__ */ (0,
|
|
5960
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Content2, { $last: isLast, children: [
|
|
5961
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Text, { size: "s", weight: item.highlighted ? "700" : "600", children: item.title }),
|
|
5962
|
+
item.subtitle && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Text, { size: "xs", color: colors.grey_600, children: item.subtitle }),
|
|
5963
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Text, { size: "xs", fontStyle: "italic", children: item.description })
|
|
5927
5964
|
] })
|
|
5928
5965
|
] }, item.id);
|
|
5929
5966
|
}) });
|
|
@@ -6556,6 +6593,7 @@ var parseAmount = (value) => {
|
|
|
6556
6593
|
Bubble,
|
|
6557
6594
|
Bulk,
|
|
6558
6595
|
Button,
|
|
6596
|
+
Card,
|
|
6559
6597
|
CardSkeleton,
|
|
6560
6598
|
Checkbox,
|
|
6561
6599
|
Col,
|
package/dist/index.mjs
CHANGED
|
@@ -1973,13 +1973,13 @@ var BadgeSlot = styled18.div`
|
|
|
1973
1973
|
display: flex;
|
|
1974
1974
|
align-items: center;
|
|
1975
1975
|
justify-content: center;
|
|
1976
|
-
background-color: ${colors
|
|
1976
|
+
background-color: ${(props) => colors[props.$bg] || props.$bg};
|
|
1977
1977
|
border-radius: 50%;
|
|
1978
1978
|
box-shadow: 0 2px 6px ${colors.blue_950}66;
|
|
1979
1979
|
line-height: 0;
|
|
1980
1980
|
`;
|
|
1981
1981
|
var BadgeIcon = styled18.i`
|
|
1982
|
-
color: ${colors
|
|
1982
|
+
color: ${(props) => colors[props.$color] || props.$color};
|
|
1983
1983
|
font-size: ${(props) => Math.round(props.$size * 0.2)}px;
|
|
1984
1984
|
line-height: 2;
|
|
1985
1985
|
`;
|
|
@@ -2004,7 +2004,7 @@ var Avatar = ({
|
|
|
2004
2004
|
shape = "circle",
|
|
2005
2005
|
badge
|
|
2006
2006
|
}) => {
|
|
2007
|
-
var _a;
|
|
2007
|
+
var _a, _b, _c;
|
|
2008
2008
|
const [hasImageError, setHasImageError] = useState5(false);
|
|
2009
2009
|
const resolvedBackground = resolveColor(backgroundColor, colors.grey_300);
|
|
2010
2010
|
const resolvedText = resolveColor(textColor, colors.dark);
|
|
@@ -2031,11 +2031,12 @@ var Avatar = ({
|
|
|
2031
2031
|
) : /* @__PURE__ */ jsx22(Initials, { $textColor: resolvedText, $size: size, children: initials })
|
|
2032
2032
|
}
|
|
2033
2033
|
),
|
|
2034
|
-
badge && /* @__PURE__ */ jsx22(BadgeSlot, { $size: size, children: /* @__PURE__ */ jsx22(
|
|
2034
|
+
badge && /* @__PURE__ */ jsx22(BadgeSlot, { $size: size, $bg: (_a = badge.backgroundColor) != null ? _a : colors.white, children: /* @__PURE__ */ jsx22(
|
|
2035
2035
|
BadgeIcon,
|
|
2036
2036
|
{
|
|
2037
2037
|
$size: size,
|
|
2038
|
-
|
|
2038
|
+
$color: (_b = badge.iconColor) != null ? _b : colors.blue_950,
|
|
2039
|
+
className: `fa-${(_c = badge.family) != null ? _c : "regular"} fa-${badge.name}`
|
|
2039
2040
|
}
|
|
2040
2041
|
) })
|
|
2041
2042
|
] });
|
|
@@ -5027,16 +5028,51 @@ var MetricCard = ({
|
|
|
5027
5028
|
);
|
|
5028
5029
|
};
|
|
5029
5030
|
|
|
5031
|
+
// src/Components/Card/Card.tsx
|
|
5032
|
+
import styled44 from "styled-components";
|
|
5033
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
5034
|
+
var StyledCard = styled44.div`
|
|
5035
|
+
overflow: hidden;
|
|
5036
|
+
transition: box-shadow 0.15s ease;
|
|
5037
|
+
background-color: ${(p) => p.$backgroundColor};
|
|
5038
|
+
border-radius: ${(p) => p.$borderRadius};
|
|
5039
|
+
${(p) => p.$accentColor ? `border-left: 2px solid ${p.$accentColor};` : ""}
|
|
5040
|
+
${(p) => p.$clickable ? "cursor: pointer;" : ""}
|
|
5041
|
+
${(p) => p.$clickable ? "&:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }" : ""}
|
|
5042
|
+
`;
|
|
5043
|
+
var StyledCardInner = styled44.div`
|
|
5044
|
+
width: 100%;
|
|
5045
|
+
padding: ${(p) => p.$padding};
|
|
5046
|
+
`;
|
|
5047
|
+
var Card2 = ({
|
|
5048
|
+
children,
|
|
5049
|
+
onClick,
|
|
5050
|
+
accentColor,
|
|
5051
|
+
backgroundColor = "#F8FAFC",
|
|
5052
|
+
padding = "10px 12px",
|
|
5053
|
+
borderRadius = "8px"
|
|
5054
|
+
}) => /* @__PURE__ */ jsx53(
|
|
5055
|
+
StyledCard,
|
|
5056
|
+
{
|
|
5057
|
+
$clickable: !!onClick,
|
|
5058
|
+
$backgroundColor: backgroundColor,
|
|
5059
|
+
$borderRadius: borderRadius,
|
|
5060
|
+
$accentColor: accentColor,
|
|
5061
|
+
onClick,
|
|
5062
|
+
children: /* @__PURE__ */ jsx53(StyledCardInner, { $padding: padding, children })
|
|
5063
|
+
}
|
|
5064
|
+
);
|
|
5065
|
+
|
|
5030
5066
|
// src/Components/Tooltip/Tooltip.tsx
|
|
5031
5067
|
import { useState as useState17 } from "react";
|
|
5032
|
-
import
|
|
5033
|
-
import { jsx as
|
|
5034
|
-
var StyledTooltipWrapper =
|
|
5068
|
+
import styled45 from "styled-components";
|
|
5069
|
+
import { jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5070
|
+
var StyledTooltipWrapper = styled45.div`
|
|
5035
5071
|
position: relative;
|
|
5036
5072
|
display: inline-block;
|
|
5037
5073
|
cursor: pointer;
|
|
5038
5074
|
`;
|
|
5039
|
-
var StyledTooltipContent =
|
|
5075
|
+
var StyledTooltipContent = styled45.div`
|
|
5040
5076
|
visibility: ${(props) => props.$isVisible ? "visible" : "hidden"};
|
|
5041
5077
|
background-color: ${(props) => props.$backgroundColor || colors.black};
|
|
5042
5078
|
color: ${colors.white};
|
|
@@ -5142,7 +5178,7 @@ var Tooltip = ({
|
|
|
5142
5178
|
onMouseLeave: handleMouseLeave,
|
|
5143
5179
|
children: [
|
|
5144
5180
|
children,
|
|
5145
|
-
/* @__PURE__ */
|
|
5181
|
+
/* @__PURE__ */ jsx54(
|
|
5146
5182
|
StyledTooltipContent,
|
|
5147
5183
|
{
|
|
5148
5184
|
$isVisible: isVisible,
|
|
@@ -5150,7 +5186,7 @@ var Tooltip = ({
|
|
|
5150
5186
|
$width: width,
|
|
5151
5187
|
$height: height,
|
|
5152
5188
|
$direction: direction,
|
|
5153
|
-
children: data.length > 0 ? data.map((item, index) => /* @__PURE__ */
|
|
5189
|
+
children: data.length > 0 ? data.map((item, index) => /* @__PURE__ */ jsx54(Text, { size: "s", color: "white", children: item }, index)) : /* @__PURE__ */ jsx54(Text, { size: "s", color: "white", children: "Aucune donn\xE9e" })
|
|
5154
5190
|
}
|
|
5155
5191
|
)
|
|
5156
5192
|
]
|
|
@@ -5160,7 +5196,7 @@ var Tooltip = ({
|
|
|
5160
5196
|
|
|
5161
5197
|
// src/Components/Pagination/Pagination.tsx
|
|
5162
5198
|
import { useMemo as useMemo2 } from "react";
|
|
5163
|
-
import { jsx as
|
|
5199
|
+
import { jsx as jsx55, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5164
5200
|
var getPageNumbers = (current, total) => {
|
|
5165
5201
|
if (total <= 5) {
|
|
5166
5202
|
return Array.from({ length: total }, (_, i) => i + 1);
|
|
@@ -5196,9 +5232,9 @@ var Pagination = ({
|
|
|
5196
5232
|
justifyContent: showSummary ? "space-between" : "flex-end",
|
|
5197
5233
|
alignItems: "center",
|
|
5198
5234
|
children: [
|
|
5199
|
-
showSummary && /* @__PURE__ */
|
|
5235
|
+
showSummary && /* @__PURE__ */ jsx55(Text, { size: "s", color: colors.grey_500, children: summary }),
|
|
5200
5236
|
/* @__PURE__ */ jsxs29(Row, { gap: "4", alignItems: "center", style: { width: "fit-content" }, children: [
|
|
5201
|
-
/* @__PURE__ */
|
|
5237
|
+
/* @__PURE__ */ jsx55(
|
|
5202
5238
|
Button,
|
|
5203
5239
|
{
|
|
5204
5240
|
size: "xs",
|
|
@@ -5209,7 +5245,7 @@ var Pagination = ({
|
|
|
5209
5245
|
}
|
|
5210
5246
|
),
|
|
5211
5247
|
pages.map(
|
|
5212
|
-
(page, index) => page === "..." ? /* @__PURE__ */
|
|
5248
|
+
(page, index) => page === "..." ? /* @__PURE__ */ jsx55(Text, { size: "s", color: colors.grey_500, children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ jsx55(
|
|
5213
5249
|
Button,
|
|
5214
5250
|
{
|
|
5215
5251
|
size: "xs",
|
|
@@ -5220,7 +5256,7 @@ var Pagination = ({
|
|
|
5220
5256
|
page
|
|
5221
5257
|
)
|
|
5222
5258
|
),
|
|
5223
|
-
/* @__PURE__ */
|
|
5259
|
+
/* @__PURE__ */ jsx55(
|
|
5224
5260
|
Button,
|
|
5225
5261
|
{
|
|
5226
5262
|
size: "xs",
|
|
@@ -5238,8 +5274,8 @@ var Pagination = ({
|
|
|
5238
5274
|
|
|
5239
5275
|
// src/Components/FileUploadZone/FileUploadZone.tsx
|
|
5240
5276
|
import { useState as useState18, useRef as useRef13, useCallback as useCallback6 } from "react";
|
|
5241
|
-
import
|
|
5242
|
-
import { jsx as
|
|
5277
|
+
import styled46 from "styled-components";
|
|
5278
|
+
import { jsx as jsx56, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5243
5279
|
var ACCEPT_MAP = {
|
|
5244
5280
|
png: "image/png",
|
|
5245
5281
|
jpg: "image/jpeg",
|
|
@@ -5255,7 +5291,7 @@ var getMimeTypes = (accept) => {
|
|
|
5255
5291
|
return accept.map((ext) => ACCEPT_MAP[ext.toLowerCase()] || ext);
|
|
5256
5292
|
};
|
|
5257
5293
|
var isPdf = (type) => type === "application/pdf";
|
|
5258
|
-
var StyledDropZone =
|
|
5294
|
+
var StyledDropZone = styled46.label`
|
|
5259
5295
|
display: flex;
|
|
5260
5296
|
flex-direction: column;
|
|
5261
5297
|
align-items: center;
|
|
@@ -5279,7 +5315,7 @@ var StyledDropZone = styled45.label`
|
|
|
5279
5315
|
border-color: ${(p) => p.$disabled ? colors.blue_50 : colors.blue_100};
|
|
5280
5316
|
}
|
|
5281
5317
|
`;
|
|
5282
|
-
var StyledPreview =
|
|
5318
|
+
var StyledPreview = styled46.div`
|
|
5283
5319
|
display: flex;
|
|
5284
5320
|
flex-direction: column;
|
|
5285
5321
|
align-items: center;
|
|
@@ -5290,18 +5326,18 @@ var StyledPreview = styled45.div`
|
|
|
5290
5326
|
width: ${(p) => p.$fullWidth ? "100%" : "auto"};
|
|
5291
5327
|
box-sizing: border-box;
|
|
5292
5328
|
`;
|
|
5293
|
-
var StyledImage2 =
|
|
5329
|
+
var StyledImage2 = styled46.img`
|
|
5294
5330
|
max-width: 100%;
|
|
5295
5331
|
max-height: 400px;
|
|
5296
5332
|
border-radius: 4px;
|
|
5297
5333
|
object-fit: contain;
|
|
5298
5334
|
`;
|
|
5299
|
-
var StyledEmbed =
|
|
5335
|
+
var StyledEmbed = styled46.embed`
|
|
5300
5336
|
width: 100%;
|
|
5301
5337
|
height: 500px;
|
|
5302
5338
|
border-radius: 4px;
|
|
5303
5339
|
`;
|
|
5304
|
-
var HiddenInput2 =
|
|
5340
|
+
var HiddenInput2 = styled46.input`
|
|
5305
5341
|
display: none;
|
|
5306
5342
|
`;
|
|
5307
5343
|
var FileUploadZone = ({
|
|
@@ -5438,8 +5474,8 @@ var FileUploadZone = ({
|
|
|
5438
5474
|
};
|
|
5439
5475
|
if (previewUrl) {
|
|
5440
5476
|
return /* @__PURE__ */ jsxs30(StyledPreview, { $fullWidth: fullWidth, children: [
|
|
5441
|
-
fileType && isPdf(fileType) ? /* @__PURE__ */
|
|
5442
|
-
/* @__PURE__ */
|
|
5477
|
+
fileType && isPdf(fileType) ? /* @__PURE__ */ jsx56(StyledEmbed, { src: previewUrl, type: "application/pdf" }) : /* @__PURE__ */ jsx56(StyledImage2, { src: previewUrl, alt: "Aper\xE7u du fichier" }),
|
|
5478
|
+
/* @__PURE__ */ jsx56(Row, { gap: "8", justifyContent: "center", children: /* @__PURE__ */ jsx56(
|
|
5443
5479
|
Button,
|
|
5444
5480
|
{
|
|
5445
5481
|
onClick: handleRemove,
|
|
@@ -5465,7 +5501,7 @@ var FileUploadZone = ({
|
|
|
5465
5501
|
onDragLeave: handleDragLeave,
|
|
5466
5502
|
onDrop: handleDrop,
|
|
5467
5503
|
children: [
|
|
5468
|
-
/* @__PURE__ */
|
|
5504
|
+
/* @__PURE__ */ jsx56(
|
|
5469
5505
|
HiddenInput2,
|
|
5470
5506
|
{
|
|
5471
5507
|
ref: inputRef,
|
|
@@ -5476,7 +5512,7 @@ var FileUploadZone = ({
|
|
|
5476
5512
|
multiple
|
|
5477
5513
|
}
|
|
5478
5514
|
),
|
|
5479
|
-
showIcon && /* @__PURE__ */
|
|
5515
|
+
showIcon && /* @__PURE__ */ jsx56(
|
|
5480
5516
|
Icon,
|
|
5481
5517
|
{
|
|
5482
5518
|
name: icon,
|
|
@@ -5485,9 +5521,9 @@ var FileUploadZone = ({
|
|
|
5485
5521
|
color: "blue_700"
|
|
5486
5522
|
}
|
|
5487
5523
|
),
|
|
5488
|
-
/* @__PURE__ */
|
|
5489
|
-
showBrowse && /* @__PURE__ */
|
|
5490
|
-
showBrowse && /* @__PURE__ */
|
|
5524
|
+
/* @__PURE__ */ jsx56(Text, { size: "s", variant: "grey_600", align: "center", children: label }),
|
|
5525
|
+
showBrowse && /* @__PURE__ */ jsx56(Text, { size: "xs", variant: "grey_600", align: "center", children: "ou" }),
|
|
5526
|
+
showBrowse && /* @__PURE__ */ jsx56(
|
|
5491
5527
|
Button,
|
|
5492
5528
|
{
|
|
5493
5529
|
outline: true,
|
|
@@ -5500,21 +5536,21 @@ var FileUploadZone = ({
|
|
|
5500
5536
|
}
|
|
5501
5537
|
}
|
|
5502
5538
|
),
|
|
5503
|
-
sublabel && /* @__PURE__ */
|
|
5539
|
+
sublabel && /* @__PURE__ */ jsx56(Text, { size: "xs", variant: "grey_500", align: "center", children: sublabel })
|
|
5504
5540
|
]
|
|
5505
5541
|
}
|
|
5506
5542
|
),
|
|
5507
5543
|
showFileName && fileName && /* @__PURE__ */ jsxs30(Row, { gap: "8", alignItems: "center", justifyContent: "center", children: [
|
|
5508
|
-
/* @__PURE__ */
|
|
5509
|
-
/* @__PURE__ */
|
|
5544
|
+
/* @__PURE__ */ jsx56(Icon, { name: "file", size: "s", color: "green_700" }),
|
|
5545
|
+
/* @__PURE__ */ jsx56(Text, { size: "s", color: "green_700", children: fileName })
|
|
5510
5546
|
] }),
|
|
5511
|
-
inlineError && /* @__PURE__ */
|
|
5547
|
+
inlineError && /* @__PURE__ */ jsx56(Text, { size: "s", color: "danger", align: "center", children: inlineError })
|
|
5512
5548
|
] });
|
|
5513
5549
|
};
|
|
5514
5550
|
|
|
5515
5551
|
// src/Components/Spinner/Spinner.tsx
|
|
5516
|
-
import
|
|
5517
|
-
import { jsx as
|
|
5552
|
+
import styled47, { keyframes as keyframes2 } from "styled-components";
|
|
5553
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
5518
5554
|
var SIZES3 = {
|
|
5519
5555
|
s: 20,
|
|
5520
5556
|
m: 32,
|
|
@@ -5524,7 +5560,7 @@ var spin = keyframes2`
|
|
|
5524
5560
|
0% { transform: rotate(0deg); }
|
|
5525
5561
|
100% { transform: rotate(360deg); }
|
|
5526
5562
|
`;
|
|
5527
|
-
var StyledSpinner =
|
|
5563
|
+
var StyledSpinner = styled47.span`
|
|
5528
5564
|
display: inline-block;
|
|
5529
5565
|
width: ${(p) => p.$size}px;
|
|
5530
5566
|
height: ${(p) => p.$size}px;
|
|
@@ -5537,7 +5573,7 @@ var StyledSpinner = styled46.span`
|
|
|
5537
5573
|
var Spinner = ({ size = "m", color = "primary" }) => {
|
|
5538
5574
|
const resolvedSize = SIZES3[size];
|
|
5539
5575
|
const resolvedColor = colors[color] || color || colors.primary;
|
|
5540
|
-
return /* @__PURE__ */
|
|
5576
|
+
return /* @__PURE__ */ jsx57(
|
|
5541
5577
|
StyledSpinner,
|
|
5542
5578
|
{
|
|
5543
5579
|
$size: resolvedSize,
|
|
@@ -5549,7 +5585,7 @@ var Spinner = ({ size = "m", color = "primary" }) => {
|
|
|
5549
5585
|
};
|
|
5550
5586
|
|
|
5551
5587
|
// src/Components/EmptyState/EmptyState.tsx
|
|
5552
|
-
import { jsx as
|
|
5588
|
+
import { jsx as jsx58, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5553
5589
|
var EmptyState = ({
|
|
5554
5590
|
icon = "inbox",
|
|
5555
5591
|
title = "Aucun r\xE9sultat",
|
|
@@ -5566,20 +5602,20 @@ var EmptyState = ({
|
|
|
5566
5602
|
gap: "24",
|
|
5567
5603
|
padding: "24px 16px",
|
|
5568
5604
|
children: [
|
|
5569
|
-
/* @__PURE__ */
|
|
5605
|
+
/* @__PURE__ */ jsx58(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
|
|
5570
5606
|
/* @__PURE__ */ jsxs31(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
|
|
5571
|
-
/* @__PURE__ */
|
|
5572
|
-
description && /* @__PURE__ */
|
|
5607
|
+
/* @__PURE__ */ jsx58(Text, { size: "m", weight: "600", variant: "grey_600", align: "center", children: title }),
|
|
5608
|
+
description && /* @__PURE__ */ jsx58(Text, { size: "s", variant: "grey_500", align: "center", children: description })
|
|
5573
5609
|
] }),
|
|
5574
|
-
actionLabel && onAction && /* @__PURE__ */
|
|
5610
|
+
actionLabel && onAction && /* @__PURE__ */ jsx58(Button, { label: actionLabel, onClick: onAction })
|
|
5575
5611
|
]
|
|
5576
5612
|
}
|
|
5577
5613
|
);
|
|
5578
5614
|
};
|
|
5579
5615
|
|
|
5580
5616
|
// src/Components/FloatingButton/FloatingButton.tsx
|
|
5581
|
-
import
|
|
5582
|
-
import { jsx as
|
|
5617
|
+
import styled48 from "styled-components";
|
|
5618
|
+
import { jsx as jsx59, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
5583
5619
|
var FloatingButton = ({
|
|
5584
5620
|
isOpen,
|
|
5585
5621
|
onToggle,
|
|
@@ -5603,8 +5639,8 @@ var FloatingButton = ({
|
|
|
5603
5639
|
$transform: arcTransform(index, actions.length),
|
|
5604
5640
|
onClick: action.onClick,
|
|
5605
5641
|
children: [
|
|
5606
|
-
/* @__PURE__ */
|
|
5607
|
-
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */
|
|
5642
|
+
/* @__PURE__ */ jsx59(Icon, { name: action.icon, family: "regular", size: "s", color: accent }),
|
|
5643
|
+
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ jsx59(CountBadge, { children: action.badge })
|
|
5608
5644
|
]
|
|
5609
5645
|
},
|
|
5610
5646
|
action.id
|
|
@@ -5619,7 +5655,7 @@ var FloatingButton = ({
|
|
|
5619
5655
|
$accent: accent,
|
|
5620
5656
|
onClick: onToggle,
|
|
5621
5657
|
children: [
|
|
5622
|
-
/* @__PURE__ */
|
|
5658
|
+
/* @__PURE__ */ jsx59(
|
|
5623
5659
|
Icon,
|
|
5624
5660
|
{
|
|
5625
5661
|
name: isOpen ? openIcon : icon,
|
|
@@ -5628,7 +5664,7 @@ var FloatingButton = ({
|
|
|
5628
5664
|
color: colors.white
|
|
5629
5665
|
}
|
|
5630
5666
|
),
|
|
5631
|
-
!isOpen && mainBadge > 0 && /* @__PURE__ */
|
|
5667
|
+
!isOpen && mainBadge > 0 && /* @__PURE__ */ jsx59(CountBadge, { children: mainBadge })
|
|
5632
5668
|
]
|
|
5633
5669
|
}
|
|
5634
5670
|
)
|
|
@@ -5647,7 +5683,7 @@ var arcTransform = (index, total) => {
|
|
|
5647
5683
|
const y = Math.round(-Math.sin(angle) * ARC_RADIUS);
|
|
5648
5684
|
return `translate(${x}px, ${y}px)`;
|
|
5649
5685
|
};
|
|
5650
|
-
var Container6 =
|
|
5686
|
+
var Container6 = styled48.div`
|
|
5651
5687
|
position: fixed;
|
|
5652
5688
|
right: 32px;
|
|
5653
5689
|
bottom: 32px;
|
|
@@ -5655,7 +5691,7 @@ var Container6 = styled47.div`
|
|
|
5655
5691
|
height: ${FAB_SIZE}px;
|
|
5656
5692
|
z-index: 1000;
|
|
5657
5693
|
`;
|
|
5658
|
-
var MainButton =
|
|
5694
|
+
var MainButton = styled48.button`
|
|
5659
5695
|
position: absolute;
|
|
5660
5696
|
inset: 0;
|
|
5661
5697
|
display: flex;
|
|
@@ -5669,7 +5705,7 @@ var MainButton = styled47.button`
|
|
|
5669
5705
|
0 8px 5px rgba(0, 0, 0, 0.1),
|
|
5670
5706
|
0 20px 12.5px rgba(0, 0, 0, 0.1);
|
|
5671
5707
|
`;
|
|
5672
|
-
var SubButton =
|
|
5708
|
+
var SubButton = styled48.button`
|
|
5673
5709
|
position: absolute;
|
|
5674
5710
|
left: ${(FAB_SIZE - SUB_SIZE) / 2}px;
|
|
5675
5711
|
top: ${(FAB_SIZE - SUB_SIZE) / 2}px;
|
|
@@ -5692,7 +5728,7 @@ var SubButton = styled47.button`
|
|
|
5692
5728
|
opacity: ${({ $isOpen }) => $isOpen ? 1 : 0};
|
|
5693
5729
|
pointer-events: ${({ $isOpen }) => $isOpen ? "auto" : "none"};
|
|
5694
5730
|
`;
|
|
5695
|
-
var CountBadge =
|
|
5731
|
+
var CountBadge = styled48.span`
|
|
5696
5732
|
position: absolute;
|
|
5697
5733
|
top: -4px;
|
|
5698
5734
|
right: -4px;
|
|
@@ -5710,16 +5746,16 @@ var CountBadge = styled47.span`
|
|
|
5710
5746
|
`;
|
|
5711
5747
|
|
|
5712
5748
|
// src/Components/ProgressBar/ProgressBar.tsx
|
|
5713
|
-
import
|
|
5714
|
-
import { jsx as
|
|
5749
|
+
import styled49 from "styled-components";
|
|
5750
|
+
import { jsx as jsx60, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
5715
5751
|
var clampPercent = (value) => Math.max(0, Math.min(100, value));
|
|
5716
|
-
var Wrapper6 =
|
|
5752
|
+
var Wrapper6 = styled49.div`
|
|
5717
5753
|
display: flex;
|
|
5718
5754
|
align-items: center;
|
|
5719
5755
|
gap: 8px;
|
|
5720
5756
|
width: 100%;
|
|
5721
5757
|
`;
|
|
5722
|
-
var Track2 =
|
|
5758
|
+
var Track2 = styled49.div`
|
|
5723
5759
|
position: relative;
|
|
5724
5760
|
flex: 1;
|
|
5725
5761
|
height: ${({ $height }) => $height}px;
|
|
@@ -5727,7 +5763,7 @@ var Track2 = styled48.div`
|
|
|
5727
5763
|
border-radius: ${({ $height }) => $height}px;
|
|
5728
5764
|
overflow: hidden;
|
|
5729
5765
|
`;
|
|
5730
|
-
var Fill =
|
|
5766
|
+
var Fill = styled49.div`
|
|
5731
5767
|
height: 100%;
|
|
5732
5768
|
width: ${({ $percent }) => $percent}%;
|
|
5733
5769
|
background: ${({ $color }) => $color};
|
|
@@ -5743,7 +5779,7 @@ var ProgressBar2 = ({
|
|
|
5743
5779
|
}) => {
|
|
5744
5780
|
const percent = clampPercent(value);
|
|
5745
5781
|
return /* @__PURE__ */ jsxs33(Wrapper6, { children: [
|
|
5746
|
-
/* @__PURE__ */
|
|
5782
|
+
/* @__PURE__ */ jsx60(Track2, { $height: height, $trackColor: trackColor, children: /* @__PURE__ */ jsx60(Fill, { $height: height, $color: color, $percent: percent }) }),
|
|
5747
5783
|
showLabel && /* @__PURE__ */ jsxs33(Text, { size: "s", weight: "600", children: [
|
|
5748
5784
|
Math.round(percent),
|
|
5749
5785
|
" %"
|
|
@@ -5752,24 +5788,24 @@ var ProgressBar2 = ({
|
|
|
5752
5788
|
};
|
|
5753
5789
|
|
|
5754
5790
|
// src/Components/Timeline/Timeline.tsx
|
|
5755
|
-
import
|
|
5756
|
-
import { jsx as
|
|
5757
|
-
var List2 =
|
|
5791
|
+
import styled50 from "styled-components";
|
|
5792
|
+
import { jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
5793
|
+
var List2 = styled50.div`
|
|
5758
5794
|
display: flex;
|
|
5759
5795
|
flex-direction: column;
|
|
5760
5796
|
`;
|
|
5761
|
-
var Item2 =
|
|
5797
|
+
var Item2 = styled50.div`
|
|
5762
5798
|
display: flex;
|
|
5763
5799
|
gap: 12px;
|
|
5764
5800
|
align-items: stretch;
|
|
5765
5801
|
`;
|
|
5766
|
-
var Rail =
|
|
5802
|
+
var Rail = styled50.div`
|
|
5767
5803
|
display: flex;
|
|
5768
5804
|
flex-direction: column;
|
|
5769
5805
|
align-items: center;
|
|
5770
5806
|
width: 16px;
|
|
5771
5807
|
`;
|
|
5772
|
-
var Dot2 =
|
|
5808
|
+
var Dot2 = styled50.div`
|
|
5773
5809
|
width: 10px;
|
|
5774
5810
|
height: 10px;
|
|
5775
5811
|
border-radius: 50%;
|
|
@@ -5777,13 +5813,13 @@ var Dot2 = styled49.div`
|
|
|
5777
5813
|
flex: 0 0 auto;
|
|
5778
5814
|
background: ${({ $color }) => $color};
|
|
5779
5815
|
`;
|
|
5780
|
-
var Line =
|
|
5816
|
+
var Line = styled50.div`
|
|
5781
5817
|
width: 2px;
|
|
5782
5818
|
flex: 1;
|
|
5783
5819
|
min-height: 16px;
|
|
5784
5820
|
background: ${({ $color }) => $color};
|
|
5785
5821
|
`;
|
|
5786
|
-
var Content2 =
|
|
5822
|
+
var Content2 = styled50.div`
|
|
5787
5823
|
display: flex;
|
|
5788
5824
|
flex-direction: column;
|
|
5789
5825
|
gap: 2px;
|
|
@@ -5795,21 +5831,21 @@ var Timeline = ({
|
|
|
5795
5831
|
emptyLabel = "Aucun \xE9v\xE9nement"
|
|
5796
5832
|
}) => {
|
|
5797
5833
|
if (items.length === 0) {
|
|
5798
|
-
return /* @__PURE__ */
|
|
5834
|
+
return /* @__PURE__ */ jsx61(Text, { size: "s", color: colors.grey_600, children: emptyLabel });
|
|
5799
5835
|
}
|
|
5800
|
-
return /* @__PURE__ */
|
|
5836
|
+
return /* @__PURE__ */ jsx61(List2, { children: items.map((item, index) => {
|
|
5801
5837
|
var _a;
|
|
5802
5838
|
const isLast = index === items.length - 1;
|
|
5803
5839
|
const dotColor = (_a = item.color) != null ? _a : colors.blue_700;
|
|
5804
5840
|
return /* @__PURE__ */ jsxs34(Item2, { children: [
|
|
5805
5841
|
/* @__PURE__ */ jsxs34(Rail, { children: [
|
|
5806
|
-
/* @__PURE__ */
|
|
5807
|
-
!isLast && /* @__PURE__ */
|
|
5842
|
+
/* @__PURE__ */ jsx61(Dot2, { $color: dotColor }),
|
|
5843
|
+
!isLast && /* @__PURE__ */ jsx61(Line, { $color: lineColor })
|
|
5808
5844
|
] }),
|
|
5809
5845
|
/* @__PURE__ */ jsxs34(Content2, { $last: isLast, children: [
|
|
5810
|
-
/* @__PURE__ */
|
|
5811
|
-
item.subtitle && /* @__PURE__ */
|
|
5812
|
-
item.description && /* @__PURE__ */
|
|
5846
|
+
/* @__PURE__ */ jsx61(Text, { size: "s", weight: item.highlighted ? "700" : "600", children: item.title }),
|
|
5847
|
+
item.subtitle && /* @__PURE__ */ jsx61(Text, { size: "xs", color: colors.grey_600, children: item.subtitle }),
|
|
5848
|
+
item.description && /* @__PURE__ */ jsx61(Text, { size: "xs", fontStyle: "italic", children: item.description })
|
|
5813
5849
|
] })
|
|
5814
5850
|
] }, item.id);
|
|
5815
5851
|
}) });
|
|
@@ -6441,6 +6477,7 @@ export {
|
|
|
6441
6477
|
Bubble,
|
|
6442
6478
|
Bulk,
|
|
6443
6479
|
Button,
|
|
6480
|
+
Card2 as Card,
|
|
6444
6481
|
CardSkeleton,
|
|
6445
6482
|
Checkbox,
|
|
6446
6483
|
Col,
|