@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,6 +1,41 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Possible values for Bulma column size.
5
+ */
3
6
  export type BulmaColumnSize = number | 'full' | 'half' | 'one-third' | 'two-thirds' | 'one-quarter' | 'three-quarters' | 'one-fifth' | 'two-fifths' | 'three-fifths' | 'four-fifths';
7
+ /**
8
+ * Props for the Column component.
9
+ *
10
+ * @property {string} [className] - Additional CSS classes to apply.
11
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
12
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the column.
13
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
14
+ *
15
+ * @property {BulmaColumnSize} [size] - Column size.
16
+ * @property {BulmaColumnSize} [sizeMobile] - Mobile column size.
17
+ * @property {BulmaColumnSize} [sizeTablet] - Tablet column size.
18
+ * @property {BulmaColumnSize} [sizeDesktop] - Desktop column size.
19
+ * @property {BulmaColumnSize} [sizeWidescreen] - Widescreen column size.
20
+ * @property {BulmaColumnSize} [sizeFullhd] - FullHD column size.
21
+ *
22
+ * @property {BulmaColumnSize} [offset] - Column offset.
23
+ * @property {BulmaColumnSize} [offsetMobile] - Mobile column offset.
24
+ * @property {BulmaColumnSize} [offsetTablet] - Tablet column offset.
25
+ * @property {BulmaColumnSize} [offsetDesktop] - Desktop column offset.
26
+ * @property {BulmaColumnSize} [offsetWidescreen] - Widescreen column offset.
27
+ * @property {BulmaColumnSize} [offsetFullhd] - FullHD column offset.
28
+ *
29
+ * @property {boolean} [isNarrow] - The column is narrow.
30
+ * @property {boolean} [isNarrowMobile] - The column is narrow on mobile.
31
+ * @property {boolean} [isNarrowTablet] - The column is narrow on tablet.
32
+ * @property {boolean} [isNarrowTouch] - The column is narrow on touch devices.
33
+ * @property {boolean} [isNarrowDesktop] - The column is narrow on desktop.
34
+ * @property {boolean} [isNarrowWidescreen] - The column is narrow on widescreen.
35
+ * @property {boolean} [isNarrowFullhd] - The column is narrow on fullhd.
36
+ *
37
+ * @property {React.ReactNode} [children] - Children to render inside the column.
38
+ */
4
39
  export interface ColumnProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
5
40
  className?: string;
6
41
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -27,4 +62,12 @@ export interface ColumnProps extends React.HTMLAttributes<HTMLDivElement>, Omit<
27
62
  isNarrowFullhd?: boolean;
28
63
  children?: React.ReactNode;
29
64
  }
65
+ /**
66
+ * Bulma Column component for responsive grid layouts.
67
+ *
68
+ * @function
69
+ * @param {ColumnProps} props - Props for the Column component.
70
+ * @returns {JSX.Element} The rendered column.
71
+ * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}
72
+ */
30
73
  export declare const Column: React.FC<ColumnProps>;
@@ -1,7 +1,39 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
3
  import type { BulmaGapValue } from '../grid/Grid';
4
+ /**
5
+ * Possible values for the Bulma columns gap size.
6
+ * @deprecated Use {@link BulmaGapValue} instead — `gapSize*` and `gap*` share
7
+ * the same 0-8 scale.
8
+ */
4
9
  export type BulmaGapSize = BulmaGapValue;
