@allxsmith/bestax-bulma 5.7.0 → 5.8.1

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 (129) hide show
  1. package/AGENTS.md +28 -0
  2. package/CLAUDE.md +28 -0
  3. package/README.md +24 -0
  4. package/dist/index.cjs.js +3485 -55
  5. package/dist/index.cjs.js.map +1 -1
  6. package/dist/index.esm.js +3485 -55
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/types/columns/Column.d.ts +38 -0
  9. package/dist/types/columns/Columns.d.ts +31 -0
  10. package/dist/types/components/Avatar.d.ts +32 -0
  11. package/dist/types/components/Avatars.d.ts +12 -0
  12. package/dist/types/components/Badge.d.ts +34 -0
  13. package/dist/types/components/Breadcrumb.d.ts +25 -0
  14. package/dist/types/components/Card.d.ts +60 -0
  15. package/dist/types/components/Carousel.d.ts +70 -0
  16. package/dist/types/components/Collapse.d.ts +52 -0
  17. package/dist/types/components/Dialog.d.ts +89 -0
  18. package/dist/types/components/Dropdown.d.ts +42 -0
  19. package/dist/types/components/Loading.d.ts +50 -0
  20. package/dist/types/components/Menu.d.ts +44 -0
  21. package/dist/types/components/Message.d.ts +20 -0
  22. package/dist/types/components/Modal.d.ts +50 -0
  23. package/dist/types/components/Navbar.d.ts +147 -0
  24. package/dist/types/components/Pagination.d.ts +81 -0
  25. package/dist/types/components/Panel.d.ts +93 -0
  26. package/dist/types/components/Reveal.d.ts +37 -0
  27. package/dist/types/components/Sidebar.d.ts +37 -0
  28. package/dist/types/components/Steps.d.ts +56 -0
  29. package/dist/types/components/Tabs.d.ts +90 -0
  30. package/dist/types/components/Toast.d.ts +104 -0
  31. package/dist/types/components/Tooltip.d.ts +46 -0
  32. package/dist/types/elements/Block.d.ts +21 -0
  33. package/dist/types/elements/Box.d.ts +25 -1
  34. package/dist/types/elements/Button.d.ts +33 -0
  35. package/dist/types/elements/Buttons.d.ts +16 -0
  36. package/dist/types/elements/Code.d.ts +14 -0
  37. package/dist/types/elements/Content.d.ts +22 -0
  38. package/dist/types/elements/Delete.d.ts +24 -0
  39. package/dist/types/elements/Divider.d.ts +12 -0
  40. package/dist/types/elements/Emphasis.d.ts +14 -0
  41. package/dist/types/elements/Figure.d.ts +23 -0
  42. package/dist/types/elements/Icon.d.ts +28 -0
  43. package/dist/types/elements/IconText.d.ts +20 -0
  44. package/dist/types/elements/Image.d.ts +27 -0
  45. package/dist/types/elements/Link.d.ts +20 -0
  46. package/dist/types/elements/LinkButton.d.ts +20 -0
  47. package/dist/types/elements/ListItem.d.ts +15 -0
  48. package/dist/types/elements/Notification.d.ts +110 -0
  49. package/dist/types/elements/OrderedList.d.ts +10 -0
  50. package/dist/types/elements/Paragraph.d.ts +14 -0
  51. package/dist/types/elements/Pre.d.ts +14 -0
  52. package/dist/types/elements/Progress.d.ts +26 -0
  53. package/dist/types/elements/Skeleton.d.ts +22 -0
  54. package/dist/types/elements/Span.d.ts +14 -0
  55. package/dist/types/elements/Strong.d.ts +14 -0
  56. package/dist/types/elements/SubTitle.d.ts +25 -0
  57. package/dist/types/elements/Table.d.ts +14 -0
  58. package/dist/types/elements/Tag.d.ts +25 -0
  59. package/dist/types/elements/Tags.d.ts +7 -0
  60. package/dist/types/elements/Tbody.d.ts +18 -0
  61. package/dist/types/elements/Td.d.ts +23 -0
  62. package/dist/types/elements/Tfoot.d.ts +18 -0
  63. package/dist/types/elements/Th.d.ts +24 -0
  64. package/dist/types/elements/Thead.d.ts +18 -0
  65. package/dist/types/elements/Title.d.ts +26 -0
  66. package/dist/types/elements/Tr.d.ts +20 -0
  67. package/dist/types/elements/UnorderedList.d.ts +7 -0
  68. package/dist/types/form/Autocomplete.d.ts +64 -0
  69. package/dist/types/form/Checkbox.d.ts +33 -0
  70. package/dist/types/form/Checkboxes.d.ts +9 -0
  71. package/dist/types/form/Control.d.ts +37 -0
  72. package/dist/types/form/DateInput.d.ts +44 -0
  73. package/dist/types/form/DateInputBase.d.ts +49 -0
  74. package/dist/types/form/DateTimeInput.d.ts +42 -0
  75. package/dist/types/form/DateTimeInputBase.d.ts +58 -0
  76. package/dist/types/form/Field.d.ts +52 -0
  77. package/dist/types/form/File.d.ts +24 -0
  78. package/dist/types/form/FormContext.d.ts +46 -0
  79. package/dist/types/form/Input.d.ts +45 -0
  80. package/dist/types/form/InputBase.d.ts +21 -0
  81. package/dist/types/form/Numberinput.d.ts +43 -0
  82. package/dist/types/form/Radio.d.ts +33 -0
  83. package/dist/types/form/Radios.d.ts +9 -0
  84. package/dist/types/form/Rate.d.ts +55 -0
  85. package/dist/types/form/Select.d.ts +35 -0
  86. package/dist/types/form/SelectBase.d.ts +24 -0
  87. package/dist/types/form/Slider.d.ts +86 -0
  88. package/dist/types/form/Switch.d.ts +50 -0
  89. package/dist/types/form/Taginput.d.ts +74 -0
  90. package/dist/types/form/TextArea.d.ts +34 -0
  91. package/dist/types/form/TextAreaBase.d.ts +24 -0
  92. package/dist/types/form/TimeInput.d.ts +40 -0
  93. package/dist/types/form/TimeInputBase.d.ts +51 -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 +25 -0
  106. package/dist/types/grid/Grid.d.ts +32 -0
  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/colorDeprecations.d.ts +17 -0
  112. package/dist/types/helpers/useBulmaClasses.d.ts +22 -0
  113. package/dist/types/helpers/useColorClasses.d.ts +20 -0
  114. package/dist/types/helpers/useFlexboxClasses.d.ts +34 -0
  115. package/dist/types/helpers/useOtherClasses.d.ts +27 -0
  116. package/dist/types/helpers/useSpacingClasses.d.ts +27 -0
  117. package/dist/types/helpers/useTypographyClasses.d.ts +32 -0
  118. package/dist/types/helpers/useVisibilityClasses.d.ts +25 -0
  119. package/dist/types/helpers/withSubComponents.d.ts +13 -0
  120. package/dist/types/layout/Container.d.ts +29 -0
  121. package/dist/types/layout/Footer.d.ts +22 -0
  122. package/dist/types/layout/Hero.d.ts +67 -0
  123. package/dist/types/layout/Level.d.ts +60 -0
  124. package/dist/types/layout/Media.d.ts +56 -0
  125. package/dist/types/layout/Section.d.ts +20 -0
  126. package/dist/types/skill-examples/ExampleMeta.d.ts +5 -0
  127. package/dist/types/skill-examples/ProfileCard.d.ts +13 -0
  128. package/llms.txt +9 -0
  129. package/package.json +30 -28
