bank20baht-ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/dist/chunks/baht-toast-BlZBbneT.js +324 -0
- package/dist/components/baht-form.d.ts +41 -0
- package/dist/components/baht-workflow.d.ts +64 -0
- package/dist/components/base.d.ts +38 -0
- package/dist/components/primitives/baht-accordion.d.ts +26 -0
- package/dist/components/primitives/baht-alert.d.ts +17 -0
- package/dist/components/primitives/baht-badge.d.ts +19 -0
- package/dist/components/primitives/baht-breadcrumbs.d.ts +22 -0
- package/dist/components/primitives/baht-button.d.ts +31 -0
- package/dist/components/primitives/baht-card.d.ts +18 -0
- package/dist/components/primitives/baht-checkbox.d.ts +7 -0
- package/dist/components/primitives/baht-code.d.ts +18 -0
- package/dist/components/primitives/baht-datepicker.d.ts +6 -0
- package/dist/components/primitives/baht-fieldset.d.ts +17 -0
- package/dist/components/primitives/baht-file.d.ts +9 -0
- package/dist/components/primitives/baht-filter.d.ts +24 -0
- package/dist/components/primitives/baht-input.d.ts +6 -0
- package/dist/components/primitives/baht-link.d.ts +17 -0
- package/dist/components/primitives/baht-list.d.ts +28 -0
- package/dist/components/primitives/baht-modal.d.ts +32 -0
- package/dist/components/primitives/baht-multiselect.d.ts +8 -0
- package/dist/components/primitives/baht-number.d.ts +5 -0
- package/dist/components/primitives/baht-otp.d.ts +26 -0
- package/dist/components/primitives/baht-pagination.d.ts +21 -0
- package/dist/components/primitives/baht-progress.d.ts +16 -0
- package/dist/components/primitives/baht-radio.d.ts +5 -0
- package/dist/components/primitives/baht-range.d.ts +21 -0
- package/dist/components/primitives/baht-rating.d.ts +22 -0
- package/dist/components/primitives/baht-select.d.ts +5 -0
- package/dist/components/primitives/baht-skeleton.d.ts +16 -0
- package/dist/components/primitives/baht-spinner.d.ts +13 -0
- package/dist/components/primitives/baht-table.d.ts +44 -0
- package/dist/components/primitives/baht-text.d.ts +8 -0
- package/dist/components/primitives/baht-textarea.d.ts +5 -0
- package/dist/components/primitives/baht-timeline.d.ts +21 -0
- package/dist/components/primitives/baht-toast.d.ts +27 -0
- package/dist/components/primitives/baht-toggle.d.ts +6 -0
- package/dist/components/primitives/baht-tooltip.d.ts +29 -0
- package/dist/components/primitives/icons.d.ts +13 -0
- package/dist/components/primitives/index.d.ts +38 -0
- package/dist/core/approval.d.ts +9 -0
- package/dist/core/defaults.d.ts +6 -0
- package/dist/core/engine/conditions.d.ts +4 -0
- package/dist/core/engine/evaluate.d.ts +8 -0
- package/dist/core/engine/expressions.d.ts +3 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/types.d.ts +166 -0
- package/dist/core/validators.d.ts +6 -0
- package/dist/custom-elements.json +7761 -0
- package/dist/engine.js +329 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1796 -0
- package/dist/overlay.d.ts +45 -0
- package/dist/overlay.js +121 -0
- package/dist/react.d.ts +191 -0
- package/dist/react.js +1 -0
- package/dist/tokens.css +936 -0
- package/dist/vscode.css-custom-data.json +6 -0
- package/dist/vscode.html-custom-data.json +479 -0
- package/dist/web-types.json +1226 -0
- package/package.json +94 -0
|
@@ -0,0 +1,1226 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
|
+
"name": "bank20baht-ui",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"description-markup": "markdown",
|
|
6
|
+
"contributions": {
|
|
7
|
+
"html": {
|
|
8
|
+
"elements": [
|
|
9
|
+
{
|
|
10
|
+
"name": "baht-form",
|
|
11
|
+
"description": "<baht-form> — dumb controlled form renderer (spec 01).\nJSON in (form + value + registry) -> UI out; emits `baht-change` / `baht-validity`.\nNo buttons, no cross-field logic — that's <baht-workflow> or the host.\n---\n\n\n### **Events:**\n - **baht-validity**\n- **baht-change**",
|
|
12
|
+
"doc-url": "",
|
|
13
|
+
"attributes": [],
|
|
14
|
+
"events": [
|
|
15
|
+
{ "name": "baht-validity", "type": "CustomEvent" },
|
|
16
|
+
{ "name": "baht-change", "type": "CustomEvent" }
|
|
17
|
+
],
|
|
18
|
+
"js": {
|
|
19
|
+
"properties": [
|
|
20
|
+
{ "name": "form", "type": "FormDefinition" },
|
|
21
|
+
{ "name": "value", "type": "Record<string, unknown>" },
|
|
22
|
+
{ "name": "registry", "type": "Registry" },
|
|
23
|
+
{ "name": "options", "type": "BahtFormOptions" },
|
|
24
|
+
{
|
|
25
|
+
"name": "fieldStates",
|
|
26
|
+
"description": "L2 (workflow) derived per-field UI state, keyed by field key. Optional.",
|
|
27
|
+
"type": "Record<string, DerivedFieldState>"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"events": [
|
|
31
|
+
{ "name": "baht-validity", "type": "CustomEvent" },
|
|
32
|
+
{ "name": "baht-change", "type": "CustomEvent" }
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "baht-workflow",
|
|
38
|
+
"description": "<baht-workflow> — the optional brain (spec 03). Wraps the current form in an\ninternal <baht-form>, evaluates rules on every change, walks the visible forms\nin linear `order`, and owns the single Next/Submit button.\nForms with kind 'approval' render a decision step instead (spec 03 §4):\na summary of earlier answers plus Approve/Reject (+ optional comment); the\ndecision lands in data as `<formName>.decision` so rules can branch on it.\nThe runtime navigates; the host acts (on baht-next / baht-submit / baht-approve /\nbaht-reject / baht-complete).\n---\n\n\n### **Events:**\n - **type**\n\n### **Methods:**\n - **approve(): _void_** - Approve the current approval step (same as pressing its Approve button).\n- **reject(): _void_** - Reject the current approval step (same as pressing its Reject button).",
|
|
39
|
+
"doc-url": "",
|
|
40
|
+
"attributes": [
|
|
41
|
+
{
|
|
42
|
+
"name": "validate-gate",
|
|
43
|
+
"value": { "type": "boolean", "default": "true" }
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "next-label",
|
|
47
|
+
"value": { "type": "string", "default": "'Next'" }
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "submit-label",
|
|
51
|
+
"value": { "type": "string", "default": "'Submit'" }
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "back-label",
|
|
55
|
+
"value": { "type": "string", "default": "'Back'" }
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "show-back",
|
|
59
|
+
"value": { "type": "boolean", "default": "true" }
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"events": [{ "name": "type", "type": "CustomEvent" }],
|
|
63
|
+
"js": {
|
|
64
|
+
"properties": [
|
|
65
|
+
{ "name": "workflow", "type": "WorkflowDefinition" },
|
|
66
|
+
{ "name": "value", "type": "NestedData" },
|
|
67
|
+
{ "name": "registry", "type": "Registry" },
|
|
68
|
+
{ "name": "validateGate", "type": "boolean" },
|
|
69
|
+
{ "name": "nextLabel", "type": "string" },
|
|
70
|
+
{ "name": "submitLabel", "type": "string" },
|
|
71
|
+
{ "name": "backLabel", "type": "string" },
|
|
72
|
+
{ "name": "showBack", "type": "boolean" },
|
|
73
|
+
{ "name": "currentFormName", "type": "string | null" }
|
|
74
|
+
],
|
|
75
|
+
"events": [{ "name": "type", "type": "CustomEvent" }]
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "baht-accordion",
|
|
80
|
+
"description": "Accordion. `items` drive the panels; `multiple` allows several open at once.\nEmits `baht-toggle { index, open }`.\n\n el.items = [\n { title: 'What is a workflow?', content: 'Workflows run when something happens…' },\n { title: 'Pricing', content: '฿20 / month.', open: true },\n ];\n---\n\n\n### **Events:**\n - **baht-toggle**",
|
|
81
|
+
"doc-url": "",
|
|
82
|
+
"attributes": [
|
|
83
|
+
{
|
|
84
|
+
"name": "multiple",
|
|
85
|
+
"value": { "type": "boolean", "default": "false" }
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"events": [{ "name": "baht-toggle", "type": "CustomEvent" }],
|
|
89
|
+
"js": {
|
|
90
|
+
"properties": [
|
|
91
|
+
{ "name": "items", "type": "AccordionItem[]" },
|
|
92
|
+
{ "name": "multiple", "type": "boolean" }
|
|
93
|
+
],
|
|
94
|
+
"events": [{ "name": "baht-toggle", "type": "CustomEvent" }]
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "baht-alert",
|
|
99
|
+
"description": "Inline alert / callout.\n\n <baht-alert tone=\"danger\" heading=\"Couldn't reach the webhook\"\n message=\"Check the URL and try again.\" dismissible></baht-alert>\n---\n\n\n### **Events:**\n - **baht-dismiss**",
|
|
100
|
+
"doc-url": "",
|
|
101
|
+
"attributes": [
|
|
102
|
+
{
|
|
103
|
+
"name": "tone",
|
|
104
|
+
"value": {
|
|
105
|
+
"type": "'info' | 'success' | 'warning' | 'danger'",
|
|
106
|
+
"default": "'info'"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "heading",
|
|
111
|
+
"value": { "type": "string", "default": "''" }
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "message",
|
|
115
|
+
"value": { "type": "string", "default": "''" }
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "dismissible",
|
|
119
|
+
"value": { "type": "boolean", "default": "false" }
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "hidden",
|
|
123
|
+
"value": { "type": "boolean", "default": "false" }
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"events": [{ "name": "baht-dismiss", "type": "CustomEvent" }],
|
|
127
|
+
"js": {
|
|
128
|
+
"properties": [
|
|
129
|
+
{
|
|
130
|
+
"name": "tone",
|
|
131
|
+
"type": "'info' | 'success' | 'warning' | 'danger'"
|
|
132
|
+
},
|
|
133
|
+
{ "name": "heading", "type": "string" },
|
|
134
|
+
{ "name": "message", "type": "string" },
|
|
135
|
+
{ "name": "dismissible", "type": "boolean" },
|
|
136
|
+
{ "name": "hidden", "type": "boolean" }
|
|
137
|
+
],
|
|
138
|
+
"events": [{ "name": "baht-dismiss", "type": "CustomEvent" }]
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "baht-badge",
|
|
143
|
+
"description": "Status pill / tag / counter (20baht badges).\nStatus tones (neutral/success/danger/warning/info) show a colored dot;\ntag tones (outline/solid/gold/inverse/mono) don't.\n\n <baht-badge tone=\"success\" label=\"Running\"></baht-badge>\n <baht-badge tone=\"mono\" label=\"฿20 / mo\"></baht-badge>\n---\n",
|
|
144
|
+
"doc-url": "",
|
|
145
|
+
"attributes": [
|
|
146
|
+
{
|
|
147
|
+
"name": "tone",
|
|
148
|
+
"value": { "type": "BadgeTone", "default": "'neutral'" }
|
|
149
|
+
},
|
|
150
|
+
{ "name": "label", "value": { "type": "string", "default": "''" } }
|
|
151
|
+
],
|
|
152
|
+
"events": [],
|
|
153
|
+
"js": {
|
|
154
|
+
"properties": [
|
|
155
|
+
{ "name": "tone", "type": "BadgeTone" },
|
|
156
|
+
{ "name": "label", "type": "string" },
|
|
157
|
+
{
|
|
158
|
+
"name": "dot",
|
|
159
|
+
"description": "Force the dot on/off; defaults to on for status tones.",
|
|
160
|
+
"type": "boolean | null"
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"events": []
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "baht-breadcrumbs",
|
|
168
|
+
"description": "Breadcrumb trail. Last item renders as the current page (no link). Items\nwithout `href` emit `baht-navigate { item, index }` for router-driven apps.\n\n el.items = [\n { label: 'Workflows', href: '/workflows' },\n { label: 'Signup', href: '/workflows/signup' },\n { label: 'Run #812' },\n ];\n---\n\n\n### **Events:**\n - **baht-navigate**",
|
|
169
|
+
"doc-url": "",
|
|
170
|
+
"attributes": [
|
|
171
|
+
{
|
|
172
|
+
"name": "separator",
|
|
173
|
+
"value": { "type": "string", "default": "'›'" }
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"events": [{ "name": "baht-navigate", "type": "CustomEvent" }],
|
|
177
|
+
"js": {
|
|
178
|
+
"properties": [
|
|
179
|
+
{ "name": "items", "type": "Crumb[]" },
|
|
180
|
+
{ "name": "separator", "type": "string" }
|
|
181
|
+
],
|
|
182
|
+
"events": [{ "name": "baht-navigate", "type": "CustomEvent" }]
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "baht-button",
|
|
187
|
+
"description": "Design-system button (20baht: no scale, no shadow change — color does the work).\nStandalone primitive: children become the label, listen for the native `click`.\n(Light DOM has no <slot>, so the initial children are moved into the button.)\n\n <baht-button variant=\"danger\" size=\"sm\">Delete</baht-button>\n <baht-button label=\"Save workflow\"></baht-button>\n <baht-button icon=\"copy\" variant=\"ghost\" size=\"sm\">Copy</baht-button>\n <baht-button icon=\"close\" icon-only label=\"Close\"></baht-button> <!-- label = a11y name -->\n---\n",
|
|
188
|
+
"doc-url": "",
|
|
189
|
+
"attributes": [
|
|
190
|
+
{
|
|
191
|
+
"name": "variant",
|
|
192
|
+
"value": { "type": "ButtonVariant", "default": "'primary'" }
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "size",
|
|
196
|
+
"value": { "type": "ButtonSize", "default": "'md'" }
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "disabled",
|
|
200
|
+
"value": { "type": "boolean", "default": "false" }
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "type",
|
|
204
|
+
"description": "Forwarded to the native button — 'button' (default) or 'submit'.",
|
|
205
|
+
"value": { "type": "'button' | 'submit'", "default": "'button'" }
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "label",
|
|
209
|
+
"description": "Alternative to children for setting the label programmatically.",
|
|
210
|
+
"value": { "type": "string", "default": "''" }
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"name": "icon",
|
|
214
|
+
"description": "Optional leading icon from the curated set (copy/check/download/…).",
|
|
215
|
+
"value": { "type": "IconName | ''", "default": "''" }
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "icon-only",
|
|
219
|
+
"description": "Square icon-only button. Requires `label` for the accessible name.",
|
|
220
|
+
"value": { "type": "boolean", "default": "false" }
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"events": [],
|
|
224
|
+
"js": {
|
|
225
|
+
"properties": [
|
|
226
|
+
{ "name": "variant", "type": "ButtonVariant" },
|
|
227
|
+
{ "name": "size", "type": "ButtonSize" },
|
|
228
|
+
{ "name": "disabled", "type": "boolean" },
|
|
229
|
+
{
|
|
230
|
+
"name": "type",
|
|
231
|
+
"description": "Forwarded to the native button — 'button' (default) or 'submit'.",
|
|
232
|
+
"type": "'button' | 'submit'"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"name": "label",
|
|
236
|
+
"description": "Alternative to children for setting the label programmatically.",
|
|
237
|
+
"type": "string"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "icon",
|
|
241
|
+
"description": "Optional leading icon from the curated set (copy/check/download/…).",
|
|
242
|
+
"type": "IconName | ''"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"name": "iconOnly",
|
|
246
|
+
"description": "Square icon-only button. Requires `label` for the accessible name.",
|
|
247
|
+
"type": "boolean"
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"events": []
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"name": "baht-card",
|
|
255
|
+
"description": "Surface card (20baht: white on cream, 1px border, no shadow at rest — the\nborder carries the separation). Children become the body.\n\n <baht-card heading=\"Runs\" subtitle=\"Last 30 days\">…content…</baht-card>\n <baht-card hero>…large feature card (20px radius)…</baht-card>\n---\n",
|
|
256
|
+
"doc-url": "",
|
|
257
|
+
"attributes": [
|
|
258
|
+
{
|
|
259
|
+
"name": "heading",
|
|
260
|
+
"value": { "type": "string", "default": "''" }
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"name": "subtitle",
|
|
264
|
+
"value": { "type": "string", "default": "''" }
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"name": "hero",
|
|
268
|
+
"description": "hero = 20px radius + roomier padding (large/feature cards).",
|
|
269
|
+
"value": { "type": "boolean", "default": "false" }
|
|
270
|
+
}
|
|
271
|
+
],
|
|
272
|
+
"events": [],
|
|
273
|
+
"js": {
|
|
274
|
+
"properties": [
|
|
275
|
+
{ "name": "heading", "type": "string" },
|
|
276
|
+
{ "name": "subtitle", "type": "string" },
|
|
277
|
+
{
|
|
278
|
+
"name": "hero",
|
|
279
|
+
"description": "hero = 20px radius + roomier padding (large/feature cards).",
|
|
280
|
+
"type": "boolean"
|
|
281
|
+
}
|
|
282
|
+
],
|
|
283
|
+
"events": []
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"name": "baht-checkbox",
|
|
288
|
+
"description": "\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n \n",
|
|
289
|
+
"doc-url": "",
|
|
290
|
+
"attributes": [
|
|
291
|
+
{
|
|
292
|
+
"name": "disabled",
|
|
293
|
+
"value": { "type": "boolean", "default": "false" }
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"name": "readonly",
|
|
297
|
+
"value": { "type": "boolean", "default": "false" }
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"name": "required",
|
|
301
|
+
"value": { "type": "boolean", "default": "false" }
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
305
|
+
"js": {
|
|
306
|
+
"properties": [
|
|
307
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
308
|
+
{ "name": "value", "type": "unknown" },
|
|
309
|
+
{ "name": "disabled", "type": "boolean" },
|
|
310
|
+
{ "name": "readonly", "type": "boolean" },
|
|
311
|
+
{ "name": "required", "type": "boolean" },
|
|
312
|
+
{ "name": "error", "type": "string | null" }
|
|
313
|
+
],
|
|
314
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"name": "baht-code",
|
|
319
|
+
"description": "Monospace code (20baht): an inline chip or a block. Content is the light-DOM\nchildren (or the `code` property). Not a syntax highlighter — just the\ndesign-system's canonical way to show code/identifiers/tokens.\n\n <baht-code>baht-button</baht-code>\n <baht-code variant=\"block\">npm i bank20baht-ui</baht-code>\n---\n",
|
|
320
|
+
"doc-url": "",
|
|
321
|
+
"attributes": [
|
|
322
|
+
{
|
|
323
|
+
"name": "variant",
|
|
324
|
+
"value": { "type": "CodeVariant", "default": "'inline'" }
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"name": "code",
|
|
328
|
+
"description": "Alternative to children for setting the code text programmatically.",
|
|
329
|
+
"value": { "type": "string", "default": "''" }
|
|
330
|
+
}
|
|
331
|
+
],
|
|
332
|
+
"events": [],
|
|
333
|
+
"js": {
|
|
334
|
+
"properties": [
|
|
335
|
+
{ "name": "variant", "type": "CodeVariant" },
|
|
336
|
+
{
|
|
337
|
+
"name": "code",
|
|
338
|
+
"description": "Alternative to children for setting the code text programmatically.",
|
|
339
|
+
"type": "string"
|
|
340
|
+
}
|
|
341
|
+
],
|
|
342
|
+
"events": []
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"name": "baht-datepicker",
|
|
347
|
+
"description": "Value = ISO date string (yyyy-mm-dd).\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
348
|
+
"doc-url": "",
|
|
349
|
+
"attributes": [
|
|
350
|
+
{
|
|
351
|
+
"name": "disabled",
|
|
352
|
+
"value": { "type": "boolean", "default": "false" }
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"name": "readonly",
|
|
356
|
+
"value": { "type": "boolean", "default": "false" }
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "required",
|
|
360
|
+
"value": { "type": "boolean", "default": "false" }
|
|
361
|
+
}
|
|
362
|
+
],
|
|
363
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
364
|
+
"js": {
|
|
365
|
+
"properties": [
|
|
366
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
367
|
+
{ "name": "value", "type": "unknown" },
|
|
368
|
+
{ "name": "disabled", "type": "boolean" },
|
|
369
|
+
{ "name": "readonly", "type": "boolean" },
|
|
370
|
+
{ "name": "required", "type": "boolean" },
|
|
371
|
+
{ "name": "error", "type": "string | null" }
|
|
372
|
+
],
|
|
373
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"name": "baht-fieldset",
|
|
378
|
+
"description": "Semantic group wrapper (native <fieldset>/<legend>). Children become the\ncontent — typically a set of baht-* fields.\n\n <baht-fieldset legend=\"Billing\">\n <baht-input>…</baht-input>\n </baht-fieldset>\n---\n",
|
|
379
|
+
"doc-url": "",
|
|
380
|
+
"attributes": [
|
|
381
|
+
{
|
|
382
|
+
"name": "legend",
|
|
383
|
+
"value": { "type": "string", "default": "''" }
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"name": "disabled",
|
|
387
|
+
"value": { "type": "boolean", "default": "false" }
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"events": [],
|
|
391
|
+
"js": {
|
|
392
|
+
"properties": [
|
|
393
|
+
{ "name": "legend", "type": "string" },
|
|
394
|
+
{ "name": "disabled", "type": "boolean" }
|
|
395
|
+
],
|
|
396
|
+
"events": []
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"name": "baht-file",
|
|
401
|
+
"description": "Capture only (spec 01 §2): value = File handle(s); the lib never uploads.\nmaxSize (bytes) is enforced here as a soft filter — oversize files rejected.\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
402
|
+
"doc-url": "",
|
|
403
|
+
"attributes": [
|
|
404
|
+
{
|
|
405
|
+
"name": "disabled",
|
|
406
|
+
"value": { "type": "boolean", "default": "false" }
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"name": "readonly",
|
|
410
|
+
"value": { "type": "boolean", "default": "false" }
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"name": "required",
|
|
414
|
+
"value": { "type": "boolean", "default": "false" }
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
418
|
+
"js": {
|
|
419
|
+
"properties": [
|
|
420
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
421
|
+
{ "name": "value", "type": "unknown" },
|
|
422
|
+
{ "name": "disabled", "type": "boolean" },
|
|
423
|
+
{ "name": "readonly", "type": "boolean" },
|
|
424
|
+
{ "name": "required", "type": "boolean" },
|
|
425
|
+
{ "name": "error", "type": "string | null" }
|
|
426
|
+
],
|
|
427
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"name": "baht-filter",
|
|
432
|
+
"description": "Filter chip group. Controlled: emits `baht-change { selected }` (array of\noption keys), host re-feeds `selected`. Typical use: above an <baht-table>,\nthe handler refetches page 1 with the new filters.\n\n const f = document.querySelector('baht-filter');\n f.options = [{ key: 'running', label: 'Running' }, { key: 'failed', label: 'Failed' }];\n f.selected = ['running'];\n f.addEventListener('baht-change', (e) => refetch({ status: e.detail.selected }));\n---\n\n\n### **Events:**\n - **baht-change**",
|
|
433
|
+
"doc-url": "",
|
|
434
|
+
"attributes": [
|
|
435
|
+
{
|
|
436
|
+
"name": "multiple",
|
|
437
|
+
"description": "false = radio behavior (max one active; clicking it again clears).",
|
|
438
|
+
"value": { "type": "boolean", "default": "true" }
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"name": "disabled",
|
|
442
|
+
"value": { "type": "boolean", "default": "false" }
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"name": "label",
|
|
446
|
+
"description": "Accessible name for the chip group.",
|
|
447
|
+
"value": { "type": "string", "default": "'Filters'" }
|
|
448
|
+
}
|
|
449
|
+
],
|
|
450
|
+
"events": [{ "name": "baht-change", "type": "CustomEvent" }],
|
|
451
|
+
"js": {
|
|
452
|
+
"properties": [
|
|
453
|
+
{ "name": "options", "type": "FieldOption[]" },
|
|
454
|
+
{ "name": "selected", "type": "string[]" },
|
|
455
|
+
{
|
|
456
|
+
"name": "multiple",
|
|
457
|
+
"description": "false = radio behavior (max one active; clicking it again clears).",
|
|
458
|
+
"type": "boolean"
|
|
459
|
+
},
|
|
460
|
+
{ "name": "disabled", "type": "boolean" },
|
|
461
|
+
{
|
|
462
|
+
"name": "label",
|
|
463
|
+
"description": "Accessible name for the chip group.",
|
|
464
|
+
"type": "string"
|
|
465
|
+
}
|
|
466
|
+
],
|
|
467
|
+
"events": [{ "name": "baht-change", "type": "CustomEvent" }]
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"name": "baht-input",
|
|
472
|
+
"description": "text + email share one control; email differs only in input type + validator.\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
473
|
+
"doc-url": "",
|
|
474
|
+
"attributes": [
|
|
475
|
+
{
|
|
476
|
+
"name": "disabled",
|
|
477
|
+
"value": { "type": "boolean", "default": "false" }
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"name": "readonly",
|
|
481
|
+
"value": { "type": "boolean", "default": "false" }
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"name": "required",
|
|
485
|
+
"value": { "type": "boolean", "default": "false" }
|
|
486
|
+
}
|
|
487
|
+
],
|
|
488
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
489
|
+
"js": {
|
|
490
|
+
"properties": [
|
|
491
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
492
|
+
{ "name": "value", "type": "unknown" },
|
|
493
|
+
{ "name": "disabled", "type": "boolean" },
|
|
494
|
+
{ "name": "readonly", "type": "boolean" },
|
|
495
|
+
{ "name": "required", "type": "boolean" },
|
|
496
|
+
{ "name": "error", "type": "string | null" }
|
|
497
|
+
],
|
|
498
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"name": "baht-link",
|
|
503
|
+
"description": "Styled anchor (20baht underline treatment). `external` opens a new tab and\nshows the ↗ mark.\n\n <baht-link href=\"/docs\" label=\"Read the docs\"></baht-link>\n <baht-link href=\"https://…\" label=\"Status page\" external></baht-link>\n---\n",
|
|
504
|
+
"doc-url": "",
|
|
505
|
+
"attributes": [
|
|
506
|
+
{ "name": "href", "value": { "type": "string", "default": "''" } },
|
|
507
|
+
{ "name": "label", "value": { "type": "string", "default": "''" } },
|
|
508
|
+
{
|
|
509
|
+
"name": "external",
|
|
510
|
+
"value": { "type": "boolean", "default": "false" }
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"name": "external-hint",
|
|
514
|
+
"description": "Screen-reader suffix for external links (override to localize).",
|
|
515
|
+
"value": { "type": "string", "default": "'opens in new tab'" }
|
|
516
|
+
}
|
|
517
|
+
],
|
|
518
|
+
"events": [],
|
|
519
|
+
"js": {
|
|
520
|
+
"properties": [
|
|
521
|
+
{ "name": "href", "type": "string" },
|
|
522
|
+
{ "name": "label", "type": "string" },
|
|
523
|
+
{ "name": "external", "type": "boolean" },
|
|
524
|
+
{
|
|
525
|
+
"name": "externalHint",
|
|
526
|
+
"description": "Screen-reader suffix for external links (override to localize).",
|
|
527
|
+
"type": "string"
|
|
528
|
+
}
|
|
529
|
+
],
|
|
530
|
+
"events": []
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"name": "baht-list",
|
|
535
|
+
"description": "Display list — same server-side contract as <baht-table>: `items` is the\ncurrent page, `loading` shows skeleton rows, the host fetches on\n`baht-page-change` (pair with <baht-pagination>).\n---\n\n\n### **Events:**\n - **baht-item-click**",
|
|
536
|
+
"doc-url": "",
|
|
537
|
+
"attributes": [
|
|
538
|
+
{
|
|
539
|
+
"name": "loading",
|
|
540
|
+
"value": { "type": "boolean", "default": "false" }
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"name": "error",
|
|
544
|
+
"value": { "type": "boolean", "default": "false" }
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
"name": "error-message",
|
|
548
|
+
"value": {
|
|
549
|
+
"type": "string",
|
|
550
|
+
"default": "\"Couldn't load data. Try again.\""
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "empty-message",
|
|
555
|
+
"value": { "type": "string", "default": "'Nothing here yet.'" }
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"name": "skeleton-rows",
|
|
559
|
+
"value": { "type": "number", "default": "5" }
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"name": "clickable",
|
|
563
|
+
"value": { "type": "boolean", "default": "true" }
|
|
564
|
+
}
|
|
565
|
+
],
|
|
566
|
+
"events": [{ "name": "baht-item-click", "type": "CustomEvent" }],
|
|
567
|
+
"js": {
|
|
568
|
+
"properties": [
|
|
569
|
+
{ "name": "items", "type": "ListItem[]" },
|
|
570
|
+
{ "name": "loading", "type": "boolean" },
|
|
571
|
+
{ "name": "error", "type": "boolean" },
|
|
572
|
+
{ "name": "errorMessage", "type": "string" },
|
|
573
|
+
{ "name": "emptyMessage", "type": "string" },
|
|
574
|
+
{ "name": "skeletonRows", "type": "number" },
|
|
575
|
+
{ "name": "clickable", "type": "boolean" }
|
|
576
|
+
],
|
|
577
|
+
"events": [{ "name": "baht-item-click", "type": "CustomEvent" }]
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"name": "baht-modal",
|
|
582
|
+
"description": "Modal dialog (20baht: 0.4 ink scrim, no blur; float shadow; 20px radius).\nControlled: the host flips `open`. Children become the body.\n\n <baht-modal heading=\"Delete this workflow?\">\n <p>Steps and run history will be removed.</p>\n </baht-modal>\n modal.open = true;\n modal.addEventListener('baht-close', (e) => (modal.open = false));\n---\n\n\n### **Events:**\n - **baht-close**\n\n### **Methods:**\n - **requestClose(reason: _'escape' | 'scrim' | 'button'_): _void_** - Ask the host to close (the host owns `open`).",
|
|
583
|
+
"doc-url": "",
|
|
584
|
+
"attributes": [
|
|
585
|
+
{
|
|
586
|
+
"name": "open",
|
|
587
|
+
"value": { "type": "boolean", "default": "false" }
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"name": "heading",
|
|
591
|
+
"value": { "type": "string", "default": "''" }
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"name": "show-close",
|
|
595
|
+
"value": { "type": "boolean", "default": "true" }
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"name": "close-on-scrim",
|
|
599
|
+
"value": { "type": "boolean", "default": "true" }
|
|
600
|
+
}
|
|
601
|
+
],
|
|
602
|
+
"events": [{ "name": "baht-close", "type": "CustomEvent" }],
|
|
603
|
+
"js": {
|
|
604
|
+
"properties": [
|
|
605
|
+
{ "name": "open", "type": "boolean" },
|
|
606
|
+
{ "name": "heading", "type": "string" },
|
|
607
|
+
{ "name": "showClose", "type": "boolean" },
|
|
608
|
+
{ "name": "closeOnScrim", "type": "boolean" }
|
|
609
|
+
],
|
|
610
|
+
"events": [{ "name": "baht-close", "type": "CustomEvent" }]
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"name": "baht-multiselect",
|
|
615
|
+
"description": "Multi-pick rendered as a checkbox group; value = array of option keys.\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
616
|
+
"doc-url": "",
|
|
617
|
+
"attributes": [
|
|
618
|
+
{
|
|
619
|
+
"name": "disabled",
|
|
620
|
+
"value": { "type": "boolean", "default": "false" }
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"name": "readonly",
|
|
624
|
+
"value": { "type": "boolean", "default": "false" }
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"name": "required",
|
|
628
|
+
"value": { "type": "boolean", "default": "false" }
|
|
629
|
+
}
|
|
630
|
+
],
|
|
631
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
632
|
+
"js": {
|
|
633
|
+
"properties": [
|
|
634
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
635
|
+
{ "name": "value", "type": "unknown" },
|
|
636
|
+
{ "name": "disabled", "type": "boolean" },
|
|
637
|
+
{ "name": "readonly", "type": "boolean" },
|
|
638
|
+
{ "name": "required", "type": "boolean" },
|
|
639
|
+
{ "name": "error", "type": "string | null" }
|
|
640
|
+
],
|
|
641
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"name": "baht-number",
|
|
646
|
+
"description": "\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
647
|
+
"doc-url": "",
|
|
648
|
+
"attributes": [
|
|
649
|
+
{
|
|
650
|
+
"name": "disabled",
|
|
651
|
+
"value": { "type": "boolean", "default": "false" }
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"name": "readonly",
|
|
655
|
+
"value": { "type": "boolean", "default": "false" }
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"name": "required",
|
|
659
|
+
"value": { "type": "boolean", "default": "false" }
|
|
660
|
+
}
|
|
661
|
+
],
|
|
662
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
663
|
+
"js": {
|
|
664
|
+
"properties": [
|
|
665
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
666
|
+
{ "name": "value", "type": "unknown" },
|
|
667
|
+
{ "name": "disabled", "type": "boolean" },
|
|
668
|
+
{ "name": "readonly", "type": "boolean" },
|
|
669
|
+
{ "name": "required", "type": "boolean" },
|
|
670
|
+
{ "name": "error", "type": "string | null" }
|
|
671
|
+
],
|
|
672
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"name": "baht-otp",
|
|
677
|
+
"description": "One-time-code input: N boxes, auto-advance, backspace steps back, paste\ndistributes. Emits `baht-change { value }` per edit and `baht-complete { value }`\nwhen every box is filled.\n\n <baht-otp length=\"6\"></baht-otp>\n---\n\n\n### **Events:**\n - **baht-change**\n- **baht-complete**",
|
|
678
|
+
"doc-url": "",
|
|
679
|
+
"attributes": [
|
|
680
|
+
{ "name": "length", "value": { "type": "number", "default": "6" } },
|
|
681
|
+
{ "name": "value", "value": { "type": "string", "default": "''" } },
|
|
682
|
+
{
|
|
683
|
+
"name": "disabled",
|
|
684
|
+
"value": { "type": "boolean", "default": "false" }
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"name": "mode",
|
|
688
|
+
"description": "'numeric' restricts to digits; 'text' allows anything.",
|
|
689
|
+
"value": { "type": "'numeric' | 'text'", "default": "'numeric'" }
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"name": "label",
|
|
693
|
+
"description": "Accessible name for the group of boxes.",
|
|
694
|
+
"value": { "type": "string", "default": "'One-time code'" }
|
|
695
|
+
}
|
|
696
|
+
],
|
|
697
|
+
"events": [
|
|
698
|
+
{ "name": "baht-change", "type": "CustomEvent" },
|
|
699
|
+
{ "name": "baht-complete", "type": "CustomEvent" }
|
|
700
|
+
],
|
|
701
|
+
"js": {
|
|
702
|
+
"properties": [
|
|
703
|
+
{ "name": "length", "type": "number" },
|
|
704
|
+
{ "name": "value", "type": "string" },
|
|
705
|
+
{ "name": "disabled", "type": "boolean" },
|
|
706
|
+
{
|
|
707
|
+
"name": "mode",
|
|
708
|
+
"description": "'numeric' restricts to digits; 'text' allows anything.",
|
|
709
|
+
"type": "'numeric' | 'text'"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"name": "label",
|
|
713
|
+
"description": "Accessible name for the group of boxes.",
|
|
714
|
+
"type": "string"
|
|
715
|
+
}
|
|
716
|
+
],
|
|
717
|
+
"events": [
|
|
718
|
+
{ "name": "baht-change", "type": "CustomEvent" },
|
|
719
|
+
{ "name": "baht-complete", "type": "CustomEvent" }
|
|
720
|
+
]
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
"name": "baht-pagination",
|
|
725
|
+
"description": "Server-side pagination control: it never slices data — it only reports the\npage the user asked for via `baht-page-change`; the host fetches that page.\n\n <baht-pagination page=\"4\" total-pages=\"20\"></baht-pagination>\n <baht-pagination variant=\"compact\" page=\"1\" total-pages=\"3\"></baht-pagination>\n---\n\n\n### **Events:**\n - **baht-page-change**",
|
|
726
|
+
"doc-url": "",
|
|
727
|
+
"attributes": [
|
|
728
|
+
{ "name": "page", "value": { "type": "number", "default": "1" } },
|
|
729
|
+
{
|
|
730
|
+
"name": "total-pages",
|
|
731
|
+
"value": { "type": "number", "default": "1" }
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
"name": "variant",
|
|
735
|
+
"description": "'numbered' = 1 … 4 5 6 … 20 · 'compact' = « Page 4 of 20 »",
|
|
736
|
+
"value": {
|
|
737
|
+
"type": "'numbered' | 'compact'",
|
|
738
|
+
"default": "'numbered'"
|
|
739
|
+
}
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"name": "siblings",
|
|
743
|
+
"description": "Numbered pages shown on each side of the current page.",
|
|
744
|
+
"value": { "type": "number", "default": "1" }
|
|
745
|
+
}
|
|
746
|
+
],
|
|
747
|
+
"events": [{ "name": "baht-page-change", "type": "CustomEvent" }],
|
|
748
|
+
"js": {
|
|
749
|
+
"properties": [
|
|
750
|
+
{ "name": "page", "type": "number" },
|
|
751
|
+
{ "name": "totalPages", "type": "number" },
|
|
752
|
+
{
|
|
753
|
+
"name": "variant",
|
|
754
|
+
"description": "'numbered' = 1 … 4 5 6 … 20 · 'compact' = « Page 4 of 20 »",
|
|
755
|
+
"type": "'numbered' | 'compact'"
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"name": "siblings",
|
|
759
|
+
"description": "Numbered pages shown on each side of the current page.",
|
|
760
|
+
"type": "number"
|
|
761
|
+
}
|
|
762
|
+
],
|
|
763
|
+
"events": [{ "name": "baht-page-change", "type": "CustomEvent" }]
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
"name": "baht-progress",
|
|
768
|
+
"description": "Progress bar. `value` 0–100; omit (null) for indeterminate.\n\n <baht-progress value=\"65\" show-label></baht-progress>\n <baht-progress></baht-progress> <!-- indeterminate -->\n---\n",
|
|
769
|
+
"doc-url": "",
|
|
770
|
+
"attributes": [
|
|
771
|
+
{
|
|
772
|
+
"name": "value",
|
|
773
|
+
"value": { "type": "number | null", "default": "null" }
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"name": "tone",
|
|
777
|
+
"value": {
|
|
778
|
+
"type": "'primary' | 'success' | 'warning' | 'danger'",
|
|
779
|
+
"default": "'primary'"
|
|
780
|
+
}
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
"name": "show-label",
|
|
784
|
+
"value": { "type": "boolean", "default": "false" }
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"name": "label",
|
|
788
|
+
"description": "Accessible name for the progressbar.",
|
|
789
|
+
"value": { "type": "string", "default": "'Progress'" }
|
|
790
|
+
}
|
|
791
|
+
],
|
|
792
|
+
"events": [],
|
|
793
|
+
"js": {
|
|
794
|
+
"properties": [
|
|
795
|
+
{ "name": "value", "type": "number | null" },
|
|
796
|
+
{
|
|
797
|
+
"name": "tone",
|
|
798
|
+
"type": "'primary' | 'success' | 'warning' | 'danger'"
|
|
799
|
+
},
|
|
800
|
+
{ "name": "showLabel", "type": "boolean" },
|
|
801
|
+
{
|
|
802
|
+
"name": "label",
|
|
803
|
+
"description": "Accessible name for the progressbar.",
|
|
804
|
+
"type": "string"
|
|
805
|
+
}
|
|
806
|
+
],
|
|
807
|
+
"events": []
|
|
808
|
+
}
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
"name": "baht-radio",
|
|
812
|
+
"description": "\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
813
|
+
"doc-url": "",
|
|
814
|
+
"attributes": [
|
|
815
|
+
{
|
|
816
|
+
"name": "disabled",
|
|
817
|
+
"value": { "type": "boolean", "default": "false" }
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"name": "readonly",
|
|
821
|
+
"value": { "type": "boolean", "default": "false" }
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"name": "required",
|
|
825
|
+
"value": { "type": "boolean", "default": "false" }
|
|
826
|
+
}
|
|
827
|
+
],
|
|
828
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
829
|
+
"js": {
|
|
830
|
+
"properties": [
|
|
831
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
832
|
+
{ "name": "value", "type": "unknown" },
|
|
833
|
+
{ "name": "disabled", "type": "boolean" },
|
|
834
|
+
{ "name": "readonly", "type": "boolean" },
|
|
835
|
+
{ "name": "required", "type": "boolean" },
|
|
836
|
+
{ "name": "error", "type": "string | null" }
|
|
837
|
+
],
|
|
838
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
839
|
+
}
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"name": "baht-range",
|
|
843
|
+
"description": "Range slider. Controlled: emits `baht-change { value }` (a number) on input.\n\n <baht-range min=\"0\" max=\"100\" step=\"5\" value=\"40\" label=\"Retry limit\"></baht-range>\n---\n\n\n### **Events:**\n - **baht-change**",
|
|
844
|
+
"doc-url": "",
|
|
845
|
+
"attributes": [
|
|
846
|
+
{ "name": "value", "value": { "type": "number", "default": "0" } },
|
|
847
|
+
{ "name": "min", "value": { "type": "number", "default": "0" } },
|
|
848
|
+
{ "name": "max", "value": { "type": "number", "default": "100" } },
|
|
849
|
+
{ "name": "step", "value": { "type": "number", "default": "1" } },
|
|
850
|
+
{ "name": "label", "value": { "type": "string", "default": "''" } },
|
|
851
|
+
{
|
|
852
|
+
"name": "disabled",
|
|
853
|
+
"value": { "type": "boolean", "default": "false" }
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"name": "show-value",
|
|
857
|
+
"value": { "type": "boolean", "default": "true" }
|
|
858
|
+
}
|
|
859
|
+
],
|
|
860
|
+
"events": [{ "name": "baht-change", "type": "CustomEvent" }],
|
|
861
|
+
"js": {
|
|
862
|
+
"properties": [
|
|
863
|
+
{ "name": "value", "type": "number" },
|
|
864
|
+
{ "name": "min", "type": "number" },
|
|
865
|
+
{ "name": "max", "type": "number" },
|
|
866
|
+
{ "name": "step", "type": "number" },
|
|
867
|
+
{ "name": "label", "type": "string" },
|
|
868
|
+
{ "name": "disabled", "type": "boolean" },
|
|
869
|
+
{ "name": "showValue", "type": "boolean" }
|
|
870
|
+
],
|
|
871
|
+
"events": [{ "name": "baht-change", "type": "CustomEvent" }]
|
|
872
|
+
}
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
"name": "baht-rating",
|
|
876
|
+
"description": "Star rating. Controlled: emits `baht-change { value }`, host re-feeds `value`.\n\n <baht-rating value=\"3\" max=\"5\"></baht-rating>\n <baht-rating value=\"4\" readonly></baht-rating>\n---\n\n\n### **Events:**\n - **baht-change**",
|
|
877
|
+
"doc-url": "",
|
|
878
|
+
"attributes": [
|
|
879
|
+
{ "name": "value", "value": { "type": "number", "default": "0" } },
|
|
880
|
+
{ "name": "max", "value": { "type": "number", "default": "5" } },
|
|
881
|
+
{
|
|
882
|
+
"name": "readonly",
|
|
883
|
+
"value": { "type": "boolean", "default": "false" }
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"name": "label",
|
|
887
|
+
"description": "Accessible name for the radiogroup.",
|
|
888
|
+
"value": { "type": "string", "default": "'Rating'" }
|
|
889
|
+
}
|
|
890
|
+
],
|
|
891
|
+
"events": [{ "name": "baht-change", "type": "CustomEvent" }],
|
|
892
|
+
"js": {
|
|
893
|
+
"properties": [
|
|
894
|
+
{ "name": "value", "type": "number" },
|
|
895
|
+
{ "name": "max", "type": "number" },
|
|
896
|
+
{ "name": "readonly", "type": "boolean" },
|
|
897
|
+
{
|
|
898
|
+
"name": "label",
|
|
899
|
+
"description": "Accessible name for the radiogroup.",
|
|
900
|
+
"type": "string"
|
|
901
|
+
}
|
|
902
|
+
],
|
|
903
|
+
"events": [{ "name": "baht-change", "type": "CustomEvent" }]
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"name": "baht-select",
|
|
908
|
+
"description": "\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
909
|
+
"doc-url": "",
|
|
910
|
+
"attributes": [
|
|
911
|
+
{
|
|
912
|
+
"name": "disabled",
|
|
913
|
+
"value": { "type": "boolean", "default": "false" }
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"name": "readonly",
|
|
917
|
+
"value": { "type": "boolean", "default": "false" }
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"name": "required",
|
|
921
|
+
"value": { "type": "boolean", "default": "false" }
|
|
922
|
+
}
|
|
923
|
+
],
|
|
924
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
925
|
+
"js": {
|
|
926
|
+
"properties": [
|
|
927
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
928
|
+
{ "name": "value", "type": "unknown" },
|
|
929
|
+
{ "name": "disabled", "type": "boolean" },
|
|
930
|
+
{ "name": "readonly", "type": "boolean" },
|
|
931
|
+
{ "name": "required", "type": "boolean" },
|
|
932
|
+
{ "name": "error", "type": "string | null" }
|
|
933
|
+
],
|
|
934
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
935
|
+
}
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"name": "baht-skeleton",
|
|
939
|
+
"description": "Loading placeholder (opacity pulse — the 20baht system bans gradients in\ncore UI, so no shimmer).\n\n <baht-skeleton variant=\"text\" width=\"60%\"></baht-skeleton>\n <baht-skeleton variant=\"circle\" width=\"40px\" height=\"40px\"></baht-skeleton>\n <baht-skeleton height=\"120px\"></baht-skeleton>\n---\n",
|
|
940
|
+
"doc-url": "",
|
|
941
|
+
"attributes": [
|
|
942
|
+
{
|
|
943
|
+
"name": "variant",
|
|
944
|
+
"value": {
|
|
945
|
+
"type": "'rect' | 'text' | 'circle'",
|
|
946
|
+
"default": "'rect'"
|
|
947
|
+
}
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
"name": "width",
|
|
951
|
+
"value": { "type": "string", "default": "'100%'" }
|
|
952
|
+
},
|
|
953
|
+
{ "name": "height", "value": { "type": "string", "default": "''" } }
|
|
954
|
+
],
|
|
955
|
+
"events": [],
|
|
956
|
+
"js": {
|
|
957
|
+
"properties": [
|
|
958
|
+
{ "name": "variant", "type": "'rect' | 'text' | 'circle'" },
|
|
959
|
+
{ "name": "width", "type": "string" },
|
|
960
|
+
{ "name": "height", "type": "string" }
|
|
961
|
+
],
|
|
962
|
+
"events": []
|
|
963
|
+
}
|
|
964
|
+
},
|
|
965
|
+
{
|
|
966
|
+
"name": "baht-spinner",
|
|
967
|
+
"description": "Loading spinner — the single animated icon the 20baht system allows.\n\n <baht-spinner></baht-spinner>\n <baht-spinner size=\"lg\"></baht-spinner>\n---\n",
|
|
968
|
+
"doc-url": "",
|
|
969
|
+
"attributes": [
|
|
970
|
+
{
|
|
971
|
+
"name": "size",
|
|
972
|
+
"value": { "type": "'sm' | 'md' | 'lg'", "default": "'md'" }
|
|
973
|
+
},
|
|
974
|
+
{
|
|
975
|
+
"name": "label",
|
|
976
|
+
"value": { "type": "string", "default": "'Loading'" }
|
|
977
|
+
}
|
|
978
|
+
],
|
|
979
|
+
"events": [],
|
|
980
|
+
"js": {
|
|
981
|
+
"properties": [
|
|
982
|
+
{ "name": "size", "type": "'sm' | 'md' | 'lg'" },
|
|
983
|
+
{ "name": "label", "type": "string" }
|
|
984
|
+
],
|
|
985
|
+
"events": []
|
|
986
|
+
}
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
"name": "baht-table",
|
|
990
|
+
"description": "Server-side data table. `items` is ONE page of rows — the component never\nslices or fetches; on `baht-page-change` the host fetches the next page and\nre-feeds `items`/`page`. While that fetch runs, set `loading` to show\nskeleton rows.\n\n const t = document.querySelector('baht-table');\n t.columns = { name: 'Name', created_at: 'Created' };\n t.items = pageRows; // current page only\n t.loading = false; t.page = 1; t.totalPages = 12;\n t.addEventListener('baht-page-change', (e) => fetchPage(e.detail.page));\n t.addEventListener('baht-row-click', (e) => open(e.detail.id));\n---\n\n\n### **Events:**\n - **baht-row-click**",
|
|
991
|
+
"doc-url": "",
|
|
992
|
+
"attributes": [
|
|
993
|
+
{
|
|
994
|
+
"name": "loading",
|
|
995
|
+
"value": { "type": "boolean", "default": "false" }
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"name": "error",
|
|
999
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
"name": "error-message",
|
|
1003
|
+
"value": {
|
|
1004
|
+
"type": "string",
|
|
1005
|
+
"default": "\"Couldn't load data. Try again.\""
|
|
1006
|
+
}
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"name": "empty-message",
|
|
1010
|
+
"value": { "type": "string", "default": "'No records yet.'" }
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
"name": "show-index",
|
|
1014
|
+
"description": "Row-number column (No.). Offset lets numbering continue across pages.",
|
|
1015
|
+
"value": { "type": "boolean", "default": "true" }
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
"name": "index-offset",
|
|
1019
|
+
"value": { "type": "number", "default": "0" }
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
"name": "skeleton-rows",
|
|
1023
|
+
"value": { "type": "number", "default": "10" }
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
"name": "row-key",
|
|
1027
|
+
"description": "Which row key identifies a row in baht-row-click detail.id (e.g. 'group_id').",
|
|
1028
|
+
"value": { "type": "string", "default": "''" }
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
"name": "clickable",
|
|
1032
|
+
"description": "Rows emit baht-row-click + get hover/keyboard affordances.",
|
|
1033
|
+
"value": { "type": "boolean", "default": "true" }
|
|
1034
|
+
},
|
|
1035
|
+
{ "name": "page", "value": { "type": "number", "default": "1" } },
|
|
1036
|
+
{
|
|
1037
|
+
"name": "total-pages",
|
|
1038
|
+
"value": { "type": "number", "default": "1" }
|
|
1039
|
+
}
|
|
1040
|
+
],
|
|
1041
|
+
"events": [{ "name": "baht-row-click", "type": "CustomEvent" }],
|
|
1042
|
+
"js": {
|
|
1043
|
+
"properties": [
|
|
1044
|
+
{
|
|
1045
|
+
"name": "items",
|
|
1046
|
+
"description": "Rows of the CURRENT page.",
|
|
1047
|
+
"type": "Record<string, unknown>[]"
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
"name": "columns",
|
|
1051
|
+
"description": "column key -> display name; omitted = derive keys from the first row.",
|
|
1052
|
+
"type": "Record<string, string>"
|
|
1053
|
+
},
|
|
1054
|
+
{ "name": "loading", "type": "boolean" },
|
|
1055
|
+
{ "name": "error", "type": "boolean" },
|
|
1056
|
+
{ "name": "errorMessage", "type": "string" },
|
|
1057
|
+
{ "name": "emptyMessage", "type": "string" },
|
|
1058
|
+
{
|
|
1059
|
+
"name": "showIndex",
|
|
1060
|
+
"description": "Row-number column (No.). Offset lets numbering continue across pages.",
|
|
1061
|
+
"type": "boolean"
|
|
1062
|
+
},
|
|
1063
|
+
{ "name": "indexOffset", "type": "number" },
|
|
1064
|
+
{ "name": "skeletonRows", "type": "number" },
|
|
1065
|
+
{
|
|
1066
|
+
"name": "rowKey",
|
|
1067
|
+
"description": "Which row key identifies a row in baht-row-click detail.id (e.g. 'group_id').",
|
|
1068
|
+
"type": "string"
|
|
1069
|
+
},
|
|
1070
|
+
{
|
|
1071
|
+
"name": "clickable",
|
|
1072
|
+
"description": "Rows emit baht-row-click + get hover/keyboard affordances.",
|
|
1073
|
+
"type": "boolean"
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
"name": "renderers",
|
|
1077
|
+
"description": "Custom cell renderers by column key (functions — a property, never JSON).",
|
|
1078
|
+
"type": "Record<string, CellRenderer>"
|
|
1079
|
+
},
|
|
1080
|
+
{ "name": "page", "type": "number" },
|
|
1081
|
+
{ "name": "totalPages", "type": "number" }
|
|
1082
|
+
],
|
|
1083
|
+
"events": [{ "name": "baht-row-click", "type": "CustomEvent" }]
|
|
1084
|
+
}
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
"name": "baht-text",
|
|
1088
|
+
"description": "Static text block (`type: \"label\"`): no value, no emits.\n---\n",
|
|
1089
|
+
"doc-url": "",
|
|
1090
|
+
"attributes": [],
|
|
1091
|
+
"events": [],
|
|
1092
|
+
"js": {
|
|
1093
|
+
"properties": [{ "name": "field", "type": "FieldDescriptor" }],
|
|
1094
|
+
"events": []
|
|
1095
|
+
}
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"name": "baht-textarea",
|
|
1099
|
+
"description": "\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
1100
|
+
"doc-url": "",
|
|
1101
|
+
"attributes": [
|
|
1102
|
+
{
|
|
1103
|
+
"name": "disabled",
|
|
1104
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1105
|
+
},
|
|
1106
|
+
{
|
|
1107
|
+
"name": "readonly",
|
|
1108
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
"name": "required",
|
|
1112
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1113
|
+
}
|
|
1114
|
+
],
|
|
1115
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
1116
|
+
"js": {
|
|
1117
|
+
"properties": [
|
|
1118
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
1119
|
+
{ "name": "value", "type": "unknown" },
|
|
1120
|
+
{ "name": "disabled", "type": "boolean" },
|
|
1121
|
+
{ "name": "readonly", "type": "boolean" },
|
|
1122
|
+
{ "name": "required", "type": "boolean" },
|
|
1123
|
+
{ "name": "error", "type": "string | null" }
|
|
1124
|
+
],
|
|
1125
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
1126
|
+
}
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"name": "baht-timeline",
|
|
1130
|
+
"description": "Vertical timeline (run history, audit log).\n\n el.items = [\n { title: 'Run started', time: '09:12', tone: 'muted' },\n { title: 'Webhook sent', time: '09:12' },\n { title: 'Failed', description: \"Couldn't reach the webhook.\", time: '09:13', tone: 'danger' },\n ];\n---\n",
|
|
1131
|
+
"doc-url": "",
|
|
1132
|
+
"attributes": [],
|
|
1133
|
+
"events": [],
|
|
1134
|
+
"js": {
|
|
1135
|
+
"properties": [{ "name": "items", "type": "TimelineItem[]" }],
|
|
1136
|
+
"events": []
|
|
1137
|
+
}
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"name": "baht-toast",
|
|
1141
|
+
"description": "Toast host — put ONE <baht-toast> on the page and call show():\n\n const toast = document.querySelector('baht-toast');\n toast.show({ message: 'Saved.', tone: 'success' });\n\nCopy: short and dry (\"Saved.\", not \"Successfully saved your changes!\").\n---\n\n\n### **Events:**\n - **baht-dismiss**",
|
|
1142
|
+
"doc-url": "",
|
|
1143
|
+
"attributes": [
|
|
1144
|
+
{
|
|
1145
|
+
"name": "duration",
|
|
1146
|
+
"description": "Default auto-dismiss (ms) when show() gets no duration.",
|
|
1147
|
+
"value": { "type": "number", "default": "4000" }
|
|
1148
|
+
}
|
|
1149
|
+
],
|
|
1150
|
+
"events": [{ "name": "baht-dismiss", "type": "CustomEvent" }],
|
|
1151
|
+
"js": {
|
|
1152
|
+
"properties": [
|
|
1153
|
+
{
|
|
1154
|
+
"name": "duration",
|
|
1155
|
+
"description": "Default auto-dismiss (ms) when show() gets no duration.",
|
|
1156
|
+
"type": "number"
|
|
1157
|
+
}
|
|
1158
|
+
],
|
|
1159
|
+
"events": [{ "name": "baht-dismiss", "type": "CustomEvent" }]
|
|
1160
|
+
}
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"name": "baht-toggle",
|
|
1164
|
+
"description": "\n---\n\n\n### **Events:**\n - **baht-input**\n\n### **Methods:**\n ",
|
|
1165
|
+
"doc-url": "",
|
|
1166
|
+
"attributes": [
|
|
1167
|
+
{
|
|
1168
|
+
"name": "disabled",
|
|
1169
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
"name": "readonly",
|
|
1173
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1174
|
+
},
|
|
1175
|
+
{
|
|
1176
|
+
"name": "required",
|
|
1177
|
+
"value": { "type": "boolean", "default": "false" }
|
|
1178
|
+
}
|
|
1179
|
+
],
|
|
1180
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }],
|
|
1181
|
+
"js": {
|
|
1182
|
+
"properties": [
|
|
1183
|
+
{ "name": "field", "type": "FieldDescriptor" },
|
|
1184
|
+
{ "name": "value", "type": "unknown" },
|
|
1185
|
+
{ "name": "disabled", "type": "boolean" },
|
|
1186
|
+
{ "name": "readonly", "type": "boolean" },
|
|
1187
|
+
{ "name": "required", "type": "boolean" },
|
|
1188
|
+
{ "name": "error", "type": "string | null" }
|
|
1189
|
+
],
|
|
1190
|
+
"events": [{ "name": "baht-input", "type": "CustomEvent" }]
|
|
1191
|
+
}
|
|
1192
|
+
},
|
|
1193
|
+
{
|
|
1194
|
+
"name": "baht-tooltip",
|
|
1195
|
+
"description": "Hover/focus tooltip. Wraps its children; pure CSS show/hide (120ms fade).\nEscape hides it without moving focus (WCAG 1.4.13); it re-arms on leave/blur.\n\n <baht-tooltip text=\"Posted as JSON when the trigger fires\">\n <baht-button variant=\"ghost\" label=\"?\"></baht-button>\n </baht-tooltip>\n---\n",
|
|
1196
|
+
"doc-url": "",
|
|
1197
|
+
"attributes": [
|
|
1198
|
+
{ "name": "text", "value": { "type": "string", "default": "''" } },
|
|
1199
|
+
{
|
|
1200
|
+
"name": "position",
|
|
1201
|
+
"value": {
|
|
1202
|
+
"type": "'top' | 'bottom' | 'left' | 'right'",
|
|
1203
|
+
"default": "'top'"
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1206
|
+
],
|
|
1207
|
+
"events": [],
|
|
1208
|
+
"js": {
|
|
1209
|
+
"properties": [
|
|
1210
|
+
{ "name": "text", "type": "string" },
|
|
1211
|
+
{
|
|
1212
|
+
"name": "position",
|
|
1213
|
+
"type": "'top' | 'bottom' | 'left' | 'right'"
|
|
1214
|
+
}
|
|
1215
|
+
],
|
|
1216
|
+
"events": []
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
]
|
|
1220
|
+
},
|
|
1221
|
+
"css": {
|
|
1222
|
+
"properties": [],
|
|
1223
|
+
"pseudo-elements": []
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
}
|