@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,14 +1,52 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /** Available size modifiers for the Steps component. */
3
4
  export type StepsSize = 'small' | 'medium' | 'large';
5
+ /** Available color variants for the Steps component. */
4
6
  export type StepsColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
7
+ /**
8
+ * Props for individual Step items.
9
+ *
10
+ * @property {React.ReactNode} [label] - Step label/title.
11
+ * @property {React.ReactNode} [icon] - Icon for the step marker.
12
+ * @property {React.ReactNode} [completedIcon] - Custom icon for completed state. Set to null to show step number instead of checkmark.
13
+ * @property {boolean} [clickable] - Whether this step is clickable.
14
+ * @property {string} [className] - Additional class for this step.
15
+ */
5
16
  export interface StepItemProps {
17
+ /** Step label/title */
6
18
  label?: React.ReactNode;
19
+ /** Icon for the step marker */
7
20
  icon?: React.ReactNode;
21
+ /** Custom icon for completed state. Set to null to show step number instead of checkmark. */
8
22
  completedIcon?: React.ReactNode;
23
+ /** Whether this step is clickable */
9
24
  clickable?: boolean;
25
+ /** Additional class for this step */
10
26
  className?: string;
11
27
  }
28
+ /**
29
+ * Props for the Steps component.
30
+ *
31
+ * @property {number} [value] - Current active step (0-indexed).
32
+ * @property {StepItemProps[]} [items] - Array of step items.
33
+ * @property {StepsSize} [size] - Size of the steps.
34
+ * @property {StepsColor} [color] - Color variant.
35
+ * @property {boolean} [hasMarker] - Show step markers. Default: true.
36
+ * @property {boolean} [animated] - Enable animations. Default: true.
37
+ * @property {boolean} [rounded] - Use rounded markers. Default: true.
38
+ * @property {boolean} [vertical] - Vertical layout.
39
+ * @property {'bottom' | 'right' | 'left'} [labelPosition] - Position of labels.
40
+ * @property {boolean} [showStepNumbers] - Show step numbers in markers. Default: true.
41
+ * @property {boolean} [hasNavigation] - Render built-in prev/next buttons.
42
+ * @property {string} [prevLabel] - Custom prev button text (default 'Previous').
43
+ * @property {string} [nextLabel] - Custom next button text (default 'Next').
44
+ * @property {() => void} [onPrev] - Custom prev button callback.
45
+ * @property {() => void} [onNext] - Custom next button callback.
46
+ * @property {(step: number) => void} [onStepClick] - Callback when a step is clicked.
47
+ * @property {'minimal' | 'compact' | 'right'} [mobileMode] - Mobile display mode.
48
+ * @property {React.ReactNode} [children] - Step children (alternative to items).
49
+ */
12
50
  export interface StepsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
13
51
  value?: number;
14
52
  items?: StepItemProps[];
@@ -28,18 +66,45 @@ export interface StepsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
28
66
  onNext?: () => void;
29
67
  onStepClick?: (step: number) => void;
30
68
  }
69
+ /**
70
+ * Props for the Step subcomponent.
71
+ *
72
+ * @property {boolean} [isActive] - Whether this step is active.
73
+ * @property {boolean} [isCompleted] - Whether this step is completed.
74
+ * @property {React.ReactNode} [label] - Step label/title.
75
+ * @property {React.ReactNode} [icon] - Icon for the step marker.
76
+ * @property {boolean} [clickable] - Whether this step is clickable.
77
+ * @property {() => void} [onClick] - Click handler.
78
+ * @property {number} [stepNumber] - Step number to display in marker (1-indexed).
79
+ * @property {React.ReactNode} [completedIcon] - Custom icon for completed state.
80
+ */
31
81
  export interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
82
+ /** Whether this step is active */
32
83
  isActive?: boolean;
84
+ /** Whether this step is completed */
33
85
  isCompleted?: boolean;
86
+ /** Step label/title */
34
87
  label?: React.ReactNode;
88
+ /** Icon for the step marker */
35
89
  icon?: React.ReactNode;
90
+ /** Whether this step is clickable */
36
91
  clickable?: boolean;
92
+ /** Click handler */
37
93
  onClick?: () => void;
