@strapi/design-system 1.6.1 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion/Accordion.cjs +5 -5
- package/dist/Accordion/Accordion.js +24 -22
- package/dist/Avatar/Avatar.cjs +5 -16
- package/dist/Avatar/Avatar.js +44 -48
- package/dist/BaseRadio/BaseRadio.cjs +2 -2
- package/dist/BaseRadio/BaseRadio.js +25 -23
- package/dist/Box/Box.cjs +1 -1
- package/dist/Box/Box.js +36 -33
- package/dist/Card/Card.cjs +1 -1
- package/dist/Card/Card.js +1 -1
- package/dist/Card/CardHeader.cjs +1 -2
- package/dist/Card/CardHeader.js +1 -1
- package/dist/Card/CardTimer.cjs +1 -5
- package/dist/Card/CardTimer.js +14 -20
- package/dist/CarouselInput/CarouselInput.cjs +1 -1
- package/dist/CarouselInput/CarouselInput.js +9 -9
- package/dist/Checkbox/Checkbox.cjs +2 -2
- package/dist/Checkbox/Checkbox.js +16 -16
- package/dist/Combobox/Combobox.cjs +1 -1
- package/dist/Combobox/Combobox.js +139 -139
- package/dist/Combobox/ComboboxList.cjs +1 -1
- package/dist/Combobox/ComboboxList.js +5 -12
- package/dist/DateTimePicker/DateTimePicker.cjs +1 -1
- package/dist/DateTimePicker/DateTimePicker.js +71 -71
- package/dist/Dialog/Dialog.cjs +4 -7
- package/dist/Dialog/Dialog.js +30 -29
- package/dist/Field/Field.cjs +1 -1
- package/dist/Field/Field.js +7 -7
- package/dist/Field/FieldHint.cjs +1 -1
- package/dist/Field/FieldHint.js +4 -4
- package/dist/JSONInput/JSONInput.cjs +1 -1
- package/dist/JSONInput/JSONInput.js +45 -42
- package/dist/JSONInput/JSONInputContainer.cjs +5 -2
- package/dist/JSONInput/JSONInputContainer.js +6 -3
- package/dist/Layout/HeaderLayout.cjs +3 -8
- package/dist/Layout/HeaderLayout.js +38 -38
- package/dist/Main/SkipToContent.cjs +1 -2
- package/dist/Main/SkipToContent.js +1 -1
- package/dist/MainNav/MainNav.cjs +1 -6
- package/dist/MainNav/MainNav.js +15 -15
- package/dist/MainNav/NavFooter.cjs +1 -3
- package/dist/MainNav/NavFooter.js +3 -4
- package/dist/ModalLayout/ModalLayout.cjs +3 -9
- package/dist/ModalLayout/ModalLayout.js +24 -23
- package/dist/NumberInput/NumberInput.cjs +1 -1
- package/dist/NumberInput/NumberInput.js +18 -18
- package/dist/Popover/Popover.cjs +3 -3
- package/dist/Popover/Popover.js +112 -103
- package/dist/Popover/index.cjs +1 -1
- package/dist/Popover/index.js +9 -3
- package/dist/Select/Option.cjs +3 -7
- package/dist/Select/Option.js +6 -6
- package/dist/Select/Select.cjs +2 -2
- package/dist/Select/Select.js +58 -58
- package/dist/Select/SelectTags.cjs +1 -3
- package/dist/Select/SelectTags.js +4 -4
- package/dist/Select/SingleSelect.cjs +82 -0
- package/dist/Select/SingleSelect.js +285 -0
- package/dist/SimpleMenu/SimpleMenu.cjs +1 -1
- package/dist/SimpleMenu/SimpleMenu.js +10 -10
- package/dist/Stack/Stack.cjs +5 -5
- package/dist/Stack/Stack.js +7 -6
- package/dist/SubNav/SubNavHeader.cjs +1 -1
- package/dist/SubNav/SubNavHeader.js +15 -15
- package/dist/SubNav/SubNavLinkSection.cjs +2 -2
- package/dist/SubNav/SubNavLinkSection.js +6 -6
- package/dist/SubNav/SubNavSection.cjs +1 -1
- package/dist/SubNav/SubNavSection.js +12 -12
- package/dist/Table/Table.cjs +1 -3
- package/dist/Table/Table.js +2 -3
- package/dist/Tabs/TabGroup.cjs +1 -1
- package/dist/Tabs/TabGroup.js +11 -11
- package/dist/TextInput/TextInput.cjs +1 -1
- package/dist/TextInput/TextInput.js +24 -24
- package/dist/Textarea/Textarea.cjs +1 -1
- package/dist/Textarea/Textarea.js +1 -1
- package/dist/TimePicker/TimePicker.cjs +2 -2
- package/dist/TimePicker/TimePicker.js +2 -2
- package/dist/ToggleCheckbox/ToggleCheckbox.cjs +6 -6
- package/dist/ToggleCheckbox/ToggleCheckbox.js +45 -43
- package/dist/ToggleInput/ToggleInput.cjs +1 -1
- package/dist/ToggleInput/ToggleInput.js +10 -10
- package/dist/Tooltip/Tooltip.cjs +2 -3
- package/dist/Tooltip/Tooltip.js +18 -18
- package/dist/helpers/deprecations.cjs +1 -0
- package/dist/helpers/deprecations.js +13 -0
- package/dist/helpers/useId.cjs +1 -1
- package/dist/helpers/useId.js +11 -4
- package/dist/hooks/useIntersection.cjs +1 -0
- package/dist/hooks/useIntersection.js +23 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +136 -134
- package/dist/v2/MainNav/MainNav.cjs +1 -6
- package/dist/v2/MainNav/MainNav.js +15 -15
- package/dist/v2/MainNav/NavFooter.cjs +1 -3
- package/dist/v2/MainNav/NavFooter.js +3 -4
- package/dist/v2/SimpleMenu/SimpleMenu.cjs +1 -1
- package/dist/v2/SimpleMenu/SimpleMenu.js +12 -12
- package/dist/v2/SubNav/SubNavHeader.cjs +1 -1
- package/dist/v2/SubNav/SubNavHeader.js +15 -15
- package/dist/v2/SubNav/SubNavLinkSection.cjs +4 -4
- package/dist/v2/SubNav/SubNavLinkSection.js +8 -8
- package/dist/v2/SubNav/SubNavSection.cjs +1 -1
- package/dist/v2/SubNav/SubNavSection.js +4 -4
- package/package.json +3 -4
- package/dist/helpers/genId.cjs +0 -1
- package/dist/helpers/genId.js +0 -5
package/dist/Popover/Popover.js
CHANGED
|
@@ -1,29 +1,83 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { useFloating as
|
|
5
|
-
import { Box as
|
|
6
|
-
import { Portal as
|
|
7
|
-
import { useIntersection as
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"right",
|
|
13
|
-
"right-start",
|
|
14
|
-
"right-end",
|
|
15
|
-
"bottom",
|
|
16
|
-
"bottom-start",
|
|
17
|
-
"bottom-end",
|
|
18
|
-
"left",
|
|
19
|
-
"left-start",
|
|
20
|
-
"left-end"
|
|
21
|
-
], z = d(s)`
|
|
22
|
-
box-shadow: ${({ theme: e }) => e.shadows.filterShadow};
|
|
1
|
+
import { jsx as i, jsxs as x } from "react/jsx-runtime";
|
|
2
|
+
import * as a from "react";
|
|
3
|
+
import c from "styled-components";
|
|
4
|
+
import { useFloating as w, offset as k, shift as y, flip as $, autoUpdate as v } from "@floating-ui/react-dom";
|
|
5
|
+
import { Box as d } from "../Box/Box.js";
|
|
6
|
+
import { Portal as P } from "../Portal/Portal.js";
|
|
7
|
+
import { useIntersection as S } from "../helpers/useIntersection.js";
|
|
8
|
+
const T = ["top", "top-start", "top-end", "right", "right-start", "right-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end"], W = c(d)`
|
|
9
|
+
box-shadow: ${({
|
|
10
|
+
theme: t
|
|
11
|
+
}) => t.shadows.filterShadow};
|
|
23
12
|
z-index: 4;
|
|
24
|
-
border: 1px solid ${({
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
border: 1px solid ${({
|
|
14
|
+
theme: t
|
|
15
|
+
}) => t.colors.neutral150};
|
|
16
|
+
background: ${({
|
|
17
|
+
theme: t
|
|
18
|
+
}) => t.colors.neutral0};
|
|
19
|
+
`, E = ({
|
|
20
|
+
source: t,
|
|
21
|
+
children: e,
|
|
22
|
+
spacing: o = 0,
|
|
23
|
+
fullWidth: r = !1,
|
|
24
|
+
placement: s = "bottom-start",
|
|
25
|
+
centered: n = !1,
|
|
26
|
+
...l
|
|
27
|
+
}) => {
|
|
28
|
+
const [p, u] = a.useState(void 0), {
|
|
29
|
+
x: h,
|
|
30
|
+
y: m,
|
|
31
|
+
reference: f,
|
|
32
|
+
floating: b,
|
|
33
|
+
strategy: g
|
|
34
|
+
} = w({
|
|
35
|
+
strategy: "fixed",
|
|
36
|
+
placement: n ? "bottom" : s,
|
|
37
|
+
middleware: [k({
|
|
38
|
+
mainAxis: o
|
|
39
|
+
}), y(), $()],
|
|
40
|
+
whileElementsMounted: v
|
|
41
|
+
});
|
|
42
|
+
return a.useLayoutEffect(() => {
|
|
43
|
+
f(t.current);
|
|
44
|
+
}, [t, f]), a.useLayoutEffect(() => {
|
|
45
|
+
r && u(t.current.offsetWidth);
|
|
46
|
+
}, [r, t]), i(W, {
|
|
47
|
+
ref: b,
|
|
48
|
+
style: {
|
|
49
|
+
left: h,
|
|
50
|
+
top: m,
|
|
51
|
+
position: g,
|
|
52
|
+
width: p || void 0
|
|
53
|
+
},
|
|
54
|
+
hasRadius: !0,
|
|
55
|
+
background: "neutral0",
|
|
56
|
+
padding: 1,
|
|
57
|
+
...l,
|
|
58
|
+
children: e
|
|
59
|
+
});
|
|
60
|
+
}, R = ({
|
|
61
|
+
children: t,
|
|
62
|
+
intersectionId: e,
|
|
63
|
+
onReachEnd: o,
|
|
64
|
+
...r
|
|
65
|
+
}) => {
|
|
66
|
+
const s = a.useRef(null);
|
|
67
|
+
return S(s, o ?? (() => {
|
|
68
|
+
}), {
|
|
69
|
+
selectorToWatch: `#${e}`,
|
|
70
|
+
skipWhen: !e || !o
|
|
71
|
+
}), x(L, {
|
|
72
|
+
ref: s,
|
|
73
|
+
...r,
|
|
74
|
+
children: [t, e && o && i(d, {
|
|
75
|
+
id: e,
|
|
76
|
+
width: "100%",
|
|
77
|
+
height: "1px"
|
|
78
|
+
})]
|
|
79
|
+
});
|
|
80
|
+
}, L = c(d)`
|
|
27
81
|
// 16 is base base size, 3 is the factor to get closer to 40px and 5 is the number of elements visible in the list
|
|
28
82
|
max-height: ${3 * 5}rem;
|
|
29
83
|
overflow-y: auto;
|
|
@@ -35,89 +89,44 @@ const L = [
|
|
|
35
89
|
}
|
|
36
90
|
|
|
37
91
|
&::-webkit-scrollbar-track {
|
|
38
|
-
background: ${({
|
|
92
|
+
background: ${({
|
|
93
|
+
theme: t
|
|
94
|
+
}) => t.colors.neutral0};
|
|
39
95
|
}
|
|
40
96
|
|
|
41
97
|
&::-webkit-scrollbar-thumb {
|
|
42
|
-
background: ${({
|
|
43
|
-
|
|
98
|
+
background: ${({
|
|
99
|
+
theme: t
|
|
100
|
+
}) => t.colors.neutral150};
|
|
101
|
+
border-radius: ${({
|
|
102
|
+
theme: t
|
|
103
|
+
}) => t.borderRadius};
|
|
44
104
|
margin-right: 10px;
|
|
45
105
|
}
|
|
46
|
-
`,
|
|
106
|
+
`, B = ({
|
|
107
|
+
children: t,
|
|
47
108
|
source: e,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
],
|
|
67
|
-
whileElementsMounted: O
|
|
68
|
-
});
|
|
69
|
-
return o.useLayoutEffect(() => {
|
|
70
|
-
p(e.current);
|
|
71
|
-
}, [e, p]), o.useLayoutEffect(() => {
|
|
72
|
-
i && x(e.current.offsetWidth);
|
|
73
|
-
}, [i, e]), q(l, n, {
|
|
74
|
-
selectorToWatch: `#${r}`,
|
|
75
|
-
skipWhen: !r || !n
|
|
76
|
-
}), /* @__PURE__ */ o.createElement(z, {
|
|
77
|
-
ref: P,
|
|
78
|
-
style: {
|
|
79
|
-
left: y,
|
|
80
|
-
top: E,
|
|
81
|
-
position: k,
|
|
82
|
-
width: v || void 0
|
|
83
|
-
},
|
|
84
|
-
hasRadius: !0,
|
|
85
|
-
background: "neutral0",
|
|
86
|
-
padding: 1
|
|
87
|
-
}, /* @__PURE__ */ o.createElement(A, {
|
|
88
|
-
ref: l,
|
|
89
|
-
...w
|
|
90
|
-
}, m, r && n && /* @__PURE__ */ o.createElement(s, {
|
|
91
|
-
id: r,
|
|
92
|
-
width: "100%",
|
|
93
|
-
height: "1px"
|
|
94
|
-
})));
|
|
95
|
-
}, c = (e) => /* @__PURE__ */ o.createElement(S, null, /* @__PURE__ */ o.createElement(a, {
|
|
96
|
-
...e
|
|
97
|
-
})), f = {
|
|
98
|
-
fullWidth: !1,
|
|
99
|
-
intersectionId: void 0,
|
|
100
|
-
onReachEnd: void 0,
|
|
101
|
-
centered: !1,
|
|
102
|
-
placement: "bottom-start",
|
|
103
|
-
spacing: 0
|
|
104
|
-
}, u = {
|
|
105
|
-
centered: t.bool,
|
|
106
|
-
children: t.node.isRequired,
|
|
107
|
-
fullWidth: t.bool,
|
|
108
|
-
intersectionId: t.string,
|
|
109
|
-
onReachEnd: t.func,
|
|
110
|
-
placement: t.oneOf(L),
|
|
111
|
-
source: t.shape({
|
|
112
|
-
current: (typeof Element > "u" ? t.any : t.instanceOf(Element)).isRequired
|
|
113
|
-
}).isRequired,
|
|
114
|
-
spacing: t.number
|
|
115
|
-
};
|
|
116
|
-
a.propTypes = u;
|
|
117
|
-
a.defaultProps = f;
|
|
118
|
-
c.propTypes = u;
|
|
119
|
-
c.defaultProps = f;
|
|
109
|
+
spacing: o,
|
|
110
|
+
fullWidth: r,
|
|
111
|
+
placement: s,
|
|
112
|
+
centered: n,
|
|
113
|
+
...l
|
|
114
|
+
}) => i(P, {
|
|
115
|
+
children: i(E, {
|
|
116
|
+
source: e,
|
|
117
|
+
spacing: o,
|
|
118
|
+
fullWidth: r,
|
|
119
|
+
placement: s,
|
|
120
|
+
centered: n,
|
|
121
|
+
children: i(R, {
|
|
122
|
+
...l,
|
|
123
|
+
children: t
|
|
124
|
+
})
|
|
125
|
+
})
|
|
126
|
+
});
|
|
120
127
|
export {
|
|
121
|
-
|
|
122
|
-
|
|
128
|
+
E as Content,
|
|
129
|
+
T as POPOVER_PLACEMENTS,
|
|
130
|
+
B as Popover,
|
|
131
|
+
R as Scrolling
|
|
123
132
|
};
|
package/dist/Popover/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Popover.cjs");exports.POPOVER_PLACEMENTS=e.POPOVER_PLACEMENTS;exports.Popover=e.Popover;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Popover.cjs"),o={Content:e.Content,Scrolling:e.Scrolling};exports.POPOVER_PLACEMENTS=e.POPOVER_PLACEMENTS;exports.Popover=e.Popover;exports.PopoverPrimitives=o;
|
package/dist/Popover/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Content as o, Scrolling as r } from "./Popover.js";
|
|
2
|
+
import { POPOVER_PLACEMENTS as p, Popover as m } from "./Popover.js";
|
|
3
|
+
const e = {
|
|
4
|
+
Content: o,
|
|
5
|
+
Scrolling: r
|
|
6
|
+
};
|
|
2
7
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
8
|
+
p as POPOVER_PLACEMENTS,
|
|
9
|
+
m as Popover,
|
|
10
|
+
e as PopoverPrimitives
|
|
5
11
|
};
|
package/dist/Select/Option.cjs
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react"),y=require("prop-types"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react"),y=require("prop-types"),m=require("styled-components"),l=require("../Box/Box.cjs"),x=require("../Typography/Typography.cjs"),b=require("../Flex/Flex.cjs"),k=require("../BaseCheckbox/assets/checkmark.cjs"),i=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},r=i(s),t=i(y),u=i(m),R=u.default(l.Box)`
|
|
2
2
|
border: 1px solid
|
|
3
3
|
${({theme:e,selected:o,indeterminate:a})=>o||a?e.colors.primary600:e.colors.neutral300};
|
|
4
|
-
border-radius: ${({theme:e})=>e.borderRadius};
|
|
5
4
|
height: 18px;
|
|
6
5
|
width: 18px;
|
|
7
|
-
position: relative;
|
|
8
|
-
z-index: 1;
|
|
9
|
-
overflow: hidden;
|
|
10
6
|
background-color: ${({theme:e,selected:o,indeterminate:a})=>o||a?e.colors.primary600:e.colors.neutral0};
|
|
11
7
|
|
|
12
8
|
${({theme:e,indeterminate:o})=>o&&`&::after {
|
|
@@ -34,7 +30,7 @@
|
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
`}
|
|
37
|
-
`,T=u.default(
|
|
33
|
+
`,T=u.default(l.Box)`
|
|
38
34
|
width: 100%;
|
|
39
35
|
border: none;
|
|
40
36
|
text-align: left;
|
|
@@ -46,4 +42,4 @@
|
|
|
46
42
|
&:hover {
|
|
47
43
|
background: ${({theme:e})=>e.colors.primary100};
|
|
48
44
|
}
|
|
49
|
-
`,
|
|
45
|
+
`,n=({selected:e,indeterminate:o,children:a,value:c,multi:p,isChild:f,startIcon:d,...h})=>{const g=s.useRef(null);return r.default.createElement(T,{as:"li",hasRadius:!0,paddingLeft:f?7:4,paddingRight:4,paddingTop:2,paddingBottom:2,ref:g,role:"option","aria-selected":e,background:"neutral0","data-strapi-value":c,...h},r.default.createElement(b.Flex,null,d&&r.default.createElement(l.Box,{paddingRight:2,"aria-hidden":!0},d),p&&r.default.createElement(l.Box,{paddingRight:2,"aria-hidden":!0},r.default.createElement(R,{hasRadius:!0,overflow:"hidden",position:"relative",indeterminate:o,selected:e,zIndex:1})),r.default.createElement(x.Typography,{textColor:e?"primary600":"neutral800",fontWeight:e?"bold":null},a)))};n.defaultProps={isChild:!1,multi:!1,selected:!1,startIcon:void 0,indeterminate:!1};n.propTypes={children:t.default.oneOfType([t.default.string,t.default.number]).isRequired,indeterminate:t.default.bool,isChild:t.default.bool,multi:t.default.bool,selected:t.default.bool,startIcon:t.default.node,value:t.default.oneOfType([t.default.string,t.default.number]).isRequired};n.displayName="Option";exports.Option=n;
|
package/dist/Select/Option.js
CHANGED
|
@@ -5,15 +5,11 @@ import { Box as a } from "../Box/Box.js";
|
|
|
5
5
|
import { Typography as h } from "../Typography/Typography.js";
|
|
6
6
|
import { Flex as g } from "../Flex/Flex.js";
|
|
7
7
|
import b from "../BaseCheckbox/assets/checkmark.js";
|
|
8
|
-
const y = d
|
|
8
|
+
const y = d(a)`
|
|
9
9
|
border: 1px solid
|
|
10
10
|
${({ theme: e, selected: r, indeterminate: i }) => r || i ? e.colors.primary600 : e.colors.neutral300};
|
|
11
|
-
border-radius: ${({ theme: e }) => e.borderRadius};
|
|
12
11
|
height: 18px;
|
|
13
12
|
width: 18px;
|
|
14
|
-
position: relative;
|
|
15
|
-
z-index: 1;
|
|
16
|
-
overflow: hidden;
|
|
17
13
|
background-color: ${({ theme: e, selected: r, indeterminate: i }) => r || i ? e.colors.primary600 : e.colors.neutral0};
|
|
18
14
|
|
|
19
15
|
${({ theme: e, indeterminate: r }) => r && `&::after {
|
|
@@ -75,8 +71,12 @@ const y = d.div`
|
|
|
75
71
|
paddingRight: 2,
|
|
76
72
|
"aria-hidden": !0
|
|
77
73
|
}, /* @__PURE__ */ t.createElement(y, {
|
|
74
|
+
hasRadius: !0,
|
|
75
|
+
overflow: "hidden",
|
|
76
|
+
position: "relative",
|
|
77
|
+
indeterminate: r,
|
|
78
78
|
selected: e,
|
|
79
|
-
|
|
79
|
+
zIndex: 1
|
|
80
80
|
})), /* @__PURE__ */ t.createElement(h, {
|
|
81
81
|
textColor: e ? "primary600" : "neutral800",
|
|
82
82
|
fontWeight: e ? "bold" : null
|
package/dist/Select/Select.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react"),le=require("prop-types"),ne=require("styled-components"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react"),le=require("prop-types"),ne=require("styled-components"),M=require("@strapi/icons"),re=require("../themes/sizes.cjs"),oe=require("./SelectButton.cjs"),ae=require("../Field/Field.cjs"),se=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const ie=require("../Field/FieldHint.cjs"),ce=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const de=require("../Popover/Popover.cjs"),ue=require("../Stack/Stack.cjs"),P=require("../Typography/Typography.cjs"),x=require("../Flex/Flex.cjs"),A=require("../Box/Box.cjs"),fe=require("../helpers/useId.cjs"),pe=require("./SelectList.cjs"),T=require("./components.cjs"),ye=require("./hooks/useButtonRef.cjs"),z=require("../VisuallyHidden/VisuallyHidden.cjs"),he=require("./constants.cjs"),G=require("../helpers/escapeSelector.cjs"),me=require("./SelectTags.cjs"),v=o=>o&&typeof o=="object"&&"default"in o?o:{default:o},l=v(u),e=v(le),Ee=v(ne),be=Ee.default(x.Flex)`
|
|
2
2
|
width: 100%;
|
|
3
|
-
`,I=({label:o,labelAction:
|
|
3
|
+
`,I=({label:o,labelAction:W,id:N,children:J,customizeContent:y,placeholder:g,onChange:F,value:n,hint:S,error:p,disabled:i,clearLabel:C,onClear:O,onReachEnd:K,multi:a,required:Q,selectButtonTitle:U,size:V,startIcon:R,withTags:h,...X})=>{const r=fe.useId(N),[m,E]=u.useState(void 0),L=ye.useButtonRef(m),$=u.useRef(null),_=`${r}-label`,b=`${r}-content`,Y=typeof p=="string";let j;if(p?j=`${r}-error`:S&&(j=`${r}-hint`),h&&!a)throw new Error('The "withTags" props can only be used when the "multi" prop is present');const Z=()=>{E(void 0)},ee=()=>{i||(O(),L.current.focus())},k=t=>{t.preventDefault(),!i&&(t.nativeEvent.which===3||t.nativeEvent.button===2||E(he.DownState.Mouse))},q=(t,s=!0)=>{a?F(n.includes(t)?n.filter(c=>c!==t):[...n,t]):(F(t),s&&E(void 0))},D=t=>{F(n.includes(t[0])?n.filter((s,c,f)=>f.indexOf(s)<0,t):[...n,...t])};let B,w=[];const H=(t,s)=>{const c=`${r}-option-${t.props.value}`,f=a?n.includes(t.props.value):t.props.value===n;return f&&(h?w.push({label:t.props.children,value:t.props.value}):B=t.props.children),u.cloneElement(t,{id:G.escapeSelector(c),onClick:()=>q(t.props.value),selected:f,multi:a,isChild:s})},te=u.Children.toArray(J).map(t=>{if(t.type.displayName==="OptGroup"){const s=`${r}-option-${t.props.label}`,c=t.props.children.every(d=>n.includes(d.props.value)),f=!c&&t.props.children.some(d=>n.includes(d.props.value));return u.cloneElement(t,{id:G.escapeSelector(s),onClick:()=>D(t.props.children.map(d=>d.props.value)),selected:c,indeterminate:f,multi:a,children:u.Children.toArray(t.props.children).map(d=>H(d,!0)),value:t.props.label})}return H(t)});return l.default.createElement(ae.Field,{hint:S,error:p,id:r,required:Q},l.default.createElement(ue.Stack,{spacing:o||S||Y?1:0},o&&l.default.createElement(se.FieldLabel,{action:W},o),l.default.createElement(T.SelectButtonWrapper,{size:V,hasError:Boolean(p),disabled:i,ref:$},l.default.createElement(oe.SelectButton,{ref:L,labelledBy:`${r} ${_} ${b}`,"aria-describedby":j,expanded:Boolean(m),onTrigger:E,id:r,hasError:Boolean(p),disabled:i,onMouseDown:k,...X}),l.default.createElement(be,{justifyContent:"space-between"},l.default.createElement(x.Flex,null,R&&l.default.createElement(A.Box,{paddingLeft:3,"aria-hidden":!0},R),h&&l.default.createElement(me.SelectTags,{tags:w,onRemoveTag:q,disabled:i}),l.default.createElement(A.Box,{paddingLeft:4,paddingRight:4},h?l.default.createElement(l.default.Fragment,null,!n||n.length===0?l.default.createElement(P.Typography,{ellipsis:!0,id:b,textColor:"neutral600"},g):null,l.default.createElement(z.VisuallyHidden,{as:"span",id:b},y?y(n):B||g,n.join(", "))):l.default.createElement(P.Typography,{ellipsis:!0,id:b,textColor:n?"neutral800":"neutral600"},y?y(n):B||g,a&&l.default.createElement(z.VisuallyHidden,{as:"span"},n.join(", "))))),l.default.createElement(x.Flex,null,(a&&n&&n.length||!a&&n)&&O&&l.default.createElement(T.IconBox,{as:"button",type:"button",onClick:ee,"aria-label":C,"aria-disabled":i,title:C},l.default.createElement(M.Cross,null)),l.default.createElement(T.CaretBox,{paddingLeft:3,"aria-hidden":!0,as:"button",type:"button",onMouseDown:k,tabIndex:-1,disabled:i,title:U},l.default.createElement(M.CarretDown,null))))),l.default.createElement(ie.FieldHint,null),l.default.createElement(ce.FieldError,null)),m&&l.default.createElement(de.Popover,{source:$,spacing:4,fullWidth:!0,intersectionId:`select-list-intersection-${r}`,onReachEnd:K},l.default.createElement(pe.SelectList,{selectId:r,labelledBy:o?_:void 0,onEscape:Z,expanded:m,onSelectItem:(t,s)=>s?D(t):q(t,!1),multi:a},te)))};I.defaultProps={"aria-label":void 0,children:[],clearLabel:"Clear",customizeContent:void 0,disabled:!1,id:void 0,label:void 0,labelAction:void 0,multi:!1,onChange(){},onClear:void 0,onReachEnd:void 0,value:void 0,hint:void 0,error:void 0,placeholder:"Select...",required:!1,selectButtonTitle:"Carret Down Button",size:"M",startIcon:void 0,withTags:!1};I.propTypes={"aria-label":e.default.string,children:e.default.oneOfType([e.default.arrayOf(e.default.node),e.default.node]),clearLabel:e.default.string,customizeContent:e.default.func,disabled:e.default.bool,error:e.default.oneOfType([e.default.string,e.default.bool]),hint:e.default.oneOfType([e.default.string,e.default.bool,e.default.node,e.default.arrayOf(e.default.node)]),id:e.default.oneOfType([e.default.string,e.default.number]),label:e.default.string,labelAction:e.default.element,multi:e.default.bool,onChange:e.default.func,onClear:e.default.func,onReachEnd:e.default.func,placeholder:e.default.string,required:e.default.bool,selectButtonTitle:e.default.string,size:e.default.oneOf(Object.keys(re.sizes.input)),startIcon:e.default.element,value:e.default.oneOfType([e.default.arrayOf(e.default.oneOfType([e.default.string,e.default.number])),e.default.string,e.default.number]),withTags:e.default.bool};exports.Select=I;
|
package/dist/Select/Select.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import r, { useState as ee, useRef as te, Children as
|
|
1
|
+
import r, { useState as ee, useRef as te, Children as k, cloneElement as j } from "react";
|
|
2
2
|
import e from "prop-types";
|
|
3
3
|
import re from "styled-components";
|
|
4
4
|
import { Cross as oe, CarretDown as ne } from "@strapi/icons";
|
|
@@ -13,96 +13,96 @@ import "../Field/FieldContext.js";
|
|
|
13
13
|
import "../Field/FieldAction.js";
|
|
14
14
|
import { Popover as me } from "../Popover/Popover.js";
|
|
15
15
|
import { Stack as de } from "../Stack/Stack.js";
|
|
16
|
-
import { Typography as
|
|
16
|
+
import { Typography as A } from "../Typography/Typography.js";
|
|
17
17
|
import { Flex as C } from "../Flex/Flex.js";
|
|
18
|
-
import { Box as
|
|
18
|
+
import { Box as P } from "../Box/Box.js";
|
|
19
19
|
import { useId as fe } from "../helpers/useId.js";
|
|
20
20
|
import { SelectList as ue } from "./SelectList.js";
|
|
21
21
|
import { SelectButtonWrapper as he, IconBox as Ee, CaretBox as be } from "./components.js";
|
|
22
22
|
import { useButtonRef as ye } from "./hooks/useButtonRef.js";
|
|
23
|
-
import { VisuallyHidden as
|
|
23
|
+
import { VisuallyHidden as _ } from "../VisuallyHidden/VisuallyHidden.js";
|
|
24
24
|
import { DownState as ge } from "./constants.js";
|
|
25
|
-
import { escapeSelector as
|
|
25
|
+
import { escapeSelector as q } from "../helpers/escapeSelector.js";
|
|
26
26
|
import { SelectTags as ve } from "./SelectTags.js";
|
|
27
27
|
const Be = re(C)`
|
|
28
28
|
width: 100%;
|
|
29
|
-
`,
|
|
30
|
-
label:
|
|
31
|
-
labelAction:
|
|
32
|
-
id:
|
|
33
|
-
children:
|
|
34
|
-
customizeContent:
|
|
29
|
+
`, z = ({
|
|
30
|
+
label: d,
|
|
31
|
+
labelAction: G,
|
|
32
|
+
id: H,
|
|
33
|
+
children: W,
|
|
34
|
+
customizeContent: f,
|
|
35
35
|
placeholder: y,
|
|
36
36
|
onChange: g,
|
|
37
37
|
value: o,
|
|
38
38
|
hint: v,
|
|
39
|
-
error:
|
|
39
|
+
error: m,
|
|
40
40
|
disabled: s,
|
|
41
41
|
clearLabel: I,
|
|
42
42
|
onClear: S,
|
|
43
|
-
onReachEnd:
|
|
43
|
+
onReachEnd: N,
|
|
44
44
|
multi: i,
|
|
45
|
-
required:
|
|
46
|
-
selectButtonTitle:
|
|
47
|
-
size:
|
|
45
|
+
required: J,
|
|
46
|
+
selectButtonTitle: K,
|
|
47
|
+
size: Q,
|
|
48
48
|
startIcon: x,
|
|
49
49
|
withTags: u,
|
|
50
|
-
...
|
|
50
|
+
...U
|
|
51
51
|
}) => {
|
|
52
|
-
const n = fe(
|
|
52
|
+
const n = fe(H), [h, E] = ee(void 0), $ = ye(h), R = te(null), w = `${n}-label`, b = `${n}-content`, X = typeof m == "string";
|
|
53
53
|
let B;
|
|
54
|
-
if (
|
|
54
|
+
if (m ? B = `${n}-error` : v && (B = `${n}-hint`), u && !i)
|
|
55
55
|
throw new Error('The "withTags" props can only be used when the "multi" prop is present');
|
|
56
56
|
const Y = () => {
|
|
57
57
|
E(void 0);
|
|
58
58
|
}, Z = () => {
|
|
59
59
|
s || (S(), $.current.focus());
|
|
60
|
-
},
|
|
60
|
+
}, D = (t) => {
|
|
61
61
|
t.preventDefault(), !s && (t.nativeEvent.which === 3 || t.nativeEvent.button === 2 || E(ge.Mouse));
|
|
62
62
|
}, O = (t, l = !0) => {
|
|
63
63
|
i ? g(o.includes(t) ? o.filter((a) => a !== t) : [...o, t]) : (g(t), l && E(void 0));
|
|
64
|
-
},
|
|
64
|
+
}, L = (t) => {
|
|
65
65
|
g(
|
|
66
66
|
o.includes(t[0]) ? o.filter((l, a, c) => c.indexOf(l) < 0, t) : [...o, ...t]
|
|
67
67
|
);
|
|
68
68
|
};
|
|
69
|
-
let T,
|
|
70
|
-
const
|
|
69
|
+
let T, F = [];
|
|
70
|
+
const M = (t, l) => {
|
|
71
71
|
const a = `${n}-option-${t.props.value}`, c = i ? o.includes(t.props.value) : t.props.value === o;
|
|
72
|
-
return c && (u ?
|
|
73
|
-
id:
|
|
72
|
+
return c && (u ? F.push({ label: t.props.children, value: t.props.value }) : T = t.props.children), j(t, {
|
|
73
|
+
id: q(a),
|
|
74
74
|
onClick: () => O(t.props.value),
|
|
75
75
|
selected: c,
|
|
76
76
|
multi: i,
|
|
77
77
|
isChild: l
|
|
78
78
|
});
|
|
79
|
-
}, V =
|
|
79
|
+
}, V = k.toArray(W).map((t) => {
|
|
80
80
|
if (t.type.displayName === "OptGroup") {
|
|
81
81
|
const l = `${n}-option-${t.props.label}`, a = t.props.children.every((p) => o.includes(p.props.value)), c = !a && t.props.children.some((p) => o.includes(p.props.value));
|
|
82
|
-
return
|
|
83
|
-
id:
|
|
84
|
-
onClick: () =>
|
|
82
|
+
return j(t, {
|
|
83
|
+
id: q(l),
|
|
84
|
+
onClick: () => L(t.props.children.map((p) => p.props.value)),
|
|
85
85
|
selected: a,
|
|
86
86
|
indeterminate: c,
|
|
87
87
|
multi: i,
|
|
88
|
-
children:
|
|
88
|
+
children: k.toArray(t.props.children).map((p) => M(p, !0)),
|
|
89
89
|
value: t.props.label
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
-
return
|
|
92
|
+
return M(t);
|
|
93
93
|
});
|
|
94
94
|
return /* @__PURE__ */ r.createElement(se, {
|
|
95
95
|
hint: v,
|
|
96
|
-
error:
|
|
96
|
+
error: m,
|
|
97
97
|
id: n,
|
|
98
|
-
required:
|
|
98
|
+
required: J
|
|
99
99
|
}, /* @__PURE__ */ r.createElement(de, {
|
|
100
|
-
spacing:
|
|
101
|
-
},
|
|
102
|
-
action:
|
|
103
|
-
},
|
|
104
|
-
size:
|
|
105
|
-
hasError: Boolean(
|
|
100
|
+
spacing: d || v || X ? 1 : 0
|
|
101
|
+
}, d && /* @__PURE__ */ r.createElement(ae, {
|
|
102
|
+
action: G
|
|
103
|
+
}, d), /* @__PURE__ */ r.createElement(he, {
|
|
104
|
+
size: Q,
|
|
105
|
+
hasError: Boolean(m),
|
|
106
106
|
disabled: s,
|
|
107
107
|
ref: R
|
|
108
108
|
}, /* @__PURE__ */ r.createElement(le, {
|
|
@@ -112,34 +112,34 @@ const Be = re(C)`
|
|
|
112
112
|
expanded: Boolean(h),
|
|
113
113
|
onTrigger: E,
|
|
114
114
|
id: n,
|
|
115
|
-
hasError: Boolean(
|
|
115
|
+
hasError: Boolean(m),
|
|
116
116
|
disabled: s,
|
|
117
|
-
onMouseDown:
|
|
118
|
-
...
|
|
117
|
+
onMouseDown: D,
|
|
118
|
+
...U
|
|
119
119
|
}), /* @__PURE__ */ r.createElement(Be, {
|
|
120
120
|
justifyContent: "space-between"
|
|
121
|
-
}, /* @__PURE__ */ r.createElement(C, null, x && /* @__PURE__ */ r.createElement(
|
|
121
|
+
}, /* @__PURE__ */ r.createElement(C, null, x && /* @__PURE__ */ r.createElement(P, {
|
|
122
122
|
paddingLeft: 3,
|
|
123
123
|
"aria-hidden": !0
|
|
124
124
|
}, x), u && /* @__PURE__ */ r.createElement(ve, {
|
|
125
|
-
tags:
|
|
125
|
+
tags: F,
|
|
126
126
|
onRemoveTag: O,
|
|
127
127
|
disabled: s
|
|
128
|
-
}), /* @__PURE__ */ r.createElement(
|
|
128
|
+
}), /* @__PURE__ */ r.createElement(P, {
|
|
129
129
|
paddingLeft: 4,
|
|
130
130
|
paddingRight: 4
|
|
131
|
-
}, u ? /* @__PURE__ */ r.createElement(r.Fragment, null, !o || o.length === 0 ? /* @__PURE__ */ r.createElement(
|
|
131
|
+
}, u ? /* @__PURE__ */ r.createElement(r.Fragment, null, !o || o.length === 0 ? /* @__PURE__ */ r.createElement(A, {
|
|
132
132
|
ellipsis: !0,
|
|
133
133
|
id: b,
|
|
134
134
|
textColor: "neutral600"
|
|
135
|
-
}, y) : null, /* @__PURE__ */ r.createElement(
|
|
135
|
+
}, y) : null, /* @__PURE__ */ r.createElement(_, {
|
|
136
136
|
as: "span",
|
|
137
137
|
id: b
|
|
138
|
-
},
|
|
138
|
+
}, f ? f(o) : T || y, o.join(", "))) : /* @__PURE__ */ r.createElement(A, {
|
|
139
139
|
ellipsis: !0,
|
|
140
140
|
id: b,
|
|
141
141
|
textColor: o ? "neutral800" : "neutral600"
|
|
142
|
-
},
|
|
142
|
+
}, f ? f(o) : T || y, i && /* @__PURE__ */ r.createElement(_, {
|
|
143
143
|
as: "span"
|
|
144
144
|
}, o.join(", "))))), /* @__PURE__ */ r.createElement(C, null, (i && o && o.length || !i && o) && S && /* @__PURE__ */ r.createElement(Ee, {
|
|
145
145
|
as: "button",
|
|
@@ -153,26 +153,26 @@ const Be = re(C)`
|
|
|
153
153
|
"aria-hidden": !0,
|
|
154
154
|
as: "button",
|
|
155
155
|
type: "button",
|
|
156
|
-
onMouseDown:
|
|
156
|
+
onMouseDown: D,
|
|
157
157
|
tabIndex: -1,
|
|
158
158
|
disabled: s,
|
|
159
|
-
title:
|
|
159
|
+
title: K
|
|
160
160
|
}, /* @__PURE__ */ r.createElement(ne, null))))), /* @__PURE__ */ r.createElement(pe, null), /* @__PURE__ */ r.createElement(ce, null)), h && /* @__PURE__ */ r.createElement(me, {
|
|
161
161
|
source: R,
|
|
162
162
|
spacing: 4,
|
|
163
163
|
fullWidth: !0,
|
|
164
164
|
intersectionId: `select-list-intersection-${n}`,
|
|
165
|
-
onReachEnd:
|
|
165
|
+
onReachEnd: N
|
|
166
166
|
}, /* @__PURE__ */ r.createElement(ue, {
|
|
167
167
|
selectId: n,
|
|
168
|
-
labelledBy:
|
|
168
|
+
labelledBy: d ? w : void 0,
|
|
169
169
|
onEscape: Y,
|
|
170
170
|
expanded: h,
|
|
171
|
-
onSelectItem: (t, l) => l ?
|
|
171
|
+
onSelectItem: (t, l) => l ? L(t) : O(t, !1),
|
|
172
172
|
multi: i
|
|
173
173
|
}, V)));
|
|
174
174
|
};
|
|
175
|
-
|
|
175
|
+
z.defaultProps = {
|
|
176
176
|
"aria-label": void 0,
|
|
177
177
|
children: [],
|
|
178
178
|
clearLabel: "Clear",
|
|
@@ -196,14 +196,14 @@ G.defaultProps = {
|
|
|
196
196
|
startIcon: void 0,
|
|
197
197
|
withTags: !1
|
|
198
198
|
};
|
|
199
|
-
|
|
199
|
+
z.propTypes = {
|
|
200
200
|
"aria-label": e.string,
|
|
201
201
|
children: e.oneOfType([e.arrayOf(e.node), e.node]),
|
|
202
202
|
clearLabel: e.string,
|
|
203
203
|
customizeContent: e.func,
|
|
204
204
|
disabled: e.bool,
|
|
205
205
|
error: e.oneOfType([e.string, e.bool]),
|
|
206
|
-
hint: e.oneOfType([e.string, e.node, e.arrayOf(e.node)]),
|
|
206
|
+
hint: e.oneOfType([e.string, e.bool, e.node, e.arrayOf(e.node)]),
|
|
207
207
|
id: e.oneOfType([e.string, e.number]),
|
|
208
208
|
label: e.string,
|
|
209
209
|
labelAction: e.element,
|
|
@@ -224,5 +224,5 @@ G.propTypes = {
|
|
|
224
224
|
withTags: e.bool
|
|
225
225
|
};
|
|
226
226
|
export {
|
|
227
|
-
|
|
227
|
+
z as Select
|
|
228
228
|
};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("react"),d=require("prop-types"),i=require("styled-components"),f=require("@strapi/icons"),p=require("../Tag/Tag.cjs"),g=require("../Flex/Flex.cjs"),s=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},a=s(c),t=s(d),o=s(i),T=o.default.div`
|
|
2
2
|
margin-bottom: ${({theme:e})=>e.spaces[1]};
|
|
3
3
|
`,m=o.default(p.Tag)`
|
|
4
|
-
position: relative;
|
|
5
|
-
z-index: 1;
|
|
6
4
|
margin-left: ${({theme:e})=>e.spaces[1]};
|
|
7
5
|
margin-top: ${({theme:e})=>e.spaces[1]};
|
|
8
|
-
`,r=({tags:e,onRemoveTag:n,disabled:u})=>a.default.createElement(T,null,a.default.createElement(g.Flex,{wrap:"wrap"},e.map(l=>a.default.createElement(m,{icon:a.default.createElement(f.Cross,null),
|
|
6
|
+
`,r=({tags:e,onRemoveTag:n,disabled:u})=>a.default.createElement(T,null,a.default.createElement(g.Flex,{wrap:"wrap"},e.map(l=>a.default.createElement(m,{disabled:u,key:`tag-${l.value}`,icon:a.default.createElement(f.Cross,null),onClick:()=>n(l.value),position:"relative",tabIndex:-1,zIndex:1},l.label))));r.defaultProps={disabled:!1,tags:[]};r.propTypes={disabled:t.default.bool,onRemoveTag:t.default.func.isRequired,tags:t.default.arrayOf(t.default.shape({label:t.default.string,value:t.default.oneOfType([t.default.string,t.default.number])}))};exports.SelectTags=r;
|
|
@@ -7,18 +7,18 @@ import { Flex as i } from "../Flex/Flex.js";
|
|
|
7
7
|
const c = o.div`
|
|
8
8
|
margin-bottom: ${({ theme: r }) => r.spaces[1]};
|
|
9
9
|
`, f = o(m)`
|
|
10
|
-
position: relative;
|
|
11
|
-
z-index: 1;
|
|
12
10
|
margin-left: ${({ theme: r }) => r.spaces[1]};
|
|
13
11
|
margin-top: ${({ theme: r }) => r.spaces[1]};
|
|
14
12
|
`, l = ({ tags: r, onRemoveTag: s, disabled: p }) => /* @__PURE__ */ a.createElement(c, null, /* @__PURE__ */ a.createElement(i, {
|
|
15
13
|
wrap: "wrap"
|
|
16
14
|
}, r.map((t) => /* @__PURE__ */ a.createElement(f, {
|
|
17
|
-
icon: /* @__PURE__ */ a.createElement(n, null),
|
|
18
15
|
disabled: p,
|
|
16
|
+
key: `tag-${t.value}`,
|
|
17
|
+
icon: /* @__PURE__ */ a.createElement(n, null),
|
|
19
18
|
onClick: () => s(t.value),
|
|
19
|
+
position: "relative",
|
|
20
20
|
tabIndex: -1,
|
|
21
|
-
|
|
21
|
+
zIndex: 1
|
|
22
22
|
}, t.label))));
|
|
23
23
|
l.defaultProps = {
|
|
24
24
|
disabled: !1,
|