@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/Toast.js
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { Text as e } from "./primitives/Text.js";
|
|
2
|
+
import { View as t } from "./primitives/View.js";
|
|
3
|
+
import "./primitives.js";
|
|
4
|
+
import { Button as n } from "./Button.js";
|
|
5
|
+
import { Portal as r } from "./Portal.js";
|
|
6
|
+
import { WrapText as i } from "./WrapText.js";
|
|
7
|
+
import { KNOWN_COMPONENTS as a, getGlobalThemeDefaults as o, mergeThemes as s, resolveComponentTheme as c, useEffect as l, useMemo as u, useTheme as d, useViewportSize as f } from "@number10/jsx-core";
|
|
8
|
+
import { jsx as p, jsxs as m } from "@number10/jsx-core/jsx-runtime";
|
|
9
|
+
//#region src/Toast.tsx
|
|
10
|
+
function h(e) {
|
|
11
|
+
let t = e.startsWith("bottom") ? "end" : "start";
|
|
12
|
+
return e.endsWith("left") ? {
|
|
13
|
+
justifyContent: t,
|
|
14
|
+
alignItems: "start"
|
|
15
|
+
} : e.endsWith("right") ? {
|
|
16
|
+
justifyContent: t,
|
|
17
|
+
alignItems: "end"
|
|
18
|
+
} : {
|
|
19
|
+
justifyContent: t,
|
|
20
|
+
alignItems: "center"
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function g(e, t) {
|
|
24
|
+
return e.autoDismiss === !1 ? 0 : e.duration ?? t;
|
|
25
|
+
}
|
|
26
|
+
function _(e) {
|
|
27
|
+
if (typeof e == "number") return e * 2;
|
|
28
|
+
if (!e) return 0;
|
|
29
|
+
let t = e;
|
|
30
|
+
return (t.left ?? 0) + (t.right ?? 0);
|
|
31
|
+
}
|
|
32
|
+
function v(e) {
|
|
33
|
+
return typeof e == "number" ? e : e ? e.horizontal ?? 0 : 0;
|
|
34
|
+
}
|
|
35
|
+
function y(e) {
|
|
36
|
+
if (typeof e.width != "number") return;
|
|
37
|
+
let t = 2 + +!!e.hasPrefix + +!!e.hasClose, n = Math.max(0, t - 1) * e.gap, r = _(e.padding) + e.accentWidth + (e.hasPrefix ? e.prefixWidth : 0) + (e.hasClose ? e.closeButtonSize : 0) + n;
|
|
38
|
+
return Math.max(e.minContentWidth ?? 96, e.width - r);
|
|
39
|
+
}
|
|
40
|
+
function b(e) {
|
|
41
|
+
return Number.isFinite(e) && e > 0;
|
|
42
|
+
}
|
|
43
|
+
function x(r) {
|
|
44
|
+
let { variant: l, title: u, message: f, children: h, prefix: g, suffix: _, action: b, dismissible: x = !0, onDismiss: S, labels: C, theme: w, ...T } = r, E = d(), D = w ? s(E ?? {}, w) : E, { props: O, nestedTheme: k } = c({
|
|
45
|
+
componentName: "Toast",
|
|
46
|
+
globalTheme: o(),
|
|
47
|
+
localTheme: D,
|
|
48
|
+
knownComponents: a
|
|
49
|
+
}), A = l ?? O.variant ?? "info", j = O.variants?.[A] ?? {}, M = T.width ?? O.width ?? 320, N = T.padding ?? O.padding ?? {
|
|
50
|
+
left: 10,
|
|
51
|
+
right: 10,
|
|
52
|
+
top: 9,
|
|
53
|
+
bottom: 9
|
|
54
|
+
}, P = v(T.gap ?? O.gap ?? 10), F = O.accentWidth ?? 4, I = O.prefixWidth ?? 24, L = O.closeButtonSize ?? 22, R = g ?? j.prefix, z = O.titleStyle || j.titleStyle ? {
|
|
55
|
+
...O.titleStyle ?? {},
|
|
56
|
+
...j.titleStyle ?? {}
|
|
57
|
+
} : void 0, B = O.messageStyle || j.messageStyle ? {
|
|
58
|
+
...O.messageStyle ?? {},
|
|
59
|
+
...j.messageStyle ?? {}
|
|
60
|
+
} : void 0, V = C?.close ?? O.labels?.close ?? "x", H = u !== void 0 || f !== void 0 || h !== void 0, U = x && S !== void 0, W = y({
|
|
61
|
+
width: M,
|
|
62
|
+
padding: N,
|
|
63
|
+
gap: P,
|
|
64
|
+
accentWidth: F,
|
|
65
|
+
hasPrefix: R !== void 0,
|
|
66
|
+
prefixWidth: I,
|
|
67
|
+
hasClose: U,
|
|
68
|
+
closeButtonSize: L
|
|
69
|
+
});
|
|
70
|
+
return /* @__PURE__ */ m(t, {
|
|
71
|
+
...T,
|
|
72
|
+
direction: "row",
|
|
73
|
+
alignItems: "stretch",
|
|
74
|
+
gap: P,
|
|
75
|
+
width: M,
|
|
76
|
+
minHeight: T.minHeight ?? O.minHeight ?? 58,
|
|
77
|
+
padding: N,
|
|
78
|
+
backgroundColor: T.backgroundColor ?? j.backgroundColor ?? O.backgroundColor,
|
|
79
|
+
backgroundAlpha: T.backgroundAlpha ?? j.backgroundAlpha ?? O.backgroundAlpha,
|
|
80
|
+
borderColor: T.borderColor ?? j.borderColor ?? O.borderColor,
|
|
81
|
+
borderWidth: T.borderWidth ?? j.borderWidth ?? O.borderWidth,
|
|
82
|
+
cornerRadius: T.cornerRadius ?? j.cornerRadius ?? O.cornerRadius,
|
|
83
|
+
theme: k,
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ p(t, {
|
|
86
|
+
width: F,
|
|
87
|
+
backgroundColor: j.accentColor ?? j.borderColor ?? 3718648,
|
|
88
|
+
cornerRadius: 2
|
|
89
|
+
}),
|
|
90
|
+
R && /* @__PURE__ */ p(t, {
|
|
91
|
+
width: I,
|
|
92
|
+
alignItems: "center",
|
|
93
|
+
justifyContent: "center",
|
|
94
|
+
padding: { top: 1 },
|
|
95
|
+
children: R
|
|
96
|
+
}),
|
|
97
|
+
H && /* @__PURE__ */ m(t, {
|
|
98
|
+
...W === void 0 ? { flex: 1 } : {},
|
|
99
|
+
width: W ?? "fill",
|
|
100
|
+
flexShrink: 1,
|
|
101
|
+
gap: O.contentGap ?? 2,
|
|
102
|
+
justifyContent: "center",
|
|
103
|
+
overflow: "hidden",
|
|
104
|
+
children: [
|
|
105
|
+
u !== void 0 && /* @__PURE__ */ p(e, {
|
|
106
|
+
text: u,
|
|
107
|
+
style: z
|
|
108
|
+
}),
|
|
109
|
+
f !== void 0 && /* @__PURE__ */ p(i, {
|
|
110
|
+
text: f,
|
|
111
|
+
style: B
|
|
112
|
+
}),
|
|
113
|
+
h
|
|
114
|
+
]
|
|
115
|
+
}),
|
|
116
|
+
b,
|
|
117
|
+
_,
|
|
118
|
+
U && /* @__PURE__ */ p(t, {
|
|
119
|
+
alignItems: "center",
|
|
120
|
+
justifyContent: "center",
|
|
121
|
+
padding: { top: 1 },
|
|
122
|
+
children: /* @__PURE__ */ p(n, {
|
|
123
|
+
variant: "ghost",
|
|
124
|
+
maxWidth: L,
|
|
125
|
+
maxHeight: L,
|
|
126
|
+
cornerRadius: L,
|
|
127
|
+
padding: 0,
|
|
128
|
+
onClick: S,
|
|
129
|
+
children: /* @__PURE__ */ p(e, {
|
|
130
|
+
text: V,
|
|
131
|
+
style: O.closeTextStyle
|
|
132
|
+
})
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
]
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
function S(e) {
|
|
139
|
+
let { items: n, position: i, width: m, gap: _, offset: v, duration: y, depth: S, labels: C, onDismiss: w, theme: T, ...E } = e, D = d(), O = T ? s(D ?? {}, T) : D, { props: k, nestedTheme: A } = c({
|
|
140
|
+
componentName: "NotificationStack",
|
|
141
|
+
globalTheme: o(),
|
|
142
|
+
localTheme: O,
|
|
143
|
+
knownComponents: a
|
|
144
|
+
}), j = f(), M = i ?? k.position ?? "top-right", N = y ?? k.duration ?? 4e3, P = _ ?? k.gap ?? 8, F = v ?? k.offset ?? 16, I = m ?? k.width ?? 320, L = u(() => n.map((e) => `${e.id}:${g(e, N)}`).join("|"), [n, N]), R = h(M);
|
|
145
|
+
return l(() => {
|
|
146
|
+
if (!w || n.length === 0) return;
|
|
147
|
+
let e = n.map((e) => {
|
|
148
|
+
let t = g(e, N);
|
|
149
|
+
return b(t) ? setTimeout(() => w(e.id), t) : null;
|
|
150
|
+
}).filter((e) => e !== null);
|
|
151
|
+
return () => {
|
|
152
|
+
e.forEach((e) => clearTimeout(e));
|
|
153
|
+
};
|
|
154
|
+
}, [L, w]), /* @__PURE__ */ p(r, {
|
|
155
|
+
depth: S ?? k.depth ?? 1200,
|
|
156
|
+
blockEvents: !1,
|
|
157
|
+
children: /* @__PURE__ */ p(t, {
|
|
158
|
+
...E,
|
|
159
|
+
width: j.width,
|
|
160
|
+
height: j.height,
|
|
161
|
+
direction: "column",
|
|
162
|
+
justifyContent: R.justifyContent,
|
|
163
|
+
alignItems: R.alignItems,
|
|
164
|
+
padding: E.padding ?? F,
|
|
165
|
+
theme: A,
|
|
166
|
+
children: /* @__PURE__ */ p(t, {
|
|
167
|
+
direction: "column",
|
|
168
|
+
gap: P,
|
|
169
|
+
width: I,
|
|
170
|
+
children: n.map((e) => /* @__PURE__ */ p(x, {
|
|
171
|
+
...e.variant === void 0 ? {} : { variant: e.variant },
|
|
172
|
+
...e.title === void 0 ? {} : { title: e.title },
|
|
173
|
+
...e.message === void 0 ? {} : { message: e.message },
|
|
174
|
+
...e.prefix === void 0 ? {} : { prefix: e.prefix },
|
|
175
|
+
...e.suffix === void 0 ? {} : { suffix: e.suffix },
|
|
176
|
+
...e.action === void 0 ? {} : { action: e.action },
|
|
177
|
+
...e.dismissible === void 0 ? {} : { dismissible: e.dismissible },
|
|
178
|
+
...w ? { onDismiss: () => w(e.id) } : {},
|
|
179
|
+
...C === void 0 ? {} : { labels: C },
|
|
180
|
+
theme: A,
|
|
181
|
+
children: e.content
|
|
182
|
+
}, e.id))
|
|
183
|
+
})
|
|
184
|
+
})
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
export { S as NotificationStack, x as Toast, g as getToastAutoDismissDuration, y as getToastContentWidth, h as resolveNotificationStackAlignment };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.test.d.ts","sourceRoot":"","sources":["../src/Toast.test.ts"],"names":[],"mappings":""}
|
package/dist/Toggle.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./primitives/Text.cjs`),t=require(`./primitives/VectorDrawContent.cjs`),n=require(`./primitives/View.cjs`);require(`./primitives.cjs`);let r=require(`@number10/jsx-core`),i=require(`@number10/jsx-core/jsx-runtime`);function a(e,t,n){let i=(0,r.numberToRgb)(e),a=(0,r.numberToRgb)(t);return(0,r.rgbToNumber)(Math.round(i.r+(a.r-i.r)*n),Math.round(i.g+(a.g-i.g)*n),Math.round(i.b+(a.b-i.b)*n))}function o(o){let s=(0,r.useTheme)(),c=o.theme?(0,r.mergeThemes)(s??{},o.theme):s,{props:l,nestedTheme:u}=(0,r.resolveComponentTheme)({componentName:`Toggle`,globalTheme:(0,r.getGlobalThemeDefaults)(),localTheme:c,knownComponents:r.KNOWN_COMPONENTS}),d=l.width??50,f=l.height??28,p=l.thumbSize??24,m=l.trackColorOff??10066329,h=l.trackColorOn??5025616,g=l.trackBorderColorOff??7829367,_=l.trackBorderColorOn??h,v=l.trackBorderWidth??1,y=l.thumbColor??16777215,b=l.thumbBorderColor??13751771,x=l.thumbBorderWidth??1,S=l.disabledColor??6710886,C=l.disabledAlpha??.5,w=l.padding??2,T=l.duration??200,E=l.gap??8,D=o.labelPosition??l.labelPosition??`right`,O=p/2,k=f/2,A=w+O,j=d-w-O,M=o.checked??!1,[N,P]=(0,r.useState)(M),F=(0,r.useRef)(M),[I,L]=(0,r.useState)(!1),[R,z]=(0,r.useState)(M?j:A),B=(0,r.useRef)(M?j:A),[V,H]=(0,r.useState)(+!!M),U=(0,r.useRef)(+!!M),W=(0,r.useRef)(null),G=(0,r.useSurface)()?.scheduler??null,K=(0,r.useRef)(G);G&&K.current!==G&&(K.current=G),(0,r.useEffect)(()=>{F.current=N},[N]),(0,r.useEffect)(()=>{B.current=R},[R]),(0,r.useEffect)(()=>{U.current=V},[V]),(0,r.useEffect)(()=>{o.checked!==void 0&&o.checked!==F.current&&q(o.checked)},[o.checked,A,j,T]),(0,r.useEffect)(()=>{I||(z(N?j:A),H(+!!N))},[N,A,j,I]),(0,r.useEffect)(()=>()=>{W.current?.stop(),W.current=null},[]);let q=e=>{let t=K.current,n=U.current,i=B.current,a=+!!e,o=e?j:A;if(W.current?.stop(),W.current=null,L(!0),P(e),!t){H(a),z(o),L(!1);return}W.current=(0,r.createTween)({progress:n,x:i},{to:{progress:a,x:o},duration:T,ease:r.Easing.cubicOut,onUpdate:e=>{H(e.progress),z(e.x)},onComplete:()=>{H(a),z(o),L(!1),W.current=null}},t)},J=()=>{if(o.disabled||I)return;let e=!F.current;q(e),o.onChange?.(e)},Y=o.disabled?a(S,h,V):a(m,h,V),X=a(g,_,V),Z=(0,i.jsxs)(n.View,{direction:`stack`,width:d,height:f,enableGestures:!o.disabled,onTouch:J,alpha:o.disabled?C:1,children:[(0,i.jsx)(t.VectorDrawContent,{width:d,height:f,dependencies:[d,f,Y,X,v],onDraw:e=>{let t=v/2;e.clear(),e.fillStyle(Y,1).fillRoundedRect(0,0,d,f,k),v>0&&e.lineStyle(v,X,1).strokeRoundedRect(t,t,d-v,f-v,Math.max(0,k-t))}}),(0,i.jsx)(t.VectorDrawContent,{width:p,height:p,x:R,y:f/2,dependencies:[p,y,b,x],onDraw:e=>{e.clear().fillStyle(y,1).fillCircle(0,0,O),x>0&&e.lineStyle(x,b,1).strokeCircle(0,0,Math.max(0,O-x/2))}})]}),Q=o.label&&D!==`none`?(0,i.jsx)(e.Text,{text:o.label,style:l.labelStyle,alpha:o.disabled?C:1}):null;return!o.label||D===`none`?(0,i.jsxs)(n.View,{direction:`row`,alignItems:`center`,gap:E,theme:u,children:[o.prefix,Z,o.suffix]}):(0,i.jsxs)(n.View,{direction:`row`,alignItems:`center`,gap:E,theme:u,children:[D===`left`&&Q,o.prefix,Z,o.suffix,D===`right`&&Q]})}exports.Toggle=o;
|
package/dist/Toggle.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VNodeLike } from '@number10/jsx-core';
|
|
2
|
+
import { PortableComponentPartialTheme } from './theme-types';
|
|
3
|
+
export interface ToggleProps {
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
onChange?: (checked: boolean) => void;
|
|
6
|
+
label?: string;
|
|
7
|
+
labelPosition?: 'left' | 'right' | 'none';
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
prefix?: VNodeLike;
|
|
10
|
+
suffix?: VNodeLike;
|
|
11
|
+
theme?: PortableComponentPartialTheme<'Toggle'>;
|
|
12
|
+
}
|
|
13
|
+
export declare function Toggle(props: ToggleProps): VNodeLike;
|
|
14
|
+
//# sourceMappingURL=Toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.d.ts","sourceRoot":"","sources":["../src/Toggle.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C;;;;;;;GAOG;AAEH,OAAO,EAiBL,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,6BAA6B,EAAe,MAAM,eAAe,CAAA;AAa/E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAA;CAChD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CA2NpD"}
|
package/dist/Toggle.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { Text as e } from "./primitives/Text.js";
|
|
2
|
+
import { VectorDrawContent as t } from "./primitives/VectorDrawContent.js";
|
|
3
|
+
import { View as n } from "./primitives/View.js";
|
|
4
|
+
import "./primitives.js";
|
|
5
|
+
import { Easing as r, KNOWN_COMPONENTS as i, createTween as ee, getGlobalThemeDefaults as a, mergeThemes as o, numberToRgb as s, resolveComponentTheme as te, rgbToNumber as c, useEffect as l, useRef as u, useState as d, useSurface as ne, useTheme as re } from "@number10/jsx-core";
|
|
6
|
+
import { jsx as f, jsxs as p } from "@number10/jsx-core/jsx-runtime";
|
|
7
|
+
//#region src/Toggle.tsx
|
|
8
|
+
function m(e, t, n) {
|
|
9
|
+
let r = s(e), i = s(t);
|
|
10
|
+
return c(Math.round(r.r + (i.r - r.r) * n), Math.round(r.g + (i.g - r.g) * n), Math.round(r.b + (i.b - r.b) * n));
|
|
11
|
+
}
|
|
12
|
+
function h(s) {
|
|
13
|
+
let c = re(), h = s.theme ? o(c ?? {}, s.theme) : c, { props: g, nestedTheme: _ } = te({
|
|
14
|
+
componentName: "Toggle",
|
|
15
|
+
globalTheme: a(),
|
|
16
|
+
localTheme: h,
|
|
17
|
+
knownComponents: i
|
|
18
|
+
}), v = g.width ?? 50, y = g.height ?? 28, b = g.thumbSize ?? 24, ie = g.trackColorOff ?? 10066329, x = g.trackColorOn ?? 5025616, ae = g.trackBorderColorOff ?? 7829367, oe = g.trackBorderColorOn ?? x, S = g.trackBorderWidth ?? 1, C = g.thumbColor ?? 16777215, w = g.thumbBorderColor ?? 13751771, T = g.thumbBorderWidth ?? 1, se = g.disabledColor ?? 6710886, E = g.disabledAlpha ?? .5, D = g.padding ?? 2, O = g.duration ?? 200, k = g.gap ?? 8, A = s.labelPosition ?? g.labelPosition ?? "right", j = b / 2, M = y / 2, N = D + j, P = v - D - j, F = s.checked ?? !1, [I, ce] = d(F), L = u(F), [R, z] = d(!1), [B, V] = d(F ? P : N), H = u(F ? P : N), [U, W] = d(+!!F), G = u(+!!F), K = u(null), q = ne()?.scheduler ?? null, J = u(q);
|
|
19
|
+
q && J.current !== q && (J.current = q), l(() => {
|
|
20
|
+
L.current = I;
|
|
21
|
+
}, [I]), l(() => {
|
|
22
|
+
H.current = B;
|
|
23
|
+
}, [B]), l(() => {
|
|
24
|
+
G.current = U;
|
|
25
|
+
}, [U]), l(() => {
|
|
26
|
+
s.checked !== void 0 && s.checked !== L.current && Y(s.checked);
|
|
27
|
+
}, [
|
|
28
|
+
s.checked,
|
|
29
|
+
N,
|
|
30
|
+
P,
|
|
31
|
+
O
|
|
32
|
+
]), l(() => {
|
|
33
|
+
R || (V(I ? P : N), W(+!!I));
|
|
34
|
+
}, [
|
|
35
|
+
I,
|
|
36
|
+
N,
|
|
37
|
+
P,
|
|
38
|
+
R
|
|
39
|
+
]), l(() => () => {
|
|
40
|
+
K.current?.stop(), K.current = null;
|
|
41
|
+
}, []);
|
|
42
|
+
let Y = (e) => {
|
|
43
|
+
let t = J.current, n = G.current, i = H.current, a = +!!e, o = e ? P : N;
|
|
44
|
+
if (K.current?.stop(), K.current = null, z(!0), ce(e), !t) {
|
|
45
|
+
W(a), V(o), z(!1);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
K.current = ee({
|
|
49
|
+
progress: n,
|
|
50
|
+
x: i
|
|
51
|
+
}, {
|
|
52
|
+
to: {
|
|
53
|
+
progress: a,
|
|
54
|
+
x: o
|
|
55
|
+
},
|
|
56
|
+
duration: O,
|
|
57
|
+
ease: r.cubicOut,
|
|
58
|
+
onUpdate: (e) => {
|
|
59
|
+
W(e.progress), V(e.x);
|
|
60
|
+
},
|
|
61
|
+
onComplete: () => {
|
|
62
|
+
W(a), V(o), z(!1), K.current = null;
|
|
63
|
+
}
|
|
64
|
+
}, t);
|
|
65
|
+
}, le = () => {
|
|
66
|
+
if (s.disabled || R) return;
|
|
67
|
+
let e = !L.current;
|
|
68
|
+
Y(e), s.onChange?.(e);
|
|
69
|
+
}, X = s.disabled ? m(se, x, U) : m(ie, x, U), Z = m(ae, oe, U), Q = /* @__PURE__ */ p(n, {
|
|
70
|
+
direction: "stack",
|
|
71
|
+
width: v,
|
|
72
|
+
height: y,
|
|
73
|
+
enableGestures: !s.disabled,
|
|
74
|
+
onTouch: le,
|
|
75
|
+
alpha: s.disabled ? E : 1,
|
|
76
|
+
children: [/* @__PURE__ */ f(t, {
|
|
77
|
+
width: v,
|
|
78
|
+
height: y,
|
|
79
|
+
dependencies: [
|
|
80
|
+
v,
|
|
81
|
+
y,
|
|
82
|
+
X,
|
|
83
|
+
Z,
|
|
84
|
+
S
|
|
85
|
+
],
|
|
86
|
+
onDraw: (e) => {
|
|
87
|
+
let t = S / 2;
|
|
88
|
+
e.clear(), e.fillStyle(X, 1).fillRoundedRect(0, 0, v, y, M), S > 0 && e.lineStyle(S, Z, 1).strokeRoundedRect(t, t, v - S, y - S, Math.max(0, M - t));
|
|
89
|
+
}
|
|
90
|
+
}), /* @__PURE__ */ f(t, {
|
|
91
|
+
width: b,
|
|
92
|
+
height: b,
|
|
93
|
+
x: B,
|
|
94
|
+
y: y / 2,
|
|
95
|
+
dependencies: [
|
|
96
|
+
b,
|
|
97
|
+
C,
|
|
98
|
+
w,
|
|
99
|
+
T
|
|
100
|
+
],
|
|
101
|
+
onDraw: (e) => {
|
|
102
|
+
e.clear().fillStyle(C, 1).fillCircle(0, 0, j), T > 0 && e.lineStyle(T, w, 1).strokeCircle(0, 0, Math.max(0, j - T / 2));
|
|
103
|
+
}
|
|
104
|
+
})]
|
|
105
|
+
}), $ = s.label && A !== "none" ? /* @__PURE__ */ f(e, {
|
|
106
|
+
text: s.label,
|
|
107
|
+
style: g.labelStyle,
|
|
108
|
+
alpha: s.disabled ? E : 1
|
|
109
|
+
}) : null;
|
|
110
|
+
return !s.label || A === "none" ? /* @__PURE__ */ p(n, {
|
|
111
|
+
direction: "row",
|
|
112
|
+
alignItems: "center",
|
|
113
|
+
gap: k,
|
|
114
|
+
theme: _,
|
|
115
|
+
children: [
|
|
116
|
+
s.prefix,
|
|
117
|
+
Q,
|
|
118
|
+
s.suffix
|
|
119
|
+
]
|
|
120
|
+
}) : /* @__PURE__ */ p(n, {
|
|
121
|
+
direction: "row",
|
|
122
|
+
alignItems: "center",
|
|
123
|
+
gap: k,
|
|
124
|
+
theme: _,
|
|
125
|
+
children: [
|
|
126
|
+
A === "left" && $,
|
|
127
|
+
s.prefix,
|
|
128
|
+
Q,
|
|
129
|
+
s.suffix,
|
|
130
|
+
A === "right" && $
|
|
131
|
+
]
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//#endregion
|
|
135
|
+
export { h as Toggle };
|
package/dist/Toolbar.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./primitives/Text.cjs`),t=require(`./primitives/View.cjs`);require(`./primitives.cjs`);const n=require(`./Button.cjs`),r=require(`./Divider.cjs`),i=require(`./MenuButton.cjs`);let a=require(`@number10/jsx-core`),o=require(`@number10/jsx-core/jsx-runtime`);function s(e){return e.type===`separator`}function c(e){return e.type===`toggle`}function l(e){return e.type===`menu`}function u(e,t){return s(e)?e.id??`separator-${t}`:e.id}function d(e,t){if(t)return e.some(e=>!s(e)&&e.id===t)?t:void 0}function f(e){return e.find(e=>c(e)&&!!e.defaultPressed)?.id}function p(...e){let t=Object.assign({},...e.filter(Boolean));return Object.keys(t).length>0?t:void 0}function m(e){if(Array.isArray(e))return e.map(e=>m(e));if(!e||typeof e!=`object`||!(`type`in e))return e;let t=e,n={type:t.type};return t.props!==void 0&&(n.props={...t.props}),t.children!==void 0&&(n.children=t.children.map(e=>m(e))),t.__key!==void 0&&(n.__key=t.__key),t.__addConfig!==void 0&&(n.__addConfig={...t.__addConfig}),t.__memo!==void 0&&(n.__memo=t.__memo),t.__theme!==void 0&&(n.__theme=t.__theme),t.__staticChildren!==void 0&&(n.__staticChildren=t.__staticChildren),n}function h(h){let{items:g,activeId:_,defaultActiveId:v,onSelect:y,onToggle:b,orientation:x,density:S,showLabels:C,disabled:w=!1,labels:T,theme:E,alpha:D}=h,O=(0,a.useTheme)(),k=E?(0,a.mergeThemes)(O??{},E):O,{props:A,nestedTheme:j}=(0,a.resolveComponentTheme)({componentName:`Toolbar`,globalTheme:(0,a.getGlobalThemeDefaults)(),localTheme:k,knownComponents:a.KNOWN_COMPONENTS}),M=_!==void 0,[N,P]=(0,a.useState)(d(g,_??v)??f(g)),F=M?d(g,_):d(g,N);(0,a.useEffect)(()=>{!M&&N!==F&&P(F)},[M,N,F]);let I={...A.labels??{},...T??{}},L=x??A.orientation??`horizontal`,R=S??A.density??`normal`,z=A[R===`compact`?`compactItemWidth`:`itemWidth`]??A.itemWidth??42,B=A[R===`compact`?`compactItemHeight`:`itemHeight`]??A.itemHeight??36,V=(R===`compact`?A.compactButtonSize:void 0)??A.buttonSize??`small`,H=(R===`compact`?A.compactIconSize:void 0)??A.iconSize??18,U=C??R!==`compact`,W=U?void 0:z,G=w?A.disabledAlpha??.55:D,K=A.textStyle??{color:`#e2e8f0`,fontSize:`13px`},q=p(K,A.activeTextStyle),J=p(K,A.disabledTextStyle),Y=A.menuIndicatorStyle??{color:`#94a3b8`,fontSize:`10px`},X=L===`horizontal`?`row`:`column`,Z=L===`horizontal`?`vertical`:`horizontal`,Q=A.separatorLength??(L===`horizontal`?B:z),ee=e=>{if(!(w||e.disabled)){if(c(e)){let t=!((e.pressed??F===e.id)&&e.allowDeselect);!M&&e.pressed===void 0&&P(t?e.id:void 0),e.onToggle?.(t,e.id),b?.(e.id,t,e)}e.onSelect?.(e.id),y?.(e.id,e)}},$=(t,n,r)=>{if(t.children)return m(t.children);let i=t.showLabel??U,a=r?J:n?q:K;return(0,o.jsxs)(o.Fragment,{children:[t.icon?m(t.icon):null,i&&t.label?(0,o.jsx)(e.Text,{text:t.label,...a?{style:a}:{}}):null,l(t)?(0,o.jsx)(e.Text,{text:I.menuIndicator??`v`,...Y?{style:Y}:{}}):null]})},te=(e,d)=>{let f=u(e,d);if(s(e))return(0,o.jsx)(t.View,{alignItems:`center`,justifyContent:`center`,theme:j,children:(0,o.jsx)(r.Divider,{orientation:Z,length:e.length??Q,thickness:e.thickness??A.separatorThickness??1,color:A.separatorColor??4674921})},f);let p=w||!!e.disabled,m=c(e)?e.pressed??F===e.id:F===e.id,h=e.buttonVariant??(m?A.activeButtonVariant??`primary`:l(e)?A.menuButtonVariant??A.buttonVariant??`secondary`:A.buttonVariant??`secondary`),g=p?J:m?q:K,_=(0,a.mergeThemes)(j,{Button:{...g?{textStyle:g}:{},...H===void 0?{}:{iconSize:H}}});return l(e)?(0,o.jsx)(i.MenuButton,{items:e.items??[],onSelect:()=>{e.onSelect?.(e.id),y?.(e.id,e)},placement:L===`horizontal`?`bottom-start`:`right-start`,disabled:p,theme:_,trigger:({isOpen:r})=>(0,o.jsx)(n.Button,{variant:h,size:e.buttonSize??V,disabled:p,width:W,height:B,theme:_,children:(0,o.jsx)(t.View,{direction:`row`,alignItems:`center`,justifyContent:`center`,gap:A.gap??6,children:$(e,r,p)})})},f):(0,o.jsx)(n.Button,{width:W,height:B,variant:h,size:e.buttonSize??V,disabled:p,onClick:()=>ee(e),theme:_,children:(0,o.jsx)(t.View,{direction:`row`,alignItems:`center`,justifyContent:`center`,gap:A.gap??6,children:$(e,m,p)})},f)};return(0,o.jsx)(t.View,{direction:X,alignItems:`center`,gap:A.itemGap??6,padding:A.padding??4,backgroundColor:A.backgroundColor,backgroundAlpha:A.backgroundAlpha,borderColor:A.borderColor,borderWidth:A.borderWidth,cornerRadius:A.cornerRadius,...G===void 0?{}:{alpha:G},theme:j,children:g.map(te)})}function g(e){return(0,o.jsx)(h,{...e})}exports.ToolButtonGroup=g,exports.Toolbar=h,exports.getToolbarItemId=u,exports.isToolbarMenuItem=l,exports.isToolbarSeparatorItem=s,exports.isToolbarToggleItem=c,exports.resolveToolbarActiveId=d;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { VNodeLike } from '@number10/jsx-core';
|
|
2
|
+
import { ButtonSize, ButtonVariant } from './Button';
|
|
3
|
+
import { ContextMenuItem } from './Popover';
|
|
4
|
+
import { PortableComponentPartialTheme } from './theme-types';
|
|
5
|
+
export type ToolbarOrientation = 'horizontal' | 'vertical';
|
|
6
|
+
export type ToolbarDensity = 'compact' | 'normal';
|
|
7
|
+
export type ToolbarItemType = 'action' | 'toggle' | 'separator' | 'menu';
|
|
8
|
+
export interface ToolbarLabels {
|
|
9
|
+
overflow?: string;
|
|
10
|
+
menuIndicator?: string;
|
|
11
|
+
}
|
|
12
|
+
interface ToolbarBaseItem {
|
|
13
|
+
/** Unique item id. Required for action, toggle, and menu items. */
|
|
14
|
+
id?: string;
|
|
15
|
+
/** Item type. Omitted type defaults to action. */
|
|
16
|
+
type?: ToolbarItemType;
|
|
17
|
+
/** Visible or tooltip label. */
|
|
18
|
+
label?: string;
|
|
19
|
+
/** Optional icon/glyph content. */
|
|
20
|
+
icon?: VNodeLike;
|
|
21
|
+
/** Full custom button content. Takes precedence over icon and label. */
|
|
22
|
+
children?: VNodeLike;
|
|
23
|
+
/** Hide generated label text while keeping label available for tooltip metadata. */
|
|
24
|
+
showLabel?: boolean;
|
|
25
|
+
/** Disabled item state. */
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
/** Tooltip text (metadata, renderer may handle natively). */
|
|
28
|
+
tooltip?: string;
|
|
29
|
+
/** Item-specific button variant. */
|
|
30
|
+
buttonVariant?: ButtonVariant;
|
|
31
|
+
/** Item-specific button size. */
|
|
32
|
+
buttonSize?: ButtonSize;
|
|
33
|
+
/** Called before Toolbar onSelect. */
|
|
34
|
+
onSelect?: (id: string) => void;
|
|
35
|
+
}
|
|
36
|
+
export interface ToolbarActionItem extends ToolbarBaseItem {
|
|
37
|
+
type?: 'action';
|
|
38
|
+
id: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ToolbarToggleItem extends ToolbarBaseItem {
|
|
41
|
+
type: 'toggle';
|
|
42
|
+
id: string;
|
|
43
|
+
/** Controlled pressed state for this toggle. */
|
|
44
|
+
pressed?: boolean;
|
|
45
|
+
/** Initial pressed state for uncontrolled toolbars. */
|
|
46
|
+
defaultPressed?: boolean;
|
|
47
|
+
/** Allow clicking an active toggle to clear it. */
|
|
48
|
+
allowDeselect?: boolean;
|
|
49
|
+
/** Called when the toggle pressed state changes. */
|
|
50
|
+
onToggle?: (pressed: boolean, id: string) => void;
|
|
51
|
+
}
|
|
52
|
+
export interface ToolbarMenuItem extends ToolbarBaseItem {
|
|
53
|
+
type: 'menu';
|
|
54
|
+
id: string;
|
|
55
|
+
/** Menu item payload rendered via MenuButton. */
|
|
56
|
+
items?: ContextMenuItem[];
|
|
57
|
+
}
|
|
58
|
+
export interface ToolbarSeparatorItem {
|
|
59
|
+
type: 'separator';
|
|
60
|
+
id?: string;
|
|
61
|
+
length?: number;
|
|
62
|
+
thickness?: number;
|
|
63
|
+
}
|
|
64
|
+
export type ToolbarItem = ToolbarActionItem | ToolbarToggleItem | ToolbarMenuItem | ToolbarSeparatorItem;
|
|
65
|
+
export interface ToolbarProps {
|
|
66
|
+
/** Toolbar items. */
|
|
67
|
+
items: ToolbarItem[];
|
|
68
|
+
/** Active tool id in controlled mode. */
|
|
69
|
+
activeId?: string;
|
|
70
|
+
/** Initial active tool id in uncontrolled mode. */
|
|
71
|
+
defaultActiveId?: string;
|
|
72
|
+
/** Called when an action, toggle, or menu trigger is selected. */
|
|
73
|
+
onSelect?: (id: string, item: Exclude<ToolbarItem, ToolbarSeparatorItem>) => void;
|
|
74
|
+
/** Called when a toggle item changes pressed state. */
|
|
75
|
+
onToggle?: (id: string, pressed: boolean, item: ToolbarToggleItem) => void;
|
|
76
|
+
/** Layout orientation. */
|
|
77
|
+
orientation?: ToolbarOrientation;
|
|
78
|
+
/** Density preset. */
|
|
79
|
+
density?: ToolbarDensity;
|
|
80
|
+
/** Hide generated labels for compact icon-only toolbars. */
|
|
81
|
+
showLabels?: boolean;
|
|
82
|
+
/** Disable the entire toolbar. */
|
|
83
|
+
disabled?: boolean;
|
|
84
|
+
/** Localized labels. */
|
|
85
|
+
labels?: ToolbarLabels;
|
|
86
|
+
/** Theme overrides. */
|
|
87
|
+
theme?: PortableComponentPartialTheme<'Toolbar'>;
|
|
88
|
+
/** Alpha override. */
|
|
89
|
+
alpha?: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Type guard for separator items.
|
|
93
|
+
*/
|
|
94
|
+
export declare function isToolbarSeparatorItem(item: ToolbarItem): item is ToolbarSeparatorItem;
|
|
95
|
+
/**
|
|
96
|
+
* Type guard for toggle items.
|
|
97
|
+
*/
|
|
98
|
+
export declare function isToolbarToggleItem(item: ToolbarItem): item is ToolbarToggleItem;
|
|
99
|
+
/**
|
|
100
|
+
* Type guard for menu items.
|
|
101
|
+
*/
|
|
102
|
+
export declare function isToolbarMenuItem(item: ToolbarItem): item is ToolbarMenuItem;
|
|
103
|
+
/**
|
|
104
|
+
* Returns a stable id for any toolbar item.
|
|
105
|
+
* @param item - The toolbar item.
|
|
106
|
+
* @param index - The item's index in the list.
|
|
107
|
+
*/
|
|
108
|
+
export declare function getToolbarItemId(item: ToolbarItem, index: number): string;
|
|
109
|
+
/**
|
|
110
|
+
* Validates and resolves the active tool id from the items list.
|
|
111
|
+
* @param items - The toolbar items.
|
|
112
|
+
* @param activeId - The candidate active id.
|
|
113
|
+
* @returns The active id if valid, undefined otherwise.
|
|
114
|
+
*/
|
|
115
|
+
export declare function resolveToolbarActiveId(items: ToolbarItem[], activeId?: string): string | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Toolbar — compact action/toggle button group for editor tools, HUD controls, and debug panels.
|
|
118
|
+
* @param props - The component props.
|
|
119
|
+
* @returns The rendered VNode tree.
|
|
120
|
+
*/
|
|
121
|
+
export declare function Toolbar(props: ToolbarProps): VNodeLike;
|
|
122
|
+
/**
|
|
123
|
+
* ToolButtonGroup — alias for Toolbar when a button-group name fits the UI better.
|
|
124
|
+
* @param props - Same as ToolbarProps.
|
|
125
|
+
* @returns The rendered VNode tree.
|
|
126
|
+
*/
|
|
127
|
+
export declare function ToolButtonGroup(props: ToolbarProps): VNodeLike;
|
|
128
|
+
export {};
|
|
129
|
+
//# sourceMappingURL=Toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../src/Toolbar.tsx"],"names":[],"mappings":"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"}
|
package/dist/Toolbar.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { Text as e } from "./primitives/Text.js";
|
|
2
|
+
import { View as t } from "./primitives/View.js";
|
|
3
|
+
import "./primitives.js";
|
|
4
|
+
import { Button as n } from "./Button.js";
|
|
5
|
+
import { Divider as r } from "./Divider.js";
|
|
6
|
+
import { MenuButton as i } from "./MenuButton.js";
|
|
7
|
+
import { KNOWN_COMPONENTS as a, getGlobalThemeDefaults as o, mergeThemes as s, resolveComponentTheme as c, useEffect as l, useState as u, useTheme as d } from "@number10/jsx-core";
|
|
8
|
+
import { Fragment as f, jsx as p, jsxs as m } from "@number10/jsx-core/jsx-runtime";
|
|
9
|
+
//#region src/Toolbar.tsx
|
|
10
|
+
function h(e) {
|
|
11
|
+
return e.type === "separator";
|
|
12
|
+
}
|
|
13
|
+
function g(e) {
|
|
14
|
+
return e.type === "toggle";
|
|
15
|
+
}
|
|
16
|
+
function _(e) {
|
|
17
|
+
return e.type === "menu";
|
|
18
|
+
}
|
|
19
|
+
function v(e, t) {
|
|
20
|
+
return h(e) ? e.id ?? `separator-${t}` : e.id;
|
|
21
|
+
}
|
|
22
|
+
function y(e, t) {
|
|
23
|
+
if (t) return e.some((e) => !h(e) && e.id === t) ? t : void 0;
|
|
24
|
+
}
|
|
25
|
+
function b(e) {
|
|
26
|
+
return e.find((e) => g(e) && !!e.defaultPressed)?.id;
|
|
27
|
+
}
|
|
28
|
+
function x(...e) {
|
|
29
|
+
let t = Object.assign({}, ...e.filter(Boolean));
|
|
30
|
+
return Object.keys(t).length > 0 ? t : void 0;
|
|
31
|
+
}
|
|
32
|
+
function S(e) {
|
|
33
|
+
if (Array.isArray(e)) return e.map((e) => S(e));
|
|
34
|
+
if (!e || typeof e != "object" || !("type" in e)) return e;
|
|
35
|
+
let t = e, n = { type: t.type };
|
|
36
|
+
return t.props !== void 0 && (n.props = { ...t.props }), t.children !== void 0 && (n.children = t.children.map((e) => S(e))), t.__key !== void 0 && (n.__key = t.__key), t.__addConfig !== void 0 && (n.__addConfig = { ...t.__addConfig }), t.__memo !== void 0 && (n.__memo = t.__memo), t.__theme !== void 0 && (n.__theme = t.__theme), t.__staticChildren !== void 0 && (n.__staticChildren = t.__staticChildren), n;
|
|
37
|
+
}
|
|
38
|
+
function C(C) {
|
|
39
|
+
let { items: w, activeId: T, defaultActiveId: E, onSelect: D, onToggle: ee, orientation: te, density: ne, showLabels: re, disabled: O = !1, labels: ie, theme: k, alpha: ae } = C, A = d(), j = k ? s(A ?? {}, k) : A, { props: M, nestedTheme: N } = c({
|
|
40
|
+
componentName: "Toolbar",
|
|
41
|
+
globalTheme: o(),
|
|
42
|
+
localTheme: j,
|
|
43
|
+
knownComponents: a
|
|
44
|
+
}), P = T !== void 0, [F, I] = u(y(w, T ?? E) ?? b(w)), L = P ? y(w, T) : y(w, F);
|
|
45
|
+
l(() => {
|
|
46
|
+
!P && F !== L && I(L);
|
|
47
|
+
}, [
|
|
48
|
+
P,
|
|
49
|
+
F,
|
|
50
|
+
L
|
|
51
|
+
]);
|
|
52
|
+
let R = {
|
|
53
|
+
...M.labels ?? {},
|
|
54
|
+
...ie ?? {}
|
|
55
|
+
}, z = te ?? M.orientation ?? "horizontal", B = ne ?? M.density ?? "normal", V = M[B === "compact" ? "compactItemWidth" : "itemWidth"] ?? M.itemWidth ?? 42, H = M[B === "compact" ? "compactItemHeight" : "itemHeight"] ?? M.itemHeight ?? 36, U = (B === "compact" ? M.compactButtonSize : void 0) ?? M.buttonSize ?? "small", W = (B === "compact" ? M.compactIconSize : void 0) ?? M.iconSize ?? 18, G = re ?? B !== "compact", K = G ? void 0 : V, q = O ? M.disabledAlpha ?? .55 : ae, J = M.textStyle ?? {
|
|
56
|
+
color: "#e2e8f0",
|
|
57
|
+
fontSize: "13px"
|
|
58
|
+
}, Y = x(J, M.activeTextStyle), X = x(J, M.disabledTextStyle), Z = M.menuIndicatorStyle ?? {
|
|
59
|
+
color: "#94a3b8",
|
|
60
|
+
fontSize: "10px"
|
|
61
|
+
}, oe = z === "horizontal" ? "row" : "column", Q = z === "horizontal" ? "vertical" : "horizontal", se = M.separatorLength ?? (z === "horizontal" ? H : V), ce = (e) => {
|
|
62
|
+
if (!(O || e.disabled)) {
|
|
63
|
+
if (g(e)) {
|
|
64
|
+
let t = !((e.pressed ?? L === e.id) && e.allowDeselect);
|
|
65
|
+
!P && e.pressed === void 0 && I(t ? e.id : void 0), e.onToggle?.(t, e.id), ee?.(e.id, t, e);
|
|
66
|
+
}
|
|
67
|
+
e.onSelect?.(e.id), D?.(e.id, e);
|
|
68
|
+
}
|
|
69
|
+
}, $ = (t, n, r) => {
|
|
70
|
+
if (t.children) return S(t.children);
|
|
71
|
+
let i = t.showLabel ?? G, a = r ? X : n ? Y : J;
|
|
72
|
+
return /* @__PURE__ */ m(f, { children: [
|
|
73
|
+
t.icon ? S(t.icon) : null,
|
|
74
|
+
i && t.label ? /* @__PURE__ */ p(e, {
|
|
75
|
+
text: t.label,
|
|
76
|
+
...a ? { style: a } : {}
|
|
77
|
+
}) : null,
|
|
78
|
+
_(t) ? /* @__PURE__ */ p(e, {
|
|
79
|
+
text: R.menuIndicator ?? "v",
|
|
80
|
+
...Z ? { style: Z } : {}
|
|
81
|
+
}) : null
|
|
82
|
+
] });
|
|
83
|
+
}, le = (e, a) => {
|
|
84
|
+
let o = v(e, a);
|
|
85
|
+
if (h(e)) return /* @__PURE__ */ p(t, {
|
|
86
|
+
alignItems: "center",
|
|
87
|
+
justifyContent: "center",
|
|
88
|
+
theme: N,
|
|
89
|
+
children: /* @__PURE__ */ p(r, {
|
|
90
|
+
orientation: Q,
|
|
91
|
+
length: e.length ?? se,
|
|
92
|
+
thickness: e.thickness ?? M.separatorThickness ?? 1,
|
|
93
|
+
color: M.separatorColor ?? 4674921
|
|
94
|
+
})
|
|
95
|
+
}, o);
|
|
96
|
+
let c = O || !!e.disabled, l = g(e) ? e.pressed ?? L === e.id : L === e.id, u = e.buttonVariant ?? (l ? M.activeButtonVariant ?? "primary" : _(e) ? M.menuButtonVariant ?? M.buttonVariant ?? "secondary" : M.buttonVariant ?? "secondary"), d = c ? X : l ? Y : J, f = s(N, { Button: {
|
|
97
|
+
...d ? { textStyle: d } : {},
|
|
98
|
+
...W === void 0 ? {} : { iconSize: W }
|
|
99
|
+
} });
|
|
100
|
+
return _(e) ? /* @__PURE__ */ p(i, {
|
|
101
|
+
items: e.items ?? [],
|
|
102
|
+
onSelect: () => {
|
|
103
|
+
e.onSelect?.(e.id), D?.(e.id, e);
|
|
104
|
+
},
|
|
105
|
+
placement: z === "horizontal" ? "bottom-start" : "right-start",
|
|
106
|
+
disabled: c,
|
|
107
|
+
theme: f,
|
|
108
|
+
trigger: ({ isOpen: r }) => /* @__PURE__ */ p(n, {
|
|
109
|
+
variant: u,
|
|
110
|
+
size: e.buttonSize ?? U,
|
|
111
|
+
disabled: c,
|
|
112
|
+
width: K,
|
|
113
|
+
height: H,
|
|
114
|
+
theme: f,
|
|
115
|
+
children: /* @__PURE__ */ p(t, {
|
|
116
|
+
direction: "row",
|
|
117
|
+
alignItems: "center",
|
|
118
|
+
justifyContent: "center",
|
|
119
|
+
gap: M.gap ?? 6,
|
|
120
|
+
children: $(e, r, c)
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
}, o) : /* @__PURE__ */ p(n, {
|
|
124
|
+
width: K,
|
|
125
|
+
height: H,
|
|
126
|
+
variant: u,
|
|
127
|
+
size: e.buttonSize ?? U,
|
|
128
|
+
disabled: c,
|
|
129
|
+
onClick: () => ce(e),
|
|
130
|
+
theme: f,
|
|
131
|
+
children: /* @__PURE__ */ p(t, {
|
|
132
|
+
direction: "row",
|
|
133
|
+
alignItems: "center",
|
|
134
|
+
justifyContent: "center",
|
|
135
|
+
gap: M.gap ?? 6,
|
|
136
|
+
children: $(e, l, c)
|
|
137
|
+
})
|
|
138
|
+
}, o);
|
|
139
|
+
};
|
|
140
|
+
return /* @__PURE__ */ p(t, {
|
|
141
|
+
direction: oe,
|
|
142
|
+
alignItems: "center",
|
|
143
|
+
gap: M.itemGap ?? 6,
|
|
144
|
+
padding: M.padding ?? 4,
|
|
145
|
+
backgroundColor: M.backgroundColor,
|
|
146
|
+
backgroundAlpha: M.backgroundAlpha,
|
|
147
|
+
borderColor: M.borderColor,
|
|
148
|
+
borderWidth: M.borderWidth,
|
|
149
|
+
cornerRadius: M.cornerRadius,
|
|
150
|
+
...q === void 0 ? {} : { alpha: q },
|
|
151
|
+
theme: N,
|
|
152
|
+
children: w.map(le)
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function w(e) {
|
|
156
|
+
return /* @__PURE__ */ p(C, { ...e });
|
|
157
|
+
}
|
|
158
|
+
//#endregion
|
|
159
|
+
export { w as ToolButtonGroup, C as Toolbar, v as getToolbarItemId, _ as isToolbarMenuItem, h as isToolbarSeparatorItem, g as isToolbarToggleItem, y as resolveToolbarActiveId };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.test.d.ts","sourceRoot":"","sources":["../src/Toolbar.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./primitives/View.cjs`);require(`./primitives.cjs`);let t=require(`@number10/jsx-core/jsx-runtime`);function n({originX:n=.5,originY:r=.5,width:i,height:a,x:o=0,y:s=0,children:c,rotation:l,scale:u,scaleX:d,scaleY:f,backgroundColor:p,backgroundAlpha:m,cornerRadius:h,borderWidth:g,borderColor:_,borderAlpha:v,...y}){if(typeof i!=`number`||typeof a!=`number`)throw Error(`TransformOriginView requires numeric width and height`);let b=i*n,x=a*r,S={};return l!==void 0&&(S.rotation=l),u!==void 0&&(S.scale=u),d!==void 0&&(S.scaleX=d),f!==void 0&&(S.scaleY=f),p!==void 0&&(S.backgroundColor=p),m!==void 0&&(S.backgroundAlpha=m),h!==void 0&&(S.cornerRadius=h),g!==void 0&&(S.borderWidth=g),_!==void 0&&(S.borderColor=_),v!==void 0&&(S.borderAlpha=v),(0,t.jsx)(e.View,{x:o,y:s,width:i,height:a,padding:0,direction:`stack`,...y,children:(0,t.jsx)(e.View,{x:b,y:x,width:i,height:a,padding:0,direction:`stack`,...S,children:(0,t.jsx)(e.View,{x:-b,y:-x,width:i,height:a,padding:0,direction:`stack`,backgroundAlpha:0,children:c})})})}exports.TransformOriginView=n;
|