@smwb/ui-react 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
- package/dist/assets/styles/less/components/card/card.entry.css +1 -1
- package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
- package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
- package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
- package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
- package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
- package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
- package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
- package/dist/assets/styles/less/components/table/table.entry.css +1 -1
- package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
- package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
- package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
- package/dist/assets/styles/less/connects/rt/table.entry.css +1 -1
- package/dist/components/base/icon/icon.d.ts +6 -2
- package/dist/components/base/icon/icon.js +49 -37
- package/dist/components/base/icon/icon.js.map +1 -1
- package/dist/components/base/ripple/ripple.d.ts +3 -0
- package/dist/components/base/ripple/ripple.js +38 -23
- package/dist/components/base/ripple/ripple.js.map +1 -1
- package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
- package/dist/components/dataDisplay/avatar/avatar.js +50 -37
- package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/components/dataDisplay/badge/badge.js +37 -28
- package/dist/components/dataDisplay/badge/badge.js.map +1 -1
- package/dist/components/dataDisplay/card/card.d.ts +30 -2
- package/dist/components/dataDisplay/card/card.js +50 -23
- package/dist/components/dataDisplay/card/card.js.map +1 -1
- package/dist/components/dataDisplay/carousel/carousel.js +70 -70
- package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
- package/dist/components/dataDisplay/chart/chart.js +66 -53
- package/dist/components/dataDisplay/chart/chart.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatIconButton.d.ts +1 -1
- package/dist/components/dataDisplay/chat/chatIconButton.js +30 -26
- package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatLayout.d.ts +3 -1
- package/dist/components/dataDisplay/chat/chatLayout.js +56 -55
- package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +3 -1
- package/dist/components/dataDisplay/chip/chip.d.ts +31 -0
- package/dist/components/dataDisplay/chip/chip.js +110 -83
- package/dist/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/components/dataDisplay/chipGroup/chipGroup.js +34 -30
- package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
- package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
- package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
- package/dist/components/dataDisplay/kanban/kanban.js +46 -35
- package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
- package/dist/components/dataDisplay/lazyImage/lazyImage.js +31 -30
- package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/components/dataDisplay/list/list.d.ts +2 -0
- package/dist/components/dataDisplay/list/list.js +15 -14
- package/dist/components/dataDisplay/list/list.js.map +1 -1
- package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
- package/dist/components/dataDisplay/meter/meter.js +24 -23
- package/dist/components/dataDisplay/meter/meter.js.map +1 -1
- package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
- package/dist/components/dataDisplay/personChip/personChip.js +39 -27
- package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
- package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
- package/dist/components/dataDisplay/stat/stat.js +25 -13
- package/dist/components/dataDisplay/stat/stat.js.map +1 -1
- package/dist/components/dataDisplay/table/table.d.ts +16 -1
- package/dist/components/dataDisplay/table/table.js +40 -36
- package/dist/components/dataDisplay/table/table.js.map +1 -1
- package/dist/components/dataDisplay/table/tableBody.js +10 -4
- package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
- package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
- package/dist/components/dataDisplay/table/tableCell.js +20 -13
- package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableColumns.d.ts +83 -0
- package/dist/components/dataDisplay/table/tableColumns.js +112 -0
- package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
- package/dist/components/dataDisplay/table/tableHead.js +9 -3
- package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
- package/dist/components/dataDisplay/table/tableHeadCell.d.ts +24 -3
- package/dist/components/dataDisplay/table/tableHeadCell.js +60 -65
- package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableRow.d.ts +3 -1
- package/dist/components/dataDisplay/table/tableRow.js +28 -16
- package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
- package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
- package/dist/components/dataDisplay/thumbCard/thumbCard.js +79 -59
- package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
- package/dist/components/dataDisplay/treeView/treeView.js +24 -23
- package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
- package/dist/components/feedBack/emptyState/emptyState.js +22 -12
- package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
- package/dist/components/feedBack/message/message.d.ts +2 -0
- package/dist/components/feedBack/message/message.js +30 -19
- package/dist/components/feedBack/message/message.js.map +1 -1
- package/dist/components/feedBack/modal/modal.js +40 -40
- package/dist/components/feedBack/modal/modal.js.map +1 -1
- package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
- package/dist/components/feedBack/skeleton/skeleton.js +37 -34
- package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/components/feedBack/snackbar/snackbar.js +104 -103
- package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
- package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
- package/dist/components/feedBack/tooltip/tooltip.js +67 -47
- package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/components/inputs/button/button.d.ts +2 -0
- package/dist/components/inputs/button/button.js +62 -58
- package/dist/components/inputs/button/button.js.map +1 -1
- package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
- package/dist/components/inputs/buttonGroups/buttonGroup.js +40 -36
- package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
- package/dist/components/inputs/checkbox/checkbox.js +84 -59
- package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/components/inputs/datePicker/datePicker.js +170 -164
- package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerDay.d.ts +1 -1
- package/dist/components/inputs/datePicker/datePickerDay.js +52 -44
- package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerIconButton.d.ts +1 -1
- package/dist/components/inputs/datePicker/datePickerIconButton.js +32 -28
- package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/components/inputs/floatingButton/floatingButton.js +32 -30
- package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
- package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
- package/dist/components/inputs/radioButton/radioButton.js +77 -58
- package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/components/inputs/rating/rating.d.ts +8 -0
- package/dist/components/inputs/rating/rating.js +85 -70
- package/dist/components/inputs/rating/rating.js.map +1 -1
- package/dist/components/inputs/selectField/dropdownMenu.d.ts +20 -1
- package/dist/components/inputs/selectField/dropdownMenu.js +266 -113
- package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
- package/dist/components/inputs/selectField/optionNavigation.js +38 -0
- package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
- package/dist/components/inputs/selectField/selectField.d.ts +31 -1
- package/dist/components/inputs/selectField/selectField.js +358 -218
- package/dist/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/components/inputs/slider/slider.d.ts +22 -1
- package/dist/components/inputs/slider/slider.js +330 -261
- package/dist/components/inputs/slider/slider.js.map +1 -1
- package/dist/components/inputs/textField/textField.d.ts +7 -0
- package/dist/components/inputs/textField/textField.js +118 -100
- package/dist/components/inputs/textField/textField.js.map +1 -1
- package/dist/components/inputs/textField/textFieldWrapper.d.ts +15 -1
- package/dist/components/inputs/textField/textFieldWrapper.js +45 -34
- package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/components/inputs/timePicker/timePicker.js +91 -85
- package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/components/inputs/toggle/toggle.d.ts +4 -0
- package/dist/components/inputs/toggle/toggle.js +80 -61
- package/dist/components/inputs/toggle/toggle.js.map +1 -1
- package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
- package/dist/components/inputs/valueSlider/valueSlider.js +23 -22
- package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
- package/dist/components/layout/appLayout/appLayout.js +25 -24
- package/dist/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/components/layout/divider/divider.d.ts +2 -0
- package/dist/components/layout/divider/divider.js +23 -22
- package/dist/components/layout/divider/divider.js.map +1 -1
- package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
- package/dist/components/layout/floatingWindow/floatingWindow.js +145 -139
- package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/components/layout/grid/grid.d.ts +12 -1
- package/dist/components/layout/grid/grid.js +51 -36
- package/dist/components/layout/grid/grid.js.map +1 -1
- package/dist/components/layout/page/page.d.ts +2 -0
- package/dist/components/layout/page/page.js +16 -8
- package/dist/components/layout/page/page.js.map +1 -1
- package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
- package/dist/components/layout/pageHeader/pageHeader.js +22 -13
- package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
- package/dist/components/layout/sectionHeader/sectionHeader.js +37 -27
- package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
- package/dist/components/layout/sheet/sheet.d.ts +2 -0
- package/dist/components/layout/sheet/sheet.js +80 -79
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/stack/stack.d.ts +2 -0
- package/dist/components/layout/stack/stack.js +29 -17
- package/dist/components/layout/stack/stack.js.map +1 -1
- package/dist/components/navigation/appBar/appBar.d.ts +2 -0
- package/dist/components/navigation/appBar/appBar.js +24 -23
- package/dist/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/components/navigation/bottomBar/bottomBar.js +81 -77
- package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js +29 -27
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/navigation/menu/menu.d.ts +12 -0
- package/dist/components/navigation/menu/menu.js.map +1 -1
- package/dist/components/navigation/menu/menuContext.d.ts +2 -0
- package/dist/components/navigation/menu/menuContext.js.map +1 -1
- package/dist/components/navigation/menu/menuFloating.js +42 -30
- package/dist/components/navigation/menu/menuFloating.js.map +1 -1
- package/dist/components/navigation/menu/menuItem.d.ts +4 -0
- package/dist/components/navigation/menu/menuItem.js +60 -48
- package/dist/components/navigation/menu/menuItem.js.map +1 -1
- package/dist/components/navigation/menu/menuList.d.ts +5 -1
- package/dist/components/navigation/menu/menuList.js +30 -19
- package/dist/components/navigation/menu/menuList.js.map +1 -1
- package/dist/components/navigation/menu/menuSubmenu.js +53 -40
- package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
- package/dist/components/navigation/pagination/pagination.d.ts +2 -0
- package/dist/components/navigation/pagination/pagination.js +51 -49
- package/dist/components/navigation/pagination/pagination.js.map +1 -1
- package/dist/components/navigation/sidebar/sidebar.js +39 -38
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/components/navigation/stepper/stepper.d.ts +2 -0
- package/dist/components/navigation/stepper/stepper.js +37 -28
- package/dist/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/components/navigation/tabs/tab/tab.js +42 -40
- package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/components/navigation/tabs/tabs.d.ts +6 -0
- package/dist/components/navigation/tabs/tabs.js +83 -86
- package/dist/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/connects/rt/table/headerCellRenderer.d.ts +4 -1
- package/dist/connects/rt/table/headerCellRenderer.js +45 -15
- package/dist/connects/rt/table/headerCellRenderer.js.map +1 -1
- package/dist/connects/rt/table/table.d.ts +15 -1
- package/dist/connects/rt/table/table.js +125 -131
- package/dist/connects/rt/table/table.js.map +1 -1
- package/dist/headless/components/base/icon/icon.js +49 -37
- package/dist/headless/components/base/icon/icon.js.map +1 -1
- package/dist/headless/components/base/ripple/ripple.js +42 -27
- package/dist/headless/components/base/ripple/ripple.js.map +1 -1
- package/dist/headless/components/dataDisplay/avatar/avatar.js +51 -38
- package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/headless/components/dataDisplay/badge/badge.js +37 -28
- package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
- package/dist/headless/components/dataDisplay/card/card.js +50 -23
- package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
- package/dist/headless/components/dataDisplay/carousel/carousel.js +55 -55
- package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatIconButton.js +30 -26
- package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatLayout.js +56 -55
- package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
- package/dist/headless/components/dataDisplay/chip/chip.js +108 -81
- package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +35 -31
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/headless/components/dataDisplay/kanban/kanban.js +45 -34
- package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +30 -29
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/headless/components/dataDisplay/list/list.js +15 -14
- package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
- package/dist/headless/components/dataDisplay/meter/meter.js +19 -18
- package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
- package/dist/headless/components/dataDisplay/personChip/personChip.js +39 -27
- package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
- package/dist/headless/components/dataDisplay/stat/stat.js +27 -15
- package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/table.js +40 -36
- package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableBody.js +10 -4
- package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableCell.js +20 -13
- package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableColumns.js +112 -0
- package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableHead.js +9 -3
- package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js +60 -65
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableRow.js +28 -16
- package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +78 -58
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/headless/components/dataDisplay/treeView/treeView.js +24 -23
- package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/headless/components/feedBack/emptyState/emptyState.js +21 -11
- package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
- package/dist/headless/components/feedBack/message/message.js +31 -20
- package/dist/headless/components/feedBack/message/message.js.map +1 -1
- package/dist/headless/components/feedBack/modal/modal.js +44 -44
- package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
- package/dist/headless/components/feedBack/skeleton/skeleton.js +38 -35
- package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/headless/components/feedBack/snackbar/snackbar.js +108 -107
- package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
- package/dist/headless/components/feedBack/tooltip/tooltip.js +67 -47
- package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/headless/components/inputs/button/button.js +62 -58
- package/dist/headless/components/inputs/button/button.js.map +1 -1
- package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +40 -36
- package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
- package/dist/headless/components/inputs/checkbox/checkbox.js +85 -60
- package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePicker.js +170 -164
- package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerDay.js +52 -44
- package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +32 -28
- package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/headless/components/inputs/floatingButton/floatingButton.js +32 -30
- package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
- package/dist/headless/components/inputs/radioButton/radioButton.js +77 -58
- package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/headless/components/inputs/rating/rating.js +85 -70
- package/dist/headless/components/inputs/rating/rating.js.map +1 -1
- package/dist/headless/components/inputs/selectField/dropdownMenu.js +266 -113
- package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/headless/components/inputs/selectField/optionNavigation.js +38 -0
- package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
- package/dist/headless/components/inputs/selectField/selectField.js +358 -218
- package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/headless/components/inputs/slider/slider.js +330 -261
- package/dist/headless/components/inputs/slider/slider.js.map +1 -1
- package/dist/headless/components/inputs/textField/textField.js +118 -100
- package/dist/headless/components/inputs/textField/textField.js.map +1 -1
- package/dist/headless/components/inputs/textField/textFieldWrapper.js +45 -34
- package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/headless/components/inputs/timePicker/timePicker.js +91 -85
- package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/headless/components/inputs/toggle/toggle.js +79 -60
- package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
- package/dist/headless/components/inputs/valueSlider/valueSlider.js +25 -24
- package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/headless/components/layout/appLayout/appLayout.js +27 -26
- package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/headless/components/layout/divider/divider.js +18 -17
- package/dist/headless/components/layout/divider/divider.js.map +1 -1
- package/dist/headless/components/layout/floatingWindow/floatingWindow.js +145 -139
- package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/headless/components/layout/grid/grid.js +48 -33
- package/dist/headless/components/layout/grid/grid.js.map +1 -1
- package/dist/headless/components/layout/page/page.js +15 -7
- package/dist/headless/components/layout/page/page.js.map +1 -1
- package/dist/headless/components/layout/pageHeader/pageHeader.js +20 -11
- package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js +36 -26
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
- package/dist/headless/components/layout/sheet/sheet.js +80 -79
- package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
- package/dist/headless/components/layout/stack/stack.js +29 -17
- package/dist/headless/components/layout/stack/stack.js.map +1 -1
- package/dist/headless/components/navigation/appBar/appBar.js +15 -14
- package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/headless/components/navigation/bottomBar/bottomBar.js +81 -77
- package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +32 -30
- package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/headless/components/navigation/menu/menu.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuFloating.js +42 -30
- package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuItem.js +60 -48
- package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuList.js +30 -19
- package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuSubmenu.js +53 -40
- package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
- package/dist/headless/components/navigation/pagination/pagination.js +51 -49
- package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
- package/dist/headless/components/navigation/sidebar/sidebar.js +29 -28
- package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/components/navigation/stepper/stepper.js +42 -33
- package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tab/tab.js +41 -39
- package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabs.js +95 -98
- package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/headless/hooks/useDismissOnEscape.js +16 -0
- package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
- package/dist/headless/hooks/useFocusTrap.js +1 -0
- package/dist/headless/hooks/useFocusTrap.js.map +1 -1
- package/dist/headless/hooks/useHelperText.js +13 -0
- package/dist/headless/hooks/useHelperText.js.map +1 -0
- package/dist/headless/utils/controlProps.js +14 -0
- package/dist/headless/utils/controlProps.js.map +1 -0
- package/dist/headless/utils/overlayLayer.js +14 -7
- package/dist/headless/utils/overlayLayer.js.map +1 -1
- package/dist/headless/utils/ownClick.js +40 -0
- package/dist/headless/utils/ownClick.js.map +1 -0
- package/dist/headless/utils/readOnlyToggle.js +14 -0
- package/dist/headless/utils/readOnlyToggle.js.map +1 -0
- package/dist/hooks/useDismissOnEscape.d.ts +11 -0
- package/dist/hooks/useDismissOnEscape.js +16 -0
- package/dist/hooks/useDismissOnEscape.js.map +1 -0
- package/dist/hooks/useFocusTrap.d.ts +2 -0
- package/dist/hooks/useFocusTrap.js +1 -0
- package/dist/hooks/useFocusTrap.js.map +1 -1
- package/dist/hooks/useHelperText.d.ts +21 -0
- package/dist/hooks/useHelperText.js +13 -0
- package/dist/hooks/useHelperText.js.map +1 -0
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/utils/controlProps.d.ts +16 -0
- package/dist/utils/controlProps.js +14 -0
- package/dist/utils/controlProps.js.map +1 -0
- package/dist/utils/overlayLayer.d.ts +15 -3
- package/dist/utils/overlayLayer.js +14 -7
- package/dist/utils/overlayLayer.js.map +1 -1
- package/dist/utils/ownClick.d.ts +16 -0
- package/dist/utils/ownClick.js +40 -0
- package/dist/utils/ownClick.js.map +1 -0
- package/dist/utils/readOnlyToggle.d.ts +15 -0
- package/dist/utils/readOnlyToggle.js +14 -0
- package/dist/utils/readOnlyToggle.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","sources":["../../../../../src/components/inputs/slider/slider.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useEventCallback } from \"../../../hooks/useEventCallback\";\nimport { rescale, toPercent, coordX, coordY } from \"./utils\";\nimport { TextField, TextFieldWrapper } from \"../textField\";\n\nexport type SliderValue = number | [number, number];\n\nexport interface SliderMark {\n value: number;\n label?: React.ReactNode;\n}\n\nexport interface SliderProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"onChange\" | \"defaultValue\"> {\n value?: SliderValue;\n onChange?: (event: Event | React.SyntheticEvent, value: SliderValue, data: SliderProps) => void;\n min?: number;\n max?: number;\n step?: number;\n name?: string;\n defaultValue?: SliderValue;\n disabled?: boolean;\n variant?: \"continuous\" | \"discrete\";\n valueField?: boolean;\n withTicks?: boolean;\n label?: string;\n helperText?: React.ReactNode;\n error?: boolean;\n size?: \"small\" | \"medium\" | \"large\";\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** Enables a two-thumb range slider (value becomes `[number, number]`). */\n range?: boolean;\n /** Slider direction. */\n orientation?: \"horizontal\" | \"vertical\";\n /** Show ticks/marks. `true` derives marks from `step`; an array gives explicit positions/labels. */\n marks?: boolean | SliderMark[];\n /** Accessible label applied to the slider control. */\n \"aria-label\"?: string;\n /** Maps the numeric value to a human-readable string for assistive tech. */\n getAriaValueText?: (value: number) => string;\n}\n\nfunction resolveMarks(\n marks: boolean | SliderMark[] | undefined,\n min: number,\n max: number,\n step?: number\n): SliderMark[] {\n if (!marks) {\n return [];\n }\n if (Array.isArray(marks)) {\n return marks;\n }\n const s = step && step > 0 ? step : (max - min) / 10;\n const result: SliderMark[] = [];\n for (let v = min; v <= max + 1e-9; v += s) {\n result.push({ value: Math.round(v * 1e6) / 1e6 });\n }\n return result;\n}\n\nconst RangeSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function RangeSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n label,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n // consumed by the dispatcher / not valid DOM attributes — keep them off the span\n /* eslint-disable @typescript-eslint/no-unused-vars */\n range,\n variant,\n valueField,\n withTicks,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...rest\n } = props;\n\n const isVertical = orientation === \"vertical\";\n const normalize = (v: SliderValue | undefined): [number, number] => {\n const arr = Array.isArray(v) ? v : [min, max];\n const lo = Math.min(arr[0] ?? min, arr[1] ?? max);\n const hi = Math.max(arr[0] ?? min, arr[1] ?? max);\n return [lo, hi];\n };\n\n const isControlled = valueProp !== undefined;\n const [valueState, setValueState] = React.useState<[number, number]>(() => normalize(defaultValue));\n const value = isControlled ? normalize(valueProp) : valueState;\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const activeThumb = React.useRef<0 | 1>(0);\n const isPressedRef = React.useRef<boolean>(false);\n\n const markList = resolveMarks(marks, min, max, step);\n\n const positionToValue = (event: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent) => {\n const rect = containerRef.current?.getBoundingClientRect();\n if (!rect) {\n return min;\n }\n if (isVertical) {\n const y =\n (typeof (event as MouseEvent).clientY === \"number\"\n ? (event as MouseEvent).clientY\n : coordY(event as React.MouseEvent)) - rect.top;\n return rescale(rect.height - y, [0, rect.height], [min, max], { step });\n }\n const x =\n (typeof (event as MouseEvent).clientX === \"number\"\n ? (event as MouseEvent).clientX\n : coordX(event as React.MouseEvent)) - rect.left;\n return rescale(x, [0, rect.width], [min, max], { step });\n };\n\n const commit = (next: [number, number], event: Event | React.SyntheticEvent) => {\n const lo = Math.min(next[0], next[1]);\n const hi = Math.max(next[0], next[1]);\n const clamped: [number, number] = [Math.max(min, lo), Math.min(max, hi)];\n if (!isControlled) {\n setValueState(clamped);\n }\n onChange?.(event, clamped, props);\n };\n\n const moveThumb = (raw: number, event: Event | React.SyntheticEvent) => {\n const idx = activeThumb.current;\n const next: [number, number] = [value[0], value[1]];\n next[idx] = Math.max(min, Math.min(max, raw));\n commit(next, event);\n };\n\n const pickThumb = (raw: number) => {\n activeThumb.current = Math.abs(raw - value[0]) <= Math.abs(raw - value[1]) ? 0 : 1;\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (!isPressedRef.current) {\n return;\n }\n event.preventDefault();\n moveThumb(positionToValue(event), event);\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n });\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled || event.button !== 0) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStartNative = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n useSafeLayoutEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n el.addEventListener(\"touchstart\", onTouchStartNative);\n return () => el.removeEventListener(\"touchstart\", onTouchStartNative);\n });\n\n const onThumbKeyDown = (idx: 0 | 1) => (event: React.KeyboardEvent) => {\n if (disabled) {\n return;\n }\n const delta = step && step > 0 ? step : 1;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n next = value[idx] - delta;\n } else if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n next = value[idx] + delta;\n } else if (event.key === \"Home\") {\n next = min;\n } else if (event.key === \"End\") {\n next = max;\n }\n if (next !== null) {\n event.preventDefault();\n activeThumb.current = idx;\n moveThumb(next, event);\n }\n };\n\n const classNames = cn(\n \"smwb-slider\",\n \"smwb-slider--range\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const p0 = toPercent(value[0], min, max);\n const p1 = toPercent(value[1], min, max);\n const startPct = `${Math.min(p0, p1)}%`;\n const spanPct = `${Math.abs(p1 - p0)}%`;\n const mainStart = isVertical ? { bottom: `${p0}%` } : { left: `${p0}%` };\n const mainEnd = isVertical ? { bottom: `${p1}%` } : { left: `${p1}%` };\n const trackStyle = isVertical ? { bottom: startPct, height: spanPct } : { left: startPct, width: spanPct };\n\n return (\n <TextFieldWrapper label={label} helperText={helperText} disabled={disabled} error={error} fullWidth shrink>\n <div className=\"smwb-slider__container\">\n <span ref={rootRef} onMouseDown={onMouseDown} className={classNames} {...rest}>\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n {([0, 1] as const).map((idx) => (\n <span\n key={idx}\n className={cn(\"smwb-slider__thumb\", `smwb-slider__thumb--${idx === 0 ? \"start\" : \"end\"}`)}\n style={idx === 0 ? mainStart : mainEnd}\n >\n <input\n data-testid={`slider-input-${idx}`}\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n name={name ? `${name}[${idx}]` : undefined}\n value={value[idx]}\n disabled={disabled}\n onChange={() => undefined}\n onKeyDown={onThumbKeyDown(idx)}\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} ${idx === 0 ? \"minimum\" : \"maximum\"}` : undefined}\n aria-orientation={orientation}\n aria-valuenow={value[idx]}\n aria-valuemin={idx === 0 ? min : value[0]}\n aria-valuemax={idx === 0 ? value[1] : max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value[idx]) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n ))}\n </span>\n </div>\n </TextFieldWrapper>\n );\n});\n\nconst SingleSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function SingleSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n variant = \"continuous\",\n valueField,\n withTicks,\n label,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n // `range` is handled by the Slider dispatcher; destructured here to keep it off the DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n range,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const singleDefault = typeof defaultValue === \"number\" ? defaultValue : undefined;\n const singleValueProp = typeof valueProp === \"number\" ? valueProp : undefined;\n const isVertical = orientation === \"vertical\";\n\n const [valueState, setValue] = React.useState<number>(singleDefault ?? min);\n const [isDragging, setIsDragging] = React.useState<boolean>(false);\n const [isActive, setIsActive] = React.useState<boolean>(false);\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const isPressedRef = React.useRef<boolean>(false);\n\n const isControlled = singleValueProp !== undefined;\n const isDiscrete = variant === \"discrete\";\n const value = isControlled ? singleValueProp : valueState;\n\n const updateValue = (value: number, event: Event | React.SyntheticEvent) => {\n if (value < min || value > max) return;\n if (!isControlled) {\n setValue(value);\n }\n onChange?.(event, value, props);\n };\n\n const offsetToValue = (absolute: number, containerSize: number) => {\n return rescale(absolute, [0, containerSize], [min, max], { step });\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled) {\n return;\n }\n\n if (event.button !== 0) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const absolutePosition = isVertical ? rect.height - (event.clientY - rect.top) : event.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStart = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const touch = event.changedTouches?.[0];\n const absolutePosition = isVertical ? rect.height - (touch.clientY - rect.top) : touch.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (isPressedRef.current) {\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n // TODO need clarification обработка разных событий разных типов 1 функцией\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientX = coordX(event);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientY = coordY(event);\n const absolutePosition = isVertical ? rect.height - (clientY - rect.top) : clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n if (value === newValue) {\n return;\n }\n\n if (!isDragging) {\n setIsDragging(true);\n }\n\n updateValue(newValue, event);\n }\n }\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n\n if (isDragging) {\n setIsDragging(false);\n }\n\n if (isActive) {\n setIsActive(false);\n }\n\n removeListeners();\n });\n\n const removeListeners = () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n\n const handleArrowsControls = (e: React.KeyboardEvent) => {\n if (!isFocused || disabled) return;\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\n updateValue(value - (step || 1), e);\n }\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\n updateValue(value + (step || 1), e);\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n document.removeEventListener(\"keydown\", handleArrowsControls as (e: unknown) => void);\n };\n\n useSafeLayoutEffect(() => {\n if (containerRef.current) {\n containerRef.current.addEventListener(\"touchstart\", onTouchStart);\n\n return () => {\n containerRef.current?.removeEventListener(\"touchstart\", onTouchStart);\n };\n }\n });\n\n useSafeLayoutEffect(() => {\n if (disabled && containerRef.current?.contains(document.activeElement)) {\n (document.activeElement as HTMLElement)?.blur();\n }\n }, [disabled]);\n\n const classNames = cn(\n \"smwb-slider\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--dragging\": isDragging,\n \"smwb-slider--discrete\": isDiscrete,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const pct = `${toPercent(value, min, max)}%`;\n const trackStyle = isVertical ? { height: pct } : { width: pct };\n const thumbStyle = isVertical ? { bottom: pct } : { left: pct };\n\n const getTicks = () => Array(Math.round(max / (step || 1)) + 1).fill(1) as number[];\n const markList = resolveMarks(marks, min, max, step);\n\n return (\n <TextFieldWrapper label={label} helperText={helperText} disabled={disabled} error={error} fullWidth shrink>\n <div className=\"smwb-slider__container\">\n <span\n onKeyDown={handleArrowsControls}\n ref={rootRef}\n onMouseDown={onMouseDown}\n className={classNames}\n tabIndex={disabled ? -1 : 0}\n onFocus={() => setIsFocused(true)}\n onBlur={handleBlur}\n {...rest}\n >\n {withTicks && (\n <span className=\"smwb-slider__ticks\" style={{ gap: `${step}` }}>\n {getTicks().map((t, idx) => (\n <span className=\"smwb-slider__tick\" key={idx} />\n ))}\n </span>\n )}\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n <span\n className={cn(\"smwb-slider__thumb\", {\n \"smwb-slider__thumb--active\": isActive,\n \"smwb-slider__thumb--discrete\": isDiscrete,\n })}\n style={thumbStyle}\n >\n {isDiscrete && <span className=\"smwb-slider__thumb-tooltip\">{Math.round(value)}</span>}\n <input\n data-testid=\"slider-input\"\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n name={name}\n value={value}\n readOnly\n aria-label={ariaLabel}\n aria-orientation={orientation}\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n </span>\n {valueField && isDiscrete && (\n <TextField\n type=\"number\"\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => updateValue(+e.target.value, e)}\n variant=\"filled\"\n helperText={null}\n />\n )}\n </div>\n </TextFieldWrapper>\n );\n});\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(function Slider(props, ref) {\n const isRangeMode = props.range === true || Array.isArray(props.value) || Array.isArray(props.defaultValue);\n\n return isRangeMode ? <RangeSlider ref={ref} {...props} /> : <SingleSlider ref={ref} {...props} />;\n});\n"],"names":["resolveMarks","marks","min","max","step","s","result","v","RangeSlider","React","props","ref","defaultValue","valueProp","onChange","name","disabled","className","label","helperText","error","size","color","orientation","getAriaValueText","ariaLabel","range","variant","valueField","withTicks","rest","isVertical","normalize","arr","lo","_a","_b","hi","_c","_d","isControlled","valueState","setValueState","value","containerRef","rootRef","useForkRef","activeThumb","isPressedRef","markList","positionToValue","event","rect","y","coordY","rescale","x","coordX","commit","next","clamped","moveThumb","raw","idx","pickThumb","onMouseMove","useEventCallback","onMouseEnd","onMouseDown","onTouchStartNative","useSafeLayoutEffect","el","onThumbKeyDown","delta","classNames","cn","p0","toPercent","p1","startPct","spanPct","mainStart","mainEnd","trackStyle","jsx","TextFieldWrapper","m","mp","SingleSlider","singleDefault","singleValueProp","setValue","isDragging","setIsDragging","isActive","setIsActive","isFocused","setIsFocused","isDiscrete","updateValue","offsetToValue","absolute","containerSize","element","absolutePosition","newValue","onTouchStart","touch","clientX","clientY","removeListeners","handleArrowsControls","e","handleBlur","pct","thumbStyle","getTicks","jsxs","TextField","Slider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slider.js","sources":["../../../../../src/components/inputs/slider/slider.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useEventCallback } from \"../../../hooks/useEventCallback\";\nimport { useId } from \"../../../hooks/useId\";\nimport { rescale, toPercent, coordX, coordY, decimatedClamp } from \"./utils\";\nimport { TextField, TextFieldWrapper } from \"../textField\";\nimport { useHelperText } from \"../../../hooks/useHelperText\";\n\nexport type SliderValue = number | [number, number];\n\nexport interface SliderMark {\n value: number;\n label?: React.ReactNode;\n}\n\nexport interface SliderProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"onChange\" | \"defaultValue\"> {\n value?: SliderValue;\n onChange?: (event: Event | React.SyntheticEvent, value: SliderValue, data: SliderProps) => void;\n min?: number;\n max?: number;\n step?: number;\n name?: string;\n defaultValue?: SliderValue;\n disabled?: boolean;\n variant?: \"continuous\" | \"discrete\";\n /**\n * Draws a number field beside the slider for typing the value; a single\n * `discrete` slider only. The field is named as the slider is (see `label`\n * and `aria-label`).\n */\n valueField?: boolean;\n withTicks?: boolean;\n /**\n * Visible label, drawn above the slider. It names the slider; each thumb of a\n * range adds its own word: with `label=\"Price\"` they read \"Price minimum\" and\n * \"Price maximum\".\n */\n label?: string;\n helperText?: React.ReactNode;\n error?: boolean;\n size?: \"small\" | \"medium\" | \"large\";\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** Enables a two-thumb range slider (value becomes `[number, number]`). */\n range?: boolean;\n /** Slider direction. */\n orientation?: \"horizontal\" | \"vertical\";\n /** Show ticks/marks. `true` derives marks from `step`; an array gives explicit positions/labels. */\n marks?: boolean | SliderMark[];\n /**\n * Accessible name of the slider. Replaces the name the visible `label` gives\n * it; a slider without a label needs it or `aria-labelledby`. Each thumb of a\n * range adds its own word, as with `label`.\n */\n \"aria-label\"?: string;\n /**\n * Ids of the elements whose text names the slider. It goes on the range input,\n * not the root, and replaces the name the visible `label` gives it; as on any\n * element, it also wins over `aria-label`. Each thumb of a range adds its own\n * word, as with `label`.\n */\n \"aria-labelledby\"?: string;\n /** Maps the numeric value to a human-readable string for assistive tech. */\n getAriaValueText?: (value: number) => string;\n}\n\n// The word each thumb of a range adds to the slider's name, so the two read apart.\nconst THUMB_WORDS = [\"minimum\", \"maximum\"] as const;\n\nfunction resolveMarks(\n marks: boolean | SliderMark[] | undefined,\n min: number,\n max: number,\n step?: number\n): SliderMark[] {\n if (!marks) {\n return [];\n }\n if (Array.isArray(marks)) {\n return marks;\n }\n const s = step && step > 0 ? step : (max - min) / 10;\n const result: SliderMark[] = [];\n for (let v = min; v <= max + 1e-9; v += s) {\n result.push({ value: Math.round(v * 1e6) / 1e6 });\n }\n return result;\n}\n\nconst RangeSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function RangeSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n label,\n \"aria-labelledby\": ariaLabelledBy,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n // consumed by the dispatcher / not valid DOM attributes — keep them off the span\n /* eslint-disable @typescript-eslint/no-unused-vars */\n range,\n variant,\n valueField,\n withTicks,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // The slider sets this on its root too; its own handler calls the caller's first.\n onMouseDown: onMouseDownProp,\n ...rest\n } = props;\n const helper = useHelperText(helperText);\n // The visible label names each thumb, followed by the thumb's own word\n // (\"Price minimum\"), as a caller's aria-label does. That aria-label replaces\n // the label: on one element aria-labelledby would win over it. A caller's\n // aria-labelledby replaces the label too, and names the thumbs the same way.\n const baseId = useId();\n const labelId = `${baseId}-label`;\n const thumbWordId = (idx: 0 | 1) => `${baseId}-${THUMB_WORDS[idx]}`;\n const labelledBy = ariaLabelledBy || (label && !ariaLabel ? labelId : undefined);\n\n const isVertical = orientation === \"vertical\";\n const normalize = (v: SliderValue | undefined): [number, number] => {\n const arr = Array.isArray(v) ? v : [min, max];\n const lo = Math.min(arr[0] ?? min, arr[1] ?? max);\n const hi = Math.max(arr[0] ?? min, arr[1] ?? max);\n return [lo, hi];\n };\n\n const isControlled = valueProp !== undefined;\n const [valueState, setValueState] = React.useState<[number, number]>(() => normalize(defaultValue));\n const value = isControlled ? normalize(valueProp) : valueState;\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const activeThumb = React.useRef<0 | 1>(0);\n const isPressedRef = React.useRef<boolean>(false);\n\n const markList = resolveMarks(marks, min, max, step);\n\n const positionToValue = (event: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent) => {\n const rect = containerRef.current?.getBoundingClientRect();\n if (!rect) {\n return min;\n }\n if (isVertical) {\n const y =\n (typeof (event as MouseEvent).clientY === \"number\"\n ? (event as MouseEvent).clientY\n : coordY(event as React.MouseEvent)) - rect.top;\n return rescale(rect.height - y, [0, rect.height], [min, max], { step });\n }\n const x =\n (typeof (event as MouseEvent).clientX === \"number\"\n ? (event as MouseEvent).clientX\n : coordX(event as React.MouseEvent)) - rect.left;\n return rescale(x, [0, rect.width], [min, max], { step });\n };\n\n const commit = (next: [number, number], event: Event | React.SyntheticEvent) => {\n const lo = Math.min(next[0], next[1]);\n const hi = Math.max(next[0], next[1]);\n const clamped: [number, number] = [Math.max(min, lo), Math.min(max, hi)];\n if (!isControlled) {\n setValueState(clamped);\n }\n onChange?.(event, clamped, props);\n };\n\n const moveThumb = (raw: number, event: Event | React.SyntheticEvent) => {\n const idx = activeThumb.current;\n const next: [number, number] = [value[0], value[1]];\n next[idx] = Math.max(min, Math.min(max, raw));\n commit(next, event);\n };\n\n const pickThumb = (raw: number) => {\n activeThumb.current = Math.abs(raw - value[0]) <= Math.abs(raw - value[1]) ? 0 : 1;\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (!isPressedRef.current) {\n return;\n }\n event.preventDefault();\n moveThumb(positionToValue(event), event);\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n });\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n onMouseDownProp?.(event);\n if (disabled || event.button !== 0) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStartNative = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n useSafeLayoutEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n el.addEventListener(\"touchstart\", onTouchStartNative);\n return () => el.removeEventListener(\"touchstart\", onTouchStartNative);\n });\n\n const onThumbKeyDown = (idx: 0 | 1) => (event: React.KeyboardEvent) => {\n if (disabled) {\n return;\n }\n const delta = step && step > 0 ? step : 1;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n next = value[idx] - delta;\n } else if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n next = value[idx] + delta;\n } else if (event.key === \"Home\") {\n next = min;\n } else if (event.key === \"End\") {\n next = max;\n }\n if (next !== null) {\n event.preventDefault();\n activeThumb.current = idx;\n moveThumb(next, event);\n }\n };\n\n const classNames = cn(\n \"smwb-slider\",\n \"smwb-slider--range\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const p0 = toPercent(value[0], min, max);\n const p1 = toPercent(value[1], min, max);\n const startPct = `${Math.min(p0, p1)}%`;\n const spanPct = `${Math.abs(p1 - p0)}%`;\n const mainStart = isVertical ? { bottom: `${p0}%` } : { left: `${p0}%` };\n const mainEnd = isVertical ? { bottom: `${p1}%` } : { left: `${p1}%` };\n const trackStyle = isVertical ? { bottom: startPct, height: spanPct } : { left: startPct, width: spanPct };\n\n return (\n <TextFieldWrapper\n label={label}\n labelId={labelId}\n helperText={helperText}\n helperTextId={helper.id}\n disabled={disabled}\n error={error}\n fullWidth\n shrink\n >\n <div className=\"smwb-slider__container\">\n <span ref={rootRef} onMouseDown={onMouseDown} className={classNames} {...rest}>\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n {([0, 1] as const).map((idx) => (\n <span\n key={idx}\n className={cn(\"smwb-slider__thumb\", `smwb-slider__thumb--${idx === 0 ? \"start\" : \"end\"}`)}\n style={idx === 0 ? mainStart : mainEnd}\n >\n <input\n data-testid={`slider-input-${idx}`}\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n name={name ? `${name}[${idx}]` : undefined}\n value={value[idx]}\n disabled={disabled}\n onChange={() => undefined}\n onKeyDown={onThumbKeyDown(idx)}\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} ${THUMB_WORDS[idx]}` : undefined}\n aria-labelledby={labelledBy ? `${labelledBy} ${thumbWordId(idx)}` : undefined}\n aria-describedby={helper.describedBy}\n aria-orientation={orientation}\n aria-valuenow={value[idx]}\n aria-valuemin={idx === 0 ? min : value[0]}\n aria-valuemax={idx === 0 ? value[1] : max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value[idx]) : undefined}\n aria-disabled={disabled || undefined}\n />\n {labelledBy ? (\n <span id={thumbWordId(idx)} hidden>\n {THUMB_WORDS[idx]}\n </span>\n ) : null}\n </span>\n ))}\n </span>\n </div>\n </TextFieldWrapper>\n );\n});\n\nconst SingleSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function SingleSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n variant = \"continuous\",\n valueField,\n withTicks,\n label,\n \"aria-labelledby\": ariaLabelledBy,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n // `range` is handled by the Slider dispatcher; destructured here to keep it off the DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n range,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n // The slider sets these on its root too; its own handlers call the caller's first.\n onMouseDown: onMouseDownProp,\n onKeyDown: onKeyDownProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n ...rest\n } = props;\n const helper = useHelperText(helperText);\n // The visible label names the slider. A caller's aria-label replaces it: on\n // one element aria-labelledby would win over it. A caller's aria-labelledby\n // replaces it too, on the input rather than the root.\n const baseId = useId();\n const labelId = `${baseId}-label`;\n const labelledBy = ariaLabelledBy || (label && !ariaLabel ? labelId : undefined);\n\n const singleDefault = typeof defaultValue === \"number\" ? defaultValue : undefined;\n const singleValueProp = typeof valueProp === \"number\" ? valueProp : undefined;\n const isVertical = orientation === \"vertical\";\n\n const [valueState, setValue] = React.useState<number>(singleDefault ?? min);\n const [isDragging, setIsDragging] = React.useState<boolean>(false);\n const [isActive, setIsActive] = React.useState<boolean>(false);\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const isPressedRef = React.useRef<boolean>(false);\n\n const isControlled = singleValueProp !== undefined;\n const isDiscrete = variant === \"discrete\";\n const value = isControlled ? singleValueProp : valueState;\n\n const updateValue = (value: number, event: Event | React.SyntheticEvent) => {\n if (value < min || value > max) return;\n if (!isControlled) {\n setValue(value);\n }\n onChange?.(event, value, props);\n };\n\n const offsetToValue = (absolute: number, containerSize: number) => {\n return rescale(absolute, [0, containerSize], [min, max], { step });\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n onMouseDownProp?.(event);\n if (disabled) {\n return;\n }\n\n if (event.button !== 0) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const absolutePosition = isVertical ? rect.height - (event.clientY - rect.top) : event.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStart = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const touch = event.changedTouches?.[0];\n const absolutePosition = isVertical ? rect.height - (touch.clientY - rect.top) : touch.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (isPressedRef.current) {\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n // TODO need clarification обработка разных событий разных типов 1 функцией\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientX = coordX(event);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientY = coordY(event);\n const absolutePosition = isVertical ? rect.height - (clientY - rect.top) : clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n if (value === newValue) {\n return;\n }\n\n if (!isDragging) {\n setIsDragging(true);\n }\n\n updateValue(newValue, event);\n }\n }\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n\n if (isDragging) {\n setIsDragging(false);\n }\n\n if (isActive) {\n setIsActive(false);\n }\n\n removeListeners();\n });\n\n const removeListeners = () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n\n const handleArrowsControls = (e: React.KeyboardEvent<HTMLSpanElement>) => {\n onKeyDownProp?.(e);\n if (!isFocused || disabled) return;\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\n updateValue(value - (step || 1), e);\n }\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\n updateValue(value + (step || 1), e);\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n onFocusProp?.(event);\n setIsFocused(true);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLSpanElement>) => {\n onBlurProp?.(event);\n setIsFocused(false);\n document.removeEventListener(\"keydown\", handleArrowsControls as (e: unknown) => void);\n };\n\n // The value field shows the text typed into it until that text is committed,\n // on blur or Enter; `null` shows the slider's value. A typed value the slider\n // can take (in its range and on its step grid) moves the slider at once. Any\n // other waits for the commit, which snaps it to the nearest value the slider\n // can take: so \"35\" with a step of 10 becomes 40, and \"50\" can be typed past\n // its \"5\" below a min of 10.\n const [fieldText, setFieldText] = React.useState<string | null>(null);\n\n const onFieldChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const text = event.target.value;\n setFieldText(text);\n const typed = Number(text);\n if (text.trim() !== \"\" && decimatedClamp(typed, min, max, step) === typed) {\n updateValue(typed, event);\n }\n };\n\n const commitField = (event: React.SyntheticEvent<HTMLInputElement>) => {\n if (fieldText === null) return;\n setFieldText(null);\n const typed = Number(fieldText);\n if (fieldText.trim() === \"\" || !Number.isFinite(typed)) return;\n const snapped = decimatedClamp(typed, min, max, step);\n if (snapped !== value) updateValue(snapped, event);\n };\n\n useSafeLayoutEffect(() => {\n if (containerRef.current) {\n containerRef.current.addEventListener(\"touchstart\", onTouchStart);\n\n return () => {\n containerRef.current?.removeEventListener(\"touchstart\", onTouchStart);\n };\n }\n });\n\n useSafeLayoutEffect(() => {\n if (disabled && containerRef.current?.contains(document.activeElement)) {\n (document.activeElement as HTMLElement)?.blur();\n }\n }, [disabled]);\n\n const classNames = cn(\n \"smwb-slider\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--dragging\": isDragging,\n \"smwb-slider--discrete\": isDiscrete,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const pct = `${toPercent(value, min, max)}%`;\n const trackStyle = isVertical ? { height: pct } : { width: pct };\n const thumbStyle = isVertical ? { bottom: pct } : { left: pct };\n\n const getTicks = () => Array(Math.round(max / (step || 1)) + 1).fill(1) as number[];\n const markList = resolveMarks(marks, min, max, step);\n\n return (\n <TextFieldWrapper\n label={label}\n labelId={labelId}\n helperText={helperText}\n helperTextId={helper.id}\n disabled={disabled}\n error={error}\n fullWidth\n shrink\n >\n <div className=\"smwb-slider__container\">\n <span\n onKeyDown={handleArrowsControls}\n ref={rootRef}\n onMouseDown={onMouseDown}\n className={classNames}\n tabIndex={disabled ? -1 : 0}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n >\n {withTicks && (\n <span className=\"smwb-slider__ticks\" style={{ gap: `${step}` }}>\n {getTicks().map((t, idx) => (\n <span className=\"smwb-slider__tick\" key={idx} />\n ))}\n </span>\n )}\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n <span\n className={cn(\"smwb-slider__thumb\", {\n \"smwb-slider__thumb--active\": isActive,\n \"smwb-slider__thumb--discrete\": isDiscrete,\n })}\n style={thumbStyle}\n >\n {isDiscrete && <span className=\"smwb-slider__thumb-tooltip\">{Math.round(value)}</span>}\n <input\n data-testid=\"slider-input\"\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n name={name}\n value={value}\n readOnly\n aria-label={ariaLabel}\n aria-labelledby={labelledBy}\n aria-describedby={helper.describedBy}\n aria-orientation={orientation}\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n </span>\n {valueField && isDiscrete && (\n <TextField\n type=\"number\"\n // Stepped, bounded and disabled as the slider is.\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n value={fieldText ?? value}\n onChange={onFieldChange}\n onBlur={commitField}\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") commitField(e);\n }}\n variant=\"filled\"\n helperText={null}\n // It sets the slider's value, so it takes the slider's name.\n aria-label={ariaLabel}\n aria-labelledby={labelledBy}\n />\n )}\n </div>\n </TextFieldWrapper>\n );\n});\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(function Slider(props, ref) {\n const isRangeMode = props.range === true || Array.isArray(props.value) || Array.isArray(props.defaultValue);\n\n return isRangeMode ? <RangeSlider ref={ref} {...props} /> : <SingleSlider ref={ref} {...props} />;\n});\n"],"names":["THUMB_WORDS","resolveMarks","marks","min","max","step","s","result","v","RangeSlider","React","props","ref","defaultValue","valueProp","onChange","name","disabled","className","label","ariaLabelledBy","helperText","error","size","color","orientation","getAriaValueText","ariaLabel","range","variant","valueField","withTicks","onMouseDownProp","rest","helper","useHelperText","baseId","useId","labelId","thumbWordId","idx","labelledBy","isVertical","normalize","arr","lo","_a","_b","hi","_c","_d","isControlled","valueState","setValueState","value","containerRef","rootRef","useForkRef","activeThumb","isPressedRef","markList","positionToValue","event","rect","y","coordY","rescale","x","coordX","commit","next","clamped","moveThumb","raw","pickThumb","onMouseMove","useEventCallback","onMouseEnd","onMouseDown","onTouchStartNative","useSafeLayoutEffect","el","onThumbKeyDown","delta","classNames","cn","p0","toPercent","p1","startPct","spanPct","mainStart","mainEnd","trackStyle","jsx","TextFieldWrapper","jsxs","m","mp","SingleSlider","onKeyDownProp","onFocusProp","onBlurProp","singleDefault","singleValueProp","setValue","isDragging","setIsDragging","isActive","setIsActive","isFocused","setIsFocused","isDiscrete","updateValue","offsetToValue","absolute","containerSize","element","absolutePosition","newValue","onTouchStart","touch","clientX","clientY","removeListeners","handleArrowsControls","e","handleFocus","handleBlur","fieldText","setFieldText","onFieldChange","text","typed","decimatedClamp","commitField","snapped","pct","thumbStyle","getTicks","TextField","Slider"],"mappings":"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"}
|
|
@@ -1,125 +1,143 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as A } from "react/jsx-runtime";
|
|
2
2
|
import t from "react";
|
|
3
3
|
import C from "clsx";
|
|
4
|
-
import { useSafeLayoutEffect as
|
|
5
|
-
import { useForkRef as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
4
|
+
import { useSafeLayoutEffect as P } from "../../../hooks/useSafeLayoutEffect.js";
|
|
5
|
+
import { useForkRef as ee } from "../../../hooks/useForkRef.js";
|
|
6
|
+
import { useId as te } from "../../../hooks/useId.js";
|
|
7
|
+
import { isFilled as re } from "./utils.js";
|
|
8
|
+
import { TextFieldWrapper as ie } from "./textFieldWrapper.js";
|
|
9
|
+
import { useHelperText as se } from "../../../hooks/useHelperText.js";
|
|
10
|
+
function ne(_) {
|
|
11
|
+
const r = {}, d = {};
|
|
12
|
+
for (const [i, a] of Object.entries(_))
|
|
13
|
+
i.startsWith("data-") ? r[i] = a : d[i] = a;
|
|
14
|
+
return [r, d];
|
|
15
|
+
}
|
|
16
|
+
const he = t.forwardRef(function(r, d) {
|
|
9
17
|
const {
|
|
10
|
-
label:
|
|
11
|
-
helperText:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
18
|
+
label: i,
|
|
19
|
+
helperText: a,
|
|
20
|
+
"aria-describedby": D,
|
|
21
|
+
variant: I = "outlined",
|
|
22
|
+
size: w = "medium",
|
|
23
|
+
required: T,
|
|
24
|
+
className: S,
|
|
25
|
+
style: q,
|
|
26
|
+
disabled: o,
|
|
27
|
+
value: c,
|
|
28
|
+
defaultValue: E,
|
|
29
|
+
onChange: m,
|
|
30
|
+
onFocus: p,
|
|
31
|
+
onBlur: b,
|
|
32
|
+
error: g,
|
|
33
|
+
name: N,
|
|
34
|
+
type: W = "text",
|
|
35
|
+
readOnly: j,
|
|
36
|
+
placeholder: z,
|
|
37
|
+
fullWidth: H,
|
|
38
|
+
id: M,
|
|
39
|
+
startAdornment: h,
|
|
40
|
+
endAdornment: k,
|
|
41
|
+
inline: f,
|
|
42
|
+
autoComplete: O,
|
|
43
|
+
inputMode: L,
|
|
44
|
+
// Never drawn: an <input> takes no children (React throws on them).
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
46
|
+
children: ae,
|
|
47
|
+
...V
|
|
48
|
+
} = r, [$, x] = ne(V), v = te(M), [F, y] = t.useState(!1), [G, J] = t.useState(!1), l = c != null, s = t.useRef(null), K = ee(d, s), B = se(a, { inline: f, describedBy: D }), Q = (e) => {
|
|
49
|
+
if (o) {
|
|
37
50
|
e.stopPropagation();
|
|
38
51
|
return;
|
|
39
52
|
}
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
if (!
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
value:
|
|
53
|
+
p == null || p(e), y(!0);
|
|
54
|
+
}, U = (e) => {
|
|
55
|
+
if (!l) {
|
|
56
|
+
const n = e.target || s.current;
|
|
57
|
+
u({
|
|
58
|
+
value: n.value
|
|
46
59
|
});
|
|
47
60
|
}
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
}, []),
|
|
53
|
-
if (!
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
value:
|
|
61
|
+
b == null || b(e, r), y(!1);
|
|
62
|
+
}, u = t.useCallback((e) => {
|
|
63
|
+
const n = !!re(e);
|
|
64
|
+
J((R) => R === n ? R : n);
|
|
65
|
+
}, []), X = (e) => {
|
|
66
|
+
if (!l) {
|
|
67
|
+
const n = e.target || s.current;
|
|
68
|
+
u({
|
|
69
|
+
value: n.value
|
|
57
70
|
});
|
|
58
71
|
}
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
|
|
72
|
+
m == null || m(e, r);
|
|
73
|
+
}, Y = (e) => {
|
|
74
|
+
s.current && e.currentTarget === e.target && (e.preventDefault(), s.current.focus());
|
|
62
75
|
};
|
|
63
76
|
t.useEffect(() => {
|
|
64
|
-
|
|
65
|
-
}, [
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
o && F && y(!1);
|
|
78
|
+
}, [o, F]), t.useEffect(() => {
|
|
79
|
+
var e;
|
|
80
|
+
l || u({ value: (e = s.current) == null ? void 0 : e.value });
|
|
81
|
+
}), P(() => {
|
|
82
|
+
l && u({ value: c });
|
|
83
|
+
}, [c, l, u]);
|
|
84
|
+
const Z = C(
|
|
71
85
|
"smwb-text-field__input",
|
|
72
|
-
(!
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
86
|
+
(!i || f) && "smwb-text-field__input--show-placeholder",
|
|
87
|
+
h && "smwb-text-field__input--adornment-start",
|
|
88
|
+
k && "smwb-text-field__input--adornment-end",
|
|
89
|
+
f && "smwb-text-field__input--inline"
|
|
76
90
|
);
|
|
77
|
-
return /* @__PURE__ */
|
|
78
|
-
|
|
91
|
+
return /* @__PURE__ */ A(
|
|
92
|
+
ie,
|
|
79
93
|
{
|
|
80
|
-
label:
|
|
81
|
-
helperText:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
label: i,
|
|
95
|
+
helperText: a,
|
|
96
|
+
helperTextId: B.id,
|
|
97
|
+
variant: I,
|
|
98
|
+
disabled: o,
|
|
99
|
+
className: C(S, w !== "medium" && `smwb-text-field_size-${w}`),
|
|
100
|
+
style: q,
|
|
101
|
+
error: g,
|
|
102
|
+
fullWidth: H,
|
|
103
|
+
isFilledState: G,
|
|
104
|
+
isFocused: F,
|
|
105
|
+
htmlFor: v,
|
|
106
|
+
shrink: !!h,
|
|
107
|
+
onHolderMouseDown: Y,
|
|
108
|
+
startAdornment: h,
|
|
109
|
+
endAdornment: k,
|
|
110
|
+
inline: f,
|
|
111
|
+
...$,
|
|
112
|
+
children: /* @__PURE__ */ A(
|
|
97
113
|
"input",
|
|
98
114
|
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"aria-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
...x,
|
|
116
|
+
type: W,
|
|
117
|
+
defaultValue: E,
|
|
118
|
+
name: N,
|
|
119
|
+
readOnly: j,
|
|
120
|
+
required: T,
|
|
121
|
+
"aria-invalid": g || x["aria-invalid"],
|
|
122
|
+
"aria-required": T || x["aria-required"],
|
|
123
|
+
placeholder: z,
|
|
124
|
+
disabled: o,
|
|
125
|
+
value: c,
|
|
126
|
+
className: Z,
|
|
127
|
+
ref: K,
|
|
128
|
+
onChange: X,
|
|
129
|
+
onFocus: Q,
|
|
130
|
+
onBlur: U,
|
|
131
|
+
id: v,
|
|
132
|
+
autoComplete: O,
|
|
133
|
+
inputMode: L,
|
|
134
|
+
"aria-describedby": B.describedBy
|
|
117
135
|
}
|
|
118
136
|
)
|
|
119
137
|
}
|
|
120
138
|
);
|
|
121
139
|
});
|
|
122
140
|
export {
|
|
123
|
-
|
|
141
|
+
he as TextField
|
|
124
142
|
};
|
|
125
143
|
//# sourceMappingURL=textField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textField.js","sources":["../../../../../src/components/inputs/textField/textField.tsx"],"sourcesContent":["import React, { ChangeEventHandler } from \"react\";\nimport cn from \"clsx\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isFilled } from \"./utils\";\nimport { TextFieldWrapper } from \"./textFieldWrapper\";\n\nexport interface TextFieldProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"onBlur\" | \"size\"\n> {\n label?: string;\n helperText?: React.ReactNode;\n variant?: \"outlined\" | \"filled\";\n size?: \"small\" | \"medium\" | \"large\";\n required?: boolean;\n disabled?: boolean;\n value?: string | number;\n className?: string;\n placeholder?: string;\n defaultValue?: string;\n error?: boolean;\n name?: string;\n type?: string;\n readOnly?: boolean;\n fullWidth?: boolean;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>, data: TextFieldProps) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, data: TextFieldProps) => void;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n id?: string;\n inline?: boolean;\n autoComplete?: string;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(function TextField(props, ref) {\n const {\n label,\n helperText,\n variant = \"outlined\",\n size = \"medium\",\n required,\n className,\n disabled,\n value,\n defaultValue,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n name,\n type = \"text\",\n readOnly,\n placeholder,\n fullWidth,\n id,\n startAdornment,\n endAdornment,\n inline,\n autoComplete,\n inputMode,\n ...rest\n } = props;\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n const [isFilledState, setIsFilledState] = React.useState<boolean>(false);\n\n const { current: isControlled } = React.useRef<boolean>(value != null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef<HTMLInputElement>(ref, inputRef);\n\n const onFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onFocusProp?.(event);\n\n setIsFocused(true);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onBlurProp?.(event, props);\n setIsFocused(false);\n };\n\n const checkDirty = React.useCallback((obj: Parameters<typeof isFilled>[0]) => {\n const filled = Boolean(isFilled(obj));\n setIsFilledState((prev) => (prev === filled ? prev : filled));\n }, []);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onChangeProp?.(event, props);\n };\n\n const onHolderMouseDown: React.MouseEventHandler<HTMLDivElement> = (event) => {\n if (inputRef.current && event.currentTarget === event.target) {\n event.preventDefault();\n inputRef.current.focus();\n }\n };\n\n React.useEffect(() => {\n if (disabled && isFocused) {\n setIsFocused(false);\n }\n }, [disabled, isFocused]);\n\n // Uncontrolled inputs can receive a value imperatively — e.g. react-hook-form's\n // `register` sets the DOM value on `reset(...)` without firing onChange. Re-derive\n // the filled state from the DOM on every render (the form re-renders on reset) so\n // the floating label still rises. `checkDirty` is a no-op when nothing changed.\n React.useEffect(() => {\n if (!isControlled) {\n checkDirty(inputRef.current);\n }\n });\n\n useSafeLayoutEffect(() => {\n if (isControlled) {\n checkDirty({ value });\n }\n }, [value, isControlled, checkDirty]);\n\n const inputClasses = cn(\n \"smwb-text-field__input\",\n (!label || inline) && \"smwb-text-field__input--show-placeholder\",\n startAdornment && \"smwb-text-field__input--adornment-start\",\n endAdornment && \"smwb-text-field__input--adornment-end\",\n inline && \"smwb-text-field__input--inline\"\n );\n\n return (\n <TextFieldWrapper\n label={label}\n helperText={helperText}\n variant={variant}\n disabled={disabled}\n className={cn(className, size !== \"medium\" && `smwb-text-field_size-${size}`)}\n error={error}\n fullWidth={fullWidth}\n isFilledState={isFilledState}\n isFocused={isFocused}\n htmlFor={id}\n shrink={Boolean(startAdornment)}\n onHolderMouseDown={onHolderMouseDown}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n inline={inline}\n {...rest}\n >\n <input\n type={type}\n defaultValue={defaultValue}\n name={name}\n readOnly={readOnly}\n required={required}\n aria-invalid={error || undefined}\n aria-required={required || undefined}\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n className={inputClasses}\n ref={inputForkRef}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n autoComplete={autoComplete}\n inputMode={inputMode}\n />\n </TextFieldWrapper>\n );\n});\n"],"names":["TextField","React","props","ref","label","helperText","variant","size","required","className","disabled","value","defaultValue","onChangeProp","onFocusProp","onBlurProp","error","name","type","readOnly","placeholder","fullWidth","id","startAdornment","endAdornment","inline","autoComplete","inputMode","rest","isFocused","setIsFocused","isFilledState","setIsFilledState","isControlled","inputRef","inputForkRef","useForkRef","onFocus","event","onBlur","element","checkDirty","obj","filled","isFilled","prev","onChange","onHolderMouseDown","useSafeLayoutEffect","inputClasses","cn","jsx","TextFieldWrapper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"textField.js","sources":["../../../../../src/components/inputs/textField/textField.tsx"],"sourcesContent":["import React, { ChangeEventHandler } from \"react\";\nimport cn from \"clsx\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { useId } from \"../../../hooks/useId\";\nimport { isFilled } from \"./utils\";\nimport { TextFieldWrapper } from \"./textFieldWrapper\";\nimport { useHelperText } from \"../../../hooks/useHelperText\";\n\nexport interface TextFieldProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"onBlur\" | \"size\"\n> {\n /** Visible label; it points to the `<input>`, so it also names the field. Not drawn for an `inline` field. */\n label?: string;\n helperText?: React.ReactNode;\n variant?: \"outlined\" | \"filled\";\n size?: \"small\" | \"medium\" | \"large\";\n required?: boolean;\n disabled?: boolean;\n value?: string | number;\n /**\n * Class name(s) for the root wrapper `<div>`. `style` and `data-*` attributes go to the wrapper too (a `data-testid`\n * replaces its default `text-field`); every other HTML attribute (`aria-*`, `autoFocus`, `maxLength`, event handlers)\n * goes to the `<input>`.\n */\n className?: string;\n placeholder?: string;\n defaultValue?: string;\n error?: boolean;\n name?: string;\n type?: string;\n readOnly?: boolean;\n fullWidth?: boolean;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>, data: TextFieldProps) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, data: TextFieldProps) => void;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n /** Id of the `<input>`; the label points to it. Generated when not given. */\n id?: string;\n inline?: boolean;\n autoComplete?: string;\n}\n\ntype DataAttributes = Record<`data-${string}`, unknown>;\n\n// Splits off the `data-*` attributes, which stay on the wrapper as they always have.\nfunction splitDataAttributes<T extends object>(props: T): [DataAttributes, T] {\n const data: DataAttributes = {};\n const other: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(props)) {\n if (key.startsWith(\"data-\")) {\n data[key as keyof DataAttributes] = value;\n } else {\n other[key] = value;\n }\n }\n return [data, other as T];\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(function TextField(props, ref) {\n const {\n label,\n helperText,\n \"aria-describedby\": ariaDescribedBy,\n variant = \"outlined\",\n size = \"medium\",\n required,\n className,\n style,\n disabled,\n value,\n defaultValue,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n name,\n type = \"text\",\n readOnly,\n placeholder,\n fullWidth,\n id,\n startAdornment,\n endAdornment,\n inline,\n autoComplete,\n inputMode,\n // Never drawn: an <input> takes no children (React throws on them).\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children,\n ...rest\n } = props;\n // `className`, `style` and `data-*` go to the wrapper; every other attribute\n // (aria-*, autoFocus, maxLength, event handlers) belongs to the <input>.\n const [dataAttributes, inputAttributes] = splitDataAttributes(rest);\n // Without an id the label would point at nothing and leave the input unnamed.\n const inputId = useId(id);\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n const [isFilledState, setIsFilledState] = React.useState<boolean>(false);\n\n // Controlled while the caller passes a value (`null` counts as none, as in\n // React DOM), checked on every render: a value passed after mount takes over.\n const isControlled = value != null;\n const inputRef = React.useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef<HTMLInputElement>(ref, inputRef);\n const helper = useHelperText(helperText, { inline, describedBy: ariaDescribedBy });\n\n const onFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onFocusProp?.(event);\n\n setIsFocused(true);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onBlurProp?.(event, props);\n setIsFocused(false);\n };\n\n const checkDirty = React.useCallback((obj: Parameters<typeof isFilled>[0]) => {\n const filled = Boolean(isFilled(obj));\n setIsFilledState((prev) => (prev === filled ? prev : filled));\n }, []);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onChangeProp?.(event, props);\n };\n\n const onHolderMouseDown: React.MouseEventHandler<HTMLDivElement> = (event) => {\n if (inputRef.current && event.currentTarget === event.target) {\n event.preventDefault();\n inputRef.current.focus();\n }\n };\n\n React.useEffect(() => {\n if (disabled && isFocused) {\n setIsFocused(false);\n }\n }, [disabled, isFocused]);\n\n // Uncontrolled inputs can receive a value imperatively — e.g. react-hook-form's\n // `register` sets the DOM value on `reset(...)` without firing onChange. Re-derive\n // the filled state from the DOM on every render (the form re-renders on reset) so\n // the floating label still rises. `checkDirty` is a no-op when nothing changed.\n React.useEffect(() => {\n if (!isControlled) {\n // Only the text counts: the element's `defaultValue` is the `value` attribute,\n // which React DOM leaves at the default, or at the last value a parent passed.\n checkDirty({ value: inputRef.current?.value });\n }\n });\n\n useSafeLayoutEffect(() => {\n if (isControlled) {\n checkDirty({ value });\n }\n }, [value, isControlled, checkDirty]);\n\n const inputClasses = cn(\n \"smwb-text-field__input\",\n (!label || inline) && \"smwb-text-field__input--show-placeholder\",\n startAdornment && \"smwb-text-field__input--adornment-start\",\n endAdornment && \"smwb-text-field__input--adornment-end\",\n inline && \"smwb-text-field__input--inline\"\n );\n\n return (\n <TextFieldWrapper\n label={label}\n helperText={helperText}\n helperTextId={helper.id}\n variant={variant}\n disabled={disabled}\n className={cn(className, size !== \"medium\" && `smwb-text-field_size-${size}`)}\n style={style}\n error={error}\n fullWidth={fullWidth}\n isFilledState={isFilledState}\n isFocused={isFocused}\n htmlFor={inputId}\n shrink={Boolean(startAdornment)}\n onHolderMouseDown={onHolderMouseDown}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n inline={inline}\n {...dataAttributes}\n >\n <input\n {...inputAttributes}\n type={type}\n defaultValue={defaultValue}\n name={name}\n readOnly={readOnly}\n required={required}\n // Set by `error` and `required`; without them, the caller's own values stay.\n aria-invalid={error || inputAttributes[\"aria-invalid\"]}\n aria-required={required || inputAttributes[\"aria-required\"]}\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n className={inputClasses}\n ref={inputForkRef}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n id={inputId}\n autoComplete={autoComplete}\n inputMode={inputMode}\n aria-describedby={helper.describedBy}\n />\n </TextFieldWrapper>\n );\n});\n"],"names":["splitDataAttributes","props","data","other","key","value","TextField","React","ref","label","helperText","ariaDescribedBy","variant","size","required","className","style","disabled","defaultValue","onChangeProp","onFocusProp","onBlurProp","error","name","type","readOnly","placeholder","fullWidth","id","startAdornment","endAdornment","inline","autoComplete","inputMode","children","rest","dataAttributes","inputAttributes","inputId","useId","isFocused","setIsFocused","isFilledState","setIsFilledState","isControlled","inputRef","inputForkRef","useForkRef","helper","useHelperText","onFocus","event","onBlur","element","checkDirty","obj","filled","isFilled","prev","onChange","onHolderMouseDown","_a","useSafeLayoutEffect","inputClasses","cn","jsx","TextFieldWrapper"],"mappings":";;;;;;;;;AA+CA,SAASA,GAAsCC,GAA+B;AAC5E,QAAMC,IAAuB,CAAA,GACvBC,IAAiC,CAAA;AACvC,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAK;AAC7C,IAAIG,EAAI,WAAW,OAAO,IACxBF,EAAKE,CAA2B,IAAIC,IAEpCF,EAAMC,CAAG,IAAIC;AAGjB,SAAO,CAACH,GAAMC,CAAU;AAC1B;AAEO,MAAMG,KAAYC,EAAM,WAA6C,SAAmBN,GAAOO,GAAK;AACzG,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,oBAAoBC;AAAA,IACpB,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAZ;AAAA,IACA,cAAAa;AAAA,IACA,UAAUC;AAAA,IACV,SAASC;AAAA,IACT,QAAQC;AAAA,IACR,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA;AAAA;AAAA,IAGA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDlC,GAGE,CAACmC,GAAgBC,CAAe,IAAIrC,GAAoBmC,CAAI,GAE5DG,IAAUC,GAAMX,CAAE,GAClB,CAACY,GAAWC,CAAY,IAAIlC,EAAM,SAAkB,EAAK,GACzD,CAACmC,GAAeC,CAAgB,IAAIpC,EAAM,SAAkB,EAAK,GAIjEqC,IAAevC,KAAS,MACxBwC,IAAWtC,EAAM,OAAyB,IAAI,GAC9CuC,IAAeC,GAA6BvC,GAAKqC,CAAQ,GACzDG,IAASC,GAAcvC,GAAY,EAAE,QAAAqB,GAAQ,aAAapB,GAAiB,GAE3EuC,IAAU,CAACC,MAA8C;AAC7D,QAAIlC,GAAU;AACZ,MAAAkC,EAAM,gBAAA;AACN;AAAA,IACF;AAEA,IAAA/B,KAAA,QAAAA,EAAc+B,IAEdV,EAAa,EAAI;AAAA,EACnB,GAEMW,IAAS,CAACD,MAA8C;AAC5D,QAAI,CAACP,GAAc;AACjB,YAAMS,IAAUF,EAAM,UAAUN,EAAS;AAEzC,MAAAS,EAAW;AAAA,QACT,OAAOD,EAAQ;AAAA,MAAA,CAChB;AAAA,IACH;AACA,IAAAhC,KAAA,QAAAA,EAAa8B,GAAOlD,IACpBwC,EAAa,EAAK;AAAA,EACpB,GAEMa,IAAa/C,EAAM,YAAY,CAACgD,MAAwC;AAC5E,UAAMC,IAAS,EAAQC,GAASF,CAAG;AACnC,IAAAZ,EAAiB,CAACe,MAAUA,MAASF,IAASE,IAAOF,CAAO;AAAA,EAC9D,GAAG,CAAA,CAAE,GAECG,IAAiD,CAACR,MAAU;AAChE,QAAI,CAACP,GAAc;AACjB,YAAMS,IAAUF,EAAM,UAAUN,EAAS;AAEzC,MAAAS,EAAW;AAAA,QACT,OAAOD,EAAQ;AAAA,MAAA,CAChB;AAAA,IACH;AACA,IAAAlC,KAAA,QAAAA,EAAegC,GAAOlD;AAAA,EACxB,GAEM2D,IAA6D,CAACT,MAAU;AAC5E,IAAIN,EAAS,WAAWM,EAAM,kBAAkBA,EAAM,WACpDA,EAAM,eAAA,GACNN,EAAS,QAAQ,MAAA;AAAA,EAErB;AAEA,EAAAtC,EAAM,UAAU,MAAM;AACpB,IAAIU,KAAYuB,KACdC,EAAa,EAAK;AAAA,EAEtB,GAAG,CAACxB,GAAUuB,CAAS,CAAC,GAMxBjC,EAAM,UAAU,MAAM;;AACpB,IAAKqC,KAGHU,EAAW,EAAE,QAAOO,IAAAhB,EAAS,YAAT,gBAAAgB,EAAkB,OAAO;AAAA,EAEjD,CAAC,GAEDC,EAAoB,MAAM;AACxB,IAAIlB,KACFU,EAAW,EAAE,OAAAjD,GAAO;AAAA,EAExB,GAAG,CAACA,GAAOuC,GAAcU,CAAU,CAAC;AAEpC,QAAMS,IAAeC;AAAA,IACnB;AAAA,KACC,CAACvD,KAASsB,MAAW;AAAA,IACtBF,KAAkB;AAAA,IAClBC,KAAgB;AAAA,IAChBC,KAAU;AAAA,EAAA;AAGZ,SACE,gBAAAkC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAzD;AAAA,MACA,YAAAC;AAAA,MACA,cAAcsC,EAAO;AAAA,MACrB,SAAApC;AAAA,MACA,UAAAK;AAAA,MACA,WAAW+C,EAAGjD,GAAWF,MAAS,YAAY,wBAAwBA,CAAI,EAAE;AAAA,MAC5E,OAAAG;AAAA,MACA,OAAAM;AAAA,MACA,WAAAK;AAAA,MACA,eAAAe;AAAA,MACA,WAAAF;AAAA,MACA,SAASF;AAAA,MACT,QAAQ,EAAQT;AAAA,MAChB,mBAAA+B;AAAA,MACA,gBAAA/B;AAAA,MACA,cAAAC;AAAA,MACA,QAAAC;AAAA,MACC,GAAGK;AAAA,MAEJ,UAAA,gBAAA6B;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAG5B;AAAA,UACJ,MAAAb;AAAA,UACA,cAAAN;AAAA,UACA,MAAAK;AAAA,UACA,UAAAE;AAAA,UACA,UAAAX;AAAA,UAEA,gBAAcQ,KAASe,EAAgB,cAAc;AAAA,UACrD,iBAAevB,KAAYuB,EAAgB,eAAe;AAAA,UAC1D,aAAAX;AAAA,UACA,UAAAT;AAAA,UACA,OAAAZ;AAAA,UACA,WAAW0D;AAAA,UACX,KAAKjB;AAAA,UACL,UAAAa;AAAA,UACA,SAAAT;AAAA,UACA,QAAAE;AAAA,UACA,IAAId;AAAA,UACJ,cAAAN;AAAA,UACA,WAAAC;AAAA,UACA,oBAAkBe,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAC3B;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -1,50 +1,61 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { TextFieldAdornment as
|
|
4
|
-
|
|
1
|
+
import { jsxs as n, jsx as e, Fragment as L } from "react/jsx-runtime";
|
|
2
|
+
import i from "clsx";
|
|
3
|
+
import { TextFieldAdornment as f } from "./textFieldAdornment.js";
|
|
4
|
+
import { hasHelperText as M } from "../../../hooks/useHelperText.js";
|
|
5
|
+
function y({
|
|
5
6
|
label: s,
|
|
6
|
-
helperText:
|
|
7
|
+
helperText: d,
|
|
8
|
+
helperTextId: h,
|
|
7
9
|
variant: l,
|
|
8
|
-
disabled:
|
|
9
|
-
className:
|
|
10
|
-
error:
|
|
11
|
-
fullWidth:
|
|
12
|
-
isFilledState:
|
|
10
|
+
disabled: x,
|
|
11
|
+
className: w,
|
|
12
|
+
error: b,
|
|
13
|
+
fullWidth: p,
|
|
14
|
+
isFilledState: _,
|
|
13
15
|
isFocused: c,
|
|
14
|
-
htmlFor:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
htmlFor: N,
|
|
17
|
+
labelId: u,
|
|
18
|
+
shrink: v,
|
|
19
|
+
children: F,
|
|
20
|
+
onHolderMouseDown: g,
|
|
18
21
|
startAdornment: o,
|
|
19
|
-
endAdornment:
|
|
22
|
+
endAdornment: r,
|
|
20
23
|
inline: t,
|
|
21
|
-
|
|
24
|
+
"data-testid": j = "text-field",
|
|
25
|
+
...C
|
|
22
26
|
}) {
|
|
23
|
-
const
|
|
24
|
-
"smwb-text-field--filled": !t &&
|
|
27
|
+
const k = l === "filled", m = s && (_ || c || v), a = d === void 0 ? /* @__PURE__ */ e(L, { children: " " }) : d, B = i(w, "smwb-text-field", {
|
|
28
|
+
"smwb-text-field--filled": !t && k,
|
|
25
29
|
"smwb-text-field--inline": t,
|
|
26
30
|
"smwb-text-field--focused": !t && c,
|
|
27
|
-
"smwb-text-field--error":
|
|
28
|
-
"smwb-text-field--disabled":
|
|
29
|
-
"smwb-text-field--full-width":
|
|
30
|
-
}),
|
|
31
|
-
"smwb-text-field__label--shrink":
|
|
32
|
-
}),
|
|
31
|
+
"smwb-text-field--error": b,
|
|
32
|
+
"smwb-text-field--disabled": x,
|
|
33
|
+
"smwb-text-field--full-width": p
|
|
34
|
+
}), D = i("smwb-text-field__label", {
|
|
35
|
+
"smwb-text-field__label--shrink": m
|
|
36
|
+
}), H = i("smwb-text-field__notched", {
|
|
33
37
|
"smwb-text-field__notched--with-label": s,
|
|
34
|
-
"smwb-text-field__notched--active":
|
|
38
|
+
"smwb-text-field__notched--active": m
|
|
35
39
|
});
|
|
36
|
-
return /* @__PURE__ */
|
|
37
|
-
!t && s && /* @__PURE__ */ e("label", { className:
|
|
38
|
-
/* @__PURE__ */
|
|
39
|
-
o && /* @__PURE__ */ e(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
!t && l === "outlined" && /* @__PURE__ */ e("fieldset", { className:
|
|
40
|
+
return /* @__PURE__ */ n("div", { className: B, ...C, "data-testid": j, children: [
|
|
41
|
+
!t && s && /* @__PURE__ */ e("label", { id: u, className: D, htmlFor: N, children: s }),
|
|
42
|
+
/* @__PURE__ */ n("div", { className: "smwb-text-field__input-holder", onMouseDown: g, children: [
|
|
43
|
+
o && /* @__PURE__ */ e(f, { variant: l, inline: !!t, position: "start", children: o }),
|
|
44
|
+
F,
|
|
45
|
+
r && /* @__PURE__ */ e(f, { position: "end", children: r }),
|
|
46
|
+
!t && l === "outlined" && /* @__PURE__ */ e("fieldset", { className: H, children: /* @__PURE__ */ e("legend", { children: s ? /* @__PURE__ */ e("span", { children: s }) : /* @__PURE__ */ e("span", { className: "smwb-notranslate", children: "" }) }) })
|
|
43
47
|
] }),
|
|
44
|
-
!t &&
|
|
48
|
+
!t && a && /* @__PURE__ */ e("p", { className: "smwb-text-field__helper-line", children: /* @__PURE__ */ e(
|
|
49
|
+
"span",
|
|
50
|
+
{
|
|
51
|
+
className: "smwb-text-field__helper-text",
|
|
52
|
+
id: M(d, t) ? h : void 0,
|
|
53
|
+
children: a
|
|
54
|
+
}
|
|
55
|
+
) })
|
|
45
56
|
] });
|
|
46
57
|
}
|
|
47
58
|
export {
|
|
48
|
-
|
|
59
|
+
y as TextFieldWrapper
|
|
49
60
|
};
|
|
50
61
|
//# sourceMappingURL=textFieldWrapper.js.map
|