cekat-ui 1.3.9 → 1.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +192 -0
- package/dist/index.d.ts +192 -0
- package/dist/index.mjs +5311 -4563
- package/dist/index.umd.js +4 -4
- package/dist/style.css +192 -0
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -11,6 +11,8 @@ import { GroupProps } from 'react-aria-components';
|
|
|
11
11
|
import { InputProps as InputProps_2 } from 'react-aria-components';
|
|
12
12
|
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
13
13
|
import { Key } from 'react-aria-components';
|
|
14
|
+
import { LinkProps as LinkProps_2 } from 'react-aria-components';
|
|
15
|
+
import { LinkRenderProps } from 'react-aria-components';
|
|
14
16
|
import { ListBoxItemProps as ListBoxItemProps_2 } from 'react-aria-components';
|
|
15
17
|
import { ListBoxProps as ListBoxProps_2 } from 'react-aria-components';
|
|
16
18
|
import { MenuItemProps as MenuItemProps_2 } from 'react-aria-components';
|
|
@@ -240,6 +242,71 @@ export declare type BadgeSize = 'sm' | 'md' | 'lg';
|
|
|
240
242
|
|
|
241
243
|
export declare type BadgeVariant = 'solid' | 'outline';
|
|
242
244
|
|
|
245
|
+
/**
|
|
246
|
+
* Wraps RAC's `<Breadcrumb>` (an `<li>`). RAC computes `isCurrent` from the item's position
|
|
247
|
+
* in the collection — the last item gets it — so the trailing separator is suppressed
|
|
248
|
+
* automatically instead of the caller having to know which crumb is last.
|
|
249
|
+
*/
|
|
250
|
+
export declare const Breadcrumb: {
|
|
251
|
+
({ className, children }: BreadcrumbProps): JSX_2.Element;
|
|
252
|
+
displayName: string;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Composes `Link`. `variant`/`size` fall back to the parent `Breadcrumbs`' values via
|
|
257
|
+
* context so callers don't repeat them on every crumb, but either can still be overridden
|
|
258
|
+
* per item. `href` should be omitted on the current (last) crumb — RAC's `Breadcrumb`
|
|
259
|
+
* already forces it non-interactive via context, but leaving `href` off keeps the rendered
|
|
260
|
+
* element a `<span>` rather than a disabled `<a>`.
|
|
261
|
+
*/
|
|
262
|
+
export declare const BreadcrumbLink: {
|
|
263
|
+
({ variant, size, icon, children, ...props }: BreadcrumbLinkProps): JSX_2.Element;
|
|
264
|
+
displayName: string;
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
export declare interface BreadcrumbLinkProps extends Omit<LinkProps, 'children'> {
|
|
268
|
+
icon?: React_2.ReactNode;
|
|
269
|
+
children?: React_2.ReactNode;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export declare interface BreadcrumbProps {
|
|
273
|
+
className?: string;
|
|
274
|
+
children: React_2.ReactNode;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* RAC's `<Breadcrumbs>` renders only the `<ol>` — no `<nav>` landmark, so no accessible
|
|
279
|
+
* name without this wrapper. `variant`/`size`/`separator` cascade to every `Breadcrumb`
|
|
280
|
+
* child through context rather than being repeated per item.
|
|
281
|
+
*/
|
|
282
|
+
export declare const Breadcrumbs: {
|
|
283
|
+
({ "aria-label": ariaLabel, separator, variant, size, isDisabled, className, children, }: BreadcrumbsProps): JSX_2.Element;
|
|
284
|
+
displayName: string;
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
/** Decorative only — `aria-hidden` keeps it out of the accessible name and tab order. */
|
|
288
|
+
export declare const BreadcrumbSeparator: {
|
|
289
|
+
({ type, className }: BreadcrumbSeparatorProps): JSX_2.Element;
|
|
290
|
+
displayName: string;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export declare interface BreadcrumbSeparatorProps {
|
|
294
|
+
type?: BreadcrumbSeparatorType;
|
|
295
|
+
className?: string;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export declare type BreadcrumbSeparatorType = 'chevron' | 'slash';
|
|
299
|
+
|
|
300
|
+
export declare interface BreadcrumbsProps {
|
|
301
|
+
'aria-label'?: string;
|
|
302
|
+
separator?: BreadcrumbSeparatorType;
|
|
303
|
+
variant?: LinkVariant;
|
|
304
|
+
size?: LinkSize;
|
|
305
|
+
isDisabled?: boolean;
|
|
306
|
+
className?: string;
|
|
307
|
+
children: React_2.ReactNode;
|
|
308
|
+
}
|
|
309
|
+
|
|
243
310
|
export declare const Button: ButtonCompound;
|
|
244
311
|
|
|
245
312
|
/** `ForwardRefExoticComponent` rather than `FC`: the base forwards a ref to its `<button>`. */
|
|
@@ -593,6 +660,29 @@ declare interface InputTrailingButtonSlot {
|
|
|
593
660
|
disabled?: boolean;
|
|
594
661
|
}
|
|
595
662
|
|
|
663
|
+
/**
|
|
664
|
+
* Built on react-aria-components' `<Link>`. Renders `<a href>` when `href` is passed and
|
|
665
|
+
* `<span>` otherwise — RAC's own fallback, not something this wrapper decides — so a
|
|
666
|
+
* `Link` used for the current page of a breadcrumb trail stays out of tab order without an
|
|
667
|
+
* `isDisabled` prop.
|
|
668
|
+
*/
|
|
669
|
+
export declare const Link: React_2.ForwardRefExoticComponent<LinkProps & React_2.RefAttributes<HTMLAnchorElement>>;
|
|
670
|
+
|
|
671
|
+
export declare interface LinkProps extends Omit<LinkProps_2, 'className'> {
|
|
672
|
+
variant?: LinkVariant;
|
|
673
|
+
size?: LinkSize;
|
|
674
|
+
underline?: LinkUnderline;
|
|
675
|
+
className?: string;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
export { LinkRenderProps }
|
|
679
|
+
|
|
680
|
+
export declare type LinkSize = 'xs' | 'sm' | 'md';
|
|
681
|
+
|
|
682
|
+
export declare type LinkUnderline = 'none' | 'hover' | 'always';
|
|
683
|
+
|
|
684
|
+
export declare type LinkVariant = 'text' | 'ghost' | 'ghost-primary';
|
|
685
|
+
|
|
596
686
|
export declare const ListBox: <T extends object>(props: ListBoxProps<T> & {
|
|
597
687
|
ref?: React_2.Ref<HTMLDivElement>;
|
|
598
688
|
}) => React_2.ReactElement;
|
|
@@ -630,6 +720,21 @@ export declare interface ListBoxSeparatorProps {
|
|
|
630
720
|
className?: string;
|
|
631
721
|
}
|
|
632
722
|
|
|
723
|
+
/**
|
|
724
|
+
* Built on react-aria-components' `<ProgressBar>` (`isIndeterminate`) for the accessible
|
|
725
|
+
* progress-widget semantics (`role="progressbar"`, `aria-valuetext`, label wiring via
|
|
726
|
+
* `useProgressBar`). Visual variants stay Cekat's (`size` / `style` / `supportingText`).
|
|
727
|
+
*
|
|
728
|
+
* `role="progressbar"` is a widget role, not a live region — unlike the plain
|
|
729
|
+
* `role="status"` div this replaced, it does not auto-announce to screen readers on mount by
|
|
730
|
+
* itself. An outer `aria-live="polite"` / `aria-atomic="true"` wrapper restores that
|
|
731
|
+
* announce-on-mount behavior. It has to be a *separate* wrapping element, not props spread
|
|
732
|
+
* onto `<ProgressBar>` directly: react-aria's `useProgressBar` runs every prop through
|
|
733
|
+
* `filterDOMProps({ labelable: true })` internally, which only allow-lists
|
|
734
|
+
* `aria-label`/`aria-labelledby`/`aria-describedby`/`aria-details` — `aria-live` and
|
|
735
|
+
* `aria-atomic` are silently stripped before they reach the DOM if passed directly (confirmed
|
|
736
|
+
* via a failing interaction test before this wrapper was added; see Loading.stories.tsx).
|
|
737
|
+
*/
|
|
633
738
|
export declare const Loading: {
|
|
634
739
|
({ size, style, supportingText, label, className, }: LoadingProps): JSX_2.Element;
|
|
635
740
|
displayName: string;
|
|
@@ -784,6 +889,66 @@ export declare type ModalSize = 'sm' | 'md' | 'lg';
|
|
|
784
889
|
|
|
785
890
|
declare type NativeButtonProps = Omit<React_2.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'className' | 'style'>;
|
|
786
891
|
|
|
892
|
+
/**
|
|
893
|
+
* Notification-card toast — Figma `ToastV2` (`node-id=1652-1892`). Presentation-only, same
|
|
894
|
+
* as the pill `Toast`: render it through whatever engine owns positioning/stacking/dismissal
|
|
895
|
+
* (`sonner`'s `toast.custom()` in this codebase). Not built on React Aria — no matching RAC
|
|
896
|
+
* primitive, `sonner` already owns the interaction/timing behavior this would otherwise need
|
|
897
|
+
* RAC for (same reasoning as `Toast` and `Alert`).
|
|
898
|
+
*
|
|
899
|
+
* `type` collapses Figma's 18 desktop/mobile permutations into 9 — no `breakpoint` prop. See
|
|
900
|
+
* `~/Desktop/cekat-ds-audit/RFC-alert-toast-component.md` §8 for why.
|
|
901
|
+
*/
|
|
902
|
+
export declare const NotificationToast: {
|
|
903
|
+
({ type, title, supportingText, primaryAction, secondaryAction, onClose, closeLabel, icon, avatarSrc, avatarAlt, timestamp, imageSrc, imageAlt, progressValue, progressLabel, className, }: NotificationToastProps): JSX_2.Element;
|
|
904
|
+
displayName: string;
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
export declare interface NotificationToastAction {
|
|
908
|
+
label: React_2.ReactNode;
|
|
909
|
+
onClick?: () => void;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
export declare interface NotificationToastProps {
|
|
913
|
+
type: NotificationToastType;
|
|
914
|
+
title: React_2.ReactNode;
|
|
915
|
+
/** Supporting text under the title. Presence-implies-render, same as `Alert`'s `description`. */
|
|
916
|
+
supportingText?: React_2.ReactNode;
|
|
917
|
+
/** Emphasised action, e.g. "View changes" / "Upload another". Rendered as a text link. */
|
|
918
|
+
primaryAction?: NotificationToastAction;
|
|
919
|
+
/** Low-emphasis action, e.g. "Dismiss" / "Cancel". Rendered as a text link. */
|
|
920
|
+
secondaryAction?: NotificationToastAction;
|
|
921
|
+
/** Renders the close (X) button when provided. */
|
|
922
|
+
onClose?: () => void;
|
|
923
|
+
closeLabel?: string;
|
|
924
|
+
/** `type: "gray-icon"` requires a caller-supplied icon — Figma's example glyph
|
|
925
|
+
* (`brand-codesandbox`) is an arbitrary product icon, not a fixed semantic default. */
|
|
926
|
+
icon?: React_2.ReactNode;
|
|
927
|
+
/** `type: "avatar"` only. */
|
|
928
|
+
avatarSrc?: string;
|
|
929
|
+
avatarAlt?: string;
|
|
930
|
+
/** e.g. "2 mins ago". */
|
|
931
|
+
timestamp?: React_2.ReactNode;
|
|
932
|
+
/** `type: "image"` only. */
|
|
933
|
+
imageSrc?: string;
|
|
934
|
+
imageAlt?: string;
|
|
935
|
+
/** `type: "progress"` only. */
|
|
936
|
+
progressValue?: number;
|
|
937
|
+
/** e.g. "60% uploaded...". */
|
|
938
|
+
progressLabel?: React_2.ReactNode;
|
|
939
|
+
className?: string;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* Figma `ToastV2` component set (`node-id=1652-1892`) collapsed from 18 desktop/mobile
|
|
944
|
+
* permutations down to 9 — no `breakpoint` prop. 8 of 9 types are a pure CSS reflow between
|
|
945
|
+
* breakpoints (icon/badge + title + supporting text + actions, same tree, narrower width);
|
|
946
|
+
* `image` has the largest delta (strip on the left vs. on top) but is still handled with
|
|
947
|
+
* `sm:` responsive classes, not a second variant. See
|
|
948
|
+
* `~/Desktop/cekat-ds-audit/RFC-alert-toast-component.md` §8 for the full reasoning.
|
|
949
|
+
*/
|
|
950
|
+
export declare type NotificationToastType = 'primary-icon' | 'gray-icon' | 'progress' | 'avatar' | 'image' | 'success' | 'warning' | 'error' | 'no-icon';
|
|
951
|
+
|
|
787
952
|
export declare function PhoneInput({ size, label, required, hint, error, disabled, placeholder, rightIcon, value, onChange, className, wrapperClassName, }: PhoneInputProps): JSX_2.Element;
|
|
788
953
|
|
|
789
954
|
declare interface PhoneInputProps {
|
|
@@ -1242,6 +1407,33 @@ export declare interface TextareaProps extends Omit<React_2.TextareaHTMLAttribut
|
|
|
1242
1407
|
wrapperClassName?: ClassValue;
|
|
1243
1408
|
}
|
|
1244
1409
|
|
|
1410
|
+
/**
|
|
1411
|
+
* Presentation-only pill toast, matching Figma's `ToastV1` anatomy (icon badge + bold
|
|
1412
|
+
* lead-in + message, optional close). Not a toast engine — render it through whatever
|
|
1413
|
+
* toast library owns positioning/stacking/auto-dismiss (`sonner`'s `toast.custom()` in
|
|
1414
|
+
* this codebase, the same way `cekat-dashboard`'s `CekatToast` is used today via
|
|
1415
|
+
* `utils/showMessage.ts`). See `docs`/`RFC-alert-toast-component.md` in the audit folder
|
|
1416
|
+
* for why the richer 9-type `ToastV2` notification-card family is out of scope here.
|
|
1417
|
+
*/
|
|
1418
|
+
export declare const Toast: {
|
|
1419
|
+
({ variant, message, title, onClose, closeLabel, className, }: ToastProps): JSX_2.Element;
|
|
1420
|
+
displayName: string;
|
|
1421
|
+
};
|
|
1422
|
+
|
|
1423
|
+
export declare interface ToastProps {
|
|
1424
|
+
variant: ToastVariant;
|
|
1425
|
+
/** Message text after the bold lead-in. */
|
|
1426
|
+
message: React_2.ReactNode;
|
|
1427
|
+
/** Overrides the variant's default bold lead-in (e.g. "Success!"). */
|
|
1428
|
+
title?: React_2.ReactNode;
|
|
1429
|
+
/** Renders the small circular close badge when provided. */
|
|
1430
|
+
onClose?: () => void;
|
|
1431
|
+
closeLabel?: string;
|
|
1432
|
+
className?: string;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
export declare type ToastVariant = 'success' | 'error' | 'warning' | 'info';
|
|
1436
|
+
|
|
1245
1437
|
export declare const Toggle: React_2.ForwardRefExoticComponent<ToggleProps & React_2.RefAttributes<HTMLButtonElement>>;
|
|
1246
1438
|
|
|
1247
1439
|
export declare interface ToggleProps extends Omit<React_2.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ import { GroupProps } from 'react-aria-components';
|
|
|
11
11
|
import { InputProps as InputProps_2 } from 'react-aria-components';
|
|
12
12
|
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
13
13
|
import { Key } from 'react-aria-components';
|
|
14
|
+
import { LinkProps as LinkProps_2 } from 'react-aria-components';
|
|
15
|
+
import { LinkRenderProps } from 'react-aria-components';
|
|
14
16
|
import { ListBoxItemProps as ListBoxItemProps_2 } from 'react-aria-components';
|
|
15
17
|
import { ListBoxProps as ListBoxProps_2 } from 'react-aria-components';
|
|
16
18
|
import { MenuItemProps as MenuItemProps_2 } from 'react-aria-components';
|
|
@@ -240,6 +242,71 @@ export declare type BadgeSize = 'sm' | 'md' | 'lg';
|
|
|
240
242
|
|
|
241
243
|
export declare type BadgeVariant = 'solid' | 'outline';
|
|
242
244
|
|
|
245
|
+
/**
|
|
246
|
+
* Wraps RAC's `<Breadcrumb>` (an `<li>`). RAC computes `isCurrent` from the item's position
|
|
247
|
+
* in the collection — the last item gets it — so the trailing separator is suppressed
|
|
248
|
+
* automatically instead of the caller having to know which crumb is last.
|
|
249
|
+
*/
|
|
250
|
+
export declare const Breadcrumb: {
|
|
251
|
+
({ className, children }: BreadcrumbProps): JSX_2.Element;
|
|
252
|
+
displayName: string;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Composes `Link`. `variant`/`size` fall back to the parent `Breadcrumbs`' values via
|
|
257
|
+
* context so callers don't repeat them on every crumb, but either can still be overridden
|
|
258
|
+
* per item. `href` should be omitted on the current (last) crumb — RAC's `Breadcrumb`
|
|
259
|
+
* already forces it non-interactive via context, but leaving `href` off keeps the rendered
|
|
260
|
+
* element a `<span>` rather than a disabled `<a>`.
|
|
261
|
+
*/
|
|
262
|
+
export declare const BreadcrumbLink: {
|
|
263
|
+
({ variant, size, icon, children, ...props }: BreadcrumbLinkProps): JSX_2.Element;
|
|
264
|
+
displayName: string;
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
export declare interface BreadcrumbLinkProps extends Omit<LinkProps, 'children'> {
|
|
268
|
+
icon?: React_2.ReactNode;
|
|
269
|
+
children?: React_2.ReactNode;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export declare interface BreadcrumbProps {
|
|
273
|
+
className?: string;
|
|
274
|
+
children: React_2.ReactNode;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* RAC's `<Breadcrumbs>` renders only the `<ol>` — no `<nav>` landmark, so no accessible
|
|
279
|
+
* name without this wrapper. `variant`/`size`/`separator` cascade to every `Breadcrumb`
|
|
280
|
+
* child through context rather than being repeated per item.
|
|
281
|
+
*/
|
|
282
|
+
export declare const Breadcrumbs: {
|
|
283
|
+
({ "aria-label": ariaLabel, separator, variant, size, isDisabled, className, children, }: BreadcrumbsProps): JSX_2.Element;
|
|
284
|
+
displayName: string;
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
/** Decorative only — `aria-hidden` keeps it out of the accessible name and tab order. */
|
|
288
|
+
export declare const BreadcrumbSeparator: {
|
|
289
|
+
({ type, className }: BreadcrumbSeparatorProps): JSX_2.Element;
|
|
290
|
+
displayName: string;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export declare interface BreadcrumbSeparatorProps {
|
|
294
|
+
type?: BreadcrumbSeparatorType;
|
|
295
|
+
className?: string;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export declare type BreadcrumbSeparatorType = 'chevron' | 'slash';
|
|
299
|
+
|
|
300
|
+
export declare interface BreadcrumbsProps {
|
|
301
|
+
'aria-label'?: string;
|
|
302
|
+
separator?: BreadcrumbSeparatorType;
|
|
303
|
+
variant?: LinkVariant;
|
|
304
|
+
size?: LinkSize;
|
|
305
|
+
isDisabled?: boolean;
|
|
306
|
+
className?: string;
|
|
307
|
+
children: React_2.ReactNode;
|
|
308
|
+
}
|
|
309
|
+
|
|
243
310
|
export declare const Button: ButtonCompound;
|
|
244
311
|
|
|
245
312
|
/** `ForwardRefExoticComponent` rather than `FC`: the base forwards a ref to its `<button>`. */
|
|
@@ -593,6 +660,29 @@ declare interface InputTrailingButtonSlot {
|
|
|
593
660
|
disabled?: boolean;
|
|
594
661
|
}
|
|
595
662
|
|
|
663
|
+
/**
|
|
664
|
+
* Built on react-aria-components' `<Link>`. Renders `<a href>` when `href` is passed and
|
|
665
|
+
* `<span>` otherwise — RAC's own fallback, not something this wrapper decides — so a
|
|
666
|
+
* `Link` used for the current page of a breadcrumb trail stays out of tab order without an
|
|
667
|
+
* `isDisabled` prop.
|
|
668
|
+
*/
|
|
669
|
+
export declare const Link: React_2.ForwardRefExoticComponent<LinkProps & React_2.RefAttributes<HTMLAnchorElement>>;
|
|
670
|
+
|
|
671
|
+
export declare interface LinkProps extends Omit<LinkProps_2, 'className'> {
|
|
672
|
+
variant?: LinkVariant;
|
|
673
|
+
size?: LinkSize;
|
|
674
|
+
underline?: LinkUnderline;
|
|
675
|
+
className?: string;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
export { LinkRenderProps }
|
|
679
|
+
|
|
680
|
+
export declare type LinkSize = 'xs' | 'sm' | 'md';
|
|
681
|
+
|
|
682
|
+
export declare type LinkUnderline = 'none' | 'hover' | 'always';
|
|
683
|
+
|
|
684
|
+
export declare type LinkVariant = 'text' | 'ghost' | 'ghost-primary';
|
|
685
|
+
|
|
596
686
|
export declare const ListBox: <T extends object>(props: ListBoxProps<T> & {
|
|
597
687
|
ref?: React_2.Ref<HTMLDivElement>;
|
|
598
688
|
}) => React_2.ReactElement;
|
|
@@ -630,6 +720,21 @@ export declare interface ListBoxSeparatorProps {
|
|
|
630
720
|
className?: string;
|
|
631
721
|
}
|
|
632
722
|
|
|
723
|
+
/**
|
|
724
|
+
* Built on react-aria-components' `<ProgressBar>` (`isIndeterminate`) for the accessible
|
|
725
|
+
* progress-widget semantics (`role="progressbar"`, `aria-valuetext`, label wiring via
|
|
726
|
+
* `useProgressBar`). Visual variants stay Cekat's (`size` / `style` / `supportingText`).
|
|
727
|
+
*
|
|
728
|
+
* `role="progressbar"` is a widget role, not a live region — unlike the plain
|
|
729
|
+
* `role="status"` div this replaced, it does not auto-announce to screen readers on mount by
|
|
730
|
+
* itself. An outer `aria-live="polite"` / `aria-atomic="true"` wrapper restores that
|
|
731
|
+
* announce-on-mount behavior. It has to be a *separate* wrapping element, not props spread
|
|
732
|
+
* onto `<ProgressBar>` directly: react-aria's `useProgressBar` runs every prop through
|
|
733
|
+
* `filterDOMProps({ labelable: true })` internally, which only allow-lists
|
|
734
|
+
* `aria-label`/`aria-labelledby`/`aria-describedby`/`aria-details` — `aria-live` and
|
|
735
|
+
* `aria-atomic` are silently stripped before they reach the DOM if passed directly (confirmed
|
|
736
|
+
* via a failing interaction test before this wrapper was added; see Loading.stories.tsx).
|
|
737
|
+
*/
|
|
633
738
|
export declare const Loading: {
|
|
634
739
|
({ size, style, supportingText, label, className, }: LoadingProps): JSX_2.Element;
|
|
635
740
|
displayName: string;
|
|
@@ -784,6 +889,66 @@ export declare type ModalSize = 'sm' | 'md' | 'lg';
|
|
|
784
889
|
|
|
785
890
|
declare type NativeButtonProps = Omit<React_2.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'className' | 'style'>;
|
|
786
891
|
|
|
892
|
+
/**
|
|
893
|
+
* Notification-card toast — Figma `ToastV2` (`node-id=1652-1892`). Presentation-only, same
|
|
894
|
+
* as the pill `Toast`: render it through whatever engine owns positioning/stacking/dismissal
|
|
895
|
+
* (`sonner`'s `toast.custom()` in this codebase). Not built on React Aria — no matching RAC
|
|
896
|
+
* primitive, `sonner` already owns the interaction/timing behavior this would otherwise need
|
|
897
|
+
* RAC for (same reasoning as `Toast` and `Alert`).
|
|
898
|
+
*
|
|
899
|
+
* `type` collapses Figma's 18 desktop/mobile permutations into 9 — no `breakpoint` prop. See
|
|
900
|
+
* `~/Desktop/cekat-ds-audit/RFC-alert-toast-component.md` §8 for why.
|
|
901
|
+
*/
|
|
902
|
+
export declare const NotificationToast: {
|
|
903
|
+
({ type, title, supportingText, primaryAction, secondaryAction, onClose, closeLabel, icon, avatarSrc, avatarAlt, timestamp, imageSrc, imageAlt, progressValue, progressLabel, className, }: NotificationToastProps): JSX_2.Element;
|
|
904
|
+
displayName: string;
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
export declare interface NotificationToastAction {
|
|
908
|
+
label: React_2.ReactNode;
|
|
909
|
+
onClick?: () => void;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
export declare interface NotificationToastProps {
|
|
913
|
+
type: NotificationToastType;
|
|
914
|
+
title: React_2.ReactNode;
|
|
915
|
+
/** Supporting text under the title. Presence-implies-render, same as `Alert`'s `description`. */
|
|
916
|
+
supportingText?: React_2.ReactNode;
|
|
917
|
+
/** Emphasised action, e.g. "View changes" / "Upload another". Rendered as a text link. */
|
|
918
|
+
primaryAction?: NotificationToastAction;
|
|
919
|
+
/** Low-emphasis action, e.g. "Dismiss" / "Cancel". Rendered as a text link. */
|
|
920
|
+
secondaryAction?: NotificationToastAction;
|
|
921
|
+
/** Renders the close (X) button when provided. */
|
|
922
|
+
onClose?: () => void;
|
|
923
|
+
closeLabel?: string;
|
|
924
|
+
/** `type: "gray-icon"` requires a caller-supplied icon — Figma's example glyph
|
|
925
|
+
* (`brand-codesandbox`) is an arbitrary product icon, not a fixed semantic default. */
|
|
926
|
+
icon?: React_2.ReactNode;
|
|
927
|
+
/** `type: "avatar"` only. */
|
|
928
|
+
avatarSrc?: string;
|
|
929
|
+
avatarAlt?: string;
|
|
930
|
+
/** e.g. "2 mins ago". */
|
|
931
|
+
timestamp?: React_2.ReactNode;
|
|
932
|
+
/** `type: "image"` only. */
|
|
933
|
+
imageSrc?: string;
|
|
934
|
+
imageAlt?: string;
|
|
935
|
+
/** `type: "progress"` only. */
|
|
936
|
+
progressValue?: number;
|
|
937
|
+
/** e.g. "60% uploaded...". */
|
|
938
|
+
progressLabel?: React_2.ReactNode;
|
|
939
|
+
className?: string;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* Figma `ToastV2` component set (`node-id=1652-1892`) collapsed from 18 desktop/mobile
|
|
944
|
+
* permutations down to 9 — no `breakpoint` prop. 8 of 9 types are a pure CSS reflow between
|
|
945
|
+
* breakpoints (icon/badge + title + supporting text + actions, same tree, narrower width);
|
|
946
|
+
* `image` has the largest delta (strip on the left vs. on top) but is still handled with
|
|
947
|
+
* `sm:` responsive classes, not a second variant. See
|
|
948
|
+
* `~/Desktop/cekat-ds-audit/RFC-alert-toast-component.md` §8 for the full reasoning.
|
|
949
|
+
*/
|
|
950
|
+
export declare type NotificationToastType = 'primary-icon' | 'gray-icon' | 'progress' | 'avatar' | 'image' | 'success' | 'warning' | 'error' | 'no-icon';
|
|
951
|
+
|
|
787
952
|
export declare function PhoneInput({ size, label, required, hint, error, disabled, placeholder, rightIcon, value, onChange, className, wrapperClassName, }: PhoneInputProps): JSX_2.Element;
|
|
788
953
|
|
|
789
954
|
declare interface PhoneInputProps {
|
|
@@ -1242,6 +1407,33 @@ export declare interface TextareaProps extends Omit<React_2.TextareaHTMLAttribut
|
|
|
1242
1407
|
wrapperClassName?: ClassValue;
|
|
1243
1408
|
}
|
|
1244
1409
|
|
|
1410
|
+
/**
|
|
1411
|
+
* Presentation-only pill toast, matching Figma's `ToastV1` anatomy (icon badge + bold
|
|
1412
|
+
* lead-in + message, optional close). Not a toast engine — render it through whatever
|
|
1413
|
+
* toast library owns positioning/stacking/auto-dismiss (`sonner`'s `toast.custom()` in
|
|
1414
|
+
* this codebase, the same way `cekat-dashboard`'s `CekatToast` is used today via
|
|
1415
|
+
* `utils/showMessage.ts`). See `docs`/`RFC-alert-toast-component.md` in the audit folder
|
|
1416
|
+
* for why the richer 9-type `ToastV2` notification-card family is out of scope here.
|
|
1417
|
+
*/
|
|
1418
|
+
export declare const Toast: {
|
|
1419
|
+
({ variant, message, title, onClose, closeLabel, className, }: ToastProps): JSX_2.Element;
|
|
1420
|
+
displayName: string;
|
|
1421
|
+
};
|
|
1422
|
+
|
|
1423
|
+
export declare interface ToastProps {
|
|
1424
|
+
variant: ToastVariant;
|
|
1425
|
+
/** Message text after the bold lead-in. */
|
|
1426
|
+
message: React_2.ReactNode;
|
|
1427
|
+
/** Overrides the variant's default bold lead-in (e.g. "Success!"). */
|
|
1428
|
+
title?: React_2.ReactNode;
|
|
1429
|
+
/** Renders the small circular close badge when provided. */
|
|
1430
|
+
onClose?: () => void;
|
|
1431
|
+
closeLabel?: string;
|
|
1432
|
+
className?: string;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
export declare type ToastVariant = 'success' | 'error' | 'warning' | 'info';
|
|
1436
|
+
|
|
1245
1437
|
export declare const Toggle: React_2.ForwardRefExoticComponent<ToggleProps & React_2.RefAttributes<HTMLButtonElement>>;
|
|
1246
1438
|
|
|
1247
1439
|
export declare interface ToggleProps extends Omit<React_2.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|