@allxsmith/bestax-bulma 2.6.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) 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/Carousel.d.ts +34 -0
  13. package/dist/types/components/Collapse.d.ts +17 -0
  14. package/dist/types/components/Dialog.d.ts +47 -0
  15. package/dist/types/components/Loading.d.ts +18 -0
  16. package/dist/types/components/Navbar.d.ts +10 -0
  17. package/dist/types/components/Panel.d.ts +2 -4
  18. package/dist/types/components/Sidebar.d.ts +37 -0
  19. package/dist/types/components/Steps.d.ts +45 -0
  20. package/dist/types/components/Tabs.d.ts +42 -6
  21. package/dist/types/components/Toast.d.ts +46 -0
  22. package/dist/types/components/Tooltip.d.ts +22 -0
  23. package/dist/types/elements/Button.d.ts +1 -1
  24. package/dist/types/elements/Code.d.ts +9 -0
  25. package/dist/types/elements/Divider.d.ts +7 -0
  26. package/dist/types/elements/Emphasis.d.ts +9 -0
  27. package/dist/types/elements/Figure.d.ts +17 -0
  28. package/dist/types/elements/Icon.d.ts +1 -0
  29. package/dist/types/elements/Link.d.ts +10 -0
  30. package/dist/types/elements/LinkButton.d.ts +8 -0
  31. package/dist/types/elements/ListItem.d.ts +9 -0
  32. package/dist/types/elements/Notification.d.ts +31 -0
  33. package/dist/types/elements/OrderedList.d.ts +9 -0
  34. package/dist/types/elements/Paragraph.d.ts +9 -0
  35. package/dist/types/elements/Pre.d.ts +9 -0
  36. package/dist/types/elements/Span.d.ts +9 -0
  37. package/dist/types/elements/Strong.d.ts +9 -0
  38. package/dist/types/elements/UnorderedList.d.ts +9 -0
  39. package/dist/types/form/Autocomplete.d.ts +42 -0
  40. package/dist/types/form/Checkbox.d.ts +7 -2
  41. package/dist/types/form/Checkboxes.d.ts +6 -1
  42. package/dist/types/form/DateInput.d.ts +26 -0
  43. package/dist/types/form/DateInputBase.d.ts +42 -0
  44. package/dist/types/form/DateTimeInput.d.ts +26 -0
  45. package/dist/types/form/DateTimeInputBase.d.ts +50 -0
  46. package/dist/types/form/Field.d.ts +2 -1
  47. package/dist/types/form/File.d.ts +3 -2
  48. package/dist/types/form/FormContext.d.ts +22 -0
  49. package/dist/types/form/Input.d.ts +22 -11
  50. package/dist/types/form/InputBase.d.ts +16 -0
  51. package/dist/types/form/Numberinput.d.ts +30 -0
  52. package/dist/types/form/Radio.d.ts +7 -2
  53. package/dist/types/form/Radios.d.ts +6 -1
  54. package/dist/types/form/Rate.d.ts +38 -0
  55. package/dist/types/form/Select.d.ts +18 -11
  56. package/dist/types/form/SelectBase.d.ts +19 -0
  57. package/dist/types/form/Slider.d.ts +49 -0
  58. package/dist/types/form/Switch.d.ts +17 -0
  59. package/dist/types/form/Taginput.d.ts +54 -0
  60. package/dist/types/form/TextArea.d.ts +13 -14
  61. package/dist/types/form/TextAreaBase.d.ts +19 -0
  62. package/dist/types/form/TimeInput.d.ts +26 -0
  63. package/dist/types/form/TimeInputBase.d.ts +44 -0
  64. package/dist/types/form/_pickerInternals/Calendar.d.ts +26 -0
  65. package/dist/types/form/_pickerInternals/PickerPopover.d.ts +20 -0
  66. package/dist/types/form/_pickerInternals/TimeWheels.d.ts +29 -0
  67. package/dist/types/form/_pickerInternals/audioTick.d.ts +3 -0
  68. package/dist/types/form/_pickerInternals/dateUtils.d.ts +39 -0
  69. package/dist/types/form/_pickerInternals/formatters.d.ts +13 -0
  70. package/dist/types/form/_pickerInternals/haptics.d.ts +1 -0
  71. package/dist/types/form/_pickerInternals/pickerTypes.d.ts +31 -0
  72. package/dist/types/form/_pickerInternals/segmentMap.d.ts +20 -0
  73. package/dist/types/form/_pickerInternals/useFocusTrap.d.ts +7 -0
  74. package/dist/types/form/_pickerInternals/useNativeMobilePicker.d.ts +10 -0
  75. package/dist/types/form/_pickerInternals/useSegmentedEntry.d.ts +45 -0
  76. package/dist/types/form/fieldProps.d.ts +12 -0
  77. package/dist/types/helpers/bulmaClassHelpers.d.ts +35 -0
  78. package/dist/types/helpers/useBulmaClasses.d.ts +16 -83
  79. package/dist/types/helpers/useColorClasses.d.ts +8 -0
  80. package/dist/types/helpers/useFlexboxClasses.d.ts +12 -0
  81. package/dist/types/helpers/useOtherClasses.d.ts +15 -0
  82. package/dist/types/helpers/useSpacingClasses.d.ts +18 -0
  83. package/dist/types/helpers/useTypographyClasses.d.ts +19 -0
  84. package/dist/types/helpers/useVisibilityClasses.d.ts +10 -0
  85. package/dist/types/index.d.ts +53 -3
  86. package/dist/versions/bestax-bulma-prefixed.css +3 -0
  87. package/dist/versions/bestax-bulma-prefixed.css.map +1 -0
  88. package/dist/versions/bestax-bulma-prefixed.js +1 -0
  89. package/dist/versions/bestax-no-dark-mode.css +3 -0
  90. package/dist/versions/bestax-no-dark-mode.css.map +1 -0
  91. package/dist/versions/bestax-no-dark-mode.js +1 -0
  92. package/dist/versions/bestax-no-helpers-prefixed.css +3 -0
  93. package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -0
  94. package/dist/versions/bestax-no-helpers-prefixed.js +1 -0
  95. package/dist/versions/bestax-no-helpers.css +3 -0
  96. package/dist/versions/bestax-no-helpers.css.map +1 -0
  97. package/dist/versions/bestax-no-helpers.js +1 -0
  98. package/dist/versions/bestax-prefixed.css +3 -0
  99. package/dist/versions/bestax-prefixed.css.map +1 -0
  100. package/dist/versions/bestax-prefixed.js +1 -0
  101. package/package.json +100 -21
  102. package/src/scss/_mixins.scss +215 -0
  103. package/src/scss/_variables.scss +94 -0
  104. package/src/scss/bestax.scss +18 -0
  105. package/src/scss/components/_carousel.scss +580 -0
  106. package/src/scss/components/_collapse.scss +126 -0
  107. package/src/scss/components/_dialog.scss +134 -0
  108. package/src/scss/components/_index.scss +13 -0
  109. package/src/scss/components/_loading.scss +231 -0
  110. package/src/scss/components/_sidebar.scss +347 -0
  111. package/src/scss/components/_steps.scss +459 -0
  112. package/src/scss/components/_tabs.scss +147 -0
  113. package/src/scss/components/_toast.scss +244 -0
  114. package/src/scss/components/_tooltip.scss +250 -0
  115. package/src/scss/elements/_index.scss +5 -0
  116. package/src/scss/elements/_linkbutton.scss +77 -0
  117. package/src/scss/extras.scss +24 -0
  118. package/src/scss/form/_autocomplete.scss +261 -0
  119. package/src/scss/form/_checkbox.scss +217 -0
  120. package/src/scss/form/_dateinput.scss +292 -0
  121. package/src/scss/form/_datetimeinput.scss +191 -0
  122. package/src/scss/form/_index.scss +16 -0
  123. package/src/scss/form/_numberinput.scss +176 -0
  124. package/src/scss/form/_picker-popover.scss +185 -0
  125. package/src/scss/form/_radio.scss +196 -0
  126. package/src/scss/form/_rate.scss +307 -0
  127. package/src/scss/form/_slider.scss +630 -0
  128. package/src/scss/form/_switch.scss +314 -0
  129. package/src/scss/form/_taginput.scss +356 -0
  130. package/src/scss/form/_timeinput.scss +374 -0
  131. package/src/scss/helpers/_cursor.scss +5 -0
  132. package/src/scss/helpers/_index.scss +2 -0
  133. package/src/scss/helpers/_sizing.scss +5 -0
  134. package/src/scss/versions/bestax-bulma-prefixed.scss +15 -0
  135. package/src/scss/versions/bestax-no-dark-mode.scss +32 -0
  136. package/src/scss/versions/bestax-no-helpers-prefixed.scss +22 -0
  137. package/src/scss/versions/bestax-no-helpers.scss +23 -0
  138. package/src/scss/versions/bestax-prefixed.scss +15 -0
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { FieldProps } from './Field';
3
+ import { ControlBaseProps } from './Control';
4
+ import { TimeInputBaseProps } from './TimeInputBase';
5
+ export interface TimeInputProps extends TimeInputBaseProps {
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 TimeInput: React.ForwardRefExoticComponent<TimeInputProps & React.RefAttributes<HTMLInputElement>>;
26
+ export default TimeInput;
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
3
+ import { PickerPosition, HourFormat, PickerLabels } from './_pickerInternals/pickerTypes';
4
+ import { DateFormatOption } from './_pickerInternals/formatters';
5
+ export interface TimeInputBaseProps 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
+ hourFormat?: HourFormat;
31
+ enableSeconds?: boolean;
32
+ incrementHours?: number;
33
+ incrementMinutes?: number;
34
+ incrementSeconds?: number;
35
+ unselectableTimes?: (d: Date) => boolean;
36
+ iconLeftName?: string;
37
+ triggerIcon?: boolean;
38
+ triggerIconName?: string;
39
+ labels?: PickerLabels;
40
+ audioTick?: boolean;
41
+ haptics?: boolean;
42
+ }
43
+ export declare const TimeInputBase: React.ForwardRefExoticComponent<TimeInputBaseProps & React.RefAttributes<HTMLInputElement>>;
44
+ export default TimeInputBase;
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { DayOfWeek, PickerLabels } from './pickerTypes';
3
+ export interface CalendarProps {
4
+ value: Date | null;
5
+ focusedDate: Date;
6
+ onSelect: (d: Date) => void;
7
+ onFocusedDateChange: (d: Date) => void;
8
+ min?: Date;
9
+ max?: Date;
10
+ shouldDisableDate?: (d: Date) => boolean;
11
+ unselectableDates?: Date[];
12
+ firstDayOfWeek?: DayOfWeek;
13
+ locale?: string;
14
+ dayNames?: string[];
15
+ monthNames?: string[];
16
+ nearbyMonthDays?: boolean;
17
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
18
+ size?: 'small' | 'medium' | 'large';
19
+ className?: string;
20
+ id?: string;
21
+ autoFocusCell?: boolean;
22
+ labels?: PickerLabels;
23
+ yearsRange?: [number, number];
24
+ }
25
+ export declare const Calendar: React.FC<CalendarProps>;
26
+ export default Calendar;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { PickerPosition } from './pickerTypes';
3
+ export interface PickerPopoverProps {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ anchorRef: React.RefObject<HTMLElement | null>;
7
+ children: React.ReactNode;
8
+ position?: PickerPosition;
9
+ appendToBody?: boolean;
10
+ className?: string;
11
+ trapFocus?: boolean;
12
+ closeOnClickOutside?: boolean;
13
+ closeOnEscape?: boolean;
14
+ ariaLabel?: string;
15
+ ariaLabelledBy?: string;
16
+ role?: 'dialog' | 'group';
17
+ id?: string;
18
+ }
19
+ export declare const PickerPopover: React.FC<PickerPopoverProps>;
20
+ export default PickerPopover;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { HourFormat, PickerLabels } from './pickerTypes';
3
+ export interface TimeWheelsValue {
4
+ hours: number;
5
+ minutes: number;
6
+ seconds?: number;
7
+ }
8
+ export interface TimeWheelsProps {
9
+ value: TimeWheelsValue;
10
+ onChange: (v: TimeWheelsValue) => void;
11
+ hourFormat?: HourFormat;
12
+ enableSeconds?: boolean;
13
+ incrementHours?: number;
14
+ incrementMinutes?: number;
15
+ incrementSeconds?: number;
16
+ unselectableTimes?: (d: Date) => boolean;
17
+ size?: 'small' | 'medium' | 'large';
18
+ color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
19
+ disabled?: boolean;
20
+ className?: string;
21
+ id?: string;
22
+ labels?: PickerLabels;
23
+ visibleCount?: number;
24
+ itemHeight?: number;
25
+ audioTick?: boolean;
26
+ onCommit?: () => void;
27
+ }
28
+ export declare const TimeWheels: React.FC<TimeWheelsProps>;
29
+ export default TimeWheels;
@@ -0,0 +1,3 @@
1
+ export declare const unlockAudioTick: () => void;
2
+ export declare const playAudioTick: () => void;
3
+ export declare const __resetAudioTickForTest: () => void;
@@ -0,0 +1,39 @@
1
+ import { DayOfWeek } from './pickerTypes';
2
+ export interface CalendarCell {
3
+ date: Date;
4
+ inCurrentMonth: boolean;
5
+ isToday: boolean;
6
+ }
7
+ export declare function isSameDay(a: Date, b: Date): boolean;
8
+ export declare function isSameMonth(a: Date, b: Date): boolean;
9
+ export declare function isBefore(a: Date, b: Date): boolean;
10
+ export declare function isAfter(a: Date, b: Date): boolean;
11
+ export declare function isWithin(d: Date, min?: Date, max?: Date): boolean;
12
+ export declare function startOfDay(d: Date): Date;
13
+ export declare function endOfDay(d: Date): Date;
14
+ export declare function startOfMonth(d: Date): Date;
15
+ export declare function endOfMonth(d: Date): Date;
16
+ export declare function addDays(d: Date, n: number): Date;
17
+ export declare function addMonths(d: Date, n: number): Date;
18
+ export declare function addYears(d: Date, n: number): Date;
19
+ export declare function addHours(d: Date, n: number): Date;
20
+ export declare function addMinutes(d: Date, n: number): Date;
21
+ export declare function addSeconds(d: Date, n: number): Date;
22
+ export declare function setTimeOfDay(d: Date, parts: {
23
+ hours?: number;
24
+ minutes?: number;
25
+ seconds?: number;
26
+ }): Date;
27
+ export declare function getTimeOfDay(d: Date): {
28
+ hours: number;
29
+ minutes: number;
30
+ seconds: number;
31
+ };
32
+ export declare function clampDate(d: Date, min?: Date, max?: Date): Date;
33
+ export declare function snapTimeToIncrement(d: Date, opts?: {
34
+ incrementHours?: number;
35
+ incrementMinutes?: number;
36
+ incrementSeconds?: number;
37
+ enableSeconds?: boolean;
38
+ }): Date;
39
+ export declare function buildMonthGrid(monthAnchor: Date, firstDayOfWeek?: DayOfWeek): CalendarCell[];
@@ -0,0 +1,13 @@
1
+ export type DateFormatOption = Intl.DateTimeFormatOptions | string;
2
+ export declare const DEFAULT_DATE_FORMAT = "YYYY-MM-DD";
3
+ export declare const DEFAULT_TIME_FORMAT_24 = "HH:mm";
4
+ export declare const DEFAULT_TIME_FORMAT_12 = "hh:mm A";
5
+ export declare const DEFAULT_DATETIME_FORMAT = "YYYY-MM-DD HH:mm";
6
+ export declare function formatDate(d: Date, fmt: DateFormatOption | undefined, locale?: string): string;
7
+ export declare function formatTime(d: Date, fmt: DateFormatOption | undefined, locale?: string): string;
8
+ export declare function formatDateTime(d: Date, fmt: DateFormatOption | undefined, locale?: string): string;
9
+ export declare function hourCycleFromFormat(fmt: DateFormatOption | undefined): '12' | '24' | null;
10
+ export declare function parseDate(s: string, fmt?: string, _locale?: string): Date | null;
11
+ export declare function parseTime(s: string, fmt?: string): Date | null;
12
+ export declare function getDayNames(locale: string | undefined, length?: 'narrow' | 'short' | 'long'): string[];
13
+ export declare function getMonthNames(locale: string | undefined, length?: 'short' | 'long'): string[];
@@ -0,0 +1 @@
1
+ export declare const tickHaptic: () => void;
@@ -0,0 +1,31 @@
1
+ export type PickerPosition = 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'auto';
2
+ export type HourFormat = '12' | '24';
3
+ export type DayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;
4
+ export interface PickerLabels {
5
+ prevMonth?: string;
6
+ nextMonth?: string;
7
+ chooseDate?: string;
8
+ hours?: string;
9
+ minutes?: string;
10
+ seconds?: string;
11
+ ampm?: string;
12
+ increaseHours?: string;
13
+ decreaseHours?: string;
14
+ increaseMinutes?: string;
15
+ decreaseMinutes?: string;
16
+ increaseSeconds?: string;
17
+ decreaseSeconds?: string;
18
+ toggleAmPm?: string;
19
+ chooseTime?: string;
20
+ chooseDateTime?: string;
21
+ now?: string;
22
+ today?: string;
23
+ clear?: string;
24
+ cancel?: string;
25
+ ok?: string;
26
+ reset?: string;
27
+ done?: string;
28
+ time?: string;
29
+ }
30
+ export declare const DEFAULT_PICKER_LABELS: Required<PickerLabels>;
31
+ export declare const mergeLabels: (overrides?: PickerLabels) => Required<PickerLabels>;
@@ -0,0 +1,20 @@
1
+ export type SegmentKind = 'year' | 'month' | 'day' | 'hours' | 'minutes' | 'seconds' | 'ampm' | 'literal';
2
+ export interface Segment {
3
+ kind: SegmentKind;
4
+ token: string;
5
+ start: number;
6
+ end: number;
7
+ hourFormat?: '12' | '24';
8
+ }
9
+ export interface SegmentMap {
10
+ segments: Segment[];
11
+ editable: number[];
12
+ }
13
+ export declare function buildSegmentMap(format: string): SegmentMap | null;
14
+ export declare function incrementSegmentValue(segment: Segment, currentDate: Date, delta: number, isPm: boolean): Date;
15
+ export declare function setSegmentValue(segment: Segment, currentDate: Date, rawDigits: string, isPm: boolean): {
16
+ date: Date;
17
+ advance: boolean;
18
+ };
19
+ export declare function setAmPm(currentDate: Date, isPm: boolean): Date;
20
+ export declare function segmentIndexAtCaret(map: SegmentMap, caret: number): number | null;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ interface UseFocusTrapOptions {
3
+ initialFocusRef?: React.RefObject<HTMLElement>;
4
+ restoreFocus?: boolean;
5
+ }
6
+ export declare function useFocusTrap(containerRef: React.RefObject<HTMLElement>, active: boolean, options?: UseFocusTrapOptions): void;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ export interface NativeMobileDetect {
2
+ isCoarsePointer: boolean;
3
+ isSmallViewport: boolean;
4
+ shouldUseNative: boolean;
5
+ }
6
+ export interface UseNativeMobilePickerOptions {
7
+ smallViewportMaxPx?: number;
8
+ force?: boolean;
9
+ }
10
+ export declare function useNativeMobilePicker(options?: UseNativeMobilePickerOptions): NativeMobileDetect;
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { DateFormatOption } from './formatters';
3
+ import { SegmentMap } from './segmentMap';
4
+ export interface UseSegmentedEntryParams {
5
+ format: DateFormatOption;
6
+ value: Date | null;
7
+ commitValue: (next: Date | null) => void;
8
+ formatFn: (d: Date, fmt: DateFormatOption | undefined, locale?: string) => string;
9
+ tryParse: (s: string) => Date | null;
10
+ text: string;
11
+ setText: (s: string) => void;
12
+ makeBaseDate: () => Date;
13
+ locale?: string;
14
+ min?: Date;
15
+ max?: Date;
16
+ isBlocked?: (d: Date) => boolean;
17
+ disabled?: boolean;
18
+ readOnly?: boolean;
19
+ editable?: boolean;
20
+ popover?: boolean;
21
+ openOnFocus?: boolean;
22
+ closeOnSelect?: boolean;
23
+ isOpen: boolean;
24
+ setOpen: (next: boolean) => void;
25
+ inputRef: React.RefObject<HTMLInputElement | null>;
26
+ containerRef: React.RefObject<HTMLElement | null>;
27
+ onFocus?: React.FocusEventHandler<HTMLInputElement>;
28
+ onClick?: React.MouseEventHandler<HTMLInputElement>;
29
+ onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
30
+ onBlur?: React.FocusEventHandler<HTMLInputElement>;
31
+ }
32
+ export interface UseSegmentedEntryResult {
33
+ segmentMap: SegmentMap | null;
34
+ activeSegmentIdx: number | null;
35
+ segmentEditable: boolean;
36
+ inSegmentMode: boolean;
37
+ inputHandlers: {
38
+ onChange: React.ChangeEventHandler<HTMLInputElement>;
39
+ onFocus: React.FocusEventHandler<HTMLInputElement>;
40
+ onClick: React.MouseEventHandler<HTMLInputElement>;
41
+ onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;
42
+ onBlur: React.FocusEventHandler<HTMLInputElement>;
43
+ };
44
+ }
45
+ export declare function useSegmentedEntry(params: UseSegmentedEntryParams): UseSegmentedEntryResult;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface FormFieldProps {
3
+ label?: React.ReactNode;
4
+ labelSize?: 'small' | 'normal' | 'medium' | 'large';
5
+ labelProps?: React.LabelHTMLAttributes<HTMLLabelElement> & {
6
+ [key: string]: unknown;
7
+ };
8
+ horizontal?: boolean;
9
+ message?: React.ReactNode;
10
+ messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
11
+ fieldClassName?: string;
12
+ }
@@ -0,0 +1,35 @@
1
+ export declare const validColors: readonly ["primary", "link", "info", "success", "warning", "danger", "black", "black-bis", "black-ter", "grey-darker", "grey-dark", "grey", "grey-light", "grey-lighter", "white", "light", "dark"];
2
+ export declare const validColorShades: readonly ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "invert", "light", "dark", "soft", "bold", "on-scheme"];
3
+ export declare const validSizes: readonly ["0", "1", "2", "3", "4", "5", "6", "auto"];
4
+ export declare const validTextSizes: readonly ["1", "2", "3", "4", "5", "6", "7"];
5
+ export declare const validAlignments: readonly ["centered", "justified", "left", "right"];
6
+ export declare const validTextTransforms: readonly ["capitalized", "lowercase", "uppercase", "italic"];
7
+ export declare const validTextWeights: readonly ["light", "normal", "medium", "semibold", "bold"];
8
+ export declare const validFontFamilies: readonly ["sans-serif", "monospace", "primary", "secondary", "code"];
9
+ export declare const validDisplays: readonly ["block", "flex", "inline", "inline-block", "inline-flex"];
10
+ export declare const validVisibilities: readonly ["hidden", "sr-only", "invisible"];
11
+ export declare const validFlexDirections: readonly ["row", "row-reverse", "column", "column-reverse"];
12
+ export declare const validFlexWraps: readonly ["nowrap", "wrap", "wrap-reverse"];
13
+ export declare const validJustifyContents: readonly ["flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "start", "end", "left", "right"];
14
+ export declare const validAlignContents: readonly ["flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "stretch"];
15
+ export declare const validAlignItems: readonly ["stretch", "flex-start", "flex-end", "center", "baseline", "start", "end"];
16
+ export declare const validAlignSelfs: readonly ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"];
17
+ export declare const validFlexGrowShrink: readonly ["0", "1", "2", "3", "4", "5"];
18
+ export declare const validViewports: readonly ["mobile", "tablet", "desktop", "widescreen", "fullhd"];
19
+ export interface BulmaViewportProps {
20
+ viewport?: (typeof validViewports)[number];
21
+ }
22
+ export interface BulmaDisplayProps {
23
+ display?: (typeof validDisplays)[number] | 'none';
24
+ displayMobile?: (typeof validDisplays)[number] | 'none';
25
+ displayTablet?: (typeof validDisplays)[number] | 'none';
26
+ displayDesktop?: (typeof validDisplays)[number] | 'none';
27
+ displayWidescreen?: (typeof validDisplays)[number] | 'none';
28
+ displayFullhd?: (typeof validDisplays)[number] | 'none';
29
+ }
30
+ export declare const createBulmaClassHelpers: (classPrefix?: string, viewport?: (typeof validViewports)[number]) => {
31
+ classes: string[];
32
+ addPrefixedClass: (className: string) => void;
33
+ addClass: (prefix: string, value: string | undefined, validValues: readonly string[], supportsViewport?: boolean) => void;
34
+ addClassNoViewport: (prefix: string, value: string | undefined, validValues: readonly string[]) => void;
35
+ };
@@ -1,88 +1,21 @@
1
- export declare const validColors: readonly ["primary", "link", "info", "success", "warning", "danger", "black", "black-bis", "black-ter", "grey-darker", "grey-dark", "grey", "grey-light", "grey-lighter", "white", "light", "dark"];
2
- export declare const validColorShades: readonly ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "invert", "light", "dark", "soft", "bold", "on-scheme"];
3
- export declare const validSizes: readonly ["0", "1", "2", "3", "4", "5", "6", "auto"];
4
- export declare const validTextSizes: readonly ["1", "2", "3", "4", "5", "6", "7"];
5
- export declare const validAlignments: readonly ["centered", "justified", "left", "right"];
6
- export declare const validTextTransforms: readonly ["capitalized", "lowercase", "uppercase", "italic"];
7
- export declare const validTextWeights: readonly ["light", "normal", "medium", "semibold", "bold"];
8
- export declare const validFontFamilies: readonly ["sans-serif", "monospace", "primary", "secondary", "code"];
9
- export declare const validDisplays: readonly ["block", "flex", "inline", "inline-block", "inline-flex"];
10
- export declare const validVisibilities: readonly ["hidden", "sr-only", "invisible"];
11
- export declare const validFlexDirections: readonly ["row", "row-reverse", "column", "column-reverse"];
12
- export declare const validFlexWraps: readonly ["nowrap", "wrap", "wrap-reverse"];
13
- export declare const validJustifyContents: readonly ["flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "start", "end", "left", "right"];
14
- export declare const validAlignContents: readonly ["flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "stretch"];
15
- export declare const validAlignItems: readonly ["stretch", "flex-start", "flex-end", "center", "baseline", "start", "end"];
16
- export declare const validAlignSelfs: readonly ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"];
17
- export declare const validFlexGrowShrink: readonly ["0", "1", "2", "3", "4", "5"];
18
- export declare const validViewports: readonly ["mobile", "tablet", "desktop", "widescreen", "fullhd"];
19
- export interface BulmaClassesProps {
20
- color?: (typeof validColors)[number] | 'inherit' | 'current';
21
- backgroundColor?: (typeof validColors)[number] | 'inherit' | 'current';
22
- colorShade?: (typeof validColorShades)[number];
23
- backgroundColorShade?: (typeof validColorShades)[number];
24
- m?: (typeof validSizes)[number];
25
- mt?: (typeof validSizes)[number];
26
- mr?: (typeof validSizes)[number];
27
- mb?: (typeof validSizes)[number];
28
- ml?: (typeof validSizes)[number];
29
- mx?: (typeof validSizes)[number];
30
- my?: (typeof validSizes)[number];
31
- p?: (typeof validSizes)[number];
32
- pt?: (typeof validSizes)[number];
33
- pr?: (typeof validSizes)[number];
34
- pb?: (typeof validSizes)[number];
35
- pl?: (typeof validSizes)[number];
36
- px?: (typeof validSizes)[number];
37
- py?: (typeof validSizes)[number];
38
- textSize?: (typeof validTextSizes)[number];
39
- textAlign?: (typeof validAlignments)[number];
40
- textTransform?: (typeof validTextTransforms)[number];
41
- textWeight?: (typeof validTextWeights)[number];
42
- fontFamily?: (typeof validFontFamilies)[number];
43
- display?: (typeof validDisplays)[number] | 'none';
44
- visibility?: (typeof validVisibilities)[number];
45
- flexDirection?: (typeof validFlexDirections)[number];
46
- flexWrap?: (typeof validFlexWraps)[number];
47
- justifyContent?: (typeof validJustifyContents)[number];
48
- alignContent?: (typeof validAlignContents)[number];
49
- alignItems?: (typeof validAlignItems)[number];
50
- alignSelf?: (typeof validAlignSelfs)[number];
51
- flexGrow?: (typeof validFlexGrowShrink)[number];
52
- flexShrink?: (typeof validFlexGrowShrink)[number];
53
- float?: 'left' | 'right';
54
- overflow?: 'clipped';
55
- overlay?: boolean;
56
- interaction?: 'unselectable' | 'clickable';
57
- radius?: 'radiusless';
58
- shadow?: 'shadowless';
59
- responsive?: 'mobile' | 'narrow';
60
- viewport?: (typeof validViewports)[number];
61
- displayMobile?: (typeof validDisplays)[number] | 'none';
62
- displayTablet?: (typeof validDisplays)[number] | 'none';
63
- displayDesktop?: (typeof validDisplays)[number] | 'none';
64
- displayWidescreen?: (typeof validDisplays)[number] | 'none';
65
- displayFullhd?: (typeof validDisplays)[number] | 'none';
66
- textSizeMobile?: (typeof validTextSizes)[number];
67
- textSizeTablet?: (typeof validTextSizes)[number];
68
- textSizeDesktop?: (typeof validTextSizes)[number];
69
- textSizeWidescreen?: (typeof validTextSizes)[number];
70
- textSizeFullhd?: (typeof validTextSizes)[number];
71
- textAlignMobile?: (typeof validAlignments)[number];
72
- textAlignTablet?: (typeof validAlignments)[number];
73
- textAlignDesktop?: (typeof validAlignments)[number];
74
- textAlignWidescreen?: (typeof validAlignments)[number];
75
- textAlignFullhd?: (typeof validAlignments)[number];
76
- visibilityMobile?: (typeof validVisibilities)[number];
77
- visibilityTablet?: (typeof validVisibilities)[number];
78
- visibilityDesktop?: (typeof validVisibilities)[number];
79
- visibilityWidescreen?: (typeof validVisibilities)[number];
80
- visibilityFullhd?: (typeof validVisibilities)[number];
81
- skeleton?: boolean;
82
- clearfix?: boolean;
83
- relative?: boolean;
1
+ import { BulmaDisplayProps, BulmaViewportProps } from './bulmaClassHelpers';
2
+ import { BulmaColorProps } from './useColorClasses';
3
+ import { BulmaSpacingProps } from './useSpacingClasses';
4
+ import { BulmaTypographyProps } from './useTypographyClasses';
5
+ import { BulmaVisibilityProps } from './useVisibilityClasses';
6
+ import { BulmaFlexboxProps } from './useFlexboxClasses';
7
+ import { BulmaOtherProps } from './useOtherClasses';
8
+ export interface BulmaClassesProps extends BulmaColorProps, BulmaSpacingProps, BulmaTypographyProps, BulmaVisibilityProps, BulmaFlexboxProps, BulmaOtherProps {
84
9
  }
85
10
  export declare const useBulmaClasses: <T extends Record<string, unknown>>(props: BulmaClassesProps & T) => {
86
11
  bulmaHelperClasses: string;
87
12
  rest: Omit<T, keyof BulmaClassesProps>;
88
13
  };
14
+ export { validColors, validColorShades, validSizes, validTextSizes, validAlignments, validTextTransforms, validTextWeights, validFontFamilies, validDisplays, validVisibilities, validFlexDirections, validFlexWraps, validJustifyContents, validAlignContents, validAlignItems, validAlignSelfs, validFlexGrowShrink, validViewports, } from './bulmaClassHelpers';
15
+ export type { BulmaViewportProps, BulmaDisplayProps };
16
+ export * from './useColorClasses';
17
+ export * from './useSpacingClasses';
18
+ export * from './useTypographyClasses';
19
+ export * from './useVisibilityClasses';
20
+ export * from './useFlexboxClasses';
21
+ export * from './useOtherClasses';
@@ -0,0 +1,8 @@
1
+ import { validColors, validColorShades } from './bulmaClassHelpers';
2
+ export interface BulmaColorProps {
3
+ color?: (typeof validColors)[number] | 'inherit' | 'current';
4
+ colorShade?: (typeof validColorShades)[number];
5
+ backgroundColor?: (typeof validColors)[number] | 'inherit' | 'current';
6
+ backgroundColorShade?: (typeof validColorShades)[number];
7
+ }
8
+ export declare const useColorClasses: (props: BulmaColorProps) => string;
@@ -0,0 +1,12 @@
1
+ import { validFlexDirections, validFlexWraps, validJustifyContents, validAlignContents, validAlignItems, validAlignSelfs, validFlexGrowShrink, BulmaDisplayProps } from './bulmaClassHelpers';
2
+ export interface BulmaFlexboxProps extends BulmaDisplayProps {
3
+ flexDirection?: (typeof validFlexDirections)[number];
4
+ flexWrap?: (typeof validFlexWraps)[number];
5
+ justifyContent?: (typeof validJustifyContents)[number];
6
+ alignContent?: (typeof validAlignContents)[number];
7
+ alignItems?: (typeof validAlignItems)[number];
8
+ alignSelf?: (typeof validAlignSelfs)[number];
9
+ flexGrow?: (typeof validFlexGrowShrink)[number];
10
+ flexShrink?: (typeof validFlexGrowShrink)[number];
11
+ }
12
+ export declare const useFlexboxClasses: (props: BulmaFlexboxProps) => string;
@@ -0,0 +1,15 @@
1
+ export interface BulmaOtherProps {
2
+ float?: 'left' | 'right';
3
+ overflow?: 'clipped';
4
+ overlay?: boolean;
5
+ interaction?: 'unselectable' | 'clickable';
6
+ cursor?: 'pointer' | 'help';
7
+ radius?: 'radiusless';
8
+ shadow?: 'shadowless';
9
+ responsive?: 'mobile' | 'narrow';
10
+ skeleton?: boolean;
11
+ clearfix?: boolean;
12
+ relative?: boolean;
13
+ fullHeight?: boolean;
14
+ }
15
+ export declare const useOtherClasses: (props: BulmaOtherProps) => string;
@@ -0,0 +1,18 @@
1
+ import { validSizes } from './bulmaClassHelpers';
2
+ export interface BulmaSpacingProps {
3
+ m?: (typeof validSizes)[number];
4
+ mt?: (typeof validSizes)[number];
5
+ mr?: (typeof validSizes)[number];
6
+ mb?: (typeof validSizes)[number];
7
+ ml?: (typeof validSizes)[number];
8
+ mx?: (typeof validSizes)[number];
9
+ my?: (typeof validSizes)[number];
10
+ p?: (typeof validSizes)[number];
11
+ pt?: (typeof validSizes)[number];
12
+ pr?: (typeof validSizes)[number];
13
+ pb?: (typeof validSizes)[number];
14
+ pl?: (typeof validSizes)[number];
15
+ px?: (typeof validSizes)[number];
16
+ py?: (typeof validSizes)[number];
17
+ }
18
+ export declare const useSpacingClasses: (props: BulmaSpacingProps) => string;
@@ -0,0 +1,19 @@
1
+ import { validTextSizes, validAlignments, validTextTransforms, validTextWeights, validFontFamilies, BulmaViewportProps } from './bulmaClassHelpers';
2
+ export interface BulmaTypographyProps extends BulmaViewportProps {
3
+ textSize?: (typeof validTextSizes)[number];
4
+ textAlign?: (typeof validAlignments)[number];
5
+ textTransform?: (typeof validTextTransforms)[number];
6
+ textWeight?: (typeof validTextWeights)[number];
7
+ fontFamily?: (typeof validFontFamilies)[number];
8
+ textSizeMobile?: (typeof validTextSizes)[number];
9
+ textSizeTablet?: (typeof validTextSizes)[number];
10
+ textSizeDesktop?: (typeof validTextSizes)[number];
11
+ textSizeWidescreen?: (typeof validTextSizes)[number];
12
+ textSizeFullhd?: (typeof validTextSizes)[number];
13
+ textAlignMobile?: (typeof validAlignments)[number];
14
+ textAlignTablet?: (typeof validAlignments)[number];
15
+ textAlignDesktop?: (typeof validAlignments)[number];
16
+ textAlignWidescreen?: (typeof validAlignments)[number];
17
+ textAlignFullhd?: (typeof validAlignments)[number];
18
+ }
19
+ export declare const useTypographyClasses: (props: BulmaTypographyProps) => string;
@@ -0,0 +1,10 @@
1
+ import { validVisibilities, BulmaViewportProps, BulmaDisplayProps } from './bulmaClassHelpers';
2
+ export interface BulmaVisibilityProps extends BulmaViewportProps, BulmaDisplayProps {
3
+ visibility?: (typeof validVisibilities)[number];
4
+ visibilityMobile?: (typeof validVisibilities)[number];
5
+ visibilityTablet?: (typeof validVisibilities)[number];
6
+ visibilityDesktop?: (typeof validVisibilities)[number];
7
+ visibilityWidescreen?: (typeof validVisibilities)[number];
8
+ visibilityFullhd?: (typeof validVisibilities)[number];
9
+ }
10
+ export declare const useVisibilityClasses: (props: BulmaVisibilityProps) => string;