@wordpress/components 30.9.1-next.8b30e05b0.0 → 31.0.1-next.6deb34194.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.
Files changed (214) hide show
  1. package/CHANGELOG.md +25 -4
  2. package/build/alignment-matrix-control/cell.js +131 -3
  3. package/build/alignment-matrix-control/cell.js.map +4 -4
  4. package/build/alignment-matrix-control/index.js +134 -6
  5. package/build/alignment-matrix-control/index.js.map +3 -3
  6. package/build/angle-picker-control/angle-circle.js +119 -15
  7. package/build/angle-picker-control/angle-circle.js.map +4 -4
  8. package/build/angle-picker-control/index.js +12 -7
  9. package/build/angle-picker-control/index.js.map +3 -3
  10. package/build/dropdown-menu/index.js +1 -1
  11. package/build/dropdown-menu/index.js.map +2 -2
  12. package/build/menu/styles.js +17 -17
  13. package/build/menu/styles.js.map +2 -2
  14. package/build/menu-item/index.js +1 -1
  15. package/build/menu-item/index.js.map +2 -2
  16. package/build/notice/index.js +1 -1
  17. package/build/notice/index.js.map +2 -2
  18. package/build/snackbar/index.js +1 -1
  19. package/build/snackbar/index.js.map +1 -1
  20. package/build/validated-form-controls/components/checkbox-control.js +0 -10
  21. package/build/validated-form-controls/components/checkbox-control.js.map +2 -2
  22. package/build/validated-form-controls/components/combobox-control.js +1 -11
  23. package/build/validated-form-controls/components/combobox-control.js.map +2 -2
  24. package/build/validated-form-controls/components/custom-select-control.js +0 -10
  25. package/build/validated-form-controls/components/custom-select-control.js.map +2 -2
  26. package/build/validated-form-controls/components/form-token-field.js +2 -12
  27. package/build/validated-form-controls/components/form-token-field.js.map +2 -2
  28. package/build/validated-form-controls/components/input-control.js +0 -10
  29. package/build/validated-form-controls/components/input-control.js.map +2 -2
  30. package/build/validated-form-controls/components/number-control.js +0 -10
  31. package/build/validated-form-controls/components/number-control.js.map +2 -2
  32. package/build/validated-form-controls/components/radio-control.js +0 -10
  33. package/build/validated-form-controls/components/radio-control.js.map +2 -2
  34. package/build/validated-form-controls/components/range-control.js +0 -10
  35. package/build/validated-form-controls/components/range-control.js.map +2 -2
  36. package/build/validated-form-controls/components/select-control.js +0 -10
  37. package/build/validated-form-controls/components/select-control.js.map +2 -2
  38. package/build/validated-form-controls/components/text-control.js +0 -10
  39. package/build/validated-form-controls/components/text-control.js.map +2 -2
  40. package/build/validated-form-controls/components/textarea-control.js +0 -10
  41. package/build/validated-form-controls/components/textarea-control.js.map +2 -2
  42. package/build/validated-form-controls/components/toggle-control.js +0 -10
  43. package/build/validated-form-controls/components/toggle-control.js.map +2 -2
  44. package/build/validated-form-controls/components/toggle-group-control.js +0 -10
  45. package/build/validated-form-controls/components/toggle-group-control.js.map +2 -2
  46. package/build/validated-form-controls/control-with-error.js +53 -58
  47. package/build/validated-form-controls/control-with-error.js.map +2 -2
  48. package/build-module/alignment-matrix-control/cell.js +131 -3
  49. package/build-module/alignment-matrix-control/cell.js.map +3 -3
  50. package/build-module/alignment-matrix-control/index.js +134 -6
  51. package/build-module/alignment-matrix-control/index.js.map +3 -3
  52. package/build-module/angle-picker-control/angle-circle.js +109 -15
  53. package/build-module/angle-picker-control/angle-circle.js.map +3 -3
  54. package/build-module/angle-picker-control/index.js +12 -7
  55. package/build-module/angle-picker-control/index.js.map +2 -2
  56. package/build-module/dropdown-menu/index.js +1 -1
  57. package/build-module/dropdown-menu/index.js.map +2 -2
  58. package/build-module/menu/styles.js +17 -17
  59. package/build-module/menu/styles.js.map +2 -2
  60. package/build-module/menu-item/index.js +1 -1
  61. package/build-module/menu-item/index.js.map +2 -2
  62. package/build-module/notice/index.js +1 -1
  63. package/build-module/notice/index.js.map +2 -2
  64. package/build-module/snackbar/index.js +1 -1
  65. package/build-module/snackbar/index.js.map +1 -1
  66. package/build-module/validated-form-controls/components/checkbox-control.js +0 -10
  67. package/build-module/validated-form-controls/components/checkbox-control.js.map +2 -2
  68. package/build-module/validated-form-controls/components/combobox-control.js +1 -11
  69. package/build-module/validated-form-controls/components/combobox-control.js.map +2 -2
  70. package/build-module/validated-form-controls/components/custom-select-control.js +0 -10
  71. package/build-module/validated-form-controls/components/custom-select-control.js.map +2 -2
  72. package/build-module/validated-form-controls/components/form-token-field.js +2 -12
  73. package/build-module/validated-form-controls/components/form-token-field.js.map +2 -2
  74. package/build-module/validated-form-controls/components/input-control.js +0 -10
  75. package/build-module/validated-form-controls/components/input-control.js.map +2 -2
  76. package/build-module/validated-form-controls/components/number-control.js +0 -10
  77. package/build-module/validated-form-controls/components/number-control.js.map +2 -2
  78. package/build-module/validated-form-controls/components/radio-control.js +0 -10
  79. package/build-module/validated-form-controls/components/radio-control.js.map +2 -2
  80. package/build-module/validated-form-controls/components/range-control.js +0 -10
  81. package/build-module/validated-form-controls/components/range-control.js.map +2 -2
  82. package/build-module/validated-form-controls/components/select-control.js +0 -10
  83. package/build-module/validated-form-controls/components/select-control.js.map +2 -2
  84. package/build-module/validated-form-controls/components/text-control.js +0 -10
  85. package/build-module/validated-form-controls/components/text-control.js.map +2 -2
  86. package/build-module/validated-form-controls/components/textarea-control.js +0 -10
  87. package/build-module/validated-form-controls/components/textarea-control.js.map +2 -2
  88. package/build-module/validated-form-controls/components/toggle-control.js +0 -10
  89. package/build-module/validated-form-controls/components/toggle-control.js.map +2 -2
  90. package/build-module/validated-form-controls/components/toggle-group-control.js +0 -10
  91. package/build-module/validated-form-controls/components/toggle-group-control.js.map +2 -2
  92. package/build-module/validated-form-controls/control-with-error.js +53 -58
  93. package/build-module/validated-form-controls/control-with-error.js.map +2 -2
  94. package/build-style/style-rtl.css +21 -33
  95. package/build-style/style.css +21 -33
  96. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  97. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  98. package/build-types/angle-picker-control/angle-circle.d.ts +1 -1
  99. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  100. package/build-types/angle-picker-control/index.d.ts.map +1 -1
  101. package/build-types/notice/index.d.ts.map +1 -1
  102. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  103. package/build-types/validated-form-controls/components/checkbox-control.d.ts +1 -1
  104. package/build-types/validated-form-controls/components/checkbox-control.d.ts.map +1 -1
  105. package/build-types/validated-form-controls/components/combobox-control.d.ts +2 -3
  106. package/build-types/validated-form-controls/components/combobox-control.d.ts.map +1 -1
  107. package/build-types/validated-form-controls/components/custom-select-control.d.ts +1 -2
  108. package/build-types/validated-form-controls/components/custom-select-control.d.ts.map +1 -1
  109. package/build-types/validated-form-controls/components/form-token-field.d.ts +1 -2
  110. package/build-types/validated-form-controls/components/form-token-field.d.ts.map +1 -1
  111. package/build-types/validated-form-controls/components/input-control.d.ts +1 -2
  112. package/build-types/validated-form-controls/components/input-control.d.ts.map +1 -1
  113. package/build-types/validated-form-controls/components/number-control.d.ts +1 -1
  114. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
  115. package/build-types/validated-form-controls/components/radio-control.d.ts +1 -1
  116. package/build-types/validated-form-controls/components/radio-control.d.ts.map +1 -1
  117. package/build-types/validated-form-controls/components/range-control.d.ts +1 -1
  118. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
  119. package/build-types/validated-form-controls/components/select-control.d.ts +2 -3
  120. package/build-types/validated-form-controls/components/select-control.d.ts.map +1 -1
  121. package/build-types/validated-form-controls/components/stories/checkbox-control.story.d.ts.map +1 -1
  122. package/build-types/validated-form-controls/components/stories/combobox-control.story.d.ts.map +1 -1
  123. package/build-types/validated-form-controls/components/stories/custom-select-control.story.d.ts.map +1 -1
  124. package/build-types/validated-form-controls/components/stories/form-token-field.story.d.ts.map +1 -1
  125. package/build-types/validated-form-controls/components/stories/input-control.story.d.ts.map +1 -1
  126. package/build-types/validated-form-controls/components/stories/number-control.story.d.ts.map +1 -1
  127. package/build-types/validated-form-controls/components/stories/overview.story.d.ts +7 -0
  128. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
  129. package/build-types/validated-form-controls/components/stories/radio-control.story.d.ts.map +1 -1
  130. package/build-types/validated-form-controls/components/stories/range-control.story.d.ts.map +1 -1
  131. package/build-types/validated-form-controls/components/stories/select-control.story.d.ts.map +1 -1
  132. package/build-types/validated-form-controls/components/stories/text-control.story.d.ts.map +1 -1
  133. package/build-types/validated-form-controls/components/stories/textarea-control.story.d.ts.map +1 -1
  134. package/build-types/validated-form-controls/components/stories/toggle-control.story.d.ts.map +1 -1
  135. package/build-types/validated-form-controls/components/stories/toggle-group-control.story.d.ts.map +1 -1
  136. package/build-types/validated-form-controls/components/text-control.d.ts +1 -1
  137. package/build-types/validated-form-controls/components/text-control.d.ts.map +1 -1
  138. package/build-types/validated-form-controls/components/textarea-control.d.ts +1 -1
  139. package/build-types/validated-form-controls/components/textarea-control.d.ts.map +1 -1
  140. package/build-types/validated-form-controls/components/toggle-control.d.ts +1 -1
  141. package/build-types/validated-form-controls/components/toggle-control.d.ts.map +1 -1
  142. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +1 -1
  143. package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -1
  144. package/build-types/validated-form-controls/components/types.d.ts +1 -9
  145. package/build-types/validated-form-controls/components/types.d.ts.map +1 -1
  146. package/build-types/validated-form-controls/control-with-error.d.ts +4 -5
  147. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
  148. package/package.json +20 -20
  149. package/src/alignment-matrix-control/cell.tsx +14 -3
  150. package/src/alignment-matrix-control/index.tsx +15 -6
  151. package/src/alignment-matrix-control/style.module.scss +84 -0
  152. package/src/angle-picker-control/angle-circle.tsx +27 -12
  153. package/src/angle-picker-control/index.tsx +8 -7
  154. package/src/angle-picker-control/style.module.scss +40 -0
  155. package/src/button/style.scss +1 -1
  156. package/src/dropdown-menu/index.tsx +1 -1
  157. package/src/dropdown-menu/style.scss +1 -1
  158. package/src/guide/style.scss +3 -3
  159. package/src/menu/styles.ts +2 -2
  160. package/src/menu-item/index.tsx +1 -1
  161. package/src/menu-item/test/__snapshots__/index.js.snap +4 -4
  162. package/src/modal/style.scss +5 -5
  163. package/src/notice/index.tsx +53 -46
  164. package/src/notice/stories/index.story.tsx +17 -1
  165. package/src/notice/style.scss +3 -20
  166. package/src/snackbar/index.tsx +1 -1
  167. package/src/validated-form-controls/components/checkbox-control.tsx +1 -14
  168. package/src/validated-form-controls/components/combobox-control.tsx +1 -14
  169. package/src/validated-form-controls/components/custom-select-control.tsx +1 -19
  170. package/src/validated-form-controls/components/form-token-field.tsx +2 -15
  171. package/src/validated-form-controls/components/input-control.tsx +1 -14
  172. package/src/validated-form-controls/components/number-control.tsx +1 -16
  173. package/src/validated-form-controls/components/radio-control.tsx +2 -18
  174. package/src/validated-form-controls/components/range-control.tsx +1 -14
  175. package/src/validated-form-controls/components/select-control.tsx +1 -23
  176. package/src/validated-form-controls/components/stories/checkbox-control.story.tsx +11 -20
  177. package/src/validated-form-controls/components/stories/combobox-control.story.tsx +8 -17
  178. package/src/validated-form-controls/components/stories/custom-select-control.story.tsx +8 -17
  179. package/src/validated-form-controls/components/stories/form-token-field.story.tsx +14 -26
  180. package/src/validated-form-controls/components/stories/input-control.story.tsx +25 -50
  181. package/src/validated-form-controls/components/stories/number-control.story.tsx +10 -19
  182. package/src/validated-form-controls/components/stories/overview.mdx +3 -3
  183. package/src/validated-form-controls/components/stories/overview.story.tsx +94 -79
  184. package/src/validated-form-controls/components/stories/radio-control.story.tsx +11 -20
  185. package/src/validated-form-controls/components/stories/range-control.story.tsx +8 -17
  186. package/src/validated-form-controls/components/stories/select-control.story.tsx +9 -18
  187. package/src/validated-form-controls/components/stories/text-control.story.tsx +11 -17
  188. package/src/validated-form-controls/components/stories/textarea-control.story.tsx +12 -16
  189. package/src/validated-form-controls/components/stories/toggle-control.story.tsx +11 -20
  190. package/src/validated-form-controls/components/stories/toggle-group-control.story.tsx +8 -17
  191. package/src/validated-form-controls/components/text-control.tsx +1 -14
  192. package/src/validated-form-controls/components/textarea-control.tsx +1 -14
  193. package/src/validated-form-controls/components/toggle-control.tsx +1 -14
  194. package/src/validated-form-controls/components/toggle-group-control.tsx +1 -14
  195. package/src/validated-form-controls/components/types.ts +1 -9
  196. package/src/validated-form-controls/control-with-error.tsx +57 -84
  197. package/src/validated-form-controls/style.scss +7 -7
  198. package/src/validated-form-controls/test/control-with-error.tsx +66 -5
  199. package/tsconfig.json +1 -0
  200. package/tsconfig.tsbuildinfo +1 -1
  201. package/build/alignment-matrix-control/styles.js +0 -105
  202. package/build/alignment-matrix-control/styles.js.map +0 -7
  203. package/build/angle-picker-control/styles/angle-picker-control-styles.js +0 -88
  204. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +0 -7
  205. package/build-module/alignment-matrix-control/styles.js +0 -67
  206. package/build-module/alignment-matrix-control/styles.js.map +0 -7
  207. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +0 -50
  208. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +0 -7
  209. package/build-types/alignment-matrix-control/styles.d.ts +0 -21
  210. package/build-types/alignment-matrix-control/styles.d.ts.map +0 -1
  211. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +0 -18
  212. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +0 -1
  213. package/src/alignment-matrix-control/styles.ts +0 -113
  214. package/src/angle-picker-control/styles/angle-picker-control-styles.tsx +0 -58
