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,872 @@
1
+ {
2
+ "name": "DateInput",
3
+ "kind": "component",
4
+ "category": "form",
5
+ "slug": "form/datetime/dateinput",
6
+ "docsUrl": "https://bestax.io/docs/api/form/datetime/dateinput",
7
+ "examples": [
8
+ {
9
+ "title": "Basic DateInput",
10
+ "code": "function example() {\n return <DateInput label=\"Pick a date\" placeholder=\"YYYY-MM-DD\" />;\n}"
11
+ },
12
+ {
13
+ "title": "Basic DateInput",
14
+ "code": "function example() {\n return (\n <DateInput\n label=\"Type a date\"\n placeholder=\"YYYY-MM-DD\"\n openOnFocus={false}\n />\n );\n}"
15
+ },
16
+ {
17
+ "title": "Controlled",
18
+ "code": "function example() {\n const [value, setValue] = useState(new Date());\n return (\n <Block>\n <DateInput label=\"Date\" value={value} onChange={setValue} />\n <Paragraph mt=\"2\">\n Selected: {value ? value.toDateString() : '—'}\n </Paragraph>\n </Block>\n );\n}"
19
+ },
20
+ {
21
+ "title": "Controlled",
22
+ "code": "function example() {\n const [value, setValue] = useState(new Date());\n return (\n <Block>\n <DateInput\n label=\"Date\"\n value={value}\n onChange={setValue}\n openOnFocus={false}\n />\n <Paragraph mt=\"2\">\n Selected: {value ? value.toDateString() : '—'}\n </Paragraph>\n </Block>\n );\n}"
23
+ },
24
+ {
25
+ "title": "Inline",
26
+ "code": "<DateInput label=\"Inline calendar\" inline defaultValue={new Date()} />"
27
+ },
28
+ {
29
+ "title": "Min and Max",
30
+ "code": "function example() {\n const today = new Date();\n const min = new Date(today.getFullYear(), today.getMonth(), 1);\n const max = new Date(today.getFullYear(), today.getMonth() + 1, 0);\n return (\n <DateInput\n label=\"This month only\"\n min={min}\n max={max}\n defaultValue={today}\n />\n );\n}"
31
+ },
32
+ {
33
+ "title": "Min and Max",
34
+ "code": "function example() {\n const now = new Date();\n const min = new Date(now.getFullYear(), now.getMonth(), 1);\n const max = new Date(now.getFullYear(), now.getMonth() + 1, 0);\n return (\n <DateInput\n label=\"Typing is clamped to this month\"\n min={min}\n max={max}\n defaultValue={new Date(now.getFullYear(), now.getMonth(), 15)}\n openOnFocus={false}\n />\n );\n}"
35
+ },
36
+ {
37
+ "title": "Disabled Dates",
38
+ "code": "<DateInput\n label=\"No weekends\"\n shouldDisableDate={d => d.getDay() === 0 || d.getDay() === 6}\n mobileNative={false}\n/>"
39
+ },
40
+ {
41
+ "title": "Disabled Dates",
42
+ "code": "function example() {\n return (\n <DateInput\n label=\"Weekends rejected while typing\"\n shouldDisableDate={d => d.getDay() === 0 || d.getDay() === 6}\n defaultValue={new Date(2024, 5, 7)}\n mobileNative={false}\n openOnFocus={false}\n />\n );\n}"
43
+ },
44
+ {
45
+ "title": "Custom Format",
46
+ "code": "<DateInput\n label=\"Date of birth\"\n format=\"DD/MM/YYYY\"\n placeholder=\"DD/MM/YYYY\"\n mobileNative={false}\n/>"
47
+ },
48
+ {
49
+ "title": "Custom Format",
50
+ "code": "function example() {\n return (\n <DateInput\n label=\"DD/MM/YYYY\"\n format=\"DD/MM/YYYY\"\n defaultValue={new Date(2024, 5, 7)}\n mobileNative={false}\n openOnFocus={false}\n />\n );\n}"
51
+ },
52
+ {
53
+ "title": "Formats",
54
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput\n label=\"YYYY-MM-DD (default)\"\n defaultValue={new Date(2026, 4, 30)}\n openOnFocus={false}\n mobileNative={false}\n />\n <DateInput\n label=\"DD/MM/YYYY\"\n format=\"DD/MM/YYYY\"\n defaultValue={new Date(2026, 4, 30)}\n openOnFocus={false}\n mobileNative={false}\n />\n <DateInput\n label=\"MM-DD-YYYY\"\n format=\"MM-DD-YYYY\"\n defaultValue={new Date(2026, 4, 30)}\n openOnFocus={false}\n mobileNative={false}\n />\n <DateInput\n label=\"DD.MM.YY\"\n format=\"DD.MM.YY\"\n defaultValue={new Date(2026, 4, 30)}\n openOnFocus={false}\n mobileNative={false}\n />\n</Block>"
55
+ },
56
+ {
57
+ "title": "Formats",
58
+ "code": "function example() {\n const parse = s => {\n const t = Date.parse(s);\n return isNaN(t) ? null : new Date(t);\n };\n return (\n <DateInput\n label=\"Intl long + custom parse\"\n format={{ year: 'numeric', month: 'long', day: 'numeric' }}\n parse={parse}\n defaultValue={new Date(2026, 4, 30)}\n mobileNative={false}\n />\n );\n}"
59
+ },
60
+ {
61
+ "title": "Formats",
62
+ "code": "function example() {\n const parse = s => {\n const t = Date.parse(s);\n return isNaN(t) ? null : new Date(t);\n };\n return (\n <DateInput\n label=\"Intl long + custom parse — typing-first\"\n format={{ year: 'numeric', month: 'long', day: 'numeric' }}\n parse={parse}\n defaultValue={new Date(2026, 4, 30)}\n mobileNative={false}\n openOnFocus={false}\n />\n );\n}"
63
+ },
64
+ {
65
+ "title": "Launcher Icon",
66
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput label=\"Default (left icon + right launcher)\" />\n <DateInput label=\"Custom launcher glyph\" triggerIconName=\"calendar-day\" />\n <DateInput label=\"No launcher\" triggerIcon={false} />\n <DateInput label=\"Left icon hidden\" iconLeftName=\"\" />\n</Block>"
67
+ },
68
+ {
69
+ "title": "Launcher Icon",
70
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput label=\"Default (left icon + right launcher)\" openOnFocus={false} />\n <DateInput\n label=\"Custom launcher glyph\"\n triggerIconName=\"calendar-day\"\n openOnFocus={false}\n />\n <DateInput\n label=\"No launcher — popover via ↓ only\"\n triggerIcon={false}\n openOnFocus={false}\n />\n <DateInput label=\"Left icon hidden\" iconLeftName=\"\" openOnFocus={false} />\n</Block>"
71
+ },
72
+ {
73
+ "title": "Manual Keyboard Entry",
74
+ "code": "function example() {\n return (\n <DateInput\n label=\"Click in, then arrow or type\"\n defaultValue={new Date(2024, 5, 7)}\n openOnFocus={false}\n />\n );\n}"
75
+ },
76
+ {
77
+ "title": "Manual Keyboard Entry",
78
+ "code": "function example() {\n return (\n <DateInput\n label=\"Type digits — auto-advance across segments\"\n defaultValue={new Date(2024, 5, 7)}\n openOnFocus={false}\n />\n );\n}"
79
+ },
80
+ {
81
+ "title": "Manual Keyboard Entry",
82
+ "code": "function example() {\n const [v, setV] = useState(() => new Date(2024, 5, 7));\n return (\n <Block>\n <DateInput\n label=\"Arrow or type — value updates live\"\n value={v}\n onChange={setV}\n openOnFocus={false}\n />\n <Paragraph mt=\"2\">Selected: {v ? v.toDateString() : '—'}</Paragraph>\n </Block>\n );\n}"
83
+ },
84
+ {
85
+ "title": "Manual Keyboard Entry",
86
+ "code": "function example() {\n return (\n <DateInput\n label=\"Free-form (Intl format)\"\n format={{ year: 'numeric', month: 'long', day: 'numeric' }}\n defaultValue={new Date(2024, 5, 7)}\n openOnFocus={false}\n />\n );\n}"
87
+ },
88
+ {
89
+ "title": "Picker vs Input Modes",
90
+ "code": "<DateInput label=\"Picker only\" editable={false} defaultValue={new Date()} />"
91
+ },
92
+ {
93
+ "title": "Picker vs Input Modes",
94
+ "code": "<DateInput label=\"Input only\" popover={false} defaultValue={new Date()} />"
95
+ },
96
+ {
97
+ "title": "Locale",
98
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput\n label=\"ja-JP\"\n locale=\"ja-JP\"\n defaultValue={new Date()}\n mobileNative={false}\n />\n <DateInput\n label=\"fr-FR\"\n locale=\"fr-FR\"\n defaultValue={new Date()}\n mobileNative={false}\n />\n <DateInput\n label=\"de-DE\"\n locale=\"de-DE\"\n defaultValue={new Date()}\n mobileNative={false}\n />\n</Block>"
99
+ },
100
+ {
101
+ "title": "Locale",
102
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput\n label=\"ja-JP\"\n locale=\"ja-JP\"\n defaultValue={new Date()}\n mobileNative={false}\n openOnFocus={false}\n />\n <DateInput\n label=\"fr-FR\"\n locale=\"fr-FR\"\n defaultValue={new Date()}\n mobileNative={false}\n openOnFocus={false}\n />\n <DateInput\n label=\"de-DE\"\n locale=\"de-DE\"\n defaultValue={new Date()}\n mobileNative={false}\n openOnFocus={false}\n />\n</Block>"
103
+ },
104
+ {
105
+ "title": "First Day of Week",
106
+ "code": "<DateInput label=\"Week starts Monday\" firstDayOfWeek={1} mobileNative={false} />"
107
+ },
108
+ {
109
+ "title": "First Day of Week",
110
+ "code": "<DateInput\n label=\"Week starts Monday — typing-first\"\n firstDayOfWeek={1}\n mobileNative={false}\n openOnFocus={false}\n/>"
111
+ },
112
+ {
113
+ "title": "Mobile Native",
114
+ "code": "<DateInput label=\"Native picker\" mobileNative={true} />"
115
+ },
116
+ {
117
+ "title": "Sizes",
118
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput label=\"Small\" controlSize=\"small\" size=\"small\" />\n <DateInput label=\"Default\" />\n <DateInput label=\"Medium\" controlSize=\"medium\" size=\"medium\" />\n <DateInput label=\"Large\" controlSize=\"large\" size=\"large\" />\n</Block>"
119
+ },
120
+ {
121
+ "title": "Sizes",
122
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput\n label=\"Small\"\n controlSize=\"small\"\n size=\"small\"\n openOnFocus={false}\n />\n <DateInput label=\"Default\" openOnFocus={false} />\n <DateInput\n label=\"Medium\"\n controlSize=\"medium\"\n size=\"medium\"\n openOnFocus={false}\n />\n <DateInput\n label=\"Large\"\n controlSize=\"large\"\n size=\"large\"\n openOnFocus={false}\n />\n</Block>"
123
+ },
124
+ {
125
+ "title": "Colors",
126
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput label=\"Primary\" color=\"primary\" />\n <DateInput label=\"Info\" color=\"info\" />\n <DateInput label=\"Success\" color=\"success\" />\n <DateInput label=\"Warning\" color=\"warning\" />\n <DateInput label=\"Danger\" color=\"danger\" />\n</Block>"
127
+ },
128
+ {
129
+ "title": "Colors",
130
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput label=\"Primary\" color=\"primary\" openOnFocus={false} />\n <DateInput label=\"Info\" color=\"info\" openOnFocus={false} />\n <DateInput label=\"Success\" color=\"success\" openOnFocus={false} />\n <DateInput label=\"Warning\" color=\"warning\" openOnFocus={false} />\n <DateInput label=\"Danger\" color=\"danger\" openOnFocus={false} />\n</Block>"
131
+ },
132
+ {
133
+ "title": "States",
134
+ "code": "<Block display=\"flex\" flexDirection=\"column\" gap=\"4\">\n <DateInput label=\"Disabled\" disabled />\n <DateInput label=\"Read only\" readOnly defaultValue={new Date()} />\n <DateInput label=\"Loading\" isLoading />\n</Block>"
135
+ },
136
+ {
137
+ "title": "Horizontal Field",
138
+ "code": "<DateInput label=\"Date of birth\" horizontal placeholder=\"YYYY-MM-DD\" />"
139
+ },
140
+ {
141
+ "title": "Horizontal Field",
142
+ "code": "<DateInput\n label=\"Date of birth\"\n horizontal\n placeholder=\"YYYY-MM-DD\"\n openOnFocus={false}\n/>"
143
+ },
144
+ {
145
+ "title": "Context-Aware Rendering",
146
+ "code": "<DateInput label=\"Date\" placeholder=\"YYYY-MM-DD\" />"
147
+ },
148
+ {
149
+ "title": "Context-Aware Rendering",
150
+ "code": "function example() {\n return (\n <Field horizontal label=\"Date\">\n <Field.Body>\n <Field>\n <DateInput placeholder=\"YYYY-MM-DD\" />\n </Field>\n </Field.Body>\n </Field>\n );\n}"
151
+ },
152
+ {
153
+ "title": "Context-Aware Rendering",
154
+ "code": "function example() {\n return (\n <Field horizontal label=\"Date\">\n <Field.Body>\n <Field>\n <Control iconLeftName=\"calendar-alt\">\n <DateInput placeholder=\"YYYY-MM-DD\" />\n </Control>\n </Field>\n </Field.Body>\n </Field>\n );\n}"
155
+ }
156
+ ],
157
+ "accessibility": "- Trigger uses `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`.\n- Popover panel has `role=\"dialog\"` with an accessible name.\n- Calendar uses `role=\"grid\"` with cells as `role=\"gridcell\"`.\n- Cells expose `aria-selected`, `aria-disabled`, and `aria-current=\"date\"` for today.\n- Roving `tabindex` keeps a single grid cell focusable at a time.\n- Honors `prefers-reduced-motion` (skip popover fade-in).",
158
+ "related": ["DateTimeInput", "Input", "TimeInput"],
159
+ "storybook": "https://bestax.io/storybook/?path=/story/form-dateinput",
160
+ "summary": "The `DateInput` component is a form input that opens a popover calendar for date selection.",
161
+ "import": "import { DateInput } from '@allxsmith/bestax-bulma';",
162
+ "sourceFile": "bulma-ui/src/form/DateInput.tsx",
163
+ "rootClass": "input",
164
+ "parts": [
165
+ {
166
+ "path": "DateInput",
167
+ "summary": "The `DateInput` component is a form input that opens a popover calendar for date selection.",
168
+ "component": null,
169
+ "props": [
170
+ {
171
+ "name": "label",
172
+ "type": "React.ReactNode",
173
+ "default": null,
174
+ "description": "Field label (component auto-wraps in a `Field` if not already inside). Automatically associated with the input via `htmlFor` — uses your `id` when provided, otherwise a generated one. Not wired in `inline` mode (no visible input to label) and dropped inside an outer `Field`.",
175
+ "required": false,
176
+ "inherited": false,
177
+ "deprecated": false
178
+ },
179
+ {
180
+ "name": "labelSize",
181
+ "type": "'small' | 'normal' | 'medium' | 'large'",
182
+ "default": null,
183
+ "description": "Size for the label.",
184
+ "required": false,
185
+ "inherited": false,
186
+ "deprecated": false
187
+ },
188
+ {
189
+ "name": "labelProps",
190
+ "type": "React.LabelHTMLAttributes<HTMLLabelElement> & { [key: string]: unknown; }",
191
+ "default": null,
192
+ "description": "Props for the label element. An explicit `htmlFor` here overrides the automatic association (no id is generated then).",
193
+ "required": false,
194
+ "inherited": false,
195
+ "deprecated": false
196
+ },
197
+ {
198
+ "name": "horizontal",
199
+ "type": "boolean",
200
+ "default": "false",
201
+ "description": "Render the field with horizontal layout.",
202
+ "required": false,
203
+ "inherited": false,
204
+ "deprecated": false
205
+ },
206
+ {
207
+ "name": "iconLeft",
208
+ "type": "IconProps",
209
+ "default": null,
210
+ "description": "Icon props for the left icon.",
211
+ "required": false,
212
+ "inherited": false,
213
+ "deprecated": false
214
+ },
215
+ {
216
+ "name": "iconRight",
217
+ "type": "IconProps",
218
+ "default": null,
219
+ "description": "Icon props for the right icon.",
220
+ "required": false,
221
+ "inherited": false,
222
+ "deprecated": false
223
+ },
224
+ {
225
+ "name": "iconRightName",
226
+ "type": "string",
227
+ "default": null,
228
+ "description": "Shortcut for the right icon name.",
229
+ "required": false,
230
+ "inherited": false,
231
+ "deprecated": false
232
+ },
233
+ {
234
+ "name": "iconLeftSize",
235
+ "type": "'small' | 'medium' | 'large'",
236
+ "default": null,
237
+ "description": "Shortcut for left icon size.",
238
+ "required": false,
239
+ "inherited": false,
240
+ "deprecated": false
241
+ },
242
+ {
243
+ "name": "iconRightSize",
244
+ "type": "'small' | 'medium' | 'large'",
245
+ "default": null,
246
+ "description": "Shortcut for right icon size.",
247
+ "required": false,
248
+ "inherited": false,
249
+ "deprecated": false
250
+ },
251
+ {
252
+ "name": "hasIconsLeft",
253
+ "type": "boolean",
254
+ "default": "false",
255
+ "description": "Force the left icon container.",
256
+ "required": false,
257
+ "inherited": false,
258
+ "deprecated": false
259
+ },
260
+ {
261
+ "name": "hasIconsRight",
262
+ "type": "boolean",
263
+ "default": "false",
264
+ "description": "Force the right icon container.",
265
+ "required": false,
266
+ "inherited": false,
267
+ "deprecated": false
268
+ },
269
+ {
270
+ "name": "isLoading",
271
+ "type": "boolean",
272
+ "default": "false",
273
+ "description": "Show a loading indicator on the control.",
274
+ "required": false,
275
+ "inherited": false,
276
+ "deprecated": false
277
+ },
278
+ {
279
+ "name": "isExpanded",
280
+ "type": "boolean",
281
+ "default": "false",
282
+ "description": "Expand the control to fill its container.",
283
+ "required": false,
284
+ "inherited": false,
285
+ "deprecated": false
286
+ },
287
+ {
288
+ "name": "controlSize",
289
+ "type": "'small' | 'medium' | 'large'",
290
+ "default": null,
291
+ "description": "Size of the wrapping Control.",
292
+ "required": false,
293
+ "inherited": false,
294
+ "deprecated": false
295
+ },
296
+ {
297
+ "name": "message",
298
+ "type": "React.ReactNode",
299
+ "default": null,
300
+ "description": "Help/validation text below the input.",
301
+ "required": false,
302
+ "inherited": false,
303
+ "deprecated": false
304
+ },
305
+ {
306
+ "name": "messageColor",
307
+ "type": "'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'",
308
+ "default": null,
309
+ "description": "Color modifier for the help message.",
310
+ "required": false,
311
+ "inherited": false,
312
+ "deprecated": false
313
+ },
314
+ {
315
+ "name": "fieldClassName",
316
+ "type": "string",
317
+ "default": null,
318
+ "description": "Additional CSS classes for the Field wrapper.",
319
+ "required": false,
320
+ "inherited": false,
321
+ "deprecated": false
322
+ },
323
+ {
324
+ "name": "controlClassName",
325
+ "type": "string",
326
+ "default": null,
327
+ "description": "Additional CSS classes for the Control wrapper.",
328
+ "required": false,
329
+ "inherited": false,
330
+ "deprecated": false
331
+ },
332
+ {
333
+ "name": "value",
334
+ "type": "Date | null",
335
+ "default": null,
336
+ "description": "Controlled selected date.",
337
+ "required": false,
338
+ "inherited": true,
339
+ "deprecated": false
340
+ },
341
+ {
342
+ "name": "defaultValue",
343
+ "type": "Date | null",
344
+ "default": null,
345
+ "description": "Initial date for uncontrolled usage.",
346
+ "required": false,
347
+ "inherited": true,
348
+ "deprecated": false
349
+ },
350
+ {
351
+ "name": "onChange",
352
+ "type": "(d: Date | null) => void",
353
+ "default": null,
354
+ "description": "Fired when the value changes.",
355
+ "required": false,
356
+ "inherited": true,
357
+ "deprecated": false
358
+ },
359
+ {
360
+ "name": "onOpen",
361
+ "type": "() => void",
362
+ "default": null,
363
+ "description": "Fired when the popover opens.",
364
+ "required": false,
365
+ "inherited": true,
366
+ "deprecated": false
367
+ },
368
+ {
369
+ "name": "onClose",
370
+ "type": "() => void",
371
+ "default": null,
372
+ "description": "Fired when the popover closes.",
373
+ "required": false,
374
+ "inherited": true,
375
+ "deprecated": false
376
+ },
377
+ {
378
+ "name": "min",
379
+ "type": "Date",
380
+ "default": null,
381
+ "description": "Earliest selectable date.",
382
+ "required": false,
383
+ "inherited": true,
384
+ "deprecated": false
385
+ },
386
+ {
387
+ "name": "max",
388
+ "type": "Date",
389
+ "default": null,
390
+ "description": "Latest selectable date.",
391
+ "required": false,
392
+ "inherited": true,
393
+ "deprecated": false
394
+ },
395
+ {
396
+ "name": "disabled",
397
+ "type": "boolean",
398
+ "default": "false",
399
+ "description": "Disable the input.",
400
+ "required": false,
401
+ "inherited": true,
402
+ "deprecated": false
403
+ },
404
+ {
405
+ "name": "readOnly",
406
+ "type": "boolean",
407
+ "default": "false",
408
+ "description": "Make the input read-only.",
409
+ "required": false,
410
+ "inherited": true,
411
+ "deprecated": false
412
+ },
413
+ {
414
+ "name": "placeholder",
415
+ "type": "string",
416
+ "default": null,
417
+ "description": "Placeholder text for the input.",
418
+ "required": false,
419
+ "inherited": true,
420
+ "deprecated": false
421
+ },
422
+ {
423
+ "name": "format",
424
+ "type": "Intl.DateTimeFormatOptions | string",
425
+ "default": "'YYYY-MM-DD'",
426
+ "description": "Token format string or `Intl.DateTimeFormat` options. Default `'YYYY-MM-DD'`.",
427
+ "required": false,
428
+ "inherited": true,
429
+ "deprecated": false
430
+ },
431
+ {
432
+ "name": "parse",
433
+ "type": "(s: string) => Date | null",
434
+ "default": null,
435
+ "description": "Custom parser (use when `format` is `Intl.DateTimeFormatOptions`).",
436
+ "required": false,
437
+ "inherited": true,
438
+ "deprecated": false
439
+ },
440
+ {
441
+ "name": "locale",
442
+ "type": "string",
443
+ "default": null,
444
+ "description": "BCP-47 locale tag for day/month names and Intl formatting.",
445
+ "required": false,
446
+ "inherited": true,
447
+ "deprecated": false
448
+ },
449
+ {
450
+ "name": "inline",
451
+ "type": "boolean",
452
+ "default": "false",
453
+ "description": "Render the calendar inline (no popover).",
454
+ "required": false,
455
+ "inherited": true,
456
+ "deprecated": false
457
+ },
458
+ {
459
+ "name": "mobileNative",
460
+ "type": "boolean | 'auto'",
461
+ "default": "'auto'",
462
+ "description": "Use `<input type=\"date\">` on coarse-pointer + small-viewport devices.",
463
+ "required": false,
464
+ "inherited": true,
465
+ "deprecated": false
466
+ },
467
+ {
468
+ "name": "editable",
469
+ "type": "boolean",
470
+ "default": "true",
471
+ "description": "Allow segmented keyboard typing in the input (type the date directly, auto-advancing across segments). `false` makes the field picker-only.",
472
+ "required": false,
473
+ "inherited": true,
474
+ "deprecated": false
475
+ },
476
+ {
477
+ "name": "popover",
478
+ "type": "boolean",
479
+ "default": "true",
480
+ "description": "Whether the calendar popover exists. `false` makes the field input-only (segmented typing, no popover).",
481
+ "required": false,
482
+ "inherited": true,
483
+ "deprecated": false
484
+ },
485
+ {
486
+ "name": "openOnFocus",
487
+ "type": "boolean",
488
+ "default": "true",
489
+ "description": "Open the popover when the input is focused.",
490
+ "required": false,
491
+ "inherited": true,
492
+ "deprecated": false
493
+ },
494
+ {
495
+ "name": "closeOnSelect",
496
+ "type": "boolean",
497
+ "default": "true",
498
+ "description": "Close the popover after a date is selected.",
499
+ "required": false,
500
+ "inherited": true,
501
+ "deprecated": false
502
+ },
503
+ {
504
+ "name": "position",
505
+ "type": "'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'auto'",
506
+ "default": "'bottom-left'",
507
+ "description": "Popover anchor position relative to the input.",
508
+ "required": false,
509
+ "inherited": true,
510
+ "deprecated": false
511
+ },
512
+ {
513
+ "name": "appendToBody",
514
+ "type": "boolean",
515
+ "default": "false",
516
+ "description": "Render the popover into `document.body` via portal.",
517
+ "required": false,
518
+ "inherited": true,
519
+ "deprecated": false
520
+ },
521
+ {
522
+ "name": "color",
523
+ "type": "'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'",
524
+ "default": null,
525
+ "description": "Bulma color modifier.",
526
+ "required": false,
527
+ "inherited": true,
528
+ "deprecated": false
529
+ },
530
+ {
531
+ "name": "size",
532
+ "type": "'small' | 'medium' | 'large'",
533
+ "default": null,
534
+ "description": "Size variant.",
535
+ "required": false,
536
+ "inherited": true,
537
+ "deprecated": false
538
+ },
539
+ {
540
+ "name": "isRounded",
541
+ "type": "boolean",
542
+ "default": "false",
543
+ "description": "Render the input with rounded corners.",
544
+ "required": false,
545
+ "inherited": true,
546
+ "deprecated": false
547
+ },
548
+ {
549
+ "name": "shouldDisableDate",
550
+ "type": "(d: Date) => boolean",
551
+ "default": null,
552
+ "description": "Predicate to disable specific dates (e.g. weekends). Blocked dates are also rejected during manual typing.",
553
+ "required": false,
554
+ "inherited": true,
555
+ "deprecated": false
556
+ },
557
+ {
558
+ "name": "unselectableDates",
559
+ "type": "Date[]",
560
+ "default": null,
561
+ "description": "Convenience array of disabled dates; merged with `shouldDisableDate`. Matched by calendar day and also rejected during manual typing.",
562
+ "required": false,
563
+ "inherited": true,
564
+ "deprecated": false
565
+ },
566
+ {
567
+ "name": "firstDayOfWeek",
568
+ "type": "0 | 1 | 2 | 3 | 4 | 5 | 6",
569
+ "default": "0",
570
+ "description": "Day the week starts on (0 = Sunday).",
571
+ "required": false,
572
+ "inherited": true,
573
+ "deprecated": false
574
+ },
575
+ {
576
+ "name": "dayNames",
577
+ "type": "string[]",
578
+ "default": null,
579
+ "description": "Override the 7 day-name labels (in calendar order, post-rotation).",
580
+ "required": false,
581
+ "inherited": true,
582
+ "deprecated": false
583
+ },
584
+ {
585
+ "name": "monthNames",
586
+ "type": "string[]",
587
+ "default": null,
588
+ "description": "Override the 12 month-name labels.",
589
+ "required": false,
590
+ "inherited": true,
591
+ "deprecated": false
592
+ },
593
+ {
594
+ "name": "nearbyMonthDays",
595
+ "type": "boolean",
596
+ "default": "true",
597
+ "description": "Show dimmed dates from adjacent months in the grid.",
598
+ "required": false,
599
+ "inherited": true,
600
+ "deprecated": false
601
+ },
602
+ {
603
+ "name": "iconLeftName",
604
+ "type": "string",
605
+ "default": "'calendar'",
606
+ "description": "Decorative left icon glyph for the wrapping `Control` (shown by default). Set `''` to hide.",
607
+ "required": false,
608
+ "inherited": true,
609
+ "deprecated": false
610
+ },
611
+ {
612
+ "name": "triggerIcon",
613
+ "type": "boolean",
614
+ "default": "true",
615
+ "description": "Show a clickable launcher button on the right that toggles the popover. Default `true`.",
616
+ "required": false,
617
+ "inherited": true,
618
+ "deprecated": false
619
+ },
620
+ {
621
+ "name": "triggerIconName",
622
+ "type": "string",
623
+ "default": "'chevron-down'",
624
+ "description": "Glyph for the right launcher button.",
625
+ "required": false,
626
+ "inherited": true,
627
+ "deprecated": false
628
+ },
629
+ {
630
+ "name": "labels",
631
+ "type": "PickerLabels",
632
+ "default": null,
633
+ "description": "Optional translatable string overrides (ARIA labels, button text).",
634
+ "required": false,
635
+ "inherited": true,
636
+ "deprecated": false
637
+ }
638
+ ],
639
+ "extraProps": [
640
+ {
641
+ "name": "name",
642
+ "type": "string",
643
+ "default": null,
644
+ "description": "Form field name. Forwarded to a hidden ISO-formatted input.",
645
+ "required": false,
646
+ "inherited": false,
647
+ "deprecated": false
648
+ },
649
+ {
650
+ "name": "form",
651
+ "type": "string",
652
+ "default": null,
653
+ "description": "Form id the input belongs to.",
654
+ "required": false,
655
+ "inherited": false,
656
+ "deprecated": false
657
+ },
658
+ {
659
+ "name": "required",
660
+ "type": "boolean",
661
+ "default": "false",
662
+ "description": "Marks the input as required.",
663
+ "required": false,
664
+ "inherited": false,
665
+ "deprecated": false
666
+ },
667
+ {
668
+ "name": "className",
669
+ "type": "string",
670
+ "default": null,
671
+ "description": "Additional CSS classes for the input.",
672
+ "required": false,
673
+ "inherited": false,
674
+ "deprecated": false
675
+ },
676
+ {
677
+ "name": "ref",
678
+ "type": "React.Ref<HTMLInputElement>",
679
+ "default": null,
680
+ "description": "Forwarded to the underlying `<input>`.",
681
+ "required": false,
682
+ "inherited": false,
683
+ "deprecated": false
684
+ }
685
+ ],
686
+ "catchAll": "All standard <input> attributes and Bulma helper props",
687
+ "types": []
688
+ }
689
+ ],
690
+ "cssVars": [
691
+ {
692
+ "css": "--bulma-input-h",
693
+ "sass": "$input-h",
694
+ "default": "var(--bulma-scheme-h)",
695
+ "scope": "component"
696
+ },
697
+ {
698
+ "css": "--bulma-input-s",
699
+ "sass": "$input-s",
700
+ "default": "var(--bulma-scheme-s)",
701
+ "scope": "component"
702
+ },
703
+ {
704
+ "css": "--bulma-input-l",
705
+ "sass": "$input-l",
706
+ "default": "var(--bulma-scheme-main-l)",
707
+ "scope": "component"
708
+ },
709
+ {
710
+ "css": "--bulma-input-border-style",
711
+ "sass": "$input-border-style",
712
+ "default": "solid",
713
+ "scope": "component"
714
+ },
715
+ {
716
+ "css": "--bulma-input-border-width",
717
+ "sass": "$input-border-width",
718
+ "default": "var(--bulma-control-border-width)",
719
+ "scope": "component"
720
+ },
721
+ {
722
+ "css": "--bulma-input-border-l",
723
+ "sass": "$input-border-l",
724
+ "default": "var(--bulma-border-l)",
725
+ "scope": "component"
726
+ },
727
+ {
728
+ "css": "--bulma-input-border-l-delta",
729
+ "sass": "$input-border-l-delta",
730
+ "default": "0%",
731
+ "scope": "component"
732
+ },
733
+ {
734
+ "css": "--bulma-input-border-color",
735
+ "sass": "$input-border-color",
736
+ "default": "hsl(var(--bulma-input-h), var(--bulma-input-s), calc(var(--bulma-input-border-l) + var(--bulma-input-border-l-delta)))",
737
+ "scope": "component"
738
+ },
739
+ {
740
+ "css": "--bulma-input-hover-border-l-delta",
741
+ "sass": "$input-hover-border-l-delta",
742
+ "default": "var(--bulma-hover-border-l-delta)",
743
+ "scope": "component"
744
+ },
745
+ {
746
+ "css": "--bulma-input-active-border-l-delta",
747
+ "sass": "$input-active-border-l-delta",
748
+ "default": "var(--bulma-active-border-l-delta)",
749
+ "scope": "component"
750
+ },
751
+ {
752
+ "css": "--bulma-input-focus-h",
753
+ "sass": "$input-focus-h",
754
+ "default": "var(--bulma-focus-h)",
755
+ "scope": "component"
756
+ },
757
+ {
758
+ "css": "--bulma-input-focus-s",
759
+ "sass": "$input-focus-s",
760
+ "default": "var(--bulma-focus-s)",
761
+ "scope": "component"
762
+ },
763
+ {
764
+ "css": "--bulma-input-focus-l",
765
+ "sass": "$input-focus-l",
766
+ "default": "var(--bulma-focus-l)",
767
+ "scope": "component"
768
+ },
769
+ {
770
+ "css": "--bulma-input-focus-shadow-size",
771
+ "sass": "$input-focus-shadow-size",
772
+ "default": "var(--bulma-focus-shadow-size)",
773
+ "scope": "component"
774
+ },
775
+ {
776
+ "css": "--bulma-input-focus-shadow-alpha",
777
+ "sass": "$input-focus-shadow-alpha",
778
+ "default": "var(--bulma-focus-shadow-alpha)",
779
+ "scope": "component"
780
+ },
781
+ {
782
+ "css": "--bulma-input-color-l",
783
+ "sass": "$input-color-l",
784
+ "default": "var(--bulma-text-strong-l)",
785
+ "scope": "component"
786
+ },
787
+ {
788
+ "css": "--bulma-input-background-l",
789
+ "sass": "$input-background-l",
790
+ "default": "var(--bulma-scheme-main-l)",
791
+ "scope": "component"
792
+ },
793
+ {
794
+ "css": "--bulma-input-background-l-delta",
795
+ "sass": "$input-background-l-delta",
796
+ "default": "0%",
797
+ "scope": "component"
798
+ },
799
+ {
800
+ "css": "--bulma-input-height",
801
+ "sass": "$input-height",
802
+ "default": "var(--bulma-control-height)",
803
+ "scope": "component"
804
+ },
805
+ {
806
+ "css": "--bulma-input-shadow",
807
+ "sass": "$input-shadow",
808
+ "default": "inset 0 0.0625em 0.125em hsla(var(--bulma-scheme-h), var(--bulma-scheme-s), var(--bulma-scheme-invert-l), 0.05)",
809
+ "scope": "component"
810
+ },
811
+ {
812
+ "css": "--bulma-input-placeholder-color",
813
+ "sass": "$input-placeholder-color",
814
+ "default": "hsla(var(--bulma-text-h), var(--bulma-text-s), var(--bulma-text-strong-l), 0.3)",
815
+ "scope": "component"
816
+ },
817
+ {
818
+ "css": "--bulma-input-disabled-color",
819
+ "sass": "$input-disabled-color",
820
+ "default": "var(--bulma-text-weak)",
821
+ "scope": "component"
822
+ },
823
+ {
824
+ "css": "--bulma-input-disabled-background-color",
825
+ "sass": "$input-disabled-background-color",
826
+ "default": "var(--bulma-background)",
827
+ "scope": "component"
828
+ },
829
+ {
830
+ "css": "--bulma-input-disabled-border-color",
831
+ "sass": "$input-disabled-border-color",
832
+ "default": "var(--bulma-background)",
833
+ "scope": "component"
834
+ },
835
+ {
836
+ "css": "--bulma-input-disabled-placeholder-color",
837
+ "sass": "$input-disabled-placeholder-color",
838
+ "default": "hsla(var(--bulma-text-h), var(--bulma-text-s), var(--bulma-text-weak-l), 0.3)",
839
+ "scope": "component"
840
+ },
841
+ {
842
+ "css": "--bulma-input-arrow",
843
+ "sass": "$input-arrow",
844
+ "default": "var(--bulma-link)",
845
+ "scope": "component"
846
+ },
847
+ {
848
+ "css": "--bulma-input-icon-color",
849
+ "sass": "$input-icon-color",
850
+ "default": "var(--bulma-text-light)",
851
+ "scope": "component"
852
+ },
853
+ {
854
+ "css": "--bulma-input-icon-hover-color",
855
+ "sass": "$input-icon-hover-color",
856
+ "default": "var(--bulma-text-weak)",
857
+ "scope": "component"
858
+ },
859
+ {
860
+ "css": "--bulma-input-icon-focus-color",
861
+ "sass": "$input-icon-focus-color",
862
+ "default": "var(--bulma-link)",
863
+ "scope": "component"
864
+ },
865
+ {
866
+ "css": "--bulma-input-radius",
867
+ "sass": "$input-radius",
868
+ "default": "var(--bulma-radius)",
869
+ "scope": "component"
870
+ }
871
+ ]
872
+ }