@stihl-design-system/components 1.0.0-RC.41 → 1.0.0-RC.43

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 (167) hide show
  1. package/{accordion.CiiPLwYQ.js → accordion.CJYNJWAm.js} +2 -2
  2. package/action-card-example-image-1.webp +0 -0
  3. package/{actionbutton.DKb4ph1c.js → actionbutton.BLKEsCUm.js} +3 -3
  4. package/actioncard.WFXhVqOa.js +9 -0
  5. package/actioncard.d.ts +2 -0
  6. package/{actionlink.DEGta2h9.js → actionlink.xJDPIikL.js} +3 -3
  7. package/arialiveregions.BF6mUlPU.js +23 -0
  8. package/assets/ActionCard.C85bSGRa.css +1 -0
  9. package/assets/LinkCard.fwyPSY19.css +1 -0
  10. package/assets/Toast.CGl8z6mX.css +1 -0
  11. package/assets/filelist.CHVupL8T.css +1 -0
  12. package/assets/filepreview.2cdH-1Xs.css +1 -0
  13. package/assets/progressindicator.Cbbzo5-b.css +1 -0
  14. package/{banner.S_c1UQJe.js → banner.CYahlug-.js} +1 -1
  15. package/{breadcrumb.DiuuVblR.js → breadcrumb.Bg86bTsh.js} +3 -3
  16. package/{button.Z7Mmvwhv.js → button.oshwTInZ.js} +4 -4
  17. package/{buttonround.Bqi8Ej-y.js → buttonround.CPTvQIcE.js} +3 -3
  18. package/{checkbox.DtSSduSH.js → checkbox.BTnK5VzM.js} +3 -3
  19. package/{checkboxgroup.CSP1DOCW.js → checkboxgroup.DESMv2S7.js} +2 -2
  20. package/{chip.CyypeY5M.js → chip.BWL_yfeA.js} +3 -3
  21. package/chipgroup.DvoNDnTN.js +213 -0
  22. package/chunks/{Accordion.Q50G9LZ3.js → Accordion.D4jj5_nA.js} +1 -1
  23. package/chunks/{ActionButton.BEMy35Lh.js → ActionButton.BOKt8109.js} +2 -2
  24. package/chunks/ActionCard.oi3u27DL.js +242 -0
  25. package/chunks/{ActionLink.DECHT42B.js → ActionLink.BFwVQSTh.js} +2 -2
  26. package/chunks/AriaLiveRegions.utils.8ofDlHnN.js +65 -0
  27. package/chunks/{Breadcrumb.nflDJoKs.js → Breadcrumb.ClHgevZX.js} +2 -2
  28. package/chunks/{Button.DpGeheky.js → Button.BdqkFovu.js} +3 -3
  29. package/chunks/{Checkbox.B3NeB54s.js → Checkbox.vdWpXSUh.js} +2 -2
  30. package/chunks/{CheckboxGroup.BYZSvqF7.js → CheckboxGroup.BtVBLux3.js} +2 -2
  31. package/chunks/Chip.B_zwA2qc.js +157 -0
  32. package/chunks/{CustomReactSelect.DBsnmMPl.js → CustomReactSelect.Dtf3mXJ_.js} +4 -4
  33. package/chunks/{Dialog.C-rcs_Up.js → Dialog.9tejL9sZ.js} +1 -1
  34. package/chunks/{Drawer.D0d557c5.js → Drawer.DIFMs4Gh.js} +1 -1
  35. package/chunks/{Fieldset.7WM7w62l.js → Fieldset.8jatF24R.js} +2 -2
  36. package/chunks/Icon.BoxUJQDT.js +232 -0
  37. package/chunks/InputFile.zbXRpklU.js +260 -0
  38. package/chunks/{InputNumber.a44HnJ9B.js → InputNumber.d7gmAHaX.js} +3 -3
  39. package/chunks/{InputPassword.B1E0Maub.js → InputPassword.Cz41hBCt.js} +3 -3
  40. package/chunks/{InputSearch.C7AvD7Eu.js → InputSearch.DPQCT8Yo.js} +3 -3
  41. package/chunks/{LinkButton.CMjq2FKc.js → LinkButton.BGQOwjnE.js} +2 -2
  42. package/chunks/LinkCard.DRATPHdd.js +178 -0
  43. package/chunks/{NavigationTabList.ltT6igtk.js → NavigationTabList.Cf6csU_F.js} +1 -1
  44. package/chunks/{NavigationTabs.DsVepb7H.js → NavigationTabs.CSTtXPxd.js} +1 -1
  45. package/chunks/{Notification.COwLndR0.js → Notification.ChSYPU3r.js} +2 -2
  46. package/chunks/Popover.BSL3AilG.js +221 -0
  47. package/chunks/{RadioGroup.B-qTH31u.js → RadioGroup.DauFXAk6.js} +1 -1
  48. package/chunks/{Select.DrDVi9lg.js → Select.CWA7DHcL.js} +3 -3
  49. package/chunks/{Slider.DGMrDfWv.js → Slider.2ltYhUJb.js} +2 -2
  50. package/chunks/Stepper.Dh69BOVR.js +146 -0
  51. package/chunks/{SystemFeedback.DFN6Y2cw.js → SystemFeedback.C2XFC5WN.js} +1 -1
  52. package/chunks/{Tabs.DfH2q9EL.js → Tabs.BvwiBlXt.js} +1 -1
  53. package/chunks/{Textarea.ymNCbcvH.js → Textarea.Ck0sw4SI.js} +2 -2
  54. package/chunks/Toast.Ck4woVuy.js +76 -0
  55. package/chunks/battery-return.tBu7C6Q7.js +10 -0
  56. package/chunks/cookie.U09gK6it.js +10 -0
  57. package/chunks/credit-card.BmIN7RQ3.js +10 -0
  58. package/chunks/legal-info.-S9gzFzc.js +10 -0
  59. package/chunks/legal.CVCmbA3m.js +10 -0
  60. package/chunks/present.B4ImIJxi.js +10 -0
  61. package/chunks/return-package.Bt9FUc42.js +10 -0
  62. package/{combobox.DzSEFo_5.js → combobox.zkQtaMOE.js} +1 -1
  63. package/components/ActionButton/ActionButton.d.ts +1 -1
  64. package/components/ActionCard/ActionCard.d.ts +75 -0
  65. package/components/ActionCard/ActionCard.utils.d.ts +24 -0
  66. package/components/AriaLiveRegions/AriaLiveRegions.d.ts +22 -1
  67. package/components/AriaLiveRegions/AriaLiveRegions.test.d.ts +1 -0
  68. package/components/AriaLiveRegions/AriaLiveRegions.utils.d.ts +106 -0
  69. package/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  70. package/components/Button/Button.d.ts +1 -1
  71. package/components/ChipGroup/ChipGroup.utils.d.ts +14 -15
  72. package/components/Icon/Icon.d.ts +1 -1
  73. package/components/InputFile/FileList/FileList.d.ts +14 -0
  74. package/components/InputFile/FileList/FileList.test.d.ts +1 -0
  75. package/components/{FileList → InputFile/FileList}/FileList.utils.d.ts +0 -6
  76. package/components/InputFile/FileList/FileList.utils.test.d.ts +1 -0
  77. package/components/InputFile/FileList/FilePreview/FilePreview.d.ts +15 -0
  78. package/components/InputFile/FileList/FilePreview/FilePreview.test.d.ts +1 -0
  79. package/components/InputFile/FileList/FilePreview/FilePreview.utils.d.ts +11 -0
  80. package/components/InputFile/FileList/FilePreview/FilePreview.utils.test.d.ts +1 -0
  81. package/components/InputFile/FileList/ProgressIndicator/ProgressIndicator.d.ts +34 -0
  82. package/components/InputFile/FileList/ProgressIndicator/ProgressIndicator.test.d.ts +1 -0
  83. package/components/InputFile/InputFile.d.ts +49 -15
  84. package/components/InputFile/InputFile.utils.d.ts +14 -0
  85. package/components/LinkButton/LinkButton.d.ts +1 -1
  86. package/components/LinkCard/LinkCard.d.ts +16 -4
  87. package/components/Logo/Logo.d.ts +1 -1
  88. package/components/NavigationTabs/NavigationTabs.d.ts +1 -1
  89. package/components/Spinner/Spinner.d.ts +1 -1
  90. package/components/Stepper/Stepper.d.ts +1 -1
  91. package/components/Stepper/Stepper.utils.d.ts +0 -1
  92. package/components/Switch/Switch.d.ts +1 -1
  93. package/components/Tabs/TabList/TabList.d.ts +1 -1
  94. package/components/Toast/ToastManager.utils.d.ts +0 -1
  95. package/components/TopBar/TopBar.d.ts +1 -1
  96. package/{customreactselect.D7YraWJ7.js → customreactselect.DbPXuk-C.js} +5 -5
  97. package/{dialog.CBovd8em.js → dialog.wzLHG12h.js} +2 -2
  98. package/{drawer.D5F0KXI2.js → drawer.DnHZCC60.js} +2 -2
  99. package/{fieldset.DgbZ_K_l.js → fieldset.DUU39krR.js} +3 -3
  100. package/filelist.d.ts +1 -1
  101. package/filelist.zRCzEN5D.js +128 -0
  102. package/filepreview.CK8DA0aR.js +94 -0
  103. package/filepreview.d.ts +2 -0
  104. package/{flag.D-wrUioF.js → flag.02uD-ADh.js} +1 -1
  105. package/{floatingactionbutton.CE-Rz0dx.js → floatingactionbutton.BwmRfmD_.js} +3 -3
  106. package/{icon.ByLYRkPZ.js → icon.DFM8rDOR.js} +1 -1
  107. package/index.d.ts +3 -0
  108. package/index.es.js +233 -219
  109. package/{input.MZXe6rlg.js → input.yBU7wjmW.js} +4 -4
  110. package/inputfile.BRt_BWK8.js +18 -0
  111. package/{inputnumber.DevQudIX.js → inputnumber.B0yCOPU1.js} +4 -4
  112. package/{inputpassword.C-XYK-JP.js → inputpassword.aQxGIeyf.js} +4 -4
  113. package/{inputsearch.CmJdxnzX.js → inputsearch.EbZnS29c.js} +4 -4
  114. package/{link.R1lfD5aN.js → link.Ck9Yd2y2.js} +3 -3
  115. package/{linkbutton.Y-ET1tc9.js → linkbutton.DzbJ1ws2.js} +3 -3
  116. package/{linkcard.CayqoQNo.js → linkcard.D65tvntF.js} +3 -3
  117. package/{navigationtablist.Cd9hZzFQ.js → navigationtablist.BMvJp48M.js} +2 -2
  118. package/{navigationtabs.DHG-TeF2.js → navigationtabs.BzYhrLVd.js} +2 -2
  119. package/{notification.u_LLz-O0.js → notification.B80f3Sh6.js} +3 -3
  120. package/{optioncheckbox.v8Plcgeg.js → optioncheckbox.DvF4Vr4C.js} +1 -1
  121. package/package.json +2 -2
  122. package/partials/index.js +15 -9
  123. package/partials/lib/partials.d.ts +1 -1
  124. package/{popover.T7-imfkx.js → popover.BR8IGyhi.js} +4 -3
  125. package/product-card-example-1.webp +0 -0
  126. package/product-card-example-2.webp +0 -0
  127. package/product-card-example-3.webp +0 -0
  128. package/product-card-example-4.webp +0 -0
  129. package/progressindicator.DYKf69nk.js +53 -0
  130. package/progressindicator.d.ts +2 -0
  131. package/{radiogroup.CAh4wto1.js → radiogroup.Cniqm1t0.js} +2 -2
  132. package/{scroller.DfhhZelk.js → scroller.CSSI5khP.js} +1 -1
  133. package/{select.CSCc_-6d.js → select.DPfXPv-k.js} +4 -4
  134. package/{skiptocontent.C2HpZt5q.js → skiptocontent.C_nrEIVL.js} +1 -1
  135. package/{slider.B2aQwfc2.js → slider.CyRU5Kys.js} +3 -3
  136. package/{spinner.CRVyui04.js → spinner.ww3wgdUU.js} +1 -1
  137. package/{step.C-LC5sKQ.js → step.C4gOI6c3.js} +2 -2
  138. package/{stepper.CRljfUF8.js → stepper.Bqdr6GS-.js} +4 -4
  139. package/{switch.DgKgzm-j.js → switch.DpYvgNSE.js} +2 -2
  140. package/{systemfeedback.BKLsE5sY.js → systemfeedback.g7odUaLC.js} +2 -2
  141. package/{tablist.DPiNeY3_.js → tablist.DLFJGmYV.js} +3 -3
  142. package/{tabs.Cxzm6ZZ-.js → tabs.Bne3Z3rz.js} +2 -2
  143. package/{textarea.CDXY-OVz.js → textarea.DcAoKkta.js} +3 -3
  144. package/{toast.Bev-Rfuw.js → toast.C_O0xDYn.js} +3 -3
  145. package/toastmanager.w_mhIehC.js +79 -0
  146. package/tooltip.C6HKano9.js +184 -0
  147. package/types/icon-types.d.ts +1 -1
  148. package/arialiveregions.B0AV2JcV.js +0 -18
  149. package/assets/LinkCard.C6HtgbjH.css +0 -1
  150. package/assets/Toast.DgRXxA0s.css +0 -1
  151. package/assets/filelist.H_wKcSPX.css +0 -1
  152. package/chipgroup.CSjQHeeW.js +0 -199
  153. package/chunks/AriaLiveRegions.utils.CLpOaVD9.js +0 -27
  154. package/chunks/Chip.SiGIIHR-.js +0 -133
  155. package/chunks/Icon.m6sMB6vl.js +0 -232
  156. package/chunks/InputFile.DRGNdtY0.js +0 -236
  157. package/chunks/LinkCard.CJ5P0ews.js +0 -199
  158. package/chunks/Popover.C5wtha5l.js +0 -214
  159. package/chunks/Stepper.DptsFh5n.js +0 -152
  160. package/chunks/Toast.RUzRjojQ.js +0 -76
  161. package/components/FileList/FileList.d.ts +0 -13
  162. package/filelist.CDEBo3Pi.js +0 -160
  163. package/inputfile.BO4wDnzQ.js +0 -18
  164. package/toastmanager.DII20_9k.js +0 -89
  165. package/tooltip._lP4aMV2.js +0 -177
  166. /package/components/{FileList/FileList.test.d.ts → ActionCard/ActionCard.test.d.ts} +0 -0
  167. /package/components/{FileList/FileList.utils.test.d.ts → ActionCard/ActionCard.utils.test.d.ts} +0 -0
