@atlaskit/smart-card 16.3.0 → 17.2.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/CHANGELOG.md +118 -0
- package/dist/cjs/classNames.js +105 -0
- package/dist/cjs/client/api.js +6 -4
- package/dist/cjs/client/errors.js +3 -1
- package/dist/cjs/client/types/responses.js +1 -1
- package/dist/cjs/client/utils/environments.js +1 -1
- package/dist/cjs/constants.js +158 -0
- package/dist/cjs/extractors/block/index.js +3 -3
- package/dist/cjs/extractors/common/actions/extractActions.js +7 -5
- package/dist/cjs/extractors/common/actions/extractPreviewAction.js +5 -5
- package/dist/cjs/extractors/common/byline/extractByline.js +17 -5
- package/dist/cjs/extractors/common/context/extractAccessContext.js +9 -7
- package/dist/cjs/extractors/common/lozenge/utils.js +1 -1
- package/dist/cjs/extractors/common/utils.js +1 -1
- package/dist/cjs/extractors/constants.js +1 -1
- package/dist/cjs/extractors/embed/index.js +2 -2
- package/dist/cjs/extractors/flexible/collaboratorGroup/index.js +20 -0
- package/dist/cjs/extractors/flexible/extract-priority.js +49 -0
- package/dist/cjs/extractors/flexible/icon/extract-document-type-icon.js +39 -0
- package/dist/cjs/extractors/flexible/icon/extract-file-formatIcon.js +116 -0
- package/dist/cjs/extractors/flexible/icon/extract-icon-renderer.js +28 -0
- package/dist/cjs/extractors/flexible/icon/extract-jira-task-icon.js +45 -0
- package/dist/cjs/extractors/flexible/icon/extract-jsonld-data-icon.js +123 -0
- package/dist/cjs/extractors/flexible/icon/extract-provider-icon.js +29 -0
- package/dist/cjs/extractors/flexible/icon/extract-url-icon.js +16 -0
- package/dist/cjs/extractors/flexible/icon/index.js +82 -0
- package/dist/cjs/extractors/flexible/icon/types.js +5 -0
- package/dist/cjs/extractors/flexible/index.js +54 -0
- package/dist/cjs/extractors/flexible/utils.js +50 -0
- package/dist/cjs/in-product.js +8 -8
- package/dist/cjs/index.js +99 -47
- package/dist/cjs/messages.js +137 -0
- package/dist/cjs/providers/editor/transformer.js +1 -1
- package/dist/cjs/ssr.js +45 -0
- package/dist/cjs/state/actions/constants.js +1 -1
- package/dist/cjs/state/analytics/index.js +8 -8
- package/dist/cjs/state/analytics/ufoExperiences.js +1 -1
- package/dist/cjs/state/context/index.js +3 -2
- package/dist/cjs/state/flexible-ui-context/index.js +17 -0
- package/dist/cjs/state/flexible-ui-context/types.js +5 -0
- package/dist/cjs/state/helpers.js +1 -1
- package/dist/cjs/state/index.js +4 -4
- package/dist/cjs/state/reducers/index.js +2 -2
- package/dist/cjs/utils/analytics/analytics.js +3 -3
- package/dist/cjs/utils/analytics/index.js +29 -29
- package/dist/cjs/utils/flexible.js +54 -0
- package/dist/cjs/utils/index.js +18 -2
- package/dist/cjs/utils/mocks.js +1 -1
- package/dist/cjs/utils/performance.js +1 -1
- package/dist/cjs/utils/token.js +34 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/BlockCard/actions/AuthorizeAction.js +29 -0
- package/dist/cjs/view/BlockCard/actions/DownloadAction.js +69 -0
- package/dist/cjs/view/BlockCard/actions/ForbiddenAction.js +38 -0
- package/dist/cjs/view/BlockCard/actions/PreviewAction.js +134 -0
- package/dist/cjs/view/BlockCard/actions/RetryAction.js +49 -0
- package/dist/cjs/view/BlockCard/actions/ViewAction.js +67 -0
- package/dist/cjs/view/BlockCard/components/Action.js +70 -0
- package/dist/cjs/view/BlockCard/components/ActionIcon.js +57 -0
- package/dist/cjs/view/BlockCard/components/ActionList.js +75 -0
- package/dist/cjs/view/BlockCard/components/Byline.js +46 -0
- package/dist/cjs/view/BlockCard/components/CollaboratorList.js +53 -0
- package/dist/cjs/view/BlockCard/components/Content.js +33 -0
- package/dist/cjs/view/BlockCard/components/ContentFooter.js +33 -0
- package/dist/cjs/view/BlockCard/components/ContentHeader.js +34 -0
- package/dist/cjs/view/BlockCard/components/Emoji.js +31 -0
- package/dist/cjs/view/BlockCard/components/Frame.js +95 -0
- package/dist/cjs/view/BlockCard/components/Icon.js +60 -0
- package/dist/cjs/view/BlockCard/components/Link.js +28 -0
- package/dist/cjs/view/BlockCard/components/Metadata.js +60 -0
- package/dist/cjs/view/BlockCard/components/MetadataList.js +43 -0
- package/dist/cjs/view/BlockCard/components/Modal.js +132 -0
- package/dist/cjs/view/BlockCard/components/ModalHeader.js +111 -0
- package/dist/cjs/view/BlockCard/components/Name.js +47 -0
- package/dist/cjs/view/BlockCard/components/Provider.js +49 -0
- package/dist/cjs/view/BlockCard/components/Thumbnail.js +71 -0
- package/dist/cjs/view/BlockCard/components/UnresolvedText.js +22 -0
- package/dist/cjs/view/BlockCard/index.js +83 -11
- package/dist/cjs/view/BlockCard/utils/constants.js +13 -0
- package/dist/cjs/view/BlockCard/utils/handlers.js +16 -0
- package/dist/cjs/view/BlockCard/utils/index.js +27 -0
- package/dist/cjs/view/BlockCard/views/ErroredView.js +100 -0
- package/dist/cjs/view/BlockCard/views/ForbiddenView.js +112 -0
- package/dist/cjs/view/BlockCard/views/NotFoundView.js +96 -0
- package/dist/cjs/view/BlockCard/views/ResolvedView.js +144 -0
- package/dist/cjs/view/BlockCard/views/ResolvingView.js +55 -0
- package/dist/cjs/view/BlockCard/views/UnauthorizedView.js +93 -0
- package/dist/cjs/view/Card/index.js +9 -2
- package/dist/cjs/view/CardWithData/component.js +6 -4
- package/dist/cjs/view/CardWithUrl/component-lazy/LazyFallback.js +3 -3
- package/dist/cjs/view/CardWithUrl/component.js +19 -1
- package/dist/cjs/view/CardWithUrl/loader.js +9 -6
- package/dist/cjs/view/EmbedCard/EmbedResizeMessageListener.js +2 -2
- package/dist/cjs/view/EmbedCard/components/ExpandedFrame.js +93 -0
- package/dist/cjs/view/EmbedCard/components/Frame.js +65 -0
- package/dist/cjs/view/EmbedCard/components/ImageIcon.js +44 -0
- package/dist/cjs/view/EmbedCard/components/styled.js +187 -0
- package/dist/cjs/view/EmbedCard/index.js +22 -12
- package/dist/cjs/view/EmbedCard/views/ErroredView.js +66 -0
- package/dist/cjs/view/EmbedCard/views/ForbiddenView.js +85 -0
- package/dist/cjs/view/EmbedCard/views/NotFoundView.js +51 -0
- package/dist/cjs/view/EmbedCard/views/ResolvedView.js +75 -0
- package/dist/cjs/view/EmbedCard/views/UnauthorisedView.js +58 -0
- package/dist/cjs/view/EmbedCard/views/UnresolvedView.js +83 -0
- package/dist/cjs/view/FlexibleCard/components/actions/delete-action/index.js +83 -0
- package/dist/cjs/view/FlexibleCard/components/actions/index.js +16 -0
- package/dist/cjs/view/FlexibleCard/components/actions/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/actions/utils.js +70 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +37 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/block/index.js +42 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.js +60 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/element-group/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/index.js +23 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +102 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/errored/index.js +81 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/index.js +58 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/resolved/index.js +65 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/resolving/index.js +68 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +151 -0
- package/dist/cjs/view/FlexibleCard/components/common/atlaskit-icon/index.js +326 -0
- package/dist/cjs/view/FlexibleCard/components/common/atlaskit-icon/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/common/image-icon/index.js +42 -0
- package/dist/cjs/view/FlexibleCard/components/common/image-icon/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/container/index.js +104 -0
- package/dist/cjs/view/FlexibleCard/components/container/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +42 -0
- package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/badge/index.js +97 -0
- package/dist/cjs/view/FlexibleCard/components/elements/badge/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/date-time/index.js +68 -0
- package/dist/cjs/view/FlexibleCard/components/elements/date-time/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +125 -0
- package/dist/cjs/view/FlexibleCard/components/elements/icon/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/index.js +40 -0
- package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +85 -0
- package/dist/cjs/view/FlexibleCard/components/elements/link/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/index.js +44 -0
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +42 -0
- package/dist/cjs/view/FlexibleCard/components/elements/text/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/utils.js +170 -0
- package/dist/cjs/view/FlexibleCard/components/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/utils.js +84 -0
- package/dist/cjs/view/FlexibleCard/index.js +41 -0
- package/dist/cjs/view/FlexibleCard/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/utils.js +119 -0
- package/dist/cjs/view/InlineCard/ErroredView/index.js +122 -0
- package/dist/cjs/view/InlineCard/ForbiddenView/index.js +148 -0
- package/dist/cjs/view/InlineCard/Frame/index.js +71 -0
- package/dist/cjs/view/InlineCard/Frame/styled.js +96 -0
- package/dist/cjs/view/InlineCard/Icon.js +37 -0
- package/dist/cjs/view/InlineCard/IconAndTitleLayout/index.js +140 -0
- package/dist/cjs/view/InlineCard/IconAndTitleLayout/styled.js +76 -0
- package/dist/cjs/view/InlineCard/ResolvedView/index.js +88 -0
- package/dist/cjs/view/InlineCard/ResolvingView/index.js +91 -0
- package/dist/cjs/view/InlineCard/ResolvingView/styled.js +19 -0
- package/dist/cjs/view/InlineCard/UnauthorisedView/index.js +118 -0
- package/dist/cjs/view/InlineCard/index.js +48 -8
- package/dist/cjs/view/InlineCard/styled.js +43 -0
- package/dist/cjs/view/LinkView/index.js +51 -0
- package/dist/cjs/view/types.js +5 -0
- package/dist/es2019/classNames.js +11 -0
- package/dist/es2019/constants.js +142 -0
- package/dist/es2019/extractors/common/actions/extractActions.js +2 -1
- package/dist/es2019/extractors/common/actions/extractPreviewAction.js +1 -1
- package/dist/es2019/extractors/common/byline/extractByline.js +16 -5
- package/dist/es2019/extractors/common/context/extractAccessContext.js +2 -1
- package/dist/es2019/extractors/flexible/collaboratorGroup/index.js +10 -0
- package/dist/es2019/extractors/flexible/extract-priority.js +39 -0
- package/dist/es2019/extractors/flexible/icon/extract-document-type-icon.js +31 -0
- package/dist/es2019/extractors/flexible/icon/extract-file-formatIcon.js +108 -0
- package/dist/es2019/extractors/flexible/icon/extract-icon-renderer.js +16 -0
- package/dist/es2019/extractors/flexible/icon/extract-jira-task-icon.js +35 -0
- package/dist/es2019/extractors/flexible/icon/extract-jsonld-data-icon.js +96 -0
- package/dist/es2019/extractors/flexible/icon/extract-provider-icon.js +17 -0
- package/dist/es2019/extractors/flexible/icon/extract-url-icon.js +8 -0
- package/dist/es2019/extractors/flexible/icon/index.js +52 -0
- package/dist/es2019/extractors/flexible/icon/types.js +1 -0
- package/dist/es2019/extractors/flexible/index.js +36 -0
- package/dist/es2019/extractors/flexible/utils.js +23 -0
- package/dist/es2019/index.js +6 -3
- package/dist/es2019/messages.js +128 -0
- package/dist/es2019/providers/editor/transformer.js +1 -1
- package/dist/es2019/ssr.js +19 -0
- package/dist/es2019/state/flexible-ui-context/index.js +3 -0
- package/dist/es2019/state/flexible-ui-context/types.js +1 -0
- package/dist/es2019/utils/flexible.js +14 -0
- package/dist/es2019/utils/index.js +6 -0
- package/dist/es2019/utils/token.js +23 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/BlockCard/actions/AuthorizeAction.js +9 -0
- package/dist/es2019/view/BlockCard/actions/DownloadAction.js +22 -0
- package/dist/es2019/view/BlockCard/actions/ForbiddenAction.js +14 -0
- package/dist/es2019/view/BlockCard/actions/PreviewAction.js +70 -0
- package/dist/es2019/view/BlockCard/actions/RetryAction.js +8 -0
- package/dist/es2019/view/BlockCard/actions/ViewAction.js +21 -0
- package/dist/es2019/view/BlockCard/components/Action.js +42 -0
- package/dist/es2019/view/BlockCard/components/ActionIcon.js +42 -0
- package/dist/es2019/view/BlockCard/components/ActionList.js +42 -0
- package/dist/es2019/view/BlockCard/components/Byline.js +33 -0
- package/dist/es2019/view/BlockCard/components/CollaboratorList.js +36 -0
- package/dist/es2019/view/BlockCard/components/Content.js +18 -0
- package/dist/es2019/view/BlockCard/components/ContentFooter.js +18 -0
- package/dist/es2019/view/BlockCard/components/ContentHeader.js +21 -0
- package/dist/es2019/view/BlockCard/components/Emoji.js +18 -0
- package/dist/es2019/view/BlockCard/components/Frame.js +68 -0
- package/dist/es2019/view/BlockCard/components/Icon.js +42 -0
- package/dist/es2019/view/BlockCard/components/Link.js +17 -0
- package/dist/es2019/view/BlockCard/components/Metadata.js +46 -0
- package/dist/es2019/view/BlockCard/components/MetadataList.js +26 -0
- package/dist/es2019/view/BlockCard/components/Modal.js +94 -0
- package/dist/es2019/view/BlockCard/components/ModalHeader.js +86 -0
- package/dist/es2019/view/BlockCard/components/Name.js +31 -0
- package/dist/es2019/view/BlockCard/components/Provider.js +38 -0
- package/dist/es2019/view/BlockCard/components/Thumbnail.js +49 -0
- package/dist/es2019/view/BlockCard/components/UnresolvedText.js +13 -0
- package/dist/es2019/view/BlockCard/index.js +11 -1
- package/dist/es2019/view/BlockCard/utils/constants.js +4 -0
- package/dist/es2019/view/BlockCard/utils/handlers.js +7 -0
- package/dist/es2019/view/BlockCard/utils/index.js +9 -0
- package/dist/es2019/view/BlockCard/views/ErroredView.js +57 -0
- package/dist/es2019/view/BlockCard/views/ForbiddenView.js +72 -0
- package/dist/es2019/view/BlockCard/views/NotFoundView.js +56 -0
- package/dist/es2019/view/BlockCard/views/ResolvedView.js +97 -0
- package/dist/es2019/view/BlockCard/views/ResolvingView.js +31 -0
- package/dist/es2019/view/BlockCard/views/UnauthorizedView.js +56 -0
- package/dist/es2019/view/Card/index.js +8 -2
- package/dist/es2019/view/CardWithData/component.js +2 -1
- package/dist/es2019/view/CardWithUrl/component-lazy/LazyFallback.js +1 -1
- package/dist/es2019/view/CardWithUrl/component.js +15 -1
- package/dist/es2019/view/CardWithUrl/loader.js +7 -4
- package/dist/es2019/view/EmbedCard/EmbedResizeMessageListener.js +1 -1
- package/dist/es2019/view/EmbedCard/components/ExpandedFrame.js +69 -0
- package/dist/es2019/view/EmbedCard/components/Frame.js +37 -0
- package/dist/es2019/view/EmbedCard/components/ImageIcon.js +28 -0
- package/dist/es2019/view/EmbedCard/components/styled.js +292 -0
- package/dist/es2019/view/EmbedCard/index.js +7 -2
- package/dist/es2019/view/EmbedCard/views/ErroredView.js +43 -0
- package/dist/es2019/view/EmbedCard/views/ForbiddenView.js +68 -0
- package/dist/es2019/view/EmbedCard/views/NotFoundView.js +33 -0
- package/dist/es2019/view/EmbedCard/views/ResolvedView.js +53 -0
- package/dist/es2019/view/EmbedCard/views/UnauthorisedView.js +40 -0
- package/dist/es2019/view/EmbedCard/views/UnresolvedView.js +67 -0
- package/dist/es2019/view/FlexibleCard/components/actions/delete-action/index.js +58 -0
- package/dist/es2019/view/FlexibleCard/components/actions/index.js +6 -0
- package/dist/es2019/view/FlexibleCard/components/actions/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/actions/utils.js +48 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +22 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/block/index.js +23 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.js +45 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/element-group/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/index.js +2 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +83 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/errored/index.js +69 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/index.js +37 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/resolved/index.js +42 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/resolving/index.js +52 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +122 -0
- package/dist/es2019/view/FlexibleCard/components/common/atlaskit-icon/index.js +242 -0
- package/dist/es2019/view/FlexibleCard/components/common/atlaskit-icon/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/common/image-icon/index.js +49 -0
- package/dist/es2019/view/FlexibleCard/components/common/image-icon/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/container/index.js +89 -0
- package/dist/es2019/view/FlexibleCard/components/container/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +25 -0
- package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/badge/index.js +102 -0
- package/dist/es2019/view/FlexibleCard/components/elements/badge/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/date-time/index.js +53 -0
- package/dist/es2019/view/FlexibleCard/components/elements/date-time/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +111 -0
- package/dist/es2019/view/FlexibleCard/components/elements/icon/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/index.js +18 -0
- package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +87 -0
- package/dist/es2019/view/FlexibleCard/components/elements/link/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/index.js +28 -0
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +29 -0
- package/dist/es2019/view/FlexibleCard/components/elements/text/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/utils.js +149 -0
- package/dist/es2019/view/FlexibleCard/components/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/utils.js +92 -0
- package/dist/es2019/view/FlexibleCard/index.js +30 -0
- package/dist/es2019/view/FlexibleCard/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/utils.js +99 -0
- package/dist/es2019/view/InlineCard/ErroredView/index.js +70 -0
- package/dist/es2019/view/InlineCard/ForbiddenView/index.js +98 -0
- package/dist/es2019/view/InlineCard/Frame/index.js +55 -0
- package/dist/es2019/view/InlineCard/Frame/styled.js +108 -0
- package/dist/es2019/view/InlineCard/Icon.js +62 -0
- package/dist/es2019/view/InlineCard/IconAndTitleLayout/index.js +99 -0
- package/dist/es2019/view/InlineCard/IconAndTitleLayout/styled.js +102 -0
- package/dist/es2019/view/InlineCard/ResolvedView/index.js +46 -0
- package/dist/es2019/view/InlineCard/ResolvingView/index.js +48 -0
- package/dist/es2019/view/InlineCard/ResolvingView/styled.js +6 -0
- package/dist/es2019/view/InlineCard/UnauthorisedView/index.js +66 -0
- package/dist/es2019/view/InlineCard/index.js +7 -1
- package/dist/es2019/view/InlineCard/styled.js +39 -0
- package/dist/es2019/view/LinkView/index.js +11 -0
- package/dist/es2019/view/types.js +1 -0
- package/dist/esm/classNames.js +11 -0
- package/dist/esm/client/api.js +4 -3
- package/dist/esm/client/errors.js +2 -1
- package/dist/esm/constants.js +142 -0
- package/dist/esm/extractors/block/index.js +2 -2
- package/dist/esm/extractors/common/actions/extractActions.js +4 -3
- package/dist/esm/extractors/common/actions/extractPreviewAction.js +3 -3
- package/dist/esm/extractors/common/byline/extractByline.js +16 -5
- package/dist/esm/extractors/common/context/extractAccessContext.js +4 -3
- package/dist/esm/extractors/embed/index.js +2 -2
- package/dist/esm/extractors/flexible/collaboratorGroup/index.js +10 -0
- package/dist/esm/extractors/flexible/extract-priority.js +39 -0
- package/dist/esm/extractors/flexible/icon/extract-document-type-icon.js +31 -0
- package/dist/esm/extractors/flexible/icon/extract-file-formatIcon.js +108 -0
- package/dist/esm/extractors/flexible/icon/extract-icon-renderer.js +20 -0
- package/dist/esm/extractors/flexible/icon/extract-jira-task-icon.js +37 -0
- package/dist/esm/extractors/flexible/icon/extract-jsonld-data-icon.js +104 -0
- package/dist/esm/extractors/flexible/icon/extract-provider-icon.js +17 -0
- package/dist/esm/extractors/flexible/icon/extract-url-icon.js +8 -0
- package/dist/esm/extractors/flexible/icon/index.js +63 -0
- package/dist/esm/extractors/flexible/icon/types.js +1 -0
- package/dist/esm/extractors/flexible/index.js +36 -0
- package/dist/esm/extractors/flexible/utils.js +29 -0
- package/dist/esm/index.js +6 -3
- package/dist/esm/messages.js +128 -0
- package/dist/esm/providers/editor/transformer.js +1 -1
- package/dist/esm/ssr.js +24 -0
- package/dist/esm/state/flexible-ui-context/index.js +5 -0
- package/dist/esm/state/flexible-ui-context/types.js +1 -0
- package/dist/esm/state/reducers/index.js +2 -2
- package/dist/esm/utils/analytics/analytics.js +2 -2
- package/dist/esm/utils/analytics/index.js +2 -2
- package/dist/esm/utils/flexible.js +26 -0
- package/dist/esm/utils/index.js +10 -0
- package/dist/esm/utils/token.js +23 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/BlockCard/actions/AuthorizeAction.js +15 -0
- package/dist/esm/view/BlockCard/actions/DownloadAction.js +51 -0
- package/dist/esm/view/BlockCard/actions/ForbiddenAction.js +23 -0
- package/dist/esm/view/BlockCard/actions/PreviewAction.js +105 -0
- package/dist/esm/view/BlockCard/actions/RetryAction.js +33 -0
- package/dist/esm/view/BlockCard/actions/ViewAction.js +50 -0
- package/dist/esm/view/BlockCard/components/Action.js +53 -0
- package/dist/esm/view/BlockCard/components/ActionIcon.js +42 -0
- package/dist/esm/view/BlockCard/components/ActionList.js +55 -0
- package/dist/esm/view/BlockCard/components/Byline.js +34 -0
- package/dist/esm/view/BlockCard/components/CollaboratorList.js +39 -0
- package/dist/esm/view/BlockCard/components/Content.js +20 -0
- package/dist/esm/view/BlockCard/components/ContentFooter.js +20 -0
- package/dist/esm/view/BlockCard/components/ContentHeader.js +22 -0
- package/dist/esm/view/BlockCard/components/Emoji.js +17 -0
- package/dist/esm/view/BlockCard/components/Frame.js +75 -0
- package/dist/esm/view/BlockCard/components/Icon.js +42 -0
- package/dist/esm/view/BlockCard/components/Link.js +17 -0
- package/dist/esm/view/BlockCard/components/Metadata.js +45 -0
- package/dist/esm/view/BlockCard/components/MetadataList.js +27 -0
- package/dist/esm/view/BlockCard/components/Modal.js +125 -0
- package/dist/esm/view/BlockCard/components/ModalHeader.js +87 -0
- package/dist/esm/view/BlockCard/components/Name.js +33 -0
- package/dist/esm/view/BlockCard/components/Provider.js +37 -0
- package/dist/esm/view/BlockCard/components/Thumbnail.js +53 -0
- package/dist/esm/view/BlockCard/components/UnresolvedText.js +12 -0
- package/dist/esm/view/BlockCard/index.js +11 -1
- package/dist/esm/view/BlockCard/utils/constants.js +4 -0
- package/dist/esm/view/BlockCard/utils/handlers.js +7 -0
- package/dist/esm/view/BlockCard/utils/index.js +14 -0
- package/dist/esm/view/BlockCard/views/ErroredView.js +73 -0
- package/dist/esm/view/BlockCard/views/ForbiddenView.js +82 -0
- package/dist/esm/view/BlockCard/views/NotFoundView.js +70 -0
- package/dist/esm/view/BlockCard/views/ResolvedView.js +112 -0
- package/dist/esm/view/BlockCard/views/ResolvingView.js +34 -0
- package/dist/esm/view/BlockCard/views/UnauthorizedView.js +71 -0
- package/dist/esm/view/Card/index.js +8 -2
- package/dist/esm/view/CardWithData/component.js +2 -1
- package/dist/esm/view/CardWithUrl/component-lazy/LazyFallback.js +1 -1
- package/dist/esm/view/CardWithUrl/component.js +15 -1
- package/dist/esm/view/CardWithUrl/loader.js +7 -4
- package/dist/esm/view/EmbedCard/EmbedResizeMessageListener.js +1 -1
- package/dist/esm/view/EmbedCard/components/ExpandedFrame.js +79 -0
- package/dist/esm/view/EmbedCard/components/Frame.js +45 -0
- package/dist/esm/view/EmbedCard/components/ImageIcon.js +30 -0
- package/dist/esm/view/EmbedCard/components/styled.js +116 -0
- package/dist/esm/view/EmbedCard/index.js +7 -2
- package/dist/esm/view/EmbedCard/views/ErroredView.js +46 -0
- package/dist/esm/view/EmbedCard/views/ForbiddenView.js +67 -0
- package/dist/esm/view/EmbedCard/views/NotFoundView.js +33 -0
- package/dist/esm/view/EmbedCard/views/ResolvedView.js +55 -0
- package/dist/esm/view/EmbedCard/views/UnauthorisedView.js +40 -0
- package/dist/esm/view/EmbedCard/views/UnresolvedView.js +66 -0
- package/dist/esm/view/FlexibleCard/components/actions/delete-action/index.js +64 -0
- package/dist/esm/view/FlexibleCard/components/actions/index.js +6 -0
- package/dist/esm/view/FlexibleCard/components/actions/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/actions/utils.js +48 -0
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +24 -0
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/block/index.js +30 -0
- package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.js +46 -0
- package/dist/esm/view/FlexibleCard/components/blocks/element-group/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/index.js +2 -0
- package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +83 -0
- package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/errored/index.js +60 -0
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/index.js +41 -0
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/resolved/index.js +47 -0
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/resolving/index.js +53 -0
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/utils.js +114 -0
- package/dist/esm/view/FlexibleCard/components/common/atlaskit-icon/index.js +306 -0
- package/dist/esm/view/FlexibleCard/components/common/atlaskit-icon/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/common/image-icon/index.js +30 -0
- package/dist/esm/view/FlexibleCard/components/common/image-icon/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/container/index.js +88 -0
- package/dist/esm/view/FlexibleCard/components/container/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +29 -0
- package/dist/esm/view/FlexibleCard/components/elements/avatar-group/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/badge/index.js +79 -0
- package/dist/esm/view/FlexibleCard/components/elements/badge/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/date-time/index.js +51 -0
- package/dist/esm/view/FlexibleCard/components/elements/date-time/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +104 -0
- package/dist/esm/view/FlexibleCard/components/elements/icon/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/index.js +18 -0
- package/dist/esm/view/FlexibleCard/components/elements/link/index.js +70 -0
- package/dist/esm/view/FlexibleCard/components/elements/link/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/index.js +32 -0
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/text/index.js +29 -0
- package/dist/esm/view/FlexibleCard/components/elements/text/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/utils.js +141 -0
- package/dist/esm/view/FlexibleCard/components/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/utils.js +57 -0
- package/dist/esm/view/FlexibleCard/index.js +27 -0
- package/dist/esm/view/FlexibleCard/types.js +1 -0
- package/dist/esm/view/FlexibleCard/utils.js +99 -0
- package/dist/esm/view/InlineCard/ErroredView/index.js +96 -0
- package/dist/esm/view/InlineCard/ForbiddenView/index.js +122 -0
- package/dist/esm/view/InlineCard/Frame/index.js +53 -0
- package/dist/esm/view/InlineCard/Frame/styled.js +79 -0
- package/dist/esm/view/InlineCard/Icon.js +18 -0
- package/dist/esm/view/InlineCard/IconAndTitleLayout/index.js +122 -0
- package/dist/esm/view/InlineCard/IconAndTitleLayout/styled.js +36 -0
- package/dist/esm/view/InlineCard/ResolvedView/index.js +70 -0
- package/dist/esm/view/InlineCard/ResolvingView/index.js +72 -0
- package/dist/esm/view/InlineCard/ResolvingView/styled.js +7 -0
- package/dist/esm/view/InlineCard/UnauthorisedView/index.js +92 -0
- package/dist/esm/view/InlineCard/index.js +7 -1
- package/dist/esm/view/InlineCard/styled.js +20 -0
- package/dist/esm/view/LinkView/index.js +35 -0
- package/dist/esm/view/types.js +1 -0
- package/dist/types/classNames.d.ts +11 -0
- package/dist/types/constants.d.ts +113 -0
- package/dist/types/extractors/block/index.d.ts +2 -1
- package/dist/types/extractors/common/actions/extractActions.d.ts +1 -1
- package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +2 -2
- package/dist/types/extractors/common/context/extractAccessContext.d.ts +1 -1
- package/dist/types/extractors/common/title-prefix/extractTitlePrefix.d.ts +1 -1
- package/dist/types/extractors/embed/index.d.ts +1 -1
- package/dist/types/extractors/flexible/collaboratorGroup/index.d.ts +4 -0
- package/dist/types/extractors/flexible/extract-priority.d.ts +4 -0
- package/dist/types/extractors/flexible/icon/extract-document-type-icon.d.ts +3 -0
- package/dist/types/extractors/flexible/icon/extract-file-formatIcon.d.ts +3 -0
- package/dist/types/extractors/flexible/icon/extract-icon-renderer.d.ts +4 -0
- package/dist/types/extractors/flexible/icon/extract-jira-task-icon.d.ts +3 -0
- package/dist/types/extractors/flexible/icon/extract-jsonld-data-icon.d.ts +4 -0
- package/dist/types/extractors/flexible/icon/extract-provider-icon.d.ts +4 -0
- package/dist/types/extractors/flexible/icon/extract-url-icon.d.ts +4 -0
- package/dist/types/extractors/flexible/icon/index.d.ts +17 -0
- package/dist/types/extractors/flexible/icon/types.d.ts +2 -0
- package/dist/types/extractors/flexible/index.d.ts +5 -0
- package/dist/types/extractors/flexible/utils.d.ts +6 -0
- package/dist/types/extractors/inline/index.d.ts +1 -1
- package/dist/types/index.d.ts +5 -2
- package/dist/types/messages.d.ts +7 -0
- package/dist/types/ssr.d.ts +6 -0
- package/dist/types/state/context/provider.d.ts +1 -0
- package/dist/types/state/flexible-ui-context/index.d.ts +4 -0
- package/dist/types/state/flexible-ui-context/types.d.ts +24 -0
- package/dist/types/types.d.ts +15 -0
- package/dist/types/utils/analytics/analytics.d.ts +1 -1
- package/dist/types/utils/flexible.d.ts +6 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/test-utils.d.ts +1 -0
- package/dist/types/utils/token.d.ts +15 -0
- package/dist/types/view/BlockCard/actions/AuthorizeAction.d.ts +2 -0
- package/dist/types/view/BlockCard/actions/DownloadAction.d.ts +8 -0
- package/dist/types/view/BlockCard/actions/ForbiddenAction.d.ts +2 -0
- package/dist/types/view/BlockCard/actions/PreviewAction.d.ts +26 -0
- package/dist/types/view/BlockCard/actions/RetryAction.d.ts +2 -0
- package/dist/types/view/BlockCard/actions/ViewAction.d.ts +8 -0
- package/dist/types/view/BlockCard/components/Action.d.ts +11 -0
- package/dist/types/view/BlockCard/components/ActionIcon.d.ts +12 -0
- package/dist/types/view/BlockCard/components/ActionList.d.ts +6 -0
- package/dist/types/view/BlockCard/components/Byline.d.ts +8 -0
- package/dist/types/view/BlockCard/components/CollaboratorList.d.ts +13 -0
- package/dist/types/view/BlockCard/components/Content.d.ts +7 -0
- package/dist/types/view/BlockCard/components/ContentFooter.d.ts +7 -0
- package/dist/types/view/BlockCard/components/ContentHeader.d.ts +8 -0
- package/dist/types/view/BlockCard/components/Emoji.d.ts +5 -0
- package/dist/types/view/BlockCard/components/Frame.d.ts +14 -0
- package/dist/types/view/BlockCard/components/Icon.d.ts +9 -0
- package/dist/types/view/BlockCard/components/Link.d.ts +7 -0
- package/dist/types/view/BlockCard/components/Metadata.d.ts +8 -0
- package/dist/types/view/BlockCard/components/MetadataList.d.ts +8 -0
- package/dist/types/view/BlockCard/components/Modal.d.ts +28 -0
- package/dist/types/view/BlockCard/components/ModalHeader.d.ts +17 -0
- package/dist/types/view/BlockCard/components/Name.d.ts +10 -0
- package/dist/types/view/BlockCard/components/Provider.d.ts +6 -0
- package/dist/types/view/BlockCard/components/Thumbnail.d.ts +9 -0
- package/dist/types/view/BlockCard/components/UnresolvedText.d.ts +6 -0
- package/dist/types/view/BlockCard/index.d.ts +11 -0
- package/dist/types/view/BlockCard/utils/constants.d.ts +3 -0
- package/dist/types/view/BlockCard/utils/handlers.d.ts +2 -0
- package/dist/types/view/BlockCard/utils/index.d.ts +5 -0
- package/dist/types/view/BlockCard/views/ErroredView.d.ts +12 -0
- package/dist/types/view/BlockCard/views/ForbiddenView.d.ts +21 -0
- package/dist/types/view/BlockCard/views/NotFoundView.d.ts +15 -0
- package/dist/types/view/BlockCard/views/ResolvedView.d.ts +32 -0
- package/dist/types/view/BlockCard/views/ResolvingView.d.ts +8 -0
- package/dist/types/view/BlockCard/views/UnauthorizedView.d.ts +17 -0
- package/dist/types/view/Card/index.d.ts +2 -1
- package/dist/types/view/Card/types.d.ts +4 -1
- package/dist/types/view/CardWithData/types.d.ts +1 -1
- package/dist/types/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.d.ts +1 -0
- package/dist/types/view/CardWithUrl/component-lazy/LazyLazilyRenderCard.d.ts +1 -0
- package/dist/types/view/CardWithUrl/component-lazy/index.d.ts +1 -0
- package/dist/types/view/CardWithUrl/component.d.ts +2 -1
- package/dist/types/view/CardWithUrl/loader.d.ts +1 -0
- package/dist/types/view/CardWithUrl/types.d.ts +4 -1
- package/dist/types/view/EmbedCard/components/ExpandedFrame.d.ts +23 -0
- package/dist/types/view/EmbedCard/components/Frame.d.ts +7 -0
- package/dist/types/view/EmbedCard/components/ImageIcon.d.ts +9 -0
- package/dist/types/view/EmbedCard/components/styled.d.ts +42 -0
- package/dist/types/view/EmbedCard/types.d.ts +23 -1
- package/dist/types/view/EmbedCard/views/ErroredView.d.ts +8 -0
- package/dist/types/view/EmbedCard/views/ForbiddenView.d.ts +13 -0
- package/dist/types/view/EmbedCard/views/NotFoundView.d.ts +11 -0
- package/dist/types/view/EmbedCard/views/ResolvedView.d.ts +27 -0
- package/dist/types/view/EmbedCard/views/UnauthorisedView.d.ts +12 -0
- package/dist/types/view/EmbedCard/views/UnresolvedView.d.ts +18 -0
- package/dist/types/view/FlexibleCard/components/actions/delete-action/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/actions/index.d.ts +3 -0
- package/dist/types/view/FlexibleCard/components/actions/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/actions/utils.d.ts +3 -0
- package/dist/types/view/FlexibleCard/components/blocks/action-group/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/blocks/action-group/types.d.ts +8 -0
- package/dist/types/view/FlexibleCard/components/blocks/block/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/blocks/element-group/index.d.ts +8 -0
- package/dist/types/view/FlexibleCard/components/blocks/element-group/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/blocks/index.d.ts +2 -0
- package/dist/types/view/FlexibleCard/components/blocks/metadata-block/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/blocks/metadata-block/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/blocks/title-block/errored/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/blocks/title-block/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/blocks/title-block/resolved/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/blocks/title-block/resolving/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/blocks/title-block/types.d.ts +12 -0
- package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +17 -0
- package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +9 -0
- package/dist/types/view/FlexibleCard/components/common/atlaskit-icon/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/common/atlaskit-icon/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/common/image-icon/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/common/image-icon/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/container/index.d.ts +8 -0
- package/dist/types/view/FlexibleCard/components/container/types.d.ts +12 -0
- package/dist/types/view/FlexibleCard/components/elements/avatar-group/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/elements/avatar-group/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/elements/badge/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/badge/types.d.ts +7 -0
- package/dist/types/view/FlexibleCard/components/elements/date-time/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/date-time/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/elements/icon/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/icon/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/elements/index.d.ts +21 -0
- package/dist/types/view/FlexibleCard/components/elements/link/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/link/types.d.ts +8 -0
- package/dist/types/view/FlexibleCard/components/elements/lozenge/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/lozenge/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/elements/text/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/text/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/elements/types.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/utils.d.ts +3 -0
- package/dist/types/view/FlexibleCard/components/types.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/utils.d.ts +9 -0
- package/dist/types/view/FlexibleCard/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/types.d.ts +27 -0
- package/dist/types/view/FlexibleCard/utils.d.ts +7 -0
- package/dist/types/view/InlineCard/ErroredView/index.d.ts +21 -0
- package/dist/types/view/InlineCard/ForbiddenView/index.d.ts +25 -0
- package/dist/types/view/InlineCard/Frame/index.d.ts +16 -0
- package/dist/types/view/InlineCard/Frame/styled.d.ts +8 -0
- package/dist/types/view/InlineCard/Icon.d.ts +4 -0
- package/dist/types/view/InlineCard/IconAndTitleLayout/index.d.ts +19 -0
- package/dist/types/view/InlineCard/IconAndTitleLayout/styled.d.ts +13 -0
- package/dist/types/view/InlineCard/ResolvedView/index.d.ts +26 -0
- package/dist/types/view/InlineCard/ResolvingView/index.d.ts +18 -0
- package/dist/types/view/InlineCard/ResolvingView/styled.d.ts +6 -0
- package/dist/types/view/InlineCard/UnauthorisedView/index.d.ts +20 -0
- package/dist/types/view/InlineCard/index.d.ts +6 -0
- package/dist/types/view/InlineCard/styled.d.ts +5 -0
- package/dist/types/view/InlineCard/types.d.ts +1 -1
- package/dist/types/view/LinkView/index.d.ts +5 -0
- package/dist/types/view/types.d.ts +23 -0
- package/package.json +44 -18
- package/ssr/package.json +7 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { SmartLinkStatus } from '../../constants';
|
|
2
|
+
import { getEmptyJsonLd, getUnauthorizedJsonLd } from '../../utils/jsonld';
|
|
3
|
+
import { extractProvider, extractRequestAccessContext } from '../../extractors/common/context';
|
|
4
|
+
import { messages } from '../../messages';
|
|
5
|
+
import extractFlexibleLinkContext from '../../extractors/flexible';
|
|
6
|
+
import { extractErrorIcon } from '../../extractors/flexible/icon';
|
|
7
|
+
import { handleOnClick } from '../../utils';
|
|
8
|
+
export const getContextByStatus = (url, status, details, renderers) => {
|
|
9
|
+
switch (status) {
|
|
10
|
+
case SmartLinkStatus.Pending:
|
|
11
|
+
case SmartLinkStatus.Resolving:
|
|
12
|
+
return {
|
|
13
|
+
title: url,
|
|
14
|
+
url
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
case SmartLinkStatus.Resolved:
|
|
18
|
+
return extractFlexibleLinkContext(details, renderers);
|
|
19
|
+
|
|
20
|
+
case SmartLinkStatus.Unauthorized:
|
|
21
|
+
case SmartLinkStatus.Forbidden:
|
|
22
|
+
case SmartLinkStatus.NotFound:
|
|
23
|
+
case SmartLinkStatus.Errored:
|
|
24
|
+
case SmartLinkStatus.Fallback:
|
|
25
|
+
default:
|
|
26
|
+
const linkIcon = extractErrorIcon(details, status);
|
|
27
|
+
return {
|
|
28
|
+
linkIcon,
|
|
29
|
+
title: url,
|
|
30
|
+
url
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const getForbiddenMessageKey = meta => {
|
|
36
|
+
var _meta$requestAccess;
|
|
37
|
+
|
|
38
|
+
const accessType = meta === null || meta === void 0 ? void 0 : (_meta$requestAccess = meta.requestAccess) === null || _meta$requestAccess === void 0 ? void 0 : _meta$requestAccess.accessType;
|
|
39
|
+
|
|
40
|
+
switch (accessType) {
|
|
41
|
+
case 'DIRECT_ACCESS':
|
|
42
|
+
return 'click_to_join';
|
|
43
|
+
|
|
44
|
+
case 'REQUEST_ACCESS':
|
|
45
|
+
return 'request_access';
|
|
46
|
+
|
|
47
|
+
case 'PENDING_REQUEST_EXISTS':
|
|
48
|
+
return 'pending_request';
|
|
49
|
+
|
|
50
|
+
case 'FORBIDDEN':
|
|
51
|
+
return 'forbidden_access';
|
|
52
|
+
|
|
53
|
+
case 'DENIED_REQUEST_EXISTS':
|
|
54
|
+
return 'request_denied';
|
|
55
|
+
|
|
56
|
+
default:
|
|
57
|
+
return 'restricted_link';
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export const getRetryOptions = (url, status, details, onAuthorize) => {
|
|
62
|
+
var _details$meta, _access$action;
|
|
63
|
+
|
|
64
|
+
switch (status) {
|
|
65
|
+
case SmartLinkStatus.Forbidden:
|
|
66
|
+
const data = details && details.data || getEmptyJsonLd();
|
|
67
|
+
const meta = (_details$meta = details === null || details === void 0 ? void 0 : details.meta) !== null && _details$meta !== void 0 ? _details$meta : getUnauthorizedJsonLd().meta;
|
|
68
|
+
const provider = extractProvider(data);
|
|
69
|
+
const context = provider === null || provider === void 0 ? void 0 : provider.text;
|
|
70
|
+
const access = extractRequestAccessContext({
|
|
71
|
+
jsonLd: meta,
|
|
72
|
+
url,
|
|
73
|
+
context
|
|
74
|
+
});
|
|
75
|
+
const messageKey = getForbiddenMessageKey(meta);
|
|
76
|
+
const descriptor = messages[messageKey];
|
|
77
|
+
const values = context ? {
|
|
78
|
+
context
|
|
79
|
+
} : undefined;
|
|
80
|
+
const retry = onAuthorize || (access === null || access === void 0 ? void 0 : (_access$action = access.action) === null || _access$action === void 0 ? void 0 : _access$action.promise);
|
|
81
|
+
const onClick = retry ? handleOnClick(retry) : undefined;
|
|
82
|
+
return {
|
|
83
|
+
descriptor,
|
|
84
|
+
onClick,
|
|
85
|
+
values
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
case SmartLinkStatus.Unauthorized:
|
|
89
|
+
return {
|
|
90
|
+
descriptor: messages.connect_link_account,
|
|
91
|
+
onClick: onAuthorize ? handleOnClick(onAuthorize) : undefined
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
case SmartLinkStatus.NotFound:
|
|
95
|
+
return {
|
|
96
|
+
descriptor: messages.cannot_find_link
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { R300 } from '@atlaskit/theme/colors';
|
|
4
|
+
import ErrorIcon from '@atlaskit/icon/glyph/error';
|
|
5
|
+
import Button from '@atlaskit/button/custom-theme-button';
|
|
6
|
+
import { Frame } from '../Frame';
|
|
7
|
+
import { IconAndTitleLayout } from '../IconAndTitleLayout';
|
|
8
|
+
import { AKIconWrapper } from '../Icon';
|
|
9
|
+
import { messages } from '@atlaskit/media-ui/messages';
|
|
10
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
11
|
+
import { LinkAppearance, IconStyledButton, LowercaseAppearance, NoLinkAppearance } from '../styled';
|
|
12
|
+
export class InlineCardErroredView extends React.Component {
|
|
13
|
+
constructor(...args) {
|
|
14
|
+
super(...args);
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "handleRetry", event => {
|
|
17
|
+
const {
|
|
18
|
+
onRetry
|
|
19
|
+
} = this.props;
|
|
20
|
+
|
|
21
|
+
if (onRetry) {
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
event.stopPropagation();
|
|
24
|
+
onRetry();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
_defineProperty(this, "renderMessage", () => {
|
|
29
|
+
const {
|
|
30
|
+
onRetry,
|
|
31
|
+
url,
|
|
32
|
+
message
|
|
33
|
+
} = this.props;
|
|
34
|
+
const link = /*#__PURE__*/React.createElement(LinkAppearance, null, url);
|
|
35
|
+
const errorMessage = /*#__PURE__*/React.createElement(NoLinkAppearance, null, message);
|
|
36
|
+
return !onRetry ? /*#__PURE__*/React.createElement(React.Fragment, null, link, " - ", errorMessage) : /*#__PURE__*/React.createElement(React.Fragment, null, link, " - ", errorMessage, ",\xA0", /*#__PURE__*/React.createElement(Button, {
|
|
37
|
+
spacing: "none",
|
|
38
|
+
appearance: "subtle-link",
|
|
39
|
+
component: IconStyledButton,
|
|
40
|
+
onClick: this.handleRetry
|
|
41
|
+
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.try_again, formattedMessage => {
|
|
42
|
+
return /*#__PURE__*/React.createElement(LowercaseAppearance, null, formattedMessage);
|
|
43
|
+
})));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
render() {
|
|
48
|
+
const {
|
|
49
|
+
url,
|
|
50
|
+
onClick,
|
|
51
|
+
isSelected,
|
|
52
|
+
testId = 'inline-card-errored-view',
|
|
53
|
+
icon
|
|
54
|
+
} = this.props;
|
|
55
|
+
return /*#__PURE__*/React.createElement(Frame, {
|
|
56
|
+
testId: testId,
|
|
57
|
+
link: url,
|
|
58
|
+
onClick: onClick,
|
|
59
|
+
isSelected: isSelected
|
|
60
|
+
}, /*#__PURE__*/React.createElement(IconAndTitleLayout, {
|
|
61
|
+
icon: icon || /*#__PURE__*/React.createElement(AKIconWrapper, null, /*#__PURE__*/React.createElement(ErrorIcon, {
|
|
62
|
+
label: "error",
|
|
63
|
+
size: "small",
|
|
64
|
+
primaryColor: R300
|
|
65
|
+
})),
|
|
66
|
+
title: this.renderMessage()
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { R400, N500 } from '@atlaskit/theme/colors';
|
|
5
|
+
import LockIcon from '@atlaskit/icon/glyph/lock-filled';
|
|
6
|
+
import Button from '@atlaskit/button/custom-theme-button';
|
|
7
|
+
import { Frame } from '../Frame';
|
|
8
|
+
import { IconAndTitleLayout } from '../IconAndTitleLayout';
|
|
9
|
+
import { AKIconWrapper } from '../Icon';
|
|
10
|
+
import { messages } from '@atlaskit/media-ui/messages';
|
|
11
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
12
|
+
import { IconStyledButton, LowercaseAppearance, LinkAppearance } from '../styled';
|
|
13
|
+
const FallbackForbiddenIcon = /*#__PURE__*/React.createElement(AKIconWrapper, null, /*#__PURE__*/React.createElement(LockIcon, {
|
|
14
|
+
label: "error",
|
|
15
|
+
size: "small",
|
|
16
|
+
primaryColor: R400
|
|
17
|
+
}));
|
|
18
|
+
export class InlineCardForbiddenView extends React.Component {
|
|
19
|
+
constructor(...args) {
|
|
20
|
+
super(...args);
|
|
21
|
+
|
|
22
|
+
_defineProperty(this, "handleRetry", event => {
|
|
23
|
+
const {
|
|
24
|
+
onAuthorise
|
|
25
|
+
} = this.props;
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
event.stopPropagation();
|
|
28
|
+
|
|
29
|
+
if (onAuthorise) {
|
|
30
|
+
onAuthorise();
|
|
31
|
+
} else {
|
|
32
|
+
var _this$props, _this$props$requestAc, _this$props$requestAc2;
|
|
33
|
+
|
|
34
|
+
(_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$requestAc = _this$props.requestAccessContext) === null || _this$props$requestAc === void 0 ? void 0 : (_this$props$requestAc2 = _this$props$requestAc.action) === null || _this$props$requestAc2 === void 0 ? void 0 : _this$props$requestAc2.promise();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
_defineProperty(this, "renderForbiddenAccessMessage", () => {
|
|
39
|
+
var _this$props2, _this$props2$requestA;
|
|
40
|
+
|
|
41
|
+
if ((_this$props2 = this.props) !== null && _this$props2 !== void 0 && (_this$props2$requestA = _this$props2.requestAccessContext) !== null && _this$props2$requestA !== void 0 && _this$props2$requestA.callToActionMessageKey) {
|
|
42
|
+
const {
|
|
43
|
+
callToActionMessageKey
|
|
44
|
+
} = this.props.requestAccessContext;
|
|
45
|
+
return /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages[callToActionMessageKey], {
|
|
46
|
+
values: {
|
|
47
|
+
context: this.props.context
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.invalid_permissions, formattedMessage => {
|
|
53
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, formattedMessage, ", ");
|
|
54
|
+
}), /*#__PURE__*/React.createElement(FormattedMessage, messages.try_another_account, formattedMessage => {
|
|
55
|
+
return /*#__PURE__*/React.createElement(LowercaseAppearance, null, formattedMessage);
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
_defineProperty(this, "renderMessage", () => {
|
|
60
|
+
var _this$props3, _this$props3$requestA;
|
|
61
|
+
|
|
62
|
+
const {
|
|
63
|
+
url,
|
|
64
|
+
onAuthorise
|
|
65
|
+
} = this.props;
|
|
66
|
+
const link = /*#__PURE__*/React.createElement(LinkAppearance, null, url);
|
|
67
|
+
const hasRequestAccessContextMessage = (_this$props3 = this.props) === null || _this$props3 === void 0 ? void 0 : (_this$props3$requestA = _this$props3.requestAccessContext) === null || _this$props3$requestA === void 0 ? void 0 : _this$props3$requestA.callToActionMessageKey;
|
|
68
|
+
return !onAuthorise && !hasRequestAccessContextMessage ? link : /*#__PURE__*/React.createElement(React.Fragment, null, link, ' - ', /*#__PURE__*/React.createElement(Button, {
|
|
69
|
+
spacing: "none",
|
|
70
|
+
appearance: "subtle-link",
|
|
71
|
+
onClick: this.handleRetry,
|
|
72
|
+
component: IconStyledButton,
|
|
73
|
+
testId: "button-connect-other-account"
|
|
74
|
+
}, this.renderForbiddenAccessMessage()));
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
render() {
|
|
79
|
+
const {
|
|
80
|
+
url,
|
|
81
|
+
icon,
|
|
82
|
+
onClick,
|
|
83
|
+
isSelected,
|
|
84
|
+
testId = 'inline-card-forbidden-view'
|
|
85
|
+
} = this.props;
|
|
86
|
+
return /*#__PURE__*/React.createElement(Frame, {
|
|
87
|
+
testId: testId,
|
|
88
|
+
link: url,
|
|
89
|
+
onClick: onClick,
|
|
90
|
+
isSelected: isSelected
|
|
91
|
+
}, /*#__PURE__*/React.createElement(IconAndTitleLayout, {
|
|
92
|
+
icon: icon ? icon : FallbackForbiddenIcon,
|
|
93
|
+
title: this.renderMessage(),
|
|
94
|
+
titleColor: N500
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { useGlobalTheme } from '@atlaskit/theme/components';
|
|
3
|
+
import { Wrapper } from './styled';
|
|
4
|
+
export const Frame = props => {
|
|
5
|
+
const {
|
|
6
|
+
isSelected,
|
|
7
|
+
children,
|
|
8
|
+
onClick,
|
|
9
|
+
link,
|
|
10
|
+
withoutBackground,
|
|
11
|
+
withoutHover,
|
|
12
|
+
testId,
|
|
13
|
+
className
|
|
14
|
+
} = props;
|
|
15
|
+
const handleClick = useCallback(event => {
|
|
16
|
+
if (onClick) {
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
event.stopPropagation();
|
|
19
|
+
onClick(event);
|
|
20
|
+
}
|
|
21
|
+
}, [onClick]);
|
|
22
|
+
const handleKeyPress = useCallback(event => {
|
|
23
|
+
if (event.key !== ' ' && event.key !== 'Enter') {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (onClick) {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
event.stopPropagation();
|
|
30
|
+
onClick(event);
|
|
31
|
+
}
|
|
32
|
+
}, [onClick]); // prevent default on mousedown to avoid inline card losing focus
|
|
33
|
+
|
|
34
|
+
const handleMouseDown = useCallback(e => {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
}, []);
|
|
37
|
+
const isInteractive = Boolean(onClick); // TODO Theming doesn't work right now in editor. Required React context does not trickle down atm.
|
|
38
|
+
// It will be worked as part of https://product-fabric.atlassian.net/jira/servicedesk/projects/DTR/queues/issue/DTR-154
|
|
39
|
+
|
|
40
|
+
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
41
|
+
theme: useGlobalTheme(),
|
|
42
|
+
href: link,
|
|
43
|
+
withoutBackground: withoutBackground,
|
|
44
|
+
withoutHover: withoutHover,
|
|
45
|
+
isSelected: isSelected,
|
|
46
|
+
isInteractive: isInteractive,
|
|
47
|
+
tabIndex: isInteractive ? 0 : undefined,
|
|
48
|
+
role: isInteractive ? 'button' : undefined,
|
|
49
|
+
onClick: handleClick,
|
|
50
|
+
onMouseDown: handleMouseDown,
|
|
51
|
+
onKeyPress: handleKeyPress,
|
|
52
|
+
"data-testid": testId,
|
|
53
|
+
className: className
|
|
54
|
+
}, children);
|
|
55
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
import { B100, B400, B50, N20 } from '@atlaskit/theme/colors';
|
|
3
|
+
import { borderRadius as akBorderRadius } from '@atlaskit/theme/constants';
|
|
4
|
+
import { e100 } from '@atlaskit/theme/elevation';
|
|
5
|
+
import { themed } from '@atlaskit/theme/components';
|
|
6
|
+
import { TitleWrapperClassName } from '../IconAndTitleLayout/styled';
|
|
7
|
+
const BACKGROUND_COLOR_DARK = '#262B31';
|
|
8
|
+
const selected = `
|
|
9
|
+
cursor: pointer;
|
|
10
|
+
box-shadow: 0 0 0 2px ${B100};
|
|
11
|
+
outline: none;
|
|
12
|
+
user-select: none;
|
|
13
|
+
&, :hover, :focus, :active {
|
|
14
|
+
text-decoration: none;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
|
|
18
|
+
const isInteractive = ({
|
|
19
|
+
isInteractive
|
|
20
|
+
}) => {
|
|
21
|
+
if (isInteractive) {
|
|
22
|
+
return `
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
:hover {
|
|
25
|
+
background-color: ${themed({
|
|
26
|
+
light: N20,
|
|
27
|
+
dark: BACKGROUND_COLOR_DARK
|
|
28
|
+
})};
|
|
29
|
+
text-decoration: none;
|
|
30
|
+
}
|
|
31
|
+
:active {
|
|
32
|
+
background-color: ${themed({
|
|
33
|
+
light: B50,
|
|
34
|
+
dark: BACKGROUND_COLOR_DARK
|
|
35
|
+
})};
|
|
36
|
+
text-decoration: none;
|
|
37
|
+
}
|
|
38
|
+
:focus {
|
|
39
|
+
${selected}
|
|
40
|
+
text-decoration: none;
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
} else {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const isSelected = ({
|
|
49
|
+
isSelected
|
|
50
|
+
}) => {
|
|
51
|
+
if (isSelected) {
|
|
52
|
+
return selected;
|
|
53
|
+
} else {
|
|
54
|
+
return 'user-select: text';
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const withoutHover = ({
|
|
59
|
+
withoutHover
|
|
60
|
+
}) => {
|
|
61
|
+
return withoutHover ? `
|
|
62
|
+
&:hover {
|
|
63
|
+
text-decoration: none;
|
|
64
|
+
}
|
|
65
|
+
` : '';
|
|
66
|
+
};
|
|
67
|
+
/*
|
|
68
|
+
Inline smart cards should have the following layout:
|
|
69
|
+
------------------------------------
|
|
70
|
+
| icon | title | action OR lozenge |
|
|
71
|
+
------------------------------------
|
|
72
|
+
The aim is to ensure (1) all children are
|
|
73
|
+
in line with each other, (2) are vertically
|
|
74
|
+
centered.
|
|
75
|
+
*/
|
|
76
|
+
// NB: `padding` consistent with @mentions.
|
|
77
|
+
// NB: `display: inline` required for `box-decoration-break` to work.
|
|
78
|
+
// NB: `box-decoration-break` required for retaining properties (border-radius) on wrap.
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
export const Wrapper = styled.a`
|
|
82
|
+
line-height: 16px;
|
|
83
|
+
padding: 1px 0.24em 2px 0.24em;
|
|
84
|
+
${props => props.withoutBackground ? `padding-left: 0; margin-left:-2px;` : ''}
|
|
85
|
+
display: inline;
|
|
86
|
+
box-decoration-break: clone;
|
|
87
|
+
border-radius: ${akBorderRadius()}px;
|
|
88
|
+
color: ${themed({
|
|
89
|
+
light: B400,
|
|
90
|
+
dark: '#4794FF'
|
|
91
|
+
})};
|
|
92
|
+
background-color: ${props => props.withoutBackground ? '' : themed({
|
|
93
|
+
light: 'white',
|
|
94
|
+
dark: BACKGROUND_COLOR_DARK
|
|
95
|
+
})};
|
|
96
|
+
${props => props.withoutBackground ? '' : e100()};
|
|
97
|
+
${props => isInteractive(props)}
|
|
98
|
+
${props => isSelected(props)};
|
|
99
|
+
${props => withoutHover(props)}
|
|
100
|
+
transition: 0.1s all ease-in-out;
|
|
101
|
+
-moz-user-select: none;
|
|
102
|
+
|
|
103
|
+
&:hover span.${TitleWrapperClassName} {
|
|
104
|
+
text-decoration: ${({
|
|
105
|
+
withoutHover
|
|
106
|
+
}) => withoutHover ? 'none' : 'underline'};
|
|
107
|
+
}
|
|
108
|
+
`;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
import { keyframes } from '@emotion/core';
|
|
3
|
+
const placeholderShimmer = keyframes`
|
|
4
|
+
0% {
|
|
5
|
+
background-position: -20px 0;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
100% {
|
|
9
|
+
background-position: 20px 0;
|
|
10
|
+
}
|
|
11
|
+
`; // TODO: Figure out a more scalable/responsive solution
|
|
12
|
+
// for vertical alignment.
|
|
13
|
+
// Current rationale: vertically positioned at the top of
|
|
14
|
+
// the smart card container (when set to 0). Offset this
|
|
15
|
+
// to position it with appropriate whitespace from the top.
|
|
16
|
+
|
|
17
|
+
export const Icon = styled.img`
|
|
18
|
+
height: 14px;
|
|
19
|
+
width: 14px;
|
|
20
|
+
margin-right: 4px;
|
|
21
|
+
border-radius: 2px;
|
|
22
|
+
user-select: none;
|
|
23
|
+
position: absolute;
|
|
24
|
+
top: 50%;
|
|
25
|
+
left: 50%;
|
|
26
|
+
transform: translate(-50%, -50%);
|
|
27
|
+
`; // Used for 'untrue' icons which claim to be 16x16 but
|
|
28
|
+
// are less than that in height/width.
|
|
29
|
+
// TODO: Replace this override with proper AtlasKit solution.
|
|
30
|
+
|
|
31
|
+
export const AKIconWrapper = styled.span`
|
|
32
|
+
margin-right: -2px;
|
|
33
|
+
`;
|
|
34
|
+
export const Shimmer = styled.span`
|
|
35
|
+
height: 14px;
|
|
36
|
+
width: 14px;
|
|
37
|
+
margin-right: 4px;
|
|
38
|
+
border-radius: 2px;
|
|
39
|
+
user-select: none;
|
|
40
|
+
position: absolute;
|
|
41
|
+
top: 50%;
|
|
42
|
+
left: 50%;
|
|
43
|
+
transform: translate(-50%, -50%);
|
|
44
|
+
|
|
45
|
+
background: #f6f7f8;
|
|
46
|
+
background-image: linear-gradient(
|
|
47
|
+
to right,
|
|
48
|
+
#f6f7f8 0%,
|
|
49
|
+
#edeef1 20%,
|
|
50
|
+
#f6f7f8 40%,
|
|
51
|
+
#f6f7f8 100%
|
|
52
|
+
);
|
|
53
|
+
background-repeat: no-repeat;
|
|
54
|
+
background-size: 40px 14px;
|
|
55
|
+
display: inline-block;
|
|
56
|
+
|
|
57
|
+
animation-duration: 1s;
|
|
58
|
+
animation-fill-mode: forwards;
|
|
59
|
+
animation-iteration-count: infinite;
|
|
60
|
+
animation-name: ${placeholderShimmer};
|
|
61
|
+
animation-timing-function: linear;
|
|
62
|
+
`;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ImageLoader from 'react-render-image';
|
|
3
|
+
import { Icon, Shimmer } from '../Icon';
|
|
4
|
+
import { IconEmptyWrapper, IconPositionWrapper, IconTitleWrapper, IconWrapper, TitleWrapper, EmojiWrapper, TitleWrapperClassName } from './styled';
|
|
5
|
+
import LinkIcon from '@atlaskit/icon/glyph/link';
|
|
6
|
+
export class IconAndTitleLayout extends React.Component {
|
|
7
|
+
renderAtlaskitIcon() {
|
|
8
|
+
const {
|
|
9
|
+
icon,
|
|
10
|
+
emoji
|
|
11
|
+
} = this.props;
|
|
12
|
+
|
|
13
|
+
if (emoji) {
|
|
14
|
+
return /*#__PURE__*/React.createElement(EmojiWrapper, null, emoji);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (!icon || typeof icon === 'string') {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return /*#__PURE__*/React.createElement(IconWrapper, null, icon);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
renderImageIcon(errored, testId) {
|
|
25
|
+
const {
|
|
26
|
+
icon: url
|
|
27
|
+
} = this.props;
|
|
28
|
+
|
|
29
|
+
if (!url || typeof url !== 'string') {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return /*#__PURE__*/React.createElement(ImageLoader, {
|
|
34
|
+
src: url,
|
|
35
|
+
loaded: /*#__PURE__*/React.createElement(Icon, {
|
|
36
|
+
className: "smart-link-icon",
|
|
37
|
+
src: url,
|
|
38
|
+
"data-testid": `${testId}-image`
|
|
39
|
+
}),
|
|
40
|
+
errored: errored,
|
|
41
|
+
loading: /*#__PURE__*/React.createElement(Shimmer, {
|
|
42
|
+
"data-testid": `${testId}-loading`
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
renderIconPlaceholder(testId) {
|
|
48
|
+
const {
|
|
49
|
+
defaultIcon
|
|
50
|
+
} = this.props;
|
|
51
|
+
|
|
52
|
+
if (defaultIcon) {
|
|
53
|
+
return /*#__PURE__*/React.createElement(IconWrapper, null, defaultIcon);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return /*#__PURE__*/React.createElement(IconWrapper, null, /*#__PURE__*/React.createElement(LinkIcon, {
|
|
57
|
+
label: "link",
|
|
58
|
+
size: "small",
|
|
59
|
+
testId: `${testId}-default`
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
renderIcon(testId) {
|
|
64
|
+
// We render two kinds of icons here:
|
|
65
|
+
// - Image: acquired from either DAC or Teamwork Platform Apps;
|
|
66
|
+
// - Atlaskit Icon: an Atlaskit SVG;
|
|
67
|
+
// Each of these are scaled down to 12x12.
|
|
68
|
+
const icon = this.renderAtlaskitIcon();
|
|
69
|
+
|
|
70
|
+
if (icon) {
|
|
71
|
+
return icon;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const placeholder = this.renderIconPlaceholder(testId);
|
|
75
|
+
const image = this.renderImageIcon(placeholder, testId);
|
|
76
|
+
return image || placeholder;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
render() {
|
|
80
|
+
const {
|
|
81
|
+
children,
|
|
82
|
+
title,
|
|
83
|
+
titleColor,
|
|
84
|
+
titleTextColor,
|
|
85
|
+
testId = 'inline-card-icon-and-title'
|
|
86
|
+
} = this.props;
|
|
87
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(IconTitleWrapper, {
|
|
88
|
+
style: {
|
|
89
|
+
color: titleColor
|
|
90
|
+
}
|
|
91
|
+
}, /*#__PURE__*/React.createElement(IconPositionWrapper, null, children || /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(IconEmptyWrapper, null), this.renderIcon(testId))), /*#__PURE__*/React.createElement(TitleWrapper, {
|
|
92
|
+
style: {
|
|
93
|
+
color: titleTextColor
|
|
94
|
+
},
|
|
95
|
+
className: TitleWrapperClassName
|
|
96
|
+
}, title)));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import styled from '@emotion/styled'; // TODO: remove this override behaviour for @atlaskit/icon-object
|
|
2
|
+
|
|
3
|
+
export const IconObjectOverrides = `
|
|
4
|
+
& > span {
|
|
5
|
+
height: 16px;
|
|
6
|
+
width: 14px;
|
|
7
|
+
position: absolute;
|
|
8
|
+
top: 0;
|
|
9
|
+
left: 0;
|
|
10
|
+
line-height: 14px;
|
|
11
|
+
& > svg {
|
|
12
|
+
position: absolute;
|
|
13
|
+
top: 50%;
|
|
14
|
+
left: 50%;
|
|
15
|
+
transform: translate(-50%, -50%);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`; // TODO: remove this override behaviour for @atlaskit/icon
|
|
19
|
+
|
|
20
|
+
export const IconOverrides = `
|
|
21
|
+
& > * > span {
|
|
22
|
+
height: 16px;
|
|
23
|
+
width: 14px;
|
|
24
|
+
position: absolute;
|
|
25
|
+
top: 0;
|
|
26
|
+
left: 0;
|
|
27
|
+
& > svg {
|
|
28
|
+
position: absolute;
|
|
29
|
+
top: 50%;
|
|
30
|
+
left: 50%;
|
|
31
|
+
transform: translate(-50%, -50%);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`; // Wraps all icons represented in Inline Links. Icons have three sources/types:
|
|
35
|
+
// - JSON-LD: from the generator.icon property coming back from ORS.
|
|
36
|
+
// - @atlaskit/icon: for lock icons, unauthorized, etc.
|
|
37
|
+
// - @atlaskit/icon-object: for object icons, e.g. repository, branch, etc.
|
|
38
|
+
// NB: the first set of overrides style icons imported from @atlaskit/icon-object correctly.
|
|
39
|
+
// NB: the second set of overrides style icons imported from @atlaskit/icon correctly.
|
|
40
|
+
|
|
41
|
+
export const IconWrapper = styled.span`
|
|
42
|
+
user-select: none;
|
|
43
|
+
${IconOverrides}
|
|
44
|
+
${IconObjectOverrides}
|
|
45
|
+
`; // Wraps all emoji in Inline Links similar to icon
|
|
46
|
+
|
|
47
|
+
export const EmojiWrapper = styled.span`
|
|
48
|
+
display: inline-block;
|
|
49
|
+
margin-right: 2px;
|
|
50
|
+
user-select: none;
|
|
51
|
+
${IconOverrides}
|
|
52
|
+
${IconObjectOverrides}
|
|
53
|
+
`; // The main 'wrapping' element, title of the content.
|
|
54
|
+
// NB: `white-space` adds little whitespace before wrapping.
|
|
55
|
+
// NB: `hyphens` enables hyphenation on word break.
|
|
56
|
+
|
|
57
|
+
export const IconTitleWrapper = styled.span`
|
|
58
|
+
hyphens: auto;
|
|
59
|
+
white-space: pre-wrap;
|
|
60
|
+
overflow-wrap: break-word;
|
|
61
|
+
word-break: break-word;
|
|
62
|
+
`; // TODO: Replace overrides with proper AtlasKit solution.
|
|
63
|
+
|
|
64
|
+
export const LozengeWrapper = styled.span`
|
|
65
|
+
display: inline-block;
|
|
66
|
+
vertical-align: 1px;
|
|
67
|
+
& > span {
|
|
68
|
+
margin-left: 4px;
|
|
69
|
+
padding: 2px 0 2px 0;
|
|
70
|
+
}
|
|
71
|
+
`; // TODO: Replace overrides with proper AtlasKit solution.
|
|
72
|
+
|
|
73
|
+
export const LozengeBlockWrapper = styled.span`
|
|
74
|
+
& > span {
|
|
75
|
+
margin-left: 4px;
|
|
76
|
+
padding: 2px 0 2px 0;
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
export const RightIconPositionWrapper = styled.span`
|
|
80
|
+
margin-left: 2px;
|
|
81
|
+
margin-right: 4px;
|
|
82
|
+
position: relative;
|
|
83
|
+
display: inline-block;
|
|
84
|
+
`; // The following components are used to absolutely position icons in the vertical center.
|
|
85
|
+
// - IconPositionWrapper: the `relative` parent which has no height in itself.
|
|
86
|
+
// - IconEmptyWrapper: the child which forces `IconPositionWrapper` to have a height.
|
|
87
|
+
|
|
88
|
+
export const IconPositionWrapper = styled.span`
|
|
89
|
+
margin-right: 4px;
|
|
90
|
+
position: relative;
|
|
91
|
+
display: inline-block;
|
|
92
|
+
`;
|
|
93
|
+
export const IconEmptyWrapper = styled.span`
|
|
94
|
+
width: 14px;
|
|
95
|
+
height: 100%;
|
|
96
|
+
display: inline-block;
|
|
97
|
+
opacity: 0;
|
|
98
|
+
`; // With emotion it's not possible to use reference to `TitleWrapper` as part of a selector,
|
|
99
|
+
// To achieve same result we use classname instead.
|
|
100
|
+
|
|
101
|
+
export const TitleWrapperClassName = 'smart-link-title-wrapper';
|
|
102
|
+
export const TitleWrapper = styled.span``;
|