94
+ /** Step number to display in marker (1-indexed) */
38
95
  stepNumber?: number;
96
+ /** Custom icon for completed state. Set to null to show step number instead of checkmark. */
39
97
  completedIcon?: React.ReactNode;
40
98
  }
99
+ /**
100
+ * Individual Step component for use inside Steps.
101
+ *
102
+ * @function
103
+ * @param {StepProps} props - Props for the Step component.
104
+ * @returns {JSX.Element} The rendered step segment.
105
+ */
41
106
  export declare const Step: React.FC<StepProps>;
42
107
  export declare const Steps: React.FC<StepsProps> & {
43
- Step: typeof Step;
108
+ Step: React.FC<StepProps>;
44
109
  };
45
110
  export default Steps;
@@ -1,5 +1,24 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Tabs component.
5
+ *
6
+ * @property {'centered'|'right'|'left'} [align] - Tab alignment.
7
+ * @property {'small'|'medium'|'large'} [size] - Tab size.
8
+ * @property {boolean} [fullwidth] - Tabs are fullwidth.
9
+ * @property {boolean} [boxed] - Tabs are boxed style.
10
+ * @property {boolean} [toggle] - Tabs are toggle style.
11
+ * @property {boolean} [rounded] - Tabs are rounded (if toggle).
12
+ * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color.
13
+ * @property {number} [value] - Controlled active tab index.
14
+ * @property {(index: number) => void} [onChange] - Callback when active tab changes.
15
+ * @property {number} [defaultValue] - Initial active tab index for uncontrolled mode.
16
+ * @property {boolean} [vertical] - Render tabs vertically.
17
+ * @property {'left'|'right'} [side] - Which side vertical tabs appear on.
18
+ * @property {boolean} [expanded] - Vertical tabs fill full height.
19
+ * @property {string} [className] - Additional CSS classes.
20
+ * @property {React.ReactNode} [children] - Tab content.
21
+ */
3
22
  export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
23
  align?: 'centered' | 'right' | 'left';
5
24
  size?: 'small' | 'medium' | 'large';
@@ -17,20 +36,38 @@ export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'o
17
36
  className?: string;
18
37
  children?: React.ReactNode;
19
38
  }
20
- export declare const Tabs: React.FC<TabsProps> & {
21
- List: typeof TabList;
22
- Tab: typeof Tab;
23
- Item: typeof TabItem;
24
- Content: typeof TabsContent & {
25
- Item: typeof TabContentItem;
26
- };
27
- };
39
+ /**
40
+ * Props for the TabList component.
41
+ *
42
+ * @property {string} [className] - Additional CSS classes.
43
+ * @property {React.ReactNode} [children] - Tab elements.
44
+ */
28
45
  export interface TabListProps extends React.HTMLAttributes<HTMLUListElement> {
29
46
  className?: string;
30
47
  children?: React.ReactNode;
31
48
  }
49
+ /**
50
+ * Tab list container. Renders a `<ul>` with `role="tablist"`.
51
+ *
52
+ * @function
53
+ * @param {TabListProps} props - Props for the TabList component.
54
+ * @returns {JSX.Element} The rendered tab list.
55
+ */
32
56
  export declare const TabList: React.FC<TabListProps>;
33
57
  type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
58
+ /**
59
+ * Props for the Tab component.
60
+ *
61
+ * @property {number} index - The tab index for state management.
62
+ * @property {boolean} [disabled] - Whether the tab is disabled.
63
+ * @property {string} [icon] - Icon name to render before the label.
64
+ * @property {IconLibrary} [iconLibrary] - Icon library override (defaults to ConfigProvider value or 'fa').
65
+ * @property {string} [iconVariant] - Icon style variant (e.g., 'solid', 'outlined', 'rounded').
66
+ * @property {'small'|'medium'|'large'} [iconSize] - Icon size modifier. Default: 'small'.
67
+ * @property {string|string[]} [iconFeatures] - Additional icon library-specific modifiers.
68
+ * @property {string} [className] - Additional CSS classes.
69
+ * @property {React.ReactNode} [children] - Tab label content.
70
+ */
34
71
  export interface TabProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'onClick'> {
35
72
  index: number;
36
73
  disabled?: boolean;
@@ -42,25 +79,77 @@ export interface TabProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'o
42
79
  className?: string;
43
80
  children?: React.ReactNode;
44
81
  }
