@brandsync/wc 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/custom-elements.json +1138 -0
- package/dist/brandsync-wc/brandsync-wc.css +1730 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js.map +1 -0
- package/dist/brandsync-wc/index-Cqxk7LcP.js.map +1 -0
- package/dist/brandsync-wc/index.esm.js +1 -0
- package/dist/brandsync-wc/index.esm.js.map +1 -0
- package/dist/brandsync-wc/p-042ad15a.entry.js +1 -0
- package/dist/brandsync-wc/p-2c4df28d.entry.js +1 -0
- package/dist/brandsync-wc/p-3134f5f5.entry.js +1 -0
- package/dist/brandsync-wc/p-5739acaf.entry.js +1 -0
- package/dist/brandsync-wc/p-BOj_41o9.js +3 -0
- package/dist/brandsync-wc/p-c2cc0d6f.entry.js +1 -0
- package/dist/brandsync-wc/p-da11e421.entry.js +1 -0
- package/dist/brandsync-wc/p-db3934d2.entry.js +1 -0
- package/dist/brandsync-wc/p-e38a9744.entry.js +1 -0
- package/dist/cjs/brandsync-wc.cjs.js +24 -0
- package/dist/cjs/bs-badge.cjs.entry.js +19 -0
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +19 -0
- package/dist/cjs/bs-button.cjs.entry.js +88 -0
- package/dist/cjs/bs-card.cjs.entry.js +20 -0
- package/dist/cjs/bs-composer.cjs.entry.js +116 -0
- package/dist/cjs/bs-data-table.cjs.entry.js +62 -0
- package/dist/cjs/bs-input.cjs.entry.js +42 -0
- package/dist/cjs/bs-modal.cjs.entry.js +69 -0
- package/dist/cjs/index-nyOcuVbF.js +1710 -0
- package/dist/cjs/index.cjs.js +7 -0
- package/dist/cjs/loader.cjs.js +12 -0
- package/dist/collection/collection-manifest.json +20 -0
- package/dist/collection/components/bs-badge/bs-badge.cmp.test.js +30 -0
- package/dist/collection/components/bs-badge/bs-badge.css +55 -0
- package/dist/collection/components/bs-badge/bs-badge.js +64 -0
- package/dist/collection/components/bs-badge/bs-badge.stories.js +75 -0
- package/dist/collection/components/bs-button/bs-button.cmp.test.js +81 -0
- package/dist/collection/components/bs-button/bs-button.css +247 -0
- package/dist/collection/components/bs-button/bs-button.js +242 -0
- package/dist/collection/components/bs-button/bs-button.stories.js +145 -0
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.cmp.test.js +18 -0
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.css +46 -0
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +73 -0
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.stories.js +25 -0
- package/dist/collection/components/bs-card/bs-card.cmp.test.js +42 -0
- package/dist/collection/components/bs-card/bs-card.css +31 -0
- package/dist/collection/components/bs-card/bs-card.js +70 -0
- package/dist/collection/components/bs-card/bs-card.stories.js +27 -0
- package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +132 -0
- package/dist/collection/components/bs-composer/bs-composer.css +185 -0
- package/dist/collection/components/bs-composer/bs-composer.js +353 -0
- package/dist/collection/components/bs-composer/bs-composer.stories.js +66 -0
- package/dist/collection/components/bs-data-table/bs-data-table.css +56 -0
- package/dist/collection/components/bs-data-table/bs-data-table.js +259 -0
- package/dist/collection/components/bs-data-table/bs-data-table.stories.js +55 -0
- package/dist/collection/components/bs-input/bs-input.cmp.test.js +101 -0
- package/dist/collection/components/bs-input/bs-input.css +64 -0
- package/dist/collection/components/bs-input/bs-input.js +230 -0
- package/dist/collection/components/bs-input/bs-input.stories.js +40 -0
- package/dist/collection/components/bs-modal/bs-modal.cmp.test.js +112 -0
- package/dist/collection/components/bs-modal/bs-modal.css +66 -0
- package/dist/collection/components/bs-modal/bs-modal.js +198 -0
- package/dist/collection/components/bs-modal/bs-modal.stories.js +38 -0
- package/dist/collection/index.js +10 -0
- package/dist/collection/stories-utils.js +25 -0
- package/dist/collection/utils/utils.js +3 -0
- package/dist/collection/utils/utils.unit.test.js +16 -0
- package/dist/components/bs-badge.d.ts +11 -0
- package/dist/components/bs-badge.js +1 -0
- package/dist/components/bs-button-skeleton.d.ts +11 -0
- package/dist/components/bs-button-skeleton.js +1 -0
- package/dist/components/bs-button.d.ts +11 -0
- package/dist/components/bs-button.js +1 -0
- package/dist/components/bs-card.d.ts +11 -0
- package/dist/components/bs-card.js +1 -0
- package/dist/components/bs-composer.d.ts +11 -0
- package/dist/components/bs-composer.js +1 -0
- package/dist/components/bs-data-table.d.ts +11 -0
- package/dist/components/bs-data-table.js +1 -0
- package/dist/components/bs-input.d.ts +11 -0
- package/dist/components/bs-input.js +1 -0
- package/dist/components/bs-modal.d.ts +11 -0
- package/dist/components/bs-modal.js +1 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.js +1 -0
- package/dist/components/p-Cu4gTknX.js +1 -0
- package/dist/esm/brandsync-wc.js +20 -0
- package/dist/esm/bs-badge.entry.js +17 -0
- package/dist/esm/bs-button-skeleton.entry.js +17 -0
- package/dist/esm/bs-button.entry.js +86 -0
- package/dist/esm/bs-card.entry.js +18 -0
- package/dist/esm/bs-composer.entry.js +114 -0
- package/dist/esm/bs-data-table.entry.js +60 -0
- package/dist/esm/bs-input.entry.js +40 -0
- package/dist/esm/bs-modal.entry.js +67 -0
- package/dist/esm/index-BOj_41o9.js +1701 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/loader.js +10 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/components/bs-badge/bs-badge.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-badge/bs-badge.d.ts +20 -0
- package/dist/types/components/bs-badge/bs-badge.stories.d.ts +19 -0
- package/dist/types/components/bs-button/bs-button.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-button/bs-button.d.ts +84 -0
- package/dist/types/components/bs-button/bs-button.stories.d.ts +29 -0
- package/dist/types/components/bs-button-skeleton/bs-button-skeleton.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-button-skeleton/bs-button-skeleton.d.ts +28 -0
- package/dist/types/components/bs-button-skeleton/bs-button-skeleton.stories.d.ts +10 -0
- package/dist/types/components/bs-card/bs-card.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-card/bs-card.d.ts +26 -0
- package/dist/types/components/bs-card/bs-card.stories.d.ts +10 -0
- package/dist/types/components/bs-composer/bs-composer.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-composer/bs-composer.d.ts +83 -0
- package/dist/types/components/bs-composer/bs-composer.stories.d.ts +17 -0
- package/dist/types/components/bs-data-table/bs-data-table.d.ts +55 -0
- package/dist/types/components/bs-data-table/bs-data-table.stories.d.ts +7 -0
- package/dist/types/components/bs-input/bs-input.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-input/bs-input.d.ts +33 -0
- package/dist/types/components/bs-input/bs-input.stories.d.ts +15 -0
- package/dist/types/components/bs-modal/bs-modal.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-modal/bs-modal.d.ts +45 -0
- package/dist/types/components/bs-modal/bs-modal.stories.d.ts +9 -0
- package/dist/types/components.d.ts +962 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/stencil-public-runtime.d.ts +1872 -0
- package/dist/types/stories-utils.d.ts +8 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/dist/types/utils/utils.unit.test.d.ts +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +67 -0
- package/readme.md +48 -0
|
@@ -0,0 +1,1138 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "2.1.0",
|
|
3
|
+
"modules": [
|
|
4
|
+
{
|
|
5
|
+
"kind": "javascript-module",
|
|
6
|
+
"path": "src/components/bs-badge/bs-badge.tsx",
|
|
7
|
+
"declarations": [
|
|
8
|
+
{
|
|
9
|
+
"kind": "class",
|
|
10
|
+
"customElement": true,
|
|
11
|
+
"tagName": "bs-badge",
|
|
12
|
+
"name": "BsBadge",
|
|
13
|
+
"description": "A small status or category pill, usually paired with a label or list item.\n\n## When to use\n- Communicating a short, fixed status (e.g. \"Active\", \"On leave\") or category label.\n\n## When not to use\n- As an interactive/clickable element — a badge is a label, not a control. Use a button\n or chip component if it needs to be clickable.\n- For long text — badges are sized for one or two words.",
|
|
14
|
+
"attributes": [
|
|
15
|
+
{
|
|
16
|
+
"name": "variant",
|
|
17
|
+
"description": "Maps directly to the brandsync-tokens `--bs-badge-bg-*` / `--bs-badge-text-*` sets.",
|
|
18
|
+
"type": {
|
|
19
|
+
"text": "\"default\" | \"error\" | \"info\" | \"inverse\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"",
|
|
20
|
+
"references": [
|
|
21
|
+
{
|
|
22
|
+
"name": "BsBadgeVariant"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"default": "'default'",
|
|
27
|
+
"fieldName": "variant"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"members": [
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "variant",
|
|
34
|
+
"description": "Maps directly to the brandsync-tokens `--bs-badge-bg-*` / `--bs-badge-text-*` sets.",
|
|
35
|
+
"type": {
|
|
36
|
+
"text": "\"default\" | \"error\" | \"info\" | \"inverse\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"",
|
|
37
|
+
"references": [
|
|
38
|
+
{
|
|
39
|
+
"name": "BsBadgeVariant"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"default": "'default'",
|
|
44
|
+
"readonly": true,
|
|
45
|
+
"attribute": "variant"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"slots": [
|
|
49
|
+
{
|
|
50
|
+
"name": "",
|
|
51
|
+
"description": "Default slot: the badge's label text."
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"cssParts": [
|
|
55
|
+
{
|
|
56
|
+
"name": "container",
|
|
57
|
+
"description": "The pill element."
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"exports": [
|
|
63
|
+
{
|
|
64
|
+
"kind": "js",
|
|
65
|
+
"name": "BsBadge",
|
|
66
|
+
"declaration": {
|
|
67
|
+
"name": "BsBadge"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"kind": "custom-element-definition",
|
|
72
|
+
"name": "bs-badge",
|
|
73
|
+
"declaration": {
|
|
74
|
+
"name": "BsBadge"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"kind": "javascript-module",
|
|
81
|
+
"path": "src/components/bs-button/bs-button.tsx",
|
|
82
|
+
"declarations": [
|
|
83
|
+
{
|
|
84
|
+
"kind": "class",
|
|
85
|
+
"customElement": true,
|
|
86
|
+
"tagName": "bs-button",
|
|
87
|
+
"name": "BsButton",
|
|
88
|
+
"description": "A clickable action element for the single most important action in a given context.\n\n## When to use\n- The primary call to action on a screen or within a card/modal (e.g. \"Book room\", \"Confirm\").\n- Secondary, lower-emphasis actions alongside it (use `variant=\"neutral\"`).\n- `variant=\"error\"` for destructive/irreversible actions (e.g. \"Delete account\") — per\n BrandSync guidance, destructive actions should always use the error variant, never\n `neutral`, so the visual weight matches the risk of the action.\n\n## When not to use\n- For navigation between pages — use a link/nav component instead, a button implies an\n in-page action, not a destination change.\n- For more than one primary-emphasis action in the same view — pick one, demote the rest to\n `neutral`.\n- `error` purely for visual emphasis — it signals a destructive action to the user, so reserve\n it for actions that actually delete/revoke/undo something.",
|
|
89
|
+
"attributes": [
|
|
90
|
+
{
|
|
91
|
+
"name": "aria-label",
|
|
92
|
+
"description": "Accessible name for the button. Required for icon-only usage (no visible label text via the\ndefault slot) so screen readers still announce what the button does. Stencil reflects this\ncamelCase prop to the `aria-label` HTML attribute automatically.",
|
|
93
|
+
"type": {
|
|
94
|
+
"text": "string"
|
|
95
|
+
},
|
|
96
|
+
"default": "null",
|
|
97
|
+
"fieldName": "ariaLabel"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "disabled",
|
|
101
|
+
"description": "Disables the button and applies the disabled token set.",
|
|
102
|
+
"type": {
|
|
103
|
+
"text": "boolean"
|
|
104
|
+
},
|
|
105
|
+
"default": "false",
|
|
106
|
+
"fieldName": "disabled"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "size",
|
|
110
|
+
"description": "Sizing scale.",
|
|
111
|
+
"type": {
|
|
112
|
+
"text": "\"lg\" | \"md\" | \"sm\"",
|
|
113
|
+
"references": [
|
|
114
|
+
{
|
|
115
|
+
"name": "BsButtonSize"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"default": "'md'",
|
|
120
|
+
"fieldName": "size"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "type",
|
|
124
|
+
"description": "Native `<button>` type.",
|
|
125
|
+
"type": {
|
|
126
|
+
"text": "\"button\" | \"reset\" | \"submit\""
|
|
127
|
+
},
|
|
128
|
+
"default": "'button'",
|
|
129
|
+
"fieldName": "type"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "variant",
|
|
133
|
+
"description": "Visual style. Maps directly to the brandsync-tokens `--bs-button-*` semantic set.\n`error` is for destructive/irreversible actions per BrandSync guidance, not a stronger\nemphasis alternative to `primary`.",
|
|
134
|
+
"type": {
|
|
135
|
+
"text": "\"error\" | \"info\" | \"neutral\" | \"outlined\" | \"primary\" | \"subtle\" | \"success\" | \"warning\"",
|
|
136
|
+
"references": [
|
|
137
|
+
{
|
|
138
|
+
"name": "BsButtonVariant"
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"default": "'primary'",
|
|
143
|
+
"fieldName": "variant"
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"members": [
|
|
147
|
+
{
|
|
148
|
+
"kind": "field",
|
|
149
|
+
"name": "ariaLabel",
|
|
150
|
+
"description": "Accessible name for the button. Required for icon-only usage (no visible label text via the\ndefault slot) so screen readers still announce what the button does. Stencil reflects this\ncamelCase prop to the `aria-label` HTML attribute automatically.",
|
|
151
|
+
"type": {
|
|
152
|
+
"text": "string"
|
|
153
|
+
},
|
|
154
|
+
"default": "null",
|
|
155
|
+
"readonly": true,
|
|
156
|
+
"attribute": "aria-label"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"kind": "field",
|
|
160
|
+
"name": "disabled",
|
|
161
|
+
"description": "Disables the button and applies the disabled token set.",
|
|
162
|
+
"type": {
|
|
163
|
+
"text": "boolean"
|
|
164
|
+
},
|
|
165
|
+
"default": "false",
|
|
166
|
+
"readonly": true,
|
|
167
|
+
"attribute": "disabled"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"kind": "field",
|
|
171
|
+
"name": "size",
|
|
172
|
+
"description": "Sizing scale.",
|
|
173
|
+
"type": {
|
|
174
|
+
"text": "\"lg\" | \"md\" | \"sm\"",
|
|
175
|
+
"references": [
|
|
176
|
+
{
|
|
177
|
+
"name": "BsButtonSize"
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"default": "'md'",
|
|
182
|
+
"readonly": true,
|
|
183
|
+
"attribute": "size"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"kind": "field",
|
|
187
|
+
"name": "type",
|
|
188
|
+
"description": "Native `<button>` type.",
|
|
189
|
+
"type": {
|
|
190
|
+
"text": "\"button\" | \"reset\" | \"submit\""
|
|
191
|
+
},
|
|
192
|
+
"default": "'button'",
|
|
193
|
+
"readonly": true,
|
|
194
|
+
"attribute": "type"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"kind": "field",
|
|
198
|
+
"name": "variant",
|
|
199
|
+
"description": "Visual style. Maps directly to the brandsync-tokens `--bs-button-*` semantic set.\n`error` is for destructive/irreversible actions per BrandSync guidance, not a stronger\nemphasis alternative to `primary`.",
|
|
200
|
+
"type": {
|
|
201
|
+
"text": "\"error\" | \"info\" | \"neutral\" | \"outlined\" | \"primary\" | \"subtle\" | \"success\" | \"warning\"",
|
|
202
|
+
"references": [
|
|
203
|
+
{
|
|
204
|
+
"name": "BsButtonVariant"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
"default": "'primary'",
|
|
209
|
+
"readonly": true,
|
|
210
|
+
"attribute": "variant"
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"slots": [
|
|
214
|
+
{
|
|
215
|
+
"name": "",
|
|
216
|
+
"description": "Default slot: the button's label content."
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"name": "end-icon",
|
|
220
|
+
"description": "Optional trailing icon, rendered after the label."
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "icon",
|
|
224
|
+
"description": "Optional leading icon, rendered before the label."
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"cssParts": [
|
|
228
|
+
{
|
|
229
|
+
"name": "end-icon",
|
|
230
|
+
"description": "The trailing icon wrapper element."
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"name": "icon",
|
|
234
|
+
"description": "The icon wrapper element."
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"name": "label",
|
|
238
|
+
"description": "The text label element."
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
}
|
|
242
|
+
],
|
|
243
|
+
"exports": [
|
|
244
|
+
{
|
|
245
|
+
"kind": "js",
|
|
246
|
+
"name": "BsButton",
|
|
247
|
+
"declaration": {
|
|
248
|
+
"name": "BsButton"
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"kind": "custom-element-definition",
|
|
253
|
+
"name": "bs-button",
|
|
254
|
+
"declaration": {
|
|
255
|
+
"name": "BsButton"
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
]
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"kind": "javascript-module",
|
|
262
|
+
"path": "src/components/bs-button-skeleton/bs-button-skeleton.tsx",
|
|
263
|
+
"declarations": [
|
|
264
|
+
{
|
|
265
|
+
"kind": "class",
|
|
266
|
+
"customElement": true,
|
|
267
|
+
"tagName": "bs-button-skeleton",
|
|
268
|
+
"name": "BsButtonSkeleton",
|
|
269
|
+
"description": "A shape-matched loading placeholder for `bs-button`, shown while the real label/action isn't\nknown yet (e.g. still being fetched from an API). Sized to match `bs-button`'s `sm`/`md`/`lg`\nheights so layout doesn't shift once the real button renders.\n\nThis is not a submit-in-progress spinner — that's a different concern (a button that's\nalready rendered but waiting on an async action it triggered). Use this component only when\nthe button itself doesn't exist yet.\n\n## When to use\n- In place of a `bs-button` whose label/visibility depends on data that hasn't loaded yet.\n\n## When not to use\n- While a button's own click handler is running (e.g. a submit request in flight) — render the\n real `bs-button` and show its own busy/spinner state instead.",
|
|
270
|
+
"attributes": [
|
|
271
|
+
{
|
|
272
|
+
"name": "size",
|
|
273
|
+
"description": "Sizing scale, matching the `bs-button` size it stands in for.",
|
|
274
|
+
"type": {
|
|
275
|
+
"text": "\"lg\" | \"md\" | \"sm\"",
|
|
276
|
+
"references": [
|
|
277
|
+
{
|
|
278
|
+
"name": "BsButtonSize",
|
|
279
|
+
"module": "../bs-button/bs-button"
|
|
280
|
+
}
|
|
281
|
+
]
|
|
282
|
+
},
|
|
283
|
+
"default": "'md'",
|
|
284
|
+
"fieldName": "size"
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
"members": [
|
|
288
|
+
{
|
|
289
|
+
"kind": "field",
|
|
290
|
+
"name": "size",
|
|
291
|
+
"description": "Sizing scale, matching the `bs-button` size it stands in for.",
|
|
292
|
+
"type": {
|
|
293
|
+
"text": "\"lg\" | \"md\" | \"sm\"",
|
|
294
|
+
"references": [
|
|
295
|
+
{
|
|
296
|
+
"name": "BsButtonSize",
|
|
297
|
+
"module": "../bs-button/bs-button"
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
"default": "'md'",
|
|
302
|
+
"readonly": true,
|
|
303
|
+
"attribute": "size"
|
|
304
|
+
}
|
|
305
|
+
],
|
|
306
|
+
"cssParts": [
|
|
307
|
+
{
|
|
308
|
+
"name": "container",
|
|
309
|
+
"description": "The pulsing placeholder element."
|
|
310
|
+
}
|
|
311
|
+
]
|
|
312
|
+
}
|
|
313
|
+
],
|
|
314
|
+
"exports": [
|
|
315
|
+
{
|
|
316
|
+
"kind": "js",
|
|
317
|
+
"name": "BsButtonSkeleton",
|
|
318
|
+
"declaration": {
|
|
319
|
+
"name": "BsButtonSkeleton"
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"kind": "custom-element-definition",
|
|
324
|
+
"name": "bs-button-skeleton",
|
|
325
|
+
"declaration": {
|
|
326
|
+
"name": "BsButtonSkeleton"
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"kind": "javascript-module",
|
|
333
|
+
"path": "src/components/bs-card/bs-card.tsx",
|
|
334
|
+
"declarations": [
|
|
335
|
+
{
|
|
336
|
+
"kind": "class",
|
|
337
|
+
"customElement": true,
|
|
338
|
+
"tagName": "bs-card",
|
|
339
|
+
"name": "BsCard",
|
|
340
|
+
"description": "A bounded surface for grouping related content — a summary, a form section, a list item.\n\n## When to use\n- Grouping a self-contained piece of content that needs visual separation from the page\n background (e.g. a booking summary, a settings section).\n\n## When not to use\n- As the only structural element on a page — cards group content, they don't replace layout.\n- For a dismissible/transient message — use a modal or a dedicated notification component.",
|
|
341
|
+
"attributes": [
|
|
342
|
+
{
|
|
343
|
+
"name": "surface",
|
|
344
|
+
"description": "Maps to the brandsync-tokens `--bs-paper-bg-*` set — Brandsync's tokens don't have a\ndedicated \"card\" component yet, so this reuses the existing Paper surface tokens.",
|
|
345
|
+
"type": {
|
|
346
|
+
"text": "\"base\" | \"container\" | \"raised\"",
|
|
347
|
+
"references": [
|
|
348
|
+
{
|
|
349
|
+
"name": "BsCardSurface"
|
|
350
|
+
}
|
|
351
|
+
]
|
|
352
|
+
},
|
|
353
|
+
"default": "'raised'",
|
|
354
|
+
"fieldName": "surface"
|
|
355
|
+
}
|
|
356
|
+
],
|
|
357
|
+
"members": [
|
|
358
|
+
{
|
|
359
|
+
"kind": "field",
|
|
360
|
+
"name": "surface",
|
|
361
|
+
"description": "Maps to the brandsync-tokens `--bs-paper-bg-*` set — Brandsync's tokens don't have a\ndedicated \"card\" component yet, so this reuses the existing Paper surface tokens.",
|
|
362
|
+
"type": {
|
|
363
|
+
"text": "\"base\" | \"container\" | \"raised\"",
|
|
364
|
+
"references": [
|
|
365
|
+
{
|
|
366
|
+
"name": "BsCardSurface"
|
|
367
|
+
}
|
|
368
|
+
]
|
|
369
|
+
},
|
|
370
|
+
"default": "'raised'",
|
|
371
|
+
"readonly": true,
|
|
372
|
+
"attribute": "surface"
|
|
373
|
+
}
|
|
374
|
+
],
|
|
375
|
+
"slots": [
|
|
376
|
+
{
|
|
377
|
+
"name": "",
|
|
378
|
+
"description": "Default slot: the card's main body content."
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"name": "footer",
|
|
382
|
+
"description": "Optional actions/content below the body (e.g. a button)."
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"name": "header",
|
|
386
|
+
"description": "Optional heading content above the body."
|
|
387
|
+
}
|
|
388
|
+
],
|
|
389
|
+
"cssParts": [
|
|
390
|
+
{
|
|
391
|
+
"name": "body",
|
|
392
|
+
"description": "The body wrapper."
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"name": "container",
|
|
396
|
+
"description": "The outer bordered surface element."
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"name": "footer",
|
|
400
|
+
"description": "The footer wrapper."
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"name": "header",
|
|
404
|
+
"description": "The header wrapper."
|
|
405
|
+
}
|
|
406
|
+
]
|
|
407
|
+
}
|
|
408
|
+
],
|
|
409
|
+
"exports": [
|
|
410
|
+
{
|
|
411
|
+
"kind": "js",
|
|
412
|
+
"name": "BsCard",
|
|
413
|
+
"declaration": {
|
|
414
|
+
"name": "BsCard"
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"kind": "custom-element-definition",
|
|
419
|
+
"name": "bs-card",
|
|
420
|
+
"declaration": {
|
|
421
|
+
"name": "BsCard"
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
]
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"kind": "javascript-module",
|
|
428
|
+
"path": "src/components/bs-composer/bs-composer.tsx",
|
|
429
|
+
"declarations": [
|
|
430
|
+
{
|
|
431
|
+
"kind": "class",
|
|
432
|
+
"customElement": true,
|
|
433
|
+
"tagName": "bs-composer",
|
|
434
|
+
"name": "BsComposer",
|
|
435
|
+
"description": "A chat composer input for Genie AI-style conversational interfaces: a text field\nplus an attach button, a mic/voice-recording toggle, and a single primary action button whose\nicon and behavior change with `state` (send, stop generating, or confirm a voice recording).\n\n## When to use\n- The message-entry bar for an AI chat/assistant or human support conversation.\n\n## When not to use\n- A general-purpose text field — use `bs-input` instead; this component's layout and states are\n purpose-built for a chat composer, not a generic form field.",
|
|
436
|
+
"attributes": [
|
|
437
|
+
{
|
|
438
|
+
"name": "aria-label",
|
|
439
|
+
"description": "Accessible name for the text field. This component has no visible `<label>` (chat composers\ndon't show one in the design), so `ariaLabel` is the only way a consumer gives the textbox an\naccessible name -- set it in every real usage.",
|
|
440
|
+
"type": {
|
|
441
|
+
"text": "string"
|
|
442
|
+
},
|
|
443
|
+
"default": "null",
|
|
444
|
+
"fieldName": "ariaLabel"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"name": "placeholder",
|
|
448
|
+
"description": "Overrides the variant's default placeholder.",
|
|
449
|
+
"type": {
|
|
450
|
+
"text": "string"
|
|
451
|
+
},
|
|
452
|
+
"fieldName": "placeholder"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"name": "state",
|
|
456
|
+
"description": "Which of the four mutually-exclusive composer states to render: `idle` (send, enabled),\n`generating` (stop, while the AI is responding), `disabled` (send, but not interactive), or\n`recording` (voice input in progress -- shows a waveform and a confirm action).",
|
|
457
|
+
"type": {
|
|
458
|
+
"text": "\"disabled\" | \"generating\" | \"idle\" | \"recording\"",
|
|
459
|
+
"references": [
|
|
460
|
+
{
|
|
461
|
+
"name": "BsComposerState"
|
|
462
|
+
}
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"default": "'idle'",
|
|
466
|
+
"fieldName": "state"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"name": "value",
|
|
470
|
+
"description": "Current text value. Native `input` events don't cross the Shadow DOM boundary, so this\ncomponent re-dispatches them as a `bsInput` custom event instead.",
|
|
471
|
+
"type": {
|
|
472
|
+
"text": "string"
|
|
473
|
+
},
|
|
474
|
+
"default": "''",
|
|
475
|
+
"fieldName": "value"
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"name": "variant",
|
|
479
|
+
"description": "Which flavor of composer this is: changes the *default* placeholder text (set `placeholder`\ndirectly to override it) and, per the Figma design, renders the container border dashed\ninstead of solid for `'human'` -- a deliberate visual cue distinguishing a human-support\ncomposer from the AI one, not a layout/token difference.",
|
|
480
|
+
"type": {
|
|
481
|
+
"text": "\"ai\" | \"human\"",
|
|
482
|
+
"references": [
|
|
483
|
+
{
|
|
484
|
+
"name": "BsComposerVariant"
|
|
485
|
+
}
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"default": "'ai'",
|
|
489
|
+
"fieldName": "variant"
|
|
490
|
+
}
|
|
491
|
+
],
|
|
492
|
+
"members": [
|
|
493
|
+
{
|
|
494
|
+
"kind": "field",
|
|
495
|
+
"name": "ariaLabel",
|
|
496
|
+
"description": "Accessible name for the text field. This component has no visible `<label>` (chat composers\ndon't show one in the design), so `ariaLabel` is the only way a consumer gives the textbox an\naccessible name -- set it in every real usage.",
|
|
497
|
+
"type": {
|
|
498
|
+
"text": "string"
|
|
499
|
+
},
|
|
500
|
+
"default": "null",
|
|
501
|
+
"readonly": true,
|
|
502
|
+
"attribute": "aria-label"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"kind": "field",
|
|
506
|
+
"name": "placeholder",
|
|
507
|
+
"description": "Overrides the variant's default placeholder.",
|
|
508
|
+
"type": {
|
|
509
|
+
"text": "string"
|
|
510
|
+
},
|
|
511
|
+
"readonly": true,
|
|
512
|
+
"attribute": "placeholder"
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"kind": "field",
|
|
516
|
+
"name": "state",
|
|
517
|
+
"description": "Which of the four mutually-exclusive composer states to render: `idle` (send, enabled),\n`generating` (stop, while the AI is responding), `disabled` (send, but not interactive), or\n`recording` (voice input in progress -- shows a waveform and a confirm action).",
|
|
518
|
+
"type": {
|
|
519
|
+
"text": "\"disabled\" | \"generating\" | \"idle\" | \"recording\"",
|
|
520
|
+
"references": [
|
|
521
|
+
{
|
|
522
|
+
"name": "BsComposerState"
|
|
523
|
+
}
|
|
524
|
+
]
|
|
525
|
+
},
|
|
526
|
+
"default": "'idle'",
|
|
527
|
+
"readonly": true,
|
|
528
|
+
"attribute": "state"
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"kind": "field",
|
|
532
|
+
"name": "value",
|
|
533
|
+
"description": "Current text value. Native `input` events don't cross the Shadow DOM boundary, so this\ncomponent re-dispatches them as a `bsInput` custom event instead.",
|
|
534
|
+
"type": {
|
|
535
|
+
"text": "string"
|
|
536
|
+
},
|
|
537
|
+
"default": "''",
|
|
538
|
+
"readonly": true,
|
|
539
|
+
"attribute": "value"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"kind": "field",
|
|
543
|
+
"name": "variant",
|
|
544
|
+
"description": "Which flavor of composer this is: changes the *default* placeholder text (set `placeholder`\ndirectly to override it) and, per the Figma design, renders the container border dashed\ninstead of solid for `'human'` -- a deliberate visual cue distinguishing a human-support\ncomposer from the AI one, not a layout/token difference.",
|
|
545
|
+
"type": {
|
|
546
|
+
"text": "\"ai\" | \"human\"",
|
|
547
|
+
"references": [
|
|
548
|
+
{
|
|
549
|
+
"name": "BsComposerVariant"
|
|
550
|
+
}
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
"default": "'ai'",
|
|
554
|
+
"readonly": true,
|
|
555
|
+
"attribute": "variant"
|
|
556
|
+
}
|
|
557
|
+
],
|
|
558
|
+
"events": [
|
|
559
|
+
{
|
|
560
|
+
"name": "bsAttach",
|
|
561
|
+
"description": "Fires when the \"+\" attach button is clicked.",
|
|
562
|
+
"type": {
|
|
563
|
+
"text": "CustomEvent<void>"
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"name": "bsInput",
|
|
568
|
+
"description": "Fires on every keystroke in the text field, with the current value.",
|
|
569
|
+
"type": {
|
|
570
|
+
"text": "CustomEvent<string>"
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"name": "bsMicToggle",
|
|
575
|
+
"description": "Fires when the mic/stop-recording button is clicked. The consumer decides what that means\n(e.g. start recording when idle/generating, or stop recording when `state=\"recording\"`).",
|
|
576
|
+
"type": {
|
|
577
|
+
"text": "CustomEvent<void>"
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"name": "bsStop",
|
|
582
|
+
"description": "Fires when the primary action button is clicked while `state=\"generating\"`.",
|
|
583
|
+
"type": {
|
|
584
|
+
"text": "CustomEvent<void>"
|
|
585
|
+
}
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"name": "bsSubmit",
|
|
589
|
+
"description": "Fires when the primary action button is clicked while `state=\"idle\"`.",
|
|
590
|
+
"type": {
|
|
591
|
+
"text": "CustomEvent<void>"
|
|
592
|
+
}
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"name": "bsVoiceConfirm",
|
|
596
|
+
"description": "Fires when the primary action button is clicked while `state=\"recording\"`.",
|
|
597
|
+
"type": {
|
|
598
|
+
"text": "CustomEvent<void>"
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
],
|
|
602
|
+
"cssParts": [
|
|
603
|
+
{
|
|
604
|
+
"name": "action",
|
|
605
|
+
"description": "The primary circular action button (send, stop, or confirm depending on `state`)."
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"name": "attach",
|
|
609
|
+
"description": "The \"+\" attach button."
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"name": "input",
|
|
613
|
+
"description": "The native text `<input>`."
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"name": "mic",
|
|
617
|
+
"description": "The secondary icon button (microphone, or the stop-recording square while `state=\"recording\"`)."
|
|
618
|
+
}
|
|
619
|
+
]
|
|
620
|
+
}
|
|
621
|
+
],
|
|
622
|
+
"exports": [
|
|
623
|
+
{
|
|
624
|
+
"kind": "js",
|
|
625
|
+
"name": "BsComposer",
|
|
626
|
+
"declaration": {
|
|
627
|
+
"name": "BsComposer"
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"kind": "custom-element-definition",
|
|
632
|
+
"name": "bs-composer",
|
|
633
|
+
"declaration": {
|
|
634
|
+
"name": "BsComposer"
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"kind": "javascript-module",
|
|
641
|
+
"path": "src/components/bs-data-table/bs-data-table.tsx",
|
|
642
|
+
"declarations": [
|
|
643
|
+
{
|
|
644
|
+
"kind": "class",
|
|
645
|
+
"customElement": true,
|
|
646
|
+
"tagName": "bs-data-table",
|
|
647
|
+
"name": "BsDataTable",
|
|
648
|
+
"description": "A sortable, optionally row-selectable table for tabular data.\n\n`columns`, `rows`, and `cellRenderer` are JS-property-only — HTML attributes can only carry\nstrings, so arrays/objects/functions must be set via `element.rows = [...]` etc., not as\nattributes. See CONVENTIONS.md.\n\n## When to use\n- Comparing structured records across the same set of fields (a list of people, bookings, etc.).\n\n## When not to use\n- A handful of unrelated key/value pairs — a simple list or card is lighter-weight.\n- Deeply nested/hierarchical data — this component renders one flat row per record.",
|
|
649
|
+
"attributes": [
|
|
650
|
+
{
|
|
651
|
+
"name": "selectable",
|
|
652
|
+
"type": {
|
|
653
|
+
"text": "boolean"
|
|
654
|
+
},
|
|
655
|
+
"default": "false",
|
|
656
|
+
"fieldName": "selectable"
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"name": "sort-column",
|
|
660
|
+
"type": {
|
|
661
|
+
"text": "string"
|
|
662
|
+
},
|
|
663
|
+
"fieldName": "sortColumn"
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"name": "sort-direction",
|
|
667
|
+
"type": {
|
|
668
|
+
"text": "\"asc\" | \"desc\""
|
|
669
|
+
},
|
|
670
|
+
"default": "'asc'",
|
|
671
|
+
"fieldName": "sortDirection"
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
"members": [
|
|
675
|
+
{
|
|
676
|
+
"kind": "field",
|
|
677
|
+
"name": "cellRenderer",
|
|
678
|
+
"description": "Optional custom cell renderer, e.g. for an actions column. Function props are JS-property-only,\nsame as array props -- there is no attribute equivalent. Falls back to the raw cell value.",
|
|
679
|
+
"type": {
|
|
680
|
+
"text": "(row: BsDataTableRow, column: BsDataTableColumn) => string",
|
|
681
|
+
"references": [
|
|
682
|
+
{
|
|
683
|
+
"name": "BsDataTableRow"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"name": "BsDataTableColumn"
|
|
687
|
+
}
|
|
688
|
+
]
|
|
689
|
+
},
|
|
690
|
+
"readonly": true
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"kind": "field",
|
|
694
|
+
"name": "columns",
|
|
695
|
+
"description": "Array prop -- must be set as a JS property (`el.columns = [...]`), not an HTML attribute,\nsince attributes can only carry strings. See CONVENTIONS.md.",
|
|
696
|
+
"type": {
|
|
697
|
+
"text": "BsDataTableColumn[]",
|
|
698
|
+
"references": [
|
|
699
|
+
{
|
|
700
|
+
"name": "BsDataTableColumn"
|
|
701
|
+
}
|
|
702
|
+
]
|
|
703
|
+
},
|
|
704
|
+
"default": "[]",
|
|
705
|
+
"readonly": true
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"kind": "field",
|
|
709
|
+
"name": "rows",
|
|
710
|
+
"description": "Array prop -- same JS-property-only rule as `columns`.",
|
|
711
|
+
"type": {
|
|
712
|
+
"text": "BsDataTableRow[]",
|
|
713
|
+
"references": [
|
|
714
|
+
{
|
|
715
|
+
"name": "BsDataTableRow"
|
|
716
|
+
}
|
|
717
|
+
]
|
|
718
|
+
},
|
|
719
|
+
"default": "[]",
|
|
720
|
+
"readonly": true
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"kind": "field",
|
|
724
|
+
"name": "selectable",
|
|
725
|
+
"type": {
|
|
726
|
+
"text": "boolean"
|
|
727
|
+
},
|
|
728
|
+
"default": "false",
|
|
729
|
+
"readonly": true,
|
|
730
|
+
"attribute": "selectable"
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"kind": "field",
|
|
734
|
+
"name": "sortColumn",
|
|
735
|
+
"type": {
|
|
736
|
+
"text": "string"
|
|
737
|
+
},
|
|
738
|
+
"readonly": true,
|
|
739
|
+
"attribute": "sort-column"
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"kind": "field",
|
|
743
|
+
"name": "sortDirection",
|
|
744
|
+
"type": {
|
|
745
|
+
"text": "\"asc\" | \"desc\""
|
|
746
|
+
},
|
|
747
|
+
"default": "'asc'",
|
|
748
|
+
"readonly": true,
|
|
749
|
+
"attribute": "sort-direction"
|
|
750
|
+
}
|
|
751
|
+
],
|
|
752
|
+
"events": [
|
|
753
|
+
{
|
|
754
|
+
"name": "bsRowSelect",
|
|
755
|
+
"type": {
|
|
756
|
+
"text": "CustomEvent<{ id: string | number; selected: boolean; }>"
|
|
757
|
+
}
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
"name": "bsSort",
|
|
761
|
+
"type": {
|
|
762
|
+
"text": "CustomEvent<{ column: string; direction: \"desc\" | \"asc\"; }>"
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
],
|
|
766
|
+
"cssParts": [
|
|
767
|
+
{
|
|
768
|
+
"name": "body",
|
|
769
|
+
"description": "The `<tbody>` element."
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
"name": "cell",
|
|
773
|
+
"description": "Each `<td>` in a body row."
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"name": "head",
|
|
777
|
+
"description": "The `<thead>` element."
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"name": "header-cell",
|
|
781
|
+
"description": "Each `<th>` in the header row."
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
"name": "row",
|
|
785
|
+
"description": "Each `<tr>` in the body."
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"name": "table",
|
|
789
|
+
"description": "The `<table>` element."
|
|
790
|
+
}
|
|
791
|
+
]
|
|
792
|
+
}
|
|
793
|
+
],
|
|
794
|
+
"exports": [
|
|
795
|
+
{
|
|
796
|
+
"kind": "js",
|
|
797
|
+
"name": "BsDataTable",
|
|
798
|
+
"declaration": {
|
|
799
|
+
"name": "BsDataTable"
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"kind": "custom-element-definition",
|
|
804
|
+
"name": "bs-data-table",
|
|
805
|
+
"declaration": {
|
|
806
|
+
"name": "BsDataTable"
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
]
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"kind": "javascript-module",
|
|
813
|
+
"path": "src/components/bs-input/bs-input.tsx",
|
|
814
|
+
"declarations": [
|
|
815
|
+
{
|
|
816
|
+
"kind": "class",
|
|
817
|
+
"customElement": true,
|
|
818
|
+
"tagName": "bs-input",
|
|
819
|
+
"name": "BsInput",
|
|
820
|
+
"description": "A single-line text field with an optional label, description, and error state.\n\n## When to use\n- Collecting a single line of free-text, email, password, or numeric input.\n- Pair with `error` for inline validation feedback tied to that specific field.\n\n## When not to use\n- Multi-line text — this component has no `textarea` mode.\n- A fixed set of choices — use a select/radio/checkbox component instead of free text.",
|
|
821
|
+
"attributes": [
|
|
822
|
+
{
|
|
823
|
+
"name": "description",
|
|
824
|
+
"type": {
|
|
825
|
+
"text": "string"
|
|
826
|
+
},
|
|
827
|
+
"fieldName": "description"
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"name": "disabled",
|
|
831
|
+
"type": {
|
|
832
|
+
"text": "boolean"
|
|
833
|
+
},
|
|
834
|
+
"default": "false",
|
|
835
|
+
"fieldName": "disabled"
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
"name": "error",
|
|
839
|
+
"type": {
|
|
840
|
+
"text": "string"
|
|
841
|
+
},
|
|
842
|
+
"fieldName": "error"
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"name": "label",
|
|
846
|
+
"type": {
|
|
847
|
+
"text": "string"
|
|
848
|
+
},
|
|
849
|
+
"fieldName": "label"
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"name": "placeholder",
|
|
853
|
+
"type": {
|
|
854
|
+
"text": "string"
|
|
855
|
+
},
|
|
856
|
+
"fieldName": "placeholder"
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"name": "type",
|
|
860
|
+
"type": {
|
|
861
|
+
"text": "\"email\" | \"number\" | \"password\" | \"text\""
|
|
862
|
+
},
|
|
863
|
+
"default": "'text'",
|
|
864
|
+
"fieldName": "type"
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
"name": "value",
|
|
868
|
+
"description": "Current value. Native `input`/`change` events don't cross the Shadow DOM boundary, so this\ncomponent re-dispatches them as `bsInput`/`bsChange` custom events instead.",
|
|
869
|
+
"type": {
|
|
870
|
+
"text": "string"
|
|
871
|
+
},
|
|
872
|
+
"default": "''",
|
|
873
|
+
"fieldName": "value"
|
|
874
|
+
}
|
|
875
|
+
],
|
|
876
|
+
"members": [
|
|
877
|
+
{
|
|
878
|
+
"kind": "field",
|
|
879
|
+
"name": "description",
|
|
880
|
+
"type": {
|
|
881
|
+
"text": "string"
|
|
882
|
+
},
|
|
883
|
+
"readonly": true,
|
|
884
|
+
"attribute": "description"
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"kind": "field",
|
|
888
|
+
"name": "disabled",
|
|
889
|
+
"type": {
|
|
890
|
+
"text": "boolean"
|
|
891
|
+
},
|
|
892
|
+
"default": "false",
|
|
893
|
+
"readonly": true,
|
|
894
|
+
"attribute": "disabled"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"kind": "field",
|
|
898
|
+
"name": "error",
|
|
899
|
+
"type": {
|
|
900
|
+
"text": "string"
|
|
901
|
+
},
|
|
902
|
+
"readonly": true,
|
|
903
|
+
"attribute": "error"
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"kind": "field",
|
|
907
|
+
"name": "label",
|
|
908
|
+
"type": {
|
|
909
|
+
"text": "string"
|
|
910
|
+
},
|
|
911
|
+
"readonly": true,
|
|
912
|
+
"attribute": "label"
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
"kind": "field",
|
|
916
|
+
"name": "placeholder",
|
|
917
|
+
"type": {
|
|
918
|
+
"text": "string"
|
|
919
|
+
},
|
|
920
|
+
"readonly": true,
|
|
921
|
+
"attribute": "placeholder"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"kind": "field",
|
|
925
|
+
"name": "type",
|
|
926
|
+
"type": {
|
|
927
|
+
"text": "\"email\" | \"number\" | \"password\" | \"text\""
|
|
928
|
+
},
|
|
929
|
+
"default": "'text'",
|
|
930
|
+
"readonly": true,
|
|
931
|
+
"attribute": "type"
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"kind": "field",
|
|
935
|
+
"name": "value",
|
|
936
|
+
"description": "Current value. Native `input`/`change` events don't cross the Shadow DOM boundary, so this\ncomponent re-dispatches them as `bsInput`/`bsChange` custom events instead.",
|
|
937
|
+
"type": {
|
|
938
|
+
"text": "string"
|
|
939
|
+
},
|
|
940
|
+
"default": "''",
|
|
941
|
+
"readonly": true,
|
|
942
|
+
"attribute": "value"
|
|
943
|
+
}
|
|
944
|
+
],
|
|
945
|
+
"events": [
|
|
946
|
+
{
|
|
947
|
+
"name": "bsChange",
|
|
948
|
+
"type": {
|
|
949
|
+
"text": "CustomEvent<string>"
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
"name": "bsInput",
|
|
954
|
+
"type": {
|
|
955
|
+
"text": "CustomEvent<string>"
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
],
|
|
959
|
+
"cssParts": [
|
|
960
|
+
{
|
|
961
|
+
"name": "control",
|
|
962
|
+
"description": "The native `<input>` element."
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"name": "description",
|
|
966
|
+
"description": "The helper text element (hidden when `error` is set)."
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
"name": "error",
|
|
970
|
+
"description": "The error message element."
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"name": "label",
|
|
974
|
+
"description": "The `<label>` element."
|
|
975
|
+
}
|
|
976
|
+
]
|
|
977
|
+
}
|
|
978
|
+
],
|
|
979
|
+
"exports": [
|
|
980
|
+
{
|
|
981
|
+
"kind": "js",
|
|
982
|
+
"name": "BsInput",
|
|
983
|
+
"declaration": {
|
|
984
|
+
"name": "BsInput"
|
|
985
|
+
}
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
"kind": "custom-element-definition",
|
|
989
|
+
"name": "bs-input",
|
|
990
|
+
"declaration": {
|
|
991
|
+
"name": "BsInput"
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
]
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"kind": "javascript-module",
|
|
998
|
+
"path": "src/components/bs-modal/bs-modal.tsx",
|
|
999
|
+
"declarations": [
|
|
1000
|
+
{
|
|
1001
|
+
"kind": "class",
|
|
1002
|
+
"customElement": true,
|
|
1003
|
+
"tagName": "bs-modal",
|
|
1004
|
+
"name": "BsModal",
|
|
1005
|
+
"description": "An overlay dialog that interrupts the current flow for a focused task or confirmation.\nCloses itself on backdrop click, Escape, or its own close button, and emits `bsClose`.\n\n## When to use\n- Confirming a consequential action (e.g. \"Confirm booking\") before it takes effect.\n- A short, focused task that doesn't warrant navigating to a new page.\n\n## When not to use\n- For non-blocking status messages — use a toast/notification instead of interrupting the user.\n- For a long, multi-step flow — a full page or a dedicated route is usually a better fit than a\n modal that just gets taller and taller.",
|
|
1006
|
+
"attributes": [
|
|
1007
|
+
{
|
|
1008
|
+
"name": "heading",
|
|
1009
|
+
"type": {
|
|
1010
|
+
"text": "string"
|
|
1011
|
+
},
|
|
1012
|
+
"fieldName": "heading"
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"name": "open",
|
|
1016
|
+
"description": "Mutable + reflected so the component can close itself (backdrop click, Escape, close button)\nthe same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.",
|
|
1017
|
+
"type": {
|
|
1018
|
+
"text": "boolean"
|
|
1019
|
+
},
|
|
1020
|
+
"default": "false",
|
|
1021
|
+
"fieldName": "open"
|
|
1022
|
+
},
|
|
1023
|
+
{
|
|
1024
|
+
"name": "size",
|
|
1025
|
+
"type": {
|
|
1026
|
+
"text": "\"lg\" | \"md\" | \"sm\"",
|
|
1027
|
+
"references": [
|
|
1028
|
+
{
|
|
1029
|
+
"name": "BsModalSize"
|
|
1030
|
+
}
|
|
1031
|
+
]
|
|
1032
|
+
},
|
|
1033
|
+
"default": "'md'",
|
|
1034
|
+
"fieldName": "size"
|
|
1035
|
+
}
|
|
1036
|
+
],
|
|
1037
|
+
"members": [
|
|
1038
|
+
{
|
|
1039
|
+
"kind": "field",
|
|
1040
|
+
"name": "heading",
|
|
1041
|
+
"type": {
|
|
1042
|
+
"text": "string"
|
|
1043
|
+
},
|
|
1044
|
+
"readonly": true,
|
|
1045
|
+
"attribute": "heading"
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"kind": "field",
|
|
1049
|
+
"name": "open",
|
|
1050
|
+
"description": "Mutable + reflected so the component can close itself (backdrop click, Escape, close button)\nthe same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.",
|
|
1051
|
+
"type": {
|
|
1052
|
+
"text": "boolean"
|
|
1053
|
+
},
|
|
1054
|
+
"default": "false",
|
|
1055
|
+
"attribute": "open",
|
|
1056
|
+
"reflects": true
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"kind": "field",
|
|
1060
|
+
"name": "size",
|
|
1061
|
+
"type": {
|
|
1062
|
+
"text": "\"lg\" | \"md\" | \"sm\"",
|
|
1063
|
+
"references": [
|
|
1064
|
+
{
|
|
1065
|
+
"name": "BsModalSize"
|
|
1066
|
+
}
|
|
1067
|
+
]
|
|
1068
|
+
},
|
|
1069
|
+
"default": "'md'",
|
|
1070
|
+
"readonly": true,
|
|
1071
|
+
"attribute": "size"
|
|
1072
|
+
}
|
|
1073
|
+
],
|
|
1074
|
+
"events": [
|
|
1075
|
+
{
|
|
1076
|
+
"name": "bsClose",
|
|
1077
|
+
"type": {
|
|
1078
|
+
"text": "CustomEvent<void>"
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
],
|
|
1082
|
+
"slots": [
|
|
1083
|
+
{
|
|
1084
|
+
"name": "",
|
|
1085
|
+
"description": "Default slot: the dialog body content."
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
"name": "footer",
|
|
1089
|
+
"description": "Optional footer content (typically action buttons)."
|
|
1090
|
+
}
|
|
1091
|
+
],
|
|
1092
|
+
"cssParts": [
|
|
1093
|
+
{
|
|
1094
|
+
"name": "backdrop",
|
|
1095
|
+
"description": "The full-viewport overlay behind the dialog."
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"name": "body",
|
|
1099
|
+
"description": "The body content wrapper."
|
|
1100
|
+
},
|
|
1101
|
+
{
|
|
1102
|
+
"name": "close",
|
|
1103
|
+
"description": "The close button."
|
|
1104
|
+
},
|
|
1105
|
+
{
|
|
1106
|
+
"name": "dialog",
|
|
1107
|
+
"description": "The dialog box itself."
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"name": "footer",
|
|
1111
|
+
"description": "The footer wrapper (only visible when the footer slot has content)."
|
|
1112
|
+
},
|
|
1113
|
+
{
|
|
1114
|
+
"name": "header",
|
|
1115
|
+
"description": "The header row (heading + close button)."
|
|
1116
|
+
}
|
|
1117
|
+
]
|
|
1118
|
+
}
|
|
1119
|
+
],
|
|
1120
|
+
"exports": [
|
|
1121
|
+
{
|
|
1122
|
+
"kind": "js",
|
|
1123
|
+
"name": "BsModal",
|
|
1124
|
+
"declaration": {
|
|
1125
|
+
"name": "BsModal"
|
|
1126
|
+
}
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"kind": "custom-element-definition",
|
|
1130
|
+
"name": "bs-modal",
|
|
1131
|
+
"declaration": {
|
|
1132
|
+
"name": "BsModal"
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
]
|
|
1136
|
+
}
|
|
1137
|
+
]
|
|
1138
|
+
}
|