@nuskin/foundation-ui-components 3.0.0-fixpackage.2 → 3.0.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.
@@ -0,0 +1,1259 @@
1
+ import * as react from 'react';
2
+ import react__default, { ReactElement, HTMLProps, PropsWithChildren, ReactNode, SyntheticEvent, HTMLAttributes } from 'react';
3
+ import { FoundationTheme } from '@nuskin/foundation-theme';
4
+ import * as _mui_material from '@mui/material';
5
+ import { SvgIconProps as SvgIconProps$1, AutocompleteChangeReason, AutocompleteChangeDetails, ComponentsProps, ButtonProps, TextFieldProps, InputLabelProps, RadioGroupProps } from '@mui/material';
6
+ import { SvgIconProps } from '@mui/material/SvgIcon';
7
+ import * as _emotion_styled from '@emotion/styled';
8
+ import * as _emotion_react from '@emotion/react';
9
+ import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
10
+ import * as _mui_material_Card from '@mui/material/Card';
11
+ import * as _mui_material_CardMedia from '@mui/material/CardMedia';
12
+ import * as react_jsx_runtime from 'react/jsx-runtime';
13
+ import { CheckboxProps } from '@material-ui/core/Checkbox';
14
+ import { React as React$1 } from 'React';
15
+ import * as notistack from 'notistack';
16
+ import { SnackbarProviderProps, VariantType } from 'notistack';
17
+
18
+ /**
19
+ * NsCollapse component adds css animation while showing children items if prop `isOpen` is true,
20
+ * and while removing children if prop `isOpen` is false
21
+ */
22
+ declare const NsCollapse: ({ isOpen, content, additionalProps, variant, level, invert, isChild, type, cslp, allowMultipleExpanded, }: NsCollapseProps) => ReactElement;
23
+
24
+ /**
25
+ * NsAccordionHeader is primarily used by NsToggleSection and NsAccordionItem
26
+ * as a header, so it accepts `title` , `isOpen` and `onClick`
27
+ */
28
+ declare const NsAccordionHeader: ({ title, onClick, isOpen, additionalProps, openedIconName, closedIconName, variant, headerTypographyVariant, startIcon, invert, cslp, showEndIconWhenEmpty, content, }: NsAccordionHeaderProps) => ReactElement;
29
+
30
+ /**
31
+ * NsToggleSection takes prop `title` and prop `children` and toggles
32
+ * children with animation when clicked on title
33
+ *
34
+ * it also has a `defaultOpen` prop, which when true, children is visible
35
+ * by default, otherwise children is hidden by default and toggles between visible
36
+ * and hidden on clicking title
37
+ */
38
+ declare const NsToggleSection: ({ title, content, additionalProps, defaultOpen, variant, invert, isChild, type, }: NsToggleSectionProps) => ReactElement;
39
+
40
+ /**
41
+ * this component is used by accordion to pass title
42
+ * and content
43
+ * cslp:{header:CslpTag, content:CslpTag}
44
+ */
45
+ declare const NsAccordionItem: ({ isOpen, isChild, toggleOpen, title, content, variant, headerTypographyVariant, closedIconName, openedIconName, startIcon, level, additionalProps, invert, type, cslp, allowMultipleExpanded, showEndIconWhenEmpty, }: NsAccordionItemProps) => ReactElement;
46
+
47
+ declare const NsAccordion: ({ allowMultipleExpanded, invert, level, variant, items, headerTypographyVariant, closedIconName, openedIconName, additionalProps, isChild, showEndIconWhenEmpty, }: NsAccordionProps) => ReactElement;
48
+
49
+ type CslpTag = { 'data-cslp': string };
50
+
51
+ type AdditionalProps = {
52
+ additionalProps?: {
53
+ ariaLabel?: string;
54
+ testid?: string;
55
+ className?: string;
56
+ 'data-testid'?: string;
57
+ } & Partial<CslpTag>;
58
+ cslp?: Record<string, CslpTag>;
59
+ } & DarkModeEnabledOption;
60
+
61
+ type Themed = {
62
+ theme: FoundationTheme.Theme;
63
+ };
64
+
65
+ type DarkModeEnabledOption = {
66
+ darkModeEnabled?: boolean;
67
+ };
68
+
69
+ type NsIconSizeType = 'small' | 'medium' | 'large' | 'xLarge';
70
+
71
+ type NsIconNameType = keyof typeof IconVariants;
72
+
73
+ type NsIconProps = HTMLProps & {
74
+ name: NsIconNameType;
75
+ size?: NsIconSizeType;
76
+ color?: FoundationTheme.PaletteColors;
77
+ testId?: string;
78
+ colorOverride?: string;
79
+ cursor?:
80
+ | 'auto'
81
+ | 'default'
82
+ | 'none'
83
+ | 'context-menu'
84
+ | 'help'
85
+ | 'pointer'
86
+ | 'progress'
87
+ | 'wait'
88
+ | 'cell'
89
+ | 'crosshair'
90
+ | 'text'
91
+ | 'vertical-text'
92
+ | 'alias'
93
+ | 'copy'
94
+ | 'move'
95
+ | 'no-drop'
96
+ | 'not-allowed'
97
+ | 'grab'
98
+ | 'grabbing'
99
+ | 'e-resize'
100
+ | 'n-resize'
101
+ | 'ne-resize'
102
+ | 'nw-resize'
103
+ | 's-resize'
104
+ | 'se-resize'
105
+ | 'sw-resize'
106
+ | 'w-resize'
107
+ | 'ew-resize'
108
+ | 'ns-resize'
109
+ | 'nesw-resize'
110
+ | 'nwse-resize'
111
+ | 'col-resize'
112
+ | 'row-resize'
113
+ | 'all-scroll'
114
+ | 'zoom-in'
115
+ | 'zoom-out';
116
+ };
117
+
118
+ declare const NsIcon: ({ name, size, color, testId, className, colorOverride, onClick, cursor, ...rest }: NsIconProps) => ReactElement | null;
119
+
120
+ /**
121
+ * * pass colorOverride = '#272525'
122
+ */
123
+ declare function UserOutline(props: SvgIconProps): ReactElement;
124
+
125
+ declare const IconVariants: {
126
+ arrowDown: (props: _mui_material.SvgIconProps) => react.ReactElement;
127
+ arrowUp: (props: _mui_material.SvgIconProps) => react.ReactElement;
128
+ arrowLeft: (props: _mui_material.SvgIconProps) => react.ReactElement;
129
+ arrowRight: (props: _mui_material.SvgIconProps) => react.ReactElement;
130
+ alertError: (props: _mui_material.SvgIconProps) => react.ReactElement;
131
+ cart: (props: _mui_material.SvgIconProps) => react.ReactElement;
132
+ cartBadge: (props: _mui_material.SvgIconProps) => react.ReactElement;
133
+ close: (props: _mui_material.SvgIconProps) => react.ReactElement;
134
+ check: (props: _mui_material.SvgIconProps) => react.ReactElement;
135
+ checkShield: (props: _mui_material.SvgIconProps) => react.ReactElement;
136
+ checkVerified: (props: _mui_material.SvgIconProps) => react.ReactElement;
137
+ error: (props: _mui_material.SvgIconProps) => react.ReactElement;
138
+ hamburgerIcon: (props: _mui_material.SvgIconProps) => react.ReactElement;
139
+ home: (props: _mui_material.SvgIconProps) => react.ReactElement;
140
+ infoFilled: (props: _mui_material.SvgIconProps) => react.ReactElement;
141
+ infoOutlined: (props: _mui_material.SvgIconProps) => react.ReactElement;
142
+ search: (props: _mui_material.SvgIconProps) => react.ReactElement;
143
+ success: (props: _mui_material.SvgIconProps) => react.ReactElement;
144
+ slash: (props: _mui_material.SvgIconProps) => react.ReactElement;
145
+ trash: (props: _mui_material.SvgIconProps) => react.ReactElement;
146
+ userIcon: (props: _mui_material.SvgIconProps) => react.ReactElement;
147
+ userOutline: typeof UserOutline;
148
+ warning: (props: _mui_material.SvgIconProps) => react.ReactElement;
149
+ roundedClose: (props: _mui_material.SvgIconProps) => react.ReactElement;
150
+ chevronRight: (props: _mui_material.SvgIconProps) => react.ReactElement;
151
+ };
152
+
153
+ declare const Check: (props: SvgIconProps$1) => ReactElement;
154
+
155
+ declare const iconSize: Record<NsIconSizeType, string>;
156
+ type IconWrapperType = {
157
+ size: NsIconSizeType;
158
+ cursor: NsIconProps['cursor'];
159
+ };
160
+ declare const IconWrapper: _emotion_styled.StyledComponent<{
161
+ theme?: _emotion_react.Theme;
162
+ as?: React.ElementType;
163
+ } & IconWrapperType, react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
164
+
165
+ type Variants =
166
+ | 'h1'
167
+ | 'h2'
168
+ | 'h3'
169
+ | 'h4'
170
+ | 'h5'
171
+ | 'h6'
172
+ | 'title-l'
173
+ | 'title-m'
174
+ | 'title-s'
175
+ | 'label-l'
176
+ | 'label-m'
177
+ | 'label-s'
178
+ | 'body-xl'
179
+ | 'body-l'
180
+ | 'body-m'
181
+ | 'body-s'
182
+ | 'body-xs'
183
+ | 'CTA';
184
+
185
+ type HtmlTagVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span' | 'p' | 'label';
186
+
187
+ type NsTypographyProps = {
188
+ variant: Variants;
189
+ decoration?: 'underline' | 'none';
190
+ weight?: 'bold' | 'normal' | 'light';
191
+ color?: FoundationTheme.PaletteColors;
192
+ component?: 'div' | 'span' | 'p';
193
+ as?: HtmlTagVariant;
194
+ className?: string;
195
+ colorOverride?: string;
196
+ renderHTMLNode?: boolean;
197
+ noSpacing?:boolean;
198
+ } & AdditionalProps;
199
+
200
+ declare const NsTypography: ({ children, weight, className, variant, decoration, color, additionalProps, colorOverride, noSpacing, renderHTMLNode, }: PropsWithChildren<NsTypographyProps>) => ReactElement;
201
+
202
+ declare const GlobalFontInter: () => ReactElement;
203
+
204
+ declare const HtmlTagVariantMapping: Record<string, HtmlTagVariant>;
205
+
206
+ declare const AccordionVariant: {
207
+ readonly Basic: "basic";
208
+ readonly Compact: "compact";
209
+ readonly Gray: "gray";
210
+ readonly Stripe: "stripe";
211
+ };
212
+ declare const variantValues: ("basic" | "compact" | "gray" | "stripe")[];
213
+ type AccordionVariantType = (typeof variantValues)[number];
214
+ declare const AccordionContentTypeObject: {
215
+ text: string;
216
+ html: string;
217
+ accordion: string;
218
+ jsx: string;
219
+ };
220
+ declare const contentValues: string[];
221
+ type AccordionContentType = (typeof contentValues)[number];
222
+
223
+ type AccordionItem = {
224
+ allowMultipleExpanded?: boolean;
225
+ type: AccordionContentType;
226
+ id: string;
227
+ content: string | AccordionItem[] | ReactElement | null;
228
+ icon?: NsIconProps;
229
+ title: string | ReactElement;
230
+ isDefaultOpen?: boolean;
231
+ $?: {
232
+ rte: CslpTag;
233
+ item_title: CslpTag;
234
+ };
235
+ };
236
+
237
+ type NsAccordionProps = AdditionalProps & {
238
+ invert: boolean;
239
+ level: number;
240
+ variant: AccordionVariantType;
241
+ items?: AccordionItem[];
242
+ isChild?: boolean;
243
+ headerTypographyVariant?: Variants;
244
+ /** NsIcon's icon name to be shown in opened state */
245
+ openedIconName?: NsIconNameType;
246
+ /** NsIcon's icon name to be shown in closed state */
247
+ closedIconName?: NsIconNameType;
248
+ allowMultipleExpanded: boolean;
249
+ showEndIconWhenEmpty?: boolean;
250
+ };
251
+
252
+ type CommonAccordionType = {
253
+ invert: boolean;
254
+ level: number;
255
+ variant: AccordionVariantType;
256
+ content: AccordionItem['content'];
257
+ };
258
+
259
+ type NsAccordionHeaderProps = AdditionalProps & {
260
+ title: string | ReactNode;
261
+ // eslint-disable-next-line no-unused-vars
262
+ onClick: (...args: any[]) => void;
263
+ /** a flag for the header, based on which header can change properties */
264
+ isOpen: boolean;
265
+ /** NsIcon's icon name to be shown in opened state */
266
+ openedIconName?: NsIconNameType;
267
+ /** NsIcon's icon name to be shown in closed state */
268
+ closedIconName?: NsIconNameType;
269
+ headerTypographyVariant?: Variants;
270
+ startIcon?: NsIconProps;
271
+ showEndIconWhenEmpty?: boolean;
272
+ content: AccordionItem['content'];
273
+ } & Pick<CommonAccordionType, 'invert' | 'variant'>;
274
+
275
+ type NsCollapseProps = AdditionalProps & {
276
+ isOpen: boolean;
277
+ isChild: boolean;
278
+ allowMultipleExpanded?: boolean;
279
+ type: AccordionContentType;
280
+ } & CommonAccordionType;
281
+
282
+ type NsToggleSectionProps = AdditionalProps & {
283
+ title: string | ReactNode;
284
+ /** if true, NsToggle is rendered in open state, that collapsible section is visible */
285
+ defaultOpen?: boolean;
286
+ isChild: boolean;
287
+ type: AccordionContentType;
288
+ } & Pick<CommonAccordionType, 'invert' | 'variant' | 'content'>;
289
+
290
+ type NsAccordionItemProps = AdditionalProps & {
291
+ isOpen: boolean;
292
+ // eslint-disable-next-line no-unused-vars
293
+ toggleOpen(index: number, isOpen: boolean): void;
294
+ title: string | ReactNode;
295
+ headerTypographyVariant?: Variants;
296
+ /** NsIcon's icon name to be shown in opened state */
297
+ openedIconName?: NsIconNameType;
298
+ /** NsIcon's icon name to be shown in closed state */
299
+ closedIconName?: NsIconNameType;
300
+ startIcon?: NsIconProps;
301
+ isChild: boolean;
302
+ type: AccordionContentType;
303
+ allowMultipleExpanded?: boolean;
304
+ showEndIconWhenEmpty?: boolean;
305
+ } & CommonAccordionType;
306
+
307
+ interface NsAlertProps {
308
+ context?: string;
309
+ title?: string;
310
+ threshold?: number;
311
+ type?: string;
312
+ visible?: boolean;
313
+ head?: ReactNode;
314
+ body?: ReactNode;
315
+ onDismiss?: () => void;
316
+ foot?: ReactNode;
317
+ }
318
+
319
+ declare function NsAlert({ context, title, threshold, type, visible, head, body, foot, onDismiss, }: NsAlertProps): ReactElement;
320
+
321
+ type NsAuthDropdownProps = {
322
+ signInRedirectLink: string;
323
+ signUpRedirectLink: string;
324
+ signInBtnText: string;
325
+ signUpLinkText: string;
326
+ signUpLinkPrefixText: string;
327
+ titleText: string;
328
+ closeOnMouseLeave?: boolean;
329
+ } & AdditionalProps;
330
+
331
+ declare const NsAuthDropdown: ({ signInRedirectLink, signUpRedirectLink, signInBtnText, signUpLinkText, signUpLinkPrefixText, titleText, closeOnMouseLeave, darkModeEnabled, }: NsAuthDropdownProps) => ReactElement;
332
+
333
+ type NsAutocompleteProps = {
334
+ id?: string;
335
+ options: OptionsProps[];
336
+ loading?: boolean;
337
+ OptionsUI: react__default.ComponentType<any>;
338
+ noOptionsText?: string;
339
+ /*
340
+ Callback fired when the input value changes.
341
+ event The event source of the callback.
342
+ value The new value of the text input.
343
+ reason Can be: "input" (user input), "reset" (programmatic change), "clear".
344
+ */
345
+ onInputChange(event: SyntheticEvent, value: string, reason: string): void;
346
+ onKeypress?:(event:SyntheticEvent) => void;
347
+ /*
348
+ event The event source of the callback.
349
+ value The new value of the component.
350
+ reason One of "createOption", "selectOption", "removeOption", "blur" or "clear".
351
+ */
352
+ onChange(
353
+ event: SyntheticEvent<Element, Event>,
354
+ value: string | OptionsProps | null,
355
+ reason: AutocompleteChangeReason,
356
+ details?: AutocompleteChangeDetails<OptionsProps> | undefined
357
+ ): void;
358
+ onFocus?:() => void;
359
+ clear?: {
360
+ text?: string;
361
+ show?: boolean; //default to false
362
+ onClear: () => void;
363
+ recentSearchText?: string;
364
+ };
365
+ seeMore?: {
366
+ text?: string;
367
+ show?: boolean; //default to false
368
+ onSeeMore: () => void;
369
+ };
370
+ placeholder?: string;
371
+ className?: string;
372
+ iconStart?: string | react__default.ReactNode;
373
+ iconEnd?: string | react__default.ReactNode;
374
+ inputValue: string;
375
+ value: string | OptionsProps | null;
376
+ isFilterEnabled?: boolean;
377
+ fullWidth?:boolean
378
+ } & AdditionalProps;
379
+
380
+ type ListUiProps = {
381
+ option: OptionsProps;
382
+ };
383
+
384
+ type OptionsProps = {
385
+ id: string;
386
+ group?: string;
387
+ value: string;
388
+ icon?: NsIconNameType;
389
+ image?: string;
390
+ groupBgColor?: string;
391
+ };
392
+
393
+ type ComponentBoxProps = ComponentsProps & HTMLAttributes<HTMLElement>;
394
+
395
+ declare const NsAutocomplete: ({ id, options, OptionsUI, loading, noOptionsText, onInputChange, onChange, onFocus, clear, seeMore, placeholder, className, iconStart, iconEnd, inputValue, value, isFilterEnabled, fullWidth, onKeypress, }: PropsWithChildren<NsAutocompleteProps>) => ReactElement;
396
+
397
+ declare const LineLoader: ({ show }: {
398
+ show: boolean;
399
+ }) => ReactElement;
400
+
401
+ type NsImageProps = {
402
+ alt: string;
403
+ className?: string;
404
+ fill?: boolean;
405
+ height?: number | string;
406
+ id?: string;
407
+ src: string;
408
+ variant?: 'product' | 'award' | 'icon' | 'fill';
409
+ width?: number | string;
410
+ };
411
+ type BynderImageDataType = {
412
+ /** selected is manually added, using additionalInfo from bynder */
413
+ selected?: {
414
+ url: string;
415
+ fileSize: number | null;
416
+ width: number | null;
417
+ height: number | null;
418
+ imageType?: string;
419
+ type: 'VIDEO' | 'IMAGE';
420
+ altText?: string;
421
+ fit: 'cover' | 'contain' | 'scale-down' | 'none';
422
+ position: string;
423
+ bgColor: string;
424
+ };
425
+ isPublic: boolean;
426
+ __typename?: 'Image';
427
+ id: string;
428
+ name: string;
429
+ description: string | null;
430
+ databaseId: string;
431
+ originalUrl?: string;
432
+ type: 'VIDEO' | 'IMAGE' | 'DOCUMENT';
433
+ url?: string;
434
+ previewUrls?: string[];
435
+ extensions?: string[];
436
+ textMetaproperties?: ({
437
+ name: string;
438
+ value: string;
439
+ } | null)[];
440
+ files: {
441
+ [key: string]: {
442
+ url: string;
443
+ width: number | null;
444
+ height: number | null;
445
+ fileSize: number | null;
446
+ };
447
+ };
448
+ };
449
+
450
+ type AlignmentType$1 = 'start' | 'center' | 'end';
451
+
452
+
453
+ type NsBannerProps = {
454
+ children: react__default.ReactNode;
455
+ image: BynderImageDataType;
456
+ alignment?: AlignmentType$1;
457
+ justify?: AlignmentType$1;
458
+ className?: string;
459
+ } & AdditionalProps;
460
+
461
+ /**
462
+ * @author [Vijayaprathap Kumar] (vpkumar@nuskin.com)
463
+ * NsBanner.tsx
464
+ * @description NsBanner component with a image background
465
+ */
466
+
467
+ declare const NsBanner: (props: PropsWithChildren<NsBannerProps>) => ReactElement;
468
+
469
+ type NsBrandComponentProps = {
470
+ variant?: 'stacked' | 'horizontal' | 'poweredBy' | 'logomark' | 'wordmark';
471
+ size?: string;
472
+ color?: FoundationTheme.PaletteColors;
473
+ /** When set (valid non-empty string), renders this SVG URL instead of the variant logo. Variant and color are ignored. */
474
+ logoUrl?: string;
475
+ /** Alt text for the logo image when logoUrl is used. Defaults to "Logo". */
476
+ logoAlt?: string;
477
+ };
478
+
479
+ declare const NsBrandComponent: (props: PropsWithChildren<NsBrandComponentProps>) => ReactElement;
480
+
481
+ type NsBreadcrumbProps = {
482
+ items?: ItemProps[];
483
+ underline?: boolean;
484
+ separator?: 'chevronRight' | 'slash';
485
+ };
486
+
487
+ type ItemProps = {
488
+ label?: string;
489
+ href?: string;
490
+ icon?: NsIconNameType;
491
+ } & AdditionalProps;
492
+
493
+ /**
494
+ * @author [Vijayaprathap Kumar] (vpkumar@nuskin.com)
495
+ * NsBreadcrumb.tsx
496
+ * @description NsBreadcrumb component with a navigation items array props
497
+ */
498
+
499
+ declare const NsBreadcrumb: (props: PropsWithChildren<NsBreadcrumbProps>) => ReactElement;
500
+
501
+ type NsButtonProps = Pick<
502
+ ButtonProps,
503
+ | 'aria-label'
504
+ | 'className'
505
+ | 'color'
506
+ | 'disabled'
507
+ | 'endIcon'
508
+ | 'fullWidth'
509
+ | 'href'
510
+ | 'onBlur'
511
+ | 'onClick'
512
+ | 'onChange'
513
+ | 'onFocus'
514
+ | 'size'
515
+ | 'startIcon'
516
+ | 'type'
517
+ | 'variant'
518
+ > & {
519
+ iconOnly?: boolean;
520
+ darkModeEnabled?: boolean;
521
+ startIconName?: NsIconProps['name'];
522
+ endIconName?: NsIconProps['name'];
523
+ };
524
+
525
+ declare const NsButton: ({ children, darkModeEnabled, ...props }: PropsWithChildren<NsButtonProps>) => ReactElement;
526
+
527
+ declare function NsBrandWrapper({ children }: PropsWithChildren): ReactElement;
528
+
529
+ type NsBgCardProps = {
530
+ backgroundImageUrl: string;
531
+ };
532
+ declare const NsBgCard: _emotion_styled.StyledComponent<_mui_material_Card.CardOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
533
+ ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
534
+ }, "variant" | "style" | "children" | "className" | "classes" | "sx" | "elevation" | "square" | "raised"> & {
535
+ theme?: _emotion_react.Theme;
536
+ } & NsBgCardProps, {}, {}>;
537
+
538
+ declare const NsBrandLogo: _emotion_styled.StyledComponent<_mui_material_CardMedia.CardMediaOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
539
+ ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
540
+ }, "style" | "image" | "children" | "className" | "classes" | "sx" | "src"> & {
541
+ theme?: _emotion_react.Theme;
542
+ } & {
543
+ component: "img";
544
+ }, {}, {}>;
545
+
546
+ type NsFfgCardProps = AdditionalProps & {
547
+ topImageUrl: string;
548
+ topImageAlt: string;
549
+ text: string;
550
+ cardLink: { href: string; title: string };
551
+ onClick(): void;
552
+ cslp?: {
553
+ card_text: CslpTag;
554
+ action_text: CslpTag;
555
+ };
556
+ };
557
+
558
+ type NsCardButton = {
559
+ showButton?: boolean;
560
+ fullWidth?: boolean;
561
+ url?: string;
562
+ endIcon?: NsIconNameType;
563
+ buttonText: string;
564
+ buttonVariant?: 'text' | 'outlined' | 'contained';
565
+ buttonColor?: 'secondary' | 'primary';
566
+ showArrowWithText?: boolean;
567
+ };
568
+
569
+ type NsHeroCardLevel1Props = {
570
+ cardTitle: string;
571
+ cardDescription: string;
572
+ backgroundImageDetail: BynderImageDataType;
573
+ button?: NsCardButton;
574
+ className?: string;
575
+ imagePosition?: 'top' | 'bottom';
576
+ fontColor?: 'primary' | 'secondary';
577
+ };
578
+ declare function NsHeroCardLevel1({ cardTitle, cardDescription, backgroundImageDetail, button, className, imagePosition, fontColor, }: NsHeroCardLevel1Props): ReactElement;
579
+
580
+ type NsHeroCardLevel2Props = {
581
+ brandName: string;
582
+ cardTitle: string;
583
+ cardDescription: string;
584
+ backgroundImageDetail: BynderImageDataType;
585
+ button?: NsCardButton;
586
+ className?: string;
587
+ fontColor?: 'primary' | 'secondary';
588
+ };
589
+ declare const NsHeroCardLevel2: ({ brandName, cardTitle, cardDescription, backgroundImageDetail, button, className, fontColor, }: NsHeroCardLevel2Props) => ReactElement;
590
+
591
+ type NsPostProps = {
592
+ text: string;
593
+ body: string;
594
+ backgroundImageDetail: BynderImageDataType;
595
+ className?: string;
596
+ fontColor?: 'primary' | 'secondary';
597
+ };
598
+ declare const NsPost: ({ text, body, backgroundImageDetail, className, fontColor }: NsPostProps) => ReactElement;
599
+
600
+ type NsBrandCardProps = {
601
+ title?: string;
602
+ brandImageUrl: string;
603
+ backgroundImageUrl: string;
604
+ size?: 'small' | 'large';
605
+ button?: NsCardButton;
606
+ className?: string;
607
+ fontColor?: 'primary' | 'secondary';
608
+ };
609
+ declare function NsBrandCard({ title, brandImageUrl, backgroundImageUrl, button, size, className, fontColor, }: NsBrandCardProps): ReactElement;
610
+
611
+ type NsIconTextProps = {
612
+ text: string;
613
+ body: string;
614
+ className?: string;
615
+ fontColor?: 'primary' | 'secondary';
616
+ };
617
+ declare const NsIconText: ({ text, body, className, fontColor }: NsIconTextProps) => react_jsx_runtime.JSX.Element;
618
+
619
+ type NsCheckoutCardProps = {
620
+ icon: NsIconNameType;
621
+ title: string;
622
+ linkText: string;
623
+ url: string;
624
+ className?: string;
625
+ fontColor?: 'primary' | 'secondary';
626
+ };
627
+ declare function NsCheckoutCard({ title, icon, linkText, url, className, fontColor, }: NsCheckoutCardProps): ReactElement;
628
+
629
+ type NsSmallFullCardProps = {
630
+ title: string;
631
+ subtitle: string;
632
+ backgroundImageDetail: BynderImageDataType;
633
+ button?: NsCardButton;
634
+ className?: string;
635
+ fontColor?: 'primary' | 'secondary';
636
+ };
637
+ declare function NsSmallFullCard({ title, subtitle, backgroundImageDetail, button, className, fontColor, }: NsSmallFullCardProps): ReactElement;
638
+
639
+ type NsXLargeCardProps = {
640
+ title: string;
641
+ subtitle: string;
642
+ backgroundImageDetail: BynderImageDataType;
643
+ button?: NsCardButton;
644
+ className?: string;
645
+ fontColor?: 'primary' | 'secondary';
646
+ };
647
+ declare function NsXLargeCard({ title, subtitle, backgroundImageDetail, button, className, fontColor, }: NsXLargeCardProps): ReactElement;
648
+
649
+ type NsLargeCardProps = {
650
+ title: string;
651
+ subtitle?: string;
652
+ intro: string;
653
+ backgroundImageDetail: BynderImageDataType;
654
+ isHorizontal?: boolean;
655
+ button?: NsCardButton;
656
+ className?: string;
657
+ fontColor?: 'primary' | 'secondary';
658
+ };
659
+ declare function NsLargeCard({ title, subtitle, backgroundImageDetail, intro, isHorizontal, button, className, fontColor, }: NsLargeCardProps): ReactElement;
660
+
661
+ type NsMediumCardProps = {
662
+ title: string;
663
+ titleFontWeight?: 'bold' | 'normal' | 'light';
664
+ subtitle: string;
665
+ backgroundImageDetail: BynderImageDataType;
666
+ button?: NsCardButton;
667
+ className?: string;
668
+ fluid?: boolean;
669
+ showArrowWithButtonText?: boolean;
670
+ fontColor?: 'primary' | 'secondary';
671
+ };
672
+ declare function NsMediumCard({ title, titleFontWeight, subtitle, backgroundImageDetail, button, className, fluid, showArrowWithButtonText, fontColor, }: NsMediumCardProps): ReactElement;
673
+
674
+ type NsAwardCardProps = {
675
+ title: string;
676
+ awardName: string;
677
+ mediaOutlet: string;
678
+ backgroundImageDetail: BynderImageDataType;
679
+ className?: string;
680
+ fontColor?: 'primary' | 'secondary';
681
+ };
682
+ declare function NsAwardCard({ title, awardName, mediaOutlet, backgroundImageDetail, className, fontColor, }: NsAwardCardProps): ReactElement;
683
+
684
+ type NsCarouselProps<T = any> = {
685
+ entries: T[];
686
+ // eslint-disable-next-line no-unused-vars
687
+ renderEntry(entry: T, index: number): ReactNode;
688
+ allEntryLink?: string;
689
+ allEntryLabel?: string;
690
+ settings: any;
691
+ showControlButtons?: boolean;
692
+ ariaLabel?: string;
693
+ ariaLabelledBy?: string;
694
+ };
695
+
696
+ type NsScrollingCarouselProps<T = any> = {
697
+ slides: T;
698
+ // eslint-disable-next-line no-unused-vars
699
+ renderSlide(slide: T, index: number): ReactNode;
700
+ /* time it takes while scrolling */
701
+ scrollSeconds: number;
702
+ /* time for which slide stays still before scrolling */
703
+ stillSeconds: number;
704
+ settings: any;
705
+ /* value in number, specifying how much the dots should be from bottom of slides container */
706
+ dotsBottomPixel?: number;
707
+ } & AdditionalProps;
708
+
709
+ declare function NsCarousel<T = any>({ entries, renderEntry, allEntryLink, settings, allEntryLabel, showControlButtons, ariaLabel, ariaLabelledBy, }: NsCarouselProps<T>): ReactElement;
710
+
711
+ declare const NsScrollingCarousel: ({ slides, scrollSeconds, stillSeconds, renderSlide, settings, dotsBottomPixel, additionalProps, }: NsScrollingCarouselProps) => ReactElement;
712
+
713
+ declare const defaultCarouselSettings: {
714
+ dots: boolean;
715
+ infinite: boolean;
716
+ speed: number;
717
+ slidesToShow: number;
718
+ slidesToScroll: number;
719
+ swipeToSlide: boolean;
720
+ responsive: ({
721
+ breakpoint: number;
722
+ settings: {
723
+ slidesToShow: number;
724
+ slidesToScroll: number;
725
+ infinite: boolean;
726
+ dots: boolean;
727
+ initialSlide?: undefined;
728
+ };
729
+ } | {
730
+ breakpoint: number;
731
+ settings: {
732
+ slidesToShow: number;
733
+ slidesToScroll: number;
734
+ initialSlide: number;
735
+ infinite?: undefined;
736
+ dots?: undefined;
737
+ };
738
+ } | {
739
+ breakpoint: number;
740
+ settings: {
741
+ slidesToShow: number;
742
+ slidesToScroll: number;
743
+ infinite?: undefined;
744
+ dots?: undefined;
745
+ initialSlide?: undefined;
746
+ };
747
+ })[];
748
+ };
749
+
750
+ interface CarouselControlProps {
751
+ next(): void;
752
+ prev(): void;
753
+ viewAllLabel: string;
754
+ viewAllUrl: string;
755
+ showNavigationButtons?: boolean;
756
+ prevAriaLabel?: string;
757
+ nextAriaLabel?: string;
758
+ }
759
+ declare const CarouselControl: ({ next, prev, viewAllUrl, viewAllLabel, showNavigationButtons, prevAriaLabel, nextAriaLabel, }: CarouselControlProps) => ReactElement;
760
+
761
+ type NsCartIconProps = {
762
+ itemCount?: number;
763
+ size?: 'small' | 'medium' | 'large' | 'xLarge';
764
+ color?: FoundationTheme.PaletteColors;
765
+ maxItemCount?: number;
766
+ };
767
+
768
+ declare const NsCartIcon: ({ itemCount, size, color, maxItemCount, }: NsCartIconProps) => ReactElement;
769
+
770
+ /**
771
+ * @description Extend the FlagProps interface to include message, color and size prop.
772
+ */
773
+
774
+
775
+
776
+ type NsFlagSize = 'small' | 'medium' | 'large';
777
+
778
+ type NsFlagProps = {
779
+ className?: string;
780
+ size?: NsFlagSize;
781
+ message?: string;
782
+ testId?: string;
783
+ /** Displays background color for flag container */
784
+ color?: FoundationTheme.PaletteColors;
785
+ };
786
+
787
+ /**
788
+ * @author [Vijayaprathap Kumar] (vpkumar@nuskin.com)
789
+ * flag.tsx
790
+ * @description NsFlag component with a themed background
791
+ */
792
+
793
+ declare const NsFlag: (props: PropsWithChildren<NsFlagProps>) => ReactElement | null;
794
+
795
+ // Define the props for the custom checkbox component
796
+ type NsCheckboxProps = Pick<CheckboxProps, 'label' | 'onChange'> & {
797
+ name: string;
798
+ className?: string;
799
+ checked: boolean;
800
+ /* Aria label for the checkbox area. */
801
+ ariaLabel?: string;
802
+ /* True if you want disable the checkbox and label . */
803
+ disabled?: boolean;
804
+ /* Size of the checkbox component. Either small / medium. */
805
+ size?: 'small' | 'medium';
806
+ /* Flag component props */
807
+ flag?: NsFlagProps;
808
+ /* Test Id for testing purpose */
809
+ testid?: string;
810
+ };
811
+
812
+ /**
813
+ * @author [Vijayaprathap Kumar] (vpkumar@nuskin.com)
814
+ * checkbox.tsx
815
+ * @description
816
+ */
817
+
818
+ declare const NsCheckbox: (props: PropsWithChildren<NsCheckboxProps>) => ReactElement;
819
+
820
+ /*
821
+ options to be shown on content stack
822
+ 1 Column (100%)
823
+ 2 Columns (50%, 50%)
824
+ 2 Columns (33%, 67%)
825
+ 2 Columns (67%, 33%)
826
+ 3 Columns (33%, 33%, 33%)
827
+ 3 Columns (50%, 25%, 25%)
828
+ 3 Columns (25%, 25%, 50%)
829
+ 4 Columns (25%, 25%, 25%, 25%)
830
+ */
831
+ type NsColumnControlProps = PropsWithChildren<{
832
+ /**
833
+ * follows the convention of ns-col-lg-(column-ratio) (for large screens >= 960px),
834
+ * ns-col-md-(column-ratio) (for tablet screens >= 600px),
835
+ * and ns-col-sm-(column-ratio) (for mobile screens i.e < 600px)
836
+ * sample values
837
+ * 'ns-col-lg-2-1', 'ns-col-lg-1-2', 'ns-col-lg-1-1',
838
+ */
839
+ columnClass: string;
840
+ gap?: number;
841
+ }> &
842
+ AdditionalProps;
843
+
844
+ type NsFlexColumnsProps = PropsWithChildren<{
845
+ /**
846
+ * follows the convention of ns-col-lg-{column-ratio}
847
+ * sample value for column-ratio = 2-1 ==>ns-col-lg-2-1
848
+ */
849
+ columnClass: string;
850
+ gap: number;
851
+ /* when this boolean is true, column control takes full width of page instead of being restricted to 1200px */
852
+ isFullWidth?: boolean;
853
+ }> &
854
+ AdditionalProps;
855
+
856
+ type NsGridColumnsProps = NsFlexColumnsProps;
857
+
858
+ declare const NsColumnControl: ({ columnClass, children, gap, additionalProps }: NsColumnControlProps) => ReactElement;
859
+
860
+ declare const NsFlexColumns: ({ columnClass, children, gap, additionalProps, isFullWidth, }: NsFlexColumnsProps) => ReactElement;
861
+
862
+ declare const NsGridColumns: ({ columnClass, children, gap, isFullWidth, additionalProps, }: NsGridColumnsProps) => ReactElement;
863
+
864
+ interface DropdownProps extends AdditionalProps {
865
+ selectedLabel: ReactNode;
866
+ onSelect: (arg: ReactNode) => void; // eslint-disable-line
867
+ children: ReactNode[];
868
+ disabled?: boolean;
869
+ type?: 'outlined' | 'unfilled';
870
+ placeholder?: string;
871
+ dropdownBorderColor?: FoundationTheme.PaletteColors;
872
+ closeOnMouseLeave?: boolean;
873
+ showListDivider?: boolean;
874
+ className?: string;
875
+ placeholder?: string;
876
+ }
877
+
878
+ interface DropdownOptionProps {
879
+ value: string;
880
+ children: ReactNode;
881
+ }
882
+
883
+ declare const NsDropdown: react__default.FC<DropdownProps>;
884
+
885
+ declare const NsDropdownOption: react__default.FC<DropdownOptionProps>;
886
+
887
+ type NsEmailSimpleProps = Pick<TextFieldProps> &
888
+ AdditionalProps & {
889
+ disabled?: boolean;
890
+ label?: string;
891
+ required?: boolean;
892
+ maxLength?: number;
893
+ invalidEmailText?: string;
894
+ dupedEmailText?: string;
895
+ requiredErrorMessage?: string;
896
+ checkEmail?: Function;
897
+ };
898
+
899
+ declare const NsEmailSimple: (props: NsEmailSimpleProps) => ReactElement;
900
+
901
+ declare const useWindowSize: () => {
902
+ width: number;
903
+ height: number;
904
+ };
905
+
906
+ type ItemMap = Record<string, boolean>;
907
+ type UseAccordionProp = {
908
+ allowMultipleExpanded?: boolean;
909
+ defaultOpenIds?: string[];
910
+ };
911
+ declare const useAccordionMap: ({ allowMultipleExpanded, defaultOpenIds }: UseAccordionProp) => {
912
+ itemStateMap: ItemMap;
913
+ toggleOpen: (index: string | number) => void;
914
+ };
915
+
916
+ declare const NsImage: ({ src, width, height, alt, variant, ...rest }: NsImageProps) => ReactElement;
917
+
918
+ /** end alt text */
919
+ /** DAT specific */
920
+ declare const getBasicDATWidthHeight: (width?: number, height?: number, transform?: string) => string;
921
+
922
+ // TODO: check if fieldStateType could be converted to enum, since we also have to account for undefined
923
+ type fieldStateType = undefined | 'error' | 'success';
924
+ type NsInputFieldProps = Omit<
925
+ TextFieldProps,
926
+ | 'sx'
927
+ | 'hiddenLabel'
928
+ | 'style'
929
+ | 'classes'
930
+ | 'className'
931
+ | 'color'
932
+ | 'error'
933
+ | 'margin'
934
+ | 'size'
935
+ | 'variant'
936
+ | 'select'
937
+ | 'SelectProps'
938
+ > & {
939
+ /**
940
+ * has default undefined value, and we can update the value to success
941
+ * on successful validation and update value to 'error' in case of error
942
+ */
943
+
944
+ fieldState?: fieldStateType;
945
+ iconStart?: ReactNode;
946
+ /**
947
+ * assign react component for end icon
948
+ */
949
+ iconEnd?: ReactNode;
950
+ /**
951
+ * assign react component for side icon
952
+ */
953
+
954
+ iconSide?: ReactNode;
955
+ /** purpose of showOptional props is to show additional text 'optional' in the label,
956
+ * if required = false and this flag is true */
957
+ showOptional?: boolean;
958
+ defaultValue?: string;
959
+ rows?: number;
960
+ id?: string;
961
+ labelSize?: number;
962
+ } & AdditionalProps;
963
+
964
+ /**
965
+ * we are using fieldState in place of error prop
966
+ * @param props { placeholder, fieldState, iconStart, iconEnd, iconSide }
967
+ * @returns Input Field
968
+ */
969
+ declare const NsInputField: (props: NsInputFieldProps) => ReactElement;
970
+
971
+ type NsLabelProps = PropsWithChildren &
972
+ Omit<InputLabelProps, 'sx' | 'classes' | 'color' | 'margin' | 'variant' | 'classes'> & {
973
+ /** purpose of showOptional props is to show additional text 'optional' in the label,
974
+ * if required = false and this flag is true */
975
+ showOptional?: boolean;
976
+ size?: number;
977
+ };
978
+
979
+ declare const NsLabel: (props: NsLabelProps) => ReactElement;
980
+
981
+ /**
982
+ * @author [Vijayaprathap Kumar] (vpkumar@nuskin.com)
983
+ * @name types.tsx
984
+ * @description Exports types for components - NsLink
985
+ */
986
+
987
+
988
+ type NsLinkProps = AdditionalProps & {
989
+ className?: string;
990
+ href: string;
991
+ variants?: string;
992
+ outlined?: boolean;
993
+ // Used to enable the underline when hover the element
994
+ underlineOnHover?: boolean;
995
+ disabled?: boolean;
996
+ target?: string;
997
+ isSsr?: boolean;
998
+ passHref?: boolean;
999
+ prefetch?: boolean;
1000
+ showHorizontal?: boolean;
1001
+ color?: 'primary' | 'secondary';
1002
+ };
1003
+
1004
+ declare const NsLink: (props: PropsWithChildren<NsLinkProps>) => ReactElement;
1005
+
1006
+ interface NsModalProps extends NsModalComponentProps {
1007
+ open: boolean;
1008
+ fullScreen?: boolean;
1009
+ }
1010
+ interface NsModalComponentProps {
1011
+ handleClose?: () => void;
1012
+ additionalProps?: NsModalAdditionalProps;
1013
+ variant?: NsModalVariant | 'default';
1014
+ header?: NsModalContentProps;
1015
+ body?: NsModalContentProps;
1016
+ footer?: NsModalContentProps;
1017
+ statusInfo?: NsModalStatusProps;
1018
+ }
1019
+ interface NsModalContentProps {
1020
+ show?: boolean;
1021
+ children?: string | ReactNode;
1022
+ isCloseIcon?: boolean;
1023
+ iconName?: NsIconNameType;
1024
+ }
1025
+ interface NsModalStatusProps {
1026
+ title: string;
1027
+ description: string;
1028
+ }
1029
+ interface NsModalAdditionalProps {
1030
+ className?: string;
1031
+ scrollType?: 'paper' | 'body';
1032
+ ariaLabel?: NsModalAriaLabelProps;
1033
+ dividers?: boolean;
1034
+ }
1035
+ interface NsModalAriaLabelProps {
1036
+ ariaLabelledby?: string;
1037
+ ariaDescribedby?: string;
1038
+ }
1039
+ type NsModalVariant = 'success' | 'warning' | 'error' | 'info';
1040
+
1041
+ declare const NsModal: (props: NsModalProps) => ReactElement;
1042
+
1043
+ interface NsNavProductCardProps extends AdditionalProps {
1044
+ productImg: BynderImageDataType;
1045
+ productName: string;
1046
+ className?: string;
1047
+ productDescription: string;
1048
+ }
1049
+
1050
+ declare const NsNavProductCard: ({ productImg, productDescription, productName, className, }: NsNavProductCardProps) => ReactElement;
1051
+
1052
+ type NavTabs = {
1053
+ tabName: string;
1054
+ tabLink?: string;
1055
+ tabContent?: ReactNode;
1056
+ activeColor: FoundationTheme.PaletteColors;
1057
+ color?: FoundationTheme.PaletteColors;
1058
+ textVariant: Variants;
1059
+ liveTag?: CslpTag;
1060
+ };
1061
+
1062
+ type NsNavTabComponentProps = {
1063
+ tabs: NavTabs[];
1064
+ className?: string;
1065
+ tabTitleClassName?: string;
1066
+ showDrawer?: boolean;
1067
+ } & AdditionalProps;
1068
+
1069
+ declare const NsNavTabComponent: ({ tabs, className, tabTitleClassName, showDrawer, }: NsNavTabComponentProps) => ReactElement;
1070
+
1071
+ declare module '@mui/material/LinearProgress' {
1072
+ // eslint-disable-next-line no-unused-vars
1073
+ interface LinearProgressPropsColorOverrides {
1074
+ neutral: true;
1075
+ accentColorA: true;
1076
+ accentColorB: true;
1077
+ accentColorC: true;
1078
+ accentColorD: true;
1079
+ }
1080
+ }
1081
+
1082
+ type NsProgressProps = {
1083
+ barColor?: FoundationTheme.PaletteColors;
1084
+ backgroundColor?: FoundationTheme.PaletteColors;
1085
+ height?: string;
1086
+ value: number;
1087
+ body?: ReactNode;
1088
+ };
1089
+
1090
+ declare const NsProgress: (props: NsProgressProps) => ReactElement;
1091
+
1092
+ type NsRadioGroupProps = Pick<RadioGroupProps, 'name' | 'onChange' | 'value' | 'defaultValue' | 'row'> & {
1093
+ disable: boolean;
1094
+ helperText: string;
1095
+ label: string;
1096
+ items: RadioItems[];
1097
+ color: FoundationTheme.PaletteColors;
1098
+ size: number;
1099
+ labelFontSize: number;
1100
+ } & AdditionalProps;
1101
+
1102
+ type RadioItems = {
1103
+ label: string;
1104
+ value: string | number;
1105
+ id: string | number;
1106
+ };
1107
+
1108
+ declare const NsRadioGroup: (props: NsRadioGroupProps) => ReactElement;
1109
+
1110
+ interface SelectProps {
1111
+ selected: LabelValueType;
1112
+ onSelect(arg: LabelValueType): void; // eslint-disable-line
1113
+ children?: ReactNode | null;
1114
+ disabled?: boolean;
1115
+ type?: 'outlined' | 'unfilled';
1116
+ placeholder?: string;
1117
+ selectBorderColor?: FoundationTheme.PaletteColors;
1118
+ closeOnMouseLeave?: boolean;
1119
+ showListDivider?: boolean;
1120
+ label?: string;
1121
+ readOnly?: boolean;
1122
+ name?: string;
1123
+ errorMessage?: string;
1124
+ menuProps?: string | object;
1125
+ reverseArrowControls?: boolean;
1126
+ validateOnBlur?: boolean;
1127
+ autoComplete?: string;
1128
+ // eslint-disable-next-line no-undef
1129
+ rules?: Array;
1130
+ hasArrows?: boolean;
1131
+ options: LabelValueType[];
1132
+ RenderOption?(x: any): any; // eslint-disable-line
1133
+ }
1134
+
1135
+ interface SelectOptionProps {
1136
+ value: string;
1137
+ label: string;
1138
+ selected?: LabelValueType;
1139
+ index: number;
1140
+ onClick: () => void;
1141
+ showListDivider?: boolean;
1142
+ }
1143
+
1144
+ type LabelValueType = {
1145
+ label: string;
1146
+ value: string;
1147
+ id?: string;
1148
+ index?: number;
1149
+ };
1150
+
1151
+ type RenderSelectOptionArgType = LabelValueType & {
1152
+ onClick(): void;
1153
+ showListDivider: boolean;
1154
+ selected: LabelValueType;
1155
+ };
1156
+
1157
+ declare const NsSelect: react__default.FC<SelectProps>;
1158
+
1159
+ declare const NsSelectOption: react__default.FC<SelectOptionProps>;
1160
+
1161
+ type NsSpinnerProps = {
1162
+ size?: number;
1163
+ } & Omit<AdditionalProps, 'darkModeEnabled'>;
1164
+
1165
+ declare const NsSpinner: react__default.FC<NsSpinnerProps>;
1166
+
1167
+ /* eslint-disable no-unused-vars */
1168
+
1169
+
1170
+ interface Header {
1171
+ label: string;
1172
+ id: string | number;
1173
+ numeric: boolean;
1174
+ sortable?: boolean;
1175
+ }
1176
+
1177
+ interface Item {
1178
+ [key: string]: string | number;
1179
+ }
1180
+
1181
+ interface NsTableProps {
1182
+ headers: Header[];
1183
+ items: Item[];
1184
+ rows: number;
1185
+ itemKey: string;
1186
+ rowsPerPageOptions: number[];
1187
+ isExpandableAll?: boolean;
1188
+ showActions?: boolean;
1189
+ showExpandedContent?: boolean;
1190
+ loading?: boolean;
1191
+ expandableContent: (selectedItem: Item, index: number) => React$1.ReactNode;
1192
+ actionClick: (item: Item) => React$1.ReactNode;
1193
+ }
1194
+
1195
+ declare function NsTable({ headers, items, rows, rowsPerPageOptions, itemKey, expandableContent, actionClick, showActions, showExpandedContent, loading, isExpandableAll, }: NsTableProps): ReactElement;
1196
+
1197
+ type AlignmentType = 'start' | 'center' | 'end';
1198
+
1199
+ type TextCtaDataType = {
1200
+ link: {
1201
+ href?: string;
1202
+ title?: string;
1203
+ };
1204
+ description?: string;
1205
+ };
1206
+ type NsTextStripProps = {
1207
+ alignment?: AlignmentType;
1208
+ className?: string;
1209
+ } & AdditionalProps &
1210
+ TextCtaDataType;
1211
+
1212
+ /**
1213
+ * NsTextStrip.tsx
1214
+ * @description NsTextStrip component for scrolling text CTA
1215
+ */
1216
+
1217
+ declare const NsTextStrip: (props: NsTextStripProps) => ReactElement;
1218
+
1219
+ declare const NsToastProvider: (props: PropsWithChildren<SnackbarProviderProps>) => ReactElement;
1220
+
1221
+ type ToastActionLink = {
1222
+ label: string;
1223
+ onClick?: () => void;
1224
+ };
1225
+ type ToastOptions = {
1226
+ className?: string;
1227
+ autoHideDuration?: number | null;
1228
+ persist?: boolean;
1229
+ showCloseIcon?: boolean;
1230
+ actions?: ToastActionLink[];
1231
+ };
1232
+ declare const useToast: () => {
1233
+ showToast: (variant?: VariantType, message?: string, options?: ToastOptions) => notistack.SnackbarKey | undefined;
1234
+ closeToast: (toastId?: string) => void;
1235
+ };
1236
+
1237
+ type ShowType = PropsWithChildren & {
1238
+ when?: boolean;
1239
+ elseContent?: ReactElement;
1240
+ };
1241
+ declare const Show: ({ when, children, elseContent }: ShowType) => ReactElement;
1242
+
1243
+ type NsVideoProps = {
1244
+ src: string;
1245
+ title?: string;
1246
+ width?: string;
1247
+ height?: string;
1248
+ allowFullScreen?: boolean;
1249
+ } & AdditionalProps;
1250
+
1251
+ /**
1252
+ * @author [Vijayaprathap Kumar] (vpkumar@nuskin.com)
1253
+ * NsVideo.tsx
1254
+ * @description NsVideo component with a Iframe video url props
1255
+ */
1256
+
1257
+ declare const NsVideo: (props: PropsWithChildren<NsVideoProps>) => ReactElement;
1258
+
1259
+ export { type AccordionContentType, AccordionContentTypeObject, type AccordionItem, AccordionVariant, type AccordionVariantType, type AdditionalProps, type BynderImageDataType, Check, type ComponentBoxProps, type CslpTag, type DarkModeEnabledOption, type DropdownOptionProps, type DropdownProps, GlobalFontInter, type HtmlTagVariant, HtmlTagVariantMapping, IconWrapper, type ItemProps, type LabelValueType, LineLoader, type ListUiProps, type NavTabs, NsAccordion, NsAccordionHeader, type NsAccordionHeaderProps, NsAccordionItem, type NsAccordionItemProps, type NsAccordionProps, NsAlert, type NsAlertProps, NsAuthDropdown, type NsAuthDropdownProps, NsAutocomplete, type NsAutocompleteProps, NsAwardCard, NsBanner, type NsBannerProps, NsBgCard, NsBrandCard, NsBrandComponent, type NsBrandComponentProps, NsBrandLogo, NsBrandWrapper, NsBreadcrumb, type NsBreadcrumbProps, NsButton, type NsButtonProps, type NsCardButton, NsCarousel, CarouselControl as NsCarouselControl, type NsCarouselProps, NsCartIcon, type NsCartIconProps, NsCheckbox, type NsCheckboxProps, NsCheckoutCard, NsCollapse, type NsCollapseProps, NsColumnControl, type NsColumnControlProps, defaultCarouselSettings as NsDefaultCarouselSettings, NsDropdown, NsDropdownOption, NsEmailSimple, type NsEmailSimpleProps, type NsFfgCardProps, NsFlag, type NsFlagProps, type NsFlagSize, NsFlexColumns, NsGridColumns, NsHeroCardLevel1, NsHeroCardLevel2, NsIcon, type NsIconNameType, type NsIconProps, type NsIconSizeType, NsIconText, IconVariants as NsIconVariants, NsImage, NsInputField, type NsInputFieldProps, NsLabel, type NsLabelProps, NsLargeCard, NsLink, type NsLinkProps, NsMediumCard, NsModal, type NsModalProps, type NsModalVariant, NsNavProductCard, type NsNavProductCardProps, NsNavTabComponent as NsNavTab, type NsNavTabComponentProps, NsPost, NsProgress, type NsProgressProps, NsRadioGroup, type NsRadioGroupProps, NsScrollingCarousel, type NsScrollingCarouselProps, NsSelect, NsSelectOption, NsSmallFullCard, NsSpinner, type NsSpinnerProps, NsTable, type NsTableProps, NsTextStrip, type NsTextStripProps, NsToastProvider, NsToggleSection, type NsToggleSectionProps, NsTypography, type NsTypographyProps, NsVideo, type NsVideoProps, NsXLargeCard, type OptionsProps, type RenderSelectOptionArgType, type SelectOptionProps, type SelectProps, Show, type Themed, type ToastOptions, type Variants, getBasicDATWidthHeight, iconSize, useAccordionMap, useToast, useWindowSize };