82
+ /**
83
+ * Individual tab button. Consumes Tabs context for active state management.
84
+ * Renders `<a>` internally — consumers provide only the label text/children.
85
+ *
86
+ * @function
87
+ * @param {TabProps} props - Props for the Tab component.
88
+ * @returns {JSX.Element} The rendered tab.
89
+ */
45
90
  export declare const Tab: React.FC<TabProps>;
91
+ /**
92
+ * Props for the TabItem component (backward-compatible).
93
+ *
94
+ * @property {boolean} [active] - Whether the tab is active.
95
+ * @property {string} [className] - Additional CSS classes.
96
+ * @property {React.ReactNode} [children] - Tab content.
97
+ * @property {React.MouseEventHandler<HTMLLIElement>} [onClick] - Click handler.
98
+ */
46
99
  export interface TabItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
47
100
  active?: boolean;
48
101
  className?: string;
49
102
  children?: React.ReactNode;
50
103
  onClick?: React.MouseEventHandler<HTMLLIElement>;
51
104
  }
105
+ /**
106
+ * Legacy tab item. Does not consume context — active state is controlled via prop.
107
+ *
108
+ * @function
109
+ * @param {TabItemProps} props - Props for the TabItem component.
110
+ * @returns {JSX.Element} The rendered tab item.
111
+ * @deprecated Use `Tabs.Tab` with an `index` prop instead.
112
+ */
52
113
  export declare const TabItem: React.FC<TabItemProps>;
114
+ /**
115
+ * Props for the TabsContent component.
116
+ *
117
+ * @property {string} [className] - Additional CSS classes.
118
+ * @property {React.ReactNode} [children] - TabContentItem elements.
119
+ */
53
120
  export interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {
54
121
  className?: string;
55
122
  children?: React.ReactNode;
56
123
  }
57
- export declare const TabsContent: React.FC<TabsContentProps> & {
58
- Item: typeof TabContentItem;
59
- };
124
+ /**
125
+ * Props for the TabContentItem component.
126
+ *
127
+ * @property {number} index - The tab index this content panel corresponds to.
128
+ * @property {string} [className] - Additional CSS classes.
129
+ * @property {React.ReactNode} [children] - Panel content.
130
+ */
60
131
  export interface TabContentItemProps extends React.HTMLAttributes<HTMLDivElement> {
61
132
  index: number;
62
133
  className?: string;
63
134
  children?: React.ReactNode;
64
135
  }
136
+ /**
137
+ * Individual content panel. Shows/hides based on active tab from context.
138
+ *
139
+ * @function
140
+ * @param {TabContentItemProps} props - Props for the TabContentItem component.
141
+ * @returns {JSX.Element} The rendered tab content panel.
142
+ */
65
143
  export declare const TabContentItem: React.FC<TabContentItemProps>;
144
+ export declare const TabsContent: React.FC<TabsContentProps> & {
145
+ Item: React.FC<TabContentItemProps>;
146
+ };
147
+ export declare const Tabs: React.FC<TabsProps> & {
148
+ List: React.FC<TabListProps>;
149
+ Tab: React.FC<TabProps>;
150
+ Item: React.FC<TabItemProps>;
151
+ Content: React.FC<TabsContentProps> & {
152
+ Item: React.FC<TabContentItemProps>;
153
+ };
154
+ };
66
155
  export default Tabs;
@@ -1,7 +1,30 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /** Color/style type presets for toast messages. */
3
4
  export type ToastType = 'default' | 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
5
+ /** Screen positions where toasts can be displayed. */
4
6
  export type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
