@strapi/plugin-color-picker 0.0.0-next.a2b1a1e72400fea121da3c3fb18f524b0c885ba8 → 0.0.0-next.a4bb06d54b493ab973659d0200e0e42937988850

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 (45) hide show
  1. package/LICENSE +34 -12
  2. package/dist/_chunks/ColorPickerInput-BiwD6BEw.mjs +137 -0
  3. package/dist/_chunks/ColorPickerInput-gD_Mb6qe.js +155 -0
  4. package/dist/_chunks/cs-CKl0OyEH.js +15 -0
  5. package/{admin/src/translations/cs.json → dist/_chunks/cs-DMmE6LK7.mjs} +5 -2
  6. package/{admin/src/translations/en.json → dist/_chunks/en-BlDau3us.mjs} +5 -2
  7. package/dist/_chunks/en-Ct0C5cA2.js +18 -0
  8. package/dist/_chunks/index-CNTxZbMN.js +126 -0
  9. package/dist/_chunks/index-dnY2u5Dg.mjs +127 -0
  10. package/dist/_chunks/ru-Wrg-npZz.js +18 -0
  11. package/{admin/src/translations/ru.json → dist/_chunks/ru-aOnA-eym.mjs} +5 -2
  12. package/{admin/src/translations/sv.json → dist/_chunks/sv-BaFDND79.mjs} +5 -2
  13. package/dist/_chunks/sv-CKY6es_6.js +15 -0
  14. package/{admin/src/translations/tr.json → dist/_chunks/tr-CHHW_hYI.mjs} +5 -2
  15. package/dist/_chunks/tr-DcLzQS-J.js +15 -0
  16. package/{admin/src/translations/zh.json → dist/_chunks/zh-DBH6uCXb.mjs} +5 -2
  17. package/dist/_chunks/zh-T5cJzhPD.js +15 -0
  18. package/dist/admin/index.js +3 -0
  19. package/dist/admin/index.mjs +4 -0
  20. package/dist/admin/src/components/ColorPickerIcon.d.ts +1 -0
  21. package/dist/admin/src/components/ColorPickerInput.d.ts +7 -0
  22. package/dist/admin/src/index.d.ts +18 -0
  23. package/dist/admin/src/pluginId.d.ts +1 -0
  24. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  25. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
  26. package/dist/server/index.js +10 -5
  27. package/dist/server/index.mjs +13 -0
  28. package/dist/server/{index.d.ts → src/index.d.ts} +1 -0
  29. package/dist/server/src/index.d.ts.map +1 -0
  30. package/dist/server/{register.d.ts → src/register.d.ts} +1 -0
  31. package/dist/server/src/register.d.ts.map +1 -0
  32. package/package.json +64 -49
  33. package/admin/src/components/ColorPicker/ColorPickerIcon/index.js +0 -26
  34. package/admin/src/components/ColorPicker/ColorPickerInput/index.js +0 -214
  35. package/admin/src/components/tests/__snapshots__/color-picker-input.test.js.snap +0 -238
  36. package/admin/src/components/tests/color-picker-input.test.js +0 -65
  37. package/admin/src/hooks/useComposeRefs.js +0 -48
  38. package/admin/src/index.js +0 -88
  39. package/admin/src/pluginId.js +0 -5
  40. package/admin/src/utils/getTrad.js +0 -5
  41. package/dist/server/index.js.map +0 -1
  42. package/dist/server/register.js +0 -12
  43. package/dist/server/register.js.map +0 -1
  44. package/strapi-admin.js +0 -3
  45. package/strapi-server.js +0 -3