10
+ /**
11
+ * Props for the Columns component.
12
+ *
13
+ * @property {string} [className] - Additional CSS classes to apply.
14
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
15
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for columns.
16
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
17
+ * @property {boolean} [isCentered] - Center the columns container.
18
+ * @property {boolean} [isGapless] - Remove all column gaps.
19
+ * @property {boolean} [isMultiline] - Allow columns to wrap to multiple lines.
20
+ * @property {boolean} [isVCentered] - Vertically center columns.
21
+ * @property {boolean} [isMobile] - Only apply columns styles on mobile.
22
+ * @property {boolean} [isDesktop] - Only apply columns styles on desktop.
23
+ * @property {BulmaGapValue} [gap] - Gap size for all breakpoints. Wins over `gapSize` if both are set.
24
+ * @property {BulmaGapValue} [gapMobile] - Gap size for mobile. Wins over `gapSizeMobile` if both are set.
25
+ * @property {BulmaGapValue} [gapTablet] - Gap size for tablet. Wins over `gapSizeTablet` if both are set.
26
+ * @property {BulmaGapValue} [gapDesktop] - Gap size for desktop. Wins over `gapSizeDesktop` if both are set.
27
+ * @property {BulmaGapValue} [gapWidescreen] - Gap size for widescreen. Wins over `gapSizeWidescreen` if both are set.
28
+ * @property {BulmaGapValue} [gapFullhd] - Gap size for fullhd. Wins over `gapSizeFullhd` if both are set.
29
+ * @property {BulmaGapSize} [gapSize] - Gap size for all breakpoints. @deprecated Use `gap` instead.
30
+ * @property {BulmaGapSize} [gapSizeMobile] - Gap size for mobile. @deprecated Use `gapMobile` instead.
31
+ * @property {BulmaGapSize} [gapSizeTablet] - Gap size for tablet. @deprecated Use `gapTablet` instead.
32
+ * @property {BulmaGapSize} [gapSizeDesktop] - Gap size for desktop. @deprecated Use `gapDesktop` instead.
33
+ * @property {BulmaGapSize} [gapSizeWidescreen] - Gap size for widescreen. @deprecated Use `gapWidescreen` instead.
34
+ * @property {BulmaGapSize} [gapSizeFullhd] - Gap size for fullhd. @deprecated Use `gapFullhd` instead.
35
+ * @property {React.ReactNode} [children] - Columns to render within the container.
36
+ */
5
37
  export interface ColumnsProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
6
38
  className?: string;
7
39
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -19,12 +51,20 @@ export interface ColumnsProps extends React.HTMLAttributes<HTMLDivElement>, Omit
19
51
  gapDesktop?: BulmaGapValue;
20
52
  gapWidescreen?: BulmaGapValue;
21
53
  gapFullhd?: BulmaGapValue;
54
+ /** @deprecated Use `gap` instead — `gap` wins if both are set. */
22
55
  gapSize?: BulmaGapSize;
56
+ /** @deprecated Use `gapMobile` instead — `gapMobile` wins if both are set. */
23
57
  gapSizeMobile?: BulmaGapSize;
58
+ /** @deprecated Use `gapTablet` instead — `gapTablet` wins if both are set. */
24
59
  gapSizeTablet?: BulmaGapSize;
60
+ /** @deprecated Use `gapDesktop` instead — `gapDesktop` wins if both are set. */
25
61
  gapSizeDesktop?: BulmaGapSize;
62
+ /** @deprecated Use `gapWidescreen` instead — `gapWidescreen` wins if both are set. */
26
63
  gapSizeWidescreen?: BulmaGapSize;
64
+ /** @deprecated Use `gapFullhd` instead — `gapFullhd` wins if both are set. */
27
65
  gapSizeFullhd?: BulmaGapSize;
28
66
  children?: React.ReactNode;
29
67
  }
30
- export declare const Columns: React.FC<ColumnsProps>;
68
+ export declare const Columns: React.FC<ColumnsProps> & {
69
+ Column: React.FC<import("./Column").ColumnProps>;
70
+ };
@@ -1,10 +1,31 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
3
  declare const avatarColors: readonly ["primary", "link", "info", "success", "warning", "danger", "black", "dark", "light", "white"];
4
+ /** Valid color values for the Avatar component. */
4
5
  export type AvatarColor = (typeof avatarColors)[number];
5
6
  declare const avatarSizes: readonly ["16x16", "24x24", "32x32", "48x48", "64x64", "96x96", "128x128"];
7
+ /** Valid preset size values for the Avatar component. */
6
8
  export type AvatarSize = (typeof avatarSizes)[number];
9
+ /** Valid shape values for the Avatar component. */
7
10
  export type AvatarShape = 'circle' | 'rounded' | 'square';