7
+ /**
8
+ * Props for the Toast component.
9
+ *
10
+ * @property {string} message - The message to display.
11
+ * @property {ToastType} [type] - Colors the toast background. Default: 'default'.
12
+ * @property {ToastType} [actionType] - Colors the action button text.
13
+ * @property {ToastPosition} [position] - Position on the screen. Default: 'top-right'.
14
+ * @property {number} [duration] - Duration in ms before auto-close (0 disables). Default: 2000.
15
+ * @property {boolean} [indefinite] - Stay open until dismissed. Default: false.
16
+ * @property {boolean} [dismissible] - Click toast (or outside) to dismiss. Default: true.
17
+ * @property {boolean} [closable] - Show an explicit close (X) button. Default: false.
18
+ * @property {boolean} [rounded] - Pill-shaped toast. Default: false.
19
+ * @property {boolean} [pauseOnHover] - Pause auto-close timer on hover. Default: false.
20
+ * @property {boolean} [cancelable] - Whether the toast can be dismissed with Escape. Default: true.
21
+ * @property {string} [actionText] - Text for action button.
22
+ * @property {string} [cancelText] - Text for cancel button.
23
+ * @property {() => void} [onAction] - Callback when action button is clicked.
24
+ * @property {() => void} [onClose] - Callback when toast closes.
25
+ * @property {string | HTMLElement} [container] - Custom mount target (CSS selector string or HTMLElement).
26
+ * @property {boolean} [inline] - Render only the .toast element without portal/container wrapper. Default: false.
27
+ */
5
28
  export interface ToastProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'color'> {
6
29
  message: string;
7
30
  type?: ToastType;
@@ -21,25 +44,111 @@ export interface ToastProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
21
44
  container?: string | HTMLElement;
22
45
  inline?: boolean;
23
46
  }
47
+ /**
48
+ * Toast component for displaying brief notification messages with optional action buttons.
49
+ *
50
+ * Appears at a configurable screen position with auto-close, pause-on-hover,
51
+ * keyboard dismiss, action/cancel buttons, and an optional explicit close button.
52
+ *
53
+ * @function
54
+ * @param {ToastProps} props - Props for the Toast component.
55
+ * @param {React.Ref<HTMLDivElement>} ref - Forwarded ref to the toast element.
56
+ * @returns {JSX.Element | null} The rendered toast component.
57
+ *
58
+ * @example
59
+ * // Basic toast
60
+ * <Toast message="Operation successful!" type="success" />
61
+ *
62
+ * @example
63
+ * // Toast with action button
64
+ * <Toast message="Item deleted" actionText="Undo" onAction={handleUndo} />
65
+ */
24
66
  export declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLDivElement>>;
67
+ /**
68
+ * Options for showing a programmatic toast. Extends ToastProps with a required message.
69
+ *
70
+ * @property {string} message - The message to display.
71
+ * @property {boolean} [queue] - When true, toasts enter a FIFO queue and display one at a time. Default: false.
72
+ */
25
73
  export interface ToastOptions extends Omit<ToastProps, 'message'> {
26
74
  message: string;
75
+ /** When true, toasts enter a FIFO queue and display one at a time. Default false. */
27
76
  queue?: boolean;
28
77
  }
78
+ /**
79
+ * Internal representation of a toast instance.
80
+ *
81
+ * @property {string} id - Unique identifier for this toast.
82
+ * @property {ToastOptions} props - Configuration options for the toast.
83
+ */
29
84
  export interface ToastInstance {
30
85
  id: string;
31
86
  props: ToastOptions;
32
87
  }
88
+ /**
89
+ * Programmatic toast API for showing, closing, and managing toasts.
90
+ *
91
+ * @example
92
+ * toast.success('Saved!');
93
+ * toast.show({ message: 'Item deleted', actionText: 'Undo', onAction: handleUndo });
94
+ */
33
95
  export declare const toast: {
96
+ /**
97
+ * Show a toast with the given options.
98
+ * @param {ToastOptions} options - Toast configuration.
99
+ * @returns {string} The unique ID of the created toast.
100
+ */
34
101
  show: (options: ToastOptions) => string;
102
+ /**
103
+ * Show a success toast.
104
+ * @param {string} message - The message to display.
105
+ * @param {Partial<ToastOptions>} [options] - Additional options.
106
+ * @returns {string} The toast ID.
107
+ */
35
108
  success: (message: string, options?: Partial<ToastOptions>) => string;
109
+ /**
110
+ * Show a danger toast.
111
+ * @param {string} message - The message to display.
112
+ * @param {Partial<ToastOptions>} [options] - Additional options.
113
+ * @returns {string} The toast ID.
114
+ */
36
115
  danger: (message: string, options?: Partial<ToastOptions>) => string;
116
+ /**
117
+ * Show a warning toast.
118
+ * @param {string} message - The message to display.
119
+ * @param {Partial<ToastOptions>} [options] - Additional options.
120
+ * @returns {string} The toast ID.
121
+ */
37
122
  warning: (message: string, options?: Partial<ToastOptions>) => string;
123
+ /**
124
+ * Show an info toast.
125
+ * @param {string} message - The message to display.
126
+ * @param {Partial<ToastOptions>} [options] - Additional options.
127
+ * @returns {string} The toast ID.
128
+ */
38
129
  info: (message: string, options?: Partial<ToastOptions>) => string;
130
+ /**
131
+ * Close a specific toast by ID.
132
+ * @param {string} id - The toast ID to close.
133
+ */
39
134
  close: (id: string) => void;
135
+ /** Close all toasts and clear the queue. */
40
136
  closeAll: () => void;
137
+ /**
138
+ * Subscribe to toast state changes.
139
+ * @param {(toasts: ToastInstance[]) => void} listener - Callback invoked on changes.
140
+ * @returns {() => void} Unsubscribe function.
141
+ */
41
142
  subscribe: (listener: (toasts: ToastInstance[]) => void) => (() => void);
42
143
  };
