@utilitywarehouse/hearth-react-native 0.36.1 → 0.36.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 (216) hide show
  1. package/SKILL.md +27 -16
  2. package/build/components/Accordion/Accordion.d.ts +4 -0
  3. package/build/components/Accordion/Accordion.js +4 -0
  4. package/build/components/Accordion/Accordion.props.d.ts +2 -0
  5. package/build/components/Alert/Alert.d.ts +4 -0
  6. package/build/components/Alert/Alert.js +4 -0
  7. package/build/components/Avatar/Avatar.d.ts +4 -0
  8. package/build/components/Avatar/Avatar.js +4 -0
  9. package/build/components/Badge/Badge.d.ts +4 -0
  10. package/build/components/Badge/Badge.js +4 -0
  11. package/build/components/Badge/Badge.props.d.ts +19 -0
  12. package/build/components/Banner/Banner.d.ts +5 -0
  13. package/build/components/Banner/Banner.js +5 -0
  14. package/build/components/Banner/BannerIllustration.d.ts +4 -0
  15. package/build/components/Banner/BannerIllustration.js +4 -0
  16. package/build/components/Banner/BannerImage.d.ts +4 -0
  17. package/build/components/Banner/BannerImage.js +4 -0
  18. package/build/components/BodyText/BodyText.d.ts +4 -0
  19. package/build/components/BodyText/BodyText.js +4 -0
  20. package/build/components/BottomSheet/BottomSheet.d.ts +6 -0
  21. package/build/components/BottomSheet/BottomSheet.js +6 -0
  22. package/build/components/BottomSheet/BottomSheet.props.d.ts +2 -0
  23. package/build/components/Box/Box.d.ts +4 -0
  24. package/build/components/Box/Box.js +4 -0
  25. package/build/components/Box/Box.props.d.ts +2 -0
  26. package/build/components/Button/Button.d.ts +4 -0
  27. package/build/components/Button/Button.js +4 -0
  28. package/build/components/Button/Button.props.d.ts +129 -0
  29. package/build/components/Card/Card.d.ts +4 -0
  30. package/build/components/Card/Card.js +4 -0
  31. package/build/components/Card/Card.props.d.ts +19 -1
  32. package/build/components/Card/CardAction/CardAction.d.ts +4 -0
  33. package/build/components/Card/CardAction/CardAction.js +4 -0
  34. package/build/components/Card/CardAction/CardAction.props.d.ts +23 -0
  35. package/build/components/Card/CardPressHandler.d.ts +8 -3
  36. package/build/components/Card/CardPressHandler.js +3 -0
  37. package/build/components/Carousel/Carousel.d.ts +3 -0
  38. package/build/components/Carousel/Carousel.js +3 -0
  39. package/build/components/Carousel/Carousel.props.d.ts +37 -0
  40. package/build/components/Center/Center.d.ts +3 -0
  41. package/build/components/Center/Center.js +3 -0
  42. package/build/components/Checkbox/Checkbox.d.ts +3 -0
  43. package/build/components/Checkbox/Checkbox.js +3 -0
  44. package/build/components/Checkbox/Checkbox.props.d.ts +20 -0
  45. package/build/components/Checkbox/CheckboxGroup.d.ts +3 -0
  46. package/build/components/Checkbox/CheckboxGroup.js +3 -0
  47. package/build/components/Checkbox/CheckboxGroup.props.d.ts +24 -0
  48. package/build/components/Combobox/Combobox.d.ts +3 -0
  49. package/build/components/Combobox/Combobox.js +3 -0
  50. package/build/components/Container/Container.d.ts +3 -0
  51. package/build/components/Container/Container.js +3 -0
  52. package/build/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  53. package/build/components/CurrencyInput/CurrencyInput.js +3 -0
  54. package/build/components/CurrencyInput/CurrencyInput.props.d.ts +25 -0
  55. package/build/components/DateInput/DateInput.d.ts +4 -0
  56. package/build/components/DateInput/DateInput.js +4 -0
  57. package/build/components/DateInput/DateInput.props.d.ts +3 -0
  58. package/build/components/DatePicker/DatePicker.d.ts +14 -0
  59. package/build/components/DatePicker/DatePicker.js +4 -0
  60. package/build/components/DatePicker/DatePicker.props.d.ts +78 -0
  61. package/build/components/DatePickerInput/DatePickerInput.d.ts +4 -0
  62. package/build/components/DatePickerInput/DatePickerInput.js +4 -0
  63. package/build/components/DatePickerInput/DatePickerInput.props.d.ts +21 -0
  64. package/build/components/DescriptionList/DescriptionList.d.ts +4 -0
  65. package/build/components/DescriptionList/DescriptionList.js +4 -0
  66. package/build/components/DescriptionList/DescriptionList.props.d.ts +4 -0
  67. package/build/components/DetailText/DetailText.d.ts +4 -0
  68. package/build/components/DetailText/DetailText.js +4 -0
  69. package/build/components/Divider/Divider.d.ts +4 -0
  70. package/build/components/Divider/Divider.js +4 -0
  71. package/build/components/Divider/Divider.props.d.ts +10 -0
  72. package/build/components/Expandable/Expandable.d.ts +5 -0
  73. package/build/components/Expandable/Expandable.js +5 -0
  74. package/build/components/ExpandableCard/ExpandableCard.d.ts +4 -0
  75. package/build/components/ExpandableCard/ExpandableCard.js +4 -0
  76. package/build/components/Flex/Flex.d.ts +4 -0
  77. package/build/components/Flex/Flex.js +4 -0
  78. package/build/components/Flex/Flex.props.d.ts +20 -0
  79. package/build/components/FormField/FormField.d.ts +5 -0
  80. package/build/components/FormField/FormField.js +5 -0
  81. package/build/components/FormField/FormField.props.d.ts +24 -0
  82. package/build/components/Grid/Grid.d.ts +4 -0
  83. package/build/components/Grid/Grid.js +4 -0
  84. package/build/components/HTMLElements/ListItem.d.ts +5 -0
  85. package/build/components/HTMLElements/OrderedList.d.ts +10 -0
  86. package/build/components/HTMLElements/OrderedList.js +4 -0
  87. package/build/components/HTMLElements/UnorderedList.d.ts +10 -0
  88. package/build/components/HTMLElements/UnorderedList.js +4 -0
  89. package/build/components/Heading/Heading.d.ts +4 -0
  90. package/build/components/Heading/Heading.js +4 -0
  91. package/build/components/HighlightBanner/HighlightBanner.d.ts +5 -0
  92. package/build/components/HighlightBanner/HighlightBanner.js +5 -0
  93. package/build/components/HighlightBanner/HighlightBanner.props.d.ts +14 -0
  94. package/build/components/HighlightBanner/HighlightBannerImage.d.ts +4 -0
  95. package/build/components/HighlightBanner/HighlightBannerImage.js +4 -0
  96. package/build/components/Icon/Icon.d.ts +4 -0
  97. package/build/components/Icon/Icon.js +4 -0
  98. package/build/components/Icon/Icon.props.d.ts +8 -0
  99. package/build/components/IconButton/IconButton.d.ts +5 -0
  100. package/build/components/IconButton/IconButton.js +5 -0
  101. package/build/components/IconButton/IconButton.props.d.ts +9 -0
  102. package/build/components/IconContainer/IconContainer.d.ts +4 -0
  103. package/build/components/IconContainer/IconContainer.js +4 -0
  104. package/build/components/IndicatorIconButton/IndicatorIconButton.d.ts +6 -0
  105. package/build/components/IndicatorIconButton/IndicatorIconButton.js +6 -0
  106. package/build/components/InlineLink/InlineLink.d.ts +1 -0
  107. package/build/components/InlineLink/InlineLink.js +1 -0
  108. package/build/components/InlineLink/InlineLink.props.d.ts +4 -0
  109. package/build/components/Input/Input.d.ts +5 -0
  110. package/build/components/Input/Input.js +5 -0
  111. package/build/components/Input/Input.props.d.ts +54 -0
  112. package/build/components/Link/Link.d.ts +5 -0
  113. package/build/components/Link/Link.js +5 -0
  114. package/build/components/Link/Link.props.d.ts +15 -0
  115. package/build/components/List/List.d.ts +1 -0
  116. package/build/components/List/List.js +1 -0
  117. package/build/components/List/List.props.d.ts +8 -0
  118. package/build/components/Menu/Menu.d.ts +1 -0
  119. package/build/components/Menu/Menu.js +1 -0
  120. package/build/components/Modal/Modal.d.ts +5 -0
  121. package/build/components/Modal/Modal.js +5 -0
  122. package/build/components/Modal/Modal.props.d.ts +6 -0
  123. package/build/components/Modal/Modal.shared.types.d.ts +32 -0
  124. package/build/components/Modal/ModalImage.d.ts +1 -0
  125. package/build/components/Modal/ModalImage.js +1 -0
  126. package/build/components/NavModal/NavModal.d.ts +8 -0
  127. package/build/components/NavModal/NavModal.js +8 -0
  128. package/build/components/NavModal/NavModal.props.d.ts +10 -0
  129. package/build/components/Pagination/Pagination.d.ts +5 -0
  130. package/build/components/Pagination/Pagination.js +5 -0
  131. package/build/components/PillGroup/Pill.d.ts +1 -0
  132. package/build/components/PillGroup/Pill.js +1 -0
  133. package/build/components/PillGroup/PillGroup.d.ts +5 -0
  134. package/build/components/PillGroup/PillGroup.js +5 -0
  135. package/build/components/ProgressBar/ProgressBar.d.ts +5 -0
  136. package/build/components/ProgressBar/ProgressBar.js +5 -0
  137. package/build/components/ProgressBar/ProgressBar.props.d.ts +4 -0
  138. package/build/components/ProgressStepper/ProgressStep.d.ts +13 -0
  139. package/build/components/ProgressStepper/ProgressStep.js +5 -0
  140. package/build/components/ProgressStepper/ProgressStepper.d.ts +5 -0
  141. package/build/components/ProgressStepper/ProgressStepper.js +5 -0
  142. package/build/components/Radio/Radio.d.ts +5 -0
  143. package/build/components/Radio/Radio.js +5 -0
  144. package/build/components/Radio/Radio.props.d.ts +17 -0
  145. package/build/components/Radio/RadioGroup.d.ts +5 -0
  146. package/build/components/Radio/RadioGroup.js +5 -0
  147. package/build/components/Radio/RadioGroup.props.d.ts +25 -0
  148. package/build/components/RadioCard/RadioCard.d.ts +10 -0
  149. package/build/components/RadioCard/RadioCard.js +10 -0
  150. package/build/components/RadioCard/RadioCard.props.d.ts +14 -0
  151. package/build/components/RadioCard/RadioCardGroup.d.ts +4 -0
  152. package/build/components/RadioCard/RadioCardGroup.js +4 -0
  153. package/build/components/RadioCard/RadioCardGroup.props.d.ts +17 -0
  154. package/build/components/Rating/Rating.d.ts +5 -0
  155. package/build/components/Rating/Rating.js +5 -0
  156. package/build/components/Roundel/Roundel.d.ts +1 -0
  157. package/build/components/Roundel/Roundel.js +1 -0
  158. package/build/components/SectionHeader/SectionHeader.d.ts +1 -0
  159. package/build/components/SectionHeader/SectionHeader.js +1 -0
  160. package/build/components/SectionHeader/SectionHeader.props.d.ts +7 -0
  161. package/build/components/SegmentedControl/SegmentedControl.d.ts +5 -0
  162. package/build/components/SegmentedControl/SegmentedControl.js +5 -0
  163. package/build/components/Select/Select.d.ts +5 -0
  164. package/build/components/Select/Select.js +5 -0
  165. package/build/components/Skeleton/Skeleton.d.ts +1 -0
  166. package/build/components/Skeleton/Skeleton.js +1 -0
  167. package/build/components/Skeleton/Skeleton.props.d.ts +4 -0
  168. package/build/components/Spinner/Spinner.d.ts +4 -0
  169. package/build/components/Spinner/Spinner.js +8 -0
  170. package/build/components/Spinner/Spinner.props.d.ts +5 -0
  171. package/build/components/Spinner/Spinner.web.d.ts +4 -0
  172. package/build/components/Spinner/Spinner.web.js +8 -0
  173. package/build/components/StepperInput/StepperInput.d.ts +4 -0
  174. package/build/components/StepperInput/StepperInput.js +4 -0
  175. package/build/components/StepperInput/StepperInput.props.d.ts +44 -0
  176. package/build/components/Switch/Switch.d.ts +4 -0
  177. package/build/components/Switch/Switch.js +4 -0
  178. package/build/components/Switch/Switch.props.d.ts +5 -0
  179. package/build/components/Table/Table.d.ts +4 -0
  180. package/build/components/Table/Table.js +4 -0
  181. package/build/components/Table/Table.props.d.ts +6 -0
  182. package/build/components/Table/TableHeader.d.ts +3 -0
  183. package/build/components/Table/TableHeader.js +3 -0
  184. package/build/components/Table/TableHeaderCell.d.ts +6 -0
  185. package/build/components/Table/TableHeaderCell.js +3 -0
  186. package/build/components/Tabs/Tabs.d.ts +5 -0
  187. package/build/components/Tabs/Tabs.js +5 -0
  188. package/build/components/Textarea/Textarea.d.ts +6 -0
  189. package/build/components/Textarea/Textarea.js +6 -0
  190. package/build/components/Textarea/Textarea.props.d.ts +14 -0
  191. package/build/components/TimePicker/TimePicker.d.ts +5 -0
  192. package/build/components/TimePicker/TimePicker.js +5 -0
  193. package/build/components/TimePickerInput/TimePickerInput.d.ts +5 -0
  194. package/build/components/TimePickerInput/TimePickerInput.js +5 -0
  195. package/build/components/TimePickerInput/TimePickerInput.props.d.ts +28 -0
  196. package/build/components/Timeline/Timeline.d.ts +5 -0
  197. package/build/components/Timeline/Timeline.js +5 -0
  198. package/build/components/Timeline/TimelineItem.d.ts +4 -0
  199. package/build/components/Timeline/TimelineItem.js +4 -0
  200. package/build/components/Toast/Toast.context.d.ts +4 -0
  201. package/build/components/Toast/Toast.context.js +4 -0
  202. package/build/components/Toast/Toast.props.d.ts +7 -0
  203. package/build/components/ToggleButton/ToggleButton.d.ts +4 -0
  204. package/build/components/ToggleButton/ToggleButton.js +4 -0
  205. package/build/components/ToggleButton/ToggleButton.props.d.ts +6 -0
  206. package/build/components/ToggleButtonCard/ToggleButtonCard.d.ts +8 -0
  207. package/build/components/ToggleButtonCard/ToggleButtonCard.js +8 -0
  208. package/build/components/ToggleButtonCard/ToggleButtonCard.props.d.ts +9 -0
  209. package/build/components/ToggleButtonCard/ToggleButtonCardGroup.props.d.ts +15 -0
  210. package/build/components/UnstyledIconButton/UnstyledIconButton.d.ts +5 -0
  211. package/build/components/UnstyledIconButton/UnstyledIconButton.js +5 -0
  212. package/build/components/UnstyledIconButton/UnstyledIconButton.props.d.ts +17 -0
  213. package/build/components/VerificationInput/VerificationInput.d.ts +4 -0
  214. package/build/components/VerificationInput/VerificationInput.js +4 -0
  215. package/package.json +8 -5
  216. package/public/llms/docs/introduction.md +1 -1
