@bspk/ui 1.0.1 → 1.1.12
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 +5 -0
- package/{Avatar.d.ts → dist/Avatar.d.ts} +2 -2
- package/dist/Avatar.js +27 -0
- package/dist/Avatar.js.map +1 -0
- package/{Badge.d.ts → dist/Badge.d.ts} +2 -2
- package/dist/Badge.js +16 -0
- package/dist/Badge.js.map +1 -0
- package/{BannerAlert.d.ts → dist/BannerAlert.d.ts} +4 -4
- package/dist/BannerAlert.js +20 -0
- package/dist/BannerAlert.js.map +1 -0
- package/{Button.d.ts → dist/Button.d.ts} +1 -1
- package/dist/Button.js +30 -0
- package/dist/Button.js.map +1 -0
- package/{Card.d.ts → dist/Card.d.ts} +2 -2
- package/dist/Card.js +18 -0
- package/dist/Card.js.map +1 -0
- package/{Checkbox.d.ts → dist/Checkbox.d.ts} +2 -2
- package/dist/Checkbox.js +32 -0
- package/dist/Checkbox.js.map +1 -0
- package/{CheckboxGroup.d.ts → dist/CheckboxGroup.d.ts} +1 -1
- package/dist/CheckboxGroup.js +16 -0
- package/dist/CheckboxGroup.js.map +1 -0
- package/{CheckboxOption.d.ts → dist/CheckboxOption.d.ts} +1 -1
- package/dist/CheckboxOption.js +14 -0
- package/dist/CheckboxOption.js.map +1 -0
- package/{Chip.d.ts → dist/Chip.d.ts} +2 -2
- package/dist/Chip.js +22 -0
- package/dist/Chip.js.map +1 -0
- package/{Dialog.d.ts → dist/Dialog.d.ts} +2 -2
- package/dist/Dialog.js +70 -0
- package/dist/Dialog.js.map +1 -0
- package/{Divider.d.ts → dist/Divider.d.ts} +2 -2
- package/dist/Divider.js +26 -0
- package/dist/Divider.js.map +1 -0
- package/{Dropdown.d.ts → dist/Dropdown.d.ts} +2 -2
- package/dist/Dropdown.js +37 -0
- package/dist/Dropdown.js.map +1 -0
- package/{DropdownField.d.ts → dist/DropdownField.d.ts} +1 -1
- package/{DropdownField.js → dist/DropdownField.js} +5 -7
- package/dist/DropdownField.js.map +1 -0
- package/{EmptyState.d.ts → dist/EmptyState.d.ts} +7 -1
- package/dist/EmptyState.js +18 -0
- package/dist/EmptyState.js.map +1 -0
- package/{Fab.d.ts → dist/Fab.d.ts} +2 -2
- package/dist/Fab.js +24 -0
- package/dist/Fab.js.map +1 -0
- package/{FormField.d.ts → dist/FormField.d.ts} +2 -2
- package/dist/FormField.js +27 -0
- package/dist/FormField.js.map +1 -0
- package/{Img.d.ts → dist/Img.d.ts} +1 -1
- package/dist/Img.js +12 -0
- package/dist/Img.js.map +1 -0
- package/{InlineAlert.d.ts → dist/InlineAlert.d.ts} +2 -2
- package/dist/InlineAlert.js +27 -0
- package/dist/InlineAlert.js.map +1 -0
- package/{Layout.d.ts → dist/Layout.d.ts} +1 -1
- package/{Layout.js → dist/Layout.js} +3 -5
- package/dist/Layout.js.map +1 -0
- package/{Link.d.ts → dist/Link.d.ts} +2 -2
- package/dist/Link.js +17 -0
- package/dist/Link.js.map +1 -0
- package/{ListItem.d.ts → dist/ListItem.d.ts} +3 -3
- package/dist/ListItem.js +93 -0
- package/dist/ListItem.js.map +1 -0
- package/{Menu.d.ts → dist/Menu.d.ts} +2 -2
- package/dist/Menu.js +62 -0
- package/dist/Menu.js.map +1 -0
- package/{MenuButton.d.ts → dist/MenuButton.d.ts} +2 -2
- package/dist/MenuButton.js +15 -0
- package/dist/MenuButton.js.map +1 -0
- package/{Modal.d.ts → dist/Modal.d.ts} +2 -2
- package/dist/Modal.js +32 -0
- package/dist/Modal.js.map +1 -0
- package/{NumberField.d.ts → dist/NumberField.d.ts} +1 -1
- package/{NumberField.js → dist/NumberField.js} +5 -7
- package/dist/NumberField.js.map +1 -0
- package/{NumberInput.d.ts → dist/NumberInput.d.ts} +2 -2
- package/dist/NumberInput.js +64 -0
- package/dist/NumberInput.js.map +1 -0
- package/{Popover.d.ts → dist/Popover.d.ts} +2 -2
- package/dist/Popover.js +46 -0
- package/dist/Popover.js.map +1 -0
- package/{Portal.js → dist/Portal.js} +4 -5
- package/dist/Portal.js.map +1 -0
- package/{ProgressBar.d.ts → dist/ProgressBar.d.ts} +2 -2
- package/dist/ProgressBar.js +17 -0
- package/dist/ProgressBar.js.map +1 -0
- package/{ProgressCircle.d.ts → dist/ProgressCircle.d.ts} +3 -3
- package/dist/ProgressCircle.js +30 -0
- package/dist/ProgressCircle.js.map +1 -0
- package/{ProgressionStepper.d.ts → dist/ProgressionStepper.d.ts} +2 -2
- package/dist/ProgressionStepper.js +24 -0
- package/dist/ProgressionStepper.js.map +1 -0
- package/{ProgressionStepperBar.d.ts → dist/ProgressionStepperBar.d.ts} +7 -3
- package/dist/ProgressionStepperBar.js +15 -0
- package/dist/ProgressionStepperBar.js.map +1 -0
- package/{Radio.d.ts → dist/Radio.d.ts} +2 -2
- package/dist/Radio.js +18 -0
- package/dist/Radio.js.map +1 -0
- package/{RadioGroup.d.ts → dist/RadioGroup.d.ts} +1 -1
- package/dist/RadioGroup.js +16 -0
- package/dist/RadioGroup.js.map +1 -0
- package/{RadioOption.d.ts → dist/RadioOption.d.ts} +1 -1
- package/dist/RadioOption.js +14 -0
- package/dist/RadioOption.js.map +1 -0
- package/{SearchBar.d.ts → dist/SearchBar.d.ts} +2 -2
- package/{SearchBar.js → dist/SearchBar.js} +13 -19
- package/dist/SearchBar.js.map +1 -0
- package/{SegmentedControl.d.ts → dist/SegmentedControl.d.ts} +2 -2
- package/dist/SegmentedControl.js +22 -0
- package/dist/SegmentedControl.js.map +1 -0
- package/dist/Skeleton.d.ts +45 -0
- package/dist/Skeleton.js +25 -0
- package/dist/Skeleton.js.map +1 -0
- package/{StylesProviderAnywhere.d.ts → dist/StylesProviderAnywhere.d.ts} +4 -1
- package/dist/StylesProviderAnywhere.js +15 -0
- package/dist/StylesProviderAnywhere.js.map +1 -0
- package/{StylesProviderBetterHomesGardens.d.ts → dist/StylesProviderBetterHomesGardens.d.ts} +4 -1
- package/dist/StylesProviderBetterHomesGardens.js +15 -0
- package/dist/StylesProviderBetterHomesGardens.js.map +1 -0
- package/{StylesProviderCartus.d.ts → dist/StylesProviderCartus.d.ts} +4 -1
- package/dist/StylesProviderCartus.js +15 -0
- package/dist/StylesProviderCartus.js.map +1 -0
- package/{StylesProviderCentury21.d.ts → dist/StylesProviderCentury21.d.ts} +4 -1
- package/dist/StylesProviderCentury21.js +15 -0
- package/dist/StylesProviderCentury21.js.map +1 -0
- package/{StylesProviderColdwellBanker.d.ts → dist/StylesProviderColdwellBanker.d.ts} +4 -1
- package/dist/StylesProviderColdwellBanker.js +15 -0
- package/dist/StylesProviderColdwellBanker.js.map +1 -0
- package/{StylesProviderCorcoran.d.ts → dist/StylesProviderCorcoran.d.ts} +4 -1
- package/dist/StylesProviderCorcoran.js +15 -0
- package/dist/StylesProviderCorcoran.js.map +1 -0
- package/{StylesProviderDenaliBoss.d.ts → dist/StylesProviderDenaliBoss.d.ts} +4 -1
- package/dist/StylesProviderDenaliBoss.js +15 -0
- package/dist/StylesProviderDenaliBoss.js.map +1 -0
- package/{StylesProviderEra.d.ts → dist/StylesProviderEra.d.ts} +4 -1
- package/dist/StylesProviderEra.js +15 -0
- package/dist/StylesProviderEra.js.map +1 -0
- package/{StylesProviderSothebys.d.ts → dist/StylesProviderSothebys.d.ts} +4 -1
- package/dist/StylesProviderSothebys.js +15 -0
- package/dist/StylesProviderSothebys.js.map +1 -0
- package/{Switch.d.ts → dist/Switch.d.ts} +2 -2
- package/dist/Switch.js +21 -0
- package/dist/Switch.js.map +1 -0
- package/{SwitchGroup.d.ts → dist/SwitchGroup.d.ts} +1 -1
- package/dist/SwitchGroup.js +16 -0
- package/dist/SwitchGroup.js.map +1 -0
- package/{SwitchOption.d.ts → dist/SwitchOption.d.ts} +1 -1
- package/dist/SwitchOption.js +14 -0
- package/dist/SwitchOption.js.map +1 -0
- package/{TabGroup.d.ts → dist/TabGroup.d.ts} +2 -2
- package/dist/TabGroup.js +22 -0
- package/dist/TabGroup.js.map +1 -0
- package/{Table.d.ts → dist/Table.d.ts} +2 -2
- package/dist/Table.js +20 -0
- package/dist/Table.js.map +1 -0
- package/{Tag.d.ts → dist/Tag.d.ts} +2 -2
- package/dist/Tag.js +15 -0
- package/dist/Tag.js.map +1 -0
- package/{TextField.d.ts → dist/TextField.d.ts} +1 -1
- package/dist/TextField.js +17 -0
- package/dist/TextField.js.map +1 -0
- package/{TextInput.d.ts → dist/TextInput.d.ts} +2 -2
- package/dist/TextInput.js +23 -0
- package/dist/TextInput.js.map +1 -0
- package/{Textarea.d.ts → dist/Textarea.d.ts} +2 -2
- package/dist/Textarea.js +39 -0
- package/dist/Textarea.js.map +1 -0
- package/{TextareaField.d.ts → dist/TextareaField.d.ts} +1 -1
- package/dist/TextareaField.js +24 -0
- package/dist/TextareaField.js.map +1 -0
- package/{ToggleOption.d.ts → dist/ToggleOption.d.ts} +2 -2
- package/dist/ToggleOption.js +14 -0
- package/dist/ToggleOption.js.map +1 -0
- package/{Tooltip.d.ts → dist/Tooltip.d.ts} +2 -2
- package/dist/Tooltip.js +42 -0
- package/dist/Tooltip.js.map +1 -0
- package/{TopNavigation.d.ts → dist/TopNavigation.d.ts} +2 -2
- package/dist/TopNavigation.js +14 -0
- package/dist/TopNavigation.js.map +1 -0
- package/{Txt.d.ts → dist/Txt.d.ts} +1 -1
- package/{Txt.js → dist/Txt.js} +3 -8
- package/dist/Txt.js.map +1 -0
- package/dist/avatar.css +1 -0
- package/dist/badge.css +1 -0
- package/dist/banner-alert.css +1 -0
- package/dist/base.css +1 -0
- package/dist/button.css +1 -0
- package/dist/card.css +1 -0
- package/dist/checkbox.css +1 -0
- package/dist/chip.css +1 -0
- package/dist/colors.css +1 -0
- package/dist/dialog.css +1 -0
- package/dist/divider.css +1 -0
- package/dist/dropdown.css +1 -0
- package/dist/fab.css +1 -0
- package/dist/form-field.css +1 -0
- package/{hooks → dist/hooks}/useCheckboxGroupState.d.ts +1 -1
- package/{hooks → dist/hooks}/useCheckboxGroupState.js +3 -6
- package/dist/hooks/useCheckboxGroupState.js.map +1 -0
- package/{hooks → dist/hooks}/useCheckboxState.js +2 -5
- package/dist/hooks/useCheckboxState.js.map +1 -0
- package/{hooks → dist/hooks}/useFloating.js +5 -8
- package/dist/hooks/useFloating.js.map +1 -0
- package/{hooks → dist/hooks}/useFloatingMenu.js +6 -9
- package/dist/hooks/useFloatingMenu.js.map +1 -0
- package/{hooks → dist/hooks}/useId.js +4 -7
- package/dist/hooks/useId.js.map +1 -0
- package/{hooks → dist/hooks}/useKeyboardNavigation.js +4 -7
- package/dist/hooks/useKeyboardNavigation.js.map +1 -0
- package/{hooks → dist/hooks}/useLongPress.js +3 -6
- package/dist/hooks/useLongPress.js.map +1 -0
- package/{hooks → dist/hooks}/useModalState.js +3 -6
- package/dist/hooks/useModalState.js.map +1 -0
- package/{hooks → dist/hooks}/useNavOptions.js +4 -7
- package/dist/hooks/useNavOptions.js.map +1 -0
- package/{hooks → dist/hooks}/useOutsideClick.js +2 -5
- package/dist/hooks/useOutsideClick.js.map +1 -0
- package/{hooks → dist/hooks}/useRadioState.js +2 -5
- package/dist/hooks/useRadioState.js.map +1 -0
- package/{hooks → dist/hooks}/useSwitchGroupState.d.ts +1 -1
- package/{hooks → dist/hooks}/useSwitchGroupState.js +3 -6
- package/dist/hooks/useSwitchGroupState.js.map +1 -0
- package/{hooks → dist/hooks}/useTimeout.js +2 -5
- package/dist/hooks/useTimeout.js.map +1 -0
- package/{hooks → dist/hooks}/useValidChildren.js +4 -7
- package/dist/hooks/useValidChildren.js.map +1 -0
- package/{index.js → dist/index.js} +2 -4
- package/dist/index.js.map +1 -0
- package/dist/inline-alert.css +1 -0
- package/dist/link.css +1 -0
- package/dist/list-item.css +1 -0
- package/dist/menu-button.css +1 -0
- package/dist/menu.css +1 -0
- package/dist/modal.css +1 -0
- package/dist/number-input.css +1 -0
- package/dist/popover.css +1 -0
- package/dist/progress-bar.css +1 -0
- package/dist/progress-circle.css +1 -0
- package/dist/progression-stepper-bar.css +1 -0
- package/dist/progression-stepper.css +1 -0
- package/dist/radio.css +1 -0
- package/dist/search-bar.css +1 -0
- package/dist/segmented-control.css +1 -0
- package/dist/skeleton.css +6 -0
- package/dist/switch.css +1 -0
- package/dist/tab-group.css +1 -0
- package/dist/table.css +1 -0
- package/dist/tag.css +1 -0
- package/dist/text-input.css +1 -0
- package/dist/textarea.css +4 -0
- package/dist/toggle-option.css +1 -0
- package/dist/tooltip.css +1 -0
- package/dist/top-navigation.css +1 -0
- package/{utils → dist/utils}/children.js +9 -12
- package/dist/utils/children.js.map +1 -0
- package/dist/utils/colorVariants.d.ts +7 -0
- package/dist/utils/colorVariants.js +22 -0
- package/dist/utils/colorVariants.js.map +1 -0
- package/{utils → dist/utils}/errors.d.ts +1 -1
- package/{utils → dist/utils}/errors.js +20 -12
- package/dist/utils/errors.js.map +1 -0
- package/{utils → dist/utils}/getValidNode.js +2 -5
- package/dist/utils/getValidNode.js.map +1 -0
- package/{utils → dist/utils}/keyboard.js +2 -4
- package/dist/utils/keyboard.js.map +1 -0
- package/dist/utils/placeholder.test.d.ts +1 -0
- package/dist/utils/placeholder.test.js +7 -0
- package/dist/utils/placeholder.test.js.map +1 -0
- package/{utils → dist/utils}/ref.js +2 -4
- package/dist/utils/ref.js.map +1 -0
- package/{utils → dist/utils}/scrollElementIntoView.js +2 -4
- package/dist/utils/scrollElementIntoView.js.map +1 -0
- package/{utils → dist/utils}/srOnly.js +2 -4
- package/dist/utils/srOnly.js.map +1 -0
- package/dist/utils/styleAdd.d.ts +1 -0
- package/dist/utils/styleAdd.js +11 -0
- package/dist/utils/styleAdd.js.map +1 -0
- package/{utils → dist/utils}/tryIntPsrse.js +2 -4
- package/dist/utils/tryIntPsrse.js.map +1 -0
- package/dist/utils/txtVariants.d.ts +7 -0
- package/{utils → dist/utils}/txtVariants.js +7 -4
- package/dist/utils/txtVariants.js.map +1 -0
- package/meta-types.ts +46 -0
- package/meta.ts +465 -0
- package/package.json +31 -20
- package/src/Avatar.tsx +3 -61
- package/src/Badge.tsx +2 -30
- package/src/BannerAlert.tsx +6 -119
- package/src/Button.tsx +3 -228
- package/src/Card.tsx +2 -22
- package/src/Checkbox.tsx +2 -94
- package/src/CheckboxGroup.tsx +2 -2
- package/src/CheckboxOption.tsx +3 -3
- package/src/Chip.tsx +2 -68
- package/src/Dialog.tsx +2 -154
- package/src/Divider.tsx +2 -54
- package/src/Dropdown.tsx +2 -119
- package/src/DropdownField.tsx +3 -2
- package/src/EmptyState.tsx +10 -4
- package/src/Fab.tsx +2 -125
- package/src/FormField.tsx +2 -15
- package/src/Img.tsx +1 -9
- package/src/InlineAlert.tsx +2 -48
- package/src/Layout.tsx +1 -0
- package/src/Link.tsx +2 -23
- package/src/ListItem.tsx +3 -118
- package/src/Menu.tsx +3 -41
- package/src/MenuButton.tsx +2 -17
- package/src/Modal.tsx +3 -24
- package/src/NumberField.tsx +3 -2
- package/src/NumberInput.tsx +2 -126
- package/src/Popover.tsx +3 -110
- package/src/Portal.tsx +1 -0
- package/src/ProgressBar.tsx +2 -49
- package/src/ProgressCircle.tsx +2 -57
- package/src/ProgressionStepper.tsx +2 -175
- package/src/ProgressionStepperBar.tsx +7 -44
- package/src/Radio.tsx +2 -82
- package/src/RadioGroup.tsx +2 -2
- package/src/RadioOption.tsx +3 -3
- package/src/SearchBar.tsx +4 -10
- package/src/SegmentedControl.tsx +2 -116
- package/src/Skeleton.tsx +40 -56
- package/src/StylesProviderAnywhere.tsx +4 -18
- package/src/StylesProviderBetterHomesGardens.tsx +4 -18
- package/src/StylesProviderCartus.tsx +4 -18
- package/src/StylesProviderCentury21.tsx +4 -18
- package/src/StylesProviderColdwellBanker.tsx +4 -18
- package/src/StylesProviderCorcoran.tsx +4 -18
- package/src/StylesProviderDenaliBoss.tsx +4 -18
- package/src/StylesProviderEra.tsx +4 -18
- package/src/StylesProviderSothebys.tsx +4 -18
- package/src/Switch.tsx +2 -66
- package/src/SwitchGroup.tsx +2 -2
- package/src/SwitchOption.tsx +3 -3
- package/src/TabGroup.tsx +2 -100
- package/src/Table.tsx +2 -49
- package/src/Tag.tsx +3 -67
- package/src/TextField.tsx +3 -2
- package/src/TextInput.tsx +2 -152
- package/src/Textarea.tsx +2 -80
- package/src/TextareaField.tsx +3 -2
- package/src/ToggleOption.tsx +2 -79
- package/src/Tooltip.tsx +3 -66
- package/src/TopNavigation.tsx +2 -10
- package/src/Txt.tsx +1 -9
- package/src/avatar.scss +74 -0
- package/src/badge.scss +28 -0
- package/{BannerAlert.js → src/banner-alert.scss} +5 -23
- package/src/{styles/base.css → base.scss} +5 -3
- package/src/button.scss +218 -0
- package/src/card.scss +23 -0
- package/{Checkbox.js → src/checkbox.scss} +9 -34
- package/{Chip.js → src/chip.scss} +3 -24
- package/src/colors.scss +76 -0
- package/{Dialog.js → src/dialog.scss} +7 -76
- package/src/divider.scss +47 -0
- package/{Dropdown.js → src/dropdown.scss} +4 -45
- package/{Fab.js → src/fab.scss} +4 -27
- package/src/form-field.scss +13 -0
- package/src/hooks/useFloating.ts +5 -5
- package/src/inline-alert.scss +51 -0
- package/src/link.scss +21 -0
- package/src/list-item.scss +113 -0
- package/src/menu-button.scss +16 -0
- package/src/menu.scss +36 -0
- package/src/modal.scss +22 -0
- package/src/number-input.scss +128 -0
- package/{Popover.js → src/popover.scss} +10 -49
- package/src/progress-bar.scss +50 -0
- package/src/progress-circle.scss +56 -0
- package/src/progression-stepper-bar.scss +39 -0
- package/{ProgressionStepper.js → src/progression-stepper.scss} +8 -27
- package/{Radio.js → src/radio.scss} +6 -22
- package/src/search-bar.scss +7 -0
- package/{SegmentedControl.js → src/segmented-control.scss} +7 -24
- package/src/skeleton.scss +83 -0
- package/{Switch.js → src/switch.scss} +4 -25
- package/{TabGroup.js → src/tab-group.scss} +9 -26
- package/{Table.js → src/table.scss} +4 -22
- package/{Tag.js → src/tag.scss} +5 -28
- package/{TextInput.js → src/text-input.scss} +7 -31
- package/{Textarea.js → src/textarea.scss} +9 -38
- package/{ToggleOption.js → src/toggle-option.scss} +3 -16
- package/src/tooltip.scss +63 -0
- package/src/top-navigation.scss +5 -0
- package/src/utils/children.ts +1 -1
- package/src/utils/colorVariants.ts +22 -73
- package/src/utils/styleAdd.ts +7 -0
- package/src/utils/txtVariants.ts +8 -27
- package/Accordion.d.ts +0 -20
- package/Accordion.js +0 -18
- package/Accordion.js.map +0 -1
- package/Avatar.js +0 -81
- package/Avatar.js.map +0 -1
- package/Badge.js +0 -43
- package/Badge.js.map +0 -1
- package/BannerAlert.js.map +0 -1
- package/BottomNavigation.d.ts +0 -20
- package/BottomNavigation.js +0 -18
- package/BottomNavigation.js.map +0 -1
- package/BottomSheet.d.ts +0 -20
- package/BottomSheet.js +0 -18
- package/BottomSheet.js.map +0 -1
- package/Breadcrumb.d.ts +0 -20
- package/Breadcrumb.js +0 -18
- package/Breadcrumb.js.map +0 -1
- package/Button.js +0 -254
- package/Button.js.map +0 -1
- package/ButtonDock.d.ts +0 -20
- package/ButtonDock.js +0 -18
- package/ButtonDock.js.map +0 -1
- package/CODE_OF_CONDUCT.md +0 -137
- package/CONTRIBUTING.md +0 -42
- package/Card.js +0 -38
- package/Card.js.map +0 -1
- package/Chart.d.ts +0 -20
- package/Chart.js +0 -18
- package/Chart.js.map +0 -1
- package/Checkbox.js.map +0 -1
- package/CheckboxGroup.js +0 -18
- package/CheckboxGroup.js.map +0 -1
- package/CheckboxOption.js +0 -16
- package/CheckboxOption.js.map +0 -1
- package/Chip.js.map +0 -1
- package/DatePicker.d.ts +0 -20
- package/DatePicker.js +0 -18
- package/DatePicker.js.map +0 -1
- package/Dialog.js.map +0 -1
- package/Divider.js +0 -76
- package/Divider.js.map +0 -1
- package/Drawer.d.ts +0 -20
- package/Drawer.js +0 -18
- package/Drawer.js.map +0 -1
- package/Dropdown.js.map +0 -1
- package/DropdownField.js.map +0 -1
- package/EmptyState.js +0 -20
- package/EmptyState.js.map +0 -1
- package/Fab.js.map +0 -1
- package/FileUpload.d.ts +0 -20
- package/FileUpload.js +0 -18
- package/FileUpload.js.map +0 -1
- package/FormField.js +0 -39
- package/FormField.js.map +0 -1
- package/GUIDELINES.md +0 -41
- package/Image.d.ts +0 -20
- package/Image.js +0 -18
- package/Image.js.map +0 -1
- package/Img.js +0 -20
- package/Img.js.map +0 -1
- package/InlineAlert.js +0 -73
- package/InlineAlert.js.map +0 -1
- package/Layout.js.map +0 -1
- package/Link.js +0 -37
- package/Link.js.map +0 -1
- package/ListItem.js +0 -207
- package/ListItem.js.map +0 -1
- package/Menu.js +0 -98
- package/Menu.js.map +0 -1
- package/MenuButton.js +0 -30
- package/MenuButton.js.map +0 -1
- package/Modal.js +0 -53
- package/Modal.js.map +0 -1
- package/MultiSelection.d.ts +0 -20
- package/MultiSelection.js +0 -18
- package/MultiSelection.js.map +0 -1
- package/NavigationRail.d.ts +0 -20
- package/NavigationRail.js +0 -18
- package/NavigationRail.js.map +0 -1
- package/NumberField.js.map +0 -1
- package/NumberInput.js +0 -188
- package/NumberInput.js.map +0 -1
- package/OTPInput.d.ts +0 -20
- package/OTPInput.js +0 -18
- package/OTPInput.js.map +0 -1
- package/PageControl.d.ts +0 -20
- package/PageControl.js +0 -18
- package/PageControl.js.map +0 -1
- package/PasswordInput.d.ts +0 -20
- package/PasswordInput.js +0 -18
- package/PasswordInput.js.map +0 -1
- package/PhoneNumberInput.d.ts +0 -20
- package/PhoneNumberInput.js +0 -18
- package/PhoneNumberInput.js.map +0 -1
- package/Popover.js.map +0 -1
- package/Portal.js.map +0 -1
- package/ProgressBar.js +0 -64
- package/ProgressBar.js.map +0 -1
- package/ProgressCircle.js +0 -82
- package/ProgressCircle.js.map +0 -1
- package/ProgressionStepper.js.map +0 -1
- package/ProgressionStepperBar.js +0 -51
- package/ProgressionStepperBar.js.map +0 -1
- package/Radio.js.map +0 -1
- package/RadioGroup.js +0 -18
- package/RadioGroup.js.map +0 -1
- package/RadioOption.js +0 -16
- package/RadioOption.js.map +0 -1
- package/Rating.d.ts +0 -16
- package/Rating.js +0 -18
- package/Rating.js.map +0 -1
- package/SearchBar.js.map +0 -1
- package/SegmentedControl.js.map +0 -1
- package/Skeleton.d.ts +0 -28
- package/Skeleton.js +0 -57
- package/Skeleton.js.map +0 -1
- package/SliderInput.d.ts +0 -16
- package/SliderInput.js +0 -18
- package/SliderInput.js.map +0 -1
- package/Snackbar.d.ts +0 -16
- package/Snackbar.js +0 -18
- package/Snackbar.js.map +0 -1
- package/StylesProviderAnywhere.js +0 -29
- package/StylesProviderAnywhere.js.map +0 -1
- package/StylesProviderBetterHomesGardens.js +0 -29
- package/StylesProviderBetterHomesGardens.js.map +0 -1
- package/StylesProviderCartus.js +0 -29
- package/StylesProviderCartus.js.map +0 -1
- package/StylesProviderCentury21.js +0 -29
- package/StylesProviderCentury21.js.map +0 -1
- package/StylesProviderColdwellBanker.js +0 -29
- package/StylesProviderColdwellBanker.js.map +0 -1
- package/StylesProviderCorcoran.js +0 -29
- package/StylesProviderCorcoran.js.map +0 -1
- package/StylesProviderDenaliBoss.js +0 -29
- package/StylesProviderDenaliBoss.js.map +0 -1
- package/StylesProviderEra.js +0 -29
- package/StylesProviderEra.js.map +0 -1
- package/StylesProviderSothebys.js +0 -29
- package/StylesProviderSothebys.js.map +0 -1
- package/Switch.js.map +0 -1
- package/SwitchGroup.js +0 -18
- package/SwitchGroup.js.map +0 -1
- package/SwitchOption.js +0 -16
- package/SwitchOption.js.map +0 -1
- package/TabGroup.js.map +0 -1
- package/Table.js.map +0 -1
- package/Tag.js.map +0 -1
- package/TextField.js +0 -19
- package/TextField.js.map +0 -1
- package/TextInput.js.map +0 -1
- package/Textarea.js.map +0 -1
- package/TextareaField.js +0 -26
- package/TextareaField.js.map +0 -1
- package/TimePicker.d.ts +0 -16
- package/TimePicker.js +0 -18
- package/TimePicker.js.map +0 -1
- package/ToggleOption.js.map +0 -1
- package/Tooltip.js +0 -104
- package/Tooltip.js.map +0 -1
- package/TopNavigation.js +0 -18
- package/TopNavigation.js.map +0 -1
- package/Txt.js.map +0 -1
- package/hooks/useCheckboxGroupState.js.map +0 -1
- package/hooks/useCheckboxState.js.map +0 -1
- package/hooks/useFloating.js.map +0 -1
- package/hooks/useFloatingMenu.js.map +0 -1
- package/hooks/useId.js.map +0 -1
- package/hooks/useKeyboardNavigation.js.map +0 -1
- package/hooks/useLongPress.js.map +0 -1
- package/hooks/useModalState.js.map +0 -1
- package/hooks/useNavOptions.js.map +0 -1
- package/hooks/useOutsideClick.js.map +0 -1
- package/hooks/useRadioState.js.map +0 -1
- package/hooks/useSwitchGroupState.js.map +0 -1
- package/hooks/useTimeout.js.map +0 -1
- package/hooks/useValidChildren.js.map +0 -1
- package/index.js.map +0 -1
- package/meta.d.ts +0 -44
- package/meta.js +0 -5789
- package/meta.js.map +0 -1
- package/src/Accordion.tsx +0 -33
- package/src/BottomNavigation.tsx +0 -33
- package/src/BottomSheet.tsx +0 -33
- package/src/Breadcrumb.tsx +0 -33
- package/src/ButtonDock.tsx +0 -33
- package/src/Chart.tsx +0 -33
- package/src/DatePicker.tsx +0 -33
- package/src/Drawer.tsx +0 -33
- package/src/FileUpload.tsx +0 -33
- package/src/Image.tsx +0 -33
- package/src/MultiSelection.tsx +0 -33
- package/src/NavigationRail.tsx +0 -33
- package/src/OTPInput.tsx +0 -33
- package/src/PageControl.tsx +0 -33
- package/src/PasswordInput.tsx +0 -33
- package/src/PhoneNumberInput.tsx +0 -33
- package/src/Rating.tsx +0 -29
- package/src/SliderInput.tsx +0 -29
- package/src/Snackbar.tsx +0 -29
- package/src/TimePicker.tsx +0 -29
- package/src/meta.ts +0 -6238
- package/src/package.json +0 -3
- package/src/styles/anywhere.css +0 -1693
- package/src/styles/anywhere.ts +0 -1694
- package/src/styles/base.ts +0 -161
- package/src/styles/better-homes-gardens.css +0 -1693
- package/src/styles/better-homes-gardens.ts +0 -1694
- package/src/styles/cartus.css +0 -1691
- package/src/styles/cartus.ts +0 -1692
- package/src/styles/century-21.css +0 -1689
- package/src/styles/century-21.ts +0 -1690
- package/src/styles/coldwell-banker.css +0 -1691
- package/src/styles/coldwell-banker.ts +0 -1692
- package/src/styles/corcoran.css +0 -1685
- package/src/styles/corcoran.ts +0 -1686
- package/src/styles/denali-boss.css +0 -1681
- package/src/styles/denali-boss.ts +0 -1682
- package/src/styles/era.css +0 -1685
- package/src/styles/era.ts +0 -1686
- package/src/styles/sothebys.css +0 -1677
- package/src/styles/sothebys.ts +0 -1678
- package/styles/anywhere.d.ts +0 -2
- package/styles/anywhere.js +0 -1697
- package/styles/anywhere.js.map +0 -1
- package/styles/base.d.ts +0 -2
- package/styles/base.js +0 -164
- package/styles/base.js.map +0 -1
- package/styles/better-homes-gardens.d.ts +0 -2
- package/styles/better-homes-gardens.js +0 -1697
- package/styles/better-homes-gardens.js.map +0 -1
- package/styles/cartus.d.ts +0 -2
- package/styles/cartus.js +0 -1695
- package/styles/cartus.js.map +0 -1
- package/styles/century-21.d.ts +0 -2
- package/styles/century-21.js +0 -1693
- package/styles/century-21.js.map +0 -1
- package/styles/coldwell-banker.d.ts +0 -2
- package/styles/coldwell-banker.js +0 -1695
- package/styles/coldwell-banker.js.map +0 -1
- package/styles/corcoran.d.ts +0 -2
- package/styles/corcoran.js +0 -1689
- package/styles/corcoran.js.map +0 -1
- package/styles/denali-boss.d.ts +0 -2
- package/styles/denali-boss.js +0 -1685
- package/styles/denali-boss.js.map +0 -1
- package/styles/era.d.ts +0 -2
- package/styles/era.js +0 -1689
- package/styles/era.js.map +0 -1
- package/styles/sothebys.d.ts +0 -2
- package/styles/sothebys.js +0 -1681
- package/styles/sothebys.js.map +0 -1
- package/utils/children.js.map +0 -1
- package/utils/colorVariants.d.ts +0 -5
- package/utils/colorVariants.js +0 -61
- package/utils/colorVariants.js.map +0 -1
- package/utils/errors.js.map +0 -1
- package/utils/getValidNode.js.map +0 -1
- package/utils/keyboard.js.map +0 -1
- package/utils/ref.js.map +0 -1
- package/utils/scrollElementIntoView.js.map +0 -1
- package/utils/srOnly.js.map +0 -1
- package/utils/tryIntPsrse.js.map +0 -1
- package/utils/txtVariants.d.ts +0 -2
- package/utils/txtVariants.js.map +0 -1
- /package/{Portal.d.ts → dist/Portal.d.ts} +0 -0
- /package/{hooks → dist/hooks}/useCheckboxState.d.ts +0 -0
- /package/{hooks → dist/hooks}/useFloating.d.ts +0 -0
- /package/{hooks → dist/hooks}/useFloatingMenu.d.ts +0 -0
- /package/{hooks → dist/hooks}/useId.d.ts +0 -0
- /package/{hooks → dist/hooks}/useKeyboardNavigation.d.ts +0 -0
- /package/{hooks → dist/hooks}/useLongPress.d.ts +0 -0
- /package/{hooks → dist/hooks}/useModalState.d.ts +0 -0
- /package/{hooks → dist/hooks}/useNavOptions.d.ts +0 -0
- /package/{hooks → dist/hooks}/useOutsideClick.d.ts +0 -0
- /package/{hooks → dist/hooks}/useRadioState.d.ts +0 -0
- /package/{hooks → dist/hooks}/useTimeout.d.ts +0 -0
- /package/{hooks → dist/hooks}/useValidChildren.d.ts +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{utils → dist/utils}/children.d.ts +0 -0
- /package/{utils → dist/utils}/getValidNode.d.ts +0 -0
- /package/{utils → dist/utils}/keyboard.d.ts +0 -0
- /package/{utils → dist/utils}/ref.d.ts +0 -0
- /package/{utils → dist/utils}/scrollElementIntoView.d.ts +0 -0
- /package/{utils → dist/utils}/srOnly.d.ts +0 -0
- /package/{utils → dist/utils}/tryIntPsrse.d.ts +0 -0
package/dist/Menu.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createElement as _createElement } from "react";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=menu]{/*! --item-count: is set via inline style */width:332px;border:1px solid var(--stroke-neutral-low);background-color:var(--surface-neutral-t1-base);box-shadow:var(--drop-shadow-float);border-radius:var(--radius-large);display:flex;flex-direction:column;--item-size: var(--spacing-sizing-12)}[data-bspk=menu][data-floating]{z-index:var(--z-index-dropdown)}[data-bspk=menu][data-item-count]{height:calc(var(--item-count)*var(--item-size));overflow-y:scroll}[data-bspk=menu][data-no-items]{padding:var(--spacing-sizing-08) var(--spacing-sizing-04);align-items:center;justify-content:center;gap:var(--spacing-sizing-03)}[data-bspk=menu] [data-list-item]{min-height:var(--item-size);height:var(--item-size)}`);;
|
|
5
|
+
import { useMemo } from 'react';
|
|
6
|
+
import { Checkbox } from './Checkbox';
|
|
7
|
+
import { ListItem } from './ListItem';
|
|
8
|
+
import { Txt } from './Txt';
|
|
9
|
+
import { useId } from './hooks/useId';
|
|
10
|
+
export const MIN_ITEM_COUNT = 3;
|
|
11
|
+
export const MAX_ITEM_COUNT = 10;
|
|
12
|
+
export function menuItemId(menuId, index) {
|
|
13
|
+
return `menu-${menuId}-item-${index}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A container housing a simple list of options presented to the user to select one option at a time.
|
|
17
|
+
*
|
|
18
|
+
* @name Menu
|
|
19
|
+
*/
|
|
20
|
+
function Menu({ itemCount: itemCountProp = 5, items: itemsProp = [], noResultsMessage, innerRef, onChange, activeIndex, selectedValues = [], disabled, id: idProp, renderListItem, isMulti, ...props }) {
|
|
21
|
+
const menuId = useId(idProp);
|
|
22
|
+
const items = Array.isArray(itemsProp) ? itemsProp : [];
|
|
23
|
+
const itemCount = useMemo(() =>
|
|
24
|
+
// Ensure itemCount is within the range of items.length
|
|
25
|
+
Math.min(items.length,
|
|
26
|
+
// pin itemCountProp to a range of 3 to 10
|
|
27
|
+
Math.max(MIN_ITEM_COUNT, Math.min(itemCountProp, MAX_ITEM_COUNT))), [itemCountProp, items.length]);
|
|
28
|
+
return (_jsx("div", { ...props, "data-bspk": "menu", "data-disabled": disabled || undefined, "data-item-count": itemCount || undefined, "data-no-items": !items.length || undefined, id: menuId, ref: innerRef, role: "listbox", style: { ...props.style, '--item-count': itemCount }, children: items.length ? (items.map((item, index) => {
|
|
29
|
+
const itemId = item.id || menuItemId(menuId, index);
|
|
30
|
+
const selected = Array.isArray(selectedValues) && selectedValues.includes(item.value);
|
|
31
|
+
const renderProps = renderListItem?.({
|
|
32
|
+
activeIndex,
|
|
33
|
+
index,
|
|
34
|
+
item,
|
|
35
|
+
selectedValues,
|
|
36
|
+
isMulti,
|
|
37
|
+
menuId: menuId || '',
|
|
38
|
+
selected,
|
|
39
|
+
itemId,
|
|
40
|
+
});
|
|
41
|
+
return (_createElement(ListItem, { ...renderProps, active: activeIndex === index || undefined, "aria-disabled": item.disabled || undefined, "aria-posinset": index + 1, "aria-selected": selected || undefined, as: "button", "data-menu-item": true, "data-selected": selected || undefined, disabled: item.disabled || undefined, id: itemId, key: itemId, label: renderProps?.label?.toString() || item.label?.toString(), onClick: (event) => {
|
|
42
|
+
if (renderProps)
|
|
43
|
+
renderProps?.onClick?.(event);
|
|
44
|
+
if (onChange) {
|
|
45
|
+
if (!isMulti) {
|
|
46
|
+
onChange?.([item.value], event);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
onChange(selected
|
|
50
|
+
? selectedValues.filter((value) => value !== item.value)
|
|
51
|
+
: [...selectedValues, item.value], event);
|
|
52
|
+
}
|
|
53
|
+
}, role: "option", tabIndex: -1, trailing: isMulti ? (_jsx(Checkbox, { "aria-label": item.label, checked: selected, name: item.value, onChange: (checked) => {
|
|
54
|
+
onChange?.(checked
|
|
55
|
+
? selectedValues.filter((value) => value !== item.value)
|
|
56
|
+
: [...selectedValues, item.value]);
|
|
57
|
+
}, value: item.value })) : (renderProps?.trailing) }));
|
|
58
|
+
})) : (_jsxs(_Fragment, { children: [_jsx(Txt, { as: "div", variant: "heading-h5", children: "No results found" }), _jsx(Txt, { as: "div", variant: "body-base", children: noResultsMessage })] })) }));
|
|
59
|
+
}
|
|
60
|
+
Menu.bspkName = 'Menu';
|
|
61
|
+
export { Menu };
|
|
62
|
+
//# sourceMappingURL=Menu.js.map
|
package/dist/Menu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './menu-button.scss';
|
|
1
2
|
import { ButtonProps } from './Button';
|
|
2
3
|
import { ElementProps } from '.';
|
|
3
4
|
export type MenuButtonProps = Pick<ButtonProps, 'as' | 'onClick'>;
|
|
@@ -6,10 +7,9 @@ export type MenuButtonProps = Pick<ButtonProps, 'as' | 'onClick'>;
|
|
|
6
7
|
*
|
|
7
8
|
* @name MenuButton
|
|
8
9
|
*/
|
|
9
|
-
declare function MenuButton(props: ElementProps<MenuButtonProps, 'button'>): import("
|
|
10
|
+
declare function MenuButton(props: ElementProps<MenuButtonProps, 'button'>): import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
declare namespace MenuButton {
|
|
11
12
|
var bspkName: string;
|
|
12
13
|
}
|
|
13
14
|
export { MenuButton };
|
|
14
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
15
15
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { SvgMenu } from '@bspk/icons/Menu';
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=menu-button]{background:none;border:none;cursor:pointer;padding:0;height:48px;width:auto;display:flex;flex-direction:row;align-items:center;justify-content:center;padding-top:var(--spacing-sizing-01);color:var(--foreground-neutral-on-surface-variant-01)}`);;
|
|
5
|
+
/**
|
|
6
|
+
* Utility component used within top navigation.
|
|
7
|
+
*
|
|
8
|
+
* @name MenuButton
|
|
9
|
+
*/
|
|
10
|
+
function MenuButton(props) {
|
|
11
|
+
return (_jsx("button", { "data-bspk": "menu-button", ...props, children: _jsx(SvgMenu, {}) }));
|
|
12
|
+
}
|
|
13
|
+
MenuButton.bspkName = 'MenuButton';
|
|
14
|
+
export { MenuButton };
|
|
15
|
+
//# sourceMappingURL=MenuButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../src/MenuButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,oBAAoB,CAAC;AAO5B;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAA8C;IAC9D,OAAO,CACH,8BAAkB,aAAa,KAAK,KAAK,YACrC,KAAC,OAAO,KAAG,GACN,CACZ,CAAC;AACN,CAAC;AAED,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './modal.scss';
|
|
1
2
|
import { DialogProps } from './Dialog';
|
|
2
3
|
export type ModalProps = DialogProps & {
|
|
3
4
|
/**
|
|
@@ -22,10 +23,9 @@ export type ModalProps = DialogProps & {
|
|
|
22
23
|
*
|
|
23
24
|
* @name Modal
|
|
24
25
|
*/
|
|
25
|
-
declare function Modal({ header, description, children, id: idProp, ...dialogProps }: ModalProps): import("
|
|
26
|
+
declare function Modal({ header, description, children, id: idProp, ...dialogProps }: ModalProps): import("react/jsx-runtime").JSX.Element;
|
|
26
27
|
declare namespace Modal {
|
|
27
28
|
var bspkName: string;
|
|
28
29
|
}
|
|
29
30
|
export { Modal };
|
|
30
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
31
31
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
package/dist/Modal.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SvgClose } from '@bspk/icons/Close';
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=modal]{display:flex;flex-direction:column;overflow:hidden;gap:var(--spacing-sizing-02);padding:var(--spacing-sizing-04)}[data-bspk=modal]>header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--spacing-sizing-04)}[data-bspk=modal] main{overflow:auto;flex:1}`);;
|
|
5
|
+
import { useMemo } from 'react';
|
|
6
|
+
import { Button } from './Button';
|
|
7
|
+
import { Dialog } from './Dialog';
|
|
8
|
+
import { Txt } from './Txt';
|
|
9
|
+
import { useId } from './hooks/useId';
|
|
10
|
+
import { srOnly } from './utils/srOnly';
|
|
11
|
+
/**
|
|
12
|
+
* Modals display important information that users need to acknowledge. They appear over the interface and block further
|
|
13
|
+
* interactions until an action is selected. Modal is a wrapper around the Dialog component that provides a header and
|
|
14
|
+
* footer for the dialog.
|
|
15
|
+
*
|
|
16
|
+
* TODO: Add support for custom header and footer
|
|
17
|
+
*
|
|
18
|
+
* @name Modal
|
|
19
|
+
*/
|
|
20
|
+
function Modal({
|
|
21
|
+
//
|
|
22
|
+
header, description, children, id: idProp, ...dialogProps }) {
|
|
23
|
+
const id = useId(idProp);
|
|
24
|
+
const ids = useMemo(() => ({
|
|
25
|
+
description: `dialog-dialog-${id}-description`,
|
|
26
|
+
title: `dialog-dialog-${id}-title`,
|
|
27
|
+
}), [id]);
|
|
28
|
+
return (_jsx(Dialog, { ...dialogProps, "aria-describedby": ids.description, "aria-labelledby": ids.title, children: _jsxs("div", { "data-bspk": "modal", children: [_jsxs("header", { children: [_jsx(Txt, { as: "div", "data-dialog-title": true, id: ids.title, variant: "heading-h4", children: header }), _jsx(Button, { icon: _jsx(SvgClose, {}), label: "close", onClick: dialogProps.onClose, showLabel: false, variant: "tertiary" })] }), _jsxs("main", { children: [_jsx("p", { ...srOnly(children), "data-dialog-description": true, id: ids.description, children: description }), children] })] }) }));
|
|
29
|
+
}
|
|
30
|
+
Modal.bspkName = 'Modal';
|
|
31
|
+
export { Modal };
|
|
32
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../src/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC;;;;;;;;GAQG;AACH,SAAS,KAAK,CAAC;AACX,EAAE;AACF,MAAM,EACN,WAAW,EACX,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,GAAG,WAAW,EACL;IACT,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,GAAG,GAAG,OAAO,CACf,GAAG,EAAE,CAAC,CAAC;QACH,WAAW,EAAE,iBAAiB,EAAE,cAAc;QAC9C,KAAK,EAAE,iBAAiB,EAAE,QAAQ;KACrC,CAAC,EACF,CAAC,EAAE,CAAC,CACP,CAAC;IAEF,OAAO,CACH,KAAC,MAAM,OAAK,WAAW,sBAAoB,GAAG,CAAC,WAAW,qBAAmB,GAAG,CAAC,KAAK,YAClF,4BAAe,OAAO,aAClB,6BACI,KAAC,GAAG,IAAC,EAAE,EAAC,KAAK,6BAAmB,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAC,YAAY,YAC9D,MAAM,GACL,EACN,KAAC,MAAM,IACH,IAAI,EAAE,KAAC,QAAQ,KAAG,EAClB,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,SAAS,EAAE,KAAK,EAChB,OAAO,EAAC,UAAU,GACpB,IACG,EACT,2BACI,eAAO,MAAM,CAAC,QAAQ,CAAC,mCAA0B,EAAE,EAAE,GAAG,CAAC,WAAW,YAC/D,WAAW,GACZ,EACH,QAAQ,IACN,IACL,GACD,CACZ,CAAC;AACN,CAAC;AAED,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;AAEzB,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -9,7 +9,7 @@ export type NumberFieldProps = Pick<NumberInputProps, 'centered' | 'disabled' |
|
|
|
9
9
|
*
|
|
10
10
|
* @name NumberField
|
|
11
11
|
*/
|
|
12
|
-
declare function NumberField({ label, errorMessage: errorMessageProp, helperText, controlId, labelTrailing, required, ...inputProps }: NumberFieldProps): import("
|
|
12
|
+
declare function NumberField({ label, errorMessage: errorMessageProp, helperText, controlId, labelTrailing, required, ...inputProps }: NumberFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
declare namespace NumberField {
|
|
14
14
|
var bspkName: string;
|
|
15
15
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { jsx } from
|
|
2
|
-
import { FormField } from './FormField
|
|
3
|
-
import { NumberInput } from './NumberInput
|
|
4
|
-
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FormField } from './FormField';
|
|
3
|
+
import { NumberInput } from './NumberInput';
|
|
5
4
|
/**
|
|
6
5
|
* A input element that allows users to either input a numerical value or singularly increase or decrease the values by
|
|
7
6
|
* pressing the (+) or (-).
|
|
@@ -12,9 +11,8 @@ import { NumberInput } from './NumberInput.js';
|
|
|
12
11
|
*/
|
|
13
12
|
function NumberField({ label, errorMessage: errorMessageProp, helperText, controlId, labelTrailing, required, ...inputProps }) {
|
|
14
13
|
const errorMessage = (!inputProps.readOnly && !inputProps.disabled && errorMessageProp) || undefined;
|
|
15
|
-
return (
|
|
14
|
+
return (_jsx(FormField, { controlId: controlId, "data-bspk": "number-field", errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, required: required, children: (fieldProps) => _jsx(NumberInput, { ...inputProps, ...fieldProps, "aria-label": label, id: controlId }) }));
|
|
16
15
|
}
|
|
17
16
|
NumberField.bspkName = 'NumberField';
|
|
18
|
-
|
|
19
17
|
export { NumberField };
|
|
20
|
-
//# sourceMappingURL=NumberField.js.map
|
|
18
|
+
//# sourceMappingURL=NumberField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../src/NumberField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ9D;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,EACjB,KAAK,EACL,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,GAAG,UAAU,EACE;IACf,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,SAAS,CAAC;IAErG,OAAO,CACH,KAAC,SAAS,IACN,SAAS,EAAE,SAAS,eACV,cAAc,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,YAEjB,CAAC,UAAU,EAAE,EAAE,CAAC,KAAC,WAAW,OAAK,UAAU,KAAM,UAAU,gBAAc,KAAK,EAAE,EAAE,EAAE,SAAS,GAAI,GAC1F,CACf,CAAC;AACN,CAAC;AAED,WAAW,CAAC,QAAQ,GAAG,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './number-input.scss';
|
|
1
2
|
import { CommonProps } from '.';
|
|
2
3
|
export type NumberInputProps = CommonProps<'aria-label' | 'disabled' | 'id' | 'invalid' | 'name' | 'readOnly' | 'size'> & {
|
|
3
4
|
/**
|
|
@@ -25,10 +26,9 @@ export type NumberInputProps = CommonProps<'aria-label' | 'disabled' | 'id' | 'i
|
|
|
25
26
|
*
|
|
26
27
|
* @name NumberInput
|
|
27
28
|
*/
|
|
28
|
-
declare function NumberInput({ value, onChange, centered, size, disabled, readOnly, name, id: inputIdProp, invalid, 'aria-label': ariaLabel, max: maxProp, min: minProp, }: NumberInputProps): import("
|
|
29
|
+
declare function NumberInput({ value, onChange, centered, size, disabled, readOnly, name, id: inputIdProp, invalid, 'aria-label': ariaLabel, max: maxProp, min: minProp, }: NumberInputProps): import("react/jsx-runtime").JSX.Element;
|
|
29
30
|
declare namespace NumberInput {
|
|
30
31
|
var bspkName: string;
|
|
31
32
|
}
|
|
32
33
|
export { NumberInput };
|
|
33
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
34
34
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SvgAdd } from '@bspk/icons/Add';
|
|
3
|
+
import { SvgRemove } from '@bspk/icons/Remove';
|
|
4
|
+
import { styleAdd } from './utils/styleAdd';
|
|
5
|
+
styleAdd(`[data-bspk=number-input]{--font: var(--body-base);--height: var(--spacing-sizing-10);--svg-width: var(--spacing-sizing-05);--color: var(--foreground-neutral-on-surface);width:100%;display:flex;flex-flow:row nowrap;font:var(--font);height:var(--height);border:1px solid var(--stroke-neutral-base);border-radius:var(--radius-small);background:var(--surface-neutral-t1-base)}[data-bspk=number-input]:focus-within{border-color:var(--stroke-brand-primary);outline:1px solid var(--stroke-brand-primary)}[data-bspk=number-input] [data-divider]{width:4px;border-right:1px solid var(--stroke-neutral-base);height:calc(var(--height) - 8px);margin:3px 0}[data-bspk=number-input] button{min-width:var(--height);background:none;border:none;cursor:pointer;font:var(--font);display:flex;justify-content:center;align-items:center;color:var(--color)}[data-bspk=number-input] button svg{width:var(--svg-width)}[data-bspk=number-input] button:disabled{cursor:not-allowed;color:var(--foreground-neutral-disabled-on-surface)}[data-bspk=number-input] input{color:var(--color);min-width:0;display:block;font:var(--font);text-align:center;padding:0 var(--spacing-sizing-03);background:rgba(0,0,0,0);border:none}[data-bspk=number-input] input:focus{outline:none}[data-bspk=number-input] input::-webkit-outer-spin-button,[data-bspk=number-input] input::-webkit-inner-spin-button{appearance:none;margin:0}[data-bspk=number-input] input[type=number]{appearance:textfield}[data-bspk=number-input]:not([data-disabled],[data-readonly]) input:hover,[data-bspk=number-input]:not([data-disabled],[data-readonly]) button:not(:disabled):hover{background-color:var(--interactions-hover-opacity)}[data-bspk=number-input]:not([data-disabled],[data-readonly]) input:active,[data-bspk=number-input]:not([data-disabled],[data-readonly]) button:not(:disabled):active{background-color:var(--interactions-press-opacity)}[data-bspk=number-input]:not([data-disabled],[data-readonly])[data-invalid]{border-color:var(--status-error);outline-color:var(--status-error)}[data-bspk=number-input][data-disabled],[data-bspk=number-input][data-readonly]{--color: var(--foreground-neutral-disabled-on-surface);border-color:var(--stroke-neutral-disabled-light);background:linear-gradient(var(--interactions-disabled-opacity), var(--interactions-disabled-opacity)),linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=number-input][data-disabled] [data-divider],[data-bspk=number-input][data-readonly] [data-divider]{border-color:var(--stroke-neutral-disabled-light)}[data-bspk=number-input][data-readonly] input{color:var(--foreground-neutral-on-surface) !important}[data-bspk=number-input][data-size=small]{--font: var(--body-small);--height: var(--spacing-sizing-08)}[data-bspk=number-input][data-size=large]{--font: var(--body-large);--height: var(--spacing-sizing-12);--svg-width: var(--spacing-sizing-06)}`);;
|
|
6
|
+
import { useId } from './hooks/useId';
|
|
7
|
+
import { useLongPress } from './hooks/useLongPress';
|
|
8
|
+
function isNumber(value) {
|
|
9
|
+
if (typeof value === 'number')
|
|
10
|
+
return value;
|
|
11
|
+
if (typeof value !== 'string')
|
|
12
|
+
return undefined;
|
|
13
|
+
const num = Number(value);
|
|
14
|
+
return isNaN(num) ? undefined : num;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A input element that allows users to either input a numerical value or singularly increase or decrease the values by
|
|
18
|
+
* pressing the (+) or (-).
|
|
19
|
+
*
|
|
20
|
+
* @name NumberInput
|
|
21
|
+
*/
|
|
22
|
+
function NumberInput({
|
|
23
|
+
//
|
|
24
|
+
value = 1, onChange, centered = false, size = 'medium', disabled = false, readOnly = false, name, id: inputIdProp, invalid, 'aria-label': ariaLabel, max: maxProp, min: minProp, }) {
|
|
25
|
+
const inputId = useId(inputIdProp);
|
|
26
|
+
const max = isNumber(maxProp);
|
|
27
|
+
const min = isNumber(minProp);
|
|
28
|
+
const fix = (next = value) => {
|
|
29
|
+
let fixValue = next;
|
|
30
|
+
if (typeof min !== 'undefined' && next < min)
|
|
31
|
+
fixValue = min;
|
|
32
|
+
if (typeof max !== 'undefined' && next > max)
|
|
33
|
+
fixValue = max;
|
|
34
|
+
if (fixValue !== value)
|
|
35
|
+
onChange(fixValue);
|
|
36
|
+
};
|
|
37
|
+
const buttonProps = {
|
|
38
|
+
min,
|
|
39
|
+
max,
|
|
40
|
+
disabled,
|
|
41
|
+
readOnly,
|
|
42
|
+
onChange: fix,
|
|
43
|
+
value,
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("div", { "aria-valuemax": max || undefined, "aria-valuemin": min || undefined, "data-bspk": "number-input", "data-centered": centered || undefined, "data-disabled": disabled || undefined, "data-invalid": invalid || undefined, "data-readonly": readOnly || undefined, "data-size": size, "data-stepper-input": true, children: [!!centered && _jsx(IncrementButton, { ...buttonProps, increment: -1 }), _jsx("input", { "aria-label": ariaLabel, disabled: disabled, id: inputId, name: name, onBlur: () => {
|
|
46
|
+
fix();
|
|
47
|
+
}, onChange: (event) => {
|
|
48
|
+
onChange(event.target.value);
|
|
49
|
+
}, readOnly: readOnly, type: "number", value: value }), !centered && (_jsxs(_Fragment, { children: [_jsx("div", { "aria-hidden": true, "data-divider": true }), _jsx(IncrementButton, { ...buttonProps, increment: -1 })] })), _jsx(IncrementButton, { ...buttonProps, increment: 1 })] }));
|
|
50
|
+
}
|
|
51
|
+
// eslint-disable-next-line react/no-multi-comp
|
|
52
|
+
function IncrementButton({ increment, min, max, readOnly, disabled, onChange, value, }) {
|
|
53
|
+
const add = increment === 1;
|
|
54
|
+
const prevValue = isNumber(value) || 0;
|
|
55
|
+
const isDisabled = readOnly ||
|
|
56
|
+
disabled ||
|
|
57
|
+
(typeof min !== 'undefined' && prevValue + increment < min) ||
|
|
58
|
+
(typeof max !== 'undefined' && prevValue + increment > max);
|
|
59
|
+
const longPress = useLongPress((pressCounter) => onChange(prevValue + increment * pressCounter), 2000, isDisabled);
|
|
60
|
+
return (_jsx("button", { "aria-label": `${add ? 'Increase' : 'Decrease'} value`, "data-increment": increment, disabled: isDisabled, type: "button", ...longPress.buttonProps, children: add ? _jsx(SvgAdd, {}) : _jsx(SvgRemove, {}) }));
|
|
61
|
+
}
|
|
62
|
+
NumberInput.bspkName = 'NumberInput';
|
|
63
|
+
export { NumberInput };
|
|
64
|
+
//# sourceMappingURL=NumberInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../src/NumberInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './popover.scss';
|
|
1
2
|
import { ReactElement } from 'react';
|
|
2
3
|
import { Placement } from './hooks/useFloating';
|
|
3
4
|
import { CallToActionButton, CommonProps } from './';
|
|
@@ -35,10 +36,9 @@ export type PopoverProps = CommonProps<'disabled'> & {
|
|
|
35
36
|
*
|
|
36
37
|
* @name Popover
|
|
37
38
|
*/
|
|
38
|
-
declare function Popover({ placement, header, content, callToAction, children, disabled }: PopoverProps): import("
|
|
39
|
+
declare function Popover({ placement, header, content, callToAction, children, disabled }: PopoverProps): import("react/jsx-runtime").JSX.Element;
|
|
39
40
|
declare namespace Popover {
|
|
40
41
|
var bspkName: string;
|
|
41
42
|
}
|
|
42
43
|
export { Popover };
|
|
43
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
44
44
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
package/dist/Popover.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { SvgClose } from '@bspk/icons/Close';
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=popover]{position:absolute;z-index:var(--z-index-tooltip-popover);background:var(--surface-neutral-t1-base);box-shadow:var(--drop-shadow-float);padding:var(--spacing-sizing-04);width:300px;border-radius:var(--radius-large);display:flex;flex-direction:column;--arrow-size: var(--spacing-sizing-02);--arrow-offset: calc(var(--arrow-size) * -2);--arrow-background-color: var(--surface-neutral-t1-base)}[data-bspk=popover] header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sizing-02);gap:var(--spacing-sizing-04)}[data-bspk=popover] header button{background:none;border:none;cursor:pointer;padding:0;margin:0 0 0 auto;color:var(--foreground-neutral-on-surface-variant-01);height:var(--spacing-sizing-06);width:var(--spacing-sizing-06)}[data-bspk=popover] header button svg{width:var(--spacing-sizing-06);height:var(--spacing-sizing-06)}[data-bspk=popover] [data-arrow]{z-index:1;position:absolute;width:0;height:0;border-style:solid;border-width:var(--arrow-size) var(--arrow-size) var(--arrow-size) var(--arrow-size);border-color:rgba(0,0,0,0)}[data-bspk=popover][data-placement^=top] [data-arrow]{bottom:var(--arrow-offset);border-top-color:var(--arrow-background-color);filter:drop-shadow(0 2px 1px var(--shadow-10))}[data-bspk=popover][data-placement^=right] [data-arrow]{margin-left:calc(var(--arrow-offset)*2);border-right-color:var(--arrow-background-color);filter:drop-shadow(-2px 0 1px var(--shadow-10))}[data-bspk=popover][data-placement^=bottom] [data-arrow]{top:var(--arrow-offset);border-bottom-color:var(--arrow-background-color);filter:drop-shadow(0 -2px 1px var(--shadow-10))}[data-bspk=popover][data-placement=bottom-start] [data-arrow]{margin-left:var(--arrow-offset)}[data-bspk=popover][data-placement=bottom-end] [data-arrow]{margin-left:calc(var(--arrow-offset)*-1)}[data-bspk=popover][data-placement^=left] [data-arrow]{right:var(--arrow-offset);border-left-color:var(--arrow-background-color);filter:drop-shadow(2px 0 1px var(--shadow-10))}[data-bspk=popover] [data-content]{gap:var(--spacing-sizing-04);display:flex;flex-direction:column}[data-bspk=popover] [data-call-to-action]{margin:0 0 0 auto}`);;
|
|
5
|
+
import { cloneElement, useId, useMemo, useRef, useState } from 'react';
|
|
6
|
+
import { Button } from './Button';
|
|
7
|
+
import { Portal } from './Portal';
|
|
8
|
+
import { Txt } from './Txt';
|
|
9
|
+
import { useFloating } from './hooks/useFloating';
|
|
10
|
+
import { useOutsideClick } from './hooks/useOutsideClick';
|
|
11
|
+
/**
|
|
12
|
+
* Brief message that provide additional guidance and helps users perform an action if needed.
|
|
13
|
+
*
|
|
14
|
+
* @name Popover
|
|
15
|
+
*/
|
|
16
|
+
function Popover({ placement = 'top', header, content, callToAction, children, disabled = false }) {
|
|
17
|
+
const id = useId();
|
|
18
|
+
const [show, setShow] = useState(false);
|
|
19
|
+
const arrowRef = useRef(null);
|
|
20
|
+
const { elements, floatingStyles, middlewareData } = useFloating({
|
|
21
|
+
placement: placement,
|
|
22
|
+
strategy: 'absolute',
|
|
23
|
+
offsetOptions: 22,
|
|
24
|
+
arrowRef,
|
|
25
|
+
hide: !show,
|
|
26
|
+
});
|
|
27
|
+
useOutsideClick([elements.floating], () => setShow(false));
|
|
28
|
+
const child = useMemo(() => !disabled &&
|
|
29
|
+
children &&
|
|
30
|
+
cloneElement(children, {
|
|
31
|
+
onClick: () => setShow((prev) => !prev),
|
|
32
|
+
'aria-describedby': id,
|
|
33
|
+
}), [children, disabled, id]);
|
|
34
|
+
return disabled ? (children) : (_jsxs(_Fragment, { children: [child, _jsx(Portal, { children: _jsxs("div", { "data-bspk": "popover", "data-placement": middlewareData?.offset?.placement, id: id, ref: (node) => {
|
|
35
|
+
elements.setFloating(node);
|
|
36
|
+
elements.setTrigger(document.querySelector(`[aria-describedby="${id}"]`));
|
|
37
|
+
}, style: floatingStyles, children: [_jsxs("header", { children: [_jsx(Txt, { variant: "heading-h6", children: header }), _jsx("button", { "aria-label": "Close", onClick: () => setShow(false), children: _jsx(SvgClose, {}) })] }), _jsxs("div", { "data-content": true, children: [_jsx(Txt, { as: "div", variant: "body-small", children: content }), callToAction?.label && callToAction?.onClick && (_jsx(Button, { "data-call-to-action": true, label: callToAction.label, onClick: callToAction.onClick, size: "small", variant: "secondary" }))] }), _jsx("div", { "data-arrow": true, ref: (node) => {
|
|
38
|
+
arrowRef.current = node;
|
|
39
|
+
}, style: {
|
|
40
|
+
left: `${middlewareData?.arrow?.x}px`,
|
|
41
|
+
top: `${middlewareData?.arrow?.y}px`,
|
|
42
|
+
} })] }) })] }));
|
|
43
|
+
}
|
|
44
|
+
Popover.bspkName = 'Popover';
|
|
45
|
+
export { Popover };
|
|
46
|
+
//# sourceMappingURL=Popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../src/Popover.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
2
|
import { createPortal } from 'react-dom';
|
|
3
|
-
|
|
4
3
|
/**
|
|
5
4
|
* Utility component to render children in the portals container provided by the BaseProvider.
|
|
6
5
|
*
|
|
@@ -14,10 +13,10 @@ function Portal({ children, container }) {
|
|
|
14
13
|
if (!portalContainer && typeof window !== 'undefined')
|
|
15
14
|
setPortalContainer(document.body);
|
|
16
15
|
}, [portalContainer]);
|
|
16
|
+
// data-bspk="portal" can't be used here
|
|
17
17
|
return portalContainer && createPortal(children, portalContainer);
|
|
18
18
|
}
|
|
19
19
|
Portal.bspkName = 'Portal';
|
|
20
|
-
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
21
|
-
|
|
22
20
|
export { Portal };
|
|
23
|
-
|
|
21
|
+
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
22
|
+
//# sourceMappingURL=Portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Portal.js","sourceRoot":"","sources":["../src/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAazC;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAe;IAChD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAqB,SAAS,IAAI,IAAI,CAAC,CAAC;IAE9F,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,eAAe,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,wCAAwC;IACxC,OAAO,eAAe,IAAI,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,sDAAsD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './progress-bar.scss';
|
|
1
2
|
export type ProgressBarProps = {
|
|
2
3
|
/**
|
|
3
4
|
* The size of the progressbar.
|
|
@@ -29,10 +30,9 @@ export type ProgressBarProps = {
|
|
|
29
30
|
*
|
|
30
31
|
* @name ProgressBar
|
|
31
32
|
*/
|
|
32
|
-
declare function ProgressBar({ size, completion, align, label }: ProgressBarProps): import("
|
|
33
|
+
declare function ProgressBar({ size, completion, align, label }: ProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
|
33
34
|
declare namespace ProgressBar {
|
|
34
35
|
var bspkName: string;
|
|
35
36
|
}
|
|
36
37
|
export { ProgressBar };
|
|
37
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
38
38
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { styleAdd } from './utils/styleAdd';
|
|
3
|
+
styleAdd(`[data-bspk=progress-bar]{/*! --width: is set via inline style */display:flex;flex-direction:column;width:100%;gap:var(--spacing-sizing-01)}[data-bspk=progress-bar] progress{opacity:0;position:absolute}[data-bspk=progress-bar] [data-bar]{width:100%;height:var(--spacing-sizing-02);background-color:var(--surface-neutral-t3-low);border-radius:var(--radius-small)}[data-bspk=progress-bar] [data-bar]::after{content:"";display:block;height:100%;background-color:var(--foreground-brand-primary);border-radius:var(--radius-small);width:var(--width);transition:width .3s}[data-bspk=progress-bar][data-size=small]{max-width:248px}[data-bspk=progress-bar][data-size=small] [data-bar]{height:var(--spacing-sizing-01)}[data-bspk=progress-bar] label{font-size:var(--labels-small);width:100%;text-align:center}[data-bspk=progress-bar][data-align=left] label{text-align:left}`);;
|
|
4
|
+
import { useId } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* A progress bar is a horizontal visual indicator that let’s the user know the progression of a task or operation
|
|
7
|
+
* occurring in the background.
|
|
8
|
+
*
|
|
9
|
+
* @name ProgressBar
|
|
10
|
+
*/
|
|
11
|
+
function ProgressBar({ size = 'large', completion = 0, align = 'center', label }) {
|
|
12
|
+
const id = useId();
|
|
13
|
+
return (_jsxs("div", { "data-align": align, "data-bspk": "progress-bar", "data-size": size, children: [_jsxs("progress", { "aria-busy": completion < 100, "aria-label": "A bounded progress bar from 0 to 100", "aria-valuemax": 100, "aria-valuemin": 0, "aria-valuenow": completion, id: id, max: "100", value: completion, children: [completion, "%"] }), _jsx("div", { "aria-hidden": true, "data-bar": true, style: { '--width': `${completion}%` } }), _jsx("label", { htmlFor: id, children: label })] }));
|
|
14
|
+
}
|
|
15
|
+
ProgressBar.bspkName = 'ProgressBar';
|
|
16
|
+
export { ProgressBar };
|
|
17
|
+
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":";AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAiB,KAAK,EAAE,MAAM,OAAO,CAAC;AA4B7C;;;;;GAKG;AACH,SAAS,WAAW,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAoB;IAC9F,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,OAAO,CACH,6BAAiB,KAAK,eAAY,cAAc,eAAY,IAAI,aAC5D,iCACe,UAAU,GAAG,GAAG,gBAChB,sCAAsC,mBAClC,GAAG,mBACH,CAAC,mBACD,UAAU,EACzB,EAAE,EAAE,EAAE,EACN,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,UAAU,aAEhB,UAAU,SACJ,EACX,qDAA0B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,UAAU,GAAG,EAAmB,GAAI,EACrF,gBAAO,OAAO,EAAE,EAAE,YAAG,KAAK,GAAS,IACjC,CACT,CAAC;AACN,CAAC;AAED,WAAW,CAAC,QAAQ,GAAG,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './progress-circle.scss';
|
|
1
2
|
export type ProgressCircleProps = {
|
|
2
3
|
/** The label of the progress circle. */
|
|
3
4
|
label: string;
|
|
@@ -19,13 +20,12 @@ export type ProgressCircleProps = {
|
|
|
19
20
|
*
|
|
20
21
|
* @name ProgressCircle
|
|
21
22
|
*/
|
|
22
|
-
declare function ProgressCircle({ label, labelPosition, size }: ProgressCircleProps): import("
|
|
23
|
+
declare function ProgressCircle({ label, labelPosition, size }: ProgressCircleProps): import("react/jsx-runtime").JSX.Element;
|
|
23
24
|
declare namespace ProgressCircle {
|
|
24
25
|
var bspkName: string;
|
|
25
26
|
var SVG: (props: {
|
|
26
27
|
strokeWidth?: number;
|
|
27
|
-
}) => import("
|
|
28
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
28
29
|
}
|
|
29
30
|
export { ProgressCircle };
|
|
30
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
31
31
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable react/no-multi-comp */
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=progress-circle]{--animation-speed: 1.5s;display:flex;flex-direction:column;gap:var(--spacing-sizing-02);align-items:center;justify-content:center}[data-bspk=progress-circle][data-label-position=top]{flex-direction:column-reverse}[data-bspk=progress-circle][data-label-position=left]{flex-direction:row-reverse}[data-bspk=progress-circle][data-label-position=right]{flex-direction:row}[data-bspk=progress-circle] svg{color:var(--foreground-brand-secondary);animation:spin var(--animation-speed) linear infinite}@keyframes spin{100%{transform:rotate(360deg)}0%{transform:rotate(0deg)}}[data-bspk=progress-circle][data-size=small] svg{width:32px}[data-bspk=progress-circle][data-size=medium] svg{width:40px}[data-bspk=progress-circle][data-size=large] svg{width:48px}`);;
|
|
5
|
+
import { useId } from 'react';
|
|
6
|
+
import { Txt } from './Txt';
|
|
7
|
+
/**
|
|
8
|
+
* Rotating circle or pill that indicates the status or state of completion for a process that’s part of a user flow.
|
|
9
|
+
*
|
|
10
|
+
* @name ProgressCircle
|
|
11
|
+
*/
|
|
12
|
+
function ProgressCircle({ label, labelPosition, size = 'medium' }) {
|
|
13
|
+
let variant = 'labels-base';
|
|
14
|
+
if (size === 'small')
|
|
15
|
+
variant = 'labels-small';
|
|
16
|
+
else if (size === 'large')
|
|
17
|
+
variant = 'labels-large';
|
|
18
|
+
const labelId = useId();
|
|
19
|
+
return (_jsxs("div", { "aria-labelledby": labelId, "data-bspk": "progress-circle", "data-label-position": labelPosition, "data-size": size, role: "progressbar", children: [_jsx(ProgressCircle.SVG, {}), _jsx(Txt, { id: labelId, variant: variant, children: label || 'Loading ...' })] }));
|
|
20
|
+
}
|
|
21
|
+
ProgressCircle.bspkName = 'ProgressCircle';
|
|
22
|
+
export { ProgressCircle };
|
|
23
|
+
const ProgressCircleSVG = (props) => {
|
|
24
|
+
const strokeWidth = props.strokeWidth || 10;
|
|
25
|
+
const width = 100;
|
|
26
|
+
const id = useId();
|
|
27
|
+
return (_jsxs("svg", { ...props, "data-animated": true, fill: "none", viewBox: `0 0 ${width * 2} ${width * 2}`, children: [_jsxs("defs", { children: [_jsxs("linearGradient", { id: `${id}spinner-secondHalf`, children: [_jsx("stop", { offset: "50%", stopColor: "currentColor", stopOpacity: 0 }), _jsx("stop", { offset: "100%", stopColor: "currentColor", stopOpacity: "0.375" })] }), _jsxs("linearGradient", { id: `${id}spinner-firstHalf`, children: [_jsx("stop", { offset: "0%", stopColor: "currentColor", stopOpacity: 1 }), _jsx("stop", { offset: "100%", stopColor: "currentColor", stopOpacity: "0.375" })] })] }), _jsxs("g", { strokeWidth: strokeWidth * 2, children: [_jsx("path", { d: `M ${strokeWidth} ${width} A ${width - strokeWidth} ${width - strokeWidth} 0 0 1 ${width + (width - strokeWidth)} ${width}`, stroke: `url(#${id}spinner-secondHalf)` }), _jsx("path", { d: `M ${width + (width - strokeWidth)} ${width} A ${width - strokeWidth} ${width - strokeWidth} 0 0 1 ${strokeWidth} ${width}`, stroke: `url(#${id}spinner-firstHalf)` }), _jsx("path", { d: `M ${strokeWidth} ${width} A ${width - strokeWidth} ${width - strokeWidth} 0 0 1 ${strokeWidth} ${width - 2}`, stroke: "currentColor", strokeLinecap: "round" })] })] }));
|
|
28
|
+
};
|
|
29
|
+
ProgressCircle.SVG = ProgressCircleSVG;
|
|
30
|
+
//# sourceMappingURL=ProgressCircle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressCircle.js","sourceRoot":"","sources":["../src/ProgressCircle.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AAExC,OAAO,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAoB5B;;;;GAIG;AACH,SAAS,cAAc,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,GAAG,QAAQ,EAAuB;IAClF,IAAI,OAAO,GAAe,aAAa,CAAC;IAExC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,GAAG,cAAc,CAAC;SAC1C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,GAAG,cAAc,CAAC;IAEpD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IAExB,OAAO,CACH,kCACqB,OAAO,eACd,iBAAiB,yBACN,aAAa,eACvB,IAAI,EACf,IAAI,EAAC,aAAa,aAElB,KAAC,cAAc,CAAC,GAAG,KAAG,EACtB,KAAC,GAAG,IAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,YAC7B,KAAK,IAAI,aAAa,GACrB,IACJ,CACT,CAAC;AACN,CAAC;AAED,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,iBAAiB,GAAG,CAAC,KAA+B,EAAE,EAAE;IAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,OAAO,CACH,kBAAS,KAAK,yBAAgB,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,aAC9E,2BACI,0BAAgB,EAAE,EAAE,GAAG,EAAE,oBAAoB,aACzC,eAAM,MAAM,EAAC,KAAK,EAAC,SAAS,EAAC,cAAc,EAAC,WAAW,EAAE,CAAC,GAAI,EAC9D,eAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,cAAc,EAAC,WAAW,EAAC,OAAO,GAAG,IACtD,EACjB,0BAAgB,EAAE,EAAE,GAAG,EAAE,mBAAmB,aACxC,eAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,cAAc,EAAC,WAAW,EAAE,CAAC,GAAI,EAC7D,eAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,cAAc,EAAC,WAAW,EAAC,OAAO,GAAG,IACtD,IACd,EACP,aAAG,WAAW,EAAE,WAAW,GAAG,CAAC,aAC3B,eACI,CAAC,EAAE,KAAK,WAAW,IAAI,KAAK,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,WAAW,UAAU,KAAK,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,KAAK,EAAE,EAC9H,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GACzC,EACF,eACI,CAAC,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,KAAK,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,WAAW,UAAU,WAAW,IAAI,KAAK,EAAE,EAC9H,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GACxC,EAEF,eACI,CAAC,EAAE,KAAK,WAAW,IAAI,KAAK,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,WAAW,UAAU,WAAW,IAAI,KAAK,GAAG,CAAC,EAAE,EAChH,MAAM,EAAC,cAAc,EACrB,aAAa,EAAC,OAAO,GACvB,IACF,IACF,CACT,CAAC;AACN,CAAC,CAAC;AAEF,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './progression-stepper.scss';
|
|
1
2
|
import { ElementProps } from '.';
|
|
2
3
|
/** A progress stepper item is a single step in the progress bar. */
|
|
3
4
|
export type ProgressionStepperItem = {
|
|
@@ -57,10 +58,9 @@ export type ProgressionStepperProps = {
|
|
|
57
58
|
*
|
|
58
59
|
* @name ProgressionStepper
|
|
59
60
|
*/
|
|
60
|
-
declare function ProgressionStepper({ steps, currentStep: currentStepProp, variant, ...containerProps }: ElementProps<ProgressionStepperProps, 'div'>): import("
|
|
61
|
+
declare function ProgressionStepper({ steps, currentStep: currentStepProp, variant, ...containerProps }: ElementProps<ProgressionStepperProps, 'div'>): import("react/jsx-runtime").JSX.Element;
|
|
61
62
|
declare namespace ProgressionStepper {
|
|
62
63
|
var bspkName: string;
|
|
63
64
|
}
|
|
64
65
|
export { ProgressionStepper };
|
|
65
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
66
66
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SvgCheck } from '@bspk/icons/Check';
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=progression-stepper]{width:100%;--circle-width: var(--spacing-sizing-09);--active-background-color: var(--surface-brand-primary);--active-foreground-color: var(--foreground-brand-on-primary);--inactive-background-color: var(--surface-neutral-t3-low);--inactive-foreground-color: var(--foreground-neutral-on-surface)}[data-bspk=progression-stepper] ol{display:flex;width:100%;margin:0;padding:0}[data-bspk=progression-stepper] ol li{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;gap:var(--spacing-sizing-02)}[data-bspk=progression-stepper] ol li [data-line-circle]{display:flex;justify-content:center;align-items:center;flex-direction:row}[data-bspk=progression-stepper] ol li [data-line-circle] [data-line]{background-color:var(--inactive-background-color);height:2px;flex-grow:1}[data-bspk=progression-stepper] ol li [data-line-circle] [data-circle]{display:flex;justify-content:center;align-items:center;width:var(--circle-width);height:var(--circle-width);border-radius:50%;background-color:none;border:2px solid var(--inactive-background-color);font:var(--labels-large)}[data-bspk=progression-stepper] ol li [data-line-circle] [data-circle] svg{display:none;width:var(--spacing-sizing-06);height:var(--spacing-sizing-06)}[data-bspk=progression-stepper] ol li [data-content]{display:flex;padding:0 var(--spacing-sizing-10);font:var(--body-small)}[data-bspk=progression-stepper] ol li:first-of-type [data-line=before]{visibility:hidden}[data-bspk=progression-stepper] ol li:last-of-type [data-line=after]{visibility:hidden}[data-bspk=progression-stepper] ol li[data-status=complete] [data-line]{background-color:var(--active-background-color)}[data-bspk=progression-stepper] ol li[data-status=complete] [data-circle]{background-color:var(--active-background-color);border:1px solid var(--active-background-color);color:var(--active-foreground-color)}[data-bspk=progression-stepper] ol li[data-status=complete] [data-circle] span{display:none}[data-bspk=progression-stepper] ol li[data-status=complete] [data-circle] svg{display:block}[data-bspk=progression-stepper] ol li[data-status=current] [data-line=before]{background-color:var(--active-background-color)}[data-bspk=progression-stepper] ol li[data-status=current] [data-circle]{border-color:var(--active-background-color)}[data-bspk=progression-stepper][data-variant=vertical] ol{flex-direction:column}[data-bspk=progression-stepper][data-variant=vertical] li{flex-direction:row}[data-bspk=progression-stepper][data-variant=vertical] li [data-line-circle]{flex-direction:column;width:var(--circle-width)}[data-bspk=progression-stepper][data-variant=vertical] li [data-line-circle] [data-line]{width:2px;height:auto}[data-bspk=progression-stepper][data-variant=vertical] li [data-content]{flex-direction:column;padding:var(--spacing-sizing-10) 0}[data-bspk=progression-stepper][data-variant=widget]{--circle-width: var(--spacing-sizing-05)}[data-bspk=progression-stepper][data-variant=widget] label{display:flex;flex-direction:column;gap:var(--spacing-sizing-02);margin-bottom:var(--spacing-sizing-03);font:var(--body-small)}[data-bspk=progression-stepper][data-variant=widget] label [data-title]{font:var(--labels-base);color:var(--foreground-neutral-on-surface)}[data-bspk=progression-stepper][data-variant=widget] label [data-subtitle]{font:var(--body-x-small);color:var(--foreground-neutral-on-surface-variant-02)}[data-bspk=progression-stepper][data-variant=widget] ol{align-items:center;min-height:var(--spacing-sizing-09)}[data-bspk=progression-stepper][data-variant=widget] ol li [data-line-circle] [data-line]{width:10px}[data-bspk=progression-stepper][data-variant=widget] ol li[data-status=current]{--circle-width: var(--spacing-sizing-09)}[data-bspk=progression-stepper][data-variant=widget] ol li[data-status=incomplete] [data-circle] span{display:none}`);;
|
|
5
|
+
/**
|
|
6
|
+
* A progress stepper is a horizontal visual indicator that let’s the user know the progression of the current process.
|
|
7
|
+
*
|
|
8
|
+
* @name ProgressionStepper
|
|
9
|
+
*/
|
|
10
|
+
function ProgressionStepper({ steps = [], currentStep: currentStepProp = 0, variant = 'horizontal', ...containerProps }) {
|
|
11
|
+
const currentStep = Math.max(0, Math.min(currentStepProp, steps.length + 1));
|
|
12
|
+
return (_jsxs("div", { ...containerProps, "data-bspk": "progression-stepper", "data-variant": variant, children: [variant === 'widget' && (_jsxs("label", { children: [_jsx("span", { "data-title": true, children: steps[Math.max(0, Math.min(currentStep - 1, steps.length - 1))].name }), _jsx("span", { "data-subtitle": true, children: currentStep >= steps.length ? ('Completed') : (_jsxs(_Fragment, { children: ["Step ", currentStep, " of ", steps.length] })) })] })), _jsx("ol", { children: steps.flatMap(({ name, subtext }, index) => {
|
|
13
|
+
const stepNum = index + 1;
|
|
14
|
+
let status = 'incomplete';
|
|
15
|
+
if (stepNum < currentStep)
|
|
16
|
+
status = 'complete';
|
|
17
|
+
else if (stepNum === currentStep)
|
|
18
|
+
status = 'current';
|
|
19
|
+
return (_jsxs("li", { "data-status": status, "data-step": stepNum, children: [_jsxs("span", { "aria-hidden": true, "data-line-circle": true, children: [_jsx("span", { "data-line": "before" }), _jsxs("span", { "data-circle": true, children: [_jsx("span", { children: stepNum }), status === 'complete' && _jsx(SvgCheck, {})] }), _jsx("span", { "data-line": "after" })] }), variant !== 'widget' && (_jsxs("span", { "data-content": true, children: [_jsx("span", { "data-name": true, children: name }), subtext && _jsx("span", { "data-subtext": true, children: subtext })] }))] }, `step-${index}`));
|
|
20
|
+
}) })] }));
|
|
21
|
+
}
|
|
22
|
+
ProgressionStepper.bspkName = 'ProgressionStepper';
|
|
23
|
+
export { ProgressionStepper };
|
|
24
|
+
//# sourceMappingURL=ProgressionStepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressionStepper.js","sourceRoot":"","sources":["../src/ProgressionStepper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,4BAA4B,CAAC;AAuDpC;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,EACxB,KAAK,GAAG,EAAE,EACV,WAAW,EAAE,eAAe,GAAG,CAAC,EAChC,OAAO,GAAG,YAAY,EACtB,GAAG,cAAc,EAC0B;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,CACH,kBAAS,cAAc,eAAY,qBAAqB,kBAAe,OAAO,aACzE,OAAO,KAAK,QAAQ,IAAI,CACrB,4BACI,6CAAkB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAQ,EAC9F,gDACK,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3B,WAAW,CACd,CAAC,CAAC,CAAC,CACA,uCACU,WAAW,UAAM,KAAK,CAAC,MAAM,IACpC,CACN,GACE,IACH,CACX,EACD,uBACK,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE;oBACxC,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;oBAC1B,IAAI,MAAM,GAA0C,YAAY,CAAC;oBACjE,IAAI,OAAO,GAAG,WAAW;wBAAE,MAAM,GAAG,UAAU,CAAC;yBAC1C,IAAI,OAAO,KAAK,WAAW;wBAAE,MAAM,GAAG,SAAS,CAAC;oBAErD,OAAO,CACH,6BAAiB,MAAM,eAAa,OAAO,aACvC,0EACI,4BAAgB,QAAQ,GAAG,EAC3B,gDACI,yBAAO,OAAO,GAAQ,EACrB,MAAM,KAAK,UAAU,IAAI,KAAC,QAAQ,KAAG,IACnC,EACP,4BAAgB,OAAO,GAAG,IACvB,EACN,OAAO,KAAK,QAAQ,IAAI,CACrB,iDACI,4CAAiB,IAAI,GAAQ,EAC5B,OAAO,IAAI,+CAAoB,OAAO,GAAQ,IAC5C,CACV,KAd6C,QAAQ,KAAK,EAAE,CAe5D,CACR,CAAC;gBACN,CAAC,CAAC,GACD,IACH,CACT,CAAC;AACN,CAAC;AAED,kBAAkB,CAAC,QAAQ,GAAG,oBAAoB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './progression-stepper-bar.scss';
|
|
1
2
|
export type ProgressionStepperBarProps = {
|
|
2
3
|
/**
|
|
3
4
|
* The number of steps in the progress bar.
|
|
@@ -14,7 +15,11 @@ export type ProgressionStepperBarProps = {
|
|
|
14
15
|
* @minimum 0
|
|
15
16
|
*/
|
|
16
17
|
stepCompleted?: number;
|
|
17
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* The size of the progress bar.
|
|
20
|
+
*
|
|
21
|
+
* @default large
|
|
22
|
+
*/
|
|
18
23
|
size?: 'large' | 'small';
|
|
19
24
|
};
|
|
20
25
|
/**
|
|
@@ -22,10 +27,9 @@ export type ProgressionStepperBarProps = {
|
|
|
22
27
|
*
|
|
23
28
|
* @name ProgressionStepperBar
|
|
24
29
|
*/
|
|
25
|
-
declare function ProgressionStepperBar({ stepCount, stepCompleted: stepCompletedProp, size, }: ProgressionStepperBarProps): import("
|
|
30
|
+
declare function ProgressionStepperBar({ stepCount, stepCompleted: stepCompletedProp, size, }: ProgressionStepperBarProps): import("react/jsx-runtime").JSX.Element;
|
|
26
31
|
declare namespace ProgressionStepperBar {
|
|
27
32
|
var bspkName: string;
|
|
28
33
|
}
|
|
29
34
|
export { ProgressionStepperBar };
|
|
30
|
-
export declare const style: import("@emotion/react").SerializedStyles;
|
|
31
35
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|