@drivenets/design-system 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/index.cjs +15850 -10821
  3. package/dist/index.d.cts +785 -239
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.ts +785 -239
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +15835 -10822
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.css +1 -1
  10. package/package.json +13 -13
  11. package/src/components/ds-bot-button/ds-bot-button.figma.ts +38 -0
  12. package/src/components/ds-bot-button/ds-bot-button.module.scss +41 -0
  13. package/src/components/ds-bot-button/ds-bot-button.tsx +48 -0
  14. package/src/components/ds-bot-button/ds-bot-button.types.ts +33 -0
  15. package/src/components/ds-bot-button/index.ts +2 -0
  16. package/src/components/ds-bot-button/net-gen-logo.tsx +46 -0
  17. package/src/components/ds-bulk-actions/components/action-button.tsx +42 -0
  18. package/src/components/ds-bulk-actions/components/menu-entries.tsx +76 -0
  19. package/src/components/ds-bulk-actions/components/overflow.tsx +75 -0
  20. package/src/components/ds-bulk-actions/ds-bulk-actions.figma.ts +28 -0
  21. package/src/components/ds-bulk-actions/ds-bulk-actions.module.scss +199 -0
  22. package/src/components/ds-bulk-actions/ds-bulk-actions.tsx +220 -0
  23. package/src/components/ds-bulk-actions/ds-bulk-actions.types.ts +170 -0
  24. package/src/components/ds-bulk-actions/ds-bulk-actions.unit.test.ts +195 -0
  25. package/src/components/ds-bulk-actions/ds-bulk-actions.utils.ts +91 -0
  26. package/src/components/ds-bulk-actions/ds-bulk-actions.utils.unit.test.ts +134 -0
  27. package/src/components/ds-bulk-actions/hooks/compute-bulk-actions-overflow.ts +85 -0
  28. package/src/components/ds-bulk-actions/hooks/use-bulk-actions-overflow.ts +153 -0
  29. package/src/components/ds-bulk-actions/index.ts +18 -0
  30. package/src/components/ds-button-v3/ds-button-v3.module.scss +2 -2
  31. package/src/components/ds-catalog-layout/ds-catalog-layout.figma.ts +1 -1
  32. package/src/components/ds-dropdown-menu/ds-dropdown-menu.tsx +2 -0
  33. package/src/components/ds-empty-state/ds-empty-state.module.scss +16 -0
  34. package/src/components/ds-empty-state/ds-empty-state.tsx +45 -0
  35. package/src/components/ds-empty-state/ds-empty-state.types.ts +38 -0
  36. package/src/components/ds-empty-state/index.ts +3 -0
  37. package/src/components/ds-file-upload/ds-file-upload.tsx +4 -1
  38. package/src/components/ds-form-control/ds-form-control.tsx +18 -10
  39. package/src/components/ds-illustration/ds-illustration.figma.ts +34 -0
  40. package/src/components/ds-illustration/ds-illustration.module.scss +6 -0
  41. package/src/components/ds-illustration/ds-illustration.tsx +29 -0
  42. package/src/components/ds-illustration/ds-illustration.types.ts +45 -0
  43. package/src/components/ds-illustration/illustrations/configuration.tsx +51 -0
  44. package/src/components/ds-illustration/illustrations/device.tsx +133 -0
  45. package/src/components/ds-illustration/illustrations/done.tsx +107 -0
  46. package/src/components/{ds-catalog-layout/catalog-layout-empty-illustration.tsx → ds-illustration/illustrations/empty-inbox.tsx} +10 -14
  47. package/src/components/ds-illustration/illustrations/error.tsx +86 -0
  48. package/src/components/ds-illustration/illustrations/go-filter.tsx +51 -0
  49. package/src/components/ds-illustration/illustrations/illustration-clouds.tsx +10 -0
  50. package/src/components/ds-illustration/illustrations/index.ts +39 -0
  51. package/src/components/ds-illustration/illustrations/no-connection.tsx +54 -0
  52. package/src/components/ds-illustration/illustrations/no-credit-card.tsx +48 -0
  53. package/src/components/ds-illustration/illustrations/no-device.tsx +61 -0
  54. package/src/components/ds-illustration/illustrations/no-documents.tsx +52 -0
  55. package/src/components/ds-illustration/illustrations/no-gps.tsx +57 -0
  56. package/src/components/ds-illustration/illustrations/no-images.tsx +82 -0
  57. package/src/components/ds-illustration/illustrations/no-items-cart.tsx +86 -0
  58. package/src/components/ds-illustration/illustrations/no-messages.tsx +51 -0
  59. package/src/components/ds-illustration/illustrations/no-search-result.tsx +76 -0
  60. package/src/components/ds-illustration/illustrations/no-tasks.tsx +61 -0
  61. package/src/components/ds-illustration/illustrations/site.tsx +80 -0
  62. package/src/components/ds-illustration/index.ts +3 -0
  63. package/src/components/ds-main-menu/components/expanded-item/expanded-item.tsx +108 -0
  64. package/src/components/ds-main-menu/components/expanded-item/expanded-item.types.ts +8 -0
  65. package/src/components/ds-main-menu/components/expanded-item/index.ts +1 -0
  66. package/src/components/ds-main-menu/components/menu-graphic/index.ts +1 -0
  67. package/src/components/ds-main-menu/components/menu-graphic/menu-graphic.tsx +16 -0
  68. package/src/components/ds-main-menu/components/menu-graphic/menu-graphic.types.ts +7 -0
  69. package/src/components/ds-main-menu/components/tile-link/index.ts +1 -0
  70. package/src/components/ds-main-menu/components/tile-link/tile-link.tsx +85 -0
  71. package/src/components/ds-main-menu/components/tile-link/tile-link.types.ts +8 -0
  72. package/src/components/ds-main-menu/components/utility-link/index.ts +1 -0
  73. package/src/components/ds-main-menu/components/utility-link/utility-link.tsx +37 -0
  74. package/src/components/ds-main-menu/components/utility-link/utility-link.types.ts +7 -0
  75. package/src/components/ds-main-menu/ds-main-menu.figma.ts +17 -0
  76. package/src/components/ds-main-menu/ds-main-menu.module.scss +349 -0
  77. package/src/components/ds-main-menu/ds-main-menu.tsx +102 -0
  78. package/src/components/ds-main-menu/ds-main-menu.types.ts +86 -0
  79. package/src/components/ds-main-menu/ds-main-menu.utils.ts +40 -0
  80. package/src/components/ds-main-menu/index.ts +9 -0
  81. package/src/components/ds-modal/figma/ds-modal-footer.figma.ts +1 -1
  82. package/src/components/ds-popover/ds-popover.tsx +2 -1
  83. package/src/components/ds-popover/ds-popover.types.ts +7 -0
  84. package/src/components/ds-site-node/ds-site-node.tsx +2 -2
  85. package/src/components/ds-table/components/ds-table-body-virtualized/ds-table-body-virtualized.module.scss +12 -2
  86. package/src/components/ds-table/components/ds-table-body-virtualized/ds-table-body-virtualized.tsx +2 -3
  87. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.module.scss +1 -6
  88. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.tsx +6 -3
  89. package/src/components/ds-table/components/ds-table-header/ds-table-header.module.scss +18 -7
  90. package/src/components/ds-table/components/ds-table-header/ds-table-header.tsx +27 -21
  91. package/src/components/ds-table/components/ds-table-header-label.module.scss +12 -0
  92. package/src/components/ds-table/components/ds-table-header-label.tsx +28 -0
  93. package/src/components/ds-table/components/ds-table-row/ds-table-row.module.scss +0 -1
  94. package/src/components/ds-table/context/ds-table-context.tsx +8 -0
  95. package/src/components/ds-table/ds-table.module.scss +26 -16
  96. package/src/components/ds-table/ds-table.tsx +46 -14
  97. package/src/components/ds-table/ds-table.types.ts +33 -3
  98. package/src/components/ds-table/hooks/use-column-resize.ts +114 -11
  99. package/src/components/ds-table/hooks/use-scrollbar-spacer.ts +108 -0
  100. package/src/components/ds-table/hooks/use-scrollbar-spacer.unit.test.ts +26 -0
  101. package/src/components/ds-table/styles/_variables.scss +0 -2
  102. package/src/components/ds-table/utils/column-size.ts +274 -1
  103. package/src/components/ds-table/utils/column-size.unit.test.ts +157 -0
  104. package/src/components/ds-table/utils/constants.ts +13 -5
  105. package/src/components/ds-table/utils/table-columns.tsx +27 -13
  106. package/src/components/ds-table/utils/table-columns.unit.test.ts +44 -0
  107. package/src/components/ds-tag-filter/ds-tag-filter.module.scss +7 -35
  108. package/src/components/ds-tag-filter/ds-tag-filter.tsx +34 -57
  109. package/src/components/ds-tag-filter/ds-tag-filter.types.ts +2 -1
  110. package/src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts +13 -18
  111. package/src/components/ds-toggle/ds-toggle.module.scss +18 -0
  112. package/src/components/ds-toggle/ds-toggle.tsx +15 -13
  113. package/src/components/ds-tooltip/ds-tooltip.tsx +6 -2
  114. package/src/components/ds-tooltip/ds-tooltip.types.ts +17 -0
  115. package/src/components/ds-top-bar-navigation/ds-top-bar-navigation.figma.ts +35 -0
  116. package/src/components/ds-top-bar-navigation/ds-top-bar-navigation.module.scss +150 -0
  117. package/src/components/ds-top-bar-navigation/ds-top-bar-navigation.tsx +161 -0
  118. package/src/components/ds-top-bar-navigation/ds-top-bar-navigation.types.ts +117 -0
  119. package/src/components/ds-top-bar-navigation/index.ts +2 -0
  120. package/src/index.ts +6 -0
  121. package/src/utils/use-is-horizontally-overflowing.ts +35 -0
  122. package/src/components/ds-site-node/hooks/use-is-overflowing.ts +0 -31
  123. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.module.scss +0 -112
  124. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.tsx +0 -67
  125. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.types.ts +0 -41
  126. package/src/components/ds-table/components/ds-table-bulk-actions/index.ts +0 -2
