@atlaskit/editor-toolbar 0.3.0 → 0.3.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/index.js +0 -7
  3. package/dist/cjs/ui/ToolbarButton.compiled.css +1 -13
  4. package/dist/cjs/ui/ToolbarButton.js +2 -6
  5. package/dist/cjs/ui/ToolbarButtonGroup.compiled.css +7 -1
  6. package/dist/cjs/ui/ToolbarButtonGroup.js +17 -5
  7. package/dist/cjs/ui/ToolbarDropdownItem.compiled.css +4 -2
  8. package/dist/cjs/ui/ToolbarDropdownItem.js +1 -1
  9. package/dist/cjs/ui/ToolbarDropdownItemSection.js +7 -10
  10. package/dist/cjs/ui/ToolbarDropdownMenu.compiled.css +1 -0
  11. package/dist/cjs/ui/ToolbarDropdownMenu.js +12 -6
  12. package/dist/es2019/index.js +0 -1
  13. package/dist/es2019/ui/ToolbarButton.compiled.css +1 -13
  14. package/dist/es2019/ui/ToolbarButton.js +2 -6
  15. package/dist/es2019/ui/ToolbarButtonGroup.compiled.css +7 -1
  16. package/dist/es2019/ui/ToolbarButtonGroup.js +14 -3
  17. package/dist/es2019/ui/ToolbarDropdownItem.compiled.css +4 -2
  18. package/dist/es2019/ui/ToolbarDropdownItem.js +1 -1
  19. package/dist/es2019/ui/ToolbarDropdownItemSection.js +7 -10
  20. package/dist/es2019/ui/ToolbarDropdownMenu.compiled.css +1 -0
  21. package/dist/es2019/ui/ToolbarDropdownMenu.js +11 -6
  22. package/dist/esm/index.js +0 -1
  23. package/dist/esm/ui/ToolbarButton.compiled.css +1 -13
  24. package/dist/esm/ui/ToolbarButton.js +2 -6
  25. package/dist/esm/ui/ToolbarButtonGroup.compiled.css +7 -1
  26. package/dist/esm/ui/ToolbarButtonGroup.js +14 -3
  27. package/dist/esm/ui/ToolbarDropdownItem.compiled.css +4 -2
  28. package/dist/esm/ui/ToolbarDropdownItem.js +1 -1
  29. package/dist/esm/ui/ToolbarDropdownItemSection.js +7 -10
  30. package/dist/esm/ui/ToolbarDropdownMenu.compiled.css +1 -0
  31. package/dist/esm/ui/ToolbarDropdownMenu.js +12 -6
  32. package/dist/types/index.d.ts +1 -2
  33. package/dist/types/types.d.ts +0 -1
  34. package/dist/types/ui/ToolbarButton.d.ts +0 -2
  35. package/dist/types/ui/ToolbarButtonGroup.d.ts +6 -2
  36. package/dist/types/ui/ToolbarDropdownItemSection.d.ts +3 -1
  37. package/dist/types/ui/ToolbarDropdownMenu.d.ts +9 -6
  38. package/dist/types/ui/ToolbarDropdownMenuContext.d.ts +1 -1
  39. package/dist/types/ui/ToolbarTooltip.d.ts +1 -1
  40. package/dist/types-ts4.5/index.d.ts +1 -2
  41. package/dist/types-ts4.5/types.d.ts +0 -1
  42. package/dist/types-ts4.5/ui/ToolbarButton.d.ts +0 -2
  43. package/dist/types-ts4.5/ui/ToolbarButtonGroup.d.ts +6 -2
  44. package/dist/types-ts4.5/ui/ToolbarDropdownItemSection.d.ts +3 -1
  45. package/dist/types-ts4.5/ui/ToolbarDropdownMenu.d.ts +9 -6
  46. package/dist/types-ts4.5/ui/ToolbarDropdownMenuContext.d.ts +1 -1
  47. package/dist/types-ts4.5/ui/ToolbarTooltip.d.ts +1 -1
  48. package/examples/toolbar/examples/ExampleManuallyComposedToolbar.tsx +2 -12
  49. package/package.json +1 -1
  50. package/src/index.ts +1 -2
  51. package/src/types.ts +0 -1
  52. package/src/ui/ColorPalette/Color.tsx +64 -56
  53. package/src/ui/ToolbarButton.tsx +0 -28
  54. package/src/ui/ToolbarButtonGroup.tsx +42 -3
  55. package/src/ui/ToolbarDropdownItem.tsx +4 -2
  56. package/src/ui/ToolbarDropdownItemSection.tsx +13 -11
  57. package/src/ui/ToolbarDropdownMenu.tsx +28 -15
  58. package/src/ui/ToolbarDropdownMenuContext.tsx +4 -4
  59. package/src/ui/ToolbarTooltip.tsx +1 -1
  60. package/dist/cjs/ui/ToolbarDropdownDivider.compiled.css +0 -3
  61. package/dist/cjs/ui/ToolbarDropdownDivider.js +0 -20
  62. package/dist/cjs/ui/ToolbarDropdownItemSection.compiled.css +0 -2
  63. package/dist/es2019/ui/ToolbarDropdownDivider.compiled.css +0 -3
  64. package/dist/es2019/ui/ToolbarDropdownDivider.js +0 -12
  65. package/dist/es2019/ui/ToolbarDropdownItemSection.compiled.css +0 -2
  66. package/dist/esm/ui/ToolbarDropdownDivider.compiled.css +0 -3
  67. package/dist/esm/ui/ToolbarDropdownDivider.js +0 -12
  68. package/dist/esm/ui/ToolbarDropdownItemSection.compiled.css +0 -2
  69. package/dist/types/ui/ToolbarDropdownDivider.d.ts +0 -1
  70. package/dist/types-ts4.5/ui/ToolbarDropdownDivider.d.ts +0 -1
  71. package/src/ui/ToolbarDropdownDivider.tsx +0 -20
