UNPKG

@atlaskit/editor-plugin-extension

Version:

editor-plugin-extension plugin for @atlaskit/editor-core

87 lines (85 loc) 2.89 kB
/** * @jsxRuntime classic * @jsx jsx */ import React, { useState } from 'react'; // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766 import { css, jsx } from '@emotion/react'; import { injectIntl } from 'react-intl'; import { IconButton } from '@atlaskit/button/new'; import { configPanelMessages as messages } from '@atlaskit/editor-common/extensions'; import ChevronDownIcon from '@atlaskit/icon/core/chevron-down'; import ChevronRightIcon from '@atlaskit/icon/core/chevron-right'; const expandContainerStyles = css({ borderBottom: `${"var(--ds-border-width, 1px)"} solid ${"var(--ds-border, #0B120E24)"}` }); const expandControlStyles = css({ display: 'flex', height: "var(--ds-space-600, 48px)", justifyContent: 'center', paddingRight: "var(--ds-space-100, 8px)" }); const chevronContainerStyles = css({ display: 'flex', alignItems: 'center', // eslint-disable-next-line @atlaskit/design-system/no-nested-styles, @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766 '& > button': { width: "var(--ds-space-300, 24px)", height: "var(--ds-space-300, 24px)" } }); const labelContainerStyles = css({ width: '100%', alignItems: 'center', display: 'flex', fontWeight: "var(--ds-font-weight-medium, 500)" }); const expandContentContainerHiddenStyles = css({ display: 'none', marginTop: "var(--ds-space-negative-100, -8px)" }); const expandContentContainerVisibleStyles = css({ display: 'block', marginTop: "var(--ds-space-negative-100, -8px)" }); function Expand({ field, children, isExpanded = false, intl }) { const [expanded, setExpanded] = useState(isExpanded); return jsx("div", { "data-testid": "expand-config-field", css: expandContainerStyles }, jsx("div", { css: expandControlStyles }, jsx("div", { css: labelContainerStyles }, field.label), jsx("div", { css: chevronContainerStyles }, jsx(IconButton // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , { onClick: () => { setExpanded(!expanded); }, label: intl.formatMessage(expanded ? messages.collapse : messages.expand), testId: "form-expand-toggle" // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , icon: iconProps => expanded ? jsx(ChevronDownIcon, { label: iconProps.label, size: "small" }) : jsx(ChevronRightIcon, { label: iconProps.label, size: "small" }) }))), jsx("div", { "data-testid": "expand-content-container", css: expanded ? expandContentContainerVisibleStyles : expandContentContainerHiddenStyles }, children)); } // eslint-disable-next-line @typescript-eslint/ban-types const _default_1 = injectIntl(Expand); export default _default_1;