react-restyle-components 0.4.39 → 0.4.40
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/lib/index.js +3 -1
- package/lib/src/core-components/index.js +1 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/Accordion.js +15 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js +6 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js +39 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/Header.js +39 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/elements.js +94 -57
- package/lib/src/core-components/src/components/Accordion/AccordionSection/hooks/useCurrentAccordionIndex.js +13 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/index.js +3 -1
- package/lib/src/core-components/src/components/Accordion/AccordionSection/types.js +9 -1
- package/lib/src/core-components/src/components/Accordion/Collapsible/Collapsible2.component.js +249 -1
- package/lib/src/core-components/src/components/Action/types.js +8 -1
- package/lib/src/core-components/src/components/AlertBanner/AlertBanner.js +45 -1
- package/lib/src/core-components/src/components/AlertBanner/elements.js +120 -45
- package/lib/src/core-components/src/components/AlertBanner/index.js +2 -1
- package/lib/src/core-components/src/components/AlertBanner/types.js +10 -1
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-group-by-multiple-select-multiple-fields-display/auto-complete-filter-group-by-multiple-select-multiple-fields-display.component.js +334 -1
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-multi-fields-display-drag-drop/auto-complete-filter-multi-select-multi-fields-display-drag-drop.component.js +229 -1
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-selected-top-display/auto-complete-filter-multi-select-selected-top-display.component.js +174 -1
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +129 -2
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +55 -1
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +308 -2
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-group-by/auto-complete-group-by.component.js +115 -1
- package/lib/src/core-components/src/components/AutoComplete/autocomplete/autocomplete.js +442 -2
- package/lib/src/core-components/src/components/AutoComplete/index.js +8 -1
- package/lib/src/core-components/src/components/Avatar/Avatar.js +148 -14
- package/lib/src/core-components/src/components/Badge/Badge.js +25 -2
- package/lib/src/core-components/src/components/Badge/InnerBadge/Inline.js +25 -1
- package/lib/src/core-components/src/components/Badge/InnerBadge/InnerBadge.js +25 -1
- package/lib/src/core-components/src/components/Badge/InnerBadge/elements.js +78 -32
- package/lib/src/core-components/src/components/Badge/InnerBadge/index.js +1 -1
- package/lib/src/core-components/src/components/Badge/index.js +1 -1
- package/lib/src/core-components/src/components/Badge/types.js +5 -1
- package/lib/src/core-components/src/components/Breadcrumb/Breadcrumb.js +83 -1
- package/lib/src/core-components/src/components/Breadcrumb/elements.js +166 -94
- package/lib/src/core-components/src/components/Breadcrumb/index.js +3 -1
- package/lib/src/core-components/src/components/Breadcrumb/types.js +3 -1
- package/lib/src/core-components/src/components/Button/button.component.js +18 -1
- package/lib/src/core-components/src/components/Button/buttonGroup/buttonGroup.component.js +4 -1
- package/lib/src/core-components/src/components/Button/index.js +2 -1
- package/lib/src/core-components/src/components/Button/types.js +1 -1
- package/lib/src/core-components/src/components/Chip/Chip.js +64 -1
- package/lib/src/core-components/src/components/Chip/elements.js +148 -48
- package/lib/src/core-components/src/components/Chip/index.js +2 -1
- package/lib/src/core-components/src/components/Chip/types.js +4 -1
- package/lib/src/core-components/src/components/Divider/Divider.js +25 -1
- package/lib/src/core-components/src/components/Divider/elements.js +68 -31
- package/lib/src/core-components/src/components/Divider/index.js +2 -1
- package/lib/src/core-components/src/components/Divider/types.js +4 -1
- package/lib/src/core-components/src/components/DynamicGrid/DynamicGrid.js +147 -1
- package/lib/src/core-components/src/components/DynamicGrid/GridContainer.js +24 -17
- package/lib/src/core-components/src/components/DynamicGrid/elements.js +162 -100
- package/lib/src/core-components/src/components/DynamicGrid/index.js +3 -1
- package/lib/src/core-components/src/components/DynamicGrid/types.js +28 -1
- package/lib/src/core-components/src/components/DynamicGrid/utils.js +193 -1
- package/lib/src/core-components/src/components/FormField/FormField.js +103 -1
- package/lib/src/core-components/src/components/FormField/components/CheckboxGroupInput.js +37 -1
- package/lib/src/core-components/src/components/FormField/components/CheckboxInput.js +8 -1
- package/lib/src/core-components/src/components/FormField/components/CssMultilineInput.js +192 -1
- package/lib/src/core-components/src/components/FormField/components/DatePickerInput.js +99 -1
- package/lib/src/core-components/src/components/FormField/components/DropdownInput.js +70 -1
- package/lib/src/core-components/src/components/FormField/components/OtpInput.js +81 -1
- package/lib/src/core-components/src/components/FormField/components/PasswordInput.js +40 -1
- package/lib/src/core-components/src/components/FormField/components/PinInput.js +75 -1
- package/lib/src/core-components/src/components/FormField/components/RadioInput.js +54 -1
- package/lib/src/core-components/src/components/FormField/components/TextDropdownInput.js +94 -1
- package/lib/src/core-components/src/components/FormField/components/ToggleInput.js +36 -1
- package/lib/src/core-components/src/components/FormField/components/index.js +11 -1
- package/lib/src/core-components/src/components/FormField/css-properties.js +161 -1
- package/lib/src/core-components/src/components/FormField/index.js +2 -1
- package/lib/src/core-components/src/components/Icon/Icon.js +79 -1
- package/lib/src/core-components/src/components/Icon/index.js +2 -1
- package/lib/src/core-components/src/components/Icon/types.js +9 -1
- package/lib/src/core-components/src/components/Loader/loader.component.js +215 -2
- package/lib/src/core-components/src/components/Masonry/Masonry.js +73 -1
- package/lib/src/core-components/src/components/Masonry/elements.js +46 -29
- package/lib/src/core-components/src/components/Masonry/hooks.js +100 -1
- package/lib/src/core-components/src/components/Masonry/index.js +3 -1
- package/lib/src/core-components/src/components/Masonry/types.js +1 -1
- package/lib/src/core-components/src/components/Modal/BasicModal/modal.component.js +116 -1
- package/lib/src/core-components/src/components/Modal/index.js +2 -1
- package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +147 -1
- package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +12 -1
- package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +40 -1
- package/lib/src/core-components/src/components/Picker/index.js +2 -1
- package/lib/src/core-components/src/components/Selection/index.js +4 -1
- package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +49 -1
- package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +58 -1
- package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +43 -1
- package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +87 -1
- package/lib/src/core-components/src/components/Skeleton/Skeleton.js +51 -1
- package/lib/src/core-components/src/components/Skeleton/elements.js +143 -54
- package/lib/src/core-components/src/components/Skeleton/index.js +2 -1
- package/lib/src/core-components/src/components/Skeleton/types.js +4 -1
- package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +128 -1
- package/lib/src/core-components/src/components/SpeedDial/elements.js +132 -62
- package/lib/src/core-components/src/components/SpeedDial/index.js +2 -1
- package/lib/src/core-components/src/components/SpeedDial/types.js +3 -1
- package/lib/src/core-components/src/components/Stepper2/stepper.component.js +139 -1
- package/lib/src/core-components/src/components/Switch/Switch.js +26 -1
- package/lib/src/core-components/src/components/Switch/elements.js +103 -34
- package/lib/src/core-components/src/components/Switch/index.js +2 -1
- package/lib/src/core-components/src/components/Switch/types.js +3 -1
- package/lib/src/core-components/src/components/Table/Table.js +1332 -1
- package/lib/src/core-components/src/components/Table/columnReorder.d.ts +128 -0
- package/lib/src/core-components/src/components/Table/columnReorder.js +530 -0
- package/lib/src/core-components/src/components/Table/columnResize.d.ts +99 -0
- package/lib/src/core-components/src/components/Table/columnResize.js +399 -0
- package/lib/src/core-components/src/components/Table/elements.d.ts +9 -1
- package/lib/src/core-components/src/components/Table/elements.js +324 -155
- package/lib/src/core-components/src/components/Table/filters.js +555 -30
- package/lib/src/core-components/src/components/Table/hooks.js +536 -2
- package/lib/src/core-components/src/components/Table/index.d.ts +4 -0
- package/lib/src/core-components/src/components/Table/index.js +6 -1
- package/lib/src/core-components/src/components/Table/types.d.ts +58 -0
- package/lib/src/core-components/src/components/Table/types.js +1 -1
- package/lib/src/core-components/src/components/Tabs/tabs.component.js +22 -1
- package/lib/src/core-components/src/components/Tags1/Tags.component.js +118 -1
- package/lib/src/core-components/src/components/Tags1/types.js +20 -1
- package/lib/src/core-components/src/components/Timer1/timer.component.js +76 -1
- package/lib/src/core-components/src/components/Toast/Toast.js +50 -1
- package/lib/src/core-components/src/components/Toast/elements.js +122 -41
- package/lib/src/core-components/src/components/Toast/index.js +2 -1
- package/lib/src/core-components/src/components/Toast/types.js +9 -1
- package/lib/src/core-components/src/components/Tooltip/Tooltip.js +200 -1
- package/lib/src/core-components/src/components/Tooltip/elements.js +117 -55
- package/lib/src/core-components/src/components/Tooltip/index.js +2 -1
- package/lib/src/core-components/src/components/Tooltip/types.js +17 -1
- package/lib/src/core-components/src/components/Tooltip/utils.js +140 -1
- package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +303 -1
- package/lib/src/core-components/src/components/TreeSelect/elements.js +216 -117
- package/lib/src/core-components/src/components/TreeSelect/hooks.js +252 -1
- package/lib/src/core-components/src/components/TreeSelect/index.js +3 -1
- package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
- package/lib/src/core-components/src/components/index.js +30 -1
- package/lib/src/core-components/src/components/pdf/pdf-images.components.js +7 -1
- package/lib/src/core-components/src/components/pdf/pdf-table.components.js +48 -5
- package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +70 -1
- package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +50 -1
- package/lib/src/core-components/src/core-components/Avatar.js +33 -4
- package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +10 -1
- package/lib/src/core-components/src/core-components/CoreButton/elements.js +176 -67
- package/lib/src/core-components/src/core-components/CoreButton/index.js +3 -1
- package/lib/src/core-components/src/core-components/CoreButton/types.js +6 -1
- package/lib/src/core-components/src/core-components/CoreButton/utils.js +12 -1
- package/lib/src/core-components/src/core-components/Divider/Divider.js +19 -4
- package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
- package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
- package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +33 -10
- package/lib/src/core-components/src/core-components/StateLayer.js +5 -3
- package/lib/src/core-components/src/core-components/ToggleCore/elements.js +50 -25
- package/lib/src/core-components/src/core-components/ToggleCore/index.js +2 -1
- package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +14 -1
- package/lib/src/core-components/src/core-components/atoms/Input/Input.js +22 -1
- package/lib/src/core-components/src/core-components/atoms/Label/Label.js +21 -1
- package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +19 -1
- package/lib/src/core-components/src/core-components/index.js +3 -1
- package/lib/src/core-components/src/helpers/constants.js +11 -1
- package/lib/src/core-components/src/hooks/index.js +1 -1
- package/lib/src/core-components/src/hooks/outside.hook.js +28 -1
- package/lib/src/core-components/src/index.js +12 -1
- package/lib/src/core-components/src/tc.global.css +12 -1
- package/lib/src/core-components/src/tc.module.css +1 -1
- package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +28 -1
- package/lib/src/core-components/src/utils/abstracts/colors/index.js +49 -1
- package/lib/src/core-components/src/utils/abstracts/index.js +5 -1
- package/lib/src/core-components/src/utils/abstracts/space/index.js +26 -1
- package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +8 -1
- package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +30 -1
- package/lib/src/core-components/src/utils/abstracts/theme/index.js +3 -1
- package/lib/src/core-components/src/utils/abstracts/theme/theme.js +30 -1
- package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
- package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +17 -1
- package/lib/src/core-components/src/utils/abstracts/typography/index.js +25 -1
- package/lib/src/core-components/src/utils/context/DefaultsProvider.js +8 -1
- package/lib/src/core-components/src/utils/context/InternalProvider.js +24 -1
- package/lib/src/core-components/src/utils/context/index.js +2 -1
- package/lib/src/core-components/src/utils/designTokens.js +125 -1
- package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +23 -1
- package/lib/src/core-components/src/utils/helpers/flattenChildren.js +11 -1
- package/lib/src/core-components/src/utils/helpers/getChildByType.js +3 -1
- package/lib/src/core-components/src/utils/helpers/index.js +5 -1
- package/lib/src/core-components/src/utils/helpers/isComponentType.js +16 -1
- package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +12 -1
- package/lib/src/core-components/src/utils/hooks/index.js +18 -1
- package/lib/src/core-components/src/utils/hooks/useClickOutside.js +18 -1
- package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +17 -1
- package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +12 -1
- package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +20 -1
- package/lib/src/core-components/src/utils/hooks/useDeprecation.js +40 -1
- package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +10 -1
- package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +24 -1
- package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +16 -1
- package/lib/src/core-components/src/utils/hooks/useHoverState.js +36 -1
- package/lib/src/core-components/src/utils/hooks/useId.js +7 -1
- package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +11 -1
- package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +16 -1
- package/lib/src/core-components/src/utils/hooks/useOverflow.js +22 -1
- package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +5 -1
- package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +18 -1
- package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +30 -1
- package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +23 -1
- package/lib/src/core-components/src/utils/index.js +9 -1
- package/lib/src/core-components/src/utils/stories/Wrappers.js +23 -8
- package/lib/src/core-components/src/utils/stories/cleanProps.js +5 -1
- package/lib/src/core-components/src/utils/stories/index.js +4 -1
- package/lib/src/core-components/src/utils/stories/sleep.js +4 -1
- package/lib/src/core-components/src/utils/stories/view-ports.js +50 -1
- package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +5 -1
- package/lib/src/core-components/src/utils/styling/createGridContainer.js +12 -6
- package/lib/src/core-components/src/utils/styling/createTransition.js +7 -2
- package/lib/src/core-components/src/utils/styling/forwardProps.js +10 -1
- package/lib/src/core-components/src/utils/styling/index.js +5 -1
- package/lib/src/core-components/src/utils/styling/pxToRem.js +6 -1
- package/lib/src/core-components/src/utils/testing/getComputedStyle.js +3 -1
- package/lib/src/core-components/src/utils/testing/index.js +1 -1
- package/lib/src/core-components/src/utils/utility.util.js +14 -1
- package/lib/src/core-components/tailwind.config.js +233 -1
- package/lib/src/core-hooks/index.js +3 -1
- package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +46 -1
- package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +30 -1
- package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +8 -1
- package/lib/src/core-utils/index.js +7 -1
- package/lib/src/core-utils/src/calculation/calculation.util.js +89 -1
- package/lib/src/core-utils/src/colors/color.util.js +15 -1
- package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +145 -1
- package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +5 -1
- package/lib/src/core-utils/src/form-helper/form-helper.util.js +82 -1
- package/lib/src/core-utils/src/index.js +7 -1
- package/lib/src/core-utils/src/utility/utility.util.js +12 -1
- package/lib/src/core-utils/src/uuid/uuid.util.js +8 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export * from './src/components';
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import AccordionContext from './AccordionContext';
|
|
5
|
+
import { AccordionElement } from './elements';
|
|
6
|
+
import { usePropDeprecation } from '../../../utils';
|
|
7
|
+
export const Accordion = React.forwardRef(({ ariaLabel = '', variant = 'inline', numbered = false, children, ...props }, fRef) => {
|
|
8
|
+
usePropDeprecation({
|
|
9
|
+
name: 'numbered',
|
|
10
|
+
version: '5.0.0',
|
|
11
|
+
alternative: 'AccordionSection.Header.Leading and AccordionSection.Header.Trailing',
|
|
12
|
+
value: numbered,
|
|
13
|
+
});
|
|
14
|
+
return (_jsx(AccordionContext.Provider, { value: { variant, numbered }, children: _jsx(AccordionElement, { "data-aui": "accordion", "aria-label": ariaLabel, ref: fRef, "$variant": variant, ...props, children: children }) }));
|
|
15
|
+
});
|
package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
const AccordionContext = createContext({
|
|
3
|
+
variant: 'inline',
|
|
4
|
+
numbered: false,
|
|
5
|
+
});
|
|
6
|
+
export default AccordionContext;
|
package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js
CHANGED
|
@@ -1 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, { useContext, useRef, useState, useEffect } from 'react';
|
|
4
|
+
import { ButtonElement, AccordionSectionWrapper, AccordionSectionContent, AccordionDivider, AccordionSectionContentWrapper, AccordionFade, } from './elements';
|
|
5
|
+
import { Header } from './Header';
|
|
6
|
+
import { Icon } from '../../Icon/Icon';
|
|
7
|
+
import { useCurrentAccordionIndex } from './hooks/useCurrentAccordionIndex';
|
|
8
|
+
import AccordionContext from './AccordionContext';
|
|
9
|
+
import { StateLayer } from '../../../core-components';
|
|
10
|
+
import { attachSubComponents, separateChildrenByType, usePropDeprecation, } from '../../../utils';
|
|
11
|
+
import { tokens } from '../../../utils/designTokens';
|
|
12
|
+
export const AccordionSection = attachSubComponents('AccordionSection', React.forwardRef(({ buttonClassName = '', headerClassName = '', subheaderClassName = '', iconWrapperClassName = '', ariaLabel = '', icons, children, header, subheader, startOpen = false, transitionDuration = '.3s', transitionTimingFunction = 'ease-in', onClick, onOpenStateChange, isOpen, ...rest }, fRef) => {
|
|
13
|
+
usePropDeprecation({
|
|
14
|
+
name: 'iconSrc',
|
|
15
|
+
version: '5.0.0',
|
|
16
|
+
alternative: 'AccordionSection.Header.Leading and AccordionSection.Header.Trailing',
|
|
17
|
+
value: icons,
|
|
18
|
+
});
|
|
19
|
+
const { numbered, variant } = useContext(AccordionContext);
|
|
20
|
+
const accordionRef = useRef(null);
|
|
21
|
+
const accordionIndex = useCurrentAccordionIndex(accordionRef);
|
|
22
|
+
const [accordionOpen, setAccordionOpenState] = useState(isOpen ?? startOpen);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
setAccordionOpenState(isOpen ?? startOpen);
|
|
25
|
+
}, [isOpen]);
|
|
26
|
+
const [headerElements, content] = separateChildrenByType(children, Header);
|
|
27
|
+
const sectionHeader = React.Children.count(headerElements) !== 0 ? (headerElements) : (_jsxs(Header, { children: [numbered ? (_jsx(Header.Leading, { children: _jsxs(Header.Number, { children: [accordionIndex, "."] }) })) : (icons && (_jsx(Header.Leading, { alignment: "center", className: iconWrapperClassName, children: _jsx(Icon, { nameIcon: icons.nameIcon, propsIcon: {
|
|
28
|
+
size: 24,
|
|
29
|
+
color: tokens.white,
|
|
30
|
+
...(icons.propsIcon || {})
|
|
31
|
+
} }) }))), _jsx(Header.Heading, { className: headerClassName, children: header }), subheader && (_jsx(Header.SupportiveText, { className: subheaderClassName, children: subheader }))] }));
|
|
32
|
+
return (_jsxs(AccordionSectionWrapper, { "$variant": variant, "$isOpen": accordionOpen, "data-aui": "accordion.section", ref: accordionRef, children: [_jsxs(ButtonElement, { ref: fRef, className: buttonClassName, "aria-label": ariaLabel, "aria-expanded": accordionOpen, "$variant": variant, "$isOpen": accordionOpen, onClick: (e) => {
|
|
33
|
+
onClick?.(e);
|
|
34
|
+
onOpenStateChange?.(!accordionOpen);
|
|
35
|
+
setAccordionOpenState(!accordionOpen);
|
|
36
|
+
}, ...rest, children: [_jsx(StateLayer, {}), sectionHeader] }), _jsxs(AccordionSectionContentWrapper, { "$isOpen": accordionOpen, "$transitionDuration": transitionDuration, "$transitionTimingFunction": transitionTimingFunction, children: [_jsx(AccordionSectionContent, { "aria-hidden": !accordionOpen, "$isOpen": accordionOpen, "$hasLeader": !!icons || numbered, "$transitionDuration": transitionDuration, children: _jsx("div", { style: { zIndex: -1, paddingBottom: 10 }, children: content }) }), _jsx(AccordionFade, { "$isOpen": accordionOpen, "$transitionDuration": transitionDuration, "$transitionTimingFunction": transitionTimingFunction })] }), _jsx(AccordionDivider, {})] }));
|
|
37
|
+
}), {
|
|
38
|
+
Header,
|
|
39
|
+
});
|
|
@@ -1 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { attachSubComponents, DefaultsProvider, separateChildrenByType, } from '../../../utils';
|
|
3
|
+
import { AccordionSectionText, StyledLeadingTrailing } from './elements';
|
|
4
|
+
import { tokens } from '../../../utils/designTokens';
|
|
5
|
+
// import {Text, TextProps} from '../Text';
|
|
6
|
+
const Text = ({ size, weight, color, children, ...props }) => {
|
|
7
|
+
const fontSizeMap = {
|
|
8
|
+
1: '0.875rem',
|
|
9
|
+
2: '1rem',
|
|
10
|
+
3: '1.25rem',
|
|
11
|
+
4: '1.5rem',
|
|
12
|
+
};
|
|
13
|
+
const fontWeightMap = {
|
|
14
|
+
regular: 400,
|
|
15
|
+
medium: 500,
|
|
16
|
+
heavy: 700,
|
|
17
|
+
};
|
|
18
|
+
return (_jsx("span", { style: {
|
|
19
|
+
fontSize: fontSizeMap[size] || fontSizeMap[2],
|
|
20
|
+
fontWeight: fontWeightMap[weight] || fontWeightMap['regular'],
|
|
21
|
+
color: color || tokens.white,
|
|
22
|
+
}, ...props, children: children }));
|
|
23
|
+
};
|
|
24
|
+
const LeadingTrailing = ({ children, ...props }) => (_jsx(StyledLeadingTrailing, { ...props, children: _jsx(DefaultsProvider, { value: { iconSize: 'large' }, children: children }) }));
|
|
25
|
+
const Leading = (props) => _jsx(LeadingTrailing, { ...props });
|
|
26
|
+
const Trailing = (props) => _jsx(LeadingTrailing, { ...props });
|
|
27
|
+
const Number = ({ children, ...props }) => (_jsx(Text, { size: 2, weight: "heavy", ...props, children: children }));
|
|
28
|
+
const Heading = ({ children, ...props }) => (_jsx(Text, { size: 2, weight: "heavy", ...props, children: children }));
|
|
29
|
+
const SupportiveText = ({ children, ...props }) => (_jsx(Text, { size: 1, ...props, children: children }));
|
|
30
|
+
export const Header = attachSubComponents('Header', ({ children }) => {
|
|
31
|
+
const [leading, trailing, content] = separateChildrenByType(children, Leading, Trailing);
|
|
32
|
+
return (_jsxs(_Fragment, { children: [leading, _jsx(AccordionSectionText, { children: content }), trailing] }));
|
|
33
|
+
}, {
|
|
34
|
+
Heading,
|
|
35
|
+
Leading,
|
|
36
|
+
Number,
|
|
37
|
+
SupportiveText,
|
|
38
|
+
Trailing,
|
|
39
|
+
});
|
|
@@ -1,39 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
import { styled, css } from 'styled-components';
|
|
2
|
+
import { Icon } from '../../Icon/Icon';
|
|
3
|
+
import { StateLayer } from '../../../core-components';
|
|
4
|
+
import { tokens } from '../../../utils/designTokens';
|
|
5
|
+
const Divider = styled.hr `
|
|
2
6
|
border: none;
|
|
3
7
|
border-top: 1px solid;
|
|
4
8
|
margin: 0;
|
|
5
9
|
width: 100%;
|
|
6
|
-
`;
|
|
10
|
+
`;
|
|
11
|
+
export const AccordionElement = styled.div `
|
|
7
12
|
display: flex;
|
|
8
13
|
justify-content: flex-start;
|
|
9
14
|
align-items: stretch;
|
|
10
15
|
flex-direction: column;
|
|
11
|
-
gap: ${
|
|
12
|
-
${({$variant
|
|
13
|
-
|
|
14
|
-
border
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
gap: ${tokens.spacing050};
|
|
17
|
+
${({ $variant }) => $variant === 'inline' &&
|
|
18
|
+
css `
|
|
19
|
+
border: 1px solid ${tokens.outline};
|
|
20
|
+
border-radius: ${tokens.borderRadius100};
|
|
21
|
+
padding: ${tokens.spacing100};
|
|
22
|
+
background: ${tokens.surface || '#ffffff'};
|
|
17
23
|
`};
|
|
18
24
|
overflow: hidden;
|
|
19
25
|
width: 100%;
|
|
20
|
-
color: ${
|
|
21
|
-
|
|
26
|
+
color: ${tokens.onSurface};
|
|
27
|
+
`;
|
|
28
|
+
export const AccordionSectionWrapper = styled.div `
|
|
22
29
|
overflow: hidden;
|
|
23
30
|
width: 100%;
|
|
24
31
|
isolation: isolate;
|
|
25
32
|
transition: all 0.3s ease;
|
|
26
33
|
|
|
27
|
-
${({$variant
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
${({ $variant, $isOpen }) => $variant === 'inline' &&
|
|
35
|
+
css `
|
|
36
|
+
border-radius: ${tokens.borderRadius100};
|
|
37
|
+
margin-bottom: ${$isOpen ? tokens.spacing100 : '0'};
|
|
38
|
+
box-shadow: ${$isOpen
|
|
39
|
+
? '0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1)'
|
|
40
|
+
: 'none'};
|
|
31
41
|
|
|
32
42
|
&:last-child ${AccordionDivider} {
|
|
33
43
|
display: none;
|
|
34
44
|
}
|
|
35
45
|
`};
|
|
36
|
-
|
|
46
|
+
`;
|
|
47
|
+
export const ButtonElement = styled.button `
|
|
37
48
|
all: unset;
|
|
38
49
|
box-sizing: border-box;
|
|
39
50
|
|
|
@@ -42,88 +53,112 @@
|
|
|
42
53
|
cursor: pointer;
|
|
43
54
|
width: 100%;
|
|
44
55
|
|
|
45
|
-
background: ${({$isOpen
|
|
46
|
-
|
|
56
|
+
background: ${({ $isOpen }) => $isOpen
|
|
57
|
+
? `linear-gradient(135deg, ${tokens.darkGray || '#4a4a4a'} 0%, #3a3a3a 100%)`
|
|
58
|
+
: tokens.darkGray || '#4a4a4a'} !important;
|
|
59
|
+
color: ${tokens.white || '#ffffff'} !important;
|
|
47
60
|
|
|
48
61
|
display: flex;
|
|
49
|
-
gap: ${
|
|
62
|
+
gap: ${tokens.spacing100};
|
|
50
63
|
align-items: center;
|
|
51
|
-
padding: ${
|
|
64
|
+
padding: ${tokens.spacing200} ${tokens.spacing200};
|
|
52
65
|
|
|
53
66
|
transition: all 0.25s ease;
|
|
54
67
|
|
|
55
|
-
${({$variant
|
|
56
|
-
|
|
68
|
+
${({ $variant, $isOpen }) => $variant === 'inline' &&
|
|
69
|
+
css `
|
|
70
|
+
border-radius: ${$isOpen
|
|
71
|
+
? `${tokens.borderRadius100} ${tokens.borderRadius100} 0 0`
|
|
72
|
+
: tokens.borderRadius100};
|
|
57
73
|
`}
|
|
58
74
|
|
|
59
75
|
&:hover:not(:disabled) {
|
|
60
76
|
background: linear-gradient(135deg, #555555 0%, #3f3f3f 100%) !important;
|
|
61
77
|
|
|
62
|
-
${
|
|
63
|
-
opacity: ${
|
|
78
|
+
${StateLayer} {
|
|
79
|
+
opacity: ${tokens.stateLayerHover};
|
|
64
80
|
}
|
|
65
81
|
}
|
|
66
82
|
|
|
67
|
-
&:active:not(:disabled) ${
|
|
68
|
-
opacity: ${
|
|
83
|
+
&:active:not(:disabled) ${StateLayer} {
|
|
84
|
+
opacity: ${tokens.stateLayerPress};
|
|
69
85
|
}
|
|
70
86
|
|
|
71
87
|
&:focus-visible {
|
|
72
|
-
outline: 2px solid ${
|
|
88
|
+
outline: 2px solid ${tokens.primary || '#454cbf'};
|
|
73
89
|
outline-offset: 2px;
|
|
74
90
|
}
|
|
75
|
-
|
|
91
|
+
`;
|
|
92
|
+
export const AccordionSectionText = styled.div `
|
|
76
93
|
line-height: 1.4;
|
|
77
94
|
flex-grow: 1;
|
|
78
|
-
padding-right: ${
|
|
95
|
+
padding-right: ${tokens.spacing100};
|
|
79
96
|
position: relative;
|
|
80
97
|
z-index: 1;
|
|
81
98
|
display: flex;
|
|
82
99
|
flex-direction: column;
|
|
83
|
-
gap: ${
|
|
84
|
-
color: ${
|
|
100
|
+
gap: ${tokens.spacing050};
|
|
101
|
+
color: ${tokens.white};
|
|
85
102
|
|
|
86
103
|
/* Better text rendering */
|
|
87
104
|
-webkit-font-smoothing: antialiased;
|
|
88
105
|
-moz-osx-font-smoothing: grayscale;
|
|
89
|
-
|
|
106
|
+
`;
|
|
107
|
+
export const AccordionFade = styled.div `
|
|
90
108
|
z-index: 0;
|
|
91
109
|
position: relative;
|
|
92
110
|
background: linear-gradient(
|
|
93
111
|
to bottom,
|
|
94
112
|
transparent,
|
|
95
|
-
${
|
|
113
|
+
${tokens.surface || '#ffffff'}
|
|
96
114
|
);
|
|
97
115
|
width: 100%;
|
|
98
|
-
height: ${
|
|
99
|
-
margin-top: calc(${
|
|
100
|
-
opacity: ${({$isOpen
|
|
101
|
-
transition: opacity ${({$transitionDuration
|
|
116
|
+
height: ${tokens.spacing200};
|
|
117
|
+
margin-top: calc(${tokens.spacing200} * -1);
|
|
118
|
+
opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};
|
|
119
|
+
transition: opacity ${({ $transitionDuration }) => $transitionDuration} ease;
|
|
102
120
|
pointer-events: none;
|
|
103
|
-
`;
|
|
121
|
+
`;
|
|
122
|
+
const getTransitionTimingFunction = (transitionTimingFunction, isOpen) => {
|
|
123
|
+
if (transitionTimingFunction !== 'ease-in' &&
|
|
124
|
+
transitionTimingFunction !== 'ease-out') {
|
|
125
|
+
return transitionTimingFunction;
|
|
126
|
+
}
|
|
127
|
+
if (isOpen) {
|
|
128
|
+
return 'ease-out';
|
|
129
|
+
}
|
|
130
|
+
return 'ease-in';
|
|
131
|
+
};
|
|
132
|
+
export const AccordionSectionContentWrapper = styled.div `
|
|
104
133
|
z-index: -1;
|
|
105
134
|
position: relative;
|
|
106
135
|
display: grid;
|
|
107
|
-
grid-template-rows: ${({$isOpen
|
|
108
|
-
transition: ${({$transitionDuration
|
|
109
|
-
background: ${({$isOpen
|
|
110
|
-
|
|
111
|
-
|
|
136
|
+
grid-template-rows: ${({ $isOpen }) => ($isOpen ? '1fr' : '0fr')};
|
|
137
|
+
transition: ${({ $transitionDuration, $transitionTimingFunction, $isOpen }) => `grid-template-rows ${$transitionDuration} ${getTransitionTimingFunction($transitionTimingFunction, $isOpen)}`};
|
|
138
|
+
background: ${({ $isOpen }) => $isOpen
|
|
139
|
+
? `linear-gradient(180deg, rgba(74, 74, 74, 0.05) 0%, transparent 100%)`
|
|
140
|
+
: 'transparent'};
|
|
141
|
+
border-left: ${({ $isOpen }) => $isOpen
|
|
142
|
+
? `3px solid ${tokens.primary || '#454cbf'}`
|
|
143
|
+
: '3px solid transparent'};
|
|
144
|
+
margin-left: ${({ $isOpen }) => ($isOpen ? tokens.spacing100 : '0')};
|
|
112
145
|
transition: all 0.3s ease;
|
|
113
|
-
|
|
146
|
+
`;
|
|
147
|
+
export const AccordionSectionContent = styled.div `
|
|
114
148
|
overflow-y: hidden;
|
|
115
|
-
transition: ${({$transitionDuration
|
|
149
|
+
transition: ${({ $transitionDuration }) => `opacity ${$transitionDuration} linear, transform ${$transitionDuration} ease`};
|
|
116
150
|
line-height: 1.6;
|
|
117
|
-
opacity: ${({$isOpen
|
|
118
|
-
transform: ${({$isOpen
|
|
119
|
-
padding-top: ${({$isOpen
|
|
120
|
-
padding-right: ${
|
|
121
|
-
padding-left: ${({$hasLeader
|
|
122
|
-
|
|
151
|
+
opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};
|
|
152
|
+
transform: ${({ $isOpen }) => ($isOpen ? 'translateY(0)' : 'translateY(-8px)')};
|
|
153
|
+
padding-top: ${({ $isOpen }) => ($isOpen ? tokens.spacing150 : '0')};
|
|
154
|
+
padding-right: ${tokens.spacing200};
|
|
155
|
+
padding-left: ${({ $hasLeader }) => $hasLeader ? tokens.spacing600 : tokens.spacing200};
|
|
156
|
+
`;
|
|
157
|
+
export const StyledLeadingTrailing = styled.div `
|
|
123
158
|
flex-shrink: 0;
|
|
124
|
-
min-width: ${
|
|
159
|
+
min-width: ${tokens.spacing300};
|
|
125
160
|
display: flex;
|
|
126
|
-
align-self: ${({alignment
|
|
161
|
+
align-self: ${({ alignment }) => alignment === 'center' ? 'center' : 'flex-start'};
|
|
127
162
|
position: relative;
|
|
128
163
|
z-index: 1;
|
|
129
164
|
|
|
@@ -131,15 +166,17 @@
|
|
|
131
166
|
picture {
|
|
132
167
|
object-fit: contain;
|
|
133
168
|
}
|
|
134
|
-
|
|
135
|
-
|
|
169
|
+
`;
|
|
170
|
+
export const AccordionDivider = styled(Divider) `
|
|
171
|
+
border-color: ${tokens.outline};
|
|
136
172
|
opacity: 0.5;
|
|
137
|
-
margin: ${
|
|
138
|
-
|
|
173
|
+
margin: ${tokens.spacing025} 0;
|
|
174
|
+
`;
|
|
175
|
+
export const RotatingIcon = styled(Icon.SSR) `
|
|
139
176
|
overflow: hidden;
|
|
140
177
|
flex-shrink: 0;
|
|
141
178
|
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
142
|
-
transform: ${({$rotateIcon
|
|
179
|
+
transform: ${({ $rotateIcon }) => `rotate(${$rotateIcon ? -180 : 0}deg)`};
|
|
143
180
|
opacity: 0.9;
|
|
144
181
|
|
|
145
182
|
&:hover {
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export const useCurrentAccordionIndex = (ref) => {
|
|
3
|
+
const [currentIndex, setCurrentIndex] = useState(1);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
let node = ref.current;
|
|
6
|
+
let index = 1;
|
|
7
|
+
while (node && (node = node.previousElementSibling)) {
|
|
8
|
+
index++;
|
|
9
|
+
}
|
|
10
|
+
setCurrentIndex(index);
|
|
11
|
+
}, []);
|
|
12
|
+
return currentIndex;
|
|
13
|
+
};
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/** @deprecated */
|
|
2
|
+
export var AccordionVariant;
|
|
3
|
+
(function (AccordionVariant) {
|
|
4
|
+
/** @deprecated use 'inline' instead */
|
|
5
|
+
AccordionVariant["Inline"] = "inline";
|
|
6
|
+
/** @deprecated use 'full-page' instead */
|
|
7
|
+
AccordionVariant["FullPage"] = "full-page";
|
|
8
|
+
})(AccordionVariant || (AccordionVariant = {}));
|
|
9
|
+
export const LEADING_TRAILING_ALIGNMENTS = ['center', 'top'];
|