@@ -1,19 +1,21 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
 
3
- import { cssMap } from '@atlaskit/css';
4
- import { Box } from '@atlaskit/primitives/compiled';
5
-
6
- const styles = cssMap({
7
- container: {
8
- display: 'flex',
9
- flexDirection: 'column',
10
- },
11
- });
3
+ import { DropdownItemGroup } from '@atlaskit/dropdown-menu';
12
4
 
13
5
  type ToolbarDropdownItemSectionProps = {
14
6
  children?: ReactNode;
7
+ hasSeparator?: boolean;
8
+ title?: string;
15
9
  };
16
10
 
17
- export const ToolbarDropdownItemSection = ({ children }: ToolbarDropdownItemSectionProps) => {
18
- return <Box xcss={styles.container}>{children}</Box>;
11
+ export const ToolbarDropdownItemSection = ({
12
+ children,
13
+ hasSeparator,
14
+ title,
15
+ }: ToolbarDropdownItemSectionProps) => {
16
+ return (
17
+ <DropdownItemGroup hasSeparator={hasSeparator} title={title}>
18
+ {children}
19
+ </DropdownItemGroup>
20
+ );
19
21
  };
@@ -1,27 +1,39 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
1
5
  import React, { type ReactNode, useCallback } from 'react';
2
6
 
7
+ import { jsx, cssMap } from '@compiled/react';
8
+
3
9
  import DropdownMenu, { type OnOpenChangeArgs } from '@atlaskit/dropdown-menu';
10
+ import { token } from '@atlaskit/tokens';
4
11
 
5
12
  import { useToolbarUI } from '../hooks/ui-context';
6
- import { type ToolbarButtonGroupLocation } from '../types';
7
13
 
8
14
  import { ToolbarButton } from './ToolbarButton';
9
15
  import { ToolbarDropdownMenuProvider, useToolbarDropdownMenu } from './ToolbarDropdownMenuContext';
10
16
 
17
+ const styles = cssMap({
18
+ sectionMargin: {
19
+ marginBlock: token('space.050'),
20
+ },
21
+ });
22
+
11
23
  type ToolbarDropdownMenuProps = {
12
24
  iconBefore: React.ReactNode;
13
25
  children?: ReactNode;
14
- groupLocation?: ToolbarButtonGroupLocation;
15
26
  isDisabled?: boolean;
16
27
  testId?: string;
17
28
  label?: string;
18
- isOpen?: boolean;
19
- onOpenChange?: (args: OnOpenChangeArgs) => void;
29
+ /**
30
+ * Whether to add margin around sections to align with 4px block padding existing in current editor dropdown
31
+ */
32
+ hasSectionMargin?: boolean;
20
33
  };
21
34
 
22
35
  const ToolbarDropdownMenuContent = ({
23
36
  iconBefore,
24
- groupLocation,
25
37
  children,
26
38
  isDisabled,
27
39
  testId,
@@ -30,12 +42,15 @@ const ToolbarDropdownMenuContent = ({
30
42
  const { onDropdownOpenChanged } = useToolbarUI();
31
43
  const { closeMenu, isOpen, openMenu } = useToolbarDropdownMenu();
32
44
 
33
- const handleOpenChange = useCallback((args: OnOpenChangeArgs) => {
34
- onDropdownOpenChanged(args);
35
- if (!args.isOpen) {
36
- closeMenu();
37
- }
38
- }, [closeMenu, onDropdownOpenChanged]);
45
+ const handleOpenChange = useCallback(
46
+ (args: OnOpenChangeArgs) => {
47
+ onDropdownOpenChanged(args);
48
+ if (!args.isOpen) {
49
+ closeMenu();
50
+ }
51
+ },
52
+ [closeMenu, onDropdownOpenChanged],
53
+ );
39
54
 
40
55
  const handleClick = useCallback(() => {
41
56
  if (!isOpen) {
@@ -62,7 +77,6 @@ const ToolbarDropdownMenuContent = ({
62
77
  onFocus={triggerProps.onFocus}
63
78
  testId={testId}
64
79
  iconBefore={iconBefore}
65
- groupLocation={groupLocation}
66
80
  isDisabled={isDisabled}
67
81
  label={label}
68
82
  />
@@ -77,22 +91,21 @@ const ToolbarDropdownMenuContent = ({
77
91
 
78
92
  export const ToolbarDropdownMenu = ({
79
93
  iconBefore,
80
- groupLocation,
81
94
  children,
82
95
  isDisabled,
83
96
  testId,
84
97
  label,
98
+ hasSectionMargin = true,
85
99
  }: ToolbarDropdownMenuProps) => {
86
100
  return (
87
101
  <ToolbarDropdownMenuProvider>
88
102
  <ToolbarDropdownMenuContent
89
103
  iconBefore={iconBefore}
90
- groupLocation={groupLocation}
91
104
  isDisabled={isDisabled}
92
105
  testId={testId}
93
106
  label={label}
94
107
  >
95
- {children}
108
+ <div css={hasSectionMargin && styles.sectionMargin}>{children}</div>
96
109
  </ToolbarDropdownMenuContent>
97
110
  </ToolbarDropdownMenuProvider>
98
111
  );
@@ -6,7 +6,9 @@ interface ToolbarDropdownMenuContextValue {
6
6
  isOpen: boolean;
7
7
  }
8
8
 
9
- const ToolbarDropdownMenuContext = createContext<ToolbarDropdownMenuContextValue | undefined>(undefined);
9
+ const ToolbarDropdownMenuContext = createContext<ToolbarDropdownMenuContextValue | undefined>(
10
+ undefined,
11
+ );
10
12
 
11
13
  export const useToolbarDropdownMenu = () => {
12
14
  const context = useContext(ToolbarDropdownMenuContext);
@@ -20,9 +22,7 @@ interface ToolbarDropdownMenuProviderProps {
20
22
  children: React.ReactNode;
21
23
  }
22
24
 
23
- export const ToolbarDropdownMenuProvider = ({
24
- children,
25
- }: ToolbarDropdownMenuProviderProps) => {
25
+ export const ToolbarDropdownMenuProvider = ({ children }: ToolbarDropdownMenuProviderProps) => {
26
26
  const [isOpen, setIsOpen] = useState(false);
27
27
 
28
28
  const openMenu = () => setIsOpen(true);
@@ -4,7 +4,7 @@ import type { PositionType } from '@atlaskit/tooltip';
4
4
  import Tooltip from '@atlaskit/tooltip';
5
5
 
6
6
  type ToolbarTooltipProps = {
7
- content: string;
7
+ content: React.ReactNode;
8
8
  children: React.ReactNode;
9
9
  position?: PositionType;
10
10
  };
@@ -1,3 +0,0 @@
1
- ._1doce4h9{border-bottom-width:var(--ds-border-width,1px)}
2
- ._1il9nqa1{border-bottom-style:solid}
3
- ._1o3imuej{border-bottom-color:var(--ds-border,#091e4224)}
@@ -1,20 +0,0 @@
1
- /* ToolbarDropdownDivider.tsx generated by @compiled/babel-plugin v0.36.1 */
2
- "use strict";
3
-
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.ToolbarDropdownDivider = void 0;
9
- require("./ToolbarDropdownDivider.compiled.css");
10
- var React = _interopRequireWildcard(require("react"));
11
- var _runtime = require("@compiled/react/runtime");
12
- 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); }
13
- var styles = {
14
- divider: "_1o3imuej _1il9nqa1 _1doce4h9"
15
- };
16
- var ToolbarDropdownDivider = exports.ToolbarDropdownDivider = function ToolbarDropdownDivider() {
17
- return /*#__PURE__*/React.createElement("div", {
18
- className: (0, _runtime.ax)([styles.divider])
19
- });
20
- };
@@ -1,2 +0,0 @@
1
- ._1e0c1txw{display:flex}
2
- ._2lx21bp4{flex-direction:column}
@@ -1,3 +0,0 @@
1
- ._1doce4h9{border-bottom-width:var(--ds-border-width,1px)}
2
- ._1il9nqa1{border-bottom-style:solid}
3
- ._1o3imuej{border-bottom-color:var(--ds-border,#091e4224)}
@@ -1,12 +0,0 @@
1
- /* ToolbarDropdownDivider.tsx generated by @compiled/babel-plugin v0.36.1 */
2
- import "./ToolbarDropdownDivider.compiled.css";
3
- import * as React from 'react';
4
- import { ax, ix } from "@compiled/react/runtime";
5
- const styles = {
6
- divider: "_1o3imuej _1il9nqa1 _1doce4h9"
7
- };
8
- export const ToolbarDropdownDivider = () => {
9
- return /*#__PURE__*/React.createElement("div", {
10
- className: ax([styles.divider])
11
- });
12
- };
@@ -1,2 +0,0 @@
1
- ._1e0c1txw{display:flex}
2
- ._2lx21bp4{flex-direction:column}
@@ -1,3 +0,0 @@
1
- ._1doce4h9{border-bottom-width:var(--ds-border-width,1px)}
2
- ._1il9nqa1{border-bottom-style:solid}
3
- ._1o3imuej{border-bottom-color:var(--ds-border,#091e4224)}
@@ -1,12 +0,0 @@
1
- /* ToolbarDropdownDivider.tsx generated by @compiled/babel-plugin v0.36.1 */
2
- import "./ToolbarDropdownDivider.compiled.css";
3
- import * as React from 'react';
4
- import { ax, ix } from "@compiled/react/runtime";
5
- var styles = {
6
- divider: "_1o3imuej _1il9nqa1 _1doce4h9"
7
- };
8
- export var ToolbarDropdownDivider = function ToolbarDropdownDivider() {
9
- return /*#__PURE__*/React.createElement("div", {
10
- className: ax([styles.divider])
11
- });
12
- };
@@ -1,2 +0,0 @@
1
- ._1e0c1txw{display:flex}
2
- ._2lx21bp4{flex-direction:column}
@@ -1 +0,0 @@
1
- export declare const ToolbarDropdownDivider: () => JSX.Element;
@@ -1 +0,0 @@
1
- export declare const ToolbarDropdownDivider: () => JSX.Element;
@@ -1,20 +0,0 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import { jsx } from '@compiled/react';
6
-
7
- import { cssMap } from '@atlaskit/css';
8
- import { token } from '@atlaskit/tokens';
9
-
10
- const styles = cssMap({
11
- divider: {
12
- borderBottomColor: token('color.border'),
13
- borderBottomStyle: 'solid',
14
- borderBottomWidth: token('border.width'),
15
- },
16
- });
17
-
18
- export const ToolbarDropdownDivider = () => {
19
- return <div css={styles.divider} />;
20
- };