@ntbjs/react-components 2.0.12-rc.1 → 2.0.12-rc.3
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/inputs/Checkbox/Checkbox.styled.js +2 -2
- package/build/inputs/Checkbox/Checkbox.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +10 -6
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +124 -24
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,8 +13,8 @@ const Checkbox = styled.div.withConfig({
|
|
|
13
13
|
flex-direction: column;
|
|
14
14
|
|
|
15
15
|
${props => props.$variant === 'black' && css`
|
|
16
|
-
${props.theme.themeProp('--checkbox-black-box', props.theme.getColor('white'),
|
|
17
|
-
${props.theme.themeProp('--checkbox-black-check',
|
|
16
|
+
${props.theme.themeProp('--checkbox-black-box', props.theme.getColor('white'), 'black')}
|
|
17
|
+
${props.theme.themeProp('--checkbox-black-check', 'black', props.theme.getColor('white'))}
|
|
18
18
|
`}
|
|
19
19
|
`;
|
|
20
20
|
const CheckIcon = styled.div.withConfig({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.styled.js","sources":["../../../src/components/inputs/Checkbox/Checkbox.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nconst checkboxSize = '18px';\nconst blackVariantSize = '24px';\n\nconst shouldForwardProp = prop => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const Checkbox = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n\n ${props =>\n props.$variant === 'black' &&\n css`\n ${props.theme.themeProp(
|
|
1
|
+
{"version":3,"file":"Checkbox.styled.js","sources":["../../../src/components/inputs/Checkbox/Checkbox.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nconst checkboxSize = '18px';\nconst blackVariantSize = '24px';\n\nconst shouldForwardProp = prop => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const Checkbox = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n\n ${props =>\n props.$variant === 'black' &&\n css`\n ${props.theme.themeProp('--checkbox-black-box', props.theme.getColor('white'), 'black')}\n ${props.theme.themeProp('--checkbox-black-check', 'black', props.theme.getColor('white'))}\n `}\n`;\n\nexport const CheckIcon = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n opacity: 0;\n transform: scale(0.1);\n transition: all 200ms;\n position: absolute;\n width: 12px;\n top: 4px;\n left: 3px;\n color: ${props => props.theme.getColor('gray-100')};\n\n svg {\n width: 100%;\n display: block;\n }\n`;\n\nexport const IndeterminateCheckIcon = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n opacity: 0;\n transform: scale(0.1);\n transition: all 200ms;\n position: absolute;\n height: 2px;\n top: 8px;\n left: 4px;\n background: ${props => props.theme.getColor('gray-100')};\n width: 10px;\n`;\n\nexport const CheckboxLabel = styled.label\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: inline-flex;\n position: relative;\n cursor: pointer;\n user-select: none;\n min-height: ${checkboxSize};\n text-align: left;\n flex-wrap: wrap;\n flex: 1;\n line-height: ${checkboxSize};\n margin-right: auto;\n\n & input[type='checkbox'] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n margin: 0;\n }\n\n &::before {\n content: '';\n border: 2px solid ${props => props.theme.getColor('gray-300')};\n border-radius: 2px;\n transition: all 200ms;\n width: ${checkboxSize};\n height: ${checkboxSize};\n box-sizing: border-box;\n ${props =>\n props.muted &&\n css`\n opacity: 0.75;\n `}\n }\n\n &:has(input[type='checkbox']:checked) {\n &::before {\n background: ${props => props.theme.getColor('emerald-500')};\n border-color: ${props => props.theme.getColor('emerald-500')};\n }\n }\n\n &:has(input[type='checkbox']:not([data-indeterminate='true']):checked) {\n ${CheckIcon} {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n &:has(input[type='checkbox'][data-indeterminate='true']:checked) {\n ${IndeterminateCheckIcon} {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n ${props =>\n props.readOnly &&\n css`\n opacity: 0.5;\n cursor: default;\n pointer-events: none;\n user-select: text;\n `}\n\n ${props =>\n props.disabled &&\n css`\n opacity: 0.5;\n cursor: not-allowed;\n `}\n\n ${props =>\n props.$variant === 'black' &&\n css`\n min-height: ${blackVariantSize};\n line-height: ${blackVariantSize};\n\n &::before {\n width: ${blackVariantSize};\n height: ${blackVariantSize};\n border-radius: 4px;\n border-color: var(--checkbox-black-box);\n background: transparent;\n }\n\n &:has(input[type='checkbox']:checked) {\n &::before {\n background: var(--checkbox-black-box);\n border-color: var(--checkbox-black-box);\n }\n }\n\n ${CheckIcon} {\n width: 14px;\n top: 6px;\n left: 5px;\n color: var(--checkbox-black-check);\n }\n\n ${IndeterminateCheckIcon} {\n top: 11px;\n left: 7px;\n background: var(--checkbox-black-check);\n }\n `}\n`;\n\nexport const CheckboxVisualLabel = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n padding-left: 10px;\n font-weight: 400;\n font-size: 0.875rem;\n flex: 1;\n\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-600')\n )};\n`;\n\nexport const Description = styled.p\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n margin: 0.375rem 0 0 0;\n font-size: 0.75rem;\n line-height: 1.333;\n\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-400'),\n props.theme.getColor('gray-500')\n )};\n\n ${props =>\n props.$error &&\n css`\n content: 'error';\n ${props.theme.themeProp(\n 'color',\n props.theme.getColor('red-200'),\n props.theme.getColor('red-500')\n )}\n `}\n`;\n"],"names":["checkboxSize","blackVariantSize","shouldForwardProp","prop","startsWith","Checkbox","styled","div","withConfig","attrs","applyDefaultTheme","props","$variant","css","theme","themeProp","getColor","CheckIcon","IndeterminateCheckIcon","CheckboxLabel","label","muted","readOnly","disabled","CheckboxVisualLabel","Description","p","$error"],"mappings":"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"}
|
package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js
CHANGED
|
@@ -32,7 +32,7 @@ import '../../../../inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js'
|
|
|
32
32
|
import ContextMenu from '../../../ContextMenu/ContextMenu.js';
|
|
33
33
|
import ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem.js';
|
|
34
34
|
import { assetShapeWithLayout } from '../../asset.propType.js';
|
|
35
|
-
import { AssetGalleryWrapper, AssetGalleryGridCard as AssetGalleryGridCard$2, ThumbnailSection, ThumbnailSelectedOverlay, HorizontalBar, HorizontalBarLeft, HorizontalBarRight, StatusIconCircle, ThumbnailRow, ThumbnailSpacer, ThumbnailWrapper, ThumbnailBox,
|
|
35
|
+
import { AssetGalleryWrapper, AssetGalleryGridCard as AssetGalleryGridCard$2, ThumbnailSection, ThumbnailSelectedOverlay, ConsumerOverlay, HorizontalBar, HorizontalBarLeft, HorizontalBarRight, StatusIconCircle, ThumbnailRow, ThumbnailSpacer, ThumbnailWrapper, ThumbnailBox, ThumbnailActions, ActionsContainer, Action, CardBody, CardTitle, CardDescription, InstructionsWrapper, CardFooter, CardFooterLeft, CardFooterRight, CardDivider, CheckboxRow } from './AssetGalleryGridCard.styled.js';
|
|
36
36
|
import InstructionSeverityDisplay from '../../../InstructionSeverityDisplay/InstructionSeverityDisplay.js';
|
|
37
37
|
|
|
38
38
|
const ComputedRootComponent = ({
|
|
@@ -47,9 +47,13 @@ const ComputedRootComponent = ({
|
|
|
47
47
|
return React__default.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
ref
|
|
52
|
-
|
|
50
|
+
const {
|
|
51
|
+
ref,
|
|
52
|
+
...rest
|
|
53
|
+
} = newProps;
|
|
54
|
+
return React__default.createElement("div", _extends({
|
|
55
|
+
ref: ref
|
|
56
|
+
}, rest));
|
|
53
57
|
};
|
|
54
58
|
const ComputedActionButton = React__default.forwardRef(function ComputedActionButton({
|
|
55
59
|
component,
|
|
@@ -313,7 +317,7 @@ const AssetGalleryGridCard = props => {
|
|
|
313
317
|
const renderThumbnail = () => {
|
|
314
318
|
return React__default.createElement(ThumbnailSection, null, React__default.createElement(ThumbnailSelectedOverlay, {
|
|
315
319
|
selected: selected
|
|
316
|
-
}), React__default.createElement(HorizontalBar, null, React__default.createElement(HorizontalBarLeft, null, renderVersionsBadge()), React__default.createElement(HorizontalBarRight, null, asset.statusIcon && React__default.createElement(StatusIconCircle, null, asset.statusIcon))), React__default.createElement(ThumbnailRow, null, React__default.createElement(ThumbnailSpacer, null), React__default.createElement(ThumbnailWrapper, null, React__default.createElement(ThumbnailBox, null, renderPreview(asset)
|
|
320
|
+
}), asset.overlay && React__default.createElement(ConsumerOverlay, null, asset.overlay), React__default.createElement(HorizontalBar, null, React__default.createElement(HorizontalBarLeft, null, renderVersionsBadge()), React__default.createElement(HorizontalBarRight, null, asset.statusIcon && React__default.createElement(StatusIconCircle, null, asset.statusIcon))), React__default.createElement(ThumbnailRow, null, React__default.createElement(ThumbnailSpacer, null), React__default.createElement(ThumbnailWrapper, null, React__default.createElement(ThumbnailBox, null, renderPreview(asset))), React__default.createElement(ThumbnailActions, null, React__default.createElement(ActionsContainer, null, (asset.actions ?? []).map((action, index) => React__default.createElement(Tooltip, {
|
|
317
321
|
key: `${asset.key}-${action.title}`,
|
|
318
322
|
content: action.title
|
|
319
323
|
}, React__default.createElement(Action, null, React__default.createElement(ComputedActionButton, {
|
|
@@ -332,7 +336,7 @@ const AssetGalleryGridCard = props => {
|
|
|
332
336
|
}, asset.title || ''), React__default.createElement(CardDescription, {
|
|
333
337
|
title: asset.description || ''
|
|
334
338
|
}, asset.description || ''), React__default.createElement(InstructionsWrapper, {
|
|
335
|
-
$hasContent: Boolean(asset.imageRights)
|
|
339
|
+
$hasContent: Boolean(asset.imageRights?.toString().trim())
|
|
336
340
|
}, asset.imageRights && React__default.createElement(InstructionSeverityDisplay, {
|
|
337
341
|
labels: asset.instructionLabels,
|
|
338
342
|
instructionText: asset.imageRights,
|
package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryGridCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js"],"sourcesContent":["import { get, isEmpty, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport { HeadsetIcon, LayersIcon, PlayIcon } from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge, Popover, Tooltip } from '../../../../data';\nimport { ActionButton, Checkbox } from '../../../../inputs';\nimport ContextMenu from '../../../ContextMenu/ContextMenu';\nimport ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryGridCard.styled';\nimport InstructionSeverityDisplay from '../../../InstructionSeverityDisplay';\n\n/**\n >>> Section 1: renderThumbnail():\n┌─────────────────────────────────────────┐ ← S.AssetGalleryGridCard (Root)\n│[renderversionsBadge] [severityIcon]│ ← S.HorizontalBar (Top)\n├─────────────────────────────────────────┤\n│ │ │ │\n│ (spacer) │ [renderPreview]│ [action]│ ← S.ThumbnailRow (Inc. ComputedActionButton)\n│ │ │ [action]│ ← S.ActionsContainer\n│ │ │ │\n├─────────────────────────────────────────┤\n│ [renderMediaBadge] │ ← S.HorizontalBar (Bottom)\n├─────────────────────────────────────────┤\n│ | >>> Section 2: renderDetails():\n│ [asset.title] │ ← S.CardTitle\n│ [asset.description] │ ← S.CardDescription\n├─────────────────────────────────────────┤\n│ [InstructionSeverityDisplay] │ ← S.InstructionsWrapper\n| |\n| | >>> Section 3:renderConsentSummaryInfo():\n├─────────────────────────────────────────┤ ← S.CardDivider\n│ [footerLeft] [footerRight] │ ← S.CardFooter\n├─────────────────────────────────────────┤ ← S.CardDivider\n| |\n│ | >>> Section 4:renderCheckboxRow():\n│ [CheckRectangleIcon / Outline] │ ← S.CheckboxRow\n└─────────────────────────────────────────┘\n Approx Height: 536px (Updated severity card takes more space than XD Design)\n Note: Every block renders ALWAYS to maintain same height+alignment in gallery\n */\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'isCardHovered',\n '$isCardHovered',\n 'completed',\n '$hasError'\n ]),\n (_, key) => (key === 'innerRef' ? 'ref' : key)\n );\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component(asset, newProps.children))) {\n return React.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));\n }\n }\n\n return <S.AssetGalleryGridCard ref={newProps.ref} {...newProps} />;\n};\n\n/* eslint-disable react/prop-types */\nconst ComputedActionButton = React.forwardRef(function ComputedActionButton(\n // eslint-disable-next-line react/prop-types\n { component, className, subActions = [], isSubActionsOpened, ...props },\n forwardedRef\n) {\n const newProps = props;\n if (!isEmpty(subActions)) {\n const contextMenuItems = subActions.map((subAction, key) => {\n const { onClick, title, icon } = subAction;\n return <ContextMenuItem key={key} onClickEffect={onClick} title={title} icon={icon} />;\n });\n const contextMenu = <ContextMenu>{contextMenuItems}</ContextMenu>;\n newProps.children = (\n <Popover\n contextMenu={true}\n content={contextMenu}\n placement={'bottom-end'}\n visible={isSubActionsOpened}\n zIndex={10001}\n offset={[0, -8]}\n >\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n backgroundColors={['black', 'white']}\n onClick={newProps.onClick}\n actionWidthHeight={[40, 40]}\n />\n </Popover>\n );\n } else {\n newProps.children = (\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n onClick={newProps.onClick}\n backgroundColors={['black', 'white']}\n actionWidthHeight={[40, 40]}\n />\n );\n }\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component())) {\n return React.cloneElement(component(), { ...omit(newProps, 'icon') });\n }\n }\n\n return <React.Fragment>{newProps.children}</React.Fragment>;\n});\n/* eslint-disable react/prop-types */\n\nconst AssetGalleryGridCard = props => {\n const {\n asset,\n selectable,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition\n } = props;\n\n const [isCardHovered, setIsCardHovered] = React.useState(false);\n const [openedSubActions, updateOpenedSubActions] = React.useState([]);\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isCardHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isCardHovered]);\n\n const mouseHasEnteredCard = useCallback(() => {\n setIsCardHovered(true);\n }, []);\n\n const mouseHasLeftCard = useCallback(() => {\n setIsCardHovered(false);\n }, []);\n\n const onSubActionsViewToggle = useCallback(\n actionIndex => {\n const newOpenedSubActions = openedSubActions.map((isOpened, index) => {\n if (index !== actionIndex) {\n return false;\n }\n return !isOpened;\n });\n updateOpenedSubActions(newOpenedSubActions);\n },\n [openedSubActions]\n );\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n\n mouseHasEnteredCard();\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n\n mouseHasLeftCard();\n }\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n return onAssetSelected(asset.key);\n }\n\n const onActionClick = useCallback(\n (event, action, index) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isFunction(action?.onClick)) {\n action.onClick(asset);\n }\n\n if (!isEmpty(action?.subActions)) {\n onSubActionsViewToggle(index);\n }\n },\n [onSubActionsViewToggle]\n );\n\n const shouldOpenSubActions = useCallback(\n actionIndex => openedSubActions[actionIndex],\n [openedSubActions]\n );\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n function renderPreview(asset) {\n let previewContent = null;\n\n if (asset.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video ref={videoPlayerRef} loop muted>\n <source src={asset.previewUrl} type=\"video/mp4\" />\n </video>\n </LazyLoadComponent>\n );\n } else if (asset.fileType?.toLowerCase() === 'audio') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <HeadsetIcon />\n </div>\n </LazyLoadComponent>\n );\n } else {\n previewContent = (\n <LazyLoadImage\n alt={asset.title}\n src={asset.previewUrl}\n height=\"100%\"\n width=\"100%\"\n delayMethod=\"debounce\"\n delayTime={0}\n threshold={1500}\n scrollPosition={scrollPosition}\n />\n );\n }\n\n return previewContent;\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderThumbnail = () => {\n return (\n <S.ThumbnailSection>\n <S.ThumbnailSelectedOverlay selected={selected} />\n {/* Thumbnail Top bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft>{renderVersionsBadge()}</S.HorizontalBarLeft>\n <S.HorizontalBarRight>\n {asset.statusIcon && <S.StatusIconCircle>{asset.statusIcon}</S.StatusIconCircle>}\n </S.HorizontalBarRight>\n </S.HorizontalBar>\n <S.ThumbnailRow>\n <S.ThumbnailSpacer />\n {/* Thumbnail */}\n <S.ThumbnailWrapper>\n <S.ThumbnailBox>\n {renderPreview(asset)}\n\n {asset.overlay && <S.ConsumerOverlay>{asset.overlay}</S.ConsumerOverlay>}\n </S.ThumbnailBox>\n </S.ThumbnailWrapper>\n <S.ThumbnailActions>\n <S.ActionsContainer>\n {(asset.actions ?? []).map((action, index) => (\n <Tooltip key={`${asset.key}-${action.title}`} content={action.title}>\n <S.Action>\n <ComputedActionButton\n component={action.component}\n className={action.className}\n icon={action.icon}\n isSubActionsOpened={shouldOpenSubActions(index)}\n onClick={event => onActionClick(event, action, index)}\n subActions={action?.subActions}\n actionWidthHeight={action.actionWidthHeight}\n />\n </S.Action>\n </Tooltip>\n ))}\n </S.ActionsContainer>\n </S.ThumbnailActions>\n </S.ThumbnailRow>\n {/* Thumbnail Bottom bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft></S.HorizontalBarLeft>\n <S.HorizontalBarRight>{renderMediaBadge()}</S.HorizontalBarRight>\n </S.HorizontalBar>\n </S.ThumbnailSection>\n );\n };\n\n const renderDetails = () => {\n return (\n <S.CardBody>\n <S.CardTitle title={asset.title || ''}>{asset.title || ''}</S.CardTitle>\n <S.CardDescription title={asset.description || ''}>\n {asset.description || ''}\n </S.CardDescription>\n <S.InstructionsWrapper $hasContent={Boolean(asset.imageRights)}>\n {asset.imageRights && (\n <InstructionSeverityDisplay\n labels={asset.instructionLabels}\n instructionText={asset.imageRights}\n severity={asset.instructionSeverity}\n showCard={false}\n padding=\"16px\"\n detailsFontSize=\"12px\"\n bgLight=\"transparent\"\n bgDark=\"transparent\"\n maxLines={2}\n />\n )}\n </S.InstructionsWrapper>\n </S.CardBody>\n );\n };\n\n const renderConsentSummaryInfo = () => {\n return (\n <>\n <S.CardFooter>\n <S.CardFooterLeft>{asset.summary?.footerLeft || null}</S.CardFooterLeft>\n <S.CardFooterRight>{asset.summary?.footerRight || null}</S.CardFooterRight>\n </S.CardFooter>\n <S.CardDivider />\n </>\n );\n };\n\n const renderCheckboxRow = () => {\n return (\n <S.CheckboxRow>\n {selectable && (\n <div onClick={onSelectClick}>\n <Checkbox\n variant=\"black\"\n checked={selected}\n onChange={event => {\n if (event.target.checked) {\n onAssetSelected(asset.key);\n } else {\n onAssetUnselected(asset.key);\n }\n }}\n />\n </div>\n )}\n </S.CheckboxRow>\n );\n };\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled} ref={cardRef}>\n <S.AssetGalleryGridCard\n as={ComputedRootComponent}\n component={component}\n asset={asset}\n disabled={asset.disabled}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n $softSelected={softSelected}\n completed={asset?.completed}\n $hasError={asset?.hasError}\n $customSelectedBorder={customSelectedBorder}\n >\n {renderThumbnail()}\n {renderDetails()}\n {renderConsentSummaryInfo()}\n {renderCheckboxRow()}\n </S.AssetGalleryGridCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryGridCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number\n};\n\nAssetGalleryGridCard.defaultProps = {};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryGridCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.overlay',\n 'asset.statusIcon',\n 'asset.layout',\n 'asset.imageRights',\n 'asset.instructionSeverity',\n 'asset.description',\n 'asset.title'\n ];\n\n return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));\n })\n);\n"],"names":["ComputedRootComponent","component","asset","props","newProps","mapKeys","omit","_","key","isFunction","Error","React","isValidElement","children","cloneElement","createElement","S","_extends","ref","ComputedActionButton","forwardRef","className","subActions","isSubActionsOpened","forwardedRef","isEmpty","contextMenuItems","map","subAction","onClick","title","icon","ContextMenuItem","onClickEffect","contextMenu","ContextMenu","Popover","content","placement","visible","zIndex","offset","ActionButton","useShadow","active","backgroundColors","actionWidthHeight","Fragment","AssetGalleryGridCard","selectable","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","isCardHovered","setIsCardHovered","useState","openedSubActions","updateOpenedSubActions","useEffect","newOpenedSubActions","actions","length","mouseHasEnteredCard","useCallback","mouseHasLeftCard","onSubActionsViewToggle","actionIndex","isOpened","index","videoPlayerRef","useRef","cardRef","dragRef","onMouseEnter","event","current","playPromise","play","undefined","then","catch","onMouseLeave","pause","onSelectClick","preventDefault","stopPropagation","onActionClick","action","shouldOpenSubActions","onContextMenu","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","HeadsetIcon","LazyLoadImage","alt","height","width","delayMethod","delayTime","threshold","addEventListener","removeEventListener","onDragstart","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderMediaBadge","PlayIcon","duration","convertMsToHMS","minWidth","renderThumbnail","statusIcon","overlay","Tooltip","renderDetails","description","$hasContent","Boolean","imageRights","InstructionSeverityDisplay","labels","instructionLabels","instructionText","severity","instructionSeverity","showCard","padding","detailsFontSize","bgLight","bgDark","maxLines","renderConsentSummaryInfo","summary","footerLeft","footerRight","renderCheckboxRow","Checkbox","variant","checked","onChange","target","disabled","as","draggable","innerRef","$softSelected","completed","$hasError","hasError","$customSelectedBorder","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","defaultProps","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryGridCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js"],"sourcesContent":["import { get, isEmpty, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport { HeadsetIcon, LayersIcon, PlayIcon } from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge, Popover, Tooltip } from '../../../../data';\nimport { ActionButton, Checkbox } from '../../../../inputs';\nimport ContextMenu from '../../../ContextMenu/ContextMenu';\nimport ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryGridCard.styled';\nimport InstructionSeverityDisplay from '../../../InstructionSeverityDisplay';\n\n/**\n >>> Section 1: renderThumbnail():\n┌─────────────────────────────────────────┐ ← S.AssetGalleryGridCard (Root)\n│[renderversionsBadge] [severityIcon]│ ← S.HorizontalBar (Top)\n├─────────────────────────────────────────┤\n│ │ │ │\n│ (spacer) │ [renderPreview]│ [action]│ ← S.ThumbnailRow (Inc. ComputedActionButton)\n│ │ │ [action]│ ← S.ActionsContainer\n│ │ │ │\n├─────────────────────────────────────────┤\n│ [renderMediaBadge] │ ← S.HorizontalBar (Bottom)\n├─────────────────────────────────────────┤\n│ | >>> Section 2: renderDetails():\n│ [asset.title] │ ← S.CardTitle\n│ [asset.description] │ ← S.CardDescription\n├─────────────────────────────────────────┤\n│ [InstructionSeverityDisplay] │ ← S.InstructionsWrapper\n| |\n| | >>> Section 3:renderConsentSummaryInfo():\n├─────────────────────────────────────────┤ ← S.CardDivider\n│ [footerLeft] [footerRight] │ ← S.CardFooter\n├─────────────────────────────────────────┤ ← S.CardDivider\n| |\n│ | >>> Section 4:renderCheckboxRow():\n│ [CheckRectangleIcon / Outline] │ ← S.CheckboxRow\n└─────────────────────────────────────────┘\n Approx Height: 536px (Updated severity card takes more space than XD Design)\n Note: Every block renders ALWAYS to maintain same height+alignment in gallery\n */\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'isCardHovered',\n '$isCardHovered',\n 'completed',\n '$hasError'\n ]),\n (_, key) => (key === 'innerRef' ? 'ref' : key)\n );\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component(asset, newProps.children))) {\n return React.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));\n }\n }\n\n const { ref, ...rest } = newProps;\n return <div ref={ref} {...rest} />;\n};\n\n/* eslint-disable react/prop-types */\nconst ComputedActionButton = React.forwardRef(function ComputedActionButton(\n // eslint-disable-next-line react/prop-types\n { component, className, subActions = [], isSubActionsOpened, ...props },\n forwardedRef\n) {\n const newProps = props;\n if (!isEmpty(subActions)) {\n const contextMenuItems = subActions.map((subAction, key) => {\n const { onClick, title, icon } = subAction;\n return <ContextMenuItem key={key} onClickEffect={onClick} title={title} icon={icon} />;\n });\n const contextMenu = <ContextMenu>{contextMenuItems}</ContextMenu>;\n newProps.children = (\n <Popover\n contextMenu={true}\n content={contextMenu}\n placement={'bottom-end'}\n visible={isSubActionsOpened}\n zIndex={10001}\n offset={[0, -8]}\n >\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n backgroundColors={['black', 'white']}\n onClick={newProps.onClick}\n actionWidthHeight={[40, 40]}\n />\n </Popover>\n );\n } else {\n newProps.children = (\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n onClick={newProps.onClick}\n backgroundColors={['black', 'white']}\n actionWidthHeight={[40, 40]}\n />\n );\n }\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component())) {\n return React.cloneElement(component(), { ...omit(newProps, 'icon') });\n }\n }\n\n return <React.Fragment>{newProps.children}</React.Fragment>;\n});\n/* eslint-disable react/prop-types */\n\nconst AssetGalleryGridCard = props => {\n const {\n asset,\n selectable,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition\n } = props;\n\n const [isCardHovered, setIsCardHovered] = React.useState(false);\n const [openedSubActions, updateOpenedSubActions] = React.useState([]);\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isCardHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isCardHovered]);\n\n const mouseHasEnteredCard = useCallback(() => {\n setIsCardHovered(true);\n }, []);\n\n const mouseHasLeftCard = useCallback(() => {\n setIsCardHovered(false);\n }, []);\n\n const onSubActionsViewToggle = useCallback(\n actionIndex => {\n const newOpenedSubActions = openedSubActions.map((isOpened, index) => {\n if (index !== actionIndex) {\n return false;\n }\n return !isOpened;\n });\n updateOpenedSubActions(newOpenedSubActions);\n },\n [openedSubActions]\n );\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n\n mouseHasEnteredCard();\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n\n mouseHasLeftCard();\n }\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n return onAssetSelected(asset.key);\n }\n\n const onActionClick = useCallback(\n (event, action, index) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isFunction(action?.onClick)) {\n action.onClick(asset);\n }\n\n if (!isEmpty(action?.subActions)) {\n onSubActionsViewToggle(index);\n }\n },\n [onSubActionsViewToggle]\n );\n\n const shouldOpenSubActions = useCallback(\n actionIndex => openedSubActions[actionIndex],\n [openedSubActions]\n );\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n function renderPreview(asset) {\n let previewContent = null;\n\n if (asset.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video ref={videoPlayerRef} loop muted>\n <source src={asset.previewUrl} type=\"video/mp4\" />\n </video>\n </LazyLoadComponent>\n );\n } else if (asset.fileType?.toLowerCase() === 'audio') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <HeadsetIcon />\n </div>\n </LazyLoadComponent>\n );\n } else {\n previewContent = (\n <LazyLoadImage\n alt={asset.title}\n src={asset.previewUrl}\n height=\"100%\"\n width=\"100%\"\n delayMethod=\"debounce\"\n delayTime={0}\n threshold={1500}\n scrollPosition={scrollPosition}\n />\n );\n }\n\n return previewContent;\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderThumbnail = () => {\n return (\n <S.ThumbnailSection>\n <S.ThumbnailSelectedOverlay selected={selected} />\n {asset.overlay && <S.ConsumerOverlay>{asset.overlay}</S.ConsumerOverlay>}\n {/* Thumbnail Top bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft>{renderVersionsBadge()}</S.HorizontalBarLeft>\n <S.HorizontalBarRight>\n {asset.statusIcon && <S.StatusIconCircle>{asset.statusIcon}</S.StatusIconCircle>}\n </S.HorizontalBarRight>\n </S.HorizontalBar>\n <S.ThumbnailRow>\n <S.ThumbnailSpacer />\n {/* Thumbnail */}\n <S.ThumbnailWrapper>\n <S.ThumbnailBox>{renderPreview(asset)}</S.ThumbnailBox>\n </S.ThumbnailWrapper>\n <S.ThumbnailActions>\n <S.ActionsContainer>\n {(asset.actions ?? []).map((action, index) => (\n <Tooltip key={`${asset.key}-${action.title}`} content={action.title}>\n <S.Action>\n <ComputedActionButton\n component={action.component}\n className={action.className}\n icon={action.icon}\n isSubActionsOpened={shouldOpenSubActions(index)}\n onClick={event => onActionClick(event, action, index)}\n subActions={action?.subActions}\n actionWidthHeight={action.actionWidthHeight}\n />\n </S.Action>\n </Tooltip>\n ))}\n </S.ActionsContainer>\n </S.ThumbnailActions>\n </S.ThumbnailRow>\n {/* Thumbnail Bottom bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft></S.HorizontalBarLeft>\n <S.HorizontalBarRight>{renderMediaBadge()}</S.HorizontalBarRight>\n </S.HorizontalBar>\n </S.ThumbnailSection>\n );\n };\n\n const renderDetails = () => {\n return (\n <S.CardBody>\n <S.CardTitle title={asset.title || ''}>{asset.title || ''}</S.CardTitle>\n <S.CardDescription title={asset.description || ''}>\n {asset.description || ''}\n </S.CardDescription>\n <S.InstructionsWrapper $hasContent={Boolean(asset.imageRights?.toString().trim())}>\n {asset.imageRights && (\n <InstructionSeverityDisplay\n labels={asset.instructionLabels}\n instructionText={asset.imageRights}\n severity={asset.instructionSeverity}\n showCard={false}\n padding=\"16px\"\n detailsFontSize=\"12px\"\n bgLight=\"transparent\"\n bgDark=\"transparent\"\n maxLines={2}\n />\n )}\n </S.InstructionsWrapper>\n </S.CardBody>\n );\n };\n\n const renderConsentSummaryInfo = () => {\n return (\n <>\n <S.CardFooter>\n <S.CardFooterLeft>{asset.summary?.footerLeft || null}</S.CardFooterLeft>\n <S.CardFooterRight>{asset.summary?.footerRight || null}</S.CardFooterRight>\n </S.CardFooter>\n <S.CardDivider />\n </>\n );\n };\n\n const renderCheckboxRow = () => {\n return (\n <S.CheckboxRow>\n {selectable && (\n <div onClick={onSelectClick}>\n <Checkbox\n variant=\"black\"\n checked={selected}\n onChange={event => {\n if (event.target.checked) {\n onAssetSelected(asset.key);\n } else {\n onAssetUnselected(asset.key);\n }\n }}\n />\n </div>\n )}\n </S.CheckboxRow>\n );\n };\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled} ref={cardRef}>\n <S.AssetGalleryGridCard\n as={ComputedRootComponent}\n component={component}\n asset={asset}\n disabled={asset.disabled}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n $softSelected={softSelected}\n completed={asset?.completed}\n $hasError={asset?.hasError}\n $customSelectedBorder={customSelectedBorder}\n >\n {renderThumbnail()}\n {renderDetails()}\n {renderConsentSummaryInfo()}\n {renderCheckboxRow()}\n </S.AssetGalleryGridCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryGridCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number\n};\n\nAssetGalleryGridCard.defaultProps = {};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryGridCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.overlay',\n 'asset.statusIcon',\n 'asset.layout',\n 'asset.imageRights',\n 'asset.instructionSeverity',\n 'asset.description',\n 'asset.title'\n ];\n\n return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));\n })\n);\n"],"names":["ComputedRootComponent","component","asset","props","newProps","mapKeys","omit","_","key","isFunction","Error","React","isValidElement","children","cloneElement","ref","rest","createElement","_extends","ComputedActionButton","forwardRef","className","subActions","isSubActionsOpened","forwardedRef","isEmpty","contextMenuItems","map","subAction","onClick","title","icon","ContextMenuItem","onClickEffect","contextMenu","ContextMenu","Popover","content","placement","visible","zIndex","offset","ActionButton","useShadow","active","backgroundColors","actionWidthHeight","Fragment","AssetGalleryGridCard","selectable","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","isCardHovered","setIsCardHovered","useState","openedSubActions","updateOpenedSubActions","useEffect","newOpenedSubActions","actions","length","mouseHasEnteredCard","useCallback","mouseHasLeftCard","onSubActionsViewToggle","actionIndex","isOpened","index","videoPlayerRef","useRef","cardRef","dragRef","onMouseEnter","event","current","playPromise","play","undefined","then","catch","onMouseLeave","pause","onSelectClick","preventDefault","stopPropagation","onActionClick","action","shouldOpenSubActions","onContextMenu","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","HeadsetIcon","LazyLoadImage","alt","height","width","delayMethod","delayTime","threshold","addEventListener","removeEventListener","onDragstart","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderMediaBadge","PlayIcon","duration","convertMsToHMS","minWidth","renderThumbnail","S","overlay","statusIcon","Tooltip","renderDetails","description","$hasContent","Boolean","imageRights","toString","trim","InstructionSeverityDisplay","labels","instructionLabels","instructionText","severity","instructionSeverity","showCard","padding","detailsFontSize","bgLight","bgDark","maxLines","renderConsentSummaryInfo","summary","footerLeft","footerRight","renderCheckboxRow","Checkbox","variant","checked","onChange","target","disabled","as","draggable","innerRef","$softSelected","completed","$hasError","hasError","$customSelectedBorder","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","defaultProps","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAMA,qBAAqB,GAAGA,CAAC;EAAEC,SAAS;EAAEC,KAAK;EAAE,GAAGC,KAAAA;AAAM,CAAC,KAAK;AAEhE,EAAA,MAAMC,QAAQ,GAAGC,OAAO,CACtBC,IAAI,CAACH,KAAK,EAAE,CACV,OAAO,EACP,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,CACZ,CAAC,EACF,CAACI,CAAC,EAAEC,GAAG,KAAMA,GAAG,KAAK,UAAU,GAAG,KAAK,GAAGA,GAC5C,CAAC,CAAA;AAED,EAAA,IAAIP,SAAS,EAAE;IACb,IAAI,CAACQ,UAAU,CAACR,SAAS,CAAC,EAAE,MAAMS,KAAK,CAAC,uCAAuC,CAAC,CAAA;AAEhF,IAAA,IAAIC,cAAK,CAACC,cAAc,CAACX,SAAS,CAACC,KAAK,EAAEE,QAAQ,CAACS,QAAQ,CAAC,CAAC,EAAE;MAC7D,OAAOF,cAAK,CAACG,YAAY,CAACb,SAAS,CAACC,KAAK,EAAEE,QAAQ,CAACS,QAAQ,CAAC,EAAEP,IAAI,CAACF,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAC9F,KAAA;AACF,GAAA;EAEA,MAAM;IAAEW,GAAG;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAGZ,QAAQ,CAAA;AACjC,EAAA,OAAOO,cAAA,CAAAM,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AAAKH,IAAAA,GAAG,EAAEA,GAAAA;GAASC,EAAAA,IAAI,CAAG,CAAC,CAAA;AACpC,CAAC,CAAA;AAGD,MAAMG,oBAAoB,GAAGR,cAAK,CAACS,UAAU,CAAC,SAASD,oBAAoBA,CAEzE;EAAElB,SAAS;EAAEoB,SAAS;AAAEC,EAAAA,UAAU,GAAG,EAAE;EAAEC,kBAAkB;EAAE,GAAGpB,KAAAA;AAAM,CAAC,EACvEqB,YAAY,EACZ;EACA,MAAMpB,QAAQ,GAAGD,KAAK,CAAA;AACtB,EAAA,IAAI,CAACsB,OAAO,CAACH,UAAU,CAAC,EAAE;IACxB,MAAMI,gBAAgB,GAAGJ,UAAU,CAACK,GAAG,CAAC,CAACC,SAAS,EAAEpB,GAAG,KAAK;MAC1D,MAAM;QAAEqB,OAAO;QAAEC,KAAK;AAAEC,QAAAA,IAAAA;AAAK,OAAC,GAAGH,SAAS,CAAA;AAC1C,MAAA,OAAOjB,cAAA,CAAAM,aAAA,CAACe,eAAe,EAAA;AAACxB,QAAAA,GAAG,EAAEA,GAAI;AAACyB,QAAAA,aAAa,EAAEJ,OAAQ;AAACC,QAAAA,KAAK,EAAEA,KAAM;AAACC,QAAAA,IAAI,EAAEA,IAAAA;AAAK,OAAE,CAAC,CAAA;AACxF,KAAC,CAAC,CAAA;IACF,MAAMG,WAAW,GAAGvB,cAAA,CAAAM,aAAA,CAACkB,WAAW,EAAET,IAAAA,EAAAA,gBAA8B,CAAC,CAAA;AACjEtB,IAAAA,QAAQ,CAACS,QAAQ,GACfF,cAAA,CAAAM,aAAA,CAACmB,OAAO,EAAA;AACNF,MAAAA,WAAW,EAAE,IAAK;AAClBG,MAAAA,OAAO,EAAEH,WAAY;AACrBI,MAAAA,SAAS,EAAE,YAAa;AACxBC,MAAAA,OAAO,EAAEhB,kBAAmB;AAC5BiB,MAAAA,MAAM,EAAE,KAAM;AACdC,MAAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAAE,KAAA,EAEhB9B,cAAA,CAAAM,aAAA,CAACyB,YAAY,EAAA;AACXC,MAAAA,SAAS,EAAE,KAAM;AACjBC,MAAAA,MAAM,EAAE,IAAK;AACb7B,MAAAA,GAAG,EAAES,YAAa;AAClBH,MAAAA,SAAS,EAAEA,SAAU;MACrBU,IAAI,EAAE3B,QAAQ,CAAC2B,IAAK;AACpBc,MAAAA,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAE;MACrChB,OAAO,EAAEzB,QAAQ,CAACyB,OAAQ;AAC1BiB,MAAAA,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;AAAE,KAC7B,CACM,CACV,CAAA;AACH,GAAC,MAAM;AACL1C,IAAAA,QAAQ,CAACS,QAAQ,GACfF,cAAA,CAAAM,aAAA,CAACyB,YAAY,EAAA;AACXC,MAAAA,SAAS,EAAE,KAAM;AACjBC,MAAAA,MAAM,EAAE,IAAK;AACb7B,MAAAA,GAAG,EAAES,YAAa;AAClBH,MAAAA,SAAS,EAAEA,SAAU;MACrBU,IAAI,EAAE3B,QAAQ,CAAC2B,IAAK;MACpBF,OAAO,EAAEzB,QAAQ,CAACyB,OAAQ;AAC1BgB,MAAAA,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAE;AACrCC,MAAAA,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;AAAE,KAC7B,CACF,CAAA;AACH,GAAA;AAEA,EAAA,IAAI7C,SAAS,EAAE;IACb,IAAI,CAACQ,UAAU,CAACR,SAAS,CAAC,EAAE,MAAMS,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAEhF,IAAIC,cAAK,CAACC,cAAc,CAACX,SAAS,EAAE,CAAC,EAAE;AACrC,MAAA,OAAOU,cAAK,CAACG,YAAY,CAACb,SAAS,EAAE,EAAE;AAAE,QAAA,GAAGK,IAAI,CAACF,QAAQ,EAAE,MAAM,CAAA;AAAE,OAAC,CAAC,CAAA;AACvE,KAAA;AACF,GAAA;EAEA,OAAOO,cAAA,CAAAM,aAAA,CAACN,cAAK,CAACoC,QAAQ,EAAE3C,IAAAA,EAAAA,QAAQ,CAACS,QAAyB,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAGF,MAAMmC,oBAAoB,GAAG7C,KAAK,IAAI;EACpC,MAAM;IACJD,KAAK;IACL+C,UAAU;IACVC,QAAQ;IACRC,oBAAoB;IACpBC,kBAAkB;IAClBC,eAAe;IACfC,iBAAiB;IACjBC,YAAY;IACZtD,SAAS;AACTuD,IAAAA,cAAAA;AACF,GAAC,GAAGrD,KAAK,CAAA;EAET,MAAM,CAACsD,aAAa,EAAEC,gBAAgB,CAAC,GAAG/C,cAAK,CAACgD,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC/D,MAAM,CAACC,gBAAgB,EAAEC,sBAAsB,CAAC,GAAGlD,cAAK,CAACgD,QAAQ,CAAC,EAAE,CAAC,CAAA;AACrEG,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMC,mBAAmB,GAAG,CAAC7D,KAAK,EAAE8D,OAAO,IAAI,EAAE,EAAErC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAA;IACnEkC,sBAAsB,CAACE,mBAAmB,CAAC,CAAA;AAC7C,GAAC,EAAE,CAAC7D,KAAK,CAAC,CAAC,CAAA;AAEX4D,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACL,aAAa,IAAIG,gBAAgB,EAAEK,MAAM,EAAE;MAC9CJ,sBAAsB,CAACD,gBAAgB,CAACjC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;AAC3D,KAAA;AACF,GAAC,EAAE,CAAC8B,aAAa,CAAC,CAAC,CAAA;AAEnB,EAAA,MAAMS,mBAAmB,GAAGC,WAAW,CAAC,MAAM;IAC5CT,gBAAgB,CAAC,IAAI,CAAC,CAAA;GACvB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMU,gBAAgB,GAAGD,WAAW,CAAC,MAAM;IACzCT,gBAAgB,CAAC,KAAK,CAAC,CAAA;GACxB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMW,sBAAsB,GAAGF,WAAW,CACxCG,WAAW,IAAI;IACb,MAAMP,mBAAmB,GAAGH,gBAAgB,CAACjC,GAAG,CAAC,CAAC4C,QAAQ,EAAEC,KAAK,KAAK;MACpE,IAAIA,KAAK,KAAKF,WAAW,EAAE;AACzB,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AACA,MAAA,OAAO,CAACC,QAAQ,CAAA;AAClB,KAAC,CAAC,CAAA;IACFV,sBAAsB,CAACE,mBAAmB,CAAC,CAAA;AAC7C,GAAC,EACD,CAACH,gBAAgB,CACnB,CAAC,CAAA;AAED,EAAA,MAAMa,cAAc,GAAGC,MAAM,EAAE,CAAA;AAC/B,EAAA,MAAMC,OAAO,GAAGD,MAAM,EAAE,CAAA;AACxB,EAAA,MAAME,OAAO,GAAGF,MAAM,CAAC,IAAI,CAAC,CAAA;EAE5B,SAASG,YAAYA,CAACC,KAAK,EAAE;IAC3B,IAAIL,cAAc,CAACM,OAAO,EAAE;MAC1B,MAAMC,WAAW,GAAGP,cAAc,CAACM,OAAO,CAACE,IAAI,EAAE,CAAA;MACjD,IAAID,WAAW,KAAKE,SAAS,EAAE;AAC7BF,QAAAA,WAAW,CACRG,IAAI,CAAC,MAAM,EAEX,CAAC,CACDC,KAAK,CAAC,MAAM,EAEZ,CAAC,CAAA;AACN,OAAA;AACF,KAAA;AAEA,IAAA,IAAI3E,UAAU,CAACP,KAAK,CAAC2E,YAAY,CAAC,EAAE;AAClC3E,MAAAA,KAAK,CAAC2E,YAAY,CAACC,KAAK,EAAE5E,KAAK,CAAC,CAAA;AAClC,KAAA;AAEAgE,IAAAA,mBAAmB,EAAE,CAAA;AACvB,GAAA;EAEA,SAASmB,YAAYA,GAAG;IACtB,IAAIZ,cAAc,CAACM,OAAO,EAAE;AAC1BN,MAAAA,cAAc,CAACM,OAAO,CAACO,KAAK,EAAE,CAAA;AAChC,KAAA;AAEAlB,IAAAA,gBAAgB,EAAE,CAAA;AACpB,GAAA;EAEA,SAASvC,OAAOA,CAACiD,KAAK,EAAE;AACtB,IAAA,IAAI1B,kBAAkB,EAAE;MACtB,OAAOmC,aAAa,CAACT,KAAK,CAAC,CAAA;AAC7B,KAAA;AAEA,IAAA,IAAIrE,UAAU,CAACP,KAAK,CAAC2B,OAAO,CAAC,EAAE;AAC7B3B,MAAAA,KAAK,CAAC2B,OAAO,CAACiD,KAAK,EAAE5E,KAAK,CAAC,CAAA;AAC7B,KAAA;AACF,GAAA;EAEA,SAASqF,aAAaA,CAACT,KAAK,EAAE;IAC5BA,KAAK,CAACU,cAAc,EAAE,CAAA;IACtBV,KAAK,CAACW,eAAe,EAAE,CAAA;AAEvB,IAAA,IAAIvC,QAAQ,EAAE;AACZ,MAAA,OAAOI,iBAAiB,CAACpD,KAAK,CAACM,GAAG,CAAC,CAAA;AACrC,KAAA;AAEA,IAAA,OAAO6C,eAAe,CAACnD,KAAK,CAACM,GAAG,CAAC,CAAA;AACnC,GAAA;EAEA,MAAMkF,aAAa,GAAGvB,WAAW,CAC/B,CAACW,KAAK,EAAEa,MAAM,EAAEnB,KAAK,KAAK;IACxBM,KAAK,CAACU,cAAc,EAAE,CAAA;IACtBV,KAAK,CAACW,eAAe,EAAE,CAAA;AAEvB,IAAA,IAAIhF,UAAU,CAACkF,MAAM,EAAE9D,OAAO,CAAC,EAAE;AAC/B8D,MAAAA,MAAM,CAAC9D,OAAO,CAAC3B,KAAK,CAAC,CAAA;AACvB,KAAA;AAEA,IAAA,IAAI,CAACuB,OAAO,CAACkE,MAAM,EAAErE,UAAU,CAAC,EAAE;MAChC+C,sBAAsB,CAACG,KAAK,CAAC,CAAA;AAC/B,KAAA;AACF,GAAC,EACD,CAACH,sBAAsB,CACzB,CAAC,CAAA;AAED,EAAA,MAAMuB,oBAAoB,GAAGzB,WAAW,CACtCG,WAAW,IAAIV,gBAAgB,CAACU,WAAW,CAAC,EAC5C,CAACV,gBAAgB,CACnB,CAAC,CAAA;EAED,SAASiC,aAAaA,CAACf,KAAK,EAAE;IAC5BA,KAAK,CAACU,cAAc,EAAE,CAAA;AACtBtF,IAAAA,KAAK,CAAC2F,aAAa,CAACf,KAAK,CAAC,CAAA;AAC5B,GAAA;EAEA,SAASgB,aAAaA,CAAC5F,KAAK,EAAE;IAC5B,IAAI6F,cAAc,GAAG,IAAI,CAAA;IAEzB,IAAI7F,KAAK,CAAC8F,QAAQ,EAAEC,WAAW,EAAE,KAAK,OAAO,EAAE;AAC7CF,MAAAA,cAAc,GACZpF,cAAA,CAAAM,aAAA,CAACiF,iBAAiB,EAAA;AAAC1C,QAAAA,cAAc,EAAEA,cAAAA;OACjC7C,EAAAA,cAAA,CAAAM,aAAA,CAAA,OAAA,EAAA;AAAOF,QAAAA,GAAG,EAAE0D,cAAe;QAAC0B,IAAI,EAAA,IAAA;QAACC,KAAK,EAAA,IAAA;OACpCzF,EAAAA,cAAA,CAAAM,aAAA,CAAA,QAAA,EAAA;QAAQoF,GAAG,EAAEnG,KAAK,CAACoG,UAAW;AAACC,QAAAA,IAAI,EAAC,WAAA;OAAa,CAC5C,CACU,CACpB,CAAA;KACF,MAAM,IAAIrG,KAAK,CAAC8F,QAAQ,EAAEC,WAAW,EAAE,KAAK,OAAO,EAAE;AACpDF,MAAAA,cAAc,GACZpF,cAAA,CAAAM,aAAA,CAACiF,iBAAiB,EAAA;AAAC1C,QAAAA,cAAc,EAAEA,cAAAA;OACjC7C,EAAAA,cAAA,CAAAM,aAAA,CAAA,KAAA,EAAA;AAAKI,QAAAA,SAAS,EAAC,OAAA;OACbV,EAAAA,cAAA,CAAAM,aAAA,CAACuF,UAAW,EAAE,IAAA,CACX,CACY,CACpB,CAAA;AACH,KAAC,MAAM;AACLT,MAAAA,cAAc,GACZpF,cAAA,CAAAM,aAAA,CAACwF,aAAa,EAAA;QACZC,GAAG,EAAExG,KAAK,CAAC4B,KAAM;QACjBuE,GAAG,EAAEnG,KAAK,CAACoG,UAAW;AACtBK,QAAAA,MAAM,EAAC,MAAM;AACbC,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,WAAW,EAAC,UAAU;AACtBC,QAAAA,SAAS,EAAE,CAAE;AACbC,QAAAA,SAAS,EAAE,IAAK;AAChBvD,QAAAA,cAAc,EAAEA,cAAAA;AAAe,OAChC,CACF,CAAA;AACH,KAAA;AAEA,IAAA,OAAOuC,cAAc,CAAA;AACvB,GAAA;AAEAjC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIrD,UAAU,CAACP,KAAK,CAAC2F,aAAa,CAAC,EAAE;MACnC,IAAIlB,OAAO,CAACI,OAAO,EAAE;QACnBJ,OAAO,CAACI,OAAO,CAACiC,gBAAgB,CAAC,aAAa,EAAEnB,aAAa,CAAC,CAAA;AAChE,OAAA;AACA,MAAA,OAAO,MAAM;QACX,IAAIlB,OAAO,CAACI,OAAO,EAAE;UACnBJ,OAAO,CAACI,OAAO,CAACkC,mBAAmB,CAAC,aAAa,EAAEpB,aAAa,CAAC,CAAA;AACnE,SAAA;OACD,CAAA;AACH,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,SAASqB,WAAWA,CAACpC,KAAK,EAAE;AAC1B5E,IAAAA,KAAK,CAACgH,WAAW,CAACpC,KAAK,CAAC,CAAA;AAC1B,GAAA;AAEAhB,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIrD,UAAU,CAACP,KAAK,CAACgH,WAAW,CAAC,EAAE;MACjC,IAAItC,OAAO,CAACG,OAAO,EAAE;QACnBH,OAAO,CAACG,OAAO,CAACiC,gBAAgB,CAAC,WAAW,EAAEE,WAAW,CAAC,CAAA;AAC5D,OAAA;AACA,MAAA,OAAO,MAAM;QACX,IAAItC,OAAO,CAACG,OAAO,EAAE;UACnBH,OAAO,CAACG,OAAO,CAACkC,mBAAmB,CAAC,WAAW,EAAEC,WAAW,CAAC,CAAA;AAC/D,SAAA;OACD,CAAA;AACH,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAGNpD,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIP,YAAY,EAAE;AAChBoB,MAAAA,OAAO,CAACI,OAAO,CAACoC,cAAc,CAAC;AAAEC,QAAAA,QAAQ,EAAE,QAAQ;AAAEC,QAAAA,KAAK,EAAE,SAAA;AAAU,OAAC,CAAC,CAAA;AAC1E,KAAA;AACF,GAAC,EAAE,CAAC9D,YAAY,CAAC,CAAC,CAAA;AAElB,EAAA,MAAM+D,mBAAmB,GAAGnD,WAAW,CAAC,MAAM;AAC5C,IAAA,IAAI,CAACjE,KAAK,EAAEqH,QAAQ,EAAE,OAAO,IAAI,CAAA;AAEjC,IAAA,OACE5G,cAAA,CAAAM,aAAA,CAACuG,KAAK,EAAA;AACJC,MAAAA,SAAS,EAAE9G,cAAA,CAAAM,aAAA,CAACyG,SAAU,MAAE,CAAE;MAC1BC,YAAY,EAAEzH,KAAK,CAACqH,QAAS;AAC7B1E,MAAAA,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAE;AACrC+E,MAAAA,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAE;AAC/BC,MAAAA,QAAQ,EAAE,EAAG;AACbC,MAAAA,UAAU,EAAE,GAAI;AAChBC,MAAAA,UAAU,EAAE,EAAG;AACfC,MAAAA,eAAe,EAAE,CAAE;AACnBC,MAAAA,iBAAiB,EAAE,CAAA;AAAE,KACtB,CAAC,CAAA;AAEN,GAAC,EAAE,CAAC/H,KAAK,CAAC,CAAC,CAAA;AAEX,EAAA,MAAMgI,gBAAgB,GAAG/D,WAAW,CAAC,MAAM;IACzC,IAAIsD,SAAS,GAAG,IAAI,CAAA;IACpB,IAAIE,YAAY,GAAG,IAAI,CAAA;AAEvB,IAAA,IAAIzH,KAAK,EAAE8F,QAAQ,KAAK,OAAO,EAAE;AAC/ByB,MAAAA,SAAS,GAAG9G,cAAA,CAAAM,aAAA,CAACkH,OAAQ,MAAE,CAAC,CAAA;AAC1B,KAAA;IAEA,IAAIjI,KAAK,EAAEkI,QAAQ,EAAE;AACnBT,MAAAA,YAAY,GAAGU,cAAc,CAACnI,KAAK,CAACkI,QAAQ,CAAC,CAAA;AAC/C,KAAA;AAEA,IAAA,IAAI,CAACX,SAAS,IAAI,CAACE,YAAY,EAAE,OAAO,IAAI,CAAA;AAC5C,IAAA,OACEhH,cAAA,CAAAM,aAAA,CAACuG,KAAK,EAAA;AACJC,MAAAA,SAAS,EAAEA,SAAU;AACrBE,MAAAA,YAAY,EAAEA,YAAa;AAC3B9E,MAAAA,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAE;AACrC+E,MAAAA,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAE;AAC/BC,MAAAA,QAAQ,EAAE,EAAG;AACbC,MAAAA,UAAU,EAAE,GAAI;AAChBC,MAAAA,UAAU,EAAE,EAAG;AACfC,MAAAA,eAAe,EAAE,CAAE;AACnBC,MAAAA,iBAAiB,EAAE,CAAE;AACrBK,MAAAA,QAAQ,EAAE,EAAG;AACb3B,MAAAA,MAAM,EAAE,EAAA;AAAG,KACZ,CAAC,CAAA;AAEN,GAAC,EAAE,CAACzG,KAAK,CAAC,CAAC,CAAA;EAEX,MAAMqI,eAAe,GAAGA,MAAM;AAC5B,IAAA,OACE5H,cAAA,CAAAM,aAAA,CAACuH,gBAAkB,EACjB7H,IAAAA,EAAAA,cAAA,CAAAM,aAAA,CAACuH,wBAA0B,EAAA;AAACtF,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAE,CAAC,EACjDhD,KAAK,CAACuI,OAAO,IAAI9H,cAAA,CAAAM,aAAA,CAACuH,eAAiB,QAAEtI,KAAK,CAACuI,OAA2B,CAAC,EAExE9H,cAAA,CAAAM,aAAA,CAACuH,aAAe,EAAA,IAAA,EACd7H,cAAA,CAAAM,aAAA,CAACuH,iBAAmB,EAAElB,IAAAA,EAAAA,mBAAmB,EAAwB,CAAC,EAClE3G,cAAA,CAAAM,aAAA,CAACuH,kBAAoB,EAClBtI,IAAAA,EAAAA,KAAK,CAACwI,UAAU,IAAI/H,cAAA,CAAAM,aAAA,CAACuH,gBAAkB,EAAEtI,IAAAA,EAAAA,KAAK,CAACwI,UAA+B,CAC3D,CACP,CAAC,EAClB/H,cAAA,CAAAM,aAAA,CAACuH,YAAc,EAAA,IAAA,EACb7H,cAAA,CAAAM,aAAA,CAACuH,eAAiB,EAAE,IAAA,CAAC,EAErB7H,cAAA,CAAAM,aAAA,CAACuH,gBAAkB,EAAA,IAAA,EACjB7H,cAAA,CAAAM,aAAA,CAACuH,YAAc,EAAE1C,IAAAA,EAAAA,aAAa,CAAC5F,KAAK,CAAkB,CACpC,CAAC,EACrBS,cAAA,CAAAM,aAAA,CAACuH,gBAAkB,EAAA,IAAA,EACjB7H,cAAA,CAAAM,aAAA,CAACuH,gBAAkB,EAChB,IAAA,EAAA,CAACtI,KAAK,CAAC8D,OAAO,IAAI,EAAE,EAAErC,GAAG,CAAC,CAACgE,MAAM,EAAEnB,KAAK,KACvC7D,cAAA,CAAAM,aAAA,CAAC0H,OAAO,EAAA;MAACnI,GAAG,EAAE,GAAGN,KAAK,CAACM,GAAG,CAAImF,CAAAA,EAAAA,MAAM,CAAC7D,KAAK,CAAG,CAAA;MAACO,OAAO,EAAEsD,MAAM,CAAC7D,KAAAA;AAAM,KAAA,EAClEnB,cAAA,CAAAM,aAAA,CAACuH,MAAQ,EAAA,IAAA,EACP7H,cAAA,CAAAM,aAAA,CAACE,oBAAoB,EAAA;MACnBlB,SAAS,EAAE0F,MAAM,CAAC1F,SAAU;MAC5BoB,SAAS,EAAEsE,MAAM,CAACtE,SAAU;MAC5BU,IAAI,EAAE4D,MAAM,CAAC5D,IAAK;AAClBR,MAAAA,kBAAkB,EAAEqE,oBAAoB,CAACpB,KAAK,CAAE;MAChD3C,OAAO,EAAEiD,KAAK,IAAIY,aAAa,CAACZ,KAAK,EAAEa,MAAM,EAAEnB,KAAK,CAAE;MACtDlD,UAAU,EAAEqE,MAAM,EAAErE,UAAW;MAC/BwB,iBAAiB,EAAE6C,MAAM,CAAC7C,iBAAAA;AAAkB,KAC7C,CACO,CACH,CACV,CACiB,CACF,CACN,CAAC,EAEjBnC,cAAA,CAAAM,aAAA,CAACuH,aAAe,EAAA,IAAA,EACd7H,cAAA,CAAAM,aAAA,CAACuH,iBAAmB,EAAA,IAAsB,CAAC,EAC3C7H,cAAA,CAAAM,aAAA,CAACuH,kBAAoB,EAAEN,IAAAA,EAAAA,gBAAgB,EAAyB,CACjD,CACC,CAAC,CAAA;GAExB,CAAA;EAED,MAAMU,aAAa,GAAGA,MAAM;AAC1B,IAAA,OACEjI,cAAA,CAAAM,aAAA,CAACuH,QAAU,EACT7H,IAAAA,EAAAA,cAAA,CAAAM,aAAA,CAACuH,SAAW,EAAA;AAAC1G,MAAAA,KAAK,EAAE5B,KAAK,CAAC4B,KAAK,IAAI,EAAA;AAAG,KAAA,EAAE5B,KAAK,CAAC4B,KAAK,IAAI,EAAgB,CAAC,EACxEnB,cAAA,CAAAM,aAAA,CAACuH,eAAiB,EAAA;AAAC1G,MAAAA,KAAK,EAAE5B,KAAK,CAAC2I,WAAW,IAAI,EAAA;AAAG,KAAA,EAC/C3I,KAAK,CAAC2I,WAAW,IAAI,EACL,CAAC,EACpBlI,cAAA,CAAAM,aAAA,CAACuH,mBAAqB,EAAA;AAACM,MAAAA,WAAW,EAAEC,OAAO,CAAC7I,KAAK,CAAC8I,WAAW,EAAEC,QAAQ,EAAE,CAACC,IAAI,EAAE,CAAA;KAC7EhJ,EAAAA,KAAK,CAAC8I,WAAW,IAChBrI,cAAA,CAAAM,aAAA,CAACkI,0BAA0B,EAAA;MACzBC,MAAM,EAAElJ,KAAK,CAACmJ,iBAAkB;MAChCC,eAAe,EAAEpJ,KAAK,CAAC8I,WAAY;MACnCO,QAAQ,EAAErJ,KAAK,CAACsJ,mBAAoB;AACpCC,MAAAA,QAAQ,EAAE,KAAM;AAChBC,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,eAAe,EAAC,MAAM;AACtBC,MAAAA,OAAO,EAAC,aAAa;AACrBC,MAAAA,MAAM,EAAC,aAAa;AACpBC,MAAAA,QAAQ,EAAE,CAAA;KACX,CAEkB,CACb,CAAC,CAAA;GAEhB,CAAA;EAED,MAAMC,wBAAwB,GAAGA,MAAM;AACrC,IAAA,OACEpJ,cAAA,CAAAM,aAAA,CAAAN,cAAA,CAAAoC,QAAA,EAAA,IAAA,EACEpC,cAAA,CAAAM,aAAA,CAACuH,UAAY,EAAA,IAAA,EACX7H,cAAA,CAAAM,aAAA,CAACuH,cAAgB,EAAA,IAAA,EAAEtI,KAAK,CAAC8J,OAAO,EAAEC,UAAU,IAAI,IAAuB,CAAC,EACxEtJ,cAAA,CAAAM,aAAA,CAACuH,eAAiB,EAAEtI,IAAAA,EAAAA,KAAK,CAAC8J,OAAO,EAAEE,WAAW,IAAI,IAAwB,CAC9D,CAAC,EACfvJ,cAAA,CAAAM,aAAA,CAACuH,WAAa,EAAE,IAAA,CAChB,CAAC,CAAA;GAEN,CAAA;EAED,MAAM2B,iBAAiB,GAAGA,MAAM;AAC9B,IAAA,OACExJ,cAAA,CAAAM,aAAA,CAACuH,WAAa,EAAA,IAAA,EACXvF,UAAU,IACTtC,cAAA,CAAAM,aAAA,CAAA,KAAA,EAAA;AAAKY,MAAAA,OAAO,EAAE0D,aAAAA;AAAc,KAAA,EAC1B5E,cAAA,CAAAM,aAAA,CAACmJ,QAAQ,EAAA;AACPC,MAAAA,OAAO,EAAC,OAAO;AACfC,MAAAA,OAAO,EAAEpH,QAAS;MAClBqH,QAAQ,EAAEzF,KAAK,IAAI;AACjB,QAAA,IAAIA,KAAK,CAAC0F,MAAM,CAACF,OAAO,EAAE;AACxBjH,UAAAA,eAAe,CAACnD,KAAK,CAACM,GAAG,CAAC,CAAA;AAC5B,SAAC,MAAM;AACL8C,UAAAA,iBAAiB,CAACpD,KAAK,CAACM,GAAG,CAAC,CAAA;AAC9B,SAAA;AACF,OAAA;KACD,CACE,CAEM,CAAC,CAAA;GAEnB,CAAA;AAED,EAAA,OACEG,cAAA,CAAAM,aAAA,CAACuH,mBAAqB,EAAA;IAACiC,QAAQ,EAAEvK,KAAK,CAACuK,QAAS;AAAC1J,IAAAA,GAAG,EAAE4D,OAAAA;AAAQ,GAAA,EAC5DhE,cAAA,CAAAM,aAAA,CAACuH,sBAAsB,EAAA;AACrBkC,IAAAA,EAAE,EAAE1K,qBAAsB;AAC1BC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,KAAK,EAAEA,KAAM;IACbuK,QAAQ,EAAEvK,KAAK,CAACuK,QAAS;AACzB5I,IAAAA,OAAO,EAAEA,OAAQ;AACjBuB,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCyB,IAAAA,YAAY,EAAEA,YAAa;AAC3BQ,IAAAA,YAAY,EAAEA,YAAa;IAC3BsF,SAAS,EAAEzK,KAAK,CAACyK,SAAU;AAC3BC,IAAAA,QAAQ,EAAEhG,OAAQ;AAClB1B,IAAAA,QAAQ,EAAEA,QAAS;AACnB2H,IAAAA,aAAa,EAAEtH,YAAa;IAC5BuH,SAAS,EAAE5K,KAAK,EAAE4K,SAAU;IAC5BC,SAAS,EAAE7K,KAAK,EAAE8K,QAAS;AAC3BC,IAAAA,qBAAqB,EAAE9H,oBAAAA;AAAqB,GAAA,EAE3CoF,eAAe,EAAE,EACjBK,aAAa,EAAE,EACfmB,wBAAwB,EAAE,EAC1BI,iBAAiB,EACI,CACH,CAAC,CAAA;AAE5B,CAAC,CAAA;AAEDnH,oBAAoB,CAACkI,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;EAI/BnL,KAAK,EAAEoL,SAAS,CAACC,KAAK,CAACC,oBAAoB,CAAC,CAACC,UAAU;EAKvDxI,UAAU,EAAEqI,SAAS,CAACI,IAAI;EAK1BxI,QAAQ,EAAEoI,SAAS,CAACI,IAAI;EAKxBvI,oBAAoB,EAAEmI,SAAS,CAACK,OAAO,CAACL,SAAS,CAACM,MAAM,CAAC;EAKzDxI,kBAAkB,EAAEkI,SAAS,CAACI,IAAI;AAKlCrI,EAAAA,eAAe,EAAEiI,SAAS,CAACO,IAAI,CAACJ,UAAU;AAK1CnI,EAAAA,iBAAiB,EAAEgI,SAAS,CAACO,IAAI,CAACJ,UAAU;AAK5ClI,EAAAA,YAAY,EAAE+H,SAAS,CAACI,IAAI,CAACD,UAAU;EAMvCxL,SAAS,EAAEqL,SAAS,CAACO,IAAI;EAMzBrI,cAAc,EAAE8H,SAAS,CAACQ,MAAAA;AAC5B,CAAC,GAAA,EAAA,CAAA;AAED9I,oBAAoB,CAAC+I,YAAY,GAAG,EAAE,CAAA;AAEtC,6BAAeC,iBAAiB,CAC9BrL,cAAK,CAACsL,IAAI,CAACjJ,oBAAoB,EAAE,CAACkJ,SAAS,EAAEC,SAAS,KAAK;EAEzD,MAAMC,aAAa,GAAG,CACpB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,aAAa,CACd,CAAA;AAED,EAAA,OAAOA,aAAa,CAACC,KAAK,CAACC,OAAO,IAAIC,GAAG,CAACL,SAAS,EAAEI,OAAO,CAAC,KAAKC,GAAG,CAACJ,SAAS,EAAEG,OAAO,CAAC,CAAC,CAAA;AAC5F,CAAC,CACH,CAAC;;;;"}
|
|
@@ -6,25 +6,6 @@ const darkBorderColor = '#52525B';
|
|
|
6
6
|
const darkBgColor = '#27272A';
|
|
7
7
|
const darkHoverBgColor = '#3F3F46';
|
|
8
8
|
const lightHoverBgColor = '#E4E4E7';
|
|
9
|
-
const getOutline = props => {
|
|
10
|
-
const ring = (dark, light) => [`3.25px solid ${dark}`, `3.25px solid ${light}`];
|
|
11
|
-
if (props.$softSelected) {
|
|
12
|
-
return ring(rgba(props.theme.getColor('gray-100'), 0.5), rgba(props.theme.getColor('gray-700'), 0.5));
|
|
13
|
-
}
|
|
14
|
-
if (props.selected) {
|
|
15
|
-
if (props.$customSelectedBorder) {
|
|
16
|
-
return ring(props.$customSelectedBorder[0], props.$customSelectedBorder[1]);
|
|
17
|
-
}
|
|
18
|
-
return ring(props.theme.getColor('gray-100'), darkBorderColor);
|
|
19
|
-
}
|
|
20
|
-
if (props.completed) {
|
|
21
|
-
return ring(props.theme.getColor('emerald-500'), rgba(props.theme.getColor('emerald-500'), 0.7));
|
|
22
|
-
}
|
|
23
|
-
if (props.hasError) {
|
|
24
|
-
return ring(props.theme.getColor('red-600'), rgba(props.theme.getColor('red-500'), 0.7));
|
|
25
|
-
}
|
|
26
|
-
return [`1.5px solid ${darkBorderColor}`, `1.5px solid ${props.theme.getColor('gray-300')}`];
|
|
27
|
-
};
|
|
28
9
|
const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`
|
|
29
10
|
width: 100%;
|
|
30
11
|
height: 100%;
|
|
@@ -32,7 +13,24 @@ const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`
|
|
|
32
13
|
cursor: not-allowed;
|
|
33
14
|
`};
|
|
34
15
|
`;
|
|
35
|
-
const
|
|
16
|
+
const ringState = props => {
|
|
17
|
+
if (props.$softSelected) return 'soft';
|
|
18
|
+
if (props.selected) return props.$customSelectedBorder ? 'custom' : 'selected';
|
|
19
|
+
if (props.completed) return 'completed';
|
|
20
|
+
if (props.$hasError) return 'error';
|
|
21
|
+
return 'idle';
|
|
22
|
+
};
|
|
23
|
+
const AssetGalleryGridCard = styled.div.attrs(props => ({
|
|
24
|
+
...applyDefaultTheme(props),
|
|
25
|
+
'data-ring': ringState(props),
|
|
26
|
+
style: {
|
|
27
|
+
...(props.style || {}),
|
|
28
|
+
...(props.$customSelectedBorder && props.selected ? {
|
|
29
|
+
'--ring-dark': props.$customSelectedBorder[0],
|
|
30
|
+
'--ring-light': props.$customSelectedBorder[1]
|
|
31
|
+
} : {})
|
|
32
|
+
}
|
|
33
|
+
}))`
|
|
36
34
|
display: block;
|
|
37
35
|
position: relative;
|
|
38
36
|
height: 100%;
|
|
@@ -53,13 +51,112 @@ const AssetGalleryGridCard = styled.div.attrs(applyDefaultTheme)`
|
|
|
53
51
|
cursor: pointer;
|
|
54
52
|
`}
|
|
55
53
|
|
|
56
|
-
outline-offset: 0;
|
|
57
54
|
&:hover {
|
|
58
55
|
box-shadow: 0px 3px 6px #00000029;
|
|
59
56
|
}
|
|
57
|
+
|
|
58
|
+
&::after {
|
|
59
|
+
content: '';
|
|
60
|
+
position: absolute;
|
|
61
|
+
inset: 0;
|
|
62
|
+
pointer-events: none;
|
|
63
|
+
box-sizing: border-box;
|
|
64
|
+
z-index: 10;
|
|
65
|
+
border-style: solid;
|
|
66
|
+
border-width: 1px;
|
|
67
|
+
}
|
|
68
|
+
&[data-ring='soft']::after,
|
|
69
|
+
&[data-ring='selected']::after,
|
|
70
|
+
&[data-ring='custom']::after,
|
|
71
|
+
&[data-ring='completed']::after,
|
|
72
|
+
&[data-ring='error']::after {
|
|
73
|
+
border-width: 3px;
|
|
74
|
+
}
|
|
75
|
+
|
|
60
76
|
${props => {
|
|
61
|
-
const
|
|
62
|
-
|
|
77
|
+
const gray100 = props.theme.getColor('gray-100');
|
|
78
|
+
const gray300 = props.theme.getColor('gray-300');
|
|
79
|
+
const gray700 = props.theme.getColor('gray-700');
|
|
80
|
+
const emerald = props.theme.getColor('emerald-500');
|
|
81
|
+
const red500 = props.theme.getColor('red-500');
|
|
82
|
+
const red600 = props.theme.getColor('red-600');
|
|
83
|
+
return css`
|
|
84
|
+
&[data-ring='idle']::after {
|
|
85
|
+
border-color: ${gray300};
|
|
86
|
+
}
|
|
87
|
+
&[data-ring='soft']::after {
|
|
88
|
+
border-color: ${rgba(gray700, 0.5)};
|
|
89
|
+
}
|
|
90
|
+
&[data-ring='selected']::after {
|
|
91
|
+
border-color: ${darkBorderColor};
|
|
92
|
+
}
|
|
93
|
+
&[data-ring='custom']::after {
|
|
94
|
+
border-color: var(--ring-light);
|
|
95
|
+
}
|
|
96
|
+
&[data-ring='completed']::after {
|
|
97
|
+
border-color: ${rgba(emerald, 0.7)};
|
|
98
|
+
}
|
|
99
|
+
&[data-ring='error']::after {
|
|
100
|
+
border-color: ${rgba(red500, 0.7)};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@media (prefers-color-scheme: dark) {
|
|
104
|
+
&[data-ring='idle']::after {
|
|
105
|
+
border-color: ${darkBorderColor};
|
|
106
|
+
}
|
|
107
|
+
&[data-ring='soft']::after {
|
|
108
|
+
border-color: ${rgba(gray100, 0.5)};
|
|
109
|
+
}
|
|
110
|
+
&[data-ring='selected']::after {
|
|
111
|
+
border-color: ${gray100};
|
|
112
|
+
}
|
|
113
|
+
&[data-ring='custom']::after {
|
|
114
|
+
border-color: var(--ring-dark);
|
|
115
|
+
}
|
|
116
|
+
&[data-ring='completed']::after {
|
|
117
|
+
border-color: ${emerald};
|
|
118
|
+
}
|
|
119
|
+
&[data-ring='error']::after {
|
|
120
|
+
border-color: ${red600};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
body.light-theme &[data-ring='idle']::after {
|
|
124
|
+
border-color: ${gray300};
|
|
125
|
+
}
|
|
126
|
+
body.light-theme &[data-ring='soft']::after {
|
|
127
|
+
border-color: ${rgba(gray700, 0.5)};
|
|
128
|
+
}
|
|
129
|
+
body.light-theme &[data-ring='selected']::after {
|
|
130
|
+
border-color: ${darkBorderColor};
|
|
131
|
+
}
|
|
132
|
+
body.light-theme &[data-ring='custom']::after {
|
|
133
|
+
border-color: var(--ring-light);
|
|
134
|
+
}
|
|
135
|
+
body.light-theme &[data-ring='completed']::after {
|
|
136
|
+
border-color: ${rgba(emerald, 0.7)};
|
|
137
|
+
}
|
|
138
|
+
body.light-theme &[data-ring='error']::after {
|
|
139
|
+
border-color: ${rgba(red500, 0.7)};
|
|
140
|
+
}
|
|
141
|
+
body.dark-theme &[data-ring='idle']::after {
|
|
142
|
+
border-color: ${darkBorderColor};
|
|
143
|
+
}
|
|
144
|
+
body.dark-theme &[data-ring='soft']::after {
|
|
145
|
+
border-color: ${rgba(gray100, 0.5)};
|
|
146
|
+
}
|
|
147
|
+
body.dark-theme &[data-ring='selected']::after {
|
|
148
|
+
border-color: ${gray100};
|
|
149
|
+
}
|
|
150
|
+
body.dark-theme &[data-ring='custom']::after {
|
|
151
|
+
border-color: var(--ring-dark);
|
|
152
|
+
}
|
|
153
|
+
body.dark-theme &[data-ring='completed']::after {
|
|
154
|
+
border-color: ${emerald};
|
|
155
|
+
}
|
|
156
|
+
body.dark-theme &[data-ring='error']::after {
|
|
157
|
+
border-color: ${red600};
|
|
158
|
+
}
|
|
159
|
+
`;
|
|
63
160
|
}};
|
|
64
161
|
`;
|
|
65
162
|
const ThumbnailSection = styled.div.attrs(applyDefaultTheme)`
|
|
@@ -189,6 +286,7 @@ const ConsumerOverlay = styled.div`
|
|
|
189
286
|
position: absolute;
|
|
190
287
|
inset: 0;
|
|
191
288
|
pointer-events: none;
|
|
289
|
+
z-index: 1;
|
|
192
290
|
`;
|
|
193
291
|
const CardBody = styled.div.attrs(applyDefaultTheme)`
|
|
194
292
|
display: flex;
|
|
@@ -232,14 +330,16 @@ const InstructionsWrapper = styled.div.attrs(applyDefaultTheme)`
|
|
|
232
330
|
box-sizing: border-box;
|
|
233
331
|
flex-shrink: 0;
|
|
234
332
|
transition: background 220ms;
|
|
235
|
-
|
|
333
|
+
opacity: 0;
|
|
236
334
|
${props => props.$hasContent && css`
|
|
335
|
+
opacity: 1;
|
|
237
336
|
border-top: 0.56px solid;
|
|
238
337
|
border-bottom: 0.56px solid;
|
|
239
338
|
${props.theme.themeProp('border-color', darkBorderColor, props.theme.getColor('gray-300'))}
|
|
240
339
|
`}
|
|
241
340
|
|
|
242
341
|
${props => props.$hasContent && css`
|
|
342
|
+
opacity: 1;
|
|
243
343
|
${props.theme.themeProp('background', darkBgColor, props.theme.getColor('gray-50'))}
|
|
244
344
|
${AssetGalleryGridCard}:hover & {
|
|
245
345
|
${props.theme.themeProp('background', darkHoverBgColor, lightHoverBgColor, 1)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryGridCard.styled.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js"],"sourcesContent":["import { rgba } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../../../utils/defaultTheme';\n\nconst darkBorderColor = '#52525B';\nconst darkBgColor = '#27272A';\nconst darkHoverBgColor = '#3F3F46';\nconst lightHoverBgColor = '#E4E4E7';\n\nconst getOutline = props => {\n const ring = (dark, light) => [`3.25px solid ${dark}`, `3.25px solid ${light}`];\n\n if (props.$softSelected) {\n return ring(\n rgba(props.theme.getColor('gray-100'), 0.5),\n rgba(props.theme.getColor('gray-700'), 0.5)\n );\n }\n if (props.selected) {\n if (props.$customSelectedBorder) {\n return ring(props.$customSelectedBorder[0], props.$customSelectedBorder[1]);\n }\n return ring(props.theme.getColor('gray-100'), darkBorderColor);\n }\n if (props.completed) {\n return ring(\n props.theme.getColor('emerald-500'),\n rgba(props.theme.getColor('emerald-500'), 0.7)\n );\n }\n if (props.hasError) {\n return ring(props.theme.getColor('red-600'), rgba(props.theme.getColor('red-500'), 0.7));\n }\n return [`1.5px solid ${darkBorderColor}`, `1.5px solid ${props.theme.getColor('gray-300')}`];\n};\n\nexport const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`\n width: 100%;\n height: 100%;\n ${props =>\n props.disabled &&\n css`\n cursor: not-allowed;\n `};\n`;\n\nexport const AssetGalleryGridCard = styled.div.attrs(applyDefaultTheme)`\n display: block;\n position: relative;\n height: 100%;\n margin: 0;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n transition: box-shadow 220ms;\n overflow: hidden;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-700')\n )}\n\n ${props =>\n props.disabled &&\n css`\n pointer-events: none;\n opacity: 0.4;\n `};\n\n ${props =>\n props.extendedSelectMode &&\n css`\n cursor: pointer;\n `}\n\n outline-offset: 0;\n &:hover {\n box-shadow: 0px 3px 6px #00000029;\n }\n ${props => {\n const [darkOutline, lightOutline] = getOutline(props);\n return props.theme.themeProp('outline', darkOutline, lightOutline);\n }};\n`;\n\nexport const ThumbnailSection = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n overflow: hidden;\n transition: background 220ms;\n ${props => props.theme.themeProp('background', darkBgColor, props.theme.getColor('gray-50'))}\n ${AssetGalleryGridCard}:hover & {\n ${props => props.theme.themeProp('background', darkHoverBgColor, lightHoverBgColor, 1)}\n }\n`;\n\n// ── Top bar ──────────────────────────────────────────────────────────────────\n\nexport const HorizontalBar = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n height: 40px;\n box-sizing: border-box;\n flex-shrink: 0;\n position: relative;\n z-index: 2;\n`;\n\nexport const HorizontalBarLeft = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const HorizontalBarRight = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const StatusIconCircle = styled.span.attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n pointer-events: none;\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\n// ── Thumbnail ─────────────────────────────────────────────────────────────────\n\nexport const ThumbnailRow = styled.div`\n position: relative;\n display: flex;\n width: 100%;\n`;\n\nexport const ThumbnailSpacer = styled.div`\n flex: 1;\n`;\n\nexport const ThumbnailWrapper = styled.div`\n width: max(66%, 268px);\n flex-shrink: 0;\n`;\n\nexport const ThumbnailBox = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n height: 168px;\n\n flex-shrink: 0;\n overflow: hidden;\n\n img,\n video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n display: block;\n }\n\n .audio {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n svg {\n width: 35%;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-400'),\n props.theme.getColor('gray-400')\n )}\n }\n }\n`;\n\nexport const ThumbnailSelectedOverlay = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: ${props => (props.selected ? 0.6 : 0)};\n background-color: #accef7;\n transition: opacity 220ms;\n z-index: 1;\n`;\n\nexport const ThumbnailActions = styled.div`\n flex: 1;\n`;\n\nexport const ActionsContainer = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: end;\n flex-direction: column;\n gap: 8px;\n opacity: 0;\n transition: opacity 220ms;\n z-index: 1;\n position: absolute;\n right: 8px;\n ${AssetGalleryGridCard}:hover & {\n opacity: 1;\n }\n\n ${AssetGalleryGridCard}:focus-within & {\n opacity: 1;\n }\n`;\n\nexport const Action = styled.div`\n margin: 0;\n\n button {\n box-shadow: 0px 3px 6px #00000033;\n }\n svg {\n width: 16px;\n height: 16px;\n max-height: unset;\n max-width: unset;\n }\n`;\n\nexport const ConsumerOverlay = styled.div`\n position: absolute;\n inset: 0;\n pointer-events: none;\n`;\n\n// ── Card body ─────────────────────────────────────────────────────────────────\n\nexport const CardBody = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 16px 0px 0px 0px;\n`;\n\nexport const CardTitle = styled.span.attrs(applyDefaultTheme)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px 16px;\n font: normal normal 500 14px/19px Roboto;\n letter-spacing: 0.28px;\n height: 19px;\n box-sizing: border-box;\n\n ${props =>\n props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}\n`;\n\nexport const CardDescription = styled.span.attrs(applyDefaultTheme)`\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 16px;\n font: normal normal normal 12px/1.286em Roboto;\n letter-spacing: 0.24px;\n height: 52px;\n box-sizing: border-box;\n overflow-wrap: break-word;\n word-break: break-word;\n\n ${props =>\n props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}\n`;\n\nexport const InstructionsWrapper = styled.div.attrs(applyDefaultTheme)`\n min-height: 96px;\n margin-top: 16px;\n box-sizing: border-box;\n flex-shrink: 0;\n transition: background 220ms;\n\n ${props =>\n props.$hasContent &&\n css`\n border-top: 0.56px solid;\n border-bottom: 0.56px solid;\n ${props.theme.themeProp('border-color', darkBorderColor, props.theme.getColor('gray-300'))}\n `}\n\n ${props =>\n props.$hasContent &&\n css`\n ${props.theme.themeProp('background', darkBgColor, props.theme.getColor('gray-50'))}\n ${AssetGalleryGridCard}:hover & {\n ${props.theme.themeProp('background', darkHoverBgColor, lightHoverBgColor, 1)}\n }\n `}\n`;\n\nexport const CardFooter = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n min-height: 52px;\n box-sizing: border-box;\n`;\n\nexport const CardFooterLeft = styled.div`\n display: flex;\n align-items: center;\n > * {\n margin-right: 4px;\n }\n`;\n\nexport const CardFooterRight = styled.div`\n display: flex;\n align-items: center;\n > * {\n margin-left: 4px;\n }\n`;\n\nexport const CardDivider = styled.div.attrs(applyDefaultTheme)`\n height: 1px;\n flex-shrink: 0;\n opacity: ${props => (props.invisible ? 0 : 1)};\n ${props => props.theme.themeProp('background', darkBorderColor, props.theme.getColor('gray-300'))}\n`;\n\nexport const CheckboxRow = styled.div`\n display: flex;\n padding: 0px 16px;\n align-items: center;\n height: 56px;\n box-sizing: border-box;\n flex-shrink: 0;\n`;\n\nexport const CheckboxButton = styled.div.attrs(applyDefaultTheme)`\n opacity: 1;\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 220ms;\n ${props => props.theme.themeProp('color', 'white', 'black')}\n > svg {\n width: 23px;\n height: 100%;\n }\n`;\n"],"names":["darkBorderColor","darkBgColor","darkHoverBgColor","lightHoverBgColor","getOutline","props","ring","dark","light","$softSelected","rgba","theme","getColor","selected","$customSelectedBorder","completed","hasError","AssetGalleryWrapper","styled","div","attrs","applyDefaultTheme","disabled","css","AssetGalleryGridCard","themeProp","extendedSelectMode","darkOutline","lightOutline","ThumbnailSection","HorizontalBar","HorizontalBarLeft","HorizontalBarRight","StatusIconCircle","span","ThumbnailRow","ThumbnailSpacer","ThumbnailWrapper","ThumbnailBox","ThumbnailSelectedOverlay","ThumbnailActions","ActionsContainer","Action","ConsumerOverlay","CardBody","CardTitle","CardDescription","InstructionsWrapper","$hasContent","CardFooter","CardFooterLeft","CardFooterRight","CardDivider","invisible","CheckboxRow"],"mappings":";;;;AAIA,MAAMA,eAAe,GAAG,SAAS,CAAA;AACjC,MAAMC,WAAW,GAAG,SAAS,CAAA;AAC7B,MAAMC,gBAAgB,GAAG,SAAS,CAAA;AAClC,MAAMC,iBAAiB,GAAG,SAAS,CAAA;AAEnC,MAAMC,UAAU,GAAGC,KAAK,IAAI;AAC1B,EAAA,MAAMC,IAAI,GAAGA,CAACC,IAAI,EAAEC,KAAK,KAAK,CAAC,CAAA,aAAA,EAAgBD,IAAI,CAAE,CAAA,EAAE,CAAgBC,aAAAA,EAAAA,KAAK,EAAE,CAAC,CAAA;EAE/E,IAAIH,KAAK,CAACI,aAAa,EAAE;AACvB,IAAA,OAAOH,IAAI,CACTI,IAAI,CAACL,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,EAC3CF,IAAI,CAACL,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAC5C,CAAC,CAAA;AACH,GAAA;EACA,IAAIP,KAAK,CAACQ,QAAQ,EAAE;IAClB,IAAIR,KAAK,CAACS,qBAAqB,EAAE;AAC/B,MAAA,OAAOR,IAAI,CAACD,KAAK,CAACS,qBAAqB,CAAC,CAAC,CAAC,EAAET,KAAK,CAACS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7E,KAAA;AACA,IAAA,OAAOR,IAAI,CAACD,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAEZ,eAAe,CAAC,CAAA;AAChE,GAAA;EACA,IAAIK,KAAK,CAACU,SAAS,EAAE;IACnB,OAAOT,IAAI,CACTD,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,aAAa,CAAC,EACnCF,IAAI,CAACL,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,CAC/C,CAAC,CAAA;AACH,GAAA;EACA,IAAIP,KAAK,CAACW,QAAQ,EAAE;IAClB,OAAOV,IAAI,CAACD,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAEF,IAAI,CAACL,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1F,GAAA;AACA,EAAA,OAAO,CAAC,CAAA,YAAA,EAAeZ,eAAe,CAAA,CAAE,EAAE,CAAeK,YAAAA,EAAAA,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;AAC9F,CAAC,CAAA;AAEM,MAAMK,mBAAmB,GAAGC,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACtE;AACA;AACA,EAAA,EAAIhB,KAAK,IACLA,KAAK,CAACiB,QAAQ,IACdC,GAAG,CAAA;AACP;AACA,IAAK,CAAA,CAAA;AACL,EAAC;AAEM,MAAMC,oBAAoB,GAAGN,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAIhB,EAAAA,KAAK,IACLA,KAAK,CAACM,KAAK,CAACc,SAAS,CACnB,OAAO,EACPpB,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,EAChCP,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CACjC,CAAC,CAAA;AACL;AACA,EAAA,EAAIP,KAAK,IACLA,KAAK,CAACiB,QAAQ,IACdC,GAAG,CAAA;AACP;AACA;AACA,IAAK,CAAA,CAAA;AACL;AACA,EAAA,EAAIlB,KAAK,IACLA,KAAK,CAACqB,kBAAkB,IACxBH,GAAG,CAAA;AACP;AACA,IAAK,CAAA,CAAA;AACL;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIlB,KAAK,IAAI;EACT,MAAM,CAACsB,WAAW,EAAEC,YAAY,CAAC,GAAGxB,UAAU,CAACC,KAAK,CAAC,CAAA;EACrD,OAAOA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,SAAS,EAAEE,WAAW,EAAEC,YAAY,CAAC,CAAA;AACpE,CAAC,CAAA;AACH,EAAC;AAEM,MAAMC,gBAAgB,GAAGX,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACnE;AACA;AACA;AACA,EAAIhB,EAAAA,KAAK,IAAIA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,YAAY,EAAExB,WAAW,EAAEI,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AAC9F,EAAA,EAAIY,oBAAoB,CAAA;AACxB,IAAA,EAAMnB,KAAK,IAAIA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,YAAY,EAAEvB,gBAAgB,EAAEC,iBAAiB,EAAE,CAAC,CAAC,CAAA;AAC1F;AACA,EAAC;AAIY2B,MAAAA,aAAa,GAAGZ,MAAM,CAACC,GAAG,CAAA;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYY,MAAAA,iBAAiB,GAAGb,MAAM,CAACC,GAAG,CAAA;AAC3C;AACA;AACA,EAAC;AAEYa,MAAAA,kBAAkB,GAAGd,MAAM,CAACC,GAAG,CAAA;AAC5C;AACA;AACA,EAAC;AAEM,MAAMc,gBAAgB,GAAGf,MAAM,CAACgB,IAAI,CAACd,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAIYc,MAAAA,YAAY,GAAGjB,MAAM,CAACC,GAAG,CAAA;AACtC;AACA;AACA;AACA,EAAC;AAEYiB,MAAAA,eAAe,GAAGlB,MAAM,CAACC,GAAG,CAAA;AACzC;AACA,EAAC;AAEYkB,MAAAA,gBAAgB,GAAGnB,MAAM,CAACC,GAAG,CAAA;AAC1C;AACA;AACA,EAAC;AAEM,MAAMmB,YAAY,GAAGpB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAQhB,EAAAA,KAAK,IACLA,KAAK,CAACM,KAAK,CAACc,SAAS,CACnB,OAAO,EACPpB,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,EAChCP,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CACjC,CAAC,CAAA;AACT;AACA;AACA,EAAC;AAEM,MAAM2B,wBAAwB,GAAGrB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC3E;AACA;AACA;AACA,WAAahB,EAAAA,KAAK,IAAKA,KAAK,CAACQ,QAAQ,GAAG,GAAG,GAAG,CAAE,CAAA;AAChD;AACA;AACA;AACA,EAAC;AAEY2B,MAAAA,gBAAgB,GAAGtB,MAAM,CAACC,GAAG,CAAA;AAC1C;AACA,EAAC;AAEM,MAAMsB,gBAAgB,GAAGvB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIG,oBAAoB,CAAA;AACxB;AACA;AACA;AACA,EAAA,EAAIA,oBAAoB,CAAA;AACxB;AACA;AACA,EAAC;AAEYkB,MAAAA,MAAM,GAAGxB,MAAM,CAACC,GAAG,CAAA;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYwB,MAAAA,eAAe,GAAGzB,MAAM,CAACC,GAAG,CAAA;AACzC;AACA;AACA;AACA,EAAC;AAIM,MAAMyB,QAAQ,GAAG1B,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC3D;AACA;AACA;AACA;AACA,EAAC;AAEM,MAAMwB,SAAS,GAAG3B,MAAM,CAACgB,IAAI,CAACd,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAIhB,EAAAA,KAAK,IACLA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,OAAO,EAAEpB,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,OAAO,CAAC,EAAEP,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACnG,EAAC;AAEM,MAAMkC,eAAe,GAAG5B,MAAM,CAACgB,IAAI,CAACd,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAIhB,EAAAA,KAAK,IACLA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,OAAO,EAAEpB,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,OAAO,CAAC,EAAEP,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACnG,EAAC;AAEM,MAAMmC,mBAAmB,GAAG7B,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIhB,KAAK,IACLA,KAAK,CAAC2C,WAAW,IACjBzB,GAAG,CAAA;AACP;AACA;AACA,MAAA,EAAQlB,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,cAAc,EAAEzB,eAAe,EAAEK,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AAChG,IAAK,CAAA,CAAA;AACL;AACA,EAAA,EAAIP,KAAK,IACLA,KAAK,CAAC2C,WAAW,IACjBzB,GAAG,CAAA;AACP,MAAA,EAAQlB,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,YAAY,EAAExB,WAAW,EAAEI,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AACzF,MAAA,EAAQY,oBAAoB,CAAA;AAC5B,QAAA,EAAUnB,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,YAAY,EAAEvB,gBAAgB,EAAEC,iBAAiB,EAAE,CAAC,CAAC,CAAA;AACrF;AACA,IAAK,CAAA,CAAA;AACL,EAAC;AAEM,MAAM8C,UAAU,GAAG/B,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEY6B,MAAAA,cAAc,GAAGhC,MAAM,CAACC,GAAG,CAAA;AACxC;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYgC,MAAAA,eAAe,GAAGjC,MAAM,CAACC,GAAG,CAAA;AACzC;AACA;AACA;AACA;AACA;AACA,EAAC;AAEM,MAAMiC,WAAW,GAAGlC,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC9D;AACA;AACA,WAAahB,EAAAA,KAAK,IAAKA,KAAK,CAACgD,SAAS,GAAG,CAAC,GAAG,CAAE,CAAA;AAC/C,EAAIhD,EAAAA,KAAK,IAAIA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,YAAY,EAAEzB,eAAe,EAAEK,KAAK,CAACM,KAAK,CAACC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACnG,EAAC;AAEY0C,MAAAA,WAAW,GAAGpC,MAAM,CAACC,GAAG,CAAA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAE6BD,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACjE;AACA;AACA;AACA;AACA,EAAA,EAAIhB,KAAK,IAAIA,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC7D;AACA;AACA;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryGridCard.styled.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js"],"sourcesContent":["import { rgba } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../../../utils/defaultTheme';\n\nconst darkBorderColor = '#52525B';\nconst darkBgColor = '#27272A';\nconst darkHoverBgColor = '#3F3F46';\nconst lightHoverBgColor = '#E4E4E7';\n\nexport const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`\n width: 100%;\n height: 100%;\n ${props =>\n props.disabled &&\n css`\n cursor: not-allowed;\n `};\n`;\n\nconst ringState = props => {\n if (props.$softSelected) return 'soft';\n if (props.selected) return props.$customSelectedBorder ? 'custom' : 'selected';\n if (props.completed) return 'completed';\n if (props.$hasError) return 'error';\n return 'idle';\n};\n\nexport const AssetGalleryGridCard = styled.div.attrs(props => ({\n ...applyDefaultTheme(props),\n 'data-ring': ringState(props),\n style: {\n ...(props.style || {}),\n ...(props.$customSelectedBorder && props.selected\n ? {\n '--ring-dark': props.$customSelectedBorder[0],\n '--ring-light': props.$customSelectedBorder[1]\n }\n : {})\n }\n}))`\n display: block;\n position: relative;\n height: 100%;\n margin: 0;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n transition: box-shadow 220ms;\n overflow: hidden;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-700')\n )}\n\n ${props =>\n props.disabled &&\n css`\n pointer-events: none;\n opacity: 0.4;\n `};\n\n ${props =>\n props.extendedSelectMode &&\n css`\n cursor: pointer;\n `}\n\n &:hover {\n box-shadow: 0px 3px 6px #00000029;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n box-sizing: border-box;\n z-index: 10;\n border-style: solid;\n border-width: 1px;\n }\n &[data-ring='soft']::after,\n &[data-ring='selected']::after,\n &[data-ring='custom']::after,\n &[data-ring='completed']::after,\n &[data-ring='error']::after {\n border-width: 3px;\n }\n\n ${props => {\n const gray100 = props.theme.getColor('gray-100');\n const gray300 = props.theme.getColor('gray-300');\n const gray700 = props.theme.getColor('gray-700');\n const emerald = props.theme.getColor('emerald-500');\n const red500 = props.theme.getColor('red-500');\n const red600 = props.theme.getColor('red-600');\n return css`\n &[data-ring='idle']::after {\n border-color: ${gray300};\n }\n &[data-ring='soft']::after {\n border-color: ${rgba(gray700, 0.5)};\n }\n &[data-ring='selected']::after {\n border-color: ${darkBorderColor};\n }\n &[data-ring='custom']::after {\n border-color: var(--ring-light);\n }\n &[data-ring='completed']::after {\n border-color: ${rgba(emerald, 0.7)};\n }\n &[data-ring='error']::after {\n border-color: ${rgba(red500, 0.7)};\n }\n\n @media (prefers-color-scheme: dark) {\n &[data-ring='idle']::after {\n border-color: ${darkBorderColor};\n }\n &[data-ring='soft']::after {\n border-color: ${rgba(gray100, 0.5)};\n }\n &[data-ring='selected']::after {\n border-color: ${gray100};\n }\n &[data-ring='custom']::after {\n border-color: var(--ring-dark);\n }\n &[data-ring='completed']::after {\n border-color: ${emerald};\n }\n &[data-ring='error']::after {\n border-color: ${red600};\n }\n }\n body.light-theme &[data-ring='idle']::after {\n border-color: ${gray300};\n }\n body.light-theme &[data-ring='soft']::after {\n border-color: ${rgba(gray700, 0.5)};\n }\n body.light-theme &[data-ring='selected']::after {\n border-color: ${darkBorderColor};\n }\n body.light-theme &[data-ring='custom']::after {\n border-color: var(--ring-light);\n }\n body.light-theme &[data-ring='completed']::after {\n border-color: ${rgba(emerald, 0.7)};\n }\n body.light-theme &[data-ring='error']::after {\n border-color: ${rgba(red500, 0.7)};\n }\n body.dark-theme &[data-ring='idle']::after {\n border-color: ${darkBorderColor};\n }\n body.dark-theme &[data-ring='soft']::after {\n border-color: ${rgba(gray100, 0.5)};\n }\n body.dark-theme &[data-ring='selected']::after {\n border-color: ${gray100};\n }\n body.dark-theme &[data-ring='custom']::after {\n border-color: var(--ring-dark);\n }\n body.dark-theme &[data-ring='completed']::after {\n border-color: ${emerald};\n }\n body.dark-theme &[data-ring='error']::after {\n border-color: ${red600};\n }\n `;\n }};\n`;\n\nexport const ThumbnailSection = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n overflow: hidden;\n transition: background 220ms;\n ${props => props.theme.themeProp('background', darkBgColor, props.theme.getColor('gray-50'))}\n ${AssetGalleryGridCard}:hover & {\n ${props => props.theme.themeProp('background', darkHoverBgColor, lightHoverBgColor, 1)}\n }\n`;\n\n// ── Top bar ──────────────────────────────────────────────────────────────────\n\nexport const HorizontalBar = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n height: 40px;\n box-sizing: border-box;\n flex-shrink: 0;\n position: relative;\n z-index: 2;\n`;\n\nexport const HorizontalBarLeft = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const HorizontalBarRight = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const StatusIconCircle = styled.span.attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n pointer-events: none;\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\n// ── Thumbnail ─────────────────────────────────────────────────────────────────\n\nexport const ThumbnailRow = styled.div`\n position: relative;\n display: flex;\n width: 100%;\n`;\n\nexport const ThumbnailSpacer = styled.div`\n flex: 1;\n`;\n\nexport const ThumbnailWrapper = styled.div`\n width: max(66%, 268px);\n flex-shrink: 0;\n`;\n\nexport const ThumbnailBox = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n height: 168px;\n\n flex-shrink: 0;\n overflow: hidden;\n\n img,\n video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n display: block;\n }\n\n .audio {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n svg {\n width: 35%;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-400'),\n props.theme.getColor('gray-400')\n )}\n }\n }\n`;\n\nexport const ThumbnailSelectedOverlay = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: ${props => (props.selected ? 0.6 : 0)};\n background-color: #accef7;\n transition: opacity 220ms;\n z-index: 1;\n`;\n\nexport const ThumbnailActions = styled.div`\n flex: 1;\n`;\n\nexport const ActionsContainer = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: end;\n flex-direction: column;\n gap: 8px;\n opacity: 0;\n transition: opacity 220ms;\n z-index: 1;\n position: absolute;\n right: 8px;\n ${AssetGalleryGridCard}:hover & {\n opacity: 1;\n }\n\n ${AssetGalleryGridCard}:focus-within & {\n opacity: 1;\n }\n`;\n\nexport const Action = styled.div`\n margin: 0;\n\n button {\n box-shadow: 0px 3px 6px #00000033;\n }\n svg {\n width: 16px;\n height: 16px;\n max-height: unset;\n max-width: unset;\n }\n`;\n\nexport const ConsumerOverlay = styled.div`\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 1;\n`;\n\n// ── Card body ─────────────────────────────────────────────────────────────────\n\nexport const CardBody = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 16px 0px 0px 0px;\n`;\n\nexport const CardTitle = styled.span.attrs(applyDefaultTheme)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px 16px;\n font: normal normal 500 14px/19px Roboto;\n letter-spacing: 0.28px;\n height: 19px;\n box-sizing: border-box;\n\n ${props =>\n props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}\n`;\n\nexport const CardDescription = styled.span.attrs(applyDefaultTheme)`\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 16px;\n font: normal normal normal 12px/1.286em Roboto;\n letter-spacing: 0.24px;\n height: 52px;\n box-sizing: border-box;\n overflow-wrap: break-word;\n word-break: break-word;\n\n ${props =>\n props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}\n`;\n\nexport const InstructionsWrapper = styled.div.attrs(applyDefaultTheme)`\n min-height: 96px;\n margin-top: 16px;\n box-sizing: border-box;\n flex-shrink: 0;\n transition: background 220ms;\n opacity: 0;\n ${props =>\n props.$hasContent &&\n css`\n opacity: 1;\n border-top: 0.56px solid;\n border-bottom: 0.56px solid;\n ${props.theme.themeProp('border-color', darkBorderColor, props.theme.getColor('gray-300'))}\n `}\n\n ${props =>\n props.$hasContent &&\n css`\n opacity: 1;\n ${props.theme.themeProp('background', darkBgColor, props.theme.getColor('gray-50'))}\n ${AssetGalleryGridCard}:hover & {\n ${props.theme.themeProp('background', darkHoverBgColor, lightHoverBgColor, 1)}\n }\n `}\n`;\n\nexport const CardFooter = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n min-height: 52px;\n box-sizing: border-box;\n`;\n\nexport const CardFooterLeft = styled.div`\n display: flex;\n align-items: center;\n > * {\n margin-right: 4px;\n }\n`;\n\nexport const CardFooterRight = styled.div`\n display: flex;\n align-items: center;\n > * {\n margin-left: 4px;\n }\n`;\n\nexport const CardDivider = styled.div.attrs(applyDefaultTheme)`\n height: 1px;\n flex-shrink: 0;\n opacity: ${props => (props.invisible ? 0 : 1)};\n ${props => props.theme.themeProp('background', darkBorderColor, props.theme.getColor('gray-300'))}\n`;\n\nexport const CheckboxRow = styled.div`\n display: flex;\n padding: 0px 16px;\n align-items: center;\n height: 56px;\n box-sizing: border-box;\n flex-shrink: 0;\n`;\n\nexport const CheckboxButton = styled.div.attrs(applyDefaultTheme)`\n opacity: 1;\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 220ms;\n ${props => props.theme.themeProp('color', 'white', 'black')}\n > svg {\n width: 23px;\n height: 100%;\n }\n`;\n"],"names":["darkBorderColor","darkBgColor","darkHoverBgColor","lightHoverBgColor","AssetGalleryWrapper","styled","div","attrs","applyDefaultTheme","props","disabled","css","ringState","$softSelected","selected","$customSelectedBorder","completed","$hasError","AssetGalleryGridCard","style","theme","themeProp","getColor","extendedSelectMode","gray100","gray300","gray700","emerald","red500","red600","rgba","ThumbnailSection","HorizontalBar","HorizontalBarLeft","HorizontalBarRight","StatusIconCircle","span","ThumbnailRow","ThumbnailSpacer","ThumbnailWrapper","ThumbnailBox","ThumbnailSelectedOverlay","ThumbnailActions","ActionsContainer","Action","ConsumerOverlay","CardBody","CardTitle","CardDescription","InstructionsWrapper","$hasContent","CardFooter","CardFooterLeft","CardFooterRight","CardDivider","invisible","CheckboxRow"],"mappings":"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"}
|