@pega/cosmos-react-core 9.21.1 → 9.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/File/FileItem.d.ts.map +1 -1
- package/lib/components/File/FileItem.js +19 -5
- package/lib/components/File/FileItem.js.map +1 -1
- package/lib/components/Tabs/Tabs.d.ts.map +1 -1
- package/lib/components/Tabs/Tabs.js +11 -1
- package/lib/components/Tabs/Tabs.js.map +1 -1
- package/lib/theme/index.d.ts +2 -0
- package/lib/theme/index.d.ts.map +1 -1
- package/lib/theme/index.js +2 -0
- package/lib/theme/index.js.map +1 -1
- package/lib/theme/themes/aurigaDarkTheme.json +21 -2
- package/lib/theme/themes/aurigaTheme.json +12 -0
- package/lib/theme/themes/velaDarkTheme.json +175 -0
- package/lib/theme/themes/velaTheme.json +169 -0
- package/lib/theme/themes/virgoDarkTheme.json +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileItem.d.ts","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,GAAG,EAIJ,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAE,+BAA+B,EAAE,SAAS,EAAU,MAAM,aAAa,CAAC;AA2BtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,UAAU,qBAAqB;IAC7B,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,cAAc,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,mDAAmD;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAEhF,MAAM,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;AAE/C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,2IAA2I;IAC3I,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,oIAAoI;IACpI,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACzC,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8IAA8I;IAC9I,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC7C,yGAAyG;IACzG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C,6IAA6I;IAC7I,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9C,8HAA8H;IAC9H,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1D;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0IAA0I;IAC1I,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/C,yGAAyG;IACzG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC7C,yGAAyG;IACzG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C,gIAAgI;IAChI,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"FileItem.d.ts","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -37,13 +37,14 @@ const StyledErrorIcon = styled(Icon)(({ theme }) => {
|
|
|
37
37
|
`;
|
|
38
38
|
});
|
|
39
39
|
StyledErrorIcon.defaultProps = defaultThemeProp;
|
|
40
|
-
const StyledStatusVisualInEditableLayout = styled.div(({ theme: { components: { input } } }) => {
|
|
40
|
+
const StyledStatusVisualInEditableLayout = styled.div(({ theme: { components: { input }, base: { 'hit-area': { 'mouse-min': mouseMin, 'finger-min': fingerMin } } } }) => {
|
|
41
41
|
return css `
|
|
42
|
-
min-inline-size: ${input.height};
|
|
43
42
|
min-block-size: ${input.height};
|
|
43
|
+
min-inline-size: ${mouseMin};
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
@media (pointer: coarse) {
|
|
46
|
+
min-inline-size: ${fingerMin};
|
|
47
|
+
min-block-size: ${fingerMin};
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
> ${StyledProgressRing} {
|
|
@@ -136,6 +137,11 @@ export const StyledFileItem = styled.div(({ theme: { base: { palette, spacing, '
|
|
|
136
137
|
margin-inline-end: calc(-0.5 * ${spacing});
|
|
137
138
|
inline-size: ${input.height};
|
|
138
139
|
block-size: ${input.height};
|
|
140
|
+
|
|
141
|
+
@media (pointer: coarse) {
|
|
142
|
+
min-inline-size: ${fingerMin};
|
|
143
|
+
min-block-size: ${fingerMin};
|
|
144
|
+
}
|
|
139
145
|
}
|
|
140
146
|
`}
|
|
141
147
|
|
|
@@ -162,11 +168,19 @@ export const StyledFileItem = styled.div(({ theme: { base: { palette, spacing, '
|
|
|
162
168
|
margin-inline-start: calc(0.5 * ${spacing});
|
|
163
169
|
}
|
|
164
170
|
|
|
171
|
+
> ${StyledStatusVisualInEditableLayout} {
|
|
172
|
+
margin-inline-end: ${spacing};
|
|
173
|
+
}
|
|
174
|
+
|
|
165
175
|
> ${StyledFileVisual}, > ${StyledIconShape} {
|
|
166
176
|
border-start-start-radius: inherit;
|
|
167
177
|
border-end-start-radius: inherit;
|
|
168
178
|
border-start-end-radius: 0;
|
|
169
179
|
border-end-end-radius: 0;
|
|
180
|
+
${hasMetadata &&
|
|
181
|
+
css `
|
|
182
|
+
margin-inline-end: ${spacing};
|
|
183
|
+
`}
|
|
170
184
|
width: ${input.height};
|
|
171
185
|
min-width: ${mouseMin};
|
|
172
186
|
flex-shrink: 0;
|
|
@@ -324,7 +338,7 @@ const FileItem = forwardRef(function FileItem(props, ref) {
|
|
|
324
338
|
}
|
|
325
339
|
let detailsContent;
|
|
326
340
|
const containerPad = hasMetadata
|
|
327
|
-
? [1, 0.5, 1, undefined]
|
|
341
|
+
? [1.5, 0.5, 1.5, undefined]
|
|
328
342
|
: [undefined, 0.5, undefined, undefined];
|
|
329
343
|
const metaContent = metaMessage ? (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledMeta, variant: 'secondary', error: !!error && !uploading, alignStart: hasMetadata && (!!error || uploading), ref: setMetaTarget, children: metaMessage }), metaTarget && (_jsx(Tooltip, { target: metaTarget, describeTarget: false, smart: true, children: metaMessage }))] })) : null;
|
|
330
344
|
if (hasMetadata) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport type {\n PropsWithoutRef,\n Ref,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n ChangeEvent\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon, { registerIcon } from '../Icon';\nimport Input from '../Input';\nimport ComboBox from '../ComboBox';\nimport * as openIcon from '../Icon/icons/open.icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as previewIcon from '../Icon/icons/preview.icon';\nimport * as editIcon from '../Icon/icons/pencil.icon';\nimport * as downloadIcon from '../Icon/icons/download.icon';\nimport * as deleteIcon from '../Icon/icons/trash.icon';\nimport Text, { StyledText } from '../Text';\nimport Tooltip from '../Tooltip';\nimport type { ForwardRefForwardPropsComponent, BaseProps, Action } from '../../types';\nimport { defaultThemeProp } from '../../theme';\nimport Button, { StyledButton } from '../Button';\nimport {\n useI18n,\n useElement,\n useConfiguration,\n useConsolidatedRef,\n usePreviewContext,\n useModalContext\n} from '../../hooks';\nimport Actions from '../Actions';\nimport Progress from '../Progress';\nimport { StyledProgressRing } from '../Progress/Progress.styles';\nimport { formatNumber } from '../Number';\nimport Flex from '../Flex';\nimport type { FlexContainerProps } from '../Flex';\nimport Grid from '../Grid';\nimport { StyledIconShape } from '../Icon/Icon';\nimport { getActiveElement, getFocusables, isInstance } from '../../utils';\nimport { ellipsisOverflow } from '../../styles/mixins';\nimport { StyledLinkPopover, StyledLinkPreviewPopoverBtn } from '../Link/Link';\nimport Popover from '../Popover';\nimport { Keyboard } from '../Badges';\n\nimport { getKindFromMimeType, getMimeTypeFromFile } from './utils';\nimport FileVisual, { StyledFileVisual } from './FileVisual';\nimport type { FileVisualProps } from './FileVisual';\n\nregisterIcon(openIcon, timesIcon, previewIcon, editIcon, downloadIcon, deleteIcon);\n\ninterface FileMetadataFieldBase {\n /** Unique identifier for this metadata field. */\n id: string;\n /** Display label for the field. */\n label: string;\n /** Additional info shown alongside the field label. */\n additionalInfo?: { heading?: string; content: string };\n /** Callback fired when the field value changes. */\n onChange: (value: string) => void;\n}\n\nexport interface FileMetadataTextField extends FileMetadataFieldBase {\n /** Current value of the text input. */\n value?: string;\n selected?: never;\n options?: never;\n}\n\nexport interface FileMetadataSelectField extends FileMetadataFieldBase {\n /** The id of the currently selected option. */\n selected?: string;\n /** Selectable options rendered as a ComboBox. */\n options: { id: string; label: string }[];\n value?: never;\n}\n\nexport type FileMetadataField = FileMetadataTextField | FileMetadataSelectField;\n\nexport type FileMetadata = FileMetadataField[];\n\nexport interface FileItemProps extends BaseProps {\n /** Unique id for item. */\n id: string;\n /** Name of the file. */\n name: string;\n /** File metadata and edit configuration. When provided, enables edit mode with stacked single-column layout and inline editable fields. */\n metadata?: FileMetadata;\n /** A string to be used as an image src for a attachment thumbnail. Falls back to a provided icon or the default attachment icon. */\n thumbnail?: FileVisualProps['thumbnail'];\n /** File extension. Use 'url' for link */\n format?: string;\n /**\n * Used for a smaller sized FileItem.\n * @default false\n */\n compact?: boolean;\n /** When passed, will render a single icon button for yet to be or in progress uploads. Use this action to trigger xhr request termination. */\n onCancel?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onEdit?: (id: FileItemProps['id']) => void;\n /** When passed, the file name will be rendered as a clickable button. Fires on direct click of the name. Passes file id as the parameter. */\n onPreview?: (id: FileItemProps['id']) => void;\n /** When passed, will render a preview tooltip. Will be fired on click of preview tooltip. Passes file id as the parameter. */\n onPreviewPopoverClick?: (id: FileItemProps['id']) => void;\n /**\n * Moves preview option to actions menu.\n * To be used only in compact mode of single file input when rendered in a table\n */\n previewFromActions?: boolean;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. Passes file id as the parameter. */\n onDownload?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onDelete?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onOpen?: (id: FileItemProps['id']) => void;\n /** If the attachment is in an upload state, pass progress as a number between 0-100 representing the percentage of progress. */\n progress?: number;\n /** Set if there is an error uploading the file. Applies error styling to the meta string passed. */\n error?: string;\n /** Setting the disable state */\n disabled?: boolean;\n /** Ref for the wrapping element. */\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledErrorIcon = styled(Icon)(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledErrorIcon.defaultProps = defaultThemeProp;\n\nconst StyledStatusVisualInEditableLayout = styled.div(\n ({\n theme: {\n components: { input }\n }\n }) => {\n return css`\n min-inline-size: ${input.height};\n min-block-size: ${input.height};\n\n > ${StyledErrorIcon} {\n margin-inline-start: 0;\n }\n\n > ${StyledProgressRing} {\n margin-inline-start: 0;\n inline-size: ${input.height};\n block-size: ${input.height};\n\n > svg {\n width: 100%;\n height: 100%;\n }\n }\n `;\n }\n);\n\nStyledStatusVisualInEditableLayout.defaultProps = defaultThemeProp;\n\nconst titleEllipsisStyle = css`\n flex-shrink: 1;\n ${ellipsisOverflow}\n`;\n\nexport const StyledPreviewTitle = styled(Button)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledTextTitle = styled(Text)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledErrorTextTitle = styled(StyledTextTitle)(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledErrorTextTitle.defaultProps = defaultThemeProp;\n\nconst StyledMeta = styled(StyledText)<{ error: boolean; alignStart?: boolean }>(({\n theme,\n error,\n alignStart\n}) => {\n return css`\n /* min width to show percentage in full */\n min-width: 4ch;\n margin-inline-start: ${alignStart ? 'unset' : 'auto'};\n ${titleEllipsisStyle}\n ${error &&\n css`\n color: ${theme.base.palette.urgent};\n `}\n `;\n});\n\nStyledMeta.defaultProps = defaultThemeProp;\n\nconst StyledActionsWrapper = styled.div<{ meta: boolean }>(({ meta }) => {\n return css`\n margin-inline-start: ${meta ? 'unset' : 'auto'};\n `;\n});\n\nStyledActionsWrapper.defaultProps = defaultThemeProp;\n\nconst StyledMetadataGrid = styled(Grid)(({ theme }) => {\n return css`\n grid-template-columns: repeat(2, 1fr);\n\n @container (width < ${theme.base.breakpoints.sm}) {\n grid-template-columns: 1fr;\n }\n `;\n});\n\nStyledMetadataGrid.defaultProps = defaultThemeProp;\n\nexport const StyledFileItem = styled.div<{\n compactMode: FileItemProps['compact'];\n isDisabled?: FileItemProps['disabled'];\n hasMetadata?: boolean;\n isErrorOrProgressItem?: boolean;\n}>(\n ({\n theme: {\n base: {\n palette,\n spacing,\n 'hit-area': {\n compact,\n 'compact-min': compactMin,\n 'mouse-min': mouseMin,\n 'finger-min': fingerMin\n },\n 'disabled-opacity': disabledOpacity\n },\n components: {\n input,\n 'form-control': {\n ':disabled': {\n 'background-color': disabledBackgroundColor,\n 'border-color': disabledBorderColor\n }\n }\n }\n },\n compactMode,\n isDisabled,\n hasMetadata,\n isErrorOrProgressItem\n }) => {\n const labelOffset = `calc(${compactMin} + 0.25 * ${spacing})`;\n\n return css`\n border-radius: calc(var(--container-border-radius) * 0.5);\n border: 0.0625rem solid ${palette['border-line']};\n ${!hasMetadata &&\n css`\n background-color: ${palette['primary-background']};\n `}\n height: ${input.height};\n min-width: calc(${input.height} + 12ch + 1.5 * ${spacing} + ${compact});\n\n ${hasMetadata &&\n css`\n container-type: inline-size;\n border: none;\n border-block-start: 0.0625rem solid ${palette['border-line']};\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n height: auto;\n min-height: ${input.height};\n\n &:first-child {\n border-block-start: none;\n }\n\n > ${StyledActionsWrapper} {\n align-self: flex-start;\n margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};\n margin-inline-end: calc(-0.5 * ${spacing});\n inline-size: ${input.height};\n block-size: ${input.height};\n }\n `}\n\n ${compactMode &&\n css`\n height: ${compact};\n min-width: calc(${compact} + 12ch + 2 * ${spacing});\n width: fit-content;\n max-width: 25ch;\n\n ${StyledPreviewTitle}, ${StyledTextTitle} {\n min-width: 12ch;\n max-width: calc(25ch - (${compact} + 2 * ${spacing}));\n }\n\n ${StyledActionsWrapper} > ${StyledButton} {\n min-height: 100%;\n min-width: 100%;\n margin-block: ${spacing};\n }\n `}\n\n > ${StyledProgressRing} {\n margin-inline-start: calc(0.5 * ${spacing});\n }\n\n > ${StyledFileVisual}, > ${StyledIconShape} {\n border-start-start-radius: inherit;\n border-end-start-radius: inherit;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n width: ${input.height};\n min-width: ${mouseMin};\n flex-shrink: 0;\n\n @media (pointer: coarse) {\n min-width: ${fingerMin};\n }\n\n ${hasMetadata &&\n css`\n height: ${input.height};\n min-height: ${mouseMin};\n overflow: hidden;\n border-radius: calc(var(--container-border-radius) * 0.5);\n margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};\n\n @media (pointer: coarse) {\n min-height: ${fingerMin};\n }\n `}\n\n ${compactMode &&\n css`\n height: ${compact};\n width: ${compact};\n min-width: unset;\n min-height: unset;\n `}\n }\n ${isDisabled &&\n css`\n background-color: ${disabledBackgroundColor};\n border-color: ${disabledBorderColor};\n opacity: ${disabledOpacity};\n `}\n `;\n }\n);\n\nStyledFileItem.defaultProps = defaultThemeProp;\n\nconst FileItem: ForwardRefForwardPropsComponent<FileItemProps> = forwardRef(function FileItem(\n props: PropsWithoutRef<FileItemProps>,\n ref: FileItemProps['ref']\n) {\n const {\n id,\n name,\n metadata,\n thumbnail,\n format,\n error,\n onCancel,\n onEdit,\n onPreview,\n onPreviewPopoverClick,\n onDownload,\n onDelete,\n onOpen,\n progress,\n compact = false,\n previewFromActions = false,\n disabled = false,\n ...restProps\n } = props;\n\n const [thumbnailError, setThumbnailError] = useState(false);\n const [textTarget, setTextTarget] = useElement();\n const [metaTarget, setMetaTarget] = useElement();\n const [popover, setPopover] = useState(false);\n const [previewPopover, setPreviewPopover] = useState(false);\n const { locale } = useConfiguration();\n const { initialized: inModal } = useModalContext();\n const { previewTriggerRef } = usePreviewContext();\n const t = useI18n();\n const uploading = typeof progress === 'number' && progress < 100;\n const isErrorOrProgressItem = Boolean(error || uploading);\n const itemRef = useConsolidatedRef(ref);\n const hasMetadata = !!metadata;\n\n const activeElement = getActiveElement();\n const activeElementInItem = itemRef.current?.contains(activeElement);\n\n let metaMessage;\n\n if (uploading) {\n metaMessage = formatNumber(progress, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n });\n } else if (error) {\n metaMessage = error;\n }\n\n const definedActions: Action[] = [\n previewFromActions ? { onClick: onPreview, text: t('preview'), icon: 'preview' } : undefined,\n { onClick: hasMetadata ? undefined : onEdit, text: t('edit'), icon: 'pencil' },\n { onClick: onDownload, text: t('download'), icon: 'download' },\n { onClick: onDelete, text: t('delete'), icon: 'trash' },\n { onClick: onOpen, text: t('link_open_in_tab_text'), icon: 'open' }\n ].flatMap(action => {\n if (!action || !action.onClick) return [];\n\n const { text, icon, onClick: onActionClick } = action;\n return [\n {\n id: text,\n text,\n icon,\n onClick: () => onActionClick(id)\n }\n ];\n });\n\n let visual;\n let contextualLabel;\n\n if (uploading) {\n visual = hasMetadata ? (\n <Flex\n container={{ alignItems: 'center', justify: 'center' }}\n item={{ shrink: 0 }}\n as={StyledStatusVisualInEditableLayout}\n >\n <Progress variant='ring' placement='inline' value={progress} />\n </Flex>\n ) : (\n <Progress variant='ring' placement='inline' value={progress} />\n );\n contextualLabel = t('uploading_file', [name]);\n } else if (error) {\n visual = hasMetadata ? (\n <Flex\n container={{ alignItems: 'center', justify: 'center' }}\n item={{ shrink: 0 }}\n as={StyledStatusVisualInEditableLayout}\n >\n <StyledErrorIcon name='warn-solid' />\n </Flex>\n ) : (\n <StyledErrorIcon name='warn-solid' />\n );\n contextualLabel = t('upload_failed', [name, error]);\n } else {\n visual = (\n <FileVisual\n type={\n format === 'url' ? 'link' : getKindFromMimeType(getMimeTypeFromFile(format ?? '') ?? '')\n }\n thumbnail={thumbnailError ? undefined : thumbnail}\n onThumbnailError={() => {\n setThumbnailError(true);\n }}\n />\n );\n contextualLabel = name;\n }\n\n useEffect(() => {\n if (!activeElement?.isConnected && activeElementInItem && itemRef.current) {\n getFocusables(itemRef.current)[0]?.focus();\n }\n }, [progress, error, onCancel, onDelete, onPreview, onEdit, onDownload]);\n\n const showInlinePreview =\n !hasMetadata &&\n !previewFromActions &&\n ((!inModal && onPreviewPopoverClick) || onPreview) &&\n !(error || uploading);\n\n let primaryContent: ReactNode;\n\n if (metadata && metadata.length > 0 && !error && !uploading) {\n primaryContent = (\n <StyledMetadataGrid container={{ gap: 1 }}>\n {metadata.map((field, index) => {\n const spanFull = index === metadata.length - 1 && metadata.length % 2 !== 0;\n const gridItem = spanFull ? { colStartEnd: '1 / -1' } : {};\n\n if (field.options && field.options.length > 0) {\n return (\n <Grid item={gridItem} key={field.id}>\n <ComboBox\n label={field.label}\n selected={(() => {\n if (!field.selected) return;\n\n const selectedItem = field.options.find(opt => opt.id === field.selected);\n if (!selectedItem) return;\n\n return {\n items: {\n id: selectedItem.id,\n text: selectedItem.label\n }\n };\n })()}\n menu={{\n mode: 'single-select',\n items: field.options.map(opt => ({ id: opt.id, primary: opt.label })),\n onItemClick: (optionId: string) => field.onChange(optionId)\n }}\n disabled={disabled}\n />\n </Grid>\n );\n }\n\n return (\n <Grid item={gridItem} key={field.id}>\n <Input\n label={field.label}\n value={field.value}\n onChange={(e: ChangeEvent<HTMLInputElement>) => field.onChange(e.target.value)}\n additionalInfo={field.additionalInfo}\n disabled={disabled}\n />\n </Grid>\n );\n })}\n </StyledMetadataGrid>\n );\n } else if (showInlinePreview) {\n primaryContent = (\n <Button\n {...restProps}\n as={StyledPreviewTitle}\n variant='link'\n ref={setTextTarget}\n onClick={() => {\n onPreview?.(id);\n }}\n onKeyDown={(e: ReactKeyboardEvent) => {\n if (e.getModifierState('Alt') && e.code === 'KeyP') {\n if (isInstance(e.currentTarget, HTMLElement)) {\n previewTriggerRef.current = e.currentTarget;\n }\n onPreviewPopoverClick?.(id);\n }\n }}\n onMouseEnter={onPreviewPopoverClick ? () => setPopover(true) : undefined}\n onMouseLeave={onPreviewPopoverClick ? () => setPopover(false) : undefined}\n onFocus={onPreviewPopoverClick ? () => setPreviewPopover(true) : undefined}\n onBlur={onPreviewPopoverClick ? () => setPreviewPopover(false) : undefined}\n aria-label={t('preview_file', [name])}\n disabled={disabled}\n >\n {name}\n {format === 'url' && <Icon name='open' />}\n </Button>\n );\n } else {\n primaryContent = (\n <Text\n {...restProps}\n as={hasMetadata && !!error ? StyledErrorTextTitle : StyledTextTitle}\n ref={setTextTarget}\n >\n {name}\n </Text>\n );\n }\n\n let detailsContent: ReactNode;\n\n const containerPad: FlexContainerProps['pad'] = hasMetadata\n ? [1, 0.5, 1, undefined]\n : [undefined, 0.5, undefined, undefined];\n\n const metaContent = metaMessage ? (\n <>\n <Text\n as={StyledMeta}\n variant='secondary'\n error={!!error && !uploading}\n alignStart={hasMetadata && (!!error || uploading)}\n ref={setMetaTarget}\n >\n {metaMessage}\n </Text>\n {metaTarget && (\n <Tooltip target={metaTarget} describeTarget={false} smart>\n {metaMessage}\n </Tooltip>\n )}\n </>\n ) : null;\n\n if (hasMetadata) {\n detailsContent = (\n <Flex\n item={{ grow: 1 }}\n container={{\n direction: 'column'\n }}\n >\n {primaryContent}\n\n {metaContent}\n </Flex>\n );\n } else {\n detailsContent = (\n <>\n {primaryContent}\n {metaContent}\n </>\n );\n }\n\n return (\n <Flex\n as={StyledFileItem}\n container={{\n pad: containerPad,\n alignItems: hasMetadata ? 'start' : 'center',\n justify: 'start',\n gap: 1\n }}\n isDisabled={disabled}\n compactMode={compact}\n hasMetadata={hasMetadata}\n isErrorOrProgressItem={isErrorOrProgressItem}\n ref={itemRef}\n >\n {visual}\n\n {detailsContent}\n\n {(error || uploading) && onCancel && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Button\n label={t('cancel')}\n aria-label={`${t('cancel')} - ${contextualLabel}`}\n variant='simple'\n compact={!hasMetadata}\n icon\n onClick={() => onCancel(id)}\n >\n <Icon name='times' />\n </Button>\n </StyledActionsWrapper>\n )}\n\n {!(error || uploading) && !!definedActions.length && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Actions\n items={definedActions}\n compact={!hasMetadata}\n iconOnly\n contextualLabel={name}\n disabled={disabled}\n />\n </StyledActionsWrapper>\n )}\n\n {textTarget && !onPreviewPopoverClick && (\n <Tooltip target={textTarget} smart describeTarget={false}>\n {name}\n </Tooltip>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={popover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n onMouseEnter={() => setPopover(true)}\n onMouseLeave={() => setPopover(false)}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n if (isInstance(textTarget, HTMLElement)) {\n previewTriggerRef.current = textTarget;\n }\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={previewPopover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n if (isInstance(textTarget, HTMLElement)) {\n previewTriggerRef.current = textTarget;\n }\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n <Flex container={{ inline: true, justify: 'end' }}>\n <Keyboard keyName='Alt' />\n <Keyboard keyName='P' />\n </Flex>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n </Flex>\n );\n});\n\nexport default FileItem;\n"]}
|
|
1
|
+
{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport type {\n PropsWithoutRef,\n Ref,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n ChangeEvent\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon, { registerIcon } from '../Icon';\nimport Input from '../Input';\nimport ComboBox from '../ComboBox';\nimport * as openIcon from '../Icon/icons/open.icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as previewIcon from '../Icon/icons/preview.icon';\nimport * as editIcon from '../Icon/icons/pencil.icon';\nimport * as downloadIcon from '../Icon/icons/download.icon';\nimport * as deleteIcon from '../Icon/icons/trash.icon';\nimport Text, { StyledText } from '../Text';\nimport Tooltip from '../Tooltip';\nimport type { ForwardRefForwardPropsComponent, BaseProps, Action } from '../../types';\nimport { defaultThemeProp } from '../../theme';\nimport Button, { StyledButton } from '../Button';\nimport {\n useI18n,\n useElement,\n useConfiguration,\n useConsolidatedRef,\n usePreviewContext,\n useModalContext\n} from '../../hooks';\nimport Actions from '../Actions';\nimport Progress from '../Progress';\nimport { StyledProgressRing } from '../Progress/Progress.styles';\nimport { formatNumber } from '../Number';\nimport Flex from '../Flex';\nimport type { FlexContainerProps } from '../Flex';\nimport Grid from '../Grid';\nimport { StyledIconShape } from '../Icon/Icon';\nimport { getActiveElement, getFocusables, isInstance } from '../../utils';\nimport { ellipsisOverflow } from '../../styles/mixins';\nimport { StyledLinkPopover, StyledLinkPreviewPopoverBtn } from '../Link/Link';\nimport Popover from '../Popover';\nimport { Keyboard } from '../Badges';\n\nimport { getKindFromMimeType, getMimeTypeFromFile } from './utils';\nimport FileVisual, { StyledFileVisual } from './FileVisual';\nimport type { FileVisualProps } from './FileVisual';\n\nregisterIcon(openIcon, timesIcon, previewIcon, editIcon, downloadIcon, deleteIcon);\n\ninterface FileMetadataFieldBase {\n /** Unique identifier for this metadata field. */\n id: string;\n /** Display label for the field. */\n label: string;\n /** Additional info shown alongside the field label. */\n additionalInfo?: { heading?: string; content: string };\n /** Callback fired when the field value changes. */\n onChange: (value: string) => void;\n}\n\nexport interface FileMetadataTextField extends FileMetadataFieldBase {\n /** Current value of the text input. */\n value?: string;\n selected?: never;\n options?: never;\n}\n\nexport interface FileMetadataSelectField extends FileMetadataFieldBase {\n /** The id of the currently selected option. */\n selected?: string;\n /** Selectable options rendered as a ComboBox. */\n options: { id: string; label: string }[];\n value?: never;\n}\n\nexport type FileMetadataField = FileMetadataTextField | FileMetadataSelectField;\n\nexport type FileMetadata = FileMetadataField[];\n\nexport interface FileItemProps extends BaseProps {\n /** Unique id for item. */\n id: string;\n /** Name of the file. */\n name: string;\n /** File metadata and edit configuration. When provided, enables edit mode with stacked single-column layout and inline editable fields. */\n metadata?: FileMetadata;\n /** A string to be used as an image src for a attachment thumbnail. Falls back to a provided icon or the default attachment icon. */\n thumbnail?: FileVisualProps['thumbnail'];\n /** File extension. Use 'url' for link */\n format?: string;\n /**\n * Used for a smaller sized FileItem.\n * @default false\n */\n compact?: boolean;\n /** When passed, will render a single icon button for yet to be or in progress uploads. Use this action to trigger xhr request termination. */\n onCancel?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onEdit?: (id: FileItemProps['id']) => void;\n /** When passed, the file name will be rendered as a clickable button. Fires on direct click of the name. Passes file id as the parameter. */\n onPreview?: (id: FileItemProps['id']) => void;\n /** When passed, will render a preview tooltip. Will be fired on click of preview tooltip. Passes file id as the parameter. */\n onPreviewPopoverClick?: (id: FileItemProps['id']) => void;\n /**\n * Moves preview option to actions menu.\n * To be used only in compact mode of single file input when rendered in a table\n */\n previewFromActions?: boolean;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. Passes file id as the parameter. */\n onDownload?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onDelete?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onOpen?: (id: FileItemProps['id']) => void;\n /** If the attachment is in an upload state, pass progress as a number between 0-100 representing the percentage of progress. */\n progress?: number;\n /** Set if there is an error uploading the file. Applies error styling to the meta string passed. */\n error?: string;\n /** Setting the disable state */\n disabled?: boolean;\n /** Ref for the wrapping element. */\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledErrorIcon = styled(Icon)(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledErrorIcon.defaultProps = defaultThemeProp;\n\nconst StyledStatusVisualInEditableLayout = styled.div(\n ({\n theme: {\n components: { input },\n base: {\n 'hit-area': { 'mouse-min': mouseMin, 'finger-min': fingerMin }\n }\n }\n }) => {\n return css`\n min-block-size: ${input.height};\n min-inline-size: ${mouseMin};\n\n @media (pointer: coarse) {\n min-inline-size: ${fingerMin};\n min-block-size: ${fingerMin};\n }\n\n > ${StyledProgressRing} {\n margin-inline-start: 0;\n inline-size: ${input.height};\n block-size: ${input.height};\n\n > svg {\n width: 100%;\n height: 100%;\n }\n }\n `;\n }\n);\n\nStyledStatusVisualInEditableLayout.defaultProps = defaultThemeProp;\n\nconst titleEllipsisStyle = css`\n flex-shrink: 1;\n ${ellipsisOverflow}\n`;\n\nexport const StyledPreviewTitle = styled(Button)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledTextTitle = styled(Text)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledErrorTextTitle = styled(StyledTextTitle)(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledErrorTextTitle.defaultProps = defaultThemeProp;\n\nconst StyledMeta = styled(StyledText)<{ error: boolean; alignStart?: boolean }>(({\n theme,\n error,\n alignStart\n}) => {\n return css`\n /* min width to show percentage in full */\n min-width: 4ch;\n margin-inline-start: ${alignStart ? 'unset' : 'auto'};\n ${titleEllipsisStyle}\n ${error &&\n css`\n color: ${theme.base.palette.urgent};\n `}\n `;\n});\n\nStyledMeta.defaultProps = defaultThemeProp;\n\nconst StyledActionsWrapper = styled.div<{ meta: boolean }>(({ meta }) => {\n return css`\n margin-inline-start: ${meta ? 'unset' : 'auto'};\n `;\n});\n\nStyledActionsWrapper.defaultProps = defaultThemeProp;\n\nconst StyledMetadataGrid = styled(Grid)(({ theme }) => {\n return css`\n grid-template-columns: repeat(2, 1fr);\n\n @container (width < ${theme.base.breakpoints.sm}) {\n grid-template-columns: 1fr;\n }\n `;\n});\n\nStyledMetadataGrid.defaultProps = defaultThemeProp;\n\nexport const StyledFileItem = styled.div<{\n compactMode: FileItemProps['compact'];\n isDisabled?: FileItemProps['disabled'];\n hasMetadata?: boolean;\n isErrorOrProgressItem?: boolean;\n}>(\n ({\n theme: {\n base: {\n palette,\n spacing,\n 'hit-area': {\n compact,\n 'compact-min': compactMin,\n 'mouse-min': mouseMin,\n 'finger-min': fingerMin\n },\n 'disabled-opacity': disabledOpacity\n },\n components: {\n input,\n 'form-control': {\n ':disabled': {\n 'background-color': disabledBackgroundColor,\n 'border-color': disabledBorderColor\n }\n }\n }\n },\n compactMode,\n isDisabled,\n hasMetadata,\n isErrorOrProgressItem\n }) => {\n const labelOffset = `calc(${compactMin} + 0.25 * ${spacing})`;\n\n return css`\n border-radius: calc(var(--container-border-radius) * 0.5);\n border: 0.0625rem solid ${palette['border-line']};\n ${!hasMetadata &&\n css`\n background-color: ${palette['primary-background']};\n `}\n height: ${input.height};\n min-width: calc(${input.height} + 12ch + 1.5 * ${spacing} + ${compact});\n\n ${hasMetadata &&\n css`\n container-type: inline-size;\n border: none;\n border-block-start: 0.0625rem solid ${palette['border-line']};\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n height: auto;\n min-height: ${input.height};\n\n &:first-child {\n border-block-start: none;\n }\n\n > ${StyledActionsWrapper} {\n align-self: flex-start;\n margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};\n margin-inline-end: calc(-0.5 * ${spacing});\n inline-size: ${input.height};\n block-size: ${input.height};\n\n @media (pointer: coarse) {\n min-inline-size: ${fingerMin};\n min-block-size: ${fingerMin};\n }\n }\n `}\n\n ${compactMode &&\n css`\n height: ${compact};\n min-width: calc(${compact} + 12ch + 2 * ${spacing});\n width: fit-content;\n max-width: 25ch;\n\n ${StyledPreviewTitle}, ${StyledTextTitle} {\n min-width: 12ch;\n max-width: calc(25ch - (${compact} + 2 * ${spacing}));\n }\n\n ${StyledActionsWrapper} > ${StyledButton} {\n min-height: 100%;\n min-width: 100%;\n margin-block: ${spacing};\n }\n `}\n\n > ${StyledProgressRing} {\n margin-inline-start: calc(0.5 * ${spacing});\n }\n\n > ${StyledStatusVisualInEditableLayout} {\n margin-inline-end: ${spacing};\n }\n\n > ${StyledFileVisual}, > ${StyledIconShape} {\n border-start-start-radius: inherit;\n border-end-start-radius: inherit;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n ${hasMetadata &&\n css`\n margin-inline-end: ${spacing};\n `}\n width: ${input.height};\n min-width: ${mouseMin};\n flex-shrink: 0;\n\n @media (pointer: coarse) {\n min-width: ${fingerMin};\n }\n\n ${hasMetadata &&\n css`\n height: ${input.height};\n min-height: ${mouseMin};\n overflow: hidden;\n border-radius: calc(var(--container-border-radius) * 0.5);\n margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};\n\n @media (pointer: coarse) {\n min-height: ${fingerMin};\n }\n `}\n\n ${compactMode &&\n css`\n height: ${compact};\n width: ${compact};\n min-width: unset;\n min-height: unset;\n `}\n }\n ${isDisabled &&\n css`\n background-color: ${disabledBackgroundColor};\n border-color: ${disabledBorderColor};\n opacity: ${disabledOpacity};\n `}\n `;\n }\n);\n\nStyledFileItem.defaultProps = defaultThemeProp;\n\nconst FileItem: ForwardRefForwardPropsComponent<FileItemProps> = forwardRef(function FileItem(\n props: PropsWithoutRef<FileItemProps>,\n ref: FileItemProps['ref']\n) {\n const {\n id,\n name,\n metadata,\n thumbnail,\n format,\n error,\n onCancel,\n onEdit,\n onPreview,\n onPreviewPopoverClick,\n onDownload,\n onDelete,\n onOpen,\n progress,\n compact = false,\n previewFromActions = false,\n disabled = false,\n ...restProps\n } = props;\n\n const [thumbnailError, setThumbnailError] = useState(false);\n const [textTarget, setTextTarget] = useElement();\n const [metaTarget, setMetaTarget] = useElement();\n const [popover, setPopover] = useState(false);\n const [previewPopover, setPreviewPopover] = useState(false);\n const { locale } = useConfiguration();\n const { initialized: inModal } = useModalContext();\n const { previewTriggerRef } = usePreviewContext();\n const t = useI18n();\n const uploading = typeof progress === 'number' && progress < 100;\n const isErrorOrProgressItem = Boolean(error || uploading);\n const itemRef = useConsolidatedRef(ref);\n const hasMetadata = !!metadata;\n\n const activeElement = getActiveElement();\n const activeElementInItem = itemRef.current?.contains(activeElement);\n\n let metaMessage;\n\n if (uploading) {\n metaMessage = formatNumber(progress, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n });\n } else if (error) {\n metaMessage = error;\n }\n\n const definedActions: Action[] = [\n previewFromActions ? { onClick: onPreview, text: t('preview'), icon: 'preview' } : undefined,\n { onClick: hasMetadata ? undefined : onEdit, text: t('edit'), icon: 'pencil' },\n { onClick: onDownload, text: t('download'), icon: 'download' },\n { onClick: onDelete, text: t('delete'), icon: 'trash' },\n { onClick: onOpen, text: t('link_open_in_tab_text'), icon: 'open' }\n ].flatMap(action => {\n if (!action || !action.onClick) return [];\n\n const { text, icon, onClick: onActionClick } = action;\n return [\n {\n id: text,\n text,\n icon,\n onClick: () => onActionClick(id)\n }\n ];\n });\n\n let visual;\n let contextualLabel;\n\n if (uploading) {\n visual = hasMetadata ? (\n <Flex\n container={{ alignItems: 'center', justify: 'center' }}\n item={{ shrink: 0 }}\n as={StyledStatusVisualInEditableLayout}\n >\n <Progress variant='ring' placement='inline' value={progress} />\n </Flex>\n ) : (\n <Progress variant='ring' placement='inline' value={progress} />\n );\n contextualLabel = t('uploading_file', [name]);\n } else if (error) {\n visual = hasMetadata ? (\n <Flex\n container={{ alignItems: 'center', justify: 'center' }}\n item={{ shrink: 0 }}\n as={StyledStatusVisualInEditableLayout}\n >\n <StyledErrorIcon name='warn-solid' />\n </Flex>\n ) : (\n <StyledErrorIcon name='warn-solid' />\n );\n contextualLabel = t('upload_failed', [name, error]);\n } else {\n visual = (\n <FileVisual\n type={\n format === 'url' ? 'link' : getKindFromMimeType(getMimeTypeFromFile(format ?? '') ?? '')\n }\n thumbnail={thumbnailError ? undefined : thumbnail}\n onThumbnailError={() => {\n setThumbnailError(true);\n }}\n />\n );\n contextualLabel = name;\n }\n\n useEffect(() => {\n if (!activeElement?.isConnected && activeElementInItem && itemRef.current) {\n getFocusables(itemRef.current)[0]?.focus();\n }\n }, [progress, error, onCancel, onDelete, onPreview, onEdit, onDownload]);\n\n const showInlinePreview =\n !hasMetadata &&\n !previewFromActions &&\n ((!inModal && onPreviewPopoverClick) || onPreview) &&\n !(error || uploading);\n\n let primaryContent: ReactNode;\n\n if (metadata && metadata.length > 0 && !error && !uploading) {\n primaryContent = (\n <StyledMetadataGrid container={{ gap: 1 }}>\n {metadata.map((field, index) => {\n const spanFull = index === metadata.length - 1 && metadata.length % 2 !== 0;\n const gridItem = spanFull ? { colStartEnd: '1 / -1' } : {};\n\n if (field.options && field.options.length > 0) {\n return (\n <Grid item={gridItem} key={field.id}>\n <ComboBox\n label={field.label}\n selected={(() => {\n if (!field.selected) return;\n\n const selectedItem = field.options.find(opt => opt.id === field.selected);\n if (!selectedItem) return;\n\n return {\n items: {\n id: selectedItem.id,\n text: selectedItem.label\n }\n };\n })()}\n menu={{\n mode: 'single-select',\n items: field.options.map(opt => ({ id: opt.id, primary: opt.label })),\n onItemClick: (optionId: string) => field.onChange(optionId)\n }}\n disabled={disabled}\n />\n </Grid>\n );\n }\n\n return (\n <Grid item={gridItem} key={field.id}>\n <Input\n label={field.label}\n value={field.value}\n onChange={(e: ChangeEvent<HTMLInputElement>) => field.onChange(e.target.value)}\n additionalInfo={field.additionalInfo}\n disabled={disabled}\n />\n </Grid>\n );\n })}\n </StyledMetadataGrid>\n );\n } else if (showInlinePreview) {\n primaryContent = (\n <Button\n {...restProps}\n as={StyledPreviewTitle}\n variant='link'\n ref={setTextTarget}\n onClick={() => {\n onPreview?.(id);\n }}\n onKeyDown={(e: ReactKeyboardEvent) => {\n if (e.getModifierState('Alt') && e.code === 'KeyP') {\n if (isInstance(e.currentTarget, HTMLElement)) {\n previewTriggerRef.current = e.currentTarget;\n }\n onPreviewPopoverClick?.(id);\n }\n }}\n onMouseEnter={onPreviewPopoverClick ? () => setPopover(true) : undefined}\n onMouseLeave={onPreviewPopoverClick ? () => setPopover(false) : undefined}\n onFocus={onPreviewPopoverClick ? () => setPreviewPopover(true) : undefined}\n onBlur={onPreviewPopoverClick ? () => setPreviewPopover(false) : undefined}\n aria-label={t('preview_file', [name])}\n disabled={disabled}\n >\n {name}\n {format === 'url' && <Icon name='open' />}\n </Button>\n );\n } else {\n primaryContent = (\n <Text\n {...restProps}\n as={hasMetadata && !!error ? StyledErrorTextTitle : StyledTextTitle}\n ref={setTextTarget}\n >\n {name}\n </Text>\n );\n }\n\n let detailsContent: ReactNode;\n\n const containerPad: FlexContainerProps['pad'] = hasMetadata\n ? [1.5, 0.5, 1.5, undefined]\n : [undefined, 0.5, undefined, undefined];\n\n const metaContent = metaMessage ? (\n <>\n <Text\n as={StyledMeta}\n variant='secondary'\n error={!!error && !uploading}\n alignStart={hasMetadata && (!!error || uploading)}\n ref={setMetaTarget}\n >\n {metaMessage}\n </Text>\n {metaTarget && (\n <Tooltip target={metaTarget} describeTarget={false} smart>\n {metaMessage}\n </Tooltip>\n )}\n </>\n ) : null;\n\n if (hasMetadata) {\n detailsContent = (\n <Flex\n item={{ grow: 1 }}\n container={{\n direction: 'column'\n }}\n >\n {primaryContent}\n\n {metaContent}\n </Flex>\n );\n } else {\n detailsContent = (\n <>\n {primaryContent}\n {metaContent}\n </>\n );\n }\n\n return (\n <Flex\n as={StyledFileItem}\n container={{\n pad: containerPad,\n alignItems: hasMetadata ? 'start' : 'center',\n justify: 'start',\n gap: 1\n }}\n isDisabled={disabled}\n compactMode={compact}\n hasMetadata={hasMetadata}\n isErrorOrProgressItem={isErrorOrProgressItem}\n ref={itemRef}\n >\n {visual}\n\n {detailsContent}\n\n {(error || uploading) && onCancel && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Button\n label={t('cancel')}\n aria-label={`${t('cancel')} - ${contextualLabel}`}\n variant='simple'\n compact={!hasMetadata}\n icon\n onClick={() => onCancel(id)}\n >\n <Icon name='times' />\n </Button>\n </StyledActionsWrapper>\n )}\n\n {!(error || uploading) && !!definedActions.length && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Actions\n items={definedActions}\n compact={!hasMetadata}\n iconOnly\n contextualLabel={name}\n disabled={disabled}\n />\n </StyledActionsWrapper>\n )}\n\n {textTarget && !onPreviewPopoverClick && (\n <Tooltip target={textTarget} smart describeTarget={false}>\n {name}\n </Tooltip>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={popover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n onMouseEnter={() => setPopover(true)}\n onMouseLeave={() => setPopover(false)}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n if (isInstance(textTarget, HTMLElement)) {\n previewTriggerRef.current = textTarget;\n }\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={previewPopover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n if (isInstance(textTarget, HTMLElement)) {\n previewTriggerRef.current = textTarget;\n }\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n <Flex container={{ inline: true, justify: 'end' }}>\n <Keyboard keyName='Alt' />\n <Keyboard keyName='P' />\n </Flex>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n </Flex>\n );\n});\n\nexport default FileItem;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAmD,MAAM,OAAO,CAAC;AAMhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyBhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwF9C;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,iBAAiB,CAAC,SAAS,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAmD,MAAM,OAAO,CAAC;AAMhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyBhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwF9C;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,iBAAiB,CAAC,SAAS,GAAG,YAAY,CA2LpD,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -128,7 +128,17 @@ const Tabs = forwardRef(function Tabs({ tabs = [], type = 'horizontal', currentT
|
|
|
128
128
|
}
|
|
129
129
|
});
|
|
130
130
|
return () => cancelAnimationFrame(rafId);
|
|
131
|
-
}, [
|
|
131
|
+
}, [
|
|
132
|
+
currentTabId,
|
|
133
|
+
// Track tab identity changes so the indicator recalculates when tabs are inserted or removed.
|
|
134
|
+
// Use \x1e (ASCII record separator) as delimiter to avoid conflicts with common ID characters.
|
|
135
|
+
tabs.map(tab => tab.id).join('\x1e'),
|
|
136
|
+
type,
|
|
137
|
+
tabRefMap,
|
|
138
|
+
wrapper,
|
|
139
|
+
tabsDetached,
|
|
140
|
+
themeSpacing
|
|
141
|
+
]);
|
|
132
142
|
useEffect(() => {
|
|
133
143
|
if (!wrapper)
|
|
134
144
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FunctionComponent, KeyboardEvent, MouseEvent, PropsWithoutRef, Ref } from 'react';\nimport { useContext, forwardRef, useEffect, useMemo, useRef, useState, Fragment } from 'react';\n\nimport SearchInput from '../SearchInput';\nimport Flex from '../Flex';\nimport Link from '../Link';\nimport type { ForwardProps } from '../../types';\nimport {\n useAfterInitialEffect,\n useConsolidatedRef,\n useElement,\n useEscape,\n useI18n,\n useTheme,\n useUID,\n useRefMap\n} from '../../hooks';\nimport * as arrowMicroDownIcon from '../Icon/icons/arrow-micro-down.icon';\nimport { registerIcon } from '../Icon/Icon';\nimport type { MenuItemProps, MenuProps } from '../Menu';\nimport { createStringMatcher, debounce } from '../../utils';\n\nimport TabsContext from './TabsContext';\nimport {\n StyledErrorIcon,\n StyledAllTabsButton,\n StyledTabs,\n StylesAllTabsButtonWrapper,\n StyledAllTabsWrapper,\n StyledSeparator\n} from './Tabs.styles';\nimport type { TabsProps } from './Tabs.types';\nimport Tab from './Tab';\n\nregisterIcon(arrowMicroDownIcon);\n\ntype TabItem = TabsProps['tabs'][number];\n\nconst AllTabsButton = ({\n tabs,\n tabRefMap,\n currentTabId,\n onTabClick\n}: Pick<TabsProps, 'tabs' | 'currentTabId' | 'onTabClick'> & {\n tabRefMap: Map<string, HTMLAnchorElement | HTMLButtonElement | null>;\n}) => {\n const menuId = useUID();\n const t = useI18n();\n const menuButtonRef = useRef<HTMLButtonElement>(null);\n const [search, setSearch] = useState('');\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [focusControlEl, setFocusControlEl] = useState<MenuProps['focusControlEl']>();\n\n const searchRegex = createStringMatcher(search);\n\n const itemsToRender = useMemo(() => {\n return tabs\n .filter(({ name }) => searchRegex.test(name))\n .map(({ id, name, count, disabled, errors }) => {\n const selected = id === currentTabId;\n const item: MenuItemProps = { id, primary: name, selected, count, disabled };\n if (errors) {\n item.visual = <StyledErrorIcon name='warn-solid' />;\n }\n return item;\n });\n }, [tabs, search, currentTabId]);\n\n useEscape(() => {\n if (!search) {\n menuButtonRef.current?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));\n menuButtonRef.current?.focus();\n }\n }, searchEleRef);\n\n return (\n <StyledAllTabsButton\n ref={menuButtonRef}\n text={t('all_tabs')}\n iconOnly\n variant='simple'\n icon='arrow-micro-down'\n menu={{\n listId: menuId,\n mode: 'single-select',\n items: itemsToRender,\n focusControlEl,\n accent: search ? searchRegex : undefined,\n onItemClick: (id: string, event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n onTabClick?.(id, event);\n setSearch('');\n tabRefMap.get(id)?.focus();\n },\n header: (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n aria-controls={menuId}\n />\n )\n }}\n popover={{\n onHide: () => {\n setFocusControlEl(undefined);\n setSearch('');\n },\n onShow: () => {\n if (searchEleRef.current) {\n setFocusControlEl(searchEleRef.current);\n searchEleRef.current.focus();\n }\n }\n }}\n />\n );\n};\n\n/**\n * The tabs component will take a list of tab data objects and render out a list of tabs in either vertical or horizontal direction.\n * The tabs component handles which tab is active but will give you a callback function that allows you to make changes when a new tab is activated\n */\nconst Tabs: FunctionComponent<TabsProps & ForwardProps> = forwardRef(function Tabs(\n {\n tabs = [],\n type = 'horizontal',\n currentTabId,\n onTabClick,\n ...restProps\n }: PropsWithoutRef<TabsProps>,\n ref: Ref<HTMLElement>\n) {\n const [wrapper, setWrapper] = useElement<HTMLDivElement>();\n const wrapperRef = useConsolidatedRef(ref, setWrapper);\n const { level } = useContext(TabsContext);\n const [hasScrollBar, setHasScrollBar] = useState(false);\n const {\n base: { spacing: themeSpacing },\n components: {\n tabs: { detached: tabsDetached }\n }\n } = useTheme();\n\n // Used to keep a reference for every tab in order to focus them with key presses\n const [tabRefMap, getTabRef] = useRefMap<HTMLButtonElement | HTMLAnchorElement | null>();\n\n // Handles arrow keypresses for changing the focus\n const changeTabFocus = (event: KeyboardEvent, index: number): void => {\n if (tabs.length) {\n const { key } = event;\n if (key === 'ArrowRight' || key === 'ArrowDown') {\n const nextIndex = index + 1 < tabs.length ? index + 1 : 0;\n const nextTab = tabRefMap.get(tabs[nextIndex].id) as HTMLButtonElement;\n\n if (!nextTab?.disabled) {\n nextTab?.focus();\n } else {\n changeTabFocus(event, nextIndex);\n }\n } else if (key === 'ArrowLeft' || key === 'ArrowUp') {\n const prevIndex = index === 0 ? tabs.length - 1 : index - 1;\n const prevTab = tabRefMap.get(tabs[prevIndex].id) as HTMLButtonElement;\n if (!prevTab?.disabled) {\n prevTab?.focus();\n } else {\n changeTabFocus(event, prevIndex);\n }\n }\n }\n };\n\n useAfterInitialEffect(() => {\n const event = new Event('cosmos-tab-changed', { bubbles: true, composed: true });\n wrapperRef.current?.dispatchEvent(event);\n\n const currentTabEl = tabRefMap.get(currentTabId);\n currentTabEl?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }, [currentTabId]);\n\n useEffect(() => {\n const currentTabEl = tabRefMap.get(currentTabId);\n\n if (!currentTabEl || !wrapper) return;\n\n // raf to ensure layout is stable before reading offset values\n const rafId = requestAnimationFrame(() => {\n if (type === 'horizontal') {\n // Horizontal tabs need left position and width for sliding animation\n const left = currentTabEl.offsetLeft;\n const width = currentTabEl.offsetWidth;\n wrapper.style.setProperty('--indicator-left', `${left}px`);\n wrapper.style.setProperty('--indicator-width', `${width}px`);\n } else {\n // Vertical tabs need height and top position for sliding animation\n const height = currentTabEl.offsetHeight;\n const top = currentTabEl.offsetTop;\n wrapper.style.setProperty('--indicator-height', `${height}px`);\n wrapper.style.setProperty('--indicator-top', `${top}px`);\n }\n });\n\n return () => cancelAnimationFrame(rafId);\n }, [currentTabId, type, tabRefMap, wrapper, tabsDetached, themeSpacing]);\n\n useEffect(() => {\n if (!wrapper) return;\n\n const ro = new ResizeObserver(\n debounce(([entry]) => {\n if (!entry?.target.isConnected || !(entry.target instanceof HTMLElement)) return;\n\n setHasScrollBar(entry.target.scrollWidth > entry.target.offsetWidth);\n }, 1)\n );\n\n ro.observe(wrapper);\n\n return () => {\n ro.disconnect();\n };\n }, [wrapper]);\n\n const shouldRenderAllTabsButton = type === 'horizontal' && hasScrollBar;\n\n const TabList = (\n <Flex\n {...restProps}\n container={{\n direction: type !== 'horizontal' ? 'column' : undefined\n }}\n item={{ shrink: 0 }}\n as={StyledTabs}\n ref={wrapperRef}\n role='tablist'\n aria-orientation={type}\n hasScrollBar={hasScrollBar}\n level={level}\n >\n {tabs.map((tab: TabItem, i) => {\n const { href, name, count, id, disabled, errors } = tab;\n const selected = id === currentTabId;\n\n return (\n <Fragment key={id}>\n {level > 1 && !tabsDetached && (\n <StyledSeparator\n transparent={\n selected ||\n (i === 0 ? !shouldRenderAllTabsButton : tabs[i - 1].id === currentTabId)\n }\n />\n )}\n <Tab\n id={id}\n aria-selected={selected}\n aria-controls={`${id}-panel`}\n content={name}\n count={count}\n href={href}\n selected={selected}\n onClick={(event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n onTabClick?.(id, event);\n }}\n role='tab'\n ref={getTabRef(id)}\n onKeyDown={(e: KeyboardEvent) => {\n if (['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n changeTabFocus(e, i);\n }\n }}\n as={href ? Link : undefined}\n tabIndex={selected ? undefined : -1}\n aria-label={name}\n type={type}\n disabled={disabled}\n errors={errors}\n />\n </Fragment>\n );\n })}\n </Flex>\n );\n\n return shouldRenderAllTabsButton ? (\n <Flex container={{ alignItems: 'stretch' }} as={StyledAllTabsWrapper} level={level}>\n <Flex container as={StylesAllTabsButtonWrapper}>\n <AllTabsButton\n tabs={tabs}\n tabRefMap={tabRefMap}\n currentTabId={currentTabId}\n onTabClick={onTabClick}\n />\n </Flex>\n {TabList}\n </Flex>\n ) : (\n TabList\n );\n});\n\nexport default Tabs;\n"]}
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FunctionComponent, KeyboardEvent, MouseEvent, PropsWithoutRef, Ref } from 'react';\nimport { useContext, forwardRef, useEffect, useMemo, useRef, useState, Fragment } from 'react';\n\nimport SearchInput from '../SearchInput';\nimport Flex from '../Flex';\nimport Link from '../Link';\nimport type { ForwardProps } from '../../types';\nimport {\n useAfterInitialEffect,\n useConsolidatedRef,\n useElement,\n useEscape,\n useI18n,\n useTheme,\n useUID,\n useRefMap\n} from '../../hooks';\nimport * as arrowMicroDownIcon from '../Icon/icons/arrow-micro-down.icon';\nimport { registerIcon } from '../Icon/Icon';\nimport type { MenuItemProps, MenuProps } from '../Menu';\nimport { createStringMatcher, debounce } from '../../utils';\n\nimport TabsContext from './TabsContext';\nimport {\n StyledErrorIcon,\n StyledAllTabsButton,\n StyledTabs,\n StylesAllTabsButtonWrapper,\n StyledAllTabsWrapper,\n StyledSeparator\n} from './Tabs.styles';\nimport type { TabsProps } from './Tabs.types';\nimport Tab from './Tab';\n\nregisterIcon(arrowMicroDownIcon);\n\ntype TabItem = TabsProps['tabs'][number];\n\nconst AllTabsButton = ({\n tabs,\n tabRefMap,\n currentTabId,\n onTabClick\n}: Pick<TabsProps, 'tabs' | 'currentTabId' | 'onTabClick'> & {\n tabRefMap: Map<string, HTMLAnchorElement | HTMLButtonElement | null>;\n}) => {\n const menuId = useUID();\n const t = useI18n();\n const menuButtonRef = useRef<HTMLButtonElement>(null);\n const [search, setSearch] = useState('');\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [focusControlEl, setFocusControlEl] = useState<MenuProps['focusControlEl']>();\n\n const searchRegex = createStringMatcher(search);\n\n const itemsToRender = useMemo(() => {\n return tabs\n .filter(({ name }) => searchRegex.test(name))\n .map(({ id, name, count, disabled, errors }) => {\n const selected = id === currentTabId;\n const item: MenuItemProps = { id, primary: name, selected, count, disabled };\n if (errors) {\n item.visual = <StyledErrorIcon name='warn-solid' />;\n }\n return item;\n });\n }, [tabs, search, currentTabId]);\n\n useEscape(() => {\n if (!search) {\n menuButtonRef.current?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));\n menuButtonRef.current?.focus();\n }\n }, searchEleRef);\n\n return (\n <StyledAllTabsButton\n ref={menuButtonRef}\n text={t('all_tabs')}\n iconOnly\n variant='simple'\n icon='arrow-micro-down'\n menu={{\n listId: menuId,\n mode: 'single-select',\n items: itemsToRender,\n focusControlEl,\n accent: search ? searchRegex : undefined,\n onItemClick: (id: string, event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n onTabClick?.(id, event);\n setSearch('');\n tabRefMap.get(id)?.focus();\n },\n header: (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n aria-controls={menuId}\n />\n )\n }}\n popover={{\n onHide: () => {\n setFocusControlEl(undefined);\n setSearch('');\n },\n onShow: () => {\n if (searchEleRef.current) {\n setFocusControlEl(searchEleRef.current);\n searchEleRef.current.focus();\n }\n }\n }}\n />\n );\n};\n\n/**\n * The tabs component will take a list of tab data objects and render out a list of tabs in either vertical or horizontal direction.\n * The tabs component handles which tab is active but will give you a callback function that allows you to make changes when a new tab is activated\n */\nconst Tabs: FunctionComponent<TabsProps & ForwardProps> = forwardRef(function Tabs(\n {\n tabs = [],\n type = 'horizontal',\n currentTabId,\n onTabClick,\n ...restProps\n }: PropsWithoutRef<TabsProps>,\n ref: Ref<HTMLElement>\n) {\n const [wrapper, setWrapper] = useElement<HTMLDivElement>();\n const wrapperRef = useConsolidatedRef(ref, setWrapper);\n const { level } = useContext(TabsContext);\n const [hasScrollBar, setHasScrollBar] = useState(false);\n const {\n base: { spacing: themeSpacing },\n components: {\n tabs: { detached: tabsDetached }\n }\n } = useTheme();\n\n // Used to keep a reference for every tab in order to focus them with key presses\n const [tabRefMap, getTabRef] = useRefMap<HTMLButtonElement | HTMLAnchorElement | null>();\n\n // Handles arrow keypresses for changing the focus\n const changeTabFocus = (event: KeyboardEvent, index: number): void => {\n if (tabs.length) {\n const { key } = event;\n if (key === 'ArrowRight' || key === 'ArrowDown') {\n const nextIndex = index + 1 < tabs.length ? index + 1 : 0;\n const nextTab = tabRefMap.get(tabs[nextIndex].id) as HTMLButtonElement;\n\n if (!nextTab?.disabled) {\n nextTab?.focus();\n } else {\n changeTabFocus(event, nextIndex);\n }\n } else if (key === 'ArrowLeft' || key === 'ArrowUp') {\n const prevIndex = index === 0 ? tabs.length - 1 : index - 1;\n const prevTab = tabRefMap.get(tabs[prevIndex].id) as HTMLButtonElement;\n if (!prevTab?.disabled) {\n prevTab?.focus();\n } else {\n changeTabFocus(event, prevIndex);\n }\n }\n }\n };\n\n useAfterInitialEffect(() => {\n const event = new Event('cosmos-tab-changed', { bubbles: true, composed: true });\n wrapperRef.current?.dispatchEvent(event);\n\n const currentTabEl = tabRefMap.get(currentTabId);\n currentTabEl?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }, [currentTabId]);\n\n useEffect(() => {\n const currentTabEl = tabRefMap.get(currentTabId);\n\n if (!currentTabEl || !wrapper) return;\n\n // raf to ensure layout is stable before reading offset values\n const rafId = requestAnimationFrame(() => {\n if (type === 'horizontal') {\n // Horizontal tabs need left position and width for sliding animation\n const left = currentTabEl.offsetLeft;\n const width = currentTabEl.offsetWidth;\n wrapper.style.setProperty('--indicator-left', `${left}px`);\n wrapper.style.setProperty('--indicator-width', `${width}px`);\n } else {\n // Vertical tabs need height and top position for sliding animation\n const height = currentTabEl.offsetHeight;\n const top = currentTabEl.offsetTop;\n wrapper.style.setProperty('--indicator-height', `${height}px`);\n wrapper.style.setProperty('--indicator-top', `${top}px`);\n }\n });\n\n return () => cancelAnimationFrame(rafId);\n }, [\n currentTabId,\n // Track tab identity changes so the indicator recalculates when tabs are inserted or removed.\n // Use \\x1e (ASCII record separator) as delimiter to avoid conflicts with common ID characters.\n tabs.map(tab => tab.id).join('\\x1e'),\n type,\n tabRefMap,\n wrapper,\n tabsDetached,\n themeSpacing\n ]);\n\n useEffect(() => {\n if (!wrapper) return;\n\n const ro = new ResizeObserver(\n debounce(([entry]) => {\n if (!entry?.target.isConnected || !(entry.target instanceof HTMLElement)) return;\n\n setHasScrollBar(entry.target.scrollWidth > entry.target.offsetWidth);\n }, 1)\n );\n\n ro.observe(wrapper);\n\n return () => {\n ro.disconnect();\n };\n }, [wrapper]);\n\n const shouldRenderAllTabsButton = type === 'horizontal' && hasScrollBar;\n\n const TabList = (\n <Flex\n {...restProps}\n container={{\n direction: type !== 'horizontal' ? 'column' : undefined\n }}\n item={{ shrink: 0 }}\n as={StyledTabs}\n ref={wrapperRef}\n role='tablist'\n aria-orientation={type}\n hasScrollBar={hasScrollBar}\n level={level}\n >\n {tabs.map((tab: TabItem, i) => {\n const { href, name, count, id, disabled, errors } = tab;\n const selected = id === currentTabId;\n\n return (\n <Fragment key={id}>\n {level > 1 && !tabsDetached && (\n <StyledSeparator\n transparent={\n selected ||\n (i === 0 ? !shouldRenderAllTabsButton : tabs[i - 1].id === currentTabId)\n }\n />\n )}\n <Tab\n id={id}\n aria-selected={selected}\n aria-controls={`${id}-panel`}\n content={name}\n count={count}\n href={href}\n selected={selected}\n onClick={(event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n onTabClick?.(id, event);\n }}\n role='tab'\n ref={getTabRef(id)}\n onKeyDown={(e: KeyboardEvent) => {\n if (['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n changeTabFocus(e, i);\n }\n }}\n as={href ? Link : undefined}\n tabIndex={selected ? undefined : -1}\n aria-label={name}\n type={type}\n disabled={disabled}\n errors={errors}\n />\n </Fragment>\n );\n })}\n </Flex>\n );\n\n return shouldRenderAllTabsButton ? (\n <Flex container={{ alignItems: 'stretch' }} as={StyledAllTabsWrapper} level={level}>\n <Flex container as={StylesAllTabsButtonWrapper}>\n <AllTabsButton\n tabs={tabs}\n tabRefMap={tabRefMap}\n currentTabId={currentTabId}\n onTabClick={onTabClick}\n />\n </Flex>\n {TabList}\n </Flex>\n ) : (\n TabList\n );\n});\n\nexport default Tabs;\n"]}
|
package/lib/theme/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export { default as StudioTheme } from './themes/studioTheme.json';
|
|
|
20
20
|
export { default as StudioDarkTheme } from './themes/studioDarkTheme.json';
|
|
21
21
|
export { default as VirgoTheme } from './themes/virgoTheme.json';
|
|
22
22
|
export { default as VirgoDarkTheme } from './themes/virgoDarkTheme.json';
|
|
23
|
+
export { default as VelaTheme } from './themes/velaTheme.json';
|
|
24
|
+
export { default as VelaDarkTheme } from './themes/velaDarkTheme.json';
|
|
23
25
|
export { default as OrionTheme } from './themes/orionTheme.json';
|
|
24
26
|
export { default as OrionDarkTheme } from './themes/orionDarkTheme.json';
|
|
25
27
|
export { default as AurigaTheme } from './themes/aurigaTheme.json';
|
package/lib/theme/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
|
package/lib/theme/index.js
CHANGED
|
@@ -20,6 +20,8 @@ export { default as StudioTheme } from './themes/studioTheme.json';
|
|
|
20
20
|
export { default as StudioDarkTheme } from './themes/studioDarkTheme.json';
|
|
21
21
|
export { default as VirgoTheme } from './themes/virgoTheme.json';
|
|
22
22
|
export { default as VirgoDarkTheme } from './themes/virgoDarkTheme.json';
|
|
23
|
+
export { default as VelaTheme } from './themes/velaTheme.json';
|
|
24
|
+
export { default as VelaDarkTheme } from './themes/velaDarkTheme.json';
|
|
23
25
|
export { default as OrionTheme } from './themes/orionTheme.json';
|
|
24
26
|
export { default as OrionDarkTheme } from './themes/orionDarkTheme.json';
|
|
25
27
|
export { default as AurigaTheme } from './themes/aurigaTheme.json';
|
package/lib/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC","sourcesContent":["export * from './theme';\nexport { default as ThemeMachine } from './ThemeMachine';\nexport * from './ThemeMachine';\nexport { default as Aries2023Theme } from './themes/aries2023Theme.json';\nexport { default as Aries2023DarkTheme } from './themes/aries2023DarkTheme.json';\nexport { default as Andromeda2025Theme } from './themes/andromeda2025Theme.json';\nexport { default as Bootes2025Theme } from './themes/bootes2025Theme.json';\nexport { default as Bootes2025DarkTheme } from './themes/bootes2025DarkTheme.json';\nexport { default as Cygnus2025Theme } from './themes/cygnus2025Theme.json';\nexport { default as Dorado2025Theme } from './themes/dorado2025Theme.json';\nexport { default as Equuleus2025Theme } from './themes/equuleus2025Theme.json';\nexport { default as LargeTextTheme } from './themes/largeTextTheme.json';\nexport { default as SmallTextTheme } from './themes/smallTextTheme.json';\nexport { default as BuildTheme } from './themes/buildTheme.json';\nexport { default as LegacyBuildTheme } from './themes/legacyBuildTheme.json';\nexport { default as DarkTheme } from './themes/darkTheme.json';\nexport { default as HubbleTheme } from './themes/hubbleTheme.json';\nexport { default as SquareTheme } from './themes/squareTheme.json';\nexport { default as StudioTheme } from './themes/studioTheme.json';\nexport { default as StudioDarkTheme } from './themes/studioDarkTheme.json';\nexport { default as VirgoTheme } from './themes/virgoTheme.json';\nexport { default as VirgoDarkTheme } from './themes/virgoDarkTheme.json';\nexport { default as OrionTheme } from './themes/orionTheme.json';\nexport { default as OrionDarkTheme } from './themes/orionDarkTheme.json';\nexport { default as AurigaTheme } from './themes/aurigaTheme.json';\nexport { default as AurigaDarkTheme } from './themes/aurigaDarkTheme.json';\nexport { default as WSSTheme } from './themes/wssTheme.json';\nexport { default as pastelTheme } from './themes/pastelTheme.json';\nexport { default as vibrantTheme } from './themes/vibrantTheme.json';\nexport { default as elegantTheme } from './themes/elegantTheme.json';\nexport { default as artisticTheme } from './themes/artisticTheme.json';\nexport { default as vibrantDarkTheme } from './themes/vibrantDarkTheme.json';\nexport { default as elegantDarkTheme } from './themes/elegantDarkTheme.json';\nexport { default as artisticExpressionismTheme } from './themes/artisticExpressionismTheme.json';\nexport { default as conciergeTheme } from './themes/conciergeTheme.json';\nexport { default as conciergeDarkTheme } from './themes/conciergeDarkTheme.json';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC","sourcesContent":["export * from './theme';\nexport { default as ThemeMachine } from './ThemeMachine';\nexport * from './ThemeMachine';\nexport { default as Aries2023Theme } from './themes/aries2023Theme.json';\nexport { default as Aries2023DarkTheme } from './themes/aries2023DarkTheme.json';\nexport { default as Andromeda2025Theme } from './themes/andromeda2025Theme.json';\nexport { default as Bootes2025Theme } from './themes/bootes2025Theme.json';\nexport { default as Bootes2025DarkTheme } from './themes/bootes2025DarkTheme.json';\nexport { default as Cygnus2025Theme } from './themes/cygnus2025Theme.json';\nexport { default as Dorado2025Theme } from './themes/dorado2025Theme.json';\nexport { default as Equuleus2025Theme } from './themes/equuleus2025Theme.json';\nexport { default as LargeTextTheme } from './themes/largeTextTheme.json';\nexport { default as SmallTextTheme } from './themes/smallTextTheme.json';\nexport { default as BuildTheme } from './themes/buildTheme.json';\nexport { default as LegacyBuildTheme } from './themes/legacyBuildTheme.json';\nexport { default as DarkTheme } from './themes/darkTheme.json';\nexport { default as HubbleTheme } from './themes/hubbleTheme.json';\nexport { default as SquareTheme } from './themes/squareTheme.json';\nexport { default as StudioTheme } from './themes/studioTheme.json';\nexport { default as StudioDarkTheme } from './themes/studioDarkTheme.json';\nexport { default as VirgoTheme } from './themes/virgoTheme.json';\nexport { default as VirgoDarkTheme } from './themes/virgoDarkTheme.json';\nexport { default as VelaTheme } from './themes/velaTheme.json';\nexport { default as VelaDarkTheme } from './themes/velaDarkTheme.json';\nexport { default as OrionTheme } from './themes/orionTheme.json';\nexport { default as OrionDarkTheme } from './themes/orionDarkTheme.json';\nexport { default as AurigaTheme } from './themes/aurigaTheme.json';\nexport { default as AurigaDarkTheme } from './themes/aurigaDarkTheme.json';\nexport { default as WSSTheme } from './themes/wssTheme.json';\nexport { default as pastelTheme } from './themes/pastelTheme.json';\nexport { default as vibrantTheme } from './themes/vibrantTheme.json';\nexport { default as elegantTheme } from './themes/elegantTheme.json';\nexport { default as artisticTheme } from './themes/artisticTheme.json';\nexport { default as vibrantDarkTheme } from './themes/vibrantDarkTheme.json';\nexport { default as elegantDarkTheme } from './themes/elegantDarkTheme.json';\nexport { default as artisticExpressionismTheme } from './themes/artisticExpressionismTheme.json';\nexport { default as conciergeTheme } from './themes/conciergeTheme.json';\nexport { default as conciergeDarkTheme } from './themes/conciergeDarkTheme.json';\n"]}
|
|
@@ -57,6 +57,22 @@
|
|
|
57
57
|
"icon": {
|
|
58
58
|
"background": "linear-gradient(45deg, var(--gradient-start), var(--gradient-mid), var(--gradient-end))"
|
|
59
59
|
},
|
|
60
|
+
"stages": {
|
|
61
|
+
"status": {
|
|
62
|
+
"completed": {
|
|
63
|
+
"background": "#31493c",
|
|
64
|
+
"foreground-color": "#a9efb6"
|
|
65
|
+
},
|
|
66
|
+
"current": {
|
|
67
|
+
"background": "#add4fb",
|
|
68
|
+
"foreground-color": "auto"
|
|
69
|
+
},
|
|
70
|
+
"pending": {
|
|
71
|
+
"background": "#313749",
|
|
72
|
+
"foreground-color": "auto"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
60
76
|
"summary": {
|
|
61
77
|
"detached": true
|
|
62
78
|
},
|
|
@@ -78,7 +94,7 @@
|
|
|
78
94
|
"border-radius": 0.5,
|
|
79
95
|
"color": "#add4fb",
|
|
80
96
|
"secondary-color": "#add4fb",
|
|
81
|
-
"foreground-color": "
|
|
97
|
+
"foreground-color": "auto",
|
|
82
98
|
"height": "2.5rem"
|
|
83
99
|
},
|
|
84
100
|
"form-control": {
|
|
@@ -87,7 +103,10 @@
|
|
|
87
103
|
":hover": {
|
|
88
104
|
"border-color": "#add4fb"
|
|
89
105
|
},
|
|
90
|
-
"background-color": "#191C24"
|
|
106
|
+
"background-color": "#191C24",
|
|
107
|
+
":read-only": {
|
|
108
|
+
"background-color": "#41475c"
|
|
109
|
+
}
|
|
91
110
|
},
|
|
92
111
|
"icon": {
|
|
93
112
|
"border-radius-multiplier": "99"
|
|
@@ -56,6 +56,18 @@
|
|
|
56
56
|
"icon": {
|
|
57
57
|
"background": "linear-gradient(45deg, var(--gradient-start), var(--gradient-mid), var(--gradient-end))"
|
|
58
58
|
},
|
|
59
|
+
"stages": {
|
|
60
|
+
"status": {
|
|
61
|
+
"completed": {
|
|
62
|
+
"background": "#f6fef6",
|
|
63
|
+
"foreground-color": "#0b6a2b"
|
|
64
|
+
},
|
|
65
|
+
"current": {
|
|
66
|
+
"background": "#3f57e4",
|
|
67
|
+
"foreground-color": "#ffffff"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
59
71
|
"summary": {
|
|
60
72
|
"detached": true
|
|
61
73
|
},
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
{
|
|
2
|
+
"base": {
|
|
3
|
+
"border-radius": "0.75rem",
|
|
4
|
+
"font-family": "'Open Sans', sans-serif",
|
|
5
|
+
"font-size": "1rem",
|
|
6
|
+
"font-scale": "majorSecond",
|
|
7
|
+
"palette": {
|
|
8
|
+
"app-background": "linear-gradient(180deg, #101c19 0%, #0b1613 100%)",
|
|
9
|
+
"secondary-background": "#33473f",
|
|
10
|
+
"interactive": "#7fe0c4",
|
|
11
|
+
"foreground-color": "#ffffff",
|
|
12
|
+
"dark": "#ffffff",
|
|
13
|
+
"border-line": "#4a5f57",
|
|
14
|
+
"primary-background": "#1c2a26"
|
|
15
|
+
},
|
|
16
|
+
"line-height": "1.28",
|
|
17
|
+
"case-type-colors": "ignored",
|
|
18
|
+
"spacing": "0.8357rem",
|
|
19
|
+
"icon-set": "streamline"
|
|
20
|
+
},
|
|
21
|
+
"components": {
|
|
22
|
+
"agent": {
|
|
23
|
+
"background": "linear-gradient(45deg, #422e6b 0%, #2c3249 100%)",
|
|
24
|
+
"user-message": {
|
|
25
|
+
"background": "#AD81E41a",
|
|
26
|
+
"foreground-color": "#ffffff"
|
|
27
|
+
},
|
|
28
|
+
"foreground-color": "#ffffff",
|
|
29
|
+
"history": {
|
|
30
|
+
"item": {
|
|
31
|
+
"selected-background": "#515c7b"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"questionnaire": {
|
|
35
|
+
"background": "#181b2580"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"app-shell": {
|
|
39
|
+
"nav": {
|
|
40
|
+
"detached": true,
|
|
41
|
+
"background": "#101c19",
|
|
42
|
+
"border-color": "transparent",
|
|
43
|
+
"create-button-background": "#1c2a26",
|
|
44
|
+
"nested-list-background": "#1c2a26",
|
|
45
|
+
"expand-button": {
|
|
46
|
+
"background": "#26362f",
|
|
47
|
+
"foreground-color": "#ffffff"
|
|
48
|
+
},
|
|
49
|
+
"item-border-radius": "0.5rem",
|
|
50
|
+
"selected-background": "#33473f"
|
|
51
|
+
},
|
|
52
|
+
"header": {
|
|
53
|
+
"border-color": "transparent"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"case-view": {
|
|
57
|
+
"icon": {
|
|
58
|
+
"color": "#D8EFE7",
|
|
59
|
+
"background": "#007458"
|
|
60
|
+
},
|
|
61
|
+
"summary": {
|
|
62
|
+
"detached": true
|
|
63
|
+
},
|
|
64
|
+
"assignments": {
|
|
65
|
+
"detached": true,
|
|
66
|
+
"background": "#26362f"
|
|
67
|
+
},
|
|
68
|
+
"stages": {
|
|
69
|
+
"status": {
|
|
70
|
+
"completed": {
|
|
71
|
+
"background": "#16281c",
|
|
72
|
+
"foreground-color": "#8be3a5"
|
|
73
|
+
},
|
|
74
|
+
"current": {
|
|
75
|
+
"background": "#7fe0c4",
|
|
76
|
+
"foreground-color": "#0b1613"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"header": {
|
|
81
|
+
"background": "transparent",
|
|
82
|
+
"foreground-color": "#fff"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"card": {
|
|
86
|
+
"background": "#1c2a26",
|
|
87
|
+
"border-radius": ".75rem",
|
|
88
|
+
"foreground-color": "#ffffff"
|
|
89
|
+
},
|
|
90
|
+
"button": {
|
|
91
|
+
"border-radius": 0.5,
|
|
92
|
+
"color": "#7fe0c4",
|
|
93
|
+
"secondary-color": "#7fe0c4",
|
|
94
|
+
"foreground-color": "#1C2A26",
|
|
95
|
+
"height": "2.5rem"
|
|
96
|
+
},
|
|
97
|
+
"form-control": {
|
|
98
|
+
"border-radius": 0.5,
|
|
99
|
+
"border-color": "#5c7369",
|
|
100
|
+
":hover": {
|
|
101
|
+
"border-color": "#7fe0c4"
|
|
102
|
+
},
|
|
103
|
+
"background-color": "#12201d",
|
|
104
|
+
":read-only": {
|
|
105
|
+
"background-color": "#44564E"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"icon": {
|
|
109
|
+
"border-radius-multiplier": "99"
|
|
110
|
+
},
|
|
111
|
+
"tabs": {
|
|
112
|
+
"detached": true
|
|
113
|
+
},
|
|
114
|
+
"announcement": {
|
|
115
|
+
"background": "#26362f",
|
|
116
|
+
"foreground-color": "#ffffff"
|
|
117
|
+
},
|
|
118
|
+
"avatar": {
|
|
119
|
+
"background-color": "#3f8a76"
|
|
120
|
+
},
|
|
121
|
+
"table": {
|
|
122
|
+
"header": {
|
|
123
|
+
"background-color": "#33473f",
|
|
124
|
+
"border-color": "transparent"
|
|
125
|
+
},
|
|
126
|
+
"body": {
|
|
127
|
+
"border-color": "transparent",
|
|
128
|
+
"secondary-background-color": "#26362f"
|
|
129
|
+
},
|
|
130
|
+
"spacing": {
|
|
131
|
+
"horizontal-inner": true
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"label": {
|
|
135
|
+
"foreground-color": "#ffffffb3"
|
|
136
|
+
},
|
|
137
|
+
"progress": {
|
|
138
|
+
"progress-color": "#7fe0c4"
|
|
139
|
+
},
|
|
140
|
+
"select": {
|
|
141
|
+
"border-color": "#5c7369",
|
|
142
|
+
"height": "2.5rem"
|
|
143
|
+
},
|
|
144
|
+
"summary-item": {
|
|
145
|
+
"vertical-gap": "0.25rem"
|
|
146
|
+
},
|
|
147
|
+
"tasks": {
|
|
148
|
+
"button-style": "icon"
|
|
149
|
+
},
|
|
150
|
+
"input": {
|
|
151
|
+
"height": "2.5rem",
|
|
152
|
+
"background-color": "#12201d"
|
|
153
|
+
},
|
|
154
|
+
"text": {
|
|
155
|
+
"h1": {
|
|
156
|
+
"font-family": "Lora, serif"
|
|
157
|
+
},
|
|
158
|
+
"h2": {
|
|
159
|
+
"font-family": "Lora, serif"
|
|
160
|
+
},
|
|
161
|
+
"h3": {
|
|
162
|
+
"font-family": "Lora, serif"
|
|
163
|
+
},
|
|
164
|
+
"h4": {
|
|
165
|
+
"font-family": "Lora, serif"
|
|
166
|
+
},
|
|
167
|
+
"h5": {
|
|
168
|
+
"font-family": "Lora, serif"
|
|
169
|
+
},
|
|
170
|
+
"h6": {
|
|
171
|
+
"font-family": "Lora, serif"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"base": {
|
|
3
|
+
"border-radius": "0.75rem",
|
|
4
|
+
"font-family": "'Open Sans', sans-serif",
|
|
5
|
+
"font-size": "1rem",
|
|
6
|
+
"font-scale": "majorSecond",
|
|
7
|
+
"palette": {
|
|
8
|
+
"app-background": "linear-gradient(180deg, #f3fbf8 0%, #d5f0e6 100%)",
|
|
9
|
+
"secondary-background": "#e0f5ef",
|
|
10
|
+
"interactive": "#007458",
|
|
11
|
+
"foreground-color": "#044548",
|
|
12
|
+
"dark": "#003B70",
|
|
13
|
+
"border-line": "#c8d0d8"
|
|
14
|
+
},
|
|
15
|
+
"line-height": "1.28",
|
|
16
|
+
"case-type-colors": "ignored",
|
|
17
|
+
"spacing": "0.8357rem",
|
|
18
|
+
"icon-set": "streamline"
|
|
19
|
+
},
|
|
20
|
+
"components": {
|
|
21
|
+
"agent": {
|
|
22
|
+
"background": "linear-gradient(90deg, #f7f5ff 0%, #eff6fe 100%)",
|
|
23
|
+
"user-message": {
|
|
24
|
+
"background": "#681fc31a",
|
|
25
|
+
"foreground-color": "#001d54"
|
|
26
|
+
},
|
|
27
|
+
"foreground-color": "#001d54",
|
|
28
|
+
"history": {
|
|
29
|
+
"item": {
|
|
30
|
+
"selected-background": "#cfd5e2"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"questionnaire": {
|
|
34
|
+
"background": "#ffffff"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"app-shell": {
|
|
38
|
+
"nav": {
|
|
39
|
+
"detached": true,
|
|
40
|
+
"background": "#e0f5ef",
|
|
41
|
+
"border-color": "transparent",
|
|
42
|
+
"create-button-background": "#f5f5fc",
|
|
43
|
+
"nested-list-background": "#f5f5fc",
|
|
44
|
+
"expand-button": {
|
|
45
|
+
"background": "#cfd5e2",
|
|
46
|
+
"foreground-color": "#001F5F"
|
|
47
|
+
},
|
|
48
|
+
"item-border-radius": "0.5rem",
|
|
49
|
+
"selected-background": "#f5f5fc"
|
|
50
|
+
},
|
|
51
|
+
"header": {
|
|
52
|
+
"border-color": "#ededee"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"case-view": {
|
|
56
|
+
"icon": {
|
|
57
|
+
"color": "#007458",
|
|
58
|
+
"background": "#D8EFE7"
|
|
59
|
+
},
|
|
60
|
+
"summary": {
|
|
61
|
+
"detached": true
|
|
62
|
+
},
|
|
63
|
+
"assignments": {
|
|
64
|
+
"detached": true,
|
|
65
|
+
"background": "#fff"
|
|
66
|
+
},
|
|
67
|
+
"stages": {
|
|
68
|
+
"status": {
|
|
69
|
+
"completed": {
|
|
70
|
+
"background": "#f6fef6",
|
|
71
|
+
"foreground-color": "#0b6a2b"
|
|
72
|
+
},
|
|
73
|
+
"current": {
|
|
74
|
+
"background": "#007458",
|
|
75
|
+
"foreground-color": "#ffffff"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"header": {
|
|
80
|
+
"background": "transparent",
|
|
81
|
+
"foreground-color": "#001f5f"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"card": {
|
|
85
|
+
"background": "#FFF",
|
|
86
|
+
"border-radius": ".75rem",
|
|
87
|
+
"foreground-color": "#044548"
|
|
88
|
+
},
|
|
89
|
+
"button": {
|
|
90
|
+
"border-radius": 0.5,
|
|
91
|
+
"color": "#007458",
|
|
92
|
+
"secondary-color": "#007458",
|
|
93
|
+
"foreground-color": "#FFF",
|
|
94
|
+
"height": "2.5rem"
|
|
95
|
+
},
|
|
96
|
+
"form-control": {
|
|
97
|
+
"border-radius": 0.5,
|
|
98
|
+
"border-color": "#8a8a8a",
|
|
99
|
+
":hover": {
|
|
100
|
+
"border-color": "#007458"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"icon": {
|
|
104
|
+
"border-radius-multiplier": "99"
|
|
105
|
+
},
|
|
106
|
+
"tabs": {
|
|
107
|
+
"detached": true
|
|
108
|
+
},
|
|
109
|
+
"announcement": {
|
|
110
|
+
"background": "white",
|
|
111
|
+
"foreground-color": "#044548"
|
|
112
|
+
},
|
|
113
|
+
"avatar": {
|
|
114
|
+
"background-color": "#044548"
|
|
115
|
+
},
|
|
116
|
+
"table": {
|
|
117
|
+
"header": {
|
|
118
|
+
"background-color": "#cee8e1",
|
|
119
|
+
"border-color": "transparent"
|
|
120
|
+
},
|
|
121
|
+
"body": {
|
|
122
|
+
"border-color": "transparent",
|
|
123
|
+
"secondary-background-color": "#E5F5EF"
|
|
124
|
+
},
|
|
125
|
+
"spacing": {
|
|
126
|
+
"horizontal-inner": true
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"label": {
|
|
130
|
+
"foreground-color": "rgba(4,69,72,0.7)"
|
|
131
|
+
},
|
|
132
|
+
"progress": {
|
|
133
|
+
"progress-color": "#007458"
|
|
134
|
+
},
|
|
135
|
+
"select": {
|
|
136
|
+
"border-color": "#8a8a8a",
|
|
137
|
+
"height": "2.5rem"
|
|
138
|
+
},
|
|
139
|
+
"summary-item": {
|
|
140
|
+
"vertical-gap": "0.25rem"
|
|
141
|
+
},
|
|
142
|
+
"tasks": {
|
|
143
|
+
"button-style": "icon"
|
|
144
|
+
},
|
|
145
|
+
"input": {
|
|
146
|
+
"height": "2.5rem"
|
|
147
|
+
},
|
|
148
|
+
"text": {
|
|
149
|
+
"h1": {
|
|
150
|
+
"font-family": "Lora, serif"
|
|
151
|
+
},
|
|
152
|
+
"h2": {
|
|
153
|
+
"font-family": "Lora, serif"
|
|
154
|
+
},
|
|
155
|
+
"h3": {
|
|
156
|
+
"font-family": "Lora, serif"
|
|
157
|
+
},
|
|
158
|
+
"h4": {
|
|
159
|
+
"font-family": "Lora, serif"
|
|
160
|
+
},
|
|
161
|
+
"h5": {
|
|
162
|
+
"font-family": "Lora, serif"
|
|
163
|
+
},
|
|
164
|
+
"h6": {
|
|
165
|
+
"font-family": "Lora, serif"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-core",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.23.0",
|
|
4
4
|
"description": "Cosmos is a visual design system and UI component collection. Its goal is to empower application developers in their pursuit to create engaging and rewarding user experiences.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Pegasystems",
|