@plastic-js/tsumiki 0.1.22 → 0.1.24
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 +838 -65
- package/dist/components/Accordion.js +93 -4
- package/dist/components/Avatar.js +96 -4
- package/dist/components/BottomSheet.js +131 -0
- package/dist/components/Button.js +194 -0
- package/dist/components/CardNumberInput.js +28 -44
- package/dist/components/Carousel.js +71 -5
- package/dist/components/Checkbox.js +178 -4
- package/dist/components/Clipboard.js +135 -5
- package/dist/components/CloseButton.js +97 -0
- package/dist/components/Collapsible.js +22 -4
- package/dist/components/ColorPicker.js +327 -4
- package/dist/components/Combobox.js +86 -13
- package/dist/components/ConfirmDialog.js +174 -19
- package/dist/components/DateInput.js +437 -5
- package/dist/components/{DatePickerMobile/wheel.js → DateWheel.js} +1 -3
- package/dist/components/Dialog.js +214 -110
- package/dist/components/Drawer.js +169 -4
- package/dist/components/Field.js +121 -5
- package/dist/components/Fieldset.js +64 -5
- package/dist/components/FileUpload.js +181 -4
- package/dist/components/FocusTrap.js +0 -2
- package/dist/components/Icon.js +32 -17
- package/dist/components/Input.js +211 -0
- package/dist/components/Listbox.js +47 -4
- package/dist/components/Menu.js +99 -4
- package/dist/components/MoneyInput.js +33 -85
- package/dist/components/NumberInput.js +117 -4
- package/dist/components/Pagination.js +91 -5
- package/dist/components/Popover.js +123 -4
- package/dist/components/Portal.js +0 -2
- package/dist/components/Presence.js +0 -2
- package/dist/components/Progress.js +107 -4
- package/dist/components/RadioGroup.js +104 -4
- package/dist/components/RatingGroup.js +75 -4
- package/dist/components/SearchInput.js +60 -55
- package/dist/components/Select.js +428 -5
- package/dist/components/SelectPc.js +239 -0
- package/dist/components/SignaturePad.js +77 -4
- package/dist/components/Skeleton.js +2 -4
- package/dist/components/Slider.js +112 -4
- package/dist/components/Spinner.js +41 -0
- package/dist/components/Splitter.js +51 -4
- package/dist/components/Steps.js +259 -4
- package/dist/components/SwipeReveal.js +2 -4
- package/dist/components/Switch.js +147 -4
- package/dist/components/Tabs.js +80 -4
- package/dist/components/TagsInput.js +128 -4
- package/dist/components/Toast.js +174 -4
- package/dist/components/Toggle.js +39 -4
- package/dist/components/ToggleGroup.js +103 -4
- package/dist/components/Tour.js +63 -4
- package/dist/components/TreeView.js +113 -4
- package/dist/index.js +44 -45
- package/dist/tsumiki.css +1 -0
- package/docs/api.md +670 -0
- package/docs/component-api-pattern.md +362 -0
- package/package.json +16 -6
- package/src/styles/color.css +112 -0
- package/src/styles/index.css +1 -0
- package/src/styles/radius.css +27 -0
- package/src/styles/reset.css +111 -0
- package/src/styles/shadow.css +5 -0
- package/src/styles/sizing.css +59 -0
- package/src/styles/spacing.css +9 -0
- package/src/styles/theme.css +38 -0
- package/src/styles/tokens.css +22 -0
- package/src/styles/transition.css +5 -0
- package/src/styles/typography.css +8 -0
- package/dist/components/Accordion.js.map +0 -1
- package/dist/components/Avatar.js.map +0 -1
- package/dist/components/CardNumberInput.js.map +0 -1
- package/dist/components/Carousel.js.map +0 -1
- package/dist/components/Checkbox.js.map +0 -1
- package/dist/components/Clipboard.js.map +0 -1
- package/dist/components/Collapsible.js.map +0 -1
- package/dist/components/ColorPicker.js.map +0 -1
- package/dist/components/Combobox.js.map +0 -1
- package/dist/components/ConfirmDialog.js.map +0 -1
- package/dist/components/DateInput.js.map +0 -1
- package/dist/components/DatePicker.js +0 -7
- package/dist/components/DatePicker.js.map +0 -1
- package/dist/components/DatePickerMobile/index.js +0 -479
- package/dist/components/DatePickerMobile/index.js.map +0 -1
- package/dist/components/DatePickerMobile/wheel.js.map +0 -1
- package/dist/components/Dialog.js.map +0 -1
- package/dist/components/Drawer.js.map +0 -1
- package/dist/components/Field.js.map +0 -1
- package/dist/components/Fieldset.js.map +0 -1
- package/dist/components/FileUpload.js.map +0 -1
- package/dist/components/FilterableSelect.js +0 -210
- package/dist/components/FilterableSelect.js.map +0 -1
- package/dist/components/FilterableSelectMobile.js +0 -167
- package/dist/components/FilterableSelectMobile.js.map +0 -1
- package/dist/components/FocusTrap.js.map +0 -1
- package/dist/components/HoverCard.js +0 -7
- package/dist/components/HoverCard.js.map +0 -1
- package/dist/components/Icon.js.map +0 -1
- package/dist/components/Listbox.js.map +0 -1
- package/dist/components/Menu.js.map +0 -1
- package/dist/components/MoneyInput.js.map +0 -1
- package/dist/components/NumberInput.js.map +0 -1
- package/dist/components/Pagination.js.map +0 -1
- package/dist/components/Popover.js.map +0 -1
- package/dist/components/Portal.js.map +0 -1
- package/dist/components/Presence.js.map +0 -1
- package/dist/components/Progress.js.map +0 -1
- package/dist/components/RadioGroup.js.map +0 -1
- package/dist/components/RatingGroup.js.map +0 -1
- package/dist/components/SearchInput.js.map +0 -1
- package/dist/components/Select.js.map +0 -1
- package/dist/components/SelectMobile/anatomy.js +0 -10
- package/dist/components/SelectMobile/anatomy.js.map +0 -1
- package/dist/components/SelectMobile/index.js +0 -310
- package/dist/components/SelectMobile/index.js.map +0 -1
- package/dist/components/SignaturePad.js.map +0 -1
- package/dist/components/Skeleton.js.map +0 -1
- package/dist/components/Slider.js.map +0 -1
- package/dist/components/Splitter.js.map +0 -1
- package/dist/components/Steps.js.map +0 -1
- package/dist/components/SwipeReveal.js.map +0 -1
- package/dist/components/Switch.js.map +0 -1
- package/dist/components/Tabs.js.map +0 -1
- package/dist/components/TagsInput.js.map +0 -1
- package/dist/components/Toast.js.map +0 -1
- package/dist/components/Toggle.js.map +0 -1
- package/dist/components/ToggleGroup.js.map +0 -1
- package/dist/components/Tooltip.js +0 -7
- package/dist/components/Tooltip.js.map +0 -1
- package/dist/components/Tour.js.map +0 -1
- package/dist/components/TreeView.js.map +0 -1
- package/dist/node_modules/framesync/dist/es/create-render-step.js +0 -54
- package/dist/node_modules/framesync/dist/es/create-render-step.js.map +0 -1
- package/dist/node_modules/framesync/dist/es/index.js +0 -61
- package/dist/node_modules/framesync/dist/es/index.js.map +0 -1
- package/dist/node_modules/framesync/dist/es/on-next-frame.js +0 -8
- package/dist/node_modules/framesync/dist/es/on-next-frame.js.map +0 -1
- package/dist/node_modules/hey-listen/dist/hey-listen.es.js +0 -15
- package/dist/node_modules/hey-listen/dist/hey-listen.es.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/generators/decay.js +0 -24
- package/dist/node_modules/popmotion/dist/es/animations/generators/decay.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/generators/keyframes.js +0 -40
- package/dist/node_modules/popmotion/dist/es/animations/generators/keyframes.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/generators/spring.js +0 -96
- package/dist/node_modules/popmotion/dist/es/animations/generators/spring.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/index.js +0 -94
- package/dist/node_modules/popmotion/dist/es/animations/index.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/inertia.js +0 -74
- package/dist/node_modules/popmotion/dist/es/animations/inertia.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.js +0 -21
- package/dist/node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/utils/elapsed.js +0 -14
- package/dist/node_modules/popmotion/dist/es/animations/utils/elapsed.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/animations/utils/find-spring.js +0 -68
- package/dist/node_modules/popmotion/dist/es/animations/utils/find-spring.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/easing/index.js +0 -28
- package/dist/node_modules/popmotion/dist/es/easing/index.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/easing/utils.js +0 -13
- package/dist/node_modules/popmotion/dist/es/easing/utils.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/clamp.js +0 -6
- package/dist/node_modules/popmotion/dist/es/utils/clamp.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/hsla-to-rgba.js +0 -35
- package/dist/node_modules/popmotion/dist/es/utils/hsla-to-rgba.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/inc.js +0 -6
- package/dist/node_modules/popmotion/dist/es/utils/inc.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/interpolate.js +0 -69
- package/dist/node_modules/popmotion/dist/es/utils/interpolate.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/mix-color.js +0 -45
- package/dist/node_modules/popmotion/dist/es/utils/mix-color.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/mix-complex.js +0 -61
- package/dist/node_modules/popmotion/dist/es/utils/mix-complex.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/mix.js +0 -6
- package/dist/node_modules/popmotion/dist/es/utils/mix.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/pipe.js +0 -7
- package/dist/node_modules/popmotion/dist/es/utils/pipe.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/progress.js +0 -9
- package/dist/node_modules/popmotion/dist/es/utils/progress.js.map +0 -1
- package/dist/node_modules/popmotion/dist/es/utils/velocity-per-second.js +0 -8
- package/dist/node_modules/popmotion/dist/es/utils/velocity-per-second.js.map +0 -1
- package/dist/node_modules/popmotion/node_modules/tslib/tslib.es6.js +0 -13
- package/dist/node_modules/popmotion/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/color/hex.js +0 -39
- package/dist/node_modules/style-value-types/dist/es/color/hex.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/color/hsla.js +0 -16
- package/dist/node_modules/style-value-types/dist/es/color/hsla.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/color/index.js +0 -20
- package/dist/node_modules/style-value-types/dist/es/color/index.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/color/rgba.js +0 -15
- package/dist/node_modules/style-value-types/dist/es/color/rgba.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/color/utils.js +0 -19
- package/dist/node_modules/style-value-types/dist/es/color/utils.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/complex/index.js +0 -58
- package/dist/node_modules/style-value-types/dist/es/complex/index.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/numbers/index.js +0 -13
- package/dist/node_modules/style-value-types/dist/es/numbers/index.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/numbers/units.js +0 -16
- package/dist/node_modules/style-value-types/dist/es/numbers/units.js.map +0 -1
- package/dist/node_modules/style-value-types/dist/es/utils.js +0 -13
- package/dist/node_modules/style-value-types/dist/es/utils.js.map +0 -1
|
@@ -1,7 +1,330 @@
|
|
|
1
|
+
import { insert, jsx, mergeProps, template } from "@plastic-js/plastic/jsx-runtime";
|
|
2
|
+
import { css } from "@emotion/css";
|
|
1
3
|
import { ColorPicker } from "@plastic-js/ark";
|
|
4
|
+
import { mergeProps as mergeProps$2, splitProps } from "@plastic-js/plastic";
|
|
2
5
|
//#region src/components/ColorPicker.jsx
|
|
3
|
-
var
|
|
6
|
+
var _tmpl = template("<div style=\"display:flex;align-items:center;gap:8px\"><!><!></div>");
|
|
7
|
+
var rootClass = css({
|
|
8
|
+
display: "flex",
|
|
9
|
+
flexDirection: "column",
|
|
10
|
+
gap: "var(--tsu-spacing-sm)",
|
|
11
|
+
width: "100%",
|
|
12
|
+
fontFamily: "inherit"
|
|
13
|
+
});
|
|
14
|
+
var sizeClasses = {
|
|
15
|
+
xs: css({
|
|
16
|
+
"--_cp-trigger-size": "var(--tsu-comp-secondary-height-xs)",
|
|
17
|
+
"--_cp-font-size": "var(--tsu-comp-font-size-xs)"
|
|
18
|
+
}),
|
|
19
|
+
sm: css({
|
|
20
|
+
"--_cp-trigger-size": "var(--tsu-comp-secondary-height-sm)",
|
|
21
|
+
"--_cp-font-size": "var(--tsu-comp-font-size-sm)"
|
|
22
|
+
}),
|
|
23
|
+
md: css({
|
|
24
|
+
"--_cp-trigger-size": "var(--tsu-comp-secondary-height-md)",
|
|
25
|
+
"--_cp-font-size": "var(--tsu-comp-font-size-md)"
|
|
26
|
+
}),
|
|
27
|
+
lg: css({
|
|
28
|
+
"--_cp-trigger-size": "var(--tsu-comp-secondary-height-lg)",
|
|
29
|
+
"--_cp-font-size": "var(--tsu-comp-font-size-lg)"
|
|
30
|
+
}),
|
|
31
|
+
xl: css({
|
|
32
|
+
"--_cp-trigger-size": "var(--tsu-comp-secondary-height-xl)",
|
|
33
|
+
"--_cp-font-size": "var(--tsu-comp-font-size-xl)"
|
|
34
|
+
})
|
|
35
|
+
};
|
|
36
|
+
var labelClass = css({
|
|
37
|
+
fontSize: "13px",
|
|
38
|
+
fontWeight: 600,
|
|
39
|
+
color: "var(--tsu-fg)"
|
|
40
|
+
});
|
|
41
|
+
var controlClass = css({
|
|
42
|
+
display: "flex",
|
|
43
|
+
alignItems: "center",
|
|
44
|
+
gap: "8px"
|
|
45
|
+
});
|
|
46
|
+
var triggerClass = css({
|
|
47
|
+
width: "var(--_cp-trigger-size, var(--tsu-comp-secondary-height-md))",
|
|
48
|
+
height: "var(--_cp-trigger-size, var(--tsu-comp-secondary-height-md))",
|
|
49
|
+
padding: "3px",
|
|
50
|
+
border: "1px solid var(--tsu-neutral-7)",
|
|
51
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
52
|
+
cursor: "pointer",
|
|
53
|
+
background: "transparent",
|
|
54
|
+
overflow: "hidden"
|
|
55
|
+
});
|
|
56
|
+
var valueSwatchClass = css({
|
|
57
|
+
width: "100%",
|
|
58
|
+
height: "100%",
|
|
59
|
+
borderRadius: "calc(var(--tsu-radius-l1-md) - 2px)"
|
|
60
|
+
});
|
|
61
|
+
var valueTextClass = css({
|
|
62
|
+
fontSize: "var(--_cp-font-size, var(--tsu-comp-font-size-md))",
|
|
63
|
+
fontWeight: 500,
|
|
64
|
+
color: "var(--tsu-fg)",
|
|
65
|
+
fontVariantNumeric: "tabular-nums"
|
|
66
|
+
});
|
|
67
|
+
var contentClass = css({
|
|
68
|
+
backgroundColor: "var(--tsu-bg)",
|
|
69
|
+
border: "1px solid var(--tsu-neutral-6)",
|
|
70
|
+
borderRadius: "var(--tsu-radius-l2-xl)",
|
|
71
|
+
boxShadow: "var(--tsu-shadow-lg)",
|
|
72
|
+
padding: "16px",
|
|
73
|
+
display: "flex",
|
|
74
|
+
flexDirection: "column",
|
|
75
|
+
gap: "12px",
|
|
76
|
+
width: "240px"
|
|
77
|
+
});
|
|
78
|
+
var areaClass = css({
|
|
79
|
+
position: "relative",
|
|
80
|
+
height: "140px",
|
|
81
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
82
|
+
overflow: "hidden"
|
|
83
|
+
});
|
|
84
|
+
var areaThumbClass = css({
|
|
85
|
+
width: "14px",
|
|
86
|
+
height: "14px",
|
|
87
|
+
borderRadius: "50%",
|
|
88
|
+
border: "2px solid #fff",
|
|
89
|
+
boxShadow: "0 1px 4px rgba(0,0,0,0.4)"
|
|
90
|
+
});
|
|
91
|
+
var sliderClass = css({
|
|
92
|
+
flex: 1,
|
|
93
|
+
position: "relative",
|
|
94
|
+
display: "flex",
|
|
95
|
+
alignItems: "center",
|
|
96
|
+
height: "16px"
|
|
97
|
+
});
|
|
98
|
+
var sliderTrackClass = css({
|
|
99
|
+
width: "100%",
|
|
100
|
+
height: "8px",
|
|
101
|
+
borderRadius: "999px",
|
|
102
|
+
overflow: "hidden"
|
|
103
|
+
});
|
|
104
|
+
var sliderThumbClass = css({
|
|
105
|
+
top: "50%",
|
|
106
|
+
transform: "translate(-50%, -50%)",
|
|
107
|
+
width: "16px",
|
|
108
|
+
height: "16px",
|
|
109
|
+
borderRadius: "50%",
|
|
110
|
+
border: "2px solid #fff",
|
|
111
|
+
boxShadow: "0 1px 4px rgba(0,0,0,0.35)",
|
|
112
|
+
cursor: "grab",
|
|
113
|
+
background: "transparent",
|
|
114
|
+
"&[data-dragging]": { cursor: "grabbing" }
|
|
115
|
+
});
|
|
116
|
+
var channelInputClass = css({
|
|
117
|
+
width: "52px",
|
|
118
|
+
fontSize: "12px",
|
|
119
|
+
fontFamily: "inherit",
|
|
120
|
+
fontVariantNumeric: "tabular-nums",
|
|
121
|
+
textAlign: "center",
|
|
122
|
+
border: "1px solid var(--tsu-neutral-7)",
|
|
123
|
+
borderRadius: "var(--tsu-radius-l1-sm)",
|
|
124
|
+
padding: "4px 6px",
|
|
125
|
+
background: "transparent",
|
|
126
|
+
color: "var(--tsu-fg)",
|
|
127
|
+
outline: "none"
|
|
128
|
+
});
|
|
129
|
+
var eyeDropperClass = css({
|
|
130
|
+
fontSize: "12px",
|
|
131
|
+
padding: "6px 10px",
|
|
132
|
+
border: "1px solid var(--tsu-neutral-7)",
|
|
133
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
134
|
+
cursor: "pointer",
|
|
135
|
+
background: "transparent",
|
|
136
|
+
color: "var(--tsu-neutral-11)",
|
|
137
|
+
fontFamily: "inherit"
|
|
138
|
+
});
|
|
139
|
+
var _Root = (props = {}) => {
|
|
140
|
+
const [local, rest] = splitProps(mergeProps$2({ size: "md" }, props), [
|
|
141
|
+
"size",
|
|
142
|
+
"className",
|
|
143
|
+
"children"
|
|
144
|
+
]);
|
|
145
|
+
return jsx(ColorPicker.Root, mergeProps(rest, {
|
|
146
|
+
get className() {
|
|
147
|
+
return [
|
|
148
|
+
rootClass,
|
|
149
|
+
sizeClasses[local.size],
|
|
150
|
+
local.className
|
|
151
|
+
].filter(Boolean).join(" ");
|
|
152
|
+
},
|
|
153
|
+
children: () => local.children
|
|
154
|
+
}));
|
|
155
|
+
};
|
|
156
|
+
var Label = (props = {}) => {
|
|
157
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
158
|
+
return jsx(ColorPicker.Label, mergeProps(rest, { get className() {
|
|
159
|
+
return [labelClass, local.className].filter(Boolean).join(" ");
|
|
160
|
+
} }));
|
|
161
|
+
};
|
|
162
|
+
var Control = (props = {}) => {
|
|
163
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
164
|
+
return jsx(ColorPicker.Control, mergeProps(rest, { get className() {
|
|
165
|
+
return [controlClass, local.className].filter(Boolean).join(" ");
|
|
166
|
+
} }));
|
|
167
|
+
};
|
|
168
|
+
var Trigger = (props = {}) => {
|
|
169
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
170
|
+
return jsx(ColorPicker.Trigger, mergeProps(rest, { get className() {
|
|
171
|
+
return [triggerClass, local.className].filter(Boolean).join(" ");
|
|
172
|
+
} }));
|
|
173
|
+
};
|
|
174
|
+
var Positioner = (props = {}) => {
|
|
175
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
176
|
+
return jsx(ColorPicker.Positioner, mergeProps(rest, {
|
|
177
|
+
get className() {
|
|
178
|
+
return local.className;
|
|
179
|
+
},
|
|
180
|
+
children: () => local.children
|
|
181
|
+
}));
|
|
182
|
+
};
|
|
183
|
+
var Content = (props = {}) => {
|
|
184
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
185
|
+
return jsx(ColorPicker.Content, mergeProps(rest, { get className() {
|
|
186
|
+
return [contentClass, local.className].filter(Boolean).join(" ");
|
|
187
|
+
} }));
|
|
188
|
+
};
|
|
189
|
+
var ValueSwatch = (props = {}) => {
|
|
190
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
191
|
+
return jsx(ColorPicker.ValueSwatch, mergeProps(rest, { get className() {
|
|
192
|
+
return [valueSwatchClass, local.className].filter(Boolean).join(" ");
|
|
193
|
+
} }));
|
|
194
|
+
};
|
|
195
|
+
var ValueText = (props = {}) => {
|
|
196
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
197
|
+
return jsx(ColorPicker.ValueText, mergeProps(rest, { get className() {
|
|
198
|
+
return [valueTextClass, local.className].filter(Boolean).join(" ");
|
|
199
|
+
} }));
|
|
200
|
+
};
|
|
201
|
+
var Area = (props = {}) => {
|
|
202
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
203
|
+
return jsx(ColorPicker.Area, mergeProps(rest, { get className() {
|
|
204
|
+
return [areaClass, local.className].filter(Boolean).join(" ");
|
|
205
|
+
} }));
|
|
206
|
+
};
|
|
207
|
+
var AreaThumb = (props = {}) => {
|
|
208
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
209
|
+
return jsx(ColorPicker.AreaThumb, mergeProps(rest, { get className() {
|
|
210
|
+
return [areaThumbClass, local.className].filter(Boolean).join(" ");
|
|
211
|
+
} }));
|
|
212
|
+
};
|
|
213
|
+
var ChannelSlider = (props = {}) => {
|
|
214
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
215
|
+
return jsx(ColorPicker.ChannelSlider, mergeProps(rest, { get className() {
|
|
216
|
+
return [sliderClass, local.className].filter(Boolean).join(" ");
|
|
217
|
+
} }));
|
|
218
|
+
};
|
|
219
|
+
var ChannelSliderTrack = (props = {}) => {
|
|
220
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
221
|
+
return jsx(ColorPicker.ChannelSliderTrack, mergeProps(rest, { get className() {
|
|
222
|
+
return [sliderTrackClass, local.className].filter(Boolean).join(" ");
|
|
223
|
+
} }));
|
|
224
|
+
};
|
|
225
|
+
var ChannelSliderThumb = (props = {}) => {
|
|
226
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
227
|
+
return jsx(ColorPicker.ChannelSliderThumb, mergeProps(rest, { get className() {
|
|
228
|
+
return [sliderThumbClass, local.className].filter(Boolean).join(" ");
|
|
229
|
+
} }));
|
|
230
|
+
};
|
|
231
|
+
var ChannelInput = (props = {}) => {
|
|
232
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
233
|
+
return jsx(ColorPicker.ChannelInput, mergeProps(rest, { get className() {
|
|
234
|
+
return [channelInputClass, local.className].filter(Boolean).join(" ");
|
|
235
|
+
} }));
|
|
236
|
+
};
|
|
237
|
+
var EyeDropperTrigger = (props = {}) => {
|
|
238
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
239
|
+
return jsx(ColorPicker.EyeDropperTrigger, mergeProps(rest, { get className() {
|
|
240
|
+
return [eyeDropperClass, local.className].filter(Boolean).join(" ");
|
|
241
|
+
} }));
|
|
242
|
+
};
|
|
243
|
+
var ColorPicker$1 = (props) => {
|
|
244
|
+
const [local, rootProps] = splitProps(props, [
|
|
245
|
+
"label",
|
|
246
|
+
"showAlpha",
|
|
247
|
+
"eyedropper",
|
|
248
|
+
"hiddenInput",
|
|
249
|
+
"onChange",
|
|
250
|
+
"size",
|
|
251
|
+
"className",
|
|
252
|
+
"children"
|
|
253
|
+
]);
|
|
254
|
+
const handleChange = (details) => {
|
|
255
|
+
local.onChange?.(details.valueAsString);
|
|
256
|
+
rootProps.onValueChange?.(details);
|
|
257
|
+
};
|
|
258
|
+
const hasHandler = local.onChange || rootProps.onValueChange;
|
|
259
|
+
return jsx(_Root, mergeProps(rootProps, {
|
|
260
|
+
get size() {
|
|
261
|
+
return local.size;
|
|
262
|
+
},
|
|
263
|
+
get className() {
|
|
264
|
+
return local.className;
|
|
265
|
+
},
|
|
266
|
+
get onValueChange() {
|
|
267
|
+
return hasHandler ? handleChange : rootProps.onValueChange;
|
|
268
|
+
},
|
|
269
|
+
children: [
|
|
270
|
+
() => local.label && jsx(Label, mergeProps({ children: () => local.label })),
|
|
271
|
+
jsx(Control, mergeProps({ children: [jsx(Trigger, mergeProps({ children: jsx(ValueSwatch, {}) })), jsx(ValueText, {})] })),
|
|
272
|
+
jsx(Positioner, mergeProps({ children: jsx(Content, mergeProps({ children: [
|
|
273
|
+
jsx(Area, mergeProps({ children: [jsx(ColorPicker.AreaBackground, mergeProps({ style: {
|
|
274
|
+
inset: 0,
|
|
275
|
+
position: "absolute"
|
|
276
|
+
} })), jsx(AreaThumb, {})] })),
|
|
277
|
+
() => {
|
|
278
|
+
const _el0 = _tmpl.cloneNode(true);
|
|
279
|
+
const _el1 = _el0.firstChild;
|
|
280
|
+
const _el2 = _el0.firstChild.nextSibling;
|
|
281
|
+
insert(_el0, () => jsx(ChannelSlider, mergeProps({
|
|
282
|
+
channel: "hue",
|
|
283
|
+
children: [jsx(ChannelSliderTrack, {}), jsx(ChannelSliderThumb, {})]
|
|
284
|
+
})), _el1);
|
|
285
|
+
insert(_el0, () => jsx(ChannelInput, mergeProps({ channel: "hex" })), _el2);
|
|
286
|
+
return _el0;
|
|
287
|
+
},
|
|
288
|
+
() => local.showAlpha && (() => {
|
|
289
|
+
const _el0 = _tmpl.cloneNode(true);
|
|
290
|
+
const _el1 = _el0.firstChild;
|
|
291
|
+
const _el2 = _el0.firstChild.nextSibling;
|
|
292
|
+
insert(_el0, () => jsx(ChannelSlider, mergeProps({
|
|
293
|
+
channel: "alpha",
|
|
294
|
+
children: [
|
|
295
|
+
jsx(ChannelSliderTrack, {}),
|
|
296
|
+
jsx(ColorPicker.TransparencyGrid, {}),
|
|
297
|
+
jsx(ChannelSliderThumb, {})
|
|
298
|
+
]
|
|
299
|
+
})), _el1);
|
|
300
|
+
insert(_el0, () => jsx(ChannelInput, mergeProps({ channel: "alpha" })), _el2);
|
|
301
|
+
return _el0;
|
|
302
|
+
}),
|
|
303
|
+
() => local.eyedropper && jsx(EyeDropperTrigger, mergeProps({ children: "Pick from screen" })),
|
|
304
|
+
() => local.hiddenInput && jsx(ColorPicker.HiddenInput, {})
|
|
305
|
+
] })) }))
|
|
306
|
+
]
|
|
307
|
+
}));
|
|
308
|
+
};
|
|
309
|
+
ColorPicker$1.origin = {
|
|
310
|
+
Root: ColorPicker.Root,
|
|
311
|
+
Label: ColorPicker.Label,
|
|
312
|
+
Control: ColorPicker.Control,
|
|
313
|
+
Trigger: ColorPicker.Trigger,
|
|
314
|
+
Positioner: ColorPicker.Positioner,
|
|
315
|
+
Content: ColorPicker.Content,
|
|
316
|
+
ValueSwatch: ColorPicker.ValueSwatch,
|
|
317
|
+
ValueText: ColorPicker.ValueText,
|
|
318
|
+
Area: ColorPicker.Area,
|
|
319
|
+
AreaBackground: ColorPicker.AreaBackground,
|
|
320
|
+
AreaThumb: ColorPicker.AreaThumb,
|
|
321
|
+
ChannelSlider: ColorPicker.ChannelSlider,
|
|
322
|
+
ChannelSliderTrack: ColorPicker.ChannelSliderTrack,
|
|
323
|
+
ChannelSliderThumb: ColorPicker.ChannelSliderThumb,
|
|
324
|
+
ChannelInput: ColorPicker.ChannelInput,
|
|
325
|
+
TransparencyGrid: ColorPicker.TransparencyGrid,
|
|
326
|
+
EyeDropperTrigger: ColorPicker.EyeDropperTrigger,
|
|
327
|
+
HiddenInput: ColorPicker.HiddenInput
|
|
328
|
+
};
|
|
4
329
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=ColorPicker.js.map
|
|
330
|
+
export { ColorPicker$1 as default };
|
|
@@ -1,19 +1,92 @@
|
|
|
1
|
-
import { Combobox, useComboboxContext } from "@plastic-js/ark";
|
|
2
1
|
import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
|
|
2
|
+
import { css } from "@emotion/css";
|
|
3
|
+
import { Combobox, useComboboxContext } from "@plastic-js/ark";
|
|
4
|
+
import { splitProps } from "@plastic-js/plastic";
|
|
3
5
|
//#region src/components/Combobox.jsx
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
+
var inputClass = css({
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "var(--tsu-comp-height-md)",
|
|
9
|
+
padding: "0 var(--tsu-comp-padding-x-md)",
|
|
10
|
+
background: "var(--tsu-bg)",
|
|
11
|
+
border: "1px solid var(--tsu-accent-8)",
|
|
12
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
13
|
+
color: "var(--tsu-fg)",
|
|
14
|
+
fontSize: "var(--tsu-comp-font-size-md)",
|
|
15
|
+
fontFamily: "inherit",
|
|
16
|
+
outline: "none",
|
|
17
|
+
"&::placeholder": { color: "var(--tsu-neutral-11)" },
|
|
18
|
+
"&:focus": {
|
|
19
|
+
backgroundColor: "var(--tsu-focus-bg)",
|
|
20
|
+
borderColor: "var(--tsu-focus-border)"
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
var contentClass = css({
|
|
24
|
+
backgroundColor: "var(--tsu-bg)",
|
|
25
|
+
border: "1px solid var(--tsu-neutral-6)",
|
|
26
|
+
borderRadius: "var(--tsu-radius-l2-md)",
|
|
27
|
+
boxShadow: "var(--tsu-shadow-lg)",
|
|
28
|
+
zIndex: "var(--tsu-z-dropdown)",
|
|
29
|
+
overflow: "hidden",
|
|
30
|
+
maxHeight: "240px",
|
|
31
|
+
overflowY: "auto"
|
|
32
|
+
});
|
|
33
|
+
var itemClass = css({
|
|
34
|
+
display: "flex",
|
|
35
|
+
alignItems: "center",
|
|
36
|
+
padding: "8px var(--tsu-container-padding-md)",
|
|
37
|
+
fontSize: "var(--tsu-comp-font-size-md)",
|
|
38
|
+
cursor: "pointer",
|
|
39
|
+
color: "var(--tsu-fg)",
|
|
40
|
+
"&[data-highlighted]": {
|
|
41
|
+
backgroundColor: "var(--tsu-accent-3)",
|
|
42
|
+
color: "var(--tsu-accent-9)"
|
|
43
|
+
},
|
|
44
|
+
"&[data-disabled]": {
|
|
45
|
+
color: "var(--tsu-disabled-fg)",
|
|
46
|
+
pointerEvents: "none"
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
var ArkRoot = Combobox.Root;
|
|
50
|
+
var Root = (props = {}) => jsx(ArkRoot, mergeProps(props));
|
|
6
51
|
var Input = (props = {}) => {
|
|
52
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
7
53
|
const combobox = useComboboxContext();
|
|
8
|
-
return jsx(Combobox.Input, mergeProps(
|
|
54
|
+
return jsx(Combobox.Input, mergeProps(rest, {
|
|
55
|
+
get className() {
|
|
56
|
+
return [inputClass, local.className].filter(Boolean).join(" ");
|
|
57
|
+
},
|
|
58
|
+
onInput: (event) => combobox().getInputProps().onChange?.(event)
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
Root.origin = {
|
|
62
|
+
Root: Combobox.Root,
|
|
63
|
+
Label: Combobox.Label,
|
|
64
|
+
Control: Combobox.Control,
|
|
65
|
+
Input: Combobox.Input,
|
|
66
|
+
Trigger: Combobox.Trigger,
|
|
67
|
+
Content: Combobox.Content,
|
|
68
|
+
Item: Combobox.Item,
|
|
69
|
+
ItemText: Combobox.ItemText,
|
|
70
|
+
ItemIndicator: Combobox.ItemIndicator,
|
|
71
|
+
ItemGroup: Combobox.ItemGroup,
|
|
72
|
+
ItemGroupLabel: Combobox.ItemGroupLabel,
|
|
73
|
+
ClearTrigger: Combobox.ClearTrigger,
|
|
74
|
+
Empty: Combobox.Empty
|
|
75
|
+
};
|
|
76
|
+
var ComboboxItem = (props = {}) => {
|
|
77
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
78
|
+
return jsx(Combobox.Item, mergeProps(rest, { get className() {
|
|
79
|
+
return [itemClass, local.className].filter(Boolean).join(" ");
|
|
80
|
+
} }));
|
|
81
|
+
};
|
|
82
|
+
var ComboboxContent = (props = {}) => {
|
|
83
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
84
|
+
return jsx(Combobox.Content, mergeProps(rest, {
|
|
85
|
+
get className() {
|
|
86
|
+
return [contentClass, local.className].filter(Boolean).join(" ");
|
|
87
|
+
},
|
|
88
|
+
children: () => local.children
|
|
89
|
+
}));
|
|
9
90
|
};
|
|
10
|
-
var Combobox_default = Object.assign(Root, {
|
|
11
|
-
...Combobox,
|
|
12
|
-
OriginalRoot,
|
|
13
|
-
Root,
|
|
14
|
-
Input
|
|
15
|
-
});
|
|
16
91
|
//#endregion
|
|
17
|
-
export {
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=Combobox.js.map
|
|
92
|
+
export { ComboboxContent, ComboboxItem, Input, Root as default };
|
|
@@ -1,36 +1,191 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Dialog from "./Dialog.js";
|
|
2
2
|
import { insert, jsx, mergeProps, setProp, template } from "@plastic-js/plastic/jsx-runtime";
|
|
3
3
|
import { css } from "@emotion/css";
|
|
4
|
+
import { createSignal, mergeProps as mergeProps$1, renderApp, splitProps } from "@plastic-js/plastic";
|
|
4
5
|
//#region src/components/ConfirmDialog.jsx
|
|
5
6
|
var _tmpl = template("<p></p>");
|
|
6
|
-
var
|
|
7
|
-
fontSize: "
|
|
7
|
+
var messageBodyClass = css({
|
|
8
|
+
fontSize: "var(--tsu-comp-font-size-lg)",
|
|
8
9
|
lineHeight: 1.5,
|
|
9
|
-
color: "var(--
|
|
10
|
+
color: "var(--tsu-fg)",
|
|
10
11
|
textAlign: "center",
|
|
11
|
-
padding: "
|
|
12
|
+
padding: "var(--tsu-spacing-sm) 0"
|
|
12
13
|
});
|
|
13
|
-
var
|
|
14
|
+
var DEFAULT_PROPS = {
|
|
15
|
+
mode: "modal",
|
|
16
|
+
confirmText: "Confirm",
|
|
17
|
+
cancelText: "Cancel",
|
|
18
|
+
danger: false,
|
|
19
|
+
loading: false,
|
|
20
|
+
title: "Confirm"
|
|
21
|
+
};
|
|
22
|
+
function ConfirmDialog(props) {
|
|
23
|
+
const [local] = splitProps(mergeProps$1(DEFAULT_PROPS, props), [
|
|
24
|
+
"mode",
|
|
25
|
+
"open",
|
|
26
|
+
"onOpenChange",
|
|
27
|
+
"onConfirm",
|
|
28
|
+
"onCancel",
|
|
29
|
+
"loading",
|
|
30
|
+
"title",
|
|
31
|
+
"message",
|
|
32
|
+
"confirmText",
|
|
33
|
+
"cancelText",
|
|
34
|
+
"danger"
|
|
35
|
+
]);
|
|
14
36
|
const handleConfirm = () => {
|
|
15
|
-
onConfirm?.();
|
|
37
|
+
local.onConfirm?.();
|
|
16
38
|
};
|
|
17
|
-
return jsx(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
39
|
+
return jsx(Dialog, mergeProps({
|
|
40
|
+
get mode() {
|
|
41
|
+
return local.mode;
|
|
42
|
+
},
|
|
43
|
+
get cancelText() {
|
|
44
|
+
return local.cancelText;
|
|
45
|
+
},
|
|
46
|
+
get confirmText() {
|
|
47
|
+
return local.confirmText;
|
|
48
|
+
},
|
|
49
|
+
get danger() {
|
|
50
|
+
return local.danger;
|
|
51
|
+
},
|
|
52
|
+
get loading() {
|
|
53
|
+
return local.loading;
|
|
54
|
+
},
|
|
21
55
|
onConfirm: handleConfirm,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
56
|
+
get onCancel() {
|
|
57
|
+
return local.onCancel;
|
|
58
|
+
},
|
|
59
|
+
get onOpenChange() {
|
|
60
|
+
return local.onOpenChange;
|
|
61
|
+
},
|
|
62
|
+
get open() {
|
|
63
|
+
return local.open;
|
|
64
|
+
},
|
|
65
|
+
closeable: false,
|
|
66
|
+
showCancel: !!local.onCancel,
|
|
67
|
+
showConfirm: true,
|
|
68
|
+
get title() {
|
|
69
|
+
return local.title;
|
|
70
|
+
},
|
|
25
71
|
children: () => {
|
|
26
72
|
const _el0 = _tmpl.cloneNode(true);
|
|
27
|
-
insert(_el0, () => message);
|
|
28
|
-
setProp(_el0, "className", () =>
|
|
73
|
+
insert(_el0, () => local.message);
|
|
74
|
+
setProp(_el0, "className", () => messageBodyClass);
|
|
29
75
|
return _el0;
|
|
30
76
|
}
|
|
31
77
|
}));
|
|
78
|
+
}
|
|
79
|
+
var container = document.createElement("div");
|
|
80
|
+
document.body.appendChild(container);
|
|
81
|
+
var _resolve = null;
|
|
82
|
+
var _reject = null;
|
|
83
|
+
var _setState = null;
|
|
84
|
+
var _initialized = false;
|
|
85
|
+
function ensureInit() {
|
|
86
|
+
if (_initialized) return;
|
|
87
|
+
_initialized = true;
|
|
88
|
+
const state = createSignal(null);
|
|
89
|
+
_setState = state;
|
|
90
|
+
const handleConfirm = () => {
|
|
91
|
+
_resolve?.();
|
|
92
|
+
state({
|
|
93
|
+
...state(),
|
|
94
|
+
open: false
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
const handleCancel = () => {
|
|
98
|
+
const err = /* @__PURE__ */ new Error("Cancel");
|
|
99
|
+
err.code = "CANCEL";
|
|
100
|
+
_reject?.(err);
|
|
101
|
+
state({
|
|
102
|
+
...state(),
|
|
103
|
+
open: false
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const handleOpenChange = (open) => {
|
|
107
|
+
if (!open) {
|
|
108
|
+
_resolve = null;
|
|
109
|
+
_reject = null;
|
|
110
|
+
state(null);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
renderApp(container, () => {
|
|
114
|
+
const s = state();
|
|
115
|
+
if (!s) return null;
|
|
116
|
+
return jsx(Dialog, mergeProps({
|
|
117
|
+
get mode() {
|
|
118
|
+
return s.mode || "modal";
|
|
119
|
+
},
|
|
120
|
+
get open() {
|
|
121
|
+
return s.open;
|
|
122
|
+
},
|
|
123
|
+
closeable: false,
|
|
124
|
+
get showCancel() {
|
|
125
|
+
return !s.noCancel;
|
|
126
|
+
},
|
|
127
|
+
showConfirm: true,
|
|
128
|
+
get confirmText() {
|
|
129
|
+
return s.confirmText || "Confirm";
|
|
130
|
+
},
|
|
131
|
+
get cancelText() {
|
|
132
|
+
return s.cancelText || "Cancel";
|
|
133
|
+
},
|
|
134
|
+
get danger() {
|
|
135
|
+
return s.danger || false;
|
|
136
|
+
},
|
|
137
|
+
get title() {
|
|
138
|
+
return s.title || "Confirm";
|
|
139
|
+
},
|
|
140
|
+
onConfirm: handleConfirm,
|
|
141
|
+
onCancel: handleCancel,
|
|
142
|
+
onOpenChange: handleOpenChange,
|
|
143
|
+
children: () => {
|
|
144
|
+
const _el0 = _tmpl.cloneNode(true);
|
|
145
|
+
insert(_el0, () => s.message);
|
|
146
|
+
setProp(_el0, "className", () => messageBodyClass);
|
|
147
|
+
return _el0;
|
|
148
|
+
}
|
|
149
|
+
}));
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Open a confirmation dialog imperatively.
|
|
154
|
+
* Resolves on confirm, rejects with `{ code: 'CANCEL' }` on cancel.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* try {
|
|
158
|
+
* await confirm({
|
|
159
|
+
* title: 'Delete Item',
|
|
160
|
+
* message: 'This action cannot be undone.',
|
|
161
|
+
* confirmText: 'Delete',
|
|
162
|
+
* danger: true,
|
|
163
|
+
* })
|
|
164
|
+
* } catch (err) {
|
|
165
|
+
* if (err.code === 'CANCEL') { ... }
|
|
166
|
+
* }
|
|
167
|
+
*
|
|
168
|
+
* @param {{
|
|
169
|
+
* mode?: 'modal' | 'sheet',
|
|
170
|
+
* title?: string,
|
|
171
|
+
* message?: string,
|
|
172
|
+
* confirmText?: string,
|
|
173
|
+
* cancelText?: string,
|
|
174
|
+
* danger?: boolean,
|
|
175
|
+
* noCancel?: boolean
|
|
176
|
+
* }} options
|
|
177
|
+
* @returns {Promise<void>}
|
|
178
|
+
*/
|
|
179
|
+
var confirm = (options = {}) => {
|
|
180
|
+
ensureInit();
|
|
181
|
+
return new Promise((resolve, reject) => {
|
|
182
|
+
_resolve = resolve;
|
|
183
|
+
_reject = reject;
|
|
184
|
+
_setState({
|
|
185
|
+
...options,
|
|
186
|
+
open: true
|
|
187
|
+
});
|
|
188
|
+
});
|
|
32
189
|
};
|
|
33
190
|
//#endregion
|
|
34
|
-
export { ConfirmDialog as default };
|
|
35
|
-
|
|
36
|
-
//# sourceMappingURL=ConfirmDialog.js.map
|
|
191
|
+
export { confirm, ConfirmDialog as default };
|