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.
Files changed (144) hide show
  1. package/README.md +90 -0
  2. package/data/catalog.json +1869 -0
  3. package/data/components/Autocomplete.json +604 -0
  4. package/data/components/Avatar.json +220 -0
  5. package/data/components/Avatars.json +294 -0
  6. package/data/components/Badge.json +261 -0
  7. package/data/components/Block.json +105 -0
  8. package/data/components/Box.json +157 -0
  9. package/data/components/Breadcrumb.json +155 -0
  10. package/data/components/Button.json +599 -0
  11. package/data/components/Buttons.json +533 -0
  12. package/data/components/Card.json +506 -0
  13. package/data/components/Carousel.json +512 -0
  14. package/data/components/Cell.json +154 -0
  15. package/data/components/Checkbox.json +176 -0
  16. package/data/components/Checkboxes.json +240 -0
  17. package/data/components/Code.json +128 -0
  18. package/data/components/Collapse.json +218 -0
  19. package/data/components/Column.json +284 -0
  20. package/data/components/Columns.json +542 -0
  21. package/data/components/ConfigProvider.json +16 -0
  22. package/data/components/Container.json +149 -0
  23. package/data/components/Content.json +228 -0
  24. package/data/components/Control.json +484 -0
  25. package/data/components/DateInput.json +872 -0
  26. package/data/components/DateTimeInput.json +952 -0
  27. package/data/components/Delete.json +153 -0
  28. package/data/components/Dialog.json +285 -0
  29. package/data/components/Divider.json +68 -0
  30. package/data/components/Dropdown.json +353 -0
  31. package/data/components/Emphasis.json +99 -0
  32. package/data/components/Field.json +539 -0
  33. package/data/components/Figure.json +143 -0
  34. package/data/components/File.json +403 -0
  35. package/data/components/Footer.json +109 -0
  36. package/data/components/Grid.json +357 -0
  37. package/data/components/Hero.json +340 -0
  38. package/data/components/Icon.json +232 -0
  39. package/data/components/IconText.json +307 -0
  40. package/data/components/Image.json +166 -0
  41. package/data/components/Input.json +583 -0
  42. package/data/components/Level.json +332 -0
  43. package/data/components/Link.json +154 -0
  44. package/data/components/LinkButton.json +247 -0
  45. package/data/components/ListItem.json +101 -0
  46. package/data/components/Loading.json +323 -0
  47. package/data/components/Media.json +345 -0
  48. package/data/components/Menu.json +317 -0
  49. package/data/components/Message.json +303 -0
  50. package/data/components/Modal.json +444 -0
  51. package/data/components/Navbar.json +996 -0
  52. package/data/components/Notification.json +165 -0
  53. package/data/components/Numberinput.json +364 -0
  54. package/data/components/OrderedList.json +189 -0
  55. package/data/components/Pagination.json +619 -0
  56. package/data/components/Panel.json +582 -0
  57. package/data/components/Paragraph.json +107 -0
  58. package/data/components/Pre.json +114 -0
  59. package/data/components/Progress.json +137 -0
  60. package/data/components/Radio.json +164 -0
  61. package/data/components/Radios.json +240 -0
  62. package/data/components/Rate.json +466 -0
  63. package/data/components/Reveal.json +177 -0
  64. package/data/components/Section.json +123 -0
  65. package/data/components/Select.json +526 -0
  66. package/data/components/Sidebar.json +488 -0
  67. package/data/components/Skeleton.json +162 -0
  68. package/data/components/Slider.json +534 -0
  69. package/data/components/Span.json +100 -0
  70. package/data/components/Steps.json +452 -0
  71. package/data/components/Strong.json +105 -0
  72. package/data/components/SubTitle.json +233 -0
  73. package/data/components/Switch.json +291 -0
  74. package/data/components/Table.json +490 -0
  75. package/data/components/Tabs.json +592 -0
  76. package/data/components/Tag.json +197 -0
  77. package/data/components/Taginput.json +587 -0
  78. package/data/components/Tags.json +181 -0
  79. package/data/components/TextArea.json +483 -0
  80. package/data/components/Theme.json +65 -0
  81. package/data/components/TimeInput.json +906 -0
  82. package/data/components/Title.json +240 -0
  83. package/data/components/Toast.json +308 -0
  84. package/data/components/Tooltip.json +212 -0
  85. package/data/components/UnorderedList.json +149 -0
  86. package/data/components/Valid value constants.json +16 -0
  87. package/data/components/classNames.json +65 -0
  88. package/data/components/useBulmaClasses.json +169 -0
  89. package/data/components/usePrefixedClassNames.json +25 -0
  90. package/data/skills/bestax-custom-component/SKILL.md +196 -0
  91. package/data/skills/bestax-custom-component/examples/stat-card.tsx +105 -0
  92. package/data/skills/bestax-custom-component/references/api.md +90 -0
  93. package/data/skills/bestax-custom-component/references/component-catalog.md +149 -0
  94. package/data/skills/bestax-custom-component/references/library-contributor.md +395 -0
  95. package/data/skills/bestax-custom-component/references/patterns.md +136 -0
  96. package/data/skills/bestax-form/SKILL.md +254 -0
  97. package/data/skills/bestax-form/references/api.md +103 -0
  98. package/data/skills/bestax-form/references/patterns.md +210 -0
  99. package/data/skills/bestax-icons/SKILL.md +80 -0
  100. package/data/skills/bestax-icons/examples/icon-usage.tsx +80 -0
  101. package/data/skills/bestax-icons/references/icon-libraries.md +131 -0
  102. package/data/skills/bestax-layout-scaffold/SKILL.md +196 -0
  103. package/data/skills/bestax-layout-scaffold/examples/app-shell.tsx +86 -0
  104. package/data/skills/bestax-layout-scaffold/examples/card-grid.tsx +106 -0
  105. package/data/skills/bestax-layout-scaffold/examples/centered.tsx +56 -0
  106. package/data/skills/bestax-layout-scaffold/examples/content-page.tsx +90 -0
  107. package/data/skills/bestax-layout-scaffold/examples/landing.tsx +122 -0
  108. package/data/skills/bestax-layout-scaffold/references/archetypes.md +246 -0
  109. package/data/skills/bestax-layout-scaffold/references/layout-components.md +269 -0
  110. package/data/skills/bestax-migrate/SKILL.md +78 -0
  111. package/data/skills/bestax-migrate/references/component-map.md +91 -0
  112. package/data/skills/bestax-migrate/references/css-migration.md +100 -0
  113. package/data/skills/bestax-migrate/references/prop-map.md +48 -0
  114. package/data/skills/bestax-migrate/references/unmappables.md +124 -0
  115. package/data/skills/bestax-optimize/SKILL.md +131 -0
  116. package/data/skills/bestax-optimize/references/modular-build.md +173 -0
  117. package/data/skills/bestax-theming/SKILL.md +117 -0
  118. package/data/skills/bestax-theming/examples/dark-mode.tsx +38 -0
  119. package/data/skills/bestax-theming/examples/theme-config.tsx +60 -0
  120. package/data/skills/bestax-theming/references/css-variables.md +466 -0
  121. package/data/skills/bestax-theming/references/themeable-components.md +119 -0
  122. package/data/skills.json +148 -0
  123. package/dist/data.d.ts +131 -0
  124. package/dist/data.d.ts.map +1 -0
  125. package/dist/data.js +111 -0
  126. package/dist/format.d.ts +37 -0
  127. package/dist/format.d.ts.map +1 -0
  128. package/dist/format.js +178 -0
  129. package/dist/helper-props.d.ts +57 -0
  130. package/dist/helper-props.d.ts.map +1 -0
  131. package/dist/helper-props.js +249 -0
  132. package/dist/index.d.ts +3 -0
  133. package/dist/index.d.ts.map +1 -0
  134. package/dist/index.js +18 -0
  135. package/dist/search.d.ts +32 -0
  136. package/dist/search.d.ts.map +1 -0
  137. package/dist/search.js +194 -0
  138. package/dist/server.d.ts +28 -0
  139. package/dist/server.d.ts.map +1 -0
  140. package/dist/server.js +616 -0
  141. package/dist/version.d.ts +29 -0
  142. package/dist/version.d.ts.map +1 -0
  143. package/dist/version.js +147 -0
  144. 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
+ }