@@ -1,30 +1,68 @@
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
+ */
4
10
  export interface ColumnProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
11
+ /** Additional CSS classes for the column. */
5
12
  className?: string;
13
+ /** Text color. */
6
14
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
15
+ /** Bulma color modifier for the column. */
7
16
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
17
+ /** Background color. */
8
18
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
19
+ /** Column size (see Bulma docs). */
9
20
  size?: BulmaColumnSize;
21
+ /** Size for mobile breakpoint. */
10
22
  sizeMobile?: BulmaColumnSize;
23
+ /** Size for tablet breakpoint. */
11
24
  sizeTablet?: BulmaColumnSize;
25
+ /** Size for desktop breakpoint. */
12
26
  sizeDesktop?: BulmaColumnSize;
27
+ /** Size for widescreen breakpoint. */
13
28
  sizeWidescreen?: BulmaColumnSize;
29
+ /** Size for fullhd breakpoint. */
14
30
  sizeFullhd?: BulmaColumnSize;
31
+ /** Offset for column. */
15
32
  offset?: BulmaColumnSize;
33
+ /** Offset for mobile. */
16
34
  offsetMobile?: BulmaColumnSize;
35
+ /** Offset for tablet. */
17
36
  offsetTablet?: BulmaColumnSize;
37
+ /** Offset for desktop. */
18
38
  offsetDesktop?: BulmaColumnSize;