11
+ /**
12
+ * Props for the Avatar component.
13
+ *
14
+ * @property {string} [className] - Additional CSS classes to apply.
15
+ * @property {string} [src] - Image URL. On load error (or if absent), falls back to initials, then icon.
16
+ * @property {string} [alt] - Alternate text for the image (required for meaningful images). An explicit `alt=""` marks a non-interactive avatar as decorative (skipped by screen readers).
17
+ * @property {string} [name] - Derives initials and a deterministic background color when no `src`/`initials` is shown.
18
+ * @property {string} [initials] - Explicit initials override (else derived from `name`).
19
+ * @property {React.ReactNode} [icon] - Final fallback rendered when there is no `src`, `name`, or `initials`.
20
+ * @property {AvatarSize | number} [size] - Preset size, or a pixel size when a number.
21
+ * @property {AvatarShape} [shape] - Avatar shape. Default `'circle'`.
22
+ * @property {AvatarColor} [color] - Background color for initials/icon avatars (else auto-derived from `name`).
23
+ * @property {React.ElementType} [as] - Element/component to render as. Defaults to `'a'` when `href` is set, else `'figure'`.
24
+ * @property {string} [href] - When set, renders the avatar as a link.
25
+ * @property {string} [target] - Anchor target (forwarded only when rendering a link).
26
+ * @property {string} [rel] - Anchor rel (forwarded only when rendering a link).
27
+ * @property {React.ImgHTMLAttributes<HTMLImageElement>} [imageProps] - Extra props forwarded to the underlying `<img>` (e.g. `loading`, `crossOrigin`); its `onError` is chained before the fallback fires.
28
+ */
8
29
  export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, Omit<BulmaClassesProps, 'color'> {
9
30
  className?: string;
10
31
  src?: string;
@@ -21,5 +42,21 @@ export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'co
21
42
  rel?: string;
22
43
  imageProps?: React.ImgHTMLAttributes<HTMLImageElement>;
23
44
  }
45
+ /**
46
+ * Avatar component for representing a person or entity as a compact image.
47
+ *
48
+ * Falls back automatically: `src` (image) -> initials (from `initials`/`name`) -> `icon` ->
49
+ * a generic default icon. Initials avatars get a stable auto background color derived from
50
+ * `name` unless `color` is set.
51
+ *
52
+ * @function
53
+ * @param {AvatarProps} props - Props for the Avatar component.
54
+ * @returns {JSX.Element} The rendered avatar element.
55
+ *
56
+ * @example
57
+ * <Avatar src="/users/ada.jpg" name="Ada Lovelace" size="64x64" />
58
+ * @example
59
+ * <Avatar name="Grace Hopper" />
60
+ */
24
61
  export declare const Avatar: React.FC<AvatarProps>;
25
62
  export default Avatar;
@@ -1,7 +1,20 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- import { Avatar, AvatarProps } from './Avatar';
3
+ import { AvatarProps } from './Avatar';
4
+ /** Valid overlap spacing values for the Avatars component. */
4
5
  export type AvatarsSpacing = 'sm' | 'md' | 'lg';
6
+ /**
7
+ * Props for the Avatars component.
8
+ *
9
+ * @property {string} [className] - Additional CSS classes to apply.
10
+ * @property {number} [max] - Show only the first `max` children, replacing the overflow with a "+N" surplus avatar. A single overflow avatar is shown directly rather than as a pointless "+1".
11
+ * @property {AvatarProps['size']} [size] - Uniform size applied to every child `Avatar` (and the surplus avatar).
12
+ * @property {AvatarProps['shape']} [shape] - Uniform shape applied to every child `Avatar` (and the surplus avatar).
13
+ * @property {AvatarsSpacing | number} [spacing] - Space between avatars: a `'sm'`/`'md'`/`'lg'` preset or a pixel `number`. Default `'md'`.
14
+ * @property {boolean} [spaced] - Lay the avatars out side by side (non-overlapping) with `spacing` as the gap. Default `false`.
15
+ * @property {(count: number) => string} [surplusLabel] - Builds the surplus avatar's accessible name from the hidden count, for localization. Default: `` `${count} more` ``.
16
+ * @property {React.ReactNode} [children] - `Avatar` elements to render inside the group.
17
+ */
5
18
  export interface AvatarsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {
6
19
  className?: string;
7
20
  max?: number;
@@ -13,6 +26,6 @@ export interface AvatarsProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
13
26
  children?: React.ReactNode;
14
27
  }
