@caspeco/casper-ui-library 8.0.2 → 8.1.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.
- package/README.md +25 -1
- package/dist/components/accordion/accordion.visual.test.d.ts +2 -0
- package/dist/components/accordion/accordion.visual.test.d.ts.map +1 -0
- package/dist/components/alert/alert.visual.test.d.ts +2 -0
- package/dist/components/alert/alert.visual.test.d.ts.map +1 -0
- package/dist/components/badge/badge.visual.test.d.ts +2 -0
- package/dist/components/badge/badge.visual.test.d.ts.map +1 -0
- package/dist/components/box/box.visual.test.d.ts +2 -0
- package/dist/components/box/box.visual.test.d.ts.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.visual.test.d.ts +2 -0
- package/dist/components/breadcrumbs/breadcrumbs.visual.test.d.ts.map +1 -0
- package/dist/components/button/button.visual.test.d.ts +2 -0
- package/dist/components/button/button.visual.test.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.visual.test.d.ts +2 -0
- package/dist/components/checkbox/checkbox.visual.test.d.ts.map +1 -0
- package/dist/components/checkbox-group/checkbox-group.visual.test.d.ts +2 -0
- package/dist/components/checkbox-group/checkbox-group.visual.test.d.ts.map +1 -0
- package/dist/components/combobox/combobox-item.d.ts +2 -1
- package/dist/components/combobox/combobox-item.d.ts.map +1 -1
- package/dist/components/combobox/combobox-item.js +12 -11
- package/dist/components/combobox/combobox-menu.d.ts +1 -1
- package/dist/components/combobox/combobox-menu.d.ts.map +1 -1
- package/dist/components/combobox/combobox-menu.js +250 -169
- package/dist/components/combobox/combobox.composition.d.ts +1 -0
- package/dist/components/combobox/combobox.composition.d.ts.map +1 -1
- package/dist/components/combobox/combobox.d.ts +1 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +187 -148
- package/dist/components/combobox/combobox.visual.test.d.ts +2 -0
- package/dist/components/combobox/combobox.visual.test.d.ts.map +1 -0
- package/dist/components/combobox/types.d.ts +41 -0
- package/dist/components/combobox/types.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.composition.d.ts +6 -2
- package/dist/components/date-picker/date-picker.composition.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.visual.test.d.ts +2 -0
- package/dist/components/date-picker/date-picker.visual.test.d.ts.map +1 -0
- package/dist/components/divider/divider.visual.test.d.ts +2 -0
- package/dist/components/divider/divider.visual.test.d.ts.map +1 -0
- package/dist/components/drawer/drawer.composition.d.ts +0 -1
- package/dist/components/drawer/drawer.composition.d.ts.map +1 -1
- package/dist/components/drawer/drawer.visual.test.d.ts +2 -0
- package/dist/components/drawer/drawer.visual.test.d.ts.map +1 -0
- package/dist/components/flex/flex.visual.test.d.ts +2 -0
- package/dist/components/flex/flex.visual.test.d.ts.map +1 -0
- package/dist/components/form-control/form-control.visual.test.d.ts +2 -0
- package/dist/components/form-control/form-control.visual.test.d.ts.map +1 -0
- package/dist/components/grid/grid.composition.d.ts +3 -0
- package/dist/components/grid/grid.composition.d.ts.map +1 -0
- package/dist/components/grid/grid.visual.test.d.ts +2 -0
- package/dist/components/grid/grid.visual.test.d.ts.map +1 -0
- package/dist/components/heading/heading.visual.test.d.ts +2 -0
- package/dist/components/heading/heading.visual.test.d.ts.map +1 -0
- package/dist/components/highlight/highlight.composition.d.ts +3 -0
- package/dist/components/highlight/highlight.composition.d.ts.map +1 -0
- package/dist/components/highlight/highlight.d.ts +5 -0
- package/dist/components/highlight/highlight.d.ts.map +1 -1
- package/dist/components/highlight/highlight.visual.test.d.ts +2 -0
- package/dist/components/highlight/highlight.visual.test.d.ts.map +1 -0
- package/dist/components/icon/icon.composition.d.ts +1 -1
- package/dist/components/icon/icon.composition.d.ts.map +1 -1
- package/dist/components/icon/icon.visual.test.d.ts +2 -0
- package/dist/components/icon/icon.visual.test.d.ts.map +1 -0
- package/dist/components/icon-button/icon-button.d.ts +1 -1
- package/dist/components/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/icon-button/icon-button.visual.test.d.ts +2 -0
- package/dist/components/icon-button/icon-button.visual.test.d.ts.map +1 -0
- package/dist/components/icon-button/types.d.ts +2 -2
- package/dist/components/icon-button/types.d.ts.map +1 -1
- package/dist/components/image/image.composition.d.ts.map +1 -1
- package/dist/components/image/image.visual.test.d.ts +2 -0
- package/dist/components/image/image.visual.test.d.ts.map +1 -0
- package/dist/components/image-upload/image-upload.composition.d.ts.map +1 -1
- package/dist/components/image-upload/image-upload.visual.test.d.ts +2 -0
- package/dist/components/image-upload/image-upload.visual.test.d.ts.map +1 -0
- package/dist/components/input/input.visual.test.d.ts +2 -0
- package/dist/components/input/input.visual.test.d.ts.map +1 -0
- package/dist/components/link/link.visual.test.d.ts +2 -0
- package/dist/components/link/link.visual.test.d.ts.map +1 -0
- package/dist/components/list/list.visual.test.d.ts +2 -0
- package/dist/components/list/list.visual.test.d.ts.map +1 -0
- package/dist/components/menu/menu.visual.test.d.ts +2 -0
- package/dist/components/menu/menu.visual.test.d.ts.map +1 -0
- package/dist/components/message/message.visual.test.d.ts +2 -0
- package/dist/components/message/message.visual.test.d.ts.map +1 -0
- package/dist/components/modal/modal.composition.d.ts.map +1 -1
- package/dist/components/modal/modal.visual.test.d.ts +2 -0
- package/dist/components/modal/modal.visual.test.d.ts.map +1 -0
- package/dist/components/navigation-list/navigation-list.visual.test.d.ts +2 -0
- package/dist/components/navigation-list/navigation-list.visual.test.d.ts.map +1 -0
- package/dist/components/paginator/paginator.visual.test.d.ts +2 -0
- package/dist/components/paginator/paginator.visual.test.d.ts.map +1 -0
- package/dist/components/quantity-button/quantity-button.composition.d.ts.map +1 -1
- package/dist/components/quantity-button/quantity-button.visual.test.d.ts +2 -0
- package/dist/components/quantity-button/quantity-button.visual.test.d.ts.map +1 -0
- package/dist/components/radio/radio.visual.test.d.ts +2 -0
- package/dist/components/radio/radio.visual.test.d.ts.map +1 -0
- package/dist/components/radio-group/radio-group.visual.test.d.ts +2 -0
- package/dist/components/radio-group/radio-group.visual.test.d.ts.map +1 -0
- package/dist/components/segmented-control/segmented-control.visual.test.d.ts +2 -0
- package/dist/components/segmented-control/segmented-control.visual.test.d.ts.map +1 -0
- package/dist/components/select/select.visual.test.d.ts +2 -0
- package/dist/components/select/select.visual.test.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.visual.test.d.ts +2 -0
- package/dist/components/skeleton/skeleton.visual.test.d.ts.map +1 -0
- package/dist/components/stack/stack.visual.test.d.ts +2 -0
- package/dist/components/stack/stack.visual.test.d.ts.map +1 -0
- package/dist/components/stepper/stepper.visual.test.d.ts +2 -0
- package/dist/components/stepper/stepper.visual.test.d.ts.map +1 -0
- package/dist/components/switch/switch.visual.test.d.ts +2 -0
- package/dist/components/switch/switch.visual.test.d.ts.map +1 -0
- package/dist/components/table/table.visual.test.d.ts +2 -0
- package/dist/components/table/table.visual.test.d.ts.map +1 -0
- package/dist/components/tabs/tabs.composition.d.ts.map +1 -1
- package/dist/components/tabs/tabs.visual.test.d.ts +2 -0
- package/dist/components/tabs/tabs.visual.test.d.ts.map +1 -0
- package/dist/components/tag/tag.visual.test.d.ts +2 -0
- package/dist/components/tag/tag.visual.test.d.ts.map +1 -0
- package/dist/components/text/text.visual.test.d.ts +2 -0
- package/dist/components/text/text.visual.test.d.ts.map +1 -0
- package/dist/components/textarea/textarea.visual.test.d.ts +2 -0
- package/dist/components/textarea/textarea.visual.test.d.ts.map +1 -0
- package/dist/components/toast/toast.visual.test.d.ts +2 -0
- package/dist/components/toast/toast.visual.test.d.ts.map +1 -0
- package/dist/components/toggle-button/toggle-button.visual.test.d.ts +2 -0
- package/dist/components/toggle-button/toggle-button.visual.test.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.composition.d.ts +4 -1
- package/dist/components/tooltip/tooltip.composition.d.ts.map +1 -1
- package/dist/components/tooltip/tooltip.visual.test.d.ts +2 -0
- package/dist/components/tooltip/tooltip.visual.test.d.ts.map +1 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +123 -120
- package/dist/test-utils/create-visual-tests.d.ts +21 -0
- package/dist/test-utils/create-visual-tests.d.ts.map +1 -0
- package/dist/test-utils/render-for-visual-test.d.ts +8 -0
- package/dist/test-utils/render-for-visual-test.d.ts.map +1 -0
- package/package.json +16 -8
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { evaluate as Y, getSide as
|
|
2
|
-
function X(
|
|
1
|
+
import { evaluate as Y, getSide as F, getSideAxis as S, getOppositePlacement as z, getExpandedPlacements as G, getOppositeAxisPlacements as H, getAlignmentSides as J, getAlignmentAxis as K, getAlignment as N, getPaddingObject as Q, rectToClientRect as M, getAxisLength as U } from "../../utils/dist/floating-ui.utils.js";
|
|
2
|
+
function X(c, l, u) {
|
|
3
3
|
let {
|
|
4
4
|
reference: e,
|
|
5
5
|
floating: a
|
|
6
|
-
} =
|
|
7
|
-
const t =
|
|
6
|
+
} = c;
|
|
7
|
+
const t = S(l), o = K(l), n = U(o), m = F(l), d = t === "y", r = e.x + e.width / 2 - a.width / 2, s = e.y + e.height / 2 - a.height / 2, f = e[n] / 2 - a[n] / 2;
|
|
8
8
|
let i;
|
|
9
|
-
switch (
|
|
9
|
+
switch (m) {
|
|
10
10
|
case "top":
|
|
11
11
|
i = {
|
|
12
|
-
x:
|
|
12
|
+
x: r,
|
|
13
13
|
y: e.y - a.height
|
|
14
14
|
};
|
|
15
15
|
break;
|
|
16
16
|
case "bottom":
|
|
17
17
|
i = {
|
|
18
|
-
x:
|
|
18
|
+
x: r,
|
|
19
19
|
y: e.y + e.height
|
|
20
20
|
};
|
|
21
21
|
break;
|
|
@@ -37,126 +37,129 @@ function X(r, l, u) {
|
|
|
37
37
|
y: e.y
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
switch (
|
|
40
|
+
switch (N(l)) {
|
|
41
41
|
case "start":
|
|
42
|
-
i[o] -=
|
|
42
|
+
i[o] -= f * (u && d ? -1 : 1);
|
|
43
43
|
break;
|
|
44
44
|
case "end":
|
|
45
|
-
i[o] +=
|
|
45
|
+
i[o] += f * (u && d ? -1 : 1);
|
|
46
46
|
break;
|
|
47
47
|
}
|
|
48
48
|
return i;
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
async function W(c, l) {
|
|
51
|
+
var u;
|
|
52
|
+
l === void 0 && (l = {});
|
|
53
|
+
const {
|
|
54
|
+
x: e,
|
|
55
|
+
y: a,
|
|
56
|
+
platform: t,
|
|
57
|
+
rects: o,
|
|
58
|
+
elements: n,
|
|
59
|
+
strategy: m
|
|
60
|
+
} = c, {
|
|
61
|
+
boundary: d = "clippingAncestors",
|
|
62
|
+
rootBoundary: r = "viewport",
|
|
63
|
+
elementContext: s = "floating",
|
|
64
|
+
altBoundary: f = !1,
|
|
65
|
+
padding: i = 0
|
|
66
|
+
} = Y(l, c), w = Q(i), p = n[f ? s === "floating" ? "reference" : "floating" : s], h = M(await t.getClippingRect({
|
|
67
|
+
element: (u = await (t.isElement == null ? void 0 : t.isElement(p))) == null || u ? p : p.contextElement || await (t.getDocumentElement == null ? void 0 : t.getDocumentElement(n.floating)),
|
|
68
|
+
boundary: d,
|
|
69
|
+
rootBoundary: r,
|
|
70
|
+
strategy: m
|
|
71
|
+
})), b = s === "floating" ? {
|
|
72
|
+
x: e,
|
|
73
|
+
y: a,
|
|
74
|
+
width: o.floating.width,
|
|
75
|
+
height: o.floating.height
|
|
76
|
+
} : o.reference, A = await (t.getOffsetParent == null ? void 0 : t.getOffsetParent(n.floating)), x = await (t.isElement == null ? void 0 : t.isElement(A)) ? await (t.getScale == null ? void 0 : t.getScale(A)) || {
|
|
77
|
+
x: 1,
|
|
78
|
+
y: 1
|
|
79
|
+
} : {
|
|
80
|
+
x: 1,
|
|
81
|
+
y: 1
|
|
82
|
+
}, y = M(t.convertOffsetParentRelativeRectToViewportRelativeRect ? await t.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
83
|
+
elements: n,
|
|
84
|
+
rect: b,
|
|
85
|
+
offsetParent: A,
|
|
86
|
+
strategy: m
|
|
87
|
+
}) : b);
|
|
88
|
+
return {
|
|
89
|
+
top: (h.top - y.top + w.top) / x.y,
|
|
90
|
+
bottom: (y.bottom - h.bottom + w.bottom) / x.y,
|
|
91
|
+
left: (h.left - y.left + w.left) / x.x,
|
|
92
|
+
right: (y.right - h.right + w.right) / x.x
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const $ = async (c, l, u) => {
|
|
51
96
|
const {
|
|
52
97
|
placement: e = "bottom",
|
|
53
98
|
strategy: a = "absolute",
|
|
54
99
|
middleware: t = [],
|
|
55
100
|
platform: o
|
|
56
|
-
} = u, n = t.filter(Boolean),
|
|
101
|
+
} = u, n = t.filter(Boolean), m = await (o.isRTL == null ? void 0 : o.isRTL(l));
|
|
57
102
|
let d = await o.getElementRects({
|
|
58
|
-
reference:
|
|
103
|
+
reference: c,
|
|
59
104
|
floating: l,
|
|
60
105
|
strategy: a
|
|
61
106
|
}), {
|
|
62
|
-
x:
|
|
107
|
+
x: r,
|
|
63
108
|
y: s
|
|
64
|
-
} = X(d, e,
|
|
65
|
-
for (let
|
|
109
|
+
} = X(d, e, m), f = e, i = {}, w = 0;
|
|
110
|
+
for (let p = 0; p < n.length; p++) {
|
|
111
|
+
var O;
|
|
66
112
|
const {
|
|
67
|
-
name:
|
|
113
|
+
name: h,
|
|
68
114
|
fn: b
|
|
69
|
-
} = n[
|
|
70
|
-
x,
|
|
71
|
-
y:
|
|
72
|
-
data:
|
|
73
|
-
reset:
|
|
115
|
+
} = n[p], {
|
|
116
|
+
x: A,
|
|
117
|
+
y: x,
|
|
118
|
+
data: y,
|
|
119
|
+
reset: v
|
|
74
120
|
} = await b({
|
|
75
|
-
x:
|
|
121
|
+
x: r,
|
|
76
122
|
y: s,
|
|
77
123
|
initialPlacement: e,
|
|
78
|
-
placement:
|
|
124
|
+
placement: f,
|
|
79
125
|
strategy: a,
|
|
80
126
|
middlewareData: i,
|
|
81
127
|
rects: d,
|
|
82
|
-
platform:
|
|
128
|
+
platform: {
|
|
129
|
+
...o,
|
|
130
|
+
detectOverflow: (O = o.detectOverflow) != null ? O : W
|
|
131
|
+
},
|
|
83
132
|
elements: {
|
|
84
|
-
reference:
|
|
133
|
+
reference: c,
|
|
85
134
|
floating: l
|
|
86
135
|
}
|
|
87
136
|
});
|
|
88
|
-
|
|
137
|
+
r = A ?? r, s = x ?? s, i = {
|
|
89
138
|
...i,
|
|
90
|
-
[
|
|
91
|
-
...i[
|
|
92
|
-
...
|
|
139
|
+
[h]: {
|
|
140
|
+
...i[h],
|
|
141
|
+
...y
|
|
93
142
|
}
|
|
94
|
-
},
|
|
95
|
-
reference:
|
|
143
|
+
}, v && w <= 50 && (w++, typeof v == "object" && (v.placement && (f = v.placement), v.rects && (d = v.rects === !0 ? await o.getElementRects({
|
|
144
|
+
reference: c,
|
|
96
145
|
floating: l,
|
|
97
146
|
strategy: a
|
|
98
|
-
}) :
|
|
99
|
-
x:
|
|
147
|
+
}) : v.rects), {
|
|
148
|
+
x: r,
|
|
100
149
|
y: s
|
|
101
|
-
} = X(d,
|
|
150
|
+
} = X(d, f, m)), p = -1);
|
|
102
151
|
}
|
|
103
152
|
return {
|
|
104
|
-
x:
|
|
153
|
+
x: r,
|
|
105
154
|
y: s,
|
|
106
|
-
placement:
|
|
155
|
+
placement: f,
|
|
107
156
|
strategy: a,
|
|
108
157
|
middlewareData: i
|
|
109
158
|
};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
var u;
|
|
113
|
-
l === void 0 && (l = {});
|
|
114
|
-
const {
|
|
115
|
-
x: e,
|
|
116
|
-
y: a,
|
|
117
|
-
platform: t,
|
|
118
|
-
rects: o,
|
|
119
|
-
elements: n,
|
|
120
|
-
strategy: p
|
|
121
|
-
} = r, {
|
|
122
|
-
boundary: d = "clippingAncestors",
|
|
123
|
-
rootBoundary: f = "viewport",
|
|
124
|
-
elementContext: s = "floating",
|
|
125
|
-
altBoundary: m = !1,
|
|
126
|
-
padding: i = 0
|
|
127
|
-
} = Y(l, r), w = N(i), y = n[m ? s === "floating" ? "reference" : "floating" : s], b = M(await t.getClippingRect({
|
|
128
|
-
element: (u = await (t.isElement == null ? void 0 : t.isElement(y))) == null || u ? y : y.contextElement || await (t.getDocumentElement == null ? void 0 : t.getDocumentElement(n.floating)),
|
|
129
|
-
boundary: d,
|
|
130
|
-
rootBoundary: f,
|
|
131
|
-
strategy: p
|
|
132
|
-
})), x = s === "floating" ? {
|
|
133
|
-
x: e,
|
|
134
|
-
y: a,
|
|
135
|
-
width: o.floating.width,
|
|
136
|
-
height: o.floating.height
|
|
137
|
-
} : o.reference, A = await (t.getOffsetParent == null ? void 0 : t.getOffsetParent(n.floating)), v = await (t.isElement == null ? void 0 : t.isElement(A)) ? await (t.getScale == null ? void 0 : t.getScale(A)) || {
|
|
138
|
-
x: 1,
|
|
139
|
-
y: 1
|
|
140
|
-
} : {
|
|
141
|
-
x: 1,
|
|
142
|
-
y: 1
|
|
143
|
-
}, c = M(t.convertOffsetParentRelativeRectToViewportRelativeRect ? await t.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
144
|
-
elements: n,
|
|
145
|
-
rect: x,
|
|
146
|
-
offsetParent: A,
|
|
147
|
-
strategy: p
|
|
148
|
-
}) : x);
|
|
149
|
-
return {
|
|
150
|
-
top: (b.top - c.top + w.top) / v.y,
|
|
151
|
-
bottom: (c.bottom - b.bottom + w.bottom) / v.y,
|
|
152
|
-
left: (b.left - c.left + w.left) / v.x,
|
|
153
|
-
right: (c.right - b.right + w.right) / v.x
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
const _ = function(r) {
|
|
157
|
-
return r === void 0 && (r = {}), {
|
|
159
|
+
}, _ = function(c) {
|
|
160
|
+
return c === void 0 && (c = {}), {
|
|
158
161
|
name: "flip",
|
|
159
|
-
options:
|
|
162
|
+
options: c,
|
|
160
163
|
async fn(l) {
|
|
161
164
|
var u, e;
|
|
162
165
|
const {
|
|
@@ -164,70 +167,70 @@ const _ = function(r) {
|
|
|
164
167
|
middlewareData: t,
|
|
165
168
|
rects: o,
|
|
166
169
|
initialPlacement: n,
|
|
167
|
-
platform:
|
|
170
|
+
platform: m,
|
|
168
171
|
elements: d
|
|
169
172
|
} = l, {
|
|
170
|
-
mainAxis:
|
|
173
|
+
mainAxis: r = !0,
|
|
171
174
|
crossAxis: s = !0,
|
|
172
|
-
fallbackPlacements:
|
|
175
|
+
fallbackPlacements: f,
|
|
173
176
|
fallbackStrategy: i = "bestFit",
|
|
174
177
|
fallbackAxisSideDirection: w = "none",
|
|
175
|
-
flipAlignment:
|
|
176
|
-
...
|
|
177
|
-
} = Y(
|
|
178
|
+
flipAlignment: O = !0,
|
|
179
|
+
...p
|
|
180
|
+
} = Y(c, l);
|
|
178
181
|
if ((u = t.arrow) != null && u.alignmentOffset)
|
|
179
182
|
return {};
|
|
180
|
-
const
|
|
181
|
-
!
|
|
182
|
-
const I = [n, ...
|
|
183
|
-
let
|
|
184
|
-
if (
|
|
185
|
-
const R =
|
|
186
|
-
|
|
183
|
+
const h = F(a), b = S(n), A = F(n) === n, x = await (m.isRTL == null ? void 0 : m.isRTL(d.floating)), y = f || (A || !O ? [z(n)] : G(n)), v = w !== "none";
|
|
184
|
+
!f && v && y.push(...H(n, O, w, x));
|
|
185
|
+
const I = [n, ...y], D = await m.detectOverflow(l, p), T = [];
|
|
186
|
+
let C = ((e = t.flip) == null ? void 0 : e.overflows) || [];
|
|
187
|
+
if (r && T.push(D[h]), s) {
|
|
188
|
+
const R = J(a, o, x);
|
|
189
|
+
T.push(D[R[0]], D[R[1]]);
|
|
187
190
|
}
|
|
188
|
-
if (
|
|
191
|
+
if (C = [...C, {
|
|
189
192
|
placement: a,
|
|
190
|
-
overflows:
|
|
191
|
-
}], !
|
|
193
|
+
overflows: T
|
|
194
|
+
}], !T.every((R) => R <= 0)) {
|
|
192
195
|
var B, j;
|
|
193
|
-
const R = (((B = t.flip) == null ? void 0 : B.index) || 0) + 1,
|
|
194
|
-
if (
|
|
196
|
+
const R = (((B = t.flip) == null ? void 0 : B.index) || 0) + 1, L = I[R];
|
|
197
|
+
if (L && (!(s === "alignment" ? b !== S(L) : !1) || // We leave the current main axis only if every placement on that axis
|
|
195
198
|
// overflows the main axis.
|
|
196
|
-
|
|
199
|
+
C.every((g) => S(g.placement) === b ? g.overflows[0] > 0 : !0)))
|
|
197
200
|
return {
|
|
198
201
|
data: {
|
|
199
202
|
index: R,
|
|
200
|
-
overflows:
|
|
203
|
+
overflows: C
|
|
201
204
|
},
|
|
202
205
|
reset: {
|
|
203
|
-
placement:
|
|
206
|
+
placement: L
|
|
204
207
|
}
|
|
205
208
|
};
|
|
206
|
-
let
|
|
207
|
-
if (!
|
|
209
|
+
let E = (j = C.filter((k) => k.overflows[0] <= 0).sort((k, g) => k.overflows[1] - g.overflows[1])[0]) == null ? void 0 : j.placement;
|
|
210
|
+
if (!E)
|
|
208
211
|
switch (i) {
|
|
209
212
|
case "bestFit": {
|
|
210
213
|
var V;
|
|
211
|
-
const k = (V =
|
|
212
|
-
if (
|
|
213
|
-
const P =
|
|
214
|
-
return P ===
|
|
214
|
+
const k = (V = C.filter((g) => {
|
|
215
|
+
if (v) {
|
|
216
|
+
const P = S(g.placement);
|
|
217
|
+
return P === b || // Create a bias to the `y` side axis due to horizontal
|
|
215
218
|
// reading directions favoring greater width.
|
|
216
219
|
P === "y";
|
|
217
220
|
}
|
|
218
221
|
return !0;
|
|
219
|
-
}).map((g) => [g.placement, g.overflows.filter((P) => P > 0).reduce((P,
|
|
220
|
-
k && (
|
|
222
|
+
}).map((g) => [g.placement, g.overflows.filter((P) => P > 0).reduce((P, q) => P + q, 0)]).sort((g, P) => g[1] - P[1])[0]) == null ? void 0 : V[0];
|
|
223
|
+
k && (E = k);
|
|
221
224
|
break;
|
|
222
225
|
}
|
|
223
226
|
case "initialPlacement":
|
|
224
|
-
|
|
227
|
+
E = n;
|
|
225
228
|
break;
|
|
226
229
|
}
|
|
227
|
-
if (a !==
|
|
230
|
+
if (a !== E)
|
|
228
231
|
return {
|
|
229
232
|
reset: {
|
|
230
|
-
placement:
|
|
233
|
+
placement: E
|
|
231
234
|
}
|
|
232
235
|
};
|
|
233
236
|
}
|
|
@@ -236,8 +239,8 @@ const _ = function(r) {
|
|
|
236
239
|
};
|
|
237
240
|
};
|
|
238
241
|
export {
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
$ as computePosition,
|
|
243
|
+
W as detectOverflow,
|
|
241
244
|
_ as flip,
|
|
242
245
|
M as rectToClientRect
|
|
243
246
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ScreenshotMatcherOptions } from '@vitest/browser/context';
|
|
2
|
+
import { ComponentType } from 'react';
|
|
3
|
+
import { VisualTestRenderOptions } from './render-for-visual-test.js';
|
|
4
|
+
type VisualTestOptions = (VisualTestRenderOptions & ScreenshotMatcherOptions<"pixelmatch">) | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Creates visual tests for all compositions of a component.
|
|
7
|
+
* @param componentName The name of the component.
|
|
8
|
+
* @param compositions A record of composition names to React components.
|
|
9
|
+
* @example
|
|
10
|
+
* import * as Compositions from "./button.composition";
|
|
11
|
+
* createVisualTests("Button", Compositions);
|
|
12
|
+
*/
|
|
13
|
+
export declare function createVisualTests(componentName: string, compositions: Record<string, ComponentType>, options?: VisualTestOptions): void;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a visual test that renders the given component and compares it to a screenshot.
|
|
16
|
+
* @param Component The React component to render.
|
|
17
|
+
* @param options Options for the visual test (e.g., width, height).
|
|
18
|
+
*/
|
|
19
|
+
export declare function createVisualTest(Component: ComponentType, options?: VisualTestOptions): void;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=create-visual-tests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-visual-tests.d.ts","sourceRoot":"","sources":["../../lib/test-utils/create-visual-tests.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAGN,KAAK,uBAAuB,EAC5B,MAAM,0BAA0B,CAAC;AAElC,KAAK,iBAAiB,GAAG,CAAC,uBAAuB,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,CAAC;AAExG;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3C,OAAO,CAAC,EAAE,iBAAiB,QAc3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,QAUrF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
export declare const VISUAL_TEST_CONTAINER_ID = "visual-root";
|
|
3
|
+
export type VisualTestRenderOptions = {
|
|
4
|
+
width?: CSSProperties["width"];
|
|
5
|
+
height?: CSSProperties["height"];
|
|
6
|
+
};
|
|
7
|
+
export declare function renderForVisualTest(ui: ReactElement, options?: VisualTestRenderOptions): import('@testing-library/react').RenderResult<typeof import("@testing-library/dom/types/queries"), HTMLElement, HTMLElement>;
|
|
8
|
+
//# sourceMappingURL=render-for-visual-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-for-visual-test.d.ts","sourceRoot":"","sources":["../../lib/test-utils/render-for-visual-test.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzD,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAEtD,MAAM,MAAM,uBAAuB,GAAG;IACrC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,uBAAuB,gIAiBtF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caspeco/casper-ui-library",
|
|
3
|
-
"version": "8.0
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"prettier": "@caspeco/prettier-config",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
"build": "vite build --mode prod",
|
|
21
21
|
"tsc": "tsc --project tsconfig.app.json",
|
|
22
22
|
"test": "vitest run",
|
|
23
|
+
"test:visual:server:start": "docker compose -f docker-compose.visual.yml up -d --wait playwright-server",
|
|
24
|
+
"test:visual:server:stop": "docker compose -f docker-compose.visual.yml down",
|
|
25
|
+
"test:visual": "node ./scripts/run-visual-tests.js",
|
|
26
|
+
"test:visual:ui": "vite preview --outDir html",
|
|
27
|
+
"test:visual:update": "rimraf __screenshots__ && npm run test:visual:server:start && (vitest --config vitest.visual.config.ts --run --update || true) && npm run test:visual:server:stop",
|
|
23
28
|
"prettier": "prettier --check .",
|
|
24
29
|
"prettier:fix": "prettier --write .",
|
|
25
30
|
"check:types": "attw --pack . --ignore-rules=cjs-resolves-to-esm",
|
|
@@ -32,25 +37,28 @@
|
|
|
32
37
|
"@caspeco/prettier-config": "^1.0.7",
|
|
33
38
|
"@eslint/js": "^9.39.2",
|
|
34
39
|
"@testing-library/jest-dom": "^6.9.1",
|
|
35
|
-
"@testing-library/react": "^16.3.
|
|
40
|
+
"@testing-library/react": "^16.3.2",
|
|
36
41
|
"@testing-library/user-event": "^14.6.1",
|
|
37
42
|
"@types/jest": "^30.0.0",
|
|
38
43
|
"@types/node": "^24.10.9",
|
|
39
44
|
"@types/react": "^18.3.12",
|
|
40
45
|
"@types/react-dom": "^18.3.1",
|
|
41
46
|
"@vitejs/plugin-react-swc": "^4.2.2",
|
|
47
|
+
"@vitest/browser-playwright": "^4.0.18",
|
|
48
|
+
"@vitest/ui": "^4.0.18",
|
|
42
49
|
"eslint": "^9.39.2",
|
|
43
50
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
44
|
-
"eslint-plugin-react-refresh": "^0.
|
|
45
|
-
"globals": "^17.
|
|
51
|
+
"eslint-plugin-react-refresh": "^0.5.0",
|
|
52
|
+
"globals": "^17.3.0",
|
|
46
53
|
"jsdom": "^27.4.0",
|
|
54
|
+
"rimraf": "^6.1.2",
|
|
47
55
|
"tsc-alias": "^1.8.16",
|
|
48
56
|
"typescript": "~5.9.3",
|
|
49
|
-
"typescript-eslint": "^8.
|
|
57
|
+
"typescript-eslint": "^8.54.0",
|
|
50
58
|
"vite": "^7.3.1",
|
|
51
59
|
"vite-plugin-dts": "^4.5.4",
|
|
52
|
-
"vite-tsconfig-paths": "^6.0.
|
|
53
|
-
"vitest": "^4.0.
|
|
60
|
+
"vite-tsconfig-paths": "^6.0.5",
|
|
61
|
+
"vitest": "^4.0.18"
|
|
54
62
|
},
|
|
55
63
|
"peerDependencies": {
|
|
56
64
|
"@chakra-ui/react": "^2.8.2",
|
|
@@ -60,7 +68,7 @@
|
|
|
60
68
|
},
|
|
61
69
|
"dependencies": {
|
|
62
70
|
"@chakra-ui/anatomy": "^2.3.4",
|
|
63
|
-
"@floating-ui/dom": "^1.7.
|
|
71
|
+
"@floating-ui/dom": "^1.7.5",
|
|
64
72
|
"@tanstack/react-table": "^8.21.3",
|
|
65
73
|
"@tanstack/react-virtual": "^3.13.18",
|
|
66
74
|
"csstype": "^3.2.3",
|