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,143 @@
1
+ {
2
+ "name": "Figure",
3
+ "kind": "component",
4
+ "category": "elements",
5
+ "slug": "elements/figure",
6
+ "docsUrl": "https://bestax.io/docs/api/elements/figure",
7
+ "examples": [
8
+ {
9
+ "title": "Default Figure",
10
+ "code": "<Figure>\n <Image src=\"/img/bestax-solar-system-3d.png\" alt=\"Placeholder\" />\n</Figure>"
11
+ },
12
+ {
13
+ "title": "Figure with Caption",
14
+ "code": "<Figure>\n <Image src=\"/img/bestax-solar-system-3d.png\" alt=\"Placeholder\" />\n <Figure.Caption>This is a caption for the image</Figure.Caption>\n</Figure>"
15
+ },
16
+ {
17
+ "title": "Styled Caption",
18
+ "code": "<Figure>\n <Image src=\"/img/bestax-solar-system-3d.png\" alt=\"Placeholder\" />\n <Figure.Caption textColor=\"grey\" textSize=\"7\" mt=\"2\">\n Grey caption with smaller text\n </Figure.Caption>\n</Figure>"
19
+ },
20
+ {
21
+ "title": "Figure with Background",
22
+ "code": "<Figure bgColor=\"light\" textColor=\"dark\" p=\"4\">\n <Image src=\"/img/bestax-solar-system-3d.png\" alt=\"Placeholder\" />\n <Figure.Caption mt=\"2\">Figure with background and padding</Figure.Caption>\n</Figure>"
23
+ },
24
+ {
25
+ "title": "Centered Caption",
26
+ "code": "<Figure textAlign=\"centered\">\n <Image src=\"/img/bestax-solar-system-3d.png\" alt=\"Placeholder\" />\n <Figure.Caption textSize=\"7\" mt=\"2\">\n Centered caption\n </Figure.Caption>\n</Figure>"
27
+ },
28
+ {
29
+ "title": "Code Figure",
30
+ "code": "<Figure bgColor=\"dark\" p=\"4\">\n <Pre textColor=\"white\" m=\"0\">\n <Code>{`function hello() {\n console.log(\"Hello, World!\");\n}`}</Code>\n </Pre>\n <Figure.Caption textColor=\"grey-light\" mt=\"2\">\n Example code snippet\n </Figure.Caption>\n</Figure>"
31
+ },
32
+ {
33
+ "title": "Compound (dot-notation) usage",
34
+ "code": "<Figure>\n <Image src=\"/img/bestax-solar-system-3d.png\" alt=\"Placeholder\" />\n <Figure.Caption>Caption via the Figure.Caption static</Figure.Caption>\n</Figure>"
35
+ }
36
+ ],
37
+ "accessibility": "- **Image Alt Text:** Always provide meaningful alt text for images within figures.\n- **Figure Semantics:** The `<figure>` element groups content that is referenced from the main flow but could be moved without affecting the document's meaning.\n- **Caption Association:** Screen readers associate `<figcaption>` content with the figure automatically.\n\n:::info\nThe `<figure>` element is ideal for images, illustrations, diagrams, code listings, or anything that is referenced as a unit from the main content.\n:::",
38
+ "related": ["Code", "Image", "Pre", "useBulmaClasses"],
39
+ "storybook": "https://bestax.io/storybook/?path=/story/elements-figure--default",
40
+ "summary": "The `Figure` component renders a styled `<figure>` element with Bulma helper class integration.",
41
+ "import": "import { Figure } from '@allxsmith/bestax-bulma';",
42
+ "sourceFile": "bulma-ui/src/elements/Figure.tsx",
43
+ "rootClass": null,
44
+ "parts": [
45
+ {
46
+ "path": "Figure",
47
+ "summary": "The `Figure` component renders a styled `<figure>` element with Bulma helper class integration.",
48
+ "component": null,
49
+ "props": [
50
+ {
51
+ "name": "className",
52
+ "type": "string",
53
+ "default": null,
54
+ "description": "Additional CSS classes to apply.",
55
+ "required": false,
56
+ "inherited": false,
57
+ "deprecated": false
58
+ },
59
+ {
60
+ "name": "textColor",
61
+ "type": "Bulma color | 'inherit' | 'current'",
62
+ "default": null,
63
+ "description": "Text color helper.",
64
+ "required": false,
65
+ "inherited": false,
66
+ "deprecated": false,
67
+ "valuesRef": "helpers/valid-values"
68
+ },
69
+ {
70
+ "name": "bgColor",
71
+ "type": "Bulma color | 'inherit' | 'current'",
72
+ "default": null,
73
+ "description": "Background color helper.",
74
+ "required": false,
75
+ "inherited": false,
76
+ "deprecated": false,
77
+ "valuesRef": "helpers/valid-values"
78
+ },
79
+ {
80
+ "name": "children",
81
+ "type": "React.ReactNode",
82
+ "default": null,
83
+ "description": "Content to render inside the figure.",
84
+ "required": false,
85
+ "inherited": false,
86
+ "deprecated": false
87
+ }
88
+ ],
89
+ "extraProps": [],
90
+ "catchAll": "All standard HTML attributes and Bulma helper props",
91
+ "types": []
92
+ },
93
+ {
94
+ "path": "Figure.Caption",
95
+ "summary": "FigureCaption component for rendering a styled figcaption element. A FigureCaption wraps the HTML `<figcaption>` element with Bulma helper class integration. Use it inside Figure components to provide captions for images or other media.",
96
+ "component": null,
97
+ "props": [
98
+ {
99
+ "name": "className",
100
+ "type": "string",
101
+ "default": null,
102
+ "description": "Additional CSS classes to apply.",
103
+ "required": false,
104
+ "inherited": false,
105
+ "deprecated": false
106
+ },
107
+ {
108
+ "name": "textColor",
109
+ "type": "Bulma color | 'inherit' | 'current'",
110
+ "default": null,
111
+ "description": "Text color (Bulma color, 'inherit', or 'current').",
112
+ "required": false,
113
+ "inherited": false,
114
+ "deprecated": false,
115
+ "valuesRef": "helpers/valid-values"
116
+ },
117
+ {
118
+ "name": "bgColor",
119
+ "type": "Bulma color | 'inherit' | 'current'",
120
+ "default": null,
121
+ "description": "Background color (Bulma color, 'inherit', or 'current').",
122
+ "required": false,
123
+ "inherited": false,
124
+ "deprecated": false,
125
+ "valuesRef": "helpers/valid-values"
126
+ },
127
+ {
128
+ "name": "children",
129
+ "type": "React.ReactNode",
130
+ "default": null,
131
+ "description": "Content to be rendered inside the figcaption.",
132
+ "required": false,
133
+ "inherited": false,
134
+ "deprecated": false
135
+ }
136
+ ],
137
+ "extraProps": [],
138
+ "catchAll": "All standard HTML attributes and Bulma helper props",
139
+ "types": []
140
+ }
141
+ ],
142
+ "cssVars": []
143
+ }
@@ -0,0 +1,403 @@
1
+ {
2
+ "name": "File",
3
+ "kind": "component",
4
+ "category": "form",
5
+ "slug": "form/file",
6
+ "docsUrl": "https://bestax.io/docs/api/form/file",
7
+ "examples": [
8
+ {
9
+ "title": "Default",
10
+ "code": "<File buttonLabel=\"Choose a file…\" iconLeft={<Icon name=\"upload\" />} />"
11
+ },
12
+ {
13
+ "title": "With Filename Display",
14
+ "code": "<File\n hasName\n fileName=\"resume.pdf\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
15
+ },
16
+ {
17
+ "title": "CTA on Right",
18
+ "code": "<File\n hasName\n isRight\n fileName=\"contract.pdf\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
19
+ },
20
+ {
21
+ "title": "Full Width",
22
+ "code": "<File\n hasName\n isFullwidth\n fileName=\"picture.png\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
23
+ },
24
+ {
25
+ "title": "Boxed",
26
+ "code": "<File isBoxed buttonLabel=\"Choose a file…\" iconLeft={<Icon name=\"upload\" />} />"
27
+ },
28
+ {
29
+ "title": "Boxed with Name",
30
+ "code": "<File\n isBoxed\n hasName\n fileName=\"holiday.jpg\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
31
+ },
32
+ {
33
+ "title": "Colors",
34
+ "code": "<>\n <File\n color=\"primary\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n color=\"info\"\n hasName\n fileName=\"resume.pdf\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n color=\"warning\"\n isBoxed\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"cloud-upload-alt\" />}\n />\n <File\n color=\"danger\"\n isBoxed\n hasName\n fileName=\"resume.pdf\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"cloud-upload-alt\" />}\n />\n</>"
35
+ },
36
+ {
37
+ "title": "Sizes",
38
+ "code": "<>\n <File\n size=\"small\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File buttonLabel=\"Choose a file…\" iconLeft={<Icon name=\"upload\" />} />\n <File\n size=\"medium\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"large\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n</>"
39
+ },
40
+ {
41
+ "title": "Sizes with Name",
42
+ "code": "<>\n <File\n size=\"small\"\n hasName\n fileName=\"sample.txt\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n hasName\n fileName=\"sample.txt\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"medium\"\n hasName\n fileName=\"sample.txt\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"large\"\n hasName\n fileName=\"sample.txt\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n</>"
43
+ },
44
+ {
45
+ "title": "Sizes with Boxed",
46
+ "code": "<>\n <File\n size=\"small\"\n isBoxed\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n isBoxed\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"medium\"\n isBoxed\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"large\"\n isBoxed\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n</>"
47
+ },
48
+ {
49
+ "title": "Sizes with Boxed and Name",
50
+ "code": "<>\n <File\n size=\"small\"\n isBoxed\n hasName\n fileName=\"summary.docx\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n isBoxed\n hasName\n fileName=\"summary.docx\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"medium\"\n isBoxed\n hasName\n fileName=\"summary.docx\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n <File\n size=\"large\"\n isBoxed\n hasName\n fileName=\"summary.docx\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n</>"
51
+ },
52
+ {
53
+ "title": "Alignment: Centered",
54
+ "code": "<File\n color=\"info\"\n isCentered\n isBoxed\n hasName\n fileName=\"centered.pdf\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
55
+ },
56
+ {
57
+ "title": "Alignment: Right",
58
+ "code": "<File\n color=\"primary\"\n isRight\n hasName\n fileName=\"right.pdf\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
59
+ },
60
+ {
61
+ "title": "Context-Aware Rendering",
62
+ "code": "<File\n label=\"Document\"\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n/>"
63
+ },
64
+ {
65
+ "title": "Context-Aware Rendering",
66
+ "code": "function example() {\n return (\n <Field horizontal label=\"Document\">\n <Field.Body>\n <Field>\n <File\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n </Field>\n </Field.Body>\n </Field>\n );\n}"
67
+ },
68
+ {
69
+ "title": "Context-Aware Rendering",
70
+ "code": "function example() {\n return (\n <Field horizontal label=\"Document\">\n <Field.Body>\n <Field>\n <Control iconLeftName=\"paperclip\">\n <File\n buttonLabel=\"Choose a file…\"\n iconLeft={<Icon name=\"upload\" />}\n />\n </Control>\n </Field>\n </Field.Body>\n </Field>\n );\n}"
71
+ }
72
+ ],
73
+ "accessibility": "- The root is a `<div class=\"file\">` with a nested `<label>` and `<input type=\"file\">`.\n- The label is always clickable.\n- When `File` renders its own `Field` (that is, outside an existing one), the Field-level `label` prop is automatically associated with the file input via `htmlFor`, so the input then has two labels (the Field label plus the wrapping CTA label); assistive technology reads both. An explicit `labelProps.htmlFor` overrides the association and no id is generated.\n- Add `aria-label` to the `<input>` for accessibility if your label is not plain text.",
74
+ "related": ["Field", "Icon", "useBulmaClasses"],
75
+ "storybook": "https://bestax.io/storybook/?path=/story/form-file--default",
76
+ "summary": "The `File` component provides a Bulma-styled file input, supporting color, size, boxed/fullwidth/align styles, icons, \"has name\", and filename display.",
77
+ "import": "import { File, Icon } from '@allxsmith/bestax-bulma';",
78
+ "sourceFile": "bulma-ui/src/form/File.tsx",
79
+ "rootClass": "file",
80
+ "parts": [
81
+ {
82
+ "path": "File",
83
+ "summary": "The `File` component provides a Bulma-styled file input, supporting color, size, boxed/fullwidth/align styles, icons, \"has name\", and filename display.",
84
+ "component": null,
85
+ "props": [
86
+ {
87
+ "name": "label",
88
+ "type": "React.ReactNode",
89
+ "default": null,
90
+ "description": "Field label. Automatically associated with the file input via `htmlFor` — uses your `id` when provided, otherwise a generated one. The input then has two labels (this one plus the wrapping `file-label`); assistive tech reads both. Dropped inside an outer `Field` (label that `Field` yourself).",
91
+ "required": false,
92
+ "inherited": false,
93
+ "deprecated": false
94
+ },
95
+ {
96
+ "name": "labelProps",
97
+ "type": "React.LabelHTMLAttributes<HTMLLabelElement> & { [key: string]: unknown; }",
98
+ "default": null,
99
+ "description": "Props for the label element. An explicit `htmlFor` here overrides the automatic association (no id is generated then).",
100
+ "required": false,
101
+ "inherited": false,
102
+ "deprecated": false
103
+ },
104
+ {
105
+ "name": "color",
106
+ "type": "'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white'",
107
+ "default": null,
108
+ "description": "Bulma color modifier for the file input.",
109
+ "required": false,
110
+ "inherited": false,
111
+ "deprecated": false
112
+ },
113
+ {
114
+ "name": "size",
115
+ "type": "'small' | 'medium' | 'large'",
116
+ "default": null,
117
+ "description": "Size modifier for the file input.",
118
+ "required": false,
119
+ "inherited": false,
120
+ "deprecated": false
121
+ },
122
+ {
123
+ "name": "isBoxed",
124
+ "type": "boolean",
125
+ "default": "false",
126
+ "description": "Boxed file input.",
127
+ "required": false,
128
+ "inherited": false,
129
+ "deprecated": false
130
+ },
131
+ {
132
+ "name": "isFullwidth",
133
+ "type": "boolean",
134
+ "default": "false",
135
+ "description": "Whether the file input expands to full width.",
136
+ "required": false,
137
+ "inherited": false,
138
+ "deprecated": false
139
+ },
140
+ {
141
+ "name": "isRight",
142
+ "type": "boolean",
143
+ "default": "false",
144
+ "description": "Position the CTA on the right (with `hasName`).",
145
+ "required": false,
146
+ "inherited": false,
147
+ "deprecated": false
148
+ },
149
+ {
150
+ "name": "isCentered",
151
+ "type": "boolean",
152
+ "default": "false",
153
+ "description": "Center the file input within its container.",
154
+ "required": false,
155
+ "inherited": false,
156
+ "deprecated": false
157
+ },
158
+ {
159
+ "name": "hasName",
160
+ "type": "boolean",
161
+ "default": "false",
162
+ "description": "Show a file name indicator.",
163
+ "required": false,
164
+ "inherited": false,
165
+ "deprecated": false
166
+ },
167
+ {
168
+ "name": "buttonLabel",
169
+ "type": "React.ReactNode",
170
+ "default": null,
171
+ "description": "Text on the file CTA button (defaults to \"Choose a file…\").",
172
+ "required": false,
173
+ "inherited": false,
174
+ "deprecated": false
175
+ },
176
+ {
177
+ "name": "iconLeft",
178
+ "type": "React.ReactNode",
179
+ "default": null,
180
+ "description": "Left icon element.",
181
+ "required": false,
182
+ "inherited": false,
183
+ "deprecated": false
184
+ },
185
+ {
186
+ "name": "iconRight",
187
+ "type": "React.ReactNode",
188
+ "default": null,
189
+ "description": "Right icon element.",
190
+ "required": false,
191
+ "inherited": false,
192
+ "deprecated": false
193
+ },
194
+ {
195
+ "name": "className",
196
+ "type": "string",
197
+ "default": null,
198
+ "description": "Additional CSS classes to apply.",
199
+ "required": false,
200
+ "inherited": false,
201
+ "deprecated": false
202
+ },
203
+ {
204
+ "name": "inputClassName",
205
+ "type": "string",
206
+ "default": null,
207
+ "description": "Additional CSS classes for the `<input>`.",
208
+ "required": false,
209
+ "inherited": false,
210
+ "deprecated": false
211
+ },
212
+ {
213
+ "name": "fileName",
214
+ "type": "string",
215
+ "default": null,
216
+ "description": "File name to display.",
217
+ "required": false,
218
+ "inherited": false,
219
+ "deprecated": false
220
+ },
221
+ {
222
+ "name": "labelSize",
223
+ "type": "'small' | 'normal' | 'medium' | 'large'",
224
+ "default": null,
225
+ "description": "Size for the label (used in horizontal layouts).",
226
+ "required": false,
227
+ "inherited": true,
228
+ "deprecated": false
229
+ },
230
+ {
231
+ "name": "horizontal",
232
+ "type": "boolean",
233
+ "default": "false",
234
+ "description": "Horizontal field layout.",
235
+ "required": false,
236
+ "inherited": true,
237
+ "deprecated": false
238
+ },
239
+ {
240
+ "name": "message",
241
+ "type": "React.ReactNode",
242
+ "default": null,
243
+ "description": "Help/validation message below the input.",
244
+ "required": false,
245
+ "inherited": true,
246
+ "deprecated": false
247
+ },
248
+ {
249
+ "name": "messageColor",
250
+ "type": "'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'",
251
+ "default": null,
252
+ "description": "Bulma color for the message.",
253
+ "required": false,
254
+ "inherited": true,
255
+ "deprecated": false
256
+ },
257
+ {
258
+ "name": "fieldClassName",
259
+ "type": "string",
260
+ "default": null,
261
+ "description": "Additional CSS classes for the Field wrapper.",
262
+ "required": false,
263
+ "inherited": true,
264
+ "deprecated": false
265
+ },
266
+ {
267
+ "name": "ref",
268
+ "type": "React.Ref<HTMLInputElement>",
269
+ "default": null,
270
+ "description": "Forwarded to the underlying element.",
271
+ "required": false,
272
+ "inherited": false,
273
+ "deprecated": false
274
+ }
275
+ ],
276
+ "extraProps": [],
277
+ "catchAll": "All standard <input> attributes and Bulma helper props",
278
+ "types": []
279
+ }
280
+ ],
281
+ "cssVars": [
282
+ {
283
+ "css": "--bulma-file-radius",
284
+ "sass": "$file-radius",
285
+ "default": "var(--bulma-radius)",
286
+ "scope": "component"
287
+ },
288
+ {
289
+ "css": "--bulma-file-name-border-color",
290
+ "sass": "$file-name-border-color",
291
+ "default": "var(--bulma-border)",
292
+ "scope": "component"
293
+ },
294
+ {
295
+ "css": "--bulma-file-name-border-style",
296
+ "sass": "$file-name-border-style",
297
+ "default": "solid",
298
+ "scope": "component"
299
+ },
300
+ {
301
+ "css": "--bulma-file-name-border-width",
302
+ "sass": "$file-name-border-width",
303
+ "default": "1px 1px 1px 0",
304
+ "scope": "component"
305
+ },
306
+ {
307
+ "css": "--bulma-file-name-max-width",
308
+ "sass": "$file-name-max-width",
309
+ "default": "16em",
310
+ "scope": "component"
311
+ },
312
+ {
313
+ "css": "--bulma-file-h",
314
+ "sass": "$file-h",
315
+ "default": "var(--bulma-scheme-h)",
316
+ "scope": "component"
317
+ },
318
+ {
319
+ "css": "--bulma-file-s",
320
+ "sass": "$file-s",
321
+ "default": "var(--bulma-scheme-s)",
322
+ "scope": "component"
323
+ },
324
+ {
325
+ "css": "--bulma-file-background-l",
326
+ "sass": "$file-background-l",
327
+ "default": "var(--bulma-scheme-main-ter-l)",
328
+ "scope": "component"
329
+ },
330
+ {
331
+ "css": "--bulma-file-background-l-delta",
332
+ "sass": "$file-background-l-delta",
333
+ "default": "0%",
334
+ "scope": "component"
335
+ },
336
+ {
337
+ "css": "--bulma-file-hover-background-l-delta",
338
+ "sass": "$file-hover-background-l-delta",
339
+ "default": "-5%",
340
+ "scope": "component"
341
+ },
342
+ {
343
+ "css": "--bulma-file-active-background-l-delta",
344
+ "sass": "$file-active-background-l-delta",
345
+ "default": "-10%",
346
+ "scope": "component"
347
+ },
348
+ {
349
+ "css": "--bulma-file-border-l",
350
+ "sass": "$file-border-l",
351
+ "default": "var(--bulma-border-l)",
352
+ "scope": "component"
353
+ },
354
+ {
355
+ "css": "--bulma-file-border-l-delta",
356
+ "sass": "$file-border-l-delta",
357
+ "default": "0%",
358
+ "scope": "component"
359
+ },
360
+ {
361
+ "css": "--bulma-file-hover-border-l-delta",
362
+ "sass": "$file-hover-border-l-delta",
363
+ "default": "-10%",
364
+ "scope": "component"
365
+ },
366
+ {
367
+ "css": "--bulma-file-active-border-l-delta",
368
+ "sass": "$file-active-border-l-delta",
369
+ "default": "-20%",
370
+ "scope": "component"
371
+ },
372
+ {
373
+ "css": "--bulma-file-cta-color-l",
374
+ "sass": "$file-cta-color-l",
375
+ "default": "var(--bulma-text-strong-l)",
376
+ "scope": "component"
377
+ },
378
+ {
379
+ "css": "--bulma-file-name-color-l",
380
+ "sass": "$file-name-color-l",
381
+ "default": "var(--bulma-text-strong-l)",
382
+ "scope": "component"
383
+ },
384
+ {
385
+ "css": "--bulma-file-color-l-delta",
386
+ "sass": "$file-color-l-delta",
387
+ "default": "0%",
388
+ "scope": "component"
389
+ },
390
+ {
391
+ "css": "--bulma-file-hover-color-l-delta",
392
+ "sass": "$file-hover-color-l-delta",
393
+ "default": "-5%",
394
+ "scope": "component"
395
+ },
396
+ {
397
+ "css": "--bulma-file-active-color-l-delta",
398
+ "sass": "$file-active-color-l-delta",
399
+ "default": "-10%",
400
+ "scope": "component"
401
+ }
402
+ ]
403
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "Footer",
3
+ "kind": "component",
4
+ "category": "layout",
5
+ "slug": "layout/footer",
6
+ "docsUrl": "https://bestax.io/docs/api/layout/footer",
7
+ "examples": [
8
+ {
9
+ "title": "Default Footer",
10
+ "code": "import { Footer } from '@allxsmith/bestax-bulma';\nimport { Content } from '@allxsmith/bestax-bulma';\n\n<Footer>\n <Content textAlign=\"centered\">\n <Paragraph>\n <Strong>Bestax</Strong> a Bulma component library by{' '}\n <a href=\"https://bestax.io\">Alex Smith</a>.<br />\n <a href=\"https://opensource.org/license/mit\">MIT Source Code License</a>\n {', '}\n Web content licensed{' '}\n <a href=\"https://creativecommons.org/licenses/by-nc-sa/4.0//\">\n CC BY NC SA 4.0\n </a>\n .\n </Paragraph>\n </Content>\n</Footer>;"
11
+ }
12
+ ],
13
+ "accessibility": "- Renders as a semantic `<footer>` tag by default.\n- Accepts any valid children; ensure your links and text are accessible.\n- You can use the `as=\"div\"` prop if you need a non-semantic container.\n\n:::note\nWhen using only icons or non-text content, add `aria-label` or screen-reader-only content for accessibility.\n:::",
14
+ "related": ["Container", "Content", "useBulmaClasses"],
15
+ "storybook": "https://bestax.io/storybook/?path=/story/layout-footer--default",
16
+ "summary": "The `Footer` component provides a semantic and accessible site footer for your Bulma React UI.",
17
+ "import": "import { Footer } from '@allxsmith/bestax-bulma';",
18
+ "sourceFile": "bulma-ui/src/layout/Footer.tsx",
19
+ "rootClass": "footer",
20
+ "parts": [
21
+ {
22
+ "path": "Footer",
23
+ "summary": "The `Footer` component provides a semantic and accessible site footer for your Bulma React UI.",
24
+ "component": null,
25
+ "props": [
26
+ {
27
+ "name": "as",
28
+ "type": "'footer' | 'div'",
29
+ "default": "'footer'",
30
+ "description": "The HTML tag to render as.",
31
+ "required": false,
32
+ "inherited": false,
33
+ "deprecated": false
34
+ },
35
+ {
36
+ "name": "color",
37
+ "type": "Bulma color | 'inherit' | 'current'",
38
+ "default": null,
39
+ "description": "Bulma color modifier.",
40
+ "required": false,
41
+ "inherited": false,
42
+ "deprecated": false,
43
+ "valuesRef": "helpers/valid-values"
44
+ },
45
+ {
46
+ "name": "bgColor",
47
+ "type": "Bulma color | 'inherit' | 'current'",
48
+ "default": null,
49
+ "description": "Background color.",
50
+ "required": false,
51
+ "inherited": false,
52
+ "deprecated": false,
53
+ "valuesRef": "helpers/valid-values"
54
+ },
55
+ {
56
+ "name": "textColor",
57
+ "type": "Bulma color | 'inherit' | 'current'",
58
+ "default": null,
59
+ "description": "Text color.",
60
+ "required": false,
61
+ "inherited": false,
62
+ "deprecated": false,
63
+ "valuesRef": "helpers/valid-values"
64
+ },
65
+ {
66
+ "name": "className",
67
+ "type": "string",
68
+ "default": null,
69
+ "description": "Additional CSS classes.",
70
+ "required": false,
71
+ "inherited": false,
72
+ "deprecated": false
73
+ },
74
+ {
75
+ "name": "children",
76
+ "type": "React.ReactNode",
77
+ "default": null,
78
+ "description": "Content inside the footer.",
79
+ "required": false,
80
+ "inherited": false,
81
+ "deprecated": false
82
+ }
83
+ ],
84
+ "extraProps": [],
85
+ "catchAll": "All standard HTML attributes and Bulma helper props",
86
+ "types": []
87
+ }
88
+ ],
89
+ "cssVars": [
90
+ {
91
+ "css": "--bulma-footer-background-color",
92
+ "sass": "$footer-background-color",
93
+ "default": "var(--bulma-scheme-main-bis)",
94
+ "scope": "component"
95
+ },
96
+ {
97
+ "css": "--bulma-footer-color",
98
+ "sass": "$footer-color",
99
+ "default": "false",
100
+ "scope": "component"
101
+ },
102
+ {
103
+ "css": "--bulma-footer-padding",
104
+ "sass": "$footer-padding",
105
+ "default": "3rem 1.5rem 6rem",
106
+ "scope": "component"
107
+ }
108
+ ]
109
+ }