@allxsmith/bestax-bulma 5.6.2 → 5.8.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 (128) hide show
  1. package/AGENTS.md +28 -0
  2. package/CLAUDE.md +28 -0
  3. package/README.md +15 -15
  4. package/dist/index.cjs.js +3885 -243
  5. package/dist/index.cjs.js.map +1 -1
  6. package/dist/index.esm.js +3884 -242
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/types/columns/Column.d.ts +43 -0
  9. package/dist/types/columns/Columns.d.ts +41 -1
  10. package/dist/types/components/Avatar.d.ts +37 -0
  11. package/dist/types/components/Avatars.d.ts +15 -2
  12. package/dist/types/components/Badge.d.ts +42 -0
  13. package/dist/types/components/Breadcrumb.d.ts +28 -0
  14. package/dist/types/components/Card.d.ts +70 -18
  15. package/dist/types/components/Carousel.d.ts +70 -0
  16. package/dist/types/components/Collapse.d.ts +53 -0
  17. package/dist/types/components/Dialog.d.ts +94 -0
  18. package/dist/types/components/Dropdown.d.ts +44 -0
  19. package/dist/types/components/Loading.d.ts +55 -0
  20. package/dist/types/components/Menu.d.ts +48 -0
  21. package/dist/types/components/Message.d.ts +27 -9
  22. package/dist/types/components/Modal.d.ts +65 -17
  23. package/dist/types/components/Navbar.d.ts +171 -12
  24. package/dist/types/components/Pagination.d.ts +84 -7
  25. package/dist/types/components/Panel.d.ts +109 -9
  26. package/dist/types/components/Reveal.d.ts +43 -0
  27. package/dist/types/components/Sidebar.d.ts +40 -0
  28. package/dist/types/components/Steps.d.ts +66 -1
  29. package/dist/types/components/Tabs.d.ts +100 -11
  30. package/dist/types/components/Toast.d.ts +109 -0
  31. package/dist/types/components/Tooltip.d.ts +50 -0
  32. package/dist/types/elements/Block.d.ts +20 -0
  33. package/dist/types/elements/Box.d.ts +23 -1
  34. package/dist/types/elements/Button.d.ts +26 -0
  35. package/dist/types/elements/Buttons.d.ts +16 -1
  36. package/dist/types/elements/Code.d.ts +19 -0
  37. package/dist/types/elements/Content.d.ts +21 -0
  38. package/dist/types/elements/Delete.d.ts +22 -0
  39. package/dist/types/elements/Divider.d.ts +16 -0
  40. package/dist/types/elements/Emphasis.d.ts +19 -0
  41. package/dist/types/elements/Figure.d.ts +25 -0
  42. package/dist/types/elements/Icon.d.ts +28 -0
  43. package/dist/types/elements/IconText.d.ts +20 -1
  44. package/dist/types/elements/Image.d.ts +27 -0
  45. package/dist/types/elements/Link.d.ts +24 -0
  46. package/dist/types/elements/LinkButton.d.ts +26 -0
  47. package/dist/types/elements/ListItem.d.ts +20 -0
  48. package/dist/types/elements/Notification.d.ts +101 -0
  49. package/dist/types/elements/OrderedList.d.ts +14 -1
  50. package/dist/types/elements/Paragraph.d.ts +19 -0
  51. package/dist/types/elements/Pre.d.ts +19 -0
  52. package/dist/types/elements/Progress.d.ts +20 -0
  53. package/dist/types/elements/Skeleton.d.ts +31 -0
  54. package/dist/types/elements/Span.d.ts +18 -0
  55. package/dist/types/elements/Strong.d.ts +19 -0
  56. package/dist/types/elements/SubTitle.d.ts +27 -0
  57. package/dist/types/elements/Table.d.ts +23 -1
  58. package/dist/types/elements/Tag.d.ts +28 -0
  59. package/dist/types/elements/Tags.d.ts +11 -1
  60. package/dist/types/elements/Tbody.d.ts +19 -0
  61. package/dist/types/elements/Td.d.ts +24 -0
  62. package/dist/types/elements/Tfoot.d.ts +19 -0
  63. package/dist/types/elements/Th.d.ts +25 -0
  64. package/dist/types/elements/Thead.d.ts +19 -0
  65. package/dist/types/elements/Title.d.ts +28 -0
  66. package/dist/types/elements/Tr.d.ts +21 -0
  67. package/dist/types/elements/UnorderedList.d.ts +11 -1
  68. package/dist/types/form/Autocomplete.d.ts +67 -0
  69. package/dist/types/form/Checkbox.d.ts +44 -0
  70. package/dist/types/form/Checkboxes.d.ts +13 -1
  71. package/dist/types/form/Control.d.ts +36 -0
  72. package/dist/types/form/DateInput.d.ts +44 -0
  73. package/dist/types/form/DateInputBase.d.ts +47 -0
  74. package/dist/types/form/DateTimeInput.d.ts +42 -0
  75. package/dist/types/form/DateTimeInputBase.d.ts +56 -0
  76. package/dist/types/form/Field.d.ts +66 -2
  77. package/dist/types/form/File.d.ts +26 -0
  78. package/dist/types/form/FormContext.d.ts +46 -0
  79. package/dist/types/form/Input.d.ts +49 -0
  80. package/dist/types/form/InputBase.d.ts +22 -0
  81. package/dist/types/form/Numberinput.d.ts +46 -0
  82. package/dist/types/form/Radio.d.ts +44 -0
  83. package/dist/types/form/Radios.d.ts +13 -1
  84. package/dist/types/form/Rate.d.ts +71 -0
  85. package/dist/types/form/Select.d.ts +39 -0
  86. package/dist/types/form/SelectBase.d.ts +25 -0
  87. package/dist/types/form/Slider.d.ts +71 -0
  88. package/dist/types/form/Switch.d.ts +53 -0
  89. package/dist/types/form/Taginput.d.ts +77 -0
  90. package/dist/types/form/TextArea.d.ts +38 -0
  91. package/dist/types/form/TextAreaBase.d.ts +25 -0
  92. package/dist/types/form/TimeInput.d.ts +39 -0
  93. package/dist/types/form/TimeInputBase.d.ts +72 -0
  94. package/dist/types/form/_pickerInternals/Calendar.d.ts +6 -0
  95. package/dist/types/form/_pickerInternals/TimeWheels.d.ts +13 -0
  96. package/dist/types/form/_pickerInternals/audioTick.d.ts +47 -0
  97. package/dist/types/form/_pickerInternals/dateUtils.d.ts +13 -0
  98. package/dist/types/form/_pickerInternals/formatters.d.ts +19 -0
  99. package/dist/types/form/_pickerInternals/haptics.d.ts +23 -0
  100. package/dist/types/form/_pickerInternals/pickerTypes.d.ts +8 -0
  101. package/dist/types/form/_pickerInternals/segmentMap.d.ts +48 -0
  102. package/dist/types/form/_pickerInternals/useNativeMobilePicker.d.ts +1 -0
  103. package/dist/types/form/_pickerInternals/useSegmentedEntry.d.ts +30 -0
  104. package/dist/types/form/fieldProps.d.ts +12 -0
  105. package/dist/types/grid/Cell.d.ts +26 -0
  106. package/dist/types/grid/Grid.d.ts +36 -1
  107. package/dist/types/helpers/Config.d.ts +50 -0
  108. package/dist/types/helpers/Theme.d.ts +66 -0
  109. package/dist/types/helpers/bulmaClassHelpers.d.ts +97 -0
  110. package/dist/types/helpers/classNames.d.ts +50 -0
  111. package/dist/types/helpers/useBulmaClasses.d.ts +22 -0
  112. package/dist/types/helpers/useColorClasses.d.ts +20 -0
  113. package/dist/types/helpers/useFlexboxClasses.d.ts +34 -0
  114. package/dist/types/helpers/useOtherClasses.d.ts +27 -0
  115. package/dist/types/helpers/useSpacingClasses.d.ts +27 -0
  116. package/dist/types/helpers/useTypographyClasses.d.ts +32 -0
  117. package/dist/types/helpers/useVisibilityClasses.d.ts +25 -0
  118. package/dist/types/helpers/withSubComponents.d.ts +16 -0
  119. package/dist/types/layout/Container.d.ts +26 -0
  120. package/dist/types/layout/Footer.d.ts +23 -0
  121. package/dist/types/layout/Hero.d.ts +66 -5
  122. package/dist/types/layout/Level.d.ts +68 -5
  123. package/dist/types/layout/Media.d.ts +63 -5
  124. package/dist/types/layout/Section.d.ts +21 -0
  125. package/dist/types/skill-examples/ExampleMeta.d.ts +5 -0
  126. package/dist/types/skill-examples/ProfileCard.d.ts +13 -0
  127. package/llms.txt +9 -0
  128. package/package.json +13 -11
