design-zystem 1.0.263 → 1.0.264

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 CHANGED
@@ -906,6 +906,21 @@ interface CardProps {
906
906
  }
907
907
  declare const Card: ({ children, onClick, accentColor, backgroundColor, padding, borderRadius, }: CardProps) => react_jsx_runtime.JSX.Element;
908
908
 
909
+ interface BannerAction {
910
+ label: string;
911
+ icon?: string;
912
+ onClick?: () => void;
913
+ }
914
+ interface BannerProps {
915
+ variant?: 'blue' | 'red';
916
+ badge?: string;
917
+ title?: string;
918
+ subtitle?: string;
919
+ message?: string;
920
+ action?: BannerAction;
921
+ }
922
+ declare const Banner: ({ variant, badge, title, subtitle, message, action, }: BannerProps) => react_jsx_runtime.JSX.Element;
923
+
909
924
  interface TooltipProps {
910
925
  children?: ReactNode;
911
926
  backgroundColor?: string;
@@ -1175,4 +1190,4 @@ declare const formatKM: (value: string | number | null | undefined) => string;
1175
1190
 
1176
1191
  declare const parseAmount: (value: string) => number | null;
1177
1192
 
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 };
1193
+ export { Accordion, type AccordionItem, Avatar, Banner, type BannerAction, type BannerProps, 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
@@ -906,6 +906,21 @@ interface CardProps {
906
906
  }
907
907
  declare const Card: ({ children, onClick, accentColor, backgroundColor, padding, borderRadius, }: CardProps) => react_jsx_runtime.JSX.Element;
908
908
 
909
+ interface BannerAction {
910
+ label: string;
911
+ icon?: string;
912
+ onClick?: () => void;
913
+ }
914
+ interface BannerProps {
915
+ variant?: 'blue' | 'red';
916
+ badge?: string;
917
+ title?: string;
918
+ subtitle?: string;
919
+ message?: string;
920
+ action?: BannerAction;
921
+ }
922
+ declare const Banner: ({ variant, badge, title, subtitle, message, action, }: BannerProps) => react_jsx_runtime.JSX.Element;
923
+
909
924
  interface TooltipProps {
910
925
  children?: ReactNode;
911
926
  backgroundColor?: string;
@@ -1175,4 +1190,4 @@ declare const formatKM: (value: string | number | null | undefined) => string;
1175
1190
 
1176
1191
  declare const parseAmount: (value: string) => number | null;
1177
1192
 
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 };
1193
+ export { Accordion, type AccordionItem, Avatar, Banner, type BannerAction, type BannerProps, 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
@@ -61,6 +61,7 @@ var index_exports = {};
61
61
  __export(index_exports, {
62
62
  Accordion: () => Accordion,
63
63
  Avatar: () => Avatar,
64
+ Banner: () => Banner,
64
65
  Box: () => Box,
65
66
  Bubble: () => Bubble,
66
67
  Bulk: () => Bulk,
@@ -5178,16 +5179,106 @@ var Card2 = ({
5178
5179
  }
5179
5180
  );
5180
5181
 
5181
- // src/Components/Tooltip/Tooltip.tsx
5182
- var import_react27 = require("react");
5182
+ // src/Components/Banner/Banner.tsx
5183
5183
  var import_styled_components45 = __toESM(require("styled-components"));
5184
5184
  var import_jsx_runtime54 = require("react/jsx-runtime");
5185
- var StyledTooltipWrapper = import_styled_components45.default.div`
5185
+ var variantStyles = {
5186
+ blue: {
5187
+ background: "rgba(219, 233, 254, 0.4)",
5188
+ borderColor: "#BEDBFF",
5189
+ badgeBackground: colors.badge_blue_bg,
5190
+ badgeColor: colors.badge_blue_text,
5191
+ action: "blue_950"
5192
+ },
5193
+ red: {
5194
+ background: "rgba(252, 221, 222, 0.4)",
5195
+ borderColor: "#FFD2D2",
5196
+ badgeBackground: "#FCDDDE",
5197
+ badgeColor: colors.red_950,
5198
+ action: "red_950"
5199
+ }
5200
+ };
5201
+ var StyledBanner = import_styled_components45.default.div`
5202
+ box-sizing: border-box;
5203
+ width: 100%;
5204
+ display: flex;
5205
+ align-items: center;
5206
+ justify-content: space-between;
5207
+ gap: 16px;
5208
+ padding: 8px 16px;
5209
+ border-radius: 6px;
5210
+ border: 1px solid ${(p) => p.$borderColor};
5211
+ background: ${(p) => p.$background};
5212
+ `;
5213
+ var Content2 = import_styled_components45.default.div`
5214
+ display: flex;
5215
+ flex-direction: column;
5216
+ gap: 4px;
5217
+ align-items: flex-start;
5218
+ `;
5219
+ var Heading = import_styled_components45.default.div`
5220
+ display: flex;
5221
+ align-items: center;
5222
+ gap: 8px;
5223
+ `;
5224
+ var Banner = ({
5225
+ variant = "blue",
5226
+ badge,
5227
+ title,
5228
+ subtitle,
5229
+ message,
5230
+ action
5231
+ }) => {
5232
+ const style2 = variantStyles[variant];
5233
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
5234
+ StyledBanner,
5235
+ {
5236
+ $background: style2.background,
5237
+ $borderColor: style2.borderColor,
5238
+ children: [
5239
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content2, { children: message ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text, { size: "s", children: message }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
5240
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Heading, { children: [
5241
+ badge && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5242
+ Bubble,
5243
+ {
5244
+ backgroundColor: style2.badgeBackground,
5245
+ color: style2.badgeColor,
5246
+ borderRadius: "6px",
5247
+ padding: "2px 8px",
5248
+ style: { fontSize: "11px", lineHeight: "16.5px" },
5249
+ children: badge
5250
+ }
5251
+ ),
5252
+ title && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text, { size: "s", weight: "700", children: title })
5253
+ ] }),
5254
+ subtitle && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text, { size: "xs", children: subtitle })
5255
+ ] }) }),
5256
+ action && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5257
+ Button,
5258
+ {
5259
+ outline: true,
5260
+ size: "xs",
5261
+ variant: style2.action,
5262
+ iconLeft: action.icon,
5263
+ label: action.label,
5264
+ onClick: action.onClick
5265
+ }
5266
+ )
5267
+ ]
5268
+ }
5269
+ );
5270
+ };
5271
+
5272
+ // src/Components/Tooltip/Tooltip.tsx
5273
+ var import_react27 = require("react");
5274
+ var import_styled_components46 = __toESM(require("styled-components"));
5275
+ var import_jsx_runtime55 = require("react/jsx-runtime");
5276
+ var StyledTooltipWrapper = import_styled_components46.default.div`
5186
5277
  position: relative;
5187
5278
  display: inline-block;
5188
5279
  cursor: pointer;
5189
5280
  `;
5190
- var StyledTooltipContent = import_styled_components45.default.div`
5281
+ var StyledTooltipContent = import_styled_components46.default.div`
5191
5282
  visibility: ${(props) => props.$isVisible ? "visible" : "hidden"};
5192
5283
  background-color: ${(props) => props.$backgroundColor || colors.black};
5193
5284
  color: ${colors.white};
@@ -5286,14 +5377,14 @@ var Tooltip = ({
5286
5377
  const [isVisible, setIsVisible] = (0, import_react27.useState)(false);
5287
5378
  const handleMouseEnter = () => setIsVisible(true);
5288
5379
  const handleMouseLeave = () => setIsVisible(false);
5289
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
5380
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
5290
5381
  StyledTooltipWrapper,
5291
5382
  {
5292
5383
  onMouseEnter: handleMouseEnter,
5293
5384
  onMouseLeave: handleMouseLeave,
5294
5385
  children: [
5295
5386
  children,
5296
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5387
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
5297
5388
  StyledTooltipContent,
5298
5389
  {
5299
5390
  $isVisible: isVisible,
@@ -5301,7 +5392,7 @@ var Tooltip = ({
5301
5392
  $width: width,
5302
5393
  $height: height,
5303
5394
  $direction: direction,
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" })
5395
+ children: data.length > 0 ? data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { size: "s", color: "white", children: item }, index)) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { size: "s", color: "white", children: "Aucune donn\xE9e" })
5305
5396
  }
5306
5397
  )
5307
5398
  ]
@@ -5311,7 +5402,7 @@ var Tooltip = ({
5311
5402
 
5312
5403
  // src/Components/Pagination/Pagination.tsx
5313
5404
  var import_react28 = require("react");
5314
- var import_jsx_runtime55 = require("react/jsx-runtime");
5405
+ var import_jsx_runtime56 = require("react/jsx-runtime");
5315
5406
  var getPageNumbers = (current, total) => {
5316
5407
  if (total <= 5) {
5317
5408
  return Array.from({ length: total }, (_, i) => i + 1);
@@ -5341,15 +5432,15 @@ var Pagination = ({
5341
5432
  const startItem = (currentPage - 1) * itemsPerPage + 1;
5342
5433
  const endItem = Math.min(currentPage * itemsPerPage, totalItems);
5343
5434
  const summary = summaryLabel || defaultSummary(startItem, endItem, totalItems);
5344
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
5435
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
5345
5436
  Row,
5346
5437
  {
5347
5438
  justifyContent: showSummary ? "space-between" : "flex-end",
5348
5439
  alignItems: "center",
5349
5440
  children: [
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)(
5441
+ showSummary && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "s", color: colors.grey_500, children: summary }),
5442
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Row, { gap: "4", alignItems: "center", style: { width: "fit-content" }, children: [
5443
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
5353
5444
  Button,
5354
5445
  {
5355
5446
  size: "xs",
@@ -5360,7 +5451,7 @@ var Pagination = ({
5360
5451
  }
5361
5452
  ),
5362
5453
  pages.map(
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)(
5454
+ (page, index) => page === "..." ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "s", color: colors.grey_500, children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
5364
5455
  Button,
5365
5456
  {
5366
5457
  size: "xs",
@@ -5371,7 +5462,7 @@ var Pagination = ({
5371
5462
  page
5372
5463
  )
5373
5464
  ),
5374
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
5465
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
5375
5466
  Button,
5376
5467
  {
5377
5468
  size: "xs",
@@ -5389,8 +5480,8 @@ var Pagination = ({
5389
5480
 
5390
5481
  // src/Components/FileUploadZone/FileUploadZone.tsx
5391
5482
  var import_react29 = require("react");
5392
- var import_styled_components46 = __toESM(require("styled-components"));
5393
- var import_jsx_runtime56 = require("react/jsx-runtime");
5483
+ var import_styled_components47 = __toESM(require("styled-components"));
5484
+ var import_jsx_runtime57 = require("react/jsx-runtime");
5394
5485
  var ACCEPT_MAP = {
5395
5486
  png: "image/png",
5396
5487
  jpg: "image/jpeg",
@@ -5406,7 +5497,7 @@ var getMimeTypes = (accept) => {
5406
5497
  return accept.map((ext) => ACCEPT_MAP[ext.toLowerCase()] || ext);
5407
5498
  };
5408
5499
  var isPdf = (type) => type === "application/pdf";
5409
- var StyledDropZone = import_styled_components46.default.label`
5500
+ var StyledDropZone = import_styled_components47.default.label`
5410
5501
  display: flex;
5411
5502
  flex-direction: column;
5412
5503
  align-items: center;
@@ -5430,7 +5521,7 @@ var StyledDropZone = import_styled_components46.default.label`
5430
5521
  border-color: ${(p) => p.$disabled ? colors.blue_50 : colors.blue_100};
5431
5522
  }
5432
5523
  `;
5433
- var StyledPreview = import_styled_components46.default.div`
5524
+ var StyledPreview = import_styled_components47.default.div`
5434
5525
  display: flex;
5435
5526
  flex-direction: column;
5436
5527
  align-items: center;
@@ -5441,18 +5532,18 @@ var StyledPreview = import_styled_components46.default.div`
5441
5532
  width: ${(p) => p.$fullWidth ? "100%" : "auto"};
5442
5533
  box-sizing: border-box;
5443
5534
  `;
5444
- var StyledImage2 = import_styled_components46.default.img`
5535
+ var StyledImage2 = import_styled_components47.default.img`
5445
5536
  max-width: 100%;
5446
5537
  max-height: 400px;
5447
5538
  border-radius: 4px;
5448
5539
  object-fit: contain;
5449
5540
  `;
5450
- var StyledEmbed = import_styled_components46.default.embed`
5541
+ var StyledEmbed = import_styled_components47.default.embed`
5451
5542
  width: 100%;
5452
5543
  height: 500px;
5453
5544
  border-radius: 4px;
5454
5545
  `;
5455
- var HiddenInput2 = import_styled_components46.default.input`
5546
+ var HiddenInput2 = import_styled_components47.default.input`
5456
5547
  display: none;
5457
5548
  `;
5458
5549
  var FileUploadZone = ({
@@ -5588,9 +5679,9 @@ var FileUploadZone = ({
5588
5679
  onRemove == null ? void 0 : onRemove();
5589
5680
  };
5590
5681
  if (previewUrl) {
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)(
5682
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(StyledPreview, { $fullWidth: fullWidth, children: [
5683
+ fileType && isPdf(fileType) ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(StyledEmbed, { src: previewUrl, type: "application/pdf" }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(StyledImage2, { src: previewUrl, alt: "Aper\xE7u du fichier" }),
5684
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Row, { gap: "8", justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
5594
5685
  Button,
5595
5686
  {
5596
5687
  onClick: handleRemove,
@@ -5604,8 +5695,8 @@ var FileUploadZone = ({
5604
5695
  }
5605
5696
  const showIcon = icon !== false;
5606
5697
  const showBrowse = !compact && browseLabel !== false;
5607
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Col, { gap: "4", fullWidth, children: [
5608
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
5698
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Col, { gap: "4", fullWidth, children: [
5699
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
5609
5700
  StyledDropZone,
5610
5701
  {
5611
5702
  $isDragging: isDragging,
@@ -5616,7 +5707,7 @@ var FileUploadZone = ({
5616
5707
  onDragLeave: handleDragLeave,
5617
5708
  onDrop: handleDrop,
5618
5709
  children: [
5619
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
5710
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
5620
5711
  HiddenInput2,
5621
5712
  {
5622
5713
  ref: inputRef,
@@ -5627,7 +5718,7 @@ var FileUploadZone = ({
5627
5718
  multiple
5628
5719
  }
5629
5720
  ),
5630
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
5721
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
5631
5722
  Icon,
5632
5723
  {
5633
5724
  name: icon,
@@ -5636,9 +5727,9 @@ var FileUploadZone = ({
5636
5727
  color: "blue_700"
5637
5728
  }
5638
5729
  ),
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)(
5730
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Text, { size: "s", variant: "grey_600", align: "center", children: label }),
5731
+ showBrowse && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Text, { size: "xs", variant: "grey_600", align: "center", children: "ou" }),
5732
+ showBrowse && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
5642
5733
  Button,
5643
5734
  {
5644
5735
  outline: true,
@@ -5651,31 +5742,31 @@ var FileUploadZone = ({
5651
5742
  }
5652
5743
  }
5653
5744
  ),
5654
- sublabel && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "xs", variant: "grey_500", align: "center", children: sublabel })
5745
+ sublabel && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Text, { size: "xs", variant: "grey_500", align: "center", children: sublabel })
5655
5746
  ]
5656
5747
  }
5657
5748
  ),
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 })
5749
+ showFileName && fileName && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Row, { gap: "8", alignItems: "center", justifyContent: "center", children: [
5750
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icon, { name: "file", size: "s", color: "green_700" }),
5751
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Text, { size: "s", color: "green_700", children: fileName })
5661
5752
  ] }),
5662
- inlineError && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Text, { size: "s", color: "danger", align: "center", children: inlineError })
5753
+ inlineError && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Text, { size: "s", color: "danger", align: "center", children: inlineError })
5663
5754
  ] });
5664
5755
  };
5665
5756
 
5666
5757
  // src/Components/Spinner/Spinner.tsx
5667
- var import_styled_components47 = __toESM(require("styled-components"));
5668
- var import_jsx_runtime57 = require("react/jsx-runtime");
5758
+ var import_styled_components48 = __toESM(require("styled-components"));
5759
+ var import_jsx_runtime58 = require("react/jsx-runtime");
5669
5760
  var SIZES3 = {
5670
5761
  s: 20,
5671
5762
  m: 32,
5672
5763
  l: 48
5673
5764
  };
5674
- var spin = import_styled_components47.keyframes`
5765
+ var spin = import_styled_components48.keyframes`
5675
5766
  0% { transform: rotate(0deg); }
5676
5767
  100% { transform: rotate(360deg); }
5677
5768
  `;
5678
- var StyledSpinner = import_styled_components47.default.span`
5769
+ var StyledSpinner = import_styled_components48.default.span`
5679
5770
  display: inline-block;
5680
5771
  width: ${(p) => p.$size}px;
5681
5772
  height: ${(p) => p.$size}px;
@@ -5688,7 +5779,7 @@ var StyledSpinner = import_styled_components47.default.span`
5688
5779
  var Spinner = ({ size = "m", color = "primary" }) => {
5689
5780
  const resolvedSize = SIZES3[size];
5690
5781
  const resolvedColor = colors[color] || color || colors.primary;
5691
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
5782
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
5692
5783
  StyledSpinner,
5693
5784
  {
5694
5785
  $size: resolvedSize,
@@ -5700,7 +5791,7 @@ var Spinner = ({ size = "m", color = "primary" }) => {
5700
5791
  };
5701
5792
 
5702
5793
  // src/Components/EmptyState/EmptyState.tsx
5703
- var import_jsx_runtime58 = require("react/jsx-runtime");
5794
+ var import_jsx_runtime59 = require("react/jsx-runtime");
5704
5795
  var EmptyState = ({
5705
5796
  icon = "inbox",
5706
5797
  title = "Aucun r\xE9sultat",
@@ -5708,7 +5799,7 @@ var EmptyState = ({
5708
5799
  actionLabel,
5709
5800
  onAction
5710
5801
  }) => {
5711
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
5802
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5712
5803
  Col,
5713
5804
  {
5714
5805
  fullWidth: true,
@@ -5717,20 +5808,20 @@ var EmptyState = ({
5717
5808
  gap: "24",
5718
5809
  padding: "24px 16px",
5719
5810
  children: [
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 })
5811
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
5812
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
5813
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Text, { size: "m", weight: "600", variant: "grey_600", align: "center", children: title }),
5814
+ description && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Text, { size: "s", variant: "grey_500", align: "center", children: description })
5724
5815
  ] }),
5725
- actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { label: actionLabel, onClick: onAction })
5816
+ actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { label: actionLabel, onClick: onAction })
5726
5817
  ]
5727
5818
  }
5728
5819
  );
5729
5820
  };
5730
5821
 
5731
5822
  // src/Components/FloatingButton/FloatingButton.tsx
5732
- var import_styled_components48 = __toESM(require("styled-components"));
5733
- var import_jsx_runtime59 = require("react/jsx-runtime");
5823
+ var import_styled_components49 = __toESM(require("styled-components"));
5824
+ var import_jsx_runtime60 = require("react/jsx-runtime");
5734
5825
  var FloatingButton = ({
5735
5826
  isOpen,
5736
5827
  onToggle,
@@ -5742,10 +5833,10 @@ var FloatingButton = ({
5742
5833
  variant = "blue_700"
5743
5834
  }) => {
5744
5835
  const accent = colors[variant];
5745
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Container6, { children: [
5836
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Container6, { children: [
5746
5837
  actions.map((action, index) => {
5747
5838
  var _a;
5748
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5839
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5749
5840
  SubButton,
5750
5841
  {
5751
5842
  type: "button",
@@ -5754,14 +5845,14 @@ var FloatingButton = ({
5754
5845
  $transform: arcTransform(index, actions.length),
5755
5846
  onClick: action.onClick,
5756
5847
  children: [
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 })
5848
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: action.icon, family: "regular", size: "s", color: accent }),
5849
+ ((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(CountBadge, { children: action.badge })
5759
5850
  ]
5760
5851
  },
5761
5852
  action.id
5762
5853
  );
5763
5854
  }),
5764
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5855
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5765
5856
  MainButton,
5766
5857
  {
5767
5858
  type: "button",
@@ -5770,7 +5861,7 @@ var FloatingButton = ({
5770
5861
  $accent: accent,
5771
5862
  onClick: onToggle,
5772
5863
  children: [
5773
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
5864
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5774
5865
  Icon,
5775
5866
  {
5776
5867
  name: isOpen ? openIcon : icon,
@@ -5779,7 +5870,7 @@ var FloatingButton = ({
5779
5870
  color: colors.white
5780
5871
  }
5781
5872
  ),
5782
- !isOpen && mainBadge > 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CountBadge, { children: mainBadge })
5873
+ !isOpen && mainBadge > 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(CountBadge, { children: mainBadge })
5783
5874
  ]
5784
5875
  }
5785
5876
  )
@@ -5798,7 +5889,7 @@ var arcTransform = (index, total) => {
5798
5889
  const y = Math.round(-Math.sin(angle) * ARC_RADIUS);
5799
5890
  return `translate(${x}px, ${y}px)`;
5800
5891
  };
5801
- var Container6 = import_styled_components48.default.div`
5892
+ var Container6 = import_styled_components49.default.div`
5802
5893
  position: fixed;
5803
5894
  right: 32px;
5804
5895
  bottom: 32px;
@@ -5806,7 +5897,7 @@ var Container6 = import_styled_components48.default.div`
5806
5897
  height: ${FAB_SIZE}px;
5807
5898
  z-index: 1000;
5808
5899
  `;
5809
- var MainButton = import_styled_components48.default.button`
5900
+ var MainButton = import_styled_components49.default.button`
5810
5901
  position: absolute;
5811
5902
  inset: 0;
5812
5903
  display: flex;
@@ -5820,7 +5911,7 @@ var MainButton = import_styled_components48.default.button`
5820
5911
  0 8px 5px rgba(0, 0, 0, 0.1),
5821
5912
  0 20px 12.5px rgba(0, 0, 0, 0.1);
5822
5913
  `;
5823
- var SubButton = import_styled_components48.default.button`
5914
+ var SubButton = import_styled_components49.default.button`
5824
5915
  position: absolute;
5825
5916
  left: ${(FAB_SIZE - SUB_SIZE) / 2}px;
5826
5917
  top: ${(FAB_SIZE - SUB_SIZE) / 2}px;
@@ -5843,7 +5934,7 @@ var SubButton = import_styled_components48.default.button`
5843
5934
  opacity: ${({ $isOpen }) => $isOpen ? 1 : 0};
5844
5935
  pointer-events: ${({ $isOpen }) => $isOpen ? "auto" : "none"};
5845
5936
  `;
5846
- var CountBadge = import_styled_components48.default.span`
5937
+ var CountBadge = import_styled_components49.default.span`
5847
5938
  position: absolute;
5848
5939
  top: -4px;
5849
5940
  right: -4px;
@@ -5861,16 +5952,16 @@ var CountBadge = import_styled_components48.default.span`
5861
5952
  `;
5862
5953
 
5863
5954
  // src/Components/ProgressBar/ProgressBar.tsx
5864
- var import_styled_components49 = __toESM(require("styled-components"));
5865
- var import_jsx_runtime60 = require("react/jsx-runtime");
5955
+ var import_styled_components50 = __toESM(require("styled-components"));
5956
+ var import_jsx_runtime61 = require("react/jsx-runtime");
5866
5957
  var clampPercent = (value) => Math.max(0, Math.min(100, value));
5867
- var Wrapper6 = import_styled_components49.default.div`
5958
+ var Wrapper6 = import_styled_components50.default.div`
5868
5959
  display: flex;
5869
5960
  align-items: center;
5870
5961
  gap: 8px;
5871
5962
  width: 100%;
5872
5963
  `;
5873
- var Track2 = import_styled_components49.default.div`
5964
+ var Track2 = import_styled_components50.default.div`
5874
5965
  position: relative;
5875
5966
  flex: 1;
5876
5967
  height: ${({ $height }) => $height}px;
@@ -5878,7 +5969,7 @@ var Track2 = import_styled_components49.default.div`
5878
5969
  border-radius: ${({ $height }) => $height}px;
5879
5970
  overflow: hidden;
5880
5971
  `;
5881
- var Fill = import_styled_components49.default.div`
5972
+ var Fill = import_styled_components50.default.div`
5882
5973
  height: 100%;
5883
5974
  width: ${({ $percent }) => $percent}%;
5884
5975
  background: ${({ $color }) => $color};
@@ -5893,9 +5984,9 @@ var ProgressBar2 = ({
5893
5984
  showLabel = false
5894
5985
  }) => {
5895
5986
  const percent = clampPercent(value);
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: [
5987
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Wrapper6, { children: [
5988
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Track2, { $height: height, $trackColor: trackColor, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Fill, { $height: height, $color: color, $percent: percent }) }),
5989
+ showLabel && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Text, { size: "s", weight: "600", children: [
5899
5990
  Math.round(percent),
5900
5991
  " %"
5901
5992
  ] })
@@ -5903,24 +5994,24 @@ var ProgressBar2 = ({
5903
5994
  };
5904
5995
 
5905
5996
  // src/Components/Timeline/Timeline.tsx
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`
5997
+ var import_styled_components51 = __toESM(require("styled-components"));
5998
+ var import_jsx_runtime62 = require("react/jsx-runtime");
5999
+ var List2 = import_styled_components51.default.div`
5909
6000
  display: flex;
5910
6001
  flex-direction: column;
5911
6002
  `;
5912
- var Item2 = import_styled_components50.default.div`
6003
+ var Item2 = import_styled_components51.default.div`
5913
6004
  display: flex;
5914
6005
  gap: 12px;
5915
6006
  align-items: stretch;
5916
6007
  `;
5917
- var Rail = import_styled_components50.default.div`
6008
+ var Rail = import_styled_components51.default.div`
5918
6009
  display: flex;
5919
6010
  flex-direction: column;
5920
6011
  align-items: center;
5921
6012
  width: 16px;
5922
6013
  `;
5923
- var Dot2 = import_styled_components50.default.div`
6014
+ var Dot2 = import_styled_components51.default.div`
5924
6015
  width: 10px;
5925
6016
  height: 10px;
5926
6017
  border-radius: 50%;
@@ -5928,13 +6019,13 @@ var Dot2 = import_styled_components50.default.div`
5928
6019
  flex: 0 0 auto;
5929
6020
  background: ${({ $color }) => $color};
5930
6021
  `;
5931
- var Line = import_styled_components50.default.div`
6022
+ var Line = import_styled_components51.default.div`
5932
6023
  width: 2px;
5933
6024
  flex: 1;
5934
6025
  min-height: 16px;
5935
6026
  background: ${({ $color }) => $color};
5936
6027
  `;
5937
- var Content2 = import_styled_components50.default.div`
6028
+ var Content3 = import_styled_components51.default.div`
5938
6029
  display: flex;
5939
6030
  flex-direction: column;
5940
6031
  gap: 2px;
@@ -5946,21 +6037,21 @@ var Timeline = ({
5946
6037
  emptyLabel = "Aucun \xE9v\xE9nement"
5947
6038
  }) => {
5948
6039
  if (items.length === 0) {
5949
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Text, { size: "s", color: colors.grey_600, children: emptyLabel });
6040
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Text, { size: "s", color: colors.grey_600, children: emptyLabel });
5950
6041
  }
5951
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(List2, { children: items.map((item, index) => {
6042
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(List2, { children: items.map((item, index) => {
5952
6043
  var _a;
5953
6044
  const isLast = index === items.length - 1;
5954
6045
  const dotColor = (_a = item.color) != null ? _a : colors.blue_700;
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 })
6046
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Item2, { children: [
6047
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Rail, { children: [
6048
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Dot2, { $color: dotColor }),
6049
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Line, { $color: lineColor })
5959
6050
  ] }),
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 })
6051
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Content3, { $last: isLast, children: [
6052
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Text, { size: "s", weight: item.highlighted ? "700" : "600", children: item.title }),
6053
+ item.subtitle && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Text, { size: "xs", color: colors.grey_600, children: item.subtitle }),
6054
+ item.description && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Text, { size: "xs", fontStyle: "italic", children: item.description })
5964
6055
  ] })
5965
6056
  ] }, item.id);
5966
6057
  }) });
@@ -6589,6 +6680,7 @@ var parseAmount = (value) => {
6589
6680
  0 && (module.exports = {
6590
6681
  Accordion,
6591
6682
  Avatar,
6683
+ Banner,
6592
6684
  Box,
6593
6685
  Bubble,
6594
6686
  Bulk,
package/dist/index.mjs CHANGED
@@ -5063,16 +5063,106 @@ var Card2 = ({
5063
5063
  }
5064
5064
  );
5065
5065
 
5066
+ // src/Components/Banner/Banner.tsx
5067
+ import styled45 from "styled-components";
5068
+ import { Fragment as Fragment7, jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
5069
+ var variantStyles = {
5070
+ blue: {
5071
+ background: "rgba(219, 233, 254, 0.4)",
5072
+ borderColor: "#BEDBFF",
5073
+ badgeBackground: colors.badge_blue_bg,
5074
+ badgeColor: colors.badge_blue_text,
5075
+ action: "blue_950"
5076
+ },
5077
+ red: {
5078
+ background: "rgba(252, 221, 222, 0.4)",
5079
+ borderColor: "#FFD2D2",
5080
+ badgeBackground: "#FCDDDE",
5081
+ badgeColor: colors.red_950,
5082
+ action: "red_950"
5083
+ }
5084
+ };
5085
+ var StyledBanner = styled45.div`
5086
+ box-sizing: border-box;
5087
+ width: 100%;
5088
+ display: flex;
5089
+ align-items: center;
5090
+ justify-content: space-between;
5091
+ gap: 16px;
5092
+ padding: 8px 16px;
5093
+ border-radius: 6px;
5094
+ border: 1px solid ${(p) => p.$borderColor};
5095
+ background: ${(p) => p.$background};
5096
+ `;
5097
+ var Content2 = styled45.div`
5098
+ display: flex;
5099
+ flex-direction: column;
5100
+ gap: 4px;
5101
+ align-items: flex-start;
5102
+ `;
5103
+ var Heading = styled45.div`
5104
+ display: flex;
5105
+ align-items: center;
5106
+ gap: 8px;
5107
+ `;
5108
+ var Banner = ({
5109
+ variant = "blue",
5110
+ badge,
5111
+ title,
5112
+ subtitle,
5113
+ message,
5114
+ action
5115
+ }) => {
5116
+ const style2 = variantStyles[variant];
5117
+ return /* @__PURE__ */ jsxs28(
5118
+ StyledBanner,
5119
+ {
5120
+ $background: style2.background,
5121
+ $borderColor: style2.borderColor,
5122
+ children: [
5123
+ /* @__PURE__ */ jsx54(Content2, { children: message ? /* @__PURE__ */ jsx54(Text, { size: "s", children: message }) : /* @__PURE__ */ jsxs28(Fragment7, { children: [
5124
+ /* @__PURE__ */ jsxs28(Heading, { children: [
5125
+ badge && /* @__PURE__ */ jsx54(
5126
+ Bubble,
5127
+ {
5128
+ backgroundColor: style2.badgeBackground,
5129
+ color: style2.badgeColor,
5130
+ borderRadius: "6px",
5131
+ padding: "2px 8px",
5132
+ style: { fontSize: "11px", lineHeight: "16.5px" },
5133
+ children: badge
5134
+ }
5135
+ ),
5136
+ title && /* @__PURE__ */ jsx54(Text, { size: "s", weight: "700", children: title })
5137
+ ] }),
5138
+ subtitle && /* @__PURE__ */ jsx54(Text, { size: "xs", children: subtitle })
5139
+ ] }) }),
5140
+ action && /* @__PURE__ */ jsx54(
5141
+ Button,
5142
+ {
5143
+ outline: true,
5144
+ size: "xs",
5145
+ variant: style2.action,
5146
+ iconLeft: action.icon,
5147
+ label: action.label,
5148
+ onClick: action.onClick
5149
+ }
5150
+ )
5151
+ ]
5152
+ }
5153
+ );
5154
+ };
5155
+
5066
5156
  // src/Components/Tooltip/Tooltip.tsx
5067
5157
  import { useState as useState17 } from "react";
5068
- import styled45 from "styled-components";
5069
- import { jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
5070
- var StyledTooltipWrapper = styled45.div`
5158
+ import styled46 from "styled-components";
5159
+ import { jsx as jsx55, jsxs as jsxs29 } from "react/jsx-runtime";
5160
+ var StyledTooltipWrapper = styled46.div`
5071
5161
  position: relative;
5072
5162
  display: inline-block;
5073
5163
  cursor: pointer;
5074
5164
  `;
5075
- var StyledTooltipContent = styled45.div`
5165
+ var StyledTooltipContent = styled46.div`
5076
5166
  visibility: ${(props) => props.$isVisible ? "visible" : "hidden"};
5077
5167
  background-color: ${(props) => props.$backgroundColor || colors.black};
5078
5168
  color: ${colors.white};
@@ -5171,14 +5261,14 @@ var Tooltip = ({
5171
5261
  const [isVisible, setIsVisible] = useState17(false);
5172
5262
  const handleMouseEnter = () => setIsVisible(true);
5173
5263
  const handleMouseLeave = () => setIsVisible(false);
5174
- return /* @__PURE__ */ jsxs28(
5264
+ return /* @__PURE__ */ jsxs29(
5175
5265
  StyledTooltipWrapper,
5176
5266
  {
5177
5267
  onMouseEnter: handleMouseEnter,
5178
5268
  onMouseLeave: handleMouseLeave,
5179
5269
  children: [
5180
5270
  children,
5181
- /* @__PURE__ */ jsx54(
5271
+ /* @__PURE__ */ jsx55(
5182
5272
  StyledTooltipContent,
5183
5273
  {
5184
5274
  $isVisible: isVisible,
@@ -5186,7 +5276,7 @@ var Tooltip = ({
5186
5276
  $width: width,
5187
5277
  $height: height,
5188
5278
  $direction: direction,
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" })
5279
+ children: data.length > 0 ? data.map((item, index) => /* @__PURE__ */ jsx55(Text, { size: "s", color: "white", children: item }, index)) : /* @__PURE__ */ jsx55(Text, { size: "s", color: "white", children: "Aucune donn\xE9e" })
5190
5280
  }
5191
5281
  )
5192
5282
  ]
@@ -5196,7 +5286,7 @@ var Tooltip = ({
5196
5286
 
5197
5287
  // src/Components/Pagination/Pagination.tsx
5198
5288
  import { useMemo as useMemo2 } from "react";
5199
- import { jsx as jsx55, jsxs as jsxs29 } from "react/jsx-runtime";
5289
+ import { jsx as jsx56, jsxs as jsxs30 } from "react/jsx-runtime";
5200
5290
  var getPageNumbers = (current, total) => {
5201
5291
  if (total <= 5) {
5202
5292
  return Array.from({ length: total }, (_, i) => i + 1);
@@ -5226,15 +5316,15 @@ var Pagination = ({
5226
5316
  const startItem = (currentPage - 1) * itemsPerPage + 1;
5227
5317
  const endItem = Math.min(currentPage * itemsPerPage, totalItems);
5228
5318
  const summary = summaryLabel || defaultSummary(startItem, endItem, totalItems);
5229
- return /* @__PURE__ */ jsxs29(
5319
+ return /* @__PURE__ */ jsxs30(
5230
5320
  Row,
5231
5321
  {
5232
5322
  justifyContent: showSummary ? "space-between" : "flex-end",
5233
5323
  alignItems: "center",
5234
5324
  children: [
5235
- showSummary && /* @__PURE__ */ jsx55(Text, { size: "s", color: colors.grey_500, children: summary }),
5236
- /* @__PURE__ */ jsxs29(Row, { gap: "4", alignItems: "center", style: { width: "fit-content" }, children: [
5237
- /* @__PURE__ */ jsx55(
5325
+ showSummary && /* @__PURE__ */ jsx56(Text, { size: "s", color: colors.grey_500, children: summary }),
5326
+ /* @__PURE__ */ jsxs30(Row, { gap: "4", alignItems: "center", style: { width: "fit-content" }, children: [
5327
+ /* @__PURE__ */ jsx56(
5238
5328
  Button,
5239
5329
  {
5240
5330
  size: "xs",
@@ -5245,7 +5335,7 @@ var Pagination = ({
5245
5335
  }
5246
5336
  ),
5247
5337
  pages.map(
5248
- (page, index) => page === "..." ? /* @__PURE__ */ jsx55(Text, { size: "s", color: colors.grey_500, children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ jsx55(
5338
+ (page, index) => page === "..." ? /* @__PURE__ */ jsx56(Text, { size: "s", color: colors.grey_500, children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ jsx56(
5249
5339
  Button,
5250
5340
  {
5251
5341
  size: "xs",
@@ -5256,7 +5346,7 @@ var Pagination = ({
5256
5346
  page
5257
5347
  )
5258
5348
  ),
5259
- /* @__PURE__ */ jsx55(
5349
+ /* @__PURE__ */ jsx56(
5260
5350
  Button,
5261
5351
  {
5262
5352
  size: "xs",
@@ -5274,8 +5364,8 @@ var Pagination = ({
5274
5364
 
5275
5365
  // src/Components/FileUploadZone/FileUploadZone.tsx
5276
5366
  import { useState as useState18, useRef as useRef13, useCallback as useCallback6 } from "react";
5277
- import styled46 from "styled-components";
5278
- import { jsx as jsx56, jsxs as jsxs30 } from "react/jsx-runtime";
5367
+ import styled47 from "styled-components";
5368
+ import { jsx as jsx57, jsxs as jsxs31 } from "react/jsx-runtime";
5279
5369
  var ACCEPT_MAP = {
5280
5370
  png: "image/png",
5281
5371
  jpg: "image/jpeg",
@@ -5291,7 +5381,7 @@ var getMimeTypes = (accept) => {
5291
5381
  return accept.map((ext) => ACCEPT_MAP[ext.toLowerCase()] || ext);
5292
5382
  };
5293
5383
  var isPdf = (type) => type === "application/pdf";
5294
- var StyledDropZone = styled46.label`
5384
+ var StyledDropZone = styled47.label`
5295
5385
  display: flex;
5296
5386
  flex-direction: column;
5297
5387
  align-items: center;
@@ -5315,7 +5405,7 @@ var StyledDropZone = styled46.label`
5315
5405
  border-color: ${(p) => p.$disabled ? colors.blue_50 : colors.blue_100};
5316
5406
  }
5317
5407
  `;
5318
- var StyledPreview = styled46.div`
5408
+ var StyledPreview = styled47.div`
5319
5409
  display: flex;
5320
5410
  flex-direction: column;
5321
5411
  align-items: center;
@@ -5326,18 +5416,18 @@ var StyledPreview = styled46.div`
5326
5416
  width: ${(p) => p.$fullWidth ? "100%" : "auto"};
5327
5417
  box-sizing: border-box;
5328
5418
  `;
5329
- var StyledImage2 = styled46.img`
5419
+ var StyledImage2 = styled47.img`
5330
5420
  max-width: 100%;
5331
5421
  max-height: 400px;
5332
5422
  border-radius: 4px;
5333
5423
  object-fit: contain;
5334
5424
  `;
5335
- var StyledEmbed = styled46.embed`
5425
+ var StyledEmbed = styled47.embed`
5336
5426
  width: 100%;
5337
5427
  height: 500px;
5338
5428
  border-radius: 4px;
5339
5429
  `;
5340
- var HiddenInput2 = styled46.input`
5430
+ var HiddenInput2 = styled47.input`
5341
5431
  display: none;
5342
5432
  `;
5343
5433
  var FileUploadZone = ({
@@ -5473,9 +5563,9 @@ var FileUploadZone = ({
5473
5563
  onRemove == null ? void 0 : onRemove();
5474
5564
  };
5475
5565
  if (previewUrl) {
5476
- return /* @__PURE__ */ jsxs30(StyledPreview, { $fullWidth: fullWidth, children: [
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(
5566
+ return /* @__PURE__ */ jsxs31(StyledPreview, { $fullWidth: fullWidth, children: [
5567
+ fileType && isPdf(fileType) ? /* @__PURE__ */ jsx57(StyledEmbed, { src: previewUrl, type: "application/pdf" }) : /* @__PURE__ */ jsx57(StyledImage2, { src: previewUrl, alt: "Aper\xE7u du fichier" }),
5568
+ /* @__PURE__ */ jsx57(Row, { gap: "8", justifyContent: "center", children: /* @__PURE__ */ jsx57(
5479
5569
  Button,
5480
5570
  {
5481
5571
  onClick: handleRemove,
@@ -5489,8 +5579,8 @@ var FileUploadZone = ({
5489
5579
  }
5490
5580
  const showIcon = icon !== false;
5491
5581
  const showBrowse = !compact && browseLabel !== false;
5492
- return /* @__PURE__ */ jsxs30(Col, { gap: "4", fullWidth, children: [
5493
- /* @__PURE__ */ jsxs30(
5582
+ return /* @__PURE__ */ jsxs31(Col, { gap: "4", fullWidth, children: [
5583
+ /* @__PURE__ */ jsxs31(
5494
5584
  StyledDropZone,
5495
5585
  {
5496
5586
  $isDragging: isDragging,
@@ -5501,7 +5591,7 @@ var FileUploadZone = ({
5501
5591
  onDragLeave: handleDragLeave,
5502
5592
  onDrop: handleDrop,
5503
5593
  children: [
5504
- /* @__PURE__ */ jsx56(
5594
+ /* @__PURE__ */ jsx57(
5505
5595
  HiddenInput2,
5506
5596
  {
5507
5597
  ref: inputRef,
@@ -5512,7 +5602,7 @@ var FileUploadZone = ({
5512
5602
  multiple
5513
5603
  }
5514
5604
  ),
5515
- showIcon && /* @__PURE__ */ jsx56(
5605
+ showIcon && /* @__PURE__ */ jsx57(
5516
5606
  Icon,
5517
5607
  {
5518
5608
  name: icon,
@@ -5521,9 +5611,9 @@ var FileUploadZone = ({
5521
5611
  color: "blue_700"
5522
5612
  }
5523
5613
  ),
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(
5614
+ /* @__PURE__ */ jsx57(Text, { size: "s", variant: "grey_600", align: "center", children: label }),
5615
+ showBrowse && /* @__PURE__ */ jsx57(Text, { size: "xs", variant: "grey_600", align: "center", children: "ou" }),
5616
+ showBrowse && /* @__PURE__ */ jsx57(
5527
5617
  Button,
5528
5618
  {
5529
5619
  outline: true,
@@ -5536,21 +5626,21 @@ var FileUploadZone = ({
5536
5626
  }
5537
5627
  }
5538
5628
  ),
5539
- sublabel && /* @__PURE__ */ jsx56(Text, { size: "xs", variant: "grey_500", align: "center", children: sublabel })
5629
+ sublabel && /* @__PURE__ */ jsx57(Text, { size: "xs", variant: "grey_500", align: "center", children: sublabel })
5540
5630
  ]
5541
5631
  }
5542
5632
  ),
5543
- showFileName && fileName && /* @__PURE__ */ jsxs30(Row, { gap: "8", alignItems: "center", justifyContent: "center", children: [
5544
- /* @__PURE__ */ jsx56(Icon, { name: "file", size: "s", color: "green_700" }),
5545
- /* @__PURE__ */ jsx56(Text, { size: "s", color: "green_700", children: fileName })
5633
+ showFileName && fileName && /* @__PURE__ */ jsxs31(Row, { gap: "8", alignItems: "center", justifyContent: "center", children: [
5634
+ /* @__PURE__ */ jsx57(Icon, { name: "file", size: "s", color: "green_700" }),
5635
+ /* @__PURE__ */ jsx57(Text, { size: "s", color: "green_700", children: fileName })
5546
5636
  ] }),
5547
- inlineError && /* @__PURE__ */ jsx56(Text, { size: "s", color: "danger", align: "center", children: inlineError })
5637
+ inlineError && /* @__PURE__ */ jsx57(Text, { size: "s", color: "danger", align: "center", children: inlineError })
5548
5638
  ] });
5549
5639
  };
5550
5640
 
5551
5641
  // src/Components/Spinner/Spinner.tsx
5552
- import styled47, { keyframes as keyframes2 } from "styled-components";
5553
- import { jsx as jsx57 } from "react/jsx-runtime";
5642
+ import styled48, { keyframes as keyframes2 } from "styled-components";
5643
+ import { jsx as jsx58 } from "react/jsx-runtime";
5554
5644
  var SIZES3 = {
5555
5645
  s: 20,
5556
5646
  m: 32,
@@ -5560,7 +5650,7 @@ var spin = keyframes2`
5560
5650
  0% { transform: rotate(0deg); }
5561
5651
  100% { transform: rotate(360deg); }
5562
5652
  `;
5563
- var StyledSpinner = styled47.span`
5653
+ var StyledSpinner = styled48.span`
5564
5654
  display: inline-block;
5565
5655
  width: ${(p) => p.$size}px;
5566
5656
  height: ${(p) => p.$size}px;
@@ -5573,7 +5663,7 @@ var StyledSpinner = styled47.span`
5573
5663
  var Spinner = ({ size = "m", color = "primary" }) => {
5574
5664
  const resolvedSize = SIZES3[size];
5575
5665
  const resolvedColor = colors[color] || color || colors.primary;
5576
- return /* @__PURE__ */ jsx57(
5666
+ return /* @__PURE__ */ jsx58(
5577
5667
  StyledSpinner,
5578
5668
  {
5579
5669
  $size: resolvedSize,
@@ -5585,7 +5675,7 @@ var Spinner = ({ size = "m", color = "primary" }) => {
5585
5675
  };
5586
5676
 
5587
5677
  // src/Components/EmptyState/EmptyState.tsx
5588
- import { jsx as jsx58, jsxs as jsxs31 } from "react/jsx-runtime";
5678
+ import { jsx as jsx59, jsxs as jsxs32 } from "react/jsx-runtime";
5589
5679
  var EmptyState = ({
5590
5680
  icon = "inbox",
5591
5681
  title = "Aucun r\xE9sultat",
@@ -5593,7 +5683,7 @@ var EmptyState = ({
5593
5683
  actionLabel,
5594
5684
  onAction
5595
5685
  }) => {
5596
- return /* @__PURE__ */ jsxs31(
5686
+ return /* @__PURE__ */ jsxs32(
5597
5687
  Col,
5598
5688
  {
5599
5689
  fullWidth: true,
@@ -5602,20 +5692,20 @@ var EmptyState = ({
5602
5692
  gap: "24",
5603
5693
  padding: "24px 16px",
5604
5694
  children: [
5605
- /* @__PURE__ */ jsx58(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
5606
- /* @__PURE__ */ jsxs31(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
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 })
5695
+ /* @__PURE__ */ jsx59(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
5696
+ /* @__PURE__ */ jsxs32(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
5697
+ /* @__PURE__ */ jsx59(Text, { size: "m", weight: "600", variant: "grey_600", align: "center", children: title }),
5698
+ description && /* @__PURE__ */ jsx59(Text, { size: "s", variant: "grey_500", align: "center", children: description })
5609
5699
  ] }),
5610
- actionLabel && onAction && /* @__PURE__ */ jsx58(Button, { label: actionLabel, onClick: onAction })
5700
+ actionLabel && onAction && /* @__PURE__ */ jsx59(Button, { label: actionLabel, onClick: onAction })
5611
5701
  ]
5612
5702
  }
5613
5703
  );
5614
5704
  };
5615
5705
 
5616
5706
  // src/Components/FloatingButton/FloatingButton.tsx
5617
- import styled48 from "styled-components";
5618
- import { jsx as jsx59, jsxs as jsxs32 } from "react/jsx-runtime";
5707
+ import styled49 from "styled-components";
5708
+ import { jsx as jsx60, jsxs as jsxs33 } from "react/jsx-runtime";
5619
5709
  var FloatingButton = ({
5620
5710
  isOpen,
5621
5711
  onToggle,
@@ -5627,10 +5717,10 @@ var FloatingButton = ({
5627
5717
  variant = "blue_700"
5628
5718
  }) => {
5629
5719
  const accent = colors[variant];
5630
- return /* @__PURE__ */ jsxs32(Container6, { children: [
5720
+ return /* @__PURE__ */ jsxs33(Container6, { children: [
5631
5721
  actions.map((action, index) => {
5632
5722
  var _a;
5633
- return /* @__PURE__ */ jsxs32(
5723
+ return /* @__PURE__ */ jsxs33(
5634
5724
  SubButton,
5635
5725
  {
5636
5726
  type: "button",
@@ -5639,14 +5729,14 @@ var FloatingButton = ({
5639
5729
  $transform: arcTransform(index, actions.length),
5640
5730
  onClick: action.onClick,
5641
5731
  children: [
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 })
5732
+ /* @__PURE__ */ jsx60(Icon, { name: action.icon, family: "regular", size: "s", color: accent }),
5733
+ ((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ jsx60(CountBadge, { children: action.badge })
5644
5734
  ]
5645
5735
  },
5646
5736
  action.id
5647
5737
  );
5648
5738
  }),
5649
- /* @__PURE__ */ jsxs32(
5739
+ /* @__PURE__ */ jsxs33(
5650
5740
  MainButton,
5651
5741
  {
5652
5742
  type: "button",
@@ -5655,7 +5745,7 @@ var FloatingButton = ({
5655
5745
  $accent: accent,
5656
5746
  onClick: onToggle,
5657
5747
  children: [
5658
- /* @__PURE__ */ jsx59(
5748
+ /* @__PURE__ */ jsx60(
5659
5749
  Icon,
5660
5750
  {
5661
5751
  name: isOpen ? openIcon : icon,
@@ -5664,7 +5754,7 @@ var FloatingButton = ({
5664
5754
  color: colors.white
5665
5755
  }
5666
5756
  ),
5667
- !isOpen && mainBadge > 0 && /* @__PURE__ */ jsx59(CountBadge, { children: mainBadge })
5757
+ !isOpen && mainBadge > 0 && /* @__PURE__ */ jsx60(CountBadge, { children: mainBadge })
5668
5758
  ]
5669
5759
  }
5670
5760
  )
@@ -5683,7 +5773,7 @@ var arcTransform = (index, total) => {
5683
5773
  const y = Math.round(-Math.sin(angle) * ARC_RADIUS);
5684
5774
  return `translate(${x}px, ${y}px)`;
5685
5775
  };
5686
- var Container6 = styled48.div`
5776
+ var Container6 = styled49.div`
5687
5777
  position: fixed;
5688
5778
  right: 32px;
5689
5779
  bottom: 32px;
@@ -5691,7 +5781,7 @@ var Container6 = styled48.div`
5691
5781
  height: ${FAB_SIZE}px;
5692
5782
  z-index: 1000;
5693
5783
  `;
5694
- var MainButton = styled48.button`
5784
+ var MainButton = styled49.button`
5695
5785
  position: absolute;
5696
5786
  inset: 0;
5697
5787
  display: flex;
@@ -5705,7 +5795,7 @@ var MainButton = styled48.button`
5705
5795
  0 8px 5px rgba(0, 0, 0, 0.1),
5706
5796
  0 20px 12.5px rgba(0, 0, 0, 0.1);
5707
5797
  `;
5708
- var SubButton = styled48.button`
5798
+ var SubButton = styled49.button`
5709
5799
  position: absolute;
5710
5800
  left: ${(FAB_SIZE - SUB_SIZE) / 2}px;
5711
5801
  top: ${(FAB_SIZE - SUB_SIZE) / 2}px;
@@ -5728,7 +5818,7 @@ var SubButton = styled48.button`
5728
5818
  opacity: ${({ $isOpen }) => $isOpen ? 1 : 0};
5729
5819
  pointer-events: ${({ $isOpen }) => $isOpen ? "auto" : "none"};
5730
5820
  `;
5731
- var CountBadge = styled48.span`
5821
+ var CountBadge = styled49.span`
5732
5822
  position: absolute;
5733
5823
  top: -4px;
5734
5824
  right: -4px;
@@ -5746,16 +5836,16 @@ var CountBadge = styled48.span`
5746
5836
  `;
5747
5837
 
5748
5838
  // src/Components/ProgressBar/ProgressBar.tsx
5749
- import styled49 from "styled-components";
5750
- import { jsx as jsx60, jsxs as jsxs33 } from "react/jsx-runtime";
5839
+ import styled50 from "styled-components";
5840
+ import { jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
5751
5841
  var clampPercent = (value) => Math.max(0, Math.min(100, value));
5752
- var Wrapper6 = styled49.div`
5842
+ var Wrapper6 = styled50.div`
5753
5843
  display: flex;
5754
5844
  align-items: center;
5755
5845
  gap: 8px;
5756
5846
  width: 100%;
5757
5847
  `;
5758
- var Track2 = styled49.div`
5848
+ var Track2 = styled50.div`
5759
5849
  position: relative;
5760
5850
  flex: 1;
5761
5851
  height: ${({ $height }) => $height}px;
@@ -5763,7 +5853,7 @@ var Track2 = styled49.div`
5763
5853
  border-radius: ${({ $height }) => $height}px;
5764
5854
  overflow: hidden;
5765
5855
  `;
5766
- var Fill = styled49.div`
5856
+ var Fill = styled50.div`
5767
5857
  height: 100%;
5768
5858
  width: ${({ $percent }) => $percent}%;
5769
5859
  background: ${({ $color }) => $color};
@@ -5778,9 +5868,9 @@ var ProgressBar2 = ({
5778
5868
  showLabel = false
5779
5869
  }) => {
5780
5870
  const percent = clampPercent(value);
5781
- return /* @__PURE__ */ jsxs33(Wrapper6, { children: [
5782
- /* @__PURE__ */ jsx60(Track2, { $height: height, $trackColor: trackColor, children: /* @__PURE__ */ jsx60(Fill, { $height: height, $color: color, $percent: percent }) }),
5783
- showLabel && /* @__PURE__ */ jsxs33(Text, { size: "s", weight: "600", children: [
5871
+ return /* @__PURE__ */ jsxs34(Wrapper6, { children: [
5872
+ /* @__PURE__ */ jsx61(Track2, { $height: height, $trackColor: trackColor, children: /* @__PURE__ */ jsx61(Fill, { $height: height, $color: color, $percent: percent }) }),
5873
+ showLabel && /* @__PURE__ */ jsxs34(Text, { size: "s", weight: "600", children: [
5784
5874
  Math.round(percent),
5785
5875
  " %"
5786
5876
  ] })
@@ -5788,24 +5878,24 @@ var ProgressBar2 = ({
5788
5878
  };
5789
5879
 
5790
5880
  // src/Components/Timeline/Timeline.tsx
5791
- import styled50 from "styled-components";
5792
- import { jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
5793
- var List2 = styled50.div`
5881
+ import styled51 from "styled-components";
5882
+ import { jsx as jsx62, jsxs as jsxs35 } from "react/jsx-runtime";
5883
+ var List2 = styled51.div`
5794
5884
  display: flex;
5795
5885
  flex-direction: column;
5796
5886
  `;
5797
- var Item2 = styled50.div`
5887
+ var Item2 = styled51.div`
5798
5888
  display: flex;
5799
5889
  gap: 12px;
5800
5890
  align-items: stretch;
5801
5891
  `;
5802
- var Rail = styled50.div`
5892
+ var Rail = styled51.div`
5803
5893
  display: flex;
5804
5894
  flex-direction: column;
5805
5895
  align-items: center;
5806
5896
  width: 16px;
5807
5897
  `;
5808
- var Dot2 = styled50.div`
5898
+ var Dot2 = styled51.div`
5809
5899
  width: 10px;
5810
5900
  height: 10px;
5811
5901
  border-radius: 50%;
@@ -5813,13 +5903,13 @@ var Dot2 = styled50.div`
5813
5903
  flex: 0 0 auto;
5814
5904
  background: ${({ $color }) => $color};
5815
5905
  `;
5816
- var Line = styled50.div`
5906
+ var Line = styled51.div`
5817
5907
  width: 2px;
5818
5908
  flex: 1;
5819
5909
  min-height: 16px;
5820
5910
  background: ${({ $color }) => $color};
5821
5911
  `;
5822
- var Content2 = styled50.div`
5912
+ var Content3 = styled51.div`
5823
5913
  display: flex;
5824
5914
  flex-direction: column;
5825
5915
  gap: 2px;
@@ -5831,21 +5921,21 @@ var Timeline = ({
5831
5921
  emptyLabel = "Aucun \xE9v\xE9nement"
5832
5922
  }) => {
5833
5923
  if (items.length === 0) {
5834
- return /* @__PURE__ */ jsx61(Text, { size: "s", color: colors.grey_600, children: emptyLabel });
5924
+ return /* @__PURE__ */ jsx62(Text, { size: "s", color: colors.grey_600, children: emptyLabel });
5835
5925
  }
5836
- return /* @__PURE__ */ jsx61(List2, { children: items.map((item, index) => {
5926
+ return /* @__PURE__ */ jsx62(List2, { children: items.map((item, index) => {
5837
5927
  var _a;
5838
5928
  const isLast = index === items.length - 1;
5839
5929
  const dotColor = (_a = item.color) != null ? _a : colors.blue_700;
5840
- return /* @__PURE__ */ jsxs34(Item2, { children: [
5841
- /* @__PURE__ */ jsxs34(Rail, { children: [
5842
- /* @__PURE__ */ jsx61(Dot2, { $color: dotColor }),
5843
- !isLast && /* @__PURE__ */ jsx61(Line, { $color: lineColor })
5930
+ return /* @__PURE__ */ jsxs35(Item2, { children: [
5931
+ /* @__PURE__ */ jsxs35(Rail, { children: [
5932
+ /* @__PURE__ */ jsx62(Dot2, { $color: dotColor }),
5933
+ !isLast && /* @__PURE__ */ jsx62(Line, { $color: lineColor })
5844
5934
  ] }),
5845
- /* @__PURE__ */ jsxs34(Content2, { $last: isLast, children: [
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 })
5935
+ /* @__PURE__ */ jsxs35(Content3, { $last: isLast, children: [
5936
+ /* @__PURE__ */ jsx62(Text, { size: "s", weight: item.highlighted ? "700" : "600", children: item.title }),
5937
+ item.subtitle && /* @__PURE__ */ jsx62(Text, { size: "xs", color: colors.grey_600, children: item.subtitle }),
5938
+ item.description && /* @__PURE__ */ jsx62(Text, { size: "xs", fontStyle: "italic", children: item.description })
5849
5939
  ] })
5850
5940
  ] }, item.id);
5851
5941
  }) });
@@ -6473,6 +6563,7 @@ var parseAmount = (value) => {
6473
6563
  export {
6474
6564
  Accordion,
6475
6565
  Avatar,
6566
+ Banner,
6476
6567
  Box,
6477
6568
  Bubble,
6478
6569
  Bulk,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "design-zystem",
3
- "version": "1.0.263",
3
+ "version": "1.0.264",
4
4
  "description": "A React design system of importable components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",