@@ -1,6 +1,7 @@
1
1
  import { InputHTMLAttributes } from 'react';
2
2
  import { BreakpointCustomizable } from '../../types';
3
3
  import { ButtonVariant } from '../Button/Button.utils';
4
+ import { ProgressIndicatorVariant } from './FileList/ProgressIndicator/ProgressIndicator';
4
5
  import { InputFileLanguage, InputFileTranslations } from './InputFile.utils';
5
6
  export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
6
7
  /** Unique id for the input. */
@@ -13,13 +14,16 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
13
14
  * @default false
14
15
  */
15
16
  disabled?: boolean;
16
- /** The remove button visible in the file list, when file(s) were selected by the user:
17
+ /** **Controlled** files prop. When provided, component becomes controlled and internal selection state is ignored.
18
+ * Each file can optionally include upload meta and action button props.
17
19
  *
18
- * `data-*`: Custom data attributes, which will have the index of the selected file appended at the end of the value.
20
+ * `{ feedback?: string;`
21
+ * `uploadStatus?: 'uploading' | 'error' | 'success';`
22
+ * `uploadPercent?: 'indeterminate' | number;`
23
+ * `removeButtonProps?: { [key: 'data-${string}']: string | undefined; onClick: () => void; }; }`
24
+ * `retryButtonProps?: { [key: 'data-${string}']: string | undefined; onClick: () => void; }; }`
19
25
  */