39
+ /** Offset for widescreen. */
19
40
  offsetWidescreen?: BulmaColumnSize;
41
+ /** Offset for fullhd. */
20
42
  offsetFullhd?: BulmaColumnSize;
43
+ /** Column is only as wide as its content. */
21
44
  isNarrow?: boolean;
45
+ /** The column is narrow on mobile. */
22
46
  isNarrowMobile?: boolean;
47
+ /** The column is narrow on tablet. */
23
48
  isNarrowTablet?: boolean;
49
+ /** The column is narrow on touch devices. */
24
50
  isNarrowTouch?: boolean;
51
+ /** The column is narrow on desktop. */
25
52
  isNarrowDesktop?: boolean;
53
+ /** The column is narrow on widescreen. */
26
54
  isNarrowWidescreen?: boolean;
55
+ /** The column is narrow on fullhd. */
27
56
  isNarrowFullhd?: boolean;
57
+ /** Children to render inside the column. */
28
58
  children?: React.ReactNode;
29
59
  }
60
+ /**
61
+ * The `Column` component provides a single responsive layout column using Bulma's flexbox-based column system.
62
+ *
63
+ * @function
64
+ * @param {ColumnProps} props - Props for the Column component.
65
+ * @returns {JSX.Element} The rendered column.
66
+ * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}
67
+ */
30
68
  export declare const Column: React.FC<ColumnProps>;
@@ -1,30 +1,61 @@
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
+ */
5
13
  export interface ColumnsProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
14
+ /** Additional CSS classes for the columns container. */
6
15
  className?: string;
16
+ /** Text color. */
7
17
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
18
+ /** Bulma color modifier for all columns. */
8
19
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
20
+ /** Background color for all columns. */
9
21
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
22
+ /** Horizontally center columns within the container. */
10
23
  isCentered?: boolean;
24
+ /** Remove gap between columns. */
11
25
  isGapless?: boolean;
26
+ /** Allow columns to wrap to multiple lines. */
12
27
  isMultiline?: boolean;
28
+ /** Vertically center columns within the container. */
13
29
  isVCentered?: boolean;
30
+ /** Apply columns layout on mobile and up. */
14
31
  isMobile?: boolean;
32
+ /** Apply columns layout on desktop and up. */
15
33
  isDesktop?: boolean;
34
+ /** Gap size for all breakpoints. Same scale as `Grid`'s `gap` prop; wins over `gapSize` if both are set. */
16
35
  gap?: BulmaGapValue;
36
+ /** Gap size for mobile. Wins over `gapSizeMobile` if both are set. */
17
37
  gapMobile?: BulmaGapValue;
38
+ /** Gap size for tablet. Wins over `gapSizeTablet` if both are set. */
18
39
  gapTablet?: BulmaGapValue;
40
+ /** Gap size for desktop. Wins over `gapSizeDesktop` if both are set. */
19
41
  gapDesktop?: BulmaGapValue;
42
+ /** Gap size for widescreen. Wins over `gapSizeWidescreen` if both are set. */
20
43
  gapWidescreen?: BulmaGapValue;