@@ -77,45 +77,123 @@ export type MultiChange = (params: {
77
77
  }) => void;
78
78
  export type Styles = Partial<ViewStyle | TextStyle | ImageStyle>;
79
79
  export interface DatePickerBaseProps {
80
+ /**
81
+ * Controls whether the picker returns a single date, a date range, or multiple dates.
82
+ * @default 'single'
83
+ */
80
84
  mode?: CalendarMode;
85
+ /** IANA time zone identifier used to normalise and compare dates. */
81
86
  timeZone?: string;
87
+ /** The selected date, used in single mode. */
82
88
  date?: DateType;
89
+ /** Start of the selected range, used in range mode. */
83
90
  startDate?: DateType;
91
+ /** End of the selected range, used in range mode. */
84
92
  endDate?: DateType;
93
+ /** The selected dates, used in multiple mode. */
85
94
  dates?: DateType[];
95
+ /** Minimum length of a selected range, in days, when using range mode. */
86
96
  min?: number;
97
+ /** Maximum range length, in days, or the maximum number of selected dates in multiple mode. */
87
98
  max?: number;
99
+ /** Called after a selection changes. */
88
100
  onChange?: SingleChange | RangeChange | MultiChange;
101
+ /** Earliest year available in the year picker. */
89
102
  startYear?: number;
103
+ /** Latest year available in the year picker. */
90
104
  endYear?: number;
105
+ /** Earliest selectable date; dates before this are disabled. */
91
106
  minDate?: DateType;
107
+ /** Latest selectable date; dates after this are disabled. */
92
108
  maxDate?: DateType;
109
+ /** List or predicate marking which dates can be selected. */
93
110
  enabledDates?: DateType[] | ((date: DateType) => boolean);
111
+ /** List or predicate marking which dates cannot be selected. */
94
112
  disabledDates?: DateType[] | ((date: DateType) => boolean);
113
+ /**
114
+ * Index of the first weekday, where 0 is Sunday and 6 is Saturday.
115
+ * @default 1
116
+ */
95
117
  firstDayOfWeek?: number;
118
+ /**
119
+ * Whether to show the leading and trailing days from adjacent months.
120
+ * @default true
121
+ */
96
122
  showOutsideDays?: boolean;
123
+ /**
124
+ * Whether to show a time picker alongside the calendar, in single mode.
125
+ * @default false
126
+ */
97
127
  timePicker?: boolean;
128
+ /** Whether the time picker uses a 12-hour format with AM/PM instead of 24-hour. */
98
129
  use12Hours?: boolean;
130
+ /**
131
+ * The calendar view shown when the picker first opens.
132
+ * @default 'day'
133
+ */
99
134
  initialView?: CalendarViews;
135
+ /**
136
+ * Height of the calendar container.
137
+ * @default CONTAINER_HEIGHT
138
+ */
100
139
  containerHeight?: number;
140
+ /**
141
+ * Height of the weekday header row.
142
+ * @default WEEKDAYS_HEIGHT
143
+ */
101
144
  weekdaysHeight?: number;
102
145
  style?: ViewStyle;
146
+ /**
147
+ * Placement of the month navigation controls.
148
+ * @default 'right'
149
+ */
103
150
  navigationPosition?: NavigationPosition;
151
+ /**
152
+ * Format used for the weekday labels.
153
+ * @default 'min'
154
+ */
104
155
  weekdaysFormat?: WeekdayFormat;
156
+ /**
157
+ * Format used for month names.
158
+ * @default 'short'
159
+ */
105
160
  monthsFormat?: MonthFormat;
161
+ /**
162
+ * Format used for the heading above the calendar grid.
163
+ * @default 'full'
164
+ */
106
165
  monthCaptionFormat?: MonthFormat;
166
+ /** Whether to allow selecting multiple separate ranges before confirming. */
107
167
  multiRangeMode?: boolean;
168
+ /** Whether to hide the calendar header controls. */
108
169
  hideHeader?: boolean;
170
+ /** Whether to hide the footer actions. */
109
171
  hideFooter?: boolean;
172
+ /** Whether to hide the weekday labels row. */
110
173
  hideWeekdays?: boolean;
174
+ /** Whether to prevent switching to the month selection view. */
111
175
  disableMonthPicker?: boolean;
176
+ /** Whether to prevent switching to the year selection view. */
112
177
  disableYearPicker?: boolean;
113
178
  /** use to handle month and year selectors */
114
179
  month?: number;
180
+ /** Forces the calendar to display a specific year. */
115
181
  year?: number;
182
+ /**
183
+ * Called when the displayed month changes.
184
+ * @default () => {}
185
+ */
116
186
  onMonthChange?: (month: number) => void;
187
+ /**
188
+ * Called when the displayed year changes.
189
+ * @default () => {}
190
+ */
117
191
  onYearChange?: (year: number) => void;
118
192
  ref?: Ref<BottomSheetModalMethods<any>>;
193
+ /**
194
+ * Called when the cancel action is triggered from the footer.
195
+ * @default () => {}
196
+ */
119
197
  onCancel?: () => void;
120
198
  }