20
- fileListItemRemoveButtonProps?: {
21
- [key: `data-${string}`]: string | undefined;
22
- };
26
+ files?: FileWithUploadMeta[];
23
27
  /** Hides the input label, can be responsive.
24
28
  * `boolean | { base: boolean; s?: boolean; m?: boolean; l?: boolean; xl?: boolean; }`
25
29
  * @default false
@@ -55,6 +59,14 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
55
59
  * @default 'en'
56
60
  */
57
61
  lang?: InputFileLanguage;
62
+ /** Maximum size allowed in MegaBytes.
63
+ * @default 7
64
+ */
65
+ maxSizeInMb?: number;
66
+ /** Allow multiple file selection.
67
+ * @default false
68
+ */
69
+ multiple?: boolean;
58
70
  /** Shows an info button next to the label that triggers a popover with the passed content. */
59
71
  popoverContent?: React.ReactNode;
60
72
  /** Popover info button props:
@@ -68,14 +80,6 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
68
80
  [key: `data-${string}`]: string | undefined;
69
81
  label?: string;
70
82
  };
71
- /** Maximum size allowed in MegaBytes.
72
- * @default 7
73
- */
74
- maxSizeInMb?: number;
75
- /** Allow multiple file selection.
76
- * @default false
77
- */
78
- multiple?: boolean;
79
83
  /** Indicates that the input is required.
80
84
  * @default false
81
85
  */
@@ -86,15 +90,45 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
86
90
  showDropzone?: boolean;
87
91
  /** Show a file list after file selection. */
88
92
  showFileList?: boolean;
93
+ /** Defines how upload progress is shown (bar = progress bar, text = simple text indicator, undefined = no progress UI). */
94
+ showProgress?: ProgressIndicatorVariant;
89
95
  /** Defines a system feedback message, shown when `invalid={true}`. */
90
96
  systemFeedback?: string;
91
97
  /** Translations for the DSInputFile. Use our [customization page](/?path=/story/components-inputs-input-file-translations--documentation) for creating custom translations. */
92
98
  translations?: InputFileTranslations;
93
99
  /** Callback function invoked when files are selected. */
94
- onFilesSelect?: (files: File[]) => void;
100
+ onFilesSelect?: (files: FileWithUploadMeta[]) => void;
95
101
  }