44
+ /** Gap size for fullhd. Wins over `gapSizeFullhd` if both are set. */
21
45
  gapFullhd?: BulmaGapValue;
46
+ /** Gap size for all breakpoints. @deprecated Use `gap` instead — `gap` wins if both are set. */
22
47
  gapSize?: BulmaGapSize;
48
+ /** Gap size for mobile. @deprecated Use `gapMobile` instead — `gapMobile` wins if both are set. */
23
49
  gapSizeMobile?: BulmaGapSize;
50
+ /** Gap size for tablet. @deprecated Use `gapTablet` instead — `gapTablet` wins if both are set. */
24
51
  gapSizeTablet?: BulmaGapSize;
52
+ /** Gap size for desktop. @deprecated Use `gapDesktop` instead — `gapDesktop` wins if both are set. */
25
53
  gapSizeDesktop?: BulmaGapSize;
54
+ /** Gap size for widescreen. @deprecated Use `gapWidescreen` instead — `gapWidescreen` wins if both are set. */
26
55
  gapSizeWidescreen?: BulmaGapSize;
56
+ /** Gap size for fullhd. @deprecated Use `gapFullhd` instead — `gapFullhd` wins if both are set. */
27
57
  gapSizeFullhd?: BulmaGapSize;
58
+ /** Columns to render within the container. */
28
59
  children?: React.ReactNode;
29
60
  }