15
28
  export declare const Avatars: React.FC<AvatarsProps> & {
16
- Avatar: typeof Avatar;
29
+ Avatar: React.FC<AvatarProps>;
17
30
  };
18
31
  export default Avatars;
@@ -1,9 +1,29 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
3
  declare const badgeColors: readonly ["primary", "link", "info", "success", "warning", "danger", "black", "dark", "light", "white"];
4
+ /** Valid color values for the Badge component. */
4
5
  export type BadgeColor = (typeof badgeColors)[number];
6
+ /** Valid corner position values for the Badge component. */
5
7
  export type BadgePosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
8
+ /** Valid overlap adjustment values for the Badge component. */
6
9
  export type BadgeOverlap = 'circle' | 'square';
10
+ /**
11
+ * Props for the Badge component.
12
+ *
13
+ * @property {string} [className] - Additional CSS classes applied to the root (the wrapper when `children` are present, else the badge pill).
14
+ * @property {string} [badgeClassName] - Additional CSS classes applied to the badge pill itself.
15
+ * @property {React.ReactNode} [content] - Count, short text, or a custom node to display; omit with `dot` for a plain dot. `max`/`showZero` apply only to numeric content.
16
+ * @property {number} [max] - Numeric `content` above this renders as `"{max}+"`. Default `99`; a
17
+ * negative or non-integer value falls back to the default.
18
+ * @property {boolean} [dot] - Render a small dot with no content.
19
+ * @property {boolean} [showZero] - Show the badge when `content` is `0`. Default `false`.
20
+ * @property {BadgeColor} [color] - Status color. Default `'danger'`.
21
+ * @property {BadgePosition} [position] - Corner to overlay the badge on, relative to `children`. Default `'top-right'`.
22
+ * @property {BadgeOverlap} [overlap] - Nudges the offset for a round (`'circle'`) vs rectangular (`'square'`) child. Default `'square'`.
23
+ * @property {boolean} [pulse] - Processing/pulse animation; no-ops under `prefers-reduced-motion: reduce`.
24
+ * @property {boolean} [invisible] - Hide the badge without unmounting it.
25
+ * @property {React.ReactNode} [children] - The element the badge overlays. Omit to render a standalone badge.
26
+ */
7
27
  export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color' | 'content'>, Omit<BulmaClassesProps, 'color'> {
8
28
  className?: string;
9
29
  badgeClassName?: string;
@@ -18,5 +38,27 @@ export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
18
38
  invisible?: boolean;
19
39
  children?: React.ReactNode;
20
40
  }
41
+ /**
42
+ * Badge component for a small status/count indicator overlaid on the corner of another
43
+ * element (or rendered standalone).
44
+ *
45
+ * Renders `{max}+` when a numeric `content` exceeds `max` and no-ops its `pulse` animation
46
+ * under `prefers-reduced-motion: reduce`. At `0` without `showZero` the pill is visually
47
+ * hidden but stays mounted, so its `role="status"` live region announces a later `0 -> 1`
48
+ * change.
49
+ *
50
+ * @function
51
+ * @param {BadgeProps} props - Props for the Badge component.
52
+ * @returns {JSX.Element | null} The rendered badge (and children, if provided).
53
+ *
54
+ * @example
55
+ * <Badge dot color="success" overlap="circle">
56
+ * <Avatar src="/users/ada.jpg" name="Ada" />
57
+ * </Badge>
58
+ * @example
59
+ * <Badge content={128} max={99} color="danger">
60
+ * <Icon name="bell" />
61
+ * </Badge>
62
+ */
21
63
  export declare const Badge: React.FC<BadgeProps>;
22
64
  export default Badge;
@@ -1,11 +1,29 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
3
  declare const validBreadcrumbAlignments: readonly ["centered", "right"];
