@number10/jsx-components 5.0.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/LICENSE +667 -0
- package/README.md +43 -0
- package/dist/Accordion.cjs +1 -0
- package/dist/Accordion.d.ts +43 -0
- package/dist/Accordion.d.ts.map +1 -0
- package/dist/Accordion.js +71 -0
- package/dist/Accordion.test.d.ts +2 -0
- package/dist/Accordion.test.d.ts.map +1 -0
- package/dist/ActivityIndicator.cjs +1 -0
- package/dist/ActivityIndicator.d.ts +21 -0
- package/dist/ActivityIndicator.d.ts.map +1 -0
- package/dist/ActivityIndicator.js +133 -0
- package/dist/AlertDialog.cjs +1 -0
- package/dist/AlertDialog.d.ts +53 -0
- package/dist/AlertDialog.d.ts.map +1 -0
- package/dist/AlertDialog.js +76 -0
- package/dist/Badge.cjs +1 -0
- package/dist/Badge.d.ts +96 -0
- package/dist/Badge.d.ts.map +1 -0
- package/dist/Badge.js +238 -0
- package/dist/Badge.test.d.ts +2 -0
- package/dist/Badge.test.d.ts.map +1 -0
- package/dist/BottomSheet.cjs +1 -0
- package/dist/BottomSheet.d.ts +72 -0
- package/dist/BottomSheet.d.ts.map +1 -0
- package/dist/BottomSheet.js +132 -0
- package/dist/Button.cjs +1 -0
- package/dist/Button.d.ts +61 -0
- package/dist/Button.d.ts.map +1 -0
- package/dist/Button.js +251 -0
- package/dist/Checkbox.cjs +1 -0
- package/dist/Checkbox.d.ts +40 -0
- package/dist/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox.js +84 -0
- package/dist/Checkbox.test.d.ts +2 -0
- package/dist/Checkbox.test.d.ts.map +1 -0
- package/dist/ColorPicker.cjs +1 -0
- package/dist/ColorPicker.d.ts +48 -0
- package/dist/ColorPicker.d.ts.map +1 -0
- package/dist/ColorPicker.js +256 -0
- package/dist/DebugPanel.cjs +1 -0
- package/dist/DebugPanel.d.ts +63 -0
- package/dist/DebugPanel.d.ts.map +1 -0
- package/dist/DebugPanel.js +116 -0
- package/dist/Dialog.cjs +1 -0
- package/dist/Dialog.d.ts +59 -0
- package/dist/Dialog.d.ts.map +1 -0
- package/dist/Dialog.js +142 -0
- package/dist/Divider.cjs +1 -0
- package/dist/Divider.d.ts +19 -0
- package/dist/Divider.d.ts.map +1 -0
- package/dist/Divider.js +15 -0
- package/dist/Divider.test.d.ts +2 -0
- package/dist/Divider.test.d.ts.map +1 -0
- package/dist/Dropdown.cjs +1 -0
- package/dist/Dropdown.d.ts +35 -0
- package/dist/Dropdown.d.ts.map +1 -0
- package/dist/Dropdown.js +222 -0
- package/dist/Icon.cjs +1 -0
- package/dist/Icon.d.ts +71 -0
- package/dist/Icon.d.ts.map +1 -0
- package/dist/Icon.js +57 -0
- package/dist/Icon.test.d.ts +2 -0
- package/dist/Icon.test.d.ts.map +1 -0
- package/dist/Image.cjs +1 -0
- package/dist/Image.d.ts +10 -0
- package/dist/Image.d.ts.map +1 -0
- package/dist/Image.js +18 -0
- package/dist/Joystick.cjs +1 -0
- package/dist/Joystick.d.ts +32 -0
- package/dist/Joystick.d.ts.map +1 -0
- package/dist/Joystick.js +185 -0
- package/dist/ListBox.cjs +1 -0
- package/dist/ListBox.d.ts +67 -0
- package/dist/ListBox.d.ts.map +1 -0
- package/dist/ListBox.js +104 -0
- package/dist/ListBox.test.d.ts +2 -0
- package/dist/ListBox.test.d.ts.map +1 -0
- package/dist/MenuButton.cjs +1 -0
- package/dist/MenuButton.d.ts +33 -0
- package/dist/MenuButton.d.ts.map +1 -0
- package/dist/MenuButton.js +63 -0
- package/dist/Modal.cjs +1 -0
- package/dist/Modal.d.ts +27 -0
- package/dist/Modal.d.ts.map +1 -0
- package/dist/Modal.js +174 -0
- package/dist/Modal.test.d.ts +2 -0
- package/dist/Modal.test.d.ts.map +1 -0
- package/dist/NineSlice.cjs +1 -0
- package/dist/NineSlice.d.ts +40 -0
- package/dist/NineSlice.d.ts.map +1 -0
- package/dist/NineSlice.js +314 -0
- package/dist/NineSlice.props.test.d.ts +2 -0
- package/dist/NineSlice.props.test.d.ts.map +1 -0
- package/dist/NineSlice.test.d.ts +2 -0
- package/dist/NineSlice.test.d.ts.map +1 -0
- package/dist/NineSliceButton.cjs +1 -0
- package/dist/NineSliceButton.d.ts +94 -0
- package/dist/NineSliceButton.d.ts.map +1 -0
- package/dist/NineSliceButton.js +61 -0
- package/dist/NineSliceButton.test.d.ts +2 -0
- package/dist/NineSliceButton.test.d.ts.map +1 -0
- package/dist/NumberInput.cjs +1 -0
- package/dist/NumberInput.d.ts +90 -0
- package/dist/NumberInput.d.ts.map +1 -0
- package/dist/NumberInput.js +222 -0
- package/dist/NumberInput.test.d.ts +2 -0
- package/dist/NumberInput.test.d.ts.map +1 -0
- package/dist/PalettePicker.cjs +1 -0
- package/dist/PalettePicker.d.ts +49 -0
- package/dist/PalettePicker.d.ts.map +1 -0
- package/dist/PalettePicker.js +152 -0
- package/dist/PalettePicker.test.d.ts +2 -0
- package/dist/PalettePicker.test.d.ts.map +1 -0
- package/dist/Popover.cjs +1 -0
- package/dist/Popover.d.ts +95 -0
- package/dist/Popover.d.ts.map +1 -0
- package/dist/Popover.js +267 -0
- package/dist/Portal.cjs +1 -0
- package/dist/Portal.d.ts +30 -0
- package/dist/Portal.d.ts.map +1 -0
- package/dist/Portal.js +64 -0
- package/dist/Portal.test.d.ts +2 -0
- package/dist/Portal.test.d.ts.map +1 -0
- package/dist/ProgressBar.cjs +1 -0
- package/dist/ProgressBar.d.ts +61 -0
- package/dist/ProgressBar.d.ts.map +1 -0
- package/dist/ProgressBar.js +80 -0
- package/dist/ProgressBar.test.d.ts +2 -0
- package/dist/ProgressBar.test.d.ts.map +1 -0
- package/dist/ProgressView.cjs +1 -0
- package/dist/ProgressView.d.ts +37 -0
- package/dist/ProgressView.d.ts.map +1 -0
- package/dist/ProgressView.js +71 -0
- package/dist/RadioButton.cjs +1 -0
- package/dist/RadioButton.d.ts +21 -0
- package/dist/RadioButton.d.ts.map +1 -0
- package/dist/RadioButton.js +53 -0
- package/dist/RadioGroup.cjs +1 -0
- package/dist/RadioGroup.d.ts +26 -0
- package/dist/RadioGroup.d.ts.map +1 -0
- package/dist/RadioGroup.js +32 -0
- package/dist/RatingBar.cjs +1 -0
- package/dist/RatingBar.d.ts +24 -0
- package/dist/RatingBar.d.ts.map +1 -0
- package/dist/RatingBar.js +84 -0
- package/dist/ScrollSlider.cjs +1 -0
- package/dist/ScrollSlider.d.ts +48 -0
- package/dist/ScrollSlider.d.ts.map +1 -0
- package/dist/ScrollSlider.js +93 -0
- package/dist/ScrollView.cjs +1 -0
- package/dist/ScrollView.d.ts +121 -0
- package/dist/ScrollView.d.ts.map +1 -0
- package/dist/ScrollView.js +541 -0
- package/dist/ScrollView.test.d.ts +2 -0
- package/dist/ScrollView.test.d.ts.map +1 -0
- package/dist/SegmentedControl.cjs +1 -0
- package/dist/SegmentedControl.d.ts +50 -0
- package/dist/SegmentedControl.d.ts.map +1 -0
- package/dist/SegmentedControl.js +201 -0
- package/dist/SegmentedControl.test.d.ts +2 -0
- package/dist/SegmentedControl.test.d.ts.map +1 -0
- package/dist/Sidebar.cjs +1 -0
- package/dist/Sidebar.d.ts +36 -0
- package/dist/Sidebar.d.ts.map +1 -0
- package/dist/Sidebar.js +122 -0
- package/dist/Slider.cjs +1 -0
- package/dist/Slider.d.ts +80 -0
- package/dist/Slider.d.ts.map +1 -0
- package/dist/Slider.js +233 -0
- package/dist/Tabs.cjs +1 -0
- package/dist/Tabs.d.ts +23 -0
- package/dist/Tabs.d.ts.map +1 -0
- package/dist/Tabs.js +101 -0
- package/dist/TextInput.cjs +17 -0
- package/dist/TextInput.d.ts +82 -0
- package/dist/TextInput.d.ts.map +1 -0
- package/dist/TextInput.js +441 -0
- package/dist/Toast.cjs +1 -0
- package/dist/Toast.d.ts +66 -0
- package/dist/Toast.d.ts.map +1 -0
- package/dist/Toast.js +188 -0
- package/dist/Toast.test.d.ts +2 -0
- package/dist/Toast.test.d.ts.map +1 -0
- package/dist/Toggle.cjs +1 -0
- package/dist/Toggle.d.ts +14 -0
- package/dist/Toggle.d.ts.map +1 -0
- package/dist/Toggle.js +135 -0
- package/dist/Toolbar.cjs +1 -0
- package/dist/Toolbar.d.ts +129 -0
- package/dist/Toolbar.d.ts.map +1 -0
- package/dist/Toolbar.js +159 -0
- package/dist/Toolbar.test.d.ts +2 -0
- package/dist/Toolbar.test.d.ts.map +1 -0
- package/dist/TransformOriginView.cjs +1 -0
- package/dist/TransformOriginView.d.ts +8 -0
- package/dist/TransformOriginView.d.ts.map +1 -0
- package/dist/TransformOriginView.js +38 -0
- package/dist/WheelPicker.cjs +1 -0
- package/dist/WheelPicker.d.ts +58 -0
- package/dist/WheelPicker.d.ts.map +1 -0
- package/dist/WheelPicker.js +167 -0
- package/dist/WrapText.cjs +1 -0
- package/dist/WrapText.d.ts +83 -0
- package/dist/WrapText.d.ts.map +1 -0
- package/dist/WrapText.js +93 -0
- package/dist/WrapText.test.d.ts +2 -0
- package/dist/WrapText.test.d.ts.map +1 -0
- package/dist/contrast-slot-map.d.ts +33 -0
- package/dist/contrast-slot-map.d.ts.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/primitives/Image.cjs +1 -0
- package/dist/primitives/Image.d.ts +11 -0
- package/dist/primitives/Image.d.ts.map +1 -0
- package/dist/primitives/Image.js +7 -0
- package/dist/primitives/Sprite.cjs +1 -0
- package/dist/primitives/Sprite.d.ts +11 -0
- package/dist/primitives/Sprite.d.ts.map +1 -0
- package/dist/primitives/Sprite.js +7 -0
- package/dist/primitives/Text.cjs +1 -0
- package/dist/primitives/Text.d.ts +14 -0
- package/dist/primitives/Text.d.ts.map +1 -0
- package/dist/primitives/Text.js +15 -0
- package/dist/primitives/VectorDrawContent.cjs +1 -0
- package/dist/primitives/VectorDrawContent.d.ts +3 -0
- package/dist/primitives/VectorDrawContent.d.ts.map +1 -0
- package/dist/primitives/VectorDrawContent.js +7 -0
- package/dist/primitives/View.cjs +1 -0
- package/dist/primitives/View.d.ts +13 -0
- package/dist/primitives/View.d.ts.map +1 -0
- package/dist/primitives/View.js +7 -0
- package/dist/primitives/index.d.ts +13 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/primitives.test.d.ts +2 -0
- package/dist/primitives/primitives.test.d.ts.map +1 -0
- package/dist/primitives.cjs +1 -0
- package/dist/primitives.d.ts +2 -0
- package/dist/primitives.js +6 -0
- package/dist/theme-defaults.cjs +1 -0
- package/dist/theme-defaults.d.ts +12 -0
- package/dist/theme-defaults.d.ts.map +1 -0
- package/dist/theme-defaults.js +1288 -0
- package/dist/theme-defaults.test.d.ts +2 -0
- package/dist/theme-defaults.test.d.ts.map +1 -0
- package/dist/theme-types.cjs +0 -0
- package/dist/theme-types.d.ts +708 -0
- package/dist/theme-types.d.ts.map +1 -0
- package/dist/theme-types.js +0 -0
- package/dist/useOverlayPresence.cjs +1 -0
- package/dist/useOverlayPresence.d.ts +24 -0
- package/dist/useOverlayPresence.d.ts.map +1 -0
- package/dist/useOverlayPresence.js +19 -0
- package/package.json +83 -0
package/dist/Button.js
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { Text as e } from "./primitives/Text.js";
|
|
2
|
+
import { View as t } from "./primitives/View.js";
|
|
3
|
+
import "./primitives.js";
|
|
4
|
+
import { HexColor as n, KNOWN_COMPONENTS as r, applyEffect as i, getGlobalThemeDefaults as a, getPresetWithMode as o, mergeThemes as s, registerComponentDefaultsIfMissing as c, resolveComponentTheme as l, resolveEffect as u, useRef as d, useTheme as f } from "@number10/jsx-core";
|
|
5
|
+
import { jsx as p } from "@number10/jsx-core/jsx-runtime";
|
|
6
|
+
//#region src/Button.tsx
|
|
7
|
+
function m() {
|
|
8
|
+
let e = o("oceanBlue", "light").colors, t = e.primary.dark.toNumber(), r = e.text.lightest.toNumber(), i = e.surface.lightest.toNumber(), a = e.text.dark.toNumber(), s = e.surface.medium.toNumber(), c = e.text.light.toNumber(), l = e.primary.light.toNumber(), u = e.text.light.toNumber(), d = e.error.dark.toNumber(), f = e.text.lightest.toNumber(), p = { medium: {
|
|
9
|
+
fontSize: "16px",
|
|
10
|
+
fontFamily: "Arial",
|
|
11
|
+
fontStyle: "bold"
|
|
12
|
+
} };
|
|
13
|
+
return {
|
|
14
|
+
variant: "primary",
|
|
15
|
+
size: "medium",
|
|
16
|
+
disabledColor: s,
|
|
17
|
+
disabledTextColor: "#" + new n(c.toString(16).padStart(6, "0")).toString(),
|
|
18
|
+
disabledIconTint: c,
|
|
19
|
+
disabledAlpha: .48,
|
|
20
|
+
height: 40,
|
|
21
|
+
backgroundColor: t,
|
|
22
|
+
backgroundAlpha: 1,
|
|
23
|
+
borderColor: e.primary.darkest.toNumber(),
|
|
24
|
+
borderWidth: 1,
|
|
25
|
+
cornerRadius: 8,
|
|
26
|
+
gap: 8,
|
|
27
|
+
padding: {
|
|
28
|
+
top: 8,
|
|
29
|
+
bottom: 8,
|
|
30
|
+
left: 16,
|
|
31
|
+
right: 16
|
|
32
|
+
},
|
|
33
|
+
justifyContent: "center",
|
|
34
|
+
alignItems: "center",
|
|
35
|
+
effect: "press",
|
|
36
|
+
effectConfig: {
|
|
37
|
+
intensity: .94,
|
|
38
|
+
time: 140
|
|
39
|
+
},
|
|
40
|
+
iconSize: 18,
|
|
41
|
+
textStyle: {
|
|
42
|
+
...p.medium,
|
|
43
|
+
color: `#${r.toString(16).padStart(6, "0")}`
|
|
44
|
+
},
|
|
45
|
+
Text: { style: {
|
|
46
|
+
...p.medium,
|
|
47
|
+
color: `#${r.toString(16).padStart(6, "0")}`
|
|
48
|
+
} },
|
|
49
|
+
Icon: {
|
|
50
|
+
size: 18,
|
|
51
|
+
tint: r
|
|
52
|
+
},
|
|
53
|
+
primary: {
|
|
54
|
+
backgroundColor: t,
|
|
55
|
+
borderColor: e.primary.darkest.toNumber(),
|
|
56
|
+
textStyle: {
|
|
57
|
+
color: `#${r.toString(16).padStart(6, "0")}`,
|
|
58
|
+
fontStyle: "bold"
|
|
59
|
+
},
|
|
60
|
+
Icon: { tint: r }
|
|
61
|
+
},
|
|
62
|
+
secondary: {
|
|
63
|
+
backgroundColor: i,
|
|
64
|
+
backgroundAlpha: .92,
|
|
65
|
+
borderColor: e.border.light.toNumber(),
|
|
66
|
+
borderWidth: 1,
|
|
67
|
+
textStyle: {
|
|
68
|
+
color: `#${a.toString(16).padStart(6, "0")}`,
|
|
69
|
+
fontStyle: "bold"
|
|
70
|
+
},
|
|
71
|
+
Icon: { tint: a }
|
|
72
|
+
},
|
|
73
|
+
outline: {
|
|
74
|
+
backgroundColor: e.primary.dark.toNumber(),
|
|
75
|
+
backgroundAlpha: .08,
|
|
76
|
+
borderColor: l,
|
|
77
|
+
borderWidth: 2,
|
|
78
|
+
textStyle: {
|
|
79
|
+
color: `#${l.toString(16).padStart(6, "0")}`,
|
|
80
|
+
fontStyle: "bold"
|
|
81
|
+
},
|
|
82
|
+
Icon: { tint: l }
|
|
83
|
+
},
|
|
84
|
+
ghost: {
|
|
85
|
+
backgroundColor: e.surface.light.toNumber(),
|
|
86
|
+
backgroundAlpha: .18,
|
|
87
|
+
borderColor: e.border.medium.toNumber(),
|
|
88
|
+
borderAlpha: .35,
|
|
89
|
+
borderWidth: 1,
|
|
90
|
+
textStyle: {
|
|
91
|
+
color: `#${u.toString(16).padStart(6, "0")}`,
|
|
92
|
+
fontStyle: "bold"
|
|
93
|
+
},
|
|
94
|
+
Icon: { tint: u }
|
|
95
|
+
},
|
|
96
|
+
danger: {
|
|
97
|
+
backgroundColor: d,
|
|
98
|
+
borderColor: e.error.darkest.toNumber(),
|
|
99
|
+
textStyle: {
|
|
100
|
+
color: `#${f.toString(16).padStart(6, "0")}`,
|
|
101
|
+
fontStyle: "bold"
|
|
102
|
+
},
|
|
103
|
+
Icon: { tint: f }
|
|
104
|
+
},
|
|
105
|
+
small: {
|
|
106
|
+
height: 32,
|
|
107
|
+
padding: {
|
|
108
|
+
top: 6,
|
|
109
|
+
bottom: 6,
|
|
110
|
+
left: 12,
|
|
111
|
+
right: 12
|
|
112
|
+
},
|
|
113
|
+
cornerRadius: 6,
|
|
114
|
+
gap: 6,
|
|
115
|
+
iconSize: 15,
|
|
116
|
+
textStyle: { fontSize: "12px" },
|
|
117
|
+
Icon: { size: 15 }
|
|
118
|
+
},
|
|
119
|
+
medium: {
|
|
120
|
+
height: 40,
|
|
121
|
+
padding: {
|
|
122
|
+
top: 8,
|
|
123
|
+
bottom: 8,
|
|
124
|
+
left: 16,
|
|
125
|
+
right: 16
|
|
126
|
+
},
|
|
127
|
+
cornerRadius: 8,
|
|
128
|
+
gap: 8,
|
|
129
|
+
iconSize: 18,
|
|
130
|
+
Icon: { size: 18 }
|
|
131
|
+
},
|
|
132
|
+
large: {
|
|
133
|
+
height: 48,
|
|
134
|
+
padding: {
|
|
135
|
+
top: 10,
|
|
136
|
+
bottom: 10,
|
|
137
|
+
left: 20,
|
|
138
|
+
right: 20
|
|
139
|
+
},
|
|
140
|
+
cornerRadius: 10,
|
|
141
|
+
gap: 10,
|
|
142
|
+
iconSize: 22,
|
|
143
|
+
textStyle: { fontSize: "18px" },
|
|
144
|
+
Icon: { size: 22 }
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
c("Button", m());
|
|
149
|
+
function h(e, t) {
|
|
150
|
+
return t ? {
|
|
151
|
+
...e,
|
|
152
|
+
...t,
|
|
153
|
+
textStyle: e.textStyle || t.textStyle ? {
|
|
154
|
+
...e.textStyle ?? {},
|
|
155
|
+
...t.textStyle ?? {}
|
|
156
|
+
} : void 0,
|
|
157
|
+
Text: e.Text || t.Text ? {
|
|
158
|
+
...e.Text ?? {},
|
|
159
|
+
...t.Text ?? {},
|
|
160
|
+
style: e.Text?.style || t.Text?.style ? {
|
|
161
|
+
...e.Text?.style ?? {},
|
|
162
|
+
...t.Text?.style ?? {}
|
|
163
|
+
} : void 0
|
|
164
|
+
} : void 0,
|
|
165
|
+
Icon: e.Icon || t.Icon ? {
|
|
166
|
+
...e.Icon ?? {},
|
|
167
|
+
...t.Icon ?? {}
|
|
168
|
+
} : void 0
|
|
169
|
+
} : e;
|
|
170
|
+
}
|
|
171
|
+
function g(e, t, n) {
|
|
172
|
+
if (!n) return;
|
|
173
|
+
let r = e[t], i = e[n];
|
|
174
|
+
return {
|
|
175
|
+
...r?.[n] ?? {},
|
|
176
|
+
...i ?? {}
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function _(e) {
|
|
180
|
+
let t = e.Text ?? {}, n = e.Icon ?? {}, r = e.textStyle || t.style ? {
|
|
181
|
+
...t.style ?? {},
|
|
182
|
+
...e.textStyle ?? {}
|
|
183
|
+
} : void 0;
|
|
184
|
+
return {
|
|
185
|
+
Text: r ? {
|
|
186
|
+
...t,
|
|
187
|
+
style: r
|
|
188
|
+
} : t,
|
|
189
|
+
Icon: {
|
|
190
|
+
...n,
|
|
191
|
+
...e.iconSize === void 0 ? {} : { size: e.iconSize }
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function v(n) {
|
|
196
|
+
let { children: o, label: c, text: m, onClick: v, disabled: y = !1, variant: b, size: x, width: S, height: C, textStyle: w, iconSize: T, disabledAlpha: E, alpha: D, theme: O, onTouch: k, effect: A, effectConfig: j, ...M } = n, N = f(), P = O ? s(N ?? {}, O) : N, { props: F, nestedTheme: I } = l({
|
|
197
|
+
componentName: "Button",
|
|
198
|
+
globalTheme: a(),
|
|
199
|
+
localTheme: P,
|
|
200
|
+
explicitProps: M,
|
|
201
|
+
knownComponents: r
|
|
202
|
+
}), L = d(null), R = b ?? F.variant ?? "primary", z = x ?? F.size ?? "medium", B = h(h({ ...F }, g(F, "variants", R)), g(F, "sizes", z)), V = B.textStyle || w ? {
|
|
203
|
+
...B.textStyle ?? {},
|
|
204
|
+
...w ?? {}
|
|
205
|
+
} : void 0, H = T ?? B.iconSize, U = E ?? B.disabledAlpha ?? .5, W = B.disabledTextColor ?? F.disabledTextColor ?? V?.color, G = B.disabledIconTint ?? F.disabledIconTint ?? B.iconTint, K = y && W ? {
|
|
206
|
+
...V ?? {},
|
|
207
|
+
color: W
|
|
208
|
+
} : V, q = {
|
|
209
|
+
...K ? { textStyle: K } : {},
|
|
210
|
+
...H === void 0 ? {} : { iconSize: H },
|
|
211
|
+
...y && G !== void 0 ? { Icon: {
|
|
212
|
+
...B.Icon ?? {},
|
|
213
|
+
tint: G
|
|
214
|
+
} } : {}
|
|
215
|
+
}, J = y ? {
|
|
216
|
+
...B,
|
|
217
|
+
backgroundColor: B.disabledColor ?? F.disabledColor ?? B.backgroundColor,
|
|
218
|
+
backgroundAlpha: U,
|
|
219
|
+
...D === void 0 ? {} : { alpha: D },
|
|
220
|
+
...q
|
|
221
|
+
} : {
|
|
222
|
+
...B,
|
|
223
|
+
...D === void 0 ? {} : { alpha: D },
|
|
224
|
+
...q
|
|
225
|
+
}, Y = y ? void 0 : (e) => {
|
|
226
|
+
let t = u({
|
|
227
|
+
effect: A,
|
|
228
|
+
effectConfig: j
|
|
229
|
+
}, J);
|
|
230
|
+
i(L.current, t.effect, t.effectConfig), k?.(e), v?.();
|
|
231
|
+
}, X = c ?? m, Z = o ?? (X === void 0 ? null : /* @__PURE__ */ p(e, {
|
|
232
|
+
text: `${X}`,
|
|
233
|
+
...K ? { style: K } : {}
|
|
234
|
+
})), Q = s(I, _(J)), { disabledColor: ee, disabledTextColor: te, disabledIconTint: ne, disabledAlpha: re, effect: ie, effectConfig: ae, textStyle: oe, iconSize: se, variant: ce, size: le, variants: ue, sizes: de, Text: fe, Icon: pe, primary: me, secondary: he, outline: ge, ghost: _e, danger: ve, small: ye, medium: be, large: xe, iconTint: Se, ...$ } = J;
|
|
235
|
+
return /* @__PURE__ */ p(t, {
|
|
236
|
+
ref: L,
|
|
237
|
+
direction: "row",
|
|
238
|
+
alignItems: "center",
|
|
239
|
+
justifyContent: "center",
|
|
240
|
+
enableGestures: !0,
|
|
241
|
+
...Y ? { onTouch: Y } : {},
|
|
242
|
+
theme: Q,
|
|
243
|
+
...$,
|
|
244
|
+
width: S,
|
|
245
|
+
height: C,
|
|
246
|
+
...M,
|
|
247
|
+
children: Z
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
//#endregion
|
|
251
|
+
export { v as Button };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./primitives/Text.cjs`),t=require(`./primitives/View.cjs`);require(`./primitives.cjs`);let n=require(`@number10/jsx-core`),r=require(`@number10/jsx-core/jsx-runtime`);function i(e,t){return t?e===!1?!0:e===!0?`indeterminate`:!1:e!==!0}function a(e,t){return e===`indeterminate`&&!t?!1:e}function o(n){let{checked:i,disabled:a,size:o,color:s,checkedColor:c,indeterminateColor:l}=n,u=Math.max(2,Math.round(o*.1)),d=Math.max(4,Math.round(o*.22)),f=Math.max(2,Math.round(o*.15)),p=a?.45:1;return(0,r.jsx)(t.View,{width:o,height:o,borderColor:i===!1?s:i===!0?c:l,borderWidth:u,backgroundAlpha:0,cornerRadius:f,alpha:p,justifyContent:`center`,alignItems:`center`,children:i===!0?(0,r.jsx)(e.Text,{text:`✓`,style:{color:`#${c.toString(16).padStart(6,`0`)}`,fontSize:`${Math.round(o*.7)}px`,fontStyle:`bold`},alpha:p}):i===`indeterminate`?(0,r.jsx)(t.View,{width:o-d*2,height:u+1,backgroundColor:l,backgroundAlpha:p,cornerRadius:1}):null})}function s(s){let c=(0,n.useTheme)(),l=s.theme?(0,n.mergeThemes)(c??{},s.theme):c,{props:u,nestedTheme:d}=(0,n.resolveComponentTheme)({componentName:`Checkbox`,globalTheme:(0,n.getGlobalThemeDefaults)(),localTheme:l,knownComponents:n.KNOWN_COMPONENTS}),f=u.size??20,p=u.gap??8,m=s.labelPosition??u.labelPosition??`right`,h=s.disabled??!1,g=u.disabledAlpha??.5,_=s.tristate??!1,[v,y]=(0,n.useState)(a(s.checked??s.defaultChecked??!1,_));(0,n.useEffect)(()=>{s.checked!==void 0&&y(a(s.checked,_))},[s.checked,_]);let b={checked:v,disabled:h,size:f,color:u.color??7829367,checkedColor:u.checkedColor??5025616,indeterminateColor:u.indeterminateColor??u.checkedColor??5025616},x=()=>{if(h)return;let e=i(v,_);s.checked===void 0&&y(e),s.onChange?.(e)},S=s.indicator??s.renderIndicator?.(b)??(0,r.jsx)(o,{...b}),C=s.label&&m!==`none`?(0,r.jsx)(e.Text,{text:s.label,style:u.labelStyle,alpha:h?g:1}):null;return(0,r.jsxs)(t.View,{direction:`row`,alignItems:`center`,enableGestures:!h,onTouch:x,theme:d,gap:p,alpha:h?g:1,children:[m===`left`&&C,S,m!==`left`&&C]},s.key)}exports.Checkbox=s,exports.getNextCheckedState=i,exports.normalizeCheckedState=a;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { VNodeLike } from '@number10/jsx-core';
|
|
2
|
+
import { PortableComponentPartialTheme } from './theme-types';
|
|
3
|
+
export type CheckboxState = boolean | 'indeterminate';
|
|
4
|
+
export type CheckboxLabelPosition = 'left' | 'right' | 'none';
|
|
5
|
+
export interface CheckboxIndicatorRenderProps {
|
|
6
|
+
checked: CheckboxState;
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
size: number;
|
|
9
|
+
color: number;
|
|
10
|
+
checkedColor: number;
|
|
11
|
+
indeterminateColor: number;
|
|
12
|
+
}
|
|
13
|
+
export interface CheckboxProps {
|
|
14
|
+
/** Unique key for VDOM identification */
|
|
15
|
+
key?: string | number | undefined;
|
|
16
|
+
/** Label text rendered next to the indicator */
|
|
17
|
+
label?: string;
|
|
18
|
+
/** Controlled checked state */
|
|
19
|
+
checked?: CheckboxState;
|
|
20
|
+
/** Initial state for uncontrolled checkboxes */
|
|
21
|
+
defaultChecked?: CheckboxState;
|
|
22
|
+
/** Enables unchecked -> checked -> indeterminate cycling */
|
|
23
|
+
tristate?: boolean;
|
|
24
|
+
/** Disabled state */
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/** Label position relative to the indicator */
|
|
27
|
+
labelPosition?: CheckboxLabelPosition;
|
|
28
|
+
/** Optional custom indicator content (overrides default) */
|
|
29
|
+
indicator?: VNodeLike;
|
|
30
|
+
/** Render function for custom indicators */
|
|
31
|
+
renderIndicator?: (props: CheckboxIndicatorRenderProps) => VNodeLike;
|
|
32
|
+
/** Optional theme overrides */
|
|
33
|
+
theme?: PortableComponentPartialTheme<'Checkbox'>;
|
|
34
|
+
/** Callback when checked state changes */
|
|
35
|
+
onChange?: (checked: CheckboxState) => void;
|
|
36
|
+
}
|
|
37
|
+
export declare function getNextCheckedState(checked: CheckboxState, tristate: boolean): CheckboxState;
|
|
38
|
+
export declare function normalizeCheckedState(checked: CheckboxState, tristate: boolean): CheckboxState;
|
|
39
|
+
export declare function Checkbox(props: CheckboxProps): VNodeLike;
|
|
40
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAWnD,OAAO,KAAK,EAAiB,6BAA6B,EAAE,MAAM,eAAe,CAAA;AAMjF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,eAAe,CAAA;AACrD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAE7D,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACjC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,gDAAgD;IAChD,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,qBAAqB,CAAA;IACrC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,SAAS,CAAA;IACpE,+BAA+B;IAC/B,KAAK,CAAC,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAA;IACjD,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CAC5C;AAMD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,aAAa,CAK5F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,aAAa,CAE9F;AAsDD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAqExD"}
|
package/dist/Checkbox.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Text as e } from "./primitives/Text.js";
|
|
2
|
+
import { View as t } from "./primitives/View.js";
|
|
3
|
+
import "./primitives.js";
|
|
4
|
+
import { KNOWN_COMPONENTS as n, getGlobalThemeDefaults as r, mergeThemes as i, resolveComponentTheme as a, useEffect as o, useState as s, useTheme as c } from "@number10/jsx-core";
|
|
5
|
+
import { jsx as l, jsxs as u } from "@number10/jsx-core/jsx-runtime";
|
|
6
|
+
//#region src/Checkbox.tsx
|
|
7
|
+
function d(e, t) {
|
|
8
|
+
return t ? e === !1 ? !0 : e === !0 ? "indeterminate" : !1 : e !== !0;
|
|
9
|
+
}
|
|
10
|
+
function f(e, t) {
|
|
11
|
+
return e === "indeterminate" && !t ? !1 : e;
|
|
12
|
+
}
|
|
13
|
+
function p(n) {
|
|
14
|
+
let { checked: r, disabled: i, size: a, color: o, checkedColor: s, indeterminateColor: c } = n, u = Math.max(2, Math.round(a * .1)), d = Math.max(4, Math.round(a * .22)), f = Math.max(2, Math.round(a * .15)), p = i ? .45 : 1;
|
|
15
|
+
return /* @__PURE__ */ l(t, {
|
|
16
|
+
width: a,
|
|
17
|
+
height: a,
|
|
18
|
+
borderColor: r === !1 ? o : r === !0 ? s : c,
|
|
19
|
+
borderWidth: u,
|
|
20
|
+
backgroundAlpha: 0,
|
|
21
|
+
cornerRadius: f,
|
|
22
|
+
alpha: p,
|
|
23
|
+
justifyContent: "center",
|
|
24
|
+
alignItems: "center",
|
|
25
|
+
children: r === !0 ? /* @__PURE__ */ l(e, {
|
|
26
|
+
text: "✓",
|
|
27
|
+
style: {
|
|
28
|
+
color: `#${s.toString(16).padStart(6, "0")}`,
|
|
29
|
+
fontSize: `${Math.round(a * .7)}px`,
|
|
30
|
+
fontStyle: "bold"
|
|
31
|
+
},
|
|
32
|
+
alpha: p
|
|
33
|
+
}) : r === "indeterminate" ? /* @__PURE__ */ l(t, {
|
|
34
|
+
width: a - d * 2,
|
|
35
|
+
height: u + 1,
|
|
36
|
+
backgroundColor: c,
|
|
37
|
+
backgroundAlpha: p,
|
|
38
|
+
cornerRadius: 1
|
|
39
|
+
}) : null
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function m(m) {
|
|
43
|
+
let h = c(), g = m.theme ? i(h ?? {}, m.theme) : h, { props: _, nestedTheme: v } = a({
|
|
44
|
+
componentName: "Checkbox",
|
|
45
|
+
globalTheme: r(),
|
|
46
|
+
localTheme: g,
|
|
47
|
+
knownComponents: n
|
|
48
|
+
}), y = _.size ?? 20, b = _.gap ?? 8, x = m.labelPosition ?? _.labelPosition ?? "right", S = m.disabled ?? !1, C = _.disabledAlpha ?? .5, w = m.tristate ?? !1, [T, E] = s(f(m.checked ?? m.defaultChecked ?? !1, w));
|
|
49
|
+
o(() => {
|
|
50
|
+
m.checked !== void 0 && E(f(m.checked, w));
|
|
51
|
+
}, [m.checked, w]);
|
|
52
|
+
let D = {
|
|
53
|
+
checked: T,
|
|
54
|
+
disabled: S,
|
|
55
|
+
size: y,
|
|
56
|
+
color: _.color ?? 7829367,
|
|
57
|
+
checkedColor: _.checkedColor ?? 5025616,
|
|
58
|
+
indeterminateColor: _.indeterminateColor ?? _.checkedColor ?? 5025616
|
|
59
|
+
}, O = () => {
|
|
60
|
+
if (S) return;
|
|
61
|
+
let e = d(T, w);
|
|
62
|
+
m.checked === void 0 && E(e), m.onChange?.(e);
|
|
63
|
+
}, k = m.indicator ?? m.renderIndicator?.(D) ?? /* @__PURE__ */ l(p, { ...D }), A = m.label && x !== "none" ? /* @__PURE__ */ l(e, {
|
|
64
|
+
text: m.label,
|
|
65
|
+
style: _.labelStyle,
|
|
66
|
+
alpha: S ? C : 1
|
|
67
|
+
}) : null;
|
|
68
|
+
return /* @__PURE__ */ u(t, {
|
|
69
|
+
direction: "row",
|
|
70
|
+
alignItems: "center",
|
|
71
|
+
enableGestures: !S,
|
|
72
|
+
onTouch: O,
|
|
73
|
+
theme: v,
|
|
74
|
+
gap: b,
|
|
75
|
+
alpha: S ? C : 1,
|
|
76
|
+
children: [
|
|
77
|
+
x === "left" && A,
|
|
78
|
+
k,
|
|
79
|
+
x !== "left" && A
|
|
80
|
+
]
|
|
81
|
+
}, m.key);
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { m as Checkbox, d as getNextCheckedState, f as normalizeCheckedState };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.test.d.ts","sourceRoot":"","sources":["../src/Checkbox.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./primitives/Text.cjs`),t=require(`./primitives/VectorDrawContent.cjs`),n=require(`./primitives/View.cjs`);require(`./primitives.cjs`);const r=require(`./RadioGroup.cjs`),i=require(`./Slider.cjs`);let a=require(`@number10/jsx-core`),o=require(`@number10/jsx-core/jsx-runtime`);var ee={title:`Color Picker`,tone:`Tone`,vivid:`Vivid`,muted:`Muted`,hue:`Hue`,saturation:`Saturation`,lightness:`Lightness`,close:`X`};function s(e,t,n){return Math.max(t,Math.min(n,e))}function c(e,t,n){return(0,a.hslToNumber)(s(e,0,360)/360,s(t,0,100)/100,s(n,0,100)/100)}function l(e){let t=(0,a.numberToHsl)(e);return{hue:Math.round(t.h*360),saturation:Math.round(t.s*100),lightness:Math.round(t.l*100)}}function u(u){let{value:d,defaultValue:te=3113197,onChange:ne,tone:f,defaultTone:p=`vivid`,onToneChange:re,onClose:m,showCloseButton:ie,showTone:ae=!0,showSwatches:oe=!0,showRgbLabel:se=!0,labels:h,trackLength:g,previewSize:_,gradientSteps:v,theme:y}=u,b=(0,a.useTheme)(),ce=y?(0,a.mergeThemes)(b??{},y):b,{props:x,nestedTheme:S}=(0,a.resolveComponentTheme)({componentName:`ColorPicker`,globalTheme:(0,a.getGlobalThemeDefaults)(),localTheme:ce,knownComponents:a.KNOWN_COMPONENTS}),C=l(d??te),[w,T]=(0,a.useState)(C.hue),[E,D]=(0,a.useState)(C.saturation),[O,k]=(0,a.useState)(C.lightness),[A,j]=(0,a.useState)(f??p),M=(0,a.useRef)(void 0),N=f??A,P=c(w,E,O),F=(0,a.numberToRgb)(P),le=(0,a.numberToHex)(P).toUpperCase(),I={...ee,...x.labels??{},...h??{}},L=x.labelStyle??{color:`#ffffff`,fontSize:`12px`},R=x.valueStyle??L,z=x.titleStyle??{color:`#ffffff`,fontSize:`16px`,fontStyle:`bold`},B=g??x.trackLength??280,V=x.trackHeight??14,H=_??x.previewSize??116,U=v??x.gradientSteps??32,W=x.borderColor??3489874,ue=x.backgroundColor??1515566,de=x.controlBackgroundColor??2240583,G=x.thumbBorderColor??16777215,K=x.swatchSize??18,fe=ie??m!==void 0;(0,a.useEffect)(()=>{if(d===void 0||d===M.current)return;let e=l(d);T(e.hue),D(e.saturation),k(e.lightness)},[d]),(0,a.useEffect)(()=>{f!==void 0&&f!==A&&j(f)},[f,A]);let pe=(e,t,n,r=N)=>{let i=c(e,t,n);M.current=i,ne?.(i,{hue:e,saturation:t,lightness:n,tone:r})},q=(e,t,n,r=N)=>{let i=Math.round(s(e,0,360)),a=Math.round(s(t,0,100)),o=Math.round(s(n,0,100));T(i),D(a),k(o),pe(i,a,o,r)},J=e=>{let t=l(e);q(t.hue,t.saturation,t.lightness)},me=e=>{let t=Math.round(e===`muted`?E*.6:s(E/.6,Math.max(E,70),100));f===void 0&&j(e),re?.(e),q(w,t,O,e)},he=[(0,a.darken)(P,.35),(0,a.darken)(P,.15),P,(0,a.lighten)(P,.2),(0,a.lighten)(P,.4)],Y=x.thumbSize??18,X=Y/2,ge=Math.max(1,Math.round(X*.22)),_e=(0,a.mergeThemes)(S,{Slider:{trackHeight:V,trackBorderRadius:V/2,thumbSize:Y,thumbBorderWidth:2,thumbBorderColor:G}}),Z=e=>()=>(0,o.jsx)(n.View,{width:B,height:V,children:(0,o.jsx)(t.VectorDrawContent,{onDraw:t=>{let n=B/U;for(let r=0;r<U;r+=1){let i=U===1?1:r/(U-1);t.fillStyle(e(i),1),t.fillRect(r*n,0,n+1,V)}}})}),Q=e=>(n,r)=>(0,o.jsx)(t.VectorDrawContent,{scale:r?1.2:1,onDraw:t=>{t.fillStyle(0,.32).fillCircle(0,ge,X),t.fillStyle(e,1).fillCircle(0,0,X),t.lineStyle(2,G,1).strokeCircle(0,0,X),r&&t.lineStyle(2,e,.7).strokeCircle(0,0,X+4)}}),$=(t,r)=>(0,o.jsxs)(n.View,{direction:`row`,width:B,justifyContent:`space-between`,children:[(0,o.jsx)(e.Text,{text:t,style:L}),(0,o.jsx)(e.Text,{text:r,style:R})]});return(0,o.jsxs)(n.View,{direction:`row`,gap:x.gap??18,padding:x.padding??14,backgroundColor:ue,borderColor:W,borderWidth:x.borderWidth??1,cornerRadius:x.cornerRadius??8,alignItems:`center`,theme:S,children:[(0,o.jsxs)(n.View,{gap:x.previewGap??10,width:Math.max(H,132),children:[(0,o.jsx)(n.View,{width:H,height:H,backgroundColor:P,borderColor:W,borderWidth:x.previewBorderWidth??2,cornerRadius:x.previewCornerRadius??8,alignItems:`center`,justifyContent:`center`,children:(0,o.jsx)(e.Text,{text:le,style:x.hexStyle})}),se?(0,o.jsx)(e.Text,{text:I.formatRgb?I.formatRgb(F):`rgb ${F.r}, ${F.g}, ${F.b}`,style:L}):null,oe?(0,o.jsx)(n.View,{direction:`row`,gap:x.swatchGap??6,children:he.map((e,t)=>(0,o.jsx)(n.View,{width:K,height:K,backgroundColor:e,borderColor:W,borderWidth:1,cornerRadius:x.swatchCornerRadius??4,enableGestures:!0,onTouch:()=>J(e)},`swatch-${t}`))}):null]}),(0,o.jsxs)(n.View,{gap:x.controlGap??12,theme:_e,children:[(0,o.jsxs)(n.View,{direction:`row`,justifyContent:`space-between`,alignItems:`center`,width:B,children:[(0,o.jsx)(e.Text,{text:I.title,style:z}),fe?(0,o.jsx)(n.View,{width:x.closeButtonSize??24,height:x.closeButtonSize??24,alignItems:`center`,justifyContent:`center`,backgroundColor:de,backgroundAlpha:x.controlBackgroundAlpha??.65,borderColor:W,borderWidth:1,cornerRadius:x.closeButtonCornerRadius??5,enableGestures:!0,onTouch:()=>m?.(),children:(0,o.jsx)(e.Text,{text:I.close,style:L})}):null]}),ae?(0,o.jsxs)(n.View,{direction:`row`,gap:12,alignItems:`center`,children:[(0,o.jsx)(e.Text,{text:I.tone,style:L}),(0,o.jsx)(r.RadioGroup,{direction:`row`,options:[{value:`vivid`,label:I.vivid},{value:`muted`,label:I.muted}],value:N,onChange:e=>me(e)})]}):null,(0,o.jsxs)(n.View,{gap:6,children:[$(I.hue,I.formatHue?.(w)??`${Math.round(w)}deg`),(0,o.jsx)(i.Slider,{value:w,onChange:e=>q(e,E,O),min:0,max:360,step:1,trackLength:B,renderTrack:Z(e=>c(e*360,100,50)),renderThumb:Q(c(w,100,50))})]}),(0,o.jsxs)(n.View,{gap:6,children:[$(I.saturation,I.formatSaturation?.(E)??`${Math.round(E)}%`),(0,o.jsx)(i.Slider,{value:E,onChange:e=>q(w,e,O),min:0,max:100,step:1,trackLength:B,renderTrack:Z(e=>c(w,e*100,O)),renderThumb:Q(P)})]}),(0,o.jsxs)(n.View,{gap:6,children:[$(I.lightness,I.formatLightness?.(O)??`${Math.round(O)}%`),(0,o.jsx)(i.Slider,{value:O,onChange:e=>q(w,E,e),min:0,max:100,step:1,trackLength:B,renderTrack:Z(e=>c(w,E,e*100)),renderThumb:Q(P)})]})]})]})}exports.ColorPicker=u;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { VNodeLike } from '@number10/jsx-core';
|
|
2
|
+
import { PortableComponentPartialTheme } from './theme-types';
|
|
3
|
+
export type ColorPickerTone = 'vivid' | 'muted';
|
|
4
|
+
export interface ColorPickerState {
|
|
5
|
+
hue: number;
|
|
6
|
+
saturation: number;
|
|
7
|
+
lightness: number;
|
|
8
|
+
tone: ColorPickerTone;
|
|
9
|
+
}
|
|
10
|
+
export interface ColorPickerLabels {
|
|
11
|
+
title?: string;
|
|
12
|
+
tone?: string;
|
|
13
|
+
vivid?: string;
|
|
14
|
+
muted?: string;
|
|
15
|
+
hue?: string;
|
|
16
|
+
saturation?: string;
|
|
17
|
+
lightness?: string;
|
|
18
|
+
close?: string;
|
|
19
|
+
formatHue?: (value: number) => string;
|
|
20
|
+
formatSaturation?: (value: number) => string;
|
|
21
|
+
formatLightness?: (value: number) => string;
|
|
22
|
+
formatRgb?: (rgb: {
|
|
23
|
+
r: number;
|
|
24
|
+
g: number;
|
|
25
|
+
b: number;
|
|
26
|
+
}) => string;
|
|
27
|
+
}
|
|
28
|
+
export interface ColorPickerProps {
|
|
29
|
+
key?: string | number | undefined;
|
|
30
|
+
value?: number;
|
|
31
|
+
defaultValue?: number;
|
|
32
|
+
onChange?: (color: number, state: ColorPickerState) => void;
|
|
33
|
+
tone?: ColorPickerTone;
|
|
34
|
+
defaultTone?: ColorPickerTone;
|
|
35
|
+
onToneChange?: (tone: ColorPickerTone) => void;
|
|
36
|
+
onClose?: () => void;
|
|
37
|
+
showCloseButton?: boolean;
|
|
38
|
+
showTone?: boolean;
|
|
39
|
+
showSwatches?: boolean;
|
|
40
|
+
showRgbLabel?: boolean;
|
|
41
|
+
labels?: ColorPickerLabels;
|
|
42
|
+
trackLength?: number;
|
|
43
|
+
previewSize?: number;
|
|
44
|
+
gradientSteps?: number;
|
|
45
|
+
theme?: PortableComponentPartialTheme<'ColorPicker'>;
|
|
46
|
+
}
|
|
47
|
+
export declare function ColorPicker(props: ColorPickerProps): VNodeLike;
|
|
48
|
+
//# sourceMappingURL=ColorPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorPicker.d.ts","sourceRoot":"","sources":["../src/ColorPicker.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAoBnD,OAAO,KAAK,EAAoB,6BAA6B,EAAE,MAAM,eAAe,CAAA;AAIpF,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,eAAe,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3C,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;CACjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC3D,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,6BAA6B,CAAC,aAAa,CAAC,CAAA;CACrD;AA0CD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAgV9D"}
|