30
61
  export declare const Columns: React.FC<ColumnsProps> & {
@@ -1,25 +1,57 @@
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
+ */
8
14
  export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, Omit<BulmaClassesProps, 'color'> {
15
+ /** Additional CSS classes to apply. */
9
16
  className?: string;
17
+ /** Image URL. On load error (or if absent), falls back to initials, then `icon`. */
10
18
  src?: string;
19
+ /** Alternate text for the image (used for the accessible name in every render mode). An explicit `alt=""` marks a non-interactive avatar as decorative. */
11
20
  alt?: string;
21
+ /** Derives initials and a deterministic background color when no `src` is shown. */
12
22
  name?: string;
23
+ /** Explicit initials override (else derived from `name`). */
13
24
  initials?: string;
25
+ /** Final fallback, rendered when there is no `src`, `name`, or `initials`. */
14
26
  icon?: React.ReactNode;
27
+ /** Preset size, or a pixel size when a number. */
15
28
  size?: AvatarSize | number;
29
+ /** Avatar shape. Default `'circle'`. */
16
30
  shape?: AvatarShape;
31
+ /** Background color for initials/icon avatars (else auto-derived from `name`). */
17
32
  color?: AvatarColor;
33
+ /** Element/component to render as. Defaults to `'a'` when `href` is set, else `'figure'`. */
18
34
  as?: React.ElementType;
35
+ /** When set, renders the avatar as a link. */
19
36
  href?: string;
37
+ /** Anchor target — forwarded only when rendering a link (an `a` or a custom `as` component). */
20
38
  target?: string;
39
+ /** Anchor rel — forwarded only when rendering a link (an `a` or a custom `as` component). */
21
40
  rel?: string;
41
+ /** Extra props forwarded to the underlying `<img>` (e.g. `loading`, `crossOrigin`); its `onError` is chained before the fallback fires. */
22
42
  imageProps?: React.ImgHTMLAttributes<HTMLImageElement>;
23
43
  }
44
+ /**
45
+ * The `Avatar` component represents a person or entity as a compact image.
46
+ *
47
+ * @function
48
+ * @param {AvatarProps} props - Props for the Avatar component.
49
+ * @returns {JSX.Element} The rendered avatar element.
50
+ *
51
+ * @example
52
+ * <Avatar src="/users/ada.jpg" name="Ada Lovelace" size="64x64" />
53
+ * @example
54
+ * <Avatar name="Grace Hopper" />
55
+ */
24
56
  export declare const Avatar: React.FC<AvatarProps>;
25
57
  export default Avatar;
@@ -1,15 +1,27 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
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
+ */
5
9
  export interface AvatarsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {
10
+ /** Additional CSS classes to apply. */
6
11
  className?: string;
12
+ /** 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". */
7
13
  max?: number;
14
+ /** Uniform size applied to every child `Avatar` (and the surplus avatar). */
8
15
  size?: AvatarProps['size'];
16
+ /** Uniform shape applied to every child `Avatar` (and the surplus avatar); a child's own `shape` wins when this is unset. */
9
17
  shape?: AvatarProps['shape'];
18
+ /** Space between avatars: a preset or a pixel `number`. The overlap distance, or the gap when `spaced`. */
10
19
  spacing?: AvatarsSpacing | number;
20
+ /** Lay the avatars out side by side (non-overlapping), using `spacing` as the gap. */
11
21
  spaced?: boolean;
22
+ /** Builds the surplus avatar's accessible name from the hidden count, for localization. Default: `` `${count} more` ``. */
12
23
  surplusLabel?: (count: number) => string;
24
+ /** `Avatar` elements to render inside the group. */
13
25
  children?: React.ReactNode;
14
26
  }
15
27
  export declare const Avatars: React.FC<AvatarsProps> & {
@@ -1,22 +1,56 @@
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
+ */
7
13
  export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color' | 'content'>, Omit<BulmaClassesProps, 'color'> {
14
+ /** Additional CSS classes for the root — the wrapper when `children` are present, else the badge pill. */
8
15
  className?: string;
16
+ /** Additional CSS classes applied to the badge pill itself (unprefixed, like `Tooltip`'s `tooltipClassName`). */
9
17
  badgeClassName?: string;
18
+ /** Count, short text, or a custom node to display; omit with `dot` for a plain dot. `max`/`showZero` apply only to numeric content. */
10
19
  content?: React.ReactNode;
20
+ /** Numeric `content` above this renders as `"{max}+"`. A negative or non-integer value falls back to the default. */
11
21
  max?: number;
22
+ /** Render a small dot with no content. */
12
23
  dot?: boolean;
24
+ /** Show the badge when `content` is `0`. Default `false`. */
13
25
  showZero?: boolean;
26
+ /** Status color. Default `'danger'`. */
14
27
  color?: BadgeColor;
28
+ /** Corner to overlay the badge on, relative to `children`. Ignored for standalone badges (no `children`). */
15
29
  position?: BadgePosition;
30
+ /** Nudges the offset for a round (`'circle'`) vs rectangular (`'square'`) child. Ignored for standalone badges (no `children`). */
16
31
  overlap?: BadgeOverlap;
32
+ /** Processing/pulse animation; no-ops under `prefers-reduced-motion: reduce`. */
17
33
  pulse?: boolean;
34
+ /** Hide the badge pill without unmounting it (the wrapper and `children` stay visible). */
18
35
  invisible?: boolean;
36
+ /** The element the badge overlays. Omit to render a standalone badge. */
19
37
  children?: React.ReactNode;
20
38
  }
39
+ /**
40
+ * The `Badge` component is a small status/count indicator overlaid on the corner of another element, or rendered standalone.
41
+ *
42
+ * @function
43
+ * @param {BadgeProps} props - Props for the Badge component.
44
+ * @returns {JSX.Element | null} The rendered badge (and children, if provided).
45
+ *
46
+ * @example
47
+ * <Badge dot color="success" overlap="circle">
48
+ * <Avatar src="/users/ada.jpg" name="Ada" />
49
+ * </Badge>
50
+ * @example
51
+ * <Badge content={128} max={99} color="danger">
52
+ * <Icon name="bell" />
53
+ * </Badge>
54
+ */
21
55
  export declare const Badge: React.FC<BadgeProps>;
22
56
  export default Badge;
@@ -1,17 +1,42 @@
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
+ */
9
21
  export interface BreadcrumbProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {
22
+ /** Additional CSS classes to apply. */
10
23
  className?: string;
24
+ /** Alignment of the breadcrumb (`is-centered`, `is-right`). */
11
25
  alignment?: BreadcrumbAlignment;
26
+ /** Type of separator between breadcrumb items. */
12
27
  separator?: BreadcrumbSeparator;
28
+ /** Breadcrumb size. */
13
29
  size?: BreadcrumbSize;
30
+ /** Breadcrumb items (`<li>`s with `<a>` or `<span>`). */
14
31
  children?: React.ReactNode;
15
32
  }
33
+ /**
34
+ * The `Breadcrumb` component renders a Bulma-styled breadcrumb navigation.
35
+ *
36
+ * @function
37
+ * @param {BreadcrumbProps} props - Props for the Breadcrumb component.
38
+ * @returns {JSX.Element} The rendered breadcrumb element.
39
+ * @see {@link https://bulma.io/documentation/components/breadcrumb/ | Bulma Breadcrumb documentation}
40
+ */
16
41
  export declare const Breadcrumb: React.FC<BreadcrumbProps>;
17
42
  export {};
@@ -1,49 +1,108 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Card component.
5
+ * @extraProp {'centered' | 'justified' | 'left' | 'right'} [textAlign] - Text alignment.
6
+ */
3
7
  export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
8
+ /** Additional CSS classes to apply. */
4
9
  className?: string;
10
+ /** Text color for the card. */
5
11
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
12
+ /**
13
+ * Text color alias: renders `has-text-<color>`, exactly like `textColor`.
14
+ * Not a filled card variant (no `.card.is-<color>` CSS exists). Prefer
15
+ * `textColor`, which takes precedence when both are set; use `bgColor` for
16
+ * a colored surface.
17
+ */
6
18
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
19
+ /** Background color for the card. */
7
20
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
21
+ /** Whether the card has a shadow (default: `true`). */
8
22
  hasShadow?: boolean;
23
+ /** Card header content, rendered inside `.card-header-title`. */
9
24
  header?: React.ReactNode;
25
+ /** If true, centers the header title. */
10
26
  headerCentered?: boolean;
27
+ /** Card header icon, rendered as a sibling to the header title. */
11
28
  headerIcon?: React.ReactNode;
29
+ /** Card footer content; each item is wrapped in `.card-footer-item`. */
12
30
  footer?: React.ReactNode | React.ReactNode[];
31
+ /** Card image node or image src string. */
13
32
  image?: React.ReactNode | string;
33
+ /** Alternate text for the card image. */
14
34
  imageAlt?: string;
35
+ /** Card content (body). */
15
36
  children?: React.ReactNode;
16
37
  }
