@allxsmith/bestax-bulma 2.6.2 → 3.0.2

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 (139) hide show
  1. package/README.md +2 -2
  2. package/dist/bestax.css +3 -0
  3. package/dist/bestax.css.map +1 -0
  4. package/dist/bestax.js +1 -0
  5. package/dist/extras.css +3 -0
  6. package/dist/extras.css.map +1 -0
  7. package/dist/extras.js +1 -0
  8. package/dist/index.cjs.js +6214 -647
  9. package/dist/index.cjs.js.map +1 -1
  10. package/dist/index.esm.js +6154 -649
  11. package/dist/index.esm.js.map +1 -1
  12. package/dist/types/components/Card.d.ts +1 -1
  13. package/dist/types/components/Carousel.d.ts +34 -0
  14. package/dist/types/components/Collapse.d.ts +17 -0
  15. package/dist/types/components/Dialog.d.ts +47 -0
  16. package/dist/types/components/Loading.d.ts +18 -0
  17. package/dist/types/components/Navbar.d.ts +10 -0
  18. package/dist/types/components/Panel.d.ts +2 -4
  19. package/dist/types/components/Sidebar.d.ts +37 -0
  20. package/dist/types/components/Steps.d.ts +45 -0
  21. package/dist/types/components/Tabs.d.ts +42 -6
  22. package/dist/types/components/Toast.d.ts +46 -0
  23. package/dist/types/components/Tooltip.d.ts +22 -0
  24. package/dist/types/elements/Button.d.ts +1 -1
  25. package/dist/types/elements/Code.d.ts +9 -0
  26. package/dist/types/elements/Divider.d.ts +7 -0
  27. package/dist/types/elements/Emphasis.d.ts +9 -0
  28. package/dist/types/elements/Figure.d.ts +17 -0
  29. package/dist/types/elements/Icon.d.ts +2 -1
  30. package/dist/types/elements/Link.d.ts +10 -0
  31. package/dist/types/elements/LinkButton.d.ts +8 -0
  32. package/dist/types/elements/ListItem.d.ts +9 -0
  33. package/dist/types/elements/Notification.d.ts +31 -0
  34. package/dist/types/elements/OrderedList.d.ts +9 -0
  35. package/dist/types/elements/Paragraph.d.ts +9 -0
  36. package/dist/types/elements/Pre.d.ts +9 -0
  37. package/dist/types/elements/Span.d.ts +9 -0
  38. package/dist/types/elements/Strong.d.ts +9 -0
  39. package/dist/types/elements/UnorderedList.d.ts +9 -0
  40. package/dist/types/form/Autocomplete.d.ts +42 -0
  41. package/dist/types/form/Checkbox.d.ts +7 -2
  42. package/dist/types/form/Checkboxes.d.ts +6 -1
  43. package/dist/types/form/DateInput.d.ts +26 -0
  44. package/dist/types/form/DateInputBase.d.ts +42 -0
  45. package/dist/types/form/DateTimeInput.d.ts +26 -0
  46. package/dist/types/form/DateTimeInputBase.d.ts +50 -0
  47. package/dist/types/form/Field.d.ts +2 -1
  48. package/dist/types/form/File.d.ts +3 -2
  49. package/dist/types/form/FormContext.d.ts +22 -0
  50. package/dist/types/form/Input.d.ts +22 -11
  51. package/dist/types/form/InputBase.d.ts +16 -0
  52. package/dist/types/form/Numberinput.d.ts +30 -0
  53. package/dist/types/form/Radio.d.ts +7 -2
  54. package/dist/types/form/Radios.d.ts +6 -1
  55. package/dist/types/form/Rate.d.ts +38 -0
  56. package/dist/types/form/Select.d.ts +18 -11
  57. package/dist/types/form/SelectBase.d.ts +19 -0
  58. package/dist/types/form/Slider.d.ts +49 -0
  59. package/dist/types/form/Switch.d.ts +17 -0
  60. package/dist/types/form/Taginput.d.ts +54 -0
  61. package/dist/types/form/TextArea.d.ts +13 -14
  62. package/dist/types/form/TextAreaBase.d.ts +19 -0
  63. package/dist/types/form/TimeInput.d.ts +26 -0
  64. package/dist/types/form/TimeInputBase.d.ts +44 -0
  65. package/dist/types/form/_pickerInternals/Calendar.d.ts +26 -0
  66. package/dist/types/form/_pickerInternals/PickerPopover.d.ts +20 -0
  67. package/dist/types/form/_pickerInternals/TimeWheels.d.ts +29 -0
  68. package/dist/types/form/_pickerInternals/audioTick.d.ts +3 -0
  69. package/dist/types/form/_pickerInternals/dateUtils.d.ts +39 -0
  70. package/dist/types/form/_pickerInternals/formatters.d.ts +13 -0
  71. package/dist/types/form/_pickerInternals/haptics.d.ts +1 -0
  72. package/dist/types/form/_pickerInternals/pickerTypes.d.ts +31 -0
  73. package/dist/types/form/_pickerInternals/segmentMap.d.ts +20 -0
  74. package/dist/types/form/_pickerInternals/useFocusTrap.d.ts +7 -0
  75. package/dist/types/form/_pickerInternals/useNativeMobilePicker.d.ts +10 -0
  76. package/dist/types/form/_pickerInternals/useSegmentedEntry.d.ts +45 -0
  77. package/dist/types/form/fieldProps.d.ts +12 -0
  78. package/dist/types/helpers/bulmaClassHelpers.d.ts +35 -0
  79. package/dist/types/helpers/useBulmaClasses.d.ts +16 -83
  80. package/dist/types/helpers/useColorClasses.d.ts +8 -0
  81. package/dist/types/helpers/useFlexboxClasses.d.ts +12 -0
  82. package/dist/types/helpers/useOtherClasses.d.ts +15 -0
  83. package/dist/types/helpers/useSpacingClasses.d.ts +18 -0
  84. package/dist/types/helpers/useTypographyClasses.d.ts +19 -0
  85. package/dist/types/helpers/useVisibilityClasses.d.ts +10 -0
  86. package/dist/types/index.d.ts +53 -3
  87. package/dist/versions/bestax-bulma-prefixed.css +3 -0
  88. package/dist/versions/bestax-bulma-prefixed.css.map +1 -0
  89. package/dist/versions/bestax-bulma-prefixed.js +1 -0
  90. package/dist/versions/bestax-no-dark-mode.css +3 -0
  91. package/dist/versions/bestax-no-dark-mode.css.map +1 -0
  92. package/dist/versions/bestax-no-dark-mode.js +1 -0
  93. package/dist/versions/bestax-no-helpers-prefixed.css +3 -0
  94. package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -0
  95. package/dist/versions/bestax-no-helpers-prefixed.js +1 -0
  96. package/dist/versions/bestax-no-helpers.css +3 -0
  97. package/dist/versions/bestax-no-helpers.css.map +1 -0
  98. package/dist/versions/bestax-no-helpers.js +1 -0
  99. package/dist/versions/bestax-prefixed.css +3 -0
  100. package/dist/versions/bestax-prefixed.css.map +1 -0
  101. package/dist/versions/bestax-prefixed.js +1 -0
  102. package/package.json +109 -35
  103. package/src/scss/_mixins.scss +215 -0
  104. package/src/scss/_variables.scss +94 -0
  105. package/src/scss/bestax.scss +18 -0
  106. package/src/scss/components/_carousel.scss +580 -0
  107. package/src/scss/components/_collapse.scss +126 -0
  108. package/src/scss/components/_dialog.scss +134 -0
  109. package/src/scss/components/_index.scss +13 -0
  110. package/src/scss/components/_loading.scss +231 -0
  111. package/src/scss/components/_sidebar.scss +347 -0
  112. package/src/scss/components/_steps.scss +459 -0
  113. package/src/scss/components/_tabs.scss +147 -0
  114. package/src/scss/components/_toast.scss +244 -0
  115. package/src/scss/components/_tooltip.scss +250 -0
  116. package/src/scss/elements/_index.scss +5 -0
  117. package/src/scss/elements/_linkbutton.scss +77 -0
  118. package/src/scss/extras.scss +24 -0
  119. package/src/scss/form/_autocomplete.scss +261 -0
  120. package/src/scss/form/_checkbox.scss +217 -0
  121. package/src/scss/form/_dateinput.scss +292 -0
  122. package/src/scss/form/_datetimeinput.scss +191 -0
  123. package/src/scss/form/_index.scss +16 -0
  124. package/src/scss/form/_numberinput.scss +176 -0
  125. package/src/scss/form/_picker-popover.scss +185 -0
  126. package/src/scss/form/_radio.scss +196 -0
  127. package/src/scss/form/_rate.scss +307 -0
  128. package/src/scss/form/_slider.scss +630 -0
  129. package/src/scss/form/_switch.scss +314 -0
  130. package/src/scss/form/_taginput.scss +356 -0
  131. package/src/scss/form/_timeinput.scss +374 -0
  132. package/src/scss/helpers/_cursor.scss +5 -0
  133. package/src/scss/helpers/_index.scss +2 -0
  134. package/src/scss/helpers/_sizing.scss +5 -0
  135. package/src/scss/versions/bestax-bulma-prefixed.scss +15 -0
  136. package/src/scss/versions/bestax-no-dark-mode.scss +32 -0
  137. package/src/scss/versions/bestax-no-helpers-prefixed.scss +22 -0
  138. package/src/scss/versions/bestax-no-helpers.scss +23 -0
  139. package/src/scss/versions/bestax-prefixed.scss +15 -0
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { FormFieldProps } from './fieldProps';
4
+ export interface AutocompleteItem {
5
+ value: string;
6
+ label?: string;
7
+ disabled?: boolean;
8
+ [key: string]: unknown;
9
+ }
10
+ export interface AutocompleteProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onInput'>, Omit<BulmaClassesProps, 'color'>, FormFieldProps {
11
+ data: AutocompleteItem[] | string[];
12
+ value?: string;
13
+ selected?: AutocompleteItem | string | null;
14
+ placeholder?: string;
15
+ field?: string;
16
+ clearable?: boolean;
17
+ openOnFocus?: boolean;
18
+ keepFirst?: boolean;
19
+ keepOpen?: boolean;
20
+ selectOnClickOutside?: boolean;
21
+ maxHeight?: number;
22
+ dropdown?: boolean;
23
+ loading?: boolean;
24
+ disabled?: boolean;
25
+ checkInfiniteScroll?: boolean;
26
+ infiniteScrollDistance?: number;
27
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
28
+ size?: 'small' | 'medium' | 'large';
29
+ name?: string;
30
+ form?: string;
31
+ required?: boolean;
32
+ onInput?: (value: string) => void;
33
+ onSelect?: (item: AutocompleteItem | string | null) => void;
34
+ onActiveChange?: (active: boolean) => void;
35
+ onInfiniteScroll?: () => void;
36
+ itemTemplate?: (item: AutocompleteItem | string) => React.ReactNode;
37
+ header?: React.ReactNode;
38
+ footer?: React.ReactNode;
39
+ empty?: React.ReactNode;
40
+ }
41
+ export declare const Autocomplete: React.ForwardRefExoticComponent<AutocompleteProps & React.RefAttributes<HTMLInputElement>>;
42
+ export default Autocomplete;
@@ -1,6 +1,11 @@
1
1
  import React from 'react';
