@bspk/ui 1.3.8 → 1.3.9
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/components/Accordion/Accordion.d.ts +19 -3
- package/dist/components/Accordion/Accordion.js +20 -3
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +13 -14
- package/dist/components/Avatar/Avatar.js +13 -14
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.d.ts +29 -12
- package/dist/components/AvatarGroup/AvatarGroup.js +29 -12
- package/dist/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/components/Badge/Badge.d.ts +1 -3
- package/dist/components/Badge/Badge.js +1 -3
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/BadgeDot/BadgeDot.d.ts +4 -4
- package/dist/components/BadgeDot/BadgeDot.js +5 -4
- package/dist/components/BadgeDot/BadgeDot.js.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.d.ts +11 -12
- package/dist/components/BannerAlert/BannerAlert.js +11 -12
- package/dist/components/BannerAlert/BannerAlert.js.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.d.ts +6 -3
- package/dist/components/BottomNavigation/BottomNavigation.js +6 -3
- package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigationExample.js +31 -36
- package/dist/components/BottomNavigation/BottomNavigationExample.js.map +1 -1
- package/dist/components/BottomNavigation/bottom-navigation.css +8 -1
- package/dist/components/BottomNavigation/bottom-navigation.css.js +8 -1
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +17 -18
- package/dist/components/Breadcrumb/Breadcrumb.js +17 -18
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/Button/Button.d.ts +1 -11
- package/dist/components/Button/Button.js +1 -11
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/ButtonExample.js +1 -3
- package/dist/components/Button/ButtonExample.js.map +1 -1
- package/dist/components/ButtonDock/ButtonDock.d.ts +10 -14
- package/dist/components/ButtonDock/ButtonDock.js +10 -14
- package/dist/components/ButtonDock/ButtonDock.js.map +1 -1
- package/dist/components/Card/Card.d.ts +8 -10
- package/dist/components/Card/Card.js +6 -10
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Carousel/Carousel.d.ts +9 -13
- package/dist/components/Carousel/Carousel.js +9 -13
- package/dist/components/Carousel/Carousel.js.map +1 -1
- package/dist/components/Carousel/CarouselExample.js +14 -14
- package/dist/components/Carousel/CarouselExample.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +7 -4
- package/dist/components/Checkbox/Checkbox.js +7 -4
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
- package/dist/components/CheckboxGroup/CheckboxGroup.js +3 -3
- package/dist/components/CheckboxOption/CheckboxOption.d.ts +4 -4
- package/dist/components/CheckboxOption/CheckboxOption.js +4 -4
- package/dist/components/Chip/Chip.d.ts +3 -7
- package/dist/components/Chip/Chip.js +3 -7
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/Chip/ChipExample.js +50 -3
- package/dist/components/Chip/ChipExample.js.map +1 -1
- package/dist/components/ChipGroup/ChipGroup.d.ts +21 -10
- package/dist/components/ChipGroup/ChipGroup.js +21 -10
- package/dist/components/ChipGroup/ChipGroup.js.map +1 -1
- package/dist/components/ChipGroup/ChipGroupExample.js +1 -0
- package/dist/components/ChipGroup/ChipGroupExample.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +13 -12
- package/dist/components/DatePicker/DatePicker.js +13 -12
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +11 -6
- package/dist/components/Dialog/Dialog.js +11 -6
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Divider/Divider.d.ts +5 -9
- package/dist/components/Divider/Divider.js +5 -9
- package/dist/components/Divider/Divider.js.map +1 -1
- package/dist/components/Divider/DividerExample.js +16 -1
- package/dist/components/Divider/DividerExample.js.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts +3 -3
- package/dist/components/Drawer/Drawer.js +3 -3
- package/dist/components/EmptyState/EmptyState.d.ts +3 -7
- package/dist/components/EmptyState/EmptyState.js +3 -7
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/Fab/Fab.d.ts +4 -5
- package/dist/components/Fab/Fab.js +4 -6
- package/dist/components/Fab/Fab.js.map +1 -1
- package/dist/components/Fab/FabExample.d.ts +2 -1
- package/dist/components/Fab/FabExample.js +20 -2
- package/dist/components/Fab/FabExample.js.map +1 -1
- package/dist/components/Field/Field.d.ts +4 -5
- package/dist/components/Field/Field.js +4 -5
- package/dist/components/Field/Field.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.d.ts +3 -3
- package/dist/components/FileUpload/FileUpload.js +3 -3
- package/dist/components/FileUploadItem/FileUploadItem.d.ts +6 -10
- package/dist/components/FileUploadItem/FileUploadItem.js +6 -10
- package/dist/components/FileUploadItem/FileUploadItem.js.map +1 -1
- package/dist/components/FormField/FormField.d.ts +5 -16
- package/dist/components/FormField/FormField.js +5 -16
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/Img/Img.d.ts +1 -3
- package/dist/components/Img/Img.js +1 -3
- package/dist/components/Img/Img.js.map +1 -1
- package/dist/components/InlineAlert/InlineAlert.d.ts +1 -3
- package/dist/components/InlineAlert/InlineAlert.js +1 -3
- package/dist/components/InlineAlert/InlineAlert.js.map +1 -1
- package/dist/components/Input/Input.d.ts +13 -13
- package/dist/components/Input/Input.js +13 -13
- package/dist/components/Input/InputElement.d.ts +11 -5
- package/dist/components/Input/InputElement.js +11 -5
- package/dist/components/Input/InputElement.js.map +1 -1
- package/dist/components/InputNumber/InputNumber.d.ts +20 -20
- package/dist/components/InputNumber/InputNumber.js +20 -20
- package/dist/components/InputPhone/InputPhone.d.ts +21 -16
- package/dist/components/InputPhone/InputPhone.js +21 -16
- package/dist/components/InputPhone/InputPhone.js.map +1 -1
- package/dist/components/Layout/Layout.d.ts +1 -3
- package/dist/components/Layout/Layout.js +1 -3
- package/dist/components/Layout/Layout.js.map +1 -1
- package/dist/components/Link/Link.d.ts +1 -3
- package/dist/components/Link/Link.js +1 -3
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/ListItem/ListItem.d.ts +22 -21
- package/dist/components/ListItem/ListItem.js +19 -16
- package/dist/components/ListItem/ListItem.js.map +1 -1
- package/dist/components/Menu/Menu.d.ts +5 -9
- package/dist/components/Menu/Menu.js +5 -9
- package/dist/components/Menu/Menu.js.map +1 -1
- package/dist/components/Modal/Modal.d.ts +4 -4
- package/dist/components/Modal/Modal.js +4 -4
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/modal.css +12 -1
- package/dist/components/Modal/modal.css.js +12 -1
- package/dist/components/OTPInput/OTPInput.d.ts +1 -3
- package/dist/components/OTPInput/OTPInput.js +1 -3
- package/dist/components/OTPInput/OTPInput.js.map +1 -1
- package/dist/components/PageControl/PageControl.d.ts +1 -3
- package/dist/components/PageControl/PageControl.js +1 -3
- package/dist/components/PageControl/PageControl.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +6 -7
- package/dist/components/Pagination/Pagination.js +28 -15
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/pagination.css +5 -14
- package/dist/components/Pagination/pagination.css.js +5 -14
- package/dist/components/Password/Password.d.ts +19 -20
- package/dist/components/Password/Password.js +19 -20
- package/dist/components/Password/Password.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +11 -20
- package/dist/components/Popover/Popover.js +11 -20
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/PopoverExample.js +1 -1
- package/dist/components/Popover/PopoverExample.js.map +1 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts +1 -3
- package/dist/components/ProgressBar/ProgressBar.js +1 -3
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/components/ProgressCircle/ProgressCircle.d.ts +1 -3
- package/dist/components/ProgressCircle/ProgressCircle.js +1 -3
- package/dist/components/ProgressCircle/ProgressCircle.js.map +1 -1
- package/dist/components/ProgressionStepper/ProgressionStepper.d.ts +1 -3
- package/dist/components/ProgressionStepper/ProgressionStepper.js +1 -3
- package/dist/components/ProgressionStepper/ProgressionStepper.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/dist/components/RadioGroup/RadioGroup.js +2 -2
- package/dist/components/Rating/Rating.d.ts +2 -4
- package/dist/components/Rating/Rating.js +8 -6
- package/dist/components/Rating/Rating.js.map +1 -1
- package/dist/components/Rating/RatingExample.js +17 -1
- package/dist/components/Rating/RatingExample.js.map +1 -1
- package/dist/components/SearchBar/SearchBar.d.ts +2 -2
- package/dist/components/SearchBar/SearchBar.js +2 -2
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +3 -3
- package/dist/components/SegmentedControl/SegmentedControl.js +3 -3
- package/dist/components/SegmentedControl/SegmentedControlExample.js +10 -12
- package/dist/components/SegmentedControl/SegmentedControlExample.js.map +1 -1
- package/dist/components/Select/Select.d.ts +24 -25
- package/dist/components/Select/Select.js +24 -25
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +10 -14
- package/dist/components/Skeleton/Skeleton.js +10 -14
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonExample.js +4 -3
- package/dist/components/Skeleton/SkeletonExample.js.map +1 -1
- package/dist/components/SkeletonText/SkeletonText.d.ts +5 -9
- package/dist/components/SkeletonText/SkeletonText.js +5 -9
- package/dist/components/SkeletonText/SkeletonText.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +2 -2
- package/dist/components/Slider/Slider.js +2 -2
- package/dist/components/Slider/SliderExample.js +40 -18
- package/dist/components/Slider/SliderExample.js.map +1 -1
- package/dist/components/Snackbar/Manager.d.ts +29 -0
- package/dist/components/Snackbar/Manager.js +35 -0
- package/dist/components/Snackbar/Manager.js.map +1 -0
- package/dist/components/Snackbar/Snackbar.d.ts +23 -5
- package/dist/components/Snackbar/Snackbar.js +23 -4
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Snackbar/SnackbarExample.js +8 -1
- package/dist/components/Snackbar/SnackbarExample.js.map +1 -1
- package/dist/components/Snackbar/index.d.ts +1 -0
- package/dist/components/Snackbar/index.js +1 -0
- package/dist/components/Snackbar/index.js.map +1 -1
- package/dist/components/StylesProviderDemo/StylesProviderDemo.d.ts +1 -3
- package/dist/components/StylesProviderDemo/StylesProviderDemo.js +1 -3
- package/dist/components/StylesProviderDemo/StylesProviderDemo.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +2 -2
- package/dist/components/Switch/Switch.js +2 -2
- package/dist/components/TabGroup/TabGroup.d.ts +2 -2
- package/dist/components/TabGroup/TabGroup.js +2 -2
- package/dist/components/TabGroup/TabGroupExample.js +5 -11
- package/dist/components/TabGroup/TabGroupExample.js.map +1 -1
- package/dist/components/TabGroup/tab-group.css +1 -0
- package/dist/components/TabGroup/tab-group.css.js +1 -0
- package/dist/components/TabList/TabList.d.ts +2 -2
- package/dist/components/TabList/TabList.js +2 -2
- package/dist/components/TabList/tab-list.css +0 -1
- package/dist/components/TabList/tab-list.css.js +0 -1
- package/dist/components/Table/Table.d.ts +53 -16
- package/dist/components/Table/Table.js +53 -16
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Table/table.css +0 -1
- package/dist/components/Table/table.css.js +0 -1
- package/dist/components/Tag/Tag.d.ts +1 -3
- package/dist/components/Tag/Tag.js +1 -3
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +13 -13
- package/dist/components/Textarea/Textarea.js +13 -13
- package/dist/components/TimePicker/TimePicker.d.ts +14 -14
- package/dist/components/TimePicker/TimePicker.js +14 -14
- package/dist/components/ToggleOption/ToggleOption.js +1 -1
- package/dist/components/ToggleOption/ToggleOption.js.map +1 -1
- package/dist/components/ToggleOption/toggle-option.css +2 -49
- package/dist/components/ToggleOption/toggle-option.css.js +2 -49
- package/dist/components/Tooltip/Tooltip.d.ts +3 -7
- package/dist/components/Tooltip/Tooltip.js +3 -7
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/TooltipExample.js +23 -3
- package/dist/components/Tooltip/TooltipExample.js.map +1 -1
- package/dist/components/Txt/Txt.d.ts +1 -3
- package/dist/components/Txt/Txt.js +1 -3
- package/dist/components/Txt/Txt.js.map +1 -1
- package/dist/components/UIProvider/AriaLiveMessageHandler.js +3 -2
- package/dist/components/UIProvider/AriaLiveMessageHandler.js.map +1 -1
- package/dist/hooks/useAddEventListener.d.ts +1 -2
- package/dist/hooks/useAddEventListener.js.map +1 -1
- package/dist/hooks/useRadioState.d.ts +1 -1
- package/dist/hooks/useTimeout.d.ts +1 -2
- package/dist/hooks/useTimeout.js +20 -4
- package/dist/hooks/useTimeout.js.map +1 -1
- package/dist/types/common.d.ts +3 -0
- package/dist/types/common.js.map +1 -1
- package/dist/types/meta.d.ts +1 -0
- package/dist/types/meta.js.map +1 -1
- package/dist/utils/createCustomEvent.d.ts +17 -0
- package/dist/utils/createCustomEvent.js +21 -0
- package/dist/utils/createCustomEvent.js.map +1 -0
- package/dist/utils/createExampleChildElement.js +3 -3
- package/dist/utils/createExampleChildElement.js.map +1 -1
- package/dist/utils/demo.d.ts +18 -26
- package/dist/utils/demo.js.map +1 -1
- package/meta.ts +6 -1
- package/package.json +1 -1
- package/src/components/Accordion/Accordion.tsx +20 -3
- package/src/components/Avatar/Avatar.tsx +13 -14
- package/src/components/AvatarGroup/AvatarGroup.tsx +30 -13
- package/src/components/Badge/Badge.tsx +1 -3
- package/src/components/BadgeDot/BadgeDot.tsx +6 -4
- package/src/components/BannerAlert/BannerAlert.tsx +11 -12
- package/src/components/BottomNavigation/BottomNavigation.tsx +6 -3
- package/src/components/BottomNavigation/BottomNavigationExample.tsx +31 -36
- package/src/components/BottomNavigation/bottom-navigation.scss +10 -1
- package/src/components/Breadcrumb/Breadcrumb.tsx +17 -18
- package/src/components/Button/Button.tsx +1 -11
- package/src/components/Button/ButtonExample.tsx +1 -2
- package/src/components/ButtonDock/ButtonDock.tsx +10 -14
- package/src/components/Card/Card.tsx +9 -11
- package/src/components/Carousel/Carousel.tsx +9 -13
- package/src/components/Carousel/CarouselExample.tsx +25 -25
- package/src/components/Checkbox/Checkbox.tsx +7 -4
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +3 -3
- package/src/components/CheckboxOption/CheckboxOption.tsx +4 -4
- package/src/components/Chip/Chip.tsx +3 -7
- package/src/components/Chip/ChipExample.tsx +52 -3
- package/src/components/ChipGroup/ChipGroup.tsx +21 -10
- package/src/components/ChipGroup/ChipGroupExample.tsx +1 -1
- package/src/components/DatePicker/DatePicker.tsx +13 -12
- package/src/components/Dialog/Dialog.tsx +11 -6
- package/src/components/Divider/Divider.tsx +5 -9
- package/src/components/Divider/DividerExample.tsx +18 -1
- package/src/components/Drawer/Drawer.tsx +3 -3
- package/src/components/EmptyState/EmptyState.tsx +3 -7
- package/src/components/Fab/Fab.tsx +8 -5
- package/src/components/Fab/FabExample.tsx +22 -3
- package/src/components/Field/Field.tsx +4 -5
- package/src/components/FileUpload/FileUpload.tsx +3 -3
- package/src/components/FileUploadItem/FileUploadItem.tsx +6 -10
- package/src/components/FormField/FormField.tsx +5 -16
- package/src/components/Img/Img.tsx +1 -3
- package/src/components/InlineAlert/InlineAlert.tsx +1 -3
- package/src/components/Input/Input.tsx +13 -13
- package/src/components/Input/InputElement.tsx +11 -5
- package/src/components/InputNumber/InputNumber.tsx +20 -20
- package/src/components/InputPhone/InputPhone.tsx +21 -16
- package/src/components/Layout/Layout.tsx +1 -3
- package/src/components/Link/Link.tsx +1 -3
- package/src/components/ListItem/ListItem.tsx +22 -20
- package/src/components/Menu/Menu.tsx +5 -9
- package/src/components/Modal/Modal.tsx +10 -5
- package/src/components/Modal/modal.scss +13 -1
- package/src/components/OTPInput/OTPInput.tsx +1 -3
- package/src/components/PageControl/PageControl.tsx +1 -3
- package/src/components/Pagination/Pagination.tsx +50 -24
- package/src/components/Pagination/pagination.scss +7 -17
- package/src/components/Password/Password.tsx +19 -20
- package/src/components/Popover/Popover.tsx +11 -20
- package/src/components/Popover/PopoverExample.tsx +1 -1
- package/src/components/ProgressBar/ProgressBar.tsx +1 -3
- package/src/components/ProgressCircle/ProgressCircle.tsx +1 -3
- package/src/components/ProgressionStepper/ProgressionStepper.tsx +1 -3
- package/src/components/RadioGroup/RadioGroup.tsx +2 -2
- package/src/components/Rating/Rating.tsx +34 -14
- package/src/components/Rating/RatingExample.tsx +18 -1
- package/src/components/SearchBar/SearchBar.tsx +2 -2
- package/src/components/SegmentedControl/SegmentedControl.tsx +3 -3
- package/src/components/SegmentedControl/SegmentedControlExample.tsx +10 -12
- package/src/components/Select/Select.tsx +24 -25
- package/src/components/Skeleton/Skeleton.tsx +10 -14
- package/src/components/Skeleton/SkeletonExample.tsx +5 -3
- package/src/components/SkeletonText/SkeletonText.tsx +5 -9
- package/src/components/Slider/Slider.tsx +2 -2
- package/src/components/Slider/SliderExample.tsx +42 -17
- package/src/components/Snackbar/Manager.tsx +64 -0
- package/src/components/Snackbar/Snackbar.tsx +23 -6
- package/src/components/Snackbar/SnackbarExample.tsx +28 -6
- package/src/components/Snackbar/index.tsx +1 -0
- package/src/components/StylesProviderDemo/StylesProviderDemo.tsx +1 -3
- package/src/components/Switch/Switch.tsx +2 -2
- package/src/components/TabGroup/TabGroup.tsx +2 -2
- package/src/components/TabGroup/TabGroupExample.tsx +5 -11
- package/src/components/TabGroup/tab-group.scss +1 -0
- package/src/components/TabList/TabList.tsx +2 -2
- package/src/components/TabList/tab-list.scss +0 -1
- package/src/components/Table/Table.tsx +53 -16
- package/src/components/Table/table.scss +0 -1
- package/src/components/Tag/Tag.tsx +1 -3
- package/src/components/Textarea/Textarea.tsx +13 -13
- package/src/components/TimePicker/TimePicker.tsx +14 -14
- package/src/components/ToggleOption/ToggleOption.tsx +1 -0
- package/src/components/ToggleOption/toggle-option.scss +2 -61
- package/src/components/Tooltip/Tooltip.tsx +3 -7
- package/src/components/Tooltip/TooltipExample.tsx +23 -11
- package/src/components/Txt/Txt.tsx +1 -3
- package/src/components/UIProvider/AriaLiveMessageHandler.tsx +4 -2
- package/src/hooks/useAddEventListener.ts +1 -3
- package/src/hooks/useTimeout.ts +1 -5
- package/src/types/common.ts +4 -0
- package/src/types/meta.ts +1 -0
- package/src/utils/createCustomEvent.ts +35 -0
- package/src/utils/createExampleChildElement.tsx +3 -8
- package/src/utils/demo.ts +24 -27
- package/dist/components/ListItem/ListItemButton.d.ts +0 -2
- package/dist/components/ListItem/ListItemButton.js +0 -7
- package/dist/components/ListItem/ListItemButton.js.map +0 -1
- package/dist/components/Pagination/PageInput.d.ts +0 -4
- package/dist/components/Pagination/PageInput.js +0 -36
- package/dist/components/Pagination/PageInput.js.map +0 -1
- package/dist/hooks/usePaginationState.d.ts +0 -4
- package/dist/hooks/usePaginationState.js +0 -22
- package/dist/hooks/usePaginationState.js.map +0 -1
- package/src/components/ListItem/ListItemButton.tsx +0 -6
- package/src/components/Pagination/PageInput.tsx +0 -65
- package/src/hooks/usePaginationState.tsx +0 -24
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import './pagination.scss';
|
|
2
2
|
import { SvgIcon } from '@bspk/icons/SvgIcon';
|
|
3
|
-
import { AriaAttributes } from 'react';
|
|
4
|
-
import { PageInput } from './PageInput';
|
|
3
|
+
import { AriaAttributes, useEffect, useState } from 'react';
|
|
5
4
|
import { PageList } from './PageList';
|
|
6
5
|
import { Button } from '-/components/Button';
|
|
6
|
+
import { InputElement } from '-/components/Input';
|
|
7
7
|
|
|
8
8
|
// After this point the manual input renders. With equal or fewer pages the individual page buttons render instead.
|
|
9
9
|
const INPUT_TYPE_THRESHOLD = 7;
|
|
@@ -12,7 +12,9 @@ export type PaginationProps = {
|
|
|
12
12
|
/**
|
|
13
13
|
* The number of pages to display in the pagination component.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
15
|
+
* If there is only one page, the component will not render.
|
|
16
|
+
*
|
|
17
|
+
* @default 2
|
|
16
18
|
*/
|
|
17
19
|
numPages: number;
|
|
18
20
|
/**
|
|
@@ -32,14 +34,11 @@ export type PaginationProps = {
|
|
|
32
34
|
*
|
|
33
35
|
* @example
|
|
34
36
|
* import { Pagination } from '@bspk/ui/Pagination';
|
|
35
|
-
* import { usePaginationState } from '@bspk/ui/hooks/usePaginationState';
|
|
36
37
|
*
|
|
37
38
|
* function Example() {
|
|
38
|
-
* const
|
|
39
|
-
*
|
|
40
|
-
* const { currentPage, setCurrentPage } = usePaginationState(numPages);
|
|
39
|
+
* const [currentPage, setCurrentPage] = useState(1);
|
|
41
40
|
*
|
|
42
|
-
* return <Pagination value={currentPage} onChange={setCurrentPage} numPages={
|
|
41
|
+
* return <Pagination value={currentPage} onChange={setCurrentPage} numPages={10} />;
|
|
43
42
|
* }
|
|
44
43
|
*
|
|
45
44
|
* @name Pagination
|
|
@@ -47,46 +46,73 @@ export type PaginationProps = {
|
|
|
47
46
|
*/
|
|
48
47
|
export function Pagination({ numPages, value, onChange, ...ariaProps }: AriaAttributes & PaginationProps) {
|
|
49
48
|
const nextPage = () => {
|
|
50
|
-
if (value < numPages)
|
|
51
|
-
onChange(value + 1);
|
|
52
|
-
}
|
|
49
|
+
if (value < numPages) onChange(value + 1);
|
|
53
50
|
};
|
|
54
51
|
|
|
55
52
|
const previousPage = () => {
|
|
56
|
-
if (value > 1)
|
|
57
|
-
onChange(value - 1);
|
|
58
|
-
}
|
|
53
|
+
if (value > 1) onChange(value - 1);
|
|
59
54
|
};
|
|
60
55
|
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
const [inputValue, setInputValue] = useState<string | undefined>(`${value}`);
|
|
57
|
+
|
|
58
|
+
useEffect(() => setInputValue(`${value}`), [value]);
|
|
59
|
+
|
|
60
|
+
const submitInputChange = () => {
|
|
61
|
+
const parsedValue = parseInt(inputValue || '', 10);
|
|
62
|
+
if (isNaN(parsedValue)) return setInputValue(`${value}`);
|
|
63
|
+
|
|
64
|
+
let next = parsedValue;
|
|
65
|
+
if (parsedValue < 1) next = 1;
|
|
66
|
+
if (parsedValue > numPages) next = numPages;
|
|
67
|
+
|
|
68
|
+
onChange(next);
|
|
69
|
+
if (next !== parsedValue) setInputValue(`${next}`);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const inBounds = (n: number) => n >= 1 && n <= numPages;
|
|
73
|
+
|
|
74
|
+
if (numPages <= 1) return null;
|
|
65
75
|
|
|
66
76
|
return (
|
|
67
77
|
<span data-bspk="pagination" role="group" {...ariaProps}>
|
|
68
78
|
<Button
|
|
69
|
-
disabled={
|
|
79
|
+
disabled={!inBounds(value - 1)}
|
|
70
80
|
icon={<SvgIcon name="ChevronLeft" />}
|
|
71
81
|
iconOnly
|
|
72
|
-
label={
|
|
82
|
+
label={value === 1 ? 'First page' : `Previous page (${value - 1})`}
|
|
73
83
|
onClick={previousPage}
|
|
74
84
|
owner="pagination"
|
|
75
85
|
size="small"
|
|
76
86
|
variant="tertiary"
|
|
77
87
|
/>
|
|
78
|
-
|
|
79
88
|
{numPages > INPUT_TYPE_THRESHOLD ? (
|
|
80
|
-
<
|
|
89
|
+
<form
|
|
90
|
+
data-input-form
|
|
91
|
+
onSubmit={(e) => {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
submitInputChange();
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<InputElement
|
|
97
|
+
name="page-number"
|
|
98
|
+
onBlur={() => submitInputChange()}
|
|
99
|
+
onChange={setInputValue}
|
|
100
|
+
owner="pagination"
|
|
101
|
+
showClearButton={false}
|
|
102
|
+
type="number"
|
|
103
|
+
value={inputValue}
|
|
104
|
+
/>
|
|
105
|
+
of {numPages}
|
|
106
|
+
</form>
|
|
81
107
|
) : (
|
|
82
108
|
<PageList numPages={numPages} onChange={onChange} value={value} />
|
|
83
109
|
)}
|
|
84
110
|
|
|
85
111
|
<Button
|
|
86
|
-
disabled={
|
|
112
|
+
disabled={!inBounds(value + 1)}
|
|
87
113
|
icon={<SvgIcon name="ChevronRight" />}
|
|
88
114
|
iconOnly
|
|
89
|
-
label={
|
|
115
|
+
label={value === numPages ? 'Last page' : `Next page (${value + 1})`}
|
|
90
116
|
onClick={nextPage}
|
|
91
117
|
owner="pagination"
|
|
92
118
|
size="small"
|
|
@@ -6,25 +6,15 @@
|
|
|
6
6
|
gap: var(--spacing-sizing-01);
|
|
7
7
|
flex: 1;
|
|
8
8
|
|
|
9
|
-
[data-
|
|
10
|
-
display:
|
|
11
|
-
|
|
12
|
-
align-items: center;
|
|
13
|
-
justify-content: center;
|
|
14
|
-
gap: var(--spacing-sizing-01);
|
|
15
|
-
|
|
16
|
-
[data-bspk='txt'] {
|
|
17
|
-
color: var(--foreground-neutral-on-surface-variant-02);
|
|
18
|
-
text-wrap: nowrap;
|
|
19
|
-
}
|
|
9
|
+
[data-input-form] {
|
|
10
|
+
display: contents;
|
|
11
|
+
}
|
|
20
12
|
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
[data-bspk='input'] {
|
|
14
|
+
max-width: var(--spacing-sizing-12);
|
|
23
15
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
flex: 1;
|
|
27
|
-
}
|
|
16
|
+
input {
|
|
17
|
+
text-align: center;
|
|
28
18
|
}
|
|
29
19
|
}
|
|
30
20
|
|
|
@@ -16,30 +16,29 @@ export type PasswordProps = FieldControlProps & Pick<InputProps, 'containerRef'
|
|
|
16
16
|
* import { Password } from '@bspk/ui/Password';
|
|
17
17
|
* import { useState } from 'react';
|
|
18
18
|
*
|
|
19
|
-
*
|
|
19
|
+
* () => {
|
|
20
20
|
* const [value, setValue] = useState('');
|
|
21
21
|
*
|
|
22
22
|
* return (
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
23
|
+
* <>
|
|
24
|
+
* // standalone password example
|
|
25
|
+
* <Password
|
|
26
|
+
* aria-label="Enter password"
|
|
27
|
+
* value={value}
|
|
28
|
+
* onChange={setValue}
|
|
29
|
+
* aria-label="password"
|
|
30
|
+
* name="password"
|
|
31
|
+
* />
|
|
32
|
+
* <br />
|
|
33
|
+
* // password used within a field
|
|
34
|
+
* <Field>
|
|
35
|
+
* <FieldLabel>Password</FieldLabel>
|
|
36
|
+
* <Password value={value} onChange={setValue} aria-label="password" name="password" />
|
|
37
|
+
* <FieldDescription>The password field allows you to enter a secure password.</FieldDescription>
|
|
38
|
+
* </Field>
|
|
39
|
+
* </>
|
|
30
40
|
* );
|
|
31
|
-
* }
|
|
32
|
-
*
|
|
33
|
-
* function ExampleWithField() {
|
|
34
|
-
* const [value, setValue] = useState('');
|
|
35
|
-
* return (
|
|
36
|
-
* <Field>
|
|
37
|
-
* <FieldLabel>Password</FieldLabel>
|
|
38
|
-
* <Password value={value} onChange={setValue} aria-label="password" name="password" />
|
|
39
|
-
* <FieldDescription>The password field allows you to enter a secure password.</FieldDescription>
|
|
40
|
-
* </Field>
|
|
41
|
-
* );
|
|
42
|
-
* }
|
|
41
|
+
* };
|
|
43
42
|
*
|
|
44
43
|
* @name Password
|
|
45
44
|
* @phase UXReview
|
|
@@ -60,26 +60,17 @@ export type PopoverProps = CommonProps<'disabled'> &
|
|
|
60
60
|
* import { Popover } from '@bspk/ui/Popover';
|
|
61
61
|
* import { Button } from '@bspk/ui/Button';
|
|
62
62
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* callToAction={{
|
|
75
|
-
* label: 'Action',
|
|
76
|
-
* onClick: onPopoverCallToActionClick,
|
|
77
|
-
* }}
|
|
78
|
-
* >
|
|
79
|
-
* <Button label="Toggle popover" onClick={togglePopover} />
|
|
80
|
-
* </Popover>
|
|
81
|
-
* );
|
|
82
|
-
* }
|
|
63
|
+
* <Popover
|
|
64
|
+
* placement="bottom"
|
|
65
|
+
* content="This is a popover content"
|
|
66
|
+
* header="Popover Header"
|
|
67
|
+
* callToAction={{
|
|
68
|
+
* label: 'Action',
|
|
69
|
+
* onClick: () => action('Action clicked'),
|
|
70
|
+
* }}
|
|
71
|
+
* >
|
|
72
|
+
* {(triggerProps) => <Button {...triggerProps} label="Toggle popover" />}
|
|
73
|
+
* </Popover>;
|
|
83
74
|
*
|
|
84
75
|
* @name Popover
|
|
85
76
|
* @phase UXReview
|
|
@@ -8,7 +8,7 @@ export const PopoverExample: ComponentExampleFn<PopoverProps> = ({ action }) =>
|
|
|
8
8
|
render: ({ props, Component }) => {
|
|
9
9
|
return (
|
|
10
10
|
<>
|
|
11
|
-
<Txt style={{ marginBottom: `var(--spacing-sizing-02)` }}>Click
|
|
11
|
+
<Txt style={{ marginBottom: `var(--spacing-sizing-02)` }}>Click for a Popover</Txt>
|
|
12
12
|
<Component {...props}>
|
|
13
13
|
{(triggerProps) => <Button label={`${props.placement}`} variant="secondary" {...triggerProps} />}
|
|
14
14
|
</Component>
|
|
@@ -53,9 +53,7 @@ export type ProgressBarProps = {
|
|
|
53
53
|
* @example
|
|
54
54
|
* import { ProgressBar } from '@bspk/ui/ProgressBar';
|
|
55
55
|
*
|
|
56
|
-
*
|
|
57
|
-
* return <ProgressBar label="Example label" completion={50} />;
|
|
58
|
-
* }
|
|
56
|
+
* <ProgressBar label="Example label" completion={50} />;
|
|
59
57
|
*
|
|
60
58
|
* @name ProgressBar
|
|
61
59
|
* @phase UXReview
|
|
@@ -27,9 +27,7 @@ export type ProgressCircleProps = {
|
|
|
27
27
|
* @example
|
|
28
28
|
* import { ProgressCircle } from '@bspk/ui/ProgressCircle';
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
* return <ProgressCircle label="Example label" />;
|
|
32
|
-
* }
|
|
30
|
+
* <ProgressCircle label="Example label" />;
|
|
33
31
|
*
|
|
34
32
|
* @name ProgressCircle
|
|
35
33
|
* @phase UXReview
|
|
@@ -59,9 +59,7 @@ export type ProgressionStepperProps = {
|
|
|
59
59
|
* @example
|
|
60
60
|
* import { ProgressionStepper } from '@bspk/ui/ProgressionStepper';
|
|
61
61
|
*
|
|
62
|
-
*
|
|
63
|
-
* return <ProgressionStepper steps={[{ name: 'Step 1' }, { name: 'Step 2' }, { name: 'Step 3' }]} />;
|
|
64
|
-
* }
|
|
62
|
+
* <ProgressionStepper steps={[{ name: 'Step 1' }, { name: 'Step 2' }, { name: 'Step 3' }]} />;
|
|
65
63
|
*
|
|
66
64
|
* @name ProgressionStepper
|
|
67
65
|
* @phase UXReview
|
|
@@ -40,7 +40,7 @@ export type RadioGroupProps = Omit<FieldControlProps, 'readOnly'> & {
|
|
|
40
40
|
* import { useState } from 'react';
|
|
41
41
|
* import { RadioGroup } from '@bspk/ui/RadioGroup';
|
|
42
42
|
*
|
|
43
|
-
*
|
|
43
|
+
* () => {
|
|
44
44
|
* const [selectedOption, setSelectedOption] = useState<string>('1');
|
|
45
45
|
*
|
|
46
46
|
* return (
|
|
@@ -59,7 +59,7 @@ export type RadioGroupProps = Omit<FieldControlProps, 'readOnly'> & {
|
|
|
59
59
|
* value={selectedOption}
|
|
60
60
|
* />
|
|
61
61
|
* );
|
|
62
|
-
* }
|
|
62
|
+
* };
|
|
63
63
|
*
|
|
64
64
|
* @name RadioGroup
|
|
65
65
|
* @phase UXReview
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import './rating.scss';
|
|
2
2
|
import { SvgStarFill } from '@bspk/icons/StarFill';
|
|
3
|
-
import { ElementType } from 'react';
|
|
4
3
|
|
|
5
4
|
export type RatingSize = 'large' | 'medium' | 'small';
|
|
6
5
|
export type RatingProps = {
|
|
@@ -12,7 +11,7 @@ export type RatingProps = {
|
|
|
12
11
|
*/
|
|
13
12
|
value?: number;
|
|
14
13
|
/**
|
|
15
|
-
* If included the component is
|
|
14
|
+
* If included the component is interactive and this callback is fired when the user selects a new rating value.
|
|
16
15
|
*
|
|
17
16
|
* @param value - The new value of the rating.
|
|
18
17
|
*/
|
|
@@ -39,37 +38,58 @@ const iconWidths: Record<RatingSize, number> = {
|
|
|
39
38
|
* @example
|
|
40
39
|
* import { Rating } from '@bspk/ui/Rating';
|
|
41
40
|
*
|
|
42
|
-
*
|
|
43
|
-
* return <Rating value={4.5} />;
|
|
44
|
-
* }
|
|
41
|
+
* <Rating value={4.5} size="large" />;
|
|
45
42
|
*
|
|
46
43
|
* @name Rating
|
|
47
44
|
* @phase UXReview
|
|
48
45
|
*/
|
|
49
46
|
export function Rating({ size = 'medium', value, onChange }: RatingProps) {
|
|
50
|
-
|
|
47
|
+
if (!onChange)
|
|
48
|
+
return (
|
|
49
|
+
<div
|
|
50
|
+
aria-label={value ? `${value} out of ${MAX_STARS} stars` : 'Rating'}
|
|
51
|
+
data-bspk="rating"
|
|
52
|
+
data-size={size}
|
|
53
|
+
role="img"
|
|
54
|
+
>
|
|
55
|
+
{Array.from({ length: MAX_STARS }, (_, index) => {
|
|
56
|
+
const fill = getFill(index + 1, value);
|
|
57
|
+
return (
|
|
58
|
+
<div data-fill={fill} data-star key={index} role="presentation" tabIndex={-1}>
|
|
59
|
+
<SvgStarFill width={iconWidths[size]} />
|
|
60
|
+
{fill === 'half' && (
|
|
61
|
+
<div data-fill-half>
|
|
62
|
+
<div data-star>
|
|
63
|
+
<SvgStarFill width={iconWidths[size]} />
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
)}
|
|
67
|
+
</div>
|
|
68
|
+
);
|
|
69
|
+
})}
|
|
70
|
+
</div>
|
|
71
|
+
);
|
|
51
72
|
|
|
52
73
|
return (
|
|
53
74
|
<div
|
|
54
|
-
aria-label={
|
|
75
|
+
aria-label={value ? `${value} out of ${MAX_STARS} stars` : 'Select a star rating'}
|
|
55
76
|
data-bspk="rating"
|
|
56
77
|
data-size={size}
|
|
57
|
-
role=
|
|
78
|
+
role="radiogroup"
|
|
58
79
|
>
|
|
59
80
|
{Array.from({ length: MAX_STARS }, (_, index) => {
|
|
60
81
|
const fill = getFill(index + 1, value);
|
|
61
82
|
const selected = value !== undefined && Math.floor(value) === index;
|
|
62
83
|
return (
|
|
63
|
-
<
|
|
84
|
+
<button
|
|
64
85
|
aria-checked={selected}
|
|
65
|
-
aria-
|
|
66
|
-
aria-label={onChange ? `Rate ${index + 1}` : undefined}
|
|
86
|
+
aria-label={`Rate ${index + 1}`}
|
|
67
87
|
data-fill={fill}
|
|
68
88
|
data-star
|
|
69
89
|
key={index}
|
|
70
90
|
onClick={() => onChange?.(index + 1)}
|
|
71
|
-
role=
|
|
72
|
-
tabIndex={
|
|
91
|
+
role="radio"
|
|
92
|
+
tabIndex={selected ? 0 : -1}
|
|
73
93
|
type="button"
|
|
74
94
|
>
|
|
75
95
|
<SvgStarFill width={iconWidths[size]} />
|
|
@@ -80,7 +100,7 @@ export function Rating({ size = 'medium', value, onChange }: RatingProps) {
|
|
|
80
100
|
</div>
|
|
81
101
|
</div>
|
|
82
102
|
)}
|
|
83
|
-
</
|
|
103
|
+
</button>
|
|
84
104
|
);
|
|
85
105
|
})}
|
|
86
106
|
</div>
|
|
@@ -3,11 +3,28 @@ import { ComponentExampleFn, Preset } from '-/utils/demo';
|
|
|
3
3
|
|
|
4
4
|
export const presets: Preset<RatingProps>[] = [
|
|
5
5
|
{
|
|
6
|
-
label: '
|
|
6
|
+
label: 'Read Only, No Value',
|
|
7
7
|
propState: {
|
|
8
8
|
onChange: undefined,
|
|
9
|
+
value: undefined,
|
|
9
10
|
},
|
|
10
11
|
},
|
|
12
|
+
{
|
|
13
|
+
label: 'Read Only',
|
|
14
|
+
propState: {
|
|
15
|
+
onChange: undefined,
|
|
16
|
+
value: 4.5,
|
|
17
|
+
},
|
|
18
|
+
designPattern: 'A read only representation of ratings, a scale of 1 to 5.',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
label: 'Interactive',
|
|
22
|
+
propState: {
|
|
23
|
+
onChange: () => {},
|
|
24
|
+
},
|
|
25
|
+
designPattern:
|
|
26
|
+
'Interactive control that allow customers to indicate their feelings about an experience or product on a scale of 1 to 5.',
|
|
27
|
+
},
|
|
11
28
|
];
|
|
12
29
|
|
|
13
30
|
export const RatingExample: ComponentExampleFn<RatingProps> = () => {
|
|
@@ -72,7 +72,7 @@ export type SearchBarProps<O extends SearchBarOption = SearchBarOption> = Omit<
|
|
|
72
72
|
* import { useState } from 'react';
|
|
73
73
|
* import { SearchBar } from '@bspk/ui/SearchBar';
|
|
74
74
|
*
|
|
75
|
-
*
|
|
75
|
+
* () => {
|
|
76
76
|
* const [searchText, setSearchText] = useState('');
|
|
77
77
|
*
|
|
78
78
|
* return (
|
|
@@ -96,7 +96,7 @@ export type SearchBarProps<O extends SearchBarOption = SearchBarOption> = Omit<
|
|
|
96
96
|
* onChange={setSearchText}
|
|
97
97
|
* />
|
|
98
98
|
* );
|
|
99
|
-
* }
|
|
99
|
+
* };
|
|
100
100
|
*
|
|
101
101
|
* @name SearchBar
|
|
102
102
|
* @phase UXReview
|
|
@@ -12,8 +12,8 @@ export type SegmentedControlProps = TabListProps<SegmentedControlOption>;
|
|
|
12
12
|
* import { useState } from 'react';
|
|
13
13
|
* import { SegmentedControl } from '@bspk/ui/SegmentedControl';
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
* const [selectedOption, setSelectedOption] = useState<string>();
|
|
15
|
+
* () => {
|
|
16
|
+
* const [selectedOption, setSelectedOption] = useState<string>('');
|
|
17
17
|
*
|
|
18
18
|
* return (
|
|
19
19
|
* <SegmentedControl
|
|
@@ -26,7 +26,7 @@ export type SegmentedControlProps = TabListProps<SegmentedControlOption>;
|
|
|
26
26
|
* value={selectedOption}
|
|
27
27
|
* />
|
|
28
28
|
* );
|
|
29
|
-
* }
|
|
29
|
+
* };
|
|
30
30
|
*
|
|
31
31
|
* @name SegmentedControl
|
|
32
32
|
* @phase UXReview
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import { SvgCircle } from '@bspk/icons/Circle';
|
|
2
|
-
import { SvgDiamond } from '@bspk/icons/Diamond';
|
|
3
|
-
import { SvgDiamondFill } from '@bspk/icons/DiamondFill';
|
|
4
|
-
import { SvgSquare } from '@bspk/icons/Square';
|
|
5
|
-
import { SvgSquareFill } from '@bspk/icons/SquareFill';
|
|
6
|
-
|
|
7
1
|
import { SegmentedControlOption, SegmentedControlProps } from '.';
|
|
8
2
|
import { ComponentExample, Preset } from '-/utils/demo';
|
|
9
3
|
|
|
@@ -11,20 +5,20 @@ const PRESET_OPTIONS: SegmentedControlOption[] = [
|
|
|
11
5
|
{
|
|
12
6
|
value: '1',
|
|
13
7
|
label: 'Option 1',
|
|
14
|
-
icon:
|
|
15
|
-
iconSelected:
|
|
8
|
+
icon: 'Diamond',
|
|
9
|
+
iconSelected: 'DiamondFill',
|
|
16
10
|
},
|
|
17
11
|
{
|
|
18
12
|
value: '2',
|
|
19
13
|
label: 'Disabled 2',
|
|
20
14
|
disabled: true,
|
|
21
|
-
icon:
|
|
15
|
+
icon: 'Circle',
|
|
22
16
|
},
|
|
23
17
|
{
|
|
24
18
|
value: '3',
|
|
25
19
|
label: 'Option 3',
|
|
26
|
-
icon:
|
|
27
|
-
iconSelected:
|
|
20
|
+
icon: 'Square',
|
|
21
|
+
iconSelected: 'SquareFill',
|
|
28
22
|
},
|
|
29
23
|
];
|
|
30
24
|
|
|
@@ -64,7 +58,11 @@ export const presets: Preset<SegmentedControlProps>[] = [
|
|
|
64
58
|
export const SegmentedControlExample: ComponentExample<SegmentedControlProps> = {
|
|
65
59
|
containerStyle: { width: '100%', overflow: 'auto', alignItems: 'start' },
|
|
66
60
|
defaultState: {
|
|
67
|
-
options: PRESET_OPTIONS
|
|
61
|
+
options: PRESET_OPTIONS.map((option) => ({
|
|
62
|
+
...option,
|
|
63
|
+
icon: undefined,
|
|
64
|
+
iconSelected: undefined,
|
|
65
|
+
})),
|
|
68
66
|
},
|
|
69
67
|
presets,
|
|
70
68
|
variants: false,
|
|
@@ -77,29 +77,14 @@ export type SelectProps = CommonProps<'size'> &
|
|
|
77
77
|
* { id: '6', label: 'Option 6' },
|
|
78
78
|
* ];
|
|
79
79
|
*
|
|
80
|
-
*
|
|
81
|
-
* const [selected, setSelected] =
|
|
80
|
+
* () => {
|
|
81
|
+
* const [selected, setSelected] = useState<string[]>([]);
|
|
82
82
|
*
|
|
83
83
|
* return (
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* itemCount={5}
|
|
87
|
-
* name="example-select"
|
|
88
|
-
* onChange={setSelected}
|
|
89
|
-
* options={OPTIONS}
|
|
90
|
-
* placeholder="Select an option"
|
|
91
|
-
* size="medium"
|
|
92
|
-
* value={selected}
|
|
93
|
-
* />
|
|
94
|
-
* );
|
|
95
|
-
* }
|
|
96
|
-
*
|
|
97
|
-
* function ExampleWithField() {
|
|
98
|
-
* const [selected, setSelected] = React.useState<string[]>([]);
|
|
99
|
-
* return (
|
|
100
|
-
* <Field>
|
|
101
|
-
* <FieldLabel>Select an option</FieldLabel>
|
|
84
|
+
* <>
|
|
85
|
+
* // standalone select example
|
|
102
86
|
* <Select
|
|
87
|
+
* aria-label="Select an option"
|
|
103
88
|
* itemCount={5}
|
|
104
89
|
* name="example-select"
|
|
105
90
|
* onChange={setSelected}
|
|
@@ -108,12 +93,26 @@ export type SelectProps = CommonProps<'size'> &
|
|
|
108
93
|
* size="medium"
|
|
109
94
|
* value={selected}
|
|
110
95
|
* />
|
|
111
|
-
* <
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
96
|
+
* <br />
|
|
97
|
+
* // select used within a field
|
|
98
|
+
* <Field>
|
|
99
|
+
* <FieldLabel>Select an option</FieldLabel>
|
|
100
|
+
* <Select
|
|
101
|
+
* itemCount={5}
|
|
102
|
+
* name="example-select"
|
|
103
|
+
* onChange={setSelected}
|
|
104
|
+
* options={OPTIONS}
|
|
105
|
+
* placeholder="Select an option"
|
|
106
|
+
* size="medium"
|
|
107
|
+
* value={selected}
|
|
108
|
+
* />
|
|
109
|
+
* <FieldDescription>
|
|
110
|
+
* The select allows you to choose one option from a list of options.
|
|
111
|
+
* </FieldDescription>
|
|
112
|
+
* </Field>
|
|
113
|
+
* </>
|
|
115
114
|
* );
|
|
116
|
-
* }
|
|
115
|
+
* };
|
|
117
116
|
*
|
|
118
117
|
* @name Select
|
|
119
118
|
* @phase UXReview
|
|
@@ -49,20 +49,16 @@ export type SkeletonProps = {
|
|
|
49
49
|
* @example
|
|
50
50
|
* import { Skeleton } from '@bspk/ui/skeleton';
|
|
51
51
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* />
|
|
63
|
-
* </Skeleton>
|
|
64
|
-
* );
|
|
65
|
-
* }
|
|
52
|
+
* <Skeleton variant="photo" width={210} height={118}>
|
|
53
|
+
* <img
|
|
54
|
+
* style={{
|
|
55
|
+
* width: 210,
|
|
56
|
+
* height: 118,
|
|
57
|
+
* }}
|
|
58
|
+
* alt={'A cool photo'}
|
|
59
|
+
* src={'https://example.com/cool-photo.jpg'}
|
|
60
|
+
* />
|
|
61
|
+
* </Skeleton>;
|
|
66
62
|
*
|
|
67
63
|
* @exampleDescription This example shows a skeleton loading state for an image but can be used for any element.
|
|
68
64
|
*
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { useState } from 'react';
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
2
|
import { SkeletonProps, SkeletonVariant } from '.';
|
|
3
3
|
import { Avatar } from '-/components/Avatar';
|
|
4
4
|
import { ExamplePlaceholder } from '-/components/ExamplePlaceholder';
|
|
5
|
-
import { useTimeout } from '-/hooks/useTimeout';
|
|
6
5
|
import { ComponentExample, ComponentExampleRenderProps, Preset } from '-/utils/demo';
|
|
7
6
|
|
|
8
7
|
export const presets: Preset<SkeletonProps>[] = [
|
|
@@ -29,7 +28,10 @@ function SkeletonTransition({
|
|
|
29
28
|
props,
|
|
30
29
|
}: Pick<ComponentExampleRenderProps<SkeletonProps>, 'Component' | 'props'>) {
|
|
31
30
|
const [loaded, setLoaded] = useState(false);
|
|
32
|
-
|
|
31
|
+
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
setTimeout(() => setLoaded(true), 3000);
|
|
34
|
+
}, []);
|
|
33
35
|
|
|
34
36
|
return <Component {...props}>{loaded && PROP_VARIANT_CHILDREN[props!.variant as SkeletonVariant]}</Component>;
|
|
35
37
|
}
|