@kaizen/components 1.51.0 → 1.52.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.
- package/dist/cjs/Button/GenericButton/GenericButton.cjs +89 -82
- package/dist/cjs/Button/GenericButton/GenericButton.module.scss.cjs +2 -1
- package/dist/cjs/ButtonGroup/ButtonGroup.cjs +4 -4
- package/dist/cjs/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs +2 -2
- package/dist/cjs/GuidanceBlock/GuidanceBlock.cjs +2 -2
- package/dist/cjs/KaizenProvider/KaizenProvider.cjs +1 -1
- package/dist/cjs/KaizenProvider/subcomponents/OptionalIntlProvider/OptionalIntlProvider.cjs +11 -2
- package/dist/cjs/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.cjs +1 -2
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs +2 -2
- package/dist/cjs/Table/Table.cjs +2 -2
- package/dist/cjs/Tabs/subcomponents/Tab.cjs +20 -14
- package/dist/cjs/__overlays__/Focusable/v3/Focusable.cjs +33 -0
- package/dist/cjs/__overlays__/Focusable/v3/Focusable.module.scss.cjs +6 -0
- package/dist/cjs/__overlays__/Tooltip/v1/Tooltip.module.scss.cjs +21 -0
- package/dist/cjs/__overlays__/Tooltip/v1/index.cjs +8 -0
- package/dist/cjs/__overlays__/Tooltip/v3/OverlayArrow.cjs +32 -0
- package/dist/cjs/__overlays__/Tooltip/v3/OverlayArrow.module.scss.cjs +7 -0
- package/dist/cjs/__overlays__/Tooltip/v3/Tooltip.cjs +59 -0
- package/dist/cjs/__overlays__/Tooltip/v3/Tooltip.module.scss.cjs +8 -0
- package/dist/cjs/__overlays__/Tooltip/v3/TooltipTrigger.cjs +24 -0
- package/dist/cjs/__utilities__/ReversedColors/v3/ReversedColors.cjs +23 -0
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/overlaysV1.cjs +4 -0
- package/dist/cjs/overlaysV2.cjs +4 -0
- package/dist/cjs/overlaysV3.cjs +15 -0
- package/dist/cjs/reactAriaComponentsV3.cjs +11 -0
- package/dist/cjs/reactAriaV3.cjs +11 -0
- package/dist/cjs/utilitiesV3.cjs +5 -0
- package/dist/cjs/utils/mergeClassNames.cjs +33 -0
- package/dist/esm/Button/GenericButton/GenericButton.mjs +90 -82
- package/dist/esm/Button/GenericButton/GenericButton.module.scss.mjs +2 -1
- package/dist/esm/ButtonGroup/ButtonGroup.mjs +1 -1
- package/dist/esm/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs +1 -1
- package/dist/esm/GuidanceBlock/GuidanceBlock.mjs +1 -1
- package/dist/esm/KaizenProvider/KaizenProvider.mjs +1 -1
- package/dist/esm/KaizenProvider/subcomponents/OptionalIntlProvider/OptionalIntlProvider.mjs +11 -2
- package/dist/esm/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.mjs +1 -2
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs +1 -1
- package/dist/esm/Table/Table.mjs +1 -1
- package/dist/esm/Tabs/subcomponents/Tab.mjs +21 -15
- package/dist/esm/__overlays__/Focusable/v3/Focusable.mjs +24 -0
- package/dist/esm/__overlays__/Focusable/v3/Focusable.module.scss.mjs +4 -0
- package/dist/esm/__overlays__/Tooltip/v1/Tooltip.module.scss.mjs +19 -0
- package/dist/esm/__overlays__/Tooltip/v1/index.mjs +6 -0
- package/dist/esm/__overlays__/Tooltip/v3/OverlayArrow.mjs +24 -0
- package/dist/esm/__overlays__/Tooltip/v3/OverlayArrow.module.scss.mjs +5 -0
- package/dist/esm/__overlays__/Tooltip/v3/Tooltip.mjs +46 -0
- package/dist/esm/__overlays__/Tooltip/v3/Tooltip.module.scss.mjs +6 -0
- package/dist/esm/__overlays__/Tooltip/v3/TooltipTrigger.mjs +16 -0
- package/dist/esm/__utilities__/ReversedColors/v3/ReversedColors.mjs +14 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/overlaysV1.mjs +1 -0
- package/dist/esm/overlaysV2.mjs +1 -0
- package/dist/esm/overlaysV3.mjs +4 -0
- package/dist/esm/reactAriaComponentsV3.mjs +1 -0
- package/dist/esm/reactAriaV3.mjs +1 -0
- package/dist/esm/utilitiesV3.mjs +1 -0
- package/dist/esm/utils/mergeClassNames.mjs +25 -0
- package/dist/styles.css +18 -15
- package/dist/types/Button/GenericButton/GenericButton.d.ts +2 -1
- package/dist/types/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/types/Container/Container.d.ts +1 -1
- package/dist/types/Content/Content.d.ts +1 -1
- package/dist/types/DateInput/DateInput/DateInput.d.ts +1 -1
- package/dist/types/DatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
- package/dist/types/Filter/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.d.ts +1 -1
- package/dist/types/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
- package/dist/types/GuidanceBlock/GuidanceBlock.d.ts +1 -1
- package/dist/types/KaizenProvider/subcomponents/OptionalIntlProvider/OptionalIntlProvider.d.ts +2 -2
- package/dist/types/Notification/subcomponents/GenericNotification/GenericNotification.d.ts +1 -1
- package/dist/types/Select/Select.d.ts +3 -3
- package/dist/types/__future__/Select/Select.d.ts +2 -2
- package/dist/types/__future__/Select/subcomponents/SelectToggle/SelectToggle.d.ts +2 -2
- package/dist/types/__overlays__/Focusable/v3/Focusable.d.ts +6 -0
- package/dist/types/__overlays__/Focusable/v3/index.d.ts +1 -0
- package/dist/types/__overlays__/Tooltip/v1/index.d.ts +8 -0
- package/dist/types/{Tooltip → __overlays__/Tooltip/v1}/utils/isSemanticElement.d.ts +2 -2
- package/dist/types/__overlays__/Tooltip/v2/index.d.ts +1 -0
- package/dist/types/__overlays__/Tooltip/v3/OverlayArrow.d.ts +7 -0
- package/dist/types/__overlays__/Tooltip/v3/Tooltip.d.ts +32 -0
- package/dist/types/__overlays__/Tooltip/v3/TooltipTrigger.d.ts +19 -0
- package/dist/types/__overlays__/Tooltip/v3/index.d.ts +2 -0
- package/dist/types/__overlays__/v1.d.ts +1 -0
- package/dist/types/__overlays__/v2.d.ts +1 -0
- package/dist/types/__overlays__/v3.d.ts +2 -0
- package/dist/types/__react-aria-components__/index.d.ts +1 -0
- package/dist/types/__react-aria__/index.d.ts +1 -0
- package/dist/types/__utilities__/ReversedColors/v3/ReversedColors.d.ts +7 -0
- package/dist/types/__utilities__/ReversedColors/v3/index.d.ts +1 -0
- package/dist/types/__utilities__/v3.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/utils/getNodeText.d.ts +1 -2
- package/dist/types/utils/mergeClassNames.d.ts +8 -0
- package/package.json +8 -3
- package/src/Button/Button/Button.module.scss +33 -23
- package/src/Button/GenericButton/GenericButton.tsx +135 -91
- package/src/Button/utils/_mixins.scss +1 -1
- package/src/ButtonGroup/ButtonGroup.tsx +1 -1
- package/src/ButtonGroup/_docs/ButtonGroup.stickersheet.stories.tsx +1 -1
- package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx +1 -1
- package/src/GuidanceBlock/GuidanceBlock.tsx +1 -1
- package/src/KaizenProvider/KaizenProvider.tsx +5 -7
- package/src/KaizenProvider/subcomponents/OptionalIntlProvider/OptionalIntlProvider.tsx +14 -4
- package/src/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.tsx +1 -1
- package/src/Notification/subcomponents/GenericNotification/GenericNotification.tsx +1 -1
- package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.tsx +1 -1
- package/src/Table/Table.tsx +1 -1
- package/src/Tabs/_docs/Tabs.stories.tsx +1 -1
- package/src/Tabs/subcomponents/Tab.tsx +27 -21
- package/src/__overlays__/Focusable/v3/Focusable.module.scss +3 -0
- package/src/__overlays__/Focusable/v3/Focusable.tsx +37 -0
- package/src/__overlays__/Focusable/v3/_docs/ApiSpecification.mdx +38 -0
- package/src/__overlays__/Focusable/v3/_docs/Focusable.stories.tsx +24 -0
- package/src/__overlays__/Focusable/v3/index.ts +1 -0
- package/src/{Tooltip → __overlays__/Tooltip/v1}/Tooltip.module.scss +1 -1
- package/src/__overlays__/Tooltip/v1/_docs/Tooltip.mdx +139 -0
- package/src/{Tooltip → __overlays__/Tooltip/v1}/_docs/Tooltip.stickersheet.stories.tsx +1 -1
- package/src/{Tooltip → __overlays__/Tooltip/v1}/_docs/Tooltip.stories.tsx +2 -2
- package/src/__overlays__/Tooltip/v1/index.ts +7 -0
- package/src/{Tooltip → __overlays__/Tooltip/v2}/_docs/Tooltip.mdx +2 -4
- package/src/__overlays__/Tooltip/v2/_docs/Tooltip.stories.tsx +49 -0
- package/src/__overlays__/Tooltip/v2/index.ts +1 -0
- package/src/__overlays__/Tooltip/v3/OverlayArrow.module.scss +43 -0
- package/src/__overlays__/Tooltip/v3/OverlayArrow.tsx +34 -0
- package/src/__overlays__/Tooltip/v3/Tooltip.module.scss +67 -0
- package/src/__overlays__/Tooltip/v3/Tooltip.tsx +101 -0
- package/src/__overlays__/Tooltip/v3/TooltipTrigger.tsx +30 -0
- package/src/__overlays__/Tooltip/v3/_docs/ApiSpecification.mdx +163 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.docs.stories.tsx +203 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.mdx +182 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.spec.stories.tsx +219 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.stickersheet.stories.tsx +46 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.stories.tsx +72 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_anatomy.png +0 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_placement.png +0 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_trigger_1.png +0 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_trigger_2.png +0 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_trigger_3.png +0 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_variant.png +0 -0
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_when_to_use.png +0 -0
- package/src/__overlays__/Tooltip/v3/index.ts +2 -0
- package/src/__overlays__/v1.ts +1 -0
- package/src/__overlays__/v2.ts +2 -0
- package/src/__overlays__/v3.ts +2 -0
- package/src/__react-aria-components__/index.ts +1 -0
- package/src/__react-aria__/index.ts +1 -0
- package/src/__utilities__/ReversedColors/v3/ReversedColors.tsx +20 -0
- package/src/__utilities__/ReversedColors/v3/index.ts +1 -0
- package/src/__utilities__/v3.ts +1 -0
- package/src/index.ts +1 -1
- package/src/types/cssVariables.d.ts +7 -0
- package/src/utils/mergeClassNames.ts +32 -0
- package/v1/overlays/package.json +5 -0
- package/v2/overlays/package.json +5 -0
- package/v3/overlays/package.json +5 -0
- package/v3/react-aria/package.json +5 -0
- package/v3/react-aria-components/package.json +5 -0
- package/dist/cjs/Tooltip/Tooltip.module.scss.cjs +0 -21
- package/dist/esm/Tooltip/Tooltip.module.scss.mjs +0 -19
- package/dist/types/AvatarGroup/_docs/example-data.d.ts +0 -8
- package/dist/types/BrandMoment/_docs/ExampleHeaders.d.ts +0 -3
- package/dist/types/Calendar/_docs/controls/defaultMonthControls.d.ts +0 -2
- package/dist/types/Calendar/_docs/controls/weekStartsOnControls.d.ts +0 -2
- package/dist/types/DatePicker/_docs/controls/datePickerLocaleControls.d.ts +0 -2
- package/dist/types/DatePicker/_docs/controls/disabledDayMatchersControls.d.ts +0 -2
- package/dist/types/Filter/FilterBar/context/types.d.ts +0 -28
- package/dist/types/Filter/FilterDatePicker/_docs/controls/disabledDaysControls.d.ts +0 -2
- package/dist/types/Filter/FilterDatePicker/_docs/controls/validationControls.d.ts +0 -2
- package/dist/types/Filter/FilterDateRangePicker/_docs/controls/disabledDaysControls.d.ts +0 -2
- package/dist/types/Filter/FilterDateRangePicker/_docs/controls/validationControls.d.ts +0 -2
- package/dist/types/Filter/FilterMultiSelect/_docs/MockData.d.ts +0 -10
- package/dist/types/Filter/FilterSelect/_docs/mockData.d.ts +0 -6
- package/dist/types/Filter/_docs/controls/renderTriggerControls.d.ts +0 -2
- package/dist/types/Menu/_docs/MenuContentExample.d.ts +0 -8
- package/dist/types/Menu/_docs/examples.d.ts +0 -11
- package/dist/types/Modal/_docs/controls.d.ts +0 -11
- package/dist/types/MultiSelect/MultiSelect.d.ts +0 -23
- package/dist/types/MultiSelect/subcomponents/MultiSelectOptions/MultiSelectOptions.d.ts +0 -13
- package/dist/types/Tooltip/index.d.ts +0 -1
- package/dist/types/Workflow/_docs/controls/controls.d.ts +0 -2
- package/dist/types/Workflow/_docs/controls/index.d.ts +0 -1
- package/dist/types/__future__/Select/_docs/mockData.d.ts +0 -6
- package/dist/types/__future__/Select/types.d.ts +0 -22
- package/dist/types/__future__/Workflow/_docs/controls/controls.d.ts +0 -2
- package/dist/types/__future__/Workflow/_docs/controls/index.d.ts +0 -1
- package/src/Tooltip/index.ts +0 -1
- /package/dist/cjs/{Tooltip → __overlays__/Tooltip/v1}/Tooltip.cjs +0 -0
- /package/dist/cjs/{Tooltip → __overlays__/Tooltip/v1}/subcomponents/AppearanceAnim.cjs +0 -0
- /package/dist/cjs/{Tooltip → __overlays__/Tooltip/v1}/utils/isSemanticElement.cjs +0 -0
- /package/dist/esm/{Tooltip → __overlays__/Tooltip/v1}/Tooltip.mjs +0 -0
- /package/dist/esm/{Tooltip → __overlays__/Tooltip/v1}/subcomponents/AppearanceAnim.mjs +0 -0
- /package/dist/esm/{Tooltip → __overlays__/Tooltip/v1}/utils/isSemanticElement.mjs +0 -0
- /package/dist/types/{Tooltip → __overlays__/Tooltip/v1}/Tooltip.d.ts +0 -0
- /package/dist/types/{Tooltip → __overlays__/Tooltip/v1}/subcomponents/AppearanceAnim.d.ts +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/Tooltip.spec.tsx +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/Tooltip.tsx +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/_variables.scss +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/subcomponents/AppearanceAnim.spec.tsx +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/subcomponents/AppearanceAnim.tsx +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/utils/isSemanticElement.spec.tsx +0 -0
- /package/src/{Tooltip → __overlays__/Tooltip/v1}/utils/isSemanticElement.tsx +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TooltipProps as TooltipPropsV1 } from "./Tooltip";
|
|
2
|
+
/** * @deprecated use v2 or upgrade to v3 for the latest release */
|
|
3
|
+
export declare const Tooltip: {
|
|
4
|
+
({ children, text, display, position, classNameOverride, portalSelector, animationDuration, isInitiallyVisible, mood, }: TooltipPropsV1): JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
/** * @deprecated use v2 or upgrade to v3 for the latest release */
|
|
8
|
+
export type TooltipProps = TooltipPropsV1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
export declare function extractDisplayName(type: React.FunctionComponent): string;
|
|
3
3
|
/**
|
|
4
4
|
* Validates implicit or explicitly semantic roles required to make `aria-describedby` announce predictably with screen readers
|
|
5
5
|
*/
|
|
6
|
-
export declare const isSemanticElement: (element:
|
|
6
|
+
export declare const isSemanticElement: (element: any) => element is React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../v1/Tooltip";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type OverlayArrowProps } from "react-aria-components";
|
|
2
|
+
export { type OverlayArrowProps };
|
|
3
|
+
/**
|
|
4
|
+
* An OverlayArrow renders a custom arrow element relative to an overlay element
|
|
5
|
+
* such as a popover or tooltip such that it aligns with a trigger element.
|
|
6
|
+
*/
|
|
7
|
+
export declare const OverlayArrow: (props: OverlayArrowProps) => JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { TooltipContext, TooltipProps as RACTooltipProps } from "react-aria-components";
|
|
3
|
+
export { TooltipContext };
|
|
4
|
+
export type TooltipProps = Omit<RACTooltipProps, "offset"> & {
|
|
5
|
+
/**
|
|
6
|
+
* The additional offset applied along the main axis between the element and its
|
|
7
|
+
* anchor element.
|
|
8
|
+
* @default 8
|
|
9
|
+
*/
|
|
10
|
+
offset?: number;
|
|
11
|
+
/**
|
|
12
|
+
* The placement of the tooltip relative to the trigger.
|
|
13
|
+
* + we're intentionally limiting the placement options to rtl friendly ones (start, end, top, bottom)
|
|
14
|
+
*/
|
|
15
|
+
placement?: "bottom" | "bottom start" | "bottom end" | "top" | "top start" | "top end" | "start" | "start top" | "start bottom" | "end" | "end top" | "end bottom";
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* A tooltip displays a description of an element on hover or focus.
|
|
19
|
+
*/
|
|
20
|
+
export declare const Tooltip: React.ForwardRefExoticComponent<Omit<RACTooltipProps, "offset"> & {
|
|
21
|
+
/**
|
|
22
|
+
* The additional offset applied along the main axis between the element and its
|
|
23
|
+
* anchor element.
|
|
24
|
+
* @default 8
|
|
25
|
+
*/
|
|
26
|
+
offset?: number | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* The placement of the tooltip relative to the trigger.
|
|
29
|
+
* + we're intentionally limiting the placement options to rtl friendly ones (start, end, top, bottom)
|
|
30
|
+
*/
|
|
31
|
+
placement?: "end" | "start" | "bottom" | "top" | "bottom start" | "bottom end" | "top start" | "top end" | "start top" | "start bottom" | "end top" | "end bottom" | undefined;
|
|
32
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TooltipTriggerComponentProps } from "react-aria-components";
|
|
2
|
+
export type TooltipTriggerProps = Omit<TooltipTriggerComponentProps, "delay" | "closeDelay"> & {
|
|
3
|
+
/**
|
|
4
|
+
* The delay time for the tooltip to show up. [See guidelines](https://spectrum.adobe.com/page/tooltip/#Immediate-or-delayed-appearance).
|
|
5
|
+
* @default 300
|
|
6
|
+
*/
|
|
7
|
+
delay?: number;
|
|
8
|
+
/**
|
|
9
|
+
* The delay time for the tooltip to close. [See guidelines](https://spectrum.adobe.com/page/tooltip/#Warmup-and-cooldown).
|
|
10
|
+
* @default 300
|
|
11
|
+
*/
|
|
12
|
+
closeDelay?: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing
|
|
16
|
+
* the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip
|
|
17
|
+
* relative to the trigger.
|
|
18
|
+
*/
|
|
19
|
+
export declare const TooltipTrigger: (props: TooltipTriggerProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Tooltip/v1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Tooltip/v2";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "react-aria-components";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "react-aria";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
export type ReversedColorsProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
isReversed?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const useReversedColors: () => boolean;
|
|
7
|
+
export declare const ReversedColors: ({ children, isReversed, }: ReversedColorsProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ReversedColors";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ReversedColors/v3";
|
package/dist/types/index.d.ts
CHANGED
|
@@ -56,8 +56,8 @@ export * from "./Tile";
|
|
|
56
56
|
export * from "./TimeField";
|
|
57
57
|
export * from "./TitleBlockZen";
|
|
58
58
|
export * from "./ToggleSwitch";
|
|
59
|
-
export * from "./Tooltip";
|
|
60
59
|
export * from "./utils";
|
|
61
60
|
export * from "./VisuallyHidden";
|
|
62
61
|
export * from "./Well";
|
|
63
62
|
export * from "./Workflow";
|
|
63
|
+
export * from "./__overlays__/Tooltip/v1";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const getNodeText: (node: React.ReactNode) => string | number;
|
|
1
|
+
export declare const getNodeText: (node: any) => string | number;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type ClassNameValue = string | number | boolean | undefined | null;
|
|
2
|
+
/**
|
|
3
|
+
* Helper to merge classnames together with support for functions that receive state (render props).
|
|
4
|
+
* This is useful when working with react-aria-components which have a feature where you can pass a function that receives state and returns a classname.
|
|
5
|
+
* https://react-spectrum.adobe.com/react-aria/styling.html#render-props
|
|
6
|
+
*/
|
|
7
|
+
export declare const mergeClassNames: <ClassNameTypes extends (ClassNameValue | ((state: any) => string))[]>(...classNames: ClassNameTypes) => (() => string) extends ClassNameTypes[number] ? (state: any) => string : string;
|
|
8
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaizen/components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.52.0",
|
|
4
4
|
"description": "Kaizen component library",
|
|
5
5
|
"author": "Geoffrey Chong <geoff.chong@cultureamp.com>",
|
|
6
6
|
"homepage": "https://cultureamp.design",
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
16
|
"future",
|
|
17
|
+
"v1",
|
|
18
|
+
"v2",
|
|
19
|
+
"v3",
|
|
17
20
|
"dist",
|
|
18
21
|
"icons",
|
|
19
22
|
"locales",
|
|
@@ -62,6 +65,8 @@
|
|
|
62
65
|
"prosemirror-utils": "^1.2.2",
|
|
63
66
|
"prosemirror-view": "^1.33.7",
|
|
64
67
|
"react-animate-height": "^3.2.3",
|
|
68
|
+
"react-aria": "^3.33.1",
|
|
69
|
+
"react-aria-components": "^1.2.1",
|
|
65
70
|
"react-day-picker": "^8.10.1",
|
|
66
71
|
"react-focus-lock": "^2.12.1",
|
|
67
72
|
"react-focus-on": "^3.9.3",
|
|
@@ -95,8 +100,8 @@
|
|
|
95
100
|
"ts-jest": "^29.1.4",
|
|
96
101
|
"tslib": "^2.6.3",
|
|
97
102
|
"tsx": "^4.15.1",
|
|
98
|
-
"@kaizen/
|
|
99
|
-
"@kaizen/
|
|
103
|
+
"@kaizen/package-bundler": "1.1.2",
|
|
104
|
+
"@kaizen/design-tokens": "10.4.1"
|
|
100
105
|
},
|
|
101
106
|
"devDependenciesComments": {
|
|
102
107
|
"postcss": "Installed in root",
|
|
@@ -33,47 +33,57 @@
|
|
|
33
33
|
text-decoration: none;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
&:not(
|
|
36
|
+
&:not(.disabled, .working) {
|
|
37
37
|
&:active {
|
|
38
38
|
transform: translateY(1px);
|
|
39
39
|
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&:focus {
|
|
43
|
+
outline: none;
|
|
44
|
+
}
|
|
40
45
|
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
&:focus-visible {
|
|
47
|
+
&::after {
|
|
48
|
+
$focus-ring-offset: calc((#{$border-focus-ring-border-width} * 2) + 1px);
|
|
49
|
+
|
|
50
|
+
content: "";
|
|
51
|
+
position: absolute;
|
|
52
|
+
background: transparent;
|
|
53
|
+
border-color: $color-blue-500;
|
|
54
|
+
border-radius: $border-focus-ring-border-radius;
|
|
55
|
+
border-width: $border-focus-ring-border-width;
|
|
56
|
+
border-style: $border-focus-ring-border-style;
|
|
57
|
+
inset: calc(-1 * #{$focus-ring-offset});
|
|
43
58
|
}
|
|
59
|
+
}
|
|
44
60
|
|
|
61
|
+
&.reversed {
|
|
45
62
|
&:focus-visible {
|
|
46
63
|
&::after {
|
|
47
|
-
$
|
|
48
|
-
(#{$border-focus-ring-border-width} * 2) + 1px
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
content: "";
|
|
52
|
-
position: absolute;
|
|
53
|
-
background: transparent;
|
|
54
|
-
border-color: $color-blue-500;
|
|
55
|
-
border-radius: $border-focus-ring-border-radius;
|
|
56
|
-
border-width: $border-focus-ring-border-width;
|
|
57
|
-
border-style: $border-focus-ring-border-style;
|
|
58
|
-
inset: calc(-1 * #{$focus-ring-offset});
|
|
64
|
+
border-color: $color-blue-300;
|
|
59
65
|
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
66
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
&:focus-visible {
|
|
67
|
+
&.disabled,
|
|
68
|
+
&.working {
|
|
66
69
|
&::after {
|
|
67
|
-
border-color: $color-
|
|
70
|
+
border-color: $color-gray-400;
|
|
68
71
|
}
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
|
|
73
|
-
|
|
76
|
+
&.disabled,
|
|
74
77
|
&.working {
|
|
75
|
-
|
|
78
|
+
cursor: default;
|
|
76
79
|
opacity: 30%;
|
|
80
|
+
|
|
81
|
+
&:focus-visible {
|
|
82
|
+
&::after {
|
|
83
|
+
border-style: $border-dashed-border-style;
|
|
84
|
+
border-color: $color-purple-800;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
77
87
|
}
|
|
78
88
|
|
|
79
89
|
#{$className--content} {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React, {
|
|
2
2
|
ComponentType,
|
|
3
|
-
|
|
3
|
+
FocusEvent,
|
|
4
|
+
MouseEvent,
|
|
4
5
|
Ref,
|
|
6
|
+
forwardRef,
|
|
5
7
|
useImperativeHandle,
|
|
6
8
|
useRef,
|
|
7
|
-
MouseEvent,
|
|
8
|
-
FocusEvent,
|
|
9
9
|
} from "react"
|
|
10
10
|
import classnames from "classnames"
|
|
11
|
+
import { useFocusable, useLink } from "react-aria"
|
|
12
|
+
import { LinkContext, useContextProps } from "react-aria-components"
|
|
11
13
|
import { Badge, BadgeAnimated } from "~components/Badge"
|
|
12
14
|
import { LoadingSpinner } from "~components/Loading"
|
|
13
15
|
import styles from "./GenericButton.module.scss"
|
|
@@ -71,6 +73,7 @@ export type RenderProps = GenericButtonProps & {
|
|
|
71
73
|
directionalLink?: boolean
|
|
72
74
|
paginationLink?: boolean
|
|
73
75
|
isActive?: boolean
|
|
76
|
+
"aria-describedby"?: string
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
export type ButtonRef = { focus: () => void }
|
|
@@ -135,6 +138,7 @@ export const GenericButton = forwardRef(
|
|
|
135
138
|
ref: Ref<ButtonRef | undefined>
|
|
136
139
|
) => {
|
|
137
140
|
const buttonRef = useRef<HTMLButtonElement | HTMLAnchorElement>()
|
|
141
|
+
const wrapperRef = useRef<HTMLSpanElement>(null)
|
|
138
142
|
useImperativeHandle(ref, () => ({
|
|
139
143
|
focus: (): void => {
|
|
140
144
|
buttonRef.current?.focus()
|
|
@@ -152,27 +156,22 @@ export const GenericButton = forwardRef(
|
|
|
152
156
|
...otherProps,
|
|
153
157
|
}
|
|
154
158
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return renderCustomComponent(props.component, props)
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
if (props.href && !props.disabled && !props.working) {
|
|
161
|
-
return renderLink(props, buttonRef as Ref<HTMLAnchorElement>)
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return renderButton(props, buttonRef as Ref<HTMLButtonElement>)
|
|
159
|
+
if (props.component) {
|
|
160
|
+
return renderCustomComponent(props.component, props, wrapperRef)
|
|
165
161
|
}
|
|
166
162
|
|
|
167
163
|
return (
|
|
168
164
|
<span
|
|
165
|
+
ref={wrapperRef}
|
|
169
166
|
className={classnames(
|
|
170
167
|
styles.container,
|
|
171
168
|
props.fullWidth && styles.fullWidth
|
|
172
169
|
)}
|
|
173
170
|
aria-live={"workingLabel" in props ? "polite" : undefined}
|
|
174
171
|
>
|
|
175
|
-
{
|
|
172
|
+
{props.href && !props.disabled && !props.working
|
|
173
|
+
? renderLink(props, buttonRef as Ref<HTMLAnchorElement>)
|
|
174
|
+
: renderButton(props, buttonRef as Ref<HTMLButtonElement>)}
|
|
176
175
|
</span>
|
|
177
176
|
)
|
|
178
177
|
}
|
|
@@ -182,24 +181,56 @@ GenericButton.displayName = "GenericButton"
|
|
|
182
181
|
|
|
183
182
|
const renderCustomComponent = (
|
|
184
183
|
CustomComponent: ComponentType<CustomButtonProps>,
|
|
185
|
-
props: RenderProps
|
|
184
|
+
props: RenderProps,
|
|
185
|
+
ref: Ref<HTMLSpanElement>
|
|
186
186
|
): JSX.Element => {
|
|
187
|
-
const
|
|
188
|
-
|
|
187
|
+
const passedInProps = {
|
|
188
|
+
id: props.id,
|
|
189
|
+
className: buttonClass(props),
|
|
190
|
+
disabled: props.disabled,
|
|
191
|
+
href: props.href,
|
|
192
|
+
onClick: props.onClick,
|
|
193
|
+
onFocus: props.onFocus,
|
|
194
|
+
onBlur: props.onBlur,
|
|
195
|
+
"aria-label": generateAriaLabel(props),
|
|
196
|
+
...getCustomProps(props),
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const [contextProps, contextRef] = useContextProps(
|
|
200
|
+
passedInProps,
|
|
201
|
+
ref,
|
|
202
|
+
// @ts-expect-error we're using span ref on link context, but that's ok because we need only sizing
|
|
203
|
+
LinkContext
|
|
204
|
+
)
|
|
205
|
+
// @ts-expect-error
|
|
206
|
+
// @todo: Make a wrapper and take it out of Button
|
|
207
|
+
const { linkProps } = useLink(contextProps, contextRef)
|
|
208
|
+
|
|
209
|
+
// Unset this because the one defined in buttonProps shows
|
|
210
|
+
// focus-visible styles on click, in future we'll style using [data-focus-visible] which is consistent across browsers
|
|
211
|
+
delete linkProps.onPointerDown
|
|
212
|
+
|
|
189
213
|
return (
|
|
190
|
-
<
|
|
191
|
-
|
|
192
|
-
className={
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
onBlur={onBlur}
|
|
198
|
-
aria-label={generateAriaLabel(props)}
|
|
199
|
-
{...customProps}
|
|
214
|
+
<span
|
|
215
|
+
ref={contextRef}
|
|
216
|
+
className={classnames(
|
|
217
|
+
styles.container,
|
|
218
|
+
props.fullWidth && styles.fullWidth
|
|
219
|
+
)}
|
|
220
|
+
aria-live={"workingLabel" in props ? "polite" : undefined}
|
|
200
221
|
>
|
|
201
|
-
|
|
202
|
-
|
|
222
|
+
<CustomComponent
|
|
223
|
+
{...contextProps}
|
|
224
|
+
{...linkProps}
|
|
225
|
+
aria-describedby={
|
|
226
|
+
props["aria-describedby"] === null
|
|
227
|
+
? undefined
|
|
228
|
+
: linkProps["aria-describedby"]
|
|
229
|
+
}
|
|
230
|
+
>
|
|
231
|
+
{renderContent(props)}
|
|
232
|
+
</CustomComponent>
|
|
233
|
+
</span>
|
|
203
234
|
)
|
|
204
235
|
}
|
|
205
236
|
|
|
@@ -207,51 +238,52 @@ const renderButton = (
|
|
|
207
238
|
props: RenderProps,
|
|
208
239
|
ref: Ref<HTMLButtonElement>
|
|
209
240
|
): JSX.Element => {
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
241
|
+
const disableActions = props.disabled || props.working
|
|
242
|
+
const passedInProps: React.DetailedHTMLProps<
|
|
243
|
+
React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
244
|
+
HTMLButtonElement
|
|
245
|
+
> = {
|
|
246
|
+
id: props.id,
|
|
247
|
+
disabled: props.disabled,
|
|
248
|
+
onClick: !disableActions ? props.onClick : undefined,
|
|
249
|
+
onMouseDown: !disableActions ? props.onMouseDown : undefined,
|
|
250
|
+
type: props.type,
|
|
251
|
+
onFocus: props.onFocus,
|
|
252
|
+
onBlur: props.onBlur,
|
|
253
|
+
form: props.form,
|
|
254
|
+
formAction: props.formAction,
|
|
255
|
+
formMethod: props.formMethod,
|
|
256
|
+
formEncType: props.formEncType,
|
|
257
|
+
formTarget: props.formTarget,
|
|
258
|
+
formNoValidate: props.formNoValidate,
|
|
259
|
+
className: buttonClass(props),
|
|
260
|
+
"aria-label": generateAriaLabel(props),
|
|
261
|
+
"aria-disabled": props.disabled || props.working ? true : undefined,
|
|
262
|
+
tabIndex: props.disableTabFocusAndIUnderstandTheAccessibilityImplications
|
|
263
|
+
? -1
|
|
264
|
+
: undefined,
|
|
265
|
+
...getCustomProps(props),
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// we're using useFocusable instead of useButton because at this stage we want to hook only to focusable.
|
|
269
|
+
// Not standardize button behavior as we're currently relying on some weird native behaviours (like onClick firing on enter key press) see https://react-spectrum.adobe.com/blog/building-a-button-part-1.html
|
|
270
|
+
// @ts-ignore
|
|
271
|
+
const { focusableProps } = useFocusable(passedInProps, ref)
|
|
228
272
|
|
|
229
273
|
return (
|
|
274
|
+
// eslint-disable-next-line react/button-has-type
|
|
230
275
|
<button
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
onFocus={onFocus}
|
|
238
|
-
onBlur={onBlur}
|
|
239
|
-
onMouseDown={(e): void => onMouseDown && onMouseDown(e)}
|
|
240
|
-
aria-label={generateAriaLabel(props)}
|
|
241
|
-
aria-disabled={disabled || props.working ? true : undefined}
|
|
242
|
-
form={form}
|
|
243
|
-
formAction={formAction}
|
|
244
|
-
formMethod={formMethod}
|
|
245
|
-
formEncType={formEncType}
|
|
246
|
-
formTarget={formTarget}
|
|
247
|
-
formNoValidate={formNoValidate}
|
|
248
|
-
tabIndex={
|
|
249
|
-
disableTabFocusAndIUnderstandTheAccessibilityImplications
|
|
250
|
-
? -1
|
|
251
|
-
: undefined
|
|
276
|
+
{...passedInProps}
|
|
277
|
+
{...focusableProps}
|
|
278
|
+
aria-describedby={
|
|
279
|
+
props["aria-describedby"] === null
|
|
280
|
+
? undefined
|
|
281
|
+
: props["aria-describedby"] || focusableProps["aria-describedby"]
|
|
252
282
|
}
|
|
283
|
+
// Unset this because the one defined in buttonProps shows
|
|
284
|
+
// focus-visible styles on click
|
|
285
|
+
onPointerDown={undefined}
|
|
253
286
|
ref={ref}
|
|
254
|
-
{...customProps}
|
|
255
287
|
>
|
|
256
288
|
{renderContent(props)}
|
|
257
289
|
</button>
|
|
@@ -262,34 +294,44 @@ const renderLink = (
|
|
|
262
294
|
props: RenderProps,
|
|
263
295
|
ref: Ref<HTMLAnchorElement>
|
|
264
296
|
): JSX.Element => {
|
|
265
|
-
const
|
|
266
|
-
id,
|
|
267
|
-
href,
|
|
268
|
-
onClick,
|
|
269
|
-
newTabAndIUnderstandTheAccessibilityImplications,
|
|
270
|
-
onFocus,
|
|
271
|
-
onBlur,
|
|
272
|
-
...rest
|
|
273
|
-
} = props
|
|
274
|
-
const customProps = getCustomProps(rest)
|
|
275
|
-
|
|
276
|
-
const target = newTabAndIUnderstandTheAccessibilityImplications
|
|
297
|
+
const target = props.newTabAndIUnderstandTheAccessibilityImplications
|
|
277
298
|
? "_blank"
|
|
278
299
|
: "_self"
|
|
279
300
|
|
|
301
|
+
const passedInProps: React.DetailedHTMLProps<
|
|
302
|
+
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
303
|
+
HTMLAnchorElement
|
|
304
|
+
> = {
|
|
305
|
+
id: props.id,
|
|
306
|
+
href: props.href,
|
|
307
|
+
target,
|
|
308
|
+
rel: target === "_blank" ? "noopener noreferrer" : undefined,
|
|
309
|
+
className: buttonClass(props),
|
|
310
|
+
onClick: props.onClick,
|
|
311
|
+
onFocus: props.onFocus,
|
|
312
|
+
onBlur: props.onBlur,
|
|
313
|
+
"aria-label": generateAriaLabel(props),
|
|
314
|
+
...getCustomProps(props),
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// we're using useFocusable instead of useLink because at this stage we want to hook only to focusable.
|
|
318
|
+
// Not standardize button behavior as we're currently relying on some weird native behaviours (like onClick firing on enter key press) see https://react-spectrum.adobe.com/blog/building-a-button-part-1.html
|
|
319
|
+
// @ts-ignore
|
|
320
|
+
const { focusableProps } = useFocusable(passedInProps, ref)
|
|
321
|
+
|
|
280
322
|
return (
|
|
281
323
|
<a
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
324
|
+
{...passedInProps}
|
|
325
|
+
{...focusableProps}
|
|
326
|
+
aria-describedby={
|
|
327
|
+
props["aria-describedby"] === null
|
|
328
|
+
? undefined
|
|
329
|
+
: props["aria-describedby"] || focusableProps["aria-describedby"]
|
|
330
|
+
}
|
|
331
|
+
// Unset this because the one defined in linkProps shows
|
|
332
|
+
// focus-visible styles on click
|
|
333
|
+
onPointerDown={undefined}
|
|
290
334
|
ref={ref}
|
|
291
|
-
aria-label={generateAriaLabel(props)}
|
|
292
|
-
{...customProps}
|
|
293
335
|
>
|
|
294
336
|
{renderContent(props)}
|
|
295
337
|
</a>
|
|
@@ -301,6 +343,8 @@ const buttonClass = (props: RenderProps): string => {
|
|
|
301
343
|
return classnames(
|
|
302
344
|
styles.button,
|
|
303
345
|
isDefault && styles.default,
|
|
346
|
+
// @ts-ignore
|
|
347
|
+
(props.disabled || props["aria-disabled"]) && styles.disabled,
|
|
304
348
|
props.primary && styles.primary,
|
|
305
349
|
props.destructive && styles.destructive,
|
|
306
350
|
props.secondary && styles.secondary,
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
FilterButtonBase,
|
|
5
5
|
FilterButtonBaseProps,
|
|
6
6
|
} from "~components/Filter/FilterButton/subcomponents/FilterButtonBase"
|
|
7
|
-
import { Tooltip, TooltipProps } from "~components/Tooltip"
|
|
7
|
+
import { Tooltip, TooltipProps } from "~components/__overlays__/Tooltip/v1"
|
|
8
8
|
import { OverrideClassName } from "~types/OverrideClassName"
|
|
9
9
|
import styles from "./ButtonGroup.module.scss"
|
|
10
10
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import { Meta } from "@storybook/react"
|
|
3
3
|
import { FilterButtonBase } from "~components/Filter/FilterButton/subcomponents/FilterButtonBase"
|
|
4
|
-
import { Tooltip } from "~components/Tooltip"
|
|
4
|
+
import { Tooltip } from "~components/__overlays__/Tooltip/v1"
|
|
5
5
|
import {
|
|
6
6
|
StickerSheet,
|
|
7
7
|
StickerSheetStory,
|
|
@@ -2,7 +2,7 @@ import React, { forwardRef } from "react"
|
|
|
2
2
|
import { ButtonGroup, ButtonGroupProps } from "~components/ButtonGroup"
|
|
3
3
|
import { FilterTriggerRef } from "~components/Filter/Filter"
|
|
4
4
|
import { ClearIcon } from "~components/Icon"
|
|
5
|
-
import { Tooltip } from "~components/Tooltip"
|
|
5
|
+
import { Tooltip } from "~components/__overlays__/Tooltip/v1"
|
|
6
6
|
import { DataAttributes } from "~types/DataAttributes"
|
|
7
7
|
import { isRefObject } from "~utils/isRefObject"
|
|
8
8
|
import { FilterButton, FilterButtonProps } from "../FilterButton"
|
|
@@ -6,7 +6,7 @@ import { Heading, HeadingProps } from "~components/Heading"
|
|
|
6
6
|
import { ArrowForwardIcon } from "~components/Icon"
|
|
7
7
|
import { SceneProps, SpotProps } from "~components/Illustration"
|
|
8
8
|
import { Text } from "~components/Text"
|
|
9
|
-
import { Tooltip, TooltipProps } from "~components/Tooltip"
|
|
9
|
+
import { Tooltip, TooltipProps } from "~components/__overlays__/Tooltip/v1"
|
|
10
10
|
import { VariantType } from "./types"
|
|
11
11
|
import styles from "./GuidanceBlock.module.scss"
|
|
12
12
|
|
|
@@ -27,13 +27,11 @@ export const KaizenProvider = ({
|
|
|
27
27
|
|
|
28
28
|
return (
|
|
29
29
|
<OptionalIntlProvider locale={locale}>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<FontDefinitions />
|
|
36
|
-
</>
|
|
30
|
+
<ToastNotificationProvider>
|
|
31
|
+
{notificationsList}
|
|
32
|
+
{children}
|
|
33
|
+
</ToastNotificationProvider>
|
|
34
|
+
<FontDefinitions />
|
|
37
35
|
</OptionalIntlProvider>
|
|
38
36
|
)
|
|
39
37
|
}
|