@@ -5,9 +5,134 @@ import { useInstanceId } from "@wordpress/compose";
5
5
  import { useCallback } from "@wordpress/element";
6
6
  import Cell from "./cell";
7
7
  import { Composite } from "../composite";
8
- import { GridContainer, GridRow } from "./styles";
9
8
  import AlignmentMatrixControlIcon from "./icon";
10
9
  import { GRID, getItemId, getItemValue } from "./utils";
10
+
11
+ // packages/components/src/alignment-matrix-control/style.module.scss
12
+ var css = `/**
13
+ * SCSS Variables.
14
+ *
15
+ * Please use variables from this sheet to ensure consistency across the UI.
16
+ * Don't add to this sheet unless you're pretty sure the value will be reused in many places.
17
+ * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
18
+ */
19
+ /**
20
+ * Colors
21
+ */
22
+ /**
23
+ * Fonts & basic variables.
24
+ */
25
+ /**
26
+ * Typography
27
+ */
28
+ /**
29
+ * Grid System.
30
+ * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
31
+ */
32
+ /**
33
+ * Radius scale.
34
+ */
35
+ /**
36
+ * Elevation scale.
37
+ */
38
+ /**
39
+ * Dimensions.
40
+ */
41
+ /**
42
+ * Mobile specific styles
43
+ */
44
+ /**
45
+ * Editor styles.
46
+ */
47
+ /**
48
+ * Block & Editor UI.
49
+ */
50
+ /**
51
+ * Block paddings.
52
+ */
53
+ /**
54
+ * React Native specific.
55
+ * These variables do not appear to be used anywhere else.
56
+ */
57
+ .style-module__grid-container__AuKvW {
58
+ direction: ltr;
59
+ display: grid;
60
+ grid-template-columns: repeat(3, 1fr);
61
+ grid-template-rows: repeat(3, 1fr);
62
+ box-sizing: border-box;
63
+ aspect-ratio: 1;
64
+ border: 1px solid transparent;
65
+ border-radius: 4px;
66
+ outline: none;
67
+ cursor: pointer;
68
+ }
69
+
70
+ .style-module__grid-row__xCH47 {
71
+ grid-column: 1/-1;
72
+ box-sizing: border-box;
73
+ display: grid;
74
+ grid-template-columns: repeat(3, 1fr);
75
+ }
76
+
77
+ .style-module__cell__Ovdp9 {
78
+ position: relative;
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: center;
82
+ box-sizing: border-box;
83
+ margin: 0;
84
+ padding: 0;
85
+ appearance: none;
86
+ border: none;
87
+ outline: none;
88
+ }
89
+
90
+ .style-module__point__N-8S1 {
91
+ display: block;
92
+ contain: strict;
93
+ box-sizing: border-box;
94
+ width: 6px;
95
+ aspect-ratio: 1;
96
+ margin: auto;
97
+ color: var(--wp-components-color-gray-400, #ccc);
98
+ /* Use border instead of background color so that the point shows
99
+ in Windows High Contrast Mode */
100
+ border: 3px solid currentColor;
101
+ /* Highlight active item */
102
+ }
103
+ .style-module__cell__Ovdp9[data-active-item] .style-module__point__N-8S1 {
104
+ color: var(--wp-components-color-foreground, #1e1e1e);
105
+ transform: scale(1.6666666667);
106
+ }
107
+ .style-module__point__N-8S1 {
108
+ /* Hover styles for non-active items */
109
+ }
110
+ .style-module__cell__Ovdp9:not([data-active-item]):hover .style-module__point__N-8S1 {
111
+ color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
112
+ }
113
+ .style-module__point__N-8S1 {
114
+ /* Show an outline only when interacting with keyboard */
115
+ }
116
+ .style-module__cell__Ovdp9[data-focus-visible] .style-module__point__N-8S1 {
117
+ outline: 1px solid var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
118
+ outline-offset: 1px;
119
+ }
120
+ @media not (prefers-reduced-motion) {
121
+ .style-module__point__N-8S1 {
122
+ transition-property: color, transform;
123
+ transition-duration: 120ms;
124
+ transition-timing-function: linear;
125
+ }
126
+ }`;
127
+ document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
128
+ var style_module_default = {
129
+ "grid-container": "style-module__grid-container__AuKvW",
130
+ "grid-row": "style-module__grid-row__xCH47",
131
+ "cell": "style-module__cell__Ovdp9",
132
+ "point": "style-module__point__N-8S1"
133
+ };
134
+
135
+ // packages/components/src/alignment-matrix-control/index.tsx
11
136
  import { jsx as _jsx } from "react/jsx-runtime";
