@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,50 @@
|
|
|
1
|
+
import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
|
|
2
|
+
import { css } from "@emotion/css";
|
|
1
3
|
import { Listbox } from "@plastic-js/ark";
|
|
4
|
+
import { splitProps } from "@plastic-js/plastic";
|
|
2
5
|
//#region src/components/Listbox.jsx
|
|
3
|
-
|
|
6
|
+
css({
|
|
7
|
+
backgroundColor: "var(--tsu-bg)",
|
|
8
|
+
border: "1px solid var(--tsu-neutral-6)",
|
|
9
|
+
borderRadius: "var(--tsu-radius-l2-md)",
|
|
10
|
+
boxShadow: "var(--tsu-shadow-lg)",
|
|
11
|
+
zIndex: "var(--tsu-z-dropdown)",
|
|
12
|
+
overflow: "hidden",
|
|
13
|
+
padding: "var(--tsu-spacing-xs)",
|
|
14
|
+
outline: "none"
|
|
15
|
+
});
|
|
16
|
+
css({
|
|
17
|
+
display: "flex",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
padding: "8px var(--tsu-container-padding-sm)",
|
|
20
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
21
|
+
fontSize: "var(--tsu-comp-font-size-sm)",
|
|
22
|
+
color: "var(--tsu-fg)",
|
|
23
|
+
cursor: "pointer",
|
|
24
|
+
"&[data-highlighted]": {
|
|
25
|
+
backgroundColor: "var(--tsu-accent-3)",
|
|
26
|
+
color: "var(--tsu-accent-9)"
|
|
27
|
+
},
|
|
28
|
+
"&[data-disabled]": {
|
|
29
|
+
color: "var(--tsu-disabled-fg)",
|
|
30
|
+
pointerEvents: "none"
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
var Listbox$1 = (props = {}) => {
|
|
34
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
35
|
+
return jsx(Listbox.Root, mergeProps(rest, {
|
|
36
|
+
get className() {
|
|
37
|
+
return [local.className].filter(Boolean).join(" ");
|
|
38
|
+
},
|
|
39
|
+
children: () => local.children
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
Listbox$1.origin = {
|
|
43
|
+
Root: Listbox.Root,
|
|
44
|
+
Content: Listbox.Content,
|
|
45
|
+
Item: Listbox.Item,
|
|
46
|
+
ItemText: Listbox.ItemText,
|
|
47
|
+
Label: Listbox.Label
|
|
48
|
+
};
|
|
4
49
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=Listbox.js.map
|
|
50
|
+
export { Listbox$1 as default };
|
package/dist/components/Menu.js
CHANGED
|
@@ -1,7 +1,102 @@
|
|
|
1
|
+
import Portal_default from "./Portal.js";
|
|
2
|
+
import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
|
|
3
|
+
import { css } from "@emotion/css";
|
|
1
4
|
import { Menu } from "@plastic-js/ark";
|
|
5
|
+
import { splitProps } from "@plastic-js/plastic";
|
|
2
6
|
//#region src/components/Menu.jsx
|
|
3
|
-
var
|
|
7
|
+
var positionerClass = css({ zIndex: "var(--tsu-z-dropdown)" });
|
|
8
|
+
var contentClass = css({
|
|
9
|
+
backgroundColor: "var(--tsu-bg)",
|
|
10
|
+
border: "1px solid var(--tsu-neutral-6)",
|
|
11
|
+
borderRadius: "var(--tsu-radius-l2-md)",
|
|
12
|
+
boxShadow: "var(--tsu-shadow-lg)",
|
|
13
|
+
padding: "6px",
|
|
14
|
+
minWidth: "160px",
|
|
15
|
+
outline: "none",
|
|
16
|
+
display: "flex",
|
|
17
|
+
flexDirection: "column",
|
|
18
|
+
"&[hidden]": { display: "none" }
|
|
19
|
+
});
|
|
20
|
+
var itemClass = css({
|
|
21
|
+
display: "flex",
|
|
22
|
+
alignItems: "center",
|
|
23
|
+
padding: "8px 12px",
|
|
24
|
+
borderRadius: "var(--tsu-radius-l1-sm)",
|
|
25
|
+
fontSize: "var(--tsu-comp-font-size-md)",
|
|
26
|
+
color: "var(--tsu-fg)",
|
|
27
|
+
cursor: "pointer",
|
|
28
|
+
fontFamily: "inherit",
|
|
29
|
+
border: "none",
|
|
30
|
+
background: "none",
|
|
31
|
+
width: "100%",
|
|
32
|
+
textAlign: "left",
|
|
33
|
+
lineHeight: 1.4,
|
|
34
|
+
"&[data-highlighted]": {
|
|
35
|
+
backgroundColor: "var(--tsu-accent-3)",
|
|
36
|
+
color: "var(--tsu-accent-9)"
|
|
37
|
+
},
|
|
38
|
+
"&[data-disabled]": {
|
|
39
|
+
opacity: .4,
|
|
40
|
+
pointerEvents: "none"
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
var separatorClass = css({
|
|
44
|
+
height: "1px",
|
|
45
|
+
backgroundColor: "var(--tsu-neutral-6)",
|
|
46
|
+
margin: "4px 0"
|
|
47
|
+
});
|
|
48
|
+
var Menu$1 = (props = {}) => {
|
|
49
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
50
|
+
return jsx(Menu.Root, mergeProps(rest, {
|
|
51
|
+
get className() {
|
|
52
|
+
return local.className;
|
|
53
|
+
},
|
|
54
|
+
children: () => local.children
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
var MenuTrigger = (props = {}) => {
|
|
58
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
59
|
+
return jsx(Menu.Trigger, mergeProps(rest, {
|
|
60
|
+
get className() {
|
|
61
|
+
return local.className;
|
|
62
|
+
},
|
|
63
|
+
children: () => local.children
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
var MenuContent = (props = {}) => {
|
|
67
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
68
|
+
return jsx(Portal_default, mergeProps({ children: jsx(Menu.Positioner, mergeProps({
|
|
69
|
+
className: positionerClass,
|
|
70
|
+
children: jsx(Menu.Content, mergeProps(rest, {
|
|
71
|
+
get className() {
|
|
72
|
+
return [contentClass, local.className].filter(Boolean).join(" ");
|
|
73
|
+
},
|
|
74
|
+
children: () => local.children
|
|
75
|
+
}))
|
|
76
|
+
})) }));
|
|
77
|
+
};
|
|
78
|
+
var MenuItem = (props = {}) => {
|
|
79
|
+
const [local, rest] = splitProps(props, ["className", "children"]);
|
|
80
|
+
return jsx(Menu.Item, mergeProps(rest, {
|
|
81
|
+
get className() {
|
|
82
|
+
return [itemClass, local.className].filter(Boolean).join(" ");
|
|
83
|
+
},
|
|
84
|
+
children: () => local.children
|
|
85
|
+
}));
|
|
86
|
+
};
|
|
87
|
+
var MenuSeparator = (props = {}) => {
|
|
88
|
+
const [local, rest] = splitProps(props, ["className"]);
|
|
89
|
+
return jsx(Menu.Separator, mergeProps(rest, { get className() {
|
|
90
|
+
return [separatorClass, local.className].filter(Boolean).join(" ");
|
|
91
|
+
} }));
|
|
92
|
+
};
|
|
93
|
+
Menu$1.origin = {
|
|
94
|
+
Root: Menu.Root,
|
|
95
|
+
Trigger: Menu.Trigger,
|
|
96
|
+
Positioner: Menu.Positioner,
|
|
97
|
+
Content: Menu.Content,
|
|
98
|
+
Item: Menu.Item,
|
|
99
|
+
Separator: Menu.Separator
|
|
100
|
+
};
|
|
4
101
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=Menu.js.map
|
|
102
|
+
export { MenuContent, MenuItem, MenuSeparator, MenuTrigger, Menu$1 as default };
|
|
@@ -1,56 +1,15 @@
|
|
|
1
|
+
import Input from "./Input.js";
|
|
1
2
|
import { insert, jsx, mergeProps, setProp, template } from "@plastic-js/plastic/jsx-runtime";
|
|
2
3
|
import { css } from "@emotion/css";
|
|
3
4
|
import { splitProps } from "@plastic-js/plastic";
|
|
4
5
|
//#region src/components/MoneyInput.jsx
|
|
5
|
-
var
|
|
6
|
-
var _tmpl = template("<div><span></span><!><!></div>");
|
|
7
|
-
var wrapperClass = css({
|
|
8
|
-
display: "flex",
|
|
9
|
-
alignItems: "center",
|
|
10
|
-
width: "100%",
|
|
11
|
-
boxSizing: "border-box",
|
|
12
|
-
height: "44px",
|
|
13
|
-
background: "var(--bg, rgba(0,0,0,0.2))",
|
|
14
|
-
border: "1px solid var(--border)",
|
|
15
|
-
borderRadius: "10px",
|
|
16
|
-
padding: "0 14px",
|
|
17
|
-
"&:focus-within": { borderColor: "var(--accent)" }
|
|
18
|
-
});
|
|
19
|
-
var errorClass = css({ borderColor: "var(--danger) !important" });
|
|
20
|
-
var affixTextClass = css({
|
|
21
|
-
color: "var(--muted)",
|
|
22
|
-
fontSize: "14px",
|
|
23
|
-
whiteSpace: "nowrap",
|
|
24
|
-
userSelect: "none",
|
|
25
|
-
marginRight: "2px"
|
|
26
|
-
});
|
|
6
|
+
var _tmpl = template("<span></span>");
|
|
27
7
|
var affixSuffixClass = css({
|
|
28
|
-
color: "var(--
|
|
29
|
-
fontSize: "14px",
|
|
8
|
+
color: "var(--tsu-fg)",
|
|
30
9
|
fontWeight: 600,
|
|
31
|
-
whiteSpace: "nowrap",
|
|
32
|
-
userSelect: "none",
|
|
33
10
|
paddingLeft: "10px",
|
|
34
11
|
marginLeft: "4px",
|
|
35
|
-
borderLeft: "1px solid var(--
|
|
36
|
-
});
|
|
37
|
-
var affixSuffixDisabledClass = css({ opacity: .5 });
|
|
38
|
-
var inputClass = css({
|
|
39
|
-
flex: 1,
|
|
40
|
-
minWidth: 0,
|
|
41
|
-
height: "100%",
|
|
42
|
-
background: "transparent",
|
|
43
|
-
border: "none",
|
|
44
|
-
color: "var(--ink)",
|
|
45
|
-
fontSize: "15px",
|
|
46
|
-
fontFamily: "inherit",
|
|
47
|
-
outline: "none",
|
|
48
|
-
"&::placeholder": { color: "var(--muted)" },
|
|
49
|
-
"&:disabled": {
|
|
50
|
-
opacity: .5,
|
|
51
|
-
cursor: "not-allowed",
|
|
52
|
-
WebkitTextFillColor: "var(--ink)"
|
|
53
|
-
}
|
|
12
|
+
borderLeft: "1px solid var(--tsu-neutral-7)"
|
|
54
13
|
});
|
|
55
14
|
var read = (value) => {
|
|
56
15
|
return typeof value === "function" ? value() : value;
|
|
@@ -59,16 +18,6 @@ var groupThousands = (digits) => {
|
|
|
59
18
|
if (!digits) return "";
|
|
60
19
|
return Number(digits).toLocaleString("en-US");
|
|
61
20
|
};
|
|
62
|
-
/**
|
|
63
|
-
* Currency amount input. Keeps an integer digits-only string as its value and
|
|
64
|
-
* renders it grouped by thousands with a currency prefix.
|
|
65
|
-
*
|
|
66
|
-
* @param value digits-only string, or an accessor returning one
|
|
67
|
-
* @param onValueChange called with the next digits-only string on input
|
|
68
|
-
* @param invalid boolean or accessor; toggles the error border
|
|
69
|
-
* @param currency prefix symbol, defaults to ₱
|
|
70
|
-
* @param affix optional suffix text (e.g. K, M), defaults to empty
|
|
71
|
-
*/
|
|
72
21
|
var MoneyInput = (props) => {
|
|
73
22
|
const [local, rest] = splitProps(props, [
|
|
74
23
|
"value",
|
|
@@ -79,36 +28,35 @@ var MoneyInput = (props) => {
|
|
|
79
28
|
"placeholder",
|
|
80
29
|
"disabled"
|
|
81
30
|
]);
|
|
82
|
-
return (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
31
|
+
return jsx(Input, mergeProps({
|
|
32
|
+
size: "lg",
|
|
33
|
+
solid: true,
|
|
34
|
+
get invalid() {
|
|
35
|
+
return local.invalid;
|
|
36
|
+
},
|
|
37
|
+
get disabled() {
|
|
38
|
+
return local.disabled;
|
|
39
|
+
},
|
|
40
|
+
get placeholder() {
|
|
41
|
+
return local.placeholder;
|
|
42
|
+
},
|
|
43
|
+
get prefix() {
|
|
44
|
+
return local.currency ?? "₱";
|
|
45
|
+
},
|
|
46
|
+
suffix: () => {
|
|
47
|
+
const affix = read(local.affix);
|
|
48
|
+
if (!affix) return null;
|
|
49
|
+
return () => {
|
|
50
|
+
const _el0 = _tmpl.cloneNode(true);
|
|
51
|
+
insert(_el0, () => affix);
|
|
52
|
+
setProp(_el0, "className", () => affixSuffixClass);
|
|
53
|
+
return _el0;
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
value: () => groupThousands(read(local.value)),
|
|
57
|
+
onInput: (e) => local.onValueChange?.(e.target.value.replace(/\D/g, "")),
|
|
58
|
+
inputMode: "numeric"
|
|
59
|
+
}, rest));
|
|
110
60
|
};
|
|
111
61
|
//#endregion
|
|
112
62
|
export { MoneyInput as default };
|
|
113
|
-
|
|
114
|
-
//# sourceMappingURL=MoneyInput.js.map
|
|
@@ -1,7 +1,120 @@
|
|
|
1
|
+
import { jsx, mergeProps, template } from "@plastic-js/plastic/jsx-runtime";
|
|
2
|
+
import { css } from "@emotion/css";
|
|
1
3
|
import { NumberInput } from "@plastic-js/ark";
|
|
4
|
+
import { mergeProps as mergeProps$2, splitProps } from "@plastic-js/plastic";
|
|
2
5
|
//#region src/components/NumberInput.jsx
|
|
3
|
-
var
|
|
6
|
+
var _tmpl2 = template("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" width=\"12\" height=\"12\"><path d=\"M12 5v14M5 12h14\"></path></svg>");
|
|
7
|
+
var _tmpl = template("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" width=\"12\" height=\"12\"><path d=\"M5 12h14\"></path></svg>");
|
|
8
|
+
var rootClass = css({
|
|
9
|
+
display: "inline-flex",
|
|
10
|
+
alignItems: "center",
|
|
11
|
+
border: "1px solid var(--tsu-accent-8)",
|
|
12
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
13
|
+
backgroundColor: "var(--tsu-bg)",
|
|
14
|
+
overflow: "hidden",
|
|
15
|
+
"&:focus-within": { borderColor: "var(--tsu-focus-border)" }
|
|
16
|
+
});
|
|
17
|
+
var disabledClass = css({
|
|
18
|
+
borderColor: "var(--tsu-disabled-border)",
|
|
19
|
+
"& *": { color: "var(--tsu-disabled-fg)" }
|
|
20
|
+
});
|
|
21
|
+
var sizeClasses = {
|
|
22
|
+
xs: css({
|
|
23
|
+
height: "var(--tsu-comp-height-xs)",
|
|
24
|
+
fontSize: "var(--tsu-comp-font-size-xs)"
|
|
25
|
+
}),
|
|
26
|
+
sm: css({
|
|
27
|
+
height: "var(--tsu-comp-height-sm)",
|
|
28
|
+
fontSize: "var(--tsu-comp-font-size-sm)"
|
|
29
|
+
}),
|
|
30
|
+
md: css({
|
|
31
|
+
height: "var(--tsu-comp-height-md)",
|
|
32
|
+
fontSize: "var(--tsu-comp-font-size-md)"
|
|
33
|
+
}),
|
|
34
|
+
lg: css({
|
|
35
|
+
height: "var(--tsu-comp-height-lg)",
|
|
36
|
+
fontSize: "var(--tsu-comp-font-size-lg)"
|
|
37
|
+
}),
|
|
38
|
+
xl: css({
|
|
39
|
+
height: "var(--tsu-comp-height-xl)",
|
|
40
|
+
fontSize: "var(--tsu-comp-font-size-xl)"
|
|
41
|
+
})
|
|
42
|
+
};
|
|
43
|
+
var inputClass = css({
|
|
44
|
+
width: "60px",
|
|
45
|
+
height: "100%",
|
|
46
|
+
border: "none",
|
|
47
|
+
background: "transparent",
|
|
48
|
+
color: "var(--tsu-fg)",
|
|
49
|
+
fontFamily: "inherit",
|
|
50
|
+
textAlign: "center",
|
|
51
|
+
outline: "none",
|
|
52
|
+
padding: 0,
|
|
53
|
+
"&:disabled": { color: "var(--tsu-disabled-fg)" }
|
|
54
|
+
});
|
|
55
|
+
var btnClass = css({
|
|
56
|
+
width: "28px",
|
|
57
|
+
height: "100%",
|
|
58
|
+
display: "flex",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
justifyContent: "center",
|
|
61
|
+
border: "none",
|
|
62
|
+
background: "transparent",
|
|
63
|
+
color: "var(--tsu-neutral-11)",
|
|
64
|
+
cursor: "pointer",
|
|
65
|
+
fontFamily: "inherit",
|
|
66
|
+
fontSize: "14px",
|
|
67
|
+
touchAction: "manipulation",
|
|
68
|
+
"&:active:not(:disabled)": { backgroundColor: "var(--tsu-accent-3)" },
|
|
69
|
+
"&:disabled": {
|
|
70
|
+
color: "var(--tsu-disabled-fg)",
|
|
71
|
+
cursor: "not-allowed"
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
var read = (v) => typeof v === "function" ? v() : v;
|
|
75
|
+
var NumberInput$1 = (props = {}) => {
|
|
76
|
+
const [local, rest] = splitProps(mergeProps$2({
|
|
77
|
+
size: "md",
|
|
78
|
+
disabled: false
|
|
79
|
+
}, props), [
|
|
80
|
+
"size",
|
|
81
|
+
"disabled",
|
|
82
|
+
"className",
|
|
83
|
+
"children"
|
|
84
|
+
]);
|
|
85
|
+
return () => {
|
|
86
|
+
const size = read(local.size);
|
|
87
|
+
const disabled = read(local.disabled);
|
|
88
|
+
return jsx(NumberInput.Root, mergeProps(rest, {
|
|
89
|
+
disabled,
|
|
90
|
+
get className() {
|
|
91
|
+
return [
|
|
92
|
+
rootClass,
|
|
93
|
+
sizeClasses[size],
|
|
94
|
+
disabled && disabledClass,
|
|
95
|
+
local.className
|
|
96
|
+
].filter(Boolean).join(" ");
|
|
97
|
+
},
|
|
98
|
+
children: [
|
|
99
|
+
jsx(NumberInput.DecrementTrigger, mergeProps({
|
|
100
|
+
className: btnClass,
|
|
101
|
+
children: _tmpl.cloneNode(true)
|
|
102
|
+
})),
|
|
103
|
+
jsx(NumberInput.Input, mergeProps({ className: inputClass })),
|
|
104
|
+
jsx(NumberInput.IncrementTrigger, mergeProps({
|
|
105
|
+
className: btnClass,
|
|
106
|
+
children: _tmpl2.cloneNode(true)
|
|
107
|
+
})),
|
|
108
|
+
() => local.children
|
|
109
|
+
]
|
|
110
|
+
}));
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
NumberInput$1.origin = {
|
|
114
|
+
Root: NumberInput.Root,
|
|
115
|
+
DecrementTrigger: NumberInput.DecrementTrigger,
|
|
116
|
+
Input: NumberInput.Input,
|
|
117
|
+
IncrementTrigger: NumberInput.IncrementTrigger
|
|
118
|
+
};
|
|
4
119
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=NumberInput.js.map
|
|
120
|
+
export { NumberInput$1 as default };
|
|
@@ -1,7 +1,93 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fragment, jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
|
|
2
|
+
import { css } from "@emotion/css";
|
|
3
|
+
import { Pagination, usePaginationContext } from "@plastic-js/ark";
|
|
4
|
+
import { splitProps } from "@plastic-js/plastic";
|
|
2
5
|
//#region src/components/Pagination.jsx
|
|
3
|
-
var
|
|
6
|
+
var rootClass = css({
|
|
7
|
+
display: "flex",
|
|
8
|
+
alignItems: "center",
|
|
9
|
+
gap: "var(--tsu-spacing-xs)",
|
|
10
|
+
overflowX: "auto"
|
|
11
|
+
});
|
|
12
|
+
var itemClass = css({
|
|
13
|
+
display: "flex",
|
|
14
|
+
alignItems: "center",
|
|
15
|
+
justifyContent: "center",
|
|
16
|
+
minWidth: "var(--tsu-level-primary-md)",
|
|
17
|
+
height: "var(--tsu-level-primary-md)",
|
|
18
|
+
padding: "0 var(--tsu-spacing-sm)",
|
|
19
|
+
border: "1px solid var(--tsu-neutral-5)",
|
|
20
|
+
borderRadius: "var(--tsu-radius-l2-md)",
|
|
21
|
+
backgroundColor: "var(--tsu-bg)",
|
|
22
|
+
color: "var(--tsu-neutral-11)",
|
|
23
|
+
fontSize: "var(--tsu-font-size-sm)",
|
|
24
|
+
fontWeight: 500,
|
|
25
|
+
cursor: "pointer",
|
|
26
|
+
fontFamily: "inherit",
|
|
27
|
+
touchAction: "manipulation",
|
|
28
|
+
transition: "background-color var(--tsu-transition-fast), border-color var(--tsu-transition-fast)",
|
|
29
|
+
"&[data-selected]": {
|
|
30
|
+
backgroundColor: "var(--tsu-accent-9)",
|
|
31
|
+
borderColor: "var(--tsu-accent-8)",
|
|
32
|
+
color: "var(--tsu-bg)"
|
|
33
|
+
},
|
|
34
|
+
"&:disabled, &[data-disabled]": {
|
|
35
|
+
opacity: .5,
|
|
36
|
+
cursor: "not-allowed"
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
var ellipsisClass = css({
|
|
40
|
+
display: "flex",
|
|
41
|
+
alignItems: "center",
|
|
42
|
+
justifyContent: "center",
|
|
43
|
+
width: "var(--tsu-level-primary-md)",
|
|
44
|
+
color: "var(--tsu-neutral-9)",
|
|
45
|
+
fontSize: "var(--tsu-font-size-sm)",
|
|
46
|
+
userSelect: "none"
|
|
47
|
+
});
|
|
48
|
+
var Pages = () => {
|
|
49
|
+
const pagination = usePaginationContext();
|
|
50
|
+
return () => {
|
|
51
|
+
const api = pagination();
|
|
52
|
+
return jsx(Fragment, { children: () => api.pages.map((page, i) => page.type === "page" ? jsx(Pagination.Item, mergeProps({
|
|
53
|
+
key: i,
|
|
54
|
+
get value() {
|
|
55
|
+
return page.value;
|
|
56
|
+
},
|
|
57
|
+
className: itemClass,
|
|
58
|
+
children: () => page.value
|
|
59
|
+
})) : jsx(Pagination.Ellipsis, mergeProps({
|
|
60
|
+
key: i,
|
|
61
|
+
index: i,
|
|
62
|
+
className: ellipsisClass
|
|
63
|
+
}))) });
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
var Pagination$1 = (props = {}) => {
|
|
67
|
+
const [local, rest] = splitProps(props, [
|
|
68
|
+
"className",
|
|
69
|
+
"prevLabel",
|
|
70
|
+
"nextLabel",
|
|
71
|
+
"prevChildren",
|
|
72
|
+
"nextChildren"
|
|
73
|
+
]);
|
|
74
|
+
return jsx(Pagination.Root, mergeProps(rest, {
|
|
75
|
+
get className() {
|
|
76
|
+
return [rootClass, local.className].filter(Boolean).join(" ");
|
|
77
|
+
},
|
|
78
|
+
children: [
|
|
79
|
+
jsx(Pagination.PrevTrigger, mergeProps({
|
|
80
|
+
className: itemClass,
|
|
81
|
+
children: () => local.prevChildren ?? local.prevLabel ?? "Prev"
|
|
82
|
+
})),
|
|
83
|
+
jsx(Pages, {}),
|
|
84
|
+
jsx(Pagination.NextTrigger, mergeProps({
|
|
85
|
+
className: itemClass,
|
|
86
|
+
children: () => local.nextChildren ?? local.nextLabel ?? "Next"
|
|
87
|
+
}))
|
|
88
|
+
]
|
|
89
|
+
}));
|
|
90
|
+
};
|
|
91
|
+
Pagination$1.origin = { Root: Pagination.Root };
|
|
4
92
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=Pagination.js.map
|
|
93
|
+
export { Pagination$1 as default };
|
|
@@ -1,7 +1,126 @@
|
|
|
1
|
+
import Portal_default from "./Portal.js";
|
|
2
|
+
import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
|
|
3
|
+
import { css, keyframes } from "@emotion/css";
|
|
1
4
|
import { Popover } from "@plastic-js/ark";
|
|
5
|
+
import { mergeProps as mergeProps$2, splitProps } from "@plastic-js/plastic";
|
|
2
6
|
//#region src/components/Popover.jsx
|
|
3
|
-
var
|
|
7
|
+
var popoverIn = keyframes({
|
|
8
|
+
from: {
|
|
9
|
+
opacity: 0,
|
|
10
|
+
transform: "scale(0.95)"
|
|
11
|
+
},
|
|
12
|
+
to: {
|
|
13
|
+
opacity: 1,
|
|
14
|
+
transform: "scale(1)"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
var positionerClass = css({
|
|
18
|
+
zIndex: "var(--tsu-z-dropdown)",
|
|
19
|
+
maxWidth: "100dvw",
|
|
20
|
+
minWidth: "0 !important"
|
|
21
|
+
});
|
|
22
|
+
var contentClass = css({
|
|
23
|
+
padding: "var(--tsu-container-padding-sm)",
|
|
24
|
+
backgroundColor: "var(--tsu-bg)",
|
|
25
|
+
borderRadius: "var(--tsu-radius-l2-md)",
|
|
26
|
+
boxShadow: "var(--tsu-shadow-lg)",
|
|
27
|
+
border: "1px solid var(--tsu-neutral-6)",
|
|
28
|
+
outline: "none",
|
|
29
|
+
animation: `${popoverIn} var(--tsu-transition-fast)`
|
|
30
|
+
});
|
|
31
|
+
var arrowClass = css({
|
|
32
|
+
"--arrow-size": "8px",
|
|
33
|
+
"--arrow-background": "var(--tsu-bg)"
|
|
34
|
+
});
|
|
35
|
+
var closeTriggerClass = css({
|
|
36
|
+
display: "flex",
|
|
37
|
+
alignItems: "center",
|
|
38
|
+
justifyContent: "center",
|
|
39
|
+
position: "absolute",
|
|
40
|
+
top: "8px",
|
|
41
|
+
right: "8px",
|
|
42
|
+
width: "24px",
|
|
43
|
+
height: "24px",
|
|
44
|
+
padding: 0,
|
|
45
|
+
border: "none",
|
|
46
|
+
borderRadius: "var(--tsu-radius-l1-md)",
|
|
47
|
+
background: "transparent",
|
|
48
|
+
color: "var(--tsu-neutral-11)",
|
|
49
|
+
cursor: "pointer",
|
|
50
|
+
touchAction: "manipulation"
|
|
51
|
+
});
|
|
52
|
+
var titleClass = css({
|
|
53
|
+
margin: 0,
|
|
54
|
+
paddingRight: "24px",
|
|
55
|
+
fontSize: "var(--tsu-comp-font-size-md)",
|
|
56
|
+
fontWeight: 600,
|
|
57
|
+
color: "var(--tsu-fg)"
|
|
58
|
+
});
|
|
59
|
+
var descriptionClass = css({
|
|
60
|
+
margin: 0,
|
|
61
|
+
marginTop: "4px",
|
|
62
|
+
fontSize: "var(--tsu-comp-font-size-sm)",
|
|
63
|
+
color: "var(--tsu-neutral-11)",
|
|
64
|
+
lineHeight: 1.5
|
|
65
|
+
});
|
|
66
|
+
var Popover$1 = (props = {}) => {
|
|
67
|
+
const [local, rest] = splitProps(mergeProps$2({
|
|
68
|
+
lazyMount: true,
|
|
69
|
+
unmountOnExit: true,
|
|
70
|
+
closeable: false
|
|
71
|
+
}, props), [
|
|
72
|
+
"title",
|
|
73
|
+
"description",
|
|
74
|
+
"closeable",
|
|
75
|
+
"className",
|
|
76
|
+
"children"
|
|
77
|
+
]);
|
|
78
|
+
const positioning = {
|
|
79
|
+
...rest.positioning,
|
|
80
|
+
fitViewport: true
|
|
81
|
+
};
|
|
82
|
+
return jsx(Popover.Root, mergeProps(rest, {
|
|
83
|
+
positioning,
|
|
84
|
+
children: [jsx(Popover.Trigger, mergeProps({
|
|
85
|
+
asChild: true,
|
|
86
|
+
children: () => local.children
|
|
87
|
+
})), jsx(Portal_default, mergeProps({ children: jsx(Popover.Positioner, mergeProps({
|
|
88
|
+
className: positionerClass,
|
|
89
|
+
children: jsx(Popover.Content, mergeProps({
|
|
90
|
+
className: contentClass,
|
|
91
|
+
children: [
|
|
92
|
+
jsx(Popover.Arrow, mergeProps({
|
|
93
|
+
className: arrowClass,
|
|
94
|
+
children: jsx(Popover.ArrowTip, mergeProps({ className: arrowClass }))
|
|
95
|
+
})),
|
|
96
|
+
() => local.closeable && jsx(Popover.CloseTrigger, mergeProps({
|
|
97
|
+
className: closeTriggerClass,
|
|
98
|
+
"aria-label": "Close",
|
|
99
|
+
children: "×"
|
|
100
|
+
})),
|
|
101
|
+
() => local.title && jsx(Popover.Title, mergeProps({
|
|
102
|
+
className: titleClass,
|
|
103
|
+
children: () => local.title
|
|
104
|
+
})),
|
|
105
|
+
() => local.description && jsx(Popover.Description, mergeProps({
|
|
106
|
+
className: descriptionClass,
|
|
107
|
+
children: () => local.description
|
|
108
|
+
}))
|
|
109
|
+
]
|
|
110
|
+
}))
|
|
111
|
+
})) }))]
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
114
|
+
Popover$1.origin = {
|
|
115
|
+
Root: Popover.Root,
|
|
116
|
+
Trigger: Popover.Trigger,
|
|
117
|
+
Positioner: Popover.Positioner,
|
|
118
|
+
Content: Popover.Content,
|
|
119
|
+
Arrow: Popover.Arrow,
|
|
120
|
+
ArrowTip: Popover.ArrowTip,
|
|
121
|
+
CloseTrigger: Popover.CloseTrigger,
|
|
122
|
+
Title: Popover.Title,
|
|
123
|
+
Description: Popover.Description
|
|
124
|
+
};
|
|
4
125
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=Popover.js.map
|
|
126
|
+
export { Popover$1 as default };
|