@allxsmith/bestax-bulma 5.16.4 → 5.16.6

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 (133) hide show
  1. package/dist/types-cjs/columns/Column.d.ts +68 -0
  2. package/dist/types-cjs/columns/Columns.d.ts +63 -0
  3. package/dist/types-cjs/components/Avatar.d.ts +91 -0
  4. package/dist/types-cjs/components/Avatars.d.ts +30 -0
  5. package/dist/types-cjs/components/Badge.d.ts +56 -0
  6. package/dist/types-cjs/components/Breadcrumb.d.ts +42 -0
  7. package/dist/types-cjs/components/Card.d.ts +166 -0
  8. package/dist/types-cjs/components/Carousel.d.ts +104 -0
  9. package/dist/types-cjs/components/Collapse.d.ts +69 -0
  10. package/dist/types-cjs/components/Dialog.d.ts +142 -0
  11. package/dist/types-cjs/components/Dropdown.d.ts +104 -0
  12. package/dist/types-cjs/components/Loading.d.ts +68 -0
  13. package/dist/types-cjs/components/Menu.d.ts +100 -0
  14. package/dist/types-cjs/components/Message.d.ts +51 -0
  15. package/dist/types-cjs/components/Modal.d.ts +126 -0
  16. package/dist/types-cjs/components/Navbar.d.ts +302 -0
  17. package/dist/types-cjs/components/Pagination.d.ts +130 -0
  18. package/dist/types-cjs/components/Panel.d.ts +147 -0
  19. package/dist/types-cjs/components/Reveal.d.ts +47 -0
  20. package/dist/types-cjs/components/Sidebar.d.ts +76 -0
  21. package/dist/types-cjs/components/Steps.d.ts +101 -0
  22. package/dist/types-cjs/components/Tabs.d.ts +160 -0
  23. package/dist/types-cjs/components/Toast.d.ts +150 -0
  24. package/dist/types-cjs/components/Tooltip.d.ts +68 -0
  25. package/dist/types-cjs/elements/Block.d.ts +31 -0
  26. package/dist/types-cjs/elements/Box.d.ts +41 -0
  27. package/dist/types-cjs/elements/Button.d.ts +74 -0
  28. package/dist/types-cjs/elements/Buttons.d.ts +40 -0
  29. package/dist/types-cjs/elements/Code.d.ts +23 -0
  30. package/dist/types-cjs/elements/Content.d.ts +34 -0
  31. package/dist/types-cjs/elements/Delete.d.ts +38 -0
  32. package/dist/types-cjs/elements/Divider.d.ts +19 -0
  33. package/dist/types-cjs/elements/Emphasis.d.ts +23 -0
  34. package/dist/types-cjs/elements/Figure.d.ts +40 -0
  35. package/dist/types-cjs/elements/Icon.d.ts +138 -0
  36. package/dist/types-cjs/elements/IconText.d.ts +40 -0
  37. package/dist/types-cjs/elements/Image.d.ts +44 -0
  38. package/dist/types-cjs/elements/Link.d.ts +55 -0
  39. package/dist/types-cjs/elements/LinkButton.d.ts +57 -0
  40. package/dist/types-cjs/elements/ListItem.d.ts +24 -0
  41. package/dist/types-cjs/elements/Notification.d.ts +148 -0
  42. package/dist/types-cjs/elements/OrderedList.d.ts +21 -0
  43. package/dist/types-cjs/elements/Paragraph.d.ts +23 -0
  44. package/dist/types-cjs/elements/Pre.d.ts +23 -0
  45. package/dist/types-cjs/elements/Progress.d.ts +36 -0
  46. package/dist/types-cjs/elements/Skeleton.d.ts +30 -0
  47. package/dist/types-cjs/elements/Span.d.ts +23 -0
  48. package/dist/types-cjs/elements/Strong.d.ts +23 -0
  49. package/dist/types-cjs/elements/SubTitle.d.ts +41 -0
  50. package/dist/types-cjs/elements/Table.d.ts +36 -0
  51. package/dist/types-cjs/elements/Tag.d.ts +45 -0
  52. package/dist/types-cjs/elements/Tags.d.ts +32 -0
  53. package/dist/types-cjs/elements/Tbody.d.ts +25 -0
  54. package/dist/types-cjs/elements/Td.d.ts +33 -0
  55. package/dist/types-cjs/elements/Tfoot.d.ts +25 -0
  56. package/dist/types-cjs/elements/Th.d.ts +38 -0
  57. package/dist/types-cjs/elements/Thead.d.ts +25 -0
  58. package/dist/types-cjs/elements/Title.d.ts +43 -0
  59. package/dist/types-cjs/elements/Tr.d.ts +30 -0
  60. package/dist/types-cjs/elements/UnorderedList.d.ts +18 -0
  61. package/dist/types-cjs/elements/iconProps.d.ts +30 -0
  62. package/dist/types-cjs/form/Autocomplete.d.ts +114 -0
  63. package/dist/types-cjs/form/Checkbox.d.ts +47 -0
  64. package/dist/types-cjs/form/Checkboxes.d.ts +30 -0
  65. package/dist/types-cjs/form/Control.d.ts +68 -0
  66. package/dist/types-cjs/form/DateInput.d.ts +70 -0
  67. package/dist/types-cjs/form/DateInputBase.d.ts +91 -0
  68. package/dist/types-cjs/form/DateTimeInput.d.ts +68 -0
  69. package/dist/types-cjs/form/DateTimeInputBase.d.ts +108 -0
  70. package/dist/types-cjs/form/Field.d.ts +101 -0
  71. package/dist/types-cjs/form/File.d.ts +52 -0
  72. package/dist/types-cjs/form/FormContext.d.ts +78 -0
  73. package/dist/types-cjs/form/Input.d.ts +72 -0
  74. package/dist/types-cjs/form/InputBase.d.ts +37 -0
  75. package/dist/types-cjs/form/Numberinput.d.ts +83 -0
  76. package/dist/types-cjs/form/Radio.d.ts +47 -0
  77. package/dist/types-cjs/form/Radios.d.ts +30 -0
  78. package/dist/types-cjs/form/Rate.d.ts +99 -0
  79. package/dist/types-cjs/form/Select.d.ts +58 -0
  80. package/dist/types-cjs/form/SelectBase.d.ts +45 -0
  81. package/dist/types-cjs/form/Slider.d.ts +141 -0
  82. package/dist/types-cjs/form/Switch.d.ts +67 -0
  83. package/dist/types-cjs/form/Taginput.d.ts +140 -0
  84. package/dist/types-cjs/form/TextArea.d.ts +52 -0
  85. package/dist/types-cjs/form/TextAreaBase.d.ts +43 -0
  86. package/dist/types-cjs/form/TimeInput.d.ts +66 -0
  87. package/dist/types-cjs/form/TimeInputBase.d.ts +95 -0
  88. package/dist/types-cjs/form/_pickerInternals/Calendar.d.ts +32 -0
  89. package/dist/types-cjs/form/_pickerInternals/PickerPopover.d.ts +20 -0
  90. package/dist/types-cjs/form/_pickerInternals/TimeWheels.d.ts +42 -0
  91. package/dist/types-cjs/form/_pickerInternals/audioTick.d.ts +50 -0
  92. package/dist/types-cjs/form/_pickerInternals/dateUtils.d.ts +52 -0
  93. package/dist/types-cjs/form/_pickerInternals/formatters.d.ts +32 -0
  94. package/dist/types-cjs/form/_pickerInternals/haptics.d.ts +24 -0
  95. package/dist/types-cjs/form/_pickerInternals/pickerTypes.d.ts +39 -0
  96. package/dist/types-cjs/form/_pickerInternals/segmentMap.d.ts +68 -0
  97. package/dist/types-cjs/form/_pickerInternals/useFocusTrap.d.ts +7 -0
  98. package/dist/types-cjs/form/_pickerInternals/useNativeMobilePicker.d.ts +11 -0
  99. package/dist/types-cjs/form/_pickerInternals/useSegmentedEntry.d.ts +75 -0
  100. package/dist/types-cjs/form/fieldProps.d.ts +24 -0
  101. package/dist/types-cjs/form/useAutoLabelId.d.ts +51 -0
  102. package/dist/types-cjs/grid/Cell.d.ts +42 -0
  103. package/dist/types-cjs/grid/Grid.d.ts +59 -0
  104. package/dist/types-cjs/helpers/Config.d.ts +67 -0
  105. package/dist/types-cjs/helpers/Theme.d.ts +116 -0
  106. package/dist/types-cjs/helpers/anchorAttrs.d.ts +37 -0
  107. package/dist/types-cjs/helpers/bulmaClassHelpers.d.ts +197 -0
  108. package/dist/types-cjs/helpers/classNames.d.ts +55 -0
  109. package/dist/types-cjs/helpers/colorDeprecations.d.ts +17 -0
  110. package/dist/types-cjs/helpers/mergeBulmaStyles.d.ts +17 -0
  111. package/dist/types-cjs/helpers/polymorphic.d.ts +138 -0
  112. package/dist/types-cjs/helpers/portal.d.ts +15 -0
  113. package/dist/types-cjs/helpers/scrollLock.d.ts +9 -0
  114. package/dist/types-cjs/helpers/useBulmaClasses.d.ts +60 -0
  115. package/dist/types-cjs/helpers/useColorClasses.d.ts +69 -0
  116. package/dist/types-cjs/helpers/useFlexboxClasses.d.ts +46 -0
  117. package/dist/types-cjs/helpers/useIsHydrated.d.ts +12 -0
  118. package/dist/types-cjs/helpers/useOtherClasses.d.ts +43 -0
  119. package/dist/types-cjs/helpers/useSpacingClasses.d.ts +45 -0
  120. package/dist/types-cjs/helpers/useTypographyClasses.d.ts +51 -0
  121. package/dist/types-cjs/helpers/useVisibilityClasses.d.ts +43 -0
  122. package/dist/types-cjs/helpers/withSubComponents.d.ts +16 -0
  123. package/dist/types-cjs/index.d.ts +113 -0
  124. package/dist/types-cjs/layout/Container.d.ts +51 -0
  125. package/dist/types-cjs/layout/Footer.d.ts +39 -0
  126. package/dist/types-cjs/layout/Hero.d.ts +126 -0
  127. package/dist/types-cjs/layout/Level.d.ts +112 -0
  128. package/dist/types-cjs/layout/Media.d.ts +97 -0
  129. package/dist/types-cjs/layout/Section.d.ts +38 -0
  130. package/dist/types-cjs/package.json +3 -0
  131. package/dist/types-cjs/skill-examples/ExampleMeta.d.ts +15 -0
  132. package/dist/types-cjs/skill-examples/ProfileCard.d.ts +23 -0
  133. package/package.json +9 -4
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
3
+ /** Position of the sidebar relative to the viewport. */
4
+ export type SidebarPosition = 'left' | 'right';
5
+ /**
6
+ * Props for the Sidebar component.
7
+ * @extraProp {string} [className] - Additional CSS classes.
8
+ * @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the sidebar element.
9
+ */
10
+ export interface SidebarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children' | 'color'>, BulmaClassesProps {
11
+ /** Whether the sidebar is open (required). */
12
+ isOpen: boolean;
13
+ /** Callback when sidebar should close. */
14
+ onClose?: () => void;
15
+ /** Which side the sidebar appears from. Default: 'left'. */
16
+ position?: SidebarPosition;
17
+ /** Custom width of the sidebar. */
18
+ width?: string;
19
+ /** Sidebar takes full width (mobile-style). */
20
+ isFullwidth?: boolean;
21
+ /** Sidebar takes full width (mobile-style). @deprecated Use `isFullwidth` instead — `isFullwidth` wins if both are set. */
22
+ fullWidth?: boolean;
23
+ /** Show overlay behind sidebar. Default: true. */
24
+ overlay?: boolean;
25
+ /** Close sidebar when overlay is clicked. Default: true. */
26
+ overlayClose?: boolean;
27
+ /** Close sidebar on Escape key. Default: true. */
28
+ escapeClose?: boolean;
29
+ /** Allow closing the sidebar. Default: true. */
30
+ canCancel?: boolean;
31
+ /** Content to display in the sidebar. */
32
+ children?: React.ReactNode;
33
+ /** Renders inline instead of using a portal. */
34
+ inline?: boolean;
35
+ }
36
+ /**
37
+ * Props for the SidebarHeader component.
38
+ */
39
+ interface SidebarHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
40
+ /** Header content. */
41
+ children?: React.ReactNode;
42
+ }
43
+ /**
44
+ * Props for the SidebarTitle component.
45
+ */
46
+ interface SidebarTitleProps extends React.HTMLAttributes<HTMLParagraphElement> {
47
+ /** Title content. */
48
+ children?: React.ReactNode;
49
+ }
50
+ /**
51
+ * Props for the SidebarClose component.
52
+ * Extends standard button attributes.
53
+ */
54
+ type SidebarCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
55
+ /**
56
+ * Props for the SidebarBody component.
57
+ */
58
+ interface SidebarBodyProps extends React.HTMLAttributes<HTMLDivElement> {
59
+ /** Body content. */
60
+ children?: React.ReactNode;
61
+ }
62
+ /**
63
+ * Props for the SidebarFooter component.
64
+ */
65
+ interface SidebarFooterProps extends React.HTMLAttributes<HTMLDivElement> {
66
+ /** Footer content. */
67
+ children?: React.ReactNode;
68
+ }
69
+ export declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>> & {
70
+ Header: React.FC<SidebarHeaderProps>;
71
+ Title: React.FC<SidebarTitleProps>;
72
+ Close: React.FC<SidebarCloseProps>;
73
+ Body: React.FC<SidebarBodyProps>;
74
+ Footer: React.FC<SidebarFooterProps>;
75
+ };
76
+ export default Sidebar;
@@ -0,0 +1,101 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
3
+ /** Available size modifiers for the Steps component. */
4
+ export type StepsSize = 'small' | 'medium' | 'large';
5
+ /** Available color variants for the Steps component. */
6
+ export type StepsColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
7
+ /**
8
+ * Props for individual Step items.
9
+ */
10
+ export interface StepItemProps {
11
+ /** Step label/title */
12
+ label?: React.ReactNode;
13
+ /** Icon for the step marker */
14
+ icon?: React.ReactNode;
15
+ /**
16
+ * Icon shown when the step is completed.
17
+ * @defaultValue '✓'
18
+ */
19
+ completedIcon?: React.ReactNode;
20
+ /** Whether this step is clickable */
21
+ clickable?: boolean;
22
+ /** Additional CSS classes. */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * Props for the Steps component.
27
+ * @extraProp {React.ReactNode} [children] - Step children (alternative to items).
28
+ * @extraProp {string} [className] - Additional CSS classes.
29
+ */
30
+ export interface StepsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
31
+ /** Current active step (0-indexed). */
32
+ value?: number;
33
+ /** Array of step items. */
34
+ items?: StepItemProps[];
35
+ /** Size of the steps. */
36
+ size?: StepsSize;
37
+ /** Color variant. */
38
+ color?: StepsColor;
39
+ /** Show step markers. Default: true. */
40
+ hasMarker?: boolean;
41
+ /** Enable animations. Default: true. */
42
+ animated?: boolean;
43
+ /** Use rounded markers. Default: true. */
44
+ rounded?: boolean;
45
+ /** Vertical layout. */
46
+ vertical?: boolean;
47
+ /** Position of labels. */
48
+ labelPosition?: 'bottom' | 'right' | 'left';
49
+ /** Mobile display mode. */
50
+ mobileMode?: 'minimal' | 'compact' | 'right';
51
+ /** Displays step numbers in the markers. */
52
+ showStepNumbers?: boolean;
53
+ /** Shows previous/next navigation buttons. */
54
+ hasNavigation?: boolean;
55
+ /** Label for the previous button. */
56
+ prevLabel?: string;
57
+ /** Label for the next button. */
58
+ nextLabel?: string;
59
+ /** Callback when previous button is clicked. */
60
+ onPrev?: () => void;
61
+ /** Callback when next button is clicked. */
62
+ onNext?: () => void;
63
+ /** Callback when a step is clicked. */
64
+ onStepClick?: (step: number) => void;
65
+ }
66
+ /**
67
+ * Props for the Step subcomponent.
68
+ */
69
+ export interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
70
+ /** Whether this step is active */
71
+ isActive?: boolean;
72
+ /** Whether this step is completed */
73
+ isCompleted?: boolean;
74
+ /** Step label/title */
75
+ label?: React.ReactNode;
76
+ /** Icon for the step marker */
77
+ icon?: React.ReactNode;
78
+ /** Whether this step is clickable */
79
+ clickable?: boolean;
80
+ /** Click handler */
81
+ onClick?: () => void;
82
+ /** Step number to display in marker (1-indexed) */
83
+ stepNumber?: number;
84
+ /**
85
+ * Icon shown when the step is completed.
86
+ * @defaultValue '✓'
87
+ */
88
+ completedIcon?: React.ReactNode;
89
+ }
90
+ /**
91
+ * Individual Step component for use inside Steps.
92
+ *
93
+ * @function
94
+ * @param {StepProps} props - Props for the Step component.
95
+ * @returns {JSX.Element} The rendered step segment.
96
+ */
97
+ export declare const Step: React.FC<StepProps>;
98
+ export declare const Steps: React.FC<StepsProps> & {
99
+ Step: React.FC<StepProps>;
100
+ };
101
+ export default Steps;
@@ -0,0 +1,160 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
3
+ /**
4
+ * Props for the Tabs component.
5
+ */
6
+ export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
7
+ /** Tab alignment. */
8
+ align?: 'centered' | 'right' | 'left';
9
+ /** Tab size. */
10
+ size?: 'small' | 'medium' | 'large';
11
+ /** Tabs expand to fill the horizontal space. */
12
+ isFullwidth?: boolean;
13
+ /** Tabs expand to fill the horizontal space. @deprecated Use `isFullwidth` instead — `isFullwidth` wins if both are set. */
14
+ isFullWidth?: boolean;
15
+ /** Tabs expand to fill the horizontal space. @deprecated Use `isFullwidth` instead — `isFullwidth` wins if both are set. */
16
+ fullwidth?: boolean;
17
+ /** Tabs use the boxed style. */
18
+ boxed?: boolean;
19
+ /** Tabs use the toggle style. */
20
+ toggle?: boolean;
21
+ /** Tabs use the rounded toggle style (only with `toggle`). */
22
+ rounded?: boolean;
23
+ /**
24
+ * Bulma color for tab underlines and active state (renders `is-<color>`).
25
+ *
26
+ * Bulma ships no tabs color CSS, so this prop has never had a visual effect
27
+ * for any value. Passing it logs a console warning in development.
28
+ * @deprecated No `.tabs.is-<color>` CSS exists; the prop renders unstyled
29
+ * and will be removed in the next major version.
30
+ */
31
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
32
+ /** Controlled active tab index. */
33
+ value?: number;
34
+ /** Callback when active tab changes. */
35
+ onChange?: (index: number) => void;
36
+ /** Initial active tab index (uncontrolled). */
37
+ defaultValue?: number;
38
+ /** Renders tabs vertically. */
39
+ vertical?: boolean;
40
+ /** Side placement when `vertical` is true. */
41
+ side?: 'left' | 'right';
42
+ /** Makes tabs take up the full width equally. */
43
+ expanded?: boolean;
44
+ /** Additional CSS classes. */
45
+ className?: string;
46
+ /** Tab list and tab items. */
47
+ children?: React.ReactNode;
48
+ }
49
+ /**
50
+ * Props for the TabList component.
51
+ */
52
+ export interface TabListProps extends React.HTMLAttributes<HTMLUListElement> {
53
+ /** Additional CSS classes. */
54
+ className?: string;
55
+ /** Tab elements. */
56
+ children?: React.ReactNode;
57
+ }
58
+ /**
59
+ * The `<ul>` container for tab items.
60
+ *
61
+ * @function
62
+ * @param {TabListProps} props - Props for the TabList component.
63
+ * @returns {JSX.Element} The rendered tab list.
64
+ */
65
+ export declare const TabList: React.FC<TabListProps>;
66
+ type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
67
+ /**
68
+ * Props for the Tab component.
69
+ */
70
+ export interface TabProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'onClick'> {
71
+ /** **Required.** Tab index for matching with content. */
72
+ index: number;
73
+ /** Disables the tab. */
74
+ disabled?: boolean;
75
+ /** Icon name for the tab. */
76
+ icon?: string;
77
+ /** Icon library to use. */
78
+ iconLibrary?: IconLibrary;
79
+ /** Icon style variant (e.g., 'solid', 'outlined', 'rounded'). */
80
+ iconVariant?: string;
81
+ /** Size of the tab icon. */
82
+ iconSize?: 'small' | 'medium' | 'large';
83
+ /** Additional icon modifiers. */
84
+ iconFeatures?: string | string[];
85
+ /** Additional CSS classes. */
86
+ className?: string;
87
+ /** Tab label content. */
88
+ children?: React.ReactNode;
89
+ }
90
+ /**
91
+ * Individual tab button. Consumes Tabs context for active state management.
92
+ * Renders `<a>` internally — consumers provide only the label text/children.
93
+ *
94
+ * @function
95
+ * @param {TabProps} props - Props for the Tab component.
96
+ * @returns {JSX.Element} The rendered tab.
97
+ */
98
+ export declare const Tab: React.FC<TabProps>;
99
+ /**
100
+ * Props for the TabItem component (backward-compatible).
101
+ */
102
+ export interface TabItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
103
+ /** Whether the tab is active. */
104
+ active?: boolean;
105
+ /** Additional CSS classes. */
106
+ className?: string;
107
+ /** Tab content. */
108
+ children?: React.ReactNode;
109
+ /** Click handler. */
110
+ onClick?: React.MouseEventHandler<HTMLLIElement>;
111
+ }
112
+ /**
113
+ * Each tab; accepts `active`, `onClick`, etc.
114
+ *
115
+ * @function
116
+ * @param {TabItemProps} props - Props for the TabItem component.
117
+ * @returns {JSX.Element} The rendered tab item.
118
+ * @deprecated Use `Tabs.Tab` with an `index` prop instead.
119
+ */
120
+ export declare const TabItem: React.FC<TabItemProps>;
121
+ /**
122
+ * Props for the TabsContent component.
123
+ */
124
+ export interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {
125
+ /** Additional CSS classes. */
126
+ className?: string;
127
+ /** TabContentItem elements. */
128
+ children?: React.ReactNode;
129
+ }
130
+ /**
131
+ * Props for the TabContentItem component.
132
+ */
133
+ export interface TabContentItemProps extends React.HTMLAttributes<HTMLDivElement> {
134
+ /** **Required.** Tab index for matching with content. */
135
+ index: number;
136
+ /** Additional CSS classes. */
137
+ className?: string;
138
+ /** Panel content. */
139
+ children?: React.ReactNode;
140
+ }
141
+ /**
142
+ * Individual content panel. Shows/hides based on active tab from context.
143
+ *
144
+ * @function
145
+ * @param {TabContentItemProps} props - Props for the TabContentItem component.
146
+ * @returns {JSX.Element} The rendered tab content panel.
147
+ */
148
+ export declare const TabContentItem: React.FC<TabContentItemProps>;
149
+ export declare const TabsContent: React.FC<TabsContentProps> & {
150
+ Item: React.FC<TabContentItemProps>;
151
+ };
152
+ export declare const Tabs: React.FC<TabsProps> & {
153
+ List: React.FC<TabListProps>;
154
+ Tab: React.FC<TabProps>;
155
+ Item: React.FC<TabItemProps>;
156
+ Content: React.FC<TabsContentProps> & {
157
+ Item: React.FC<TabContentItemProps>;
158
+ };
159
+ };
160
+ export default Tabs;
@@ -0,0 +1,150 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
3
+ /** Color/style type presets for toast messages. */
4
+ export type ToastType = 'default' | 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
5
+ /** Screen positions where toasts can be displayed. */
6
+ export type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
7
+ /**
8
+ * Props for the Toast component.
9
+ * @extraProp {string} [className] - Additional CSS classes.
10
+ * @extraProp {React.Ref<HTMLDivElement>} [ref] - Ref forwarded to the toast element.
11
+ */
12
+ export interface ToastProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, Omit<BulmaClassesProps, 'color'> {
13
+ /** The message to display (required). */
14
+ message: string;
15
+ /** Color variant — colors the toast **background**. */
16
+ type?: ToastType;
17
+ /** Color variant — colors the **action button** text. */
18
+ actionType?: ToastType;
19
+ /** Position on the screen. Default: 'top-right'. */
20
+ position?: ToastPosition;
21
+ /** Duration in ms before auto-close. `0` disables auto-close. */
22
+ duration?: number;
23
+ /** Keeps the toast visible until dismissed. */
24
+ indefinite?: boolean;
25
+ /** Whether clicking the toast (or outside it) dismisses it. */
26
+ dismissible?: boolean;
27
+ /** Show an explicit close (X) button. Default: false. */
28
+ closable?: boolean;
29
+ /** Pill-shaped (rounded corners). */
30
+ rounded?: boolean;
31
+ /** Pause auto-close timer on hover. Default: false. */
32
+ pauseOnHover?: boolean;
33
+ /** Whether the toast can be dismissed with Escape. Default: true. */
34
+ cancelable?: boolean;
35
+ /** Text for an action button (e.g. "Undo"). */
36
+ actionText?: string;
37
+ /** Text for a cancel button. */
38
+ cancelText?: string;
39
+ /** Callback when the action button is clicked. */
40
+ onAction?: () => void;
41
+ /** Callback when toast closes. */
42
+ onClose?: () => void;
43
+ /** CSS selector or DOM node to mount the toast into. */
44
+ container?: string | HTMLElement;
45
+ /** Renders inline instead of using a portal. */
46
+ inline?: boolean;
47
+ }
48
+ /**
49
+ * The `Toast` component provides brief notification messages with optional action and cancel buttons.
50
+ *
51
+ * @function
52
+ * @param {ToastProps} props - Props for the Toast component.
53
+ * @param {React.Ref<HTMLDivElement>} ref - Forwarded ref to the toast element.
54
+ * @returns {JSX.Element | null} The rendered toast component.
55
+ *
56
+ * @example
57
+ * // Basic toast
58
+ * <Toast message="Operation successful!" type="success" />
59
+ *
60
+ * @example
61
+ * // Toast with action button
62
+ * <Toast message="Item deleted" actionText="Undo" onAction={handleUndo} />
63
+ */
64
+ export declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLDivElement>>;
65
+ /**
66
+ * Options for showing a programmatic toast. Extends ToastProps with a required message.
67
+ */
68
+ export interface ToastOptions extends Omit<ToastProps, 'message'> {
69
+ /** The message to display. */
70
+ message: string;
71
+ /** When true, toasts enter a FIFO queue and display one at a time. Default false. */
72
+ queue?: boolean;
73
+ }
74
+ /**
75
+ * Internal representation of a toast instance.
76
+ */
77
+ export interface ToastInstance {
78
+ /** Unique identifier for this toast. */
79
+ id: string;
80
+ /** Configuration options for the toast. */
81
+ props: ToastOptions;
82
+ }
83
+ /**
84
+ * Programmatic toast API for showing, closing, and managing toasts.
85
+ *
86
+ * @example
87
+ * toast.success('Saved!');
88
+ * toast.show({ message: 'Item deleted', actionText: 'Undo', onAction: handleUndo });
89
+ */
90
+ export declare const toast: {
91
+ /**
92
+ * Show a toast with the given options.
93
+ * @param {ToastOptions} options - Toast configuration.
94
+ * @returns {string} The unique ID of the created toast.
95
+ */
96
+ show: (options: ToastOptions) => string;
97
+ /**
98
+ * Show a success toast.
99
+ * @param {string} message - The message to display.
100
+ * @param {Partial<ToastOptions>} [options] - Additional options.
101
+ * @returns {string} The toast ID.
102
+ */
103
+ success: (message: string, options?: Partial<ToastOptions>) => string;
104
+ /**
105
+ * Show a danger toast.
106
+ * @param {string} message - The message to display.
107
+ * @param {Partial<ToastOptions>} [options] - Additional options.
108
+ * @returns {string} The toast ID.
109
+ */
110
+ danger: (message: string, options?: Partial<ToastOptions>) => string;
111
+ /**
112
+ * Show a warning toast.
113
+ * @param {string} message - The message to display.
114
+ * @param {Partial<ToastOptions>} [options] - Additional options.
115
+ * @returns {string} The toast ID.
116
+ */
117
+ warning: (message: string, options?: Partial<ToastOptions>) => string;
118
+ /**
119
+ * Show an info toast.
120
+ * @param {string} message - The message to display.
121
+ * @param {Partial<ToastOptions>} [options] - Additional options.
122
+ * @returns {string} The toast ID.
123
+ */
124
+ info: (message: string, options?: Partial<ToastOptions>) => string;
125
+ /**
126
+ * Close a specific toast by ID.
127
+ * @param {string} id - The toast ID to close.
128
+ */
129
+ close: (id: string) => void;
130
+ /** Close all toasts and clear the queue. */
131
+ closeAll: () => void;
132
+ /**
133
+ * Subscribe to toast state changes.
134
+ * @param {(toasts: ToastInstance[]) => void} listener - Callback invoked on changes.
135
+ * @returns {() => void} Unsubscribe function.
136
+ */
137
+ subscribe: (listener: (toasts: ToastInstance[]) => void) => (() => void);
138
+ };
139
+ /**
140
+ * Container component for rendering programmatic toasts.
141
+ * Place once at your app root to enable the toast API.
142
+ *
143
+ * @function
144
+ * @param {{ position?: ToastPosition }} props - Container props.
145
+ * @returns {JSX.Element | null} The rendered toast container, or null if empty.
146
+ */
147
+ export declare const ToastContainer: React.FC<{
148
+ position?: ToastPosition;
149
+ }>;
150
+ export default Toast;
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
3
+ /** Screen positions for the tooltip. */
4
+ export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right' | 'auto';
5
+ /** Color variants for the tooltip. */
6
+ export type TooltipColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'dark' | 'light';
7
+ /** Size variants for the tooltip. */
8
+ export type TooltipSize = 'small' | 'medium' | 'large';
9
+ /**
10
+ * Props for the Tooltip component.
11
+ * @extraProp {React.ReactNode} [children] - The element that triggers the tooltip.
12
+ * @extraProp {string} [className] - Additional CSS classes.
13
+ */
14
+ export interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color' | 'content'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
15
+ /** The tooltip text content. */
16
+ label?: string;
17
+ /** Rich tooltip content (alternative to `label`). */
18
+ content?: React.ReactNode;
19
+ /** Position of the tooltip. Default: 'top'. */
20
+ position?: TooltipPosition;
21
+ /** Color variant for the tooltip. */
22
+ color?: TooltipColor;
23
+ /** Size of the tooltip. */
24
+ size?: TooltipSize;
25
+ /** Force tooltip to be always visible. */
26
+ active?: boolean;
27
+ /** Allow tooltip to wrap to multiple lines. */
28
+ multiline?: boolean;
29
+ /** Enable fade animation. Default: true. */
30
+ animated?: boolean;
31
+ /** Use square corners instead of rounded. */
32
+ square?: boolean;
33
+ /** Show dashed underline on trigger. */
34
+ dashed?: boolean;
35
+ /** Delay before showing tooltip (ms). */
36
+ delay?: number;
37
+ /** Delay in ms before hiding the tooltip. */
38
+ closeDelay?: number;
39
+ /** Additional classes for the tooltip element. */
40
+ tooltipClassName?: string;
41
+ }
42
+ /**
43
+ * The `Tooltip` component displays helpful information when users hover over or focus on an element.
44
+ *
45
+ * @function
46
+ * @param {TooltipProps} props - Props for the Tooltip component.
47
+ * @returns {JSX.Element} The rendered tooltip wrapper.
48
+ *
49
+ * @example
50
+ * // Basic tooltip
51
+ * <Tooltip label="This is helpful info">
52
+ * <button>Hover me</button>
53
+ * </Tooltip>
54
+ *
55
+ * @example
56
+ * // Positioned tooltip with color
57
+ * <Tooltip label="Delete item" position="right" color="danger">
58
+ * <Icon icon="fas fa-trash" />
59
+ * </Tooltip>
60
+ *
61
+ * @example
62
+ * // Multiline tooltip
63
+ * <Tooltip label="This is a longer tooltip that wraps to multiple lines" multiline>
64
+ * <span>?</span>
65
+ * </Tooltip>
66
+ */
67
+ export declare const Tooltip: React.FC<TooltipProps>;
68
+ export default Tooltip;
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses.js';
3
+ /**
4
+ * Props for the Block component.
5
+ */
6
+ export interface BlockProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
7
+ /** Additional CSS classes to apply. */
8
+ className?: string;
9
+ /** Text color helper. */
10
+ textColor?: (typeof validColors)[number] | 'inherit' | 'current';
11
+ /**
12
+ * Text color alias: renders `has-text-<color>`, exactly like `textColor`.
13
+ * Not a filled variant (no `.block.is-<color>` CSS exists). Prefer
14
+ * `textColor`, which takes precedence when both are set; use `bgColor` for
15
+ * a colored surface.
16
+ */
17
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
18
+ /** Background color helper. */
19
+ bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
20
+ /** Content to render inside the block. */
21
+ children?: React.ReactNode;
22
+ }
23
+ /**
24
+ * The `Block` component renders a simple container with Bulma's `.block` class, adding vertical margin between sections of content.
25
+ *
26
+ * @function
27
+ * @param {BlockProps} props - Props for the Block component.
28
+ * @returns {JSX.Element} The rendered block element.
29
+ * @see {@link https://bulma.io/documentation/elements/block/ | Bulma Block documentation}
30
+ */
31
+ export declare const Block: React.FC<BlockProps>;
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps, validColors, validSchemeColors } from '../helpers/useBulmaClasses.js';
3
+ /**
4
+ * Props for the Box component.
5
+ */
6
+ export interface BoxProps
7
+ /** @ignore */
8
+ extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
9
+ /** Additional CSS classes to apply. */
10
+ className?: string;
11
+ /** Text color helper. */
12
+ textColor?: (typeof validColors)[number] | 'inherit' | 'current';
13
+ /**
14
+ * Text color alias: renders `has-text-<color>`, exactly like `textColor`.
15
+ * Not a filled box variant (no `.box.is-<color>` CSS exists). Prefer
16
+ * `textColor`, which takes precedence when both are set; use `bgColor` for
17
+ * a colored surface.
18
+ */
19
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
20
+ /**
21
+ * Background color helper. `scheme-*` values render as a dark-mode-safe
22
+ * inline `background-color: var(--bulma-scheme-*)` instead of a class. The
23
+ * `scheme-invert*` values do not change text color — pair them with a
24
+ * contrasting foreground.
25
+ */
26
+ bgColor?: (typeof validColors)[number] | (typeof validSchemeColors)[number] | 'inherit' | 'current';
27
+ /** Whether the box has a shadow (default: true). */
28
+ hasShadow?: boolean;
29
+ /** Content to render inside the box. */
30
+ children?: React.ReactNode;
31
+ }
32
+ /**
33
+ * The `Box` component renders a bordered, padded container with an optional shadow using Bulma's `.box` class.
34
+ *
35
+ * @function
36
+ * @param {BoxProps} props - Props for the Box component.
37
+ * @returns {JSX.Element} The rendered box element.
38
+ * @see {@link https://bulma.io/documentation/elements/box/ | Bulma Box documentation}
39
+ */
40
+ export declare const Box: React.FC<BoxProps>;
41
+ export default Box;