@@ -1,5 +1,16 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Navbar component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes for the navbar.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Color for text.
8
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the navbar.
9
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the navbar.
10
+ * @property {boolean} [transparent] - Whether the navbar is transparent.
11
+ * @property {'top'|'bottom'} [fixed] - Whether the navbar is fixed to the top or bottom.
12
+ * @property {React.ReactNode} [children] - Navbar content.
13
+ */
3
14
  export interface NavbarProps extends React.HTMLAttributes<HTMLElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
15
  className?: string;
5
16
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -9,25 +20,38 @@ export interface NavbarProps extends React.HTMLAttributes<HTMLElement>, Omit<Bul
9
20
  fixed?: 'top' | 'bottom';
10
21
  children?: React.ReactNode;
11
22
  }
12
- export declare const Navbar: React.FC<NavbarProps> & {
13
- Brand: typeof NavbarBrand;
14
- Item: typeof NavbarItem;
15
- Link: typeof NavbarLink;
16
- Burger: typeof NavbarBurger;
17
- Menu: typeof NavbarMenu;
18
- Start: typeof NavbarStart;
19
- End: typeof NavbarEnd;
20
- Dropdown: typeof NavbarDropdown;
21
- DropdownMenu: typeof NavbarDropdownMenu;
22
- Divider: typeof NavbarDivider;
23
- };
23
+ /**
24
+ * Props for the NavbarBrand component.
25
+ *
26
+ * @property {string} [className] - Additional CSS classes.
27
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the brand.
28
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the brand.
29
+ * @property {React.ReactNode} [children] - Brand content.
30
+ */
24
31
  export interface NavbarBrandProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