2
- import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'>, Omit<BulmaClassesProps, 'color'> {
2
+ import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ export declare const checkboxColors: readonly ["primary", "link", "info", "success", "warning", "danger"];
4
+ export declare const checkboxSizes: readonly ["small", "normal", "medium", "large"];
5
+ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
6
+ color?: (typeof checkboxColors)[number];
7
+ size?: (typeof checkboxSizes)[number];
8
+ textColor?: (typeof validColors)[number] | 'inherit' | 'current';
4
9
  disabled?: boolean;
5
10
  className?: string;
6
11
  children?: React.ReactNode;
@@ -1,7 +1,12 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface CheckboxesProps extends Omit<BulmaClassesProps, 'color'> {
3
+ import { FormFieldProps } from './fieldProps';
4
+ export interface CheckboxesProps extends Omit<BulmaClassesProps, 'color'>, FormFieldProps {
4
5
  className?: string;
6
+ name?: string;
7
+ value?: string[];
8
+ defaultValue?: string[];
9
+ onChange?: (values: string[]) => void;
5
10
  children?: React.ReactNode;
6
11
  }
7
12
  export declare const Checkboxes: React.FC<CheckboxesProps>;
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { FieldProps } from './Field';
3
+ import { ControlBaseProps } from './Control';
4
+ import { DateInputBaseProps } from './DateInputBase';
5
+ export interface DateInputProps extends DateInputBaseProps {
6
+ label?: React.ReactNode;
7
+ labelSize?: FieldProps['labelSize'];
8
+ labelProps?: FieldProps['labelProps'];
9
+ horizontal?: boolean;
10
+ iconLeft?: ControlBaseProps['iconLeft'];
11
+ iconRight?: ControlBaseProps['iconRight'];
12
+ iconRightName?: string;
13
+ iconLeftSize?: ControlBaseProps['iconLeftSize'];
14
+ iconRightSize?: ControlBaseProps['iconRightSize'];
15
+ hasIconsLeft?: boolean;
16
+ hasIconsRight?: boolean;
17
+ isLoading?: boolean;
18
+ isExpanded?: boolean;
19
+ controlSize?: ControlBaseProps['size'];
20
+ message?: React.ReactNode;
21
+ messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
22
+ fieldClassName?: string;
23
+ controlClassName?: string;
24
+ }
25
+ export declare const DateInput: React.ForwardRefExoticComponent<DateInputProps & React.RefAttributes<HTMLInputElement>>;
26
+ export default DateInput;
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { PickerPosition, DayOfWeek, PickerLabels } from './_pickerInternals/pickerTypes';
4
+ import { DateFormatOption } from './_pickerInternals/formatters';
5
+ export interface DateInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'color' | 'min' | 'max' | 'type' | 'popover'>, Omit<BulmaClassesProps, 'color'> {
6
+ value?: Date | null;
7
+ defaultValue?: Date | null;
8
+ onChange?: (d: Date | null) => void;
9
+ onOpen?: () => void;
10
+ onClose?: () => void;
11
+ min?: Date;
12
+ max?: Date;
13
+ disabled?: boolean;
14
+ readOnly?: boolean;
15
+ placeholder?: string;
16
+ format?: DateFormatOption;
17
+ parse?: (s: string) => Date | null;
18
+ locale?: string;
19
+ inline?: boolean;
20
+ mobileNative?: boolean | 'auto';
21
+ editable?: boolean;
22
+ popover?: boolean;
23
+ openOnFocus?: boolean;
24
+ closeOnSelect?: boolean;
25
+ position?: PickerPosition;
26
+ appendToBody?: boolean;
27
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
28
+ size?: 'small' | 'medium' | 'large';
29
+ isRounded?: boolean;
30
+ shouldDisableDate?: (d: Date) => boolean;
31
+ unselectableDates?: Date[];
32
+ firstDayOfWeek?: DayOfWeek;
33
+ dayNames?: string[];
34
+ monthNames?: string[];
35
+ nearbyMonthDays?: boolean;
36
+ iconLeftName?: string;
37
+ triggerIcon?: boolean;
38
+ triggerIconName?: string;
39
+ labels?: PickerLabels;
40
+ }
41
+ export declare const DateInputBase: React.ForwardRefExoticComponent<DateInputBaseProps & React.RefAttributes<HTMLInputElement>>;
42
+ export default DateInputBase;
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { FieldProps } from './Field';
3
+ import { ControlBaseProps } from './Control';
4
+ import { DateTimeInputBaseProps } from './DateTimeInputBase';
5
+ export interface DateTimeInputProps extends DateTimeInputBaseProps {
6
+ label?: React.ReactNode;
7
+ labelSize?: FieldProps['labelSize'];
8
+ labelProps?: FieldProps['labelProps'];
9
+ horizontal?: boolean;
10
+ iconLeft?: ControlBaseProps['iconLeft'];
11
+ iconRight?: ControlBaseProps['iconRight'];
12
+ iconRightName?: string;
13
+ iconLeftSize?: ControlBaseProps['iconLeftSize'];
14
+ iconRightSize?: ControlBaseProps['iconRightSize'];
15
+ hasIconsLeft?: boolean;
16
+ hasIconsRight?: boolean;
17
+ isLoading?: boolean;
18
+ isExpanded?: boolean;
19
+ controlSize?: ControlBaseProps['size'];
20
+ message?: React.ReactNode;
21
+ messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
22
+ fieldClassName?: string;
23
+ controlClassName?: string;
24
+ }
25
+ export declare const DateTimeInput: React.ForwardRefExoticComponent<DateTimeInputProps & React.RefAttributes<HTMLInputElement>>;
26
+ export default DateTimeInput;
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { PickerPosition, HourFormat, DayOfWeek, PickerLabels } from './_pickerInternals/pickerTypes';
4
+ import { DateFormatOption } from './_pickerInternals/formatters';
5
+ export interface DateTimeInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'color' | 'min' | 'max' | 'type' | 'popover'>, Omit<BulmaClassesProps, 'color'> {
6
+ value?: Date | null;
7
+ defaultValue?: Date | null;
8
+ onChange?: (d: Date | null) => void;
9
+ onOpen?: () => void;
10
+ onClose?: () => void;
11
+ min?: Date;
12
+ max?: Date;
13
+ disabled?: boolean;
14
+ readOnly?: boolean;
15
+ placeholder?: string;
16
+ format?: DateFormatOption;
17
+ parse?: (s: string) => Date | null;
18
+ locale?: string;
19
+ inline?: boolean;
20
+ mobileNative?: boolean | 'auto';
21
+ editable?: boolean;
22
+ popover?: boolean;
23
+ openOnFocus?: boolean;
24
+ closeOnSelect?: boolean;
25
+ position?: PickerPosition;
26
+ appendToBody?: boolean;
27
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
28
+ size?: 'small' | 'medium' | 'large';
29
+ isRounded?: boolean;
30
+ shouldDisableDate?: (d: Date) => boolean;
31
+ unselectableDates?: Date[];
32
+ firstDayOfWeek?: DayOfWeek;
33
+ dayNames?: string[];
34
+ monthNames?: string[];
35
+ nearbyMonthDays?: boolean;
36
+ hourFormat?: HourFormat;
37
+ enableSeconds?: boolean;
38
+ incrementHours?: number;
39
+ incrementMinutes?: number;
40
+ incrementSeconds?: number;
41
+ unselectableTimes?: (d: Date) => boolean;
42
+ iconLeftName?: string;
43
+ triggerIcon?: boolean;
44
+ triggerIconName?: string;
45
+ audioTick?: boolean;
46
+ haptics?: boolean;
47
+ labels?: PickerLabels;
48
+ }
49
+ export declare const DateTimeInputBase: React.ForwardRefExoticComponent<DateTimeInputBaseProps & React.RefAttributes<HTMLInputElement>>;
50
+ export default DateTimeInputBase;
@@ -3,7 +3,8 @@ import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
3
  export interface FieldProps extends React.HTMLAttributes<HTMLDivElement>, Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
4
4
  horizontal?: boolean;
5
5
  grouped?: boolean | 'centered' | 'right' | 'multiline';
6
- hasAddons?: boolean;
6
+ hasAddons?: boolean | 'centered' | 'right';
7
+ narrow?: boolean;
7
8
  label?: React.ReactNode;
8
9
  labelSize?: 'small' | 'normal' | 'medium' | 'large';
9
10
  labelProps?: React.LabelHTMLAttributes<HTMLLabelElement> & {
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface FileProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'color' | 'type'>, Omit<BulmaClassesProps, 'color'> {
3
+ import { FormFieldProps } from './fieldProps';
4
+ export interface FileProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'color' | 'type'>, Omit<BulmaClassesProps, 'color'>, FormFieldProps {
4
5
  color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
5
6
  size?: 'small' | 'medium' | 'large';
6
7
  isBoxed?: boolean;
@@ -8,7 +9,7 @@ export interface FileProps extends Omit<React.InputHTMLAttributes<HTMLInputEleme
8
9
  isRight?: boolean;
9
10
  isCentered?: boolean;
10
11
  hasName?: boolean;
11
- label?: React.ReactNode;
12
+ buttonLabel?: React.ReactNode;
12
13
  iconLeft?: React.ReactNode;
13
14
  iconRight?: React.ReactNode;
14
15
  className?: string;
@@ -0,0 +1,22 @@
1
+ export declare const useInsideField: () => boolean;
2
+ export declare const useInsideControl: () => boolean;
3
+ export declare const FieldProvider: import("react").Provider<boolean>;
4
+ export declare const ControlProvider: import("react").Provider<boolean>;
5
+ export interface RadiosGroupContextValue {
6
+ name?: string;
7
+ value?: string;
8
+ onChange?: (value: string) => void;
9
+ }
10
+ export interface CheckboxesGroupContextValue {
11
+ name?: string;
12
+ value?: string[];
13
+ onChange?: (values: string[]) => void;
14
+ }
15
+ export declare const useRadiosGroup: () => RadiosGroupContextValue | undefined;
16
+ export declare const useCheckboxesGroup: () => CheckboxesGroupContextValue | undefined;
17
+ export declare const useRadiosName: () => string | undefined;
18
+ export declare const useCheckboxesName: () => string | undefined;
19
+ export declare const RadiosProvider: import("react").Provider<RadiosGroupContextValue | undefined>;
20
+ export declare const CheckboxesProvider: import("react").Provider<CheckboxesGroupContextValue | undefined>;
21
+ export declare const RadiosNameProvider: import("react").Provider<RadiosGroupContextValue | undefined>;
22
+ export declare const CheckboxesNameProvider: import("react").Provider<CheckboxesGroupContextValue | undefined>;
@@ -1,16 +1,27 @@
1
1
  import React from 'react';
2
- import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, Omit<BulmaClassesProps, 'color'> {
4
- color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
5
- size?: 'small' | 'medium' | 'large';
6
- isRounded?: boolean;
7
- isStatic?: boolean;
8
- isHovered?: boolean;
9
- isFocused?: boolean;
2
+ import { FieldProps } from './Field';
3
+ import { ControlBaseProps } from './Control';
4
+ import { InputBaseProps } from './InputBase';
5
+ export interface InputProps extends InputBaseProps {
6
+ label?: React.ReactNode;
7
+ labelSize?: FieldProps['labelSize'];
8
+ labelProps?: FieldProps['labelProps'];
9
+ horizontal?: boolean;
10
+ iconLeft?: ControlBaseProps['iconLeft'];
11
+ iconRight?: ControlBaseProps['iconRight'];
12
+ iconLeftName?: string;
13
+ iconRightName?: string;
14
+ iconLeftSize?: ControlBaseProps['iconLeftSize'];
15
+ iconRightSize?: ControlBaseProps['iconRightSize'];
16
+ hasIconsLeft?: boolean;
17
+ hasIconsRight?: boolean;
10
18
  isLoading?: boolean;
11
- className?: string;
12
- disabled?: boolean;
13
- readOnly?: boolean;
19
+ isExpanded?: boolean;
20
+ controlSize?: ControlBaseProps['size'];
21
+ message?: React.ReactNode;
22
+ messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
23
+ fieldClassName?: string;
24
+ controlClassName?: string;
14
25
  }
15
26
  export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
16
27
  export default Input;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ export interface InputBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, Omit<BulmaClassesProps, 'color'> {
4
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
5
+ size?: 'small' | 'medium' | 'large';
6
+ isRounded?: boolean;
7
+ isStatic?: boolean;
8
+ isHovered?: boolean;
9
+ isFocused?: boolean;
10
+ isLoading?: boolean;
11
+ className?: string;
12
+ disabled?: boolean;
13
+ readOnly?: boolean;
14
+ }
15
+ export declare const InputBase: React.ForwardRefExoticComponent<InputBaseProps & React.RefAttributes<HTMLInputElement>>;
16
+ export default InputBase;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { FormFieldProps } from './fieldProps';
4
+ export type NumberinputSize = 'small' | 'medium' | 'large';
5
+ export type NumberinputColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'light' | 'dark';
6
+ export type NumberinputInputColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
7
+ export type NumberinputControlsPosition = 'left' | 'right' | 'both';
8
+ export type NumberinputVariant = 'plusminus' | 'stepper';
9
+ export interface NumberinputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'color' | 'size' | 'onChange' | 'value' | 'defaultValue' | 'type'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'>, FormFieldProps {
10
+ value?: number;
11
+ defaultValue?: number;
12
+ min?: number;
13
+ max?: number;
14
+ step?: number;
15
+ size?: NumberinputSize;
16
+ color?: NumberinputColor;
17
+ inputColor?: NumberinputInputColor;
18
+ controlsPosition?: NumberinputControlsPosition;
19
+ controlsRounded?: boolean;
20
+ compact?: boolean;
21
+ bare?: boolean;
22
+ variant?: NumberinputVariant;
23
+ disabled?: boolean;
24
+ editable?: boolean;
25
+ isLoading?: boolean;
26
+ exponential?: boolean;
27
+ onChange?: (value: number) => void;
28
+ }
29
+ export declare const Numberinput: React.ForwardRefExoticComponent<NumberinputProps & React.RefAttributes<HTMLInputElement>>;
30
+ export default Numberinput;
@@ -1,6 +1,11 @@
1
1
  import React from 'react';
2
- import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'>, Omit<BulmaClassesProps, 'color'> {
2
+ import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ export declare const radioColors: readonly ["primary", "link", "info", "success", "warning", "danger"];
4
+ export declare const radioSizes: readonly ["small", "normal", "medium", "large"];
5
+ export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
6
+ color?: (typeof radioColors)[number];
7
+ size?: (typeof radioSizes)[number];
8
+ textColor?: (typeof validColors)[number] | 'inherit' | 'current';
4
9
  disabled?: boolean;
5
10
  className?: string;
6
11
  children?: React.ReactNode;
@@ -1,7 +1,12 @@
1
1
  import React from 'react';
2
2
  import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface RadiosProps extends Omit<BulmaClassesProps, 'color'> {
3
+ import { FormFieldProps } from './fieldProps';
4
+ export interface RadiosProps extends Omit<BulmaClassesProps, 'color'>, FormFieldProps {
4
5
  className?: string;
6
+ name?: string;
7
+ value?: string;
8
+ defaultValue?: string;
9
+ onChange?: (value: string) => void;
5
10
  children: React.ReactNode;
6
11
  }
7
12
  export declare const Radios: React.FC<RadiosProps>;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { FormFieldProps } from './fieldProps';
4
+ export type RateSize = 'small' | 'medium' | 'large';
5
+ type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
6
+ type BulmaColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
7
+ export interface RateIconProps {
8
+ index: number;
9
+ isActive: boolean;
10
+ isHovered: boolean;
11
+ value: number;
12
+ fillPercent: number;
13
+ }
14
+ export interface RateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'color'>, Omit<BulmaClassesProps, 'size'>, FormFieldProps {
15
+ name?: string;
16
+ form?: string;
17
+ value?: number;
18
+ defaultValue?: number;
19
+ max?: number;
20
+ size?: RateSize;
21
+ disabled?: boolean;
22
+ showScore?: boolean;
23
+ showText?: boolean;
24
+ texts?: string[];
25
+ onChange?: (value: number) => void;
26
+ customIcon?: (props: RateIconProps) => React.ReactNode;
27
+ spaced?: boolean;
28
+ rtl?: boolean;
29
+ iconName?: string;
30
+ iconLibrary?: IconLibrary;
31
+ iconVariant?: string;
32
+ iconFeatures?: string | string[];
33
+ color?: BulmaColor;
34
+ precision?: number;
35
+ customText?: string;
36
+ }
37
+ export declare const Rate: React.ForwardRefExoticComponent<RateProps & React.RefAttributes<HTMLDivElement>>;
38
+ export default Rate;
@@ -1,16 +1,23 @@
1
1
  import React from 'react';
2
- import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
- export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>, Omit<BulmaClassesProps, 'color'> {
4
- color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
5
- size?: 'small' | 'medium' | 'large';
6
- isRounded?: boolean;
2
+ import { FieldProps } from './Field';
3
+ import { ControlBaseProps } from './Control';
4
+ import { SelectBaseProps } from './SelectBase';
5
+ export interface SelectProps extends SelectBaseProps {
6
+ label?: React.ReactNode;
7
+ labelSize?: FieldProps['labelSize'];
8
+ labelProps?: FieldProps['labelProps'];
9
+ horizontal?: boolean;
10
+ iconLeft?: ControlBaseProps['iconLeft'];
11
+ iconLeftName?: string;
12
+ iconLeftSize?: ControlBaseProps['iconLeftSize'];
13
+ hasIconsLeft?: boolean;
7
14
  isLoading?: boolean;
8
- isActive?: boolean;
9
- className?: string;
10
- disabled?: boolean;
11
- multiple?: boolean;
12
- multipleSize?: number;
13
- children?: React.ReactNode;
15
+ isExpanded?: boolean;
16
+ controlSize?: ControlBaseProps['size'];
17
+ message?: React.ReactNode;
18
+ messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
19
+ fieldClassName?: string;
20
+ controlClassName?: string;
14
21
  }
15
22
  export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
16
23
  export default Select;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ export interface SelectBaseProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>, Omit<BulmaClassesProps, 'color'> {
4
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
5
+ size?: 'small' | 'medium' | 'large';
6
+ isRounded?: boolean;
7
+ isLoading?: boolean;
8
+ isActive?: boolean;
9
+ isHovered?: boolean;
10
+ isFocused?: boolean;
11
+ isFullwidth?: boolean;
12
+ className?: string;
13
+ disabled?: boolean;
14
+ multiple?: boolean;
15
+ multipleSize?: number;
16
+ children?: React.ReactNode;
17
+ }
18
+ export declare const SelectBase: React.ForwardRefExoticComponent<SelectBaseProps & React.RefAttributes<HTMLSelectElement>>;
19
+ export default SelectBase;
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { FormFieldProps } from './fieldProps';
4
+ export type SliderSize = 'small' | 'medium' | 'large';
5
+ export type SliderColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
6
+ export type SliderTooltip = 'auto' | 'always' | 'hidden';
7
+ export type SliderOrientation = 'horizontal' | 'vertical';
8
+ export interface SliderMark {
9
+ value: number;
10
+ label?: React.ReactNode;
11
+ }
12
+ interface SliderBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'color' | 'size' | 'onChange' | 'value' | 'defaultValue'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'>, FormFieldProps {
13
+ min?: number;
14
+ max?: number;
15
+ step?: number;
16
+ size?: SliderSize;
17
+ color?: SliderColor;
18
+ isRounded?: boolean;
19
+ isCircle?: boolean;
20
+ showOutput?: boolean;
21
+ tooltip?: SliderTooltip;
22
+ ticks?: boolean;
23
+ marks?: SliderMark[];
24
+ orientation?: SliderOrientation;
25
+ scale?: (value: number) => number;
26
+ getAriaValueText?: (value: number) => string;
27
+ formatOutput?: (value: number) => string;
28
+ }
29
+ export interface SliderSingleProps extends SliderBaseProps {
30
+ range?: false;
31
+ value?: number;
32
+ defaultValue?: number;
33
+ onChange?: (value: number) => void;
34
+ minDistance?: never;
35
+ ariaLabel?: string;
36
+ }
37
+ export interface SliderRangeProps extends SliderBaseProps {
38
+ range: true;
39
+ value?: [number, number];
40
+ defaultValue?: [number, number];
41
+ onChange?: (value: [number, number]) => void;
42
+ minDistance?: number;
43
+ ariaLabel?: [string, string];
44
+ nameLow?: string;
45
+ nameHigh?: string;
46
+ }
47
+ export type SliderProps = SliderSingleProps | SliderRangeProps;
48
+ export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLInputElement>>;
49
+ export default Slider;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps, validColors } from '../helpers/useBulmaClasses';
3
+ export declare const switchColors: readonly ["primary", "link", "info", "success", "warning", "danger"];
4
+ export declare const switchSizes: readonly ["small", "normal", "medium", "large"];
5
+ export interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
6
+ color?: (typeof switchColors)[number];
7
+ size?: (typeof switchSizes)[number];
8
+ isRounded?: boolean;
9
+ isThin?: boolean;
10
+ isOutlined?: boolean;
11
+ isRtl?: boolean;
12
+ passiveType?: (typeof switchColors)[number];
13
+ textColor?: (typeof validColors)[number] | 'inherit' | 'current';
14
+ children?: React.ReactNode;
15
+ }
16
+ export declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLInputElement>>;
17
+ export default Switch;
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { FormFieldProps } from './fieldProps';
4
+ export interface TaginputItem {
5
+ value: string;
6
+ label?: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export type TaginputTag = TaginputItem | string;
10
+ type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
11
+ export interface TaginputProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<BulmaClassesProps, 'color'>, FormFieldProps {
12
+ value?: TaginputTag[];
13
+ defaultValue?: TaginputTag[];
14
+ data?: string[];
15
+ placeholder?: string;
16
+ field?: string;
17
+ allowNew?: boolean;
18
+ allowDuplicates?: boolean;
19
+ openOnFocus?: boolean;
20
+ removeOnKeys?: boolean;
21
+ confirmKeys?: string[];
22
+ closable?: boolean;
23
+ attached?: boolean;
24
+ maxTags?: number;
25
+ maxlength?: number;
26
+ disabled?: boolean;
27
+ readonly?: boolean;
28
+ rounded?: boolean;
29
+ ellipsis?: boolean;
30
+ hasCounter?: boolean;
31
+ onPasteSeparators?: string[];
32
+ beforeAdding?: (tag: string) => boolean;
33
+ createTag?: (input: string) => TaginputTag;
34
+ keepFirst?: boolean;
35
+ keepOpen?: boolean;
36
+ loading?: boolean;
37
+ ariaCloseLabel?: string;
38
+ icon?: string;
39
+ iconLibrary?: IconLibrary;
40
+ iconVariant?: string;
41
+ iconFeatures?: string | string[];
42
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
43
+ tagColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'dark' | 'light';
44
+ size?: 'small' | 'medium' | 'large';
45
+ name?: string;
46
+ form?: string;
47
+ onChange?: (tags: TaginputTag[]) => void;
48
+ onAdd?: (tag: TaginputTag) => void;
49
+ onRemove?: (tag: TaginputTag, index: number) => void;
50
+ onTyping?: (value: string) => void;
51
+ tagTemplate?: (tag: TaginputTag) => React.ReactNode;
52
+ }
53
+ export declare const Taginput: React.ForwardRefExoticComponent<TaginputProps & React.RefAttributes<HTMLInputElement>>;
54
+ export default Taginput;