4
+ /**
5
+ * Valid alignment values for the Breadcrumb component.
6
+ */
4
7
  export type BreadcrumbAlignment = (typeof validBreadcrumbAlignments)[number];
5
8
  declare const validBreadcrumbSeparators: readonly ["arrow", "bullet", "dot", "succeeds"];
9
+ /**
10
+ * Valid separator values for the Breadcrumb component.
11
+ */
6
12
  export type BreadcrumbSeparator = (typeof validBreadcrumbSeparators)[number];
7
13
  declare const validBreadcrumbSizes: readonly ["small", "medium", "large"];
14
+ /**
15
+ * Valid size values for the Breadcrumb component.
16
+ */
8
17
  export type BreadcrumbSize = (typeof validBreadcrumbSizes)[number];
18
+ /**
19
+ * Props for the Breadcrumb component.
20
+ *
21
+ * @property {string} [className] - Additional CSS classes to apply.
22
+ * @property {BreadcrumbAlignment} [alignment] - Alignment modifier for the breadcrumb.
23
+ * @property {BreadcrumbSeparator} [separator] - Separator style for the breadcrumb.
24
+ * @property {BreadcrumbSize} [size] - Size modifier for the breadcrumb.
25
+ * @property {React.ReactNode} [children] - Breadcrumb items (e.g., "a" or "span" html elements).
26
+ */
9
27
  export interface BreadcrumbProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {
10
28
  className?: string;
11
29
  alignment?: BreadcrumbAlignment;
@@ -13,5 +31,15 @@ export interface BreadcrumbProps extends Omit<React.HTMLAttributes<HTMLElement>,
13
31
  size?: BreadcrumbSize;
14
32
  children?: React.ReactNode;
15
33
  }
34
+ /**
35
+ * Breadcrumb component for rendering a styled Bulma breadcrumb navigation.
36
+ *
37
+ * Supports alignment, separator styles, and sizes.
38
+ *
39
+ * @function
40
+ * @param {BreadcrumbProps} props - Props for the Breadcrumb component.
41
+ * @returns {JSX.Element} The rendered breadcrumb element.
42
+ * @see {@link https://bulma.io/documentation/components/breadcrumb/ | Bulma Breadcrumb documentation}
43
+ */
16
44
  export declare const Breadcrumb: React.FC<BreadcrumbProps>;
17
45
  export {};
@@ -1,5 +1,21 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Card component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes to apply.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the card.
8
+ * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the card.
9
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the card.
10
+ * @property {boolean} [hasShadow] - Whether the card has a shadow (default: true).
11
+ * @property {React.ReactNode} [header] - Card header content, rendered inside `.card-header-title`.
12
+ * @property {boolean} [headerCentered] - If true, centers the header title.
13
+ * @property {React.ReactNode} [headerIcon] - Card header icon, rendered as a sibling to the header title.
14
+ * @property {React.ReactNode|React.ReactNode[]} [footer] - Card footer content, each wrapped in `.card-footer-item`.
15
+ * @property {React.ReactNode|string} [image] - Card image node or image src string.
16
+ * @property {string} [imageAlt] - Alternate text for the card image.
17
+ * @property {React.ReactNode} [children] - Card content.
18
+ */
3
19
  export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
20
  className?: string;
5
21
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -14,56 +30,92 @@ export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, Omit<Bu
14
30
  imageAlt?: string;
15
31
  children?: React.ReactNode;
16
32
  }
17
- declare const CardComponent: React.FC<CardProps>;
33
+ /**
34
+ * Props for the Card.Header compound component.
35
+ *
36
+ * @property {string} [className] - Additional CSS classes.
37
+ * @property {React.ReactNode} [children] - Header content. Wrap in Card.Header.Title for Bulma styling.
38
+ * @property {boolean} [centered] - Whether to center the header title text.
39
+ */
18
40
  export interface CardHeaderProps extends React.HTMLAttributes<HTMLElement> {
19
41
  className?: string;
20
42
  children?: React.ReactNode;
21
43
  centered?: boolean;
22
44
  }