25
32
  className?: string;
26
33
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
27
34
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
28
35
  children?: React.ReactNode;
29
36
  }
37
+ /**
38
+ * Bulma Navbar brand area (usually left side).
39
+ *
40
+ * @function
41
+ * @param {NavbarBrandProps} props - Props for the NavbarBrand component.
42
+ * @returns {JSX.Element} The rendered brand area.
43
+ */
30
44
  export declare const NavbarBrand: React.FC<NavbarBrandProps>;
45
+ /**
46
+ * Props for the NavbarItem component.
47
+ *
48
+ * @property {string} [className] - Additional CSS classes.
49
+ * @property {React.ElementType} [as] - Render as a custom component (e.g., a router link).
50
+ * @property {boolean} [active] - Whether the item is active.
51
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the item.
52
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the item.
53
+ * @property {React.ReactNode} [children] - Navbar item content.
54
+ */
31
55
  export interface NavbarItemProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
32
56
  className?: string;
33
57
  as?: React.ElementType;
@@ -37,7 +61,26 @@ export interface NavbarItemProps extends Omit<React.AnchorHTMLAttributes<HTMLAnc
37
61
  children?: React.ReactNode;
38
62
  [key: string]: unknown;
39
63
  }
64
+ /**
65
+ * Bulma Navbar item (link, button, etc).
66
+ *
67
+ * @function
68
+ * @param {NavbarItemProps} props - Props for the NavbarItem component.
69
+ * @returns {JSX.Element} The rendered item.
70
+ */
40
71
  export declare const NavbarItem: React.FC<NavbarItemProps>;
72
+ /**
73
+ * Props for the NavbarBurger component.
74
+ *
75
+ * @property {string} [className] - Additional CSS classes.
76
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the burger.
77
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the burger.
78
+ * @property {boolean} [active] - Whether the burger is active.
79
+ * @property {React.ReactNode} [children] - Custom content inside the burger.
80
+ * @property {string} ['aria-label'] - Aria label for accessibility.
81
+ * @property {boolean} ['aria-expanded'] - Aria expanded state.
82
+ * @property {React.MouseEventHandler<HTMLButtonElement>} [onClick] - Click handler.
83
+ */
41
84
  export interface NavbarBurgerProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
42
85
  className?: string;
43
86
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -48,7 +91,23 @@ export interface NavbarBurgerProps extends React.ButtonHTMLAttributes<HTMLButton
48
91
  'aria-expanded'?: boolean;
49
92
  onClick?: React.MouseEventHandler<HTMLButtonElement>;
50
93
  }
94
+ /**
95
+ * Bulma Navbar burger (responsive menu toggle).
96
+ *
97
+ * @function
98
+ * @param {NavbarBurgerProps} props - Props for the NavbarBurger component.
99
+ * @returns {JSX.Element} The rendered burger.
100
+ */
51
101
  export declare const NavbarBurger: React.FC<NavbarBurgerProps>;
102
+ /**
103
+ * Props for the NavbarMenu component.
104
+ *
105
+ * @property {string} [className] - Additional CSS classes.
106
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the menu.
107
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the menu.
108
+ * @property {boolean} [active] - Whether the menu is active.
109
+ * @property {React.ReactNode} [children] - Menu content.
110
+ */
52
111
  export interface NavbarMenuProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
53
112
  className?: string;
54
113
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -56,15 +115,54 @@ export interface NavbarMenuProps extends React.HTMLAttributes<HTMLDivElement>, O
56
115
  active?: boolean;
57
116
  children?: React.ReactNode;
58
117
  }
118
+ /**
119
+ * Bulma Navbar menu area (collapsible content).
120
+ *
121
+ * @function
122
+ * @param {NavbarMenuProps} props - Props for the NavbarMenu component.
123
+ * @returns {JSX.Element} The rendered menu.
124
+ */
59
125
  export declare const NavbarMenu: React.FC<NavbarMenuProps>;
126
+ /**
127
+ * Props for the NavbarStartEnd component.
128
+ *
129
+ * @property {string} [className] - Additional CSS classes.
130
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.
131
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.
132
+ * @property {React.ReactNode} [children] - Content.
133
+ */
60
134
  export interface NavbarStartEndProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