144
+ /**
145
+ * Container component for rendering programmatic toasts.
146
+ * Place once at your app root to enable the toast API.
147
+ *
148
+ * @function
149
+ * @param {{ position?: ToastPosition }} props - Container props.
150
+ * @returns {JSX.Element | null} The rendered toast container, or null if empty.
151
+ */
43
152
  export declare const ToastContainer: React.FC<{
44
153
  position?: ToastPosition;
45
154
  }>;
@@ -1,8 +1,30 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ /** Screen positions for the tooltip. */
3
4
  export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right' | 'auto';
5
+ /** Color variants for the tooltip. */
4
6
  export type TooltipColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'dark' | 'light';
7
+ /** Size variants for the tooltip. */
5
8
  export type TooltipSize = 'small' | 'medium' | 'large';
9
+ /**
10
+ * Props for the Tooltip component.
11
+ *
12
+ * @property {string} [label] - The tooltip text content.
13
+ * @property {React.ReactNode} [content] - Custom rich content for the tooltip (takes precedence over label).
14
+ * @property {TooltipPosition} [position] - Position of the tooltip. Default: 'top'.
15
+ * @property {TooltipColor} [color] - Color variant for the tooltip.
16
+ * @property {TooltipSize} [size] - Size variant for the tooltip ('small', 'medium', 'large').
17
+ * @property {boolean} [active] - Force tooltip to be always visible.
18
+ * @property {boolean} [multiline] - Allow tooltip to wrap to multiple lines.
19
+ * @property {boolean} [animated] - Enable fade animation. Default: true.
20
+ * @property {boolean} [square] - Use square corners instead of rounded.
21
+ * @property {boolean} [dashed] - Show dashed underline on trigger.
22
+ * @property {number} [delay] - Delay before showing tooltip (ms).
23
+ * @property {number} [closeDelay] - Delay before hiding tooltip after mouse leave (ms).
24
+ * @property {React.ReactNode} [children] - The element that triggers the tooltip.
25
+ * @property {string} [className] - Additional CSS classes.
26
+ * @property {string} [tooltipClassName] - Additional classes for the tooltip element.
27
+ */
6
28
  export interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color' | 'content'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
7
29
  label?: string;
8
30
  content?: React.ReactNode;
@@ -18,5 +40,33 @@ export interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>
18
40
  closeDelay?: number;
19
41
  tooltipClassName?: string;
20
42
  }
43
+ /**
44
+ * Tooltip component for displaying helpful information on hover.
45
+ *
46
+ * Shows a small popup with text when the user hovers over or focuses
47
+ * on the wrapped element. Supports multiple positions and color variants.
48
+ *
49
+ * @function
50
+ * @param {TooltipProps} props - Props for the Tooltip component.
51
+ * @returns {JSX.Element} The rendered tooltip wrapper.
52
+ *
53
+ * @example
54
+ * // Basic tooltip
55
+ * <Tooltip label="This is helpful info">
56
+ * <button>Hover me</button>
57
+ * </Tooltip>
58
+ *
59
+ * @example
60
+ * // Positioned tooltip with color
61
+ * <Tooltip label="Delete item" position="right" color="danger">
62
+ * <Icon icon="fas fa-trash" />
63
+ * </Tooltip>
64
+ *
65
+ * @example
66
+ * // Multiline tooltip
67
+ * <Tooltip label="This is a longer tooltip that wraps to multiple lines" multiline>
68
+ * <span>?</span>
69
+ * </Tooltip>
70
+ */
21
71
  export declare const Tooltip: React.FC<TooltipProps>;