96
- export interface FileWithFeedback extends File {
102
+ export type FileUploadStatus = 'uploading' | 'error' | 'success';
103
+ export interface FileWithUploadMeta extends File {
104
+ /** System feedback shown to the user. */
97
105
  feedback?: string;
106
+ /** Current upload status of the file. */
107
+ uploadStatus?: FileUploadStatus;
108
+ /** Upload progress percentage (0 - 100) or 'indeterminate' if not available.
109
+ * @default 'indeterminate'
110
+ */
111
+ uploadPercent?: 'indeterminate' | number;
112
+ /** Remove button props:
113
+ *
114
+ * `data-*`: Custom data attributes.
115
+ *
116
+ * `onClick`: Callback function called when the remove button is clicked.
117
+ */
118
+ removeButtonProps?: {
119
+ [key: `data-${string}`]: string | undefined;
120
+ onClick: () => void;
121
+ };
122
+ /** Retry button props used when `uploadStatus === 'error'`:
123
+ *
124
+ * `data-*`: Custom data attributes.
125
+ *
126
+ * `onClick`: Callback function called when the retry button is clicked.
127
+ */
128
+ retryButtonProps?: {
129
+ [key: `data-${string}`]: string | undefined;
130
+ onClick: () => void;
131
+ };
98
132
  }
99
133
  /**
100
134
  * The `<DSInputFile />` allows users to select and upload files, such as images, documents, or videos. It ensures a clear, accessible, and user-friendly way to manage file uploads.
@@ -6,9 +6,16 @@ export declare const DS_INPUT_FILE_TRANSLATIONS_EN: {
6
6
  feedbackFileSize: string;
7
7
  feedbackFileType: string;
8
8
  fileListRemoveSelectionButtonLabel: string;
9
+ fileListCancelUploadButtonLabel: string;
10
+ fileListDeleteFileButtonLabel: string;
11
+ fileListIndeterminate: string;
9
12
  fileListPreviewAltText: string;
10
13
  filesSelectedHint: string;
11
14
  required: string;
15
+ uploadStatus: string;
16
+ uploading: string;
17
+ success: string;
18
+ retry: string;
12
19
  togglePopover: string;
13
20
  };
14
21
  export declare const DS_INPUT_FILE_TRANSLATIONS_DE: {
@@ -16,9 +23,16 @@ export declare const DS_INPUT_FILE_TRANSLATIONS_DE: {
16
23
  feedbackFileSize: string;
17
24
  feedbackFileType: string;
18
25
  fileListRemoveSelectionButtonLabel: string;
26
+ fileListCancelUploadButtonLabel: string;
27
+ fileListDeleteFileButtonLabel: string;
28
+ fileListIndeterminate: string;
19
29
  fileListPreviewAltText: string;
20
30
  filesSelectedHint: string;
21
31
  required: string;
32
+ uploadStatus: string;
33
+ uploading: string;
34
+ success: string;
35
+ retry: string;
22
36
  togglePopover: string;
23
37
  };
24
38
  export declare const DS_INPUT_FILE_TRANSLATIONS: {
@@ -3,7 +3,7 @@ import { IconProps } from '../Icon/Icon';
3
3
  import { LinkButtonAriaAttribute, LinkButtonIconPosition, LinkButtonReferrerPolicy, LinkButtonRel, LinkButtonSize, LinkButtonVariant } from './LinkButton.utils';
4
4
  export interface CommonLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
5
5
  /** ARIA attributes to enhance accessibility.
6
- * `{'aria-label'? string;`
6
+ * `{'aria-label'?: string;`
7
7
  * `'aria-current'?: boolean | 'false' | 'true' | 'page' | 'step' | 'location' | 'date' | 'time';`
8
8
  * `'aria-labelledby'?: string;}`
9
9
  */
@@ -1,4 +1,5 @@
1
1
  import { AnchorHTMLAttributes, JSX } from 'react';
2
+ import { FlagProps } from '../Flag/Flag';
2
3
  import { LinkButtonProps } from '../LinkButton/LinkButton';
3
4
  import { CardHeading } from './LinkCard.utils';
4
5
  type DecorativeLinkButtonProps = Pick<LinkButtonProps, 'iconPosition' | 'iconName' | 'size' | 'hideLabel'> & {
@@ -29,8 +30,12 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
29
30
  * @prop {string | { headingText: string; headingSize?: HeadingSize; headingTag?: HeadingTag; }} heading
30
31
  */
31
32
  heading: CardHeading;
32
- /** Orange brand flag text displayed on the image. */
33
- brandFlag?: string;
33
+ /**
34
+ * Brand flag displayed on the image.
35
+ *
36
+ * Can be either a simple `string` (uses default `orange-base` color) or `FlagProps` for full customization.
37
+ */
38
+ brandFlag?: string | FlagProps;
34
39
  /**
35
40
  * ClassNames for various parts of the LinkCard can be provided via the `cardClassNames` prop.
36
41
  * - `brandFlag?: string` className for the brand flag element.
@@ -64,8 +69,10 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
64
69
  flagListAriaLabel?: string;
65
70
  /**
66
71
  * Array of DSFlag components to be displayed on the card.
72
+ *
73
+ * Each flag can be either a simple `string` (uses default `grey-light` color) or `FlagProps` for full customization.
67
74
  */
68
- flags?: string[];
75
+ flags?: (string | FlagProps)[];
69
76
  /** Defines the URL to link to. */
70
77
  href?: string;
71
78
  /** Image element to be displayed within the card. */
@@ -82,6 +89,11 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
82
89
  * @default 'vertical'
83
90
  */
84
91
  orientation?: 'vertical' | 'horizontal';
92
+ /**
93
+ * Sets the padding for the content inside the card.
94
+ * @default 'medium'
95
+ */
96
+ padding?: 'small' | 'medium';
85
97
  }
86
98
  /**
87
99
  * A simple, accessible Card component that can be used as a link to navigate to other pages.
@@ -90,7 +102,7 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
90
102
  * Design in Figma: [Link Card](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=26075-11591&p=f&t=WDN78eWtKR9F8yYp-11)
91
103
  */
92
104
  export declare const DSLinkCard: {
93
- ({ heading, brandFlag, className, cardClassNames, decorativeLinkButtonProps, description, flagListAriaLabel, flags, href, img, linkComponent, metaData, orientation, ...rest }: LinkCardProps): JSX.Element;
105
+ ({ heading, brandFlag, className, cardClassNames, decorativeLinkButtonProps, description, flagListAriaLabel, flags, href, img, linkComponent, metaData, orientation, padding, ...rest }: LinkCardProps): JSX.Element;
94
106
  displayName: string;
95
107
  };
96
108
  export {};
@@ -3,7 +3,7 @@ import { SelectedAriaAttributes, Theme } from '../../types';
3
3
  import { Logo, LogoAriaAttribute, LogoTarget } from './Logo.utils';
4
4
  export interface LogoProps extends HTMLAttributes<SVGElement | HTMLAnchorElement> {
5
5
  /** If the DSLogo is used with an href prop, make sure to add a descriptive label to inform screen reader users what the link stands for.
6
- * `{'aria-label'? string;}`
6
+ * `{'aria-label'?: string;}`
7
7
  */
8
8
  aria?: SelectedAriaAttributes<LogoAriaAttribute>;
9
9
  /**
@@ -19,7 +19,7 @@ export interface NavigationTab {
19
19
  }
20
20
  export interface NavigationTabsProps extends HTMLAttributes<HTMLDivElement> {
21
21
  /** ARIA attributes to ensure accessibility
22
- * `{'aria-label'? string;`
22
+ * `{'aria-label'?: string;`
23
23
  * `'aria-labelledby'?: string;}`
24
24
  * */
25
25
  aria: SelectedAriaAttributes<TabListAriaAttributes>;
@@ -3,7 +3,7 @@ import { SelectedAriaAttributes, Theme } from '../../types';
3
3
  import { SpinnerAriaAttribute, SpinnerSize } from './Spinner.utils';
4
4
  export interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
5
5
  /** ARIA attributes to enhance accessibility.
6
- * `{'aria-label'? string;}`
6
+ * `{'aria-label'?: string;}`
7
7
  */
8
8
  aria?: SelectedAriaAttributes<SpinnerAriaAttribute>;
9
9
  /** Size of the spinner.
@@ -21,7 +21,7 @@ export interface Step {
21
21
  }
22
22
  export interface StepperProps extends React.HTMLAttributes<HTMLElement> {
23
23
  /** ARIA attributes to enhance accessibility
24
- * `{'aria-label'? string;`
24
+ * `{'aria-label'?: string;`
25
25
  * `'aria-labelledby'?: string;}`
26
26
  * */
27
27
  aria: SelectedAriaAttributes<StepperAriaAttributes>;
@@ -7,7 +7,6 @@ export declare const STEPPER_ORIENTATION: readonly ["horizontal", "vertical"];
7
7
  export type StepperOrientation = (typeof STEPPER_ORIENTATION)[number];
8
8
  export type ValidateStepperPropsParams = Pick<StepperProps, 'aria' | 'steps'>;
9
9
  export declare const validateStepperProps: ({ aria, steps, }: ValidateStepperPropsParams) => void;
10
- export declare const validateIsLiveRegionPresentForStepper: () => void;
11
10
  export type StepperLanguage = 'en' | 'de';
12
11
  export type StepperTranslations = typeof DS_STEPPER_TRANSLATIONS_EN;
13
12
  export declare const DS_STEPPER_TRANSLATIONS_EN: {
@@ -5,7 +5,7 @@ export interface SwitchProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
5
  /** Content within the label. */
6
6
  children: React.ReactNode;
7
7
  /** ARIA attributes to enhance accessibility.
8
- * `{'aria-label'? string;}`
8
+ * `{'aria-label'?: string;}`
9
9
  */
10
10
  aria?: SelectedAriaAttributes<SwitchAriaAttribute>;
11
11
  /** Alignment of the label.
@@ -6,7 +6,7 @@ import { TabsAlignment } from '../Tabs.utils';
6
6
  import { TabListAriaAttributes } from './TabList.utils';
7
7
  export type TabListProps<IsNavigation extends boolean> = {
8
8
  /** ARIA attributes to enhance accessibility
9
- * `{'aria-label'? string;`
9
+ * `{'aria-label'?: string;`
10
10
  * `'aria-labelledby'?: string;}`
11
11
  * */
12
12
  aria: SelectedAriaAttributes<TabListAriaAttributes>;
@@ -1,2 +1 @@
1
- export declare const validateIsLiveRegionPresent: () => void;
2
1
  export declare const validateMultipleToastsOnPage: () => void;
@@ -12,7 +12,7 @@ export interface BrandAreaLogoProps {
12
12
  /**
13
13
  * `aria`: Accessibility attributes for screen readers.
14
14
  * Ensure to provide a descriptive label via `aria-label`.
15
- * `{'aria-label'? string;}`
15
+ * `{'aria-label'?: string;}`
16
16
  */
17
17
  aria: SelectedAriaAttributes<LogoAriaAttribute>;
18
18
  /** Defines the URL to link to. If you provide a URL, the component will be rendered as a link.
@@ -3,13 +3,13 @@ import "react/jsx-runtime";
3
3
  import "./chunks/index.cKLI89Eg.js";
4
4
  import "./chunks/index.DQOqod3i.js";
5
5
  import "react";
6
- import { c as f } from "./chunks/CustomReactSelect.DBsnmMPl.js";
6
+ import { c as f } from "./chunks/CustomReactSelect.Dtf3mXJ_.js";
7
7
  import "./chunks/useBreakpoint.1txsny17.js";
8
8
  import "./asterisk.Dwtdwpkq.js";
9
- import "./chunks/Icon.m6sMB6vl.js";
10
- import "./chunks/Popover.C5wtha5l.js";
11
- import "./chunks/SystemFeedback.DFN6Y2cw.js";
12
- import "./optioncheckbox.v8Plcgeg.js";
9
+ import "./chunks/Icon.BoxUJQDT.js";
10
+ import "./chunks/Popover.BSL3AilG.js";
11
+ import "./chunks/SystemFeedback.C2XFC5WN.js";
12
+ import "./optioncheckbox.DvF4Vr4C.js";
13
13
  export {
14
14
  f as CustomReactSelect
15
15
  };
@@ -2,8 +2,8 @@
2
2
  import "react/jsx-runtime";
3
3
  import "./chunks/index.DQOqod3i.js";
4
4
  import "react";
5
- import "./chunks/Button.DpGeheky.js";
6
- import { D as e } from "./chunks/Dialog.C-rcs_Up.js";
5
+ import "./chunks/Button.BdqkFovu.js";
6
+ import { D as e } from "./chunks/Dialog.9tejL9sZ.js";
7
7
  export {
8
8
  e as DSDialog
9
9
  };
@@ -2,8 +2,8 @@
2
2
  import "react/jsx-runtime";
3
3
  import "./chunks/index.DQOqod3i.js";
4
4
  import "react";
5
- import "./chunks/Button.DpGeheky.js";
6
- import { D as e } from "./chunks/Drawer.D0d557c5.js";
5
+ import "./chunks/Button.BdqkFovu.js";
6
+ import { D as e } from "./chunks/Drawer.DIFMs4Gh.js";
7
7
  export {
8
8
  e as DSDrawer
9
9
  };
@@ -4,9 +4,9 @@ import "./chunks/index.DQOqod3i.js";
4
4
  import "react";
5
5
  import "./asterisk.Dwtdwpkq.js";
6
6
  import "./heading.BHSklXho.js";
7
- import "./chunks/Popover.C5wtha5l.js";
8
- import "./chunks/SystemFeedback.DFN6Y2cw.js";
9
- import { D } from "./chunks/Fieldset.7WM7w62l.js";
7
+ import "./chunks/Popover.BSL3AilG.js";
8
+ import "./chunks/SystemFeedback.C2XFC5WN.js";
9
+ import { D } from "./chunks/Fieldset.8jatF24R.js";
10
10
  export {
11
11
  D as DSFieldset
12
12
  };
package/filelist.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './components/FileList/FileList'
1
+ export * from './components/InputFile/FileList/FileList'
2
2
  export {}
@@ -0,0 +1,128 @@
1
+ "use client";
2
+ import { jsxs as _, jsx as u } from "react/jsx-runtime";
3
+ import { d as N } from "./chunks/index.cKLI89Eg.js";
4
+ import { c as R } from "./chunks/index.DQOqod3i.js";
5
+ import { D as L } from "./chunks/Button.BdqkFovu.js";
6
+ import { D as F } from "./chunks/SystemFeedback.C2XFC5WN.js";
7
+ import { FilePreview as B } from "./filepreview.CK8DA0aR.js";
8
+ import { ProgressIndicator as A } from "./progressindicator.DYKf69nk.js";
9
+ import './assets/filelist.CHVupL8T.css';const I = new RegExp("([\\p{Ll}\\d])(\\p{Lu})", "gu"), y = new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])", "gu"), U = new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d", "u"), D = /[^\p{L}\d]+/giu, g = "$1\0$2", k = "";
10
+ function E(r) {
11
+ let e = r.trim();
12
+ e = e.replace(I, g).replace(y, g), e = e.replace(D, "\0");
13
+ let a = 0, o = e.length;
14
+ for (; e.charAt(a) === "\0"; )
15
+ a++;
16
+ if (a === o)
17
+ return [];
18
+ for (; e.charAt(o - 1) === "\0"; )
19
+ o--;
20
+ return e.slice(a, o).split(/\0/g);
21
+ }
22
+ function T(r) {
23
+ const e = E(r);
24
+ for (let a = 0; a < e.length; a++) {
25
+ const o = e[a], s = U.exec(o);
26
+ if (s) {
27
+ const n = s.index + (s[1] ?? s[2]).length;
28
+ e.splice(a, 1, o.slice(0, n), o.slice(n));
29
+ }
30
+ }
31
+ return e;
32
+ }
33
+ function W(r, e) {
34
+ const [a, o, s] = z(r, e);
35
+ return a + o.map($(e?.locale)).join(e?.delimiter ?? " ") + s;
36
+ }
37
+ function S(r, e) {
38
+ return W(r, { delimiter: "-", ...e });
39
+ }
40
+ function $(r) {
41
+ return r === !1 ? (e) => e.toLowerCase() : (e) => e.toLocaleLowerCase(r);
42
+ }
43
+ function z(r, e = {}) {
44
+ const a = e.split ?? (e.separateNumbers ? T : E), o = e.prefixCharacters ?? k, s = e.suffixCharacters ?? k;
45
+ let n = 0, i = r.length;
46
+ for (; n < r.length; ) {
47
+ const p = r.charAt(n);
48
+ if (!o.includes(p))
49
+ break;
50
+ n++;
51
+ }
52
+ for (; i > n; ) {
53
+ const p = i - 1, c = r.charAt(p);
54
+ if (!s.includes(c))
55
+ break;
56
+ i = p;
57
+ }
58
+ return [
59
+ r.slice(0, n),
60
+ a(r.slice(n, i)),
61
+ r.slice(i)
62
+ ];
63
+ }
64
+ const M = "ds-input-file_root_xvo5t_1", j = "ds-input-file_file-wrapper_xvo5t_7", X = "ds-input-file_file-wrapper--invalid_xvo5t_16", G = "ds-input-file_file-details_xvo5t_20", H = "ds-input-file_file-name_xvo5t_34", K = "ds-input-file_file-size_xvo5t_38", O = "ds-input-file_progress-bar_xvo5t_54", V = "ds-input-file_feedback_xvo5t_59", d = {
65
+ root: M,
66
+ fileWrapper: j,
67
+ fileWrapperInvalid: X,
68
+ fileDetails: G,
69
+ fileName: H,
70
+ fileSize: K,
71
+ progressBar: O,
72
+ feedback: V
73
+ }, q = (r) => r >= 1024 * 1024 ? (r / (1024 * 1024)).toFixed(1) + " MB" : r >= 1024 ? (r / 1024).toFixed(0) + " KB" : r + " B", ae = (r) => {
74
+ const e = N.c(11), {
75
+ files: a,
76
+ onRemoveFile: o,
77
+ t: s,
78
+ showProgress: n
79
+ } = r, i = J, p = Q;
80
+ let c;
81
+ if (e[0] !== a || e[1] !== o || e[2] !== n || e[3] !== s) {
82
+ let h;
83
+ e[5] !== o || e[6] !== n || e[7] !== s ? (h = (t, b) => {
84
+ const l = t.uploadStatus === "error", m = t.uploadStatus === "success", f = t.uploadStatus === "uploading";
85
+ let P = "indeterminate";
86
+ if (t.uploadPercent !== void 0 && t.uploadPercent !== "indeterminate") {
87
+ const C = m ? 100 : 0, w = t.uploadPercent === void 0 ? C : t.uploadPercent;
88
+ P = Math.min(Math.max(w, 0), 100);
89
+ }
90
+ const x = f ? s("fileListCancelUploadButtonLabel", [t.name]) : m ? s("fileListDeleteFileButtonLabel", [t.name]) : s("fileListRemoveSelectionButtonLabel", [t.name]);
91
+ return /* @__PURE__ */ _("div", { className: R(d.fileWrapper, {
92
+ [d.fileWrapperInvalid]: l
93
+ }), "aria-busy": f ? "true" : "false", "aria-describedby": f ? p(t.name) : i(t.name), "aria-invalid": l ? !0 : void 0, children: [
94
+ /* @__PURE__ */ u(B, { file: t, t: s }),
95
+ /* @__PURE__ */ _("div", { className: d.fileDetails, children: [
96
+ /* @__PURE__ */ u("span", { className: d.fileName, children: t.name }),
97
+ /* @__PURE__ */ u("span", { className: d.fileSize, children: q(t.size) })
98
+ ] }),
99
+ /* @__PURE__ */ _("div", { children: [
100
+ l && t.retryButtonProps && /* @__PURE__ */ _(L, { ...t.retryButtonProps, onClick: t.retryButtonProps.onClick, hideLabel: !0, iconName: "arrow-counterclockwise", size: "small", variant: "ghost", type: "button", "aria-describedby": t.feedback ? i(t.name) : void 0, tooltip: s("retry"), children: [
101
+ s("retry"),
102
+ "."
103
+ ] }),
104
+ (f || m) && !t.removeButtonProps?.onClick ? null : /* @__PURE__ */ _(L, { ...t.removeButtonProps, onClick: () => {
105
+ t.uploadStatus !== void 0 && t.removeButtonProps?.onClick ? t.removeButtonProps?.onClick() : o(b);
106
+ }, hideLabel: !0, iconName: "cross", size: "small", variant: "ghost", type: "button", "aria-describedby": t.feedback && l ? i(t.name) : void 0, tooltip: x, children: [
107
+ x,
108
+ "."
109
+ ] })
110
+ ] }),
111
+ (f || l) && n && /* @__PURE__ */ u(A, { id: p(t.name), fileName: t.name, percent: P, progressStatus: l ? "error" : "uploading", className: d.progressBar, variant: n, t: s }),
112
+ (t.feedback && (l || m) || t.feedback === void 0 && m) && /* @__PURE__ */ u(F, { variant: l ? "error" : "success", id: i(t.name), message: t.feedback || s("success"), className: d.feedback })
113
+ ] }, b + t.name);
114
+ }, e[5] = o, e[6] = n, e[7] = s, e[8] = h) : h = e[8], c = a.map(h), e[0] = a, e[1] = o, e[2] = n, e[3] = s, e[4] = c;
115
+ } else
116
+ c = e[4];
117
+ let v;
118
+ return e[9] !== c ? (v = /* @__PURE__ */ u("div", { className: d.root, children: c }), e[9] = c, e[10] = v) : v = e[10], v;
119
+ };
120
+ function J(r) {
121
+ return `file-feedback-${S(r)}`;
122
+ }
123
+ function Q(r) {
124
+ return `progress-${S(r)}`;
125
+ }
126
+ export {
127
+ ae as FileList
128
+ };
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { jsx as d } from "react/jsx-runtime";
3
+ import { d as z } from "./chunks/index.cKLI89Eg.js";
4
+ import { useState as N } from "react";
5
+ import { D as w } from "./chunks/Icon.BoxUJQDT.js";
6
+ import './assets/filepreview.2cdH-1Xs.css';const S = "ds-input-file_preview_15s1u_1", E = "ds-input-file_root_15s1u_7", D = "ds-input-file_file-icon_15s1u_7", u = {
7
+ preview: S,
8
+ root: E,
9
+ fileIcon: D
10
+ }, x = {
11
+ nonDisplayableImages: ["heic", "heif", "raw", "cr2", "cr3", "nef", "arw", "orf", "rw2", "dng", "svgz", "jp2", "jxl", "dds", "exr", "psd", "ai", "indd"],
12
+ documents: [
13
+ "doc",
14
+ "docx",
15
+ "odt",
16
+ "fodt",
17
+ "gdoc",
18
+ "rtf",
19
+ "dot",
20
+ "dotx",
21
+ "pages",
22
+ "wpd",
23
+ "abw",
24
+ "tmd",
25
+ "lwp",
26
+ "wps",
27
+ "wks",
28
+ // Excel and spreadsheet formats
29
+ "xls",
30
+ "xlsx",
31
+ "xlsm",
32
+ "xlsb",
33
+ "xlt",
34
+ "xltx",
35
+ "ods",
36
+ "fods",
37
+ "csv",
38
+ "tsv",
39
+ "gsheet"
40
+ ],
41
+ videos: ["mp4", "m4v", "mov", "webm", "ogv", "avi", "wmv", "flv", "f4v", "mkv", "3gp", "3g2", "ts", "vob", "rm", "rmvb", "mpeg", "mpg"],
42
+ archives: ["zip", "rar", "7z", "tar", "gz", "tar.gz", "tgz", "xz", "tar.xz", "bz2", "tar.bz2", "lzma", "cab", "iso"]
43
+ }, L = (f, e) => {
44
+ const {
45
+ documents: t,
46
+ videos: r,
47
+ archives: p
48
+ } = x;
49
+ return f.type.startsWith("image/") ? "file-type-image" : t.includes(e) ? "file-type-doc" : f.type === "application/pdf" ? "file-type-pdf" : f.type.startsWith("video/") && r.includes(e) ? "file-type-video" : p.includes(e) ? "file-type-zip" : "file";
50
+ }, T = (f) => {
51
+ const e = z.c(25), {
52
+ file: t,
53
+ t: r
54
+ } = f, [p, h] = N(!1);
55
+ let o, l, a, n, i;
56
+ if (e[0] !== t || e[1] !== p || e[2] !== r) {
57
+ i = /* @__PURE__ */ Symbol.for("react.early_return_sentinel");
58
+ e: {
59
+ const _ = t.name.split(".").pop()?.toLowerCase() || "", {
60
+ nonDisplayableImages: I
61
+ } = x, b = t.type.startsWith("image/") && !I.includes(_);
62
+ if (b && p) {
63
+ let s;
64
+ e[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (s = /* @__PURE__ */ d("span", { className: u.root, children: /* @__PURE__ */ d(w, { "aria-hidden": "true", name: "file-type-image", className: u.fileIcon }) }), e[8] = s) : s = e[8], i = s;
65
+ break e;
66
+ }
67
+ if (b) {
68
+ let s;
69
+ e[9] !== t ? (s = URL.createObjectURL(t), e[9] = t, e[10] = s) : s = e[10];
70
+ let m;
71
+ e[11] !== t.name || e[12] !== r ? (m = r("fileListPreviewAltText", [t.name]), e[11] = t.name, e[12] = r, e[13] = m) : m = e[13];
72
+ let g;
73
+ e[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = () => {
74
+ h(!0);
75
+ }, e[14] = g) : g = e[14];
76
+ let y;
77
+ e[15] !== s || e[16] !== m ? (y = /* @__PURE__ */ d("img", { src: s, alt: m, className: u.preview, onError: g }), e[15] = s, e[16] = m, e[17] = y) : y = e[17], i = y;
78
+ break e;
79
+ }
80
+ n = u.root, o = w, l = "true", a = L(t, _);
81
+ }
82
+ e[0] = t, e[1] = p, e[2] = r, e[3] = o, e[4] = l, e[5] = a, e[6] = n, e[7] = i;
83
+ } else
84
+ o = e[3], l = e[4], a = e[5], n = e[6], i = e[7];
85
+ if (i !== /* @__PURE__ */ Symbol.for("react.early_return_sentinel"))
86
+ return i;
87
+ let c;
88
+ e[18] !== o || e[19] !== l || e[20] !== a ? (c = /* @__PURE__ */ d(o, { "aria-hidden": l, name: a, className: u.fileIcon }), e[18] = o, e[19] = l, e[20] = a, e[21] = c) : c = e[21];
89
+ let v;
90
+ return e[22] !== n || e[23] !== c ? (v = /* @__PURE__ */ d("span", { className: n, children: c }), e[22] = n, e[23] = c, e[24] = v) : v = e[24], v;
91
+ };
92
+ export {
93
+ T as FilePreview
94
+ };
@@ -0,0 +1,2 @@
1
+ export * from './components/InputFile/FileList/FilePreview/FilePreview'
2
+ export {}
@@ -2,7 +2,7 @@
2
2
  import { jsxs as y, jsx as p } from "react/jsx-runtime";
3
3
  import { d as L } from "./chunks/index.cKLI89Eg.js";
4
4
  import { c as u } from "./chunks/index.DQOqod3i.js";
5
- import { D as w } from "./chunks/Icon.m6sMB6vl.js";
5
+ import { D as w } from "./chunks/Icon.BoxUJQDT.js";
6
6
  import './assets/flag.CyCIPu_J.css';const b = "ds-flag_root_14d3h_1", x = "ds-flag_root--color-grey-light_14d3h_28", G = "ds-flag_root--color-yellow-light_14d3h_31", N = "ds-flag_root--color-red-light_14d3h_34", S = "ds-flag_root--color-green-light_14d3h_37", D = "ds-flag_root--color-orange-base_14d3h_40", C = {
7
7
  root: b,
8
8
  "root--color-grey-light": "ds-flag_root--color-grey-light_14d3h_28",
@@ -2,9 +2,9 @@
2
2
  import { jsxs as q, jsx as S } from "react/jsx-runtime";
3
3
  import { d as J } from "./chunks/index.cKLI89Eg.js";
4
4
  import { c as T } from "./chunks/index.DQOqod3i.js";
5
- import { D as K } from "./chunks/Icon.m6sMB6vl.js";
6
- import { DSSpinner as M } from "./spinner.CRVyui04.js";
7
- import { Tooltip as $ } from "./tooltip._lP4aMV2.js";
5
+ import { D as K } from "./chunks/Icon.BoxUJQDT.js";
6
+ import { DSSpinner as M } from "./spinner.ww3wgdUU.js";
7
+ import { Tooltip as $ } from "./tooltip.C6HKano9.js";
8
8
  import { forwardRef as P } from "react";
9
9
  import './assets/floatingactionbutton.CTbMRM9Q.css';const Q = "ds-floating-action-button_root_1any0_1", U = "ds-floating-action-button_root--dark_1any0_70", V = "ds-floating-action-button_root--small_1any0_108", W = "ds-floating-action-button_loader_1any0_129", X = "ds-floating-action-button_icon--hidden_1any0_141", Y = "ds-floating-action-button_label--hidden_1any0_145", l = {
10
10
  root: Q,
@@ -3,7 +3,7 @@ import "react/jsx-runtime";
3
3
  import "./chunks/index.cKLI89Eg.js";
4
4
  import "./chunks/index.DQOqod3i.js";
5
5
  import "react";
6
- import { D as e } from "./chunks/Icon.m6sMB6vl.js";
6
+ import { D as e } from "./chunks/Icon.BoxUJQDT.js";
7
7
  export {
8
8
  e as DSIcon
9
9
  };
package/index.d.ts CHANGED
@@ -2,9 +2,12 @@ export * from './components/Accordion/Accordion';
2
2
  export * from './components/Accordion/Accordion.utils';
3
3
  export * from './components/ActionButton/ActionButton';
4
4
  export * from './components/ActionButton/ActionButton.utils';
5
+ export * from './components/ActionCard/ActionCard';
6
+ export * from './components/ActionCard/ActionCard.utils';
5
7
  export * from './components/ActionLink/ActionLink';
6
8
  export * from './components/ActionLink/ActionLink.utils';
7
9
  export * from './components/AriaLiveRegions/AriaLiveRegions';
10
+ export * from './components/AriaLiveRegions/AriaLiveRegions.utils';
8
11
  export * from './components/Banner/Banner';
9
12
  export * from './components/Banner/Banner.utils';
10
13
  export * from './components/Breadcrumb/Breadcrumb';