@@ -1,238 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`<ColorPickerInput /> renders and matches the snapshot 1`] = `
4
- .c9 {
5
- border: 0;
6
- -webkit-clip: rect(0 0 0 0);
7
- clip: rect(0 0 0 0);
8
- height: 1px;
9
- margin: -1px;
10
- overflow: hidden;
11
- padding: 0;
12
- position: absolute;
13
- width: 1px;
14
- }
15
-
16
- .c1 {
17
- font-size: 0.75rem;
18
- line-height: 1.33;
19
- font-weight: 600;
20
- color: #32324d;
21
- }
22
-
23
- .c8 {
24
- font-size: 0.875rem;
25
- line-height: 1.43;
26
- color: #666687;
27
- }
28
-
29
- .c3 {
30
- background: #ffffff;
31
- padding: 8px;
32
- border-radius: 4px;
33
- border-color: #dcdce4;
34
- border: 1px solid #dcdce4;
35
- cursor: pointer;
36
- }
37
-
38
- .c0 {
39
- -webkit-align-items: stretch;
40
- -webkit-box-align: stretch;
41
- -ms-flex-align: stretch;
42
- align-items: stretch;
43
- display: -webkit-box;
44
- display: -webkit-flex;
45
- display: -ms-flexbox;
46
- display: flex;
47
- -webkit-flex-direction: column;
48
- -ms-flex-direction: column;
49
- flex-direction: column;
50
- gap: 4px;
51
- }
52
-
53
- .c4 {
54
- -webkit-align-items: center;
55
- -webkit-box-align: center;
56
- -ms-flex-align: center;
57
- align-items: center;
58
- display: -webkit-box;
59
- display: -webkit-flex;
60
- display: -ms-flexbox;
61
- display: flex;
62
- -webkit-flex-direction: row;
63
- -ms-flex-direction: row;
64
- flex-direction: row;
65
- }
66
-
67
- .c5 {
68
- position: relative;
69
- outline: none;
70
- }
71
-
72
- .c5 > svg {
73
- height: 12px;
74
- width: 12px;
75
- }
76
-
77
- .c5 > svg > g,
78
- .c5 > svg path {
79
- fill: #ffffff;
80
- }
81
-
82
- .c5[aria-disabled='true'] {
83
- pointer-events: none;
84
- }
85
-
86
- .c5:after {
87
- -webkit-transition-property: all;
88
- transition-property: all;
89
- -webkit-transition-duration: 0.2s;
90
- transition-duration: 0.2s;
91
- border-radius: 8px;
92
- content: '';
93
- position: absolute;
94
- top: -4px;
95
- bottom: -4px;
96
- left: -4px;
97
- right: -4px;
98
- border: 2px solid transparent;
99
- }
100
-
101
- .c5:focus-visible {
102
- outline: none;
103
- }
104
-
105
- .c5:focus-visible:after {
106
- border-radius: 8px;
107
- content: '';
108
- position: absolute;
109
- top: -5px;
110
- bottom: -5px;
111
- left: -5px;
112
- right: -5px;
113
- border: 2px solid #4945ff;
114
- }
115
-
116
- .c2 {
117
- display: -webkit-box;
118
- display: -webkit-flex;
119
- display: -ms-flexbox;
120
- display: flex;
121
- -webkit-align-items: center;
122
- -webkit-box-align: center;
123
- -ms-flex-align: center;
124
- align-items: center;
125
- }
126
-
127
- .c7 {
128
- border-radius: 50%;
129
- width: 20px;
130
- height: 20px;
131
- margin-right: 10px;
132
- background-color: #000000;
133
- border: 1px solid rgba(0,0,0,0.1);
134
- }
135
-
136
- .c6 {
137
- display: -webkit-box;
138
- display: -webkit-flex;
139
- display: -ms-flexbox;
140
- display: flex;
141
- -webkit-box-pack: justify;
142
- -webkit-justify-content: space-between;
143
- -ms-flex-pack: justify;
144
- justify-content: space-between;
145
- -webkit-align-items: center;
146
- -webkit-box-align: center;
147
- -ms-flex-align: center;
148
- align-items: center;
149
- }
150
-
151
- .c6 svg {
152
- width: 8px;
153
- height: 8px;
154
- }
155
-
156
- .c6 svg > path {
157
- fill: #8e8ea9;
158
- justify-self: flex-end;
159
- }
160
-
161
- <div>
162
- <div
163
- class=""
164
- >
165
- <div
166
- class="c0"
167
- >
168
- <label
169
- class="c1 c2"
170
- for="color"
171
- >
172
- color-picker
173
- </label>
174
- <button
175
- aria-controls="color-picker-value"
176
- aria-disabled="false"
177
- aria-expanded="false"
178
- aria-haspopup="dialog"
179
- aria-label="Color picker toggle"
180
- class="c3 c4 c5 c6"
181
- type="button"
182
- >
183
- <div
184
- class="c4"
185
- >
186
- <div
187
- class="c7"
188
- color="#000000"
189
- />
190
- <span
191
- class="c8"
192
- style="text-transform: uppercase;"
193
- >
194
- #000000
195
- </span>
196
- </div>
197
- <svg
198
- aria-hidden="true"
199
- fill="none"
200
- height="1rem"
201
- viewBox="0 0 14 8"
202
- width="1rem"
203
- xmlns="http://www.w3.org/2000/svg"
204
- >
205
- <path
206
- clip-rule="evenodd"
207
- d="M14 .889a.86.86 0 0 1-.26.625L7.615 7.736A.834.834 0 0 1 7 8a.834.834 0 0 1-.615-.264L.26 1.514A.861.861 0 0 1 0 .889c0-.24.087-.45.26-.625A.834.834 0 0 1 .875 0h12.25c.237 0 .442.088.615.264a.86.86 0 0 1 .26.625Z"
208
- fill="#32324D"
209
- fill-rule="evenodd"
210
- />
211
- </svg>
212
- </button>
213
- </div>
214
- </div>
215
- <div
216
- class="c9"
217
- >
218
- <p
219
- aria-live="polite"
220
- aria-relevant="all"
221
- id="live-region-log"
222
- role="log"
223
- />
224
- <p
225
- aria-live="polite"
226
- aria-relevant="all"
227
- id="live-region-status"
228
- role="status"
229
- />
230
- <p
231
- aria-live="assertive"
232
- aria-relevant="all"
233
- id="live-region-alert"
234
- role="alert"
235
- />
236
- </div>
237
- </div>
238
- `;
@@ -1,65 +0,0 @@
1
- import React from 'react';
2
-
3
- import { lightTheme, ThemeProvider } from '@strapi/design-system';
4
- import { fireEvent, render, screen } from '@testing-library/react';
5
- import { IntlProvider } from 'react-intl';
6
-
7
- import ColorPickerInput from '../ColorPicker/ColorPickerInput';
8
-
9
- const mockAttribute = {
10
- customField: 'plugin::color-picker.color',
11
- pluginOptions: { i18n: { localized: true } },
12
- type: 'string',
13
- };
14
-
15
- const App = (
16
- <IntlProvider locale="en" messages={{}} textComponent="span">
17
- <ThemeProvider theme={lightTheme}>
18
- <ColorPickerInput
19
- name="color"
20
- value=""
21
- onChange={jest.fn()}
22
- attribute={mockAttribute}
23
- intlLabel={{ id: 'color-picker', defaultMessage: 'color-picker' }}
24
- />
25
- </ThemeProvider>
26
- </IntlProvider>
27
- );
28
-
29
- describe('<ColorPickerInput />', () => {
30
- /**
31
- * We do this because –
32
- * https://github.com/facebook/jest/issues/12670
33
- */
34
- beforeAll(() => {
35
- jest.setTimeout(30000);
36
- });
37
-
38
- /**
39
- * Reset timeout to what is expected
40
- */
41
- afterAll(() => {
42
- jest.setTimeout(5000);
43
- });
44
-
45
- it('renders and matches the snapshot', () => {
46
- const { container } = render(App);
47
-
48
- expect(container).toMatchSnapshot();
49
- });
50
-
51
- it('toggles the popover', () => {
52
- render(App);
53
- const colorPickerToggle = screen.getByRole('button', { name: 'Color picker toggle' });
54
- fireEvent.click(colorPickerToggle);
55
-
56
- const popover = screen.getByRole('dialog');
57
- const saturation = screen.getByRole('slider', { name: 'Color' });
58
- const hue = screen.getByRole('slider', { name: 'Hue' });
59
- const input = screen.getByRole('textbox', { name: 'Color picker input' });
60
- expect(popover).toBeVisible();
61
- expect(saturation).toBeVisible();
62
- expect(hue).toBeVisible();
63
- expect(input).toBeVisible();
64
- });
65
- });
@@ -1,48 +0,0 @@
1
- import * as React from 'react';
2
-
3
- /**
4
- * Set a given ref to a given value
5
- * This utility takes care of different types of refs: callback refs and RefObject(s)
6
- */
7
- function setRef(ref, value) {
8
- if (typeof ref === 'function') {
9
- ref(value);
10
- } else if (ref !== null && ref !== undefined) {
11
- ref.current = value;
12
- }
13
- }
14
-
15
- /**
16
- * A utility to compose multiple refs together
17
- * Accepts callback refs and RefObject(s)
18
- */
19
- function composeRefs(...refs) {
20
- return (node) => refs.forEach((ref) => setRef(ref, node));
21
- }
22
-
23
- /**
24
- * Takes multiple React like refs either React.Ref or a callback:
25
- * (node: T) => void and returns a single function that can be
26
- * passed to a React component as a ref.
27
- *
28
- * Example:
29
- * ```tsx
30
- * import { useComposedRefs } from '../hooks/useComposedRefs';
31
- *
32
- * const Component = React.forwardRef<HTMLInputElement, ComponentProps>((props, forwardedRef) => {
33
- * const ref = useComposedRefs(internalRef, forwardedRef);
34
- *
35
- * React.useEffect(() => {
36
- * ref.current.focus();
37
- * }, [ref]);
38
- *
39
- * return <input ref={ref} />
40
- * }
41
- * ```
42
- */
43
- function useComposedRefs(...refs) {
44
- // eslint-disable-next-line react-hooks/exhaustive-deps
45
- return React.useCallback(composeRefs(...refs), refs);
46
- }
47
-
48
- export { composeRefs, useComposedRefs };
@@ -1,88 +0,0 @@
1
- import { prefixPluginTranslations } from '@strapi/helper-plugin';
2
-
3
- import ColorPickerIcon from './components/ColorPicker/ColorPickerIcon';
4
- import pluginId from './pluginId';
5
- import getTrad from './utils/getTrad';
6
-
7
- export default {
8
- register(app) {
9
- app.customFields.register({
10
- name: 'color',
11
- pluginId: 'color-picker',
12
- type: 'string',
13
- icon: ColorPickerIcon,
14
- intlLabel: {
15
- id: getTrad('color-picker.label'),
16
- defaultMessage: 'Color',
17
- },
18
- intlDescription: {
19
- id: getTrad('color-picker.description'),
20
- defaultMessage: 'Select any color',
21
- },
22
- components: {
23
- Input: async () =>
24
- import(
25
- /* webpackChunkName: "color-picker-input-component" */ './components/ColorPicker/ColorPickerInput'
26
- ),
27
- },
28
- options: {
29
- advanced: [
30
- {
31
- intlLabel: {
32
- id: getTrad('color-picker.options.advanced.regex'),
33
- defaultMessage: 'RegExp pattern',
34
- },
35
- name: 'regex',
36
- type: 'text',
37
- defaultValue: '^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',
38
- description: {
39
- id: getTrad('color-picker.options.advanced.regex.description'),
40
- defaultMessage: 'The text of the regular expression',
41
- },
42
- },
43
- {
44
- sectionTitle: {
45
- id: 'global.settings',
46
- defaultMessage: 'Settings',
47
- },
48
- items: [
49
- {
50
- name: 'required',
51
- type: 'checkbox',
52
- intlLabel: {
53
- id: getTrad('color-picker.options.advanced.requiredField'),
54
- defaultMessage: 'Required field',
55
- },
56
- description: {
57
- id: getTrad('color-picker.options.advanced.requiredField.description'),
58
- defaultMessage: "You won't be able to create an entry if this field is empty",
59
- },
60
- },
61
- ],
62
- },
63
- ],
64
- },
65
- });
66
- },
67
- async registerTrads({ locales }) {
68
- const importedTrads = await Promise.all(
69
- locales.map((locale) => {
70
- return import(`./translations/${locale}.json`)
71
- .then(({ default: data }) => {
72
- return {
73
- data: prefixPluginTranslations(data, pluginId),
74
- locale,
75
- };
76
- })
77
- .catch(() => {
78
- return {
79
- data: {},
80
- locale,
81
- };
82
- });
83
- })
84
- );
85
-
86
- return Promise.resolve(importedTrads);
87
- },
88
- };
@@ -1,5 +0,0 @@
1
- const pluginPkg = require('../../package.json');
2
-
3
- const pluginId = pluginPkg.name.replace(/^(@[^-,.][\w,-]+\/|strapi-)plugin-/i, '');
4
-
5
- module.exports = pluginId;
@@ -1,5 +0,0 @@
1
- import pluginId from '../pluginId';
2
-
3
- const getTrad = (id) => `${pluginId}.${id}`;
4
-
5
- export default getTrad;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/src/index.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,kBAAe;IACb,QAAQ,EAAR,mBAAQ;CACT,CAAC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.register = void 0;
4
- const register = ({ strapi }) => {
5
- strapi.customFields.register({
6
- name: 'color',
7
- plugin: 'color-picker',
8
- type: 'string',
9
- });
10
- };
11
- exports.register = register;
12
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../server/src/register.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,EAAE,MAAM,EAAO,EAAE,EAAE;IAC1C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC3B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB"}
package/strapi-admin.js DELETED
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = require('./admin/src').default;
package/strapi-server.js DELETED
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = require('./dist/server');