design-zystem 1.0.240 → 1.0.242

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
@@ -64,6 +64,7 @@ interface RowProps extends HTMLAttributes<HTMLDivElement> {
64
64
  fullHeight?: boolean;
65
65
  width?: string;
66
66
  wrap?: string;
67
+ backgroundColor?: string;
67
68
  style?: CSSProperties;
68
69
  className?: string;
69
70
  }
@@ -890,6 +891,15 @@ interface SpinnerProps {
890
891
  }
891
892
  declare const Spinner: ({ size, color }: SpinnerProps) => react_jsx_runtime.JSX.Element;
892
893
 
894
+ interface EmptyStateProps {
895
+ icon?: string;
896
+ title?: string;
897
+ description?: string;
898
+ actionLabel?: string;
899
+ onAction?: () => void;
900
+ }
901
+ declare const EmptyState: ({ icon, title, description, actionLabel, onAction, }: EmptyStateProps) => react_jsx_runtime.JSX.Element;
902
+
893
903
  /**
894
904
  * formatDate(date, type?, language?)
895
905
  * - language : fr/en/es/... (locale inferred), default "en"
@@ -936,4 +946,4 @@ interface OptimizeImageOptions {
936
946
  }
937
947
  declare const optimizeImage: (file: File | null | undefined, desiredBaseName: string, opts?: OptimizeImageOptions) => Promise<OptimizeImageResult>;
938
948
 
939
- export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, Divider, Drawer, FileUploadZone, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, Popover, 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, Tooltip, colors, formatDate, formatDistance, formatDuration, optimizeImage, truncateFileName, truncateText };
949
+ export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, Divider, Drawer, EmptyState, FileUploadZone, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, Popover, 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, Tooltip, colors, formatDate, formatDistance, formatDuration, optimizeImage, truncateFileName, truncateText };
package/dist/index.d.ts CHANGED
@@ -64,6 +64,7 @@ interface RowProps extends HTMLAttributes<HTMLDivElement> {
64
64
  fullHeight?: boolean;
65
65
  width?: string;
66
66
  wrap?: string;
67
+ backgroundColor?: string;
67
68
  style?: CSSProperties;
68
69
  className?: string;
69
70
  }
@@ -890,6 +891,15 @@ interface SpinnerProps {
890
891
  }
891
892
  declare const Spinner: ({ size, color }: SpinnerProps) => react_jsx_runtime.JSX.Element;
892
893
 
894
+ interface EmptyStateProps {
895
+ icon?: string;
896
+ title?: string;
897
+ description?: string;
898
+ actionLabel?: string;
899
+ onAction?: () => void;
900
+ }
901
+ declare const EmptyState: ({ icon, title, description, actionLabel, onAction, }: EmptyStateProps) => react_jsx_runtime.JSX.Element;
902
+
893
903
  /**
894
904
  * formatDate(date, type?, language?)
895
905
  * - language : fr/en/es/... (locale inferred), default "en"
@@ -936,4 +946,4 @@ interface OptimizeImageOptions {
936
946
  }
937
947
  declare const optimizeImage: (file: File | null | undefined, desiredBaseName: string, opts?: OptimizeImageOptions) => Promise<OptimizeImageResult>;
938
948
 
939
- export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, Divider, Drawer, FileUploadZone, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, Popover, 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, Tooltip, colors, formatDate, formatDistance, formatDuration, optimizeImage, truncateFileName, truncateText };
949
+ export { Accordion, type AccordionItem, Avatar, Box, Bubble, Bulk, Button, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, Divider, Drawer, EmptyState, FileUploadZone, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, Popover, 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, Tooltip, colors, formatDate, formatDistance, formatDuration, optimizeImage, truncateFileName, truncateText };
package/dist/index.js CHANGED
@@ -73,6 +73,7 @@ __export(index_exports, {
73
73
  DatePicker: () => DatePicker,
74
74
  Divider: () => Divider,
75
75
  Drawer: () => Drawer,
76
+ EmptyState: () => EmptyState,
76
77
  FileUploadZone: () => FileUploadZone,
77
78
  Grid: () => Grid,
78
79
  Icon: () => Icon,
@@ -410,15 +411,18 @@ var shouldForwardPropRow = (prop) => ![
410
411
  "fullWidth",
411
412
  "fullwidth",
412
413
  "margin",
413
- "width"
414
+ "width",
415
+ "wrap",
416
+ "backgroundColor"
414
417
  ].includes(prop);
415
418
  var StyledRow = import_styled_components4.default.div.withConfig({
416
419
  shouldForwardProp: shouldForwardPropRow
417
420
  })`
418
421
  display: flex;
419
- flex-wrap: nowrap;
422
+ flex-wrap: ${(props) => props.wrap || "nowrap"};
420
423
  width: ${(props) => props.width || "100%"};
421
424
  max-height: 100%;
425
+ background-color: ${(props) => props.backgroundColor || "transparent"};
422
426
  margin: ${(props) => props.margin || "0"};
423
427
  height: ${(props) => props.fullHeight ? `100%` : "auto"};
424
428
  gap: ${(props) => props.gap ? `${props.gap}px` : "0"};
@@ -5156,6 +5160,35 @@ var Spinner = ({ size = "m", color = "primary" }) => {
5156
5160
  );
5157
5161
  };
5158
5162
 
5163
+ // src/Components/EmptyState/EmptyState.tsx
5164
+ var import_jsx_runtime55 = require("react/jsx-runtime");
5165
+ var EmptyState = ({
5166
+ icon = "inbox",
5167
+ title = "Aucun r\xE9sultat",
5168
+ description = "Aucun \xE9l\xE9ment \xE0 afficher pour le moment.",
5169
+ actionLabel,
5170
+ onAction
5171
+ }) => {
5172
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
5173
+ Col,
5174
+ {
5175
+ fullWidth: true,
5176
+ alignItems: "center",
5177
+ justifyContent: "center",
5178
+ gap: "24",
5179
+ padding: "24px 16px",
5180
+ children: [
5181
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
5182
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
5183
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { size: "m", weight: "600", variant: "grey_600", align: "center", children: title }),
5184
+ description && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { size: "s", variant: "grey_500", align: "center", children: description })
5185
+ ] }),
5186
+ actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { label: actionLabel, onClick: onAction })
5187
+ ]
5188
+ }
5189
+ );
5190
+ };
5191
+
5159
5192
  // src/data/globalMethods.ts
5160
5193
  var formatDate = (dateString, type = "date", language = "en") => {
5161
5194
  if (!dateString) return "";
@@ -5415,6 +5448,7 @@ var optimizeImage_default = optimizeImage;
5415
5448
  DatePicker,
5416
5449
  Divider,
5417
5450
  Drawer,
5451
+ EmptyState,
5418
5452
  FileUploadZone,
5419
5453
  Grid,
5420
5454
  Icon,
package/dist/index.mjs CHANGED
@@ -317,15 +317,18 @@ var shouldForwardPropRow = (prop) => ![
317
317
  "fullWidth",
318
318
  "fullwidth",
319
319
  "margin",
320
- "width"
320
+ "width",
321
+ "wrap",
322
+ "backgroundColor"
321
323
  ].includes(prop);
322
324
  var StyledRow = styled4.div.withConfig({
323
325
  shouldForwardProp: shouldForwardPropRow
324
326
  })`
325
327
  display: flex;
326
- flex-wrap: nowrap;
328
+ flex-wrap: ${(props) => props.wrap || "nowrap"};
327
329
  width: ${(props) => props.width || "100%"};
328
330
  max-height: 100%;
331
+ background-color: ${(props) => props.backgroundColor || "transparent"};
329
332
  margin: ${(props) => props.margin || "0"};
330
333
  height: ${(props) => props.fullHeight ? `100%` : "auto"};
331
334
  gap: ${(props) => props.gap ? `${props.gap}px` : "0"};
@@ -5078,6 +5081,35 @@ var Spinner = ({ size = "m", color = "primary" }) => {
5078
5081
  );
5079
5082
  };
5080
5083
 
5084
+ // src/Components/EmptyState/EmptyState.tsx
5085
+ import { jsx as jsx55, jsxs as jsxs29 } from "react/jsx-runtime";
5086
+ var EmptyState = ({
5087
+ icon = "inbox",
5088
+ title = "Aucun r\xE9sultat",
5089
+ description = "Aucun \xE9l\xE9ment \xE0 afficher pour le moment.",
5090
+ actionLabel,
5091
+ onAction
5092
+ }) => {
5093
+ return /* @__PURE__ */ jsxs29(
5094
+ Col,
5095
+ {
5096
+ fullWidth: true,
5097
+ alignItems: "center",
5098
+ justifyContent: "center",
5099
+ gap: "24",
5100
+ padding: "24px 16px",
5101
+ children: [
5102
+ /* @__PURE__ */ jsx55(Icon, { name: icon, family: "solid", size: "xxl", color: "grey_300" }),
5103
+ /* @__PURE__ */ jsxs29(Col, { alignItems: "center", gap: "4", style: { maxWidth: "360px" }, children: [
5104
+ /* @__PURE__ */ jsx55(Text, { size: "m", weight: "600", variant: "grey_600", align: "center", children: title }),
5105
+ description && /* @__PURE__ */ jsx55(Text, { size: "s", variant: "grey_500", align: "center", children: description })
5106
+ ] }),
5107
+ actionLabel && onAction && /* @__PURE__ */ jsx55(Button, { label: actionLabel, onClick: onAction })
5108
+ ]
5109
+ }
5110
+ );
5111
+ };
5112
+
5081
5113
  // src/data/globalMethods.ts
5082
5114
  var formatDate = (dateString, type = "date", language = "en") => {
5083
5115
  if (!dateString) return "";
@@ -5336,6 +5368,7 @@ export {
5336
5368
  DatePicker,
5337
5369
  Divider,
5338
5370
  Drawer,
5371
+ EmptyState,
5339
5372
  FileUploadZone,
5340
5373
  Grid,
5341
5374
  Icon,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "design-zystem",
3
- "version": "1.0.240",
3
+ "version": "1.0.242",
4
4
  "description": "A React design system of importable components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",