@atlaskit/editor-toolbar 0.1.1 → 0.2.1
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 +28 -0
- package/afm-passionfruit/tsconfig.json +54 -0
- package/dist/cjs/hooks/ui-context.js +35 -0
- package/dist/cjs/index.js +42 -2
- package/dist/cjs/ui/Toolbar.compiled.css +6 -2
- package/dist/cjs/ui/Toolbar.js +22 -3
- package/dist/cjs/ui/ToolbarButton.js +9 -1
- package/dist/cjs/ui/ToolbarDropdownMenu.js +5 -1
- package/dist/cjs/ui/ToolbarSection.js +4 -2
- package/dist/cjs/ui/icons/AlignTextCenterIcon.js +13 -0
- package/dist/cjs/ui/icons/AlignTextLeftIcon.js +13 -0
- package/dist/cjs/ui/icons/AlignTextRightIcon.js +13 -0
- package/dist/es2019/hooks/ui-context.js +28 -0
- package/dist/es2019/index.js +7 -3
- package/dist/es2019/ui/Toolbar.compiled.css +6 -2
- package/dist/es2019/ui/Toolbar.js +22 -2
- package/dist/es2019/ui/ToolbarButton.js +10 -1
- package/dist/es2019/ui/ToolbarDropdownMenu.js +6 -1
- package/dist/es2019/ui/ToolbarSection.js +4 -2
- package/dist/es2019/ui/icons/AlignTextCenterIcon.js +2 -0
- package/dist/es2019/ui/icons/AlignTextLeftIcon.js +2 -0
- package/dist/es2019/ui/icons/AlignTextRightIcon.js +2 -0
- package/dist/esm/hooks/ui-context.js +27 -0
- package/dist/esm/index.js +7 -3
- package/dist/esm/ui/Toolbar.compiled.css +6 -2
- package/dist/esm/ui/Toolbar.js +21 -2
- package/dist/esm/ui/ToolbarButton.js +9 -1
- package/dist/esm/ui/ToolbarDropdownMenu.js +5 -1
- package/dist/esm/ui/ToolbarSection.js +4 -2
- package/dist/esm/ui/icons/AlignTextCenterIcon.js +2 -0
- package/dist/esm/ui/icons/AlignTextLeftIcon.js +2 -0
- package/dist/esm/ui/icons/AlignTextRightIcon.js +2 -0
- package/dist/types/hooks/ui-context.d.ts +23 -0
- package/dist/types/index.d.ts +6 -2
- package/dist/types/types.d.ts +0 -1
- package/dist/types/ui/Toolbar.d.ts +7 -0
- package/dist/types/ui/ToolbarDropdownDivider.d.ts +0 -1
- package/dist/types/ui/ToolbarSection.d.ts +2 -1
- package/dist/types/ui/icons/AlignTextCenterIcon.d.ts +1 -0
- package/dist/types/ui/icons/AlignTextLeftIcon.d.ts +1 -0
- package/dist/types/ui/icons/AlignTextRightIcon.d.ts +1 -0
- package/dist/types-ts4.5/hooks/ui-context.d.ts +23 -0
- package/dist/types-ts4.5/index.d.ts +6 -2
- package/dist/types-ts4.5/types.d.ts +0 -1
- package/dist/types-ts4.5/ui/Toolbar.d.ts +7 -0
- package/dist/types-ts4.5/ui/ToolbarDropdownDivider.d.ts +0 -1
- package/dist/types-ts4.5/ui/ToolbarSection.d.ts +2 -1
- package/dist/types-ts4.5/ui/icons/AlignTextCenterIcon.d.ts +1 -0
- package/dist/types-ts4.5/ui/icons/AlignTextLeftIcon.d.ts +1 -0
- package/dist/types-ts4.5/ui/icons/AlignTextRightIcon.d.ts +1 -0
- package/examples/toolbar/examples/ExampleManuallyComposedToolbar.tsx +11 -11
- package/package.json +2 -2
- package/src/hooks/ui-context.tsx +51 -0
- package/src/index.ts +7 -2
- package/src/ui/Toolbar.tsx +31 -8
- package/src/ui/ToolbarButton.tsx +8 -0
- package/src/ui/ToolbarDropdownMenu.tsx +4 -0
- package/src/ui/ToolbarSection.tsx +7 -2
- package/src/ui/icons/AlignTextCenterIcon.tsx +2 -0
- package/src/ui/icons/AlignTextLeftIcon.tsx +2 -0
- package/src/ui/icons/AlignTextRightIcon.tsx +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @atlaskit/editor-toolbar
|
|
2
2
|
|
|
3
|
+
## 0.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`f22ce89845e1e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f22ce89845e1e) -
|
|
8
|
+
[ED-28686] Register alignment toolbar component
|
|
9
|
+
|
|
10
|
+
## 0.2.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [#199353](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/199353)
|
|
15
|
+
[`22cab8325fc62`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/22cab8325fc62) -
|
|
16
|
+
[ux] [ED-28760] Fix editor lose focus and hence editing flow is interrupted. This is done for 2
|
|
17
|
+
components
|
|
18
|
+
|
|
19
|
+
- Dropdown
|
|
20
|
+
- Create context ToolbarUIContext for toolbar consumers to access consumer specific state and
|
|
21
|
+
callbacks
|
|
22
|
+
- Define onDropdownOpenChanged callback for selection toolbars so that editor regains focus
|
|
23
|
+
after dropdown is closed
|
|
24
|
+
- Button
|
|
25
|
+
- Call preventDefault on mouseDown to prevent button takes away focus
|
|
26
|
+
|
|
27
|
+
- [#199487](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/199487)
|
|
28
|
+
[`54098ba4cc83c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/54098ba4cc83c) -
|
|
29
|
+
Add new PrimaryToolbar export which removes box shadows, export toolbar types
|
|
30
|
+
|
|
3
31
|
## 0.1.1
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../../../tsconfig.entry-points.passionfruit.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"target": "es5",
|
|
6
|
+
"outDir": "../../../../../passionfruit/tsDist/@atlaskit__editor-toolbar/app",
|
|
7
|
+
"rootDir": "../",
|
|
8
|
+
"composite": true
|
|
9
|
+
},
|
|
10
|
+
"include": [
|
|
11
|
+
"../src/**/*.ts",
|
|
12
|
+
"../src/**/*.tsx"
|
|
13
|
+
],
|
|
14
|
+
"exclude": [
|
|
15
|
+
"../src/**/__tests__/*",
|
|
16
|
+
"../src/**/*.test.*",
|
|
17
|
+
"../src/**/test.*"
|
|
18
|
+
],
|
|
19
|
+
"references": [
|
|
20
|
+
{
|
|
21
|
+
"path": "../../../design-system/badge/afm-passionfruit/tsconfig.json"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"path": "../../../design-system/button/afm-passionfruit/tsconfig.json"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "../../../design-system/css/afm-passionfruit/tsconfig.json"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"path": "../../../design-system/dropdown-menu/afm-passionfruit/tsconfig.json"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "../../../design-system/icon/afm-passionfruit/tsconfig.json"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"path": "../../../design-system/icon-lab/afm-passionfruit/tsconfig.json"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"path": "../../../design-system/logo/afm-passionfruit/tsconfig.json"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"path": "../../../design-system/popup/afm-passionfruit/tsconfig.json"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"path": "../../../design-system/primitives/afm-passionfruit/tsconfig.json"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"path": "../../../design-system/tokens/afm-passionfruit/tsconfig.json"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"path": "../../../design-system/tooltip/afm-passionfruit/tsconfig.json"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useToolbarUI = exports.ToolbarUIProvider = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
+
var ToolbarUIContext = /*#__PURE__*/(0, _react.createContext)({
|
|
11
|
+
onDropdownOpenChanged: function onDropdownOpenChanged() {},
|
|
12
|
+
preventDefaultOnMouseDown: false
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Access consumer specific config and state within a toolbar component
|
|
17
|
+
*/
|
|
18
|
+
var useToolbarUI = exports.useToolbarUI = function useToolbarUI() {
|
|
19
|
+
var context = (0, _react.useContext)(ToolbarUIContext);
|
|
20
|
+
if (!context) {
|
|
21
|
+
throw new Error('useToolbarUI must be used within ToolbarUIContext');
|
|
22
|
+
}
|
|
23
|
+
return context;
|
|
24
|
+
};
|
|
25
|
+
var ToolbarUIProvider = exports.ToolbarUIProvider = function ToolbarUIProvider(_ref) {
|
|
26
|
+
var children = _ref.children,
|
|
27
|
+
onDropdownOpenChanged = _ref.onDropdownOpenChanged,
|
|
28
|
+
preventDefaultOnMouseDown = _ref.preventDefaultOnMouseDown;
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(ToolbarUIContext.Provider, {
|
|
30
|
+
value: {
|
|
31
|
+
onDropdownOpenChanged: onDropdownOpenChanged,
|
|
32
|
+
preventDefaultOnMouseDown: preventDefaultOnMouseDown
|
|
33
|
+
}
|
|
34
|
+
}, children);
|
|
35
|
+
};
|
package/dist/cjs/index.js
CHANGED
|
@@ -81,6 +81,24 @@ Object.defineProperty(exports, "AddIcon", {
|
|
|
81
81
|
return _AddIcon.AddIcon;
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
|
+
Object.defineProperty(exports, "AlignTextCenterIcon", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function get() {
|
|
87
|
+
return _AlignTextCenterIcon.AlignTextCenterIcon;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "AlignTextLeftIcon", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _AlignTextLeftIcon.AlignTextLeftIcon;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(exports, "AlignTextRightIcon", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function get() {
|
|
99
|
+
return _AlignTextRightIcon.AlignTextRightIcon;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
84
102
|
Object.defineProperty(exports, "AppsIcon", {
|
|
85
103
|
enumerable: true,
|
|
86
104
|
get: function get() {
|
|
@@ -195,6 +213,12 @@ Object.defineProperty(exports, "PinnedIcon", {
|
|
|
195
213
|
return _PinnedIcon.PinnedIcon;
|
|
196
214
|
}
|
|
197
215
|
});
|
|
216
|
+
Object.defineProperty(exports, "PrimaryToolbar", {
|
|
217
|
+
enumerable: true,
|
|
218
|
+
get: function get() {
|
|
219
|
+
return _Toolbar.PrimaryToolbar;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
198
222
|
Object.defineProperty(exports, "QuoteIcon", {
|
|
199
223
|
enumerable: true,
|
|
200
224
|
get: function get() {
|
|
@@ -309,22 +333,34 @@ Object.defineProperty(exports, "ToolbarTooltip", {
|
|
|
309
333
|
return _ToolbarTooltip.ToolbarTooltip;
|
|
310
334
|
}
|
|
311
335
|
});
|
|
336
|
+
Object.defineProperty(exports, "ToolbarUIProvider", {
|
|
337
|
+
enumerable: true,
|
|
338
|
+
get: function get() {
|
|
339
|
+
return _uiContext.ToolbarUIProvider;
|
|
340
|
+
}
|
|
341
|
+
});
|
|
312
342
|
Object.defineProperty(exports, "UnderlineIcon", {
|
|
313
343
|
enumerable: true,
|
|
314
344
|
get: function get() {
|
|
315
345
|
return _UnderlineIcon.UnderlineIcon;
|
|
316
346
|
}
|
|
317
347
|
});
|
|
348
|
+
Object.defineProperty(exports, "useToolbarUI", {
|
|
349
|
+
enumerable: true,
|
|
350
|
+
get: function get() {
|
|
351
|
+
return _uiContext.useToolbarUI;
|
|
352
|
+
}
|
|
353
|
+
});
|
|
318
354
|
var _Toolbar = require("./ui/Toolbar");
|
|
319
355
|
var _ToolbarButton = require("./ui/ToolbarButton");
|
|
320
356
|
var _ToolbarButtonGroup = require("./ui/ToolbarButtonGroup");
|
|
321
357
|
var _ToolbarDropdownMenu = require("./ui/ToolbarDropdownMenu");
|
|
322
358
|
var _ToolbarDropdownItem = require("./ui/ToolbarDropdownItem");
|
|
323
359
|
var _ToolbarDropdownItemSection = require("./ui/ToolbarDropdownItemSection");
|
|
360
|
+
var _ToolbarNestedDropdownMenu = require("./ui/ToolbarNestedDropdownMenu");
|
|
324
361
|
var _ToolbarKeyboardShortcutHint = require("./ui/ToolbarKeyboardShortcutHint");
|
|
325
362
|
var _ToolbarSection = require("./ui/ToolbarSection");
|
|
326
363
|
var _ToolbarTooltip = require("./ui/ToolbarTooltip");
|
|
327
|
-
var _ToolbarNestedDropdownMenu = require("./ui/ToolbarNestedDropdownMenu");
|
|
328
364
|
var _ToolbarDropdownDivider = require("./ui/ToolbarDropdownDivider");
|
|
329
365
|
var _ToolbarColorSwatch = require("./ui/ToolbarColorSwatch");
|
|
330
366
|
var _AIAdjustLengthIcon = require("./ui/icons/AIAdjustLengthIcon");
|
|
@@ -366,4 +402,8 @@ var _StrikeThroughIcon = require("./ui/icons/StrikeThroughIcon");
|
|
|
366
402
|
var _CodeIcon = require("./ui/icons/CodeIcon");
|
|
367
403
|
var _SubscriptIcon = require("./ui/icons/SubscriptIcon");
|
|
368
404
|
var _SuperscriptIcon = require("./ui/icons/SuperscriptIcon");
|
|
369
|
-
var _ShowMoreHorizontal = require("./ui/icons/ShowMoreHorizontal");
|
|
405
|
+
var _ShowMoreHorizontal = require("./ui/icons/ShowMoreHorizontal");
|
|
406
|
+
var _AlignTextLeftIcon = require("./ui/icons/AlignTextLeftIcon");
|
|
407
|
+
var _AlignTextCenterIcon = require("./ui/icons/AlignTextCenterIcon");
|
|
408
|
+
var _AlignTextRightIcon = require("./ui/icons/AlignTextRightIcon");
|
|
409
|
+
var _uiContext = require("./hooks/ui-context");
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
._2rkoi2wt{border-radius:6px}._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
|
|
3
3
|
._19bv1b66{padding-left:var(--ds-space-050,4px)}
|
|
4
|
-
.
|
|
4
|
+
._19bvutpp{padding-left:var(--ds-space-150,9pt)}
|
|
5
5
|
._1e0c1txw{display:flex}
|
|
6
|
+
._1tkezwfg{min-height:2pc}
|
|
6
7
|
._4cvr1h6o{align-items:center}
|
|
7
8
|
._4t3i14no{height:36px}
|
|
8
9
|
._bfhkvuon{background-color:var(--ds-surface,#fff)}
|
|
9
|
-
.
|
|
10
|
+
._ca0q12x7{padding-top:var(--ds-space-075,6px)}
|
|
11
|
+
._n3td12x7{padding-bottom:var(--ds-space-075,6px)}
|
|
12
|
+
._u5f31b66{padding-right:var(--ds-space-050,4px)}
|
|
13
|
+
._u5f3utpp{padding-right:var(--ds-space-150,9pt)}
|
package/dist/cjs/ui/Toolbar.js
CHANGED
|
@@ -5,19 +5,38 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.Toolbar = void 0;
|
|
8
|
+
exports.Toolbar = exports.PrimaryToolbar = void 0;
|
|
9
9
|
require("./Toolbar.compiled.css");
|
|
10
10
|
var _runtime = require("@compiled/react/runtime");
|
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _css = require("@atlaskit/css");
|
|
12
13
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
13
14
|
var styles = {
|
|
14
|
-
|
|
15
|
+
toolbarBase: "_2rkoi2wt _bfhkvuon _1e0c1txw _4cvr1h6o",
|
|
16
|
+
toolbar: "_4t3i14no _u5f31b66 _19bv1b66 _16qs1cd0",
|
|
17
|
+
primaryToolbar: "_bfhkvuon _1tkezwfg _ca0q12x7 _n3td12x7 _19bvutpp _u5f3utpp"
|
|
15
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* A simple component representing a toolbar with box shadows - used to represent a secondary/floating toolbar
|
|
21
|
+
*/
|
|
16
22
|
var Toolbar = exports.Toolbar = function Toolbar(_ref) {
|
|
17
23
|
var children = _ref.children,
|
|
18
24
|
label = _ref.label;
|
|
19
25
|
return /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
20
|
-
xcss: styles.toolbar,
|
|
26
|
+
xcss: (0, _css.cx)(styles.toolbarBase, styles.toolbar),
|
|
27
|
+
role: "toolbar",
|
|
28
|
+
"aria-label": label
|
|
29
|
+
}, children);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A simple component representing a toolbar without box shadows - used to represent a primary toolbar
|
|
34
|
+
*/
|
|
35
|
+
var PrimaryToolbar = exports.PrimaryToolbar = function PrimaryToolbar(_ref2) {
|
|
36
|
+
var children = _ref2.children,
|
|
37
|
+
label = _ref2.label;
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
39
|
+
xcss: (0, _css.cx)(styles.toolbarBase, styles.primaryToolbar),
|
|
21
40
|
role: "toolbar",
|
|
22
41
|
"aria-label": label
|
|
23
42
|
}, children);
|
|
@@ -11,6 +11,7 @@ var _runtime = require("@compiled/react/runtime");
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _css = require("@atlaskit/css");
|
|
13
13
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
14
|
+
var _uiContext = require("../hooks/ui-context");
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
16
|
var styles = {
|
|
16
17
|
button: "_zulp12x7 _2rkoiti9 _1e0c1txw _bfhksm61 _o5721q9c _4cvr1h6o _1bah1h6o _1tke1f4h _syaz1gjq _k48p1wq8 _19bvu2gc _u5f3u2gc _1ah3idpf _g0pbkb7n _oh03h2mm",
|
|
@@ -37,6 +38,8 @@ var ToolbarButton = exports.ToolbarButton = /*#__PURE__*/(0, _react.forwardRef)(
|
|
|
37
38
|
isDisabled = _ref.isDisabled,
|
|
38
39
|
ariaKeyshortcuts = _ref.ariaKeyshortcuts,
|
|
39
40
|
label = _ref.label;
|
|
41
|
+
var _useToolbarUI = (0, _uiContext.useToolbarUI)(),
|
|
42
|
+
preventDefaultOnMouseDown = _useToolbarUI.preventDefaultOnMouseDown;
|
|
40
43
|
return /*#__PURE__*/_react.default.createElement(_compiled.Pressable, {
|
|
41
44
|
ref: ref,
|
|
42
45
|
xcss: (0, _css.cx)(styles.button, isDisabled ? styles.disabled : isSelected ? styles.selected : styles.enabled, groupLocation === 'start' && styles.groupStart, groupLocation === 'middle' && styles.groupMiddle, groupLocation === 'end' && styles.groupEnd),
|
|
@@ -51,6 +54,11 @@ var ToolbarButton = exports.ToolbarButton = /*#__PURE__*/(0, _react.forwardRef)(
|
|
|
51
54
|
onBlur: onBlur,
|
|
52
55
|
onFocus: onFocus,
|
|
53
56
|
testId: testId,
|
|
54
|
-
isDisabled: isDisabled
|
|
57
|
+
isDisabled: isDisabled,
|
|
58
|
+
onMouseDown: function onMouseDown(event) {
|
|
59
|
+
if (preventDefaultOnMouseDown) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
55
63
|
}, iconBefore, children);
|
|
56
64
|
});
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.ToolbarDropdownMenu = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _dropdownMenu = _interopRequireDefault(require("@atlaskit/dropdown-menu"));
|
|
10
|
+
var _uiContext = require("../hooks/ui-context");
|
|
10
11
|
var _ToolbarButton = require("./ToolbarButton");
|
|
11
12
|
var ToolbarDropdownMenu = exports.ToolbarDropdownMenu = function ToolbarDropdownMenu(_ref) {
|
|
12
13
|
var iconBefore = _ref.iconBefore,
|
|
@@ -15,6 +16,8 @@ var ToolbarDropdownMenu = exports.ToolbarDropdownMenu = function ToolbarDropdown
|
|
|
15
16
|
isDisabled = _ref.isDisabled,
|
|
16
17
|
testId = _ref.testId,
|
|
17
18
|
label = _ref.label;
|
|
19
|
+
var _useToolbarUI = (0, _uiContext.useToolbarUI)(),
|
|
20
|
+
onDropdownOpenChanged = _useToolbarUI.onDropdownOpenChanged;
|
|
18
21
|
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.default, {
|
|
19
22
|
trigger: function trigger(triggerProps) {
|
|
20
23
|
return /*#__PURE__*/_react.default.createElement(_ToolbarButton.ToolbarButton, {
|
|
@@ -32,6 +35,7 @@ var ToolbarDropdownMenu = exports.ToolbarDropdownMenu = function ToolbarDropdown
|
|
|
32
35
|
isDisabled: isDisabled,
|
|
33
36
|
label: label
|
|
34
37
|
});
|
|
35
|
-
}
|
|
38
|
+
},
|
|
39
|
+
onOpenChange: onDropdownOpenChanged
|
|
36
40
|
}, children);
|
|
37
41
|
};
|
|
@@ -14,8 +14,10 @@ var styles = {
|
|
|
14
14
|
container: "_1e0c1txw _4cvr1h6o"
|
|
15
15
|
};
|
|
16
16
|
var ToolbarSection = exports.ToolbarSection = function ToolbarSection(_ref) {
|
|
17
|
-
var children = _ref.children
|
|
17
|
+
var children = _ref.children,
|
|
18
|
+
testId = _ref.testId;
|
|
18
19
|
return /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
19
|
-
xcss: styles.container
|
|
20
|
+
xcss: styles.container,
|
|
21
|
+
testId: testId
|
|
20
22
|
}, children);
|
|
21
23
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "AlignTextCenterIcon", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _alignTextCenter.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _alignTextCenter = _interopRequireDefault(require("@atlaskit/icon/core/align-text-center"));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "AlignTextLeftIcon", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _alignTextLeft.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _alignTextLeft = _interopRequireDefault(require("@atlaskit/icon/core/align-text-left"));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "AlignTextRightIcon", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _alignTextRight.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _alignTextRight = _interopRequireDefault(require("@atlaskit/icon/core/align-text-right"));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React, { createContext, useContext } from 'react';
|
|
2
|
+
const ToolbarUIContext = /*#__PURE__*/createContext({
|
|
3
|
+
onDropdownOpenChanged: () => {},
|
|
4
|
+
preventDefaultOnMouseDown: false
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Access consumer specific config and state within a toolbar component
|
|
9
|
+
*/
|
|
10
|
+
export const useToolbarUI = () => {
|
|
11
|
+
const context = useContext(ToolbarUIContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new Error('useToolbarUI must be used within ToolbarUIContext');
|
|
14
|
+
}
|
|
15
|
+
return context;
|
|
16
|
+
};
|
|
17
|
+
export const ToolbarUIProvider = ({
|
|
18
|
+
children,
|
|
19
|
+
onDropdownOpenChanged,
|
|
20
|
+
preventDefaultOnMouseDown
|
|
21
|
+
}) => {
|
|
22
|
+
return /*#__PURE__*/React.createElement(ToolbarUIContext.Provider, {
|
|
23
|
+
value: {
|
|
24
|
+
onDropdownOpenChanged,
|
|
25
|
+
preventDefaultOnMouseDown
|
|
26
|
+
}
|
|
27
|
+
}, children);
|
|
28
|
+
};
|
package/dist/es2019/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/* eslint-disable @atlaskit/editor/no-re-export */
|
|
2
|
-
export { Toolbar } from './ui/Toolbar';
|
|
2
|
+
export { Toolbar, PrimaryToolbar } from './ui/Toolbar';
|
|
3
3
|
export { ToolbarButton } from './ui/ToolbarButton';
|
|
4
4
|
export { ToolbarButtonGroup } from './ui/ToolbarButtonGroup';
|
|
5
5
|
export { ToolbarDropdownMenu } from './ui/ToolbarDropdownMenu';
|
|
6
6
|
export { ToolbarDropdownItem } from './ui/ToolbarDropdownItem';
|
|
7
7
|
export { ToolbarDropdownItemSection } from './ui/ToolbarDropdownItemSection';
|
|
8
|
+
export { ToolbarNestedDropdownMenu } from './ui/ToolbarNestedDropdownMenu';
|
|
8
9
|
export { ToolbarKeyboardShortcutHint } from './ui/ToolbarKeyboardShortcutHint';
|
|
9
10
|
export { ToolbarSection } from './ui/ToolbarSection';
|
|
10
11
|
export { ToolbarTooltip } from './ui/ToolbarTooltip';
|
|
11
|
-
export { ToolbarNestedDropdownMenu } from './ui/ToolbarNestedDropdownMenu';
|
|
12
12
|
export { ToolbarDropdownDivider } from './ui/ToolbarDropdownDivider';
|
|
13
13
|
export { ToolbarColorSwatch } from './ui/ToolbarColorSwatch';
|
|
14
14
|
export { AIAdjustLengthIcon } from './ui/icons/AIAdjustLengthIcon';
|
|
@@ -50,4 +50,8 @@ export { StrikeThroughIcon } from './ui/icons/StrikeThroughIcon';
|
|
|
50
50
|
export { CodeIcon } from './ui/icons/CodeIcon';
|
|
51
51
|
export { SubscriptIcon } from './ui/icons/SubscriptIcon';
|
|
52
52
|
export { SuperscriptIcon } from './ui/icons/SuperscriptIcon';
|
|
53
|
-
export { ShowMoreHorizontalIcon } from './ui/icons/ShowMoreHorizontal';
|
|
53
|
+
export { ShowMoreHorizontalIcon } from './ui/icons/ShowMoreHorizontal';
|
|
54
|
+
export { AlignTextLeftIcon } from './ui/icons/AlignTextLeftIcon';
|
|
55
|
+
export { AlignTextCenterIcon } from './ui/icons/AlignTextCenterIcon';
|
|
56
|
+
export { AlignTextRightIcon } from './ui/icons/AlignTextRightIcon';
|
|
57
|
+
export { useToolbarUI, ToolbarUIProvider } from './hooks/ui-context';
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
._2rkoi2wt{border-radius:6px}._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
|
|
3
3
|
._19bv1b66{padding-left:var(--ds-space-050,4px)}
|
|
4
|
-
.
|
|
4
|
+
._19bvutpp{padding-left:var(--ds-space-150,9pt)}
|
|
5
5
|
._1e0c1txw{display:flex}
|
|
6
|
+
._1tkezwfg{min-height:2pc}
|
|
6
7
|
._4cvr1h6o{align-items:center}
|
|
7
8
|
._4t3i14no{height:36px}
|
|
8
9
|
._bfhkvuon{background-color:var(--ds-surface,#fff)}
|
|
9
|
-
.
|
|
10
|
+
._ca0q12x7{padding-top:var(--ds-space-075,6px)}
|
|
11
|
+
._n3td12x7{padding-bottom:var(--ds-space-075,6px)}
|
|
12
|
+
._u5f31b66{padding-right:var(--ds-space-050,4px)}
|
|
13
|
+
._u5f3utpp{padding-right:var(--ds-space-150,9pt)}
|
|
@@ -2,16 +2,36 @@
|
|
|
2
2
|
import "./Toolbar.compiled.css";
|
|
3
3
|
import { ax, ix } from "@compiled/react/runtime";
|
|
4
4
|
import React from 'react';
|
|
5
|
+
import { cx } from '@atlaskit/css';
|
|
5
6
|
import { Box } from '@atlaskit/primitives/compiled';
|
|
6
7
|
const styles = {
|
|
7
|
-
|
|
8
|
+
toolbarBase: "_2rkoi2wt _bfhkvuon _1e0c1txw _4cvr1h6o",
|
|
9
|
+
toolbar: "_4t3i14no _u5f31b66 _19bv1b66 _16qs1cd0",
|
|
10
|
+
primaryToolbar: "_bfhkvuon _1tkezwfg _ca0q12x7 _n3td12x7 _19bvutpp _u5f3utpp"
|
|
8
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* A simple component representing a toolbar with box shadows - used to represent a secondary/floating toolbar
|
|
14
|
+
*/
|
|
9
15
|
export const Toolbar = ({
|
|
10
16
|
children,
|
|
11
17
|
label
|
|
12
18
|
}) => {
|
|
13
19
|
return /*#__PURE__*/React.createElement(Box, {
|
|
14
|
-
xcss: styles.toolbar,
|
|
20
|
+
xcss: cx(styles.toolbarBase, styles.toolbar),
|
|
21
|
+
role: "toolbar",
|
|
22
|
+
"aria-label": label
|
|
23
|
+
}, children);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A simple component representing a toolbar without box shadows - used to represent a primary toolbar
|
|
28
|
+
*/
|
|
29
|
+
export const PrimaryToolbar = ({
|
|
30
|
+
children,
|
|
31
|
+
label
|
|
32
|
+
}) => {
|
|
33
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
34
|
+
xcss: cx(styles.toolbarBase, styles.primaryToolbar),
|
|
15
35
|
role: "toolbar",
|
|
16
36
|
"aria-label": label
|
|
17
37
|
}, children);
|
|
@@ -4,6 +4,7 @@ import { ax, ix } from "@compiled/react/runtime";
|
|
|
4
4
|
import React, { forwardRef } from 'react';
|
|
5
5
|
import { cx } from '@atlaskit/css';
|
|
6
6
|
import { Pressable } from '@atlaskit/primitives/compiled';
|
|
7
|
+
import { useToolbarUI } from '../hooks/ui-context';
|
|
7
8
|
const styles = {
|
|
8
9
|
button: "_zulp12x7 _2rkoiti9 _1e0c1txw _bfhksm61 _o5721q9c _4cvr1h6o _1bah1h6o _1tke1f4h _syaz1gjq _k48p1wq8 _19bvu2gc _u5f3u2gc _1ah3idpf _g0pbkb7n _oh03h2mm",
|
|
9
10
|
enabled: "_irr3166n _1di61dty",
|
|
@@ -30,6 +31,9 @@ export const ToolbarButton = /*#__PURE__*/forwardRef(({
|
|
|
30
31
|
ariaKeyshortcuts,
|
|
31
32
|
label
|
|
32
33
|
}, ref) => {
|
|
34
|
+
const {
|
|
35
|
+
preventDefaultOnMouseDown
|
|
36
|
+
} = useToolbarUI();
|
|
33
37
|
return /*#__PURE__*/React.createElement(Pressable, {
|
|
34
38
|
ref: ref,
|
|
35
39
|
xcss: cx(styles.button, isDisabled ? styles.disabled : isSelected ? styles.selected : styles.enabled, groupLocation === 'start' && styles.groupStart, groupLocation === 'middle' && styles.groupMiddle, groupLocation === 'end' && styles.groupEnd),
|
|
@@ -44,6 +48,11 @@ export const ToolbarButton = /*#__PURE__*/forwardRef(({
|
|
|
44
48
|
onBlur: onBlur,
|
|
45
49
|
onFocus: onFocus,
|
|
46
50
|
testId: testId,
|
|
47
|
-
isDisabled: isDisabled
|
|
51
|
+
isDisabled: isDisabled,
|
|
52
|
+
onMouseDown: event => {
|
|
53
|
+
if (preventDefaultOnMouseDown) {
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
48
57
|
}, iconBefore, children);
|
|
49
58
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import DropdownMenu from '@atlaskit/dropdown-menu';
|
|
3
|
+
import { useToolbarUI } from '../hooks/ui-context';
|
|
3
4
|
import { ToolbarButton } from './ToolbarButton';
|
|
4
5
|
export const ToolbarDropdownMenu = ({
|
|
5
6
|
iconBefore,
|
|
@@ -9,6 +10,9 @@ export const ToolbarDropdownMenu = ({
|
|
|
9
10
|
testId,
|
|
10
11
|
label
|
|
11
12
|
}) => {
|
|
13
|
+
const {
|
|
14
|
+
onDropdownOpenChanged
|
|
15
|
+
} = useToolbarUI();
|
|
12
16
|
return /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
13
17
|
trigger: triggerProps => /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
14
18
|
ref: triggerProps.triggerRef,
|
|
@@ -24,6 +28,7 @@ export const ToolbarDropdownMenu = ({
|
|
|
24
28
|
groupLocation: groupLocation,
|
|
25
29
|
isDisabled: isDisabled,
|
|
26
30
|
label: label
|
|
27
|
-
})
|
|
31
|
+
}),
|
|
32
|
+
onOpenChange: onDropdownOpenChanged
|
|
28
33
|
}, children);
|
|
29
34
|
};
|
|
@@ -7,9 +7,11 @@ const styles = {
|
|
|
7
7
|
container: "_1e0c1txw _4cvr1h6o"
|
|
8
8
|
};
|
|
9
9
|
export const ToolbarSection = ({
|
|
10
|
-
children
|
|
10
|
+
children,
|
|
11
|
+
testId
|
|
11
12
|
}) => {
|
|
12
13
|
return /*#__PURE__*/React.createElement(Box, {
|
|
13
|
-
xcss: styles.container
|
|
14
|
+
xcss: styles.container,
|
|
15
|
+
testId: testId
|
|
14
16
|
}, children);
|
|
15
17
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React, { createContext, useContext } from 'react';
|
|
2
|
+
var ToolbarUIContext = /*#__PURE__*/createContext({
|
|
3
|
+
onDropdownOpenChanged: function onDropdownOpenChanged() {},
|
|
4
|
+
preventDefaultOnMouseDown: false
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Access consumer specific config and state within a toolbar component
|
|
9
|
+
*/
|
|
10
|
+
export var useToolbarUI = function useToolbarUI() {
|
|
11
|
+
var context = useContext(ToolbarUIContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new Error('useToolbarUI must be used within ToolbarUIContext');
|
|
14
|
+
}
|
|
15
|
+
return context;
|
|
16
|
+
};
|
|
17
|
+
export var ToolbarUIProvider = function ToolbarUIProvider(_ref) {
|
|
18
|
+
var children = _ref.children,
|
|
19
|
+
onDropdownOpenChanged = _ref.onDropdownOpenChanged,
|
|
20
|
+
preventDefaultOnMouseDown = _ref.preventDefaultOnMouseDown;
|
|
21
|
+
return /*#__PURE__*/React.createElement(ToolbarUIContext.Provider, {
|
|
22
|
+
value: {
|
|
23
|
+
onDropdownOpenChanged: onDropdownOpenChanged,
|
|
24
|
+
preventDefaultOnMouseDown: preventDefaultOnMouseDown
|
|
25
|
+
}
|
|
26
|
+
}, children);
|
|
27
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/* eslint-disable @atlaskit/editor/no-re-export */
|
|
2
|
-
export { Toolbar } from './ui/Toolbar';
|
|
2
|
+
export { Toolbar, PrimaryToolbar } from './ui/Toolbar';
|
|
3
3
|
export { ToolbarButton } from './ui/ToolbarButton';
|
|
4
4
|
export { ToolbarButtonGroup } from './ui/ToolbarButtonGroup';
|
|
5
5
|
export { ToolbarDropdownMenu } from './ui/ToolbarDropdownMenu';
|
|
6
6
|
export { ToolbarDropdownItem } from './ui/ToolbarDropdownItem';
|
|
7
7
|
export { ToolbarDropdownItemSection } from './ui/ToolbarDropdownItemSection';
|
|
8
|
+
export { ToolbarNestedDropdownMenu } from './ui/ToolbarNestedDropdownMenu';
|
|
8
9
|
export { ToolbarKeyboardShortcutHint } from './ui/ToolbarKeyboardShortcutHint';
|
|
9
10
|
export { ToolbarSection } from './ui/ToolbarSection';
|
|
10
11
|
export { ToolbarTooltip } from './ui/ToolbarTooltip';
|
|
11
|
-
export { ToolbarNestedDropdownMenu } from './ui/ToolbarNestedDropdownMenu';
|
|
12
12
|
export { ToolbarDropdownDivider } from './ui/ToolbarDropdownDivider';
|
|
13
13
|
export { ToolbarColorSwatch } from './ui/ToolbarColorSwatch';
|
|
14
14
|
export { AIAdjustLengthIcon } from './ui/icons/AIAdjustLengthIcon';
|
|
@@ -50,4 +50,8 @@ export { StrikeThroughIcon } from './ui/icons/StrikeThroughIcon';
|
|
|
50
50
|
export { CodeIcon } from './ui/icons/CodeIcon';
|
|
51
51
|
export { SubscriptIcon } from './ui/icons/SubscriptIcon';
|
|
52
52
|
export { SuperscriptIcon } from './ui/icons/SuperscriptIcon';
|
|
53
|
-
export { ShowMoreHorizontalIcon } from './ui/icons/ShowMoreHorizontal';
|
|
53
|
+
export { ShowMoreHorizontalIcon } from './ui/icons/ShowMoreHorizontal';
|
|
54
|
+
export { AlignTextLeftIcon } from './ui/icons/AlignTextLeftIcon';
|
|
55
|
+
export { AlignTextCenterIcon } from './ui/icons/AlignTextCenterIcon';
|
|
56
|
+
export { AlignTextRightIcon } from './ui/icons/AlignTextRightIcon';
|
|
57
|
+
export { useToolbarUI, ToolbarUIProvider } from './hooks/ui-context';
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
._2rkoi2wt{border-radius:6px}._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
|
|
3
3
|
._19bv1b66{padding-left:var(--ds-space-050,4px)}
|
|
4
|
-
.
|
|
4
|
+
._19bvutpp{padding-left:var(--ds-space-150,9pt)}
|
|
5
5
|
._1e0c1txw{display:flex}
|
|
6
|
+
._1tkezwfg{min-height:2pc}
|
|
6
7
|
._4cvr1h6o{align-items:center}
|
|
7
8
|
._4t3i14no{height:36px}
|
|
8
9
|
._bfhkvuon{background-color:var(--ds-surface,#fff)}
|
|
9
|
-
.
|
|
10
|
+
._ca0q12x7{padding-top:var(--ds-space-075,6px)}
|
|
11
|
+
._n3td12x7{padding-bottom:var(--ds-space-075,6px)}
|
|
12
|
+
._u5f31b66{padding-right:var(--ds-space-050,4px)}
|
|
13
|
+
._u5f3utpp{padding-right:var(--ds-space-150,9pt)}
|