61
135
  className?: string;
62
136
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
63
137
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
64
138
  children?: React.ReactNode;
65
139
  }
140
+ /**
141
+ * Bulma Navbar start area (left-aligned).
142
+ *
143
+ * @function
144
+ * @param {NavbarStartEndProps} props - Props for the NavbarStart component.
145
+ * @returns {JSX.Element} The rendered start area.
146
+ */
66
147
  export declare const NavbarStart: React.FC<NavbarStartEndProps>;
148
+ /**
149
+ * Bulma Navbar end area (right-aligned).
150
+ *
151
+ * @function
152
+ * @param {NavbarStartEndProps} props - Props for the NavbarEnd component.
153
+ * @returns {JSX.Element} The rendered end area.
154
+ */
67
155
  export declare const NavbarEnd: React.FC<NavbarStartEndProps>;
156
+ /**
157
+ * Props for the NavbarLink component.
158
+ *
159
+ * @property {string} [className] - Additional CSS classes.
160
+ * @property {React.ElementType} [as] - Render as a custom component (default: 'a').
161
+ * @property {boolean} [arrowless] - Remove the dropdown arrow indicator.
162
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.
163
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.
164
+ * @property {React.ReactNode} [children] - Link content.
165
+ */
68
166
  export interface NavbarLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
69
167
  className?: string;
70
168
  as?: React.ElementType;
@@ -73,7 +171,27 @@ export interface NavbarLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnc
73
171
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
74
172
  children?: React.ReactNode;
75
173
  }
174
+ /**
175
+ * Bulma Navbar link — the dropdown trigger inside a `Navbar.Dropdown`.
176
+ *
177
+ * Renders with the `navbar-link` class, which adds a dropdown arrow indicator
178
+ * automatically. Use `arrowless` to remove the arrow.
179
+ *
180
+ * @function
181
+ * @param {NavbarLinkProps} props - Props for the NavbarLink component.
182
+ * @returns {JSX.Element} The rendered navbar link.
183
+ */
76
184
  export declare const NavbarLink: React.FC<NavbarLinkProps>;
185
+ /**
186
+ * Props for the NavbarDropdown component.
187
+ *
188
+ * @property {string} [className] - Additional CSS classes.
189
+ * @property {boolean} [right] - Dropdown aligned right.
190
+ * @property {boolean} [up] - Dropdown opens upwards.
191
+ * @property {boolean} [hoverable] - Dropdown opens on hover.
192
+ * @property {boolean} [active] - Dropdown is open.
193
+ * @property {React.ReactNode} [children] - Dropdown content.
194
+ */
77
195
  export interface NavbarDropdownProps extends React.HTMLAttributes<HTMLDivElement> {
78
196
  className?: string;
79
197
  right?: boolean;
@@ -82,13 +200,54 @@ export interface NavbarDropdownProps extends React.HTMLAttributes<HTMLDivElement
82
200
  active?: boolean;
83
201
  children?: React.ReactNode;
84
202
  }
203
+ /**
204
+ * Bulma Navbar dropdown (for nested dropdown menus).
205
+ *
206
+ * @function
207
+ * @param {NavbarDropdownProps} props - Props for the NavbarDropdown component.
208
+ * @returns {JSX.Element} The rendered dropdown.
209
+ */
85
210
  export declare const NavbarDropdown: React.FC<NavbarDropdownProps>;
211
+ /**
212
+ * Props for the NavbarDropdownMenu component.
213
+ *
214
+ * @property {string} [className] - Additional CSS classes.
215
+ * @property {boolean} [right] - Dropdown aligned right.
216
+ * @property {boolean} [up] - Dropdown opens upwards.
217
+ * @property {React.ReactNode} [children] - Dropdown menu content.
218
+ */
86
219
  export interface NavbarDropdownMenuProps extends React.HTMLAttributes<HTMLDivElement> {
87
220
  className?: string;
88
221
  right?: boolean;
89
222
  up?: boolean;
90
223
  children?: React.ReactNode;
91
224
  }
225
+ /**
226
+ * Bulma Navbar dropdown menu container.
227
+ *
228
+ * @function
229
+ * @param {NavbarDropdownMenuProps} props - Props for the NavbarDropdownMenu component.
230
+ * @returns {JSX.Element} The rendered dropdown menu.
231
+ */
92
232
  export declare const NavbarDropdownMenu: React.FC<NavbarDropdownMenuProps>;
233
+ /**
234
+ * Bulma Navbar divider.
235
+ *
236
+ * @function
237
+ * @param {React.HTMLAttributes<HTMLHRElement>} props - Standard hr props.
238
+ * @returns {JSX.Element} The rendered divider.
239
+ */
93
240
  export declare const NavbarDivider: React.FC<React.HTMLAttributes<HTMLHRElement>>;
