@amboss/design-system 1.10.3 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/build-tokens/_breakpoints.json.js +4 -1
- package/build/cjs/build-tokens/visualConfig.js +29 -0
- package/build/cjs/src/components/DataTable/DataTable.js +138 -0
- package/build/cjs/src/components/DataTable/TableBody.js +171 -0
- package/build/cjs/src/components/DataTable/TableCell.js +45 -0
- package/build/cjs/src/components/DataTable/TableHeader.js +197 -0
- package/build/cjs/src/components/DataTable/useDataTableSort.js +42 -0
- package/build/cjs/src/components/Form/SegmentedControl/SegmentedControl.js +126 -0
- package/build/cjs/src/components/Form/SegmentedControl/SegmentedControlOption.js +216 -0
- package/build/cjs/src/index.js +6 -0
- package/build/cjs/src/shared/mediaQueries.js +2 -2
- package/build/esm/build-tokens/_breakpoints.json.js +2 -2
- package/build/esm/build-tokens/visualConfig.d.ts +16 -0
- package/build/esm/build-tokens/visualConfig.js +29 -0
- package/build/esm/build-tokens/visualConfig.js.map +1 -1
- package/build/esm/src/components/Badge/Badge.js.map +1 -1
- package/build/esm/src/components/Box/Box.js.map +1 -1
- package/build/esm/src/components/Button/Button.js.map +1 -1
- package/build/esm/src/components/Callout/Callout.js.map +1 -1
- package/build/esm/src/components/Card/Card.js.map +1 -1
- package/build/esm/src/components/Card/CardBox.js.map +1 -1
- package/build/esm/src/components/Card/CardHeader/CardHeader.js.map +1 -1
- package/build/esm/src/components/Collapsible/Collapsible.js.map +1 -1
- package/build/esm/src/components/Column/Columns.js.map +1 -1
- package/build/esm/src/components/Container/Container.js.map +1 -1
- package/build/esm/src/components/DataTable/DataTable.d.ts +57 -0
- package/build/esm/src/components/DataTable/DataTable.js +132 -0
- package/build/esm/src/components/DataTable/DataTable.js.map +1 -0
- package/build/esm/src/components/DataTable/TableBody.d.ts +9 -0
- package/build/esm/src/components/DataTable/TableBody.js +163 -0
- package/build/esm/src/components/DataTable/TableBody.js.map +1 -0
- package/build/esm/src/components/DataTable/TableCell.d.ts +15 -0
- package/build/esm/src/components/DataTable/TableCell.js +38 -0
- package/build/esm/src/components/DataTable/TableCell.js.map +1 -0
- package/build/esm/src/components/DataTable/TableHeader.d.ts +9 -0
- package/build/esm/src/components/DataTable/TableHeader.js +188 -0
- package/build/esm/src/components/DataTable/TableHeader.js.map +1 -0
- package/build/esm/src/components/DataTable/index.d.ts +4 -0
- package/build/esm/src/components/DataTable/types.d.ts +15 -0
- package/build/esm/src/components/DataTable/useDataTableSort.d.ts +14 -0
- package/build/esm/src/components/DataTable/useDataTableSort.js +41 -0
- package/build/esm/src/components/DataTable/useDataTableSort.js.map +1 -0
- package/build/esm/src/components/Divider/Divider.js.map +1 -1
- package/build/esm/src/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/build/esm/src/components/DropdownMenu/MenuItem.js.map +1 -1
- package/build/esm/src/components/Form/Checkbox/Checkbox.js.map +1 -1
- package/build/esm/src/components/Form/FormErrorMessages/FormErrorMessages.js.map +1 -1
- package/build/esm/src/components/Form/FormField/FormField.js.map +1 -1
- package/build/esm/src/components/Form/FormFieldGroup/FormFieldGroup.js.map +1 -1
- package/build/esm/src/components/Form/FormLabelText/FormLabelText.js.map +1 -1
- package/build/esm/src/components/Form/Input/Input.js.map +1 -1
- package/build/esm/src/components/Form/PasswordInput/PasswordInput.js.map +1 -1
- package/build/esm/src/components/Form/Radio/Radio.js.map +1 -1
- package/build/esm/src/components/Form/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/src/components/Form/SegmentedControl/SegmentedControl.d.ts +31 -0
- package/build/esm/src/components/Form/SegmentedControl/SegmentedControl.js +119 -0
- package/build/esm/src/components/Form/SegmentedControl/SegmentedControl.js.map +1 -0
- package/build/esm/src/components/Form/SegmentedControl/SegmentedControlOption.d.ts +8 -0
- package/build/esm/src/components/Form/SegmentedControl/SegmentedControlOption.js +210 -0
- package/build/esm/src/components/Form/SegmentedControl/SegmentedControlOption.js.map +1 -0
- package/build/esm/src/components/Form/Select/Select.js.map +1 -1
- package/build/esm/src/components/Form/Textarea/Textarea.js.map +1 -1
- package/build/esm/src/components/Form/Toggle/Toggle.js.map +1 -1
- package/build/esm/src/components/Form/ToggleButton/ToggleButton.js.map +1 -1
- package/build/esm/src/components/Icon/Icon.js.map +1 -1
- package/build/esm/src/components/Inline/Inline.js.map +1 -1
- package/build/esm/src/components/Link/Link.js.map +1 -1
- package/build/esm/src/components/LoadingSpinner/LoadingSpinner.js.map +1 -1
- package/build/esm/src/components/Logo/Logo.js.map +1 -1
- package/build/esm/src/components/MediaItem/MediaItem.js.map +1 -1
- package/build/esm/src/components/MediaViewerBar/MediaViewerBar.js.map +1 -1
- package/build/esm/src/components/Notification/Notification.js.map +1 -1
- package/build/esm/src/components/Pagination/Pagination.js.map +1 -1
- package/build/esm/src/components/Patterns/ButtonGroup/ButtonGroup.js.map +1 -1
- package/build/esm/src/components/Patterns/Modal/Modal.js.map +1 -1
- package/build/esm/src/components/PictogramButton/PictogramButton.js.map +1 -1
- package/build/esm/src/components/Portal/Portal.js.map +1 -1
- package/build/esm/src/components/ProgressBar/ProgressBar.js.map +1 -1
- package/build/esm/src/components/RoundButton/RoundButton.js.map +1 -1
- package/build/esm/src/components/SearchResult/SearchResult.js.map +1 -1
- package/build/esm/src/components/SegmentedProgressBar/SegmentedProgressBar.js.map +1 -1
- package/build/esm/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js.map +1 -1
- package/build/esm/src/components/Stack/Stack.js.map +1 -1
- package/build/esm/src/components/SubThemeProvider/SubThemeProvider.js.map +1 -1
- package/build/esm/src/components/Tabs/Tabs.js.map +1 -1
- package/build/esm/src/components/Typography/StyledText/StyledText.js.map +1 -1
- package/build/esm/src/components/Typography/Text/Text.js.map +1 -1
- package/build/esm/src/components/Typography/TextClamped/TextClamped.js.map +1 -1
- package/build/esm/src/components/VirtualScrollList/VirtualScrollList.js.map +1 -1
- package/build/esm/src/components/VirtualScrollList/VirtualScrollListReducer.js.map +1 -1
- package/build/esm/src/index.d.ts +2 -0
- package/build/esm/src/index.js +3 -0
- package/build/esm/src/index.js.map +1 -1
- package/build/esm/src/shared/ScreenReaderText.js.map +1 -1
- package/build/esm/src/shared/flattenChildren.js.map +1 -1
- package/build/esm/src/shared/informDeprecation.js.map +1 -1
- package/build/esm/src/shared/mediaQueries.js +2 -2
- package/build/esm/src/shared/mediaQueries.js.map +1 -1
- package/build/esm/src/shared/useAutoPosition.js.map +1 -1
- package/build/esm/src/shared/useKeyboard.js.map +1 -1
- package/build/esm/src/shared/useOnEscapePress.js.map +1 -1
- package/build/esm/src/shared/useOutsideClick.js.map +1 -1
- package/package.json +4 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResult.js","sources":["../../../../../src/components/SearchResult/SearchResult.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Columns, Column } from \"../Column/Columns\";\nimport { Icon, IconName } from \"../Icon/Icon\";\nimport { Inline } from \"../Inline/Inline\";\nimport { Stack } from \"../Stack/Stack\";\nimport { StyledText } from \"../Typography/StyledText/StyledText\";\nimport { Badge } from \"../Badge/Badge\";\nimport { TextClamped } from \"../Typography/TextClamped/TextClamped\";\n\nexport type SecondaryTarget = {\n title: string;\n body?: string;\n link: (props: { children: React.ReactNode }) => React.ReactElement;\n \"data-e2e-test-id\"?: string;\n};\n\nexport type SecondaryTargetsProps = {\n data: SecondaryTarget[];\n renderItem: (item: SecondaryTarget) => React.ReactElement;\n compact?: boolean;\n};\n\nconst StyledResultContainer = styled.div(() => ({\n position: \"relative\",\n textDecoration: \"none\",\n}));\n\nconst StyledLinkTitle = styled.div(({ theme }) => ({\n color: theme.values.color.text.primary,\n}));\n\nconst StyledLinkContainerOnHover = styled.div(() => ({\n \"> a\": {\n textDecoration: \"none\",\n },\n \"&:hover\": {\n [`${StyledLinkTitle}`]: {\n textDecoration: \"underline\",\n },\n },\n}));\n\nconst SecondaryTargets = ({\n data,\n renderItem,\n compact,\n}: SecondaryTargetsProps) =>\n compact ? (\n <Inline space=\"l\" vSpace=\"xs\">\n {data && data.length && data.map((target) => renderItem(target))}\n </Inline>\n ) : (\n <Columns gap=\"m\">\n {data.map((target) => (\n <Column\n data-e2e-test-id={target[\"data-e2e-test-id\"]}\n size={[12, 6, 6]}\n key={target.title}\n >\n {renderItem(target)}\n </Column>\n ))}\n </Columns>\n );\n\nexport type SearchResultProps = {\n /** The result title. Supports some nested HTML tags like <b> and <i>. Text gets clamped after 3 lines. */\n title: string;\n /** The subtitle that accompanies the title. Supports some nested HTML tags like <b> and <i>. Text gets clamped after 3 lines. */\n subtitle?: string;\n /** The primary AMBOSS target. */\n link: (props: { children: React.ReactNode }) => React.ReactElement;\n /** The left icon */\n icon?: IconName;\n /** List of details. Supports some nested HTML tags like <b> and <i>. */\n details?: string[];\n /** Usually a text content of the search result. Supports some nested HTML tags like <b> and <i>. Maximum 3 details items allowed where each test gets clamped after 3 lines. */\n body?: string;\n /** List of secondary AMBOSS targets with titles. Text gets clamped after 3 lines. */\n secondaryTargets?: SecondaryTarget[];\n /** Indicate an external link */\n isExternal?: boolean;\n /** List of labels. For example: preclinic, clinic, physician. */\n labels?: string[];\n /** The test id for the result's primary target. */\n \"data-e2e-test-id\"?: string;\n};\n\nconst defaultProps: Partial<SearchResultProps> = {\n icon: null,\n details: [],\n body: null,\n secondaryTargets: [],\n isExternal: false,\n labels: [],\n \"data-e2e-test-id\": undefined,\n};\n\nexport function SearchResult({\n title,\n subtitle,\n icon,\n details,\n body,\n secondaryTargets,\n link,\n labels,\n \"data-e2e-test-id\": dataE2eTestId,\n}: SearchResultProps): React.ReactElement {\n const containerRef = useRef(null);\n const hasShallowSecondaryTargets =\n secondaryTargets &&\n secondaryTargets.reduce((prev, curr) => (curr.body ? false : prev), true);\n const MainLink = link;\n\n return (\n <StyledResultContainer ref={containerRef} data-ds-id=\"SearchResult\">\n <Columns gap=\"m\">\n {icon && (\n <Column size=\"narrow\">\n <Icon name={icon} variant=\"tertiary\" />\n </Column>\n )}\n <Column size=\"fill\">\n <Stack space=\"s\">\n <StyledLinkContainerOnHover data-e2e-test-id={dataE2eTestId}>\n <MainLink>\n <Stack space=\"xxs\">\n <Columns gap=\"xxs\">\n <Column size={[12, 12, \"fill\"]}>\n <StyledLinkTitle>\n <Stack space=\"zero\">\n <TextClamped\n variant=\"primary\"\n weight=\"bold\"\n lines={3}\n hyphens=\"auto\"\n >\n <StyledText>{title}</StyledText>\n </TextClamped>\n {subtitle && (\n <TextClamped variant=\"primary\" lines={3} size=\"s\">\n <StyledText>{subtitle}</StyledText>\n </TextClamped>\n )}\n </Stack>\n </StyledLinkTitle>\n </Column>\n <Column size=\"narrow\">\n {labels && !!labels.length && (\n <Inline space=\"xs\">\n {labels.map((label, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Badge text={label} key={`${i}${label}`} />\n ))}\n </Inline>\n )}\n </Column>\n </Columns>\n {details && !!details.length && (\n <Stack space=\"zero\">\n {details.slice(0, 3).map((detail) => (\n <TextClamped\n variant=\"secondary\"\n size=\"s\"\n key={detail}\n lines={3}\n >\n <StyledText>{detail}</StyledText>\n </TextClamped>\n ))}\n </Stack>\n )}\n {body && (\n <TextClamped size=\"s\" lines={2}>\n <StyledText>{body}</StyledText>\n </TextClamped>\n )}\n </Stack>\n </MainLink>\n </StyledLinkContainerOnHover>\n {secondaryTargets && !!secondaryTargets.length && (\n <SecondaryTargets\n data={secondaryTargets}\n compact={hasShallowSecondaryTargets}\n renderItem={({\n title: secTitle,\n link: secLink,\n body: secBody,\n \"data-e2e-test-id\": secDataE2eTestId,\n }) => {\n const SecLink = secLink;\n return (\n <StyledLinkContainerOnHover\n key={title}\n data-e2e-test-id={secDataE2eTestId}\n >\n <SecLink>\n <StyledLinkTitle>\n <TextClamped\n size=\"s\"\n variant=\"primary\"\n weight=\"bold\"\n lines={3}\n >\n <StyledText>{secTitle}</StyledText>\n </TextClamped>\n </StyledLinkTitle>\n {secBody && (\n <TextClamped size=\"s\" variant=\"secondary\" lines={2}>\n <StyledText>{secBody}</StyledText>\n </TextClamped>\n )}\n </SecLink>\n </StyledLinkContainerOnHover>\n );\n }}\n />\n )}\n </Stack>\n </Column>\n </Columns>\n </StyledResultContainer>\n );\n}\n\nSearchResult.defaultProps = defaultProps;\n"],"names":["StyledResultContainer","_styled","process","env","NODE_ENV","target","label","position","textDecoration","StyledLinkTitle","_ref","theme","color","values","text","primary","StyledLinkContainerOnHover","SecondaryTargets","_ref2","data","renderItem","compact","React","createElement","Inline","space","vSpace","length","map","Columns","gap","Column","size","key","title","defaultProps","icon","details","body","secondaryTargets","isExternal","labels","undefined","SearchResult","_ref3","subtitle","link","dataE2eTestId","containerRef","useRef","hasShallowSecondaryTargets","reduce","prev","curr","MainLink","ref","Icon","name","variant","Stack","TextClamped","weight","lines","hyphens","StyledText","i","Badge","slice","detail","_ref4","secTitle","secLink","secBody","secDataE2eTestId","SecLink"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchResult.js","sources":["../../../../../src/components/SearchResult/SearchResult.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Columns, Column } from \"../Column/Columns\";\nimport { Icon, IconName } from \"../Icon/Icon\";\nimport { Inline } from \"../Inline/Inline\";\nimport { Stack } from \"../Stack/Stack\";\nimport { StyledText } from \"../Typography/StyledText/StyledText\";\nimport { Badge } from \"../Badge/Badge\";\nimport { TextClamped } from \"../Typography/TextClamped/TextClamped\";\n\nexport type SecondaryTarget = {\n title: string;\n body?: string;\n link: (props: { children: React.ReactNode }) => React.ReactElement;\n \"data-e2e-test-id\"?: string;\n};\n\nexport type SecondaryTargetsProps = {\n data: SecondaryTarget[];\n renderItem: (item: SecondaryTarget) => React.ReactElement;\n compact?: boolean;\n};\n\nconst StyledResultContainer = styled.div(() => ({\n position: \"relative\",\n textDecoration: \"none\",\n}));\n\nconst StyledLinkTitle = styled.div(({ theme }) => ({\n color: theme.values.color.text.primary,\n}));\n\nconst StyledLinkContainerOnHover = styled.div(() => ({\n \"> a\": {\n textDecoration: \"none\",\n },\n \"&:hover\": {\n [`${StyledLinkTitle}`]: {\n textDecoration: \"underline\",\n },\n },\n}));\n\nconst SecondaryTargets = ({\n data,\n renderItem,\n compact,\n}: SecondaryTargetsProps) =>\n compact ? (\n <Inline space=\"l\" vSpace=\"xs\">\n {data && data.length && data.map((target) => renderItem(target))}\n </Inline>\n ) : (\n <Columns gap=\"m\">\n {data.map((target) => (\n <Column\n data-e2e-test-id={target[\"data-e2e-test-id\"]}\n size={[12, 6, 6]}\n key={target.title}\n >\n {renderItem(target)}\n </Column>\n ))}\n </Columns>\n );\n\nexport type SearchResultProps = {\n /** The result title. Supports some nested HTML tags like <b> and <i>. Text gets clamped after 3 lines. */\n title: string;\n /** The subtitle that accompanies the title. Supports some nested HTML tags like <b> and <i>. Text gets clamped after 3 lines. */\n subtitle?: string;\n /** The primary AMBOSS target. */\n link: (props: { children: React.ReactNode }) => React.ReactElement;\n /** The left icon */\n icon?: IconName;\n /** List of details. Supports some nested HTML tags like <b> and <i>. */\n details?: string[];\n /** Usually a text content of the search result. Supports some nested HTML tags like <b> and <i>. Maximum 3 details items allowed where each test gets clamped after 3 lines. */\n body?: string;\n /** List of secondary AMBOSS targets with titles. Text gets clamped after 3 lines. */\n secondaryTargets?: SecondaryTarget[];\n /** Indicate an external link */\n isExternal?: boolean;\n /** List of labels. For example: preclinic, clinic, physician. */\n labels?: string[];\n /** The test id for the result's primary target. */\n \"data-e2e-test-id\"?: string;\n};\n\nconst defaultProps: Partial<SearchResultProps> = {\n icon: null,\n details: [],\n body: null,\n secondaryTargets: [],\n isExternal: false,\n labels: [],\n \"data-e2e-test-id\": undefined,\n};\n\nexport function SearchResult({\n title,\n subtitle,\n icon,\n details,\n body,\n secondaryTargets,\n link,\n labels,\n \"data-e2e-test-id\": dataE2eTestId,\n}: SearchResultProps): React.ReactElement {\n const containerRef = useRef(null);\n const hasShallowSecondaryTargets =\n secondaryTargets &&\n secondaryTargets.reduce((prev, curr) => (curr.body ? false : prev), true);\n const MainLink = link;\n\n return (\n <StyledResultContainer ref={containerRef} data-ds-id=\"SearchResult\">\n <Columns gap=\"m\">\n {icon && (\n <Column size=\"narrow\">\n <Icon name={icon} variant=\"tertiary\" />\n </Column>\n )}\n <Column size=\"fill\">\n <Stack space=\"s\">\n <StyledLinkContainerOnHover data-e2e-test-id={dataE2eTestId}>\n <MainLink>\n <Stack space=\"xxs\">\n <Columns gap=\"xxs\">\n <Column size={[12, 12, \"fill\"]}>\n <StyledLinkTitle>\n <Stack space=\"zero\">\n <TextClamped\n variant=\"primary\"\n weight=\"bold\"\n lines={3}\n hyphens=\"auto\"\n >\n <StyledText>{title}</StyledText>\n </TextClamped>\n {subtitle && (\n <TextClamped variant=\"primary\" lines={3} size=\"s\">\n <StyledText>{subtitle}</StyledText>\n </TextClamped>\n )}\n </Stack>\n </StyledLinkTitle>\n </Column>\n <Column size=\"narrow\">\n {labels && !!labels.length && (\n <Inline space=\"xs\">\n {labels.map((label, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Badge text={label} key={`${i}${label}`} />\n ))}\n </Inline>\n )}\n </Column>\n </Columns>\n {details && !!details.length && (\n <Stack space=\"zero\">\n {details.slice(0, 3).map((detail) => (\n <TextClamped\n variant=\"secondary\"\n size=\"s\"\n key={detail}\n lines={3}\n >\n <StyledText>{detail}</StyledText>\n </TextClamped>\n ))}\n </Stack>\n )}\n {body && (\n <TextClamped size=\"s\" lines={2}>\n <StyledText>{body}</StyledText>\n </TextClamped>\n )}\n </Stack>\n </MainLink>\n </StyledLinkContainerOnHover>\n {secondaryTargets && !!secondaryTargets.length && (\n <SecondaryTargets\n data={secondaryTargets}\n compact={hasShallowSecondaryTargets}\n renderItem={({\n title: secTitle,\n link: secLink,\n body: secBody,\n \"data-e2e-test-id\": secDataE2eTestId,\n }) => {\n const SecLink = secLink;\n return (\n <StyledLinkContainerOnHover\n key={title}\n data-e2e-test-id={secDataE2eTestId}\n >\n <SecLink>\n <StyledLinkTitle>\n <TextClamped\n size=\"s\"\n variant=\"primary\"\n weight=\"bold\"\n lines={3}\n >\n <StyledText>{secTitle}</StyledText>\n </TextClamped>\n </StyledLinkTitle>\n {secBody && (\n <TextClamped size=\"s\" variant=\"secondary\" lines={2}>\n <StyledText>{secBody}</StyledText>\n </TextClamped>\n )}\n </SecLink>\n </StyledLinkContainerOnHover>\n );\n }}\n />\n )}\n </Stack>\n </Column>\n </Columns>\n </StyledResultContainer>\n );\n}\n\nSearchResult.defaultProps = defaultProps;\n"],"names":["StyledResultContainer","_styled","process","env","NODE_ENV","target","label","position","textDecoration","StyledLinkTitle","_ref","theme","color","values","text","primary","StyledLinkContainerOnHover","SecondaryTargets","_ref2","data","renderItem","compact","React","createElement","Inline","space","vSpace","length","map","Columns","gap","Column","size","key","title","defaultProps","icon","details","body","secondaryTargets","isExternal","labels","undefined","SearchResult","_ref3","subtitle","link","dataE2eTestId","containerRef","useRef","hasShallowSecondaryTargets","reduce","prev","curr","MainLink","ref","Icon","name","variant","Stack","TextClamped","weight","lines","hyphens","StyledText","i","Badge","slice","detail","_ref4","secTitle","secLink","secBody","secDataE2eTestId","SecLink"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedProgressBar.js","sources":["../../../../../src/components/SegmentedProgressBar/SegmentedProgressBar.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Theme } from \"@emotion/react\";\n// eslint-disable-next-line import/no-cycle\nimport {\n getPercentagesForVariants,\n sanitizeInputValues,\n} from \"./SegmentedProgressBarUtil\";\n\nexport type ValuesVariant = \"success\" | \"warning\" | \"alert\";\n\nexport type StyleVariant = ValuesVariant | \"inProgress\";\n\nexport type Value = number;\n\nexport type ProgressBarWeight = \"thin\" | \"fat\";\n\nexport type SegmentedProgressBarProps = {\n /** The value for 100% progress. Consumer does not need to do percentage calculation.\n * Just pass this number and some values. The progress bar does all percentag calculations */\n maxValue: number;\n /** The values already progressed. Possible ValuesVariants are used to display progress in a different color.\n * Variants are:\n * success => green;\n * warning => yellow;\n * alert => red */\n values: Partial<Record<ValuesVariant, Value>>;\n squareCorners?: boolean;\n weight?: ProgressBarWeight;\n privateProps?: SegmentedProgressBarPrivateProps;\n \"data-e2e-test-id\"?: string;\n};\n\ntype SegmentedProgressBarPrivateProps = {\n monochrome?: boolean;\n};\n\ntype SegmentProps = {\n styleVariant: StyleVariant;\n percentage: number;\n monochrome: boolean;\n \"data-e2e-test-id\"?: string;\n};\n\nconst defaultProps: Partial<SegmentedProgressBarProps> = {\n \"data-e2e-test-id\": undefined,\n weight: \"fat\",\n squareCorners: false,\n privateProps: {\n monochrome: false,\n },\n};\n\nconst getBackgroundColor = (\n theme: Theme,\n style: StyleVariant,\n monochrome: boolean\n) => {\n switch (style) {\n case \"success\":\n return monochrome\n ? theme.values.color.segementedProgressBar.monochrome\n : theme.values.color.segementedProgressBar.success;\n case \"warning\":\n return monochrome\n ? theme.values.color.segementedProgressBar.monochrome\n : theme.values.color.segementedProgressBar.warning;\n case \"alert\":\n return monochrome\n ? theme.values.color.segementedProgressBar.monochrome\n : theme.values.color.segementedProgressBar.alert;\n case \"inProgress\":\n default:\n return theme.values.color.segementedProgressBar.inProgress;\n }\n};\n\nconst StyledSegmentedProgressBar = styled.div<\n Partial<SegmentedProgressBarProps>\n>(({ theme, squareCorners, weight }) => ({\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n borderRadius: squareCorners\n ? 0\n : theme.variables.size.borderRadius.progressBar,\n overflow: \"hidden\",\n height:\n weight === \"thin\"\n ? theme.variables.size.spacing.xxs\n : theme.variables.size.spacing.xs,\n}));\n\nconst StyledSegment = styled.div<Partial<SegmentProps>>(\n ({ theme, styleVariant, percentage, monochrome }) => ({\n height: \"100%\",\n backgroundColor: getBackgroundColor(theme, styleVariant, monochrome),\n width: `${percentage}%`,\n })\n);\n\nexport function SegmentedProgressBar({\n maxValue,\n values,\n weight,\n squareCorners,\n privateProps: { monochrome },\n \"data-e2e-test-id\": dataE2eTestId,\n}: SegmentedProgressBarProps): React.ReactElement {\n const { sanitizedMaxValue, sanitizedValues } = sanitizeInputValues(\n maxValue,\n values\n );\n\n const percentages: {\n percentage: number;\n style: StyleVariant;\n }[] = getPercentagesForVariants(sanitizedMaxValue, sanitizedValues);\n\n return (\n <StyledSegmentedProgressBar\n data-e2e-test-id={dataE2eTestId}\n data-ds-id=\"SegmentedProgressBar\"\n squareCorners={squareCorners}\n weight={weight}\n >\n {percentages.map(({ percentage, style }) => (\n <StyledSegment\n key={style}\n data-e2e-test-id={style as string}\n styleVariant={style}\n monochrome={monochrome}\n percentage={percentage}\n />\n ))}\n </StyledSegmentedProgressBar>\n );\n}\n\nSegmentedProgressBar.defaultProps = defaultProps;\n"],"names":["defaultProps","undefined","weight","squareCorners","privateProps","monochrome","getBackgroundColor","theme","style","values","color","segementedProgressBar","success","warning","alert","inProgress","StyledSegmentedProgressBar","_styled","process","env","NODE_ENV","target","label","_ref","width","display","flexDirection","borderRadius","variables","size","progressBar","overflow","height","spacing","xxs","xs","StyledSegment","_ref2","styleVariant","percentage","backgroundColor","SegmentedProgressBar","_ref3","maxValue","dataE2eTestId","sanitizedMaxValue","sanitizedValues","sanitizeInputValues","percentages","getPercentagesForVariants","React","createElement","map","_ref4","key"],"mappings":";;;;AA4CA,MAAMA,YAAgD,GAAG;AACvD,EAAA,kBAAkB,EAAEC,SAAS;AAC7BC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,aAAa,EAAE,KAAK;AACpBC,EAAAA,YAAY,EAAE;AACZC,IAAAA,UAAU,EAAE,KAAA;AACd,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,kBAAkB,GAAGA,CACzBC,KAAY,EACZC,KAAmB,EACnBH,UAAmB,KAChB;AACH,EAAA,QAAQG,KAAK;AACX,IAAA,KAAK,SAAS;MACZ,OAAOH,UAAU,GACbE,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACN,UAAU,GACnDE,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACC,OAAO,CAAA;AACtD,IAAA,KAAK,SAAS;MACZ,OAAOP,UAAU,GACbE,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACN,UAAU,GACnDE,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACE,OAAO,CAAA;AACtD,IAAA,KAAK,OAAO;MACV,OAAOR,UAAU,GACbE,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACN,UAAU,GACnDE,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACG,KAAK,CAAA;AACpD,IAAA,KAAK,YAAY,CAAA;AACjB,IAAA;MACE,OAAOP,KAAK,CAACE,MAAM,CAACC,KAAK,CAACC,qBAAqB,CAACI,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"SegmentedProgressBar.js","sources":["../../../../../src/components/SegmentedProgressBar/SegmentedProgressBar.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Theme } from \"@emotion/react\";\n// eslint-disable-next-line import/no-cycle\nimport {\n getPercentagesForVariants,\n sanitizeInputValues,\n} from \"./SegmentedProgressBarUtil\";\n\nexport type ValuesVariant = \"success\" | \"warning\" | \"alert\";\n\nexport type StyleVariant = ValuesVariant | \"inProgress\";\n\nexport type Value = number;\n\nexport type ProgressBarWeight = \"thin\" | \"fat\";\n\nexport type SegmentedProgressBarProps = {\n /** The value for 100% progress. Consumer does not need to do percentage calculation.\n * Just pass this number and some values. The progress bar does all percentag calculations */\n maxValue: number;\n /** The values already progressed. Possible ValuesVariants are used to display progress in a different color.\n * Variants are:\n * success => green;\n * warning => yellow;\n * alert => red */\n values: Partial<Record<ValuesVariant, Value>>;\n squareCorners?: boolean;\n weight?: ProgressBarWeight;\n privateProps?: SegmentedProgressBarPrivateProps;\n \"data-e2e-test-id\"?: string;\n};\n\ntype SegmentedProgressBarPrivateProps = {\n monochrome?: boolean;\n};\n\ntype SegmentProps = {\n styleVariant: StyleVariant;\n percentage: number;\n monochrome: boolean;\n \"data-e2e-test-id\"?: string;\n};\n\nconst defaultProps: Partial<SegmentedProgressBarProps> = {\n \"data-e2e-test-id\": undefined,\n weight: \"fat\",\n squareCorners: false,\n privateProps: {\n monochrome: false,\n },\n};\n\nconst getBackgroundColor = (\n theme: Theme,\n style: StyleVariant,\n monochrome: boolean\n) => {\n switch (style) {\n case \"success\":\n return monochrome\n ? theme.values.color.segementedProgressBar.monochrome\n : theme.values.color.segementedProgressBar.success;\n case \"warning\":\n return monochrome\n ? theme.values.color.segementedProgressBar.monochrome\n : theme.values.color.segementedProgressBar.warning;\n case \"alert\":\n return monochrome\n ? theme.values.color.segementedProgressBar.monochrome\n : theme.values.color.segementedProgressBar.alert;\n case \"inProgress\":\n default:\n return theme.values.color.segementedProgressBar.inProgress;\n }\n};\n\nconst StyledSegmentedProgressBar = styled.div<\n Partial<SegmentedProgressBarProps>\n>(({ theme, squareCorners, weight }) => ({\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n borderRadius: squareCorners\n ? 0\n : theme.variables.size.borderRadius.progressBar,\n overflow: \"hidden\",\n height:\n weight === \"thin\"\n ? theme.variables.size.spacing.xxs\n : theme.variables.size.spacing.xs,\n}));\n\nconst StyledSegment = styled.div<Partial<SegmentProps>>(\n ({ theme, styleVariant, percentage, monochrome }) => ({\n height: \"100%\",\n backgroundColor: getBackgroundColor(theme, styleVariant, monochrome),\n width: `${percentage}%`,\n })\n);\n\nexport function SegmentedProgressBar({\n maxValue,\n values,\n weight,\n squareCorners,\n privateProps: { monochrome },\n \"data-e2e-test-id\": dataE2eTestId,\n}: SegmentedProgressBarProps): React.ReactElement {\n const { sanitizedMaxValue, sanitizedValues } = sanitizeInputValues(\n maxValue,\n values\n );\n\n const percentages: {\n percentage: number;\n style: StyleVariant;\n }[] = getPercentagesForVariants(sanitizedMaxValue, sanitizedValues);\n\n return (\n <StyledSegmentedProgressBar\n data-e2e-test-id={dataE2eTestId}\n data-ds-id=\"SegmentedProgressBar\"\n squareCorners={squareCorners}\n weight={weight}\n >\n {percentages.map(({ percentage, style }) => (\n <StyledSegment\n key={style}\n data-e2e-test-id={style as string}\n styleVariant={style}\n monochrome={monochrome}\n percentage={percentage}\n />\n ))}\n </StyledSegmentedProgressBar>\n );\n}\n\nSegmentedProgressBar.defaultProps = defaultProps;\n"],"names":["defaultProps","undefined","weight","squareCorners","privateProps","monochrome","getBackgroundColor","theme","style","values","color","segementedProgressBar","success","warning","alert","inProgress","StyledSegmentedProgressBar","_styled","process","env","NODE_ENV","target","label","_ref","width","display","flexDirection","borderRadius","variables","size","progressBar","overflow","height","spacing","xxs","xs","StyledSegment","_ref2","styleVariant","percentage","backgroundColor","SegmentedProgressBar","_ref3","maxValue","dataE2eTestId","sanitizedMaxValue","sanitizedValues","sanitizeInputValues","percentages","getPercentagesForVariants","React","createElement","map","_ref4","key"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedProgressBarUtil.js","sources":["../../../../../src/components/SegmentedProgressBar/SegmentedProgressBarUtil.ts"],"sourcesContent":["// eslint-disable-next-line import/no-cycle\nimport { StyleVariant, Value, ValuesVariant } from \"./SegmentedProgressBar\";\n\nconst variants: ValuesVariant[] = [\"success\", \"warning\", \"alert\"];\n\nconst getTotalFilledValue = (values: Partial<Record<ValuesVariant, Value>>) =>\n variants.reduce(\n (currentValue, variant) =>\n values[variant] && values[variant] > 0\n ? currentValue + values[variant]\n : currentValue,\n 0\n );\n\nconst getPercentagesForVariants = (\n maxValue: number,\n values: Partial<Record<ValuesVariant, Value>>\n): { percentage: number; style: StyleVariant }[] => {\n const result = variants.map((variant) => {\n const percentage: number = (100 * values[variant]) / maxValue;\n\n return percentage > 0\n ? { percentage, style: variant as StyleVariant }\n : null;\n });\n\n const usedPercentage = result.reduce(\n (currentValue, item) => currentValue + (item ? item.percentage : 0),\n 0\n );\n\n // add a last segment for the remaing percentage\n if (usedPercentage < 100) {\n result.push({\n percentage: 100 - usedPercentage,\n style: \"inProgress\" as StyleVariant,\n });\n }\n\n // we need to filter out the null values.\n return result.filter(Boolean);\n};\n\nconst sanitizeInputValues = (\n maxValue: number,\n values: Partial<Record<ValuesVariant, Value>>\n): {\n sanitizedMaxValue: number;\n sanitizedValues: Partial<Record<ValuesVariant, Value>>;\n} => {\n const totalFilledValue = getTotalFilledValue(values);\n const sanitizedMaxValue =\n maxValue > totalFilledValue ? maxValue : totalFilledValue;\n\n const sanitizedValues: Partial<Record<ValuesVariant, Value>> = {};\n variants.forEach((variant) => {\n sanitizedValues[variant] =\n values[variant] && values[variant] > 0 ? values[variant] : 0;\n });\n\n return { sanitizedMaxValue, sanitizedValues };\n};\n\nexport { sanitizeInputValues, getPercentagesForVariants };\n"],"names":["variants","getTotalFilledValue","values","reduce","currentValue","variant","getPercentagesForVariants","maxValue","result","map","percentage","style","usedPercentage","item","push","filter","Boolean","sanitizeInputValues","totalFilledValue","sanitizedMaxValue","sanitizedValues","forEach"],"mappings":"AAAA;;AAGA,MAAMA,QAAyB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAEjE,MAAMC,mBAAmB,GAAIC,MAA6C,IACxEF,QAAQ,CAACG,MAAM,CACb,CAACC,YAAY,EAAEC,OAAO,KACpBH,MAAM,CAACG,OAAO,CAAC,IAAIH,MAAM,CAACG,OAAO,CAAC,GAAG,CAAC,GAClCD,YAAY,GAAGF,MAAM,CAACG,OAAO,CAAC,GAC9BD,YAAY,EAClB,CAAC,
|
|
1
|
+
{"version":3,"file":"SegmentedProgressBarUtil.js","sources":["../../../../../src/components/SegmentedProgressBar/SegmentedProgressBarUtil.ts"],"sourcesContent":["// eslint-disable-next-line import/no-cycle\nimport { StyleVariant, Value, ValuesVariant } from \"./SegmentedProgressBar\";\n\nconst variants: ValuesVariant[] = [\"success\", \"warning\", \"alert\"];\n\nconst getTotalFilledValue = (values: Partial<Record<ValuesVariant, Value>>) =>\n variants.reduce(\n (currentValue, variant) =>\n values[variant] && values[variant] > 0\n ? currentValue + values[variant]\n : currentValue,\n 0\n );\n\nconst getPercentagesForVariants = (\n maxValue: number,\n values: Partial<Record<ValuesVariant, Value>>\n): { percentage: number; style: StyleVariant }[] => {\n const result = variants.map((variant) => {\n const percentage: number = (100 * values[variant]) / maxValue;\n\n return percentage > 0\n ? { percentage, style: variant as StyleVariant }\n : null;\n });\n\n const usedPercentage = result.reduce(\n (currentValue, item) => currentValue + (item ? item.percentage : 0),\n 0\n );\n\n // add a last segment for the remaing percentage\n if (usedPercentage < 100) {\n result.push({\n percentage: 100 - usedPercentage,\n style: \"inProgress\" as StyleVariant,\n });\n }\n\n // we need to filter out the null values.\n return result.filter(Boolean);\n};\n\nconst sanitizeInputValues = (\n maxValue: number,\n values: Partial<Record<ValuesVariant, Value>>\n): {\n sanitizedMaxValue: number;\n sanitizedValues: Partial<Record<ValuesVariant, Value>>;\n} => {\n const totalFilledValue = getTotalFilledValue(values);\n const sanitizedMaxValue =\n maxValue > totalFilledValue ? maxValue : totalFilledValue;\n\n const sanitizedValues: Partial<Record<ValuesVariant, Value>> = {};\n variants.forEach((variant) => {\n sanitizedValues[variant] =\n values[variant] && values[variant] > 0 ? values[variant] : 0;\n });\n\n return { sanitizedMaxValue, sanitizedValues };\n};\n\nexport { sanitizeInputValues, getPercentagesForVariants };\n"],"names":["variants","getTotalFilledValue","values","reduce","currentValue","variant","getPercentagesForVariants","maxValue","result","map","percentage","style","usedPercentage","item","push","filter","Boolean","sanitizeInputValues","totalFilledValue","sanitizedMaxValue","sanitizedValues","forEach"],"mappings":"AAAA;;AAGA,MAAMA,QAAyB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAEjE,MAAMC,mBAAmB,GAAIC,MAA6C,IACxEF,QAAQ,CAACG,MAAM,CACb,CAACC,YAAY,EAAEC,OAAO,KACpBH,MAAM,CAACG,OAAO,CAAC,IAAIH,MAAM,CAACG,OAAO,CAAC,GAAG,CAAC,GAClCD,YAAY,GAAGF,MAAM,CAACG,OAAO,CAAC,GAC9BD,YAAY,EAClB,CACF,CAAC,CAAA;AAEH,MAAME,yBAAyB,GAAGA,CAChCC,QAAgB,EAChBL,MAA6C,KACK;AAClD,EAAA,MAAMM,MAAM,GAAGR,QAAQ,CAACS,GAAG,CAAEJ,OAAO,IAAK;IACvC,MAAMK,UAAkB,GAAI,GAAG,GAAGR,MAAM,CAACG,OAAO,CAAC,GAAIE,QAAQ,CAAA;IAE7D,OAAOG,UAAU,GAAG,CAAC,GACjB;MAAEA,UAAU;AAAEC,MAAAA,KAAK,EAAEN,OAAAA;AAAwB,KAAC,GAC9C,IAAI,CAAA;AACV,GAAC,CAAC,CAAA;EAEF,MAAMO,cAAc,GAAGJ,MAAM,CAACL,MAAM,CAClC,CAACC,YAAY,EAAES,IAAI,KAAKT,YAAY,IAAIS,IAAI,GAAGA,IAAI,CAACH,UAAU,GAAG,CAAC,CAAC,EACnE,CACF,CAAC,CAAA;;AAED;EACA,IAAIE,cAAc,GAAG,GAAG,EAAE;IACxBJ,MAAM,CAACM,IAAI,CAAC;MACVJ,UAAU,EAAE,GAAG,GAAGE,cAAc;AAChCD,MAAAA,KAAK,EAAE,YAAA;AACT,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACA,EAAA,OAAOH,MAAM,CAACO,MAAM,CAACC,OAAO,CAAC,CAAA;AAC/B,EAAC;AAED,MAAMC,mBAAmB,GAAGA,CAC1BV,QAAgB,EAChBL,MAA6C,KAI1C;AACH,EAAA,MAAMgB,gBAAgB,GAAGjB,mBAAmB,CAACC,MAAM,CAAC,CAAA;EACpD,MAAMiB,iBAAiB,GACrBZ,QAAQ,GAAGW,gBAAgB,GAAGX,QAAQ,GAAGW,gBAAgB,CAAA;EAE3D,MAAME,eAAsD,GAAG,EAAE,CAAA;AACjEpB,EAAAA,QAAQ,CAACqB,OAAO,CAAEhB,OAAO,IAAK;IAC5Be,eAAe,CAACf,OAAO,CAAC,GACtBH,MAAM,CAACG,OAAO,CAAC,IAAIH,MAAM,CAACG,OAAO,CAAC,GAAG,CAAC,GAAGH,MAAM,CAACG,OAAO,CAAC,GAAG,CAAC,CAAA;AAChE,GAAC,CAAC,CAAA;EAEF,OAAO;IAAEc,iBAAiB;AAAEC,IAAAA,eAAAA;GAAiB,CAAA;AAC/C;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.js","sources":["../../../../../src/components/Stack/Stack.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { flattenChildren } from \"../../shared/flattenChildren\";\nimport { mq } from \"../../shared/mediaQueries\";\n\nimport { HorizontalAlignment, MQ, SpaceSizes } from \"../../types\";\n\nexport type StackProps = {\n /** Represents the vertical between the Stack's children\n * specify [small screen space, medium screen space, large screen space] or one space for all screen sizes\n */\n space?: MQ<SpaceSizes> | SpaceSizes;\n /** Represents elements' horizontal alignment\n * specify [small screen alignItems, medium screen alignItems, large screen alignItems] or one alignItems for all screen sizes\n */\n alignItems?: MQ<HorizontalAlignment> | HorizontalAlignment;\n children: React.ReactNode[] | React.ReactElement;\n \"data-e2e-test-id\"?: string;\n /** @ignore */\n \"data-ds-id\"?: string;\n};\n\ntype StackItemProps = {\n /** Represents the vertical between the Stack's children\n * specify [small screen space, medium screen space, large screen space] or one space for all screen sizes\n */\n space?: MQ<SpaceSizes> | SpaceSizes;\n};\n\nconst defaultProps: Partial<StackProps> = {\n space: \"xs\",\n \"data-e2e-test-id\": undefined,\n \"data-ds-id\": \"Stack\",\n};\n\nconst StackContainer = styled.div<StackProps>(({ alignItems }) => ({\n ...mq({\n alignItems: [\n alignItems,\n {\n left: \"flex-start\",\n right: \"flex-end\",\n center: \"center\",\n spaceBetween: \"space-between\",\n },\n ],\n }),\n display: \"flex\",\n flexDirection: \"column\",\n}));\n\nconst StackItem = styled.div<StackItemProps>(({ theme, space }) => ({\n ...mq({\n marginTop: [space, theme.variables.size.spacing],\n }),\n \"&:first-of-type\": {\n marginTop: 0,\n },\n \"&:empty\": {\n marginTop: 0,\n },\n}));\n\nexport function Stack({\n children,\n space,\n alignItems,\n \"data-e2e-test-id\": dataE2eTestId,\n \"data-ds-id\": dataDsId,\n}: StackProps): React.ReactElement {\n return (\n <StackContainer\n data-e2e-test-id={dataE2eTestId}\n data-ds-id={dataDsId}\n alignItems={alignItems}\n >\n {React.Children.map(\n flattenChildren(children),\n (child) => child && <StackItem space={space}>{child}</StackItem>\n )}\n </StackContainer>\n );\n}\n\nStack.defaultProps = defaultProps;\n"],"names":["defaultProps","space","undefined","StackContainer","_styled","process","env","NODE_ENV","target","label","_ref","alignItems","mq","left","right","center","spaceBetween","display","flexDirection","StackItem","_ref2","theme","marginTop","variables","size","spacing","Stack","_ref3","children","dataE2eTestId","dataDsId","React","createElement","Children","map","flattenChildren","child"],"mappings":";;;;;AA6BA,MAAMA,YAAiC,GAAG;AACxCC,EAAAA,KAAK,EAAE,IAAI;AACX,EAAA,kBAAkB,EAAEC,SAAS;AAC7B,EAAA,YAAY,EAAE,OAAA;AAChB,CAAC,CAAA;AAED,MAAMC,cAAc,gBAAGC,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,gBAAA;AAAA,CAAA,CAAA,CAAuBC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,UAAAA;AAAW,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM;AACjE,IAAA,GAAGE,EAAE,CAAC;MACJD,UAAU,EAAE,CACVA,UAAU,EACV;AACEE,QAAAA,IAAI,EAAE,YAAY;AAClBC,QAAAA,KAAK,EAAE,UAAU;AACjBC,QAAAA,MAAM,EAAE,QAAQ;AAChBC,QAAAA,YAAY,EAAE,eAAA;OACf,CAAA;AAEL,KAAC,CAAC;AACFC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,QAAA;GAChB,CAAA;AAAA,CAAC,EAAAb,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,q1GAAA,CAAA,CAAA;AAEH,MAAMY,SAAS,gBAAGf,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,WAAA;AAAA,CAAA,CAAA,CAA2BW,KAAA,IAAA;EAAA,IAAC;IAAEC,KAAK;AAAEpB,IAAAA,KAAAA;AAAM,GAAC,GAAAmB,KAAA,CAAA;EAAA,OAAM;AAClE,IAAA,GAAGR,EAAE,CAAC;MACJU,SAAS,EAAE,CAACrB,KAAK,EAAEoB,KAAK,CAACE,SAAS,CAACC,IAAI,CAACC,OAAO,CAAA;AACjD,KAAC,CAAC;AACF,IAAA,iBAAiB,EAAE;AACjBH,MAAAA,SAAS,EAAE,CAAA;KACZ;AACD,IAAA,SAAS,EAAE;AACTA,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;GACD,CAAA;AAAA,CAAC,EAAAjB,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,q1GAAA,CAAA,CAAA;AAEI,SAASmB,KAAKA,CAAAC,KAAA,EAMc;EAAA,IANb;IACpBC,QAAQ;IACR3B,KAAK;IACLU,UAAU;AACV,IAAA,kBAAkB,EAAEkB,aAAa;AACjC,IAAA,YAAY,EAAEC,QAAAA;AACJ,GAAC,GAAAH,KAAA,CAAA;AACX,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAAC7B,cAAc,EAAA;AACb,IAAA,kBAAA,EAAkB0B,aAAc;AAChC,IAAA,YAAA,EAAYC,QAAS;AACrBnB,IAAAA,UAAU,EAAEA,UAAAA;AAAW,GAAA,EAEtBoB,KAAK,CAACE,QAAQ,CAACC,GAAG,CACjBC,eAAe,CAACP,QAAQ,CAAC,EACxBQ,KAAK,IAAKA,KAAK,iBAAIL,KAAA,CAAAC,aAAA,CAACb,SAAS,EAAA;AAAClB,IAAAA,KAAK,EAAEA,KAAAA;GAAQmC,EAAAA,
|
|
1
|
+
{"version":3,"file":"Stack.js","sources":["../../../../../src/components/Stack/Stack.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { flattenChildren } from \"../../shared/flattenChildren\";\nimport { mq } from \"../../shared/mediaQueries\";\n\nimport { HorizontalAlignment, MQ, SpaceSizes } from \"../../types\";\n\nexport type StackProps = {\n /** Represents the vertical between the Stack's children\n * specify [small screen space, medium screen space, large screen space] or one space for all screen sizes\n */\n space?: MQ<SpaceSizes> | SpaceSizes;\n /** Represents elements' horizontal alignment\n * specify [small screen alignItems, medium screen alignItems, large screen alignItems] or one alignItems for all screen sizes\n */\n alignItems?: MQ<HorizontalAlignment> | HorizontalAlignment;\n children: React.ReactNode[] | React.ReactElement;\n \"data-e2e-test-id\"?: string;\n /** @ignore */\n \"data-ds-id\"?: string;\n};\n\ntype StackItemProps = {\n /** Represents the vertical between the Stack's children\n * specify [small screen space, medium screen space, large screen space] or one space for all screen sizes\n */\n space?: MQ<SpaceSizes> | SpaceSizes;\n};\n\nconst defaultProps: Partial<StackProps> = {\n space: \"xs\",\n \"data-e2e-test-id\": undefined,\n \"data-ds-id\": \"Stack\",\n};\n\nconst StackContainer = styled.div<StackProps>(({ alignItems }) => ({\n ...mq({\n alignItems: [\n alignItems,\n {\n left: \"flex-start\",\n right: \"flex-end\",\n center: \"center\",\n spaceBetween: \"space-between\",\n },\n ],\n }),\n display: \"flex\",\n flexDirection: \"column\",\n}));\n\nconst StackItem = styled.div<StackItemProps>(({ theme, space }) => ({\n ...mq({\n marginTop: [space, theme.variables.size.spacing],\n }),\n \"&:first-of-type\": {\n marginTop: 0,\n },\n \"&:empty\": {\n marginTop: 0,\n },\n}));\n\nexport function Stack({\n children,\n space,\n alignItems,\n \"data-e2e-test-id\": dataE2eTestId,\n \"data-ds-id\": dataDsId,\n}: StackProps): React.ReactElement {\n return (\n <StackContainer\n data-e2e-test-id={dataE2eTestId}\n data-ds-id={dataDsId}\n alignItems={alignItems}\n >\n {React.Children.map(\n flattenChildren(children),\n (child) => child && <StackItem space={space}>{child}</StackItem>\n )}\n </StackContainer>\n );\n}\n\nStack.defaultProps = defaultProps;\n"],"names":["defaultProps","space","undefined","StackContainer","_styled","process","env","NODE_ENV","target","label","_ref","alignItems","mq","left","right","center","spaceBetween","display","flexDirection","StackItem","_ref2","theme","marginTop","variables","size","spacing","Stack","_ref3","children","dataE2eTestId","dataDsId","React","createElement","Children","map","flattenChildren","child"],"mappings":";;;;;AA6BA,MAAMA,YAAiC,GAAG;AACxCC,EAAAA,KAAK,EAAE,IAAI;AACX,EAAA,kBAAkB,EAAEC,SAAS;AAC7B,EAAA,YAAY,EAAE,OAAA;AAChB,CAAC,CAAA;AAED,MAAMC,cAAc,gBAAGC,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,gBAAA;AAAA,CAAA,CAAA,CAAuBC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,UAAAA;AAAW,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM;AACjE,IAAA,GAAGE,EAAE,CAAC;MACJD,UAAU,EAAE,CACVA,UAAU,EACV;AACEE,QAAAA,IAAI,EAAE,YAAY;AAClBC,QAAAA,KAAK,EAAE,UAAU;AACjBC,QAAAA,MAAM,EAAE,QAAQ;AAChBC,QAAAA,YAAY,EAAE,eAAA;OACf,CAAA;AAEL,KAAC,CAAC;AACFC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,QAAA;GAChB,CAAA;AAAA,CAAC,EAAAb,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,q1GAAA,CAAA,CAAA;AAEH,MAAMY,SAAS,gBAAGf,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,WAAA;AAAA,CAAA,CAAA,CAA2BW,KAAA,IAAA;EAAA,IAAC;IAAEC,KAAK;AAAEpB,IAAAA,KAAAA;AAAM,GAAC,GAAAmB,KAAA,CAAA;EAAA,OAAM;AAClE,IAAA,GAAGR,EAAE,CAAC;MACJU,SAAS,EAAE,CAACrB,KAAK,EAAEoB,KAAK,CAACE,SAAS,CAACC,IAAI,CAACC,OAAO,CAAA;AACjD,KAAC,CAAC;AACF,IAAA,iBAAiB,EAAE;AACjBH,MAAAA,SAAS,EAAE,CAAA;KACZ;AACD,IAAA,SAAS,EAAE;AACTA,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;GACD,CAAA;AAAA,CAAC,EAAAjB,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,q1GAAA,CAAA,CAAA;AAEI,SAASmB,KAAKA,CAAAC,KAAA,EAMc;EAAA,IANb;IACpBC,QAAQ;IACR3B,KAAK;IACLU,UAAU;AACV,IAAA,kBAAkB,EAAEkB,aAAa;AACjC,IAAA,YAAY,EAAEC,QAAAA;AACJ,GAAC,GAAAH,KAAA,CAAA;AACX,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAAC7B,cAAc,EAAA;AACb,IAAA,kBAAA,EAAkB0B,aAAc;AAChC,IAAA,YAAA,EAAYC,QAAS;AACrBnB,IAAAA,UAAU,EAAEA,UAAAA;AAAW,GAAA,EAEtBoB,KAAK,CAACE,QAAQ,CAACC,GAAG,CACjBC,eAAe,CAACP,QAAQ,CAAC,EACxBQ,KAAK,IAAKA,KAAK,iBAAIL,KAAA,CAAAC,aAAA,CAACb,SAAS,EAAA;AAAClB,IAAAA,KAAK,EAAEA,KAAAA;GAAQmC,EAAAA,KAAiB,CACjE,CACc,CAAC,CAAA;AAErB,CAAA;AAEAV,KAAK,CAAC1B,YAAY,GAAGA,YAAY;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubThemeProvider.js","sources":["../../../../../src/components/SubThemeProvider/SubThemeProvider.tsx"],"sourcesContent":["/* eslint-disable no-restricted-syntax */\nimport React from \"react\";\nimport { ThemeProvider, Theme } from \"@emotion/react\";\nimport { SubThemeTypes } from \"../../../build-tokens/_subThemeType\";\n\nexport type SubThemeProviderProps = {\n \"data-e2e-test-id\"?: string;\n children: React.ReactNode[] | React.ReactNode;\n name: \"unset\" | SubThemeTypes;\n};\n\ntype DeepPartial<T> = {\n [P in keyof T]?: DeepPartial<T[P]>;\n};\n\nfunction isObject(item: unknown) {\n return item && typeof item === \"object\" && !Array.isArray(item);\n}\n\nfunction mergeDeep<T>(\n target: DeepPartial<T>,\n ...sources: DeepPartial<T>[]\n): DeepPartial<T> {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(target, ...sources);\n}\n\nconst subThemeCreator = (parentTheme: Theme, name: SubThemeTypes): Theme =>\n mergeDeep({}, parentTheme, {\n values: {\n ...parentTheme.values.subThemes[name],\n },\n }) as Theme;\n\nexport function SubThemeProvider({\n name,\n children,\n \"data-e2e-test-id\": dataE2eTestId,\n}: SubThemeProviderProps): React.ReactElement {\n return (\n <ThemeProvider\n theme={(parentTheme: Theme) =>\n subThemeCreator(parentTheme, name as SubThemeTypes)\n }\n >\n <div data-e2e-test-id={dataE2eTestId} data-ds-id=\"SubThemeProvider\">\n {children}\n </div>\n </ThemeProvider>\n );\n}\n"],"names":["isObject","item","Array","isArray","mergeDeep","target","_len","arguments","length","sources","_key","source","shift","key","Object","assign","subThemeCreator","parentTheme","name","values","subThemes","SubThemeProvider","_ref","children","dataE2eTestId","React","createElement","ThemeProvider","theme"],"mappings":";;;AAAA;AAeA,SAASA,QAAQA,CAACC,IAAa,EAAE;AAC/B,EAAA,OAAOA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,CAAA;AACjE,CAAA;AAEA,SAASG,SAASA,CAChBC,MAAsB,EAEN;EAAA,KAAAC,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADbC,OAAO,OAAAP,KAAA,CAAAI,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAI,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA,EAAA,EAAA;AAAPD,IAAAA,OAAO,CAAAC,IAAA,GAAAH,CAAAA,CAAAA,GAAAA,SAAA,CAAAG,IAAA,CAAA,CAAA;AAAA,GAAA;AAEV,EAAA,IAAI,CAACD,OAAO,CAACD,MAAM,EAAE,OAAOH,MAAM,CAAA;AAClC,EAAA,MAAMM,MAAM,GAAGF,OAAO,CAACG,KAAK,EAAE,CAAA;EAE9B,IAAIZ,QAAQ,CAACK,MAAM,CAAC,IAAIL,QAAQ,CAACW,MAAM,CAAC,EAAE;AACxC,IAAA,KAAK,MAAME,GAAG,IAAIF,MAAM,EAAE;AACxB,MAAA,IAAIX,QAAQ,CAACW,MAAM,CAACE,GAAG,CAAC,CAAC,EAAE;QACzB,IAAI,CAACR,MAAM,CAACQ,GAAG,CAAC,EAAEC,MAAM,CAACC,MAAM,CAACV,MAAM,EAAE;UAAE,CAACQ,GAAG,GAAG,EAAC;AAAE,SAAC,CAAC,CAAA;QACtDT,SAAS,CAACC,MAAM,CAACQ,GAAG,CAAC,EAAEF,MAAM,CAACE,GAAG,CAAC,CAAC,CAAA;AACrC,OAAC,MAAM;AACLC,QAAAA,MAAM,CAACC,MAAM,CAACV,MAAM,EAAE;AAAE,UAAA,CAACQ,GAAG,GAAGF,MAAM,CAACE,GAAG,CAAA;AAAE,SAAC,CAAC,CAAA;AAC/C,OAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,OAAOT,SAAS,CAACC,MAAM,EAAE,GAAGI,OAAO,CAAC,CAAA;AACtC,CAAA;AAEA,MAAMO,eAAe,GAAGA,CAACC,WAAkB,EAAEC,IAAmB,KAC9Dd,SAAS,CAAC,EAAE,EAAEa,WAAW,EAAE;AACzBE,EAAAA,MAAM,EAAE;AACN,IAAA,GAAGF,WAAW,CAACE,MAAM,CAACC,SAAS,CAACF,IAAI,CAAA;AACtC,GAAA;AACF,CAAC,CAAU,CAAA;AAEN,SAASG,gBAAgBA,CAAAC,IAAA,EAIc;EAAA,IAJb;IAC/BJ,IAAI;IACJK,QAAQ;AACR,IAAA,kBAAkB,EAAEC,aAAAA;AACC,GAAC,GAAAF,IAAA,CAAA;AACtB,EAAA,oBACEG,KAAA,CAAAC,aAAA,CAACC,aAAa,EAAA;AACZC,IAAAA,KAAK,EAAGX,WAAkB,IACxBD,eAAe,CAACC,WAAW,EAAEC,
|
|
1
|
+
{"version":3,"file":"SubThemeProvider.js","sources":["../../../../../src/components/SubThemeProvider/SubThemeProvider.tsx"],"sourcesContent":["/* eslint-disable no-restricted-syntax */\nimport React from \"react\";\nimport { ThemeProvider, Theme } from \"@emotion/react\";\nimport { SubThemeTypes } from \"../../../build-tokens/_subThemeType\";\n\nexport type SubThemeProviderProps = {\n \"data-e2e-test-id\"?: string;\n children: React.ReactNode[] | React.ReactNode;\n name: \"unset\" | SubThemeTypes;\n};\n\ntype DeepPartial<T> = {\n [P in keyof T]?: DeepPartial<T[P]>;\n};\n\nfunction isObject(item: unknown) {\n return item && typeof item === \"object\" && !Array.isArray(item);\n}\n\nfunction mergeDeep<T>(\n target: DeepPartial<T>,\n ...sources: DeepPartial<T>[]\n): DeepPartial<T> {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(target, ...sources);\n}\n\nconst subThemeCreator = (parentTheme: Theme, name: SubThemeTypes): Theme =>\n mergeDeep({}, parentTheme, {\n values: {\n ...parentTheme.values.subThemes[name],\n },\n }) as Theme;\n\nexport function SubThemeProvider({\n name,\n children,\n \"data-e2e-test-id\": dataE2eTestId,\n}: SubThemeProviderProps): React.ReactElement {\n return (\n <ThemeProvider\n theme={(parentTheme: Theme) =>\n subThemeCreator(parentTheme, name as SubThemeTypes)\n }\n >\n <div data-e2e-test-id={dataE2eTestId} data-ds-id=\"SubThemeProvider\">\n {children}\n </div>\n </ThemeProvider>\n );\n}\n"],"names":["isObject","item","Array","isArray","mergeDeep","target","_len","arguments","length","sources","_key","source","shift","key","Object","assign","subThemeCreator","parentTheme","name","values","subThemes","SubThemeProvider","_ref","children","dataE2eTestId","React","createElement","ThemeProvider","theme"],"mappings":";;;AAAA;AAeA,SAASA,QAAQA,CAACC,IAAa,EAAE;AAC/B,EAAA,OAAOA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,CAAA;AACjE,CAAA;AAEA,SAASG,SAASA,CAChBC,MAAsB,EAEN;EAAA,KAAAC,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADbC,OAAO,OAAAP,KAAA,CAAAI,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAI,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA,EAAA,EAAA;AAAPD,IAAAA,OAAO,CAAAC,IAAA,GAAAH,CAAAA,CAAAA,GAAAA,SAAA,CAAAG,IAAA,CAAA,CAAA;AAAA,GAAA;AAEV,EAAA,IAAI,CAACD,OAAO,CAACD,MAAM,EAAE,OAAOH,MAAM,CAAA;AAClC,EAAA,MAAMM,MAAM,GAAGF,OAAO,CAACG,KAAK,EAAE,CAAA;EAE9B,IAAIZ,QAAQ,CAACK,MAAM,CAAC,IAAIL,QAAQ,CAACW,MAAM,CAAC,EAAE;AACxC,IAAA,KAAK,MAAME,GAAG,IAAIF,MAAM,EAAE;AACxB,MAAA,IAAIX,QAAQ,CAACW,MAAM,CAACE,GAAG,CAAC,CAAC,EAAE;QACzB,IAAI,CAACR,MAAM,CAACQ,GAAG,CAAC,EAAEC,MAAM,CAACC,MAAM,CAACV,MAAM,EAAE;UAAE,CAACQ,GAAG,GAAG,EAAC;AAAE,SAAC,CAAC,CAAA;QACtDT,SAAS,CAACC,MAAM,CAACQ,GAAG,CAAC,EAAEF,MAAM,CAACE,GAAG,CAAC,CAAC,CAAA;AACrC,OAAC,MAAM;AACLC,QAAAA,MAAM,CAACC,MAAM,CAACV,MAAM,EAAE;AAAE,UAAA,CAACQ,GAAG,GAAGF,MAAM,CAACE,GAAG,CAAA;AAAE,SAAC,CAAC,CAAA;AAC/C,OAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,OAAOT,SAAS,CAACC,MAAM,EAAE,GAAGI,OAAO,CAAC,CAAA;AACtC,CAAA;AAEA,MAAMO,eAAe,GAAGA,CAACC,WAAkB,EAAEC,IAAmB,KAC9Dd,SAAS,CAAC,EAAE,EAAEa,WAAW,EAAE;AACzBE,EAAAA,MAAM,EAAE;AACN,IAAA,GAAGF,WAAW,CAACE,MAAM,CAACC,SAAS,CAACF,IAAI,CAAA;AACtC,GAAA;AACF,CAAC,CAAU,CAAA;AAEN,SAASG,gBAAgBA,CAAAC,IAAA,EAIc;EAAA,IAJb;IAC/BJ,IAAI;IACJK,QAAQ;AACR,IAAA,kBAAkB,EAAEC,aAAAA;AACC,GAAC,GAAAF,IAAA,CAAA;AACtB,EAAA,oBACEG,KAAA,CAAAC,aAAA,CAACC,aAAa,EAAA;AACZC,IAAAA,KAAK,EAAGX,WAAkB,IACxBD,eAAe,CAACC,WAAW,EAAEC,IAAqB,CAAA;GAGpDO,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,kBAAA,EAAkBF,aAAc;IAAC,YAAW,EAAA,kBAAA;GAC9CD,EAAAA,QACE,CACQ,CAAC,CAAA;AAEpB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\n\nimport React from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { Inline } from \"../Inline/Inline\";\nimport { Stack } from \"../Stack/Stack\";\nimport { IconName, Icon } from \"../Icon/Icon\";\n\nconst BORDER_WIDTH = 1;\nconst BORDER_WIDTH_ACTIVE_TOP = 4;\n\nconst StyledContainer = styled.div(({ theme }) => ({\n width: \"100%\",\n backgroundColor: theme.values.color.background.tabs.header,\n borderBottom: `${BORDER_WIDTH}px solid`,\n borderColor: theme.values.color.border.primary,\n}));\n\nconst StyledTabHeader = styled.div<{ active: boolean; isFirst: boolean }>(\n ({ theme, active, isFirst }) => ({\n position: \"relative\",\n margin: 0,\n backgroundColor: theme.values.color.background.tabs.header,\n padding: theme.variables.size.spacing.m,\n\n color: theme.values.color.text.secondary,\n fontFamily: theme.variables.fontFamily.lato,\n fontWeight: theme.variables.weight.bold,\n fontSize: theme.variables.size.font.text.s,\n lineHeight: theme.variables.size.lineHeight.text.s,\n border: 0,\n boxSizing: \"border-box\",\n transition: \"background-color 0.15s\",\n\n display: \"block\",\n textDecoration: \"none\",\n\n ...(active\n ? {\n border: `${BORDER_WIDTH}px solid`,\n borderTop: 0,\n paddingLeft:\n parseInt(theme.variables.size.spacing.m, 10) - BORDER_WIDTH,\n paddingRight:\n parseInt(theme.variables.size.spacing.m, 10) - BORDER_WIDTH,\n marginBottom: -BORDER_WIDTH,\n borderColor: theme.values.color.border.primary,\n borderBottomColor: theme.values.color.background.tabs.buttonActive,\n backgroundColor: theme.values.color.background.tabs.buttonActive,\n\n ...(isFirst && {\n borderLeft: 0,\n paddingLeft: theme.variables.size.spacing.m,\n }),\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n width: \"100%\",\n height: BORDER_WIDTH_ACTIVE_TOP,\n backgroundColor: theme.values.color.border.tabs.buttonActive,\n borderLeft: `${BORDER_WIDTH}px solid`,\n borderRight: `${BORDER_WIDTH}px solid`,\n borderColor: theme.values.color.border.tabs.buttonActive,\n left: -BORDER_WIDTH,\n top: 0,\n },\n }\n : {\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: theme.values.color.background.tabs.buttonHover,\n },\n }),\n })\n);\n\nexport type TabsProps = {\n children?: React.ReactElement;\n /** an index of active tab */\n activeTab?: number;\n onTabSelect?: (selectedTab: number) => void;\n /** an array of tabs, contains \"header\", \"as\", \"iconLeft\" and \"iconRight\" */\n tabs: {\n header: string;\n as?: \"a\" | \"button\" | React.ComponentType;\n iconLeft?: IconName;\n iconRight?: IconName;\n }[];\n \"data-e2e-test-id\"?: string;\n};\n\nexport function Tabs({\n tabs,\n activeTab = 0,\n children,\n onTabSelect,\n \"data-e2e-test-id\": dataE2eTestId,\n}: TabsProps): React.ReactElement {\n return (\n <Stack data-e2e-test-id={dataE2eTestId} data-ds-id=\"Tabs\">\n <StyledContainer>\n <Inline space=\"zero\">\n {tabs.map(\n ({ header, as = \"button\", iconLeft, iconRight, ...rest }, i) => (\n <StyledTabHeader\n as={as}\n key={header}\n isFirst={i === 0}\n active={activeTab === i}\n onClick={() => onTabSelect && onTabSelect(i)}\n {...rest}\n >\n <Inline vAlignItems=\"center\" space=\"xxs\">\n {iconLeft && <Icon size=\"s\" name={iconLeft} />}\n {header}\n {iconRight && <Icon size=\"s\" name={iconRight} />}\n </Inline>\n </StyledTabHeader>\n )\n )}\n </Inline>\n </StyledContainer>\n {children}\n </Stack>\n );\n}\n"],"names":["BORDER_WIDTH","BORDER_WIDTH_ACTIVE_TOP","StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","theme","width","backgroundColor","values","color","background","tabs","header","borderBottom","borderColor","border","primary","StyledTabHeader","_ref2","active","isFirst","position","margin","padding","variables","size","spacing","m","text","secondary","fontFamily","lato","fontWeight","weight","bold","fontSize","font","s","lineHeight","boxSizing","transition","display","textDecoration","borderTop","paddingLeft","parseInt","paddingRight","marginBottom","borderBottomColor","buttonActive","borderLeft","content","height","borderRight","left","top","cursor","buttonHover","Tabs","_ref3","activeTab","children","onTabSelect","dataE2eTestId","React","createElement","Stack","Inline","space","map","_ref4","i","as","iconLeft","iconRight","rest","_extends","key","onClick","vAlignItems","Icon","name"],"mappings":";;;;;;;AASA,MAAMA,YAAY,GAAG,CAAC,CAAA;AACtB,MAAMC,uBAAuB,GAAG,CAAC,CAAA;AAEjC,MAAMC,eAAe,gBAAGC,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,QAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,QAAA;EAAAC,KAAA,EAAA,iBAAA;AAAA,CAAA,CAAA,CAAWC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,KAAAA;AAAM,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM;AACjDE,IAAAA,KAAK,EAAE,MAAM;IACbC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,KAAK,CAACC,UAAU,CAACC,IAAI,CAACC,MAAM;IAC1DC,YAAY,EAAG,CAAElB,EAAAA,YAAa,CAAS,QAAA,CAAA;IACvCmB,WAAW,EAAET,KAAK,CAACG,MAAM,CAACC,KAAK,CAACM,MAAM,CAACC,OAAAA;GACxC,CAAA;AAAA,CAAC,EAAAjB,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,6kLAAA,CAAA,CAAA;AAEH,MAAMgB,eAAe,gBAAGnB,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,QAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,QAAA;EAAAC,KAAA,EAAA,iBAAA;AAAA,CAAA,CAAA,CACtBe,KAAA,IAAA;EAAA,IAAC;IAAEb,KAAK;IAAEc,MAAM;AAAEC,IAAAA,OAAAA;AAAQ,GAAC,GAAAF,KAAA,CAAA;EAAA,OAAM;AAC/BG,IAAAA,QAAQ,EAAE,UAAU;AACpBC,IAAAA,MAAM,EAAE,CAAC;IACTf,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,KAAK,CAACC,UAAU,CAACC,IAAI,CAACC,MAAM;IAC1DW,OAAO,EAAElB,KAAK,CAACmB,SAAS,CAACC,IAAI,CAACC,OAAO,CAACC,CAAC;IAEvClB,KAAK,EAAEJ,KAAK,CAACG,MAAM,CAACC,KAAK,CAACmB,IAAI,CAACC,SAAS;AACxCC,IAAAA,UAAU,EAAEzB,KAAK,CAACmB,SAAS,CAACM,UAAU,CAACC,IAAI;AAC3CC,IAAAA,UAAU,EAAE3B,KAAK,CAACmB,SAAS,CAACS,MAAM,CAACC,IAAI;IACvCC,QAAQ,EAAE9B,KAAK,CAACmB,SAAS,CAACC,IAAI,CAACW,IAAI,CAACR,IAAI,CAACS,CAAC;IAC1CC,UAAU,EAAEjC,KAAK,CAACmB,SAAS,CAACC,IAAI,CAACa,UAAU,CAACV,IAAI,CAACS,CAAC;AAClDtB,IAAAA,MAAM,EAAE,CAAC;AACTwB,IAAAA,SAAS,EAAE,YAAY;AACvBC,IAAAA,UAAU,EAAE,wBAAwB;AAEpCC,IAAAA,OAAO,EAAE,OAAO;AAChBC,IAAAA,cAAc,EAAE,MAAM;AAEtB,IAAA,IAAIvB,MAAM,GACN;MACEJ,MAAM,EAAG,CAAEpB,EAAAA,YAAa,CAAS,QAAA,CAAA;AACjCgD,MAAAA,SAAS,EAAE,CAAC;AACZC,MAAAA,WAAW,EACTC,QAAQ,CAACxC,KAAK,CAACmB,SAAS,CAACC,IAAI,CAACC,OAAO,CAACC,CAAC,EAAE,EAAE,CAAC,GAAGhC,YAAY;AAC7DmD,MAAAA,YAAY,EACVD,QAAQ,CAACxC,KAAK,CAACmB,SAAS,CAACC,IAAI,CAACC,OAAO,CAACC,CAAC,EAAE,EAAE,CAAC,GAAGhC,YAAY;MAC7DoD,YAAY,EAAE,CAACpD,YAAY;MAC3BmB,WAAW,EAAET,KAAK,CAACG,MAAM,CAACC,KAAK,CAACM,MAAM,CAACC,OAAO;MAC9CgC,iBAAiB,EAAE3C,KAAK,CAACG,MAAM,CAACC,KAAK,CAACC,UAAU,CAACC,IAAI,CAACsC,YAAY;MAClE1C,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,KAAK,CAACC,UAAU,CAACC,IAAI,CAACsC,YAAY;AAEhE,MAAA,IAAI7B,OAAO,IAAI;AACb8B,QAAAA,UAAU,EAAE,CAAC;QACbN,WAAW,EAAEvC,KAAK,CAACmB,SAAS,CAACC,IAAI,CAACC,OAAO,CAACC,CAAAA;AAC5C,OAAC,CAAC;AACF,MAAA,SAAS,EAAE;AACTwB,QAAAA,OAAO,EAAE,IAAI;AACb9B,QAAAA,QAAQ,EAAE,UAAU;AACpBf,QAAAA,KAAK,EAAE,MAAM;AACb8C,QAAAA,MAAM,EAAExD,uBAAuB;QAC/BW,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,KAAK,CAACM,MAAM,CAACJ,IAAI,CAACsC,YAAY;QAC5DC,UAAU,EAAG,CAAEvD,EAAAA,YAAa,CAAS,QAAA,CAAA;QACrC0D,WAAW,EAAG,CAAE1D,EAAAA,YAAa,CAAS,QAAA,CAAA;QACtCmB,WAAW,EAAET,KAAK,CAACG,MAAM,CAACC,KAAK,CAACM,MAAM,CAACJ,IAAI,CAACsC,YAAY;QACxDK,IAAI,EAAE,CAAC3D,YAAY;AACnB4D,QAAAA,GAAG,EAAE,CAAA;AACP,OAAA;AACF,KAAC,GACD;AACEC,MAAAA,MAAM,EAAE,SAAS;AACjB,MAAA,SAAS,EAAE;QACTjD,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,KAAK,CAACC,UAAU,CAACC,IAAI,CAAC8C,WAAAA;AACtD,OAAA;KACD,CAAA;GACN,CAAA;AAAA,CAAC,EAAA1D,OAAA,CAAAC,GAAA,CAAAC,QAAA,
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\n\nimport React from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { Inline } from \"../Inline/Inline\";\nimport { Stack } from \"../Stack/Stack\";\nimport { IconName, Icon } from \"../Icon/Icon\";\n\nconst BORDER_WIDTH = 1;\nconst BORDER_WIDTH_ACTIVE_TOP = 4;\n\nconst StyledContainer = styled.div(({ theme }) => ({\n width: \"100%\",\n backgroundColor: theme.values.color.background.tabs.header,\n borderBottom: `${BORDER_WIDTH}px solid`,\n borderColor: theme.values.color.border.primary,\n}));\n\nconst StyledTabHeader = styled.div<{ active: boolean; isFirst: boolean }>(\n ({ theme, active, isFirst }) => ({\n position: \"relative\",\n margin: 0,\n backgroundColor: theme.values.color.background.tabs.header,\n padding: theme.variables.size.spacing.m,\n\n color: theme.values.color.text.secondary,\n fontFamily: theme.variables.fontFamily.lato,\n fontWeight: theme.variables.weight.bold,\n fontSize: theme.variables.size.font.text.s,\n lineHeight: theme.variables.size.lineHeight.text.s,\n border: 0,\n boxSizing: \"border-box\",\n transition: \"background-color 0.15s\",\n\n display: \"block\",\n textDecoration: \"none\",\n\n ...(active\n ? {\n border: `${BORDER_WIDTH}px solid`,\n borderTop: 0,\n paddingLeft:\n parseInt(theme.variables.size.spacing.m, 10) - BORDER_WIDTH,\n paddingRight:\n parseInt(theme.variables.size.spacing.m, 10) - BORDER_WIDTH,\n marginBottom: -BORDER_WIDTH,\n borderColor: theme.values.color.border.primary,\n borderBottomColor: theme.values.color.background.tabs.buttonActive,\n backgroundColor: theme.values.color.background.tabs.buttonActive,\n\n ...(isFirst && {\n borderLeft: 0,\n paddingLeft: theme.variables.size.spacing.m,\n }),\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n width: \"100%\",\n height: BORDER_WIDTH_ACTIVE_TOP,\n backgroundColor: theme.values.color.border.tabs.buttonActive,\n borderLeft: `${BORDER_WIDTH}px solid`,\n borderRight: `${BORDER_WIDTH}px solid`,\n borderColor: theme.values.color.border.tabs.buttonActive,\n left: -BORDER_WIDTH,\n top: 0,\n },\n }\n : {\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: theme.values.color.background.tabs.buttonHover,\n },\n }),\n })\n);\n\nexport type TabsProps = {\n children?: React.ReactElement;\n /** an index of active tab */\n activeTab?: number;\n onTabSelect?: (selectedTab: number) => void;\n /** an array of tabs, contains \"header\", \"as\", \"iconLeft\" and \"iconRight\" */\n tabs: {\n header: string;\n as?: \"a\" | \"button\" | React.ComponentType;\n iconLeft?: IconName;\n iconRight?: IconName;\n }[];\n \"data-e2e-test-id\"?: string;\n};\n\nexport function Tabs({\n tabs,\n activeTab = 0,\n children,\n onTabSelect,\n \"data-e2e-test-id\": dataE2eTestId,\n}: TabsProps): React.ReactElement {\n return (\n <Stack data-e2e-test-id={dataE2eTestId} data-ds-id=\"Tabs\">\n <StyledContainer>\n <Inline space=\"zero\">\n {tabs.map(\n ({ header, as = \"button\", iconLeft, iconRight, ...rest }, i) => (\n <StyledTabHeader\n as={as}\n key={header}\n isFirst={i === 0}\n active={activeTab === i}\n onClick={() => onTabSelect && onTabSelect(i)}\n {...rest}\n >\n <Inline vAlignItems=\"center\" space=\"xxs\">\n {iconLeft && <Icon size=\"s\" name={iconLeft} />}\n {header}\n {iconRight && <Icon size=\"s\" name={iconRight} />}\n </Inline>\n </StyledTabHeader>\n )\n )}\n </Inline>\n </StyledContainer>\n {children}\n </Stack>\n );\n}\n"],"names":["BORDER_WIDTH","BORDER_WIDTH_ACTIVE_TOP","StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","theme","width","backgroundColor","values","color","background","tabs","header","borderBottom","borderColor","border","primary","StyledTabHeader","_ref2","active","isFirst","position","margin","padding","variables","size","spacing","m","text","secondary","fontFamily","lato","fontWeight","weight","bold","fontSize","font","s","lineHeight","boxSizing","transition","display","textDecoration","borderTop","paddingLeft","parseInt","paddingRight","marginBottom","borderBottomColor","buttonActive","borderLeft","content","height","borderRight","left","top","cursor","buttonHover","Tabs","_ref3","activeTab","children","onTabSelect","dataE2eTestId","React","createElement","Stack","Inline","space","map","_ref4","i","as","iconLeft","iconRight","rest","_extends","key","onClick","vAlignItems","Icon","name"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledText.js","sources":["../../../../../../src/components/Typography/StyledText/StyledText.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Text } from \"../Text/Text\";\n\nexport type FormattedElementProps = {\n key: string;\n children: string | React.ReactNode[];\n};\n\nconst Italic = styled.i({ fontStyle: \"italic\" });\nconst Bold = styled.b({ fontWeight: \"bolder\" });\n\nconst Components: Record<\n string,\n (props: FormattedElementProps) => React.ReactNode\n> = {\n b: ({ key, children }) => <Bold key={key}>{children}</Bold>,\n i: ({ key, children }) => <Italic key={key}>{children}</Italic>,\n p: ({ key, children }) => (\n <Text key={key} as=\"p\" variant=\"secondary\">\n {children}\n </Text>\n ),\n small: ({ key, children }) => (\n <Text key={key} as=\"span\" variant=\"tertiary\">\n {children}\n </Text>\n ),\n sup: ({ key, children }) => <sup key={key}>{children}</sup>,\n sub: ({ key, children }) => <sub key={key}>{children}</sub>,\n};\n\nconst getNodes = (\n string: string\n): { elementName: string; prev: string; node: string; next: string } | null => {\n const elementNames = Object.keys(Components).join(\"|\");\n const elementRegex = new RegExp(`<(${elementNames})>.*</\\\\1>`);\n const elementMatch = elementRegex.exec(string);\n\n if (!elementMatch) {\n return null;\n }\n\n const elementName = elementMatch[1];\n const openingTagStartIndex = elementMatch.index;\n const openingTagEndIndex = elementMatch.index + elementName.length + 2;\n let numberOpenTags = 1;\n\n const elementTagsRegex = new RegExp(\n `(<${elementName}>)|(</${elementName}>)`,\n \"g\"\n );\n let currentTagMatch = elementTagsRegex.exec(string);\n let closingTagStartIndex;\n let closingTagEndIndex;\n\n do {\n if (currentTagMatch.index > openingTagStartIndex) {\n if (currentTagMatch[1]) {\n numberOpenTags += 1;\n } else if (currentTagMatch[2]) {\n numberOpenTags -= 1;\n closingTagStartIndex = currentTagMatch.index;\n closingTagEndIndex = closingTagStartIndex + currentTagMatch[2].length;\n }\n }\n currentTagMatch = elementTagsRegex.exec(string);\n if (!currentTagMatch) break;\n } while (numberOpenTags > 0);\n\n return {\n elementName,\n prev: string.slice(0, openingTagStartIndex),\n node: string.slice(openingTagEndIndex, closingTagStartIndex),\n next: string.slice(closingTagEndIndex),\n };\n};\n\nexport const makeStyledJSX = (\n string: string\n): React.ReactNode[] | string | null => {\n if (!string || string.length < 1) {\n return null;\n }\n\n const nodes = getNodes(string);\n if (!nodes) {\n return string;\n }\n\n const { elementName, prev, node, next } = nodes;\n\n return [\n prev,\n Components[elementName]({ key: node, children: makeStyledJSX(node) }),\n makeStyledJSX(next),\n ].filter((i) => i !== null && i !== \"\" && !(Array.isArray(i) && !i.length));\n};\n\nexport type StyledTextProps = {\n /* The stringified markup to be rendered */\n children: string;\n \"data-e2e-test-id\"?: string;\n};\n\nexport function StyledText({\n children,\n \"data-e2e-test-id\": dataE2eTestId,\n}: StyledTextProps): React.ReactElement {\n if (typeof children !== \"string\") return children;\n\n return (\n <span data-e2e-test-id={dataE2eTestId} data-ds-id=\"StyledText\">\n {makeStyledJSX(children)}\n </span>\n );\n}\n"],"names":["Italic","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","Bold","Components","b","_ref","key","children","React","createElement","i","_ref2","p","_ref3","Text","as","variant","small","_ref4","sup","_ref5","sub","_ref6","getNodes","string","elementNames","Object","keys","join","elementRegex","RegExp","elementMatch","exec","elementName","openingTagStartIndex","index","openingTagEndIndex","length","numberOpenTags","elementTagsRegex","currentTagMatch","closingTagStartIndex","closingTagEndIndex","prev","slice","node","next","makeStyledJSX","nodes","filter","Array","isArray","StyledText","_ref7","dataE2eTestId"],"mappings":";;;;;AASA,MAAMA,MAAM,gBAAGC,OAAA,CAAA,GAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,WAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,WAAA;EAAAC,KAAA,EAAA,QAAA;AAAA,CAAA,CAAA,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAG,IAAA,EAAA,SAAA;EAAAC,MAAA,EAAA,mBAAA;AAAA,CAAA,GAAA;EAAAD,IAAA,EAAA,SAAA;EAAAC,MAAA,EAAA,mBAAA;EAAAC,GAAA,EAAA,ykJAAA;AAAAC,EAAAA,QAAA,EAAAC,gCAAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"StyledText.js","sources":["../../../../../../src/components/Typography/StyledText/StyledText.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Text } from \"../Text/Text\";\n\nexport type FormattedElementProps = {\n key: string;\n children: string | React.ReactNode[];\n};\n\nconst Italic = styled.i({ fontStyle: \"italic\" });\nconst Bold = styled.b({ fontWeight: \"bolder\" });\n\nconst Components: Record<\n string,\n (props: FormattedElementProps) => React.ReactNode\n> = {\n b: ({ key, children }) => <Bold key={key}>{children}</Bold>,\n i: ({ key, children }) => <Italic key={key}>{children}</Italic>,\n p: ({ key, children }) => (\n <Text key={key} as=\"p\" variant=\"secondary\">\n {children}\n </Text>\n ),\n small: ({ key, children }) => (\n <Text key={key} as=\"span\" variant=\"tertiary\">\n {children}\n </Text>\n ),\n sup: ({ key, children }) => <sup key={key}>{children}</sup>,\n sub: ({ key, children }) => <sub key={key}>{children}</sub>,\n};\n\nconst getNodes = (\n string: string\n): { elementName: string; prev: string; node: string; next: string } | null => {\n const elementNames = Object.keys(Components).join(\"|\");\n const elementRegex = new RegExp(`<(${elementNames})>.*</\\\\1>`);\n const elementMatch = elementRegex.exec(string);\n\n if (!elementMatch) {\n return null;\n }\n\n const elementName = elementMatch[1];\n const openingTagStartIndex = elementMatch.index;\n const openingTagEndIndex = elementMatch.index + elementName.length + 2;\n let numberOpenTags = 1;\n\n const elementTagsRegex = new RegExp(\n `(<${elementName}>)|(</${elementName}>)`,\n \"g\"\n );\n let currentTagMatch = elementTagsRegex.exec(string);\n let closingTagStartIndex;\n let closingTagEndIndex;\n\n do {\n if (currentTagMatch.index > openingTagStartIndex) {\n if (currentTagMatch[1]) {\n numberOpenTags += 1;\n } else if (currentTagMatch[2]) {\n numberOpenTags -= 1;\n closingTagStartIndex = currentTagMatch.index;\n closingTagEndIndex = closingTagStartIndex + currentTagMatch[2].length;\n }\n }\n currentTagMatch = elementTagsRegex.exec(string);\n if (!currentTagMatch) break;\n } while (numberOpenTags > 0);\n\n return {\n elementName,\n prev: string.slice(0, openingTagStartIndex),\n node: string.slice(openingTagEndIndex, closingTagStartIndex),\n next: string.slice(closingTagEndIndex),\n };\n};\n\nexport const makeStyledJSX = (\n string: string\n): React.ReactNode[] | string | null => {\n if (!string || string.length < 1) {\n return null;\n }\n\n const nodes = getNodes(string);\n if (!nodes) {\n return string;\n }\n\n const { elementName, prev, node, next } = nodes;\n\n return [\n prev,\n Components[elementName]({ key: node, children: makeStyledJSX(node) }),\n makeStyledJSX(next),\n ].filter((i) => i !== null && i !== \"\" && !(Array.isArray(i) && !i.length));\n};\n\nexport type StyledTextProps = {\n /* The stringified markup to be rendered */\n children: string;\n \"data-e2e-test-id\"?: string;\n};\n\nexport function StyledText({\n children,\n \"data-e2e-test-id\": dataE2eTestId,\n}: StyledTextProps): React.ReactElement {\n if (typeof children !== \"string\") return children;\n\n return (\n <span data-e2e-test-id={dataE2eTestId} data-ds-id=\"StyledText\">\n {makeStyledJSX(children)}\n </span>\n );\n}\n"],"names":["Italic","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","Bold","Components","b","_ref","key","children","React","createElement","i","_ref2","p","_ref3","Text","as","variant","small","_ref4","sup","_ref5","sub","_ref6","getNodes","string","elementNames","Object","keys","join","elementRegex","RegExp","elementMatch","exec","elementName","openingTagStartIndex","index","openingTagEndIndex","length","numberOpenTags","elementTagsRegex","currentTagMatch","closingTagStartIndex","closingTagEndIndex","prev","slice","node","next","makeStyledJSX","nodes","filter","Array","isArray","StyledText","_ref7","dataE2eTestId"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sources":["../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["import React from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport isPropValid from \"@emotion/is-prop-valid\";\nimport { mq } from \"../../../shared/mediaQueries\";\n\nimport {\n TextAlignment,\n TextVariations,\n TextSize,\n MQ,\n Hyphens,\n} from \"../../../types\";\n\nexport type TextProps = {\n children: React.ReactNode;\n size?: TextSize;\n weight?: \"normal\" | \"bold\" | \"black\" | \"inherit\";\n transform?: \"none\" | \"capitalize\" | \"uppercase\" | \"lowercase\";\n as?: \"p\" | \"span\";\n variant?: TextVariations;\n align?: TextAlignment;\n hyphens?: Hyphens | MQ<Hyphens>;\n \"data-e2e-test-id\"?: string;\n /** @ignore */\n \"data-ds-id\"?: string;\n};\n\nconst defaultProps: Partial<TextProps> = {\n size: \"m\",\n weight: \"normal\",\n transform: \"none\",\n as: \"p\",\n variant: \"secondary\",\n align: \"left\",\n hyphens: \"none\",\n \"data-e2e-test-id\": undefined,\n \"data-ds-id\": \"Text\",\n};\n\nexport const Text = styled(\"p\", {\n shouldForwardProp: (prop: string) =>\n isPropValid(prop) && prop !== \"transform\",\n})<TextProps>(\n ({ theme, align, weight, size, transform, hyphens, variant }) =>\n ({\n fontFamily: theme.variables.fontFamily.lato,\n margin: 0,\n textTransform: transform,\n textAlign: align,\n fontWeight: theme.variables.weight[weight],\n color: theme.values.color.text[variant],\n fontSize: theme.variables.size.font.text[size],\n lineHeight: theme.variables.size.lineHeight.text[size],\n ...mq({\n hyphens: [hyphens, { none: \"none\", auto: \"auto\", manual: \"manual\" }],\n }),\n } as CSSObject)\n);\n\nText.defaultProps = defaultProps;\n"],"names":["defaultProps","size","weight","transform","as","variant","align","hyphens","undefined","Text","_styled","process","env","NODE_ENV","shouldForwardProp","prop","isPropValid","target","label","_ref","theme","fontFamily","variables","lato","margin","textTransform","textAlign","fontWeight","color","values","text","fontSize","font","lineHeight","mq","none","auto","manual"],"mappings":";;;;AA2BA,MAAMA,YAAgC,GAAG;AACvCC,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,SAAS,EAAE,MAAM;AACjBC,EAAAA,EAAE,EAAE,GAAG;AACPC,EAAAA,OAAO,EAAE,WAAW;AACpBC,EAAAA,KAAK,EAAE,MAAM;AACbC,EAAAA,OAAO,EAAE,MAAM;AACf,EAAA,kBAAkB,EAAEC,SAAS;AAC7B,EAAA,YAAY,EAAE,MAAA;AAChB,CAAC,CAAA;AAEM,MAAMC,IAAI,gBAAGC,OAAA,CAAO,GAAG,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAC5BC,iBAAiB,EAAGC,IAAY,IAC9BC,WAAW,CAACD,IAAI,CAAC,IAAIA,IAAI,KAAK,WAAW;EAAAE,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAD3CH,iBAAiB,EAAGC,IAAY,IAC9BC,WAAW,CAACD,IAAI,CAAC,IAAIA,IAAI,KAAK,WAAW;EAAAE,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,MAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"Text.js","sources":["../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["import React from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport isPropValid from \"@emotion/is-prop-valid\";\nimport { mq } from \"../../../shared/mediaQueries\";\n\nimport {\n TextAlignment,\n TextVariations,\n TextSize,\n MQ,\n Hyphens,\n} from \"../../../types\";\n\nexport type TextProps = {\n children: React.ReactNode;\n size?: TextSize;\n weight?: \"normal\" | \"bold\" | \"black\" | \"inherit\";\n transform?: \"none\" | \"capitalize\" | \"uppercase\" | \"lowercase\";\n as?: \"p\" | \"span\";\n variant?: TextVariations;\n align?: TextAlignment;\n hyphens?: Hyphens | MQ<Hyphens>;\n \"data-e2e-test-id\"?: string;\n /** @ignore */\n \"data-ds-id\"?: string;\n};\n\nconst defaultProps: Partial<TextProps> = {\n size: \"m\",\n weight: \"normal\",\n transform: \"none\",\n as: \"p\",\n variant: \"secondary\",\n align: \"left\",\n hyphens: \"none\",\n \"data-e2e-test-id\": undefined,\n \"data-ds-id\": \"Text\",\n};\n\nexport const Text = styled(\"p\", {\n shouldForwardProp: (prop: string) =>\n isPropValid(prop) && prop !== \"transform\",\n})<TextProps>(\n ({ theme, align, weight, size, transform, hyphens, variant }) =>\n ({\n fontFamily: theme.variables.fontFamily.lato,\n margin: 0,\n textTransform: transform,\n textAlign: align,\n fontWeight: theme.variables.weight[weight],\n color: theme.values.color.text[variant],\n fontSize: theme.variables.size.font.text[size],\n lineHeight: theme.variables.size.lineHeight.text[size],\n ...mq({\n hyphens: [hyphens, { none: \"none\", auto: \"auto\", manual: \"manual\" }],\n }),\n } as CSSObject)\n);\n\nText.defaultProps = defaultProps;\n"],"names":["defaultProps","size","weight","transform","as","variant","align","hyphens","undefined","Text","_styled","process","env","NODE_ENV","shouldForwardProp","prop","isPropValid","target","label","_ref","theme","fontFamily","variables","lato","margin","textTransform","textAlign","fontWeight","color","values","text","fontSize","font","lineHeight","mq","none","auto","manual"],"mappings":";;;;AA2BA,MAAMA,YAAgC,GAAG;AACvCC,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,SAAS,EAAE,MAAM;AACjBC,EAAAA,EAAE,EAAE,GAAG;AACPC,EAAAA,OAAO,EAAE,WAAW;AACpBC,EAAAA,KAAK,EAAE,MAAM;AACbC,EAAAA,OAAO,EAAE,MAAM;AACf,EAAA,kBAAkB,EAAEC,SAAS;AAC7B,EAAA,YAAY,EAAE,MAAA;AAChB,CAAC,CAAA;AAEM,MAAMC,IAAI,gBAAGC,OAAA,CAAO,GAAG,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAC5BC,iBAAiB,EAAGC,IAAY,IAC9BC,WAAW,CAACD,IAAI,CAAC,IAAIA,IAAI,KAAK,WAAW;EAAAE,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAD3CH,iBAAiB,EAAGC,IAAY,IAC9BC,WAAW,CAACD,IAAI,CAAC,IAAIA,IAAI,KAAK,WAAW;EAAAE,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,MAAA;AAAA,CAC5C,CAAC,CACAC,IAAA,IAAA;EAAA,IAAC;IAAEC,KAAK;IAAEd,KAAK;IAAEJ,MAAM;IAAED,IAAI;IAAEE,SAAS;IAAEI,OAAO;AAAEF,IAAAA,OAAAA;AAAQ,GAAC,GAAAc,IAAA,CAAA;EAAA,OACzD;AACCE,IAAAA,UAAU,EAAED,KAAK,CAACE,SAAS,CAACD,UAAU,CAACE,IAAI;AAC3CC,IAAAA,MAAM,EAAE,CAAC;AACTC,IAAAA,aAAa,EAAEtB,SAAS;AACxBuB,IAAAA,SAAS,EAAEpB,KAAK;IAChBqB,UAAU,EAAEP,KAAK,CAACE,SAAS,CAACpB,MAAM,CAACA,MAAM,CAAC;IAC1C0B,KAAK,EAAER,KAAK,CAACS,MAAM,CAACD,KAAK,CAACE,IAAI,CAACzB,OAAO,CAAC;AACvC0B,IAAAA,QAAQ,EAAEX,KAAK,CAACE,SAAS,CAACrB,IAAI,CAAC+B,IAAI,CAACF,IAAI,CAAC7B,IAAI,CAAC;AAC9CgC,IAAAA,UAAU,EAAEb,KAAK,CAACE,SAAS,CAACrB,IAAI,CAACgC,UAAU,CAACH,IAAI,CAAC7B,IAAI,CAAC;AACtD,IAAA,GAAGiC,EAAE,CAAC;MACJ3B,OAAO,EAAE,CAACA,OAAO,EAAE;AAAE4B,QAAAA,IAAI,EAAE,MAAM;AAAEC,QAAAA,IAAI,EAAE,MAAM;AAAEC,QAAAA,MAAM,EAAE,QAAA;OAAU,CAAA;KACpE,CAAA;GACF,CAAA;AAAA,CAAc,EAAA1B,OAAA,CAAAC,GAAA,CAAAC,QAAA,89EACnB,EAAC;AAEDJ,IAAI,CAACT,YAAY,GAAGA,YAAY;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextClamped.js","sources":["../../../../../../src/components/Typography/TextClamped/TextClamped.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Text, TextProps } from \"../Text/Text\";\n\nexport type TextClampedProps = TextProps & {\n /** The maximum number of lines. Default is 1. */\n lines?: number;\n};\n\nconst defaultProps: Partial<TextClampedProps> = {\n lines: 1,\n size: \"m\",\n};\n\nconst Container = styled.span<TextClampedProps>(({ lines, theme, size }) => ({\n display: \"-webkit-box\",\n \"-webkit-box-orient\": \"vertical\",\n overflow: \"hidden\",\n WebkitLineClamp: lines,\n maxHeight: lines * parseInt(theme.variables.size.lineHeight.text[size], 10),\n}));\n\nexport function TextClamped(props: TextClampedProps): React.ReactElement {\n const {\n lines,\n children,\n \"data-e2e-test-id\": dataE2eTestId,\n ...textProps\n } = props;\n\n return (\n <Text\n data-e2e-test-id={dataE2eTestId}\n data-ds-id=\"TextClamped\"\n {...textProps}\n >\n <Container lines={lines} size={textProps.size}>\n {children}\n </Container>\n </Text>\n );\n}\n\nTextClamped.defaultProps = defaultProps;\n"],"names":["defaultProps","lines","size","Container","_styled","process","env","NODE_ENV","target","label","_ref","theme","display","overflow","WebkitLineClamp","maxHeight","parseInt","variables","lineHeight","text","TextClamped","props","children","dataE2eTestId","textProps","React","createElement","Text","_extends"],"mappings":";;;;;AAUA,MAAMA,YAAuC,GAAG;AAC9CC,EAAAA,KAAK,EAAE,CAAC;AACRC,EAAAA,IAAI,EAAE,GAAA;AACR,CAAC,CAAA;AAED,MAAMC,SAAS,gBAAGC,OAAA,CAAA,MAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,WAAA;AAAA,CAAA,CAAA,CAA8BC,IAAA,IAAA;EAAA,IAAC;IAAET,KAAK;IAAEU,KAAK;AAAET,IAAAA,IAAAA;AAAK,GAAC,GAAAQ,IAAA,CAAA;EAAA,OAAM;AAC3EE,IAAAA,OAAO,EAAE,aAAa;AACtB,IAAA,oBAAoB,EAAE,UAAU;AAChCC,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,eAAe,EAAEb,KAAK;AACtBc,IAAAA,SAAS,EAAEd,KAAK,GAAGe,QAAQ,CAACL,KAAK,CAACM,SAAS,CAACf,IAAI,CAACgB,UAAU,CAACC,IAAI,CAACjB,IAAI,CAAC,EAAE,EAAE,CAAA;GAC3E,CAAA;AAAA,CAAC,EAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,quDAAA,CAAA,CAAA;AAEI,SAASa,WAAWA,CAACC,KAAuB,EAAsB;EACvE,MAAM;IACJpB,KAAK;IACLqB,QAAQ;AACR,IAAA,kBAAkB,EAAEC,aAAa;IACjC,GAAGC,SAAAA;AACL,GAAC,GAAGH,KAAK,CAAA;AAET,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAACC,IAAI,EAAAC,QAAA,CAAA;AACH,IAAA,kBAAA,EAAkBL,aAAc;IAChC,YAAW,EAAA,aAAA;AAAa,GAAA,EACpBC,SAAS,CAEbC,eAAAA,KAAA,CAAAC,aAAA,CAACvB,SAAS,EAAA;AAACF,IAAAA,KAAK,EAAEA,KAAM;IAACC,IAAI,EAAEsB,SAAS,CAACtB,IAAAA;GACtCoB,EAAAA,
|
|
1
|
+
{"version":3,"file":"TextClamped.js","sources":["../../../../../../src/components/Typography/TextClamped/TextClamped.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Text, TextProps } from \"../Text/Text\";\n\nexport type TextClampedProps = TextProps & {\n /** The maximum number of lines. Default is 1. */\n lines?: number;\n};\n\nconst defaultProps: Partial<TextClampedProps> = {\n lines: 1,\n size: \"m\",\n};\n\nconst Container = styled.span<TextClampedProps>(({ lines, theme, size }) => ({\n display: \"-webkit-box\",\n \"-webkit-box-orient\": \"vertical\",\n overflow: \"hidden\",\n WebkitLineClamp: lines,\n maxHeight: lines * parseInt(theme.variables.size.lineHeight.text[size], 10),\n}));\n\nexport function TextClamped(props: TextClampedProps): React.ReactElement {\n const {\n lines,\n children,\n \"data-e2e-test-id\": dataE2eTestId,\n ...textProps\n } = props;\n\n return (\n <Text\n data-e2e-test-id={dataE2eTestId}\n data-ds-id=\"TextClamped\"\n {...textProps}\n >\n <Container lines={lines} size={textProps.size}>\n {children}\n </Container>\n </Text>\n );\n}\n\nTextClamped.defaultProps = defaultProps;\n"],"names":["defaultProps","lines","size","Container","_styled","process","env","NODE_ENV","target","label","_ref","theme","display","overflow","WebkitLineClamp","maxHeight","parseInt","variables","lineHeight","text","TextClamped","props","children","dataE2eTestId","textProps","React","createElement","Text","_extends"],"mappings":";;;;;AAUA,MAAMA,YAAuC,GAAG;AAC9CC,EAAAA,KAAK,EAAE,CAAC;AACRC,EAAAA,IAAI,EAAE,GAAA;AACR,CAAC,CAAA;AAED,MAAMC,SAAS,gBAAGC,OAAA,CAAA,MAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,WAAA;AAAA,CAAA,CAAA,CAA8BC,IAAA,IAAA;EAAA,IAAC;IAAET,KAAK;IAAEU,KAAK;AAAET,IAAAA,IAAAA;AAAK,GAAC,GAAAQ,IAAA,CAAA;EAAA,OAAM;AAC3EE,IAAAA,OAAO,EAAE,aAAa;AACtB,IAAA,oBAAoB,EAAE,UAAU;AAChCC,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,eAAe,EAAEb,KAAK;AACtBc,IAAAA,SAAS,EAAEd,KAAK,GAAGe,QAAQ,CAACL,KAAK,CAACM,SAAS,CAACf,IAAI,CAACgB,UAAU,CAACC,IAAI,CAACjB,IAAI,CAAC,EAAE,EAAE,CAAA;GAC3E,CAAA;AAAA,CAAC,EAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAC,YAAA,GAAA,EAAA,GAAA,quDAAA,CAAA,CAAA;AAEI,SAASa,WAAWA,CAACC,KAAuB,EAAsB;EACvE,MAAM;IACJpB,KAAK;IACLqB,QAAQ;AACR,IAAA,kBAAkB,EAAEC,aAAa;IACjC,GAAGC,SAAAA;AACL,GAAC,GAAGH,KAAK,CAAA;AAET,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAACC,IAAI,EAAAC,QAAA,CAAA;AACH,IAAA,kBAAA,EAAkBL,aAAc;IAChC,YAAW,EAAA,aAAA;AAAa,GAAA,EACpBC,SAAS,CAEbC,eAAAA,KAAA,CAAAC,aAAA,CAACvB,SAAS,EAAA;AAACF,IAAAA,KAAK,EAAEA,KAAM;IAACC,IAAI,EAAEsB,SAAS,CAACtB,IAAAA;GACtCoB,EAAAA,QACQ,CACP,CAAC,CAAA;AAEX,CAAA;AAEAF,WAAW,CAACpB,YAAY,GAAGA,YAAY;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualScrollList.js","sources":["../../../../../src/components/VirtualScrollList/VirtualScrollList.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport React, { useRef, useReducer, useLayoutEffect, useEffect } from \"react\";\n\nimport { VirtualScrollReducer } from \"./VirtualScrollListReducer\";\n\nconst StyledContainer = styled.div<Partial<VirtualScrollListProps>>(\n ({ maxHeight }) => ({\n overflow: \"auto\",\n width: \"100%\",\n height: \"100%\",\n maxHeight,\n })\n);\n\nconst StyledScrollableContent = styled.div<{ maxContentHeight: number }>(\n ({ maxContentHeight }) => ({\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n height: maxContentHeight,\n })\n);\n\nexport type VirtualScrollListProps = {\n \"data-e2e-test-id\"?: string;\n maxHeight: number;\n itemHeight: number;\n itemAmount: number;\n emptyState: () => React.ReactNode;\n itemInView: number;\n itemTemplate: (index: number) => React.ReactNode;\n};\n\nconst overscan = 10;\n\nexport function VirtualScrollList({\n maxHeight,\n itemHeight,\n itemAmount,\n emptyState = () => null,\n itemInView,\n itemTemplate,\n \"data-e2e-test-id\": dataE2eTestId,\n}: VirtualScrollListProps): React.ReactElement {\n const scrollableContainerRef = useRef(null);\n const viewportRef = useRef(null);\n\n const [\n {\n scrolledItemCount,\n amountOfItemsInView,\n scrolledInPx,\n maxContentHeight = maxHeight,\n recommendedScrollPosition,\n },\n dispatch,\n ] = useReducer(VirtualScrollReducer, {});\n\n useLayoutEffect(() => {\n dispatch({ type: \"reset\", itemHeight, maxHeight, overscan });\n scrollableContainerRef.current.scrollTop = 0;\n }, [itemHeight, itemAmount, maxHeight]);\n\n useEffect(() => {\n dispatch({\n type: \"recommendScrollPosition\",\n scrollTop: scrollableContainerRef.current.scrollTop,\n itemToBeInView: itemInView,\n });\n }, [itemInView]);\n\n useEffect(() => {\n if (recommendedScrollPosition === null) return;\n\n scrollableContainerRef.current.scrollTop = recommendedScrollPosition;\n }, [recommendedScrollPosition]);\n useLayoutEffect(() => {\n if (!viewportRef.current) return;\n dispatch({\n type: \"updateViewport\",\n viewportNode: viewportRef.current,\n itemAmount,\n });\n }, [itemAmount, scrolledItemCount]);\n\n const itemCountToBeRendered = Math.min(\n Math.max(0, itemAmount - scrolledItemCount),\n amountOfItemsInView\n );\n\n return (\n <StyledContainer\n ref={scrollableContainerRef}\n maxHeight={maxHeight}\n style={{ maxHeight }}\n data-e2e-test-id={dataE2eTestId}\n data-ds-id=\"VirtualScrollList\"\n onScroll={(e: React.UIEvent<HTMLElement>) => {\n dispatch({\n type: \"scroll\",\n scrollTop: e.currentTarget.scrollTop,\n });\n }}\n >\n {itemAmount === 0 ? (\n emptyState()\n ) : (\n <StyledScrollableContent maxContentHeight={maxContentHeight}>\n <div\n ref={viewportRef}\n style={{\n transform: `translateY(${scrolledInPx}px`,\n }}\n >\n {!!itemCountToBeRendered &&\n new Array(itemCountToBeRendered)\n .fill(0)\n .map((_, index) => itemTemplate(scrolledItemCount + index))}\n </div>\n </StyledScrollableContent>\n )}\n </StyledContainer>\n );\n}\n"],"names":["StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","maxHeight","overflow","width","height","StyledScrollableContent","_ref2","maxContentHeight","boxSizing","overscan","VirtualScrollList","_ref3","itemHeight","itemAmount","emptyState","itemInView","itemTemplate","dataE2eTestId","scrollableContainerRef","useRef","viewportRef","scrolledItemCount","amountOfItemsInView","scrolledInPx","recommendedScrollPosition","dispatch","useReducer","VirtualScrollReducer","useLayoutEffect","type","current","scrollTop","useEffect","itemToBeInView","viewportNode","itemCountToBeRendered","Math","min","max","React","createElement","ref","style","onScroll","e","currentTarget","transform","Array","fill","map","_","index"],"mappings":";;;;AAKA,MAAMA,eAAe,gBAAGC,OAAA,CAAA,KAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,iBAAA;AAAA,CAAA,CAAA,CACtBC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM;AAClBE,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,MAAM,EAAE,MAAM;AACdH,IAAAA,SAAAA;GACD,CAAA;AAAA,CAAC,EAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,
|
|
1
|
+
{"version":3,"file":"VirtualScrollList.js","sources":["../../../../../src/components/VirtualScrollList/VirtualScrollList.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport React, { useRef, useReducer, useLayoutEffect, useEffect } from \"react\";\n\nimport { VirtualScrollReducer } from \"./VirtualScrollListReducer\";\n\nconst StyledContainer = styled.div<Partial<VirtualScrollListProps>>(\n ({ maxHeight }) => ({\n overflow: \"auto\",\n width: \"100%\",\n height: \"100%\",\n maxHeight,\n })\n);\n\nconst StyledScrollableContent = styled.div<{ maxContentHeight: number }>(\n ({ maxContentHeight }) => ({\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n height: maxContentHeight,\n })\n);\n\nexport type VirtualScrollListProps = {\n \"data-e2e-test-id\"?: string;\n maxHeight: number;\n itemHeight: number;\n itemAmount: number;\n emptyState: () => React.ReactNode;\n itemInView: number;\n itemTemplate: (index: number) => React.ReactNode;\n};\n\nconst overscan = 10;\n\nexport function VirtualScrollList({\n maxHeight,\n itemHeight,\n itemAmount,\n emptyState = () => null,\n itemInView,\n itemTemplate,\n \"data-e2e-test-id\": dataE2eTestId,\n}: VirtualScrollListProps): React.ReactElement {\n const scrollableContainerRef = useRef(null);\n const viewportRef = useRef(null);\n\n const [\n {\n scrolledItemCount,\n amountOfItemsInView,\n scrolledInPx,\n maxContentHeight = maxHeight,\n recommendedScrollPosition,\n },\n dispatch,\n ] = useReducer(VirtualScrollReducer, {});\n\n useLayoutEffect(() => {\n dispatch({ type: \"reset\", itemHeight, maxHeight, overscan });\n scrollableContainerRef.current.scrollTop = 0;\n }, [itemHeight, itemAmount, maxHeight]);\n\n useEffect(() => {\n dispatch({\n type: \"recommendScrollPosition\",\n scrollTop: scrollableContainerRef.current.scrollTop,\n itemToBeInView: itemInView,\n });\n }, [itemInView]);\n\n useEffect(() => {\n if (recommendedScrollPosition === null) return;\n\n scrollableContainerRef.current.scrollTop = recommendedScrollPosition;\n }, [recommendedScrollPosition]);\n useLayoutEffect(() => {\n if (!viewportRef.current) return;\n dispatch({\n type: \"updateViewport\",\n viewportNode: viewportRef.current,\n itemAmount,\n });\n }, [itemAmount, scrolledItemCount]);\n\n const itemCountToBeRendered = Math.min(\n Math.max(0, itemAmount - scrolledItemCount),\n amountOfItemsInView\n );\n\n return (\n <StyledContainer\n ref={scrollableContainerRef}\n maxHeight={maxHeight}\n style={{ maxHeight }}\n data-e2e-test-id={dataE2eTestId}\n data-ds-id=\"VirtualScrollList\"\n onScroll={(e: React.UIEvent<HTMLElement>) => {\n dispatch({\n type: \"scroll\",\n scrollTop: e.currentTarget.scrollTop,\n });\n }}\n >\n {itemAmount === 0 ? (\n emptyState()\n ) : (\n <StyledScrollableContent maxContentHeight={maxContentHeight}>\n <div\n ref={viewportRef}\n style={{\n transform: `translateY(${scrolledInPx}px`,\n }}\n >\n {!!itemCountToBeRendered &&\n new Array(itemCountToBeRendered)\n .fill(0)\n .map((_, index) => itemTemplate(scrolledItemCount + index))}\n </div>\n </StyledScrollableContent>\n )}\n </StyledContainer>\n );\n}\n"],"names":["StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","maxHeight","overflow","width","height","StyledScrollableContent","_ref2","maxContentHeight","boxSizing","overscan","VirtualScrollList","_ref3","itemHeight","itemAmount","emptyState","itemInView","itemTemplate","dataE2eTestId","scrollableContainerRef","useRef","viewportRef","scrolledItemCount","amountOfItemsInView","scrolledInPx","recommendedScrollPosition","dispatch","useReducer","VirtualScrollReducer","useLayoutEffect","type","current","scrollTop","useEffect","itemToBeInView","viewportNode","itemCountToBeRendered","Math","min","max","React","createElement","ref","style","onScroll","e","currentTarget","transform","Array","fill","map","_","index"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualScrollListReducer.js","sources":["../../../../../src/components/VirtualScrollList/VirtualScrollListReducer.ts"],"sourcesContent":["type Offset = { amount: number; isInterpolated: boolean };\n\ntype State = {\n avgItemHeight?: number;\n overscan?: number;\n maxHeight?: number;\n topOffsets?: Offset[];\n renderFrom?: number;\n scrolledItemCount?: number;\n scrolledInPx?: number;\n lastItemHeight?: number;\n amountOfItemsInView?: number;\n maxContentHeight?: number;\n recommendedScrollPosition?: number;\n};\n\ntype Action =\n | {\n type: \"scroll\";\n scrollTop: number;\n }\n | {\n type: \"updateViewport\";\n viewportNode: HTMLDivElement;\n itemAmount: number;\n }\n | {\n type: \"reset\";\n itemHeight: number;\n maxHeight: number;\n overscan: number;\n }\n | {\n type: \"recommendScrollPosition\";\n scrollTop: number;\n itemToBeInView: number;\n };\n\nconst findClosestOffsetIndex = (arr: Offset[], val: number): number => {\n let start = 0;\n let end = arr.length - 1;\n let mid = Math.floor((start + end) / 2);\n\n while (start <= end) {\n mid = Math.floor((start + end) / 2);\n if (arr[mid].amount === val) {\n return mid;\n }\n\n if (val < arr[mid].amount) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n return mid;\n};\n\nconst getMaxHeight = (\n maxAmountOfItems: number,\n offsets: Offset[],\n lastItemHeight = 0\n): number => {\n const amountOfOffsets = Math.min(offsets.length, maxAmountOfItems);\n const maxOffset = offsets[amountOfOffsets - 1]?.amount || 0;\n const result = maxOffset + lastItemHeight;\n\n return result;\n};\n\nconst reduceScroll = (prevState: State, scrollTop: number): State => {\n const { topOffsets, overscan: tolerance } = prevState;\n const scrolledItemCount = Math.max(\n 0,\n findClosestOffsetIndex(topOffsets, scrollTop) - tolerance / 2\n );\n const scrolledInPx = topOffsets[scrolledItemCount]?.amount || 0;\n\n return {\n ...prevState,\n scrolledItemCount,\n scrolledInPx,\n };\n};\n\nconst reduceUpdateViewport = (\n prevState: State,\n viewportNode: HTMLDivElement,\n itemAmount: number\n): State => {\n const {\n topOffsets = [],\n scrolledInPx,\n scrolledItemCount,\n avgItemHeight,\n lastItemHeight,\n maxHeight,\n overscan: tolerance,\n } = prevState;\n const newTopOffsets = [...topOffsets];\n let updatedLastItemHeight = lastItemHeight;\n\n Array.from(viewportNode.children).forEach((child: HTMLElement, i: number) => {\n newTopOffsets[i + scrolledItemCount] = {\n amount: scrolledInPx + child.offsetTop,\n isInterpolated: false,\n };\n\n if (i + scrolledItemCount === itemAmount - 1 && !lastItemHeight) {\n updatedLastItemHeight = child.getBoundingClientRect().height;\n }\n });\n\n for (let i = 0; i < itemAmount; i += 1) {\n if (!newTopOffsets[i] || newTopOffsets[i].isInterpolated) {\n newTopOffsets[i] = {\n amount: newTopOffsets[i - 1].amount + avgItemHeight,\n isInterpolated: true,\n };\n }\n }\n\n const newAvgItemHeight = Math.max(\n avgItemHeight,\n viewportNode.getBoundingClientRect().height /\n (viewportNode.childElementCount || 1)\n );\n\n const maxContentHeight = getMaxHeight(\n itemAmount,\n newTopOffsets,\n updatedLastItemHeight\n );\n\n return {\n ...prevState,\n lastItemHeight: updatedLastItemHeight,\n avgItemHeight,\n topOffsets: newTopOffsets,\n amountOfItemsInView: Math.round(maxHeight / newAvgItemHeight) + tolerance,\n maxContentHeight,\n };\n};\n\nconst reduceReset = (\n prevState: State,\n itemHeight: number,\n maxHeight: number,\n overscan: number\n): State => ({\n ...prevState,\n lastItemHeight: null,\n topOffsets: [{ amount: 0, isInterpolated: false }],\n scrolledInPx: 0,\n scrolledItemCount: 0,\n maxHeight,\n avgItemHeight: itemHeight,\n overscan,\n});\n\nconst reduceRecommendScrollPosition = (\n prevState: State,\n scrollTop: number,\n itemToBeInView: number\n): State => {\n const { topOffsets, maxHeight } = prevState;\n if (!topOffsets) return prevState;\n\n const bottomOfTarget = topOffsets[itemToBeInView + 1]?.amount;\n const topOfTarget = topOffsets[itemToBeInView]?.amount;\n let recommendedScrollPosition = null;\n\n if (topOfTarget < scrollTop) {\n recommendedScrollPosition = topOfTarget;\n }\n\n if (bottomOfTarget >= scrollTop + maxHeight) {\n recommendedScrollPosition = bottomOfTarget - maxHeight;\n }\n\n if (itemToBeInView === topOffsets.length - 1) {\n recommendedScrollPosition = topOffsets[itemToBeInView].amount;\n }\n\n return {\n ...prevState,\n recommendedScrollPosition,\n };\n};\n\nexport const VirtualScrollReducer = (\n prevState: State,\n action: Action\n): State => {\n switch (action.type) {\n case \"reset\":\n return reduceReset(\n prevState,\n action.itemHeight,\n action.maxHeight,\n action.overscan\n );\n case \"scroll\":\n return reduceScroll(prevState, action.scrollTop);\n case \"updateViewport\":\n return reduceUpdateViewport(\n prevState,\n action.viewportNode,\n action.itemAmount\n );\n case \"recommendScrollPosition\":\n return reduceRecommendScrollPosition(\n prevState,\n action.scrollTop,\n action.itemToBeInView\n );\n default:\n throw new Error();\n }\n};\n"],"names":["findClosestOffsetIndex","arr","val","start","end","length","mid","Math","floor","amount","getMaxHeight","maxAmountOfItems","offsets","lastItemHeight","arguments","undefined","amountOfOffsets","min","maxOffset","result","reduceScroll","prevState","scrollTop","topOffsets","overscan","tolerance","scrolledItemCount","max","scrolledInPx","reduceUpdateViewport","viewportNode","itemAmount","avgItemHeight","maxHeight","newTopOffsets","updatedLastItemHeight","Array","from","children","forEach","child","i","offsetTop","isInterpolated","getBoundingClientRect","height","newAvgItemHeight","childElementCount","maxContentHeight","amountOfItemsInView","round","reduceReset","itemHeight","reduceRecommendScrollPosition","itemToBeInView","bottomOfTarget","topOfTarget","recommendedScrollPosition","VirtualScrollReducer","action","type","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualScrollListReducer.js","sources":["../../../../../src/components/VirtualScrollList/VirtualScrollListReducer.ts"],"sourcesContent":["type Offset = { amount: number; isInterpolated: boolean };\n\ntype State = {\n avgItemHeight?: number;\n overscan?: number;\n maxHeight?: number;\n topOffsets?: Offset[];\n renderFrom?: number;\n scrolledItemCount?: number;\n scrolledInPx?: number;\n lastItemHeight?: number;\n amountOfItemsInView?: number;\n maxContentHeight?: number;\n recommendedScrollPosition?: number;\n};\n\ntype Action =\n | {\n type: \"scroll\";\n scrollTop: number;\n }\n | {\n type: \"updateViewport\";\n viewportNode: HTMLDivElement;\n itemAmount: number;\n }\n | {\n type: \"reset\";\n itemHeight: number;\n maxHeight: number;\n overscan: number;\n }\n | {\n type: \"recommendScrollPosition\";\n scrollTop: number;\n itemToBeInView: number;\n };\n\nconst findClosestOffsetIndex = (arr: Offset[], val: number): number => {\n let start = 0;\n let end = arr.length - 1;\n let mid = Math.floor((start + end) / 2);\n\n while (start <= end) {\n mid = Math.floor((start + end) / 2);\n if (arr[mid].amount === val) {\n return mid;\n }\n\n if (val < arr[mid].amount) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n return mid;\n};\n\nconst getMaxHeight = (\n maxAmountOfItems: number,\n offsets: Offset[],\n lastItemHeight = 0\n): number => {\n const amountOfOffsets = Math.min(offsets.length, maxAmountOfItems);\n const maxOffset = offsets[amountOfOffsets - 1]?.amount || 0;\n const result = maxOffset + lastItemHeight;\n\n return result;\n};\n\nconst reduceScroll = (prevState: State, scrollTop: number): State => {\n const { topOffsets, overscan: tolerance } = prevState;\n const scrolledItemCount = Math.max(\n 0,\n findClosestOffsetIndex(topOffsets, scrollTop) - tolerance / 2\n );\n const scrolledInPx = topOffsets[scrolledItemCount]?.amount || 0;\n\n return {\n ...prevState,\n scrolledItemCount,\n scrolledInPx,\n };\n};\n\nconst reduceUpdateViewport = (\n prevState: State,\n viewportNode: HTMLDivElement,\n itemAmount: number\n): State => {\n const {\n topOffsets = [],\n scrolledInPx,\n scrolledItemCount,\n avgItemHeight,\n lastItemHeight,\n maxHeight,\n overscan: tolerance,\n } = prevState;\n const newTopOffsets = [...topOffsets];\n let updatedLastItemHeight = lastItemHeight;\n\n Array.from(viewportNode.children).forEach((child: HTMLElement, i: number) => {\n newTopOffsets[i + scrolledItemCount] = {\n amount: scrolledInPx + child.offsetTop,\n isInterpolated: false,\n };\n\n if (i + scrolledItemCount === itemAmount - 1 && !lastItemHeight) {\n updatedLastItemHeight = child.getBoundingClientRect().height;\n }\n });\n\n for (let i = 0; i < itemAmount; i += 1) {\n if (!newTopOffsets[i] || newTopOffsets[i].isInterpolated) {\n newTopOffsets[i] = {\n amount: newTopOffsets[i - 1].amount + avgItemHeight,\n isInterpolated: true,\n };\n }\n }\n\n const newAvgItemHeight = Math.max(\n avgItemHeight,\n viewportNode.getBoundingClientRect().height /\n (viewportNode.childElementCount || 1)\n );\n\n const maxContentHeight = getMaxHeight(\n itemAmount,\n newTopOffsets,\n updatedLastItemHeight\n );\n\n return {\n ...prevState,\n lastItemHeight: updatedLastItemHeight,\n avgItemHeight,\n topOffsets: newTopOffsets,\n amountOfItemsInView: Math.round(maxHeight / newAvgItemHeight) + tolerance,\n maxContentHeight,\n };\n};\n\nconst reduceReset = (\n prevState: State,\n itemHeight: number,\n maxHeight: number,\n overscan: number\n): State => ({\n ...prevState,\n lastItemHeight: null,\n topOffsets: [{ amount: 0, isInterpolated: false }],\n scrolledInPx: 0,\n scrolledItemCount: 0,\n maxHeight,\n avgItemHeight: itemHeight,\n overscan,\n});\n\nconst reduceRecommendScrollPosition = (\n prevState: State,\n scrollTop: number,\n itemToBeInView: number\n): State => {\n const { topOffsets, maxHeight } = prevState;\n if (!topOffsets) return prevState;\n\n const bottomOfTarget = topOffsets[itemToBeInView + 1]?.amount;\n const topOfTarget = topOffsets[itemToBeInView]?.amount;\n let recommendedScrollPosition = null;\n\n if (topOfTarget < scrollTop) {\n recommendedScrollPosition = topOfTarget;\n }\n\n if (bottomOfTarget >= scrollTop + maxHeight) {\n recommendedScrollPosition = bottomOfTarget - maxHeight;\n }\n\n if (itemToBeInView === topOffsets.length - 1) {\n recommendedScrollPosition = topOffsets[itemToBeInView].amount;\n }\n\n return {\n ...prevState,\n recommendedScrollPosition,\n };\n};\n\nexport const VirtualScrollReducer = (\n prevState: State,\n action: Action\n): State => {\n switch (action.type) {\n case \"reset\":\n return reduceReset(\n prevState,\n action.itemHeight,\n action.maxHeight,\n action.overscan\n );\n case \"scroll\":\n return reduceScroll(prevState, action.scrollTop);\n case \"updateViewport\":\n return reduceUpdateViewport(\n prevState,\n action.viewportNode,\n action.itemAmount\n );\n case \"recommendScrollPosition\":\n return reduceRecommendScrollPosition(\n prevState,\n action.scrollTop,\n action.itemToBeInView\n );\n default:\n throw new Error();\n }\n};\n"],"names":["findClosestOffsetIndex","arr","val","start","end","length","mid","Math","floor","amount","getMaxHeight","maxAmountOfItems","offsets","lastItemHeight","arguments","undefined","amountOfOffsets","min","maxOffset","result","reduceScroll","prevState","scrollTop","topOffsets","overscan","tolerance","scrolledItemCount","max","scrolledInPx","reduceUpdateViewport","viewportNode","itemAmount","avgItemHeight","maxHeight","newTopOffsets","updatedLastItemHeight","Array","from","children","forEach","child","i","offsetTop","isInterpolated","getBoundingClientRect","height","newAvgItemHeight","childElementCount","maxContentHeight","amountOfItemsInView","round","reduceReset","itemHeight","reduceRecommendScrollPosition","itemToBeInView","bottomOfTarget","topOfTarget","recommendedScrollPosition","VirtualScrollReducer","action","type","Error"],"mappings":"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"}
|
package/build/esm/src/index.d.ts
CHANGED
|
@@ -47,3 +47,5 @@ export * from "./components/Patterns/ButtonGroup/ButtonGroup";
|
|
|
47
47
|
export * from "./components/Collapsible/Collapsible";
|
|
48
48
|
export * from "./components/LoadingSpinner/LoadingSpinner";
|
|
49
49
|
export * from "./components/Pagination/Pagination";
|
|
50
|
+
export * from "./components/DataTable";
|
|
51
|
+
export * from "./components/Form/SegmentedControl/SegmentedControl";
|
package/build/esm/src/index.js
CHANGED
|
@@ -43,8 +43,11 @@ export { ButtonGroup } from './components/Patterns/ButtonGroup/ButtonGroup.js';
|
|
|
43
43
|
export { Collapsible, CollapsibleHeader } from './components/Collapsible/Collapsible.js';
|
|
44
44
|
export { LoadingSpinner } from './components/LoadingSpinner/LoadingSpinner.js';
|
|
45
45
|
export { Pagination } from './components/Pagination/Pagination.js';
|
|
46
|
+
export { SegmentedControl } from './components/Form/SegmentedControl/SegmentedControl.js';
|
|
46
47
|
export { Input } from './components/Form/Input/Input.js';
|
|
47
48
|
export { PasswordInput } from './components/Form/PasswordInput/PasswordInput.js';
|
|
49
|
+
export { DataTable } from './components/DataTable/DataTable.js';
|
|
50
|
+
export { useDataTableSort } from './components/DataTable/useDataTableSort.js';
|
|
48
51
|
|
|
49
52
|
const {
|
|
50
53
|
dark,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import {\n ambossVisualConfiguration,\n VisualConfig,\n} from \"../build-tokens/visualConfig\";\n\nexport type { VisualConfig };\nexport const { dark, light } = ambossVisualConfiguration;\nexport { ThemeProvider, CacheProvider } from \"@emotion/react\";\nexport { default as createCache } from \"@emotion/cache\";\nexport * from \"./components/Card/Card\";\nexport * from \"./components/Card/CardBox\";\nexport * from \"./components/Box/Box\";\nexport * from \"./components/Inline/Inline\";\nexport * from \"./components/Stack/Stack\";\nexport * from \"./components/Typography/Header/Header\";\nexport * from \"./components/Typography/Text/Text\";\nexport * from \"./components/Typography/TextClamped/TextClamped\";\nexport * from \"./components/Typography/StyledText/StyledText\";\nexport * from \"./components/Link/Link\";\nexport * from \"./components/Icon/Icon\";\nexport * from \"./components/Button/Button\";\nexport * from \"./components/Divider/Divider\";\nexport * from \"./components/Column/Columns\";\nexport * from \"./components/Tabs/Tabs\";\nexport * from \"./components/Badge/Badge\";\nexport * from \"./components/SearchResult/SearchResult\";\nexport * from \"./components/Form/ToggleButton/ToggleButton\";\nexport * from \"./components/DropdownMenu/DropdownMenu\";\nexport * from \"./components/Form/FormFieldGroup/FormFieldGroup\";\nexport * from \"./components/Form/Input\";\nexport * from \"./components/Form/Checkbox/Checkbox\";\nexport * from \"./components/Form/Toggle/Toggle\";\nexport * from \"./components/Form/Radio/Radio\";\nexport * from \"./components/Form/RadioButton/RadioButton\";\nexport * from \"./components/Form/Textarea/Textarea\";\nexport * from \"./components/Form/Select/Select\";\nexport * from \"./components/SubThemeProvider/SubThemeProvider\";\nexport * from \"./components/PictogramButton/PictogramButton\";\nexport * from \"./components/MediaViewerBar/MediaViewerBar\";\nexport * from \"./components/SegmentedProgressBar/SegmentedProgressBar\";\nexport * from \"./components/ProgressBar/ProgressBar\";\nexport * from \"./components/Container/Container\";\nexport * from \"./components/Form/PasswordInput\";\nexport * from \"./components/RoundButton/RoundButton\";\nexport * from \"./components/Notification/Notification\";\nexport * from \"./components/Logo/Logo\";\nexport * from \"./components/MediaItem/MediaItem\";\nexport * from \"./components/Callout/Callout\";\nexport * from \"./components/Patterns/Modal/Modal\";\nexport * from \"./components/Patterns/ButtonGroup/ButtonGroup\";\nexport * from \"./components/Collapsible/Collapsible\";\nexport * from \"./components/LoadingSpinner/LoadingSpinner\";\nexport * from \"./components/Pagination/Pagination\";\n"],"names":["dark","light","ambossVisualConfiguration"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import {\n ambossVisualConfiguration,\n VisualConfig,\n} from \"../build-tokens/visualConfig\";\n\nexport type { VisualConfig };\nexport const { dark, light } = ambossVisualConfiguration;\nexport { ThemeProvider, CacheProvider } from \"@emotion/react\";\nexport { default as createCache } from \"@emotion/cache\";\nexport * from \"./components/Card/Card\";\nexport * from \"./components/Card/CardBox\";\nexport * from \"./components/Box/Box\";\nexport * from \"./components/Inline/Inline\";\nexport * from \"./components/Stack/Stack\";\nexport * from \"./components/Typography/Header/Header\";\nexport * from \"./components/Typography/Text/Text\";\nexport * from \"./components/Typography/TextClamped/TextClamped\";\nexport * from \"./components/Typography/StyledText/StyledText\";\nexport * from \"./components/Link/Link\";\nexport * from \"./components/Icon/Icon\";\nexport * from \"./components/Button/Button\";\nexport * from \"./components/Divider/Divider\";\nexport * from \"./components/Column/Columns\";\nexport * from \"./components/Tabs/Tabs\";\nexport * from \"./components/Badge/Badge\";\nexport * from \"./components/SearchResult/SearchResult\";\nexport * from \"./components/Form/ToggleButton/ToggleButton\";\nexport * from \"./components/DropdownMenu/DropdownMenu\";\nexport * from \"./components/Form/FormFieldGroup/FormFieldGroup\";\nexport * from \"./components/Form/Input\";\nexport * from \"./components/Form/Checkbox/Checkbox\";\nexport * from \"./components/Form/Toggle/Toggle\";\nexport * from \"./components/Form/Radio/Radio\";\nexport * from \"./components/Form/RadioButton/RadioButton\";\nexport * from \"./components/Form/Textarea/Textarea\";\nexport * from \"./components/Form/Select/Select\";\nexport * from \"./components/SubThemeProvider/SubThemeProvider\";\nexport * from \"./components/PictogramButton/PictogramButton\";\nexport * from \"./components/MediaViewerBar/MediaViewerBar\";\nexport * from \"./components/SegmentedProgressBar/SegmentedProgressBar\";\nexport * from \"./components/ProgressBar/ProgressBar\";\nexport * from \"./components/Container/Container\";\nexport * from \"./components/Form/PasswordInput\";\nexport * from \"./components/RoundButton/RoundButton\";\nexport * from \"./components/Notification/Notification\";\nexport * from \"./components/Logo/Logo\";\nexport * from \"./components/MediaItem/MediaItem\";\nexport * from \"./components/Callout/Callout\";\nexport * from \"./components/Patterns/Modal/Modal\";\nexport * from \"./components/Patterns/ButtonGroup/ButtonGroup\";\nexport * from \"./components/Collapsible/Collapsible\";\nexport * from \"./components/LoadingSpinner/LoadingSpinner\";\nexport * from \"./components/Pagination/Pagination\";\nexport * from \"./components/DataTable\";\nexport * from \"./components/Form/SegmentedControl/SegmentedControl\";\n"],"names":["dark","light","ambossVisualConfiguration"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMa,MAAA;EAAEA,IAAI;AAAEC,EAAAA,KAAAA;AAAM,CAAC,GAAGC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenReaderText.js","sources":["../../../../src/shared/ScreenReaderText.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\n\n// Content required to be read by screen readers but visually hidden\nexport const ScreenReaderText = styled.div({\n width: 1,\n height: 1,\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n overflow: \"hidden\",\n});\n"],"names":["ScreenReaderText","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"mappings":";;;AAEA;AACO,MAAMA,gBAAgB,gBAAGC,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,kBAAA;AAAA,CAAA,CAAA,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAG,IAAA,EAAA,QAAA;EAAAC,MAAA,EAAA,+EAAA;AAAA,CAAA,GAAA;EAAAD,IAAA,EAAA,QAAA;EAAAC,MAAA,EAAA,+EAAA;EAAAC,GAAA,EAAA,6mBAAA;AAAAC,EAAAA,QAAA,EAAAC,gCAAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"ScreenReaderText.js","sources":["../../../../src/shared/ScreenReaderText.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\n\n// Content required to be read by screen readers but visually hidden\nexport const ScreenReaderText = styled.div({\n width: 1,\n height: 1,\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n overflow: \"hidden\",\n});\n"],"names":["ScreenReaderText","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"mappings":";;;AAEA;AACO,MAAMA,gBAAgB,gBAAGC,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAC,MAAA,EAAA,UAAA;AAAA,CAAA,GAAA;EAAAA,MAAA,EAAA,UAAA;EAAAC,KAAA,EAAA,kBAAA;AAAA,CAAA,CAAA,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,GAAA;EAAAG,IAAA,EAAA,QAAA;EAAAC,MAAA,EAAA,+EAAA;AAAA,CAAA,GAAA;EAAAD,IAAA,EAAA,QAAA;EAAAC,MAAA,EAAA,+EAAA;EAAAC,GAAA,EAAA,6mBAAA;AAAAC,EAAAA,QAAA,EAAAC,gCAAAA;AAAA,CAO/B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flattenChildren.js","sources":["../../../../src/shared/flattenChildren.ts"],"sourcesContent":["import React, {\n Children,\n isValidElement,\n cloneElement,\n ReactChild,\n} from \"react\";\nimport { isFragment } from \"react-is\";\n\n/**\n * Copied from https://github.com/grrowl/react-keyed-flatten-children (since ESM import doesn't work with the module)\n *\n * Similar to [React's built-in `Children.toArray` method](https://reactjs.org/docs/react-api.html#reactchildrentoarray),\n * this utility takes children and returns them as an array for introspection or filtering.\n *\n * Different from `Children.toArray`, it will flatten arrays and `React.Fragment`s into a regular, one-dimensional\n * array while ensuring element and fragment keys are preserved, unique, and stable between renders.\n */\n\nexport const flattenChildren = (\n children: React.ReactNode,\n depth = 0,\n keys: string[] = []\n): any =>\n Children.toArray(children).reduce((acc: ReactChild[], node, nodeIndex) => {\n if (isFragment(node)) {\n acc.push(\n ...flattenChildren(\n node.props.children,\n depth + 1,\n keys.concat(String(node.key || nodeIndex))\n )\n );\n } else if (isValidElement(node)) {\n acc.push(\n cloneElement(node, {\n key: keys.concat(String(node.key)).join(\".\"),\n })\n );\n } else if (typeof node === \"string\" || typeof node === \"number\") {\n acc.push(node);\n }\n return acc;\n }, []);\n"],"names":["flattenChildren","children","depth","arguments","length","undefined","keys","Children","toArray","reduce","acc","node","nodeIndex","isFragment","push","props","concat","String","key","isValidElement","cloneElement","join"],"mappings":";;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEaA,MAAAA,eAAe,GAAG,UAC7BC,QAAyB,EAAA;AAAA,EAAA,IACzBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAAA,EAAA,IACTG,IAAc,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,OAEnBI,QAAQ,CAACC,OAAO,CAACP,QAAQ,CAAC,CAACQ,MAAM,CAAC,CAACC,GAAiB,EAAEC,IAAI,EAAEC,SAAS,KAAK;AACxE,IAAA,IAAIC,UAAU,CAACF,IAAI,CAAC,EAAE;AACpBD,MAAAA,GAAG,CAACI,IAAI,CACN,GAAGd,eAAe,CAChBW,IAAI,CAACI,KAAK,CAACd,QAAQ,EACnBC,KAAK,GAAG,CAAC,EACTI,IAAI,CAACU,MAAM,CAACC,MAAM,CAACN,IAAI,CAACO,GAAG,IAAIN,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"flattenChildren.js","sources":["../../../../src/shared/flattenChildren.ts"],"sourcesContent":["import React, {\n Children,\n isValidElement,\n cloneElement,\n ReactChild,\n} from \"react\";\nimport { isFragment } from \"react-is\";\n\n/**\n * Copied from https://github.com/grrowl/react-keyed-flatten-children (since ESM import doesn't work with the module)\n *\n * Similar to [React's built-in `Children.toArray` method](https://reactjs.org/docs/react-api.html#reactchildrentoarray),\n * this utility takes children and returns them as an array for introspection or filtering.\n *\n * Different from `Children.toArray`, it will flatten arrays and `React.Fragment`s into a regular, one-dimensional\n * array while ensuring element and fragment keys are preserved, unique, and stable between renders.\n */\n\nexport const flattenChildren = (\n children: React.ReactNode,\n depth = 0,\n keys: string[] = []\n): any =>\n Children.toArray(children).reduce((acc: ReactChild[], node, nodeIndex) => {\n if (isFragment(node)) {\n acc.push(\n ...flattenChildren(\n node.props.children,\n depth + 1,\n keys.concat(String(node.key || nodeIndex))\n )\n );\n } else if (isValidElement(node)) {\n acc.push(\n cloneElement(node, {\n key: keys.concat(String(node.key)).join(\".\"),\n })\n );\n } else if (typeof node === \"string\" || typeof node === \"number\") {\n acc.push(node);\n }\n return acc;\n }, []);\n"],"names":["flattenChildren","children","depth","arguments","length","undefined","keys","Children","toArray","reduce","acc","node","nodeIndex","isFragment","push","props","concat","String","key","isValidElement","cloneElement","join"],"mappings":";;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEaA,MAAAA,eAAe,GAAG,UAC7BC,QAAyB,EAAA;AAAA,EAAA,IACzBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAAA,EAAA,IACTG,IAAc,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,OAEnBI,QAAQ,CAACC,OAAO,CAACP,QAAQ,CAAC,CAACQ,MAAM,CAAC,CAACC,GAAiB,EAAEC,IAAI,EAAEC,SAAS,KAAK;AACxE,IAAA,IAAIC,UAAU,CAACF,IAAI,CAAC,EAAE;AACpBD,MAAAA,GAAG,CAACI,IAAI,CACN,GAAGd,eAAe,CAChBW,IAAI,CAACI,KAAK,CAACd,QAAQ,EACnBC,KAAK,GAAG,CAAC,EACTI,IAAI,CAACU,MAAM,CAACC,MAAM,CAACN,IAAI,CAACO,GAAG,IAAIN,SAAS,CAAC,CAC3C,CACF,CAAC,CAAA;AACH,KAAC,MAAM,kBAAIO,cAAc,CAACR,IAAI,CAAC,EAAE;AAC/BD,MAAAA,GAAG,CAACI,IAAI,eACNM,YAAY,CAACT,IAAI,EAAE;AACjBO,QAAAA,GAAG,EAAEZ,IAAI,CAACU,MAAM,CAACC,MAAM,CAACN,IAAI,CAACO,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAA;AAC7C,OAAC,CACH,CAAC,CAAA;KACF,MAAM,IAAI,OAAOV,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;AAC/DD,MAAAA,GAAG,CAACI,IAAI,CAACH,IAAI,CAAC,CAAA;AAChB,KAAA;AACA,IAAA,OAAOD,GAAG,CAAA;GACX,EAAE,EAAE,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"informDeprecation.js","sources":["../../../../src/shared/informDeprecation.ts"],"sourcesContent":["export const informDeprecation = (\n property: unknown,\n value: unknown,\n location: string,\n details = \"\"\n): void => {\n if (property === undefined) return;\n if (property === value) {\n // eslint-disable-next-line no-console\n console.error(\n `value ${JSON.stringify(\n value\n )} is depricated in ${location} \\n ${details}`\n );\n }\n};\n"],"names":["informDeprecation","property","value","location","details","arguments","length","undefined","console","error","JSON","stringify"],"mappings":"AAAO,MAAMA,iBAAiB,GAAG,UAC/BC,QAAiB,EACjBC,KAAc,EACdC,QAAgB,EAEP;AAAA,EAAA,IADTC,OAAO,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAEZ,IAAIJ,QAAQ,KAAKM,SAAS,EAAE,OAAA;EAC5B,IAAIN,QAAQ,KAAKC,KAAK,EAAE;AACtB;AACAM,IAAAA,OAAO,CAACC,KAAK,CACV,CAAA,MAAA,EAAQC,IAAI,CAACC,SAAS,CACrBT,
|
|
1
|
+
{"version":3,"file":"informDeprecation.js","sources":["../../../../src/shared/informDeprecation.ts"],"sourcesContent":["export const informDeprecation = (\n property: unknown,\n value: unknown,\n location: string,\n details = \"\"\n): void => {\n if (property === undefined) return;\n if (property === value) {\n // eslint-disable-next-line no-console\n console.error(\n `value ${JSON.stringify(\n value\n )} is depricated in ${location} \\n ${details}`\n );\n }\n};\n"],"names":["informDeprecation","property","value","location","details","arguments","length","undefined","console","error","JSON","stringify"],"mappings":"AAAO,MAAMA,iBAAiB,GAAG,UAC/BC,QAAiB,EACjBC,KAAc,EACdC,QAAgB,EAEP;AAAA,EAAA,IADTC,OAAO,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAEZ,IAAIJ,QAAQ,KAAKM,SAAS,EAAE,OAAA;EAC5B,IAAIN,QAAQ,KAAKC,KAAK,EAAE;AACtB;AACAM,IAAAA,OAAO,CAACC,KAAK,CACV,CAAA,MAAA,EAAQC,IAAI,CAACC,SAAS,CACrBT,KACF,CAAE,CAAoBC,kBAAAA,EAAAA,QAAS,CAAMC,IAAAA,EAAAA,OAAQ,EAC/C,CAAC,CAAA;AACH,GAAA;AACF;;;;"}
|
|
@@ -34,7 +34,7 @@ function getMq(breakpointRules) {
|
|
|
34
34
|
return res;
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
const mq = getMq([`@media (max-width: ${breakpoints
|
|
37
|
+
const mq = getMq([`@media (max-width: ${breakpoints.medium.value}px)`, `@media (min-width: ${breakpoints.medium.value}px) and (max-width: ${breakpoints.large.value}px)`, `@media (min-width: ${breakpoints.large.value}px)`]);
|
|
38
38
|
function getMqValue(breakpointRules) {
|
|
39
39
|
const keys = breakpointRules;
|
|
40
40
|
return rules => {
|
|
@@ -60,7 +60,7 @@ function getMqValue(breakpointRules) {
|
|
|
60
60
|
return res;
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
const mqValue = getMqValue([`@media (max-width: ${breakpoints
|
|
63
|
+
const mqValue = getMqValue([`@media (max-width: ${breakpoints.medium.value}px)`, `@media (min-width: ${breakpoints.medium.value}px) and (max-width: ${breakpoints.large.value}px)`, `@media (min-width: ${breakpoints.large.value}px)`]);
|
|
64
64
|
|
|
65
65
|
export { mq, mqValue };
|
|
66
66
|
//# sourceMappingURL=mediaQueries.js.map
|