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,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
|
+
}
|