121
199
  export type Numerals = 'latn';
@@ -1,4 +1,8 @@
1
1
  import type DatePickerInputProps from './DatePickerInput.props';
2
+ /**
3
+ * Use DatePickerInput for a text field that accepts a typed date or one picked from an
4
+ * attached calendar, formatting and parsing the value with Day.js.
5
+ */
2
6
  declare const DatePickerInput: {
3
7
  ({ validationStatus, disabled, focused, readonly, placeholder, inBottomSheet, format, openButtonLabel, autoCloseOnSelect, label, labelVariant, helperText, helperIcon, validText, invalidText, required, onChange, onChangeText, onBlur, onFocus, value, datePickerProps, onClear, ...rest }: DatePickerInputProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -12,6 +12,10 @@ import { UnstyledIconButton } from '../UnstyledIconButton';
12
12
  import { DEFAULT_FORMAT, maskDefaultFormat } from './DatePickerInput.utils';
13
13
  import DatePickerInputDoneButton from './DatePickerInputDoneButton';
14
14
  dayjs.extend(customParseFormat);
15
+ /**
16
+ * Use DatePickerInput for a text field that accepts a typed date or one picked from an
17
+ * attached calendar, formatting and parsing the value with Day.js.
18
+ */
15
19
  const DatePickerInput = ({ validationStatus = 'initial', disabled, focused, readonly, placeholder, inBottomSheet = false, format = DEFAULT_FORMAT, openButtonLabel = 'Open date picker', autoCloseOnSelect = true, label, labelVariant, helperText, helperIcon, validText, invalidText, required = true, onChange, onChangeText, onBlur, onFocus, value, datePickerProps, onClear, ...rest }) => {
16
20
  const formFieldContext = useFormFieldContext();
17
21
  const isDisabled = formFieldContext?.disabled ?? disabled;
@@ -2,18 +2,39 @@ import type { TextInputProps, ViewProps } from 'react-native';
2
2
  import type { DatePickerSingleProps } from '../DatePicker/DatePicker';
3
3
  import type { DateType } from '../DatePicker/DatePicker.props';
4
4
  export interface DatePickerInputBaseProps {
5
+ /** Disables both typing and the calendar trigger button. */
5
6
  disabled?: boolean;
7
+ /**
8
+ * Renders the corresponding validation style.
9
+ * @default 'initial'
10
+ */
6
11
  validationStatus?: 'initial' | 'valid' | 'invalid';
12
+ /** Prevents manual typing while keeping the calendar picker available. */
7
13
  readonly?: boolean;
14
+ /** Forces the focused visual state. */
8
15
  focused?: boolean;
16
+ /** The label for the input. */
9
17
  label?: string;
18
+ /** The variant of the label text. */
10
19
  labelVariant?: 'heading' | 'body';
20
+ /** Helper text to display below the input. */
11
21
  helperText?: string;
22
+ /** Icon to display alongside the helper text. */
12
23
  helperIcon?: React.ComponentType;
24
+ /** Text to display below the input when `validationStatus` is `'valid'`. */
13
25
  validText?: string;
26
+ /** Text to display below the input when `validationStatus` is `'invalid'`. */
14
27
  invalidText?: string;
15
28
  placeholder?: string;
29
+ /**
30
+ * Renders using `BottomSheetTextInput` for use inside a bottom sheet.
31
+ * @default false
32
+ */
16
33
  inBottomSheet?: boolean;
34
+ /**
35
+ * Whether the input is required.
36
+ * @default true
37
+ */
17
38
  required?: boolean;
18
39
  /**
19
40
  * Controls how the selected date is formatted when displayed inside the input.
@@ -1,4 +1,8 @@
1
1
  import type DescriptionListProps from './DescriptionList.props';
2
+ /**
3
+ * Use DescriptionList to display a list of related heading/description pairs, laid out as
4
+ * stacked rows or two columns, with an optional heading and helper text above the list.
5
+ */
2
6
  declare const DescriptionList: {
3
7
  ({ direction, itemHeadingWidth, heading, helperText, headerTrailingContent, children, style, invalidText, ...props }: DescriptionListProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -4,6 +4,10 @@ import { View } from 'react-native';
4
4
  import { StyleSheet } from 'react-native-unistyles';
5
5
  import { SectionHeader } from '../SectionHeader';
6
6
  import { DescriptionListContext } from './DescriptionList.context';
7
+ /**
8
+ * Use DescriptionList to display a list of related heading/description pairs, laid out as
9
+ * stacked rows or two columns, with an optional heading and helper text above the list.
10
+ */
7
11
  const DescriptionList = ({ direction = 'column', itemHeadingWidth, heading, helperText, headerTrailingContent, children, style, invalidText, ...props }) => {
8
12
  styles.useVariants({ direction });
9
13
  const value = useMemo(() => ({ direction, itemHeadingWidth }), [direction, itemHeadingWidth]);
@@ -4,9 +4,13 @@ export interface DescriptionListProps extends ViewProps {
4
4
  direction?: 'row' | 'column';
5
5
  /** Override heading/term column width when layout is row (defaults to token) */
6
6
  itemHeadingWidth?: number;
7
+ /** Optional overall heading, rendered as a SectionHeader above the list. */
7
8
  heading?: string;
9
+ /** Supporting text displayed below the heading. */
8
10
  helperText?: string;
11
+ /** Custom trailing content for the heading (e.g. a Link). */
9
12
  headerTrailingContent?: React.ReactNode;
13
+ /** Text to show below the heading when the section is invalid. */
10
14
  invalidText?: string;
11
15
  }
12
16
  export default DescriptionListProps;
@@ -1,4 +1,8 @@
1
1
  import type DetailTextProps from './DetailText.props';
2
+ /**
3
+ * Renders detail copy, smaller secondary text used for captions, metadata, or supporting
4
+ * information alongside body content, with size and colour variants.
5
+ */
2
6
  declare const DetailText: {
3
7
  ({ children, color, size, truncated, underline, strikeThrough, italic, textTransform, textAlign, textAlignVertical, textDecorationColor, textDecorationLine, textDecorationStyle, userSelect, inverted, ...props }: DetailTextProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -3,6 +3,10 @@ import { Text } from 'react-native';
3
3
  import { StyleSheet } from 'react-native-unistyles';
4
4
  import { useStyleProps } from '../../hooks';
5
5
  import { getFlattenedColorValue, resolveThemeValueWithFallback } from '../../utils';
6
+ /**
7
+ * Renders detail copy, smaller secondary text used for captions, metadata, or supporting
8
+ * information alongside body content, with size and colour variants.
9
+ */
6
10
  const DetailText = ({ children, color, size = 'md', truncated, underline, strikeThrough, italic, textTransform, textAlign, textAlignVertical, textDecorationColor, textDecorationLine, textDecorationStyle, userSelect, inverted, ...props }) => {
7
11
  const { computedStyles: utilityStyles, remainingProps } = useStyleProps(props);
8
12
  styles.useVariants({
@@ -1,4 +1,8 @@
1
1
  import type DividerProps from './Divider.props';
2
+ /**
3
+ * Use Divider to create a visual separation between sections or elements, as a horizontal or
4
+ * vertical line.
5
+ */
2
6
  declare const Divider: {
3
7
  ({ orientation, color, spacing, space, height, width, flexItem, ...props }: DividerProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -4,6 +4,10 @@ import { View } from 'react-native';
4
4
  import { StyleSheet } from 'react-native-unistyles';
5
5
  import { useTheme } from '../../hooks';
6
6
  import { getFlattenedColorValue } from '../../utils';
7
+ /**
8
+ * Use Divider to create a visual separation between sections or elements, as a horizontal or
9
+ * vertical line.
10
+ */
7
11
  const Divider = ({ orientation = 'horizontal', color, spacing, space, height, width, flexItem, ...props }) => {
8
12
  styles.useVariants({ orientation, spacing: space ?? spacing, flexItem });
9
13
  const { color: themeColor, colorMode } = useTheme();
@@ -1,17 +1,27 @@
1
1
  import type { DimensionValue, ViewProps } from 'react-native';
2
2
  import type { ColorValue, SpacingValues } from '../../types';
3
3
  interface DividerProps extends Omit<ViewProps, 'children'> {
4
+ /** The color of the divider line. */
4
5
  color?: ColorValue;
6
+ /** The background color of the divider line. */
5
7
  backgroundColor?: ColorValue;
8
+ /** The space around the divider. */
6
9
  spacing?: SpacingValues;
7
10
  /**
8
11
  * The space between child elements (gap).
9
12
  * @deprecated Use `spacing` instead. The `space` prop will be removed in a future release.
10
13
  */
11
14
  space?: SpacingValues;
15
+ /**
16
+ * The orientation of the divider.
17
+ * @default 'horizontal'
18
+ */
12
19
  orientation?: 'horizontal' | 'vertical';
20
+ /** The height of the divider. */
13
21
  height?: DimensionValue;
22
+ /** The width of the divider. */
14
23
  width?: DimensionValue;
24
+ /** Gives a vertical divider the correct height when used inside a flex container. */
15
25
  flexItem?: boolean;
16
26
  }
17
27
  export default DividerProps;
@@ -1,4 +1,9 @@
1
1
  import { ExpandableProps } from './Expandable.props';
2
+ /**
3
+ * Use Expandable to show or hide content with a smooth height and opacity animation. It's a
4
+ * primitive building block for accordions, collapsible sections, and other expand/collapse
5
+ * interactions.
6
+ */
2
7
  declare const Expandable: {
3
8
  ({ expanded, onExpandedChange, children, duration, style, accessibilityLabel, testID, animateOpacity, ...props }: ExpandableProps): import("react").JSX.Element;
4
9
  displayName: string;
@@ -3,6 +3,11 @@ import { useEffect } from 'react';
3
3
  import { View } from 'react-native';
4
4
  import Animated, { useAnimatedStyle, useDerivedValue, useSharedValue, withTiming, } from 'react-native-reanimated';
5
5
  import { StyleSheet } from 'react-native-unistyles';
6
+ /**
7
+ * Use Expandable to show or hide content with a smooth height and opacity animation. It's a
8
+ * primitive building block for accordions, collapsible sections, and other expand/collapse
9
+ * interactions.
10
+ */
6
11
  const Expandable = ({ expanded = false, onExpandedChange, children, duration = 200, style, accessibilityLabel, testID, animateOpacity = true, ...props }) => {
7
12
  const height = useSharedValue(0);
8
13
  const open = useSharedValue(expanded);
@@ -1,4 +1,8 @@
1
1
  import type ExpandableCardProps from './ExpandableCard.props';
2
+ /**
3
+ * Use ExpandableCard for a Card that reveals additional content when its trigger is pressed,
4
+ * with a built-in heading, helper text, leading/trailing content, and expansion animation.
5
+ */
2
6
  declare const ExpandableCard: {
3
7
  ({ expanded: controlledExpanded, onExpandedChange, heading, helperText, leadingIcon, leadingContent, badge, badgePosition, numericValue, triggerContent, expandedContent, duration, animateOpacity, disabled, testID, children, ...cardProps }: ExpandableCardProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -3,6 +3,10 @@ import { useState } from 'react';
3
3
  import { Card } from '../Card';
4
4
  import ExpandableCardExpandedContent from './ExpandableCardExpandedContent';
5
5
  import ExpandableCardTrigger from './ExpandableCardTrigger';
6
+ /**
7
+ * Use ExpandableCard for a Card that reveals additional content when its trigger is pressed,
8
+ * with a built-in heading, helper text, leading/trailing content, and expansion animation.
9
+ */
6
10
  const ExpandableCard = ({ expanded: controlledExpanded, onExpandedChange, heading, helperText, leadingIcon, leadingContent, badge, badgePosition = 'bottom', numericValue, triggerContent, expandedContent, duration = 200, animateOpacity = true, disabled = false, testID = 'expandable-card', children, ...cardProps }) => {
7
11
  const [internalExpanded, setInternalExpanded] = useState(false);
8
12
  // Use controlled or uncontrolled state
@@ -1,4 +1,8 @@
1
1
  import FlexProps from './Flex.props';
2
+ /**
3
+ * Use Flex to lay out children in a row or column with control over alignment, wrapping, and
4
+ * spacing between them.
5
+ */
2
6
  declare const Flex: {
3
7
  ({ style, children, direction, align, justify, wrap, spacing, space, ...rest }: FlexProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -2,6 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { View } from 'react-native';
3
3
  import { StyleSheet } from 'react-native-unistyles';
4
4
  import { useStyleProps } from '../../hooks';
5
+ /**
6
+ * Use Flex to lay out children in a row or column with control over alignment, wrapping, and
7
+ * spacing between them.
8
+ */
5
9
  const Flex = ({ style, children, direction = 'column', align = 'flex-start', justify = 'flex-start', wrap = 'nowrap', spacing = 'md', space, ...rest }) => {
6
10
  const propStyle = {
7
11
  flexDirection: direction,
@@ -1,10 +1,30 @@
1
1
  import type { FlexAlignType, ViewProps, ViewStyle } from 'react-native';
2
2
  import { DisplayProps, FlexLayoutProps, GapProps, MarginProps, PaddingProps, SizeProps, SpacingValues } from '../../types';
3
3
  interface FlexProps extends ViewProps, MarginProps, PaddingProps, FlexLayoutProps, GapProps, Pick<SizeProps, 'width'>, Omit<DisplayProps, 'direction'> {
4
+ /**
5
+ * The direction of the flex container.
6
+ * @default 'column'
7
+ */
4
8
  direction?: ViewStyle['flexDirection'];
9
+ /**
10
+ * The align items of the flex container.
11
+ * @default 'flex-start'
12
+ */
5
13
  align?: FlexAlignType;
14
+ /**
15
+ * The justify content of the flex container.
16
+ * @default 'flex-start'
17
+ */
6
18
  justify?: ViewStyle['justifyContent'];
19
+ /**
20
+ * The wrap of the flex container.
21
+ * @default 'nowrap'
22
+ */
7
23
  wrap?: ViewStyle['flexWrap'];
24
+ /**
25
+ * The space between the content.
26
+ * @default 'md'
27
+ */
8
28
  spacing?: SpacingValues;
9
29
  /**
10
30
  * The space between child elements (gap).
@@ -22,6 +22,11 @@ export declare const FormFieldInvalidText: {
22
22
  displayName: string;
23
23
  };
24
24
  export declare const FormFieldTextContent: typeof View;
25
+ /**
26
+ * Use FormField to wrap a form control with a consistent label, helper text, and
27
+ * valid/invalid messaging, and to share validation and required/disabled state with its
28
+ * children.
29
+ */
25
30
  declare const FormField: {
26
31
  ({ children, disabled, validationStatus, readonly, label, helperText, helperIcon, validText, invalidText, required, labelVariant, accessibilityHandledByChildren, ...props }: FormFieldProps): import("react").JSX.Element;
27
32
  displayName: string;
@@ -30,6 +30,11 @@ export const FormFieldHelperIcon = HelperIcon;
30
30
  export const FormFieldValidText = HelperText;
31
31
  export const FormFieldInvalidText = HelperText;
32
32
  export const FormFieldTextContent = View;
33
+ /**
34
+ * Use FormField to wrap a form control with a consistent label, helper text, and
35
+ * valid/invalid messaging, and to share validation and required/disabled state with its
36
+ * children.
37
+ */
33
38
  const FormField = ({ children, disabled, validationStatus = 'initial', readonly, label, helperText, helperIcon, validText, invalidText, required = true, labelVariant = 'body', accessibilityHandledByChildren = false, ...props }) => {
34
39
  const [shouldHandleAccessibility, setShouldHandleAccessibility] = useState(accessibilityHandledByChildren);
35
40
  const value = useMemo(() => ({
@@ -1,16 +1,40 @@
1
1
  import type { ComponentType } from 'react';
2
2
  import type { ViewProps } from 'react-native';
3
3
  export interface FormFieldBaseProps {
4
+ /**
5
+ * The validation status of the field.
6
+ * @default 'initial'
7
+ */
4
8
  validationStatus?: 'valid' | 'invalid' | 'initial';
9
+ /** Whether the field is disabled. */
5
10
  disabled?: boolean;
11
+ /** Whether the field is readonly. */
6
12
  readonly?: boolean;
13
+ /** The label for the field. */
7
14
  label?: string;
15
+ /**
16
+ * The variant of the label text.
17
+ * @default 'body'
18
+ */
8
19
  labelVariant?: 'heading' | 'body';
20
+ /** The helper text for the field. */
9
21
  helperText?: string;
22
+ /** The icon for the helper text. */
10
23
  helperIcon?: ComponentType;
24
+ /** The valid text for the field. */
11
25
  validText?: string;
26
+ /** The invalid text for the field. */
12
27
  invalidText?: string;
28
+ /**
29
+ * Whether the field is required.
30
+ * @default true
31
+ */
13
32
  required?: boolean;
33
+ /**
34
+ * Whether accessibility is handled by child components, hiding accessibility for the
35
+ * FormField itself.
36
+ * @default false
37
+ */
14
38
  accessibilityHandledByChildren?: boolean;
15
39
  }
16
40
  interface FormFieldProps extends FormFieldBaseProps, ViewProps {
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
2
  import type { GridProps } from './Grid.props';
3
+ /**
4
+ * Use Grid to arrange children into rows of a fixed or breakpoint-responsive number of
5
+ * columns, with consistent spacing between them.
6
+ */
3
7
  declare const Grid: {
4
8
  ({ columns, containerStyle, itemStyle, rowStyle, spacing, space, children, ...props }: GridProps): React.JSX.Element;
5
9
  displayName: string;
@@ -3,6 +3,10 @@ import React, { useMemo } from 'react';
3
3
  import { useWindowDimensions, View } from 'react-native';
4
4
  import { StyleSheet, UnistylesRuntime } from 'react-native-unistyles';
5
5
  import { useStyleProps, useTheme } from '../../hooks';
6
+ /**
7
+ * Use Grid to arrange children into rows of a fixed or breakpoint-responsive number of
8
+ * columns, with consistent spacing between them.
9
+ */
6
10
  const Grid = ({ columns = 2, containerStyle, itemStyle, rowStyle, spacing, space, children, ...props }) => {
7
11
  const { breakpoints } = useTheme();
8
12
  const { computedStyles, remainingProps } = useStyleProps(props);
@@ -1,10 +1,15 @@
1
1
  import { ViewProps } from 'react-native';
2
2
  import { ColorValue } from '../../types';
3
3
  export interface ListStyleProps {
4
+ /** Custom element (e.g. Image) to use as the bullet/marker. */
4
5
  listStyleImage?: React.ReactElement;
6
+ /** Custom icon component to use as the bullet/marker. */
5
7
  listStyleIcon?: React.ComponentType<any>;
8
+ /** Width of the custom bullet/marker. */
6
9
  listStyleWidth?: number;
10
+ /** Height of the custom bullet/marker. */
7
11
  listStyleHeight?: number;
12
+ /** Colour of the bullet/marker/number. */
8
13
  listStyleColour?: ColorValue;
9
14
  }
10
15
  export interface ListItemProps extends ViewProps, ListStyleProps {
@@ -3,10 +3,20 @@ import { ViewProps, ViewStyle } from 'react-native';
3
3
  import { SpaceValue } from '../../types';
4
4
  import { ListStyleProps } from './ListItem';
5
5
  export interface OrderedListProps extends ViewProps, ListStyleProps {
6
+ /** The `LI` components to be rendered within the list. */
6
7
  children: ViewProps['children'];
8
+ /**
9
+ * The gap between the list items.
10
+ * @default '100'
11
+ */
7
12
  gap?: SpaceValue;
13
+ /** Custom style for the numbers. */
8
14
  bulletStyle?: ViewStyle;
9
15
  }
16
+ /**
17
+ * Use OrderedList (exported as `OL`) to render a numbered list of `LI` items, with support for
18
+ * custom bullet icons, images, and colours.
19
+ */
10
20
  declare const OrderedList: {
11
21
  ({ children, gap, style, listStyleImage, listStyleIcon, listStyleWidth, listStyleHeight, listStyleColour, ...rest }: OrderedListProps): React.JSX.Element;
12
22
  displayName: string;
@@ -4,6 +4,10 @@ import { StyleSheet, View } from 'react-native';
4
4
  import { useStyleProps, useTheme } from '../../hooks';
5
5
  import { getFlattenedColorValue } from '../../utils';
6
6
  import { BodyText } from '../BodyText';
7
+ /**
8
+ * Use OrderedList (exported as `OL`) to render a numbered list of `LI` items, with support for
9
+ * custom bullet icons, images, and colours.
10
+ */
7
11
  const OrderedList = ({ children, gap = '100', style, listStyleImage, listStyleIcon, listStyleWidth, listStyleHeight, listStyleColour, ...rest }) => {
8
12
  const { computedStyles } = useStyleProps({ gap });
9
13
  const theme = useTheme();
@@ -3,10 +3,20 @@ import { ViewProps, ViewStyle } from 'react-native';
3
3
  import { SpaceValue } from '../../types';
4
4
  import { ListStyleProps } from './ListItem';
5
5
  export interface UnorderedListProps extends ViewProps, ListStyleProps {
6
+ /** The `LI` components to be rendered within the list. */
6
7
  children: ViewProps['children'];
8
+ /**
9
+ * The gap between the list items.
10
+ * @default '100'
11
+ */
7
12
  gap?: SpaceValue;
13
+ /** Custom style for the bullet points. */
8
14
  bulletStyle?: ViewStyle;
9
15
  }
16
+ /**
17
+ * Use UnorderedList (exported as `UL`) to render a bulleted list of `LI` items, with support
18
+ * for custom bullet icons, images, and colours.
19
+ */
10
20
  declare const UnorderedList: {
11
21
  ({ children, gap, style, listStyleImage, listStyleIcon, listStyleWidth, listStyleHeight, listStyleColour, ...rest }: UnorderedListProps): React.JSX.Element;
12
22
  displayName: string;
@@ -4,6 +4,10 @@ import { StyleSheet, View } from 'react-native';
4
4
  import { useStyleProps, useTheme } from '../../hooks';
5
5
  import { getFlattenedColorValue } from '../../utils';
6
6
  import { BodyText } from '../BodyText';
7
+ /**
8
+ * Use UnorderedList (exported as `UL`) to render a bulleted list of `LI` items, with support
9
+ * for custom bullet icons, images, and colours.
10
+ */
7
11
  const UnorderedList = ({ children, gap = '100', style, listStyleImage, listStyleIcon, listStyleWidth, listStyleHeight, listStyleColour, ...rest }) => {
8
12
  const { computedStyles } = useStyleProps({ gap });
9
13
  const theme = useTheme();
@@ -1,4 +1,8 @@
1
1
  import type HeadingProps from './Heading.props';
2
+ /**
3
+ * Use Heading for screen and section titles. It renders with `accessibilityRole="header"` by
4
+ * default so assistive technologies expose the correct document structure.
5
+ */
2
6
  declare const Heading: {
3
7
  ({ children, color, size, truncated, underline, strikeThrough, textTransform, textAlign, textAlignVertical, textDecorationColor, textDecorationLine, textDecorationStyle, userSelect, inverted, ...props }: HeadingProps): import("react").JSX.Element;
4
8
  displayName: string;
@@ -3,6 +3,10 @@ import { Text } from 'react-native';
3
3
  import { StyleSheet } from 'react-native-unistyles';
4
4
  import { useStyleProps } from '../../hooks';
5
5
  import { getFlattenedColorValue, resolveThemeValueWithFallback } from '../../utils';
6
+ /**
7
+ * Use Heading for screen and section titles. It renders with `accessibilityRole="header"` by
8
+ * default so assistive technologies expose the correct document structure.
9
+ */
6
10
  const Heading = ({ children, color, size = 'lg', truncated, underline, strikeThrough, textTransform, textAlign, textAlignVertical, textDecorationColor, textDecorationLine, textDecorationStyle, userSelect, inverted, ...props }) => {
7
11
  // Extract margin utility props from remaining props
8
12
  const { computedStyles: utilityStyles, remainingProps } = useStyleProps(props);
@@ -1,4 +1,9 @@
1
1
  import type HighlightBannerProps from './HighlightBanner.props';
2
+ /**
3
+ * Use HighlightBanner to feature promotional content, articles, or announcements in a card
4
+ * with a coloured heading, an optional image, description text, and an optional link or
5
+ * button.
6
+ */
2
7
  declare const HighlightBanner: {
3
8
  ({ heading, headingColor, image, imageContainerHeight, description, link, button, variant, style, ...props }: HighlightBannerProps): import("react").JSX.Element;
4
9
  displayName: string;
@@ -3,6 +3,11 @@ import { View } from 'react-native';
3
3
  import { StyleSheet } from 'react-native-unistyles';
4
4
  import { BodyText } from '../BodyText';
5
5
  import { Card } from '../Card';
6
+ /**
7
+ * Use HighlightBanner to feature promotional content, articles, or announcements in a card
8
+ * with a coloured heading, an optional image, description text, and an optional link or
9
+ * button.
10
+ */
6
11
  const HighlightBanner = ({ heading, headingColor, image, imageContainerHeight, description, link, button, variant = 'emphasis', style, ...props }) => {
7
12
  styles.useVariants({ headingColor, variant, hasImage: Boolean(image) });
8
13
  return (_jsx(Card, { variant: variant, noPadding: true, style: style, ...props, children: _jsxs(View, { style: [styles.container], children: [_jsx(View, { style: [styles.header], children: _jsx(BodyText, { size: "md", textAlign: "center", weight: "semibold", children: heading }) }), !!image && _jsx(View, { style: styles.imageContainer(imageContainerHeight), children: image }), _jsxs(View, { style: styles.footer, children: [_jsx(BodyText, { size: "md", textAlign: "center", children: description }), link && _jsx(View, { style: styles.linkContainer, children: link }), button && _jsx(View, { style: styles.buttonContainer, children: button })] })] }) }));