@@ -114,9 +114,11 @@ const Item: React.FC<DsDropdownMenuItemProps> = ({
114
114
  children,
115
115
  className,
116
116
  style,
117
+ ...rest
117
118
  }) => {
118
119
  return (
119
120
  <Menu.Item
121
+ {...rest}
120
122
  disabled={disabled}
121
123
  className={classNames(
122
124
  styles.item,
@@ -0,0 +1,16 @@
1
+ .root {
2
+ text-align: center;
3
+ }
4
+
5
+ .illustration {
6
+ flex-shrink: 0;
7
+ width: 250px;
8
+ height: 200px;
9
+ max-width: 100%;
10
+
11
+ svg {
12
+ display: block;
13
+ width: 100%;
14
+ height: 100%;
15
+ }
16
+ }
@@ -0,0 +1,45 @@
1
+ import classNames from 'classnames';
2
+ import { DsIllustration } from '../ds-illustration';
3
+ import { DsStack } from '../ds-stack';
4
+ import { DsTypography } from '../ds-typography';
5
+ import styles from './ds-empty-state.module.scss';
6
+ import { defaultDsEmptyStateMessages, type DsEmptyStateProps } from './ds-empty-state.types';
7
+
8
+ /**
9
+ * Centered empty-state cluster: illustration, message, and an optional action.
10
+ *
11
+ * Use `noData` when the collection has no records and `noMatches` when a search
12
+ * or filter yielded zero items. Pass `action` for a consumer-owned button.
13
+ */
14
+ const DsEmptyState = ({
15
+ variant = 'noData',
16
+ message,
17
+ illustration,
18
+ action,
19
+ className,
20
+ style,
21
+ ref,
22
+ }: DsEmptyStateProps) => {
23
+ illustration ??= <DsIllustration variant={variant === 'noMatches' ? 'no-search-result' : 'empty-inbox'} />;
24
+ const resolvedMessage = message ?? defaultDsEmptyStateMessages[variant];
25
+
26
+ return (
27
+ <div ref={ref} className={classNames(styles.root, className)} style={style} role="status">
28
+ <DsStack direction="column" alignItems="center" justifyContent="center" gap="var(--xs)">
29
+ <div className={styles.illustration} aria-hidden="true">
30
+ {illustration}
31
+ </div>
32
+ <DsStack direction="column" alignItems="center" gap="var(--lg)">
33
+ <DsTypography variant="body-md-reg" color="var(--color-dap-gray-700)">
34
+ {resolvedMessage}
35
+ </DsTypography>
36
+ {action}
37
+ </DsStack>
38
+ </DsStack>
39
+ </div>
40
+ );
41
+ };
42
+
43
+ DsEmptyState.displayName = 'DsEmptyState';
44
+
45
+ export default DsEmptyState;
@@ -0,0 +1,38 @@
1
+ import type { CSSProperties, ReactNode, Ref } from 'react';
2
+
3
+ export const dsEmptyStateVariants = ['noData', 'noMatches'] as const;
4
+ export type DsEmptyStateVariant = (typeof dsEmptyStateVariants)[number];
5
+
6
+ export const defaultDsEmptyStateMessages: Record<DsEmptyStateVariant, string> = Object.freeze({
7
+ noData: 'No data to display.',
8
+ noMatches: 'No matching records found.',
9
+ });
10
+
11
+ export interface DsEmptyStateProps {
12
+ /**
13
+ * Which empty-state reason to present.
14
+ * @default 'noData'
15
+ */
16
+ variant?: DsEmptyStateVariant;
17
+
18
+ /**
19
+ * Overrides the default copy for the active variant.
20
+ */
21
+ message?: string;
22
+
23
+ /**
24
+ * Replaces the bundled illustration for the active variant.
25
+ */
26
+ illustration?: ReactNode;
27
+
28
+ /**
29
+ * Optional action, typically a button. Omitted from the table's inferred default.
30
+ */
31
+ action?: ReactNode;
32
+
33
+ className?: string;
34
+
35
+ style?: CSSProperties;
36
+
37
+ ref?: Ref<HTMLDivElement>;
38
+ }
@@ -0,0 +1,3 @@
1
+ export { default as DsEmptyState } from './ds-empty-state';
2
+ export type { DsEmptyStateProps, DsEmptyStateVariant } from './ds-empty-state.types';
3
+ export { dsEmptyStateVariants } from './ds-empty-state.types';
@@ -4,7 +4,10 @@ import { FileUpload } from './components/file-upload';
4
4
  import { useFileUpload } from './hooks';
5
5
 
6
6
  /**
7
- * Design system File Upload component (with state management)
7
+ * File upload with built-in state management (progress, retries, cancellation).
8
+ *
9
+ * Pass an `adapter` implementing `FileUploadAdapter` to connect it to your backend:
10
+ * `const adapter = getSimpleFileUploadAdapter('/api/upload')`.
8
11
  */
9
12
  const DsFileUpload: React.FC<DsFileUploadProps> = ({
10
13
  adapter,
@@ -28,13 +28,21 @@ const useFormControlContext = () => {
28
28
  * into any component that expects an 'id' prop.
29
29
  *
30
30
  * @param Component - The component to wrap with form control context
31
+ * @param displayName - Compound display name so Storybook Show code renders the member name
31
32
  * @returns A new component that automatically receives the controlId
32
33
  */
33
- const controlify = <TProps extends { id?: string }>(Component: ComponentType<TProps>) => {
34
- return function WrappedFormControl(props: TProps) {
34
+ const controlify = <TProps extends { id?: string }>(
35
+ Component: ComponentType<TProps>,
36
+ displayName: string,
37
+ ) => {
38
+ const WrappedFormControl = (props: TProps) => {
35
39
  const { controlId } = useFormControlContext();
36
40
  return <Component id={controlId} {...props} />;
37
41
  };
42
+
43
+ WrappedFormControl.displayName = displayName;
44
+
45
+ return WrappedFormControl;
38
46
  };
39
47
 
40
48
  const DsFormControlDescription: React.FC<DsFormControlDescriptionProps> = ({ children, className }) => {
@@ -100,15 +108,15 @@ DsFormControlDescription.displayName = 'DsFormControl.Description';
100
108
 
101
109
  const DsFormControl = Object.assign(DsFormControlRoot, {
102
110
  displayName: 'DsFormControl',
103
- TextInput: controlify(DsTextInput),
104
- NumberInput: controlify(DsNumberInput),
105
- PasswordInput: controlify(DsPasswordInput),
111
+ TextInput: controlify(DsTextInput, 'DsFormControl.TextInput'),
112
+ NumberInput: controlify(DsNumberInput, 'DsFormControl.NumberInput'),
113
+ PasswordInput: controlify(DsPasswordInput, 'DsFormControl.PasswordInput'),
106
114
  /** @deprecated DsDateInput is deprecated. Use DsDatePicker or DsDateRangePicker instead. */
107
- DateInput: controlify(DsDateInput),
108
- DatePicker: controlify(DsDatePicker),
109
- TimePicker: controlify(DsTimePicker),
110
- Textarea: controlify(DsTextarea),
111
- Select: controlify(DsSelect),
115
+ DateInput: controlify(DsDateInput, 'DsFormControl.DateInput'),
116
+ DatePicker: controlify(DsDatePicker, 'DsFormControl.DatePicker'),
117
+ TimePicker: controlify(DsTimePicker, 'DsFormControl.TimePicker'),
118
+ Textarea: controlify(DsTextarea, 'DsFormControl.Textarea'),
119
+ Select: controlify(DsSelect, 'DsFormControl.Select'),
112
120
  Description: DsFormControlDescription,
113
121
  });
114
122
 
@@ -0,0 +1,34 @@
1
+ // url=https://www.figma.com/design/nha3m67y7S57cHCSuQO2gp/DAP-Design-System-1.2?node-id=27983-34300
2
+ // source=https://github.com/drivenets/design-system/tree/main/packages/design-system/src/components/ds-illustration
3
+ // component=DsIllustration
4
+ import figma from 'figma';
5
+
6
+ const instance = figma.selectedInstance;
7
+
8
+ const variant =
9
+ instance.getEnum('Property 1', {
10
+ Done: 'done',
11
+ EmptyInbox: 'empty-inbox',
12
+ Error: 'error',
13
+ NoConnection: 'no-connection',
14
+ NoCreditCard: 'no-credit-card',
15
+ NoDocuments: 'no-documents',
16
+ NoGPS: 'no-gps',
17
+ NoImages: 'no-images',
18
+ NoItemsCart: 'no-items-cart',
19
+ NoMessages: 'no-messages',
20
+ NoSearchResult: 'no-search-result',
21
+ NoTasks: 'no-tasks',
22
+ 'No Device': 'no-device',
23
+ 'Go Filter': 'go-filter',
24
+ Device: 'device',
25
+ Site: 'site',
26
+ configuration: 'configuration',
27
+ }) ?? 'no-tasks';
28
+
29
+ export default {
30
+ example: figma.code`<DsIllustration variant="${variant}" />`,
31
+ imports: ["import { DsIllustration } from '@drivenets/design-system';"],
32
+ id: 'ds-illustration',
33
+ metadata: { nestable: true },
34
+ } satisfies figma.Template;
@@ -0,0 +1,6 @@
1
+ .root {
2
+ display: block;
3
+ width: 250px;
4
+ height: 200px;
5
+ max-width: 100%;
6
+ }
@@ -0,0 +1,29 @@
1
+ import classNames from 'classnames';
2
+ import styles from './ds-illustration.module.scss';
3
+ import { illustrations } from './illustrations';
4
+ import type { DsIllustrationProps } from './ds-illustration.types';
5
+
6
+ const DsIllustration = ({
7
+ variant = 'no-tasks',
8
+ className,
9
+ style,
10
+ ref,
11
+ 'aria-hidden': ariaHidden = true,
12
+ 'aria-label': ariaLabel,
13
+ }: DsIllustrationProps) => {
14
+ const Svg = illustrations[variant];
15
+
16
+ return (
17
+ <Svg
18
+ ref={ref}
19
+ className={classNames(styles.root, className)}
20
+ style={style}
21
+ aria-hidden={ariaHidden}
22
+ aria-label={ariaLabel}
23
+ />
24
+ );
25
+ };
26
+
27
+ DsIllustration.displayName = 'DsIllustration';
28
+
29
+ export default DsIllustration;
@@ -0,0 +1,45 @@
1
+ import type { CSSProperties, Ref } from 'react';
2
+
3
+ export const dsIllustrationVariants = [
4
+ 'configuration',
5
+ 'device',
6
+ 'done',
7
+ 'empty-inbox',
8
+ 'error',
9
+ 'go-filter',
10
+ 'no-connection',
11
+ 'no-credit-card',
12
+ 'no-device',
13
+ 'no-documents',
14
+ 'no-gps',
15
+ 'no-images',
16
+ 'no-items-cart',
17
+ 'no-messages',
18
+ 'no-search-result',
19
+ 'no-tasks',
20
+ 'site',
21
+ ] as const;
22
+
23
+ export type DsIllustrationVariant = (typeof dsIllustrationVariants)[number];
24
+
25
+ export interface DsIllustrationProps {
26
+ /**
27
+ * Which empty-screen tile to render.
28
+ * @default 'no-tasks'
29
+ */
30
+ variant?: DsIllustrationVariant;
31
+
32
+ className?: string;
33
+
34
+ style?: CSSProperties;
35
+
36
+ ref?: Ref<SVGSVGElement>;
37
+
38
+ /**
39
+ * Decorative by default. Set `false` with `aria-label` when the tile is informative.
40
+ * @default true
41
+ */
42
+ 'aria-hidden'?: boolean | 'true' | 'false';
43
+
44
+ 'aria-label'?: string;
45
+ }
@@ -0,0 +1,51 @@
1
+ import type { FC, SVGProps } from 'react';
2
+ import { IllustrationClouds } from './illustration-clouds';
3
+
4
+ export const ConfigurationIllustration: FC<SVGProps<SVGSVGElement>> = (props) => (
5
+ <svg
6
+ width="250"
7
+ height="200"
8
+ viewBox="0 0 250 200"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ {...props}
12
+ >
13
+ <rect width="250" height="200" fill="var(--background)" />
14
+ <IllustrationClouds />
15
+ <path
16
+ d="M140.238 48.25C140.621 48.2501 140.937 48.5362 140.982 48.9062L140.987 48.9482L140.995 48.9912L142.683 57.7295L142.821 58.4473L143.515 58.6777C144.17 58.8963 144.82 59.1328 145.466 59.3857L146.11 59.6445C146.961 59.9964 147.798 60.3775 148.622 60.7949L149.278 61.127L149.888 60.7148L157.375 55.6494C157.688 55.4384 158.104 55.495 158.351 55.7715L158.375 55.7998L158.401 55.8252L170.512 67.9355C170.777 68.2026 170.8 68.6213 170.579 68.9121L170.559 68.9395L170.539 68.9678L165.535 76.3623L165.124 76.9688L165.453 77.624C165.866 78.4456 166.252 79.2849 166.603 80.1338L166.604 80.1357C166.955 80.9829 167.28 81.8519 167.57 82.7344L167.8 83.4316L168.521 83.5713L177.393 85.2822H177.394C177.749 85.3506 178 85.6645 178 86.0156L178.004 103.253C178.004 103.636 177.718 103.952 177.348 103.997L177.306 104.002L177.263 104.01L168.521 105.697L167.8 105.837L167.57 106.534C167.284 107.404 166.959 108.269 166.606 109.123L166.604 109.128C166.259 109.972 165.874 110.807 165.457 111.638L165.128 112.292L165.539 112.898L170.603 120.383V120.384C170.782 120.651 170.769 120.989 170.598 121.234L170.515 121.334L158.323 133.525C158.058 133.791 157.64 133.815 157.349 133.599L157.326 133.581L157.303 133.565L149.889 128.546L149.281 128.135L148.626 128.464C147.796 128.881 146.957 129.267 146.119 129.614H146.118C145.273 129.965 144.408 130.286 143.523 130.577L142.826 130.807L142.687 131.528L140.976 140.399V140.4C140.907 140.755 140.594 141.007 140.242 141.007L123.004 141.011L122.864 140.998C122.547 140.938 122.301 140.679 122.261 140.352L122.255 140.309L122.247 140.267L120.563 131.528L120.425 130.807L119.727 130.577C118.853 130.29 117.992 129.968 117.152 129.62L117.055 129.577L117.029 129.567L116.419 129.307C115.811 129.041 115.211 128.758 114.62 128.458L113.963 128.125L113.354 128.538L105.873 133.604L105.872 133.605C105.576 133.806 105.181 133.763 104.936 133.515L104.931 133.51L92.7432 121.326L92.7383 121.321L92.6543 121.222C92.4826 120.976 92.4752 120.639 92.6494 120.38L97.7148 112.895L98.126 112.288L97.7969 111.633C97.3842 110.811 96.9983 109.972 96.6475 109.123L96.6465 109.121C96.2943 108.273 95.9697 107.408 95.6797 106.526L95.4502 105.829L94.7295 105.689L85.8623 103.979H85.8604C85.5057 103.91 85.254 103.597 85.2539 103.245L85.25 86.0068L85.2627 85.8672C85.3222 85.5505 85.581 85.3038 85.9092 85.2637L85.9521 85.2578L85.9941 85.25L94.7324 83.5664L95.4531 83.4277L95.6826 82.7314C95.9734 81.8517 96.2992 80.9802 96.6484 80.1299L96.6475 80.1289C96.9934 79.2907 97.3796 78.4579 97.7998 77.625L98.1309 76.9688L97.7188 76.3604L92.6523 68.876C92.4415 68.5611 92.502 68.1441 92.7734 67.9043L92.8018 67.8789L92.8291 67.8516L104.934 55.7422C105.199 55.4772 105.617 55.4527 105.909 55.6699L105.932 55.6865L105.955 55.7021L113.365 60.7178L113.973 61.1299L114.629 60.7988C115.457 60.381 116.286 59.9975 117.123 59.6533L117.214 59.6191L117.228 59.6143L117.24 59.6084C118.062 59.2715 118.898 58.9606 119.738 58.6807L120.432 58.4502L120.57 57.7324L122.281 48.8652V48.8633C122.349 48.5088 122.663 48.257 123.015 48.2568V48.2529L140.238 48.25Z"
17
+ fill="var(--background)"
18
+ stroke="var(--color-dap-blue-700)"
19
+ strokeWidth="2.5"
20
+ />
21
+ <path
22
+ fillRule="evenodd"
23
+ clipRule="evenodd"
24
+ d="M154.29 112.995C155.197 111.885 156.012 110.723 156.736 109.521C158.327 106.877 159.474 104.036 160.175 101.107C160.883 98.1449 161.136 95.0927 160.931 92.0628C160.752 89.4188 160.224 86.7918 159.347 84.2564C158.476 81.741 157.262 79.3156 155.701 77.0533C154.772 75.7052 153.719 74.4149 152.544 73.198C150.818 71.4113 148.925 69.8838 146.914 68.6165C144.753 67.2549 142.456 66.1935 140.082 65.4337C137.11 64.4822 134.018 64.0035 130.926 64C128.519 63.9973 126.113 64.2823 123.762 64.856C121.116 65.5018 118.54 66.5137 116.115 67.893C113.983 69.1055 111.968 70.602 110.123 72.3835C107.804 74.6223 105.926 77.146 104.49 79.8469C103.084 82.4912 102.102 85.3053 101.546 88.1883C100.972 91.1584 100.85 94.2016 101.182 97.2072C101.612 101.103 102.803 104.935 104.759 108.464C106.011 110.722 107.577 112.856 109.456 114.802C112.44 117.892 115.924 120.206 119.655 121.741C124.193 123.607 129.096 124.319 133.912 123.869C137.953 123.492 141.933 122.296 145.583 120.276"
25
+ fill="var(--background)"
26
+ />
27
+ <path
28
+ d="M154.29 112.995C155.197 111.885 156.012 110.723 156.736 109.521C158.327 106.877 159.474 104.036 160.175 101.107C160.883 98.1449 161.136 95.0927 160.931 92.0628C160.752 89.4188 160.224 86.7918 159.347 84.2564C158.476 81.741 157.262 79.3156 155.701 77.0533C154.772 75.7052 153.719 74.4149 152.544 73.198C150.818 71.4113 148.925 69.8838 146.914 68.6165C144.753 67.2549 142.456 66.1935 140.082 65.4337C137.11 64.4822 134.018 64.0035 130.926 64C128.519 63.9973 126.113 64.2823 123.762 64.856C121.116 65.5018 118.54 66.5137 116.115 67.893C113.983 69.1055 111.968 70.602 110.123 72.3835C107.804 74.6223 105.926 77.146 104.49 79.8469C103.084 82.4912 102.102 85.3053 101.546 88.1883C100.972 91.1584 100.85 94.2016 101.182 97.2072C101.612 101.103 102.803 104.935 104.759 108.464C106.011 110.722 107.577 112.856 109.456 114.802C112.44 117.892 115.924 120.206 119.655 121.741C124.193 123.607 129.096 124.319 133.912 123.869C137.953 123.492 141.933 122.296 145.583 120.276"
29
+ stroke="var(--color-dap-blue-700)"
30
+ strokeWidth="2.5"
31
+ strokeLinecap="round"
32
+ strokeLinejoin="round"
33
+ />
34
+ <path
35
+ d="M157 95.62C156.823 95.6232 156.645 95.6248 156.468 95.6248C140.834 95.6248 128.034 83.4367 126.961 68C114.518 69.9628 105 80.7849 105 93.8412C105 108.288 116.654 120 131.03 120C144.81 120 156.09 109.238 157 95.62Z"
36
+ fill="var(--color-dap-blue-075)"
37
+ />
38
+ <path
39
+ d="M124.755 71.4868C123.483 71.9639 122.24 72.5437 121.04 73.2264C119.175 74.2873 117.412 75.5966 115.798 77.1553C115.136 77.7943 114.515 78.4597 113.936 79.1485"
40
+ stroke="var(--color-dap-blue-400)"
41
+ strokeWidth="2.5"
42
+ strokeLinecap="round"
43
+ />
44
+ <path
45
+ d="M111.142 82.5464C110.682 83.2428 110.258 83.9568 109.87 84.6854C109.584 85.2236 109.318 85.7698 109.072 86.3229"
46
+ stroke="var(--color-dap-blue-400)"
47
+ strokeWidth="2.5"
48
+ strokeLinecap="round"
49
+ />
50
+ </svg>
51
+ );
@@ -0,0 +1,133 @@
1
+ import type { FC, SVGProps } from 'react';
2
+ import { IllustrationClouds } from './illustration-clouds';
3
+
4
+ export const DeviceIllustration: FC<SVGProps<SVGSVGElement>> = (props) => (
5
+ <svg
6
+ width="250"
7
+ height="200"
8
+ viewBox="0 0 250 200"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ {...props}
12
+ >
13
+ <rect width="250" height="200" fill="var(--background)" />
14
+ <IllustrationClouds />
15
+ <path
16
+ d="M143.375 63H109.625C106.518 63 104 65.2565 104 68.04V78.96C104 81.7435 106.518 84 109.625 84H143.375C146.482 84 149 81.7435 149 78.96V68.04C149 65.2565 146.482 63 143.375 63Z"
17
+ fill="var(--background)"
18
+ />
19
+ <path
20
+ d="M113.25 113H84.75C82.1266 113 80 115.364 80 118.28V129.72C80 132.636 82.1266 135 84.75 135H113.25C115.873 135 118 132.636 118 129.72V118.28C118 115.364 115.873 113 113.25 113Z"
21
+ fill="var(--background)"
22
+ />
23
+ <path
24
+ d="M169.25 113H140.75C138.127 113 136 115.364 136 118.28V129.72C136 132.636 138.127 135 140.75 135H169.25C171.873 135 174 132.636 174 129.72V118.28C174 115.364 171.873 113 169.25 113Z"
25
+ fill="var(--background)"
26
+ />
27
+ <path
28
+ d="M93 109V103H156V109"
29
+ stroke="var(--color-dap-blue-300)"
30
+ strokeWidth="3"
31
+ strokeLinecap="square"
32
+ strokeLinejoin="round"
33
+ />
34
+ <path
35
+ d="M125 94L125 102"
36
+ stroke="var(--color-dap-blue-300)"
37
+ strokeWidth="3"
38
+ strokeLinecap="square"
39
+ strokeLinejoin="round"
40
+ />
41
+ <path
42
+ d="M144.125 62.625H105.875C102.354 62.625 99.5 65.4792 99.5 69V82.8125C99.5 86.3333 102.354 89.1875 105.875 89.1875H144.125C147.646 89.1875 150.5 86.3333 150.5 82.8125V69C150.5 65.4792 147.646 62.625 144.125 62.625Z"
43
+ stroke="var(--color-dap-blue-700)"
44
+ strokeWidth="2.5"
45
+ strokeLinecap="round"
46
+ strokeLinejoin="round"
47
+ />
48
+ <path
49
+ d="M112.25 113.625H82.5C78.9792 113.625 76.125 116.479 76.125 120V133.813C76.125 137.333 78.9792 140.188 82.5 140.188H112.25C115.771 140.188 118.625 137.333 118.625 133.813V120C118.625 116.479 115.771 113.625 112.25 113.625Z"
50
+ stroke="var(--color-dap-blue-700)"
51
+ strokeWidth="2.5"
52
+ strokeLinecap="round"
53
+ strokeLinejoin="round"
54
+ />
55
+ <path
56
+ d="M167.5 113.625H137.75C134.229 113.625 131.375 116.479 131.375 120V133.813C131.375 137.333 134.229 140.188 137.75 140.188H167.5C171.021 140.188 173.875 137.333 173.875 133.813V120C173.875 116.479 171.021 113.625 167.5 113.625Z"
57
+ stroke="var(--color-dap-blue-700)"
58
+ strokeWidth="2.5"
59
+ strokeLinecap="round"
60
+ strokeLinejoin="round"
61
+ />
62
+ <path
63
+ d="M139 70C140.795 70 142.25 71.4551 142.25 73.25C142.25 75.0449 140.795 76.5 139 76.5C137.205 76.5 135.75 75.0449 135.75 73.25C135.75 71.4551 137.205 70 139 70Z"
64
+ stroke="var(--color-dap-blue-700)"
65
+ strokeWidth="2"
66
+ strokeLinecap="round"
67
+ strokeLinejoin="round"
68
+ />
69
+ <path
70
+ d="M113.5 72.6129V80.2629"
71
+ stroke="var(--color-dap-blue-300)"
72
+ strokeWidth="3"
73
+ strokeLinecap="round"
74
+ strokeLinejoin="round"
75
+ />
76
+ <path
77
+ d="M123.062 72.6129V80.2629"
78
+ stroke="var(--color-dap-blue-300)"
79
+ strokeWidth="3"
80
+ strokeLinecap="round"
81
+ strokeLinejoin="round"
82
+ />
83
+ <path
84
+ d="M109.25 121C111.045 121 112.5 122.455 112.5 124.25C112.5 126.045 111.045 127.5 109.25 127.5C107.455 127.5 106 126.045 106 124.25C106 122.455 107.455 121 109.25 121Z"
85
+ stroke="var(--color-dap-blue-700)"
86
+ strokeWidth="2"
87
+ strokeLinecap="round"
88
+ strokeLinejoin="round"
89
+ />
90
+ <path
91
+ d="M88 123.613V131.263"
92
+ stroke="var(--color-dap-blue-300)"
93
+ strokeWidth="3"
94
+ strokeLinecap="round"
95
+ strokeLinejoin="round"
96
+ />
97
+ <path
98
+ d="M97.5625 123.613V131.263"
99
+ stroke="var(--color-dap-blue-300)"
100
+ strokeWidth="3"
101
+ strokeLinecap="round"
102
+ strokeLinejoin="round"
103
+ />
104
+ <path
105
+ d="M164.5 121C166.295 121 167.75 122.455 167.75 124.25C167.75 126.045 166.295 127.5 164.5 127.5C162.705 127.5 161.25 126.045 161.25 124.25C161.25 122.455 162.705 121 164.5 121Z"
106
+ stroke="var(--color-dap-blue-700)"
107
+ strokeWidth="2"
108
+ strokeLinecap="round"
109
+ strokeLinejoin="round"
110
+ />
111
+ <path
112
+ d="M143.25 123.613V131.263"
113
+ stroke="var(--color-dap-blue-300)"
114
+ strokeWidth="3"
115
+ strokeLinecap="round"
116
+ strokeLinejoin="round"
117
+ />
118
+ <path
119
+ d="M152.812 123.613V131.263"
120
+ stroke="var(--color-dap-blue-300)"
121
+ strokeWidth="3"
122
+ strokeLinecap="round"
123
+ strokeLinejoin="round"
124
+ />
125
+ <path
126
+ d="M99 34.3027L110.1 46.7559M151.1 34.3027L140 46.7559L151.1 34.3027ZM125 30V46.7559V30Z"
127
+ stroke="var(--color-dap-blue-300)"
128
+ strokeWidth="2.5"
129
+ strokeLinecap="round"
130
+ strokeLinejoin="round"
131
+ />
132
+ </svg>
133
+ );
@@ -0,0 +1,107 @@
1
+ import type { FC, SVGProps } from 'react';
2
+ import { IllustrationClouds } from './illustration-clouds';
3
+
4
+ export const DoneIllustration: FC<SVGProps<SVGSVGElement>> = (props) => (
5
+ <svg
6
+ width="250"
7
+ height="200"
8
+ viewBox="0 0 250 200"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ {...props}
12
+ >
13
+ <rect width="250" height="200" fill="var(--background)" />
14
+ <IllustrationClouds />
15
+ <path
16
+ d="M172.5 45V51"
17
+ stroke="var(--color-dap-blue-300)"
18
+ strokeWidth="2.5"
19
+ strokeLinecap="round"
20
+ strokeLinejoin="round"
21
+ />
22
+ <path
23
+ d="M172.5 59V65"
24
+ stroke="var(--color-dap-blue-300)"
25
+ strokeWidth="2.5"
26
+ strokeLinecap="round"
27
+ strokeLinejoin="round"
28
+ />
29
+ <path
30
+ d="M162.5 55H168.5"
31
+ stroke="var(--color-dap-blue-300)"
32
+ strokeWidth="2.5"
33
+ strokeLinecap="round"
34
+ strokeLinejoin="round"
35
+ />
36
+ <path
37
+ d="M176.5 55H182.5"
38
+ stroke="var(--color-dap-blue-300)"
39
+ strokeWidth="2.5"
40
+ strokeLinecap="round"
41
+ strokeLinejoin="round"
42
+ />
43
+ <path
44
+ d="M89.5 148V152"
45
+ stroke="var(--color-dap-blue-300)"
46
+ strokeWidth="2.5"
47
+ strokeLinecap="round"
48
+ strokeLinejoin="round"
49
+ />
50
+ <path
51
+ d="M89.5 160V164"
52
+ stroke="var(--color-dap-blue-300)"
53
+ strokeWidth="2.5"
54
+ strokeLinecap="round"
55
+ strokeLinejoin="round"
56
+ />
57
+ <path
58
+ d="M81.5 156H85.5"
59
+ stroke="var(--color-dap-blue-300)"
60
+ strokeWidth="2.5"
61
+ strokeLinecap="round"
62
+ strokeLinejoin="round"
63
+ />
64
+ <path
65
+ d="M93.5 156H97.5"
66
+ stroke="var(--color-dap-blue-300)"
67
+ strokeWidth="2.5"
68
+ strokeLinecap="round"
69
+ strokeLinejoin="round"
70
+ />
71
+ <path
72
+ fillRule="evenodd"
73
+ clipRule="evenodd"
74
+ d="M160.711 131.126C162.102 129.423 163.352 127.642 164.461 125.799C166.901 121.744 168.66 117.388 169.734 112.897C170.821 108.356 171.209 103.676 170.894 99.0296C170.62 94.9756 169.811 90.9475 168.465 87.0598C167.131 83.2028 165.268 79.484 162.875 76.015C161.45 73.9479 159.836 71.9696 158.034 70.1036C155.388 67.364 152.486 65.0219 149.402 63.0787C146.089 60.9908 142.566 59.3634 138.926 58.1984C134.368 56.7393 129.628 56.0054 124.886 56C121.197 55.9959 117.507 56.4328 113.902 57.3125C109.845 58.3028 105.895 59.8543 102.177 61.9692C98.9076 63.8284 95.817 66.123 92.988 68.8547C89.4328 72.2875 86.553 76.1572 84.3512 80.2985C82.1956 84.3531 80.6899 88.6682 79.8366 93.0887C78.9574 97.6429 78.7706 102.309 79.2789 106.918C79.9378 112.891 81.7643 118.768 84.7644 124.179C86.684 127.641 89.0842 130.912 91.9663 133.896C96.5416 138.634 101.883 142.183 107.604 144.535C114.562 147.397 122.081 148.489 129.465 147.8C135.662 147.221 141.765 145.387 147.361 142.29"
75
+ fill="var(--background)"
76
+ stroke="var(--color-dap-blue-700)"
77
+ strokeWidth="2.5"
78
+ strokeLinecap="round"
79
+ strokeLinejoin="round"
80
+ />
81
+ <path
82
+ d="M150.701 140.378C153.607 138.508 156.191 136.175 157.872 134.291"
83
+ stroke="var(--color-dap-blue-700)"
84
+ strokeWidth="2.5"
85
+ strokeLinecap="round"
86
+ />
87
+ <path
88
+ d="M167 104.617C166.714 104.622 166.427 104.625 166.14 104.625C140.886 104.625 120.209 84.9362 118.476 60C98.3752 63.1706 83 80.6526 83 101.743C83 125.081 101.825 144 125.048 144C147.309 144 165.53 126.615 167 104.617Z"
89
+ fill="var(--color-dap-blue-075)"
90
+ />
91
+ <path
92
+ fillRule="evenodd"
93
+ clipRule="evenodd"
94
+ d="M109.023 100.373C107.8 99.2433 105.903 99.33 104.785 100.567C103.668 101.803 103.753 103.721 104.977 104.851L119.096 117.889C120.808 119.47 123.465 119.349 125.029 117.618C125.095 117.544 125.095 117.544 125.158 117.469L145.307 92.9716C146.366 91.6837 146.192 89.7716 144.918 88.7008C143.644 87.63 141.752 87.806 140.693 89.0939L121.75 112.125L109.023 100.373Z"
95
+ fill="var(--background)"
96
+ stroke="var(--color-dap-blue-700)"
97
+ strokeWidth="2.5"
98
+ strokeLinecap="round"
99
+ />
100
+ <path
101
+ d="M113.824 66.4131C111.874 67.1447 109.969 68.0338 108.128 69.0806C105.269 70.7072 102.565 72.7149 100.09 75.1049C99.0754 76.0846 98.1237 77.105 97.235 78.161M94.4851 81.8378C93.7785 82.9057 93.1281 84.0004 92.5342 85.1176C92.0956 85.9428 91.6877 86.7803 91.3106 87.6285"
102
+ stroke="var(--color-dap-blue-300)"
103
+ strokeWidth="2.5"
104
+ strokeLinecap="round"
105
+ />
106
+ </svg>
107
+ );
@@ -1,6 +1,7 @@
1
1
  import type { FC, SVGProps } from 'react';
2
+ import { IllustrationClouds } from './illustration-clouds';
2
3
 
3
- export const CatalogLayoutEmptyIllustration: FC<SVGProps<SVGSVGElement>> = (props) => (
4
+ export const EmptyInboxIllustration: FC<SVGProps<SVGSVGElement>> = (props) => (
4
5
  <svg
5
6
  width="250"
6
7
  height="200"
@@ -9,46 +10,41 @@ export const CatalogLayoutEmptyIllustration: FC<SVGProps<SVGSVGElement>> = (prop
9
10
  xmlns="http://www.w3.org/2000/svg"
10
11
  {...props}
11
12
  >
12
- <rect width="250" height="200" fill="white" />
13
- <path
14
- fillRule="evenodd"
15
- clipRule="evenodd"
16
- d="M63 134H154C154.515 134 155.017 133.944 155.5 133.839C155.983 133.944 156.485 134 157 134H209C212.866 134 216 130.866 216 127C216 123.134 212.866 120 209 120H203C199.134 120 196 116.866 196 113C196 109.134 199.134 106 203 106H222C225.866 106 229 102.866 229 99C229 95.134 225.866 92 222 92H200C203.866 92 207 88.866 207 85C207 81.134 203.866 78 200 78H136C139.866 78 143 74.866 143 71C143 67.134 139.866 64 136 64H79C75.134 64 72 67.134 72 71C72 74.866 75.134 78 79 78H39C35.134 78 32 81.134 32 85C32 88.866 35.134 92 39 92H64C67.866 92 71 95.134 71 99C71 102.866 67.866 106 64 106H24C20.134 106 17 109.134 17 113C17 116.866 20.134 120 24 120H63C59.134 120 56 123.134 56 127C56 130.866 59.134 134 63 134ZM226 134C229.866 134 233 130.866 233 127C233 123.134 229.866 120 226 120C222.134 120 219 123.134 219 127C219 130.866 222.134 134 226 134Z"
17
- fill="#F3F5FA"
18
- />
13
+ <rect width="250" height="200" fill="var(--background)" />
14
+ <IllustrationClouds />
19
15
  <path
20
16
  fillRule="evenodd"
21
17
  clipRule="evenodd"
22
18
  d="M113.119 112.307C113.04 112.86 113 113.425 113 114C113 120.627 118.373 126 125 126C131.627 126 137 120.627 137 114C137 113.425 136.96 112.86 136.881 112.307H166V139C166 140.657 164.657 142 163 142H87C85.3431 142 84 140.657 84 139V112.307H113.119Z"
23
- fill="white"
19
+ fill="var(--background)"
24
20
  />
25
21
  <path
26
22
  fillRule="evenodd"
27
23
  clipRule="evenodd"
28
24
  d="M138 112C138 119.18 132.18 125 125 125C117.82 125 112 119.18 112 112C112 111.767 112.006 111.536 112.018 111.307H84L93.5604 83.0389C93.9726 81.8202 95.1159 81 96.4023 81H153.598C154.884 81 156.027 81.8202 156.44 83.0389L166 111.307H137.982C137.994 111.536 138 111.767 138 112Z"
29
- fill="white"
25
+ fill="var(--background)"
30
26
  />
31
27
  <path
32
28
  fillRule="evenodd"
33
29
  clipRule="evenodd"
34
30
  d="M136.098 112.955C136.098 118.502 131.129 124 125 124C118.871 124 113.902 118.502 113.902 112.955C113.902 112.775 113.908 111.596 113.918 111.419H93L101.161 91.5755C101.513 90.6338 102.489 90 103.587 90H146.413C147.511 90 148.487 90.6338 148.839 91.5755L157 111.419H136.082C136.092 111.596 136.098 112.775 136.098 112.955Z"
35
- fill="#C7D8FF"
31
+ fill="var(--color-dap-blue-200)"
36
32
  />
37
33
  <path
38
34
  d="M85.25 111.512V138C85.25 138.966 86.0335 139.75 87 139.75H163C163.966 139.75 164.75 138.966 164.75 138V111.512L155.255 83.4393C155.015 82.7285 154.348 82.25 153.598 82.25H96.4023C95.6519 82.25 94.985 82.7285 94.7446 83.4393L85.25 111.512Z"
39
- stroke="#0064FA"
35
+ stroke="var(--color-dap-blue-700)"
40
36
  strokeWidth="2.5"
41
37
  />
42
38
  <path
43
39
  d="M98 111C101.937 111 106.185 111 110.745 111C112.621 111 112.621 112.319 112.621 113C112.621 119.627 118.117 125 124.897 125C131.677 125 137.173 119.627 137.173 113C137.173 112.319 137.173 111 139.05 111H164M90.5737 111H93H90.5737Z"
44
- stroke="#0064FA"
40
+ stroke="var(--color-dap-blue-700)"
45
41
  strokeWidth="2.5"
46
42
  strokeLinecap="round"
47
43
  strokeLinejoin="round"
48
44
  />
49
45
  <path
50
46
  d="M150.1 58.3027L139 70.7559M124.1 54V70.7559V54ZM98 58.3027L109.1 70.7559L98 58.3027Z"
51
- stroke="#AFBFE4"
47
+ stroke="var(--color-dap-blue-300)"
52
48
  strokeWidth="2.5"
53
49
  strokeLinecap="round"
54
50
  strokeLinejoin="round"