241
+ export declare const Navbar: React.FC<NavbarProps> & {
242
+ Brand: React.FC<NavbarBrandProps>;
243
+ Item: React.FC<NavbarItemProps>;
244
+ Link: React.FC<NavbarLinkProps>;
245
+ Burger: React.FC<NavbarBurgerProps>;
246
+ Menu: React.FC<NavbarMenuProps>;
247
+ Start: React.FC<NavbarStartEndProps>;
248
+ End: React.FC<NavbarStartEndProps>;
249
+ Dropdown: React.FC<NavbarDropdownProps>;
250
+ DropdownMenu: React.FC<NavbarDropdownMenuProps>;
251
+ Divider: React.FC<React.HTMLAttributes<HTMLHRElement>>;
252
+ };
94
253
  export default Navbar;
@@ -1,5 +1,20 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Pagination component.
5
+ *
6
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color for the pagination.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the pagination.
8
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the pagination.
9
+ * @property {'small'|'medium'|'large'} [size] - Size modifier for the pagination.
10
+ * @property {'centered'|'right'} [align] - Alignment for the pagination.
11
+ * @property {boolean} [rounded] - Renders pagination with rounded corners.
12
+ * @property {number} [total] - Total number of pages.
13
+ * @property {number} [current] - Current page.
14
+ * @property {(page: number) => void} [onPageChange] - Page change callback.
15
+ * @property {string} [className] - Additional CSS classes.
16
+ * @property {React.ReactNode} [children] - Custom pagination content.
17
+ */
3
18
  export interface PaginationProps extends React.HTMLAttributes<HTMLElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
19
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
5
20
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -13,20 +28,43 @@ export interface PaginationProps extends React.HTMLAttributes<HTMLElement>, Omit
13
28
  className?: string;
14
29
  children?: React.ReactNode;
15
30
  }
31
+ /**
32
+ * Props for PaginationPrevious and PaginationNext components.
33
+ *
34
+ * @property {string} [className] - Additional CSS classes.
35
+ * @property {boolean} [disabled] - Whether previous/next is disabled.
36
+ * @property {React.ReactNode} [children] - Button content.
37
+ */
16
38
  export interface PaginationPreviousNextProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
17
39
  className?: string;
18
40
  disabled?: boolean;
19
41
  children?: React.ReactNode;
20
42
  }
43
+ /**
44
+ * Bulma Pagination previous button.
45
+ *
46
+ * @function
47
+ * @param {PaginationPreviousNextProps} props - Props for the PaginationPrevious component.
48
+ * @returns {JSX.Element} The rendered previous button.
49
+ */
21
50
  export declare const PaginationPrevious: React.FC<PaginationPreviousNextProps>;
51
+ /**
52
+ * Bulma Pagination next button.
53
+ *
54
+ * @function
55
+ * @param {PaginationPreviousNextProps} props - Props for the PaginationNext component.
56
+ * @returns {JSX.Element} The rendered next button.
57
+ */
22
58
  export declare const PaginationNext: React.FC<PaginationPreviousNextProps>;
23
- export declare const Pagination: React.FC<PaginationProps> & {
24
- Link: typeof PaginationLink;
25
- List: typeof PaginationList;
26
- Ellipsis: typeof PaginationEllipsis;
27
- Previous: typeof PaginationPrevious;
28
- Next: typeof PaginationNext;
29
- };
59
+ /**
60
+ * Props for the PaginationList component.
61
+ *
62
+ * @property {string} [className] - Additional CSS classes.
63
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the list.
64
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the list.
65
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the list.
66
+ * @property {React.ReactNode} [children] - List items.
67
+ */
30
68
  export interface PaginationListProps extends React.HTMLAttributes<HTMLUListElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
31
69
  className?: string;
32
70
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -34,7 +72,25 @@ export interface PaginationListProps extends React.HTMLAttributes<HTMLUListEleme
34
72
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
35
73
  children?: React.ReactNode;
36
74
  }
75
+ /**
76
+ * Bulma Pagination list container.
77
+ *
78
+ * @function
79
+ * @param {PaginationListProps} props - Props for the PaginationList component.
80
+ * @returns {JSX.Element} The rendered pagination list.
81
+ */
37
82
  export declare const PaginationList: React.FC<PaginationListProps>;
83
+ /**
84
+ * Props for the PaginationLink component.
85
+ *
86
+ * @property {string} [className] - Additional CSS classes.
87
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.
88
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.
89
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.
90
+ * @property {boolean} [active] - Whether the link is for the current page.
91
+ * @property {boolean} [disabled] - Whether the link is disabled.
92
+ * @property {React.ReactNode} [children] - Link content.
93
+ */
38
94
  export interface PaginationLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
39
95
  className?: string;
40
96
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
@@ -44,6 +100,27 @@ export interface PaginationLinkProps extends React.AnchorHTMLAttributes<HTMLAnch
44
100
  disabled?: boolean;