12
137
  function UnforwardedAlignmentMatrixControl({
13
138
  className,
@@ -26,22 +151,25 @@ function UnforwardedAlignmentMatrixControl({
26
151
  onChange?.(nextValue);
27
152
  }
28
153
  }, [baseId, onChange]);
29
- const classes = clsx("component-alignment-matrix-control", className);
154
+ const classes = clsx("component-alignment-matrix-control", style_module_default["grid-container"], className);
30
155
  return /* @__PURE__ */ _jsx(Composite, {
31
156
  defaultActiveId: getItemId(baseId, defaultValue),
32
157
  activeId: getItemId(baseId, value),
33
158
  setActiveId,
34
159
  rtl: isRTL(),
35
- render: /* @__PURE__ */ _jsx(GridContainer, {
160
+ render: /* @__PURE__ */ _jsx("div", {
36
161
  ...props,
37
- "aria-label": label,
38
162
  className: classes,
163
+ "aria-label": label,
39
164
  id: baseId,
40
165
  role: "grid",
41
- size: width
166
+ style: {
167
+ width: `${width}px`
168
+ }
42
169
  }),
43
170
  children: GRID.map((cells, index) => /* @__PURE__ */ _jsx(Composite.Row, {
44
- render: /* @__PURE__ */ _jsx(GridRow, {
171
+ render: /* @__PURE__ */ _jsx("div", {
172
+ className: style_module_default["grid-row"],
45
173
  role: "row"
46
174
  }),
47
175
  children: cells.map((cell) => /* @__PURE__ */ _jsx(Cell, {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/alignment-matrix-control/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\nimport { Composite } from '../composite';\nimport { GridContainer, GridRow } from './styles';\nimport AlignmentMatrixControlIcon from './icon';\nimport { GRID, getItemId, getItemValue } from './utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction UnforwardedAlignmentMatrixControl({\n className,\n id,\n label = __('Alignment Matrix Control'),\n defaultValue = 'center center',\n value,\n onChange,\n width = 92,\n ...props\n}) {\n const baseId = useInstanceId(UnforwardedAlignmentMatrixControl, 'alignment-matrix-control', id);\n const setActiveId = useCallback(nextActiveId => {\n const nextValue = getItemValue(baseId, nextActiveId);\n if (nextValue) {\n onChange?.(nextValue);\n }\n }, [baseId, onChange]);\n const classes = clsx('component-alignment-matrix-control', className);\n return /*#__PURE__*/_jsx(Composite, {\n defaultActiveId: getItemId(baseId, defaultValue),\n activeId: getItemId(baseId, value),\n setActiveId: setActiveId,\n rtl: isRTL(),\n render: /*#__PURE__*/_jsx(GridContainer, {\n ...props,\n \"aria-label\": label,\n className: classes,\n id: baseId,\n role: \"grid\",\n size: width\n }),\n children: GRID.map((cells, index) => /*#__PURE__*/_jsx(Composite.Row, {\n render: /*#__PURE__*/_jsx(GridRow, {\n role: \"row\"\n }),\n children: cells.map(cell => /*#__PURE__*/_jsx(Cell, {\n id: getItemId(baseId, cell),\n value: cell\n }, cell))\n }, index))\n });\n}\n\n/**\n * AlignmentMatrixControl components enable adjustments to horizontal and vertical alignments for UI.\n *\n * ```jsx\n * import { AlignmentMatrixControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * \tconst [ alignment, setAlignment ] = useState( 'center center' );\n *\n * \treturn (\n * \t\t<AlignmentMatrixControl\n * \t\t\tvalue={ alignment }\n * \t\t\tonChange={ setAlignment }\n * \t\t/>\n * \t);\n * };\n * ```\n */\nexport const AlignmentMatrixControl = Object.assign(UnforwardedAlignmentMatrixControl, {\n /**\n * Render an alignment matrix as an icon.\n *\n * ```jsx\n * import { AlignmentMatrixControl } from '@wordpress/components';\n *\n * <Icon icon={<AlignmentMatrixControl.Icon value=\"top left\" />} />\n * ```\n */\n Icon: Object.assign(AlignmentMatrixControlIcon, {\n displayName: 'AlignmentMatrixControl.Icon'\n })\n});\nexport default AlignmentMatrixControl;"],
5
- "mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,IAAI,aAAa;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAK5B,OAAO,UAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,eAAe,eAAe;AACvC,OAAO,gCAAgC;AACvC,SAAS,MAAM,WAAW,oBAAoB;AAC9C,SAAS,OAAO,YAAY;AAC5B,SAAS,kCAAkC;AAAA,EACzC;AAAA,EACA;AAAA,EACA,QAAQ,GAAG,0BAA0B;AAAA,EACrC,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACL,GAAG;AACD,QAAM,SAAS,cAAc,mCAAmC,4BAA4B,EAAE;AAC9F,QAAM,cAAc,YAAY,kBAAgB;AAC9C,UAAM,YAAY,aAAa,QAAQ,YAAY;AACnD,QAAI,WAAW;AACb,iBAAW,SAAS;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,QAAQ,QAAQ,CAAC;AACrB,QAAM,UAAU,KAAK,sCAAsC,SAAS;AACpE,SAAoB,qBAAK,WAAW;AAAA,IAClC,iBAAiB,UAAU,QAAQ,YAAY;AAAA,IAC/C,UAAU,UAAU,QAAQ,KAAK;AAAA,IACjC;AAAA,IACA,KAAK,MAAM;AAAA,IACX,QAAqB,qBAAK,eAAe;AAAA,MACvC,GAAG;AAAA,MACH,cAAc;AAAA,MACd,WAAW;AAAA,MACX,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,IACR,CAAC;AAAA,IACD,UAAU,KAAK,IAAI,CAAC,OAAO,UAAuB,qBAAK,UAAU,KAAK;AAAA,MACpE,QAAqB,qBAAK,SAAS;AAAA,QACjC,MAAM;AAAA,MACR,CAAC;AAAA,MACD,UAAU,MAAM,IAAI,UAAqB,qBAAK,MAAM;AAAA,QAClD,IAAI,UAAU,QAAQ,IAAI;AAAA,QAC1B,OAAO;AAAA,MACT,GAAG,IAAI,CAAC;AAAA,IACV,GAAG,KAAK,CAAC;AAAA,EACX,CAAC;AACH;AAqBO,IAAM,yBAAyB,OAAO,OAAO,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrF,MAAM,OAAO,OAAO,4BAA4B;AAAA,IAC9C,aAAa;AAAA,EACf,CAAC;AACH,CAAC;AACD,IAAO,mCAAQ;",
3
+ "sources": ["../../src/alignment-matrix-control/index.tsx", "../../src/alignment-matrix-control/style.module.scss"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\nimport { Composite } from '../composite';\nimport AlignmentMatrixControlIcon from './icon';\nimport { GRID, getItemId, getItemValue } from './utils';\nimport styles from './style.module.scss';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction UnforwardedAlignmentMatrixControl({\n className,\n id,\n label = __('Alignment Matrix Control'),\n defaultValue = 'center center',\n value,\n onChange,\n width = 92,\n ...props\n}) {\n const baseId = useInstanceId(UnforwardedAlignmentMatrixControl, 'alignment-matrix-control', id);\n const setActiveId = useCallback(nextActiveId => {\n const nextValue = getItemValue(baseId, nextActiveId);\n if (nextValue) {\n onChange?.(nextValue);\n }\n }, [baseId, onChange]);\n const classes = clsx('component-alignment-matrix-control', styles['grid-container'], className);\n return /*#__PURE__*/_jsx(Composite, {\n defaultActiveId: getItemId(baseId, defaultValue),\n activeId: getItemId(baseId, value),\n setActiveId: setActiveId,\n rtl: isRTL(),\n render: /*#__PURE__*/_jsx(\"div\", {\n ...props,\n className: classes,\n \"aria-label\": label,\n id: baseId,\n role: \"grid\",\n style: {\n width: `${width}px`\n }\n }),\n children: GRID.map((cells, index) => /*#__PURE__*/_jsx(Composite.Row, {\n render: /*#__PURE__*/_jsx(\"div\", {\n className: styles['grid-row'],\n role: \"row\"\n }),\n children: cells.map(cell => /*#__PURE__*/_jsx(Cell, {\n id: getItemId(baseId, cell),\n value: cell\n }, cell))\n }, index))\n });\n}\n\n/**\n * AlignmentMatrixControl components enable adjustments to horizontal and vertical alignments for UI.\n *\n * ```jsx\n * import { AlignmentMatrixControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * \tconst [ alignment, setAlignment ] = useState( 'center center' );\n *\n * \treturn (\n * \t\t<AlignmentMatrixControl\n * \t\t\tvalue={ alignment }\n * \t\t\tonChange={ setAlignment }\n * \t\t/>\n * \t);\n * };\n * ```\n */\nexport const AlignmentMatrixControl = Object.assign(UnforwardedAlignmentMatrixControl, {\n /**\n * Render an alignment matrix as an icon.\n *\n * ```jsx\n * import { AlignmentMatrixControl } from '@wordpress/components';\n *\n * <Icon icon={<AlignmentMatrixControl.Icon value=\"top left\" />} />\n * ```\n */\n Icon: Object.assign(AlignmentMatrixControlIcon, {\n displayName: 'AlignmentMatrixControl.Icon'\n })\n});\nexport default AlignmentMatrixControl;", "const css = `/**\n * SCSS Variables.\n *\n * Please use variables from this sheet to ensure consistency across the UI.\n * Don't add to this sheet unless you're pretty sure the value will be reused in many places.\n * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.\n */\n/**\n * Colors\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Typography\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Radius scale.\n */\n/**\n * Elevation scale.\n */\n/**\n * Dimensions.\n */\n/**\n * Mobile specific styles\n */\n/**\n * Editor styles.\n */\n/**\n * Block & Editor UI.\n */\n/**\n * Block paddings.\n */\n/**\n * React Native specific.\n * These variables do not appear to be used anywhere else.\n */\n.style-module__grid-container__AuKvW {\n direction: ltr;\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: repeat(3, 1fr);\n box-sizing: border-box;\n aspect-ratio: 1;\n border: 1px solid transparent;\n border-radius: 4px;\n outline: none;\n cursor: pointer;\n}\n\n.style-module__grid-row__xCH47 {\n grid-column: 1/-1;\n box-sizing: border-box;\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n}\n\n.style-module__cell__Ovdp9 {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n appearance: none;\n border: none;\n outline: none;\n}\n\n.style-module__point__N-8S1 {\n display: block;\n contain: strict;\n box-sizing: border-box;\n width: 6px;\n aspect-ratio: 1;\n margin: auto;\n color: var(--wp-components-color-gray-400, #ccc);\n /* Use border instead of background color so that the point shows\n in Windows High Contrast Mode */\n border: 3px solid currentColor;\n /* Highlight active item */\n}\n.style-module__cell__Ovdp9[data-active-item] .style-module__point__N-8S1 {\n color: var(--wp-components-color-foreground, #1e1e1e);\n transform: scale(1.6666666667);\n}\n.style-module__point__N-8S1 {\n /* Hover styles for non-active items */\n}\n.style-module__cell__Ovdp9:not([data-active-item]):hover .style-module__point__N-8S1 {\n color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));\n}\n.style-module__point__N-8S1 {\n /* Show an outline only when interacting with keyboard */\n}\n.style-module__cell__Ovdp9[data-focus-visible] .style-module__point__N-8S1 {\n outline: 1px solid var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));\n outline-offset: 1px;\n}\n@media not (prefers-reduced-motion) {\n .style-module__point__N-8S1 {\n transition-property: color, transform;\n transition-duration: 120ms;\n transition-timing-function: linear;\n }\n}`;\ndocument.head\n .appendChild(document.createElement(\"style\"))\n .appendChild(document.createTextNode(css));\nexport {css};\nexport default {\n \"grid-container\": \"style-module__grid-container__AuKvW\",\n \"grid-row\": \"style-module__grid-row__xCH47\",\n \"cell\": \"style-module__cell__Ovdp9\",\n \"point\": \"style-module__point__N-8S1\"\n};"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,102 @@
1
1
  // packages/components/src/angle-picker-control/angle-circle.tsx
2
+ import clsx from "clsx";
2
3
  import { useEffect, useRef } from "@wordpress/element";
3
4
  import { __experimentalUseDragging as useDragging } from "@wordpress/compose";
4
- import { CircleRoot, CircleIndicatorWrapper, CircleIndicator } from "./styles/angle-picker-control-styles";
5
+
6
+ // packages/components/src/angle-picker-control/style.module.scss
7
+ var css = `/**
8
+ * SCSS Variables.
9
+ *
10
+ * Please use variables from this sheet to ensure consistency across the UI.
11
+ * Don't add to this sheet unless you're pretty sure the value will be reused in many places.
12
+ * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
13
+ */
14
+ /**
15
+ * Colors
16
+ */
17
+ /**
18
+ * Fonts & basic variables.
19
+ */
20
+ /**
21
+ * Typography
22
+ */
23
+ /**
24
+ * Grid System.
25
+ * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
26
+ */
27
+ /**
28
+ * Radius scale.
29
+ */
30
+ /**
31
+ * Elevation scale.
32
+ */
33
+ /**
34
+ * Dimensions.
35
+ */
36
+ /**
37
+ * Mobile specific styles
38
+ */
39
+ /**
40
+ * Editor styles.
41
+ */
42
+ /**
43
+ * Block & Editor UI.
44
+ */
45
+ /**
46
+ * Block paddings.
47
+ */
48
+ /**
49
+ * React Native specific.
50
+ * These variables do not appear to be used anywhere else.
51
+ */
52
+ .style-module__circle-root__j1e41 {
53
+ border-radius: 50%;
54
+ border: 1px solid var(--wp-components-color-gray-600, #949494);
55
+ box-sizing: border-box;
56
+ cursor: grab;
57
+ height: 32px;
58
+ overflow: hidden;
59
+ width: 32px;
60
+ }
61
+ .style-module__circle-root__j1e41:active {
62
+ cursor: grabbing;
63
+ }
64
+
65
+ .style-module__circle-indicator-wrapper__sbrph {
66
+ box-sizing: border-box;
67
+ position: relative;
68
+ width: 100%;
69
+ height: 100%;
70
+ }
71
+ .style-module__circle-indicator-wrapper__sbrph:focus-visible {
72
+ outline: none;
73
+ }
74
+
75
+ .style-module__circle-indicator__bS-go {
76
+ background: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
77
+ border-radius: 50%;
78
+ box-sizing: border-box;
79
+ display: block;
80
+ left: 50%;
81
+ top: 4px;
82
+ transform: translateX(-50%);
83
+ position: absolute;
84
+ width: 6px;
85
+ height: 6px;
86
+ }`;
87
+ document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
88
+ var style_module_default = {
89
+ "circle-root": "style-module__circle-root__j1e41",
90
+ "circle-indicator-wrapper": "style-module__circle-indicator-wrapper__sbrph",
91
+ "circle-indicator": "style-module__circle-indicator__bS-go"
92
+ };
93
+
94
+ // packages/components/src/angle-picker-control/angle-circle.tsx
5
95
  import { jsx as _jsx } from "react/jsx-runtime";
6
96
  function AngleCircle({
7
97
  value,
8
98
  onChange,
99
+ className,
9
100
  ...props
10
101
  }) {
11
102
  const angleCircleRef = useRef(null);
@@ -57,22 +148,25 @@ function AngleCircle({
57
148
  previousCursorValueRef.current = void 0;
58
149
  }
59
150
  }, [isDragging]);
60
- return /* @__PURE__ */ _jsx(CircleRoot, {
61
- ref: angleCircleRef,
62
- onMouseDown: startDrag,
63
- className: "components-angle-picker-control__angle-circle",
64
- ...props,
65
- children: /* @__PURE__ */ _jsx(CircleIndicatorWrapper, {
66
- style: value ? {
67
- transform: `rotate(${value}deg)`
68
- } : void 0,
69
- className: "components-angle-picker-control__angle-circle-indicator-wrapper",
70
- tabIndex: -1,
71
- children: /* @__PURE__ */ _jsx(CircleIndicator, {
72
- className: "components-angle-picker-control__angle-circle-indicator"
151
+ return (
152
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
153
+ /* @__PURE__ */ _jsx("div", {
154
+ ref: angleCircleRef,
155
+ onMouseDown: startDrag,
156
+ className: clsx("components-angle-picker-control__angle-circle", style_module_default["circle-root"], className),
157
+ ...props,
158
+ children: /* @__PURE__ */ _jsx("div", {
159
+ style: value ? {
160
+ transform: `rotate(${value}deg)`
161
+ } : void 0,
162
+ className: clsx("components-angle-picker-control__angle-circle-indicator-wrapper", style_module_default["circle-indicator-wrapper"]),
163
+ tabIndex: -1,
164
+ children: /* @__PURE__ */ _jsx("div", {
165
+ className: clsx("components-angle-picker-control__angle-circle-indicator", style_module_default["circle-indicator"])
166
+ })
73
167
  })
74
168
  })
75
- });
169
+ );
76
170
  }
77
171
  function getAngle(centerX, centerY, pointX, pointY) {
78
172
  const y = pointY - centerY;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/angle-picker-control/angle-circle.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { __experimentalUseDragging as useDragging } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { CircleRoot, CircleIndicatorWrapper, CircleIndicator } from './styles/angle-picker-control-styles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction AngleCircle({\n value,\n onChange,\n ...props\n}) {\n const angleCircleRef = useRef(null);\n const angleCircleCenterRef = useRef();\n const previousCursorValueRef = useRef();\n const setAngleCircleCenter = () => {\n if (angleCircleRef.current === null) {\n return;\n }\n const rect = angleCircleRef.current.getBoundingClientRect();\n angleCircleCenterRef.current = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2\n };\n };\n const changeAngleToPosition = event => {\n if (event === undefined) {\n return;\n }\n\n // Prevent (drag) mouse events from selecting and accidentally\n // triggering actions from other elements.\n event.preventDefault();\n // Input control needs to lose focus and by preventDefault above, it doesn't.\n event.target?.focus();\n if (angleCircleCenterRef.current !== undefined && onChange !== undefined) {\n const {\n x: centerX,\n y: centerY\n } = angleCircleCenterRef.current;\n onChange(getAngle(centerX, centerY, event.clientX, event.clientY));\n }\n };\n const {\n startDrag,\n isDragging\n } = useDragging({\n onDragStart: event => {\n setAngleCircleCenter();\n changeAngleToPosition(event);\n },\n onDragMove: changeAngleToPosition,\n onDragEnd: changeAngleToPosition\n });\n useEffect(() => {\n if (isDragging) {\n if (previousCursorValueRef.current === undefined) {\n previousCursorValueRef.current = document.body.style.cursor;\n }\n document.body.style.cursor = 'grabbing';\n } else {\n document.body.style.cursor = previousCursorValueRef.current || '';\n previousCursorValueRef.current = undefined;\n }\n }, [isDragging]);\n return /*#__PURE__*/_jsx(CircleRoot, {\n ref: angleCircleRef,\n onMouseDown: startDrag,\n className: \"components-angle-picker-control__angle-circle\",\n ...props,\n children: /*#__PURE__*/_jsx(CircleIndicatorWrapper, {\n style: value ? {\n transform: `rotate(${value}deg)`\n } : undefined,\n className: \"components-angle-picker-control__angle-circle-indicator-wrapper\",\n tabIndex: -1,\n children: /*#__PURE__*/_jsx(CircleIndicator, {\n className: \"components-angle-picker-control__angle-circle-indicator\"\n })\n })\n });\n}\nfunction getAngle(centerX, centerY, pointX, pointY) {\n const y = pointY - centerY;\n const x = pointX - centerX;\n const angleInRadians = Math.atan2(y, x);\n const angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;\n if (angleInDeg < 0) {\n return 360 + angleInDeg;\n }\n return angleInDeg;\n}\nexport default AngleCircle;"],
5
- "mappings": ";AAGA,SAAS,WAAW,cAAc;AAClC,SAAS,6BAA6B,mBAAmB;AAKzD,SAAS,YAAY,wBAAwB,uBAAuB;AACpE,SAAS,OAAO,YAAY;AAC5B,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,iBAAiB,OAAO,IAAI;AAClC,QAAM,uBAAuB,OAAO;AACpC,QAAM,yBAAyB,OAAO;AACtC,QAAM,uBAAuB,MAAM;AACjC,QAAI,eAAe,YAAY,MAAM;AACnC;AAAA,IACF;AACA,UAAM,OAAO,eAAe,QAAQ,sBAAsB;AAC1D,yBAAqB,UAAU;AAAA,MAC7B,GAAG,KAAK,IAAI,KAAK,QAAQ;AAAA,MACzB,GAAG,KAAK,IAAI,KAAK,SAAS;AAAA,IAC5B;AAAA,EACF;AACA,QAAM,wBAAwB,WAAS;AACrC,QAAI,UAAU,QAAW;AACvB;AAAA,IACF;AAIA,UAAM,eAAe;AAErB,UAAM,QAAQ,MAAM;AACpB,QAAI,qBAAqB,YAAY,UAAa,aAAa,QAAW;AACxE,YAAM;AAAA,QACJ,GAAG;AAAA,QACH,GAAG;AAAA,MACL,IAAI,qBAAqB;AACzB,eAAS,SAAS,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,CAAC;AAAA,IACnE;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd,aAAa,WAAS;AACpB,2BAAqB;AACrB,4BAAsB,KAAK;AAAA,IAC7B;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,CAAC;AACD,YAAU,MAAM;AACd,QAAI,YAAY;AACd,UAAI,uBAAuB,YAAY,QAAW;AAChD,+BAAuB,UAAU,SAAS,KAAK,MAAM;AAAA,MACvD;AACA,eAAS,KAAK,MAAM,SAAS;AAAA,IAC/B,OAAO;AACL,eAAS,KAAK,MAAM,SAAS,uBAAuB,WAAW;AAC/D,6BAAuB,UAAU;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AACf,SAAoB,qBAAK,YAAY;AAAA,IACnC,KAAK;AAAA,IACL,aAAa;AAAA,IACb,WAAW;AAAA,IACX,GAAG;AAAA,IACH,UAAuB,qBAAK,wBAAwB;AAAA,MAClD,OAAO,QAAQ;AAAA,QACb,WAAW,UAAU,KAAK;AAAA,MAC5B,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,UAAU;AAAA,MACV,UAAuB,qBAAK,iBAAiB;AAAA,QAC3C,WAAW;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;AACA,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ;AAClD,QAAM,IAAI,SAAS;AACnB,QAAM,IAAI,SAAS;AACnB,QAAM,iBAAiB,KAAK,MAAM,GAAG,CAAC;AACtC,QAAM,aAAa,KAAK,MAAM,kBAAkB,MAAM,KAAK,GAAG,IAAI;AAClE,MAAI,aAAa,GAAG;AAClB,WAAO,MAAM;AAAA,EACf;AACA,SAAO;AACT;AACA,IAAO,uBAAQ;",
3
+ "sources": ["../../src/angle-picker-control/angle-circle.tsx", "../../src/angle-picker-control/style.module.scss"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { __experimentalUseDragging as useDragging } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.module.scss';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction AngleCircle({\n value,\n onChange,\n className,\n ...props\n}) {\n const angleCircleRef = useRef(null);\n const angleCircleCenterRef = useRef();\n const previousCursorValueRef = useRef();\n const setAngleCircleCenter = () => {\n if (angleCircleRef.current === null) {\n return;\n }\n const rect = angleCircleRef.current.getBoundingClientRect();\n angleCircleCenterRef.current = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2\n };\n };\n const changeAngleToPosition = event => {\n if (event === undefined) {\n return;\n }\n\n // Prevent (drag) mouse events from selecting and accidentally\n // triggering actions from other elements.\n event.preventDefault();\n // Input control needs to lose focus and by preventDefault above, it doesn't.\n event.target?.focus();\n if (angleCircleCenterRef.current !== undefined && onChange !== undefined) {\n const {\n x: centerX,\n y: centerY\n } = angleCircleCenterRef.current;\n onChange(getAngle(centerX, centerY, event.clientX, event.clientY));\n }\n };\n const {\n startDrag,\n isDragging\n } = useDragging({\n onDragStart: event => {\n setAngleCircleCenter();\n changeAngleToPosition(event);\n },\n onDragMove: changeAngleToPosition,\n onDragEnd: changeAngleToPosition\n });\n useEffect(() => {\n if (isDragging) {\n if (previousCursorValueRef.current === undefined) {\n previousCursorValueRef.current = document.body.style.cursor;\n }\n document.body.style.cursor = 'grabbing';\n } else {\n document.body.style.cursor = previousCursorValueRef.current || '';\n previousCursorValueRef.current = undefined;\n }\n }, [isDragging]);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _jsx(\"div\", {\n ref: angleCircleRef,\n onMouseDown: startDrag,\n className: clsx('components-angle-picker-control__angle-circle', styles['circle-root'], className),\n ...props,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: value ? {\n transform: `rotate(${value}deg)`\n } : undefined,\n className: clsx('components-angle-picker-control__angle-circle-indicator-wrapper', styles['circle-indicator-wrapper']),\n tabIndex: -1,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx('components-angle-picker-control__angle-circle-indicator', styles['circle-indicator'])\n })\n })\n })\n );\n}\nfunction getAngle(centerX, centerY, pointX, pointY) {\n const y = pointY - centerY;\n const x = pointX - centerX;\n const angleInRadians = Math.atan2(y, x);\n const angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;\n if (angleInDeg < 0) {\n return 360 + angleInDeg;\n }\n return angleInDeg;\n}\nexport default AngleCircle;", "const css = `/**\n * SCSS Variables.\n *\n * Please use variables from this sheet to ensure consistency across the UI.\n * Don't add to this sheet unless you're pretty sure the value will be reused in many places.\n * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.\n */\n/**\n * Colors\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Typography\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Radius scale.\n */\n/**\n * Elevation scale.\n */\n/**\n * Dimensions.\n */\n/**\n * Mobile specific styles\n */\n/**\n * Editor styles.\n */\n/**\n * Block & Editor UI.\n */\n/**\n * Block paddings.\n */\n/**\n * React Native specific.\n * These variables do not appear to be used anywhere else.\n */\n.style-module__circle-root__j1e41 {\n border-radius: 50%;\n border: 1px solid var(--wp-components-color-gray-600, #949494);\n box-sizing: border-box;\n cursor: grab;\n height: 32px;\n overflow: hidden;\n width: 32px;\n}\n.style-module__circle-root__j1e41:active {\n cursor: grabbing;\n}\n\n.style-module__circle-indicator-wrapper__sbrph {\n box-sizing: border-box;\n position: relative;\n width: 100%;\n height: 100%;\n}\n.style-module__circle-indicator-wrapper__sbrph:focus-visible {\n outline: none;\n}\n\n.style-module__circle-indicator__bS-go {\n background: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));\n border-radius: 50%;\n box-sizing: border-box;\n display: block;\n left: 50%;\n top: 4px;\n transform: translateX(-50%);\n position: absolute;\n width: 6px;\n height: 6px;\n}`;\ndocument.head\n .appendChild(document.createElement(\"style\"))\n .appendChild(document.createTextNode(css));\nexport {css};\nexport default {\n \"circle-root\": \"style-module__circle-root__j1e41\",\n \"circle-indicator-wrapper\": \"style-module__circle-indicator-wrapper__sbrph\",\n \"circle-indicator\": \"style-module__circle-indicator__bS-go\"\n};"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -5,8 +5,9 @@ import { isRTL, __ } from "@wordpress/i18n";
5
5
  import { Flex, FlexBlock } from "../flex";
6
6
  import { Spacer } from "../spacer";
7
7
  import NumberControl from "../number-control";
8
+ import InputControlPrefixWrapper from "../input-control/input-prefix-wrapper";
9
+ import InputControlSuffixWrapper from "../input-control/input-suffix-wrapper";
8
10
  import AngleCircle from "./angle-circle";
9
- import { UnitText } from "./styles/angle-picker-control-styles";
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
12
  function UnforwardedAnglePickerControl(props, ref) {
12
13
  const {
@@ -24,10 +25,15 @@ function UnforwardedAnglePickerControl(props, ref) {
24
25
  onChange(inputValue);
25
26
  };
26
27
  const classes = clsx("components-angle-picker-control", className);
27
- const unitText = /* @__PURE__ */ _jsx(UnitText, {
28
- children: "\xB0"
29
- });
30
- const [prefixedUnitText, suffixedUnitText] = isRTL() ? [unitText, null] : [null, unitText];
28
+ const prefixOrSuffixProp = isRTL() ? {
29
+ prefix: /* @__PURE__ */ _jsx(InputControlPrefixWrapper, {
30
+ children: "\xB0"
31
+ })
32
+ } : {
33
+ suffix: /* @__PURE__ */ _jsx(InputControlSuffixWrapper, {
34
+ children: "\xB0"
35
+ })
36
+ };
31
37
  return /* @__PURE__ */ _jsxs(Flex, {
32
38
  ...restProps,
33
39
  ref,
@@ -44,8 +50,7 @@ function UnforwardedAnglePickerControl(props, ref) {
44
50
  step: "1",
45
51
  value,
46
52
  spinControls: "none",
47
- prefix: prefixedUnitText,
48
- suffix: suffixedUnitText
53
+ ...prefixOrSuffixProp
49
54
  })
50
55
  }), /* @__PURE__ */ _jsx(Spacer, {
51
56
  marginBottom: "1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/angle-picker-control/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Flex, FlexBlock } from '../flex';\nimport { Spacer } from '../spacer';\nimport NumberControl from '../number-control';\nimport AngleCircle from './angle-circle';\nimport { UnitText } from './styles/angle-picker-control-styles';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction UnforwardedAnglePickerControl(props, ref) {\n const {\n className,\n label = __('Angle'),\n onChange,\n value,\n ...restProps\n } = props;\n const handleOnNumberChange = unprocessedValue => {\n if (onChange === undefined) {\n return;\n }\n const inputValue = unprocessedValue !== undefined && unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;\n onChange(inputValue);\n };\n const classes = clsx('components-angle-picker-control', className);\n const unitText = /*#__PURE__*/_jsx(UnitText, {\n children: \"\\xB0\"\n });\n const [prefixedUnitText, suffixedUnitText] = isRTL() ? [unitText, null] : [null, unitText];\n return /*#__PURE__*/_jsxs(Flex, {\n ...restProps,\n ref: ref,\n className: classes,\n gap: 2,\n children: [/*#__PURE__*/_jsx(FlexBlock, {\n children: /*#__PURE__*/_jsx(NumberControl, {\n __next40pxDefaultSize: true,\n label: label,\n className: \"components-angle-picker-control__input-field\",\n max: 360,\n min: 0,\n onChange: handleOnNumberChange,\n step: \"1\",\n value: value,\n spinControls: \"none\",\n prefix: prefixedUnitText,\n suffix: suffixedUnitText\n })\n }), /*#__PURE__*/_jsx(Spacer, {\n marginBottom: \"1\",\n marginTop: \"auto\",\n children: /*#__PURE__*/_jsx(AngleCircle, {\n \"aria-hidden\": \"true\",\n value: value,\n onChange: onChange\n })\n })]\n });\n}\n\n/**\n * `AnglePickerControl` is a React component to render a UI that allows users to\n * pick an angle. Users can choose an angle in a visual UI with the mouse by\n * dragging an angle indicator inside a circle or by directly inserting the\n * desired angle in a text field.\n *\n * ```jsx\n * import { useState } from '@wordpress/element';\n * import { AnglePickerControl } from '@wordpress/components';\n *\n * function Example() {\n * const [ angle, setAngle ] = useState( 0 );\n * return (\n * <AnglePickerControl\n * value={ angle }\n * onChange={ setAngle }\n * />\n * );\n * }\n * ```\n */\nexport const AnglePickerControl = forwardRef(UnforwardedAnglePickerControl);\nexport default AnglePickerControl;"],
5
- "mappings": ";AAIA,OAAO,UAAU;AAKjB,SAAS,kBAAkB;AAC3B,SAAS,OAAO,UAAU;AAK1B,SAAS,MAAM,iBAAiB;AAChC,SAAS,cAAc;AACvB,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,SAAS,gBAAgB;AACzB,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,SAAS,8BAA8B,OAAO,KAAK;AACjD,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ,GAAG,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,uBAAuB,sBAAoB;AAC/C,QAAI,aAAa,QAAW;AAC1B;AAAA,IACF;AACA,UAAM,aAAa,qBAAqB,UAAa,qBAAqB,KAAK,SAAS,kBAAkB,EAAE,IAAI;AAChH,aAAS,UAAU;AAAA,EACrB;AACA,QAAM,UAAU,KAAK,mCAAmC,SAAS;AACjE,QAAM,WAAwB,qBAAK,UAAU;AAAA,IAC3C,UAAU;AAAA,EACZ,CAAC;AACD,QAAM,CAAC,kBAAkB,gBAAgB,IAAI,MAAM,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,QAAQ;AACzF,SAAoB,sBAAM,MAAM;AAAA,IAC9B,GAAG;AAAA,IACH;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,IACL,UAAU,CAAc,qBAAK,WAAW;AAAA,MACtC,UAAuB,qBAAK,eAAe;AAAA,QACzC,uBAAuB;AAAA,QACvB;AAAA,QACA,WAAW;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC,GAAgB,qBAAK,QAAQ;AAAA,MAC5B,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAuB,qBAAK,aAAa;AAAA,QACvC,eAAe;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AAuBO,IAAM,qBAAqB,WAAW,6BAA6B;AAC1E,IAAO,+BAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Flex, FlexBlock } from '../flex';\nimport { Spacer } from '../spacer';\nimport NumberControl from '../number-control';\nimport InputControlPrefixWrapper from '../input-control/input-prefix-wrapper';\nimport InputControlSuffixWrapper from '../input-control/input-suffix-wrapper';\nimport AngleCircle from './angle-circle';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction UnforwardedAnglePickerControl(props, ref) {\n const {\n className,\n label = __('Angle'),\n onChange,\n value,\n ...restProps\n } = props;\n const handleOnNumberChange = unprocessedValue => {\n if (onChange === undefined) {\n return;\n }\n const inputValue = unprocessedValue !== undefined && unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;\n onChange(inputValue);\n };\n const classes = clsx('components-angle-picker-control', className);\n\n // Override the default behavior and position the degree symbol to the\n // right of the number, regardless of the language direction.\n const prefixOrSuffixProp = isRTL() ? {\n prefix: /*#__PURE__*/_jsx(InputControlPrefixWrapper, {\n children: \"\\xB0\"\n })\n } : {\n suffix: /*#__PURE__*/_jsx(InputControlSuffixWrapper, {\n children: \"\\xB0\"\n })\n };\n return /*#__PURE__*/_jsxs(Flex, {\n ...restProps,\n ref: ref,\n className: classes,\n gap: 2,\n children: [/*#__PURE__*/_jsx(FlexBlock, {\n children: /*#__PURE__*/_jsx(NumberControl, {\n __next40pxDefaultSize: true,\n label: label,\n className: \"components-angle-picker-control__input-field\",\n max: 360,\n min: 0,\n onChange: handleOnNumberChange,\n step: \"1\",\n value: value,\n spinControls: \"none\",\n ...prefixOrSuffixProp\n })\n }), /*#__PURE__*/_jsx(Spacer, {\n marginBottom: \"1\",\n marginTop: \"auto\",\n children: /*#__PURE__*/_jsx(AngleCircle, {\n \"aria-hidden\": \"true\",\n value: value,\n onChange: onChange\n })\n })]\n });\n}\n\n/**\n * `AnglePickerControl` is a React component to render a UI that allows users to\n * pick an angle. Users can choose an angle in a visual UI with the mouse by\n * dragging an angle indicator inside a circle or by directly inserting the\n * desired angle in a text field.\n *\n * ```jsx\n * import { useState } from '@wordpress/element';\n * import { AnglePickerControl } from '@wordpress/components';\n *\n * function Example() {\n * const [ angle, setAngle ] = useState( 0 );\n * return (\n * <AnglePickerControl\n * value={ angle }\n * onChange={ setAngle }\n * />\n * );\n * }\n * ```\n */\nexport const AnglePickerControl = forwardRef(UnforwardedAnglePickerControl);\nexport default AnglePickerControl;"],
5
+ "mappings": ";AAIA,OAAO,UAAU;AAKjB,SAAS,kBAAkB;AAC3B,SAAS,OAAO,UAAU;AAK1B,SAAS,MAAM,iBAAiB;AAChC,SAAS,cAAc;AACvB,OAAO,mBAAmB;AAC1B,OAAO,+BAA+B;AACtC,OAAO,+BAA+B;AACtC,OAAO,iBAAiB;AACxB,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,SAAS,8BAA8B,OAAO,KAAK;AACjD,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ,GAAG,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,uBAAuB,sBAAoB;AAC/C,QAAI,aAAa,QAAW;AAC1B;AAAA,IACF;AACA,UAAM,aAAa,qBAAqB,UAAa,qBAAqB,KAAK,SAAS,kBAAkB,EAAE,IAAI;AAChH,aAAS,UAAU;AAAA,EACrB;AACA,QAAM,UAAU,KAAK,mCAAmC,SAAS;AAIjE,QAAM,qBAAqB,MAAM,IAAI;AAAA,IACnC,QAAqB,qBAAK,2BAA2B;AAAA,MACnD,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,IAAI;AAAA,IACF,QAAqB,qBAAK,2BAA2B;AAAA,MACnD,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,SAAoB,sBAAM,MAAM;AAAA,IAC9B,GAAG;AAAA,IACH;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,IACL,UAAU,CAAc,qBAAK,WAAW;AAAA,MACtC,UAAuB,qBAAK,eAAe;AAAA,QACzC,uBAAuB;AAAA,QACvB;AAAA,QACA,WAAW;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AAAA,IACH,CAAC,GAAgB,qBAAK,QAAQ;AAAA,MAC5B,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAuB,qBAAK,aAAa;AAAA,QACvC,eAAe;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AAuBO,IAAM,qBAAqB,WAAW,6BAA6B;AAC1E,IAAO,+BAAQ;",
6
6
  "names": []
7
7
  }
@@ -112,7 +112,7 @@ function UnconnectedDropdownMenu(dropdownMenuProps) {
112
112
  ...mergedMenuProps,
113
113
  role: "menu",
114
114
  children: [isFunction(children) ? children(props) : null, controlSets?.flatMap((controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => /* @__PURE__ */ _jsx(Button, {
115
- __next40pxDefaultSize: true,
115
+ size: "compact",
116
116
  onClick: (event) => {
117
117
  event.stopPropagation();
118
118
  props.onClose();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dropdown-menu/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { contextConnectWithoutRef, useContextSystem } from '../context';\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction mergeProps(defaultProps = {}, props = {}) {\n const mergedProps = {\n ...defaultProps,\n ...props\n };\n if (props.className && defaultProps.className) {\n mergedProps.className = clsx(props.className, defaultProps.className);\n }\n return mergedProps;\n}\nfunction isFunction(maybeFunc) {\n return typeof maybeFunc === 'function';\n}\nfunction UnconnectedDropdownMenu(dropdownMenuProps) {\n const {\n children,\n className,\n controls,\n icon = menu,\n label,\n popoverProps,\n toggleProps,\n menuProps,\n disableOpenOnArrowDown = false,\n text,\n noIcons,\n open,\n defaultOpen,\n onToggle: onToggleProp,\n // Context\n variant\n } = useContextSystem(dropdownMenuProps, 'DropdownMenu');\n if (!controls?.length && !isFunction(children)) {\n return null;\n }\n\n // Normalize controls to nested array of objects (sets of controls)\n let controlSets;\n if (controls?.length) {\n // @ts-expect-error The check below is needed because `DropdownMenus`\n // rendered by `ToolBarGroup` receive controls as a nested array.\n controlSets = controls;\n if (!Array.isArray(controlSets[0])) {\n // This is not ideal, but at this point we know that `controls` is\n // not a nested array, even if TypeScript doesn't.\n controlSets = [controls];\n }\n }\n const mergedPopoverProps = mergeProps({\n className: 'components-dropdown-menu__popover',\n variant\n }, popoverProps);\n return /*#__PURE__*/_jsx(Dropdown, {\n className: className,\n popoverProps: mergedPopoverProps,\n renderToggle: ({\n isOpen,\n onToggle\n }) => {\n var _toggleProps$showTool;\n const openOnArrowDown = event => {\n if (disableOpenOnArrowDown) {\n return;\n }\n if (!isOpen && event.code === 'ArrowDown') {\n event.preventDefault();\n onToggle();\n }\n };\n const {\n as: Toggle = Button,\n ...restToggleProps\n } = toggleProps !== null && toggleProps !== void 0 ? toggleProps : {};\n const mergedToggleProps = mergeProps({\n className: clsx('components-dropdown-menu__toggle', {\n 'is-opened': isOpen\n })\n }, restToggleProps);\n return /*#__PURE__*/_jsx(Toggle, {\n ...mergedToggleProps,\n icon: icon,\n onClick: event => {\n onToggle();\n if (mergedToggleProps.onClick) {\n mergedToggleProps.onClick(event);\n }\n },\n onKeyDown: event => {\n openOnArrowDown(event);\n if (mergedToggleProps.onKeyDown) {\n mergedToggleProps.onKeyDown(event);\n }\n },\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": isOpen,\n label: label,\n text: text,\n showTooltip: (_toggleProps$showTool = toggleProps?.showTooltip) !== null && _toggleProps$showTool !== void 0 ? _toggleProps$showTool : true,\n children: mergedToggleProps.children\n });\n },\n renderContent: props => {\n const mergedMenuProps = mergeProps({\n 'aria-label': label,\n className: clsx('components-dropdown-menu__menu', {\n 'no-icons': noIcons\n })\n }, menuProps);\n return /*#__PURE__*/_jsxs(NavigableMenu, {\n ...mergedMenuProps,\n role: \"menu\",\n children: [isFunction(children) ? children(props) : null, controlSets?.flatMap((controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n onClick: event => {\n event.stopPropagation();\n props.onClose();\n if (control.onClick) {\n control.onClick();\n }\n },\n className: clsx('components-dropdown-menu__menu-item', {\n 'has-separator': indexOfSet > 0 && indexOfControl === 0,\n 'is-active': control.isActive,\n 'is-icon-only': !control.title\n }),\n icon: control.icon,\n label: control.label,\n \"aria-checked\": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,\n role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',\n accessibleWhenDisabled: true,\n disabled: control.isDisabled,\n children: control.title\n }, [indexOfSet, indexOfControl].join())))]\n });\n },\n open: open,\n defaultOpen: defaultOpen,\n onToggle: onToggleProp\n });\n}\n\n/**\n *\n * The DropdownMenu displays a list of actions (each contained in a MenuItem,\n * MenuItemsChoice, or MenuGroup) in a compact way. It appears in a Popover\n * after the user has interacted with an element (a button or icon) or when\n * they perform a specific action.\n *\n * Render a Dropdown Menu with a set of controls:\n *\n * ```jsx\n * import { DropdownMenu } from '@wordpress/components';\n * import {\n * \tmore,\n * \tarrowLeft,\n * \tarrowRight,\n * \tarrowUp,\n * \tarrowDown,\n * } from '@wordpress/icons';\n *\n * const MyDropdownMenu = () => (\n * \t<DropdownMenu\n * \t\ticon={ more }\n * \t\tlabel=\"Select a direction\"\n * \t\tcontrols={ [\n * \t\t\t{\n * \t\t\t\ttitle: 'Up',\n * \t\t\t\ticon: arrowUp,\n * \t\t\t\tonClick: () => console.log( 'up' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Right',\n * \t\t\t\ticon: arrowRight,\n * \t\t\t\tonClick: () => console.log( 'right' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Down',\n * \t\t\t\ticon: arrowDown,\n * \t\t\t\tonClick: () => console.log( 'down' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Left',\n * \t\t\t\ticon: arrowLeft,\n * \t\t\t\tonClick: () => console.log( 'left' ),\n * \t\t\t},\n * \t\t] }\n * \t/>\n * );\n * ```\n *\n * Alternatively, specify a `children` function which returns elements valid for\n * use in a DropdownMenu: `MenuItem`, `MenuItemsChoice`, or `MenuGroup`.\n *\n * ```jsx\n * import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\n * import { more, arrowUp, arrowDown, trash } from '@wordpress/icons';\n *\n * const MyDropdownMenu = () => (\n * \t<DropdownMenu icon={ more } label=\"Select a direction\">\n * \t\t{ ( { onClose } ) => (\n * \t\t\t<>\n * \t\t\t\t<MenuGroup>\n * \t\t\t\t\t<MenuItem icon={ arrowUp } onClick={ onClose }>\n * \t\t\t\t\t\tMove Up\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t\t<MenuItem icon={ arrowDown } onClick={ onClose }>\n * \t\t\t\t\t\tMove Down\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t</MenuGroup>\n * \t\t\t\t<MenuGroup>\n * \t\t\t\t\t<MenuItem icon={ trash } onClick={ onClose }>\n * \t\t\t\t\t\tRemove\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t</MenuGroup>\n * \t\t\t</>\n * \t\t) }\n * \t</DropdownMenu>\n * );\n * ```\n *\n */\nexport const DropdownMenu = contextConnectWithoutRef(UnconnectedDropdownMenu, 'DropdownMenu');\nexport default DropdownMenu;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { contextConnectWithoutRef, useContextSystem } from '../context';\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction mergeProps(defaultProps = {}, props = {}) {\n const mergedProps = {\n ...defaultProps,\n ...props\n };\n if (props.className && defaultProps.className) {\n mergedProps.className = clsx(props.className, defaultProps.className);\n }\n return mergedProps;\n}\nfunction isFunction(maybeFunc) {\n return typeof maybeFunc === 'function';\n}\nfunction UnconnectedDropdownMenu(dropdownMenuProps) {\n const {\n children,\n className,\n controls,\n icon = menu,\n label,\n popoverProps,\n toggleProps,\n menuProps,\n disableOpenOnArrowDown = false,\n text,\n noIcons,\n open,\n defaultOpen,\n onToggle: onToggleProp,\n // Context\n variant\n } = useContextSystem(dropdownMenuProps, 'DropdownMenu');\n if (!controls?.length && !isFunction(children)) {\n return null;\n }\n\n // Normalize controls to nested array of objects (sets of controls)\n let controlSets;\n if (controls?.length) {\n // @ts-expect-error The check below is needed because `DropdownMenus`\n // rendered by `ToolBarGroup` receive controls as a nested array.\n controlSets = controls;\n if (!Array.isArray(controlSets[0])) {\n // This is not ideal, but at this point we know that `controls` is\n // not a nested array, even if TypeScript doesn't.\n controlSets = [controls];\n }\n }\n const mergedPopoverProps = mergeProps({\n className: 'components-dropdown-menu__popover',\n variant\n }, popoverProps);\n return /*#__PURE__*/_jsx(Dropdown, {\n className: className,\n popoverProps: mergedPopoverProps,\n renderToggle: ({\n isOpen,\n onToggle\n }) => {\n var _toggleProps$showTool;\n const openOnArrowDown = event => {\n if (disableOpenOnArrowDown) {\n return;\n }\n if (!isOpen && event.code === 'ArrowDown') {\n event.preventDefault();\n onToggle();\n }\n };\n const {\n as: Toggle = Button,\n ...restToggleProps\n } = toggleProps !== null && toggleProps !== void 0 ? toggleProps : {};\n const mergedToggleProps = mergeProps({\n className: clsx('components-dropdown-menu__toggle', {\n 'is-opened': isOpen\n })\n }, restToggleProps);\n return /*#__PURE__*/_jsx(Toggle, {\n ...mergedToggleProps,\n icon: icon,\n onClick: event => {\n onToggle();\n if (mergedToggleProps.onClick) {\n mergedToggleProps.onClick(event);\n }\n },\n onKeyDown: event => {\n openOnArrowDown(event);\n if (mergedToggleProps.onKeyDown) {\n mergedToggleProps.onKeyDown(event);\n }\n },\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": isOpen,\n label: label,\n text: text,\n showTooltip: (_toggleProps$showTool = toggleProps?.showTooltip) !== null && _toggleProps$showTool !== void 0 ? _toggleProps$showTool : true,\n children: mergedToggleProps.children\n });\n },\n renderContent: props => {\n const mergedMenuProps = mergeProps({\n 'aria-label': label,\n className: clsx('components-dropdown-menu__menu', {\n 'no-icons': noIcons\n })\n }, menuProps);\n return /*#__PURE__*/_jsxs(NavigableMenu, {\n ...mergedMenuProps,\n role: \"menu\",\n children: [isFunction(children) ? children(props) : null, controlSets?.flatMap((controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n onClick: event => {\n event.stopPropagation();\n props.onClose();\n if (control.onClick) {\n control.onClick();\n }\n },\n className: clsx('components-dropdown-menu__menu-item', {\n 'has-separator': indexOfSet > 0 && indexOfControl === 0,\n 'is-active': control.isActive,\n 'is-icon-only': !control.title\n }),\n icon: control.icon,\n label: control.label,\n \"aria-checked\": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,\n role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',\n accessibleWhenDisabled: true,\n disabled: control.isDisabled,\n children: control.title\n }, [indexOfSet, indexOfControl].join())))]\n });\n },\n open: open,\n defaultOpen: defaultOpen,\n onToggle: onToggleProp\n });\n}\n\n/**\n *\n * The DropdownMenu displays a list of actions (each contained in a MenuItem,\n * MenuItemsChoice, or MenuGroup) in a compact way. It appears in a Popover\n * after the user has interacted with an element (a button or icon) or when\n * they perform a specific action.\n *\n * Render a Dropdown Menu with a set of controls:\n *\n * ```jsx\n * import { DropdownMenu } from '@wordpress/components';\n * import {\n * \tmore,\n * \tarrowLeft,\n * \tarrowRight,\n * \tarrowUp,\n * \tarrowDown,\n * } from '@wordpress/icons';\n *\n * const MyDropdownMenu = () => (\n * \t<DropdownMenu\n * \t\ticon={ more }\n * \t\tlabel=\"Select a direction\"\n * \t\tcontrols={ [\n * \t\t\t{\n * \t\t\t\ttitle: 'Up',\n * \t\t\t\ticon: arrowUp,\n * \t\t\t\tonClick: () => console.log( 'up' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Right',\n * \t\t\t\ticon: arrowRight,\n * \t\t\t\tonClick: () => console.log( 'right' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Down',\n * \t\t\t\ticon: arrowDown,\n * \t\t\t\tonClick: () => console.log( 'down' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Left',\n * \t\t\t\ticon: arrowLeft,\n * \t\t\t\tonClick: () => console.log( 'left' ),\n * \t\t\t},\n * \t\t] }\n * \t/>\n * );\n * ```\n *\n * Alternatively, specify a `children` function which returns elements valid for\n * use in a DropdownMenu: `MenuItem`, `MenuItemsChoice`, or `MenuGroup`.\n *\n * ```jsx\n * import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\n * import { more, arrowUp, arrowDown, trash } from '@wordpress/icons';\n *\n * const MyDropdownMenu = () => (\n * \t<DropdownMenu icon={ more } label=\"Select a direction\">\n * \t\t{ ( { onClose } ) => (\n * \t\t\t<>\n * \t\t\t\t<MenuGroup>\n * \t\t\t\t\t<MenuItem icon={ arrowUp } onClick={ onClose }>\n * \t\t\t\t\t\tMove Up\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t\t<MenuItem icon={ arrowDown } onClick={ onClose }>\n * \t\t\t\t\t\tMove Down\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t</MenuGroup>\n * \t\t\t\t<MenuGroup>\n * \t\t\t\t\t<MenuItem icon={ trash } onClick={ onClose }>\n * \t\t\t\t\t\tRemove\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t</MenuGroup>\n * \t\t\t</>\n * \t\t) }\n * \t</DropdownMenu>\n * );\n * ```\n *\n */\nexport const DropdownMenu = contextConnectWithoutRef(UnconnectedDropdownMenu, 'DropdownMenu');\nexport default DropdownMenu;"],
5
+ "mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,YAAY;AAKrB,SAAS,0BAA0B,wBAAwB;AAC3D,OAAO,YAAY;AACnB,OAAO,cAAc;AACrB,SAAS,qBAAqB;AAC9B,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,SAAS,WAAW,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG;AACjD,QAAM,cAAc;AAAA,IAClB,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,MAAI,MAAM,aAAa,aAAa,WAAW;AAC7C,gBAAY,YAAY,KAAK,MAAM,WAAW,aAAa,SAAS;AAAA,EACtE;AACA,SAAO;AACT;AACA,SAAS,WAAW,WAAW;AAC7B,SAAO,OAAO,cAAc;AAC9B;AACA,SAAS,wBAAwB,mBAAmB;AAClD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA;AAAA,IAEV;AAAA,EACF,IAAI,iBAAiB,mBAAmB,cAAc;AACtD,MAAI,CAAC,UAAU,UAAU,CAAC,WAAW,QAAQ,GAAG;AAC9C,WAAO;AAAA,EACT;AAGA,MAAI;AACJ,MAAI,UAAU,QAAQ;AAGpB,kBAAc;AACd,QAAI,CAAC,MAAM,QAAQ,YAAY,CAAC,CAAC,GAAG;AAGlC,oBAAc,CAAC,QAAQ;AAAA,IACzB;AAAA,EACF;AACA,QAAM,qBAAqB,WAAW;AAAA,IACpC,WAAW;AAAA,IACX;AAAA,EACF,GAAG,YAAY;AACf,SAAoB,qBAAK,UAAU;AAAA,IACjC;AAAA,IACA,cAAc;AAAA,IACd,cAAc,CAAC;AAAA,MACb;AAAA,MACA;AAAA,IACF,MAAM;AACJ,UAAI;AACJ,YAAM,kBAAkB,WAAS;AAC/B,YAAI,wBAAwB;AAC1B;AAAA,QACF;AACA,YAAI,CAAC,UAAU,MAAM,SAAS,aAAa;AACzC,gBAAM,eAAe;AACrB,mBAAS;AAAA,QACX;AAAA,MACF;AACA,YAAM;AAAA,QACJ,IAAI,SAAS;AAAA,QACb,GAAG;AAAA,MACL,IAAI,gBAAgB,QAAQ,gBAAgB,SAAS,cAAc,CAAC;AACpE,YAAM,oBAAoB,WAAW;AAAA,QACnC,WAAW,KAAK,oCAAoC;AAAA,UAClD,aAAa;AAAA,QACf,CAAC;AAAA,MACH,GAAG,eAAe;AAClB,aAAoB,qBAAK,QAAQ;AAAA,QAC/B,GAAG;AAAA,QACH;AAAA,QACA,SAAS,WAAS;AAChB,mBAAS;AACT,cAAI,kBAAkB,SAAS;AAC7B,8BAAkB,QAAQ,KAAK;AAAA,UACjC;AAAA,QACF;AAAA,QACA,WAAW,WAAS;AAClB,0BAAgB,KAAK;AACrB,cAAI,kBAAkB,WAAW;AAC/B,8BAAkB,UAAU,KAAK;AAAA,UACnC;AAAA,QACF;AAAA,QACA,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA,cAAc,wBAAwB,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,wBAAwB;AAAA,QACvI,UAAU,kBAAkB;AAAA,MAC9B,CAAC;AAAA,IACH;AAAA,IACA,eAAe,WAAS;AACtB,YAAM,kBAAkB,WAAW;AAAA,QACjC,cAAc;AAAA,QACd,WAAW,KAAK,kCAAkC;AAAA,UAChD,YAAY;AAAA,QACd,CAAC;AAAA,MACH,GAAG,SAAS;AACZ,aAAoB,sBAAM,eAAe;AAAA,QACvC,GAAG;AAAA,QACH,MAAM;AAAA,QACN,UAAU,CAAC,WAAW,QAAQ,IAAI,SAAS,KAAK,IAAI,MAAM,aAAa,QAAQ,CAAC,YAAY,eAAe,WAAW,IAAI,CAAC,SAAS,mBAAgC,qBAAK,QAAQ;AAAA,UAC/K,MAAM;AAAA,UACN,SAAS,WAAS;AAChB,kBAAM,gBAAgB;AACtB,kBAAM,QAAQ;AACd,gBAAI,QAAQ,SAAS;AACnB,sBAAQ,QAAQ;AAAA,YAClB;AAAA,UACF;AAAA,UACA,WAAW,KAAK,uCAAuC;AAAA,YACrD,iBAAiB,aAAa,KAAK,mBAAmB;AAAA,YACtD,aAAa,QAAQ;AAAA,YACrB,gBAAgB,CAAC,QAAQ;AAAA,UAC3B,CAAC;AAAA,UACD,MAAM,QAAQ;AAAA,UACd,OAAO,QAAQ;AAAA,UACf,gBAAgB,QAAQ,SAAS,sBAAsB,QAAQ,SAAS,kBAAkB,QAAQ,WAAW;AAAA,UAC7G,MAAM,QAAQ,SAAS,sBAAsB,QAAQ,SAAS,kBAAkB,QAAQ,OAAO;AAAA,UAC/F,wBAAwB;AAAA,UACxB,UAAU,QAAQ;AAAA,UAClB,UAAU,QAAQ;AAAA,QACpB,GAAG,CAAC,YAAY,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAAA,MAC3C,CAAC;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ,CAAC;AACH;AAkFO,IAAM,eAAe,yBAAyB,yBAAyB,cAAc;AAC5F,IAAO,wBAAQ;",
6
6
  "names": []
7
7
  }