38
+ /**
39
+ * Props for the Card.Header compound component.
40
+ */
17
41
  export interface CardHeaderProps extends React.HTMLAttributes<HTMLElement> {
42
+ /** Additional CSS classes. */
18
43
  className?: string;
44
+ /** Header content. Wrap in Card.Header.Title for Bulma styling. */
19
45
  children?: React.ReactNode;
46
+ /** Whether to center the header title text. */
20
47
  centered?: boolean;
21
48
  }
49
+ /**
50
+ * Props for the Card.Image compound component.
51
+ */
22
52
  export interface CardImageProps extends React.HTMLAttributes<HTMLDivElement> {
53
+ /** Additional CSS classes. */
23
54
  className?: string;
55
+ /** Image content (e.g. a `<figure>` with an `<img>`). */
24
56
  children?: React.ReactNode;
25
57
  }
58
+ /**
59
+ * Props for the Card.Content compound component.
60
+ */
26
61
  export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
62
+ /** Additional CSS classes. */
27
63
  className?: string;
64
+ /** Card body content. */
28
65
  children?: React.ReactNode;
29
66
  }
67
+ /**
68
+ * Props for the Card.Footer compound component.
69
+ */
30
70
  export interface CardFooterProps extends React.HTMLAttributes<HTMLElement> {
71
+ /** Additional CSS classes. */
31
72
  className?: string;
73
+ /** Footer content, typically Card.FooterItem elements. */
32
74
  children?: React.ReactNode;
33
75
  }
