@kubuild/components 0.2.0 → 0.3.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/dist/blocks/forms.d.ts +6 -0
- package/dist/blocks/forms.d.ts.map +1 -0
- package/dist/blocks/index.cjs +1661 -0
- package/dist/blocks/index.cjs.map +1 -0
- package/dist/blocks/index.d.ts +11 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +15 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/blocks/layout.d.ts +6 -0
- package/dist/blocks/layout.d.ts.map +1 -0
- package/dist/blocks/sections.d.ts +6 -0
- package/dist/blocks/sections.d.ts.map +1 -0
- package/dist/{blocks.d.ts → blocks/types.d.ts} +2 -5
- package/dist/blocks/types.d.ts.map +1 -0
- package/dist/chunk-JTQ35OQQ.js +1631 -0
- package/dist/chunk-JTQ35OQQ.js.map +1 -0
- package/dist/chunk-K6I6U7F3.js +2707 -0
- package/dist/chunk-K6I6U7F3.js.map +1 -0
- package/dist/chunk-OK53DS7G.js +911 -0
- package/dist/chunk-OK53DS7G.js.map +1 -0
- package/dist/definitions/constants.d.ts +10 -0
- package/dist/definitions/constants.d.ts.map +1 -0
- package/dist/definitions/data/collection.d.ts +3 -0
- package/dist/definitions/data/collection.d.ts.map +1 -0
- package/dist/definitions/data/index.d.ts +4 -0
- package/dist/definitions/data/index.d.ts.map +1 -0
- package/dist/definitions/data/list.d.ts +4 -0
- package/dist/definitions/data/list.d.ts.map +1 -0
- package/dist/definitions/data/table.d.ts +5 -0
- package/dist/definitions/data/table.d.ts.map +1 -0
- package/dist/definitions/form/button.d.ts +4 -0
- package/dist/definitions/form/button.d.ts.map +1 -0
- package/dist/definitions/form/checkbox.d.ts +3 -0
- package/dist/definitions/form/checkbox.d.ts.map +1 -0
- package/dist/definitions/form/file-upload.d.ts +3 -0
- package/dist/definitions/form/file-upload.d.ts.map +1 -0
- package/dist/definitions/form/form.d.ts +3 -0
- package/dist/definitions/form/form.d.ts.map +1 -0
- package/dist/definitions/form/index.d.ts +10 -0
- package/dist/definitions/form/index.d.ts.map +1 -0
- package/dist/definitions/form/input.d.ts +3 -0
- package/dist/definitions/form/input.d.ts.map +1 -0
- package/dist/definitions/form/radio.d.ts +5 -0
- package/dist/definitions/form/radio.d.ts.map +1 -0
- package/dist/definitions/form/select.d.ts +3 -0
- package/dist/definitions/form/select.d.ts.map +1 -0
- package/dist/definitions/form/switch.d.ts +3 -0
- package/dist/definitions/form/switch.d.ts.map +1 -0
- package/dist/definitions/form/textarea.d.ts +3 -0
- package/dist/definitions/form/textarea.d.ts.map +1 -0
- package/dist/definitions/index.cjs +3512 -0
- package/dist/definitions/index.cjs.map +1 -0
- package/dist/definitions/index.d.ts +12 -0
- package/dist/definitions/index.d.ts.map +1 -0
- package/dist/definitions/index.js +90 -0
- package/dist/definitions/index.js.map +1 -0
- package/dist/definitions/interactive/collapsible.d.ts +3 -0
- package/dist/definitions/interactive/collapsible.d.ts.map +1 -0
- package/dist/definitions/interactive/drawer.d.ts +3 -0
- package/dist/definitions/interactive/drawer.d.ts.map +1 -0
- package/dist/definitions/interactive/index.d.ts +4 -0
- package/dist/definitions/interactive/index.d.ts.map +1 -0
- package/dist/definitions/interactive/modal.d.ts +3 -0
- package/dist/definitions/interactive/modal.d.ts.map +1 -0
- package/dist/definitions/layout/columns.d.ts +3 -0
- package/dist/definitions/layout/columns.d.ts.map +1 -0
- package/dist/definitions/layout/container.d.ts +3 -0
- package/dist/definitions/layout/container.d.ts.map +1 -0
- package/dist/definitions/layout/flex.d.ts +7 -0
- package/dist/definitions/layout/flex.d.ts.map +1 -0
- package/dist/definitions/layout/grid.d.ts +7 -0
- package/dist/definitions/layout/grid.d.ts.map +1 -0
- package/dist/definitions/layout/index.d.ts +7 -0
- package/dist/definitions/layout/index.d.ts.map +1 -0
- package/dist/definitions/layout/page.d.ts +3 -0
- package/dist/definitions/layout/page.d.ts.map +1 -0
- package/dist/definitions/layout/section.d.ts +3 -0
- package/dist/definitions/layout/section.d.ts.map +1 -0
- package/dist/definitions/media/html-embed.d.ts +3 -0
- package/dist/definitions/media/html-embed.d.ts.map +1 -0
- package/dist/definitions/media/icon.d.ts +3 -0
- package/dist/definitions/media/icon.d.ts.map +1 -0
- package/dist/definitions/media/image.d.ts +3 -0
- package/dist/definitions/media/image.d.ts.map +1 -0
- package/dist/definitions/media/index.d.ts +5 -0
- package/dist/definitions/media/index.d.ts.map +1 -0
- package/dist/definitions/media/video.d.ts +3 -0
- package/dist/definitions/media/video.d.ts.map +1 -0
- package/dist/definitions/types.d.ts +5 -0
- package/dist/definitions/types.d.ts.map +1 -0
- package/dist/definitions/typography/badge.d.ts +3 -0
- package/dist/definitions/typography/badge.d.ts.map +1 -0
- package/dist/definitions/typography/blockquote.d.ts +3 -0
- package/dist/definitions/typography/blockquote.d.ts.map +1 -0
- package/dist/definitions/typography/code-block.d.ts +3 -0
- package/dist/definitions/typography/code-block.d.ts.map +1 -0
- package/dist/definitions/typography/heading.d.ts +3 -0
- package/dist/definitions/typography/heading.d.ts.map +1 -0
- package/dist/definitions/typography/index.d.ts +8 -0
- package/dist/definitions/typography/index.d.ts.map +1 -0
- package/dist/definitions/typography/link.d.ts +3 -0
- package/dist/definitions/typography/link.d.ts.map +1 -0
- package/dist/definitions/typography/paragraph.d.ts +3 -0
- package/dist/definitions/typography/paragraph.d.ts.map +1 -0
- package/dist/definitions/typography/text.d.ts +3 -0
- package/dist/definitions/typography/text.d.ts.map +1 -0
- package/dist/index.cjs +1568 -814
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +120 -4332
- package/dist/index.js.map +1 -1
- package/dist/traits/common.d.ts +8 -0
- package/dist/traits/common.d.ts.map +1 -0
- package/dist/{traits.d.ts → traits/form.d.ts} +2 -109
- package/dist/traits/form.d.ts.map +1 -0
- package/dist/traits/index.cjs +998 -0
- package/dist/traits/index.cjs.map +1 -0
- package/dist/traits/index.d.ts +7 -0
- package/dist/traits/index.d.ts.map +1 -0
- package/dist/traits/index.js +129 -0
- package/dist/traits/index.js.map +1 -0
- package/dist/traits/link.d.ts +8 -0
- package/dist/traits/link.d.ts.map +1 -0
- package/dist/traits/media.d.ts +18 -0
- package/dist/traits/media.d.ts.map +1 -0
- package/dist/traits/structure.d.ts +10 -0
- package/dist/traits/structure.d.ts.map +1 -0
- package/dist/traits/types.d.ts +69 -0
- package/dist/traits/types.d.ts.map +1 -0
- package/package.json +20 -4
- package/dist/blocks.d.ts.map +0 -1
- package/dist/definitions.d.ts +0 -37
- package/dist/definitions.d.ts.map +0 -1
- package/dist/traits.d.ts.map +0 -1
|
@@ -0,0 +1,911 @@
|
|
|
1
|
+
// src/traits/types.ts
|
|
2
|
+
var TRAIT_GROUP_ORDER = [
|
|
3
|
+
"identity",
|
|
4
|
+
"link",
|
|
5
|
+
"media",
|
|
6
|
+
"form",
|
|
7
|
+
"behavior",
|
|
8
|
+
"semantic",
|
|
9
|
+
"accessibility"
|
|
10
|
+
];
|
|
11
|
+
var TRAIT_GROUP_LABELS = {
|
|
12
|
+
identity: "Identity",
|
|
13
|
+
link: "Link",
|
|
14
|
+
media: "Media",
|
|
15
|
+
form: "Form",
|
|
16
|
+
behavior: "Behavior",
|
|
17
|
+
semantic: "Semantic",
|
|
18
|
+
accessibility: "Accessibility"
|
|
19
|
+
};
|
|
20
|
+
function withOverrides(base, overrides) {
|
|
21
|
+
return overrides ? { ...base, ...overrides } : base;
|
|
22
|
+
}
|
|
23
|
+
function sortTraits(traits) {
|
|
24
|
+
const groupRank = (group) => {
|
|
25
|
+
if (!group) return Number.MAX_SAFE_INTEGER;
|
|
26
|
+
const idx = TRAIT_GROUP_ORDER.indexOf(group);
|
|
27
|
+
return idx === -1 ? Number.MAX_SAFE_INTEGER : idx;
|
|
28
|
+
};
|
|
29
|
+
return [...traits].sort((a, b) => groupRank(a.group) - groupRank(b.group));
|
|
30
|
+
}
|
|
31
|
+
function collectTraitNames(traitsList) {
|
|
32
|
+
const names = /* @__PURE__ */ new Set();
|
|
33
|
+
for (const traits of traitsList) {
|
|
34
|
+
for (const trait of traits) {
|
|
35
|
+
names.add(trait.name);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return Array.from(names);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// src/traits/common.ts
|
|
42
|
+
function idTrait(overrides) {
|
|
43
|
+
return withOverrides(
|
|
44
|
+
{
|
|
45
|
+
name: "id",
|
|
46
|
+
label: "Element ID",
|
|
47
|
+
type: "string",
|
|
48
|
+
attribute: "id",
|
|
49
|
+
group: "identity",
|
|
50
|
+
description: "A custom, document-unique identifier used for anchors, CSS, and scripting."
|
|
51
|
+
},
|
|
52
|
+
overrides
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
function titleTrait(overrides) {
|
|
56
|
+
return withOverrides(
|
|
57
|
+
{
|
|
58
|
+
name: "title",
|
|
59
|
+
label: "Title",
|
|
60
|
+
type: "string",
|
|
61
|
+
attribute: "title",
|
|
62
|
+
group: "semantic",
|
|
63
|
+
description: "Advisory title for the element (tooltip / document title)."
|
|
64
|
+
},
|
|
65
|
+
overrides
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
function ariaLabelTrait(overrides) {
|
|
69
|
+
return withOverrides(
|
|
70
|
+
{
|
|
71
|
+
name: "ariaLabel",
|
|
72
|
+
label: "Accessible Label (aria-label)",
|
|
73
|
+
type: "string",
|
|
74
|
+
attribute: "aria-label",
|
|
75
|
+
group: "accessibility",
|
|
76
|
+
description: "Accessible name for assistive technology when no visible label exists."
|
|
77
|
+
},
|
|
78
|
+
overrides
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// src/traits/link.ts
|
|
83
|
+
function hrefTrait(overrides) {
|
|
84
|
+
return withOverrides(
|
|
85
|
+
{
|
|
86
|
+
name: "href",
|
|
87
|
+
label: "Link URL",
|
|
88
|
+
type: "string",
|
|
89
|
+
defaultValue: "#",
|
|
90
|
+
attribute: "href",
|
|
91
|
+
group: "link",
|
|
92
|
+
description: "The destination URL the element navigates to when activated."
|
|
93
|
+
},
|
|
94
|
+
overrides
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
function targetTrait(overrides) {
|
|
98
|
+
return withOverrides(
|
|
99
|
+
{
|
|
100
|
+
name: "target",
|
|
101
|
+
label: "Open In",
|
|
102
|
+
type: "select",
|
|
103
|
+
defaultValue: "_self",
|
|
104
|
+
attribute: "target",
|
|
105
|
+
group: "link",
|
|
106
|
+
options: [
|
|
107
|
+
{ label: "Same tab (_self)", value: "_self" },
|
|
108
|
+
{ label: "New tab (_blank)", value: "_blank" },
|
|
109
|
+
{ label: "Parent frame (_parent)", value: "_parent" },
|
|
110
|
+
{ label: "Top frame (_top)", value: "_top" }
|
|
111
|
+
],
|
|
112
|
+
description: "Where the linked resource should open."
|
|
113
|
+
},
|
|
114
|
+
overrides
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
function relTrait(overrides) {
|
|
118
|
+
return withOverrides(
|
|
119
|
+
{
|
|
120
|
+
name: "rel",
|
|
121
|
+
label: "Relationship (rel)",
|
|
122
|
+
type: "string",
|
|
123
|
+
defaultValue: "",
|
|
124
|
+
attribute: "rel",
|
|
125
|
+
group: "link",
|
|
126
|
+
description: 'Space-separated relationship tokens (e.g. "noopener noreferrer").'
|
|
127
|
+
},
|
|
128
|
+
overrides
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// src/traits/media.ts
|
|
133
|
+
function srcTrait(overrides) {
|
|
134
|
+
return withOverrides(
|
|
135
|
+
{
|
|
136
|
+
name: "src",
|
|
137
|
+
label: "Source URL",
|
|
138
|
+
type: "string",
|
|
139
|
+
attribute: "src",
|
|
140
|
+
group: "media",
|
|
141
|
+
required: true,
|
|
142
|
+
description: "The source URL of the media resource."
|
|
143
|
+
},
|
|
144
|
+
overrides
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
function altTrait(overrides) {
|
|
148
|
+
return withOverrides(
|
|
149
|
+
{
|
|
150
|
+
name: "alt",
|
|
151
|
+
label: "Alt Text",
|
|
152
|
+
type: "string",
|
|
153
|
+
attribute: "alt",
|
|
154
|
+
group: "accessibility",
|
|
155
|
+
required: true,
|
|
156
|
+
description: "Alternative text describing the media for screen readers and fallback."
|
|
157
|
+
},
|
|
158
|
+
overrides
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
function posterTrait(overrides) {
|
|
162
|
+
return withOverrides(
|
|
163
|
+
{
|
|
164
|
+
name: "poster",
|
|
165
|
+
label: "Poster Image URL",
|
|
166
|
+
type: "string",
|
|
167
|
+
attribute: "poster",
|
|
168
|
+
group: "media",
|
|
169
|
+
description: "A preview image shown before the video starts playing."
|
|
170
|
+
},
|
|
171
|
+
overrides
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
function controlsTrait(overrides) {
|
|
175
|
+
return withOverrides(
|
|
176
|
+
{
|
|
177
|
+
name: "controls",
|
|
178
|
+
label: "Show Controls",
|
|
179
|
+
type: "boolean",
|
|
180
|
+
defaultValue: true,
|
|
181
|
+
attribute: "controls",
|
|
182
|
+
group: "media",
|
|
183
|
+
description: "Whether to show the native play/pause/volume controls."
|
|
184
|
+
},
|
|
185
|
+
overrides
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
function autoplayTrait(overrides) {
|
|
189
|
+
return withOverrides(
|
|
190
|
+
{
|
|
191
|
+
name: "autoplay",
|
|
192
|
+
label: "Autoplay",
|
|
193
|
+
type: "boolean",
|
|
194
|
+
defaultValue: false,
|
|
195
|
+
attribute: "autoplay",
|
|
196
|
+
group: "media",
|
|
197
|
+
description: "Whether the media starts playing automatically on load."
|
|
198
|
+
},
|
|
199
|
+
overrides
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
function loopTrait(overrides) {
|
|
203
|
+
return withOverrides(
|
|
204
|
+
{
|
|
205
|
+
name: "loop",
|
|
206
|
+
label: "Loop",
|
|
207
|
+
type: "boolean",
|
|
208
|
+
defaultValue: false,
|
|
209
|
+
attribute: "loop",
|
|
210
|
+
group: "media",
|
|
211
|
+
description: "Whether the media restarts automatically when it reaches the end."
|
|
212
|
+
},
|
|
213
|
+
overrides
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
function mutedTrait(overrides) {
|
|
217
|
+
return withOverrides(
|
|
218
|
+
{
|
|
219
|
+
name: "muted",
|
|
220
|
+
label: "Muted",
|
|
221
|
+
type: "boolean",
|
|
222
|
+
defaultValue: false,
|
|
223
|
+
attribute: "muted",
|
|
224
|
+
group: "media",
|
|
225
|
+
description: "Whether the media starts with the audio muted."
|
|
226
|
+
},
|
|
227
|
+
overrides
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
function loadingTrait(overrides) {
|
|
231
|
+
return withOverrides(
|
|
232
|
+
{
|
|
233
|
+
name: "loading",
|
|
234
|
+
label: "Loading Mode",
|
|
235
|
+
type: "select",
|
|
236
|
+
defaultValue: "lazy",
|
|
237
|
+
attribute: "loading",
|
|
238
|
+
group: "media",
|
|
239
|
+
options: [
|
|
240
|
+
{ label: "Lazy (load when near viewport)", value: "lazy" },
|
|
241
|
+
{ label: "Eager (load immediately)", value: "eager" }
|
|
242
|
+
],
|
|
243
|
+
description: "Native loading hint: lazy defers offscreen images, eager loads immediately."
|
|
244
|
+
},
|
|
245
|
+
overrides
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// src/traits/structure.ts
|
|
250
|
+
function citeTrait(overrides) {
|
|
251
|
+
return withOverrides(
|
|
252
|
+
{
|
|
253
|
+
name: "cite",
|
|
254
|
+
label: "Citation URL (cite)",
|
|
255
|
+
type: "string",
|
|
256
|
+
attribute: "cite",
|
|
257
|
+
group: "semantic",
|
|
258
|
+
description: "The URL of the source document the quote is taken from."
|
|
259
|
+
},
|
|
260
|
+
overrides
|
|
261
|
+
);
|
|
262
|
+
}
|
|
263
|
+
function colSpanTrait(overrides) {
|
|
264
|
+
return withOverrides(
|
|
265
|
+
{
|
|
266
|
+
name: "colSpan",
|
|
267
|
+
label: "Column Span (colSpan)",
|
|
268
|
+
type: "number",
|
|
269
|
+
defaultValue: 1,
|
|
270
|
+
attribute: "colspan",
|
|
271
|
+
group: "semantic",
|
|
272
|
+
description: "The number of columns the cell spans."
|
|
273
|
+
},
|
|
274
|
+
overrides
|
|
275
|
+
);
|
|
276
|
+
}
|
|
277
|
+
function rowSpanTrait(overrides) {
|
|
278
|
+
return withOverrides(
|
|
279
|
+
{
|
|
280
|
+
name: "rowSpan",
|
|
281
|
+
label: "Row Span (rowSpan)",
|
|
282
|
+
type: "number",
|
|
283
|
+
defaultValue: 1,
|
|
284
|
+
attribute: "rowspan",
|
|
285
|
+
group: "semantic",
|
|
286
|
+
description: "The number of rows the cell spans."
|
|
287
|
+
},
|
|
288
|
+
overrides
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
function tagTrait(overrides) {
|
|
292
|
+
return withOverrides(
|
|
293
|
+
{
|
|
294
|
+
name: "tag",
|
|
295
|
+
label: "HTML Tag",
|
|
296
|
+
type: "select",
|
|
297
|
+
attribute: "tag",
|
|
298
|
+
group: "semantic",
|
|
299
|
+
description: "The semantic HTML tag the component renders as."
|
|
300
|
+
},
|
|
301
|
+
overrides
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// src/traits/form.ts
|
|
306
|
+
function placeholderTrait(overrides) {
|
|
307
|
+
return withOverrides(
|
|
308
|
+
{
|
|
309
|
+
name: "placeholder",
|
|
310
|
+
label: "Placeholder",
|
|
311
|
+
type: "string",
|
|
312
|
+
attribute: "placeholder",
|
|
313
|
+
group: "form",
|
|
314
|
+
description: "Hint text shown inside the control when it is empty."
|
|
315
|
+
},
|
|
316
|
+
overrides
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
function fieldNameTrait(overrides) {
|
|
320
|
+
return withOverrides(
|
|
321
|
+
{
|
|
322
|
+
name: "name",
|
|
323
|
+
label: "Field Name",
|
|
324
|
+
type: "string",
|
|
325
|
+
attribute: "name",
|
|
326
|
+
group: "form",
|
|
327
|
+
required: true,
|
|
328
|
+
description: "The name submitted with the form data for this field."
|
|
329
|
+
},
|
|
330
|
+
overrides
|
|
331
|
+
);
|
|
332
|
+
}
|
|
333
|
+
function requiredTrait(overrides) {
|
|
334
|
+
return withOverrides(
|
|
335
|
+
{
|
|
336
|
+
name: "required",
|
|
337
|
+
label: "Required",
|
|
338
|
+
type: "boolean",
|
|
339
|
+
defaultValue: false,
|
|
340
|
+
attribute: "required",
|
|
341
|
+
group: "form",
|
|
342
|
+
description: "Whether the field must be filled before the form can be submitted."
|
|
343
|
+
},
|
|
344
|
+
overrides
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
function disabledTrait(overrides) {
|
|
348
|
+
return withOverrides(
|
|
349
|
+
{
|
|
350
|
+
name: "disabled",
|
|
351
|
+
label: "Disabled",
|
|
352
|
+
type: "boolean",
|
|
353
|
+
defaultValue: false,
|
|
354
|
+
attribute: "disabled",
|
|
355
|
+
group: "behavior",
|
|
356
|
+
description: "Disables the control so it cannot be focused or activated."
|
|
357
|
+
},
|
|
358
|
+
overrides
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
function readOnlyTrait(overrides) {
|
|
362
|
+
return withOverrides(
|
|
363
|
+
{
|
|
364
|
+
name: "readOnly",
|
|
365
|
+
label: "Read Only",
|
|
366
|
+
type: "boolean",
|
|
367
|
+
defaultValue: false,
|
|
368
|
+
attribute: "readonly",
|
|
369
|
+
group: "behavior",
|
|
370
|
+
description: "Prevents the user from modifying the control value."
|
|
371
|
+
},
|
|
372
|
+
overrides
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
function actionTrait(overrides) {
|
|
376
|
+
return withOverrides(
|
|
377
|
+
{
|
|
378
|
+
name: "action",
|
|
379
|
+
label: "Action URL",
|
|
380
|
+
type: "string",
|
|
381
|
+
attribute: "action",
|
|
382
|
+
group: "form",
|
|
383
|
+
description: "The URL the form data is submitted to."
|
|
384
|
+
},
|
|
385
|
+
overrides
|
|
386
|
+
);
|
|
387
|
+
}
|
|
388
|
+
function methodTrait(overrides) {
|
|
389
|
+
return withOverrides(
|
|
390
|
+
{
|
|
391
|
+
name: "method",
|
|
392
|
+
label: "Method",
|
|
393
|
+
type: "select",
|
|
394
|
+
defaultValue: "POST",
|
|
395
|
+
attribute: "method",
|
|
396
|
+
group: "form",
|
|
397
|
+
options: [
|
|
398
|
+
{ label: "POST", value: "POST" },
|
|
399
|
+
{ label: "GET", value: "GET" }
|
|
400
|
+
],
|
|
401
|
+
description: "The HTTP method used to submit the form."
|
|
402
|
+
},
|
|
403
|
+
overrides
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
function autoCompleteTrait(overrides) {
|
|
407
|
+
return withOverrides(
|
|
408
|
+
{
|
|
409
|
+
name: "autoComplete",
|
|
410
|
+
label: "Auto Complete",
|
|
411
|
+
type: "select",
|
|
412
|
+
defaultValue: "on",
|
|
413
|
+
attribute: "autocomplete",
|
|
414
|
+
group: "form",
|
|
415
|
+
options: [
|
|
416
|
+
{ label: "On", value: "on" },
|
|
417
|
+
{ label: "Off", value: "off" }
|
|
418
|
+
],
|
|
419
|
+
description: "Whether the browser may autofill values for this form."
|
|
420
|
+
},
|
|
421
|
+
overrides
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
function valueTrait(overrides) {
|
|
425
|
+
return withOverrides(
|
|
426
|
+
{
|
|
427
|
+
name: "value",
|
|
428
|
+
label: "Value",
|
|
429
|
+
type: "string",
|
|
430
|
+
attribute: "value",
|
|
431
|
+
group: "form",
|
|
432
|
+
description: "The value submitted with the form data when the control is selected."
|
|
433
|
+
},
|
|
434
|
+
overrides
|
|
435
|
+
);
|
|
436
|
+
}
|
|
437
|
+
function defaultCheckedTrait(overrides) {
|
|
438
|
+
return withOverrides(
|
|
439
|
+
{
|
|
440
|
+
name: "defaultChecked",
|
|
441
|
+
label: "Default Checked",
|
|
442
|
+
type: "boolean",
|
|
443
|
+
defaultValue: false,
|
|
444
|
+
attribute: "checked",
|
|
445
|
+
group: "form",
|
|
446
|
+
description: "Whether the control starts in the checked state."
|
|
447
|
+
},
|
|
448
|
+
overrides
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
function defaultValueTrait(overrides) {
|
|
452
|
+
return withOverrides(
|
|
453
|
+
{
|
|
454
|
+
name: "defaultValue",
|
|
455
|
+
label: "Default Value",
|
|
456
|
+
type: "string",
|
|
457
|
+
attribute: "value",
|
|
458
|
+
group: "form",
|
|
459
|
+
description: "The initial value of the control before the user edits it."
|
|
460
|
+
},
|
|
461
|
+
overrides
|
|
462
|
+
);
|
|
463
|
+
}
|
|
464
|
+
function rowsTrait(overrides) {
|
|
465
|
+
return withOverrides(
|
|
466
|
+
{
|
|
467
|
+
name: "rows",
|
|
468
|
+
label: "Rows",
|
|
469
|
+
type: "number",
|
|
470
|
+
defaultValue: 4,
|
|
471
|
+
attribute: "rows",
|
|
472
|
+
group: "form",
|
|
473
|
+
description: "The number of visible text lines in the textarea."
|
|
474
|
+
},
|
|
475
|
+
overrides
|
|
476
|
+
);
|
|
477
|
+
}
|
|
478
|
+
function inputTypeTrait(overrides) {
|
|
479
|
+
return withOverrides(
|
|
480
|
+
{
|
|
481
|
+
name: "type",
|
|
482
|
+
label: "Input Type",
|
|
483
|
+
type: "select",
|
|
484
|
+
defaultValue: "text",
|
|
485
|
+
attribute: "type",
|
|
486
|
+
group: "form",
|
|
487
|
+
description: "The semantic input type of the control."
|
|
488
|
+
},
|
|
489
|
+
overrides
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
function buttonTypeTrait(overrides) {
|
|
493
|
+
return withOverrides(
|
|
494
|
+
{
|
|
495
|
+
name: "buttonType",
|
|
496
|
+
label: "Button Type",
|
|
497
|
+
type: "select",
|
|
498
|
+
defaultValue: "button",
|
|
499
|
+
attribute: "type",
|
|
500
|
+
group: "form",
|
|
501
|
+
options: [
|
|
502
|
+
{ label: "Button", value: "button" },
|
|
503
|
+
{ label: "Submit Form (submit)", value: "submit" },
|
|
504
|
+
{ label: "Reset Form (reset)", value: "reset" }
|
|
505
|
+
],
|
|
506
|
+
description: "The button\u2019s behavior inside a form."
|
|
507
|
+
},
|
|
508
|
+
overrides
|
|
509
|
+
);
|
|
510
|
+
}
|
|
511
|
+
function preventDefaultTrait(overrides) {
|
|
512
|
+
return withOverrides(
|
|
513
|
+
{
|
|
514
|
+
name: "preventDefault",
|
|
515
|
+
label: "Prevent Default",
|
|
516
|
+
type: "boolean",
|
|
517
|
+
defaultValue: true,
|
|
518
|
+
group: "form",
|
|
519
|
+
description: "Intercept the native browser submit and handle it via the KUBUILD action pipeline instead."
|
|
520
|
+
},
|
|
521
|
+
overrides
|
|
522
|
+
);
|
|
523
|
+
}
|
|
524
|
+
function scrollToFirstErrorTrait(overrides) {
|
|
525
|
+
return withOverrides(
|
|
526
|
+
{
|
|
527
|
+
name: "scrollToFirstError",
|
|
528
|
+
label: "Scroll to First Error",
|
|
529
|
+
type: "boolean",
|
|
530
|
+
defaultValue: true,
|
|
531
|
+
group: "form",
|
|
532
|
+
description: "Automatically scroll to and focus the first invalid field when submission fails validation."
|
|
533
|
+
},
|
|
534
|
+
overrides
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
function resetOnSubmitTrait(overrides) {
|
|
538
|
+
return withOverrides(
|
|
539
|
+
{
|
|
540
|
+
name: "resetOnSubmit",
|
|
541
|
+
label: "Reset on Submit",
|
|
542
|
+
type: "boolean",
|
|
543
|
+
defaultValue: false,
|
|
544
|
+
group: "form",
|
|
545
|
+
description: "Reset all fields to their initial values after a successful form submission."
|
|
546
|
+
},
|
|
547
|
+
overrides
|
|
548
|
+
);
|
|
549
|
+
}
|
|
550
|
+
function patternTrait(overrides) {
|
|
551
|
+
return withOverrides(
|
|
552
|
+
{
|
|
553
|
+
name: "pattern",
|
|
554
|
+
label: "Pattern (regex)",
|
|
555
|
+
type: "string",
|
|
556
|
+
attribute: "pattern",
|
|
557
|
+
group: "form",
|
|
558
|
+
description: "A regular expression the input value must match to pass validation."
|
|
559
|
+
},
|
|
560
|
+
overrides
|
|
561
|
+
);
|
|
562
|
+
}
|
|
563
|
+
function minLengthTrait(overrides) {
|
|
564
|
+
return withOverrides(
|
|
565
|
+
{
|
|
566
|
+
name: "minLength",
|
|
567
|
+
label: "Min Length",
|
|
568
|
+
type: "number",
|
|
569
|
+
attribute: "minlength",
|
|
570
|
+
group: "form",
|
|
571
|
+
description: "The minimum number of characters the user must enter."
|
|
572
|
+
},
|
|
573
|
+
overrides
|
|
574
|
+
);
|
|
575
|
+
}
|
|
576
|
+
function maxLengthTrait(overrides) {
|
|
577
|
+
return withOverrides(
|
|
578
|
+
{
|
|
579
|
+
name: "maxLength",
|
|
580
|
+
label: "Max Length",
|
|
581
|
+
type: "number",
|
|
582
|
+
attribute: "maxlength",
|
|
583
|
+
group: "form",
|
|
584
|
+
description: "The maximum number of characters the user is allowed to enter."
|
|
585
|
+
},
|
|
586
|
+
overrides
|
|
587
|
+
);
|
|
588
|
+
}
|
|
589
|
+
function prefixIconTrait(overrides) {
|
|
590
|
+
return withOverrides(
|
|
591
|
+
{
|
|
592
|
+
name: "prefixIcon",
|
|
593
|
+
label: "Prefix Icon",
|
|
594
|
+
type: "string",
|
|
595
|
+
group: "form",
|
|
596
|
+
description: 'Lucide icon name displayed before the input value (e.g. "mail", "search").'
|
|
597
|
+
},
|
|
598
|
+
overrides
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
function suffixIconTrait(overrides) {
|
|
602
|
+
return withOverrides(
|
|
603
|
+
{
|
|
604
|
+
name: "suffixIcon",
|
|
605
|
+
label: "Suffix Icon",
|
|
606
|
+
type: "string",
|
|
607
|
+
group: "form",
|
|
608
|
+
description: 'Lucide icon name displayed after the input value (e.g. "eye", "check").'
|
|
609
|
+
},
|
|
610
|
+
overrides
|
|
611
|
+
);
|
|
612
|
+
}
|
|
613
|
+
function helperTextTrait(overrides) {
|
|
614
|
+
return withOverrides(
|
|
615
|
+
{
|
|
616
|
+
name: "helperText",
|
|
617
|
+
label: "Helper Text",
|
|
618
|
+
type: "string",
|
|
619
|
+
group: "form",
|
|
620
|
+
description: 'A short message displayed below the input to guide the user (e.g. "Must be at least 8 characters").'
|
|
621
|
+
},
|
|
622
|
+
overrides
|
|
623
|
+
);
|
|
624
|
+
}
|
|
625
|
+
function resizeTrait(overrides) {
|
|
626
|
+
return withOverrides(
|
|
627
|
+
{
|
|
628
|
+
name: "resize",
|
|
629
|
+
label: "Resize",
|
|
630
|
+
type: "select",
|
|
631
|
+
defaultValue: "vertical",
|
|
632
|
+
group: "form",
|
|
633
|
+
options: [
|
|
634
|
+
{ label: "Vertical only", value: "vertical" },
|
|
635
|
+
{ label: "Horizontal only", value: "horizontal" },
|
|
636
|
+
{ label: "Both", value: "both" },
|
|
637
|
+
{ label: "None", value: "none" }
|
|
638
|
+
],
|
|
639
|
+
description: "Controls whether and how the user can resize the textarea."
|
|
640
|
+
},
|
|
641
|
+
overrides
|
|
642
|
+
);
|
|
643
|
+
}
|
|
644
|
+
function autoGrowTrait(overrides) {
|
|
645
|
+
return withOverrides(
|
|
646
|
+
{
|
|
647
|
+
name: "autoGrow",
|
|
648
|
+
label: "Auto Grow",
|
|
649
|
+
type: "boolean",
|
|
650
|
+
defaultValue: false,
|
|
651
|
+
group: "form",
|
|
652
|
+
description: "Automatically expand the textarea height to fit the content without scrolling."
|
|
653
|
+
},
|
|
654
|
+
overrides
|
|
655
|
+
);
|
|
656
|
+
}
|
|
657
|
+
function maxCharCountTrait(overrides) {
|
|
658
|
+
return withOverrides(
|
|
659
|
+
{
|
|
660
|
+
name: "maxCharCount",
|
|
661
|
+
label: "Max Character Count",
|
|
662
|
+
type: "number",
|
|
663
|
+
group: "form",
|
|
664
|
+
description: 'Maximum character limit displayed as a counter below the textarea (e.g. "120 / 500").'
|
|
665
|
+
},
|
|
666
|
+
overrides
|
|
667
|
+
);
|
|
668
|
+
}
|
|
669
|
+
function optionsListTrait(overrides) {
|
|
670
|
+
return withOverrides(
|
|
671
|
+
{
|
|
672
|
+
name: "options",
|
|
673
|
+
label: "Options",
|
|
674
|
+
type: "string",
|
|
675
|
+
group: "form",
|
|
676
|
+
description: "The list of dropdown options, each with a label and value. Editable via the inspector trait panel."
|
|
677
|
+
},
|
|
678
|
+
overrides
|
|
679
|
+
);
|
|
680
|
+
}
|
|
681
|
+
function labelTextTrait(overrides) {
|
|
682
|
+
return withOverrides(
|
|
683
|
+
{
|
|
684
|
+
name: "label",
|
|
685
|
+
label: "Label Text",
|
|
686
|
+
type: "string",
|
|
687
|
+
group: "form",
|
|
688
|
+
description: "The visible text label displayed alongside the control."
|
|
689
|
+
},
|
|
690
|
+
overrides
|
|
691
|
+
);
|
|
692
|
+
}
|
|
693
|
+
function indeterminateTrait(overrides) {
|
|
694
|
+
return withOverrides(
|
|
695
|
+
{
|
|
696
|
+
name: "indeterminate",
|
|
697
|
+
label: "Indeterminate",
|
|
698
|
+
type: "boolean",
|
|
699
|
+
defaultValue: false,
|
|
700
|
+
group: "form",
|
|
701
|
+
description: "Renders the checkbox in a mixed/indeterminate visual state (neither checked nor unchecked)."
|
|
702
|
+
},
|
|
703
|
+
overrides
|
|
704
|
+
);
|
|
705
|
+
}
|
|
706
|
+
function switchSizeTrait(overrides) {
|
|
707
|
+
return withOverrides(
|
|
708
|
+
{
|
|
709
|
+
name: "switchSize",
|
|
710
|
+
label: "Size",
|
|
711
|
+
type: "select",
|
|
712
|
+
defaultValue: "md",
|
|
713
|
+
group: "form",
|
|
714
|
+
options: [
|
|
715
|
+
{ label: "Small", value: "sm" },
|
|
716
|
+
{ label: "Medium", value: "md" },
|
|
717
|
+
{ label: "Large", value: "lg" }
|
|
718
|
+
],
|
|
719
|
+
description: "The visual size of the switch toggle."
|
|
720
|
+
},
|
|
721
|
+
overrides
|
|
722
|
+
);
|
|
723
|
+
}
|
|
724
|
+
function orientationTrait(overrides) {
|
|
725
|
+
return withOverrides(
|
|
726
|
+
{
|
|
727
|
+
name: "orientation",
|
|
728
|
+
label: "Orientation",
|
|
729
|
+
type: "select",
|
|
730
|
+
defaultValue: "vertical",
|
|
731
|
+
group: "form",
|
|
732
|
+
options: [
|
|
733
|
+
{ label: "Vertical", value: "vertical" },
|
|
734
|
+
{ label: "Horizontal", value: "horizontal" }
|
|
735
|
+
],
|
|
736
|
+
description: "The layout direction of the child controls (vertical stack or horizontal row)."
|
|
737
|
+
},
|
|
738
|
+
overrides
|
|
739
|
+
);
|
|
740
|
+
}
|
|
741
|
+
function defaultSelectedTrait(overrides) {
|
|
742
|
+
return withOverrides(
|
|
743
|
+
{
|
|
744
|
+
name: "defaultSelected",
|
|
745
|
+
label: "Default Selected",
|
|
746
|
+
type: "string",
|
|
747
|
+
group: "form",
|
|
748
|
+
description: "The value of the radio item that is selected by default."
|
|
749
|
+
},
|
|
750
|
+
overrides
|
|
751
|
+
);
|
|
752
|
+
}
|
|
753
|
+
function acceptTrait(overrides) {
|
|
754
|
+
return withOverrides(
|
|
755
|
+
{
|
|
756
|
+
name: "accept",
|
|
757
|
+
label: "Accepted File Types",
|
|
758
|
+
type: "string",
|
|
759
|
+
attribute: "accept",
|
|
760
|
+
defaultValue: "*/*",
|
|
761
|
+
group: "form",
|
|
762
|
+
description: 'Comma-separated list of MIME types or file extensions accepted (e.g. "image/*,.pdf,.docx").'
|
|
763
|
+
},
|
|
764
|
+
overrides
|
|
765
|
+
);
|
|
766
|
+
}
|
|
767
|
+
function maxFileSizeTrait(overrides) {
|
|
768
|
+
return withOverrides(
|
|
769
|
+
{
|
|
770
|
+
name: "maxFileSize",
|
|
771
|
+
label: "Max File Size (MB)",
|
|
772
|
+
type: "number",
|
|
773
|
+
defaultValue: 10,
|
|
774
|
+
group: "form",
|
|
775
|
+
description: "The maximum allowable file size in megabytes (MB)."
|
|
776
|
+
},
|
|
777
|
+
overrides
|
|
778
|
+
);
|
|
779
|
+
}
|
|
780
|
+
function multipleTrait(overrides) {
|
|
781
|
+
return withOverrides(
|
|
782
|
+
{
|
|
783
|
+
name: "multiple",
|
|
784
|
+
label: "Allow Multiple Files",
|
|
785
|
+
type: "boolean",
|
|
786
|
+
attribute: "multiple",
|
|
787
|
+
defaultValue: false,
|
|
788
|
+
group: "form",
|
|
789
|
+
description: "Allow multiple files to be selected and uploaded at once."
|
|
790
|
+
},
|
|
791
|
+
overrides
|
|
792
|
+
);
|
|
793
|
+
}
|
|
794
|
+
function showPreviewTrait(overrides) {
|
|
795
|
+
return withOverrides(
|
|
796
|
+
{
|
|
797
|
+
name: "showPreview",
|
|
798
|
+
label: "Show Preview",
|
|
799
|
+
type: "boolean",
|
|
800
|
+
defaultValue: true,
|
|
801
|
+
group: "form",
|
|
802
|
+
description: "Display an interactive preview (image thumbnail or file list with badges) for selected files."
|
|
803
|
+
},
|
|
804
|
+
overrides
|
|
805
|
+
);
|
|
806
|
+
}
|
|
807
|
+
function loadingTextTrait(overrides) {
|
|
808
|
+
return withOverrides(
|
|
809
|
+
{
|
|
810
|
+
name: "loadingText",
|
|
811
|
+
label: "Loading Text",
|
|
812
|
+
type: "string",
|
|
813
|
+
defaultValue: "Submitting...",
|
|
814
|
+
group: "behavior",
|
|
815
|
+
description: "Text displayed on the button while the form submission is in progress."
|
|
816
|
+
},
|
|
817
|
+
overrides
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
function showSpinnerTrait(overrides) {
|
|
821
|
+
return withOverrides(
|
|
822
|
+
{
|
|
823
|
+
name: "showSpinner",
|
|
824
|
+
label: "Show Loading Spinner",
|
|
825
|
+
type: "boolean",
|
|
826
|
+
defaultValue: true,
|
|
827
|
+
group: "behavior",
|
|
828
|
+
description: "Automatically show an animated loading spinner icon while form is submitting."
|
|
829
|
+
},
|
|
830
|
+
overrides
|
|
831
|
+
);
|
|
832
|
+
}
|
|
833
|
+
function autoDisableOnSubmitTrait(overrides) {
|
|
834
|
+
return withOverrides(
|
|
835
|
+
{
|
|
836
|
+
name: "autoDisableOnSubmit",
|
|
837
|
+
label: "Auto Disable on Submit",
|
|
838
|
+
type: "boolean",
|
|
839
|
+
defaultValue: true,
|
|
840
|
+
group: "behavior",
|
|
841
|
+
description: "Automatically disable the button to prevent duplicate submissions while the form is submitting."
|
|
842
|
+
},
|
|
843
|
+
overrides
|
|
844
|
+
);
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
export {
|
|
848
|
+
TRAIT_GROUP_ORDER,
|
|
849
|
+
TRAIT_GROUP_LABELS,
|
|
850
|
+
withOverrides,
|
|
851
|
+
sortTraits,
|
|
852
|
+
collectTraitNames,
|
|
853
|
+
idTrait,
|
|
854
|
+
titleTrait,
|
|
855
|
+
ariaLabelTrait,
|
|
856
|
+
hrefTrait,
|
|
857
|
+
targetTrait,
|
|
858
|
+
relTrait,
|
|
859
|
+
srcTrait,
|
|
860
|
+
altTrait,
|
|
861
|
+
posterTrait,
|
|
862
|
+
controlsTrait,
|
|
863
|
+
autoplayTrait,
|
|
864
|
+
loopTrait,
|
|
865
|
+
mutedTrait,
|
|
866
|
+
loadingTrait,
|
|
867
|
+
citeTrait,
|
|
868
|
+
colSpanTrait,
|
|
869
|
+
rowSpanTrait,
|
|
870
|
+
tagTrait,
|
|
871
|
+
placeholderTrait,
|
|
872
|
+
fieldNameTrait,
|
|
873
|
+
requiredTrait,
|
|
874
|
+
disabledTrait,
|
|
875
|
+
readOnlyTrait,
|
|
876
|
+
actionTrait,
|
|
877
|
+
methodTrait,
|
|
878
|
+
autoCompleteTrait,
|
|
879
|
+
valueTrait,
|
|
880
|
+
defaultCheckedTrait,
|
|
881
|
+
defaultValueTrait,
|
|
882
|
+
rowsTrait,
|
|
883
|
+
inputTypeTrait,
|
|
884
|
+
buttonTypeTrait,
|
|
885
|
+
preventDefaultTrait,
|
|
886
|
+
scrollToFirstErrorTrait,
|
|
887
|
+
resetOnSubmitTrait,
|
|
888
|
+
patternTrait,
|
|
889
|
+
minLengthTrait,
|
|
890
|
+
maxLengthTrait,
|
|
891
|
+
prefixIconTrait,
|
|
892
|
+
suffixIconTrait,
|
|
893
|
+
helperTextTrait,
|
|
894
|
+
resizeTrait,
|
|
895
|
+
autoGrowTrait,
|
|
896
|
+
maxCharCountTrait,
|
|
897
|
+
optionsListTrait,
|
|
898
|
+
labelTextTrait,
|
|
899
|
+
indeterminateTrait,
|
|
900
|
+
switchSizeTrait,
|
|
901
|
+
orientationTrait,
|
|
902
|
+
defaultSelectedTrait,
|
|
903
|
+
acceptTrait,
|
|
904
|
+
maxFileSizeTrait,
|
|
905
|
+
multipleTrait,
|
|
906
|
+
showPreviewTrait,
|
|
907
|
+
loadingTextTrait,
|
|
908
|
+
showSpinnerTrait,
|
|
909
|
+
autoDisableOnSubmitTrait
|
|
910
|
+
};
|
|
911
|
+
//# sourceMappingURL=chunk-OK53DS7G.js.map
|