@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,102 +1,103 @@
|
|
|
1
|
-
import { jsxs as l, Fragment as
|
|
2
|
-
import { useEffect as
|
|
1
|
+
import { jsxs as l, Fragment as b, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect as H } from "react";
|
|
3
3
|
import n from "clsx";
|
|
4
|
-
import { Icon as
|
|
5
|
-
import { ChatIconButton as
|
|
6
|
-
import { useControllableState as
|
|
7
|
-
import { Chat as
|
|
8
|
-
const
|
|
9
|
-
function
|
|
4
|
+
import { Icon as g } from "../../base/icon/icon.js";
|
|
5
|
+
import { ChatIconButton as w } from "./chatIconButton.js";
|
|
6
|
+
import { useControllableState as C } from "../../../hooks/useControllableState.js";
|
|
7
|
+
import { Chat as x } from "./chat.js";
|
|
8
|
+
const S = (a) => typeof a == "number" ? `${a}px` : a, $ = (a) => a === "left" ? "bottom-left" : "bottom-right";
|
|
9
|
+
function R({
|
|
10
10
|
className: a,
|
|
11
|
-
contentClassName:
|
|
12
|
-
chatClassName:
|
|
11
|
+
contentClassName: i,
|
|
12
|
+
chatClassName: r,
|
|
13
13
|
side: e = "right",
|
|
14
|
-
chatWidth:
|
|
15
|
-
collapsed:
|
|
16
|
-
defaultCollapsed:
|
|
17
|
-
onCollapsedChange:
|
|
18
|
-
collapseAriaLabel:
|
|
19
|
-
expandAriaLabel:
|
|
20
|
-
floatingAnchor:
|
|
14
|
+
chatWidth: k = 400,
|
|
15
|
+
collapsed: I,
|
|
16
|
+
defaultCollapsed: N = !1,
|
|
17
|
+
onCollapsedChange: v,
|
|
18
|
+
collapseAriaLabel: A = "Collapse chat panel",
|
|
19
|
+
expandAriaLabel: B = "Expand chat panel",
|
|
20
|
+
floatingAnchor: s,
|
|
21
21
|
chat: o,
|
|
22
22
|
children: u,
|
|
23
23
|
style: p,
|
|
24
|
-
|
|
24
|
+
"data-testid": m = "chat-layout",
|
|
25
|
+
...f
|
|
25
26
|
}) {
|
|
26
|
-
const [
|
|
27
|
-
value:
|
|
28
|
-
defaultValue:
|
|
29
|
-
onChange:
|
|
30
|
-
}), [
|
|
27
|
+
const [c, h] = C({
|
|
28
|
+
value: I,
|
|
29
|
+
defaultValue: N,
|
|
30
|
+
onChange: v
|
|
31
|
+
}), [F, d] = C({
|
|
31
32
|
defaultValue: !1
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}, [
|
|
36
|
-
const
|
|
37
|
-
|
|
34
|
+
H(() => {
|
|
35
|
+
c || d(!1);
|
|
36
|
+
}, [c, d]);
|
|
37
|
+
const L = s != null ? s : $(e), O = e === "left" ? "dock_to_left" : "dock_to_right", V = /* @__PURE__ */ t(
|
|
38
|
+
w,
|
|
38
39
|
{
|
|
39
|
-
"aria-label":
|
|
40
|
+
"aria-label": A,
|
|
40
41
|
"data-testid": "chat-layout-collapse",
|
|
41
42
|
onClick: () => h(!0),
|
|
42
|
-
children: /* @__PURE__ */ t(
|
|
43
|
+
children: /* @__PURE__ */ t(g, { name: e === "left" ? "left_panel_close" : "right_panel_close", size: 18 })
|
|
43
44
|
}
|
|
44
|
-
),
|
|
45
|
-
o.headerActions,
|
|
46
|
-
O
|
|
47
|
-
] }), z = /* @__PURE__ */ l(_, { children: [
|
|
45
|
+
), j = /* @__PURE__ */ t(w, { "aria-label": B, "data-testid": "chat-layout-expand", onClick: () => h(!1), children: /* @__PURE__ */ t(g, { name: O, size: 18 }) }), z = /* @__PURE__ */ l(b, { children: [
|
|
48
46
|
o.headerActions,
|
|
49
47
|
V
|
|
50
|
-
] }),
|
|
51
|
-
|
|
48
|
+
] }), E = /* @__PURE__ */ l(b, { children: [
|
|
49
|
+
o.headerActions,
|
|
50
|
+
j
|
|
51
|
+
] }), y = {
|
|
52
|
+
"--smwb-chat-layout-w": S(k)
|
|
52
53
|
};
|
|
53
|
-
if (
|
|
54
|
+
if (c)
|
|
54
55
|
return /* @__PURE__ */ l(
|
|
55
56
|
"div",
|
|
56
57
|
{
|
|
57
58
|
className: n("smwb-chat-layout", "smwb-chat-layout_collapsed", a),
|
|
58
|
-
style: { ...
|
|
59
|
-
"data-testid":
|
|
59
|
+
style: { ...y, ...p },
|
|
60
|
+
"data-testid": m,
|
|
61
|
+
...f,
|
|
60
62
|
"data-collapsed": "true",
|
|
61
|
-
...m,
|
|
62
63
|
children: [
|
|
63
|
-
/* @__PURE__ */ t("div", { className: n("smwb-chat-layout__content",
|
|
64
|
+
/* @__PURE__ */ t("div", { className: n("smwb-chat-layout__content", i), "data-testid": "chat-layout-content", children: u }),
|
|
64
65
|
/* @__PURE__ */ t(
|
|
65
|
-
|
|
66
|
+
x,
|
|
66
67
|
{
|
|
67
68
|
...o,
|
|
68
|
-
className:
|
|
69
|
+
className: r,
|
|
69
70
|
floatingTrigger: !0,
|
|
70
|
-
anchor:
|
|
71
|
+
anchor: L,
|
|
71
72
|
allowedLayouts: ["floating"],
|
|
72
73
|
layout: "floating",
|
|
73
|
-
open:
|
|
74
|
+
open: F,
|
|
74
75
|
onOpenChange: d,
|
|
75
|
-
headerActions:
|
|
76
|
+
headerActions: E
|
|
76
77
|
}
|
|
77
78
|
)
|
|
78
79
|
]
|
|
79
80
|
}
|
|
80
81
|
);
|
|
81
|
-
const
|
|
82
|
+
const _ = /* @__PURE__ */ t("aside", { className: "smwb-chat-layout__panel", "data-testid": "chat-layout-panel", children: /* @__PURE__ */ t(x, { ...o, className: r, embedded: !0, allowedLayouts: [], headerActions: z }) });
|
|
82
83
|
return /* @__PURE__ */ l(
|
|
83
84
|
"div",
|
|
84
85
|
{
|
|
85
86
|
className: n("smwb-chat-layout", `smwb-chat-layout_${e}`, a),
|
|
86
|
-
style: { ...
|
|
87
|
-
"data-testid":
|
|
87
|
+
style: { ...y, ...p },
|
|
88
|
+
"data-testid": m,
|
|
89
|
+
...f,
|
|
88
90
|
"data-collapsed": "false",
|
|
89
|
-
...m,
|
|
90
91
|
children: [
|
|
91
|
-
e === "left" ?
|
|
92
|
-
/* @__PURE__ */ t("div", { className: n("smwb-chat-layout__content",
|
|
93
|
-
e === "right" ?
|
|
92
|
+
e === "left" ? _ : null,
|
|
93
|
+
/* @__PURE__ */ t("div", { className: n("smwb-chat-layout__content", i), "data-testid": "chat-layout-content", children: u }),
|
|
94
|
+
e === "right" ? _ : null
|
|
94
95
|
]
|
|
95
96
|
}
|
|
96
97
|
);
|
|
97
98
|
}
|
|
98
99
|
export {
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
R as ChatLayout,
|
|
101
|
+
R as default
|
|
101
102
|
};
|
|
102
103
|
//# sourceMappingURL=chatLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatLayout.js","sources":["../../../../../src/components/dataDisplay/chat/chatLayout.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, useEffect } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\nimport ChatIconButton from \"./chatIconButton\";\nimport { useControllableState } from \"../../../hooks/useControllableState\";\nimport Chat, { ChatProps } from \"./chat\";\nimport { ChatAnchor, ChatLayoutSide } from \"./types\";\n\nconst len = (value: number | string) => (typeof value === \"number\" ? `${value}px` : value);\n\nconst floatingAnchorForSide = (side: ChatLayoutSide): ChatAnchor => (side === \"left\" ? \"bottom-left\" : \"bottom-right\");\n\nexport type ChatLayoutChatProps = Omit<\n ChatProps,\n | \"className\"\n | \"embedded\"\n | \"floatingTrigger\"\n | \"anchor\"\n | \"allowedLayouts\"\n | \"layout\"\n | \"defaultLayout\"\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n | \"onLayoutChange\"\n>;\n\nexport interface ChatLayoutProps extends PropsWithChildren, HTMLAttributes<HTMLDivElement> {\n className?: string;\n contentClassName?: string;\n chatClassName?: string;\n side?: ChatLayoutSide;\n chatWidth?: number | string;\n collapsed?: boolean;\n defaultCollapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n collapseAriaLabel?: string;\n expandAriaLabel?: string;\n floatingAnchor?: ChatAnchor;\n chat: ChatLayoutChatProps;\n}\n\nexport function ChatLayout({\n className,\n contentClassName,\n chatClassName,\n side = \"right\",\n chatWidth = 400,\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n collapseAriaLabel = \"Collapse chat panel\",\n expandAriaLabel = \"Expand chat panel\",\n floatingAnchor,\n chat,\n children,\n style,\n ...rest\n}: ChatLayoutProps) {\n const [collapsed, setCollapsed] = useControllableState<boolean>({\n value: collapsedProp,\n defaultValue: defaultCollapsed,\n onChange: onCollapsedChange,\n });\n\n const [floatingOpen, setFloatingOpen] = useControllableState<boolean>({\n defaultValue: false,\n });\n\n useEffect(() => {\n if (!collapsed) {\n setFloatingOpen(false);\n }\n }, [collapsed, setFloatingOpen]);\n\n const anchor = floatingAnchor ?? floatingAnchorForSide(side);\n const dockIcon = side === \"left\" ? \"dock_to_left\" : \"dock_to_right\";\n const collapseIcon = side === \"left\" ? \"left_panel_close\" : \"right_panel_close\";\n\n const collapseButton = (\n <ChatIconButton\n aria-label={collapseAriaLabel}\n data-testid=\"chat-layout-collapse\"\n onClick={() => setCollapsed(true)}\n >\n <Icon name={collapseIcon} size={18} />\n </ChatIconButton>\n );\n\n const expandButton = (\n <ChatIconButton aria-label={expandAriaLabel} data-testid=\"chat-layout-expand\" onClick={() => setCollapsed(false)}>\n <Icon name={dockIcon} size={18} />\n </ChatIconButton>\n );\n\n const dockedHeaderActions = (\n <>\n {chat.headerActions}\n {collapseButton}\n </>\n );\n\n const floatingHeaderActions = (\n <>\n {chat.headerActions}\n {expandButton}\n </>\n );\n\n const cssVars = {\n \"--smwb-chat-layout-w\": len(chatWidth),\n } as CSSProperties;\n\n if (collapsed) {\n return (\n <div\n className={cn(\"smwb-chat-layout\", \"smwb-chat-layout_collapsed\", className)}\n style={{ ...cssVars, ...style }}\n data-testid
|
|
1
|
+
{"version":3,"file":"chatLayout.js","sources":["../../../../../src/components/dataDisplay/chat/chatLayout.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, useEffect } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\nimport ChatIconButton from \"./chatIconButton\";\nimport { useControllableState } from \"../../../hooks/useControllableState\";\nimport Chat, { ChatProps } from \"./chat\";\nimport { ChatAnchor, ChatLayoutSide } from \"./types\";\n\nconst len = (value: number | string) => (typeof value === \"number\" ? `${value}px` : value);\n\nconst floatingAnchorForSide = (side: ChatLayoutSide): ChatAnchor => (side === \"left\" ? \"bottom-left\" : \"bottom-right\");\n\nexport type ChatLayoutChatProps = Omit<\n ChatProps,\n | \"className\"\n | \"embedded\"\n | \"floatingTrigger\"\n | \"anchor\"\n | \"allowedLayouts\"\n | \"layout\"\n | \"defaultLayout\"\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n | \"onLayoutChange\"\n>;\n\nexport interface ChatLayoutProps extends PropsWithChildren, HTMLAttributes<HTMLDivElement> {\n className?: string;\n contentClassName?: string;\n chatClassName?: string;\n side?: ChatLayoutSide;\n chatWidth?: number | string;\n collapsed?: boolean;\n defaultCollapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n collapseAriaLabel?: string;\n expandAriaLabel?: string;\n floatingAnchor?: ChatAnchor;\n chat: ChatLayoutChatProps;\n /** Test id of the root `<div>`; `chat-layout` unless given. */\n \"data-testid\"?: string;\n}\n\nexport function ChatLayout({\n className,\n contentClassName,\n chatClassName,\n side = \"right\",\n chatWidth = 400,\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n collapseAriaLabel = \"Collapse chat panel\",\n expandAriaLabel = \"Expand chat panel\",\n floatingAnchor,\n chat,\n children,\n style,\n \"data-testid\": dataTestId = \"chat-layout\",\n ...rest\n}: ChatLayoutProps) {\n const [collapsed, setCollapsed] = useControllableState<boolean>({\n value: collapsedProp,\n defaultValue: defaultCollapsed,\n onChange: onCollapsedChange,\n });\n\n const [floatingOpen, setFloatingOpen] = useControllableState<boolean>({\n defaultValue: false,\n });\n\n useEffect(() => {\n if (!collapsed) {\n setFloatingOpen(false);\n }\n }, [collapsed, setFloatingOpen]);\n\n const anchor = floatingAnchor ?? floatingAnchorForSide(side);\n const dockIcon = side === \"left\" ? \"dock_to_left\" : \"dock_to_right\";\n const collapseIcon = side === \"left\" ? \"left_panel_close\" : \"right_panel_close\";\n\n const collapseButton = (\n <ChatIconButton\n aria-label={collapseAriaLabel}\n data-testid=\"chat-layout-collapse\"\n onClick={() => setCollapsed(true)}\n >\n <Icon name={collapseIcon} size={18} />\n </ChatIconButton>\n );\n\n const expandButton = (\n <ChatIconButton aria-label={expandAriaLabel} data-testid=\"chat-layout-expand\" onClick={() => setCollapsed(false)}>\n <Icon name={dockIcon} size={18} />\n </ChatIconButton>\n );\n\n const dockedHeaderActions = (\n <>\n {chat.headerActions}\n {collapseButton}\n </>\n );\n\n const floatingHeaderActions = (\n <>\n {chat.headerActions}\n {expandButton}\n </>\n );\n\n const cssVars = {\n \"--smwb-chat-layout-w\": len(chatWidth),\n } as CSSProperties;\n\n if (collapsed) {\n return (\n <div\n className={cn(\"smwb-chat-layout\", \"smwb-chat-layout_collapsed\", className)}\n style={{ ...cssVars, ...style }}\n data-testid={dataTestId}\n {...rest}\n // The collapsed state is the layout's own; it wins over the caller's.\n data-collapsed=\"true\"\n >\n <div className={cn(\"smwb-chat-layout__content\", contentClassName)} data-testid=\"chat-layout-content\">\n {children}\n </div>\n <Chat\n {...chat}\n className={chatClassName}\n floatingTrigger\n anchor={anchor}\n allowedLayouts={[\"floating\"]}\n layout=\"floating\"\n open={floatingOpen}\n onOpenChange={setFloatingOpen}\n headerActions={floatingHeaderActions}\n />\n </div>\n );\n }\n\n const panel = (\n <aside className=\"smwb-chat-layout__panel\" data-testid=\"chat-layout-panel\">\n <Chat {...chat} className={chatClassName} embedded allowedLayouts={[]} headerActions={dockedHeaderActions} />\n </aside>\n );\n\n return (\n <div\n className={cn(\"smwb-chat-layout\", `smwb-chat-layout_${side}`, className)}\n style={{ ...cssVars, ...style }}\n data-testid={dataTestId}\n {...rest}\n // The collapsed state is the layout's own; it wins over the caller's.\n data-collapsed=\"false\"\n >\n {side === \"left\" ? panel : null}\n <div className={cn(\"smwb-chat-layout__content\", contentClassName)} data-testid=\"chat-layout-content\">\n {children}\n </div>\n {side === \"right\" ? panel : null}\n </div>\n );\n}\n\nexport default ChatLayout;\n"],"names":["len","value","floatingAnchorForSide","side","ChatLayout","className","contentClassName","chatClassName","chatWidth","collapsedProp","defaultCollapsed","onCollapsedChange","collapseAriaLabel","expandAriaLabel","floatingAnchor","chat","children","style","dataTestId","rest","collapsed","setCollapsed","useControllableState","floatingOpen","setFloatingOpen","useEffect","anchor","dockIcon","collapseButton","jsx","ChatIconButton","Icon","expandButton","dockedHeaderActions","jsxs","Fragment","floatingHeaderActions","cssVars","cn","Chat","panel"],"mappings":";;;;;;;AAQA,MAAMA,IAAM,CAACC,MAA4B,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA,GAE9EC,IAAwB,CAACC,MAAsCA,MAAS,SAAS,gBAAgB;AAkChG,SAASC,EAAW;AAAA,EACzB,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,MAAAJ,IAAO;AAAA,EACP,WAAAK,IAAY;AAAA,EACZ,WAAWC;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,mBAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,iBAAAC,IAAkB;AAAA,EAClB,gBAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GAAoB;AAClB,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAA8B;AAAA,IAC9D,OAAOb;AAAA,IACP,cAAcC;AAAA,IACd,UAAUC;AAAA,EAAA,CACX,GAEK,CAACY,GAAcC,CAAe,IAAIF,EAA8B;AAAA,IACpE,cAAc;AAAA,EAAA,CACf;AAED,EAAAG,EAAU,MAAM;AACd,IAAKL,KACHI,EAAgB,EAAK;AAAA,EAEzB,GAAG,CAACJ,GAAWI,CAAe,CAAC;AAE/B,QAAME,IAASZ,KAAA,OAAAA,IAAkBZ,EAAsBC,CAAI,GACrDwB,IAAWxB,MAAS,SAAS,iBAAiB,iBAG9CyB,IACJ,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAYlB;AAAA,MACZ,eAAY;AAAA,MACZ,SAAS,MAAMS,EAAa,EAAI;AAAA,MAEhC,UAAA,gBAAAQ,EAACE,GAAA,EAAK,MARW5B,MAAS,SAAS,qBAAqB,qBAQ9B,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,EAAA,GAIlC6B,IACJ,gBAAAH,EAACC,GAAA,EAAe,cAAYjB,GAAiB,eAAY,sBAAqB,SAAS,MAAMQ,EAAa,EAAK,GAC7G,UAAA,gBAAAQ,EAACE,GAAA,EAAK,MAAMJ,GAAU,MAAM,IAAI,GAClC,GAGIM,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAApB,EAAK;AAAA,IACLa;AAAA,EAAA,GACH,GAGIQ,IACJ,gBAAAF,EAAAC,GAAA,EACG,UAAA;AAAA,IAAApB,EAAK;AAAA,IACLiB;AAAA,EAAA,GACH,GAGIK,IAAU;AAAA,IACd,wBAAwBrC,EAAIQ,CAAS;AAAA,EAAA;AAGvC,MAAIY;AACF,WACE,gBAAAc;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI,EAAG,oBAAoB,8BAA8BjC,CAAS;AAAA,QACzE,OAAO,EAAE,GAAGgC,GAAS,GAAGpB,EAAA;AAAA,QACxB,eAAaC;AAAA,QACZ,GAAGC;AAAA,QAEJ,kBAAe;AAAA,QAEf,UAAA;AAAA,UAAA,gBAAAU,EAAC,OAAA,EAAI,WAAWS,EAAG,6BAA6BhC,CAAgB,GAAG,eAAY,uBAC5E,UAAAU,GACH;AAAA,UACA,gBAAAa;AAAA,YAACU;AAAA,YAAA;AAAA,cACE,GAAGxB;AAAA,cACJ,WAAWR;AAAA,cACX,iBAAe;AAAA,cACf,QAAAmB;AAAA,cACA,gBAAgB,CAAC,UAAU;AAAA,cAC3B,QAAO;AAAA,cACP,MAAMH;AAAA,cACN,cAAcC;AAAA,cACd,eAAeY;AAAA,YAAA;AAAA,UAAA;AAAA,QACjB;AAAA,MAAA;AAAA,IAAA;AAKN,QAAMI,sBACH,SAAA,EAAM,WAAU,2BAA0B,eAAY,qBACrD,4BAACD,GAAA,EAAM,GAAGxB,GAAM,WAAWR,GAAe,UAAQ,IAAC,gBAAgB,CAAA,GAAI,eAAe0B,GAAqB,GAC7G;AAGF,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWI,EAAG,oBAAoB,oBAAoBnC,CAAI,IAAIE,CAAS;AAAA,MACvE,OAAO,EAAE,GAAGgC,GAAS,GAAGpB,EAAA;AAAA,MACxB,eAAaC;AAAA,MACZ,GAAGC;AAAA,MAEJ,kBAAe;AAAA,MAEd,UAAA;AAAA,QAAAhB,MAAS,SAASqC,IAAQ;AAAA,QAC3B,gBAAAX,EAAC,SAAI,WAAWS,EAAG,6BAA6BhC,CAAgB,GAAG,eAAY,uBAC5E,UAAAU,GACH;AAAA,QACCb,MAAS,UAAUqC,IAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlC;"}
|
|
@@ -1,98 +1,125 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { jsxs as r, jsx as t, Fragment as L } from "react/jsx-runtime";
|
|
2
|
+
import u from "react";
|
|
3
|
+
import Z from "clsx";
|
|
4
4
|
import { Ripple as K } from "../../base/ripple/ripple.js";
|
|
5
|
-
import { Icon as
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
import { Icon as M } from "../../base/icon/icon.js";
|
|
6
|
+
import { isOwnClick as k } from "../../../utils/ownClick.js";
|
|
7
|
+
import { splitControlProps as C } from "../../../utils/controlProps.js";
|
|
8
|
+
const ti = u.forwardRef(function({
|
|
9
|
+
label: O,
|
|
10
|
+
labelId: q,
|
|
11
|
+
className: v,
|
|
12
|
+
deleteIcon: d,
|
|
13
|
+
icon: _,
|
|
14
|
+
onDelete: R,
|
|
15
|
+
onMouseDown: e,
|
|
16
|
+
// The chip sets these on its root too; its own handlers call the caller's first.
|
|
17
|
+
onKeyDown: l,
|
|
18
|
+
onPointerDown: m,
|
|
19
|
+
onDeleteMouseDown: n,
|
|
20
|
+
asLink: G,
|
|
15
21
|
href: o,
|
|
16
|
-
target:
|
|
17
|
-
selected:
|
|
18
|
-
variant:
|
|
19
|
-
size:
|
|
20
|
-
color:
|
|
21
|
-
disabled:
|
|
22
|
-
onClick:
|
|
23
|
-
deleteAriaLabel:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
22
|
+
target: H = "_blank",
|
|
23
|
+
selected: J,
|
|
24
|
+
variant: Q = "filled",
|
|
25
|
+
size: S = "medium",
|
|
26
|
+
color: x = "default",
|
|
27
|
+
disabled: c = !1,
|
|
28
|
+
onClick: s,
|
|
29
|
+
deleteAriaLabel: U = "Remove",
|
|
30
|
+
"data-testid": a,
|
|
31
|
+
...f
|
|
32
|
+
}, N) {
|
|
33
|
+
var B, E;
|
|
34
|
+
const w = u.useRef(null), b = u.useRef(null), g = (i) => {
|
|
35
|
+
e == null || e(i);
|
|
36
|
+
}, $ = (i) => {
|
|
37
|
+
var F;
|
|
38
|
+
m == null || m(i), c || (F = w.current) == null || F.onRipple(i);
|
|
39
|
+
}, V = (i) => {
|
|
40
|
+
n == null || n(i), i.stopPropagation();
|
|
41
|
+
}, j = Z(
|
|
34
42
|
"smwb-chip",
|
|
35
|
-
`smwb-${
|
|
36
|
-
`smwb-chip_size-${
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{ "smwb-disabled":
|
|
40
|
-
),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
`smwb-${Q}`,
|
|
44
|
+
`smwb-chip_size-${S}`,
|
|
45
|
+
x !== "default" && `smwb-chip_color-${x}`,
|
|
46
|
+
v,
|
|
47
|
+
{ "smwb-disabled": c, "smwb-selected": J }
|
|
48
|
+
), W = !!R && /* @__PURE__ */ t(
|
|
49
|
+
"button",
|
|
50
|
+
{
|
|
51
|
+
type: "button",
|
|
52
|
+
className: "smwb-chip__delete-icon",
|
|
53
|
+
"aria-label": U,
|
|
54
|
+
disabled: c,
|
|
55
|
+
onClick: R,
|
|
56
|
+
onMouseDown: V,
|
|
57
|
+
children: d || /* @__PURE__ */ t(M, { name: "cancel", size: 18, fill: 1 })
|
|
58
|
+
}
|
|
59
|
+
), z = /* @__PURE__ */ r(L, { children: [
|
|
60
|
+
_ && /* @__PURE__ */ t("span", { className: "smwb-chip__icon", children: _ }),
|
|
61
|
+
/* @__PURE__ */ t("span", { id: q, className: "smwb-chip__label", children: O })
|
|
62
|
+
] }), y = /* @__PURE__ */ r(L, { children: [
|
|
63
|
+
W,
|
|
64
|
+
/* @__PURE__ */ t(K, { actionRef: w })
|
|
56
65
|
] });
|
|
57
|
-
if (
|
|
58
|
-
return /* @__PURE__ */
|
|
66
|
+
if (G && o)
|
|
67
|
+
return /* @__PURE__ */ r(
|
|
59
68
|
"a",
|
|
60
69
|
{
|
|
61
|
-
ref:
|
|
62
|
-
"data-testid": "chip-link",
|
|
63
|
-
className:
|
|
70
|
+
ref: N,
|
|
71
|
+
"data-testid": a != null ? a : "chip-link",
|
|
72
|
+
className: j,
|
|
64
73
|
href: o,
|
|
65
|
-
onMouseDown:
|
|
66
|
-
onPointerDown:
|
|
67
|
-
target:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
onMouseDown: g,
|
|
75
|
+
onPointerDown: $,
|
|
76
|
+
target: H,
|
|
77
|
+
...f,
|
|
78
|
+
rel: (B = f.rel) != null ? B : "noreferrer",
|
|
79
|
+
onKeyDown: l,
|
|
80
|
+
children: [
|
|
81
|
+
z,
|
|
82
|
+
y
|
|
83
|
+
]
|
|
71
84
|
}
|
|
72
85
|
);
|
|
73
|
-
const
|
|
74
|
-
|
|
86
|
+
const h = !!s && !c, [p, A] = C(f, !!s), X = (i) => {
|
|
87
|
+
l == null || l(i), !(!h || i.target !== b.current) && (i.key === "Enter" || i.key === " ") && (i.preventDefault(), s == null || s());
|
|
88
|
+
}, Y = (i) => {
|
|
89
|
+
k(i, b.current) && (s == null || s(i));
|
|
90
|
+
};
|
|
91
|
+
return /* @__PURE__ */ r(
|
|
75
92
|
"span",
|
|
76
93
|
{
|
|
77
|
-
ref:
|
|
78
|
-
"data-testid": "chip",
|
|
79
|
-
className:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
ref: N,
|
|
95
|
+
"data-testid": a != null ? a : "chip",
|
|
96
|
+
className: j,
|
|
97
|
+
...A,
|
|
98
|
+
"aria-disabled": s ? void 0 : c || A["aria-disabled"],
|
|
99
|
+
onClick: h ? Y : void 0,
|
|
100
|
+
onKeyDown: X,
|
|
101
|
+
onMouseDown: g,
|
|
102
|
+
onPointerDown: $,
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ t(
|
|
105
|
+
"span",
|
|
106
|
+
{
|
|
107
|
+
...p,
|
|
108
|
+
ref: b,
|
|
109
|
+
className: "smwb-chip__content",
|
|
110
|
+
role: s ? "button" : void 0,
|
|
111
|
+
tabIndex: (E = p.tabIndex) != null ? E : h ? 0 : void 0,
|
|
112
|
+
"aria-disabled": s ? c || p["aria-disabled"] : void 0,
|
|
113
|
+
children: z
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
y
|
|
117
|
+
]
|
|
91
118
|
}
|
|
92
119
|
);
|
|
93
120
|
});
|
|
94
121
|
export {
|
|
95
|
-
|
|
96
|
-
|
|
122
|
+
ti as Chip,
|
|
123
|
+
ti as default
|
|
97
124
|
};
|
|
98
125
|
//# sourceMappingURL=chip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.js","sources":["../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Ripple, RippleActionsRef } from \"../../base/ripple/ripple\";\nimport Icon from \"../../base/icon/icon\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n className?: string;\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n onDelete?: (event: React.SyntheticEvent) => void;\n icon?: React.ReactNode;\n deleteIcon?: React.ReactNode;\n label: string;\n onClick?: () => void;\n onDeleteMouseDown?: React.MouseEventHandler;\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n}\n\nexport const Chip = React.forwardRef<HTMLSpanElement | HTMLAnchorElement, ChipProps>(function Chip(\n {\n label,\n className,\n deleteIcon,\n icon,\n onDelete,\n onMouseDown: onMouseDownProp,\n onDeleteMouseDown: onDeleteMouseDownProp,\n asLink,\n href,\n target = \"_blank\",\n selected,\n variant = \"filled\",\n size = \"medium\",\n color = \"default\",\n disabled = false,\n onClick,\n deleteAriaLabel = \"Remove\",\n ...rest\n },\n ref\n) {\n const rippleRef = React.useRef<RippleActionsRef>(null);\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n onMouseDownProp?.(event);\n };\n\n // Ripple on pointerdown so it fires for touch and pen, not just mouse.\n const onPointerDown = (event: React.PointerEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n if (!disabled) {\n rippleRef.current?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown = (event: React.MouseEvent) => {\n onDeleteMouseDownProp?.(event);\n event.stopPropagation();\n };\n\n const classes = cn(\n \"smwb-chip\",\n `smwb-${variant}`,\n `smwb-chip_size-${size}`,\n color !== \"default\" && `smwb-chip_color-${color}`,\n className,\n { \"smwb-disabled\": disabled, \"smwb-selected\": selected }\n );\n\n const deleteBtn = !!onDelete && (\n <button\n type=\"button\"\n className=\"smwb-chip__delete-icon\"\n aria-label={deleteAriaLabel}\n disabled={disabled}\n onClick={onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n {deleteIcon ? deleteIcon : <Icon name=\"cancel\" size={18} fill={1} />}\n </button>\n );\n\n const inner = (\n <>\n {icon && <span className=\"smwb-chip__icon\">{icon}</span>}\n <span className=\"smwb-chip__label\">{label}</span>\n {deleteBtn}\n <Ripple actionRef={rippleRef} />\n </>\n );\n\n if (asLink && href) {\n return (\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n data-testid=\"chip-link\"\n className={classes}\n href={href}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n target={target}\n rel=\"noreferrer\"\n {...rest}\n >\n {inner}\n </a>\n );\n }\n\n const clickable = !!onClick && !disabled;\n\n return (\n <span\n ref={ref}\n data-testid=\"chip\"\n className={classes}\n role={clickable ? \"button\" : undefined}\n tabIndex={clickable ? 0 : undefined}\n aria-disabled={disabled || undefined}\n onClick={clickable ? onClick : undefined}\n onKeyDown={\n clickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.();\n }\n }\n : undefined\n }\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n {...rest}\n >\n {inner}\n </span>\n );\n});\n\nexport default Chip;\n"],"names":["Chip","React","label","className","deleteIcon","icon","onDelete","onMouseDownProp","onDeleteMouseDownProp","asLink","href","target","selected","variant","size","color","disabled","onClick","deleteAriaLabel","rest","ref","rippleRef","onMouseDown","event","onPointerDown","_a","onDeleteMouseDown","classes","cn","inner","jsxs","Fragment","jsx","Icon","Ripple","clickable"],"mappings":";;;;;AA4BO,MAAMA,IAAOC,EAAM,WAA2D,SACnF;AAAA,EACE,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAaC;AAAA,EACb,mBAAmBC;AAAA,EACnB,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAYpB,EAAM,OAAyB,IAAI,GAE/CqB,IAAc,CAACC,MAAiE;AACpF,IAAAhB,KAAA,QAAAA,EAAkBgB;AAAA,EACpB,GAGMC,IAAgB,CAACD,MAAmE;;AACxF,IAAKP,MACHS,IAAAJ,EAAU,YAAV,QAAAI,EAAmB,SAASF;AAAA,EAEhC,GAEMG,IAAoB,CAACH,MAA4B;AACrD,IAAAf,KAAA,QAAAA,EAAwBe,IACxBA,EAAM,gBAAA;AAAA,EACR,GAEMI,IAAUC;AAAA,IACd;AAAA,IACA,QAAQf,CAAO;AAAA,IACf,kBAAkBC,CAAI;AAAA,IACtBC,MAAU,aAAa,mBAAmBA,CAAK;AAAA,IAC/CZ;AAAA,IACA,EAAE,iBAAiBa,GAAU,iBAAiBJ,EAAA;AAAA,EAAS,GAgBnDiB,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAA1B,KAAQ,gBAAA2B,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAA3B,GAAK;AAAA,IACjD,gBAAA2B,EAAC,QAAA,EAAK,WAAU,oBAAoB,UAAA9B,GAAM;AAAA,IAhB5B,CAAC,CAACI,KAClB,gBAAA0B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,cAAYd;AAAA,QACZ,UAAAF;AAAA,QACA,SAASV;AAAA,QACT,aAAaoB;AAAA,QAEZ,UAAAtB,KAA0B,gBAAA4B,EAACC,GAAA,EAAK,MAAK,UAAS,MAAM,IAAI,MAAM,EAAA,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IASlE,gBAAAD,EAACE,GAAA,EAAO,WAAWb,EAAA,CAAW;AAAA,EAAA,GAChC;AAGF,MAAIZ,KAAUC;AACZ,WACE,gBAAAsB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAZ;AAAA,QACA,eAAY;AAAA,QACZ,WAAWO;AAAA,QACX,MAAAjB;AAAA,QACA,aAAAY;AAAA,QACA,eAAAE;AAAA,QACA,QAAAb;AAAA,QACA,KAAI;AAAA,QACH,GAAGQ;AAAA,QAEH,UAAAU;AAAA,MAAA;AAAA,IAAA;AAKP,QAAMM,IAAY,CAAC,CAAClB,KAAW,CAACD;AAEhC,SACE,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAZ;AAAA,MACA,eAAY;AAAA,MACZ,WAAWO;AAAA,MACX,MAAMQ,IAAY,WAAW;AAAA,MAC7B,UAAUA,IAAY,IAAI;AAAA,MAC1B,iBAAenB,KAAY;AAAA,MAC3B,SAASmB,IAAYlB,IAAU;AAAA,MAC/B,WACEkB,IACI,CAAC,MAAM;AACL,SAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACjC,EAAE,eAAA,GACFlB,KAAA,QAAAA;AAAA,MAEJ,IACA;AAAA,MAEN,aAAAK;AAAA,MACA,eAAAE;AAAA,MACC,GAAGL;AAAA,MAEH,UAAAU;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
|
1
|
+
{"version":3,"file":"chip.js","sources":["../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Ripple, RippleActionsRef } from \"../../base/ripple/ripple\";\nimport Icon from \"../../base/icon/icon\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { splitControlProps } from \"../../../utils/controlProps\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n /**\n * Class name(s) for the chip's root, a `<span>` (an `<a>` with `asLink`). `style`, `id`, `data-*`, `aria-hidden`,\n * `ref` and event handlers go to the root too. In a clickable chip (`onClick`), `role`, `tabIndex`, `onFocus`,\n * `onBlur` and the other `aria-*` attributes go to its button, `.smwb-chip__content` (the icon and the label), which\n * is also the element to focus. Otherwise they stay on the root, which holds the delete button too.\n */\n className?: string;\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n /**\n * Shows a delete button in the chip and runs when it is pressed: a click, or\n * Enter / Space while the button has focus. In a clickable chip it sits\n * beside the chip's button, not inside it, and pressing it does not run the\n * chip's `onClick`.\n */\n onDelete?: (event: React.SyntheticEvent) => void;\n icon?: React.ReactNode;\n deleteIcon?: React.ReactNode;\n label: string;\n /**\n * Makes the chip clickable: its icon and label become a button, named by\n * them, with a focus ring around the whole chip. The delete button is not\n * part of that button but its sibling, so it keeps its own name.\n *\n * Runs on a click on the chip and on Enter / Space while the chip's button\n * has focus, but not on a click or key on the delete button.\n */\n onClick?: () => void;\n onDeleteMouseDown?: React.MouseEventHandler;\n /**\n * Disables the chip: it is dimmed, takes no pointer input and says `aria-disabled`, and its delete button is\n * disabled too. With `onClick` the chip is still a button, out of the tab order.\n */\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /**\n * Id of the label's element, for another element to take the chip's text as\n * its name (`aria-labelledby`) without the delete button's name.\n */\n labelId?: string;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n /** Test id of the root; `chip`, or `chip-link` for a link, unless given. */\n \"data-testid\"?: string;\n}\n\nexport const Chip = React.forwardRef<HTMLSpanElement | HTMLAnchorElement, ChipProps>(function Chip(\n {\n label,\n labelId,\n className,\n deleteIcon,\n icon,\n onDelete,\n onMouseDown: onMouseDownProp,\n // The chip sets these on its root too; its own handlers call the caller's first.\n onKeyDown: onKeyDownProp,\n onPointerDown: onPointerDownProp,\n onDeleteMouseDown: onDeleteMouseDownProp,\n asLink,\n href,\n target = \"_blank\",\n selected,\n variant = \"filled\",\n size = \"medium\",\n color = \"default\",\n disabled = false,\n onClick,\n deleteAriaLabel = \"Remove\",\n \"data-testid\": dataTestId,\n ...rest\n },\n ref\n) {\n const rippleRef = React.useRef<RippleActionsRef>(null);\n const contentRef = React.useRef<HTMLSpanElement | null>(null);\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n onMouseDownProp?.(event);\n };\n\n // Ripple on pointerdown so it fires for touch and pen, not just mouse.\n const onPointerDown = (event: React.PointerEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n onPointerDownProp?.(event);\n if (!disabled) {\n rippleRef.current?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown = (event: React.MouseEvent) => {\n onDeleteMouseDownProp?.(event);\n event.stopPropagation();\n };\n\n const classes = cn(\n \"smwb-chip\",\n `smwb-${variant}`,\n `smwb-chip_size-${size}`,\n color !== \"default\" && `smwb-chip_color-${color}`,\n className,\n { \"smwb-disabled\": disabled, \"smwb-selected\": selected }\n );\n\n const deleteBtn = !!onDelete && (\n <button\n type=\"button\"\n className=\"smwb-chip__delete-icon\"\n aria-label={deleteAriaLabel}\n disabled={disabled}\n onClick={onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n {deleteIcon ? deleteIcon : <Icon name=\"cancel\" size={18} fill={1} />}\n </button>\n );\n\n // The chip's own content: its button when it is clickable.\n const iconAndLabel = (\n <>\n {icon && <span className=\"smwb-chip__icon\">{icon}</span>}\n <span id={labelId} className=\"smwb-chip__label\">\n {label}\n </span>\n </>\n );\n // After the content: in a clickable chip, beside its button, not in it.\n const trailing = (\n <>\n {deleteBtn}\n <Ripple actionRef={rippleRef} />\n </>\n );\n\n if (asLink && href) {\n return (\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n data-testid={dataTestId ?? \"chip-link\"}\n className={classes}\n href={href}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n target={target}\n {...rest}\n // A default: the caller's rel wins, and an explicit undefined keeps it.\n rel={rest.rel ?? \"noreferrer\"}\n onKeyDown={onKeyDownProp}\n >\n {iconAndLabel}\n {trailing}\n </a>\n );\n }\n\n const clickable = !!onClick && !disabled;\n // With onClick the chip's content is its button, and what the chip is to the\n // keyboard and to assistive tech goes there. Without it the chip is not a\n // control: the caller's role and ARIA attributes stay on the root, around\n // the delete button too.\n const [control, box] = splitControlProps(rest, !!onClick);\n\n // Keys pressed on the delete button bubble up here too; only the keys of the\n // chip's button activate it.\n const onKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n onKeyDownProp?.(event);\n if (!clickable || event.target !== contentRef.current) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n onClick?.();\n }\n };\n\n // A click on the chip's button, or on its padding, activates the chip: not\n // one on the delete button, nor one in a portal rendered inside, which React\n // delivers here too. The click goes along to onClick, as it always has,\n // though its type takes none.\n const onChipClick = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (isOwnClick(event, contentRef.current)) {\n (onClick as React.MouseEventHandler<HTMLSpanElement> | undefined)?.(event);\n }\n };\n\n return (\n <span\n ref={ref}\n data-testid={dataTestId ?? \"chip\"}\n className={classes}\n {...box}\n // A disabled chip says so where the caller's ARIA attributes are: on its\n // button with onClick, on the root without.\n aria-disabled={onClick ? undefined : disabled || box[\"aria-disabled\"]}\n onClick={clickable ? onChipClick : undefined}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n >\n <span\n {...control}\n ref={contentRef}\n className=\"smwb-chip__content\"\n // With onClick the content is the chip's button, and a disabled chip\n // says so: these win over the caller's, and where the chip sets none,\n // the caller's stay. Its tabIndex is a default: the caller's wins, e.g.\n // for roving focus.\n role={onClick ? \"button\" : undefined}\n tabIndex={control.tabIndex ?? (clickable ? 0 : undefined)}\n aria-disabled={onClick ? disabled || control[\"aria-disabled\"] : undefined}\n >\n {iconAndLabel}\n </span>\n {/* Beside the button, not in it: the delete button keeps its name and input. */}\n {trailing}\n </span>\n );\n});\n\nexport default Chip;\n"],"names":["Chip","React","label","labelId","className","deleteIcon","icon","onDelete","onMouseDownProp","onKeyDownProp","onPointerDownProp","onDeleteMouseDownProp","asLink","href","target","selected","variant","size","color","disabled","onClick","deleteAriaLabel","dataTestId","rest","ref","rippleRef","contentRef","onMouseDown","event","onPointerDown","_a","onDeleteMouseDown","classes","cn","deleteBtn","jsx","Icon","iconAndLabel","jsxs","Fragment","trailing","Ripple","clickable","control","box","splitControlProps","onKeyDown","onChipClick","isOwnClick","_b"],"mappings":"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"}
|
|
@@ -1,41 +1,45 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import { Chip as
|
|
4
|
-
function
|
|
5
|
-
options:
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import j from "clsx";
|
|
3
|
+
import { Chip as k } from "../chip/chip.js";
|
|
4
|
+
function S({
|
|
5
|
+
options: m,
|
|
6
6
|
value: e,
|
|
7
|
-
multiple:
|
|
7
|
+
multiple: f,
|
|
8
8
|
onChange: l,
|
|
9
|
-
size:
|
|
10
|
-
color:
|
|
11
|
-
disabled:
|
|
12
|
-
className:
|
|
13
|
-
...
|
|
9
|
+
size: a = "medium",
|
|
10
|
+
color: b = "primary",
|
|
11
|
+
disabled: p,
|
|
12
|
+
className: v,
|
|
13
|
+
...s
|
|
14
14
|
}) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
var d;
|
|
16
|
+
const i = () => e == null ? [] : Array.isArray(e) ? e : [e], u = (r) => i().includes(r), x = (r) => {
|
|
17
|
+
if (f) {
|
|
18
|
+
const c = i(), y = c.includes(r) ? c.filter((A) => A !== r) : [...c, r];
|
|
19
|
+
l == null || l(y);
|
|
19
20
|
} else
|
|
20
21
|
l == null || l(r);
|
|
21
22
|
};
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
return (
|
|
24
|
+
// role="group" is a default: the caller's own wins, and an explicit undefined keeps it.
|
|
25
|
+
/* @__PURE__ */ t("div", { ...s, role: (d = s.role) != null ? d : "group", className: j("smwb-chip-group", v), children: m.map((r) => /* @__PURE__ */ t(
|
|
26
|
+
k,
|
|
27
|
+
{
|
|
28
|
+
label: r.label,
|
|
29
|
+
icon: r.icon,
|
|
30
|
+
size: a,
|
|
31
|
+
color: b,
|
|
32
|
+
selected: u(r.value),
|
|
33
|
+
variant: u(r.value) ? "filled" : "outlined",
|
|
34
|
+
disabled: !!(p || r.disabled),
|
|
35
|
+
onClick: () => x(r.value)
|
|
36
|
+
},
|
|
37
|
+
r.value
|
|
38
|
+
)) })
|
|
39
|
+
);
|
|
36
40
|
}
|
|
37
41
|
export {
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
S as ChipGroup,
|
|
43
|
+
S as default
|
|
40
44
|
};
|
|
41
45
|
//# sourceMappingURL=chipGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chipGroup.js","sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) apps re-hand-roll for\n * filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup({\n options,\n value,\n multiple,\n onChange,\n size = \"medium\",\n color = \"primary\",\n disabled,\n className,\n ...rest\n}: ChipGroupProps): React.ReactElement {\n const selectedValues = (): string[] => {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n };\n const isSelected = (option: string): boolean => selectedValues().includes(option);\n\n const toggle = (option: string): void => {\n if (multiple) {\n const current = selectedValues();\n const next = current.includes(option) ? current.filter((v) => v !== option) : [...current, option];\n onChange?.(next);\n } else {\n onChange?.(option);\n }\n };\n\n return (\n <div {...rest} role
|
|
1
|
+
{"version":3,"file":"chipGroup.js","sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) apps re-hand-roll for\n * filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup({\n options,\n value,\n multiple,\n onChange,\n size = \"medium\",\n color = \"primary\",\n disabled,\n className,\n ...rest\n}: ChipGroupProps): React.ReactElement {\n const selectedValues = (): string[] => {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n };\n const isSelected = (option: string): boolean => selectedValues().includes(option);\n\n const toggle = (option: string): void => {\n if (multiple) {\n const current = selectedValues();\n const next = current.includes(option) ? current.filter((v) => v !== option) : [...current, option];\n onChange?.(next);\n } else {\n onChange?.(option);\n }\n };\n\n return (\n // role=\"group\" is a default: the caller's own wins, and an explicit undefined keeps it.\n <div {...rest} role={rest.role ?? \"group\"} className={cn(\"smwb-chip-group\", className)}>\n {options.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n icon={option.icon}\n size={size}\n color={color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n />\n ))}\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","options","value","multiple","onChange","size","color","disabled","className","rest","selectedValues","isSelected","option","toggle","current","next","v","_a","cn","jsx","Chip"],"mappings":";;;AA6BO,SAASA,EAAU;AAAA,EACxB,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;;AACrC,QAAMC,IAAiB,MACjBR,KAAS,OAAa,CAAA,IACnB,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAExCS,IAAa,CAACC,MAA4BF,EAAA,EAAiB,SAASE,CAAM,GAE1EC,IAAS,CAACD,MAAyB;AACvC,QAAIT,GAAU;AACZ,YAAMW,IAAUJ,EAAA,GACVK,IAAOD,EAAQ,SAASF,CAAM,IAAIE,EAAQ,OAAO,CAACE,MAAMA,MAAMJ,CAAM,IAAI,CAAC,GAAGE,GAASF,CAAM;AACjG,MAAAR,KAAA,QAAAA,EAAWW;AAAA,IACb;AACE,MAAAX,KAAA,QAAAA,EAAWQ;AAAA,EAEf;AAEA;AAAA;AAAA,sBAEG,OAAA,EAAK,GAAGH,GAAM,OAAMQ,IAAAR,EAAK,SAAL,OAAAQ,IAAa,SAAS,WAAWC,EAAG,mBAAmBV,CAAS,GAClF,UAAAP,EAAQ,IAAI,CAACW,MACZ,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,OAAOR,EAAO;AAAA,QACd,MAAMA,EAAO;AAAA,QACb,MAAAP;AAAA,QACA,OAAAC;AAAA,QACA,UAAUK,EAAWC,EAAO,KAAK;AAAA,QACjC,SAASD,EAAWC,EAAO,KAAK,IAAI,WAAW;AAAA,QAC/C,UAAU,CAAC,EAAEL,KAAYK,EAAO;AAAA,QAChC,SAAS,MAAMC,EAAOD,EAAO,KAAK;AAAA,MAAA;AAAA,MAR7BA,EAAO;AAAA,IAAA,CAUf,EAAA,CACH;AAAA;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptionList.js","sources":["../../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport interface DescriptionListEntry {\n term: ReactNode;\n description: ReactNode;\n /** React key; the index is used without it. */\n key?: React.Key;\n}\n\n/**\n * `auto`: the term beside its description while the list
|
|
1
|
+
{"version":3,"file":"descriptionList.js","sources":["../../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport interface DescriptionListEntry {\n term: ReactNode;\n description: ReactNode;\n /** React key; the index is used without it. */\n key?: React.Key;\n}\n\n/**\n * `auto`: the term beside its description while the list is at least 420px\n * wide, above it when narrower (a container query on the list itself). `row`\n * and `stacked` fix one layout.\n */\nexport type DescriptionListLayout = \"auto\" | \"row\" | \"stacked\";\n\nexport interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {\n className?: string;\n /** The pairs as data; `DescriptionItem` children work too, and come after them. */\n items?: DescriptionListEntry[];\n /**\n * \"auto\" (default): each term beside its value while the list is at least\n * 420px wide, above it when narrower — the list's own width decides. So its\n * content does not widen it: where the parent takes its width from its\n * content (a flex item that does not grow, a popover, a table cell) the list\n * has no width; give it one there, or use \"row\" / \"stacked\", which fix one\n * layout and take their width from their content.\n */\n layout?: DescriptionListLayout;\n /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */\n termWidth?: number | string;\n /** Tighter spacing, for side panels. */\n dense?: boolean;\n}\n\nexport interface DescriptionItemProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** The field's name. */\n term: ReactNode;\n}\n\n/** One pair: the term and, as children, its description. */\nexport const DescriptionItem = React.forwardRef<HTMLDivElement, PropsWithChildren<DescriptionItemProps>>(\n function DescriptionItem({ className, term, children, ...rest }, ref) {\n return (\n <div {...rest} ref={ref} className={cn(\"smwb-description-list__item\", className)}>\n <dt className=\"smwb-description-list__term\">{term}</dt>\n <dd className=\"smwb-description-list__details\">{children}</dd>\n </div>\n );\n }\n);\n\n/** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */\nexport const DescriptionList = React.forwardRef<HTMLDListElement, PropsWithChildren<DescriptionListProps>>(\n function DescriptionList({ className, style, items, layout = \"auto\", termWidth, dense, children, ...rest }, ref) {\n const width = typeof termWidth === \"number\" ? `${termWidth}px` : termWidth;\n return (\n <dl\n {...rest}\n ref={ref}\n className={cn(\n \"smwb-description-list\",\n `smwb-description-list_${layout}`,\n { \"smwb-description-list_dense\": dense },\n className\n )}\n style={width === undefined ? style : ({ ...style, \"--smwb-description-term\": width } as CSSProperties)}\n >\n {items?.map((item, index) => (\n <DescriptionItem key={item.key ?? index} term={item.term}>\n {item.description}\n </DescriptionItem>\n ))}\n {children}\n </dl>\n );\n }\n);\n\nexport default DescriptionList;\n"],"names":["DescriptionItem","React","className","term","children","rest","ref","jsxs","cn","jsx","DescriptionList","style","items","layout","termWidth","dense","width","item","index","_a"],"mappings":";;;AA2CO,MAAMA,IAAkBC,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GAAQC,GAAK;AACpE,WACE,gBAAAC,EAAC,SAAK,GAAGF,GAAM,KAAAC,GAAU,WAAWE,EAAG,+BAA+BN,CAAS,GAC7E,UAAA;AAAA,MAAA,gBAAAO,EAAC,MAAA,EAAG,WAAU,+BAA+B,UAAAN,GAAK;AAAA,MAClD,gBAAAM,EAAC,MAAA,EAAG,WAAU,kCAAkC,UAAAL,EAAA,CAAS;AAAA,IAAA,GAC3D;AAAA,EAEJ;AACF,GAGaM,IAAkBT,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,OAAAS,GAAO,OAAAC,GAAO,QAAAC,IAAS,QAAQ,WAAAC,GAAW,OAAAC,GAAO,UAAAX,GAAU,GAAGC,EAAA,GAAQC,GAAK;AAC/G,UAAMU,IAAQ,OAAOF,KAAc,WAAW,GAAGA,CAAS,OAAOA;AACjE,WACE,gBAAAP;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGF;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWE;AAAA,UACT;AAAA,UACA,yBAAyBK,CAAM;AAAA,UAC/B,EAAE,+BAA+BE,EAAA;AAAA,UACjCb;AAAA,QAAA;AAAA,QAEF,OAAOc,MAAU,SAAYL,IAAS,EAAE,GAAGA,GAAO,2BAA2BK,EAAA;AAAA,QAE5E,UAAA;AAAA,UAAAJ,KAAA,gBAAAA,EAAO,IAAI,CAACK,GAAMC,MAAA;;qCAChBlB,GAAA,EAAwC,MAAMiB,EAAK,MACjD,UAAAA,EAAK,YAAA,IADcE,IAAAF,EAAK,QAAL,OAAAE,IAAYD,CAElC;AAAA;AAAA,UAEDd;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;"}
|