basefn 1.10.0 → 1.11.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/package.json +3 -3
- package/rescript.json +1 -1
- package/src/Basefn__Responsive.res.mjs +5 -5
- package/src/Basefn__Utils.res.mjs +2 -2
- package/src/Demo.res +59 -59
- package/src/Demo.res.mjs +630 -628
- package/src/Example.res +3 -3
- package/src/Example.res.mjs +48 -47
- package/src/components/Basefn__Accordion.res +5 -5
- package/src/components/Basefn__Accordion.res.mjs +25 -26
- package/src/components/Basefn__Alert.res +4 -4
- package/src/components/Basefn__Alert.res.mjs +20 -18
- package/src/components/Basefn__AlertDialog.res +5 -5
- package/src/components/Basefn__AlertDialog.res.mjs +23 -21
- package/src/components/Basefn__AppLayout.res +3 -3
- package/src/components/Basefn__AppLayout.res.mjs +25 -24
- package/src/components/Basefn__AspectRatio.res +1 -1
- package/src/components/Basefn__AspectRatio.res.mjs +2 -2
- package/src/components/Basefn__Avatar.res.mjs +3 -3
- package/src/components/Basefn__Badge.res +1 -1
- package/src/components/Basefn__Badge.res.mjs +2 -2
- package/src/components/Basefn__Breadcrumb.res +5 -5
- package/src/components/Basefn__Breadcrumb.res.mjs +14 -14
- package/src/components/Basefn__Button.res +1 -1
- package/src/components/Basefn__Button.res.mjs +10 -9
- package/src/components/Basefn__ButtonGroup.res +1 -1
- package/src/components/Basefn__ButtonGroup.res.mjs +2 -2
- package/src/components/Basefn__Card.res +3 -3
- package/src/components/Basefn__Card.res.mjs +11 -11
- package/src/components/Basefn__Checkbox.res +1 -1
- package/src/components/Basefn__Checkbox.res.mjs +7 -7
- package/src/components/Basefn__ContextMenu.res +4 -4
- package/src/components/Basefn__ContextMenu.res.mjs +22 -20
- package/src/components/Basefn__Drawer.res +5 -5
- package/src/components/Basefn__Drawer.res.mjs +22 -20
- package/src/components/Basefn__Dropdown.res +4 -4
- package/src/components/Basefn__Dropdown.res.mjs +20 -18
- package/src/components/Basefn__Grid.res.mjs +15 -14
- package/src/components/Basefn__HoverCard.res +3 -3
- package/src/components/Basefn__HoverCard.res.mjs +14 -12
- package/src/components/Basefn__Icon.res.mjs +8 -7
- package/src/components/Basefn__Input.res.mjs +4 -4
- package/src/components/Basefn__Kbd.res +2 -2
- package/src/components/Basefn__Kbd.res.mjs +5 -5
- package/src/components/Basefn__Label.res +1 -1
- package/src/components/Basefn__Label.res.mjs +4 -4
- package/src/components/Basefn__Modal.res +5 -5
- package/src/components/Basefn__Modal.res.mjs +20 -18
- package/src/components/Basefn__Popover.res +3 -3
- package/src/components/Basefn__Popover.res.mjs +15 -13
- package/src/components/Basefn__Progress.res +2 -2
- package/src/components/Basefn__Progress.res.mjs +16 -14
- package/src/components/Basefn__Radio.res +1 -1
- package/src/components/Basefn__Radio.res.mjs +7 -7
- package/src/components/Basefn__Resizable.res +49 -20
- package/src/components/Basefn__Resizable.res.mjs +66 -36
- package/src/components/Basefn__ScrollArea.res +1 -1
- package/src/components/Basefn__ScrollArea.res.mjs +2 -2
- package/src/components/Basefn__Select.res +2 -2
- package/src/components/Basefn__Select.res.mjs +7 -6
- package/src/components/Basefn__Separator.res +1 -1
- package/src/components/Basefn__Separator.res.mjs +9 -9
- package/src/components/Basefn__Sidebar.res +7 -7
- package/src/components/Basefn__Sidebar.res.mjs +28 -24
- package/src/components/Basefn__Skeleton.res.mjs +2 -2
- package/src/components/Basefn__Slider.res +4 -4
- package/src/components/Basefn__Slider.res.mjs +21 -20
- package/src/components/Basefn__Spinner.res +1 -1
- package/src/components/Basefn__Spinner.res.mjs +8 -8
- package/src/components/Basefn__Spotlight.res +14 -14
- package/src/components/Basefn__Spotlight.res.mjs +69 -65
- package/src/components/Basefn__Stepper.res +6 -6
- package/src/components/Basefn__Stepper.res.mjs +20 -24
- package/src/components/Basefn__Switch.res +1 -1
- package/src/components/Basefn__Switch.res.mjs +16 -14
- package/src/components/Basefn__Tabs.res +4 -4
- package/src/components/Basefn__Tabs.res.mjs +19 -17
- package/src/components/Basefn__Textarea.res.mjs +4 -4
- package/src/components/Basefn__ThemeToggle.res +1 -1
- package/src/components/Basefn__ThemeToggle.res.mjs +13 -10
- package/src/components/Basefn__Timeline.res +6 -6
- package/src/components/Basefn__Timeline.res.mjs +21 -21
- package/src/components/Basefn__Toast.res +4 -4
- package/src/components/Basefn__Toast.res.mjs +23 -20
- package/src/components/Basefn__Toggle.res +1 -1
- package/src/components/Basefn__Toggle.res.mjs +8 -7
- package/src/components/Basefn__ToggleGroup.res +2 -2
- package/src/components/Basefn__ToggleGroup.res.mjs +12 -10
- package/src/components/Basefn__Tooltip.res +3 -3
- package/src/components/Basefn__Tooltip.res.mjs +14 -12
- package/src/components/Basefn__Topbar.res +7 -7
- package/src/components/Basefn__Topbar.res.mjs +22 -22
- package/src/components/Basefn__Typography.res +2 -2
- package/src/components/Basefn__Typography.res.mjs +13 -13
- package/src/styles/Basefn__Theme.res.mjs +5 -5
package/src/Demo.res.mjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as Xote from "xote/src/Xote.res.mjs";
|
|
4
3
|
import * as Basefn from "./Basefn.res.mjs";
|
|
5
|
-
import * as
|
|
4
|
+
import * as Node$Xote from "xote/src/Node.res.mjs";
|
|
5
|
+
import * as Signal$Xote from "xote/src/Signal.res.mjs";
|
|
6
6
|
import * as Stdlib_Bool from "@rescript/runtime/lib/es6/Stdlib_Bool.js";
|
|
7
|
+
import * as XoteJSX$Xote from "xote/src/XoteJSX.res.mjs";
|
|
8
|
+
import * as Computed$Xote from "xote/src/Computed.res.mjs";
|
|
7
9
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
8
10
|
|
|
9
11
|
import './styles/variables.css'
|
|
@@ -13,73 +15,73 @@ import './eita.css'
|
|
|
13
15
|
;
|
|
14
16
|
|
|
15
17
|
function Demo$Demo(props) {
|
|
16
|
-
let name = Xote.
|
|
17
|
-
let email = Xote.
|
|
18
|
-
let password = Xote.
|
|
19
|
-
let message = Xote.
|
|
20
|
-
let agreeToTerms = Xote.
|
|
21
|
-
let newsletter = Xote.
|
|
22
|
-
let selectedOption = Xote.
|
|
23
|
-
let selectedColor = Xote.
|
|
24
|
-
let isSubmitting = Xote.
|
|
25
|
-
let downloadProgress = Xote.
|
|
26
|
-
let isModalOpen = Xote.
|
|
27
|
-
let sliderValue = Xote.
|
|
28
|
-
let switchEnabled = Xote.
|
|
29
|
-
let darkModeSwitch = Xote.
|
|
30
|
-
let notificationsSwitch = Xote.
|
|
31
|
-
let toastVisible = Xote.
|
|
32
|
-
let currentStep = Xote.
|
|
33
|
-
let isDrawerOpen = Xote.
|
|
34
|
-
let activeNavItem = Xote.
|
|
35
|
-
let sidebarCollapsed = Xote.
|
|
18
|
+
let name = Signal$Xote.make("", undefined, undefined);
|
|
19
|
+
let email = Signal$Xote.make("", undefined, undefined);
|
|
20
|
+
let password = Signal$Xote.make("", undefined, undefined);
|
|
21
|
+
let message = Signal$Xote.make("", undefined, undefined);
|
|
22
|
+
let agreeToTerms = Signal$Xote.make(false, undefined, undefined);
|
|
23
|
+
let newsletter = Signal$Xote.make(false, undefined, undefined);
|
|
24
|
+
let selectedOption = Signal$Xote.make("option1", undefined, undefined);
|
|
25
|
+
let selectedColor = Signal$Xote.make("blue", undefined, undefined);
|
|
26
|
+
let isSubmitting = Signal$Xote.make(false, undefined, undefined);
|
|
27
|
+
let downloadProgress = Signal$Xote.make(65.0, undefined, undefined);
|
|
28
|
+
let isModalOpen = Signal$Xote.make(false, undefined, undefined);
|
|
29
|
+
let sliderValue = Signal$Xote.make(50.0, undefined, undefined);
|
|
30
|
+
let switchEnabled = Signal$Xote.make(false, undefined, undefined);
|
|
31
|
+
let darkModeSwitch = Signal$Xote.make(true, undefined, undefined);
|
|
32
|
+
let notificationsSwitch = Signal$Xote.make(false, undefined, undefined);
|
|
33
|
+
let toastVisible = Signal$Xote.make(false, undefined, undefined);
|
|
34
|
+
let currentStep = Signal$Xote.make(1, undefined, undefined);
|
|
35
|
+
let isDrawerOpen = Signal$Xote.make(false, undefined, undefined);
|
|
36
|
+
let activeNavItem = Signal$Xote.make("home", undefined, undefined);
|
|
37
|
+
let sidebarCollapsed = Signal$Xote.make(false, undefined, undefined);
|
|
36
38
|
let handleNameChange = evt => {
|
|
37
39
|
let target = evt.target;
|
|
38
|
-
Xote.
|
|
40
|
+
Signal$Xote.set(name, target.value);
|
|
39
41
|
};
|
|
40
42
|
let handleEmailChange = evt => {
|
|
41
43
|
let target = evt.target;
|
|
42
|
-
Xote.
|
|
44
|
+
Signal$Xote.set(email, target.value);
|
|
43
45
|
};
|
|
44
46
|
let handlePasswordChange = evt => {
|
|
45
47
|
let target = evt.target;
|
|
46
|
-
Xote.
|
|
48
|
+
Signal$Xote.set(password, target.value);
|
|
47
49
|
};
|
|
48
50
|
let handleMessageChange = evt => {
|
|
49
51
|
let target = evt.target;
|
|
50
|
-
Xote.
|
|
52
|
+
Signal$Xote.set(message, target.value);
|
|
51
53
|
};
|
|
52
|
-
let handleTermsChange = _evt => Xote.
|
|
53
|
-
let handleNewsletterChange = _evt => Xote.
|
|
54
|
+
let handleTermsChange = _evt => Signal$Xote.update(agreeToTerms, prev => !prev);
|
|
55
|
+
let handleNewsletterChange = _evt => Signal$Xote.update(newsletter, prev => !prev);
|
|
54
56
|
let handleColorChange = evt => {
|
|
55
57
|
let target = evt.target;
|
|
56
|
-
Xote.
|
|
58
|
+
Signal$Xote.set(selectedColor, target.value);
|
|
57
59
|
};
|
|
58
60
|
let handleSubmit = _evt => {
|
|
59
|
-
Xote.
|
|
61
|
+
Signal$Xote.set(isSubmitting, true);
|
|
60
62
|
console.log("=== Form Submission ===");
|
|
61
|
-
console.log(`Name: ` + Xote.
|
|
62
|
-
console.log(`Email: ` + Xote.
|
|
63
|
-
console.log(`Password: ` + Xote.
|
|
64
|
-
console.log(`Message: ` + Xote.
|
|
65
|
-
console.log(`Selected Option: ` + Xote.
|
|
66
|
-
console.log(`Selected Color: ` + Xote.
|
|
67
|
-
console.log(`Agree to Terms: ` + Stdlib_Bool.toString(Xote.
|
|
68
|
-
console.log(`Newsletter: ` + Stdlib_Bool.toString(Xote.
|
|
63
|
+
console.log(`Name: ` + Signal$Xote.get(name));
|
|
64
|
+
console.log(`Email: ` + Signal$Xote.get(email));
|
|
65
|
+
console.log(`Password: ` + Signal$Xote.get(password));
|
|
66
|
+
console.log(`Message: ` + Signal$Xote.get(message));
|
|
67
|
+
console.log(`Selected Option: ` + Signal$Xote.get(selectedOption));
|
|
68
|
+
console.log(`Selected Color: ` + Signal$Xote.get(selectedColor));
|
|
69
|
+
console.log(`Agree to Terms: ` + Stdlib_Bool.toString(Signal$Xote.get(agreeToTerms)));
|
|
70
|
+
console.log(`Newsletter: ` + Stdlib_Bool.toString(Signal$Xote.get(newsletter)));
|
|
69
71
|
setTimeout(() => {
|
|
70
|
-
Xote.
|
|
72
|
+
Signal$Xote.set(isSubmitting, false);
|
|
71
73
|
console.log("Form submitted successfully!");
|
|
72
74
|
}, 2000);
|
|
73
75
|
};
|
|
74
76
|
let handleReset = _evt => {
|
|
75
|
-
Xote.
|
|
76
|
-
Xote.
|
|
77
|
-
Xote.
|
|
78
|
-
Xote.
|
|
79
|
-
Xote.
|
|
80
|
-
Xote.
|
|
81
|
-
Xote.
|
|
82
|
-
Xote.
|
|
77
|
+
Signal$Xote.set(name, "");
|
|
78
|
+
Signal$Xote.set(email, "");
|
|
79
|
+
Signal$Xote.set(password, "");
|
|
80
|
+
Signal$Xote.set(message, "");
|
|
81
|
+
Signal$Xote.set(agreeToTerms, false);
|
|
82
|
+
Signal$Xote.set(newsletter, false);
|
|
83
|
+
Signal$Xote.set(selectedOption, "option1");
|
|
84
|
+
Signal$Xote.set(selectedColor, "blue");
|
|
83
85
|
console.log("Form reset");
|
|
84
86
|
};
|
|
85
87
|
let selectOptions = [
|
|
@@ -100,27 +102,27 @@ function Demo$Demo(props) {
|
|
|
100
102
|
label: "Other"
|
|
101
103
|
}
|
|
102
104
|
];
|
|
103
|
-
let selectOptionsSignal = Xote.
|
|
104
|
-
return
|
|
105
|
-
children:
|
|
106
|
-
Xote.
|
|
107
|
-
|
|
108
|
-
children: Xote.
|
|
105
|
+
let selectOptionsSignal = Signal$Xote.make(selectOptions, undefined, undefined);
|
|
106
|
+
return XoteJSX$Xote.jsxs(XoteJSX$Xote.jsxFragment, {
|
|
107
|
+
children: XoteJSX$Xote.array([
|
|
108
|
+
Node$Xote.signalText(() => Signal$Xote.get(selectedOption)),
|
|
109
|
+
XoteJSX$Xote.Elements.jsx("h1", {
|
|
110
|
+
children: Node$Xote.text("basefn-UI Component Library")
|
|
109
111
|
}),
|
|
110
|
-
|
|
112
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
111
113
|
style: "color: #6b7280; margin-bottom: 2rem;",
|
|
112
|
-
children: Xote.
|
|
114
|
+
children: Node$Xote.text("A demonstration of all form components with both static and reactive values.")
|
|
113
115
|
}),
|
|
114
|
-
|
|
115
|
-
children:
|
|
116
|
-
|
|
117
|
-
children:
|
|
118
|
-
|
|
116
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
117
|
+
children: XoteJSX$Xote.array([
|
|
118
|
+
XoteJSX$Xote.jsxs(Basefn.Grid.make, {
|
|
119
|
+
children: XoteJSX$Xote.array([
|
|
120
|
+
XoteJSX$Xote.jsx(Basefn.Avatar.make, {
|
|
119
121
|
src: "https://upload.wikimedia.org/wikipedia/commons/a/ad/Schopfkarakara.jpg"
|
|
120
122
|
}),
|
|
121
|
-
|
|
122
|
-
children:
|
|
123
|
-
|
|
123
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
124
|
+
children: XoteJSX$Xote.array([
|
|
125
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
124
126
|
text: {
|
|
125
127
|
TAG: "Static",
|
|
126
128
|
_0: "Crested Caracara"
|
|
@@ -128,7 +130,7 @@ function Demo$Demo(props) {
|
|
|
128
130
|
variant: "Unstyled",
|
|
129
131
|
class: "bold"
|
|
130
132
|
}),
|
|
131
|
-
|
|
133
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
132
134
|
text: {
|
|
133
135
|
TAG: "Static",
|
|
134
136
|
_0: "Bird of prey"
|
|
@@ -139,14 +141,14 @@ function Demo$Demo(props) {
|
|
|
139
141
|
})
|
|
140
142
|
])
|
|
141
143
|
}),
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
children:
|
|
145
|
-
|
|
144
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
145
|
+
XoteJSX$Xote.jsxs(Basefn.Grid.make, {
|
|
146
|
+
children: XoteJSX$Xote.array([
|
|
147
|
+
XoteJSX$Xote.jsx(Basefn.Avatar.make, {
|
|
146
148
|
src: "https://upload.wikimedia.org/wikipedia/commons/a/ad/Schopfkarakara.jpg"
|
|
147
149
|
}),
|
|
148
|
-
|
|
149
|
-
children:
|
|
150
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
151
|
+
children: XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
150
152
|
text: {
|
|
151
153
|
TAG: "Static",
|
|
152
154
|
_0: "Crested Caracara"
|
|
@@ -157,15 +159,15 @@ function Demo$Demo(props) {
|
|
|
157
159
|
})
|
|
158
160
|
])
|
|
159
161
|
}),
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
children:
|
|
163
|
-
|
|
162
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
163
|
+
XoteJSX$Xote.jsxs(Basefn.Grid.make, {
|
|
164
|
+
children: XoteJSX$Xote.array([
|
|
165
|
+
XoteJSX$Xote.jsx(Basefn.Avatar.make, {
|
|
164
166
|
src: "https://upload.wikimedia.org/wikipedia/commons/a/ad/Schopfkarakara.jpg",
|
|
165
167
|
size: "Sm"
|
|
166
168
|
}),
|
|
167
|
-
|
|
168
|
-
children:
|
|
169
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
170
|
+
children: XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
169
171
|
text: {
|
|
170
172
|
TAG: "Static",
|
|
171
173
|
_0: "Crested Caracara"
|
|
@@ -175,24 +177,24 @@ function Demo$Demo(props) {
|
|
|
175
177
|
})
|
|
176
178
|
])
|
|
177
179
|
}),
|
|
178
|
-
|
|
179
|
-
|
|
180
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
181
|
+
XoteJSX$Xote.jsxs(Basefn.Grid.make, {
|
|
180
182
|
gap: "1rem",
|
|
181
|
-
children:
|
|
182
|
-
|
|
183
|
+
children: XoteJSX$Xote.array([
|
|
184
|
+
XoteJSX$Xote.jsx(Basefn.Avatar.make, {
|
|
183
185
|
src: "https://upload.wikimedia.org/wikipedia/commons/a/ad/Schopfkarakara.jpg",
|
|
184
186
|
size: "Lg"
|
|
185
187
|
}),
|
|
186
|
-
|
|
187
|
-
children:
|
|
188
|
-
|
|
188
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
189
|
+
children: XoteJSX$Xote.array([
|
|
190
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
189
191
|
text: {
|
|
190
192
|
TAG: "Static",
|
|
191
193
|
_0: "Crested Caracara"
|
|
192
194
|
},
|
|
193
195
|
variant: "H4"
|
|
194
196
|
}),
|
|
195
|
-
|
|
197
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
196
198
|
text: {
|
|
197
199
|
TAG: "Static",
|
|
198
200
|
_0: "Bird of prey"
|
|
@@ -207,13 +209,13 @@ function Demo$Demo(props) {
|
|
|
207
209
|
]),
|
|
208
210
|
style: "margin-bottom: 2rem;"
|
|
209
211
|
}),
|
|
210
|
-
|
|
211
|
-
children:
|
|
212
|
-
|
|
212
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
213
|
+
children: XoteJSX$Xote.array([
|
|
214
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
213
215
|
text: "Full Name",
|
|
214
216
|
required: true
|
|
215
217
|
}),
|
|
216
|
-
|
|
218
|
+
XoteJSX$Xote.jsx(Basefn.Input.make, {
|
|
217
219
|
value: {
|
|
218
220
|
TAG: "Reactive",
|
|
219
221
|
_0: name
|
|
@@ -222,12 +224,12 @@ function Demo$Demo(props) {
|
|
|
222
224
|
type_: "Text",
|
|
223
225
|
placeholder: "John Doe"
|
|
224
226
|
}),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
228
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
227
229
|
text: "Email Address",
|
|
228
230
|
required: true
|
|
229
231
|
}),
|
|
230
|
-
|
|
232
|
+
XoteJSX$Xote.jsx(Basefn.Input.make, {
|
|
231
233
|
value: {
|
|
232
234
|
TAG: "Reactive",
|
|
233
235
|
_0: email
|
|
@@ -236,12 +238,12 @@ function Demo$Demo(props) {
|
|
|
236
238
|
type_: "Email",
|
|
237
239
|
placeholder: "john@example.com"
|
|
238
240
|
}),
|
|
239
|
-
|
|
240
|
-
|
|
241
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
242
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
241
243
|
text: "Password",
|
|
242
244
|
required: true
|
|
243
245
|
}),
|
|
244
|
-
|
|
246
|
+
XoteJSX$Xote.jsx(Basefn.Input.make, {
|
|
245
247
|
value: {
|
|
246
248
|
TAG: "Reactive",
|
|
247
249
|
_0: password
|
|
@@ -252,45 +254,45 @@ function Demo$Demo(props) {
|
|
|
252
254
|
})
|
|
253
255
|
])
|
|
254
256
|
}),
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
children:
|
|
258
|
-
|
|
257
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
258
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
259
|
+
children: XoteJSX$Xote.array([
|
|
260
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
259
261
|
text: "Area of Interest",
|
|
260
262
|
required: false
|
|
261
263
|
}),
|
|
262
|
-
|
|
264
|
+
XoteJSX$Xote.jsx(Basefn.Select.make, {
|
|
263
265
|
value: selectedOption,
|
|
264
266
|
onChange: e => {
|
|
265
267
|
let target = e.target;
|
|
266
|
-
Xote.
|
|
268
|
+
Signal$Xote.set(selectedOption, target.value);
|
|
267
269
|
},
|
|
268
270
|
options: selectOptionsSignal
|
|
269
271
|
}),
|
|
270
|
-
|
|
271
|
-
|
|
272
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
273
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
272
274
|
text: "Favorite Color",
|
|
273
275
|
required: false
|
|
274
276
|
}),
|
|
275
|
-
|
|
277
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
276
278
|
style: "display: flex; gap: 1rem; margin-top: 0.5rem;",
|
|
277
|
-
children:
|
|
278
|
-
|
|
279
|
-
checked: Xote.
|
|
279
|
+
children: XoteJSX$Xote.array([
|
|
280
|
+
XoteJSX$Xote.jsx(Basefn.Radio.make, {
|
|
281
|
+
checked: Computed$Xote.make(() => Signal$Xote.get(selectedColor) === "blue", undefined),
|
|
280
282
|
onChange: handleColorChange,
|
|
281
283
|
value: "blue",
|
|
282
284
|
label: "Blue",
|
|
283
285
|
name: "radio"
|
|
284
286
|
}),
|
|
285
|
-
|
|
286
|
-
checked: Xote.
|
|
287
|
+
XoteJSX$Xote.jsx(Basefn.Radio.make, {
|
|
288
|
+
checked: Computed$Xote.make(() => Signal$Xote.get(selectedColor) === "green", undefined),
|
|
287
289
|
onChange: handleColorChange,
|
|
288
290
|
value: "green",
|
|
289
291
|
label: "Green",
|
|
290
292
|
name: "radio"
|
|
291
293
|
}),
|
|
292
|
-
|
|
293
|
-
checked: Xote.
|
|
294
|
+
XoteJSX$Xote.jsx(Basefn.Radio.make, {
|
|
295
|
+
checked: Computed$Xote.make(() => Signal$Xote.get(selectedColor) === "red", undefined),
|
|
294
296
|
onChange: handleColorChange,
|
|
295
297
|
value: "red",
|
|
296
298
|
label: "Red",
|
|
@@ -300,14 +302,14 @@ function Demo$Demo(props) {
|
|
|
300
302
|
})
|
|
301
303
|
])
|
|
302
304
|
}),
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
children:
|
|
306
|
-
|
|
305
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
306
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
307
|
+
children: XoteJSX$Xote.array([
|
|
308
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
307
309
|
text: "Message",
|
|
308
310
|
required: false
|
|
309
311
|
}),
|
|
310
|
-
|
|
312
|
+
XoteJSX$Xote.jsx(Basefn.Textarea.make, {
|
|
311
313
|
value: {
|
|
312
314
|
TAG: "Reactive",
|
|
313
315
|
_0: message
|
|
@@ -317,36 +319,36 @@ function Demo$Demo(props) {
|
|
|
317
319
|
})
|
|
318
320
|
])
|
|
319
321
|
}),
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
children:
|
|
323
|
-
|
|
322
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
323
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
324
|
+
children: XoteJSX$Xote.array([
|
|
325
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
324
326
|
style: "margin-bottom: 1.5rem;",
|
|
325
|
-
children:
|
|
327
|
+
children: XoteJSX$Xote.jsx(Basefn.Checkbox.make, {
|
|
326
328
|
checked: agreeToTerms,
|
|
327
329
|
onChange: handleTermsChange,
|
|
328
330
|
label: "I agree to the terms and conditions"
|
|
329
331
|
})
|
|
330
332
|
}),
|
|
331
|
-
|
|
333
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
332
334
|
style: "margin-bottom: 2rem;",
|
|
333
|
-
children:
|
|
335
|
+
children: XoteJSX$Xote.jsx(Basefn.Checkbox.make, {
|
|
334
336
|
checked: newsletter,
|
|
335
337
|
onChange: handleNewsletterChange,
|
|
336
338
|
label: "Subscribe to our newsletter"
|
|
337
339
|
})
|
|
338
340
|
}),
|
|
339
|
-
|
|
341
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
340
342
|
style: "display: flex; gap: 1rem; flex-wrap: wrap;",
|
|
341
|
-
children:
|
|
343
|
+
children: XoteJSX$Xote.array([
|
|
342
344
|
{
|
|
343
345
|
TAG: "SignalFragment",
|
|
344
|
-
_0: Xote.
|
|
346
|
+
_0: Computed$Xote.make(() => [XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
345
347
|
disabled: {
|
|
346
348
|
TAG: "Reactive",
|
|
347
349
|
_0: isSubmitting
|
|
348
350
|
},
|
|
349
|
-
label: Xote.
|
|
351
|
+
label: Signal$Xote.get(isSubmitting) ? ({
|
|
350
352
|
TAG: "Static",
|
|
351
353
|
_0: "Submitting..."
|
|
352
354
|
}) : ({
|
|
@@ -357,7 +359,7 @@ function Demo$Demo(props) {
|
|
|
357
359
|
variant: "Primary"
|
|
358
360
|
})], undefined)
|
|
359
361
|
},
|
|
360
|
-
|
|
362
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
361
363
|
disabled: {
|
|
362
364
|
TAG: "Reactive",
|
|
363
365
|
_0: isSubmitting
|
|
@@ -369,7 +371,7 @@ function Demo$Demo(props) {
|
|
|
369
371
|
onClick: handleReset,
|
|
370
372
|
variant: "Secondary"
|
|
371
373
|
}),
|
|
372
|
-
|
|
374
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
373
375
|
disabled: {
|
|
374
376
|
TAG: "Reactive",
|
|
375
377
|
_0: isSubmitting
|
|
@@ -384,45 +386,45 @@ function Demo$Demo(props) {
|
|
|
384
386
|
})
|
|
385
387
|
])
|
|
386
388
|
}),
|
|
387
|
-
|
|
389
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
388
390
|
style: "margin-top: 2rem;",
|
|
389
|
-
children:
|
|
390
|
-
|
|
391
|
+
children: XoteJSX$Xote.array([
|
|
392
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
391
393
|
text: {
|
|
392
394
|
TAG: "Static",
|
|
393
395
|
_0: "Alerts"
|
|
394
396
|
},
|
|
395
397
|
variant: "H4"
|
|
396
398
|
}),
|
|
397
|
-
|
|
399
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
398
400
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
399
|
-
children: Xote.
|
|
401
|
+
children: Node$Xote.text("Display important messages with different severity levels.")
|
|
400
402
|
}),
|
|
401
|
-
|
|
403
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
402
404
|
style: "display: flex; flex-direction: column; gap: 1rem;",
|
|
403
|
-
children:
|
|
404
|
-
|
|
405
|
+
children: XoteJSX$Xote.array([
|
|
406
|
+
XoteJSX$Xote.jsx(Basefn.Alert.make, {
|
|
405
407
|
title: "Information",
|
|
406
|
-
message: Xote.
|
|
408
|
+
message: Signal$Xote.make("This is an informational alert message.", undefined, undefined),
|
|
407
409
|
variant: "Info"
|
|
408
410
|
}),
|
|
409
|
-
|
|
411
|
+
XoteJSX$Xote.jsx(Basefn.Alert.make, {
|
|
410
412
|
title: "Success",
|
|
411
|
-
message: Xote.
|
|
413
|
+
message: Signal$Xote.make("Your changes have been saved successfully!", undefined, undefined),
|
|
412
414
|
variant: "Success"
|
|
413
415
|
}),
|
|
414
|
-
|
|
416
|
+
XoteJSX$Xote.jsx(Basefn.Alert.make, {
|
|
415
417
|
title: "Warning",
|
|
416
|
-
message: Xote.
|
|
418
|
+
message: Signal$Xote.make("Please review your input before proceeding.", undefined, undefined),
|
|
417
419
|
variant: "Warning"
|
|
418
420
|
}),
|
|
419
|
-
|
|
421
|
+
XoteJSX$Xote.jsx(Basefn.Alert.make, {
|
|
420
422
|
title: "Error",
|
|
421
|
-
message: Xote.
|
|
423
|
+
message: Signal$Xote.make("An error occurred while processing your request.", undefined, undefined),
|
|
422
424
|
variant: "Error"
|
|
423
425
|
}),
|
|
424
|
-
|
|
425
|
-
message: Xote.
|
|
426
|
+
XoteJSX$Xote.jsx(Basefn.Alert.make, {
|
|
427
|
+
message: Signal$Xote.make("This is a dismissible alert. Click the X to close it.", undefined, undefined),
|
|
426
428
|
variant: "Info",
|
|
427
429
|
dismissible: true
|
|
428
430
|
})
|
|
@@ -430,73 +432,73 @@ function Demo$Demo(props) {
|
|
|
430
432
|
})
|
|
431
433
|
])
|
|
432
434
|
}),
|
|
433
|
-
|
|
435
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
434
436
|
style: "margin-top: 2rem;",
|
|
435
|
-
children:
|
|
436
|
-
|
|
437
|
+
children: XoteJSX$Xote.array([
|
|
438
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
437
439
|
text: {
|
|
438
440
|
TAG: "Static",
|
|
439
441
|
_0: "Progress"
|
|
440
442
|
},
|
|
441
443
|
variant: "H4"
|
|
442
444
|
}),
|
|
443
|
-
|
|
445
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
444
446
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
445
|
-
children: Xote.
|
|
447
|
+
children: Node$Xote.text("Show progress indicators for ongoing operations.")
|
|
446
448
|
}),
|
|
447
|
-
|
|
449
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
448
450
|
style: "display: flex; flex-direction: column; gap: 2rem;",
|
|
449
|
-
children:
|
|
450
|
-
|
|
451
|
-
children:
|
|
452
|
-
value: Xote.
|
|
451
|
+
children: XoteJSX$Xote.array([
|
|
452
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
453
|
+
children: XoteJSX$Xote.jsx(Basefn.Progress.make, {
|
|
454
|
+
value: Signal$Xote.make(25.0, undefined, undefined),
|
|
453
455
|
variant: "Primary",
|
|
454
456
|
showLabel: true
|
|
455
457
|
})
|
|
456
458
|
}),
|
|
457
|
-
|
|
458
|
-
children:
|
|
459
|
-
value: Xote.
|
|
459
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
460
|
+
children: XoteJSX$Xote.jsx(Basefn.Progress.make, {
|
|
461
|
+
value: Signal$Xote.make(50.0, undefined, undefined),
|
|
460
462
|
variant: "Success",
|
|
461
463
|
showLabel: true,
|
|
462
464
|
label: "Upload"
|
|
463
465
|
})
|
|
464
466
|
}),
|
|
465
|
-
|
|
466
|
-
children:
|
|
467
|
-
value: Xote.
|
|
467
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
468
|
+
children: XoteJSX$Xote.jsx(Basefn.Progress.make, {
|
|
469
|
+
value: Signal$Xote.make(75.0, undefined, undefined),
|
|
468
470
|
variant: "Warning",
|
|
469
471
|
showLabel: true,
|
|
470
472
|
label: "Processing"
|
|
471
473
|
})
|
|
472
474
|
}),
|
|
473
|
-
|
|
474
|
-
children:
|
|
475
|
-
value: Xote.
|
|
475
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
476
|
+
children: XoteJSX$Xote.jsx(Basefn.Progress.make, {
|
|
477
|
+
value: Signal$Xote.make(100.0, undefined, undefined),
|
|
476
478
|
variant: "Success",
|
|
477
479
|
showLabel: true,
|
|
478
480
|
label: "Complete"
|
|
479
481
|
})
|
|
480
482
|
}),
|
|
481
|
-
|
|
482
|
-
children:
|
|
483
|
-
|
|
483
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
484
|
+
children: XoteJSX$Xote.array([
|
|
485
|
+
XoteJSX$Xote.jsx(Basefn.Progress.make, {
|
|
484
486
|
value: downloadProgress,
|
|
485
487
|
variant: "Primary",
|
|
486
488
|
showLabel: true,
|
|
487
489
|
label: "Dynamic Progress"
|
|
488
490
|
}),
|
|
489
|
-
|
|
491
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
490
492
|
label: {
|
|
491
493
|
TAG: "Static",
|
|
492
494
|
_0: "Simulate Progress"
|
|
493
495
|
},
|
|
494
496
|
onClick: _evt => {
|
|
495
|
-
Xote.
|
|
497
|
+
Signal$Xote.set(downloadProgress, 0.0);
|
|
496
498
|
let intervalId = {
|
|
497
499
|
contents: undefined
|
|
498
500
|
};
|
|
499
|
-
let id = setInterval(() => Xote.
|
|
501
|
+
let id = setInterval(() => Signal$Xote.update(downloadProgress, prev => {
|
|
500
502
|
let next = prev + 5.0;
|
|
501
503
|
if (next < 100.0) {
|
|
502
504
|
return next;
|
|
@@ -513,14 +515,14 @@ function Demo$Demo(props) {
|
|
|
513
515
|
})
|
|
514
516
|
])
|
|
515
517
|
}),
|
|
516
|
-
|
|
517
|
-
children:
|
|
518
|
-
|
|
518
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
519
|
+
children: XoteJSX$Xote.array([
|
|
520
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
519
521
|
style: "color: #6b7280; margin-bottom: 0.5rem;",
|
|
520
|
-
children: Xote.
|
|
522
|
+
children: Node$Xote.text("Indeterminate progress:")
|
|
521
523
|
}),
|
|
522
|
-
|
|
523
|
-
value: Xote.
|
|
524
|
+
XoteJSX$Xote.jsx(Basefn.Progress.make, {
|
|
525
|
+
value: Signal$Xote.make(0.0, undefined, undefined),
|
|
524
526
|
variant: "Primary",
|
|
525
527
|
indeterminate: true
|
|
526
528
|
})
|
|
@@ -530,37 +532,37 @@ function Demo$Demo(props) {
|
|
|
530
532
|
})
|
|
531
533
|
])
|
|
532
534
|
}),
|
|
533
|
-
|
|
535
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
534
536
|
style: "margin-top: 2rem;",
|
|
535
|
-
children:
|
|
536
|
-
|
|
537
|
+
children: XoteJSX$Xote.array([
|
|
538
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
537
539
|
text: {
|
|
538
540
|
TAG: "Static",
|
|
539
541
|
_0: "Tabs"
|
|
540
542
|
},
|
|
541
543
|
variant: "H4"
|
|
542
544
|
}),
|
|
543
|
-
|
|
545
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
544
546
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
545
|
-
children: Xote.
|
|
547
|
+
children: Node$Xote.text("Organize content into tabbed sections.")
|
|
546
548
|
}),
|
|
547
|
-
|
|
549
|
+
XoteJSX$Xote.jsx(Basefn.Tabs.make, {
|
|
548
550
|
tabs: [
|
|
549
551
|
{
|
|
550
552
|
value: "account",
|
|
551
553
|
label: "Account",
|
|
552
|
-
content:
|
|
553
|
-
children:
|
|
554
|
-
|
|
554
|
+
content: XoteJSX$Xote.Elements.jsxs("div", {
|
|
555
|
+
children: XoteJSX$Xote.array([
|
|
556
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
555
557
|
text: {
|
|
556
558
|
TAG: "Static",
|
|
557
559
|
_0: "Account Settings"
|
|
558
560
|
},
|
|
559
561
|
variant: "H5"
|
|
560
562
|
}),
|
|
561
|
-
|
|
563
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
562
564
|
style: "color: #6b7280; margin-top: 0.5rem;",
|
|
563
|
-
children: Xote.
|
|
565
|
+
children: Node$Xote.text("Manage your account settings and preferences here. You can update your profile information, change your password, and configure notification settings.")
|
|
564
566
|
})
|
|
565
567
|
])
|
|
566
568
|
})
|
|
@@ -568,23 +570,23 @@ function Demo$Demo(props) {
|
|
|
568
570
|
{
|
|
569
571
|
value: "security",
|
|
570
572
|
label: "Security",
|
|
571
|
-
content:
|
|
572
|
-
children:
|
|
573
|
-
|
|
573
|
+
content: XoteJSX$Xote.Elements.jsxs("div", {
|
|
574
|
+
children: XoteJSX$Xote.array([
|
|
575
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
574
576
|
text: {
|
|
575
577
|
TAG: "Static",
|
|
576
578
|
_0: "Security Settings"
|
|
577
579
|
},
|
|
578
580
|
variant: "H5"
|
|
579
581
|
}),
|
|
580
|
-
|
|
582
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
581
583
|
style: "color: #6b7280; margin-top: 0.5rem;",
|
|
582
|
-
children: Xote.
|
|
584
|
+
children: Node$Xote.text("Configure your security preferences including two-factor authentication, active sessions, and security logs.")
|
|
583
585
|
}),
|
|
584
|
-
|
|
586
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
585
587
|
style: "margin-top: 1rem;",
|
|
586
|
-
children:
|
|
587
|
-
checked: Xote.
|
|
588
|
+
children: XoteJSX$Xote.jsx(Basefn.Checkbox.make, {
|
|
589
|
+
checked: Signal$Xote.make(true, undefined, undefined),
|
|
588
590
|
onChange: param => {},
|
|
589
591
|
label: "Enable two-factor authentication"
|
|
590
592
|
})
|
|
@@ -595,34 +597,34 @@ function Demo$Demo(props) {
|
|
|
595
597
|
{
|
|
596
598
|
value: "notifications",
|
|
597
599
|
label: "Notifications",
|
|
598
|
-
content:
|
|
599
|
-
children:
|
|
600
|
-
|
|
600
|
+
content: XoteJSX$Xote.Elements.jsxs("div", {
|
|
601
|
+
children: XoteJSX$Xote.array([
|
|
602
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
601
603
|
text: {
|
|
602
604
|
TAG: "Static",
|
|
603
605
|
_0: "Notification Preferences"
|
|
604
606
|
},
|
|
605
607
|
variant: "H5"
|
|
606
608
|
}),
|
|
607
|
-
|
|
609
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
608
610
|
style: "color: #6b7280; margin-top: 0.5rem;",
|
|
609
|
-
children: Xote.
|
|
611
|
+
children: Node$Xote.text("Choose how you want to receive notifications.")
|
|
610
612
|
}),
|
|
611
|
-
|
|
613
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
612
614
|
style: "display: flex; flex-direction: column; gap: 0.75rem; margin-top: 1rem;",
|
|
613
|
-
children:
|
|
614
|
-
|
|
615
|
-
checked: Xote.
|
|
615
|
+
children: XoteJSX$Xote.array([
|
|
616
|
+
XoteJSX$Xote.jsx(Basefn.Checkbox.make, {
|
|
617
|
+
checked: Signal$Xote.make(true, undefined, undefined),
|
|
616
618
|
onChange: param => {},
|
|
617
619
|
label: "Email notifications"
|
|
618
620
|
}),
|
|
619
|
-
|
|
620
|
-
checked: Xote.
|
|
621
|
+
XoteJSX$Xote.jsx(Basefn.Checkbox.make, {
|
|
622
|
+
checked: Signal$Xote.make(false, undefined, undefined),
|
|
621
623
|
onChange: param => {},
|
|
622
624
|
label: "SMS notifications"
|
|
623
625
|
}),
|
|
624
|
-
|
|
625
|
-
checked: Xote.
|
|
626
|
+
XoteJSX$Xote.jsx(Basefn.Checkbox.make, {
|
|
627
|
+
checked: Signal$Xote.make(true, undefined, undefined),
|
|
626
628
|
onChange: param => {},
|
|
627
629
|
label: "Push notifications"
|
|
628
630
|
})
|
|
@@ -634,18 +636,18 @@ function Demo$Demo(props) {
|
|
|
634
636
|
{
|
|
635
637
|
value: "billing",
|
|
636
638
|
label: "Billing",
|
|
637
|
-
content:
|
|
638
|
-
children:
|
|
639
|
-
|
|
639
|
+
content: XoteJSX$Xote.Elements.jsxs("div", {
|
|
640
|
+
children: XoteJSX$Xote.array([
|
|
641
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
640
642
|
text: {
|
|
641
643
|
TAG: "Static",
|
|
642
644
|
_0: "Billing Information"
|
|
643
645
|
},
|
|
644
646
|
variant: "H5"
|
|
645
647
|
}),
|
|
646
|
-
|
|
648
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
647
649
|
style: "color: #6b7280; margin-top: 0.5rem;",
|
|
648
|
-
children: Xote.
|
|
650
|
+
children: Node$Xote.text("View and manage your billing information, payment methods, and invoices.")
|
|
649
651
|
})
|
|
650
652
|
])
|
|
651
653
|
}),
|
|
@@ -655,39 +657,39 @@ function Demo$Demo(props) {
|
|
|
655
657
|
})
|
|
656
658
|
])
|
|
657
659
|
}),
|
|
658
|
-
|
|
660
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
659
661
|
style: "margin-top: 2rem;",
|
|
660
|
-
children:
|
|
661
|
-
|
|
662
|
+
children: XoteJSX$Xote.array([
|
|
663
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
662
664
|
text: {
|
|
663
665
|
TAG: "Static",
|
|
664
666
|
_0: "Accordion"
|
|
665
667
|
},
|
|
666
668
|
variant: "H4"
|
|
667
669
|
}),
|
|
668
|
-
|
|
670
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
669
671
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
670
|
-
children: Xote.
|
|
672
|
+
children: Node$Xote.text("Collapsible content sections with expand/collapse functionality.")
|
|
671
673
|
}),
|
|
672
|
-
|
|
674
|
+
XoteJSX$Xote.jsx(Basefn.Accordion.make, {
|
|
673
675
|
items: [
|
|
674
676
|
{
|
|
675
677
|
value: "faq1",
|
|
676
678
|
title: "What is basefn-UI?",
|
|
677
|
-
content:
|
|
678
|
-
children: Xote.
|
|
679
|
+
content: XoteJSX$Xote.Elements.jsx("p", {
|
|
680
|
+
children: Node$Xote.text("basefn-UI is a modern, reactive UI component library built with ReScript and Xote. It provides a comprehensive set of accessible and customizable components for building web applications.")
|
|
679
681
|
})
|
|
680
682
|
},
|
|
681
683
|
{
|
|
682
684
|
value: "faq2",
|
|
683
685
|
title: "How do I install basefn-UI?",
|
|
684
|
-
content:
|
|
685
|
-
children:
|
|
686
|
-
|
|
687
|
-
children: Xote.
|
|
686
|
+
content: XoteJSX$Xote.Elements.jsxs("div", {
|
|
687
|
+
children: XoteJSX$Xote.array([
|
|
688
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
689
|
+
children: Node$Xote.text("You can install basefn-UI via npm or yarn. Here's how to get started:")
|
|
688
690
|
}),
|
|
689
|
-
|
|
690
|
-
|
|
691
|
+
XoteJSX$Xote.Elements.jsx("br", {}),
|
|
692
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
691
693
|
text: {
|
|
692
694
|
TAG: "Static",
|
|
693
695
|
_0: "npm install basefn-ui"
|
|
@@ -700,15 +702,15 @@ function Demo$Demo(props) {
|
|
|
700
702
|
{
|
|
701
703
|
value: "faq3",
|
|
702
704
|
title: "Is basefn-UI customizable?",
|
|
703
|
-
content:
|
|
704
|
-
children: Xote.
|
|
705
|
+
content: XoteJSX$Xote.Elements.jsx("p", {
|
|
706
|
+
children: Node$Xote.text("Yes! basefn-UI is fully customizable. You can override the default styles using CSS variables or by providing custom CSS classes. Each component accepts standard HTML attributes including className and style.")
|
|
705
707
|
})
|
|
706
708
|
},
|
|
707
709
|
{
|
|
708
710
|
value: "faq4",
|
|
709
711
|
title: "Does basefn-UI support TypeScript?",
|
|
710
|
-
content:
|
|
711
|
-
children: Xote.
|
|
712
|
+
content: XoteJSX$Xote.Elements.jsx("p", {
|
|
713
|
+
children: Node$Xote.text("basefn-UI is built with ReScript, which provides excellent type safety. While it doesn't directly use TypeScript, ReScript's type system is even more robust and catches errors at compile time.")
|
|
712
714
|
})
|
|
713
715
|
}
|
|
714
716
|
],
|
|
@@ -717,30 +719,30 @@ function Demo$Demo(props) {
|
|
|
717
719
|
})
|
|
718
720
|
])
|
|
719
721
|
}),
|
|
720
|
-
|
|
722
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
721
723
|
style: "margin-top: 2rem;",
|
|
722
|
-
children:
|
|
723
|
-
|
|
724
|
+
children: XoteJSX$Xote.array([
|
|
725
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
724
726
|
text: {
|
|
725
727
|
TAG: "Static",
|
|
726
728
|
_0: "Breadcrumb"
|
|
727
729
|
},
|
|
728
730
|
variant: "H4"
|
|
729
731
|
}),
|
|
730
|
-
|
|
732
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
731
733
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
732
|
-
children: Xote.
|
|
734
|
+
children: Node$Xote.text("Navigation breadcrumbs to show the current page hierarchy.")
|
|
733
735
|
}),
|
|
734
|
-
|
|
736
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
735
737
|
style: "display: flex; flex-direction: column; gap: 1.5rem;",
|
|
736
|
-
children:
|
|
737
|
-
|
|
738
|
-
children:
|
|
739
|
-
|
|
738
|
+
children: XoteJSX$Xote.array([
|
|
739
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
740
|
+
children: XoteJSX$Xote.array([
|
|
741
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
740
742
|
style: "color: #6b7280; margin-bottom: 0.5rem; font-size: 0.875rem;",
|
|
741
|
-
children: Xote.
|
|
743
|
+
children: Node$Xote.text("Default separator:")
|
|
742
744
|
}),
|
|
743
|
-
|
|
745
|
+
XoteJSX$Xote.jsx(Basefn.Breadcrumb.make, {
|
|
744
746
|
items: [
|
|
745
747
|
{
|
|
746
748
|
label: "Home",
|
|
@@ -766,13 +768,13 @@ function Demo$Demo(props) {
|
|
|
766
768
|
})
|
|
767
769
|
])
|
|
768
770
|
}),
|
|
769
|
-
|
|
770
|
-
children:
|
|
771
|
-
|
|
771
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
772
|
+
children: XoteJSX$Xote.array([
|
|
773
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
772
774
|
style: "color: #6b7280; margin-bottom: 0.5rem; font-size: 0.875rem;",
|
|
773
|
-
children: Xote.
|
|
775
|
+
children: Node$Xote.text("Custom separator:")
|
|
774
776
|
}),
|
|
775
|
-
|
|
777
|
+
XoteJSX$Xote.jsx(Basefn.Breadcrumb.make, {
|
|
776
778
|
items: [
|
|
777
779
|
{
|
|
778
780
|
label: "Home",
|
|
@@ -794,13 +796,13 @@ function Demo$Demo(props) {
|
|
|
794
796
|
})
|
|
795
797
|
])
|
|
796
798
|
}),
|
|
797
|
-
|
|
798
|
-
children:
|
|
799
|
-
|
|
799
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
800
|
+
children: XoteJSX$Xote.array([
|
|
801
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
800
802
|
style: "color: #6b7280; margin-bottom: 0.5rem; font-size: 0.875rem;",
|
|
801
|
-
children: Xote.
|
|
803
|
+
children: Node$Xote.text("With onClick handlers:")
|
|
802
804
|
}),
|
|
803
|
-
|
|
805
|
+
XoteJSX$Xote.jsx(Basefn.Breadcrumb.make, {
|
|
804
806
|
items: [
|
|
805
807
|
{
|
|
806
808
|
label: "Dashboard",
|
|
@@ -830,15 +832,15 @@ function Demo$Demo(props) {
|
|
|
830
832
|
})
|
|
831
833
|
])
|
|
832
834
|
}),
|
|
833
|
-
|
|
835
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
834
836
|
orientation: "Horizontal",
|
|
835
837
|
variant: "Solid",
|
|
836
838
|
label: "Tier 3"
|
|
837
839
|
}),
|
|
838
|
-
|
|
840
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
839
841
|
style: "margin-top: 3rem;",
|
|
840
|
-
children:
|
|
841
|
-
|
|
842
|
+
children: XoteJSX$Xote.array([
|
|
843
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
842
844
|
text: {
|
|
843
845
|
TAG: "Static",
|
|
844
846
|
_0: "Interactive Components"
|
|
@@ -846,7 +848,7 @@ function Demo$Demo(props) {
|
|
|
846
848
|
variant: "H2",
|
|
847
849
|
align: "Left"
|
|
848
850
|
}),
|
|
849
|
-
|
|
851
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
850
852
|
text: {
|
|
851
853
|
TAG: "Static",
|
|
852
854
|
_0: "Explore the Tier 3 advanced interactive components below."
|
|
@@ -855,61 +857,61 @@ function Demo$Demo(props) {
|
|
|
855
857
|
})
|
|
856
858
|
])
|
|
857
859
|
}),
|
|
858
|
-
|
|
860
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
859
861
|
style: "margin-top: 2rem;",
|
|
860
|
-
children:
|
|
861
|
-
|
|
862
|
+
children: XoteJSX$Xote.array([
|
|
863
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
862
864
|
text: {
|
|
863
865
|
TAG: "Static",
|
|
864
866
|
_0: "Modal / Dialog"
|
|
865
867
|
},
|
|
866
868
|
variant: "H4"
|
|
867
869
|
}),
|
|
868
|
-
|
|
870
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
869
871
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
870
|
-
children: Xote.
|
|
872
|
+
children: Node$Xote.text("Display content in an overlay dialog.")
|
|
871
873
|
}),
|
|
872
|
-
|
|
874
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
873
875
|
label: {
|
|
874
876
|
TAG: "Static",
|
|
875
877
|
_0: "Open Modal"
|
|
876
878
|
},
|
|
877
|
-
onClick: param => Xote.
|
|
879
|
+
onClick: param => Signal$Xote.set(isModalOpen, true),
|
|
878
880
|
variant: "Primary"
|
|
879
881
|
}),
|
|
880
|
-
|
|
882
|
+
XoteJSX$Xote.jsxs(Basefn.Modal.make, {
|
|
881
883
|
isOpen: isModalOpen,
|
|
882
|
-
onClose: () => Xote.
|
|
884
|
+
onClose: () => Signal$Xote.set(isModalOpen, false),
|
|
883
885
|
title: "Example Modal",
|
|
884
886
|
size: "Md",
|
|
885
|
-
children:
|
|
886
|
-
|
|
887
|
-
children: Xote.
|
|
887
|
+
children: XoteJSX$Xote.array([
|
|
888
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
889
|
+
children: Node$Xote.text("This is a modal dialog. You can include any content here. Click the backdrop or the close button to dismiss.")
|
|
888
890
|
}),
|
|
889
|
-
|
|
891
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
890
892
|
style: "margin-top: 1rem;",
|
|
891
|
-
children: Xote.
|
|
893
|
+
children: Node$Xote.text("Modals are great for focused user interactions and confirmations.")
|
|
892
894
|
})
|
|
893
895
|
]),
|
|
894
|
-
footer:
|
|
896
|
+
footer: XoteJSX$Xote.Elements.jsxs("div", {
|
|
895
897
|
style: "display: flex; gap: 0.5rem;",
|
|
896
|
-
children:
|
|
897
|
-
|
|
898
|
+
children: XoteJSX$Xote.array([
|
|
899
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
898
900
|
label: {
|
|
899
901
|
TAG: "Static",
|
|
900
902
|
_0: "Cancel"
|
|
901
903
|
},
|
|
902
|
-
onClick: param => Xote.
|
|
904
|
+
onClick: param => Signal$Xote.set(isModalOpen, false),
|
|
903
905
|
variant: "Ghost"
|
|
904
906
|
}),
|
|
905
|
-
|
|
907
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
906
908
|
label: {
|
|
907
909
|
TAG: "Static",
|
|
908
910
|
_0: "Confirm"
|
|
909
911
|
},
|
|
910
912
|
onClick: param => {
|
|
911
913
|
console.log("Confirmed!");
|
|
912
|
-
Xote.
|
|
914
|
+
Signal$Xote.set(isModalOpen, false);
|
|
913
915
|
},
|
|
914
916
|
variant: "Primary"
|
|
915
917
|
})
|
|
@@ -918,39 +920,39 @@ function Demo$Demo(props) {
|
|
|
918
920
|
})
|
|
919
921
|
])
|
|
920
922
|
}),
|
|
921
|
-
|
|
923
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
922
924
|
style: "margin-top: 2rem;",
|
|
923
|
-
children:
|
|
924
|
-
|
|
925
|
+
children: XoteJSX$Xote.array([
|
|
926
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
925
927
|
text: {
|
|
926
928
|
TAG: "Static",
|
|
927
929
|
_0: "Switch / Toggle"
|
|
928
930
|
},
|
|
929
931
|
variant: "H4"
|
|
930
932
|
}),
|
|
931
|
-
|
|
933
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
932
934
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
933
|
-
children: Xote.
|
|
935
|
+
children: Node$Xote.text("Binary on/off switches for settings and preferences.")
|
|
934
936
|
}),
|
|
935
|
-
|
|
937
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
936
938
|
style: "display: flex; flex-direction: column; gap: 1rem;",
|
|
937
|
-
children:
|
|
938
|
-
|
|
939
|
+
children: XoteJSX$Xote.array([
|
|
940
|
+
XoteJSX$Xote.jsx(Basefn.Switch.make, {
|
|
939
941
|
checked: switchEnabled,
|
|
940
942
|
label: "Enable feature"
|
|
941
943
|
}),
|
|
942
|
-
|
|
944
|
+
XoteJSX$Xote.jsx(Basefn.Switch.make, {
|
|
943
945
|
checked: darkModeSwitch,
|
|
944
946
|
label: "Dark mode",
|
|
945
947
|
size: "Lg"
|
|
946
948
|
}),
|
|
947
|
-
|
|
949
|
+
XoteJSX$Xote.jsx(Basefn.Switch.make, {
|
|
948
950
|
checked: notificationsSwitch,
|
|
949
951
|
label: "Push notifications",
|
|
950
952
|
size: "Sm"
|
|
951
953
|
}),
|
|
952
|
-
|
|
953
|
-
checked: Xote.
|
|
954
|
+
XoteJSX$Xote.jsx(Basefn.Switch.make, {
|
|
955
|
+
checked: Signal$Xote.make(true, undefined, undefined),
|
|
954
956
|
label: "Disabled switch",
|
|
955
957
|
disabled: true,
|
|
956
958
|
size: "Md"
|
|
@@ -959,38 +961,38 @@ function Demo$Demo(props) {
|
|
|
959
961
|
})
|
|
960
962
|
])
|
|
961
963
|
}),
|
|
962
|
-
|
|
964
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
963
965
|
style: "margin-top: 2rem;",
|
|
964
|
-
children:
|
|
965
|
-
|
|
966
|
+
children: XoteJSX$Xote.array([
|
|
967
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
966
968
|
text: {
|
|
967
969
|
TAG: "Static",
|
|
968
970
|
_0: "Slider"
|
|
969
971
|
},
|
|
970
972
|
variant: "H4"
|
|
971
973
|
}),
|
|
972
|
-
|
|
974
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
973
975
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
974
|
-
children: Xote.
|
|
976
|
+
children: Node$Xote.text("Select a value from a range.")
|
|
975
977
|
}),
|
|
976
|
-
|
|
978
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
977
979
|
style: "display: flex; flex-direction: column; gap: 2rem;",
|
|
978
|
-
children:
|
|
979
|
-
|
|
980
|
+
children: XoteJSX$Xote.array([
|
|
981
|
+
XoteJSX$Xote.jsx(Basefn.Slider.make, {
|
|
980
982
|
value: sliderValue,
|
|
981
983
|
label: "Volume",
|
|
982
984
|
showValue: true
|
|
983
985
|
}),
|
|
984
|
-
|
|
985
|
-
value: Xote.
|
|
986
|
+
XoteJSX$Xote.jsx(Basefn.Slider.make, {
|
|
987
|
+
value: Signal$Xote.make(25.0, undefined, undefined),
|
|
986
988
|
min: 0.0,
|
|
987
989
|
max: 100.0,
|
|
988
990
|
step: 5.0,
|
|
989
991
|
label: "Brightness",
|
|
990
992
|
showValue: true
|
|
991
993
|
}),
|
|
992
|
-
|
|
993
|
-
value: Xote.
|
|
994
|
+
XoteJSX$Xote.jsx(Basefn.Slider.make, {
|
|
995
|
+
value: Signal$Xote.make(3.0, undefined, undefined),
|
|
994
996
|
min: 0.0,
|
|
995
997
|
max: 5.0,
|
|
996
998
|
step: 1.0,
|
|
@@ -1009,27 +1011,27 @@ function Demo$Demo(props) {
|
|
|
1009
1011
|
})
|
|
1010
1012
|
])
|
|
1011
1013
|
}),
|
|
1012
|
-
|
|
1014
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1013
1015
|
style: "margin-top: 2rem;",
|
|
1014
|
-
children:
|
|
1015
|
-
|
|
1016
|
+
children: XoteJSX$Xote.array([
|
|
1017
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1016
1018
|
text: {
|
|
1017
1019
|
TAG: "Static",
|
|
1018
1020
|
_0: "Tooltip"
|
|
1019
1021
|
},
|
|
1020
1022
|
variant: "H4"
|
|
1021
1023
|
}),
|
|
1022
|
-
|
|
1024
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1023
1025
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1024
|
-
children: Xote.
|
|
1026
|
+
children: Node$Xote.text("Show contextual information on hover.")
|
|
1025
1027
|
}),
|
|
1026
|
-
|
|
1028
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1027
1029
|
style: "display: flex; gap: 1rem; flex-wrap: wrap;",
|
|
1028
|
-
children:
|
|
1029
|
-
|
|
1030
|
+
children: XoteJSX$Xote.array([
|
|
1031
|
+
XoteJSX$Xote.jsx(Basefn.Tooltip.make, {
|
|
1030
1032
|
content: "This appears on top",
|
|
1031
1033
|
position: "Top",
|
|
1032
|
-
children:
|
|
1034
|
+
children: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1033
1035
|
label: {
|
|
1034
1036
|
TAG: "Static",
|
|
1035
1037
|
_0: "Hover me )(top)"
|
|
@@ -1037,10 +1039,10 @@ function Demo$Demo(props) {
|
|
|
1037
1039
|
variant: "Secondary"
|
|
1038
1040
|
})
|
|
1039
1041
|
}),
|
|
1040
|
-
|
|
1042
|
+
XoteJSX$Xote.jsx(Basefn.Tooltip.make, {
|
|
1041
1043
|
content: "This appears on bottom",
|
|
1042
1044
|
position: "Bottom",
|
|
1043
|
-
children:
|
|
1045
|
+
children: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1044
1046
|
label: {
|
|
1045
1047
|
TAG: "Static",
|
|
1046
1048
|
_0: "Hover me )(bottom)"
|
|
@@ -1048,10 +1050,10 @@ function Demo$Demo(props) {
|
|
|
1048
1050
|
variant: "Secondary"
|
|
1049
1051
|
})
|
|
1050
1052
|
}),
|
|
1051
|
-
|
|
1053
|
+
XoteJSX$Xote.jsx(Basefn.Tooltip.make, {
|
|
1052
1054
|
content: "This appears on left",
|
|
1053
1055
|
position: "Left",
|
|
1054
|
-
children:
|
|
1056
|
+
children: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1055
1057
|
label: {
|
|
1056
1058
|
TAG: "Static",
|
|
1057
1059
|
_0: "Hover me )(left)"
|
|
@@ -1059,10 +1061,10 @@ function Demo$Demo(props) {
|
|
|
1059
1061
|
variant: "Secondary"
|
|
1060
1062
|
})
|
|
1061
1063
|
}),
|
|
1062
|
-
|
|
1064
|
+
XoteJSX$Xote.jsx(Basefn.Tooltip.make, {
|
|
1063
1065
|
content: "This appears on right",
|
|
1064
1066
|
position: "Right",
|
|
1065
|
-
children:
|
|
1067
|
+
children: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1066
1068
|
label: {
|
|
1067
1069
|
TAG: "Static",
|
|
1068
1070
|
_0: "Hover me )(right)"
|
|
@@ -1074,25 +1076,25 @@ function Demo$Demo(props) {
|
|
|
1074
1076
|
})
|
|
1075
1077
|
])
|
|
1076
1078
|
}),
|
|
1077
|
-
|
|
1079
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1078
1080
|
style: "margin-top: 2rem;",
|
|
1079
|
-
children:
|
|
1080
|
-
|
|
1081
|
+
children: XoteJSX$Xote.array([
|
|
1082
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1081
1083
|
text: {
|
|
1082
1084
|
TAG: "Static",
|
|
1083
1085
|
_0: "Dropdown Menu"
|
|
1084
1086
|
},
|
|
1085
1087
|
variant: "H4"
|
|
1086
1088
|
}),
|
|
1087
|
-
|
|
1089
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1088
1090
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1089
|
-
children: Xote.
|
|
1091
|
+
children: Node$Xote.text("Contextual menu with actions.")
|
|
1090
1092
|
}),
|
|
1091
|
-
|
|
1093
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1092
1094
|
style: "display: flex; gap: 1rem;",
|
|
1093
|
-
children:
|
|
1094
|
-
|
|
1095
|
-
trigger:
|
|
1095
|
+
children: XoteJSX$Xote.array([
|
|
1096
|
+
XoteJSX$Xote.jsx(Basefn.Dropdown.make, {
|
|
1097
|
+
trigger: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1096
1098
|
label: {
|
|
1097
1099
|
TAG: "Static",
|
|
1098
1100
|
_0: "Actions"
|
|
@@ -1140,8 +1142,8 @@ function Demo$Demo(props) {
|
|
|
1140
1142
|
}
|
|
1141
1143
|
]
|
|
1142
1144
|
}),
|
|
1143
|
-
|
|
1144
|
-
trigger:
|
|
1145
|
+
XoteJSX$Xote.jsx(Basefn.Dropdown.make, {
|
|
1146
|
+
trigger: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1145
1147
|
label: {
|
|
1146
1148
|
TAG: "Static",
|
|
1147
1149
|
_0: "More options"
|
|
@@ -1185,32 +1187,32 @@ function Demo$Demo(props) {
|
|
|
1185
1187
|
})
|
|
1186
1188
|
])
|
|
1187
1189
|
}),
|
|
1188
|
-
|
|
1190
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1189
1191
|
style: "margin-top: 2rem;",
|
|
1190
|
-
children:
|
|
1191
|
-
|
|
1192
|
+
children: XoteJSX$Xote.array([
|
|
1193
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1192
1194
|
text: {
|
|
1193
1195
|
TAG: "Static",
|
|
1194
1196
|
_0: "Toast / Notification"
|
|
1195
1197
|
},
|
|
1196
1198
|
variant: "H4"
|
|
1197
1199
|
}),
|
|
1198
|
-
|
|
1200
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1199
1201
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1200
|
-
children: Xote.
|
|
1202
|
+
children: Node$Xote.text("Temporary notification messages.")
|
|
1201
1203
|
}),
|
|
1202
|
-
|
|
1204
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
1203
1205
|
style: "display: flex; gap: 0.75rem; flex-wrap: wrap;",
|
|
1204
|
-
children:
|
|
1206
|
+
children: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1205
1207
|
label: {
|
|
1206
1208
|
TAG: "Static",
|
|
1207
1209
|
_0: "Show Toast"
|
|
1208
1210
|
},
|
|
1209
|
-
onClick: param => Xote.
|
|
1211
|
+
onClick: param => Signal$Xote.set(toastVisible, true),
|
|
1210
1212
|
variant: "Primary"
|
|
1211
1213
|
})
|
|
1212
1214
|
}),
|
|
1213
|
-
|
|
1215
|
+
XoteJSX$Xote.jsx(Basefn.Toast.make, {
|
|
1214
1216
|
title: "Success!",
|
|
1215
1217
|
message: "Your changes have been saved successfully.",
|
|
1216
1218
|
variant: "Success",
|
|
@@ -1221,15 +1223,15 @@ function Demo$Demo(props) {
|
|
|
1221
1223
|
})
|
|
1222
1224
|
])
|
|
1223
1225
|
}),
|
|
1224
|
-
|
|
1226
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
1225
1227
|
orientation: "Horizontal",
|
|
1226
1228
|
variant: "Solid",
|
|
1227
1229
|
label: "Tier 4"
|
|
1228
1230
|
}),
|
|
1229
|
-
|
|
1231
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1230
1232
|
style: "margin-top: 3rem;",
|
|
1231
|
-
children:
|
|
1232
|
-
|
|
1233
|
+
children: XoteJSX$Xote.array([
|
|
1234
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1233
1235
|
text: {
|
|
1234
1236
|
TAG: "Static",
|
|
1235
1237
|
_0: "Navigation & Layout"
|
|
@@ -1237,7 +1239,7 @@ function Demo$Demo(props) {
|
|
|
1237
1239
|
variant: "H2",
|
|
1238
1240
|
align: "Left"
|
|
1239
1241
|
}),
|
|
1240
|
-
|
|
1242
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1241
1243
|
text: {
|
|
1242
1244
|
TAG: "Static",
|
|
1243
1245
|
_0: "Explore the Tier 4 navigation and layout components below."
|
|
@@ -1246,30 +1248,30 @@ function Demo$Demo(props) {
|
|
|
1246
1248
|
})
|
|
1247
1249
|
])
|
|
1248
1250
|
}),
|
|
1249
|
-
|
|
1251
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1250
1252
|
style: "margin-top: 2rem;",
|
|
1251
|
-
children:
|
|
1252
|
-
|
|
1253
|
+
children: XoteJSX$Xote.array([
|
|
1254
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1253
1255
|
text: {
|
|
1254
1256
|
TAG: "Static",
|
|
1255
1257
|
_0: "Stepper"
|
|
1256
1258
|
},
|
|
1257
1259
|
variant: "H4"
|
|
1258
1260
|
}),
|
|
1259
|
-
|
|
1261
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1260
1262
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1261
|
-
children: Xote.
|
|
1263
|
+
children: Node$Xote.text("Multi-step process indicator with progress tracking.")
|
|
1262
1264
|
}),
|
|
1263
|
-
|
|
1265
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1264
1266
|
style: "display: flex; flex-direction: column; gap: 2rem;",
|
|
1265
|
-
children:
|
|
1266
|
-
|
|
1267
|
-
children:
|
|
1268
|
-
|
|
1267
|
+
children: XoteJSX$Xote.array([
|
|
1268
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1269
|
+
children: XoteJSX$Xote.array([
|
|
1270
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1269
1271
|
style: "color: #6b7280; margin-bottom: 1rem; font-size: 0.875rem;",
|
|
1270
|
-
children: Xote.
|
|
1272
|
+
children: Node$Xote.text("Horizontal stepper:")
|
|
1271
1273
|
}),
|
|
1272
|
-
|
|
1274
|
+
XoteJSX$Xote.jsx(Basefn.Stepper.make, {
|
|
1273
1275
|
steps: [
|
|
1274
1276
|
{
|
|
1275
1277
|
title: "Account Info",
|
|
@@ -1295,19 +1297,19 @@ function Demo$Demo(props) {
|
|
|
1295
1297
|
currentStep: currentStep,
|
|
1296
1298
|
orientation: "Horizontal",
|
|
1297
1299
|
onStepClick: step => {
|
|
1298
|
-
Xote.
|
|
1300
|
+
Signal$Xote.set(currentStep, step);
|
|
1299
1301
|
console.log("Step clicked:", step);
|
|
1300
1302
|
}
|
|
1301
1303
|
})
|
|
1302
1304
|
])
|
|
1303
1305
|
}),
|
|
1304
|
-
|
|
1305
|
-
children:
|
|
1306
|
-
|
|
1306
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1307
|
+
children: XoteJSX$Xote.array([
|
|
1308
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1307
1309
|
style: "color: #6b7280; margin-bottom: 1rem; font-size: 0.875rem;",
|
|
1308
|
-
children: Xote.
|
|
1310
|
+
children: Node$Xote.text("Vertical stepper:")
|
|
1309
1311
|
}),
|
|
1310
|
-
|
|
1312
|
+
XoteJSX$Xote.jsx(Basefn.Stepper.make, {
|
|
1311
1313
|
steps: [
|
|
1312
1314
|
{
|
|
1313
1315
|
title: "Order Placed",
|
|
@@ -1330,7 +1332,7 @@ function Demo$Demo(props) {
|
|
|
1330
1332
|
status: "Inactive"
|
|
1331
1333
|
}
|
|
1332
1334
|
],
|
|
1333
|
-
currentStep: Xote.
|
|
1335
|
+
currentStep: Signal$Xote.make(2, undefined, undefined),
|
|
1334
1336
|
orientation: "Vertical"
|
|
1335
1337
|
})
|
|
1336
1338
|
])
|
|
@@ -1339,57 +1341,57 @@ function Demo$Demo(props) {
|
|
|
1339
1341
|
})
|
|
1340
1342
|
])
|
|
1341
1343
|
}),
|
|
1342
|
-
|
|
1344
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1343
1345
|
style: "margin-top: 2rem;",
|
|
1344
|
-
children:
|
|
1345
|
-
|
|
1346
|
+
children: XoteJSX$Xote.array([
|
|
1347
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1346
1348
|
text: {
|
|
1347
1349
|
TAG: "Static",
|
|
1348
1350
|
_0: "Drawer / Sidebar"
|
|
1349
1351
|
},
|
|
1350
1352
|
variant: "H4"
|
|
1351
1353
|
}),
|
|
1352
|
-
|
|
1354
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1353
1355
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1354
|
-
children: Xote.
|
|
1356
|
+
children: Node$Xote.text("Slide-in panels for additional content.")
|
|
1355
1357
|
}),
|
|
1356
|
-
|
|
1358
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
1357
1359
|
style: "display: flex; gap: 0.75rem; flex-wrap: wrap;",
|
|
1358
|
-
children:
|
|
1360
|
+
children: XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1359
1361
|
label: {
|
|
1360
1362
|
TAG: "Static",
|
|
1361
1363
|
_0: "Open Drawer"
|
|
1362
1364
|
},
|
|
1363
|
-
onClick: param => Xote.
|
|
1365
|
+
onClick: param => Signal$Xote.set(isDrawerOpen, true),
|
|
1364
1366
|
variant: "Primary"
|
|
1365
1367
|
})
|
|
1366
1368
|
}),
|
|
1367
|
-
|
|
1369
|
+
XoteJSX$Xote.jsx(Basefn.Drawer.make, {
|
|
1368
1370
|
isOpen: isDrawerOpen,
|
|
1369
|
-
onClose: () => Xote.
|
|
1371
|
+
onClose: () => Signal$Xote.set(isDrawerOpen, false),
|
|
1370
1372
|
position: "Right",
|
|
1371
1373
|
size: "Md",
|
|
1372
1374
|
title: "Drawer Panel",
|
|
1373
|
-
children:
|
|
1374
|
-
children:
|
|
1375
|
-
|
|
1375
|
+
children: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1376
|
+
children: XoteJSX$Xote.array([
|
|
1377
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1376
1378
|
text: {
|
|
1377
1379
|
TAG: "Static",
|
|
1378
1380
|
_0: "Drawer Content"
|
|
1379
1381
|
},
|
|
1380
1382
|
variant: "H5"
|
|
1381
1383
|
}),
|
|
1382
|
-
|
|
1384
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1383
1385
|
style: "margin-top: 1rem;",
|
|
1384
|
-
children: Xote.
|
|
1386
|
+
children: Node$Xote.text("This is a drawer panel. You can use it for navigation, forms, or any additional content that doesn't fit in the main view.")
|
|
1385
1387
|
}),
|
|
1386
|
-
|
|
1388
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1387
1389
|
style: "margin-top: 1.5rem;",
|
|
1388
|
-
children:
|
|
1389
|
-
|
|
1390
|
+
children: XoteJSX$Xote.array([
|
|
1391
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
1390
1392
|
text: "Name"
|
|
1391
1393
|
}),
|
|
1392
|
-
|
|
1394
|
+
XoteJSX$Xote.jsx(Basefn.Input.make, {
|
|
1393
1395
|
value: {
|
|
1394
1396
|
TAG: "Static",
|
|
1395
1397
|
_0: ""
|
|
@@ -1399,13 +1401,13 @@ function Demo$Demo(props) {
|
|
|
1399
1401
|
})
|
|
1400
1402
|
])
|
|
1401
1403
|
}),
|
|
1402
|
-
|
|
1404
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1403
1405
|
style: "margin-top: 1rem;",
|
|
1404
|
-
children:
|
|
1405
|
-
|
|
1406
|
+
children: XoteJSX$Xote.array([
|
|
1407
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
1406
1408
|
text: "Email"
|
|
1407
1409
|
}),
|
|
1408
|
-
|
|
1410
|
+
XoteJSX$Xote.jsx(Basefn.Input.make, {
|
|
1409
1411
|
value: {
|
|
1410
1412
|
TAG: "Static",
|
|
1411
1413
|
_0: ""
|
|
@@ -1415,13 +1417,13 @@ function Demo$Demo(props) {
|
|
|
1415
1417
|
})
|
|
1416
1418
|
])
|
|
1417
1419
|
}),
|
|
1418
|
-
|
|
1420
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1419
1421
|
style: "margin-top: 1rem;",
|
|
1420
|
-
children:
|
|
1421
|
-
|
|
1422
|
+
children: XoteJSX$Xote.array([
|
|
1423
|
+
XoteJSX$Xote.jsx(Basefn.Label.make, {
|
|
1422
1424
|
text: "Message"
|
|
1423
1425
|
}),
|
|
1424
|
-
|
|
1426
|
+
XoteJSX$Xote.jsx(Basefn.Textarea.make, {
|
|
1425
1427
|
value: {
|
|
1426
1428
|
TAG: "Static",
|
|
1427
1429
|
_0: ""
|
|
@@ -1432,25 +1434,25 @@ function Demo$Demo(props) {
|
|
|
1432
1434
|
})
|
|
1433
1435
|
])
|
|
1434
1436
|
}),
|
|
1435
|
-
footer:
|
|
1437
|
+
footer: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1436
1438
|
style: "display: flex; gap: 0.5rem; justify-content: flex-end;",
|
|
1437
|
-
children:
|
|
1438
|
-
|
|
1439
|
+
children: XoteJSX$Xote.array([
|
|
1440
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1439
1441
|
label: {
|
|
1440
1442
|
TAG: "Static",
|
|
1441
1443
|
_0: "Cancel"
|
|
1442
1444
|
},
|
|
1443
|
-
onClick: param => Xote.
|
|
1445
|
+
onClick: param => Signal$Xote.set(isDrawerOpen, false),
|
|
1444
1446
|
variant: "Ghost"
|
|
1445
1447
|
}),
|
|
1446
|
-
|
|
1448
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1447
1449
|
label: {
|
|
1448
1450
|
TAG: "Static",
|
|
1449
1451
|
_0: "Save"
|
|
1450
1452
|
},
|
|
1451
1453
|
onClick: param => {
|
|
1452
1454
|
console.log("Saved!");
|
|
1453
|
-
Xote.
|
|
1455
|
+
Signal$Xote.set(isDrawerOpen, false);
|
|
1454
1456
|
},
|
|
1455
1457
|
variant: "Primary"
|
|
1456
1458
|
})
|
|
@@ -1459,30 +1461,30 @@ function Demo$Demo(props) {
|
|
|
1459
1461
|
})
|
|
1460
1462
|
])
|
|
1461
1463
|
}),
|
|
1462
|
-
|
|
1464
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1463
1465
|
style: "margin-top: 2rem;",
|
|
1464
|
-
children:
|
|
1465
|
-
|
|
1466
|
+
children: XoteJSX$Xote.array([
|
|
1467
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1466
1468
|
text: {
|
|
1467
1469
|
TAG: "Static",
|
|
1468
1470
|
_0: "Timeline"
|
|
1469
1471
|
},
|
|
1470
1472
|
variant: "H4"
|
|
1471
1473
|
}),
|
|
1472
|
-
|
|
1474
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1473
1475
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1474
|
-
children: Xote.
|
|
1476
|
+
children: Node$Xote.text("Display chronological events in a visual timeline.")
|
|
1475
1477
|
}),
|
|
1476
|
-
|
|
1478
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1477
1479
|
style: "display: flex; flex-direction: column; gap: 2rem;",
|
|
1478
|
-
children:
|
|
1479
|
-
|
|
1480
|
-
children:
|
|
1481
|
-
|
|
1480
|
+
children: XoteJSX$Xote.array([
|
|
1481
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1482
|
+
children: XoteJSX$Xote.array([
|
|
1483
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1482
1484
|
style: "color: #6b7280; margin-bottom: 1rem; font-size: 0.875rem;",
|
|
1483
|
-
children: Xote.
|
|
1485
|
+
children: Node$Xote.text("Vertical timeline:")
|
|
1484
1486
|
}),
|
|
1485
|
-
|
|
1487
|
+
XoteJSX$Xote.jsx(Basefn.Timeline.make, {
|
|
1486
1488
|
items: [
|
|
1487
1489
|
{
|
|
1488
1490
|
title: "Project Created",
|
|
@@ -1517,13 +1519,13 @@ function Demo$Demo(props) {
|
|
|
1517
1519
|
})
|
|
1518
1520
|
])
|
|
1519
1521
|
}),
|
|
1520
|
-
|
|
1521
|
-
children:
|
|
1522
|
-
|
|
1522
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1523
|
+
children: XoteJSX$Xote.array([
|
|
1524
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1523
1525
|
style: "color: #6b7280; margin-bottom: 1rem; font-size: 0.875rem;",
|
|
1524
|
-
children: Xote.
|
|
1526
|
+
children: Node$Xote.text("With different variants:")
|
|
1525
1527
|
}),
|
|
1526
|
-
|
|
1528
|
+
XoteJSX$Xote.jsx(Basefn.Timeline.make, {
|
|
1527
1529
|
items: [
|
|
1528
1530
|
{
|
|
1529
1531
|
title: "Success Event",
|
|
@@ -1555,15 +1557,15 @@ function Demo$Demo(props) {
|
|
|
1555
1557
|
})
|
|
1556
1558
|
])
|
|
1557
1559
|
}),
|
|
1558
|
-
|
|
1560
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
1559
1561
|
orientation: "Horizontal",
|
|
1560
1562
|
variant: "Solid",
|
|
1561
1563
|
label: "App Layouts"
|
|
1562
1564
|
}),
|
|
1563
|
-
|
|
1565
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1564
1566
|
style: "margin-top: 3rem;",
|
|
1565
|
-
children:
|
|
1566
|
-
|
|
1567
|
+
children: XoteJSX$Xote.array([
|
|
1568
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1567
1569
|
text: {
|
|
1568
1570
|
TAG: "Static",
|
|
1569
1571
|
_0: "Application Layouts"
|
|
@@ -1571,7 +1573,7 @@ function Demo$Demo(props) {
|
|
|
1571
1573
|
variant: "H2",
|
|
1572
1574
|
align: "Left"
|
|
1573
1575
|
}),
|
|
1574
|
-
|
|
1576
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1575
1577
|
text: {
|
|
1576
1578
|
TAG: "Static",
|
|
1577
1579
|
_0: "Complete application layout structures with sidebar and topbar combinations."
|
|
@@ -1580,41 +1582,41 @@ function Demo$Demo(props) {
|
|
|
1580
1582
|
})
|
|
1581
1583
|
])
|
|
1582
1584
|
}),
|
|
1583
|
-
|
|
1585
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1584
1586
|
style: "margin-top: 2rem;",
|
|
1585
|
-
children:
|
|
1586
|
-
|
|
1587
|
+
children: XoteJSX$Xote.array([
|
|
1588
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1587
1589
|
text: {
|
|
1588
1590
|
TAG: "Static",
|
|
1589
1591
|
_0: "Layout Variants"
|
|
1590
1592
|
},
|
|
1591
1593
|
variant: "H4"
|
|
1592
1594
|
}),
|
|
1593
|
-
|
|
1595
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1594
1596
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1595
|
-
children: Xote.
|
|
1597
|
+
children: Node$Xote.text("Different application layout configurations.")
|
|
1596
1598
|
}),
|
|
1597
|
-
|
|
1599
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1598
1600
|
style: "display: flex; flex-direction: column; gap: 2rem;",
|
|
1599
|
-
children:
|
|
1600
|
-
|
|
1601
|
-
children:
|
|
1602
|
-
|
|
1601
|
+
children: XoteJSX$Xote.array([
|
|
1602
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1603
|
+
children: XoteJSX$Xote.array([
|
|
1604
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1603
1605
|
text: {
|
|
1604
1606
|
TAG: "Static",
|
|
1605
1607
|
_0: "Sidebar Only Layout"
|
|
1606
1608
|
},
|
|
1607
1609
|
variant: "H5"
|
|
1608
1610
|
}),
|
|
1609
|
-
|
|
1611
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1610
1612
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0; font-size: 0.875rem;",
|
|
1611
|
-
children: Xote.
|
|
1613
|
+
children: Node$Xote.text("Application with sidebar navigation")
|
|
1612
1614
|
}),
|
|
1613
|
-
|
|
1615
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
1614
1616
|
style: "border: 2px solid #e5e7eb; border-radius: 0.5rem; overflow: hidden; height: 400px;",
|
|
1615
|
-
children:
|
|
1616
|
-
sidebar:
|
|
1617
|
-
logo: Xote.
|
|
1617
|
+
children: XoteJSX$Xote.jsx(Basefn.AppLayout.make, {
|
|
1618
|
+
sidebar: XoteJSX$Xote.jsx(Basefn.Sidebar.make, {
|
|
1619
|
+
logo: Node$Xote.text("eita UI"),
|
|
1618
1620
|
sections: [
|
|
1619
1621
|
{
|
|
1620
1622
|
title: "Main",
|
|
@@ -1622,13 +1624,13 @@ function Demo$Demo(props) {
|
|
|
1622
1624
|
{
|
|
1623
1625
|
label: "Dashboard",
|
|
1624
1626
|
icon: "\u2302",
|
|
1625
|
-
active: Xote.
|
|
1627
|
+
active: Signal$Xote.get(activeNavItem) === "home",
|
|
1626
1628
|
url: "/profile"
|
|
1627
1629
|
},
|
|
1628
1630
|
{
|
|
1629
1631
|
label: "Analytics",
|
|
1630
1632
|
icon: "\u{1F4CA}",
|
|
1631
|
-
active: Xote.
|
|
1633
|
+
active: Signal$Xote.get(activeNavItem) === "analytics",
|
|
1632
1634
|
url: "/profile"
|
|
1633
1635
|
}
|
|
1634
1636
|
]
|
|
@@ -1639,13 +1641,13 @@ function Demo$Demo(props) {
|
|
|
1639
1641
|
{
|
|
1640
1642
|
label: "Profile",
|
|
1641
1643
|
icon: "\u{1F464}",
|
|
1642
|
-
active: Xote.
|
|
1644
|
+
active: Signal$Xote.get(activeNavItem) === "profile",
|
|
1643
1645
|
url: "/profile"
|
|
1644
1646
|
},
|
|
1645
1647
|
{
|
|
1646
1648
|
label: "Settings",
|
|
1647
1649
|
icon: "\u2699",
|
|
1648
|
-
active: Xote.
|
|
1650
|
+
active: Signal$Xote.get(activeNavItem) === "settings",
|
|
1649
1651
|
url: "/profile"
|
|
1650
1652
|
}
|
|
1651
1653
|
]
|
|
@@ -1653,19 +1655,19 @@ function Demo$Demo(props) {
|
|
|
1653
1655
|
],
|
|
1654
1656
|
size: "Md"
|
|
1655
1657
|
}),
|
|
1656
|
-
children:
|
|
1658
|
+
children: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1657
1659
|
style: "padding: 2rem;",
|
|
1658
|
-
children:
|
|
1659
|
-
|
|
1660
|
+
children: XoteJSX$Xote.array([
|
|
1661
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1660
1662
|
text: {
|
|
1661
1663
|
TAG: "Static",
|
|
1662
1664
|
_0: "Main Content Area"
|
|
1663
1665
|
},
|
|
1664
1666
|
variant: "H3"
|
|
1665
1667
|
}),
|
|
1666
|
-
|
|
1668
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1667
1669
|
style: "margin-top: 1rem;",
|
|
1668
|
-
children: Xote.
|
|
1670
|
+
children: Node$Xote.text("This is the main content area. The sidebar provides persistent navigation.")
|
|
1669
1671
|
})
|
|
1670
1672
|
])
|
|
1671
1673
|
})
|
|
@@ -1673,52 +1675,52 @@ function Demo$Demo(props) {
|
|
|
1673
1675
|
})
|
|
1674
1676
|
])
|
|
1675
1677
|
}),
|
|
1676
|
-
|
|
1677
|
-
children:
|
|
1678
|
-
|
|
1678
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1679
|
+
children: XoteJSX$Xote.array([
|
|
1680
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1679
1681
|
text: {
|
|
1680
1682
|
TAG: "Static",
|
|
1681
1683
|
_0: "Topbar Only Layout"
|
|
1682
1684
|
},
|
|
1683
1685
|
variant: "H5"
|
|
1684
1686
|
}),
|
|
1685
|
-
|
|
1687
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1686
1688
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0; font-size: 0.875rem;",
|
|
1687
|
-
children: Xote.
|
|
1689
|
+
children: Node$Xote.text("Application with top navigation bar")
|
|
1688
1690
|
}),
|
|
1689
|
-
|
|
1691
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
1690
1692
|
style: "border: 2px solid #e5e7eb; border-radius: 0.5rem; overflow: hidden; height: 300px;",
|
|
1691
|
-
children:
|
|
1692
|
-
topbar:
|
|
1693
|
-
logo: Xote.
|
|
1693
|
+
children: XoteJSX$Xote.jsx(Basefn.AppLayout.make, {
|
|
1694
|
+
topbar: XoteJSX$Xote.jsx(Basefn.Topbar.make, {
|
|
1695
|
+
logo: Node$Xote.text("eita UI"),
|
|
1694
1696
|
navItems: [
|
|
1695
1697
|
{
|
|
1696
1698
|
label: "Home",
|
|
1697
|
-
active: Xote.
|
|
1698
|
-
onClick: () => Xote.
|
|
1699
|
+
active: Signal$Xote.get(activeNavItem) === "home",
|
|
1700
|
+
onClick: () => Signal$Xote.set(activeNavItem, "home")
|
|
1699
1701
|
},
|
|
1700
1702
|
{
|
|
1701
1703
|
label: "Products",
|
|
1702
|
-
active: Xote.
|
|
1703
|
-
onClick: () => Xote.
|
|
1704
|
+
active: Signal$Xote.get(activeNavItem) === "products",
|
|
1705
|
+
onClick: () => Signal$Xote.set(activeNavItem, "products")
|
|
1704
1706
|
},
|
|
1705
1707
|
{
|
|
1706
1708
|
label: "About",
|
|
1707
|
-
active: Xote.
|
|
1708
|
-
onClick: () => Xote.
|
|
1709
|
+
active: Signal$Xote.get(activeNavItem) === "about",
|
|
1710
|
+
onClick: () => Signal$Xote.set(activeNavItem, "about")
|
|
1709
1711
|
}
|
|
1710
1712
|
],
|
|
1711
|
-
rightContent:
|
|
1713
|
+
rightContent: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1712
1714
|
style: "display: flex; gap: 0.5rem;",
|
|
1713
|
-
children:
|
|
1714
|
-
|
|
1715
|
+
children: XoteJSX$Xote.array([
|
|
1716
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1715
1717
|
label: {
|
|
1716
1718
|
TAG: "Static",
|
|
1717
1719
|
_0: "Sign In"
|
|
1718
1720
|
},
|
|
1719
1721
|
variant: "Ghost"
|
|
1720
1722
|
}),
|
|
1721
|
-
|
|
1723
|
+
XoteJSX$Xote.jsx(Basefn.Button.make, {
|
|
1722
1724
|
label: {
|
|
1723
1725
|
TAG: "Static",
|
|
1724
1726
|
_0: "Sign Up"
|
|
@@ -1728,19 +1730,19 @@ function Demo$Demo(props) {
|
|
|
1728
1730
|
])
|
|
1729
1731
|
})
|
|
1730
1732
|
}),
|
|
1731
|
-
children:
|
|
1733
|
+
children: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1732
1734
|
style: "padding: 2rem;",
|
|
1733
|
-
children:
|
|
1734
|
-
|
|
1735
|
+
children: XoteJSX$Xote.array([
|
|
1736
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1735
1737
|
text: {
|
|
1736
1738
|
TAG: "Static",
|
|
1737
1739
|
_0: "Main Content Area"
|
|
1738
1740
|
},
|
|
1739
1741
|
variant: "H3"
|
|
1740
1742
|
}),
|
|
1741
|
-
|
|
1743
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1742
1744
|
style: "margin-top: 1rem;",
|
|
1743
|
-
children: Xote.
|
|
1745
|
+
children: Node$Xote.text("This layout uses only a top navigation bar.")
|
|
1744
1746
|
})
|
|
1745
1747
|
])
|
|
1746
1748
|
})
|
|
@@ -1748,24 +1750,24 @@ function Demo$Demo(props) {
|
|
|
1748
1750
|
})
|
|
1749
1751
|
])
|
|
1750
1752
|
}),
|
|
1751
|
-
|
|
1752
|
-
children:
|
|
1753
|
-
|
|
1753
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1754
|
+
children: XoteJSX$Xote.array([
|
|
1755
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1754
1756
|
text: {
|
|
1755
1757
|
TAG: "Static",
|
|
1756
1758
|
_0: "Sidebar + Topbar Layout"
|
|
1757
1759
|
},
|
|
1758
1760
|
variant: "H5"
|
|
1759
1761
|
}),
|
|
1760
|
-
|
|
1762
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1761
1763
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0; font-size: 0.875rem;",
|
|
1762
|
-
children: Xote.
|
|
1764
|
+
children: Node$Xote.text("Full application layout with both sidebar and topbar")
|
|
1763
1765
|
}),
|
|
1764
|
-
|
|
1766
|
+
XoteJSX$Xote.Elements.jsx("div", {
|
|
1765
1767
|
style: "border: 2px solid #e5e7eb; border-radius: 0.5rem; overflow: hidden; height: 500px;",
|
|
1766
|
-
children:
|
|
1767
|
-
sidebar:
|
|
1768
|
-
logo: Xote.
|
|
1768
|
+
children: XoteJSX$Xote.jsx(Basefn.AppLayout.make, {
|
|
1769
|
+
sidebar: XoteJSX$Xote.jsx(Basefn.Sidebar.make, {
|
|
1770
|
+
logo: Node$Xote.text("basefn"),
|
|
1769
1771
|
sections: [{
|
|
1770
1772
|
title: "Navigation",
|
|
1771
1773
|
items: [
|
|
@@ -1790,51 +1792,51 @@ function Demo$Demo(props) {
|
|
|
1790
1792
|
]
|
|
1791
1793
|
}],
|
|
1792
1794
|
size: "Md",
|
|
1793
|
-
collapsed: Xote.
|
|
1795
|
+
collapsed: Signal$Xote.get(sidebarCollapsed)
|
|
1794
1796
|
}),
|
|
1795
|
-
topbar:
|
|
1796
|
-
rightContent:
|
|
1797
|
+
topbar: XoteJSX$Xote.jsx(Basefn.Topbar.make, {
|
|
1798
|
+
rightContent: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1797
1799
|
style: "display: flex; align-items: center; gap: 1rem;",
|
|
1798
|
-
children:
|
|
1799
|
-
|
|
1800
|
-
label: Xote.
|
|
1800
|
+
children: XoteJSX$Xote.array([
|
|
1801
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1802
|
+
label: Signal$Xote.make("3", undefined, undefined),
|
|
1801
1803
|
variant: "Primary"
|
|
1802
1804
|
}),
|
|
1803
|
-
|
|
1805
|
+
XoteJSX$Xote.jsx(Basefn.Avatar.make, {
|
|
1804
1806
|
src: "https://ui-avatars.com/api/?name=John+Doe",
|
|
1805
1807
|
size: "Sm"
|
|
1806
1808
|
})
|
|
1807
1809
|
])
|
|
1808
1810
|
}),
|
|
1809
|
-
onMenuClick: () => Xote.
|
|
1811
|
+
onMenuClick: () => Signal$Xote.update(sidebarCollapsed, prev => !prev)
|
|
1810
1812
|
}),
|
|
1811
|
-
children:
|
|
1813
|
+
children: XoteJSX$Xote.Elements.jsxs("div", {
|
|
1812
1814
|
style: "padding: 2rem;",
|
|
1813
|
-
children:
|
|
1814
|
-
|
|
1815
|
+
children: XoteJSX$Xote.array([
|
|
1816
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1815
1817
|
text: {
|
|
1816
1818
|
TAG: "Static",
|
|
1817
1819
|
_0: "Dashboard"
|
|
1818
1820
|
},
|
|
1819
1821
|
variant: "H3"
|
|
1820
1822
|
}),
|
|
1821
|
-
|
|
1823
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1822
1824
|
style: "margin-top: 1rem;",
|
|
1823
|
-
children: Xote.
|
|
1825
|
+
children: Node$Xote.text("This is a complete application layout with both sidebar and topbar. Click the menu button in the topbar to toggle the sidebar.")
|
|
1824
1826
|
}),
|
|
1825
|
-
|
|
1827
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1826
1828
|
style: "margin-top: 2rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem;",
|
|
1827
|
-
children:
|
|
1828
|
-
|
|
1829
|
-
children:
|
|
1830
|
-
|
|
1829
|
+
children: XoteJSX$Xote.array([
|
|
1830
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
1831
|
+
children: XoteJSX$Xote.array([
|
|
1832
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1831
1833
|
text: {
|
|
1832
1834
|
TAG: "Static",
|
|
1833
1835
|
_0: "Total Users"
|
|
1834
1836
|
},
|
|
1835
1837
|
variant: "H6"
|
|
1836
1838
|
}),
|
|
1837
|
-
|
|
1839
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1838
1840
|
text: {
|
|
1839
1841
|
TAG: "Static",
|
|
1840
1842
|
_0: "1,234"
|
|
@@ -1844,16 +1846,16 @@ function Demo$Demo(props) {
|
|
|
1844
1846
|
})
|
|
1845
1847
|
])
|
|
1846
1848
|
}),
|
|
1847
|
-
|
|
1848
|
-
children:
|
|
1849
|
-
|
|
1849
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
1850
|
+
children: XoteJSX$Xote.array([
|
|
1851
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1850
1852
|
text: {
|
|
1851
1853
|
TAG: "Static",
|
|
1852
1854
|
_0: "Active Projects"
|
|
1853
1855
|
},
|
|
1854
1856
|
variant: "H6"
|
|
1855
1857
|
}),
|
|
1856
|
-
|
|
1858
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1857
1859
|
text: {
|
|
1858
1860
|
TAG: "Static",
|
|
1859
1861
|
_0: "45"
|
|
@@ -1862,16 +1864,16 @@ function Demo$Demo(props) {
|
|
|
1862
1864
|
})
|
|
1863
1865
|
])
|
|
1864
1866
|
}),
|
|
1865
|
-
|
|
1866
|
-
children:
|
|
1867
|
-
|
|
1867
|
+
XoteJSX$Xote.jsxs(Basefn.Card.make, {
|
|
1868
|
+
children: XoteJSX$Xote.array([
|
|
1869
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1868
1870
|
text: {
|
|
1869
1871
|
TAG: "Static",
|
|
1870
1872
|
_0: "Completed Tasks"
|
|
1871
1873
|
},
|
|
1872
1874
|
variant: "H6"
|
|
1873
1875
|
}),
|
|
1874
|
-
|
|
1876
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1875
1877
|
text: {
|
|
1876
1878
|
TAG: "Static",
|
|
1877
1879
|
_0: "892"
|
|
@@ -1885,7 +1887,7 @@ function Demo$Demo(props) {
|
|
|
1885
1887
|
])
|
|
1886
1888
|
}),
|
|
1887
1889
|
sidebarSize: "md",
|
|
1888
|
-
sidebarCollapsed: Xote.
|
|
1890
|
+
sidebarCollapsed: Signal$Xote.get(sidebarCollapsed)
|
|
1889
1891
|
})
|
|
1890
1892
|
})
|
|
1891
1893
|
])
|
|
@@ -1894,15 +1896,15 @@ function Demo$Demo(props) {
|
|
|
1894
1896
|
})
|
|
1895
1897
|
])
|
|
1896
1898
|
}),
|
|
1897
|
-
|
|
1899
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
1898
1900
|
orientation: "Horizontal",
|
|
1899
1901
|
variant: "Dashed",
|
|
1900
1902
|
label: "Foundational"
|
|
1901
1903
|
}),
|
|
1902
|
-
|
|
1904
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1903
1905
|
style: "margin-top: 3rem;",
|
|
1904
|
-
children:
|
|
1905
|
-
|
|
1906
|
+
children: XoteJSX$Xote.array([
|
|
1907
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1906
1908
|
text: {
|
|
1907
1909
|
TAG: "Static",
|
|
1908
1910
|
_0: "Foundation Components"
|
|
@@ -1910,7 +1912,7 @@ function Demo$Demo(props) {
|
|
|
1910
1912
|
variant: "H2",
|
|
1911
1913
|
align: "Left"
|
|
1912
1914
|
}),
|
|
1913
|
-
|
|
1915
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1914
1916
|
text: {
|
|
1915
1917
|
TAG: "Static",
|
|
1916
1918
|
_0: "Explore the Tier 1 foundation components below."
|
|
@@ -1919,74 +1921,74 @@ function Demo$Demo(props) {
|
|
|
1919
1921
|
})
|
|
1920
1922
|
])
|
|
1921
1923
|
}),
|
|
1922
|
-
|
|
1924
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1923
1925
|
style: "margin-top: 2rem;",
|
|
1924
|
-
children:
|
|
1925
|
-
|
|
1926
|
+
children: XoteJSX$Xote.array([
|
|
1927
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
1926
1928
|
text: {
|
|
1927
1929
|
TAG: "Static",
|
|
1928
1930
|
_0: "Badges"
|
|
1929
1931
|
},
|
|
1930
1932
|
variant: "H4"
|
|
1931
1933
|
}),
|
|
1932
|
-
|
|
1934
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
1933
1935
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
1934
|
-
children: Xote.
|
|
1936
|
+
children: Node$Xote.text("Display status indicators and labels with various styles.")
|
|
1935
1937
|
}),
|
|
1936
|
-
|
|
1938
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1937
1939
|
style: "display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center;",
|
|
1938
|
-
children:
|
|
1939
|
-
|
|
1940
|
-
label: Xote.
|
|
1940
|
+
children: XoteJSX$Xote.array([
|
|
1941
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1942
|
+
label: Signal$Xote.make("Default", undefined, undefined),
|
|
1941
1943
|
variant: "Default"
|
|
1942
1944
|
}),
|
|
1943
|
-
|
|
1944
|
-
label: Xote.
|
|
1945
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1946
|
+
label: Signal$Xote.make("Primary", undefined, undefined),
|
|
1945
1947
|
variant: "Primary"
|
|
1946
1948
|
}),
|
|
1947
|
-
|
|
1948
|
-
label: Xote.
|
|
1949
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1950
|
+
label: Signal$Xote.make("Secondary", undefined, undefined),
|
|
1949
1951
|
variant: "Secondary"
|
|
1950
1952
|
}),
|
|
1951
|
-
|
|
1952
|
-
label: Xote.
|
|
1953
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1954
|
+
label: Signal$Xote.make("Success", undefined, undefined),
|
|
1953
1955
|
variant: "Success"
|
|
1954
1956
|
}),
|
|
1955
|
-
|
|
1956
|
-
label: Xote.
|
|
1957
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1958
|
+
label: Signal$Xote.make("Warning", undefined, undefined),
|
|
1957
1959
|
variant: "Warning"
|
|
1958
1960
|
}),
|
|
1959
|
-
|
|
1960
|
-
label: Xote.
|
|
1961
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1962
|
+
label: Signal$Xote.make("Error", undefined, undefined),
|
|
1961
1963
|
variant: "Error"
|
|
1962
1964
|
})
|
|
1963
1965
|
])
|
|
1964
1966
|
}),
|
|
1965
|
-
|
|
1967
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
1966
1968
|
style: "display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; margin-top: 1rem;",
|
|
1967
|
-
children:
|
|
1968
|
-
|
|
1969
|
-
label: Xote.
|
|
1969
|
+
children: XoteJSX$Xote.array([
|
|
1970
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1971
|
+
label: Signal$Xote.make("Small", undefined, undefined),
|
|
1970
1972
|
variant: "Primary",
|
|
1971
1973
|
size: "Sm"
|
|
1972
1974
|
}),
|
|
1973
|
-
|
|
1974
|
-
label: Xote.
|
|
1975
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1976
|
+
label: Signal$Xote.make("Medium", undefined, undefined),
|
|
1975
1977
|
variant: "Primary",
|
|
1976
1978
|
size: "Md"
|
|
1977
1979
|
}),
|
|
1978
|
-
|
|
1979
|
-
label: Xote.
|
|
1980
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1981
|
+
label: Signal$Xote.make("Large", undefined, undefined),
|
|
1980
1982
|
variant: "Primary",
|
|
1981
1983
|
size: "Lg"
|
|
1982
1984
|
}),
|
|
1983
|
-
|
|
1984
|
-
label: Xote.
|
|
1985
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1986
|
+
label: Signal$Xote.make("Online", undefined, undefined),
|
|
1985
1987
|
variant: "Success",
|
|
1986
1988
|
dot: true
|
|
1987
1989
|
}),
|
|
1988
|
-
|
|
1989
|
-
label: Xote.
|
|
1990
|
+
XoteJSX$Xote.jsx(Basefn.Badge.make, {
|
|
1991
|
+
label: Signal$Xote.make("Away", undefined, undefined),
|
|
1990
1992
|
variant: "Warning",
|
|
1991
1993
|
dot: true
|
|
1992
1994
|
})
|
|
@@ -1994,92 +1996,92 @@ function Demo$Demo(props) {
|
|
|
1994
1996
|
})
|
|
1995
1997
|
])
|
|
1996
1998
|
}),
|
|
1997
|
-
|
|
1999
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
1998
2000
|
orientation: "Horizontal",
|
|
1999
2001
|
variant: "Dashed",
|
|
2000
2002
|
label: "Spinners"
|
|
2001
2003
|
}),
|
|
2002
|
-
|
|
2004
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2003
2005
|
style: "margin-top: 2rem;",
|
|
2004
|
-
children:
|
|
2005
|
-
|
|
2006
|
+
children: XoteJSX$Xote.array([
|
|
2007
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2006
2008
|
text: {
|
|
2007
2009
|
TAG: "Static",
|
|
2008
2010
|
_0: "Spinners"
|
|
2009
2011
|
},
|
|
2010
2012
|
variant: "H4"
|
|
2011
2013
|
}),
|
|
2012
|
-
|
|
2014
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
2013
2015
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
2014
|
-
children: Xote.
|
|
2016
|
+
children: Node$Xote.text("Loading indicators in different sizes and colors.")
|
|
2015
2017
|
}),
|
|
2016
|
-
|
|
2018
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2017
2019
|
style: "display: flex; gap: 2rem; flex-wrap: wrap; align-items: center;",
|
|
2018
|
-
children:
|
|
2019
|
-
|
|
2020
|
+
children: XoteJSX$Xote.array([
|
|
2021
|
+
XoteJSX$Xote.jsx(Basefn.Spinner.make, {
|
|
2020
2022
|
size: "Sm",
|
|
2021
2023
|
variant: "Default"
|
|
2022
2024
|
}),
|
|
2023
|
-
|
|
2025
|
+
XoteJSX$Xote.jsx(Basefn.Spinner.make, {
|
|
2024
2026
|
size: "Md",
|
|
2025
2027
|
variant: "Primary"
|
|
2026
2028
|
}),
|
|
2027
|
-
|
|
2029
|
+
XoteJSX$Xote.jsx(Basefn.Spinner.make, {
|
|
2028
2030
|
size: "Lg",
|
|
2029
2031
|
variant: "Secondary"
|
|
2030
2032
|
}),
|
|
2031
|
-
|
|
2033
|
+
XoteJSX$Xote.jsx(Basefn.Spinner.make, {
|
|
2032
2034
|
size: "Xl",
|
|
2033
2035
|
variant: "Primary"
|
|
2034
2036
|
})
|
|
2035
2037
|
])
|
|
2036
2038
|
}),
|
|
2037
|
-
|
|
2039
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2038
2040
|
style: "display: flex; gap: 2rem; flex-wrap: wrap; margin-top: 1.5rem;",
|
|
2039
|
-
children:
|
|
2040
|
-
|
|
2041
|
+
children: XoteJSX$Xote.array([
|
|
2042
|
+
XoteJSX$Xote.jsx(Basefn.Spinner.make, {
|
|
2041
2043
|
size: "Md",
|
|
2042
2044
|
variant: "Primary",
|
|
2043
2045
|
label: "Loading..."
|
|
2044
2046
|
}),
|
|
2045
|
-
|
|
2047
|
+
XoteJSX$Xote.jsx(Basefn.Spinner.make, {
|
|
2046
2048
|
size: "Lg",
|
|
2047
2049
|
variant: "Default",
|
|
2048
|
-
label: Xote.
|
|
2050
|
+
label: Signal$Xote.get(isSubmitting) ? "Submitting..." : "Ready"
|
|
2049
2051
|
})
|
|
2050
2052
|
])
|
|
2051
2053
|
})
|
|
2052
2054
|
])
|
|
2053
2055
|
}),
|
|
2054
|
-
|
|
2056
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
2055
2057
|
orientation: "Horizontal",
|
|
2056
2058
|
variant: "Dotted"
|
|
2057
2059
|
}),
|
|
2058
|
-
|
|
2060
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2059
2061
|
style: "margin-top: 2rem;",
|
|
2060
|
-
children:
|
|
2061
|
-
|
|
2062
|
+
children: XoteJSX$Xote.array([
|
|
2063
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2062
2064
|
text: {
|
|
2063
2065
|
TAG: "Static",
|
|
2064
2066
|
_0: "Keyboard Shortcuts"
|
|
2065
2067
|
},
|
|
2066
2068
|
variant: "H4"
|
|
2067
2069
|
}),
|
|
2068
|
-
|
|
2070
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
2069
2071
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
2070
|
-
children: Xote.
|
|
2072
|
+
children: Node$Xote.text("Display keyboard shortcuts in a visually appealing way.")
|
|
2071
2073
|
}),
|
|
2072
|
-
|
|
2074
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2073
2075
|
style: "display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: center;",
|
|
2074
|
-
children:
|
|
2075
|
-
|
|
2076
|
-
children:
|
|
2077
|
-
|
|
2076
|
+
children: XoteJSX$Xote.array([
|
|
2077
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2078
|
+
children: XoteJSX$Xote.array([
|
|
2079
|
+
XoteJSX$Xote.Elements.jsx("span", {
|
|
2078
2080
|
style: "color: #6b7280; margin-right: 0.5rem;",
|
|
2079
|
-
children: Xote.
|
|
2081
|
+
children: Node$Xote.text("Copy:")
|
|
2080
2082
|
}),
|
|
2081
|
-
|
|
2082
|
-
keys: Xote.
|
|
2083
|
+
XoteJSX$Xote.jsx(Basefn.Kbd.make, {
|
|
2084
|
+
keys: Signal$Xote.make([
|
|
2083
2085
|
"Ctrl",
|
|
2084
2086
|
"C"
|
|
2085
2087
|
], undefined, undefined),
|
|
@@ -2087,14 +2089,14 @@ function Demo$Demo(props) {
|
|
|
2087
2089
|
})
|
|
2088
2090
|
])
|
|
2089
2091
|
}),
|
|
2090
|
-
|
|
2091
|
-
children:
|
|
2092
|
-
|
|
2092
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2093
|
+
children: XoteJSX$Xote.array([
|
|
2094
|
+
XoteJSX$Xote.Elements.jsx("span", {
|
|
2093
2095
|
style: "color: #6b7280; margin-right: 0.5rem;",
|
|
2094
|
-
children: Xote.
|
|
2096
|
+
children: Node$Xote.text("Paste:")
|
|
2095
2097
|
}),
|
|
2096
|
-
|
|
2097
|
-
keys: Xote.
|
|
2098
|
+
XoteJSX$Xote.jsx(Basefn.Kbd.make, {
|
|
2099
|
+
keys: Signal$Xote.make([
|
|
2098
2100
|
"Ctrl",
|
|
2099
2101
|
"V"
|
|
2100
2102
|
], undefined, undefined),
|
|
@@ -2102,14 +2104,14 @@ function Demo$Demo(props) {
|
|
|
2102
2104
|
})
|
|
2103
2105
|
])
|
|
2104
2106
|
}),
|
|
2105
|
-
|
|
2106
|
-
children:
|
|
2107
|
-
|
|
2107
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2108
|
+
children: XoteJSX$Xote.array([
|
|
2109
|
+
XoteJSX$Xote.Elements.jsx("span", {
|
|
2108
2110
|
style: "color: #6b7280; margin-right: 0.5rem;",
|
|
2109
|
-
children: Xote.
|
|
2111
|
+
children: Node$Xote.text("Save:")
|
|
2110
2112
|
}),
|
|
2111
|
-
|
|
2112
|
-
keys: Xote.
|
|
2113
|
+
XoteJSX$Xote.jsx(Basefn.Kbd.make, {
|
|
2114
|
+
keys: Signal$Xote.make([
|
|
2113
2115
|
"Ctrl",
|
|
2114
2116
|
"S"
|
|
2115
2117
|
], undefined, undefined),
|
|
@@ -2117,14 +2119,14 @@ function Demo$Demo(props) {
|
|
|
2117
2119
|
})
|
|
2118
2120
|
])
|
|
2119
2121
|
}),
|
|
2120
|
-
|
|
2121
|
-
children:
|
|
2122
|
-
|
|
2122
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2123
|
+
children: XoteJSX$Xote.array([
|
|
2124
|
+
XoteJSX$Xote.Elements.jsx("span", {
|
|
2123
2125
|
style: "color: #6b7280; margin-right: 0.5rem;",
|
|
2124
|
-
children: Xote.
|
|
2126
|
+
children: Node$Xote.text("Select All:")
|
|
2125
2127
|
}),
|
|
2126
|
-
|
|
2127
|
-
keys: Xote.
|
|
2128
|
+
XoteJSX$Xote.jsx(Basefn.Kbd.make, {
|
|
2129
|
+
keys: Signal$Xote.make([
|
|
2128
2130
|
"Ctrl",
|
|
2129
2131
|
"A"
|
|
2130
2132
|
], undefined, undefined),
|
|
@@ -2134,121 +2136,121 @@ function Demo$Demo(props) {
|
|
|
2134
2136
|
})
|
|
2135
2137
|
])
|
|
2136
2138
|
}),
|
|
2137
|
-
|
|
2139
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2138
2140
|
style: "margin-top: 1rem;",
|
|
2139
|
-
children:
|
|
2140
|
-
|
|
2141
|
-
keys: Xote.
|
|
2141
|
+
children: XoteJSX$Xote.array([
|
|
2142
|
+
XoteJSX$Xote.jsx(Basefn.Kbd.make, {
|
|
2143
|
+
keys: Signal$Xote.make([
|
|
2142
2144
|
"Shift",
|
|
2143
2145
|
"Alt",
|
|
2144
2146
|
"F"
|
|
2145
2147
|
], undefined, undefined),
|
|
2146
2148
|
size: "Sm"
|
|
2147
2149
|
}),
|
|
2148
|
-
|
|
2150
|
+
XoteJSX$Xote.Elements.jsx("span", {
|
|
2149
2151
|
style: "color: #6b7280; margin-left: 0.5rem;",
|
|
2150
|
-
children: Xote.
|
|
2152
|
+
children: Node$Xote.text("Format Document")
|
|
2151
2153
|
})
|
|
2152
2154
|
])
|
|
2153
2155
|
})
|
|
2154
2156
|
])
|
|
2155
2157
|
}),
|
|
2156
|
-
|
|
2158
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
2157
2159
|
orientation: "Horizontal",
|
|
2158
2160
|
variant: "Solid"
|
|
2159
2161
|
}),
|
|
2160
|
-
|
|
2162
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2161
2163
|
style: "margin-top: 2rem;",
|
|
2162
|
-
children:
|
|
2163
|
-
|
|
2164
|
+
children: XoteJSX$Xote.array([
|
|
2165
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2164
2166
|
text: {
|
|
2165
2167
|
TAG: "Static",
|
|
2166
2168
|
_0: "Typography"
|
|
2167
2169
|
},
|
|
2168
2170
|
variant: "H4"
|
|
2169
2171
|
}),
|
|
2170
|
-
|
|
2172
|
+
XoteJSX$Xote.Elements.jsx("p", {
|
|
2171
2173
|
style: "color: #6b7280; margin: 0.5rem 0 1rem 0;",
|
|
2172
|
-
children: Xote.
|
|
2174
|
+
children: Node$Xote.text("Consistent text styling across your application.")
|
|
2173
2175
|
}),
|
|
2174
|
-
|
|
2176
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2175
2177
|
style: "display: flex; flex-direction: column; gap: 1rem;",
|
|
2176
|
-
children:
|
|
2177
|
-
|
|
2178
|
+
children: XoteJSX$Xote.array([
|
|
2179
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2178
2180
|
text: {
|
|
2179
2181
|
TAG: "Static",
|
|
2180
2182
|
_0: "Heading 1"
|
|
2181
2183
|
},
|
|
2182
2184
|
variant: "H1"
|
|
2183
2185
|
}),
|
|
2184
|
-
|
|
2186
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2185
2187
|
text: {
|
|
2186
2188
|
TAG: "Static",
|
|
2187
2189
|
_0: "Heading 2"
|
|
2188
2190
|
},
|
|
2189
2191
|
variant: "H2"
|
|
2190
2192
|
}),
|
|
2191
|
-
|
|
2193
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2192
2194
|
text: {
|
|
2193
2195
|
TAG: "Static",
|
|
2194
2196
|
_0: "Heading 3"
|
|
2195
2197
|
},
|
|
2196
2198
|
variant: "H3"
|
|
2197
2199
|
}),
|
|
2198
|
-
|
|
2200
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2199
2201
|
text: {
|
|
2200
2202
|
TAG: "Static",
|
|
2201
2203
|
_0: "Heading 4"
|
|
2202
2204
|
},
|
|
2203
2205
|
variant: "H4"
|
|
2204
2206
|
}),
|
|
2205
|
-
|
|
2207
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2206
2208
|
text: {
|
|
2207
2209
|
TAG: "Static",
|
|
2208
2210
|
_0: "Heading 5"
|
|
2209
2211
|
},
|
|
2210
2212
|
variant: "H5"
|
|
2211
2213
|
}),
|
|
2212
|
-
|
|
2214
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2213
2215
|
text: {
|
|
2214
2216
|
TAG: "Static",
|
|
2215
2217
|
_0: "Heading 6"
|
|
2216
2218
|
},
|
|
2217
2219
|
variant: "H6"
|
|
2218
2220
|
}),
|
|
2219
|
-
|
|
2221
|
+
XoteJSX$Xote.jsx(Basefn.Separator.make, {
|
|
2220
2222
|
orientation: "Horizontal",
|
|
2221
2223
|
variant: "Dashed"
|
|
2222
2224
|
}),
|
|
2223
|
-
|
|
2225
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2224
2226
|
text: {
|
|
2225
2227
|
TAG: "Static",
|
|
2226
2228
|
_0: "This is a regular paragraph with normal text styling and comfortable line height."
|
|
2227
2229
|
},
|
|
2228
2230
|
variant: "P"
|
|
2229
2231
|
}),
|
|
2230
|
-
|
|
2232
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2231
2233
|
text: {
|
|
2232
2234
|
TAG: "Static",
|
|
2233
2235
|
_0: "This is a lead paragraph that stands out with larger text and is perfect for introductions."
|
|
2234
2236
|
},
|
|
2235
2237
|
variant: "Lead"
|
|
2236
2238
|
}),
|
|
2237
|
-
|
|
2239
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2238
2240
|
text: {
|
|
2239
2241
|
TAG: "Static",
|
|
2240
2242
|
_0: "This is small text, useful for captions and helper text."
|
|
2241
2243
|
},
|
|
2242
2244
|
variant: "Small"
|
|
2243
2245
|
}),
|
|
2244
|
-
|
|
2246
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2245
2247
|
text: {
|
|
2246
2248
|
TAG: "Static",
|
|
2247
2249
|
_0: "This is muted text with reduced emphasis."
|
|
2248
2250
|
},
|
|
2249
2251
|
variant: "Muted"
|
|
2250
2252
|
}),
|
|
2251
|
-
|
|
2253
|
+
XoteJSX$Xote.jsx(Basefn.Typography.make, {
|
|
2252
2254
|
text: {
|
|
2253
2255
|
TAG: "Static",
|
|
2254
2256
|
_0: "const hello = 'world'"
|
|
@@ -2259,25 +2261,25 @@ function Demo$Demo(props) {
|
|
|
2259
2261
|
})
|
|
2260
2262
|
])
|
|
2261
2263
|
}),
|
|
2262
|
-
|
|
2264
|
+
XoteJSX$Xote.Elements.jsxs("div", {
|
|
2263
2265
|
style: "margin-top: 3rem; padding: 1rem; background-color: #f3f4f6; border-radius: 0.5rem;",
|
|
2264
|
-
children:
|
|
2265
|
-
|
|
2266
|
+
children: XoteJSX$Xote.array([
|
|
2267
|
+
XoteJSX$Xote.Elements.jsx("h3", {
|
|
2266
2268
|
style: "margin-top: 0; color: #374151;",
|
|
2267
|
-
children: Xote.
|
|
2269
|
+
children: Node$Xote.text("Form State (Real-time)")
|
|
2268
2270
|
}),
|
|
2269
|
-
|
|
2271
|
+
XoteJSX$Xote.Elements.jsx("pre", {
|
|
2270
2272
|
style: "background-color: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 0.25rem; overflow-x: auto; font-size: 0.875rem;",
|
|
2271
|
-
children: Xote.
|
|
2272
|
-
Email: ` + Xote.
|
|
2273
|
-
Password: ` + "*".repeat(Xote.
|
|
2274
|
-
Interest: ` + Xote.
|
|
2275
|
-
Color: ` + Xote.
|
|
2276
|
-
Message: ` + Xote.
|
|
2277
|
-
Xote.
|
|
2273
|
+
children: Node$Xote.signalText(() => `Name: ` + Signal$Xote.get(name) + `
|
|
2274
|
+
Email: ` + Signal$Xote.get(email) + `
|
|
2275
|
+
Password: ` + "*".repeat(Signal$Xote.get(password).length) + `
|
|
2276
|
+
Interest: ` + Signal$Xote.get(selectedOption) + `
|
|
2277
|
+
Color: ` + Signal$Xote.get(selectedColor) + `
|
|
2278
|
+
Message: ` + Signal$Xote.get(message).slice(0, 50) + (
|
|
2279
|
+
Signal$Xote.get(message).length > 50 ? "..." : ""
|
|
2278
2280
|
) + `
|
|
2279
|
-
Terms: ` + Stdlib_Bool.toString(Xote.
|
|
2280
|
-
Newsletter: ` + Stdlib_Bool.toString(Xote.
|
|
2281
|
+
Terms: ` + Stdlib_Bool.toString(Signal$Xote.get(agreeToTerms)) + `
|
|
2282
|
+
Newsletter: ` + Stdlib_Bool.toString(Signal$Xote.get(newsletter)))
|
|
2281
2283
|
})
|
|
2282
2284
|
])
|
|
2283
2285
|
})
|
|
@@ -2289,7 +2291,7 @@ let Demo = {
|
|
|
2289
2291
|
make: Demo$Demo
|
|
2290
2292
|
};
|
|
2291
2293
|
|
|
2292
|
-
Xote.
|
|
2294
|
+
Node$Xote.mountById(XoteJSX$Xote.jsx(Demo$Demo, {}), "root");
|
|
2293
2295
|
|
|
2294
2296
|
export {
|
|
2295
2297
|
Demo,
|