@redsift/design-system 11.6.0-muiv5-alpha.2 → 11.6.0-muiv5-alpha.4
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/components/alert/Alert.js +8 -8
- package/components/alert/Alert.js.map +1 -1
- package/components/app-bar/AppBar.js +11 -11
- package/components/app-bar/AppBar.js.map +1 -1
- package/components/app-container/AppContainer.js +16 -16
- package/components/app-container/AppContainer.js.map +1 -1
- package/components/app-container/context.js +2 -2
- package/components/app-container/context.js.map +1 -1
- package/components/app-content/AppContent.js +2 -2
- package/components/app-content/AppContent.js.map +1 -1
- package/components/app-side-panel/AppSidePanel.js +8 -8
- package/components/app-side-panel/AppSidePanel.js.map +1 -1
- package/components/app-side-panel/useAppSidePanel.js +2 -2
- package/components/app-side-panel/useAppSidePanel.js.map +1 -1
- package/components/badge/Badge.js +2 -2
- package/components/badge/Badge.js.map +1 -1
- package/components/breadcrumb-item/BreadcrumbItem.js +2 -2
- package/components/breadcrumb-item/BreadcrumbItem.js.map +1 -1
- package/components/breadcrumbs/Breadcrumbs.js +7 -7
- package/components/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/components/button/Button.js +7 -7
- package/components/button/Button.js.map +1 -1
- package/components/button-group/ButtonGroup.js +4 -4
- package/components/button-group/ButtonGroup.js.map +1 -1
- package/components/button-link/ButtonLink.js +6 -6
- package/components/button-link/ButtonLink.js.map +1 -1
- package/components/card/Card.js +7 -7
- package/components/card/Card.js.map +1 -1
- package/components/card-actions/CardActions.js +2 -2
- package/components/card-actions/CardActions.js.map +1 -1
- package/components/card-body/CardBody.js +2 -2
- package/components/card-body/CardBody.js.map +1 -1
- package/components/card-header/CardHeader.js +7 -7
- package/components/card-header/CardHeader.js.map +1 -1
- package/components/checkbox/Checkbox.js +7 -7
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox-group/CheckboxGroup.js +7 -7
- package/components/checkbox-group/CheckboxGroup.js.map +1 -1
- package/components/checkbox-group/context.js +2 -2
- package/components/checkbox-group/context.js.map +1 -1
- package/components/conditional-wrapper/ConditionalWrapper.js +2 -2
- package/components/conditional-wrapper/ConditionalWrapper.js.map +1 -1
- package/components/detailed-card/DetailedCard.js +20 -20
- package/components/detailed-card/DetailedCard.js.map +1 -1
- package/components/detailed-card/types.d.ts +10 -1
- package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js +3 -3
- package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js.map +1 -1
- package/components/detailed-card-header/DetailedCardHeader.js +4 -4
- package/components/detailed-card-header/DetailedCardHeader.js.map +1 -1
- package/components/detailed-card-section/DetailedCardSection.js +10 -10
- package/components/detailed-card-section/DetailedCardSection.js.map +1 -1
- package/components/detailed-card-section-item/DetailedCardSectionItem.js +12 -12
- package/components/detailed-card-section-item/DetailedCardSectionItem.js.map +1 -1
- package/components/flexbox/Flexbox.js +3 -3
- package/components/flexbox/Flexbox.js.map +1 -1
- package/components/focus-within-group/FocusWithinGroup.js +2 -2
- package/components/focus-within-group/FocusWithinGroup.js.map +1 -1
- package/components/focus-within-group/context.js +2 -2
- package/components/focus-within-group/context.js.map +1 -1
- package/components/grid/Grid.js +3 -3
- package/components/grid/Grid.js.map +1 -1
- package/components/grid-item/GridItem.js +2 -2
- package/components/grid-item/GridItem.js.map +1 -1
- package/components/heading/Heading.js +2 -2
- package/components/heading/Heading.js.map +1 -1
- package/components/icon/Icon.js +5 -5
- package/components/icon/Icon.js.map +1 -1
- package/components/icon-button/IconButton.js +6 -6
- package/components/icon-button/IconButton.js.map +1 -1
- package/components/icon-button-link/IconButtonLink.js +5 -5
- package/components/icon-button-link/IconButtonLink.js.map +1 -1
- package/components/item/Item.js +19 -19
- package/components/item/Item.js.map +1 -1
- package/components/link/Link.js +5 -5
- package/components/link/Link.js.map +1 -1
- package/components/link-button/LinkButton.js +5 -5
- package/components/link-button/LinkButton.js.map +1 -1
- package/components/listbox/ActiveDescendantListbox.d.ts +1 -1
- package/components/listbox/ActiveDescendantListbox.js +3 -3
- package/components/listbox/ActiveDescendantListbox.js.map +1 -1
- package/components/listbox/Listbox.js +8 -8
- package/components/listbox/Listbox.js.map +1 -1
- package/components/listbox/RovingTabindexListbox.d.ts +1 -1
- package/components/listbox/RovingTabindexListbox.js +3 -3
- package/components/listbox/RovingTabindexListbox.js.map +1 -1
- package/components/listbox/context.js +2 -2
- package/components/listbox/context.js.map +1 -1
- package/components/number/Number.js +2 -2
- package/components/number/Number.js.map +1 -1
- package/components/number-field/NumberField.js +16 -16
- package/components/number-field/NumberField.js.map +1 -1
- package/components/pill/Pill.js +10 -10
- package/components/pill/Pill.js.map +1 -1
- package/components/progress-bar/ProgressBar.js +2 -2
- package/components/progress-bar/ProgressBar.js.map +1 -1
- package/components/radio/Radio.js +6 -6
- package/components/radio/Radio.js.map +1 -1
- package/components/radio-group/RadioGroup.js +7 -7
- package/components/radio-group/RadioGroup.js.map +1 -1
- package/components/radio-group/context.js +2 -2
- package/components/radio-group/context.js.map +1 -1
- package/components/shield/Shield.js +5 -5
- package/components/shield/Shield.js.map +1 -1
- package/components/side-navigation-menu/SideNavigationMenu.js +16 -16
- package/components/side-navigation-menu/SideNavigationMenu.js.map +1 -1
- package/components/side-navigation-menu/context.js +2 -2
- package/components/side-navigation-menu/context.js.map +1 -1
- package/components/side-navigation-menu-bar/SideNavigationMenuBar.js +7 -7
- package/components/side-navigation-menu-bar/SideNavigationMenuBar.js.map +1 -1
- package/components/side-navigation-menu-bar/context.js +2 -2
- package/components/side-navigation-menu-bar/context.js.map +1 -1
- package/components/side-navigation-menu-bar/useSideNavigationMenuBar.js +4 -4
- package/components/side-navigation-menu-bar/useSideNavigationMenuBar.js.map +1 -1
- package/components/side-navigation-menu-item/SideNavigationMenuItem.js +9 -9
- package/components/side-navigation-menu-item/SideNavigationMenuItem.js.map +1 -1
- package/components/skeleton/Skeleton.js +4 -4
- package/components/skeleton/Skeleton.js.map +1 -1
- package/components/skeleton-circle/SkeletonCircle.js +4 -4
- package/components/skeleton-circle/SkeletonCircle.js.map +1 -1
- package/components/skeleton-text/SkeletonText.js +4 -4
- package/components/skeleton-text/SkeletonText.js.map +1 -1
- package/components/spinner/Spinner.js +2 -2
- package/components/spinner/Spinner.js.map +1 -1
- package/components/switch/Switch.js +9 -9
- package/components/switch/Switch.js.map +1 -1
- package/components/switch-group/SwitchGroup.js +7 -7
- package/components/switch-group/SwitchGroup.js.map +1 -1
- package/components/switch-group/context.js +2 -2
- package/components/switch-group/context.js.map +1 -1
- package/components/text/Text.js +2 -2
- package/components/text/Text.js.map +1 -1
- package/components/text-area/TextArea.js +11 -11
- package/components/text-area/TextArea.js.map +1 -1
- package/components/text-field/TextField.js +13 -13
- package/components/text-field/TextField.js.map +1 -1
- package/components/theme/context.js +2 -2
- package/components/theme/context.js.map +1 -1
- package/package.json +6 -2
- package/react-aria/react-aria/focus/useFocusable.js +2 -2
- package/react-aria/react-aria/focus/useFocusable.js.map +1 -1
- package/react-aria/react-aria/i18n/context.js +4 -4
- package/react-aria/react-aria/i18n/context.js.map +1 -1
- package/react-aria/react-aria/interactions/context.js +2 -2
- package/react-aria/react-aria/interactions/context.js.map +1 -1
- package/react-aria/react-aria/ssr/SSRProvider.js +13 -13
- package/react-aria/react-aria/ssr/SSRProvider.js.map +1 -1
- package/react-aria/react-aria/utils/mergeProps.js +2 -2
- package/react-aria/react-aria/utils/mergeProps.js.map +1 -1
- package/react-aria/react-aria/utils/useLayoutEffect.js +2 -2
- package/react-aria/react-aria/utils/useLayoutEffect.js.map +1 -1
- package/utils/filterComponents.js +2 -2
- package/utils/filterComponents.js.map +1 -1
- package/utils/isComponent.js +2 -2
- package/utils/isComponent.js.map +1 -1
- package/utils/useId.js +4 -4
- package/utils/useId.js.map +1 -1
- package/_virtual/jsx-runtime.js +0 -4
- package/_virtual/jsx-runtime.js.map +0 -1
- package/_virtual/react-jsx-runtime.development.js +0 -4
- package/_virtual/react-jsx-runtime.development.js.map +0 -1
- package/_virtual/react-jsx-runtime.production.min.js +0 -4
- package/_virtual/react-jsx-runtime.production.min.js.map +0 -1
- package/packages/popovers/src/components/tooltip/Tooltip.js +0 -62
- package/packages/popovers/src/components/tooltip/Tooltip.js.map +0 -1
- package/packages/popovers/src/components/tooltip/context.js +0 -6
- package/packages/popovers/src/components/tooltip/context.js.map +0 -1
- package/packages/popovers/src/components/tooltip/types.js +0 -28
- package/packages/popovers/src/components/tooltip/types.js.map +0 -1
- package/packages/popovers/src/components/tooltip/useTooltip.js +0 -78
- package/packages/popovers/src/components/tooltip/useTooltip.js.map +0 -1
- package/packages/popovers/src/components/tooltip/useTooltipContext.js +0 -13
- package/packages/popovers/src/components/tooltip/useTooltipContext.js.map +0 -1
- package/packages/popovers/src/components/tooltip-content/TooltipContent.js +0 -80
- package/packages/popovers/src/components/tooltip-content/TooltipContent.js.map +0 -1
- package/packages/popovers/src/components/tooltip-content/styles.js +0 -128
- package/packages/popovers/src/components/tooltip-content/styles.js.map +0 -1
- package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js +0 -47
- package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from '../../react-aria/react-aria/focus';\nimport { mdiCheckboxBlankOutline, mdiMinusBox, mdiCheckboxMarked } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { CheckboxGroupContext } from '../checkbox-group/context';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { CheckboxProps } from './types';\nimport { StyledCheckbox } from './styles';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'Checkbox';\nconst CLASSNAME = 'redsift-checkbox';\n\n/**\n * The Checkbox component.\n * Works both inside a CheckboxGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Checkbox: Comp<CheckboxProps, HTMLLabelElement> = forwardRef((props, ref) => {\n const groupState = useContext(CheckboxGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored = true,\n isDisabled,\n isIndeterminate,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n theme: propsTheme,\n value,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState(\n Boolean(propsIsSelected ?? defaultSelected ?? groupState?.value.includes(value as string))\n );\n const isControlled = propsIsSelected !== null && propsIsSelected !== undefined;\n\n useEffect(() => {\n setSelected(Boolean(propsIsSelected ?? defaultSelected));\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value.includes(value as string));\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children], 'Checkbox');\n\n if (groupState) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Checkbox> element within a <CheckboxGroup> requires a `value` property unless the <Checkbox> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n if (!groupState.value.includes(value as string)) {\n groupState.addValue(value as string);\n } else {\n groupState.removeValue(value as string);\n }\n }\n\n if (isControlled) {\n onChange?.(!propsIsSelected, value, name, event, groupState!);\n } else {\n setSelected(!isSelected);\n onChange?.(!isSelected, value, name, event, groupState!);\n }\n },\n [onChange, groupState, isSelected, propsIsSelected]\n );\n\n return (\n <StyledCheckbox\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !(isSelected || (isControlled && propsIsSelected)))}\n $isRequired={isRequired}\n $isSelected={isSelected || (isControlled && propsIsSelected)}\n $theme={theme}\n className={classNames(Checkbox.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n {isSelected || (isControlled && propsIsSelected) ? (\n <Icon icon={mdiCheckboxMarked} />\n ) : isIndeterminate ? (\n <Icon icon={mdiMinusBox} />\n ) : (\n <Icon icon={mdiCheckboxBlankOutline} />\n )}\n {children ? <span className=\"label\">{children}</span> : null}\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={isSelected || (isControlled && propsIsSelected) ? 'true' : isIndeterminate ? 'mixed' : 'false'}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !(isSelected || (isControlled && propsIsSelected)))}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n autoFocus={autoFocus}\n checked={isSelected || (isControlled && propsIsSelected) ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"checkbox\"\n value={value}\n />\n </StyledCheckbox>\n );\n});\nCheckbox.className = CLASSNAME;\nCheckbox.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","Checkbox","forwardRef","props","ref","_isDisabled","_isReadOnly","_ref","groupState","useContext","CheckboxGroupContext","ariaLabel","ariaLabelledby","autoFocus","children","className","defaultSelected","inputProps","inputRef","isColored","isDisabled","isIndeterminate","isInvalid","isReadOnly","isRequired","isSelected","propsIsSelected","name","onChange","theme","propsTheme","value","forwardedProps","_objectWithoutProperties","_excluded","useTheme","isFocusVisible","focusProps","useFocusRing","setSelected","useState","Boolean","includes","isControlled","undefined","useEffect","warnIfNoAccessibleLabelFound","console","warn","handleChange","useCallback","event","addValue","removeValue","React","createElement","StyledCheckbox","_extends","$isColored","$isDisabled","$isFocusVisible","$isInvalid","$isRequired","$isSelected","$theme","classNames","Icon","icon","mdiCheckboxMarked","mdiMinusBox","mdiCheckboxBlankOutline","checked","disabled","type","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from '../../react-aria/react-aria/focus';\nimport { mdiCheckboxBlankOutline, mdiMinusBox, mdiCheckboxMarked } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { CheckboxGroupContext } from '../checkbox-group/context';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { CheckboxProps } from './types';\nimport { StyledCheckbox } from './styles';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'Checkbox';\nconst CLASSNAME = 'redsift-checkbox';\n\n/**\n * The Checkbox component.\n * Works both inside a CheckboxGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Checkbox: Comp<CheckboxProps, HTMLLabelElement> = forwardRef((props, ref) => {\n const groupState = useContext(CheckboxGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored = true,\n isDisabled,\n isIndeterminate,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n theme: propsTheme,\n value,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState(\n Boolean(propsIsSelected ?? defaultSelected ?? groupState?.value.includes(value as string))\n );\n const isControlled = propsIsSelected !== null && propsIsSelected !== undefined;\n\n useEffect(() => {\n setSelected(Boolean(propsIsSelected ?? defaultSelected));\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value.includes(value as string));\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children], 'Checkbox');\n\n if (groupState) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Checkbox> element within a <CheckboxGroup> requires a `value` property unless the <Checkbox> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n if (!groupState.value.includes(value as string)) {\n groupState.addValue(value as string);\n } else {\n groupState.removeValue(value as string);\n }\n }\n\n if (isControlled) {\n onChange?.(!propsIsSelected, value, name, event, groupState!);\n } else {\n setSelected(!isSelected);\n onChange?.(!isSelected, value, name, event, groupState!);\n }\n },\n [onChange, groupState, isSelected, propsIsSelected]\n );\n\n return (\n <StyledCheckbox\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !(isSelected || (isControlled && propsIsSelected)))}\n $isRequired={isRequired}\n $isSelected={isSelected || (isControlled && propsIsSelected)}\n $theme={theme}\n className={classNames(Checkbox.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n {isSelected || (isControlled && propsIsSelected) ? (\n <Icon icon={mdiCheckboxMarked} />\n ) : isIndeterminate ? (\n <Icon icon={mdiMinusBox} />\n ) : (\n <Icon icon={mdiCheckboxBlankOutline} />\n )}\n {children ? <span className=\"label\">{children}</span> : null}\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={isSelected || (isControlled && propsIsSelected) ? 'true' : isIndeterminate ? 'mixed' : 'false'}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !(isSelected || (isControlled && propsIsSelected)))}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n autoFocus={autoFocus}\n checked={isSelected || (isControlled && propsIsSelected) ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"checkbox\"\n value={value}\n />\n </StyledCheckbox>\n );\n});\nCheckbox.className = CLASSNAME;\nCheckbox.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","Checkbox","forwardRef","props","ref","_isDisabled","_isReadOnly","_ref","groupState","useContext","CheckboxGroupContext","ariaLabel","ariaLabelledby","autoFocus","children","className","defaultSelected","inputProps","inputRef","isColored","isDisabled","isIndeterminate","isInvalid","isReadOnly","isRequired","isSelected","propsIsSelected","name","onChange","theme","propsTheme","value","forwardedProps","_objectWithoutProperties","_excluded","useTheme","isFocusVisible","focusProps","useFocusRing","setSelected","useState","Boolean","includes","isControlled","undefined","useEffect","warnIfNoAccessibleLabelFound","console","warn","handleChange","useCallback","event","addValue","removeValue","React","createElement","StyledCheckbox","_extends","$isColored","$isDisabled","$isFocusVisible","$isInvalid","$isRequired","$isSelected","$theme","classNames","Icon","icon","mdiCheckboxMarked","mdiMinusBox","mdiCheckboxBlankOutline","checked","disabled","type","displayName"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import
|
|
2
|
+
import React, { forwardRef, useState, useEffect } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { CheckboxGroupOrientation } from './types.js';
|
|
5
5
|
import { CheckboxGroupContext } from './context.js';
|
|
@@ -68,11 +68,11 @@ const CheckboxGroup = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
|
-
return /*#__PURE__*/
|
|
71
|
+
return /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
72
72
|
value: {
|
|
73
73
|
theme
|
|
74
74
|
}
|
|
75
|
-
}, /*#__PURE__*/
|
|
75
|
+
}, /*#__PURE__*/React.createElement(StyledCheckboxGroup, _extends({
|
|
76
76
|
color: color
|
|
77
77
|
}, forwardedProps, {
|
|
78
78
|
$isDisabled: isDisabled,
|
|
@@ -84,13 +84,13 @@ const CheckboxGroup = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
84
84
|
className: classNames(CheckboxGroup.className, className),
|
|
85
85
|
ref: ref,
|
|
86
86
|
role: "group"
|
|
87
|
-
}), /*#__PURE__*/
|
|
87
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
88
88
|
className: `${CheckboxGroup.className}-label`
|
|
89
|
-
}, label, isRequired ? ' *' : null), /*#__PURE__*/
|
|
89
|
+
}, label, isRequired ? ' *' : null), /*#__PURE__*/React.createElement("div", {
|
|
90
90
|
className: `${CheckboxGroup.className}-boxes`
|
|
91
|
-
}, /*#__PURE__*/
|
|
91
|
+
}, /*#__PURE__*/React.createElement(CheckboxGroupContext.Provider, {
|
|
92
92
|
value: state
|
|
93
|
-
}, children)), /*#__PURE__*/
|
|
93
|
+
}, children)), /*#__PURE__*/React.createElement("span", {
|
|
94
94
|
className: `${CheckboxGroup.className}-description`
|
|
95
95
|
}, description)));
|
|
96
96
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxGroup.js","sources":["../../../src/components/checkbox-group/CheckboxGroup.tsx"],"sourcesContent":["import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Comp, ColorPalette } from '../../types';\nimport { CheckboxGroupOrientation, CheckboxGroupProps } from './types';\nimport { CheckboxGroupContext } from './context';\nimport { StyledCheckboxGroup } from './styles';\nimport { ThemeProvider, useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'CheckboxGroup';\nconst CLASSNAME = 'redsift-checkbox-group';\n\n/**\n * The CheckboxGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const CheckboxGroup: Comp<CheckboxGroupProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n color = ColorPalette.primary,\n defaultValues,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation = CheckboxGroupOrientation.vertical,\n theme: propsTheme,\n value,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const [selectedValues, setValue] = useState<string[]>(value || defaultValues || []);\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValues,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n setValue(values: string[]) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n setValue(values);\n },\n addValue(value: string) {\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n if (onChange) {\n onChange(selectedValues.concat(value));\n }\n }\n },\n removeValue(value: string) {\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter((existingValue) => existingValue !== value));\n if (onChange) {\n onChange(selectedValues.filter((existingValue) => existingValue !== value));\n }\n }\n },\n };\n\n return (\n <ThemeProvider value={{ theme }}>\n <StyledCheckboxGroup\n color={color}\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValues.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n $theme={theme}\n aria-disabled={isDisabled}\n className={classNames(CheckboxGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"group\"\n >\n <span className={`${CheckboxGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${CheckboxGroup.className}-boxes`}>\n <CheckboxGroupContext.Provider value={state}>{children}</CheckboxGroupContext.Provider>\n </div>\n <span className={`${CheckboxGroup.className}-description`}>{description}</span>\n </StyledCheckboxGroup>\n </ThemeProvider>\n );\n});\nCheckboxGroup.className = CLASSNAME;\nCheckboxGroup.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","CheckboxGroup","forwardRef","props","ref","children","className","color","ColorPalette","primary","defaultValues","description","isDisabled","isInvalid","isReadOnly","isRequired","label","onChange","orientation","CheckboxGroupOrientation","vertical","theme","propsTheme","value","forwardedProps","_objectWithoutProperties","_excluded","useTheme","selectedValues","setValue","useState","useEffect","state","values","addValue","includes","concat","removeValue","filter","existingValue","React","createElement","ThemeProvider","StyledCheckboxGroup","_extends","$isDisabled","$isInvalid","length","$isReadOnly","$orientation","$theme","classNames","role","CheckboxGroupContext","Provider","displayName"],"mappings":";;;;;;;;;;;AAQA,MAAMA,cAAc,GAAG,eAAe,CAAA;AACtC,MAAMC,SAAS,GAAG,wBAAwB,CAAA;;AAE1C;AACA;AACA;AACA;AACO,MAAMC,aAAuD,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAChG,MAAM;MACJC,QAAQ;MACRC,SAAS;MACTC,KAAK,GAAGC,YAAY,CAACC,OAAO;MAC5BC,aAAa;MACbC,WAAW;MACXC,UAAU;MACVC,SAAS;MACTC,UAAU;MACVC,UAAU;MACVC,KAAK;MACLC,QAAQ;MACRC,WAAW,GAAGC,wBAAwB,CAACC,QAAQ;AAC/CC,MAAAA,KAAK,EAAEC,UAAU;AACjBC,MAAAA,KAAAA;AAEF,KAAC,GAAGpB,KAAK;AADJqB,IAAAA,cAAc,GAAAC,wBAAA,CACftB,KAAK,EAAAuB,SAAA,CAAA,CAAA;AAET,EAAA,MAAML,KAAK,GAAGM,QAAQ,CAACL,UAAU,CAAC,CAAA;AAElC,EAAA,MAAM,CAACM,cAAc,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAWP,KAAK,IAAIb,aAAa,IAAI,EAAE,CAAC,CAAA;AACnFqB,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIR,KAAK,EAAE;AACTS,MAAAA,KAAK,CAACH,QAAQ,CAACN,KAAK,CAAC,CAAA;AACvB,KAAA;AACF,GAAC,EAAE,CAACA,KAAK,CAAC,CAAC,CAAA;AAEX,EAAA,MAAMS,KAAK,GAAG;AACZT,IAAAA,KAAK,EAAEK,cAAc;IACrBhB,UAAU,EAAEA,UAAU,IAAI,KAAK;IAC/BE,UAAU,EAAEA,UAAU,IAAI,KAAK;IAC/Be,QAAQA,CAACI,MAAgB,EAAE;MACzB,IAAInB,UAAU,IAAIF,UAAU,EAAE;AAC5B,QAAA,OAAA;AACF,OAAA;MAEAiB,QAAQ,CAACI,MAAM,CAAC,CAAA;KACjB;IACDC,QAAQA,CAACX,KAAa,EAAE;AACtB,MAAA,IAAI,CAACK,cAAc,CAACO,QAAQ,CAACZ,KAAK,CAAC,EAAE;AACnCM,QAAAA,QAAQ,CAACD,cAAc,CAACQ,MAAM,CAACb,KAAK,CAAC,CAAC,CAAA;AACtC,QAAA,IAAIN,QAAQ,EAAE;AACZA,UAAAA,QAAQ,CAACW,cAAc,CAACQ,MAAM,CAACb,KAAK,CAAC,CAAC,CAAA;AACxC,SAAA;AACF,OAAA;KACD;IACDc,WAAWA,CAACd,KAAa,EAAE;AACzB,MAAA,IAAIK,cAAc,CAACO,QAAQ,CAACZ,KAAK,CAAC,EAAE;QAClCM,QAAQ,CAACD,cAAc,CAACU,MAAM,CAAEC,aAAa,IAAKA,aAAa,KAAKhB,KAAK,CAAC,CAAC,CAAA;AAC3E,QAAA,IAAIN,QAAQ,EAAE;UACZA,QAAQ,CAACW,cAAc,CAACU,MAAM,CAAEC,aAAa,IAAKA,aAAa,KAAKhB,KAAK,CAAC,CAAC,CAAA;AAC7E,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AAED,EAAA,oBACEiB,
|
|
1
|
+
{"version":3,"file":"CheckboxGroup.js","sources":["../../../src/components/checkbox-group/CheckboxGroup.tsx"],"sourcesContent":["import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Comp, ColorPalette } from '../../types';\nimport { CheckboxGroupOrientation, CheckboxGroupProps } from './types';\nimport { CheckboxGroupContext } from './context';\nimport { StyledCheckboxGroup } from './styles';\nimport { ThemeProvider, useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'CheckboxGroup';\nconst CLASSNAME = 'redsift-checkbox-group';\n\n/**\n * The CheckboxGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const CheckboxGroup: Comp<CheckboxGroupProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n color = ColorPalette.primary,\n defaultValues,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation = CheckboxGroupOrientation.vertical,\n theme: propsTheme,\n value,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const [selectedValues, setValue] = useState<string[]>(value || defaultValues || []);\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValues,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n setValue(values: string[]) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n setValue(values);\n },\n addValue(value: string) {\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n if (onChange) {\n onChange(selectedValues.concat(value));\n }\n }\n },\n removeValue(value: string) {\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter((existingValue) => existingValue !== value));\n if (onChange) {\n onChange(selectedValues.filter((existingValue) => existingValue !== value));\n }\n }\n },\n };\n\n return (\n <ThemeProvider value={{ theme }}>\n <StyledCheckboxGroup\n color={color}\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValues.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n $theme={theme}\n aria-disabled={isDisabled}\n className={classNames(CheckboxGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"group\"\n >\n <span className={`${CheckboxGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${CheckboxGroup.className}-boxes`}>\n <CheckboxGroupContext.Provider value={state}>{children}</CheckboxGroupContext.Provider>\n </div>\n <span className={`${CheckboxGroup.className}-description`}>{description}</span>\n </StyledCheckboxGroup>\n </ThemeProvider>\n );\n});\nCheckboxGroup.className = CLASSNAME;\nCheckboxGroup.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","CheckboxGroup","forwardRef","props","ref","children","className","color","ColorPalette","primary","defaultValues","description","isDisabled","isInvalid","isReadOnly","isRequired","label","onChange","orientation","CheckboxGroupOrientation","vertical","theme","propsTheme","value","forwardedProps","_objectWithoutProperties","_excluded","useTheme","selectedValues","setValue","useState","useEffect","state","values","addValue","includes","concat","removeValue","filter","existingValue","React","createElement","ThemeProvider","StyledCheckboxGroup","_extends","$isDisabled","$isInvalid","length","$isReadOnly","$orientation","$theme","classNames","role","CheckboxGroupContext","Provider","displayName"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
|
|
3
|
-
const CheckboxGroupContext = /*#__PURE__*/
|
|
3
|
+
const CheckboxGroupContext = /*#__PURE__*/React.createContext(null);
|
|
4
4
|
|
|
5
5
|
export { CheckboxGroupContext };
|
|
6
6
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["../../../src/components/checkbox-group/context.ts"],"sourcesContent":["import React from 'react';\nimport { CheckboxGroupState } from './types';\n\nexport const CheckboxGroupContext =\n React.createContext<CheckboxGroupState | null>(null);\n"],"names":["CheckboxGroupContext","React","createContext"],"mappings":";;AAGO,MAAMA,oBAAoB,gBAC/BC,
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/components/checkbox-group/context.ts"],"sourcesContent":["import React from 'react';\nimport { CheckboxGroupState } from './types';\n\nexport const CheckboxGroupContext =\n React.createContext<CheckboxGroupState | null>(null);\n"],"names":["CheckboxGroupContext","React","createContext"],"mappings":";;AAGO,MAAMA,oBAAoB,gBAC/BC,KAAK,CAACC,aAAa,CAA4B,IAAI;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
|
|
3
3
|
const ConditionalWrapper = _ref => {
|
|
4
4
|
let {
|
|
@@ -6,7 +6,7 @@ const ConditionalWrapper = _ref => {
|
|
|
6
6
|
condition,
|
|
7
7
|
wrapper
|
|
8
8
|
} = _ref;
|
|
9
|
-
return condition ? wrapper(children) : /*#__PURE__*/
|
|
9
|
+
return condition ? wrapper(children) : /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export { ConditionalWrapper };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalWrapper.js","sources":["../../../src/components/conditional-wrapper/ConditionalWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { ConditionalWrapperProps } from './types';\n\nexport const ConditionalWrapper: React.FC<ConditionalWrapperProps> = ({\n children,\n condition,\n wrapper,\n}) => (condition ? wrapper(children) : <>{children}</>);\n"],"names":["ConditionalWrapper","_ref","children","condition","wrapper","React","createElement","Fragment"],"mappings":";;AAGO,MAAMA,kBAAqD,GAAGC,IAAA,IAAA;EAAA,IAAC;IACpEC,QAAQ;IACRC,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,GAAAH,IAAA,CAAA;AAAA,EAAA,OAAME,SAAS,GAAGC,OAAO,CAACF,QAAQ,CAAC,gBAAGG,
|
|
1
|
+
{"version":3,"file":"ConditionalWrapper.js","sources":["../../../src/components/conditional-wrapper/ConditionalWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { ConditionalWrapperProps } from './types';\n\nexport const ConditionalWrapper: React.FC<ConditionalWrapperProps> = ({\n children,\n condition,\n wrapper,\n}) => (condition ? wrapper(children) : <>{children}</>);\n"],"names":["ConditionalWrapper","_ref","children","condition","wrapper","React","createElement","Fragment"],"mappings":";;AAGO,MAAMA,kBAAqD,GAAGC,IAAA,IAAA;EAAA,IAAC;IACpEC,QAAQ;IACRC,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,GAAAH,IAAA,CAAA;AAAA,EAAA,OAAME,SAAS,GAAGC,OAAO,CAACF,QAAQ,CAAC,gBAAGG,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EAAGL,QAAW,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import
|
|
2
|
+
import React, { forwardRef, useState, useEffect, useCallback } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import intlMessages from './intl/index.js';
|
|
5
5
|
import { mdiPageLast, mdiKeyboardCaps } from '@redsift/icons';
|
|
@@ -8,10 +8,9 @@ import { DetailedCardHeader } from '../detailed-card-header/DetailedCardHeader.j
|
|
|
8
8
|
import { DetailedCardSection } from '../detailed-card-section/DetailedCardSection.js';
|
|
9
9
|
import { DetailedCardSectionItem } from '../detailed-card-section-item/DetailedCardSectionItem.js';
|
|
10
10
|
import { useMessageFormatter } from '../../react-aria/react-aria/i18n/useMessageFormatter.js';
|
|
11
|
-
import {
|
|
11
|
+
import { partitionComponents } from '../../utils/partitionComponents.js';
|
|
12
12
|
import { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js';
|
|
13
13
|
import { useTheme } from '../theme/useTheme.js';
|
|
14
|
-
import { partitionComponents } from '../../utils/partitionComponents.js';
|
|
15
14
|
import { isComponent } from '../../utils/isComponent.js';
|
|
16
15
|
import { ThemeProvider } from '../theme/context.js';
|
|
17
16
|
import { Skeleton } from '../skeleton/Skeleton.js';
|
|
@@ -20,16 +19,16 @@ import { Shield } from '../shield/Shield.js';
|
|
|
20
19
|
import { Icon } from '../icon/Icon.js';
|
|
21
20
|
import { IconButton } from '../icon-button/IconButton.js';
|
|
22
21
|
|
|
23
|
-
const _excluded = ["areAllCollapsed", "bannerVariant", "children", "className", "color", "defaultAllCollapsed", "icon", "isCollapsible", "isLoading", "onCollapseAll", "shield", "theme", "width"];
|
|
22
|
+
const _excluded = ["areAllCollapsed", "bannerVariant", "children", "className", "color", "defaultAllCollapsed", "icon", "isCollapsible", "isLoading", "onCollapseAll", "shield", "theme", "width", "Tooltip"];
|
|
24
23
|
const COMPONENT_NAME = 'DetailedCard';
|
|
25
24
|
const CLASSNAME = 'redsift-detailed-card';
|
|
26
25
|
const hasMultipleCollapsibleChildren = children => {
|
|
27
26
|
const collapsibleChildren = [];
|
|
28
|
-
const childrenArray =
|
|
27
|
+
const childrenArray = React.Children.toArray(children);
|
|
29
28
|
for (const child of childrenArray) {
|
|
30
29
|
if (isComponent(DetailedCardSection)(child)) {
|
|
31
30
|
let hasCollapsibleItems = Boolean(child.isCollapsible);
|
|
32
|
-
|
|
31
|
+
React.Children.forEach(child.props.children, sectionChild => {
|
|
33
32
|
if (isComponent(DetailedCardCollapsibleSectionItems)(sectionChild)) {
|
|
34
33
|
hasCollapsibleItems = true;
|
|
35
34
|
}
|
|
@@ -59,7 +58,8 @@ const BaseDetailedCard = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
59
58
|
onCollapseAll,
|
|
60
59
|
shield,
|
|
61
60
|
theme: propsTheme,
|
|
62
|
-
width = '400px'
|
|
61
|
+
width = '400px',
|
|
62
|
+
Tooltip
|
|
63
63
|
} = props,
|
|
64
64
|
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
65
65
|
const theme = useTheme(propsTheme);
|
|
@@ -83,31 +83,31 @@ const BaseDetailedCard = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
}, [onCollapseAll]);
|
|
86
|
-
const [[header], content] = partitionComponents(
|
|
87
|
-
return /*#__PURE__*/
|
|
86
|
+
const [[header], content] = partitionComponents(React.Children.toArray(children), [isComponent('DetailedCardHeader')]);
|
|
87
|
+
return /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
88
88
|
value: {
|
|
89
89
|
theme
|
|
90
90
|
}
|
|
91
|
-
}, /*#__PURE__*/
|
|
91
|
+
}, /*#__PURE__*/React.createElement(StyledDetailedCard, _extends({
|
|
92
92
|
width: width
|
|
93
93
|
}, forwardedProps, {
|
|
94
94
|
className: classNames(BaseDetailedCard.className, className),
|
|
95
95
|
ref: ref,
|
|
96
96
|
$color: color,
|
|
97
97
|
$theme: theme
|
|
98
|
-
}), color ? isLoading ? /*#__PURE__*/
|
|
98
|
+
}), color ? isLoading ? /*#__PURE__*/React.createElement(Skeleton, {
|
|
99
99
|
theme: theme,
|
|
100
100
|
height: bannerVariant === 'condensed' ? '8px' : '80px',
|
|
101
101
|
width: "calc(100% + 32px)",
|
|
102
102
|
margin: "-16px -16px 16px -16px"
|
|
103
|
-
}) : /*#__PURE__*/
|
|
103
|
+
}) : /*#__PURE__*/React.createElement(Flexbox, {
|
|
104
104
|
className: `${BaseDetailedCard.className}__banner`,
|
|
105
105
|
alignItems: "center",
|
|
106
106
|
height: bannerVariant === 'condensed' ? '8px' : '80px',
|
|
107
107
|
justifyContent: "center",
|
|
108
108
|
margin: "-16px -16px 16px -16px",
|
|
109
109
|
width: "calc(100% + 32px)"
|
|
110
|
-
}, bannerVariant === 'condensed' ? null : shield ? /*#__PURE__*/
|
|
110
|
+
}, bannerVariant === 'condensed' ? null : shield ? /*#__PURE__*/React.createElement(Shield, {
|
|
111
111
|
variant: shield,
|
|
112
112
|
isOutlined: true,
|
|
113
113
|
isReversed: true,
|
|
@@ -119,16 +119,16 @@ const BaseDetailedCard = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
119
119
|
width: '40px',
|
|
120
120
|
height: '40px'
|
|
121
121
|
}
|
|
122
|
-
}) : icon ? /*#__PURE__*/
|
|
122
|
+
}) : icon ? /*#__PURE__*/React.createElement(Icon, {
|
|
123
123
|
icon: icon,
|
|
124
124
|
color: "white",
|
|
125
125
|
size: "xlarge"
|
|
126
|
-
}) : null) : null, header && isComponent('DetailedCardHeader')(header) ? /*#__PURE__*/
|
|
126
|
+
}) : null) : null, header && isComponent('DetailedCardHeader')(header) ? /*#__PURE__*/React.createElement("div", {
|
|
127
127
|
className: `${BaseDetailedCard.className}__header`
|
|
128
|
-
}, header) : null, isCollapsible ? /*#__PURE__*/
|
|
128
|
+
}, header) : null, isCollapsible ? /*#__PURE__*/React.createElement(Flexbox, {
|
|
129
129
|
justifyContent: "flex-end",
|
|
130
130
|
className: `${BaseDetailedCard.className}__collapse-buttons`
|
|
131
|
-
}, /*#__PURE__*/
|
|
131
|
+
}, /*#__PURE__*/React.createElement(Tooltip, null, /*#__PURE__*/React.createElement(Tooltip.Trigger, null, /*#__PURE__*/React.createElement(IconButton, {
|
|
132
132
|
"aria-label": format('collapse-all'),
|
|
133
133
|
"aria-describedby": undefined,
|
|
134
134
|
icon: mdiPageLast,
|
|
@@ -137,7 +137,7 @@ const BaseDetailedCard = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
137
137
|
transform: 'rotate(-90deg)'
|
|
138
138
|
},
|
|
139
139
|
color: "grey"
|
|
140
|
-
})), /*#__PURE__*/
|
|
140
|
+
})), /*#__PURE__*/React.createElement(Tooltip.Content, null, format('collapse-all'))), /*#__PURE__*/React.createElement(Tooltip, null, /*#__PURE__*/React.createElement(Tooltip.Trigger, null, /*#__PURE__*/React.createElement(IconButton, {
|
|
141
141
|
"aria-label": format('expand-all'),
|
|
142
142
|
"aria-describedby": undefined,
|
|
143
143
|
icon: mdiKeyboardCaps,
|
|
@@ -146,9 +146,9 @@ const BaseDetailedCard = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
146
146
|
transform: 'rotate(180deg)'
|
|
147
147
|
},
|
|
148
148
|
color: "grey"
|
|
149
|
-
})), /*#__PURE__*/
|
|
149
|
+
})), /*#__PURE__*/React.createElement(Tooltip.Content, null, format('expand-all')))) : null, React.Children.map(content, child => {
|
|
150
150
|
if (isComponent(DetailedCardSection)(child)) {
|
|
151
|
-
return /*#__PURE__*/
|
|
151
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
152
152
|
theme,
|
|
153
153
|
isCollapsed: allCollapsed.state,
|
|
154
154
|
key: Math.random()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailedCard.js","sources":["../../../src/components/detailed-card/DetailedCard.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement, ReactNode, RefObject, useCallback, useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useMessageFormatter } from '../../react-aria/react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiKeyboardCaps, mdiPageLast } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { Flexbox } from '../flexbox';\nimport { IconButton } from '../icon-button';\nimport { Shield } from '../shield';\nimport { DetailedCardSection, DetailedCardSectionProps } from '../detailed-card-section';\nimport { StyledDetailedCard } from './styles';\nimport { DetailedCardProps } from './types';\nimport { partitionComponents, isComponent } from '../../utils';\nimport { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items';\nimport { DetailedCardHeader } from '../detailed-card-header';\nimport { DetailedCardSectionItem } from '../detailed-card-section-item';\nimport { Tooltip } from '@redsift/popovers';\nimport { Skeleton } from '../skeleton';\nimport { ThemeProvider, useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'DetailedCard';\nconst CLASSNAME = 'redsift-detailed-card';\n\nconst hasMultipleCollapsibleChildren = (children: ReactNode): boolean => {\n const collapsibleChildren: ReactNode[] = [];\n\n const childrenArray = React.Children.toArray(children);\n for (const child of childrenArray) {\n if (isComponent(DetailedCardSection)(child)) {\n let hasCollapsibleItems = Boolean((child as DetailedCardSectionProps).isCollapsible);\n React.Children.forEach(child.props.children, (sectionChild) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(sectionChild)) {\n hasCollapsibleItems = true;\n }\n });\n\n if (hasCollapsibleItems) {\n collapsibleChildren.push(child);\n }\n }\n }\n\n return collapsibleChildren.length > 1;\n};\n\n/**\n * The DetailedCard component.\n */\nconst BaseDetailedCard: Comp<DetailedCardProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n areAllCollapsed: propsAreAllCollapsed,\n bannerVariant,\n children,\n className,\n color,\n defaultAllCollapsed,\n icon,\n isCollapsible: propsIsCollapsible = true,\n isLoading,\n onCollapseAll,\n shield,\n theme: propsTheme,\n width = '400px',\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const format = useMessageFormatter(intlMessages);\n\n const isCollapsible = propsIsCollapsible && hasMultipleCollapsibleChildren(children);\n\n const [allCollapsed, setAllCollapsed] = useState({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n\n useEffect(() => {\n setAllCollapsed({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n }, [propsAreAllCollapsed, defaultAllCollapsed]);\n\n const handleCollapse = useCallback(\n (allCollapsed: boolean) => {\n if (onCollapseAll) {\n onCollapseAll(allCollapsed);\n }\n if (propsAreAllCollapsed === undefined || propsAreAllCollapsed === null) {\n setAllCollapsed({\n state: allCollapsed,\n });\n }\n },\n [onCollapseAll]\n );\n\n const [[header], content] = partitionComponents(React.Children.toArray(children), [\n isComponent('DetailedCardHeader'),\n ]);\n\n return (\n <ThemeProvider value={{ theme }}>\n <StyledDetailedCard\n width={width}\n {...forwardedProps}\n className={classNames(BaseDetailedCard.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $theme={theme}\n >\n {color ? (\n isLoading ? (\n <Skeleton\n theme={theme}\n height={bannerVariant === 'condensed' ? '8px' : '80px'}\n width=\"calc(100% + 32px)\"\n margin=\"-16px -16px 16px -16px\"\n />\n ) : (\n <Flexbox\n className={`${BaseDetailedCard.className}__banner`}\n alignItems=\"center\"\n height={bannerVariant === 'condensed' ? '8px' : '80px'}\n justifyContent=\"center\"\n margin=\"-16px -16px 16px -16px\"\n width=\"calc(100% + 32px)\"\n >\n {bannerVariant === 'condensed' ? null : shield ? (\n <Shield\n variant={shield}\n isOutlined\n isReversed\n svgProps={{ width: '40px', height: '40px' }}\n style={{ width: '40px', height: '40px' }}\n />\n ) : icon ? (\n <Icon icon={icon} color=\"white\" size=\"xlarge\" />\n ) : null}\n </Flexbox>\n )\n ) : null}\n {header && isComponent('DetailedCardHeader')(header) ? (\n <div className={`${BaseDetailedCard.className}__header`}>{header}</div>\n ) : null}\n {isCollapsible ? (\n <Flexbox justifyContent=\"flex-end\" className={`${BaseDetailedCard.className}__collapse-buttons`}>\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={format('collapse-all')}\n aria-describedby={undefined}\n icon={mdiPageLast}\n onClick={() => handleCollapse(true)}\n style={{ transform: 'rotate(-90deg)' }}\n color=\"grey\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{format('collapse-all')}</Tooltip.Content>\n </Tooltip>\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={format('expand-all')}\n aria-describedby={undefined}\n icon={mdiKeyboardCaps}\n onClick={() => handleCollapse(false)}\n style={{ transform: 'rotate(180deg)' }}\n color=\"grey\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{format('expand-all')}</Tooltip.Content>\n </Tooltip>\n </Flexbox>\n ) : null}\n\n {React.Children.map(content, (child) => {\n if (isComponent(DetailedCardSection)(child)) {\n return React.cloneElement(child as ReactElement, {\n theme,\n isCollapsed: allCollapsed.state,\n key: Math.random(),\n });\n }\n return child;\n })}\n </StyledDetailedCard>\n </ThemeProvider>\n );\n});\nBaseDetailedCard.className = CLASSNAME;\nBaseDetailedCard.displayName = COMPONENT_NAME;\n\nexport const DetailedCard = Object.assign(BaseDetailedCard, {\n Header: DetailedCardHeader,\n Section: DetailedCardSection,\n CollapsibleSectionItems: DetailedCardCollapsibleSectionItems,\n SectionItem: DetailedCardSectionItem,\n});\n"],"names":["COMPONENT_NAME","CLASSNAME","hasMultipleCollapsibleChildren","children","collapsibleChildren","childrenArray","React","Children","toArray","child","isComponent","DetailedCardSection","hasCollapsibleItems","Boolean","isCollapsible","forEach","props","sectionChild","DetailedCardCollapsibleSectionItems","push","length","BaseDetailedCard","forwardRef","ref","areAllCollapsed","propsAreAllCollapsed","bannerVariant","className","color","defaultAllCollapsed","icon","propsIsCollapsible","isLoading","onCollapseAll","shield","theme","propsTheme","width","forwardedProps","_objectWithoutProperties","_excluded","useTheme","format","useMessageFormatter","intlMessages","allCollapsed","setAllCollapsed","useState","state","useEffect","handleCollapse","useCallback","undefined","header","content","partitionComponents","createElement","ThemeProvider","value","StyledDetailedCard","_extends","classNames","$color","$theme","Skeleton","height","margin","Flexbox","alignItems","justifyContent","Shield","variant","isOutlined","isReversed","svgProps","style","Icon","size","Tooltip","Trigger","IconButton","mdiPageLast","onClick","transform","Content","mdiKeyboardCaps","map","cloneElement","isCollapsed","key","Math","random","displayName","DetailedCard","Object","assign","Header","DetailedCardHeader","Section","CollapsibleSectionItems","SectionItem","DetailedCardSectionItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAMA,cAAc,GAAG,cAAc,CAAA;AACrC,MAAMC,SAAS,GAAG,uBAAuB,CAAA;AAEzC,MAAMC,8BAA8B,GAAIC,QAAmB,IAAc;EACvE,MAAMC,mBAAgC,GAAG,EAAE,CAAA;EAE3C,MAAMC,aAAa,GAAGC,cAAK,CAACC,QAAQ,CAACC,OAAO,CAACL,QAAQ,CAAC,CAAA;AACtD,EAAA,KAAK,MAAMM,KAAK,IAAIJ,aAAa,EAAE;AACjC,IAAA,IAAIK,WAAW,CAACC,mBAAmB,CAAC,CAACF,KAAK,CAAC,EAAE;AAC3C,MAAA,IAAIG,mBAAmB,GAAGC,OAAO,CAAEJ,KAAK,CAA8BK,aAAa,CAAC,CAAA;AACpFR,MAAAA,cAAK,CAACC,QAAQ,CAACQ,OAAO,CAACN,KAAK,CAACO,KAAK,CAACb,QAAQ,EAAGc,YAAY,IAAK;AAC7D,QAAA,IAAIP,WAAW,CAACQ,mCAAmC,CAAC,CAACD,YAAY,CAAC,EAAE;AAClEL,UAAAA,mBAAmB,GAAG,IAAI,CAAA;AAC5B,SAAA;AACF,OAAC,CAAC,CAAA;AAEF,MAAA,IAAIA,mBAAmB,EAAE;AACvBR,QAAAA,mBAAmB,CAACe,IAAI,CAACV,KAAK,CAAC,CAAA;AACjC,OAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,OAAOL,mBAAmB,CAACgB,MAAM,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA;;AAED;AACA;AACA;AACA,MAAMC,gBAAyD,gBAAGC,UAAU,CAAC,CAACN,KAAK,EAAEO,GAAG,KAAK;EAC3F,MAAM;AACJC,MAAAA,eAAe,EAAEC,oBAAoB;MACrCC,aAAa;MACbvB,QAAQ;MACRwB,SAAS;MACTC,KAAK;MACLC,mBAAmB;MACnBC,IAAI;MACJhB,aAAa,EAAEiB,kBAAkB,GAAG,IAAI;MACxCC,SAAS;MACTC,aAAa;MACbC,MAAM;AACNC,MAAAA,KAAK,EAAEC,UAAU;AACjBC,MAAAA,KAAK,GAAG,OAAA;AAEV,KAAC,GAAGrB,KAAK;AADJsB,IAAAA,cAAc,GAAAC,wBAAA,CACfvB,KAAK,EAAAwB,SAAA,CAAA,CAAA;AAET,EAAA,MAAML,KAAK,GAAGM,QAAQ,CAACL,UAAU,CAAC,CAAA;AAElC,EAAA,MAAMM,MAAM,GAAGC,mBAAmB,CAACC,YAAY,CAAC,CAAA;AAEhD,EAAA,MAAM9B,aAAa,GAAGiB,kBAAkB,IAAI7B,8BAA8B,CAACC,QAAQ,CAAC,CAAA;AAEpF,EAAA,MAAM,CAAC0C,YAAY,EAAEC,eAAe,CAAC,GAAGC,QAAQ,CAAC;AAC/CC,IAAAA,KAAK,EAAEvB,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAAA,KAAA,CAAA,GAApBA,oBAAoB,GAAII,mBAAAA;AACjC,GAAC,CAAC,CAAA;AAEFoB,EAAAA,SAAS,CAAC,MAAM;AACdH,IAAAA,eAAe,CAAC;AACdE,MAAAA,KAAK,EAAEvB,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAAA,KAAA,CAAA,GAApBA,oBAAoB,GAAII,mBAAAA;AACjC,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACJ,oBAAoB,EAAEI,mBAAmB,CAAC,CAAC,CAAA;AAE/C,EAAA,MAAMqB,cAAc,GAAGC,WAAW,CAC/BN,YAAqB,IAAK;AACzB,IAAA,IAAIZ,aAAa,EAAE;MACjBA,aAAa,CAACY,YAAY,CAAC,CAAA;AAC7B,KAAA;AACA,IAAA,IAAIpB,oBAAoB,KAAK2B,SAAS,IAAI3B,oBAAoB,KAAK,IAAI,EAAE;AACvEqB,MAAAA,eAAe,CAAC;AACdE,QAAAA,KAAK,EAAEH,YAAAA;AACT,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD,CAACZ,aAAa,CAChB,CAAC,CAAA;EAED,MAAM,CAAC,CAACoB,MAAM,CAAC,EAAEC,OAAO,CAAC,GAAGC,mBAAmB,CAACjD,cAAK,CAACC,QAAQ,CAACC,OAAO,CAACL,QAAQ,CAAC,EAAE,CAChFO,WAAW,CAAC,oBAAoB,CAAC,CAClC,CAAC,CAAA;AAEF,EAAA,oBACEJ,cAAA,CAAAkD,aAAA,CAACC,aAAa,EAAA;AAACC,IAAAA,KAAK,EAAE;AAAEvB,MAAAA,KAAAA;AAAM,KAAA;AAAE,GAAA,eAC9B7B,cAAA,CAAAkD,aAAA,CAACG,kBAAkB,EAAAC,QAAA,CAAA;AACjBvB,IAAAA,KAAK,EAAEA,KAAAA;AAAM,GAAA,EACTC,cAAc,EAAA;IAClBX,SAAS,EAAEkC,UAAU,CAACxC,gBAAgB,CAACM,SAAS,EAAEA,SAAS,CAAE;AAC7DJ,IAAAA,GAAG,EAAEA,GAAiC;AACtCuC,IAAAA,MAAM,EAAElC,KAAM;AACdmC,IAAAA,MAAM,EAAE5B,KAAAA;GAEPP,CAAAA,EAAAA,KAAK,GACJI,SAAS,gBACP1B,cAAA,CAAAkD,aAAA,CAACQ,QAAQ,EAAA;AACP7B,IAAAA,KAAK,EAAEA,KAAM;AACb8B,IAAAA,MAAM,EAAEvC,aAAa,KAAK,WAAW,GAAG,KAAK,GAAG,MAAO;AACvDW,IAAAA,KAAK,EAAC,mBAAmB;AACzB6B,IAAAA,MAAM,EAAC,wBAAA;AAAwB,GAChC,CAAC,gBAEF5D,cAAA,CAAAkD,aAAA,CAACW,OAAO,EAAA;AACNxC,IAAAA,SAAS,EAAG,CAAA,EAAEN,gBAAgB,CAACM,SAAU,CAAU,QAAA,CAAA;AACnDyC,IAAAA,UAAU,EAAC,QAAQ;AACnBH,IAAAA,MAAM,EAAEvC,aAAa,KAAK,WAAW,GAAG,KAAK,GAAG,MAAO;AACvD2C,IAAAA,cAAc,EAAC,QAAQ;AACvBH,IAAAA,MAAM,EAAC,wBAAwB;AAC/B7B,IAAAA,KAAK,EAAC,mBAAA;AAAmB,GAAA,EAExBX,aAAa,KAAK,WAAW,GAAG,IAAI,GAAGQ,MAAM,gBAC5C5B,cAAA,CAAAkD,aAAA,CAACc,MAAM,EAAA;AACLC,IAAAA,OAAO,EAAErC,MAAO;IAChBsC,UAAU,EAAA,IAAA;IACVC,UAAU,EAAA,IAAA;AACVC,IAAAA,QAAQ,EAAE;AAAErC,MAAAA,KAAK,EAAE,MAAM;AAAE4B,MAAAA,MAAM,EAAE,MAAA;KAAS;AAC5CU,IAAAA,KAAK,EAAE;AAAEtC,MAAAA,KAAK,EAAE,MAAM;AAAE4B,MAAAA,MAAM,EAAE,MAAA;AAAO,KAAA;GACxC,CAAC,GACAnC,IAAI,gBACNxB,cAAA,CAAAkD,aAAA,CAACoB,IAAI,EAAA;AAAC9C,IAAAA,IAAI,EAAEA,IAAK;AAACF,IAAAA,KAAK,EAAC,OAAO;AAACiD,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAE,CAAC,GAC9C,IACG,CACV,GACC,IAAI,EACPxB,MAAM,IAAI3C,WAAW,CAAC,oBAAoB,CAAC,CAAC2C,MAAM,CAAC,gBAClD/C,cAAA,CAAAkD,aAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAG,CAAA,EAAEN,gBAAgB,CAACM,SAAU,CAAA,QAAA,CAAA;GAAY0B,EAAAA,MAAY,CAAC,GACrE,IAAI,EACPvC,aAAa,gBACZR,cAAA,CAAAkD,aAAA,CAACW,OAAO,EAAA;AAACE,IAAAA,cAAc,EAAC,UAAU;AAAC1C,IAAAA,SAAS,EAAG,CAAA,EAAEN,gBAAgB,CAACM,SAAU,CAAA,kBAAA,CAAA;AAAoB,GAAA,eAC9FrB,cAAA,CAAAkD,aAAA,CAACsB,OAAO,EAAA,IAAA,eACNxE,cAAA,CAAAkD,aAAA,CAACsB,OAAO,CAACC,OAAO,EAAA,IAAA,eACdzE,cAAA,CAAAkD,aAAA,CAACwB,UAAU,EAAA;IACT,YAAYtC,EAAAA,MAAM,CAAC,cAAc,CAAE;AACnC,IAAA,kBAAA,EAAkBU,SAAU;AAC5BtB,IAAAA,IAAI,EAAEmD,WAAY;AAClBC,IAAAA,OAAO,EAAEA,MAAMhC,cAAc,CAAC,IAAI,CAAE;AACpCyB,IAAAA,KAAK,EAAE;AAAEQ,MAAAA,SAAS,EAAE,gBAAA;KAAmB;AACvCvD,IAAAA,KAAK,EAAC,MAAA;AAAM,GACb,CACc,CAAC,eAClBtB,cAAA,CAAAkD,aAAA,CAACsB,OAAO,CAACM,OAAO,QAAE1C,MAAM,CAAC,cAAc,CAAmB,CACnD,CAAC,eACVpC,cAAA,CAAAkD,aAAA,CAACsB,OAAO,EACNxE,IAAAA,eAAAA,cAAA,CAAAkD,aAAA,CAACsB,OAAO,CAACC,OAAO,EACdzE,IAAAA,eAAAA,cAAA,CAAAkD,aAAA,CAACwB,UAAU,EAAA;IACT,YAAYtC,EAAAA,MAAM,CAAC,YAAY,CAAE;AACjC,IAAA,kBAAA,EAAkBU,SAAU;AAC5BtB,IAAAA,IAAI,EAAEuD,eAAgB;AACtBH,IAAAA,OAAO,EAAEA,MAAMhC,cAAc,CAAC,KAAK,CAAE;AACrCyB,IAAAA,KAAK,EAAE;AAAEQ,MAAAA,SAAS,EAAE,gBAAA;KAAmB;AACvCvD,IAAAA,KAAK,EAAC,MAAA;AAAM,GACb,CACc,CAAC,eAClBtB,cAAA,CAAAkD,aAAA,CAACsB,OAAO,CAACM,OAAO,EAAE1C,IAAAA,EAAAA,MAAM,CAAC,YAAY,CAAmB,CACjD,CACF,CAAC,GACR,IAAI,EAEPpC,cAAK,CAACC,QAAQ,CAAC+E,GAAG,CAAChC,OAAO,EAAG7C,KAAK,IAAK;AACtC,IAAA,IAAIC,WAAW,CAACC,mBAAmB,CAAC,CAACF,KAAK,CAAC,EAAE;AAC3C,MAAA,oBAAOH,cAAK,CAACiF,YAAY,CAAC9E,KAAK,EAAkB;QAC/C0B,KAAK;QACLqD,WAAW,EAAE3C,YAAY,CAACG,KAAK;AAC/ByC,QAAAA,GAAG,EAAEC,IAAI,CAACC,MAAM,EAAC;AACnB,OAAC,CAAC,CAAA;AACJ,KAAA;AACA,IAAA,OAAOlF,KAAK,CAAA;GACb,CACiB,CACP,CAAC,CAAA;AAEpB,CAAC,CAAC,CAAA;AACFY,gBAAgB,CAACM,SAAS,GAAG1B,SAAS,CAAA;AACtCoB,gBAAgB,CAACuE,WAAW,GAAG5F,cAAc,CAAA;AAEtC,MAAM6F,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAC1E,gBAAgB,EAAE;AAC1D2E,EAAAA,MAAM,EAAEC,kBAAkB;AAC1BC,EAAAA,OAAO,EAAEvF,mBAAmB;AAC5BwF,EAAAA,uBAAuB,EAAEjF,mCAAmC;AAC5DkF,EAAAA,WAAW,EAAEC,uBAAAA;AACf,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"DetailedCard.js","sources":["../../../src/components/detailed-card/DetailedCard.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement, ReactNode, RefObject, useCallback, useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useMessageFormatter } from '../../react-aria/react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiKeyboardCaps, mdiPageLast } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { Flexbox } from '../flexbox';\nimport { IconButton } from '../icon-button';\nimport { Shield } from '../shield';\nimport { DetailedCardSection, DetailedCardSectionProps } from '../detailed-card-section';\nimport { StyledDetailedCard } from './styles';\nimport { DetailedCardProps } from './types';\nimport { partitionComponents, isComponent } from '../../utils';\nimport { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items';\nimport { DetailedCardHeader } from '../detailed-card-header';\nimport { DetailedCardSectionItem } from '../detailed-card-section-item';\nimport { Skeleton } from '../skeleton';\nimport { ThemeProvider, useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'DetailedCard';\nconst CLASSNAME = 'redsift-detailed-card';\n\nconst hasMultipleCollapsibleChildren = (children: ReactNode): boolean => {\n const collapsibleChildren: ReactNode[] = [];\n\n const childrenArray = React.Children.toArray(children);\n for (const child of childrenArray) {\n if (isComponent(DetailedCardSection)(child)) {\n let hasCollapsibleItems = Boolean((child as DetailedCardSectionProps).isCollapsible);\n React.Children.forEach(child.props.children, (sectionChild) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(sectionChild)) {\n hasCollapsibleItems = true;\n }\n });\n\n if (hasCollapsibleItems) {\n collapsibleChildren.push(child);\n }\n }\n }\n\n return collapsibleChildren.length > 1;\n};\n\n/**\n * The DetailedCard component.\n */\nconst BaseDetailedCard: Comp<DetailedCardProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n areAllCollapsed: propsAreAllCollapsed,\n bannerVariant,\n children,\n className,\n color,\n defaultAllCollapsed,\n icon,\n isCollapsible: propsIsCollapsible = true,\n isLoading,\n onCollapseAll,\n shield,\n theme: propsTheme,\n width = '400px',\n Tooltip,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const format = useMessageFormatter(intlMessages);\n\n const isCollapsible = propsIsCollapsible && hasMultipleCollapsibleChildren(children);\n\n const [allCollapsed, setAllCollapsed] = useState({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n\n useEffect(() => {\n setAllCollapsed({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n }, [propsAreAllCollapsed, defaultAllCollapsed]);\n\n const handleCollapse = useCallback(\n (allCollapsed: boolean) => {\n if (onCollapseAll) {\n onCollapseAll(allCollapsed);\n }\n if (propsAreAllCollapsed === undefined || propsAreAllCollapsed === null) {\n setAllCollapsed({\n state: allCollapsed,\n });\n }\n },\n [onCollapseAll]\n );\n\n const [[header], content] = partitionComponents(React.Children.toArray(children), [\n isComponent('DetailedCardHeader'),\n ]);\n\n return (\n <ThemeProvider value={{ theme }}>\n <StyledDetailedCard\n width={width}\n {...forwardedProps}\n className={classNames(BaseDetailedCard.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $theme={theme}\n >\n {color ? (\n isLoading ? (\n <Skeleton\n theme={theme}\n height={bannerVariant === 'condensed' ? '8px' : '80px'}\n width=\"calc(100% + 32px)\"\n margin=\"-16px -16px 16px -16px\"\n />\n ) : (\n <Flexbox\n className={`${BaseDetailedCard.className}__banner`}\n alignItems=\"center\"\n height={bannerVariant === 'condensed' ? '8px' : '80px'}\n justifyContent=\"center\"\n margin=\"-16px -16px 16px -16px\"\n width=\"calc(100% + 32px)\"\n >\n {bannerVariant === 'condensed' ? null : shield ? (\n <Shield\n variant={shield}\n isOutlined\n isReversed\n svgProps={{ width: '40px', height: '40px' }}\n style={{ width: '40px', height: '40px' }}\n />\n ) : icon ? (\n <Icon icon={icon} color=\"white\" size=\"xlarge\" />\n ) : null}\n </Flexbox>\n )\n ) : null}\n {header && isComponent('DetailedCardHeader')(header) ? (\n <div className={`${BaseDetailedCard.className}__header`}>{header}</div>\n ) : null}\n {isCollapsible ? (\n <Flexbox justifyContent=\"flex-end\" className={`${BaseDetailedCard.className}__collapse-buttons`}>\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={format('collapse-all')}\n aria-describedby={undefined}\n icon={mdiPageLast}\n onClick={() => handleCollapse(true)}\n style={{ transform: 'rotate(-90deg)' }}\n color=\"grey\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{format('collapse-all')}</Tooltip.Content>\n </Tooltip>\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={format('expand-all')}\n aria-describedby={undefined}\n icon={mdiKeyboardCaps}\n onClick={() => handleCollapse(false)}\n style={{ transform: 'rotate(180deg)' }}\n color=\"grey\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{format('expand-all')}</Tooltip.Content>\n </Tooltip>\n </Flexbox>\n ) : null}\n\n {React.Children.map(content, (child) => {\n if (isComponent(DetailedCardSection)(child)) {\n return React.cloneElement(child as ReactElement, {\n theme,\n isCollapsed: allCollapsed.state,\n key: Math.random(),\n });\n }\n return child;\n })}\n </StyledDetailedCard>\n </ThemeProvider>\n );\n});\nBaseDetailedCard.className = CLASSNAME;\nBaseDetailedCard.displayName = COMPONENT_NAME;\n\nexport const DetailedCard = Object.assign(BaseDetailedCard, {\n Header: DetailedCardHeader,\n Section: DetailedCardSection,\n CollapsibleSectionItems: DetailedCardCollapsibleSectionItems,\n SectionItem: DetailedCardSectionItem,\n});\n"],"names":["COMPONENT_NAME","CLASSNAME","hasMultipleCollapsibleChildren","children","collapsibleChildren","childrenArray","React","Children","toArray","child","isComponent","DetailedCardSection","hasCollapsibleItems","Boolean","isCollapsible","forEach","props","sectionChild","DetailedCardCollapsibleSectionItems","push","length","BaseDetailedCard","forwardRef","ref","areAllCollapsed","propsAreAllCollapsed","bannerVariant","className","color","defaultAllCollapsed","icon","propsIsCollapsible","isLoading","onCollapseAll","shield","theme","propsTheme","width","Tooltip","forwardedProps","_objectWithoutProperties","_excluded","useTheme","format","useMessageFormatter","intlMessages","allCollapsed","setAllCollapsed","useState","state","useEffect","handleCollapse","useCallback","undefined","header","content","partitionComponents","createElement","ThemeProvider","value","StyledDetailedCard","_extends","classNames","$color","$theme","Skeleton","height","margin","Flexbox","alignItems","justifyContent","Shield","variant","isOutlined","isReversed","svgProps","style","Icon","size","Trigger","IconButton","mdiPageLast","onClick","transform","Content","mdiKeyboardCaps","map","cloneElement","isCollapsed","key","Math","random","displayName","DetailedCard","Object","assign","Header","DetailedCardHeader","Section","CollapsibleSectionItems","SectionItem","DetailedCardSectionItem"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { ShieldVariant } from '../shield/types.js';
|
|
|
3
3
|
import { StylingProps } from '../../types/styles.js';
|
|
4
4
|
import { NotificationsColorPalette, Theme } from '../../types/colors.js';
|
|
5
5
|
import { IconProps } from '../icon/types.js';
|
|
6
|
+
import { Comp } from '../../types/helpers.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Component props.
|
|
@@ -31,8 +32,16 @@ interface DetailedCardProps extends ComponentProps<'div'>, StylingProps {
|
|
|
31
32
|
theme?: Theme;
|
|
32
33
|
/** Method to handle component change. */
|
|
33
34
|
onCollapseAll?(areAllCollapsed: boolean): void;
|
|
35
|
+
/** Tooltip component to use. */
|
|
36
|
+
Tooltip: React.FC<any> & {
|
|
37
|
+
displayName?: string;
|
|
38
|
+
className?: string;
|
|
39
|
+
} & {
|
|
40
|
+
Trigger: Comp<any, HTMLSpanElement>;
|
|
41
|
+
Content: Comp<any, HTMLDivElement>;
|
|
42
|
+
};
|
|
34
43
|
}
|
|
35
|
-
type StyledDetailedCardProps = Omit<DetailedCardProps, 'color'> & {
|
|
44
|
+
type StyledDetailedCardProps = Omit<DetailedCardProps, 'color' | 'Tooltip'> & {
|
|
36
45
|
$color: DetailedCardProps['color'];
|
|
37
46
|
$theme: DetailedCardProps['theme'];
|
|
38
47
|
};
|
package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { StyledDetailedCardCollapsibleSectionItems } from './styles.js';
|
|
5
5
|
|
|
@@ -18,11 +18,11 @@ const DetailedCardCollapsibleSectionItems = /*#__PURE__*/forwardRef((props, ref)
|
|
|
18
18
|
hideBackground
|
|
19
19
|
} = props,
|
|
20
20
|
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
21
|
-
return /*#__PURE__*/
|
|
21
|
+
return /*#__PURE__*/React.createElement(StyledDetailedCardCollapsibleSectionItems, _extends({}, forwardedProps, {
|
|
22
22
|
className: classNames(DetailedCardCollapsibleSectionItems.className, className),
|
|
23
23
|
ref: ref,
|
|
24
24
|
$hideBackground: hideBackground
|
|
25
|
-
}), children, caption ? /*#__PURE__*/
|
|
25
|
+
}), children, caption ? /*#__PURE__*/React.createElement("div", {
|
|
26
26
|
className: `${DetailedCardCollapsibleSectionItems.className}__caption`
|
|
27
27
|
}, caption) : null);
|
|
28
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailedCardCollapsibleSectionItems.js","sources":["../../../src/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.tsx"],"sourcesContent":["import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { DetailedCardCollapsibleSectionItemsProps } from './types';\nimport { StyledDetailedCardCollapsibleSectionItems } from './styles';\n\nconst COMPONENT_NAME = 'DetailedCardCollapsibleSectionItems';\nconst CLASSNAME = 'redsift-detailed-card-collapsible-section-items';\n\n/**\n * The DetailedCardCollapsibleSectionItems Section component.\n */\nexport const DetailedCardCollapsibleSectionItems: Comp<DetailedCardCollapsibleSectionItemsProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { caption, children, className, hideBackground, ...forwardedProps } = props;\n\n return (\n <StyledDetailedCardCollapsibleSectionItems\n {...forwardedProps}\n className={classNames(DetailedCardCollapsibleSectionItems.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $hideBackground={hideBackground}\n >\n {children}\n {caption ? <div className={`${DetailedCardCollapsibleSectionItems.className}__caption`}>{caption}</div> : null}\n </StyledDetailedCardCollapsibleSectionItems>\n );\n });\nDetailedCardCollapsibleSectionItems.className = CLASSNAME;\nDetailedCardCollapsibleSectionItems.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","DetailedCardCollapsibleSectionItems","forwardRef","props","ref","caption","children","className","hideBackground","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","StyledDetailedCardCollapsibleSectionItems","_extends","classNames","$hideBackground","displayName"],"mappings":";;;;;;AAOA,MAAMA,cAAc,GAAG,qCAAqC,CAAA;AAC5D,MAAMC,SAAS,GAAG,iDAAiD,CAAA;;AAEnE;AACA;AACA;AACO,MAAMC,mCAAmG,gBAC9GC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACzB,MAAM;MAAEC,OAAO;MAAEC,QAAQ;MAAEC,SAAS;AAAEC,MAAAA,cAAAA;AAAkC,KAAC,GAAGL,KAAK;AAAxBM,IAAAA,cAAc,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA,CAAA,CAAA;EAEjF,oBACEC,
|
|
1
|
+
{"version":3,"file":"DetailedCardCollapsibleSectionItems.js","sources":["../../../src/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.tsx"],"sourcesContent":["import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { DetailedCardCollapsibleSectionItemsProps } from './types';\nimport { StyledDetailedCardCollapsibleSectionItems } from './styles';\n\nconst COMPONENT_NAME = 'DetailedCardCollapsibleSectionItems';\nconst CLASSNAME = 'redsift-detailed-card-collapsible-section-items';\n\n/**\n * The DetailedCardCollapsibleSectionItems Section component.\n */\nexport const DetailedCardCollapsibleSectionItems: Comp<DetailedCardCollapsibleSectionItemsProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { caption, children, className, hideBackground, ...forwardedProps } = props;\n\n return (\n <StyledDetailedCardCollapsibleSectionItems\n {...forwardedProps}\n className={classNames(DetailedCardCollapsibleSectionItems.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $hideBackground={hideBackground}\n >\n {children}\n {caption ? <div className={`${DetailedCardCollapsibleSectionItems.className}__caption`}>{caption}</div> : null}\n </StyledDetailedCardCollapsibleSectionItems>\n );\n });\nDetailedCardCollapsibleSectionItems.className = CLASSNAME;\nDetailedCardCollapsibleSectionItems.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","DetailedCardCollapsibleSectionItems","forwardRef","props","ref","caption","children","className","hideBackground","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","StyledDetailedCardCollapsibleSectionItems","_extends","classNames","$hideBackground","displayName"],"mappings":";;;;;;AAOA,MAAMA,cAAc,GAAG,qCAAqC,CAAA;AAC5D,MAAMC,SAAS,GAAG,iDAAiD,CAAA;;AAEnE;AACA;AACA;AACO,MAAMC,mCAAmG,gBAC9GC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACzB,MAAM;MAAEC,OAAO;MAAEC,QAAQ;MAAEC,SAAS;AAAEC,MAAAA,cAAAA;AAAkC,KAAC,GAAGL,KAAK;AAAxBM,IAAAA,cAAc,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA,CAAA,CAAA;EAEjF,oBACEC,KAAA,CAAAC,aAAA,CAACC,yCAAyC,EAAAC,QAAA,KACpCN,cAAc,EAAA;IAClBF,SAAS,EAAES,UAAU,CAACf,mCAAmC,CAACM,SAAS,EAAEA,SAAS,CAAE;AAChFH,IAAAA,GAAG,EAAEA,GAAiC;AACtCa,IAAAA,eAAe,EAAET,cAAAA;AAAe,GAAA,CAAA,EAE/BF,QAAQ,EACRD,OAAO,gBAAGO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKN,IAAAA,SAAS,EAAG,CAAA,EAAEN,mCAAmC,CAACM,SAAU,CAAA,SAAA,CAAA;AAAW,GAAA,EAAEF,OAAa,CAAC,GAAG,IACjE,CAAC,CAAA;AAEhD,CAAC,EAAC;AACJJ,mCAAmC,CAACM,SAAS,GAAGP,SAAS,CAAA;AACzDC,mCAAmC,CAACiB,WAAW,GAAGnB,cAAc;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { StyledDetailedCardHeader } from './styles.js';
|
|
5
5
|
import { useTheme } from '../theme/useTheme.js';
|
|
@@ -23,16 +23,16 @@ const DetailedCardHeader = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
23
23
|
} = props,
|
|
24
24
|
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
25
25
|
const theme = useTheme();
|
|
26
|
-
return /*#__PURE__*/
|
|
26
|
+
return /*#__PURE__*/React.createElement(StyledDetailedCardHeader, _extends({}, forwardedProps, {
|
|
27
27
|
className: classNames(DetailedCardHeader.className, className),
|
|
28
28
|
ref: ref,
|
|
29
29
|
$theme: theme
|
|
30
|
-
}), header ? /*#__PURE__*/
|
|
30
|
+
}), header ? /*#__PURE__*/React.createElement(Skeleton.Text, {
|
|
31
31
|
variant: "h2",
|
|
32
32
|
isLoaded: !isLoading,
|
|
33
33
|
height: "32px",
|
|
34
34
|
marginBottom: "16px"
|
|
35
|
-
}, /*#__PURE__*/
|
|
35
|
+
}, /*#__PURE__*/React.createElement(Heading, _extends({
|
|
36
36
|
as: "h2",
|
|
37
37
|
className: `${DetailedCardHeader.className}__header`,
|
|
38
38
|
variant: "h2"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailedCardHeader.js","sources":["../../../src/components/detailed-card-header/DetailedCardHeader.tsx"],"sourcesContent":["import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { Heading } from '../heading';\nimport { Skeleton } from '../skeleton';\nimport { StyledDetailedCardHeader } from './styles';\nimport { DetailedCardHeaderProps } from './types';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'DetailedCardHeader';\nconst CLASSNAME = 'redsift-detailed-card-header';\n\n/**\n * The DetailedCardHeader component.\n */\nexport const DetailedCardHeader: Comp<DetailedCardHeaderProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, header, headingProps, isLoading, ...forwardedProps } = props;\n const theme = useTheme();\n\n return (\n <StyledDetailedCardHeader\n {...forwardedProps}\n className={classNames(DetailedCardHeader.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $theme={theme}\n >\n {header ? (\n <Skeleton.Text variant=\"h2\" isLoaded={!isLoading} height=\"32px\" marginBottom=\"16px\">\n <Heading as=\"h2\" className={`${DetailedCardHeader.className}__header`} variant=\"h2\" {...headingProps}>\n {header}\n </Heading>\n </Skeleton.Text>\n ) : null}\n\n {children}\n </StyledDetailedCardHeader>\n );\n});\nDetailedCardHeader.className = CLASSNAME;\nDetailedCardHeader.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","DetailedCardHeader","forwardRef","props","ref","children","className","header","headingProps","isLoading","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","React","createElement","StyledDetailedCardHeader","_extends","classNames","$theme","Skeleton","Text","variant","isLoaded","height","marginBottom","Heading","as","displayName"],"mappings":";;;;;;;;;AAUA,MAAMA,cAAc,GAAG,oBAAoB,CAAA;AAC3C,MAAMC,SAAS,GAAG,8BAA8B,CAAA;;AAEhD;AACA;AACA;AACO,MAAMC,kBAAiE,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1G,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,MAAM;MAAEC,YAAY;AAAEC,MAAAA,SAAAA;AAA6B,KAAC,GAAGN,KAAK;AAAxBO,IAAAA,cAAc,GAAAC,wBAAA,CAAKR,KAAK,EAAAS,SAAA,CAAA,CAAA;AACzF,EAAA,MAAMC,KAAK,GAAGC,QAAQ,EAAE,CAAA;EAExB,oBACEC,
|
|
1
|
+
{"version":3,"file":"DetailedCardHeader.js","sources":["../../../src/components/detailed-card-header/DetailedCardHeader.tsx"],"sourcesContent":["import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { Heading } from '../heading';\nimport { Skeleton } from '../skeleton';\nimport { StyledDetailedCardHeader } from './styles';\nimport { DetailedCardHeaderProps } from './types';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'DetailedCardHeader';\nconst CLASSNAME = 'redsift-detailed-card-header';\n\n/**\n * The DetailedCardHeader component.\n */\nexport const DetailedCardHeader: Comp<DetailedCardHeaderProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, header, headingProps, isLoading, ...forwardedProps } = props;\n const theme = useTheme();\n\n return (\n <StyledDetailedCardHeader\n {...forwardedProps}\n className={classNames(DetailedCardHeader.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $theme={theme}\n >\n {header ? (\n <Skeleton.Text variant=\"h2\" isLoaded={!isLoading} height=\"32px\" marginBottom=\"16px\">\n <Heading as=\"h2\" className={`${DetailedCardHeader.className}__header`} variant=\"h2\" {...headingProps}>\n {header}\n </Heading>\n </Skeleton.Text>\n ) : null}\n\n {children}\n </StyledDetailedCardHeader>\n );\n});\nDetailedCardHeader.className = CLASSNAME;\nDetailedCardHeader.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","DetailedCardHeader","forwardRef","props","ref","children","className","header","headingProps","isLoading","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","React","createElement","StyledDetailedCardHeader","_extends","classNames","$theme","Skeleton","Text","variant","isLoaded","height","marginBottom","Heading","as","displayName"],"mappings":";;;;;;;;;AAUA,MAAMA,cAAc,GAAG,oBAAoB,CAAA;AAC3C,MAAMC,SAAS,GAAG,8BAA8B,CAAA;;AAEhD;AACA;AACA;AACO,MAAMC,kBAAiE,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1G,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,MAAM;MAAEC,YAAY;AAAEC,MAAAA,SAAAA;AAA6B,KAAC,GAAGN,KAAK;AAAxBO,IAAAA,cAAc,GAAAC,wBAAA,CAAKR,KAAK,EAAAS,SAAA,CAAA,CAAA;AACzF,EAAA,MAAMC,KAAK,GAAGC,QAAQ,EAAE,CAAA;EAExB,oBACEC,KAAA,CAAAC,aAAA,CAACC,wBAAwB,EAAAC,QAAA,KACnBR,cAAc,EAAA;IAClBJ,SAAS,EAAEa,UAAU,CAAClB,kBAAkB,CAACK,SAAS,EAAEA,SAAS,CAAE;AAC/DF,IAAAA,GAAG,EAAEA,GAAiC;AACtCgB,IAAAA,MAAM,EAAEP,KAAAA;GAEPN,CAAAA,EAAAA,MAAM,gBACLQ,KAAA,CAAAC,aAAA,CAACK,QAAQ,CAACC,IAAI,EAAA;AAACC,IAAAA,OAAO,EAAC,IAAI;IAACC,QAAQ,EAAE,CAACf,SAAU;AAACgB,IAAAA,MAAM,EAAC,MAAM;AAACC,IAAAA,YAAY,EAAC,MAAA;AAAM,GAAA,eACjFX,KAAA,CAAAC,aAAA,CAACW,OAAO,EAAAT,QAAA,CAAA;AAACU,IAAAA,EAAE,EAAC,IAAI;AAACtB,IAAAA,SAAS,EAAG,CAAA,EAAEL,kBAAkB,CAACK,SAAU,CAAU,QAAA,CAAA;AAACiB,IAAAA,OAAO,EAAC,IAAA;GAASf,EAAAA,YAAY,GACjGD,MACM,CACI,CAAC,GACd,IAAI,EAEPF,QACuB,CAAC,CAAA;AAE/B,CAAC,EAAC;AACFJ,kBAAkB,CAACK,SAAS,GAAGN,SAAS,CAAA;AACxCC,kBAAkB,CAAC4B,WAAW,GAAG9B,cAAc;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import
|
|
2
|
+
import React, { forwardRef, useState } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import intlMessages from './intl/index.js';
|
|
5
5
|
import { mdiChevronDown, mdiChevronUp } from '@redsift/icons';
|
|
@@ -19,7 +19,7 @@ const COMPONENT_NAME = 'DetailedCardSection';
|
|
|
19
19
|
const CLASSNAME = 'redsift-detailed-card-section';
|
|
20
20
|
const hasCollapsibleChildren = children => {
|
|
21
21
|
let hasCollapsible = false;
|
|
22
|
-
|
|
22
|
+
React.Children.map(children, child => {
|
|
23
23
|
if (isComponent(DetailedCardCollapsibleSectionItems)(child)) {
|
|
24
24
|
hasCollapsible = true;
|
|
25
25
|
}
|
|
@@ -45,34 +45,34 @@ const DetailedCardSection = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
45
45
|
const format = useMessageFormatter(intlMessages);
|
|
46
46
|
const isCollapsible = propsIsCollapsible && hasCollapsibleChildren(children);
|
|
47
47
|
const [isCollapsed, setIsCollapsed] = useState(Boolean(propsIsCollapsed));
|
|
48
|
-
return /*#__PURE__*/
|
|
48
|
+
return /*#__PURE__*/React.createElement(StyledDetailedCardSection, _extends({}, forwardedProps, {
|
|
49
49
|
className: classNames(DetailedCardSection.className, className),
|
|
50
50
|
ref: ref,
|
|
51
51
|
$color: color,
|
|
52
52
|
$isCollapsed: isCollapsed
|
|
53
|
-
}), /*#__PURE__*/
|
|
53
|
+
}), /*#__PURE__*/React.createElement(Flexbox, {
|
|
54
54
|
justifyContent: "space-between",
|
|
55
55
|
className: `${DetailedCardSection.className}__header`
|
|
56
|
-
}, header ? /*#__PURE__*/
|
|
56
|
+
}, header ? /*#__PURE__*/React.createElement(Skeleton.Text, {
|
|
57
57
|
variant: "body",
|
|
58
58
|
isLoaded: !isLoading,
|
|
59
59
|
fontSize: "18px",
|
|
60
60
|
lineHeight: "22px",
|
|
61
61
|
marginTop: "6px",
|
|
62
62
|
marginBottom: "12px"
|
|
63
|
-
}, /*#__PURE__*/
|
|
63
|
+
}, /*#__PURE__*/React.createElement(Flexbox, {
|
|
64
64
|
alignItems: "center",
|
|
65
65
|
gap: "8px"
|
|
66
|
-
}, typeof header === 'string' ? /*#__PURE__*/
|
|
66
|
+
}, typeof header === 'string' ? /*#__PURE__*/React.createElement(Text, {
|
|
67
67
|
className: `${DetailedCardSection.className}-header__title`,
|
|
68
68
|
color: "black",
|
|
69
69
|
fontSize: "18px",
|
|
70
70
|
lineHeight: "22px"
|
|
71
|
-
}, header) : /*#__PURE__*/
|
|
71
|
+
}, header) : /*#__PURE__*/React.createElement("div", {
|
|
72
72
|
className: `${DetailedCardSection.className}-header__title`
|
|
73
|
-
}, header), badge ? /*#__PURE__*/
|
|
73
|
+
}, header), badge ? /*#__PURE__*/React.createElement(Badge, _extends({
|
|
74
74
|
variant: BadgeVariant.standard
|
|
75
|
-
}, badge)) : null)) : null, isCollapsible && !isLoading ? /*#__PURE__*/
|
|
75
|
+
}, badge)) : null)) : null, isCollapsible && !isLoading ? /*#__PURE__*/React.createElement(IconButton, {
|
|
76
76
|
marginLeft: "auto",
|
|
77
77
|
"aria-label": format(isCollapsed ? 'expand' : 'collapse'),
|
|
78
78
|
className: `${DetailedCardSection.className}-header__collapse-button`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailedCardSection.js","sources":["../../../src/components/detailed-card-section/DetailedCardSection.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, RefObject, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useMessageFormatter } from '../../react-aria/react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiChevronDown, mdiChevronUp } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Flexbox } from '../flexbox';\nimport { IconButton } from '../icon-button';\nimport { DetailedCardSectionProps } from './types';\nimport { isComponent } from '../../utils/isComponent';\nimport { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items';\nimport { StyledDetailedCardSection } from './styles';\nimport { Skeleton } from '../skeleton';\nimport { Text } from '../text';\nimport { Badge, BadgeVariant } from '../badge';\n\nconst COMPONENT_NAME = 'DetailedCardSection';\nconst CLASSNAME = 'redsift-detailed-card-section';\n\nconst hasCollapsibleChildren = (children: ReactNode): boolean => {\n let hasCollapsible = false;\n\n React.Children.map(children, (child) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(child)) {\n hasCollapsible = true;\n }\n });\n\n return hasCollapsible;\n};\n\n/**\n * The DetailedCardSection component.\n */\nexport const DetailedCardSection: Comp<DetailedCardSectionProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n badge,\n color,\n children,\n className,\n header,\n isCollapsed: propsIsCollapsed,\n isCollapsible: propsIsCollapsible = true,\n isLoading,\n ...forwardedProps\n } = props;\n\n const format = useMessageFormatter(intlMessages);\n\n const isCollapsible = propsIsCollapsible && hasCollapsibleChildren(children);\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(Boolean(propsIsCollapsed));\n\n return (\n <StyledDetailedCardSection\n {...forwardedProps}\n className={classNames(DetailedCardSection.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $isCollapsed={isCollapsed}\n >\n <Flexbox justifyContent=\"space-between\" className={`${DetailedCardSection.className}__header`}>\n {header ? (\n <Skeleton.Text\n variant=\"body\"\n isLoaded={!isLoading}\n fontSize=\"18px\"\n lineHeight=\"22px\"\n marginTop=\"6px\"\n marginBottom=\"12px\"\n >\n <Flexbox alignItems=\"center\" gap=\"8px\">\n {typeof header === 'string' ? (\n <Text\n className={`${DetailedCardSection.className}-header__title`}\n color=\"black\"\n fontSize=\"18px\"\n lineHeight=\"22px\"\n >\n {header}\n </Text>\n ) : (\n <div className={`${DetailedCardSection.className}-header__title`}>{header}</div>\n )}\n {badge ? <Badge variant={BadgeVariant.standard} {...badge} /> : null}\n </Flexbox>\n </Skeleton.Text>\n ) : null}\n {isCollapsible && !isLoading ? (\n <IconButton\n marginLeft=\"auto\"\n aria-label={format(isCollapsed ? 'expand' : 'collapse')}\n className={`${DetailedCardSection.className}-header__collapse-button`}\n color=\"grey\"\n icon={isCollapsed ? mdiChevronDown : mdiChevronUp}\n onClick={() => {\n setIsCollapsed((isCollapsed) => !isCollapsed);\n }}\n />\n ) : null}\n </Flexbox>\n\n {children}\n </StyledDetailedCardSection>\n );\n});\nDetailedCardSection.className = CLASSNAME;\nDetailedCardSection.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","hasCollapsibleChildren","children","hasCollapsible","React","Children","map","child","isComponent","DetailedCardCollapsibleSectionItems","DetailedCardSection","forwardRef","props","ref","badge","color","className","header","isCollapsed","propsIsCollapsed","isCollapsible","propsIsCollapsible","isLoading","forwardedProps","_objectWithoutProperties","_excluded","format","useMessageFormatter","intlMessages","setIsCollapsed","useState","Boolean","createElement","StyledDetailedCardSection","_extends","classNames","$color","$isCollapsed","Flexbox","justifyContent","Skeleton","Text","variant","isLoaded","fontSize","lineHeight","marginTop","marginBottom","alignItems","gap","Badge","BadgeVariant","standard","IconButton","marginLeft","icon","mdiChevronDown","mdiChevronUp","onClick","displayName"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAMA,cAAc,GAAG,qBAAqB,CAAA;AAC5C,MAAMC,SAAS,GAAG,+BAA+B,CAAA;AAEjD,MAAMC,sBAAsB,GAAIC,QAAmB,IAAc;EAC/D,IAAIC,cAAc,GAAG,KAAK,CAAA;EAE1BC,
|
|
1
|
+
{"version":3,"file":"DetailedCardSection.js","sources":["../../../src/components/detailed-card-section/DetailedCardSection.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, RefObject, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useMessageFormatter } from '../../react-aria/react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiChevronDown, mdiChevronUp } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Flexbox } from '../flexbox';\nimport { IconButton } from '../icon-button';\nimport { DetailedCardSectionProps } from './types';\nimport { isComponent } from '../../utils/isComponent';\nimport { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items';\nimport { StyledDetailedCardSection } from './styles';\nimport { Skeleton } from '../skeleton';\nimport { Text } from '../text';\nimport { Badge, BadgeVariant } from '../badge';\n\nconst COMPONENT_NAME = 'DetailedCardSection';\nconst CLASSNAME = 'redsift-detailed-card-section';\n\nconst hasCollapsibleChildren = (children: ReactNode): boolean => {\n let hasCollapsible = false;\n\n React.Children.map(children, (child) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(child)) {\n hasCollapsible = true;\n }\n });\n\n return hasCollapsible;\n};\n\n/**\n * The DetailedCardSection component.\n */\nexport const DetailedCardSection: Comp<DetailedCardSectionProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n badge,\n color,\n children,\n className,\n header,\n isCollapsed: propsIsCollapsed,\n isCollapsible: propsIsCollapsible = true,\n isLoading,\n ...forwardedProps\n } = props;\n\n const format = useMessageFormatter(intlMessages);\n\n const isCollapsible = propsIsCollapsible && hasCollapsibleChildren(children);\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(Boolean(propsIsCollapsed));\n\n return (\n <StyledDetailedCardSection\n {...forwardedProps}\n className={classNames(DetailedCardSection.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $isCollapsed={isCollapsed}\n >\n <Flexbox justifyContent=\"space-between\" className={`${DetailedCardSection.className}__header`}>\n {header ? (\n <Skeleton.Text\n variant=\"body\"\n isLoaded={!isLoading}\n fontSize=\"18px\"\n lineHeight=\"22px\"\n marginTop=\"6px\"\n marginBottom=\"12px\"\n >\n <Flexbox alignItems=\"center\" gap=\"8px\">\n {typeof header === 'string' ? (\n <Text\n className={`${DetailedCardSection.className}-header__title`}\n color=\"black\"\n fontSize=\"18px\"\n lineHeight=\"22px\"\n >\n {header}\n </Text>\n ) : (\n <div className={`${DetailedCardSection.className}-header__title`}>{header}</div>\n )}\n {badge ? <Badge variant={BadgeVariant.standard} {...badge} /> : null}\n </Flexbox>\n </Skeleton.Text>\n ) : null}\n {isCollapsible && !isLoading ? (\n <IconButton\n marginLeft=\"auto\"\n aria-label={format(isCollapsed ? 'expand' : 'collapse')}\n className={`${DetailedCardSection.className}-header__collapse-button`}\n color=\"grey\"\n icon={isCollapsed ? mdiChevronDown : mdiChevronUp}\n onClick={() => {\n setIsCollapsed((isCollapsed) => !isCollapsed);\n }}\n />\n ) : null}\n </Flexbox>\n\n {children}\n </StyledDetailedCardSection>\n );\n});\nDetailedCardSection.className = CLASSNAME;\nDetailedCardSection.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","hasCollapsibleChildren","children","hasCollapsible","React","Children","map","child","isComponent","DetailedCardCollapsibleSectionItems","DetailedCardSection","forwardRef","props","ref","badge","color","className","header","isCollapsed","propsIsCollapsed","isCollapsible","propsIsCollapsible","isLoading","forwardedProps","_objectWithoutProperties","_excluded","format","useMessageFormatter","intlMessages","setIsCollapsed","useState","Boolean","createElement","StyledDetailedCardSection","_extends","classNames","$color","$isCollapsed","Flexbox","justifyContent","Skeleton","Text","variant","isLoaded","fontSize","lineHeight","marginTop","marginBottom","alignItems","gap","Badge","BadgeVariant","standard","IconButton","marginLeft","icon","mdiChevronDown","mdiChevronUp","onClick","displayName"],"mappings":"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"}
|