bestax-mcp 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -0
- package/data/catalog.json +1869 -0
- package/data/components/Autocomplete.json +604 -0
- package/data/components/Avatar.json +220 -0
- package/data/components/Avatars.json +294 -0
- package/data/components/Badge.json +261 -0
- package/data/components/Block.json +105 -0
- package/data/components/Box.json +157 -0
- package/data/components/Breadcrumb.json +155 -0
- package/data/components/Button.json +599 -0
- package/data/components/Buttons.json +533 -0
- package/data/components/Card.json +506 -0
- package/data/components/Carousel.json +512 -0
- package/data/components/Cell.json +154 -0
- package/data/components/Checkbox.json +176 -0
- package/data/components/Checkboxes.json +240 -0
- package/data/components/Code.json +128 -0
- package/data/components/Collapse.json +218 -0
- package/data/components/Column.json +284 -0
- package/data/components/Columns.json +542 -0
- package/data/components/ConfigProvider.json +16 -0
- package/data/components/Container.json +149 -0
- package/data/components/Content.json +228 -0
- package/data/components/Control.json +484 -0
- package/data/components/DateInput.json +872 -0
- package/data/components/DateTimeInput.json +952 -0
- package/data/components/Delete.json +153 -0
- package/data/components/Dialog.json +285 -0
- package/data/components/Divider.json +68 -0
- package/data/components/Dropdown.json +353 -0
- package/data/components/Emphasis.json +99 -0
- package/data/components/Field.json +539 -0
- package/data/components/Figure.json +143 -0
- package/data/components/File.json +403 -0
- package/data/components/Footer.json +109 -0
- package/data/components/Grid.json +357 -0
- package/data/components/Hero.json +340 -0
- package/data/components/Icon.json +232 -0
- package/data/components/IconText.json +307 -0
- package/data/components/Image.json +166 -0
- package/data/components/Input.json +583 -0
- package/data/components/Level.json +332 -0
- package/data/components/Link.json +154 -0
- package/data/components/LinkButton.json +247 -0
- package/data/components/ListItem.json +101 -0
- package/data/components/Loading.json +323 -0
- package/data/components/Media.json +345 -0
- package/data/components/Menu.json +317 -0
- package/data/components/Message.json +303 -0
- package/data/components/Modal.json +444 -0
- package/data/components/Navbar.json +996 -0
- package/data/components/Notification.json +165 -0
- package/data/components/Numberinput.json +364 -0
- package/data/components/OrderedList.json +189 -0
- package/data/components/Pagination.json +619 -0
- package/data/components/Panel.json +582 -0
- package/data/components/Paragraph.json +107 -0
- package/data/components/Pre.json +114 -0
- package/data/components/Progress.json +137 -0
- package/data/components/Radio.json +164 -0
- package/data/components/Radios.json +240 -0
- package/data/components/Rate.json +466 -0
- package/data/components/Reveal.json +177 -0
- package/data/components/Section.json +123 -0
- package/data/components/Select.json +526 -0
- package/data/components/Sidebar.json +488 -0
- package/data/components/Skeleton.json +162 -0
- package/data/components/Slider.json +534 -0
- package/data/components/Span.json +100 -0
- package/data/components/Steps.json +452 -0
- package/data/components/Strong.json +105 -0
- package/data/components/SubTitle.json +233 -0
- package/data/components/Switch.json +291 -0
- package/data/components/Table.json +490 -0
- package/data/components/Tabs.json +592 -0
- package/data/components/Tag.json +197 -0
- package/data/components/Taginput.json +587 -0
- package/data/components/Tags.json +181 -0
- package/data/components/TextArea.json +483 -0
- package/data/components/Theme.json +65 -0
- package/data/components/TimeInput.json +906 -0
- package/data/components/Title.json +240 -0
- package/data/components/Toast.json +308 -0
- package/data/components/Tooltip.json +212 -0
- package/data/components/UnorderedList.json +149 -0
- package/data/components/Valid value constants.json +16 -0
- package/data/components/classNames.json +65 -0
- package/data/components/useBulmaClasses.json +169 -0
- package/data/components/usePrefixedClassNames.json +25 -0
- package/data/skills/bestax-custom-component/SKILL.md +196 -0
- package/data/skills/bestax-custom-component/examples/stat-card.tsx +105 -0
- package/data/skills/bestax-custom-component/references/api.md +90 -0
- package/data/skills/bestax-custom-component/references/component-catalog.md +149 -0
- package/data/skills/bestax-custom-component/references/library-contributor.md +395 -0
- package/data/skills/bestax-custom-component/references/patterns.md +136 -0
- package/data/skills/bestax-form/SKILL.md +254 -0
- package/data/skills/bestax-form/references/api.md +103 -0
- package/data/skills/bestax-form/references/patterns.md +210 -0
- package/data/skills/bestax-icons/SKILL.md +80 -0
- package/data/skills/bestax-icons/examples/icon-usage.tsx +80 -0
- package/data/skills/bestax-icons/references/icon-libraries.md +131 -0
- package/data/skills/bestax-layout-scaffold/SKILL.md +196 -0
- package/data/skills/bestax-layout-scaffold/examples/app-shell.tsx +86 -0
- package/data/skills/bestax-layout-scaffold/examples/card-grid.tsx +106 -0
- package/data/skills/bestax-layout-scaffold/examples/centered.tsx +56 -0
- package/data/skills/bestax-layout-scaffold/examples/content-page.tsx +90 -0
- package/data/skills/bestax-layout-scaffold/examples/landing.tsx +122 -0
- package/data/skills/bestax-layout-scaffold/references/archetypes.md +246 -0
- package/data/skills/bestax-layout-scaffold/references/layout-components.md +269 -0
- package/data/skills/bestax-migrate/SKILL.md +78 -0
- package/data/skills/bestax-migrate/references/component-map.md +91 -0
- package/data/skills/bestax-migrate/references/css-migration.md +100 -0
- package/data/skills/bestax-migrate/references/prop-map.md +48 -0
- package/data/skills/bestax-migrate/references/unmappables.md +124 -0
- package/data/skills/bestax-optimize/SKILL.md +131 -0
- package/data/skills/bestax-optimize/references/modular-build.md +173 -0
- package/data/skills/bestax-theming/SKILL.md +117 -0
- package/data/skills/bestax-theming/examples/dark-mode.tsx +38 -0
- package/data/skills/bestax-theming/examples/theme-config.tsx +60 -0
- package/data/skills/bestax-theming/references/css-variables.md +466 -0
- package/data/skills/bestax-theming/references/themeable-components.md +119 -0
- package/data/skills.json +148 -0
- package/dist/data.d.ts +131 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +111 -0
- package/dist/format.d.ts +37 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +178 -0
- package/dist/helper-props.d.ts +57 -0
- package/dist/helper-props.d.ts.map +1 -0
- package/dist/helper-props.js +249 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/search.d.ts +32 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +194 -0
- package/dist/server.d.ts +28 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +616 -0
- package/dist/version.d.ts +29 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +147 -0
- package/package.json +70 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "LinkButton",
|
|
3
|
+
"kind": "component",
|
|
4
|
+
"category": "elements",
|
|
5
|
+
"slug": "elements/linkbutton",
|
|
6
|
+
"docsUrl": "https://bestax.io/docs/api/elements/linkbutton",
|
|
7
|
+
"examples": [
|
|
8
|
+
{
|
|
9
|
+
"title": "Default (Text Variant)",
|
|
10
|
+
"code": "<LinkButton>Click me</LinkButton>"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"title": "Ghost Variant",
|
|
14
|
+
"code": "<LinkButton variant=\"ghost\">Ghost LinkButton</LinkButton>"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"title": "Underline Variant",
|
|
18
|
+
"code": "<LinkButton variant=\"underline\">Go back and edit</LinkButton>"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"title": "Text Variant with Color",
|
|
22
|
+
"code": "<LinkButton color=\"primary\">Primary Text</LinkButton>"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"title": "Ghost Variant with Color",
|
|
26
|
+
"code": "<LinkButton variant=\"ghost\" color=\"danger\">\n Danger Ghost\n</LinkButton>"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"title": "All Colors",
|
|
30
|
+
"code": "<Buttons>\n {['primary', 'link', 'info', 'success', 'warning', 'danger'].map(color => (\n <LinkButton key={color} color={color}>\n {color.charAt(0).toUpperCase() + color.slice(1)}\n </LinkButton>\n ))}\n</Buttons>"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"title": "Disabled",
|
|
34
|
+
"code": "<LinkButton isDisabled disabled>\n Disabled LinkButton\n</LinkButton>"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"title": "All Sizes",
|
|
38
|
+
"code": "<Buttons>\n {['small', 'normal', 'medium', 'large'].map(size => (\n <LinkButton key={size} size={size}>\n {size.charAt(0).toUpperCase() + size.slice(1)}\n </LinkButton>\n ))}\n</Buttons>"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"title": "Polymorphic `as` (Router Links)",
|
|
42
|
+
"code": "import { Link as RouterLink } from 'react-router-dom';\nimport { LinkButton } from '@allxsmith/bestax-bulma';\n\n<LinkButton as={RouterLink} to=\"/dashboard\" variant=\"underline\">\n Go to Dashboard\n</LinkButton>;"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"accessibility": "- **Semantic HTML:** Renders a native `<button>` element, providing correct keyboard navigation, focus management, and screen reader announcements.\n- **States:** The `isDisabled` and `disabled` props ensure correct `aria-disabled` and `disabled` attributes.\n- **Keyboard:** Fully keyboard accessible with Enter and Space activation.\n- **Replaces anti-patterns:** Use this instead of `<div onClick>` or `<span onClick>` for interactive elements that should not navigate.\n\n:::note\nIf your LinkButton has only an icon, use `aria-label` to provide accessible text.\n:::",
|
|
46
|
+
"related": ["Button", "Buttons", "useBulmaClasses"],
|
|
47
|
+
"storybook": "https://bestax.io/storybook/?path=/story/elements-linkbutton--default",
|
|
48
|
+
"summary": "The `LinkButton` component renders a `<button>` that visually looks like text or a link.",
|
|
49
|
+
"import": "import { LinkButton } from '@allxsmith/bestax-bulma';",
|
|
50
|
+
"sourceFile": "bulma-ui/src/elements/LinkButton.tsx",
|
|
51
|
+
"rootClass": "link-button",
|
|
52
|
+
"parts": [
|
|
53
|
+
{
|
|
54
|
+
"path": "LinkButton",
|
|
55
|
+
"summary": "The `LinkButton` component renders a `<button>` that visually looks like text or a link.",
|
|
56
|
+
"component": null,
|
|
57
|
+
"props": [
|
|
58
|
+
{
|
|
59
|
+
"name": "variant",
|
|
60
|
+
"type": "'text' | 'ghost' | 'underline'",
|
|
61
|
+
"default": "'text'",
|
|
62
|
+
"description": "Display mode. `text` has no underline and highlights its background on hover; `ghost` uses the default text color and underlines on hover; `underline` drops the button chrome entirely (transparent background and border) and underlines on hover or focus.",
|
|
63
|
+
"required": false,
|
|
64
|
+
"inherited": false,
|
|
65
|
+
"deprecated": false
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "color",
|
|
69
|
+
"type": "'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'white' | 'light' | 'dark' | 'black'",
|
|
70
|
+
"default": null,
|
|
71
|
+
"description": "Text color override for the button.",
|
|
72
|
+
"required": false,
|
|
73
|
+
"inherited": false,
|
|
74
|
+
"deprecated": false
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "size",
|
|
78
|
+
"type": "'small' | 'normal' | 'medium' | 'large'",
|
|
79
|
+
"default": null,
|
|
80
|
+
"description": "Size of the button.",
|
|
81
|
+
"required": false,
|
|
82
|
+
"inherited": true,
|
|
83
|
+
"deprecated": false
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "isRounded",
|
|
87
|
+
"type": "boolean",
|
|
88
|
+
"default": "false",
|
|
89
|
+
"description": "Makes the button rounded.",
|
|
90
|
+
"required": false,
|
|
91
|
+
"inherited": true,
|
|
92
|
+
"deprecated": false
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "isLoading",
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"default": "false",
|
|
98
|
+
"description": "Displays a loading spinner.",
|
|
99
|
+
"required": false,
|
|
100
|
+
"inherited": true,
|
|
101
|
+
"deprecated": false
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "isStatic",
|
|
105
|
+
"type": "boolean",
|
|
106
|
+
"default": "false",
|
|
107
|
+
"description": "Makes the button non-interactive.",
|
|
108
|
+
"required": false,
|
|
109
|
+
"inherited": true,
|
|
110
|
+
"deprecated": false
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "isFullWidth",
|
|
114
|
+
"type": "boolean",
|
|
115
|
+
"default": "false",
|
|
116
|
+
"description": "Makes the button full-width.",
|
|
117
|
+
"required": false,
|
|
118
|
+
"inherited": true,
|
|
119
|
+
"deprecated": false
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "isFocused",
|
|
123
|
+
"type": "boolean",
|
|
124
|
+
"default": "false",
|
|
125
|
+
"description": "Applies focused styling (visual only).",
|
|
126
|
+
"required": false,
|
|
127
|
+
"inherited": true,
|
|
128
|
+
"deprecated": false
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "isActive",
|
|
132
|
+
"type": "boolean",
|
|
133
|
+
"default": "false",
|
|
134
|
+
"description": "Applies active styling (visual only).",
|
|
135
|
+
"required": false,
|
|
136
|
+
"inherited": true,
|
|
137
|
+
"deprecated": false
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "isHovered",
|
|
141
|
+
"type": "boolean",
|
|
142
|
+
"default": "false",
|
|
143
|
+
"description": "Applies hovered styling (visual only).",
|
|
144
|
+
"required": false,
|
|
145
|
+
"inherited": true,
|
|
146
|
+
"deprecated": false
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "isDisabled",
|
|
150
|
+
"type": "boolean",
|
|
151
|
+
"default": "false",
|
|
152
|
+
"description": "Applies disabled styling.",
|
|
153
|
+
"required": false,
|
|
154
|
+
"inherited": true,
|
|
155
|
+
"deprecated": false
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "className",
|
|
159
|
+
"type": "string",
|
|
160
|
+
"default": null,
|
|
161
|
+
"description": "Custom class name.",
|
|
162
|
+
"required": false,
|
|
163
|
+
"inherited": true,
|
|
164
|
+
"deprecated": false
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "textColor",
|
|
168
|
+
"type": "Bulma color | 'inherit' | 'current'",
|
|
169
|
+
"default": null,
|
|
170
|
+
"description": "Text color helper.",
|
|
171
|
+
"required": false,
|
|
172
|
+
"inherited": true,
|
|
173
|
+
"deprecated": false,
|
|
174
|
+
"valuesRef": "helpers/valid-values"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "bgColor",
|
|
178
|
+
"type": "Bulma color | 'inherit' | 'current'",
|
|
179
|
+
"default": null,
|
|
180
|
+
"description": "Background color helper.",
|
|
181
|
+
"required": false,
|
|
182
|
+
"inherited": true,
|
|
183
|
+
"deprecated": false,
|
|
184
|
+
"valuesRef": "helpers/valid-values"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "as",
|
|
188
|
+
"type": "React.ElementType",
|
|
189
|
+
"default": "'button'",
|
|
190
|
+
"description": "Render as a `<button>`, `<a>`, or a custom component (e.g. a router `Link`). Defaults to `'button'`; anything else (including `'a'`) uses anchor-style prop handling.",
|
|
191
|
+
"required": false,
|
|
192
|
+
"inherited": true,
|
|
193
|
+
"deprecated": false
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "href",
|
|
197
|
+
"type": "string",
|
|
198
|
+
"default": null,
|
|
199
|
+
"description": "Href value (if rendering as `<a>`).",
|
|
200
|
+
"required": false,
|
|
201
|
+
"inherited": true,
|
|
202
|
+
"deprecated": false
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"name": "onClick",
|
|
206
|
+
"type": "React.MouseEventHandler<HTMLButtonElement> | React.MouseEventHandler<HTMLAnchorElement>",
|
|
207
|
+
"default": null,
|
|
208
|
+
"description": "Click event handler.",
|
|
209
|
+
"required": false,
|
|
210
|
+
"inherited": true,
|
|
211
|
+
"deprecated": false
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "target",
|
|
215
|
+
"type": "string",
|
|
216
|
+
"default": null,
|
|
217
|
+
"description": "Anchor tag target.",
|
|
218
|
+
"required": false,
|
|
219
|
+
"inherited": true,
|
|
220
|
+
"deprecated": false
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "rel",
|
|
224
|
+
"type": "string",
|
|
225
|
+
"default": null,
|
|
226
|
+
"description": "Anchor tag rel.",
|
|
227
|
+
"required": false,
|
|
228
|
+
"inherited": true,
|
|
229
|
+
"deprecated": false
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "children",
|
|
233
|
+
"type": "React.ReactNode",
|
|
234
|
+
"default": null,
|
|
235
|
+
"description": "Button content.",
|
|
236
|
+
"required": false,
|
|
237
|
+
"inherited": true,
|
|
238
|
+
"deprecated": false
|
|
239
|
+
}
|
|
240
|
+
],
|
|
241
|
+
"extraProps": [],
|
|
242
|
+
"catchAll": "All standard <button> attributes and Bulma helper props",
|
|
243
|
+
"types": []
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"cssVars": []
|
|
247
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ListItem",
|
|
3
|
+
"kind": "component",
|
|
4
|
+
"category": "elements",
|
|
5
|
+
"slug": "elements/listitem",
|
|
6
|
+
"docsUrl": "https://bestax.io/docs/api/elements/listitem",
|
|
7
|
+
"examples": [
|
|
8
|
+
{
|
|
9
|
+
"title": "Default List Item",
|
|
10
|
+
"code": "<Content>\n <UnorderedList>\n <ListItem>Default List Item</ListItem>\n <ListItem>Another item</ListItem>\n </UnorderedList>\n</Content>"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"title": "Colored List Item",
|
|
14
|
+
"code": "<Content>\n <UnorderedList>\n <ListItem textColor=\"primary\">Primary item</ListItem>\n <ListItem textColor=\"success\">Success item</ListItem>\n <ListItem textColor=\"warning\">Warning item</ListItem>\n <ListItem textColor=\"danger\">Danger item</ListItem>\n </UnorderedList>\n</Content>"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"title": "Custom Value in Ordered List",
|
|
18
|
+
"code": "<Content>\n <OrderedList>\n <ListItem>First item</ListItem>\n <ListItem value={10}>Tenth item (custom value)</ListItem>\n <ListItem>Eleventh item</ListItem>\n </OrderedList>\n</Content>"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"title": "All Colors",
|
|
22
|
+
"code": "<Content>\n <UnorderedList>\n <ListItem textColor=\"primary\">Primary</ListItem>\n <ListItem textColor=\"link\">Link</ListItem>\n <ListItem textColor=\"info\">Info</ListItem>\n <ListItem textColor=\"success\">Success</ListItem>\n <ListItem textColor=\"warning\">Warning</ListItem>\n <ListItem textColor=\"danger\">Danger</ListItem>\n </UnorderedList>\n</Content>"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"title": "Spaced List Items",
|
|
26
|
+
"code": "<Content>\n <UnorderedList>\n <ListItem mb=\"3\">Item with extra bottom margin</ListItem>\n <ListItem mb=\"3\">Another spaced item</ListItem>\n <ListItem>Last item</ListItem>\n </UnorderedList>\n</Content>"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"title": "In Ordered List",
|
|
30
|
+
"code": "<Content>\n <OrderedList>\n <ListItem>First item</ListItem>\n <ListItem textColor=\"success\">Second item (success)</ListItem>\n <ListItem>Third item</ListItem>\n </OrderedList>\n</Content>"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"accessibility": "- **Semantic Markup:** Using proper `<li>` elements inside `<ul>` or `<ol>` ensures correct accessibility semantics.\n- **Color Contrast:** When using colored text or backgrounds, ensure sufficient contrast for readability.\n- **Screen Readers:** List items are announced as part of the list structure by screen readers.\n\n:::info\nAlways use `ListItem` inside `UnorderedList` or `OrderedList` for proper semantic structure.\n:::",
|
|
34
|
+
"related": ["Content", "OrderedList", "UnorderedList", "useBulmaClasses"],
|
|
35
|
+
"storybook": "https://bestax.io/storybook/?path=/story/elements-listitem--default",
|
|
36
|
+
"summary": "The `ListItem` component renders a styled list item (`<li>`) element with Bulma helper class integration.",
|
|
37
|
+
"import": "import { ListItem, UnorderedList, OrderedList } from '@allxsmith/bestax-bulma';",
|
|
38
|
+
"sourceFile": "bulma-ui/src/elements/ListItem.tsx",
|
|
39
|
+
"rootClass": null,
|
|
40
|
+
"parts": [
|
|
41
|
+
{
|
|
42
|
+
"path": "ListItem",
|
|
43
|
+
"summary": "The `ListItem` component renders a styled list item (`<li>`) element with Bulma helper class integration.",
|
|
44
|
+
"component": null,
|
|
45
|
+
"props": [
|
|
46
|
+
{
|
|
47
|
+
"name": "className",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"default": null,
|
|
50
|
+
"description": "Additional CSS classes to apply.",
|
|
51
|
+
"required": false,
|
|
52
|
+
"inherited": false,
|
|
53
|
+
"deprecated": false
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "textColor",
|
|
57
|
+
"type": "Bulma color | 'inherit' | 'current'",
|
|
58
|
+
"default": null,
|
|
59
|
+
"description": "Text color helper.",
|
|
60
|
+
"required": false,
|
|
61
|
+
"inherited": false,
|
|
62
|
+
"deprecated": false,
|
|
63
|
+
"valuesRef": "helpers/valid-values"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "bgColor",
|
|
67
|
+
"type": "Bulma color | 'inherit' | 'current'",
|
|
68
|
+
"default": null,
|
|
69
|
+
"description": "Background color helper.",
|
|
70
|
+
"required": false,
|
|
71
|
+
"inherited": false,
|
|
72
|
+
"deprecated": false,
|
|
73
|
+
"valuesRef": "helpers/valid-values"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "children",
|
|
77
|
+
"type": "React.ReactNode",
|
|
78
|
+
"default": null,
|
|
79
|
+
"description": "Content to render inside the list item.",
|
|
80
|
+
"required": false,
|
|
81
|
+
"inherited": false,
|
|
82
|
+
"deprecated": false
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"extraProps": [
|
|
86
|
+
{
|
|
87
|
+
"name": "value",
|
|
88
|
+
"type": "number",
|
|
89
|
+
"default": null,
|
|
90
|
+
"description": "Custom value for ordered list items.",
|
|
91
|
+
"required": false,
|
|
92
|
+
"inherited": false,
|
|
93
|
+
"deprecated": false
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"catchAll": "All standard <li> attributes and Bulma helper props",
|
|
97
|
+
"types": []
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"cssVars": []
|
|
101
|
+
}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Loading",
|
|
3
|
+
"kind": "component",
|
|
4
|
+
"category": "components",
|
|
5
|
+
"slug": "components/loading",
|
|
6
|
+
"docsUrl": "https://bestax.io/docs/api/components/loading",
|
|
7
|
+
"examples": [
|
|
8
|
+
{
|
|
9
|
+
"title": "Basic Loading",
|
|
10
|
+
"code": "function example() {\n return (\n <Box relative style={{ minHeight: '300px' }}>\n <Loading active>Loading...</Loading>\n <Paragraph>This content is behind the loading overlay.</Paragraph>\n </Box>\n );\n}"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"title": "Without Message",
|
|
14
|
+
"code": "function example() {\n return (\n <Box relative style={{ height: '200px' }}>\n <Loading active />\n </Box>\n );\n}"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"title": "Spinner Sizes",
|
|
18
|
+
"code": "function example() {\n return (\n <Columns>\n <Column>\n <Box relative style={{ height: '200px' }}>\n <Loading active size=\"small\">\n Small\n </Loading>\n </Box>\n </Column>\n <Column>\n <Box relative style={{ height: '200px' }}>\n <Loading active>Default</Loading>\n </Box>\n </Column>\n <Column>\n <Box relative style={{ height: '200px' }}>\n <Loading active size=\"medium\">\n Medium\n </Loading>\n </Box>\n </Column>\n <Column>\n <Box relative style={{ height: '200px' }}>\n <Loading active size=\"large\">\n Large\n </Loading>\n </Box>\n </Column>\n </Columns>\n );\n}"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"title": "Spinner Colors",
|
|
22
|
+
"code": "function example() {\n return (\n <Columns isMultiline>\n <Column size=\"4\">\n <Box relative style={{ height: '150px' }}>\n <Loading active>Default</Loading>\n </Box>\n </Column>\n <Column size=\"4\">\n <Box relative style={{ height: '150px' }}>\n <Loading active color=\"primary\">\n Primary\n </Loading>\n </Box>\n </Column>\n <Column size=\"4\">\n <Box relative style={{ height: '150px' }}>\n <Loading active color=\"info\">\n Info\n </Loading>\n </Box>\n </Column>\n <Column size=\"4\">\n <Box relative style={{ height: '150px' }}>\n <Loading active color=\"success\">\n Success\n </Loading>\n </Box>\n </Column>\n <Column size=\"4\">\n <Box relative style={{ height: '150px' }}>\n <Loading active color=\"warning\">\n Warning\n </Loading>\n </Box>\n </Column>\n <Column size=\"4\">\n <Box relative style={{ height: '150px' }}>\n <Loading active color=\"danger\">\n Danger\n </Loading>\n </Box>\n </Column>\n </Columns>\n );\n}"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"title": "With Cancel Button",
|
|
26
|
+
"code": "function example() {\n const [isLoading, setIsLoading] = useState(true);\n\n return (\n <>\n <Box relative style={{ height: '200px' }}>\n <Loading\n active={isLoading}\n canCancel\n onCancel={() => setIsLoading(false)}\n >\n Click cancel or press Escape\n </Loading>\n <Paragraph p=\"4\">Content behind the overlay.</Paragraph>\n </Box>\n {!isLoading && (\n <Button color=\"primary\" mt=\"4\" onClick={() => setIsLoading(true)}>\n Show Loading\n </Button>\n )}\n </>\n );\n}"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"title": "Full Page Loading",
|
|
30
|
+
"code": "function example() {\n const [isLoading, setIsLoading] = useState(false);\n\n return (\n <>\n <Button color=\"primary\" onClick={() => setIsLoading(true)}>\n Show Full Page Loading\n </Button>\n <Loading\n active={isLoading}\n isFullPage\n canCancel\n onCancel={() => setIsLoading(false)}\n >\n Full page loading... Click cancel or press Escape\n </Loading>\n </>\n );\n}"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"title": "Triggered by Button",
|
|
34
|
+
"code": "function example() {\n const [isLoading, setIsLoading] = useState(false);\n\n const handleClick = () => {\n setIsLoading(true);\n // Simulate async operation\n setTimeout(() => setIsLoading(false), 2000);\n };\n\n return (\n <Box relative p=\"5\" style={{ height: '150px' }}>\n <Loading active={isLoading}>Loading data...</Loading>\n <Paragraph>Click the button to see the loading overlay.</Paragraph>\n <Button color=\"primary\" onClick={handleClick} disabled={isLoading} mt=\"3\">\n Load Data\n </Button>\n </Box>\n );\n}"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"accessibility": "- Uses `role=\"alert\"` to announce loading state to screen readers\n- Has `aria-busy=\"true\"` to indicate loading status\n- Has `aria-label=\"Loading\"` for the loading container\n- Cancel button has proper `aria-label` for accessibility\n- Escape key support for cancelling (when `canCancel` is true)",
|
|
38
|
+
"related": [],
|
|
39
|
+
"storybook": null,
|
|
40
|
+
"summary": "The `Loading` component provides a loading overlay with a spinner animation.",
|
|
41
|
+
"import": "import { Loading } from '@allxsmith/bestax-bulma';",
|
|
42
|
+
"sourceFile": "bulma-ui/src/components/Loading.tsx",
|
|
43
|
+
"rootClass": "loading",
|
|
44
|
+
"parts": [
|
|
45
|
+
{
|
|
46
|
+
"path": "Loading",
|
|
47
|
+
"summary": "The `Loading` component provides a loading overlay with a spinner animation.",
|
|
48
|
+
"component": null,
|
|
49
|
+
"props": [
|
|
50
|
+
{
|
|
51
|
+
"name": "active",
|
|
52
|
+
"type": "boolean",
|
|
53
|
+
"default": "false",
|
|
54
|
+
"description": "Whether the loading overlay is visible.",
|
|
55
|
+
"required": false,
|
|
56
|
+
"inherited": false,
|
|
57
|
+
"deprecated": false
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "isFullPage",
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"default": "false",
|
|
63
|
+
"description": "Cover the entire viewport.",
|
|
64
|
+
"required": false,
|
|
65
|
+
"inherited": false,
|
|
66
|
+
"deprecated": false
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "size",
|
|
70
|
+
"type": "'small' | 'medium' | 'large'",
|
|
71
|
+
"default": null,
|
|
72
|
+
"description": "Size of the loading spinner.",
|
|
73
|
+
"required": false,
|
|
74
|
+
"inherited": false,
|
|
75
|
+
"deprecated": false
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "color",
|
|
79
|
+
"type": "'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'",
|
|
80
|
+
"default": null,
|
|
81
|
+
"description": "Color variant for the spinner. Default is light grey.",
|
|
82
|
+
"required": false,
|
|
83
|
+
"inherited": false,
|
|
84
|
+
"deprecated": false
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "canCancel",
|
|
88
|
+
"type": "boolean",
|
|
89
|
+
"default": "false",
|
|
90
|
+
"description": "Show a cancel button and allow closing.",
|
|
91
|
+
"required": false,
|
|
92
|
+
"inherited": false,
|
|
93
|
+
"deprecated": false
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "onCancel",
|
|
97
|
+
"type": "() => void",
|
|
98
|
+
"default": null,
|
|
99
|
+
"description": "Callback when cancel is triggered.",
|
|
100
|
+
"required": false,
|
|
101
|
+
"inherited": false,
|
|
102
|
+
"deprecated": false
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "overlayClassName",
|
|
106
|
+
"type": "string",
|
|
107
|
+
"default": null,
|
|
108
|
+
"description": "Additional classes for the overlay.",
|
|
109
|
+
"required": false,
|
|
110
|
+
"inherited": false,
|
|
111
|
+
"deprecated": false
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "iconClassName",
|
|
115
|
+
"type": "string",
|
|
116
|
+
"default": null,
|
|
117
|
+
"description": "Additional classes for the spinner icon.",
|
|
118
|
+
"required": false,
|
|
119
|
+
"inherited": false,
|
|
120
|
+
"deprecated": false
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "indicator",
|
|
124
|
+
"type": "React.ReactNode",
|
|
125
|
+
"default": null,
|
|
126
|
+
"description": "Custom loading indicator element.",
|
|
127
|
+
"required": false,
|
|
128
|
+
"inherited": false,
|
|
129
|
+
"deprecated": false
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "overlay",
|
|
133
|
+
"type": "'light' | 'dark' | 'opaque'",
|
|
134
|
+
"default": null,
|
|
135
|
+
"description": "Style of the loading overlay.",
|
|
136
|
+
"required": false,
|
|
137
|
+
"inherited": false,
|
|
138
|
+
"deprecated": false
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"extraProps": [
|
|
142
|
+
{
|
|
143
|
+
"name": "children",
|
|
144
|
+
"type": "React.ReactNode",
|
|
145
|
+
"default": null,
|
|
146
|
+
"description": "Content to display below the spinner.",
|
|
147
|
+
"required": false,
|
|
148
|
+
"inherited": false,
|
|
149
|
+
"deprecated": false
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "className",
|
|
153
|
+
"type": "string",
|
|
154
|
+
"default": null,
|
|
155
|
+
"description": "Additional CSS classes.",
|
|
156
|
+
"required": false,
|
|
157
|
+
"inherited": false,
|
|
158
|
+
"deprecated": false
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
"catchAll": "All standard <div> attributes and Bulma helper props",
|
|
162
|
+
"types": []
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"cssVars": [
|
|
166
|
+
{
|
|
167
|
+
"css": "--bulma-loading-overlay-background",
|
|
168
|
+
"sass": "$loading-overlay-background",
|
|
169
|
+
"default": "var(--bulma-scheme-main)",
|
|
170
|
+
"scope": "component"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"css": "--bulma-loading-overlay-opacity",
|
|
174
|
+
"sass": "$loading-overlay-opacity",
|
|
175
|
+
"default": "0.7",
|
|
176
|
+
"scope": "component"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"css": "--bulma-loading-overlay-fullpage-opacity",
|
|
180
|
+
"sass": "$loading-overlay-fullpage-opacity",
|
|
181
|
+
"default": "0.8",
|
|
182
|
+
"scope": "component"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"css": "--bulma-loading-overlay-opacity-light",
|
|
186
|
+
"sass": "$loading-overlay-opacity-light",
|
|
187
|
+
"default": "0.4",
|
|
188
|
+
"scope": "component"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"css": "--bulma-loading-overlay-opacity-dark",
|
|
192
|
+
"sass": "$loading-overlay-opacity-dark",
|
|
193
|
+
"default": "0.85",
|
|
194
|
+
"scope": "component"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"css": "--bulma-loading-overlay-opacity-opaque",
|
|
198
|
+
"sass": "$loading-overlay-opacity-opaque",
|
|
199
|
+
"default": "1",
|
|
200
|
+
"scope": "component"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"css": "--bulma-loading-icon-size",
|
|
204
|
+
"sass": "$loading-icon-size",
|
|
205
|
+
"default": "4.5em",
|
|
206
|
+
"scope": "component"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"css": "--bulma-loading-icon-size-small",
|
|
210
|
+
"sass": "$loading-icon-size-small",
|
|
211
|
+
"default": "3em",
|
|
212
|
+
"scope": "component"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"css": "--bulma-loading-icon-size-medium",
|
|
216
|
+
"sass": "$loading-icon-size-medium",
|
|
217
|
+
"default": "6em",
|
|
218
|
+
"scope": "component"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"css": "--bulma-loading-icon-size-large",
|
|
222
|
+
"sass": "$loading-icon-size-large",
|
|
223
|
+
"default": "7.5em",
|
|
224
|
+
"scope": "component"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"css": "--bulma-loading-icon-border-width",
|
|
228
|
+
"sass": "$loading-icon-border-width",
|
|
229
|
+
"default": "0.25em",
|
|
230
|
+
"scope": "component"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"css": "--bulma-loading-icon-border-width-small",
|
|
234
|
+
"sass": "$loading-icon-border-width-small",
|
|
235
|
+
"default": "0.2em",
|
|
236
|
+
"scope": "component"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"css": "--bulma-loading-icon-border-width-medium",
|
|
240
|
+
"sass": "$loading-icon-border-width-medium",
|
|
241
|
+
"default": "0.3em",
|
|
242
|
+
"scope": "component"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"css": "--bulma-loading-icon-border-width-large",
|
|
246
|
+
"sass": "$loading-icon-border-width-large",
|
|
247
|
+
"default": "0.375em",
|
|
248
|
+
"scope": "component"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"css": "--bulma-loading-icon-spin-color",
|
|
252
|
+
"sass": "$loading-icon-spin-color",
|
|
253
|
+
"default": "var(--bulma-grey-light)",
|
|
254
|
+
"scope": "component"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"css": "--bulma-loading-text-color",
|
|
258
|
+
"sass": "$loading-text-color",
|
|
259
|
+
"default": "var(--bulma-text)",
|
|
260
|
+
"scope": "component"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"css": "--bulma-loading-text-size",
|
|
264
|
+
"sass": "$loading-text-size",
|
|
265
|
+
"default": "var(--bulma-size-normal)",
|
|
266
|
+
"scope": "component"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"css": "--bulma-loading-content-gap",
|
|
270
|
+
"sass": "$loading-content-gap",
|
|
271
|
+
"default": "1rem",
|
|
272
|
+
"scope": "component"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"css": "--bulma-loading-cancel-color",
|
|
276
|
+
"sass": "$loading-cancel-color",
|
|
277
|
+
"default": "var(--bulma-text-light)",
|
|
278
|
+
"scope": "component"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"css": "--bulma-loading-cancel-border-color",
|
|
282
|
+
"sass": "$loading-cancel-border-color",
|
|
283
|
+
"default": "var(--bulma-border)",
|
|
284
|
+
"scope": "component"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"css": "--bulma-loading-cancel-background",
|
|
288
|
+
"sass": "$loading-cancel-background",
|
|
289
|
+
"default": "var(--bulma-scheme-main)",
|
|
290
|
+
"scope": "component"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"css": "--bulma-loading-cancel-hover-color",
|
|
294
|
+
"sass": "$loading-cancel-hover-color",
|
|
295
|
+
"default": "var(--bulma-text)",
|
|
296
|
+
"scope": "component"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"css": "--bulma-loading-cancel-hover-border-color",
|
|
300
|
+
"sass": "$loading-cancel-hover-border-color",
|
|
301
|
+
"default": "var(--bulma-text-light)",
|
|
302
|
+
"scope": "component"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"css": "--bulma-loading-cancel-radius",
|
|
306
|
+
"sass": "$loading-cancel-radius",
|
|
307
|
+
"default": "var(--bulma-radius)",
|
|
308
|
+
"scope": "component"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"css": "--bulma-loading-cancel-size",
|
|
312
|
+
"sass": "$loading-cancel-size",
|
|
313
|
+
"default": "var(--bulma-size-small)",
|
|
314
|
+
"scope": "component"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"css": "--bulma-loading-animation-duration",
|
|
318
|
+
"sass": "$loading-animation-duration",
|
|
319
|
+
"default": "0.75s",
|
|
320
|
+
"scope": "component"
|
|
321
|
+
}
|
|
322
|
+
]
|
|
323
|
+
}
|