45
101
  children?: React.ReactNode;
46
102
  }
103
+ /**
104
+ * Bulma Pagination link (page number).
105
+ *
106
+ * @function
107
+ * @param {PaginationLinkProps} props - Props for the PaginationLink component.
108
+ * @returns {JSX.Element} The rendered pagination link.
109
+ */
47
110
  export declare const PaginationLink: React.FC<PaginationLinkProps>;
111
+ /**
112
+ * Bulma Pagination ellipsis element.
113
+ *
114
+ * @function
115
+ * @param {React.LiHTMLAttributes<HTMLLIElement>} props - Standard li props.
116
+ * @returns {JSX.Element} The rendered ellipsis.
117
+ */
48
118
  export declare const PaginationEllipsis: React.FC<React.LiHTMLAttributes<HTMLLIElement>>;
119
+ export declare const Pagination: React.FC<PaginationProps> & {
120
+ Link: React.FC<PaginationLinkProps>;
121
+ List: React.FC<PaginationListProps>;
122
+ Ellipsis: React.FC<React.LiHTMLAttributes<HTMLLIElement>>;
123
+ Previous: React.FC<PaginationPreviousNextProps>;
124
+ Next: React.FC<PaginationPreviousNextProps>;
125
+ };
49
126
  export default Pagination;
@@ -1,53 +1,153 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
3
  import { IconProps } from '../elements/Icon';
4
+ /**
5
+ * Props for the Panel component.
6
+ *
7
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the panel.
8
+ * @property {string} [className] - Additional CSS classes.
9
+ * @property {React.ReactNode} [children] - Panel content.
10
+ */
4
11
  export interface PanelProps extends React.HTMLAttributes<HTMLElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
5
12
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
6
13
  className?: string;
7
14
  children?: React.ReactNode;
8
15
  }
16
+ /**
17
+ * Props for the PanelHeading component.
18
+ *
19
+ * @property {string} [className] - Additional CSS classes.
20
+ * @property {React.ReactNode} [children] - Heading content.
21
+ */
9
22
  export interface PanelHeadingProps extends React.HTMLAttributes<HTMLParagraphElement> {
10
23
  className?: string;
11
24
  children?: React.ReactNode;
12
25
  }
26
+ /**
27
+ * Props for the PanelTabs component.
28
+ *
29
+ * @property {string} [className] - Additional CSS classes.
30
+ * @property {React.ReactNode} [children] - Tabs content.
31
+ */
13
32
  export interface PanelTabsProps extends React.HTMLAttributes<HTMLDivElement> {
14
33
  className?: string;
15
34
  children?: React.ReactNode;
16
35
  }
36
+ /**
37
+ * Props for the PanelBlock component.
38
+ *
39
+ * @property {string} [className] - Additional CSS classes.
40
+ * @property {boolean} [active] - Whether the block is active.
41
+ * @property {React.ReactNode} [children] - Block content.
42
+ */
17
43
  export interface PanelBlockProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
18
44
  className?: string;
19
45
  active?: boolean;
20
46
  children?: React.ReactNode;
21
47
  }
48
+ /**
49
+ * Props for the PanelIcon component.
50
+ * Extends IconProps but uses 'panel-icon' as the container class.
51
+ */
22
52
  export type PanelIconProps = Omit<IconProps, 'containerClassName'>;
53
+ /**
54
+ * Props for the PanelInputBlock component.
55
+ *
56
+ * @property {string} [value] - Input value.
57
+ * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Input change handler.
58
+ * @property {string} [placeholder] - Input placeholder.
59
+ * @property {string} [iconClassName] - Icon class for left icon (default 'fas fa-search').
60
+ */
23
61
  export interface PanelInputBlockProps extends React.HTMLAttributes<HTMLDivElement> {
24
62
  value?: string;
25
63
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
26
64
  placeholder?: string;
27
65
  iconClassName?: string;
28
66
  }
67
+ /**
68
+ * Props for the PanelCheckboxBlock component.
69
+ *
70
+ * @property {boolean} [checked] - Whether the checkbox is checked.
71
+ * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Checkbox change handler.
72
+ * @property {React.ReactNode} [children] - Label/content.
73
+ */
29
74
  export interface PanelCheckboxBlockProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'onChange'> {
30
75
  checked?: boolean;
31
76
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
32
77
  children?: React.ReactNode;
33
78
  }
79
+ /**
80
+ * Props for the PanelButtonBlock component.
81
+ *
82
+ * @property {React.ReactNode} [children] - Button content.
83
+ */
34
84
  export interface PanelButtonBlockProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
35
85
  children?: React.ReactNode;
36
86
  }