22
72
  export default Tooltip;
@@ -1,5 +1,14 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Block component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes to apply.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
8
+ * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the block.
9
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
10
+ * @property {React.ReactNode} [children] - Content to be rendered inside the block.
11
+ */
3
12
  export interface BlockProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
13
  className?: string;
5
14
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -7,4 +16,15 @@ export interface BlockProps extends React.HTMLAttributes<HTMLDivElement>, Omit<B
7
16
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
8
17
  children?: React.ReactNode;
9
18
  }
19
+ /**
20
+ * Block component for rendering a styled Bulma block element.
21
+ *
22
+ * A block is a simple utility element that adds spacing (margin-bottom) between elements.
23
+ * Supports Bulma helper classes for additional styling like text color, background color, and layout.
24
+ *
25
+ * @function
26
+ * @param {BlockProps} props - Props for the Block component.
27
+ * @returns {JSX.Element} The rendered block element.
28
+ * @see {@link https://bulma.io/documentation/elements/block/ | Bulma Block documentation}
29
+ */
10
30
  export declare const Block: React.FC<BlockProps>;
@@ -1,6 +1,18 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
- export interface BoxProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
3
+ /**
4
+ * Props for the Box component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes to apply.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
8
+ * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the box.
9
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
10
+ * @property {boolean} [hasShadow=true] - Whether the box has a shadow (default: true).
11
+ * @property {React.ReactNode} [children] - Content to be rendered inside the box.
12
+ */
13
+ export interface BoxProps
14
+ /** @ignore */
15
+ extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
16
  className?: string;
5
17
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
6
18
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
@@ -8,5 +20,15 @@ export interface BoxProps extends React.HTMLAttributes<HTMLDivElement>, Omit<Bul
8
20
  hasShadow?: boolean;
9
21
  children?: React.ReactNode;
10
22
  }
23
+ /**
24
+ * Box component for rendering a styled Bulma box element.
25
+ *
26
+ * Supports Bulma helper classes for styling and layout, with optional shadow control.
27
+ *
28
+ * @function
29
+ * @param {BoxProps} props - Props for the Box component.
30
+ * @returns {JSX.Element} The rendered box element.
31
+ * @see {@link https://bulma.io/documentation/elements/box/ | Bulma Box documentation}
32
+ */
11
33
  export declare const Box: React.FC<BoxProps>;
12
34
  export default Box;
@@ -1,5 +1,31 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Button component.
5
+ *
6
+ * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'white' | 'light' | 'dark' | 'black' | 'text' | 'ghost'} [color] - Bulma color modifier for the button.
7
+ * @property {'small' | 'normal' | 'medium' | 'large'} [size] - Button size.
8
+ * @property {boolean} [isLight] - Use the light version of the color.
9
+ * @property {boolean} [isRounded] - Button is fully rounded.
10
+ * @property {boolean} [isLoading] - Button shows a loading spinner.
11
+ * @property {boolean} [isStatic] - Button is static and non-interactive.
12
+ * @property {boolean} [isFullWidth] - Button takes the full width of parent.
13
+ * @property {boolean} [isOutlined] - Use outlined button style.
14
+ * @property {boolean} [isInverted] - Use inverted color style.
15
+ * @property {boolean} [isFocused] - Button is styled as focused.
16
+ * @property {boolean} [isActive] - Button is styled as active.
17
+ * @property {boolean} [isHovered] - Button is styled as hovered.
18
+ * @property {boolean} [isDisabled] - Button is disabled.
19
+ * @property {string} [className] - Additional CSS classes to apply.
20
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
21
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
22
+ * @property {React.ElementType} [as] - Render as a `<button>`, `<a>`, or a custom component (e.g. a router `Link`). Defaults to `'button'`; anything else (including `'a'`) uses anchor-style prop handling.
23
+ * @property {string} [href] - Specifies the URL for anchor buttons.
24
+ * @property {React.MouseEventHandler<HTMLButtonElement> | React.MouseEventHandler<HTMLAnchorElement>} [onClick] - Click handler for the button or anchor.
25
+ * @property {string} [target] - Target for anchor element.
26
+ * @property {string} [rel] - Rel attribute for anchor element.
27
+ * @property {React.ReactNode} [children] - Content to be rendered inside the button.
28
+ */
3
29
  export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color' | 'onClick'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