45
+ /**
46
+ * Props for the Card.Image compound component.
47
+ *
48
+ * @property {string} [className] - Additional CSS classes.
49
+ * @property {React.ReactNode} [children] - Image content (e.g. a `<figure>` with an `<img>`).
50
+ */
23
51
  export interface CardImageProps extends React.HTMLAttributes<HTMLDivElement> {
24
52
  className?: string;
25
53
  children?: React.ReactNode;
26
54
  }
55
+ /**
56
+ * Props for the Card.Content compound component.
57
+ *
58
+ * @property {string} [className] - Additional CSS classes.
59
+ * @property {React.ReactNode} [children] - Card body content.
60
+ */
27
61
  export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
28
62
  className?: string;
29
63
  children?: React.ReactNode;
30
64
  }
65
+ /**
66
+ * Props for the Card.Footer compound component.
67
+ *
68
+ * @property {string} [className] - Additional CSS classes.
69
+ * @property {React.ReactNode} [children] - Footer content, typically Card.FooterItem elements.
70
+ */
31
71
  export interface CardFooterProps extends React.HTMLAttributes<HTMLElement> {
32
72
  className?: string;
33
73
  children?: React.ReactNode;
34
74
  }
75
+ /**
76
+ * Props for the Card.FooterItem compound component.
77
+ *
78
+ * @property {string} [className] - Additional CSS classes.
79
+ * @property {React.ReactNode} [children] - Footer item content (link, button, text, etc.).
80
+ */
35
81
  export interface CardFooterItemProps extends React.HTMLAttributes<HTMLSpanElement> {
36
82
  className?: string;
37
83
  children?: React.ReactNode;
38
84
  }
85
+ /**
86
+ * Props for the Card.Header.Title compound component.
87
+ *
88
+ * @property {string} [className] - Additional CSS classes.
89
+ * @property {React.ReactNode} [children] - Title text content.
90
+ * @property {boolean} [centered] - Whether to center the title text.
91
+ */
39
92
  export interface CardHeaderTitleProps extends React.HTMLAttributes<HTMLDivElement> {
40
93
  className?: string;
41
94
  children?: React.ReactNode;
42
95
  centered?: boolean;
43
96
  }
97
+ /**
98
+ * Props for the Card.Header.Icon compound component.
99
+ *
100
+ * @property {string} [className] - Additional CSS classes.
101
+ * @property {React.ReactNode} [children] - Icon content (e.g. an icon element).
102
+ */
44
103
  export interface CardHeaderIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
45
104
  className?: string;
46
105
  children?: React.ReactNode;
47
106
  }