37
- export declare const Panel: React.FC<PanelProps> & {
38
- Heading: typeof PanelHeading;
39
- Tabs: typeof PanelTabs;
40
- Block: typeof PanelBlock;
41
- Icon: typeof PanelIcon;
42
- InputBlock: typeof PanelInputBlock;
43
- CheckboxBlock: typeof PanelCheckboxBlock;
44
- ButtonBlock: typeof PanelButtonBlock;
45
- };
87
+ /**
88
+ * Bulma Panel heading.
89
+ *
90
+ * @function
91
+ * @param {PanelHeadingProps} props - Props for the PanelHeading component.
92
+ * @returns {JSX.Element} The rendered panel heading.
93
+ */
46
94
  export declare const PanelHeading: React.FC<PanelHeadingProps>;
95
+ /**
96
+ * Bulma Panel tabs.
97
+ *
98
+ * @function
99
+ * @param {PanelTabsProps} props - Props for the PanelTabs component.
100
+ * @returns {JSX.Element} The rendered panel tabs.
101
+ */
47
102
  export declare const PanelTabs: React.FC<PanelTabsProps>;
103
+ /**
104
+ * Bulma Panel block.
105
+ *
106
+ * @function
107
+ * @param {PanelBlockProps} props - Props for the PanelBlock component.
108
+ * @returns {JSX.Element} The rendered panel block.
109
+ */
48
110
  export declare const PanelBlock: React.FC<PanelBlockProps>;
111
+ /**
112
+ * Bulma Panel icon.
113
+ * Wraps the Icon component with 'panel-icon' container class.
114
+ *
115
+ * @function
116
+ * @param {PanelIconProps} props - Props for the PanelIcon component.
117
+ * @returns {JSX.Element} The rendered panel icon.
118
+ */
49
119
  export declare const PanelIcon: React.FC<PanelIconProps>;
120
+ /**
121
+ * Bulma Panel input block.
122
+ *
123
+ * @function
124
+ * @param {PanelInputBlockProps} props - Props for the PanelInputBlock component.
125
+ * @returns {JSX.Element} The rendered panel input block.
126
+ */
50
127
  export declare const PanelInputBlock: React.FC<PanelInputBlockProps>;
128
+ /**
129
+ * Bulma Panel checkbox block.
130
+ *
131
+ * @function
132
+ * @param {PanelCheckboxBlockProps} props - Props for the PanelCheckboxBlock component.
133
+ * @returns {JSX.Element} The rendered panel checkbox block.
134
+ */
51
135
  export declare const PanelCheckboxBlock: React.FC<PanelCheckboxBlockProps>;
136
+ /**
137
+ * Bulma Panel button block.
138
+ *
139
+ * @function
140
+ * @param {PanelButtonBlockProps} props - Props for the PanelButtonBlock component.
141
+ * @returns {JSX.Element} The rendered panel button block.
142
+ */
52
143
  export declare const PanelButtonBlock: React.FC<PanelButtonBlockProps>;
144
+ export declare const Panel: React.FC<PanelProps> & {
145
+ Heading: React.FC<PanelHeadingProps>;
146
+ Tabs: React.FC<PanelTabsProps>;
147
+ Block: React.FC<PanelBlockProps>;
148
+ Icon: React.FC<PanelIconProps>;
149
+ InputBlock: React.FC<PanelInputBlockProps>;
150
+ CheckboxBlock: React.FC<PanelCheckboxBlockProps>;
151
+ ButtonBlock: React.FC<PanelButtonBlockProps>;
152
+ };
53
153
  export default Panel;
@@ -1,6 +1,22 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Animation styles available for the Reveal component.
5
+ */
3
6
  export type RevealAnimation = 'fade' | 'fade-up' | 'fade-down' | 'slide-left' | 'slide-right' | 'zoom' | 'flip';
7
+ /**
8
+ * Props for the Reveal component.
9
+ *
10
+ * @property {RevealAnimation} [animation] - Animation style used when the element enters the viewport. Default: 'fade-up'.
11
+ * @property {number} [delay] - Delay in milliseconds before the animation starts. Default: 0.
12
+ * @property {number} [duration] - Animation duration in milliseconds. Default: 600.
13
+ * @property {number} [threshold] - Fraction (0-1) of the element that must be visible to trigger the reveal. Values are clamped to the 0-1 range and fall back to 0.15 when not a finite number. Default: 0.15.
14
+ * @property {boolean} [once] - Animate only the first time the element enters the viewport; if `false`, it re-animates on every entry/exit. Default: true.
15
+ * @property {React.ElementType} [as] - Element or component to render as. Default: 'div'. When `as` is a plain intrinsic tag (e.g. `'section'`), your `className`, `style`, and Bulma helper classes plus everything in `...rest` all land on that single element. When `as` is a component (e.g. `Section`, `Card`), scroll detection needs a real DOM node with a ref, so `Reveal` wraps it in an observed `div`: `className`/`style`/helper classes go on that wrapper `div`, while `...rest` (`id`, `aria-*`, `data-*`, event handlers) is forwarded to the inner component.
16
+ * @property {boolean} [cascade] - Stagger direct children with an incrementing delay instead of animating this element as a single block.
17
+ * @property {number} [cascadeInterval] - Milliseconds added to each successive child's delay when `cascade` is set. Default: 80.
18
+ * @property {React.ReactNode} [children] - Content to reveal.
19
+ */
4
20
  export interface RevealProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, BulmaClassesProps {
5
21
  animation?: RevealAnimation;
6
22
  delay?: number;
@@ -12,5 +28,32 @@ export interface RevealProps extends Omit<React.HTMLAttributes<HTMLElement>, 'co
12
28
  cascadeInterval?: number;
13
29
  children?: React.ReactNode;
14
30
  }