76
+ /**
77
+ * Props for the Card.FooterItem compound component.
78
+ */
34
79
  export interface CardFooterItemProps extends React.HTMLAttributes<HTMLSpanElement> {
80
+ /** Additional CSS classes. */
35
81
  className?: string;
82
+ /** Footer item content (link, button, text, etc.). */
36
83
  children?: React.ReactNode;
37
84
  }
85
+ /**
86
+ * Props for the Card.Header.Title compound component.
87
+ */
38
88
  export interface CardHeaderTitleProps extends React.HTMLAttributes<HTMLDivElement> {
89
+ /** Additional CSS classes. */
39
90
  className?: string;
91
+ /** Title text content. */
40
92
  children?: React.ReactNode;
93
+ /** Whether to center the title text. */
41
94
  centered?: boolean;
42
95
  }
96
+ /**
97
+ * Props for the Card.Header.Icon compound component.
98
+ */
43
99
  export interface CardHeaderIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
100
+ /** Additional CSS classes. */
44
101
  className?: string;
102
+ /** Icon content (e.g. an icon element). */
45
103
  children?: React.ReactNode;
46
104
  }
105
+ /** Card component with Header, Image, Content, Footer, and FooterItem sub-components. */
47
106
  export declare const Card: React.FC<CardProps> & {
48
107
  Header: React.FC<CardHeaderProps> & {
49
108
  Title: React.FC<CardHeaderTitleProps>;
@@ -54,6 +113,7 @@ export declare const Card: React.FC<CardProps> & {
54
113
  Footer: React.FC<CardFooterProps>;
55
114
  FooterItem: React.FC<CardFooterItemProps>;
56
115
  };
116
+ /** Internal test-only exports. Not part of the public API. */
57
117
  export declare const __test_exports__: {
58
118
  renderFooter: (footer: CardProps["footer"], classPrefix: string | undefined) => React.JSX.Element[] | null;
59
119
  };
@@ -1,34 +1,104 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the CarouselItem component.
5
+ */
3
6
  export interface CarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ /** Whether this item is active (set automatically). */
4
8
  active?: boolean;
5
9
  }
10
+ /**
11
+ * Individual carousel item/slide.
12
+ *
13
+ * @function
14
+ * @param {CarouselItemProps} props - Props for the CarouselItem component.
15
+ * @param {React.Ref<HTMLDivElement>} ref - Forwarded ref to the carousel item element.
16
+ * @returns {JSX.Element} The rendered carousel item.
17
+ */
6
18
  export declare const CarouselItem: React.ForwardRefExoticComponent<CarouselItemProps & React.RefAttributes<HTMLDivElement>>;
7
19
  type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
20
+ /**
21
+ * Props for the Carousel component.
22
+ * @extraProp {string} [className] - Additional CSS classes.
23
+ * @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the carousel element.
24
+ */
8
25
  export interface CarouselProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'color'>, BulmaClassesProps {
26
+ /**
27
+ * Current active slide index (controlled).
28
+ * @defaultValue 0
29
+ */
9
30
  value?: number;
31
+ /** Enable auto-play. */
10
32
  autoplay?: boolean;
33
+ /** Auto-play interval in milliseconds. Default: 5000. */
11
34
  interval?: number;
35
+ /** Pause auto-play on hover. Default: true. */
12
36
  pauseOnHover?: boolean;
37
+ /** Loop back to first slide after last. Default: true. */
13
38
  repeat?: boolean;
39
+ /** Enable drag/swipe navigation. Default: true. */
14
40
  hasDrag?: boolean;
41
+ /** Show navigation arrows. Default: true. */
15
42
  arrow?: boolean;
43
+ /** Only show arrows on hover. */
16
44
  arrowHover?: boolean;
45
+ /** Show slide indicators. Default: true. */
17
46
  indicator?: boolean;
47
+ /** Position indicators inside carousel. */
18
48
  indicatorInside?: boolean;
49
+ /** Indicator position. Default: 'bottom'. */
19
50
  indicatorPosition?: 'bottom' | 'top';
51
+ /** Indicator style. Default: 'dots'. */
20
52
  indicatorStyle?: 'circles' | 'dots' | 'lines' | 'bars';
53
+ /** Icon name for the previous arrow button. */
21
54
  iconPrev?: string;
55
+ /** Icon name for the next arrow button. */
22
56
  iconNext?: string;
57
+ /** Icon library to use. */
23
58
  iconLibrary?: IconLibrary;
59
+ /** Icon style variant (e.g., 'solid', 'outlined'). */
24
60
  iconVariant?: string;
61
+ /** Icon size modifier. */
25
62
  iconSize?: 'small' | 'medium' | 'large';
63
+ /** Additional icon modifiers. */
26
64
  iconFeatures?: string | string[];
65
+ /** Show semi-transparent background on arrow buttons. Set to `false` for icon-only arrows. */
27
66
  arrowBackground?: boolean;
67
+ /** Color theme for navigation arrows. */
28
68
  arrowColor?: 'light' | 'dark';
69
+ /** Accessible label for the carousel region. Default: 'Image carousel'. */
29
70
  ariaLabel?: string;
71
+ /** Callback when slide changes. */
30
72
  onChange?: (value: number) => void;
73
+ /** CarouselItem children. */
31
74
  children?: React.ReactNode;
32
75
  }
76
+ /**
77
+ * The `Carousel` component provides an image/content slider with navigation arrows and indicators.
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,17 +1,69 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Collapse component.
5
+ * @extraProp {React.ReactNode} [children] - The collapsible content.
6
+ * @extraProp {string} [className] - Additional CSS classes.
7
+ */
3
8
  export interface CollapseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
9
+ /** Controlled open state. If provided, component is controlled. */
4
10
  open?: boolean;
11
+ /** Initial open state for uncontrolled usage. */
5
12
  defaultOpen?: boolean;
13
+ /** Callback when collapse opens. */
6
14
  onOpen?: () => void;
15
+ /** Callback when collapse closes. */
7
16
  onClose?: () => void;
17
+ /** The clickable trigger element (header/button). */
8
18
  trigger?: React.ReactNode;
19
+ /** Animation style, or `false` to disable. */
9
20
  animation?: 'fade' | 'slide' | false;
21
+ /** Position of the trigger relative to content. */
10
22
  position?: 'top' | 'bottom';
23
+ /**
24
+ * Custom aria id for accessibility.
25
+ * @defaultValue auto
26
+ */
11
27
  ariaId?: string;
28
+ /** Adds a border around the collapse. */
12
29
  bordered?: boolean;
30
+ /** Additional classes for the trigger wrapper. */
13
31
  triggerClassName?: string;
32
+ /** Additional classes for the content wrapper. */
14
33
  contentClassName?: string;
15
34
  }
