@atlaskit/editor-common 74.57.0 → 74.58.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 +7 -0
- package/dist/cjs/element-browser/ElementBrowser.js +152 -0
- package/dist/cjs/element-browser/ViewMore.js +39 -0
- package/dist/cjs/element-browser/components/CategoryList.js +115 -0
- package/dist/cjs/element-browser/components/ElementBrowserLoader.js +36 -0
- package/dist/cjs/element-browser/components/ElementList/ElementList.js +256 -0
- package/dist/cjs/element-browser/components/ElementList/EmptyState.js +47 -0
- package/dist/cjs/element-browser/components/ElementList/NotFoundIllustration.js +70 -0
- package/dist/cjs/element-browser/components/ElementList/cellSizeAndPositionGetter.js +42 -0
- package/dist/cjs/element-browser/components/ElementList/utils.js +54 -0
- package/dist/cjs/element-browser/components/ElementSearch.js +88 -0
- package/dist/cjs/element-browser/components/StatelessElementBrowser.js +269 -0
- package/dist/cjs/element-browser/constants.js +41 -0
- package/dist/cjs/element-browser/hooks/use-container-width.js +70 -0
- package/dist/cjs/element-browser/hooks/use-focus.js +51 -0
- package/dist/cjs/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +286 -0
- package/dist/cjs/element-browser/index.js +20 -0
- package/dist/cjs/element-browser/types.js +12 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/utils/performance/measure-render.js +4 -3
- package/dist/cjs/utils/performance/measure-tti.js +9 -3
- package/dist/es2019/element-browser/ElementBrowser.js +117 -0
- package/dist/es2019/element-browser/ViewMore.js +40 -0
- package/dist/es2019/element-browser/components/CategoryList.js +106 -0
- package/dist/es2019/element-browser/components/ElementBrowserLoader.js +21 -0
- package/dist/es2019/element-browser/components/ElementList/ElementList.js +320 -0
- package/dist/es2019/element-browser/components/ElementList/EmptyState.js +58 -0
- package/dist/es2019/element-browser/components/ElementList/NotFoundIllustration.js +65 -0
- package/dist/es2019/element-browser/components/ElementList/cellSizeAndPositionGetter.js +39 -0
- package/dist/es2019/element-browser/components/ElementList/utils.js +50 -0
- package/dist/es2019/element-browser/components/ElementSearch.js +117 -0
- package/dist/es2019/element-browser/components/StatelessElementBrowser.js +339 -0
- package/dist/es2019/element-browser/constants.js +23 -0
- package/dist/es2019/element-browser/hooks/use-container-width.js +59 -0
- package/dist/es2019/element-browser/hooks/use-focus.js +48 -0
- package/dist/es2019/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +284 -0
- package/dist/es2019/element-browser/index.js +2 -0
- package/dist/es2019/element-browser/types.js +5 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/utils/performance/measure-render.js +2 -3
- package/dist/es2019/utils/performance/measure-tti.js +9 -3
- package/dist/esm/element-browser/ElementBrowser.js +142 -0
- package/dist/esm/element-browser/ViewMore.js +31 -0
- package/dist/esm/element-browser/components/CategoryList.js +105 -0
- package/dist/esm/element-browser/components/ElementBrowserLoader.js +23 -0
- package/dist/esm/element-browser/components/ElementList/ElementList.js +241 -0
- package/dist/esm/element-browser/components/ElementList/EmptyState.js +40 -0
- package/dist/esm/element-browser/components/ElementList/NotFoundIllustration.js +63 -0
- package/dist/esm/element-browser/components/ElementList/cellSizeAndPositionGetter.js +37 -0
- package/dist/esm/element-browser/components/ElementList/utils.js +46 -0
- package/dist/esm/element-browser/components/ElementSearch.js +77 -0
- package/dist/esm/element-browser/components/StatelessElementBrowser.js +258 -0
- package/dist/esm/element-browser/constants.js +23 -0
- package/dist/esm/element-browser/hooks/use-container-width.js +61 -0
- package/dist/esm/element-browser/hooks/use-focus.js +46 -0
- package/dist/esm/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +278 -0
- package/dist/esm/element-browser/index.js +2 -0
- package/dist/esm/element-browser/types.js +5 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/utils/performance/measure-render.js +2 -3
- package/dist/esm/utils/performance/measure-tti.js +9 -3
- package/dist/types/analytics/types/general-events.d.ts +2 -1
- package/dist/types/element-browser/ElementBrowser.d.ts +37 -0
- package/dist/types/element-browser/ViewMore.d.ts +6 -0
- package/dist/types/element-browser/components/CategoryList.d.ts +10 -0
- package/dist/types/element-browser/components/ElementBrowserLoader.d.ts +6 -0
- package/dist/types/element-browser/components/ElementList/ElementList.d.ts +33 -0
- package/dist/types/element-browser/components/ElementList/EmptyState.d.ts +6 -0
- package/dist/types/element-browser/components/ElementList/NotFoundIllustration.d.ts +2 -0
- package/dist/types/element-browser/components/ElementList/cellSizeAndPositionGetter.d.ts +7 -0
- package/dist/types/element-browser/components/ElementList/utils.d.ts +12 -0
- package/dist/types/element-browser/components/ElementSearch.d.ts +18 -0
- package/dist/types/element-browser/components/StatelessElementBrowser.d.ts +23 -0
- package/dist/types/element-browser/constants.d.ts +19 -0
- package/dist/types/element-browser/hooks/use-container-width.d.ts +33 -0
- package/dist/types/element-browser/hooks/use-focus.d.ts +35 -0
- package/dist/types/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts +72 -0
- package/dist/types/element-browser/index.d.ts +2 -0
- package/dist/types/element-browser/types.d.ts +12 -0
- package/dist/types/types/quick-insert.d.ts +1 -0
- package/dist/types/utils/performance/measure-render.d.ts +6 -4
- package/dist/types/utils/performance/measure-tti.d.ts +1 -1
- package/dist/types-ts4.5/analytics/types/general-events.d.ts +2 -1
- package/dist/types-ts4.5/element-browser/ElementBrowser.d.ts +37 -0
- package/dist/types-ts4.5/element-browser/ViewMore.d.ts +6 -0
- package/dist/types-ts4.5/element-browser/components/CategoryList.d.ts +10 -0
- package/dist/types-ts4.5/element-browser/components/ElementBrowserLoader.d.ts +6 -0
- package/dist/types-ts4.5/element-browser/components/ElementList/ElementList.d.ts +33 -0
- package/dist/types-ts4.5/element-browser/components/ElementList/EmptyState.d.ts +6 -0
- package/dist/types-ts4.5/element-browser/components/ElementList/NotFoundIllustration.d.ts +2 -0
- package/dist/types-ts4.5/element-browser/components/ElementList/cellSizeAndPositionGetter.d.ts +7 -0
- package/dist/types-ts4.5/element-browser/components/ElementList/utils.d.ts +12 -0
- package/dist/types-ts4.5/element-browser/components/ElementSearch.d.ts +18 -0
- package/dist/types-ts4.5/element-browser/components/StatelessElementBrowser.d.ts +23 -0
- package/dist/types-ts4.5/element-browser/constants.d.ts +19 -0
- package/dist/types-ts4.5/element-browser/hooks/use-container-width.d.ts +33 -0
- package/dist/types-ts4.5/element-browser/hooks/use-focus.d.ts +35 -0
- package/dist/types-ts4.5/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts +72 -0
- package/dist/types-ts4.5/element-browser/index.d.ts +2 -0
- package/dist/types-ts4.5/element-browser/types.d.ts +12 -0
- package/dist/types-ts4.5/types/quick-insert.d.ts +1 -0
- package/dist/types-ts4.5/utils/performance/measure-render.d.ts +6 -4
- package/dist/types-ts4.5/utils/performance/measure-tti.d.ts +1 -1
- package/element-browser/package.json +15 -0
- package/package.json +6 -2
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = EmptyState;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = require("@emotion/react");
|
|
10
|
+
var _reactIntlNext = require("react-intl-next");
|
|
11
|
+
var _button = _interopRequireDefault(require("@atlaskit/button"));
|
|
12
|
+
var _NotFoundIllustration = _interopRequireDefault(require("./NotFoundIllustration"));
|
|
13
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
14
|
+
/** @jsx jsx */
|
|
15
|
+
function EmptyState(_ref) {
|
|
16
|
+
var onExternalLinkClick = _ref.onExternalLinkClick;
|
|
17
|
+
return (0, _react.jsx)("div", {
|
|
18
|
+
css: emptyStateWrapper
|
|
19
|
+
}, (0, _react.jsx)(_NotFoundIllustration.default, null), (0, _react.jsx)("div", {
|
|
20
|
+
css: emptyStateHeading
|
|
21
|
+
}, (0, _react.jsx)(_reactIntlNext.FormattedMessage, {
|
|
22
|
+
id: "fabric.editor.elementbrowser.search.empty-state.heading",
|
|
23
|
+
defaultMessage: "Nothing matches your search",
|
|
24
|
+
description: "Empty state heading"
|
|
25
|
+
})), (0, _react.jsx)("div", {
|
|
26
|
+
css: emptyStateSubHeading
|
|
27
|
+
}, (0, _react.jsx)("p", null, (0, _react.jsx)(_reactIntlNext.FormattedMessage, {
|
|
28
|
+
id: "fabric.editor.elementbrowser.search.empty-state.sub-heading",
|
|
29
|
+
defaultMessage: "Try searching with a different term or discover new apps for Atlassian products.",
|
|
30
|
+
description: "Empty state sub-heading"
|
|
31
|
+
})), (0, _react.jsx)("div", {
|
|
32
|
+
css: externalLinkWrapper
|
|
33
|
+
}, (0, _react.jsx)(_button.default, {
|
|
34
|
+
appearance: "primary",
|
|
35
|
+
target: "_blank",
|
|
36
|
+
href: "https://marketplace.atlassian.com/search?category=Macros&hosting=cloud&product=confluence",
|
|
37
|
+
onClick: onExternalLinkClick
|
|
38
|
+
}, (0, _react.jsx)(_reactIntlNext.FormattedMessage, {
|
|
39
|
+
id: "fabric.editor.elementbrowser.search.empty-state.sub-heading.link",
|
|
40
|
+
defaultMessage: "Explore Atlassian Marketplace",
|
|
41
|
+
description: "Empty state sub-heading external link"
|
|
42
|
+
})))));
|
|
43
|
+
}
|
|
44
|
+
var emptyStateHeading = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-size: 1.42857em;\n line-height: 1.2;\n color: ", ";\n font-weight: 500;\n letter-spacing: -0.008em;\n margin-top: 28px;\n"])), "var(--ds-text, rgb(23, 43, 77))");
|
|
45
|
+
var emptyStateSubHeading = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n max-width: 400px;\n text-align: center;\n"])), "var(--ds-space-200, 16px)");
|
|
46
|
+
var emptyStateWrapper = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n"])));
|
|
47
|
+
var externalLinkWrapper = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: 14px;\n"])));
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = NotFoundIllustration;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = require("@emotion/react");
|
|
10
|
+
var _templateObject;
|
|
11
|
+
/** @jsx jsx */
|
|
12
|
+
var imageContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 120px;\n height: 111px;\n margin-top: ", ";\n"])), "var(--ds-space-600, 48px)");
|
|
13
|
+
|
|
14
|
+
/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
|
|
15
|
+
function NotFoundIllustration() {
|
|
16
|
+
return (0, _react.jsx)("div", {
|
|
17
|
+
css: imageContainer
|
|
18
|
+
}, (0, _react.jsx)("svg", {
|
|
19
|
+
width: "120",
|
|
20
|
+
height: "111",
|
|
21
|
+
fill: "none",
|
|
22
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
23
|
+
}, (0, _react.jsx)("g", {
|
|
24
|
+
clipPath: "url(#clip0)"
|
|
25
|
+
}, (0, _react.jsx)("path", {
|
|
26
|
+
fill: "#fff",
|
|
27
|
+
fillOpacity: ".01",
|
|
28
|
+
d: "M0 0h120v110.365H0z"
|
|
29
|
+
}), (0, _react.jsx)("path", {
|
|
30
|
+
opacity: ".3",
|
|
31
|
+
d: "M60.985 110.336c-.539.017-1.078.029-1.616.035a1.359 1.359 0 01-1.367-1.36 1.361 1.361 0 011.314-1.372h.041a50.876 50.876 0 0010.276-1.105 1.367 1.367 0 01.568 2.674 54.422 54.422 0 01-9.216 1.128zM52 109.877c-.075 0-.156 0-.237-.012a52.688 52.688 0 01-10.583-2.61 1.368 1.368 0 01.92-2.575c3.245 1.169 6.616 2 10.034 2.471.747.104 1.268.79 1.164 1.54A1.36 1.36 0 0152 109.877zM77.088 107.162a1.364 1.364 0 01-1.326-.895 1.366 1.366 0 01.805-1.755 50.423 50.423 0 009.274-4.575 1.358 1.358 0 011.877.43c.4.64.208 1.482-.429 1.884a53.25 53.25 0 01-9.772 4.824 1.26 1.26 0 01-.429.087zM34.9 104.32a1.359 1.359 0 01-.683-.157 53.29 53.29 0 01-9.042-6.092 1.369 1.369 0 01-.18-1.924 1.357 1.357 0 011.918-.18 50.483 50.483 0 008.578 5.778c.667.354.916 1.18.562 1.848a1.337 1.337 0 01-1.152.727zM20.732 93.23a1.372 1.372 0 01-1.06-.448 53.223 53.223 0 01-6.436-8.818 1.37 1.37 0 01.487-1.872 1.36 1.36 0 011.865.489 50.724 50.724 0 006.105 8.364 1.366 1.366 0 01-.098 1.93c-.25.226-.556.343-.863.354zM104.093 84.196a1.367 1.367 0 01-1.228-2.046 50.41 50.41 0 004.183-9.48 1.358 1.358 0 011.714-.878 1.365 1.365 0 01.875 1.72 53.17 53.17 0 01-4.414 9.993 1.34 1.34 0 01-1.13.691zM11.18 77.965a1.365 1.365 0 01-1.31-.854 52.827 52.827 0 01-3.029-10.498 1.362 1.362 0 112.682-.483 50.732 50.732 0 002.873 9.958 1.363 1.363 0 01-1.216 1.877zM110.17 67.218a1.362 1.362 0 01-1.39-1.593c.579-3.395.805-6.876.683-10.347l-.006-.116a1.36 1.36 0 011.315-1.412 1.359 1.359 0 011.408 1.32l.006.115a54.054 54.054 0 01-.724 10.905 1.36 1.36 0 01-1.292 1.128zM7.426 60.3c-.753.03-1.384-.534-1.407-1.29v-.058a53.82 53.82 0 01.712-10.846 1.368 1.368 0 011.57-1.122c.741.128 1.24.83 1.118 1.575a51.307 51.307 0 00-.678 10.288c.029.762-.562 1.425-1.315 1.453zM110.06 49.076a1.363 1.363 0 01-1.385-1.122 50.567 50.567 0 00-2.884-9.95c-.284-.698.052-1.5.747-1.785a1.365 1.365 0 011.778.75 53.085 53.085 0 013.041 10.497 1.37 1.37 0 01-1.094 1.593l-.203.017zM9.888 42.462a1.452 1.452 0 01-.47-.065 1.365 1.365 0 01-.874-1.72 53.157 53.157 0 014.402-9.998 1.362 1.362 0 011.86-.511c.655.372.88 1.209.51 1.866a50.68 50.68 0 00-4.177 9.486 1.37 1.37 0 01-1.251.941zM103.815 32.179a1.355 1.355 0 01-1.222-.674 50.958 50.958 0 00-6.117-8.359 1.366 1.366 0 01.099-1.93 1.355 1.355 0 011.923.099 53.449 53.449 0 016.447 8.806 1.37 1.37 0 01-.487 1.872 1.432 1.432 0 01-.643.186zM18.31 26.529a1.372 1.372 0 01-1.124-2.209 53.551 53.551 0 017.537-7.888 1.363 1.363 0 011.923.157 1.375 1.375 0 01-.156 1.93 51.072 51.072 0 00-7.154 7.487 1.343 1.343 0 01-1.025.523zM92.172 18.444a1.352 1.352 0 01-.915-.314 50.861 50.861 0 00-8.59-5.772 1.368 1.368 0 01-.568-1.849 1.364 1.364 0 011.842-.57 53.153 53.153 0 019.048 6.08c.58.483.66 1.343.18 1.925a1.366 1.366 0 01-.997.5zM31.64 14.433a1.368 1.368 0 01-.776-2.523 53.107 53.107 0 019.771-4.836 1.359 1.359 0 011.75.808c.26.71-.099 1.494-.805 1.755a50.203 50.203 0 00-9.269 4.587c-.208.133-.44.203-.672.209zM76.555 9.51a1.257 1.257 0 01-.504-.082A50.06 50.06 0 0066.013 6.97a1.364 1.364 0 01-1.165-1.54 1.364 1.364 0 011.535-1.168 52.623 52.623 0 0110.584 2.592 1.369 1.369 0 01-.412 2.657zM48.287 7.65a1.367 1.367 0 01-.33-2.703 54.261 54.261 0 0110.827-1.18 1.367 1.367 0 011.372 1.36 1.367 1.367 0 01-1.314 1.377H58.8A50.85 50.85 0 0048.525 7.62c-.081.018-.162.024-.238.03z",
|
|
32
|
+
fill: "#B3BAC5"
|
|
33
|
+
}), (0, _react.jsx)("path", {
|
|
34
|
+
opacity: ".3",
|
|
35
|
+
d: "M110.523 19.873a.304.304 0 01-.226-.325l.035-.262c.029-.168.064-.348.11-.534a4.423 4.423 0 01.95-1.796c.458-.53 1.118-.971 1.97-1.314l1.436-.587c.858-.343 1.385-.913 1.593-1.697a2.48 2.48 0 00.07-.878 1.998 1.998 0 00-.273-.849c-.156-.261-.37-.5-.654-.709a3.07 3.07 0 00-1.049-.477c-.451-.116-.851-.133-1.21-.052a2.56 2.56 0 00-.956.43c-.278.204-.51.465-.695.78-.191.313-.33.65-.423.999-.029.104-.052.21-.07.302a.459.459 0 01-.59.355l-2.219-.68a.464.464 0 01-.33-.483c.006-.07.017-.14.029-.21.035-.197.075-.383.121-.569.174-.668.47-1.29.887-1.866a5.14 5.14 0 011.546-1.412c.614-.366 1.31-.605 2.097-.72.788-.117 1.645-.047 2.578.197.967.256 1.778.622 2.433 1.098.66.477 1.176 1.012 1.552 1.599.377.593.614 1.22.707 1.889.093.668.058 1.32-.11 1.953-.261 1-.712 1.796-1.344 2.389a6.773 6.773 0 01-2.288 1.39l-1.211.458c-.341.11-.851.338-1.274.803-.041.046-.214.238-.388.534-.128.221-.22.436-.284.622a.303.303 0 01-.365.192l-2.155-.57zm-1.772 3.412c.145-.552.457-.97.944-1.26a1.942 1.942 0 011.552-.222c.551.146.968.465 1.257.96.29.493.359 1.017.215 1.569a1.966 1.966 0 01-.956 1.25 2.005 2.005 0 01-1.558.203 1.957 1.957 0 01-1.246-.942 1.98 1.98 0 01-.208-1.558zM10.722 12.393a.301.301 0 01-.203-.338l.053-.261c.04-.169.086-.343.15-.523a4.334 4.334 0 011.072-1.727c.492-.5 1.176-.889 2.056-1.18l1.472-.488c.874-.285 1.442-.814 1.703-1.587.092-.279.139-.57.127-.872a2.052 2.052 0 00-.214-.866 2.285 2.285 0 00-.609-.75c-.266-.226-.608-.406-1.013-.546-.44-.151-.846-.192-1.205-.134a2.518 2.518 0 00-1.726 1.099 3.583 3.583 0 00-.585 1.267.461.461 0 01-.615.314L9.02 4.976a.467.467 0 01-.295-.506c.011-.07.029-.14.046-.21a5.65 5.65 0 01.162-.557A5.505 5.505 0 019.946 1.9 5.246 5.246 0 0111.579.593a5.545 5.545 0 012.138-.576c.793-.058 1.645.064 2.554.372.945.32 1.732.739 2.358 1.262.626.523 1.106 1.087 1.442 1.703.336.616.533 1.255.58 1.93a4.97 4.97 0 01-.244 1.941c-.33.982-.828 1.744-1.506 2.29a6.844 6.844 0 01-2.375 1.233l-1.24.372a2.94 2.94 0 00-1.326.715c-.046.046-.232.226-.423.505-.145.215-.249.419-.324.599a.3.3 0 01-.377.168l-2.114-.714zm-1.998 3.284a2 2 0 011.025-1.198 1.957 1.957 0 011.564-.116c.539.18.933.529 1.188 1.04.254.512.29 1.041.11 1.582-.18.54-.528.935-1.037 1.18a2.019 2.019 0 01-1.57.098 1.96 1.96 0 01-1.182-1.029 1.99 1.99 0 01-.098-1.557zM7.177 104.849a.298.298 0 01-.37-.134c-.041-.076-.082-.157-.122-.238a8.207 8.207 0 01-.215-.5 4.405 4.405 0 01-.249-2.017c.076-.698.36-1.436.863-2.215l.84-1.308c.504-.773.614-1.546.33-2.307a2.6 2.6 0 00-.446-.762 2.019 2.019 0 00-.706-.54 2.421 2.421 0 00-.944-.204 3.05 3.05 0 00-1.13.215c-.434.163-.776.378-1.025.657-.25.273-.423.576-.533.901-.11.326-.15.674-.128 1.04.024.367.099.721.226 1.064.04.105.076.198.116.285a.466.466 0 01-.278.634l-2.201.72a.455.455 0 01-.545-.209c-.034-.064-.063-.128-.098-.192a5.595 5.595 0 01-.568-2.575 5.09 5.09 0 01.458-2.046c.29-.65.724-1.25 1.303-1.796.58-.546 1.32-.988 2.225-1.32.938-.348 1.807-.517 2.618-.505.81.012 1.54.151 2.19.413a4.62 4.62 0 011.656 1.139c.458.494.8 1.046 1.025 1.662.36.971.446 1.884.267 2.732-.18.85-.539 1.669-1.078 2.46l-.73 1.075c-.214.29-.503.767-.585 1.389-.005.064-.04.319-.011.657.023.255.07.482.127.668a.309.309 0 01-.19.372l-2.092.785zm.504 3.813a2.026 2.026 0 01.052-1.581 1.958 1.958 0 011.147-1.076 1.986 1.986 0 011.576.064c.521.239.88.628 1.077 1.163a1.947 1.947 0 01-.07 1.569 2.028 2.028 0 01-1.158 1.064 1.977 1.977 0 01-1.564-.052 1.96 1.96 0 01-1.06-1.151z",
|
|
36
|
+
fill: "#C1C7D0"
|
|
37
|
+
}), (0, _react.jsx)("path", {
|
|
38
|
+
d: "M86.519 77.651l-4.142-4.028-5.578 5.784 4.141 4.028a7.812 7.812 0 012.15 3.772 7.858 7.858 0 002.148 3.773l16.816 16.333a6.405 6.405 0 009.077-.145 6.46 6.46 0 00-.144-9.108L94.171 81.726a7.786 7.786 0 00-3.83-2.034 7.9 7.9 0 01-3.822-2.04z",
|
|
39
|
+
fill: "#CFD4DB"
|
|
40
|
+
}), (0, _react.jsx)("path", {
|
|
41
|
+
d: "M90.18 79.64a7.756 7.756 0 01-3.656-1.995l-1.262-1.226a4 4 0 00-5.671.093 4.032 4.032 0 00.092 5.69l1.263 1.227a7.853 7.853 0 012.103 3.598 33.606 33.606 0 003.858-3.435 33.629 33.629 0 003.273-3.953z",
|
|
42
|
+
fill: "#B3BAC5"
|
|
43
|
+
}), (0, _react.jsx)("path", {
|
|
44
|
+
d: "M59.056 90.677c-8.961.146-17.442-3.22-23.877-9.474-13.295-12.91-13.636-34.266-.77-47.606C40.64 27.14 49.01 23.501 57.966 23.35c8.961-.145 17.441 3.22 23.877 9.475 6.441 6.255 10.062 14.654 10.212 23.64.145 8.992-3.209 17.502-9.442 23.96-6.227 6.47-14.597 10.108-23.558 10.253zM58.1 31.388c-6.824.11-13.19 2.883-17.94 7.801-9.795 10.155-9.534 26.413.585 36.242 4.9 4.76 11.36 7.324 18.183 7.213 6.824-.11 13.19-2.883 17.94-7.8 4.744-4.918 7.299-11.399 7.189-18.246-.11-6.847-2.873-13.236-7.774-18.002-4.906-4.755-11.36-7.318-18.183-7.208z",
|
|
45
|
+
fill: "url(#paint0_linear)"
|
|
46
|
+
}), (0, _react.jsx)("path", {
|
|
47
|
+
d: "M68.886 49.535l-3.093-3.051a1.158 1.158 0 00-1.64.017l-5.67 5.796-5.776-5.691a1.158 1.158 0 00-1.64.017l-3.04 3.104c-.446.46-.44 1.192.017 1.645l5.775 5.69-5.67 5.796c-.447.46-.44 1.192.017 1.645l3.093 3.052a1.158 1.158 0 001.64-.018l5.67-5.795 5.775 5.69a1.158 1.158 0 001.64-.017l3.04-3.104c.447-.459.441-1.191-.017-1.645l-5.775-5.69 5.671-5.795c.446-.46.44-1.198-.017-1.645z",
|
|
48
|
+
fill: "#C1C7D0"
|
|
49
|
+
})), (0, _react.jsx)("defs", null, (0, _react.jsx)("linearGradient", {
|
|
50
|
+
id: "paint0_linear",
|
|
51
|
+
x1: "34.792",
|
|
52
|
+
y1: "80.822",
|
|
53
|
+
x2: "82.401",
|
|
54
|
+
y2: "33.377",
|
|
55
|
+
gradientUnits: "userSpaceOnUse"
|
|
56
|
+
}, (0, _react.jsx)("stop", {
|
|
57
|
+
offset: ".557",
|
|
58
|
+
stopColor: "#C1C7D0"
|
|
59
|
+
}), (0, _react.jsx)("stop", {
|
|
60
|
+
offset: ".966",
|
|
61
|
+
stopColor: "#E9EBEF",
|
|
62
|
+
stopOpacity: ".5"
|
|
63
|
+
})), (0, _react.jsx)("clipPath", {
|
|
64
|
+
id: "clip0"
|
|
65
|
+
}, (0, _react.jsx)("path", {
|
|
66
|
+
fill: "#fff",
|
|
67
|
+
d: "M0 0h120v110.365H0z"
|
|
68
|
+
})))));
|
|
69
|
+
}
|
|
70
|
+
/* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = cellSizeAndPositionGetter;
|
|
7
|
+
var _constants = require("../../constants");
|
|
8
|
+
var _utils = require("./utils");
|
|
9
|
+
/**
|
|
10
|
+
* Callback responsible for returning size and offset/position information
|
|
11
|
+
* for a given cell.
|
|
12
|
+
* https://github.com/bvaughn/react-virtualized/blob/master/docs/Collection.md
|
|
13
|
+
**/
|
|
14
|
+
function cellSizeAndPositionGetter(containerWidth, scrollbarWidth) {
|
|
15
|
+
var GUTTER_SIZE = 4;
|
|
16
|
+
/**
|
|
17
|
+
* Save the currently rendered columnY positions.
|
|
18
|
+
* Have to be within the current render scope.
|
|
19
|
+
*/
|
|
20
|
+
var columnYMap = [];
|
|
21
|
+
return function (_ref) {
|
|
22
|
+
var index = _ref.index;
|
|
23
|
+
var _generateVirtualizedC = (0, _utils.generateVirtualizedContainerDatum)(containerWidth, {
|
|
24
|
+
gutterSize: GUTTER_SIZE,
|
|
25
|
+
scrollbarWidth: scrollbarWidth
|
|
26
|
+
}),
|
|
27
|
+
columnCount = _generateVirtualizedC.columnCount,
|
|
28
|
+
availableWidth = _generateVirtualizedC.availableWidth;
|
|
29
|
+
var width = Math.floor(availableWidth / columnCount);
|
|
30
|
+
var height = _constants.ELEMENT_ITEM_HEIGHT;
|
|
31
|
+
var columnPosition = index % (columnCount || 1);
|
|
32
|
+
var x = columnPosition * width;
|
|
33
|
+
var y = columnYMap[columnPosition] || 0;
|
|
34
|
+
columnYMap[columnPosition] = y + height;
|
|
35
|
+
return {
|
|
36
|
+
height: height,
|
|
37
|
+
width: width,
|
|
38
|
+
x: x,
|
|
39
|
+
y: y
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateVirtualizedContainerDatum = generateVirtualizedContainerDatum;
|
|
7
|
+
exports.getColumnCount = getColumnCount;
|
|
8
|
+
exports.getScrollbarWidth = getScrollbarWidth;
|
|
9
|
+
var _constants = require("../../constants");
|
|
10
|
+
function getColumnCount(clientWidth) {
|
|
11
|
+
var small = _constants.FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS.small,
|
|
12
|
+
medium = _constants.FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS.medium,
|
|
13
|
+
large = _constants.FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS.large;
|
|
14
|
+
switch (true) {
|
|
15
|
+
case clientWidth < small:
|
|
16
|
+
return 1;
|
|
17
|
+
case clientWidth >= small && clientWidth < medium:
|
|
18
|
+
return Math.floor(clientWidth / 200);
|
|
19
|
+
case clientWidth >= large:
|
|
20
|
+
return Math.floor(clientWidth / 248);
|
|
21
|
+
default:
|
|
22
|
+
return Math.floor(clientWidth / 220);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function generateVirtualizedContainerDatum(containerWidth, options) {
|
|
26
|
+
var scrollbarWidth = options.scrollbarWidth;
|
|
27
|
+
var columnCount = getColumnCount(containerWidth);
|
|
28
|
+
var availableWidth = containerWidth - (scrollbarWidth + _constants.ELEMENT_LIST_PADDING);
|
|
29
|
+
return {
|
|
30
|
+
availableWidth: availableWidth,
|
|
31
|
+
columnCount: columnCount
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
var CALCULATED_SCROLLBAR_WIDTH;
|
|
35
|
+
function getScrollbarWidth() {
|
|
36
|
+
if (!CALCULATED_SCROLLBAR_WIDTH) {
|
|
37
|
+
var _container$parentNode;
|
|
38
|
+
var container = document.createElement('div');
|
|
39
|
+
container.style.visibility = 'hidden';
|
|
40
|
+
container.style.overflow = 'scroll';
|
|
41
|
+
document.body.appendChild(container);
|
|
42
|
+
var innerContainer = document.createElement('div');
|
|
43
|
+
container.appendChild(innerContainer);
|
|
44
|
+
var scrollbarWidth = container.offsetWidth - innerContainer.offsetWidth;
|
|
45
|
+
(_container$parentNode = container.parentNode) === null || _container$parentNode === void 0 ? void 0 : _container$parentNode.removeChild(container);
|
|
46
|
+
if (scrollbarWidth) {
|
|
47
|
+
CALCULATED_SCROLLBAR_WIDTH = scrollbarWidth;
|
|
48
|
+
return scrollbarWidth;
|
|
49
|
+
}
|
|
50
|
+
return _constants.SCROLLBAR_WIDTH;
|
|
51
|
+
} else {
|
|
52
|
+
return CALCULATED_SCROLLBAR_WIDTH;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _react2 = require("@emotion/react");
|
|
12
|
+
var _reactIntlNext = require("react-intl-next");
|
|
13
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
14
|
+
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
15
|
+
var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
|
|
16
|
+
var _search = _interopRequireDefault(require("@atlaskit/icon/glyph/search"));
|
|
17
|
+
var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
|
|
18
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
19
|
+
var _constants = require("../constants");
|
|
20
|
+
var _useFocus = _interopRequireDefault(require("../hooks/use-focus"));
|
|
21
|
+
var _types = require("../types");
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
23
|
+
/** @jsx jsx */
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
|
+
function ElementSearch(_ref) {
|
|
27
|
+
var onSearch = _ref.onSearch,
|
|
28
|
+
mode = _ref.mode,
|
|
29
|
+
formatMessage = _ref.intl.formatMessage,
|
|
30
|
+
focus = _ref.focus,
|
|
31
|
+
onClick = _ref.onClick,
|
|
32
|
+
onKeyDown = _ref.onKeyDown,
|
|
33
|
+
searchTerm = _ref.searchTerm;
|
|
34
|
+
var ref = (0, _useFocus.default)(focus);
|
|
35
|
+
var onChange = function onChange(_ref2) {
|
|
36
|
+
var value = _ref2.target.value;
|
|
37
|
+
onSearch(value);
|
|
38
|
+
};
|
|
39
|
+
var onFocus = function onFocus(e) {};
|
|
40
|
+
var onBlur = function onBlur(e) {};
|
|
41
|
+
return (0, _react2.jsx)("div", {
|
|
42
|
+
css: [wrapper, mode === _types.Modes.inline && wrapperInline]
|
|
43
|
+
}, (0, _react2.jsx)(_textfield.default, {
|
|
44
|
+
ref: ref,
|
|
45
|
+
onChange: onChange,
|
|
46
|
+
onClick: onClick,
|
|
47
|
+
onFocus: onFocus,
|
|
48
|
+
onKeyDown: onKeyDown,
|
|
49
|
+
onBlur: onBlur,
|
|
50
|
+
elemBeforeInput: (0, _react2.jsx)("div", {
|
|
51
|
+
css: elementBeforeInput,
|
|
52
|
+
"data-testid": "element_search__element_before_input"
|
|
53
|
+
}, (0, _react2.jsx)(_search.default, {
|
|
54
|
+
size: "medium",
|
|
55
|
+
label: "Advanced search",
|
|
56
|
+
primaryColor: "inherit"
|
|
57
|
+
})),
|
|
58
|
+
elemAfterInput: (0, _react2.jsx)("div", {
|
|
59
|
+
css: elementAfterInput,
|
|
60
|
+
"data-testid": "element_search__element_after_input"
|
|
61
|
+
}, (0, _react2.jsx)("div", {
|
|
62
|
+
css: styledShortcut
|
|
63
|
+
}, "\u23CE ", formatMessage(elementAfterInputMessage))),
|
|
64
|
+
placeholder: formatMessage(placeHolderMessage),
|
|
65
|
+
"aria-label": "search",
|
|
66
|
+
value: searchTerm
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
var elementAfterInputMessage = {
|
|
70
|
+
id: 'fabric.editor.elementbrowser.searchbar.elementAfterInput',
|
|
71
|
+
defaultMessage: 'Enter',
|
|
72
|
+
description: 'Enter to insert'
|
|
73
|
+
};
|
|
74
|
+
var placeHolderMessage = {
|
|
75
|
+
id: 'fabric.editor.elementbrowser.searchbar.placeholder',
|
|
76
|
+
defaultMessage: 'Search',
|
|
77
|
+
description: 'Search field placeholder'
|
|
78
|
+
};
|
|
79
|
+
var styledShortcut = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n padding: ", "px ", "px;\n width: ", "px;\n"])), _shortcut.shortcutStyle, _constants.GRID_SIZE / 2, _constants.GRID_SIZE, _constants.GRID_SIZE * 6);
|
|
80
|
+
var wrapper = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n & > [data-ds--text-field--container] {\n height: ", "px;\n border-radius: ", "px;\n flex: 1 1 100%;\n overflow: visible;\n & > [data-ds--text-field--input] {\n margin-bottom: 3px;\n font-size: ", ";\n padding: ", "px ", " ", "px 0;\n }\n }\n"])), _constants.GRID_SIZE * 6, _constants.GRID_SIZE, (0, _editorSharedStyles.relativeFontSizeToBase16)(14), _constants.GRID_SIZE, "var(--ds-space-075, 6px)", _constants.GRID_SIZE);
|
|
81
|
+
var wrapperInline = (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n & > [data-ds--text-field--container] {\n height: ", "px;\n flex: none;\n overflow: revert;\n }\n"])), _constants.GRID_SIZE * 5);
|
|
82
|
+
var elementBeforeInput = (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin: 1px ", " 0 ", ";\n color: ", ";\n\n // Custom SearchIcon style\n span,\n svg {\n height: 20px;\n width: 20px;\n }\n"])), "var(--ds-space-075, 6px)", "var(--ds-space-100, 8px)", "var(--ds-icon, ".concat(_colors.N200, ")"));
|
|
83
|
+
var elementAfterInput = (0, _react2.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n margin: 0 ", ";\n height: ", ";\n text-align: center;\n"])), "var(--ds-space-100, 8px)", _constants.SEARCH_ITEM_HEIGHT_WIDTH);
|
|
84
|
+
var MemoizedElementSearchWithAnalytics = /*#__PURE__*/(0, _react.memo)((0, _analyticsNext.withAnalyticsContext)({
|
|
85
|
+
component: 'Searchbar'
|
|
86
|
+
})((0, _reactIntlNext.injectIntl)(ElementSearch)));
|
|
87
|
+
var _default = MemoizedElementSearchWithAnalytics;
|
|
88
|
+
exports.default = _default;
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _react2 = require("@emotion/react");
|
|
14
|
+
var _reactIntlNext = require("react-intl-next");
|
|
15
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
16
|
+
var _analytics = require("../../analytics");
|
|
17
|
+
var _constants = require("../constants");
|
|
18
|
+
var _useContainerWidth2 = _interopRequireDefault(require("../hooks/use-container-width"));
|
|
19
|
+
var _useSelectAndFocusOnArrowNavigation = _interopRequireDefault(require("../hooks/use-select-and-focus-on-arrow-navigation"));
|
|
20
|
+
var _ViewMore = require("../ViewMore");
|
|
21
|
+
var _CategoryList = _interopRequireDefault(require("./CategoryList"));
|
|
22
|
+
var _ElementList = _interopRequireDefault(require("./ElementList/ElementList"));
|
|
23
|
+
var _ElementSearch = _interopRequireDefault(require("./ElementSearch"));
|
|
24
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
|
|
25
|
+
/** @jsx jsx */
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
+
var wrapper = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n max-height: inherit;\n overflow: hidden;\n"])));
|
|
29
|
+
var baseBrowserContainerStyles = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n height: 100%;\n /** Needed for Safari to work with current css.\n * 100% heights wont work and\n * will default to auto if one of the containers doesn't have a specified height in pixels.\n * Setting the min-height to fill available fits safari's needs and the above 100% height works on the rest of the browsers.\n */\n\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n\n /* stylelint-disable-next-line */\n min-height: -webkit-fill-available;\n"])));
|
|
30
|
+
var mobileElementBrowserContainer = (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n flex-direction: column;\n"])), baseBrowserContainerStyles);
|
|
31
|
+
var elementBrowserContainer = (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n flex-direction: row;\n"])), baseBrowserContainerStyles);
|
|
32
|
+
var baseSidebarStyles = (0, _react2.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n\n overflow-x: auto;\n overflow-y: hidden;\n"])));
|
|
33
|
+
var mobileSideBar = (0, _react2.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n flex: 0 0 ", ";\n padding: ", " ", " 0\n ", ";\n"])), baseSidebarStyles, _constants.INLINE_SIDEBAR_HEIGHT, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)");
|
|
34
|
+
var mobileSideBarShowCategories = (0, _react2.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n flex: 0 0 auto;\n"])));
|
|
35
|
+
var sideBar = (0, _react2.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n flex: 0 0 'auto';\n"])), baseSidebarStyles);
|
|
36
|
+
var sideBarShowCategories = (0, _react2.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n flex: 0 0 ", ";\n"])), baseSidebarStyles, _constants.SIDEBAR_WIDTH);
|
|
37
|
+
var sidebarHeading = (0, _react2.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n flex: 0 0 ", ";\n display: inline-flex;\n align-items: center;\n padding-left: ", ";\n font-weight: 700;\n"])), _constants.SIDEBAR_HEADING_WRAPPER_HEIGHT, _constants.SIDEBAR_HEADING_PADDING_LEFT);
|
|
38
|
+
var mobileMainContent = (0, _react2.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 auto;\n\n display: flex;\n flex-direction: column;\n\n overflow-y: auto;\n height: 100%;\n"])));
|
|
39
|
+
var mainContent = (0, _react2.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n margin-left: ", "px;\n // Needed for safari\n height: auto;\n"])), mobileMainContent, _constants.GRID_SIZE * 2);
|
|
40
|
+
var searchContainer = (0, _react2.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n padding-bottom: ", "px;\n"])), _constants.GRID_SIZE * 2);
|
|
41
|
+
var mobileCategoryListWrapper = (0, _react2.css)(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n overflow-x: auto;\n\n padding: ", "px 0 ", "px 0;\n min-height: ", "px;\n\n overflow: -moz-scrollbars-none;\n ::-webkit-scrollbar {\n display: none;\n }\n scrollbar-width: none;\n -ms-overflow-style: none;\n"])), _constants.GRID_SIZE, _constants.GRID_SIZE * 2, _constants.GRID_SIZE * 4);
|
|
42
|
+
var categoryListWrapper = (0, _react2.css)(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n padding: 0;\n margin-top: ", "px;\n flex-direction: column;\n"])), mobileCategoryListWrapper, _constants.GRID_SIZE * 3);
|
|
43
|
+
function StatelessElementBrowser(props) {
|
|
44
|
+
var items = props.items,
|
|
45
|
+
onSelectItem = props.onSelectItem,
|
|
46
|
+
onInsertItem = props.onInsertItem,
|
|
47
|
+
viewMoreItem = props.viewMoreItem;
|
|
48
|
+
var _useContainerWidth = (0, _useContainerWidth2.default)(),
|
|
49
|
+
containerWidth = _useContainerWidth.containerWidth,
|
|
50
|
+
ContainerWidthMonitor = _useContainerWidth.ContainerWidthMonitor;
|
|
51
|
+
var _useState = (0, _react.useState)(1),
|
|
52
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
53
|
+
columnCount = _useState2[0],
|
|
54
|
+
setColumnCount = _useState2[1];
|
|
55
|
+
var _useSelectAndFocusOnA = (0, _useSelectAndFocusOnArrowNavigation.default)(items.length - 1, columnCount, !!viewMoreItem),
|
|
56
|
+
selectedItemIndex = _useSelectAndFocusOnA.selectedItemIndex,
|
|
57
|
+
focusedItemIndex = _useSelectAndFocusOnA.focusedItemIndex,
|
|
58
|
+
setFocusedItemIndex = _useSelectAndFocusOnA.setFocusedItemIndex,
|
|
59
|
+
focusOnSearch = _useSelectAndFocusOnA.focusOnSearch,
|
|
60
|
+
focusOnViewMore = _useSelectAndFocusOnA.focusOnViewMore,
|
|
61
|
+
onKeyDown = _useSelectAndFocusOnA.onKeyDown,
|
|
62
|
+
setFocusOnSearch = _useSelectAndFocusOnA.setFocusOnSearch;
|
|
63
|
+
(0, _react.useEffect)(function () {
|
|
64
|
+
(0, _analytics.fireAnalyticsEvent)(props.createAnalyticsEvent)({
|
|
65
|
+
payload: {
|
|
66
|
+
action: _analytics.ACTION.OPENED,
|
|
67
|
+
actionSubject: _analytics.ACTION_SUBJECT.ELEMENT_BROWSER,
|
|
68
|
+
eventType: _analytics.EVENT_TYPE.UI,
|
|
69
|
+
attributes: {
|
|
70
|
+
mode: props.mode
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return function () {
|
|
75
|
+
(0, _analytics.fireAnalyticsEvent)(props.createAnalyticsEvent)({
|
|
76
|
+
payload: {
|
|
77
|
+
action: _analytics.ACTION.CLOSED,
|
|
78
|
+
actionSubject: _analytics.ACTION_SUBJECT.ELEMENT_BROWSER,
|
|
79
|
+
eventType: _analytics.EVENT_TYPE.UI,
|
|
80
|
+
attributes: {
|
|
81
|
+
mode: props.mode
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
}, [props.createAnalyticsEvent, props.mode]);
|
|
87
|
+
|
|
88
|
+
/* Only for hitting enter to select item when focused on search bar,
|
|
89
|
+
* The actual enter key press is handled on individual items level.
|
|
90
|
+
*/
|
|
91
|
+
var selectedItem = selectedItemIndex !== undefined ? items[selectedItemIndex] : null;
|
|
92
|
+
var onItemsEnterKeyPress = (0, _react.useCallback)(function (e) {
|
|
93
|
+
if (e.key !== 'Enter') {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (onInsertItem && selectedItem != null) {
|
|
97
|
+
onInsertItem(selectedItem);
|
|
98
|
+
}
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
}, [onInsertItem, selectedItem]);
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* On arrow key selection and clicks the selectedItemIndex will change.
|
|
104
|
+
* Making sure to update parent component.
|
|
105
|
+
*/
|
|
106
|
+
(0, _react.useEffect)(function () {
|
|
107
|
+
if (onSelectItem && selectedItem != null) {
|
|
108
|
+
onSelectItem(selectedItem);
|
|
109
|
+
}
|
|
110
|
+
}, [onSelectItem, selectedItem]);
|
|
111
|
+
return (0, _react2.jsx)("div", {
|
|
112
|
+
css: wrapper,
|
|
113
|
+
"data-testid": "element-browser"
|
|
114
|
+
}, (0, _react2.jsx)(ContainerWidthMonitor, null), containerWidth < _constants.DEVICE_BREAKPOINT_NUMBERS.medium ? (0, _react2.jsx)(MobileBrowser, (0, _extends2.default)({}, props, {
|
|
115
|
+
selectedItemIndex: selectedItemIndex,
|
|
116
|
+
focusedItemIndex: focusedItemIndex,
|
|
117
|
+
setFocusedItemIndex: setFocusedItemIndex,
|
|
118
|
+
focusOnSearch: focusOnSearch,
|
|
119
|
+
setColumnCount: setColumnCount,
|
|
120
|
+
setFocusOnSearch: setFocusOnSearch,
|
|
121
|
+
onKeyPress: onItemsEnterKeyPress,
|
|
122
|
+
onKeyDown: onKeyDown,
|
|
123
|
+
viewMoreItem: viewMoreItem,
|
|
124
|
+
focusOnViewMore: focusOnViewMore
|
|
125
|
+
})) : (0, _react2.jsx)(DesktopBrowser, (0, _extends2.default)({}, props, {
|
|
126
|
+
selectedItemIndex: selectedItemIndex,
|
|
127
|
+
focusedItemIndex: focusedItemIndex,
|
|
128
|
+
setFocusedItemIndex: setFocusedItemIndex,
|
|
129
|
+
focusOnSearch: focusOnSearch,
|
|
130
|
+
setColumnCount: setColumnCount,
|
|
131
|
+
setFocusOnSearch: setFocusOnSearch,
|
|
132
|
+
onKeyPress: onItemsEnterKeyPress,
|
|
133
|
+
onKeyDown: onKeyDown
|
|
134
|
+
})));
|
|
135
|
+
}
|
|
136
|
+
function MobileBrowser(_ref) {
|
|
137
|
+
var showCategories = _ref.showCategories,
|
|
138
|
+
showSearch = _ref.showSearch,
|
|
139
|
+
onSearch = _ref.onSearch,
|
|
140
|
+
mode = _ref.mode,
|
|
141
|
+
categories = _ref.categories,
|
|
142
|
+
onSelectCategory = _ref.onSelectCategory,
|
|
143
|
+
items = _ref.items,
|
|
144
|
+
onInsertItem = _ref.onInsertItem,
|
|
145
|
+
selectedCategory = _ref.selectedCategory,
|
|
146
|
+
selectedItemIndex = _ref.selectedItemIndex,
|
|
147
|
+
focusedItemIndex = _ref.focusedItemIndex,
|
|
148
|
+
setFocusedItemIndex = _ref.setFocusedItemIndex,
|
|
149
|
+
focusOnSearch = _ref.focusOnSearch,
|
|
150
|
+
focusOnViewMore = _ref.focusOnViewMore,
|
|
151
|
+
setColumnCount = _ref.setColumnCount,
|
|
152
|
+
setFocusOnSearch = _ref.setFocusOnSearch,
|
|
153
|
+
onKeyPress = _ref.onKeyPress,
|
|
154
|
+
onKeyDown = _ref.onKeyDown,
|
|
155
|
+
searchTerm = _ref.searchTerm,
|
|
156
|
+
createAnalyticsEvent = _ref.createAnalyticsEvent,
|
|
157
|
+
emptyStateHandler = _ref.emptyStateHandler,
|
|
158
|
+
viewMoreItem = _ref.viewMoreItem;
|
|
159
|
+
return (0, _react2.jsx)("div", {
|
|
160
|
+
css: mobileElementBrowserContainer,
|
|
161
|
+
onKeyDown: onKeyDown,
|
|
162
|
+
"data-testid": "mobile__element-browser"
|
|
163
|
+
}, (0, _react2.jsx)("div", {
|
|
164
|
+
css: showCategories ? [mobileSideBar, mobileSideBarShowCategories] : mobileSideBar
|
|
165
|
+
}, showSearch && (0, _react2.jsx)(_ElementSearch.default, {
|
|
166
|
+
onSearch: onSearch,
|
|
167
|
+
onKeyDown: onKeyPress,
|
|
168
|
+
mode: mode,
|
|
169
|
+
focus: focusOnSearch,
|
|
170
|
+
onClick: setFocusOnSearch,
|
|
171
|
+
searchTerm: searchTerm
|
|
172
|
+
}), showCategories && (0, _react2.jsx)("nav", {
|
|
173
|
+
css: mobileCategoryListWrapper,
|
|
174
|
+
tabIndex: -1
|
|
175
|
+
}, (0, _react2.jsx)(_CategoryList.default, {
|
|
176
|
+
categories: categories,
|
|
177
|
+
onSelectCategory: onSelectCategory,
|
|
178
|
+
selectedCategory: selectedCategory
|
|
179
|
+
}))), (0, _react2.jsx)("div", {
|
|
180
|
+
css: mobileMainContent
|
|
181
|
+
}, (0, _react2.jsx)(_ElementList.default, {
|
|
182
|
+
items: items,
|
|
183
|
+
mode: mode,
|
|
184
|
+
onInsertItem: onInsertItem,
|
|
185
|
+
selectedItemIndex: selectedItemIndex,
|
|
186
|
+
focusedItemIndex: focusedItemIndex,
|
|
187
|
+
setFocusedItemIndex: setFocusedItemIndex,
|
|
188
|
+
setColumnCount: setColumnCount,
|
|
189
|
+
createAnalyticsEvent: createAnalyticsEvent,
|
|
190
|
+
emptyStateHandler: emptyStateHandler,
|
|
191
|
+
selectedCategory: selectedCategory,
|
|
192
|
+
searchTerm: searchTerm
|
|
193
|
+
})), viewMoreItem && (0, _react2.jsx)(_ViewMore.ViewMore, {
|
|
194
|
+
item: viewMoreItem,
|
|
195
|
+
focus: focusOnViewMore
|
|
196
|
+
}));
|
|
197
|
+
}
|
|
198
|
+
function DesktopBrowser(_ref2) {
|
|
199
|
+
var showCategories = _ref2.showCategories,
|
|
200
|
+
showSearch = _ref2.showSearch,
|
|
201
|
+
onSearch = _ref2.onSearch,
|
|
202
|
+
mode = _ref2.mode,
|
|
203
|
+
categories = _ref2.categories,
|
|
204
|
+
onSelectCategory = _ref2.onSelectCategory,
|
|
205
|
+
items = _ref2.items,
|
|
206
|
+
onInsertItem = _ref2.onInsertItem,
|
|
207
|
+
selectedCategory = _ref2.selectedCategory,
|
|
208
|
+
selectedItemIndex = _ref2.selectedItemIndex,
|
|
209
|
+
focusedItemIndex = _ref2.focusedItemIndex,
|
|
210
|
+
setFocusedItemIndex = _ref2.setFocusedItemIndex,
|
|
211
|
+
focusOnSearch = _ref2.focusOnSearch,
|
|
212
|
+
setColumnCount = _ref2.setColumnCount,
|
|
213
|
+
setFocusOnSearch = _ref2.setFocusOnSearch,
|
|
214
|
+
onKeyPress = _ref2.onKeyPress,
|
|
215
|
+
onKeyDown = _ref2.onKeyDown,
|
|
216
|
+
searchTerm = _ref2.searchTerm,
|
|
217
|
+
createAnalyticsEvent = _ref2.createAnalyticsEvent,
|
|
218
|
+
emptyStateHandler = _ref2.emptyStateHandler;
|
|
219
|
+
return (0, _react2.jsx)("div", {
|
|
220
|
+
css: elementBrowserContainer,
|
|
221
|
+
"data-testid": "desktop__element-browser"
|
|
222
|
+
}, showCategories && (0, _react2.jsx)("div", {
|
|
223
|
+
css: showCategories ? sideBarShowCategories : sideBar
|
|
224
|
+
}, (0, _react2.jsx)("h2", {
|
|
225
|
+
css: sidebarHeading,
|
|
226
|
+
"data-testid": "sidebar-heading"
|
|
227
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, {
|
|
228
|
+
id: "fabric.editor.elementbrowser.sidebar.heading",
|
|
229
|
+
defaultMessage: "Browse",
|
|
230
|
+
description: "Sidebar heading"
|
|
231
|
+
})), (0, _react2.jsx)("nav", {
|
|
232
|
+
css: categoryListWrapper
|
|
233
|
+
}, (0, _react2.jsx)(_CategoryList.default, {
|
|
234
|
+
categories: categories,
|
|
235
|
+
onSelectCategory: onSelectCategory,
|
|
236
|
+
selectedCategory: selectedCategory,
|
|
237
|
+
createAnalyticsEvent: createAnalyticsEvent
|
|
238
|
+
}))), (0, _react2.jsx)("div", {
|
|
239
|
+
css: mainContent,
|
|
240
|
+
onKeyDown: onKeyDown,
|
|
241
|
+
"data-testid": "main-content"
|
|
242
|
+
}, showSearch && (0, _react2.jsx)("div", {
|
|
243
|
+
css: searchContainer
|
|
244
|
+
}, (0, _react2.jsx)(_ElementSearch.default, {
|
|
245
|
+
onSearch: onSearch,
|
|
246
|
+
onKeyDown: onKeyPress,
|
|
247
|
+
mode: mode,
|
|
248
|
+
focus: focusOnSearch,
|
|
249
|
+
onClick: setFocusOnSearch,
|
|
250
|
+
searchTerm: searchTerm
|
|
251
|
+
})), (0, _react2.jsx)(_ElementList.default, {
|
|
252
|
+
items: items,
|
|
253
|
+
mode: mode,
|
|
254
|
+
onInsertItem: onInsertItem,
|
|
255
|
+
selectedItemIndex: selectedItemIndex,
|
|
256
|
+
focusedItemIndex: focusedItemIndex,
|
|
257
|
+
setFocusedItemIndex: setFocusedItemIndex,
|
|
258
|
+
setColumnCount: setColumnCount,
|
|
259
|
+
createAnalyticsEvent: createAnalyticsEvent,
|
|
260
|
+
emptyStateHandler: emptyStateHandler,
|
|
261
|
+
selectedCategory: selectedCategory,
|
|
262
|
+
searchTerm: searchTerm
|
|
263
|
+
})));
|
|
264
|
+
}
|
|
265
|
+
var MemoizedElementBrowser = /*#__PURE__*/(0, _react.memo)((0, _analyticsNext.withAnalyticsContext)({
|
|
266
|
+
source: 'ElementBrowser'
|
|
267
|
+
})((0, _analyticsNext.withAnalyticsEvents)()(StatelessElementBrowser)));
|
|
268
|
+
var _default = MemoizedElementBrowser;
|
|
269
|
+
exports.default = _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SIDEBAR_WIDTH = exports.SIDEBAR_HEADING_WRAPPER_HEIGHT = exports.SIDEBAR_HEADING_PADDING_LEFT = exports.SEARCH_ITEM_HEIGHT_WIDTH = exports.SCROLLBAR_WIDTH = exports.INLINE_SIDEBAR_HEIGHT = exports.GRID_SIZE = exports.FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS = exports.ELEMENT_LIST_PADDING = exports.ELEMENT_ITEM_HEIGHT = exports.DEVICE_BREAKPOINT_NUMBERS = void 0;
|
|
7
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
8
|
+
// eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
|
|
9
|
+
|
|
10
|
+
// TODO: Migrate away from gridSize
|
|
11
|
+
// Recommendation: Replace gridSize with 8
|
|
12
|
+
var GRID_SIZE = (0, _constants.gridSize)();
|
|
13
|
+
exports.GRID_SIZE = GRID_SIZE;
|
|
14
|
+
var DEVICE_BREAKPOINT_NUMBERS = {
|
|
15
|
+
small: GRID_SIZE * 40,
|
|
16
|
+
medium: GRID_SIZE * 75,
|
|
17
|
+
large: GRID_SIZE * 128
|
|
18
|
+
};
|
|
19
|
+
exports.DEVICE_BREAKPOINT_NUMBERS = DEVICE_BREAKPOINT_NUMBERS;
|
|
20
|
+
var FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS = {
|
|
21
|
+
small: GRID_SIZE * 50,
|
|
22
|
+
medium: DEVICE_BREAKPOINT_NUMBERS.medium,
|
|
23
|
+
large: DEVICE_BREAKPOINT_NUMBERS.large
|
|
24
|
+
};
|
|
25
|
+
exports.FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS = FLEX_ITEMS_CONTAINER_BREAKPOINT_NUMBERS;
|
|
26
|
+
var SIDEBAR_WIDTH = "".concat(GRID_SIZE * 25, "px");
|
|
27
|
+
exports.SIDEBAR_WIDTH = SIDEBAR_WIDTH;
|
|
28
|
+
var SIDEBAR_HEADING_WRAPPER_HEIGHT = "".concat(GRID_SIZE * 6, "px");
|
|
29
|
+
exports.SIDEBAR_HEADING_WRAPPER_HEIGHT = SIDEBAR_HEADING_WRAPPER_HEIGHT;
|
|
30
|
+
var SIDEBAR_HEADING_PADDING_LEFT = '12px';
|
|
31
|
+
exports.SIDEBAR_HEADING_PADDING_LEFT = SIDEBAR_HEADING_PADDING_LEFT;
|
|
32
|
+
var INLINE_SIDEBAR_HEIGHT = '54px';
|
|
33
|
+
exports.INLINE_SIDEBAR_HEIGHT = INLINE_SIDEBAR_HEIGHT;
|
|
34
|
+
var SEARCH_ITEM_HEIGHT_WIDTH = '20px';
|
|
35
|
+
exports.SEARCH_ITEM_HEIGHT_WIDTH = SEARCH_ITEM_HEIGHT_WIDTH;
|
|
36
|
+
var SCROLLBAR_WIDTH = 15;
|
|
37
|
+
exports.SCROLLBAR_WIDTH = SCROLLBAR_WIDTH;
|
|
38
|
+
var ELEMENT_LIST_PADDING = 2;
|
|
39
|
+
exports.ELEMENT_LIST_PADDING = ELEMENT_LIST_PADDING;
|
|
40
|
+
var ELEMENT_ITEM_HEIGHT = 75;
|
|
41
|
+
exports.ELEMENT_ITEM_HEIGHT = ELEMENT_ITEM_HEIGHT;
|