31
+ /**
32
+ * Reveal component that animates its content into view as it scrolls into
33
+ * the viewport, backed by `IntersectionObserver`.
34
+ *
35
+ * Renders in its final, visible state during SSR and on the first client
36
+ * render, so content is never hidden if JavaScript never runs (crawlers,
37
+ * disabled JS). Automatically skips the animation (renders the final state
38
+ * immediately) when the user prefers reduced motion.
39
+ *
40
+ * @function
41
+ * @param {RevealProps} props - Props for the Reveal component.
42
+ * @returns {JSX.Element} The rendered reveal wrapper.
43
+ *
44
+ * @example
45
+ * // Fade a section up into view
46
+ * <Reveal animation="fade-up" as={Section}>
47
+ * <Title>Why Grass Doctor</Title>
48
+ * </Reveal>
49
+ *
50
+ * @example
51
+ * // Stagger a set of cards as they enter the viewport
52
+ * <Reveal animation="fade-up" cascade cascadeInterval={80}>
53
+ * {services.map(service => (
54
+ * <Card key={service.name}>{service.name}</Card>
55
+ * ))}
56
+ * </Reveal>
57
+ */
15
58
  export declare const Reveal: React.FC<RevealProps>;
16
59
  export default Reveal;
@@ -1,6 +1,21 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /** Position of the sidebar relative to the viewport. */
3
4
  export type SidebarPosition = 'left' | 'right';
5
+ /**
6
+ * Props for the Sidebar component.
7
+ *
8
+ * @property {boolean} isOpen - Whether the sidebar is open.
9
+ * @property {() => void} [onClose] - Callback when sidebar should close.
10
+ * @property {SidebarPosition} [position] - Which side the sidebar appears from. Default: 'left'.
11
+ * @property {string} [width] - Custom width. Default: '260px'.
12
+ * @property {boolean} [fullWidth] - Sidebar takes full width (mobile-style).
13
+ * @property {boolean} [overlay] - Show overlay behind sidebar. Default: true.
14
+ * @property {boolean} [overlayClose] - Close sidebar when overlay is clicked. Default: true.
15
+ * @property {boolean} [escapeClose] - Close sidebar on Escape key. Default: true.
16
+ * @property {boolean} [canCancel] - Allow closing the sidebar. Default: true.
17
+ * @property {React.ReactNode} [children] - Content to display in the sidebar.
18
+ */
4
19
  export interface SidebarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children' | 'color'>, BulmaClassesProps {
5
20
  isOpen: boolean;
6
21
  onClose?: () => void;
@@ -12,18 +27,43 @@ export interface SidebarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'c
12
27
  escapeClose?: boolean;
13
28
  canCancel?: boolean;
14
29
  children?: React.ReactNode;
30
+ /** Render without portal. Default false. */
15
31
  inline?: boolean;
16
32
  }
33
+ /**
34
+ * Props for the SidebarHeader component.
35
+ *
36
+ * @property {React.ReactNode} [children] - Header content.
37
+ */
17
38
  interface SidebarHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
18
39
  children?: React.ReactNode;
19
40
  }
41
+ /**
42
+ * Props for the SidebarTitle component.
43
+ *
44
+ * @property {React.ReactNode} [children] - Title content.
45
+ */
20
46
  interface SidebarTitleProps extends React.HTMLAttributes<HTMLParagraphElement> {
21
47
  children?: React.ReactNode;
22
48
  }
49
+ /**
50
+ * Props for the SidebarClose component.
51
+ * Extends standard button attributes.
52
+ */
23
53
  type SidebarCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
54
+ /**
55
+ * Props for the SidebarBody component.
56
+ *
57
+ * @property {React.ReactNode} [children] - Body content.
58
+ */
24
59
  interface SidebarBodyProps extends React.HTMLAttributes<HTMLDivElement> {
25
60
  children?: React.ReactNode;
26
61
  }
62
+ /**
63
+ * Props for the SidebarFooter component.
64
+ *
65
+ * @property {React.ReactNode} [children] - Footer content.
66
+ */
27
67
  interface SidebarFooterProps extends React.HTMLAttributes<HTMLDivElement> {
28
68
  children?: React.ReactNode;
29
69
  }