35
+ /**
36
+ * The `Collapse` component provides an expandable/collapsible content panel.
37
+ *
38
+ * @function
39
+ * @param {CollapseProps} props - Props for the Collapse component.
40
+ * @returns {JSX.Element} The rendered collapse component.
41
+ *
42
+ * @example
43
+ * // Basic uncontrolled collapse
44
+ * <Collapse trigger={<button>Click to toggle</button>}>
45
+ * <p>Collapsible content here</p>
46
+ * </Collapse>
47
+ *
48
+ * @example
49
+ * // Controlled collapse
50
+ * const [isOpen, setIsOpen] = useState(false);
51
+ * <Collapse
52
+ * open={isOpen}
53
+ * trigger={<button onClick={() => setIsOpen(!isOpen)}>Toggle</button>}
54
+ * >
55
+ * <p>Content</p>
56
+ * </Collapse>
57
+ *
58
+ * @example
59
+ * // With callbacks
60
+ * <Collapse
61
+ * trigger={<button>Toggle</button>}
62
+ * onOpen={() => console.log('Opened!')}
63
+ * onClose={() => console.log('Closed!')}
64
+ * >
65
+ * <p>Content</p>
66
+ * </Collapse>
67
+ */
16
68
  export declare const Collapse: React.FC<CollapseProps>;
17
69
  export default Collapse;