haze-ui 1.11.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -0
- package/dist/components/Accordion/Accordion.js +1 -1
- package/dist/components/Accordion/AccordionItem.js +1 -1
- package/dist/components/Affix/Affix.js +1 -1
- package/dist/components/Alert/Alert.js +1 -1
- package/dist/components/ApprovalCard/ApprovalCard.js +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/components/Avatar/Avatar.js +1 -1
- package/dist/components/BackToTop/BackToTop.js +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Banner/Banner.js +1 -1
- package/dist/components/BottomSheet/BottomSheet.js +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.js +1 -1
- package/dist/components/Breadcrumb/BreadcrumbItem.js +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/Carousel/Carousel.js +1 -1
- package/dist/components/Carousel/CarouselSlide.js +1 -1
- package/dist/components/ChatContainer/ChatContainer.js +1 -1
- package/dist/components/ChatInput/ChatInput.js +1 -1
- package/dist/components/ChatMessage/ChatMessage.js +1 -1
- package/dist/components/Checkbox/Checkbox.js +1 -1
- package/dist/components/Chip/Chip.js +1 -1
- package/dist/components/CodeBlock/CodeBlock.js +1 -1
- package/dist/components/Collapsible/Collapsible.js +1 -1
- package/dist/components/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/Combobox/Combobox.js +1 -1
- package/dist/components/Combobox/ComboboxOption.js +1 -1
- package/dist/components/Command/Command.js +1 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
- package/dist/components/Container/Container.js +1 -1
- package/dist/components/ContextMenu/ContextMenu.js +1 -1
- package/dist/components/ContextMenu/ContextMenuContent.js +1 -1
- package/dist/components/ContextMenu/ContextMenuItem.js +1 -1
- package/dist/components/ContextMenu/ContextMenuSeparator.js +1 -1
- package/dist/components/ContextMenu/ContextMenuTrigger.js +1 -1
- package/dist/components/ConversationList/ConversationItem.js +1 -1
- package/dist/components/ConversationList/ConversationList.js +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.js +1 -1
- package/dist/components/Datepicker/Calendar.js +1 -1
- package/dist/components/Datepicker/Datepicker.js +1 -1
- package/dist/components/Dialog/Dialog.js +1 -1
- package/dist/components/DiffViewer/DiffViewer.js +1 -1
- package/dist/components/Disclosure/Disclosure.js +1 -1
- package/dist/components/Divider/Divider.js +1 -1
- package/dist/components/Drawer/Drawer.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContent.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenuSeparator.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenuTrigger.js +1 -1
- package/dist/components/Empty/Empty.js +1 -1
- package/dist/components/FileInput/FileInput.js +1 -1
- package/dist/components/Flex/Flex.js +1 -1
- package/dist/components/Grid/Grid.js +1 -1
- package/dist/components/Icon/Icon.js +1 -1
- package/dist/components/Image/Image.js +1 -1
- package/dist/components/InlineEdit/InlineEdit.js +1 -1
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/List/List.js +1 -1
- package/dist/components/List/ListItem.js +1 -1
- package/dist/components/LogViewer/LogViewer.js +1 -1
- package/dist/components/MarkdownRenderer/MarkdownRenderer.js +1 -1
- package/dist/components/Menu/Menu.js +1 -1
- package/dist/components/Menu/MenuDivider.js +1 -1
- package/dist/components/Menu/MenuItem.js +1 -1
- package/dist/components/ModelPicker/ModelPicker.js +1 -1
- package/dist/components/NavigationBar/NavLink.js +1 -1
- package/dist/components/NavigationBar/NavigationBar.js +1 -1
- package/dist/components/NumberInput/NumberInput.js +1 -1
- package/dist/components/OTPInput/OTPInput.js +1 -1
- package/dist/components/Pagination/Pagination.js +1 -1
- package/dist/components/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/Popover/Popover.js +1 -1
- package/dist/components/Progress/Progress.js +1 -1
- package/dist/components/Radio/Radio.js +1 -1
- package/dist/components/Radio/RadioGroup.js +1 -1
- package/dist/components/Rating/Rating.js +1 -1
- package/dist/components/Resizable/Resizable.js +1 -1
- package/dist/components/ScrollArea/ScrollArea.js +1 -1
- package/dist/components/Segmented/Segmented.js +1 -1
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Skeleton/Skeleton.js +1 -1
- package/dist/components/Slider/Slider.js +1 -1
- package/dist/components/Spinner/Spinner.js +1 -1
- package/dist/components/Stat/Stat.js +1 -1
- package/dist/components/StepTimeline/StepTimeline.js +1 -1
- package/dist/components/Stepper/Step.js +1 -1
- package/dist/components/Stepper/Stepper.js +1 -1
- package/dist/components/StreamingText/StreamingText.js +1 -1
- package/dist/components/SwipeAction/SwipeAction.js +1 -1
- package/dist/components/Switch/Switch.js +1 -1
- package/dist/components/Table/Table.js +1 -1
- package/dist/components/Table/TableBody.js +1 -1
- package/dist/components/Table/TableHead.js +1 -1
- package/dist/components/Tabs/Tab.js +1 -1
- package/dist/components/Tabs/TabList.js +1 -1
- package/dist/components/Tabs/TabPanel.js +1 -1
- package/dist/components/Tabs/Tabs.js +1 -1
- package/dist/components/Tag/Tag.js +1 -1
- package/dist/components/TagGroup/TagGroup.js +1 -1
- package/dist/components/TagGroup/TagGroupItem.js +1 -1
- package/dist/components/TagInput/TagInput.js +1 -1
- package/dist/components/Textarea/Textarea.js +1 -1
- package/dist/components/ThinkingIndicator/ThinkingIndicator.js +1 -1
- package/dist/components/TimePicker/TimePicker.js +1 -1
- package/dist/components/Timeline/Timeline.js +1 -1
- package/dist/components/Toast/Toast.js +1 -1
- package/dist/components/Toast/ToastContainer.js +1 -1
- package/dist/components/TokenCounter/TokenCounter.js +1 -1
- package/dist/components/ToolCallCard/ToolCallCard.js +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Transfer/Transfer.js +1 -1
- package/dist/components/Tree/Tree.js +1 -1
- package/dist/components/Tree/TreeItem.js +1 -1
- package/dist/components/Typography/Typography.js +1 -1
- package/dist/components/Upload/Upload.js +1 -1
- package/dist/components/VirtualList/VirtualList.js +1 -1
- package/dist/form/FormItem.js +30 -27
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/types/form/FormItem.d.ts +19 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -137,6 +137,45 @@ submit needed. `mode` accepts `'onSubmit'`, `'onBlur'`, `'onChange'`,
|
|
|
137
137
|
`'onTouched'` or `'all'`; only this field's schedule changes, the rest
|
|
138
138
|
of the form keeps its own `mode`.
|
|
139
139
|
|
|
140
|
+
#### `validateDebounce` / `delayError` / `rules` (react-f0rm ≥ 0.6)
|
|
141
|
+
|
|
142
|
+
`FormItem` passes these field-level options straight through to
|
|
143
|
+
react-f0rm's `useField`:
|
|
144
|
+
|
|
145
|
+
- `validateDebounce={300}` — debounce this field's validation kicks:
|
|
146
|
+
only the last kick inside the window runs the validator (e.g. keeps a
|
|
147
|
+
per-keystroke async validator from firing while the user types fast).
|
|
148
|
+
While the timer is pending the field counts as validating, so
|
|
149
|
+
`trigger`/submit wait it out.
|
|
150
|
+
- `delayError={500}` — delay *showing* a newly appearing error in the
|
|
151
|
+
rendered error span (and the binding's `invalid`/`errors`). The form's
|
|
152
|
+
error state stays immediate — submit and `getError` still gate on it.
|
|
153
|
+
An error that clears inside the window never shows.
|
|
154
|
+
- `rules={{ required: 'Email is required', minLength: 4, pattern: { value: /@/, message: 'Must be an email' } }}`
|
|
155
|
+
— declarative constraints (a subset of react-hook-form's `register`
|
|
156
|
+
rules) compiled into a validator that runs *before* `validate`; both
|
|
157
|
+
sources' errors merge into the field's error list, rules errors ahead.
|
|
158
|
+
|
|
159
|
+
```jsx
|
|
160
|
+
<FormItem
|
|
161
|
+
form={form}
|
|
162
|
+
name="email"
|
|
163
|
+
label="Email"
|
|
164
|
+
validateDebounce={300}
|
|
165
|
+
delayError={500}
|
|
166
|
+
rules={{ required: 'Email is required' }}
|
|
167
|
+
validate={(v) => (v.includes('@') ? undefined : 'must be an email')}
|
|
168
|
+
>
|
|
169
|
+
{({ id, errorId, invalid, control }) => (
|
|
170
|
+
<Input id={id} value={control} aria-invalid={invalid} aria-describedby={errorId} />
|
|
171
|
+
)}
|
|
172
|
+
</FormItem>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
All three are optional; omit them and the field behaves exactly as
|
|
176
|
+
before (immediate validation per the form's `mode`, immediate error
|
|
177
|
+
display, `validate`-only).
|
|
178
|
+
|
|
140
179
|
## Related Projects
|
|
141
180
|
|
|
142
181
|
- [react-use-control](https://github.com/wmzy/react-use-control)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
import { classnames as e } from "../../utils/classnames.js";
|
|
3
3
|
import { useDropdownMenuContext as t } from "./DropdownMenuContext.js";
|
|
4
4
|
import { getEnabledMenuItems as n, useMenuKeyboard as r } from "./useMenuKeyboard.js";
|