@cube-dev/ui-kit 0.120.1 → 0.121.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.
- package/dist/CHANGELOG.md +20 -0
- package/dist/_internal/hooks/use-chained-callback.js +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.d.ts +1 -0
- package/dist/components/actions/Button/Button.js +34 -14
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +47 -0
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +105 -0
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -0
- package/dist/components/actions/ButtonSplit/context.d.ts +18 -0
- package/dist/components/actions/ButtonSplit/context.js +12 -0
- package/dist/components/actions/ButtonSplit/context.js.map +1 -0
- package/dist/components/actions/ButtonSplit/index.d.ts +3 -0
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.d.ts +2 -2
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/index.d.ts +8 -3
- package/dist/components/actions/index.js +10 -5
- package/dist/components/actions/index.js.map +1 -1
- package/dist/components/actions/use-action.d.ts +1 -0
- package/dist/components/actions/use-action.js +21 -18
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +2 -1
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +5 -2
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +3 -2
- package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +2 -1
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/intl.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +2 -2
- package/dist/components/fields/RadioGroup/Radio.js +3 -1
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.d.ts +8 -2
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +2 -1
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +3 -1
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +2 -2
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +2 -2
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransition.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +6 -6
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/BaseProperties.md +78 -0
- package/docs/ComplexLayout.md +459 -0
- package/docs/CreateComponent.md +410 -0
- package/docs/FieldProperties.md +117 -0
- package/docs/Introduction.md +122 -0
- package/docs/RenderCache.md +177 -0
- package/docs/Result.md +42 -0
- package/docs/SimpleLayout.md +26 -0
- package/docs/Typography.md +38 -0
- package/docs/components/Block.md +33 -0
- package/docs/components/CollectionItem.md +293 -0
- package/docs/components/GridProvider.md +38 -0
- package/docs/components/Root.md +50 -0
- package/docs/components/actions/Action.md +47 -0
- package/docs/components/actions/Banner.md +195 -0
- package/docs/components/actions/Button.md +209 -0
- package/docs/components/actions/ButtonGroup.md +46 -0
- package/docs/components/actions/ButtonSplit.md +199 -0
- package/docs/components/actions/CommandMenu.md +422 -0
- package/docs/components/actions/ItemAction.md +60 -0
- package/docs/components/actions/ItemButton.md +316 -0
- package/docs/components/actions/Link.md +325 -0
- package/docs/components/actions/Menu.md +485 -0
- package/docs/components/actions/MenuTrigger.md +47 -0
- package/docs/components/actions/SubMenuTrigger.md +38 -0
- package/docs/components/actions/use-anchored-menu.md +209 -0
- package/docs/components/actions/use-context-menu.md +218 -0
- package/docs/components/content/ActiveZone.md +37 -0
- package/docs/components/content/Alert.md +40 -0
- package/docs/components/content/Avatar.md +37 -0
- package/docs/components/content/Badge.md +194 -0
- package/docs/components/content/Card.md +40 -0
- package/docs/components/content/Content.md +44 -0
- package/docs/components/content/CopyPasteBlock.md +36 -0
- package/docs/components/content/CopySnippet.md +43 -0
- package/docs/components/content/Disclosure.md +181 -0
- package/docs/components/content/Divider.md +39 -0
- package/docs/components/content/Footer.md +35 -0
- package/docs/components/content/Header.md +35 -0
- package/docs/components/content/HotKeys.md +352 -0
- package/docs/components/content/Item.md +499 -0
- package/docs/components/content/ItemBadge.md +31 -0
- package/docs/components/content/ItemCard.md +131 -0
- package/docs/components/content/Layout.md +843 -0
- package/docs/components/content/Paragraph.md +32 -0
- package/docs/components/content/Placeholder.md +37 -0
- package/docs/components/content/PrismCode.md +36 -0
- package/docs/components/content/PrismDiffCode.md +29 -0
- package/docs/components/content/Result.md +46 -0
- package/docs/components/content/Skeleton.md +35 -0
- package/docs/components/content/Tag.md +165 -0
- package/docs/components/content/Text.md +54 -0
- package/docs/components/content/TextItem.md +217 -0
- package/docs/components/content/Title.md +45 -0
- package/docs/components/fields/Checkbox.md +176 -0
- package/docs/components/fields/ComboBox.md +651 -0
- package/docs/components/fields/DatePicker.md +227 -0
- package/docs/components/fields/FileInput.md +194 -0
- package/docs/components/fields/FilterListBox.md +726 -0
- package/docs/components/fields/FilterPicker.md +776 -0
- package/docs/components/fields/HueSlider.md +175 -0
- package/docs/components/fields/ListBox.md +714 -0
- package/docs/components/fields/NumberInput.md +180 -0
- package/docs/components/fields/PasswordInput.md +214 -0
- package/docs/components/fields/Picker.md +906 -0
- package/docs/components/fields/RadioGroup.md +310 -0
- package/docs/components/fields/SearchInput.md +224 -0
- package/docs/components/fields/Select.md +576 -0
- package/docs/components/fields/Slider.md +53 -0
- package/docs/components/fields/Switch.md +169 -0
- package/docs/components/fields/TextArea.md +61 -0
- package/docs/components/fields/TextInput.md +205 -0
- package/docs/components/fields/TextInputMapper.md +34 -0
- package/docs/components/form/Field.md +333 -0
- package/docs/components/form/Form.md +644 -0
- package/docs/components/form/FormInstance.md +307 -0
- package/docs/components/helpers/DisplayTransition.md +268 -0
- package/docs/components/helpers/IconSwitch.md +160 -0
- package/docs/components/layout/Flex.md +51 -0
- package/docs/components/layout/Flow.md +32 -0
- package/docs/components/layout/Grid.md +46 -0
- package/docs/components/layout/Panel.md +65 -0
- package/docs/components/layout/Prefix.md +37 -0
- package/docs/components/layout/ResizablePanel.md +69 -0
- package/docs/components/layout/Space.md +44 -0
- package/docs/components/layout/Suffix.md +39 -0
- package/docs/components/navigation/Tabs.md +726 -0
- package/docs/components/organisms/FileTabs.md +39 -0
- package/docs/components/organisms/StatsCard.md +40 -0
- package/docs/components/other/CloudLogo.md +33 -0
- package/docs/components/overlays/AlertDialog.md +51 -0
- package/docs/components/overlays/Dialog.md +200 -0
- package/docs/components/overlays/DialogContainer.md +201 -0
- package/docs/components/overlays/DialogForm.md +295 -0
- package/docs/components/overlays/DialogTrigger.md +191 -0
- package/docs/components/overlays/Notifications.md +402 -0
- package/docs/components/overlays/Toast.md +289 -0
- package/docs/components/overlays/Tooltip.md +400 -0
- package/docs/components/overlays/TooltipProvider.md +42 -0
- package/docs/components/overlays/TooltipTrigger.md +42 -0
- package/docs/components/overlays/UseDialogContainer.md +597 -0
- package/docs/components/portal/Portal.md +29 -0
- package/docs/components/status/LoadingAnimation.md +27 -0
- package/docs/components/status/Spin.md +35 -0
- package/docs/tasty/configuration.md +211 -0
- package/docs/tasty/debug.md +505 -0
- package/docs/tasty/injector.md +528 -0
- package/docs/tasty/styles.md +567 -0
- package/docs/tasty/tasty-static.md +376 -0
- package/docs/tasty/usage.md +643 -0
- package/package.json +5 -9
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# DatePicker
|
|
2
|
+
|
|
3
|
+
A date picker combines a text input with a calendar interface, allowing users to select dates through typing or graphical selection. It supports various date formats, validation, and internationalization features.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Allow users to select a specific date from a calendar interface
|
|
8
|
+
- Provide date input with visual calendar for better user experience
|
|
9
|
+
- Enable date range selection for booking or filtering scenarios
|
|
10
|
+
- Support various date formats and locales for international applications
|
|
11
|
+
- Offer accessible date entry for users with different abilities
|
|
12
|
+
|
|
13
|
+
## Component
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
### Properties
|
|
18
|
+
|
|
19
|
+
- **`description`** `string` — Additional descriptive text
|
|
20
|
+
- **`placeholder`** `string` — Placeholder text when no date is selected
|
|
21
|
+
- **`value`** `DateValue` — The current date value (controlled)
|
|
22
|
+
- **`defaultValue`** `DateValue` — The default date value (uncontrolled)
|
|
23
|
+
- **`placeholderValue`** `DateValue` — Date used as placeholder when calendar opens
|
|
24
|
+
- **`minValue`** `DateValue` — The minimum allowed date
|
|
25
|
+
- **`maxValue`** `DateValue` — The maximum allowed date
|
|
26
|
+
- **`granularity`** `'day' | 'hour' | 'minute' | 'second'` (default: `day`) — Determines the smallest selectable unit
|
|
27
|
+
- **`size`** `'small' | 'medium' | 'large' | (string & {})` (default: `medium`) — DatePicker size
|
|
28
|
+
- **`showMonthAndYearPickers`** `boolean` (default: `false`) — Whether to show month and year picker dropdowns
|
|
29
|
+
- **`useLocale`** `boolean` (default: `false`) — Whether to use locale-specific date formatting
|
|
30
|
+
- **`maxVisibleMonths`** `number` (default: `1`) — Maximum number of months to display in calendar
|
|
31
|
+
- **`onChange`** `(value: DateValue | null) => void` — Callback fired when the date value changes
|
|
32
|
+
- **`onBlur`** `(e: FocusEvent) => void` — Callback fired when the date picker loses focus
|
|
33
|
+
- **`onFocus`** `(e: FocusEvent) => void` — Callback fired when the date picker receives focus
|
|
34
|
+
- **`onOpenChange`** `(isOpen: boolean) => void` — Callback fired when the calendar opens or closes
|
|
35
|
+
|
|
36
|
+
### Base Properties
|
|
37
|
+
|
|
38
|
+
Supports [Base properties](../../BaseProperties.md)
|
|
39
|
+
|
|
40
|
+
### Field Properties
|
|
41
|
+
|
|
42
|
+
Supports all [Field properties](../../FieldProperties.md)
|
|
43
|
+
|
|
44
|
+
### Styling Properties
|
|
45
|
+
|
|
46
|
+
#### styles
|
|
47
|
+
|
|
48
|
+
Customizes the root wrapper element of the component.
|
|
49
|
+
|
|
50
|
+
**Sub-elements:**
|
|
51
|
+
- `Prefix` - Element displayed before the input (icon area)
|
|
52
|
+
- `Suffix` - Element displayed after the input (calendar button area)
|
|
53
|
+
- `State` - Container for validation state indicators
|
|
54
|
+
- `InputIcon` - Icon displayed within the input area
|
|
55
|
+
- `ValidationIcon` - Icon displayed for validation state
|
|
56
|
+
|
|
57
|
+
#### inputStyles
|
|
58
|
+
|
|
59
|
+
Customizes the date input field specifically.
|
|
60
|
+
|
|
61
|
+
#### wrapperStyles
|
|
62
|
+
|
|
63
|
+
Customizes the input wrapper container.
|
|
64
|
+
|
|
65
|
+
#### triggerStyles
|
|
66
|
+
|
|
67
|
+
Customizes the calendar trigger button.
|
|
68
|
+
|
|
69
|
+
### Style Properties
|
|
70
|
+
|
|
71
|
+
The DatePicker component supports all standard style properties:
|
|
72
|
+
|
|
73
|
+
`display`, `font`, `preset`, `hide`, `opacity`, `whiteSpace`, `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`, `reset`, `padding`, `paddingInline`, `paddingBlock`, `shadow`, `border`, `radius`, `overflow`, `scrollbar`, `outline`, `textAlign`, `color`, `fill`, `fade`, `textTransform`, `fontWeight`, `fontStyle`, `flow`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
74
|
+
|
|
75
|
+
### Modifiers
|
|
76
|
+
|
|
77
|
+
The `mods` property accepts the following modifiers you can override:
|
|
78
|
+
|
|
79
|
+
- **`opened`** `boolean` — Whether the calendar is open
|
|
80
|
+
- **`focused`** `boolean` — Whether the input has focus
|
|
81
|
+
- **`disabled`** `boolean` — Whether the date picker is disabled
|
|
82
|
+
- **`invalid`** `boolean` — Whether the date picker has validation errors
|
|
83
|
+
- **`valid`** `boolean` — Whether the date picker is valid
|
|
84
|
+
- **`hovered`** `boolean` — Whether the date picker is being hovered
|
|
85
|
+
- **`inside-form`** `boolean` — Whether the date picker is inside a form field
|
|
86
|
+
|
|
87
|
+
## Variants
|
|
88
|
+
|
|
89
|
+
### Sizes
|
|
90
|
+
|
|
91
|
+
- `small` - Compact size for dense interfaces
|
|
92
|
+
- `medium` - Standard size
|
|
93
|
+
- `large` - Emphasized size for important date selections
|
|
94
|
+
|
|
95
|
+
## Examples
|
|
96
|
+
|
|
97
|
+
### Basic Usage
|
|
98
|
+
|
|
99
|
+
```jsx
|
|
100
|
+
<DatePicker label="Select date" />
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### With Default Value
|
|
104
|
+
|
|
105
|
+
```jsx
|
|
106
|
+
<DatePicker
|
|
107
|
+
label="Appointment date"
|
|
108
|
+
defaultValue={today(getLocalTimeZone())}
|
|
109
|
+
/>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Date Range
|
|
113
|
+
|
|
114
|
+
```jsx
|
|
115
|
+
<DatePicker
|
|
116
|
+
label="Start date"
|
|
117
|
+
minValue={today(getLocalTimeZone())}
|
|
118
|
+
maxValue={today(getLocalTimeZone()).add({months: 6})}
|
|
119
|
+
/>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### With Time
|
|
123
|
+
|
|
124
|
+
```jsx
|
|
125
|
+
<DatePicker
|
|
126
|
+
label="Event datetime"
|
|
127
|
+
granularity="minute"
|
|
128
|
+
defaultValue={now(getLocalTimeZone())}
|
|
129
|
+
/>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Custom Format
|
|
133
|
+
|
|
134
|
+
```jsx
|
|
135
|
+
<DatePicker
|
|
136
|
+
label="Birth date"
|
|
137
|
+
showMonthAndYearPickers
|
|
138
|
+
maxValue={today(getLocalTimeZone())}
|
|
139
|
+
/>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### With Validation
|
|
143
|
+
|
|
144
|
+
```jsx
|
|
145
|
+
<DatePicker
|
|
146
|
+
label="Required date"
|
|
147
|
+
isRequired
|
|
148
|
+
validationState="invalid"
|
|
149
|
+
errorMessage="Please select a date"
|
|
150
|
+
/>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Disabled State
|
|
154
|
+
|
|
155
|
+
```jsx
|
|
156
|
+
<DatePicker
|
|
157
|
+
label="Disabled date picker"
|
|
158
|
+
isDisabled
|
|
159
|
+
value={today(getLocalTimeZone())}
|
|
160
|
+
/>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Accessibility
|
|
164
|
+
|
|
165
|
+
### Keyboard Navigation
|
|
166
|
+
|
|
167
|
+
- `Tab` - Moves focus to the date picker
|
|
168
|
+
- `Space/Enter` - Opens the calendar popup when focused on trigger button
|
|
169
|
+
- `Arrow Keys` - Navigate between date segments in the input
|
|
170
|
+
- `Arrow Keys` - Navigate calendar dates when calendar is open
|
|
171
|
+
- `Enter` - Selects the focused date in calendar
|
|
172
|
+
- `Escape` - Closes the calendar without selecting
|
|
173
|
+
- `Home/End` - Navigate to start/end of month in calendar
|
|
174
|
+
- `Page Up/Down` - Navigate to previous/next month
|
|
175
|
+
|
|
176
|
+
### Screen Reader Support
|
|
177
|
+
|
|
178
|
+
- Component announces as "date picker" to screen readers
|
|
179
|
+
- Selected date and format are clearly announced
|
|
180
|
+
- Calendar navigation and date selection are properly communicated
|
|
181
|
+
- Validation errors and requirements are announced
|
|
182
|
+
|
|
183
|
+
### ARIA Properties
|
|
184
|
+
|
|
185
|
+
- `aria-label` - Provides accessible label when no visible label exists
|
|
186
|
+
- `aria-labelledby` - References external label elements
|
|
187
|
+
- `aria-describedby` - References additional descriptive text
|
|
188
|
+
- `aria-expanded` - Indicates if calendar is open
|
|
189
|
+
- `aria-invalid` - Indicates validation state
|
|
190
|
+
- `aria-required` - Indicates if date selection is required
|
|
191
|
+
|
|
192
|
+
## Best Practices
|
|
193
|
+
|
|
194
|
+
1. **Do**: Provide clear labels and format hints
|
|
195
|
+
```jsx
|
|
196
|
+
<DatePicker
|
|
197
|
+
label="Event date"
|
|
198
|
+
description="Format: MM/DD/YYYY"
|
|
199
|
+
/>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
2. **Don't**: Use date picker for approximate dates
|
|
203
|
+
```jsx
|
|
204
|
+
<DatePicker label="Approximately when?" /> {/* Use text input instead */}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
3. **Validation**: Set appropriate min/max values for date ranges
|
|
208
|
+
4. **Format**: Use consistent date formats throughout your application
|
|
209
|
+
5. **Accessibility**: Always provide meaningful labels and descriptions
|
|
210
|
+
6. **Internationalization**: Support user's locale and date format preferences
|
|
211
|
+
|
|
212
|
+
## Integration with Forms
|
|
213
|
+
|
|
214
|
+
This component supports all [Field properties](../../FieldProperties.md) when used within a Form.
|
|
215
|
+
|
|
216
|
+
## Suggested Improvements
|
|
217
|
+
|
|
218
|
+
- Add support for date shortcuts (today, tomorrow, next week)
|
|
219
|
+
- Implement preset date ranges for quick selection
|
|
220
|
+
- Add support for multiple date selection modes
|
|
221
|
+
- Consider adding time zone selection capabilities
|
|
222
|
+
- Implement custom calendar themes and styling
|
|
223
|
+
|
|
224
|
+
## Related Components
|
|
225
|
+
|
|
226
|
+
- DateRangePicker - For selecting date ranges
|
|
227
|
+
- TimeInput - For time-only selection
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# FileInput
|
|
2
|
+
|
|
3
|
+
A file input component that allows users to select and upload files through a customizable interface. It supports drag-and-drop functionality, file type restrictions, and multiple file selection.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Allow users to upload documents, images, or other files
|
|
8
|
+
- Provide drag-and-drop file upload functionality
|
|
9
|
+
- Enable multiple file selection for batch uploads
|
|
10
|
+
- Restrict file types and sizes for specific use cases
|
|
11
|
+
- Create a more accessible alternative to the native file input
|
|
12
|
+
|
|
13
|
+
## Component
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
### Properties
|
|
18
|
+
|
|
19
|
+
- **`placeholder`** `string` — Text displayed when no file is selected
|
|
20
|
+
- **`buttonText`** `string` — Text displayed on the selection button
|
|
21
|
+
- **`accept`** `string` — Comma-separated list of accepted file types
|
|
22
|
+
- **`multiple`** `boolean` (default: `false`) — Whether multiple files can be selected
|
|
23
|
+
- **`capture`** `undefined | 'user' | 'environment'` — Camera to use for file capture on mobile devices
|
|
24
|
+
- **`type`** `'file' | 'text'` (default: `file`) — How to process the selected file(s)
|
|
25
|
+
- **`onChange`** `function` — Callback fired when files are selected
|
|
26
|
+
- **`onBlur`** `function` — Callback fired when the file input loses focus
|
|
27
|
+
- **`onFocus`** `function` — Callback fired when the file input receives focus
|
|
28
|
+
|
|
29
|
+
### Base Properties
|
|
30
|
+
|
|
31
|
+
Supports [Base properties](../../BaseProperties.md)
|
|
32
|
+
|
|
33
|
+
### Field Properties
|
|
34
|
+
|
|
35
|
+
Supports all [Field properties](../../FieldProperties.md)
|
|
36
|
+
|
|
37
|
+
### Styling Properties
|
|
38
|
+
|
|
39
|
+
#### styles
|
|
40
|
+
|
|
41
|
+
Customizes the root element of the component.
|
|
42
|
+
|
|
43
|
+
**Sub-elements:**
|
|
44
|
+
- `Button` - The clickable button element for file selection
|
|
45
|
+
- `Placeholder` - Text shown when no file is selected
|
|
46
|
+
- `Value` - Text showing the selected file name(s)
|
|
47
|
+
- `Input` - The hidden native file input element
|
|
48
|
+
|
|
49
|
+
### Style Properties
|
|
50
|
+
|
|
51
|
+
The FileInput component supports all standard style properties:
|
|
52
|
+
|
|
53
|
+
`display`, `font`, `preset`, `hide`, `opacity`, `whiteSpace`, `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`, `reset`, `padding`, `paddingInline`, `paddingBlock`, `shadow`, `border`, `radius`, `overflow`, `scrollbar`, `outline`, `textAlign`, `color`, `fill`, `fade`, `textTransform`, `fontWeight`, `fontStyle`, `flow`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
54
|
+
|
|
55
|
+
### Modifiers
|
|
56
|
+
|
|
57
|
+
The `mods` property accepts the following modifiers you can override:
|
|
58
|
+
|
|
59
|
+
- **`drag-hover`** `boolean` — Whether files are being dragged over the component
|
|
60
|
+
- **`disabled`** `boolean` — Whether the file input is disabled
|
|
61
|
+
- **`invalid`** `boolean` — Whether the file input has validation errors
|
|
62
|
+
- **`valid`** `boolean` — Whether the file input is valid
|
|
63
|
+
- **`focused`** `boolean` — Whether the file input has focus
|
|
64
|
+
- **`inside-form`** `boolean` — Whether the file input is inside a form field
|
|
65
|
+
|
|
66
|
+
## Examples
|
|
67
|
+
|
|
68
|
+
### Basic Usage
|
|
69
|
+
|
|
70
|
+
```jsx
|
|
71
|
+
<FileInput label="Upload document" />
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Multiple Files
|
|
75
|
+
|
|
76
|
+
```jsx
|
|
77
|
+
<FileInput
|
|
78
|
+
label="Upload images"
|
|
79
|
+
multiple
|
|
80
|
+
accept="image/*"
|
|
81
|
+
/>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### With File Type Restrictions
|
|
85
|
+
|
|
86
|
+
```jsx
|
|
87
|
+
<FileInput
|
|
88
|
+
label="Upload PDF"
|
|
89
|
+
accept=".pdf"
|
|
90
|
+
placeholder="Select PDF file..."
|
|
91
|
+
/>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Custom Button Text
|
|
95
|
+
|
|
96
|
+
```jsx
|
|
97
|
+
<FileInput
|
|
98
|
+
label="Profile picture"
|
|
99
|
+
buttonText="Choose Photo"
|
|
100
|
+
accept="image/jpeg,image/png"
|
|
101
|
+
/>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### With Validation
|
|
105
|
+
|
|
106
|
+
```jsx
|
|
107
|
+
<FileInput
|
|
108
|
+
label="Required document"
|
|
109
|
+
isRequired
|
|
110
|
+
validationState="invalid"
|
|
111
|
+
errorMessage="Please select a file"
|
|
112
|
+
/>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Disabled State
|
|
116
|
+
|
|
117
|
+
```jsx
|
|
118
|
+
<FileInput
|
|
119
|
+
label="Disabled file input"
|
|
120
|
+
isDisabled
|
|
121
|
+
buttonText="Upload"
|
|
122
|
+
/>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Custom Placeholder
|
|
126
|
+
|
|
127
|
+
```jsx
|
|
128
|
+
<FileInput
|
|
129
|
+
label="Document upload"
|
|
130
|
+
placeholder="Drag files here or click to browse..."
|
|
131
|
+
buttonText="Browse"
|
|
132
|
+
/>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Accessibility
|
|
136
|
+
|
|
137
|
+
### Keyboard Navigation
|
|
138
|
+
|
|
139
|
+
- `Tab` - Moves focus to the file input button
|
|
140
|
+
- `Space/Enter` - Opens the file selection dialog
|
|
141
|
+
- Screen readers can access the hidden file input directly
|
|
142
|
+
|
|
143
|
+
### Screen Reader Support
|
|
144
|
+
|
|
145
|
+
- Component announces as "button" for file selection
|
|
146
|
+
- Selected file names are announced when changed
|
|
147
|
+
- File type restrictions and requirements are communicated
|
|
148
|
+
- Validation errors are announced when present
|
|
149
|
+
|
|
150
|
+
### ARIA Properties
|
|
151
|
+
|
|
152
|
+
- `aria-label` - Provides accessible label when no visible label exists
|
|
153
|
+
- `aria-labelledby` - References external label elements
|
|
154
|
+
- `aria-describedby` - References additional descriptive text
|
|
155
|
+
- `aria-required` - Indicates if file selection is required
|
|
156
|
+
- `aria-invalid` - Indicates validation state
|
|
157
|
+
|
|
158
|
+
## Best Practices
|
|
159
|
+
|
|
160
|
+
1. **Do**: Provide clear file type and size requirements
|
|
161
|
+
```jsx
|
|
162
|
+
<FileInput
|
|
163
|
+
label="Upload resume"
|
|
164
|
+
accept=".pdf,.doc,.docx"
|
|
165
|
+
description="PDF or Word document, max 5MB"
|
|
166
|
+
/>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
2. **Don't**: Use unclear button text or placeholders
|
|
170
|
+
```jsx
|
|
171
|
+
<FileInput buttonText="Click" /> {/* What does clicking do? */}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
3. **File Types**: Always specify accepted file types for better UX
|
|
175
|
+
4. **Size Limits**: Implement file size validation for uploads
|
|
176
|
+
5. **Multiple Files**: Clearly indicate when multiple files are allowed
|
|
177
|
+
6. **Error Handling**: Provide helpful feedback for invalid files
|
|
178
|
+
|
|
179
|
+
## Integration with Forms
|
|
180
|
+
|
|
181
|
+
This component supports all [Field properties](../../FieldProperties.md) when used within a Form.
|
|
182
|
+
|
|
183
|
+
## Suggested Improvements
|
|
184
|
+
|
|
185
|
+
- Add visual progress indicators for file uploads
|
|
186
|
+
- Implement file preview functionality for images
|
|
187
|
+
- Add support for file size and type validation messages
|
|
188
|
+
- Consider adding file removal functionality for selected files
|
|
189
|
+
- Implement custom drag-and-drop visual feedback
|
|
190
|
+
|
|
191
|
+
## Related Components
|
|
192
|
+
|
|
193
|
+
- [Button](../actions/Button.md) - For triggering file dialogs programmatically
|
|
194
|
+
- [Field](../form/Field.md) - For form integration and validation
|