4
30
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'white' | 'light' | 'dark' | 'black' | 'text' | 'ghost';
5
31
  size?: 'small' | 'normal' | 'medium' | 'large';
@@ -1,5 +1,17 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Buttons component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes to apply.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
8
+ * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the buttons group.
9
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
10
+ * @property {boolean} [isCentered] - Center the group of buttons.
11
+ * @property {boolean} [isRight] - Align the group of buttons to the right.
12
+ * @property {boolean} [hasAddons] - Group buttons together as addons.
13
+ * @property {React.ReactNode} children - The button elements to render inside the group.
14
+ */
3
15
  interface ButtonsProps extends React.HTMLAttributes<HTMLDivElement>, BulmaClassesProps {
4
16
  className?: string;
5
17
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -10,5 +22,8 @@ interface ButtonsProps extends React.HTMLAttributes<HTMLDivElement>, BulmaClasse
10
22
  hasAddons?: boolean;
11
23
  children: React.ReactNode;
12
24
  }
13
- export declare const Buttons: React.FC<ButtonsProps>;
25
+ export declare const Buttons: React.FC<ButtonsProps> & {
26
+ Button: React.FC<import("./Button").ButtonProps>;
27
+ LinkButton: React.FC<import("./LinkButton").LinkButtonProps>;
28
+ };
14
29
  export {};
@@ -1,9 +1,28 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Code component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes to apply.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
8
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
9
+ * @property {React.ReactNode} [children] - Code content to be rendered inside the element.
10
+ */
3
11
  export interface CodeProps extends React.HTMLAttributes<HTMLElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
12
  className?: string;
5
13
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
6
14
  bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
7
15
  children?: React.ReactNode;
8
16
  }
17
+ /**
18
+ * Code component for rendering inline code snippets.
19
+ *
20
+ * A Code wraps the HTML `<code>` element with Bulma helper class integration.
21
+ * Use it for short inline code snippets, variable names, or technical terms.
22
+ * For multi-line code blocks, use the Pre component.
23
+ *
24
+ * @function
25
+ * @param {CodeProps} props - Props for the Code component.
26
+ * @returns {JSX.Element} The rendered code element.
27
+ */
9
28
  export declare const Code: React.FC<CodeProps>;
@@ -1,5 +1,15 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ /**
4
+ * Props for the Content component.
5
+ *
6
+ * @property {string} [className] - Additional CSS classes to apply.
7
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
8
+ * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the content.
9
+ * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
10
+ * @property {'small' | 'normal' | 'medium' | 'large'} [size] - Size modifier for the content.
11
+ * @property {React.ReactNode} [children] - Content to be rendered inside the block.
12
+ */
3
13
  interface ContentProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
14
  className?: string;
5
15
  textColor?: (typeof validColors)[number] | 'inherit' | 'current';
@@ -8,5 +18,16 @@ interface ContentProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaC
8
18
  size?: 'small' | 'normal' | 'medium' | 'large';
9
19
  children?: React.ReactNode;
10
20
  }
21
+ /**
22
+ * Content component for rendering a styled Bulma content block.
23
+ *
24
+ * Applies typographic styles to HTML content (e.g., paragraphs, headings, lists) with Bulma's content class.
25
+ * Supports size modifiers and Bulma helper classes for additional styling.
26
+ *
27
+ * @function
28
+ * @param {ContentProps} props - Props for the Content component.
29
+ * @returns {JSX.Element} The rendered content block.
30
+ * @see {@link https://bulma.io/documentation/elements/content/ | Bulma Content documentation}
31
+ */
11
32
  export declare const Content: React.FC<ContentProps>;
12
33
  export default Content;