48
- declare const CardHeader: React.FC<CardHeaderProps>;
49
- declare const CardHeaderTitle: React.FC<CardHeaderTitleProps>;
50
- declare const CardHeaderIcon: React.FC<CardHeaderIconProps>;
51
- declare const CardImage: React.FC<CardImageProps>;
52
- declare const CardContent: React.FC<CardContentProps>;
53
- declare const CardFooter: React.FC<CardFooterProps>;
54
- declare const CardFooterItem: React.FC<CardFooterItemProps>;
55
- type CardWithCompounds = typeof CardComponent & {
56
- Header: typeof CardHeader & {
57
- Title: typeof CardHeaderTitle;
58
- Icon: typeof CardHeaderIcon;
107
+ /** Card component with Header, Image, Content, Footer, and FooterItem sub-components. */
108
+ export declare const Card: React.FC<CardProps> & {
109
+ Header: React.FC<CardHeaderProps> & {
110
+ Title: React.FC<CardHeaderTitleProps>;
111
+ Icon: React.FC<CardHeaderIconProps>;
59
112
  };
60
- Image: typeof CardImage;
61
- Content: typeof CardContent;
62
- Footer: typeof CardFooter;
63
- FooterItem: typeof CardFooterItem;
113
+ Image: React.FC<CardImageProps>;
114
+ Content: React.FC<CardContentProps>;
115
+ Footer: React.FC<CardFooterProps>;
116
+ FooterItem: React.FC<CardFooterItemProps>;
64
117
  };
65
- declare const CardWithSubComponents: CardWithCompounds;
66
- export { CardWithSubComponents as Card };
118
+ /** Internal test-only exports. Not part of the public API. */
67
119
  export declare const __test_exports__: {
68
120
  renderFooter: (footer: CardProps["footer"], classPrefix: string | undefined) => React.JSX.Element[] | null;
69
121
  };
@@ -1,10 +1,50 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the CarouselItem component.
5
+ *
6
+ * @property {boolean} [active] - Whether this item is the active/visible slide.
7
+ */
3
8
  export interface CarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ /** Whether this item is active */
4
10
  active?: boolean;
5
11
  }
12
+ /**
13
+ * Individual carousel item/slide.
14
+ *
15
+ * @function
16
+ * @param {CarouselItemProps} props - Props for the CarouselItem component.
17
+ * @param {React.Ref<HTMLDivElement>} ref - Forwarded ref to the carousel item element.
18
+ * @returns {JSX.Element} The rendered carousel item.
19
+ */
6
20
  export declare const CarouselItem: React.ForwardRefExoticComponent<CarouselItemProps & React.RefAttributes<HTMLDivElement>>;
7
21
  type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
22
+ /**
23
+ * Props for the Carousel component.
24
+ *
25
+ * @property {number} [value] - Current active slide index (controlled).
26
+ * @property {boolean} [autoplay] - Enable auto-play.
27
+ * @property {number} [interval] - Auto-play interval in milliseconds. Default: 5000.
28
+ * @property {boolean} [pauseOnHover] - Pause auto-play on hover. Default: true.
29
+ * @property {boolean} [repeat] - Loop back to first slide after last. Default: true.
30
+ * @property {boolean} [hasDrag] - Enable drag/swipe navigation. Default: true.
31
+ * @property {boolean} [arrow] - Show navigation arrows. Default: true.
32
+ * @property {boolean} [arrowHover] - Only show arrows on hover.
33
+ * @property {boolean} [indicator] - Show slide indicators. Default: true.
34
+ * @property {boolean} [indicatorInside] - Position indicators inside carousel.
35
+ * @property {'bottom'|'top'} [indicatorPosition] - Indicator position. Default: 'bottom'.
36
+ * @property {'circles'|'dots'|'lines'|'bars'} [indicatorStyle] - Indicator style. Default: 'dots'.
37
+ * @property {string} [iconPrev] - Icon name for the previous arrow button.
38
+ * @property {string} [iconNext] - Icon name for the next arrow button.
39
+ * @property {IconLibrary} [iconLibrary] - Icon library to use.
40
+ * @property {string} [iconVariant] - Icon style variant (e.g., 'solid', 'outlined').
41
+ * @property {'small' | 'medium' | 'large'} [iconSize] - Icon size modifier.
42
+ * @property {string | string[]} [iconFeatures] - Additional icon modifiers.
43
+ * @property {boolean} [arrowBackground] - Show semi-transparent background on arrow buttons. Default: true.
44
+ * @property {'light'|'dark'} [arrowColor] - Arrow icon color variant. Useful for transparent arrows on dark/light backgrounds.
45
+ * @property {(value: number) => void} [onChange] - Callback when slide changes.
46
+ * @property {React.ReactNode} [children] - Carousel slide items (CarouselItem elements).
47
+ */
8
48
  export interface CarouselProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'color'>, BulmaClassesProps {
9
49
  value?: number;
10
50
  autoplay?: boolean;
@@ -26,9 +66,39 @@ export interface CarouselProps extends Omit<React.HTMLAttributes<HTMLDivElement>
26
66
  iconFeatures?: string | string[];
27
67
  arrowBackground?: boolean;
28
68
  arrowColor?: 'light' | 'dark';
69
+ /** Accessible label for the carousel region. Default: 'Image carousel'. */
29
70
  ariaLabel?: string;
30
71
  onChange?: (value: number) => void;
31
72
  children?: React.ReactNode;
32
73
  }
74
+ /**
75
+ * Carousel component for displaying slides with navigation.
76
+ *
77
+ * Supports auto-play, drag navigation, indicators, and customizable arrows.
78
+ *
79
+ * @function
80
+ * @param {CarouselProps} props - Props for the Carousel component.
81
+ * @param {React.Ref<HTMLDivElement>} ref - Forwarded ref to the carousel element.
82
+ * @returns {JSX.Element} The rendered carousel component.
83
+ *
84
+ * @example
85
+ * // Basic carousel
86
+ * <Carousel>
87
+ * <CarouselItem>Slide 1</CarouselItem>
88
+ * <CarouselItem>Slide 2</CarouselItem>
89
+ * <CarouselItem>Slide 3</CarouselItem>
90
+ * </Carousel>
91
+ *
92
+ * @example
93
+ * // Auto-playing carousel
94
+ * <Carousel autoplay interval={3000}>
95
+ * <CarouselItem>
96
+ * <img src="image1.jpg" alt="Slide 1" />
97
+ * </CarouselItem>
98
+ * <CarouselItem>
99
+ * <img src="image2.jpg" alt="Slide 2" />
100
+ * </CarouselItem>
101
+ * </Carousel>
102
+ */
33
103
  export declare const Carousel: React.ForwardRefExoticComponent<CarouselProps & React.RefAttributes<HTMLDivElement>>;
34
104
  export default Carousel;
@@ -1,5 +1,22 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Collapse component.
5
+ *
6
+ * @property {boolean} [open] - Controlled open state. If provided, component is controlled.
7
+ * @property {boolean} [defaultOpen] - Initial open state for uncontrolled usage.
8
+ * @property {() => void} [onOpen] - Callback when collapse opens.
9
+ * @property {() => void} [onClose] - Callback when collapse closes.
10
+ * @property {React.ReactNode} [trigger] - The clickable trigger element (usually a header/button).
11
+ * @property {'fade'|'slide'|false} [animation] - Animation type. 'fade' for opacity transition, 'slide' for height transition, false to disable. Default: 'fade'.
12
+ * @property {'top'|'bottom'} [position] - Position of trigger relative to content. Default: 'top'.
13
+ * @property {string} [ariaId] - Custom aria id for accessibility.
14
+ * @property {boolean} [bordered] - Whether to show a border around the collapse.
15
+ * @property {React.ReactNode} [children] - The collapsible content.
16
+ * @property {string} [className] - Additional CSS classes.
17
+ * @property {string} [triggerClassName] - Additional classes for the trigger wrapper.
18
+ * @property {string} [contentClassName] - Additional classes for the content wrapper.
19
+ */
3
20
  export interface CollapseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
21
  open?: boolean;
5
22
  defaultOpen?: boolean;
@@ -13,5 +30,41 @@ export interface CollapseProps extends Omit<React.HTMLAttributes<HTMLDivElement>
13
30
  triggerClassName?: string;
14
31
  contentClassName?: string;
15
32
  }
33
+ /**
34
+ * Collapse component for expandable/collapsible content panels.
35
+ *
36
+ * Can be used in controlled or uncontrolled mode. Supports animation
37
+ * and accessibility features for screen readers.
38
+ *
39
+ * @function
40
+ * @param {CollapseProps} props - Props for the Collapse component.
41
+ * @returns {JSX.Element} The rendered collapse component.
42
+ *
43
+ * @example
44
+ * // Basic uncontrolled collapse
45
+ * <Collapse trigger={<button>Click to toggle</button>}>
46
+ * <p>Collapsible content here</p>
47
+ * </Collapse>
48
+ *
49
+ * @example
50
+ * // Controlled collapse
51
+ * const [isOpen, setIsOpen] = useState(false);
52
+ * <Collapse
53
+ * open={isOpen}
54
+ * trigger={<button onClick={() => setIsOpen(!isOpen)}>Toggle</button>}
55
+ * >
56
+ * <p>Content</p>
57
+ * </Collapse>
58
+ *
59
+ * @example
60
+ * // With callbacks
61
+ * <Collapse
62
+ * trigger={<button>Toggle</button>}
63
+ * onOpen={() => console.log('Opened!')}
64
+ * onClose={() => console.log('Closed!')}
65
+ * >
66
+ * <p>Content</p>
67
+ * </Collapse>
68
+ */
16
69
  export declare const Collapse: React.FC<CollapseProps>;
17
70
  export default Collapse;