@smwb/ui-react 2.7.0 → 2.9.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/AI_LESS_OVERRIDES.md +84 -21
- package/AI_THEMING.md +72 -28
- package/README.md +681 -0
- package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
- package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
- package/dist/assets/styles/less/components/button/button.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/commandPalette/commandPalette.entry.css +1 -0
- package/dist/assets/styles/less/components/composer/composer.entry.css +1 -0
- package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
- package/dist/assets/styles/less/components/diffStat/diffStat.entry.css +1 -0
- package/dist/assets/styles/less/components/kbd/kbd.entry.css +1 -0
- package/dist/assets/styles/less/components/list/list.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/qrCode/qrCode.entry.css +1 -0
- 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/sidebar/sidebar.entry.css +1 -1
- package/dist/assets/styles/less/components/statusDot/statusDot.entry.css +1 -0
- package/dist/assets/styles/less/components/swimlanes/swimlanes.entry.css +1 -0
- package/dist/assets/styles/less/components/tabGroups/tabGroups.entry.css +1 -0
- package/dist/assets/styles/less/components/table/table.entry.css +1 -1
- package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
- package/dist/assets/styles/less/components/tabs/tabPanel/tabPanel.entry.css +1 -0
- package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
- package/dist/assets/styles/less/components/textField/textField.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/treeView/treeView.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/assets/styles/less/tokens.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/chat.d.ts +43 -1
- package/dist/components/dataDisplay/chat/chat.js +179 -150
- package/dist/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatComposer.d.ts +17 -0
- package/dist/components/dataDisplay/chat/chatComposer.js +31 -29
- package/dist/components/dataDisplay/chat/chatComposer.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/chat/index.d.ts +1 -1
- package/dist/components/dataDisplay/chat/utils.d.ts +14 -0
- package/dist/components/dataDisplay/chat/utils.js.map +1 -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/dagView/dagLayout.d.ts +74 -0
- package/dist/components/dataDisplay/dagView/dagLayout.js +289 -0
- package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
- package/dist/components/dataDisplay/dagView/dagView.d.ts +157 -0
- package/dist/components/dataDisplay/dagView/dagView.js +543 -0
- package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
- package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
- package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
- package/dist/components/dataDisplay/dagView/panZoom.js +171 -0
- package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
- package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
- package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/components/dataDisplay/diffStat/diffStat.d.ts +54 -0
- package/dist/components/dataDisplay/diffStat/diffStat.js +63 -0
- package/dist/components/dataDisplay/diffStat/diffStat.js.map +1 -0
- package/dist/components/dataDisplay/diffStat/index.d.ts +2 -0
- 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/kbd/index.d.ts +4 -0
- package/dist/components/dataDisplay/kbd/kbd.d.ts +40 -0
- package/dist/components/dataDisplay/kbd/kbd.js +27 -0
- package/dist/components/dataDisplay/kbd/kbd.js.map +1 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.d.ts +18 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.js +72 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
- 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/list/listItem.d.ts +34 -0
- package/dist/components/dataDisplay/list/listItem.js +47 -24
- package/dist/components/dataDisplay/list/listItem.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/qrCode/index.d.ts +2 -0
- package/dist/components/dataDisplay/qrCode/qrCode.d.ts +28 -0
- package/dist/components/dataDisplay/qrCode/qrCode.js +78 -0
- package/dist/components/dataDisplay/qrCode/qrCode.js.map +1 -0
- package/dist/components/dataDisplay/qrCode/qrCodePath.d.ts +7 -0
- package/dist/components/dataDisplay/qrCode/qrCodePath.js +20 -0
- package/dist/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
- 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/statusDot/index.d.ts +2 -0
- package/dist/components/dataDisplay/statusDot/statusDot.d.ts +35 -0
- package/dist/components/dataDisplay/statusDot/statusDot.js +30 -0
- package/dist/components/dataDisplay/statusDot/statusDot.js.map +1 -0
- package/dist/components/dataDisplay/swimlanes/index.d.ts +2 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.d.ts +53 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.js +357 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
- 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 +19 -1
- package/dist/components/dataDisplay/treeView/treeView.js +113 -91
- 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 +84 -63
- 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 +15 -1
- package/dist/components/inputs/button/button.js +73 -63
- 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/composer/composer.d.ts +149 -0
- package/dist/components/inputs/composer/composer.js +219 -0
- package/dist/components/inputs/composer/composer.js.map +1 -0
- package/dist/components/inputs/composer/composerFiles.d.ts +26 -0
- package/dist/components/inputs/composer/composerFiles.js +19 -0
- package/dist/components/inputs/composer/composerFiles.js.map +1 -0
- package/dist/components/inputs/composer/composerKeys.d.ts +29 -0
- package/dist/components/inputs/composer/composerKeys.js +7 -0
- package/dist/components/inputs/composer/composerKeys.js.map +1 -0
- package/dist/components/inputs/composer/index.d.ts +3 -0
- 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 +14 -0
- package/dist/components/layout/sheet/sheet.js +148 -132
- 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/layout/tabGroups/index.d.ts +4 -0
- package/dist/components/layout/tabGroups/tabGroups.d.ts +94 -0
- package/dist/components/layout/tabGroups/tabGroups.js +783 -0
- package/dist/components/layout/tabGroups/tabGroups.js.map +1 -0
- package/dist/components/layout/tabGroups/tabGroupsFocus.d.ts +55 -0
- package/dist/components/layout/tabGroups/tabGroupsFocus.js +199 -0
- package/dist/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
- package/dist/components/layout/tabGroups/tabGroupsLayout.d.ts +250 -0
- package/dist/components/layout/tabGroups/tabGroupsLayout.js +497 -0
- package/dist/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
- package/dist/components/navigation/appBar/appBar.d.ts +24 -0
- package/dist/components/navigation/appBar/appBar.js +39 -33
- 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/commandPalette/commandPalette.d.ts +111 -0
- package/dist/components/navigation/commandPalette/commandPalette.js +337 -0
- package/dist/components/navigation/commandPalette/commandPalette.js.map +1 -0
- package/dist/components/navigation/commandPalette/commandPaletteFilter.d.ts +11 -0
- package/dist/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
- package/dist/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
- package/dist/components/navigation/commandPalette/commandPaletteNavigation.d.ts +13 -0
- package/dist/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
- package/dist/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
- package/dist/components/navigation/commandPalette/commandPaletteTypes.d.ts +39 -0
- package/dist/components/navigation/commandPalette/index.d.ts +4 -0
- 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.d.ts +10 -0
- package/dist/components/navigation/sidebar/sidebar.js +65 -62
- 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/index.d.ts +3 -1
- package/dist/components/navigation/tabs/tab/tab.d.ts +88 -1
- package/dist/components/navigation/tabs/tab/tab.js +116 -35
- package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +19 -0
- package/dist/components/navigation/tabs/tabPanel/tabPanel.js +27 -0
- package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
- package/dist/components/navigation/tabs/tabs.d.ts +80 -4
- package/dist/components/navigation/tabs/tabs.js +369 -148
- package/dist/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/components/navigation/tabs/tabs.utils.d.ts +20 -0
- package/dist/components/navigation/tabs/tabs.utils.js +11 -0
- package/dist/components/navigation/tabs/tabs.utils.js.map +1 -0
- package/dist/components/navigation/tabs/tabsContext.d.ts +11 -0
- package/dist/components/navigation/tabs/tabsContext.js +6 -0
- package/dist/components/navigation/tabs/tabsContext.js.map +1 -0
- 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/chat.js +179 -150
- package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatComposer.js +31 -29
- package/dist/headless/components/dataDisplay/chat/chatComposer.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/chat/utils.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/dagView/dagLayout.js +289 -0
- package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
- package/dist/headless/components/dataDisplay/dagView/dagView.js +541 -0
- package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
- package/dist/headless/components/dataDisplay/dagView/panZoom.js +171 -0
- package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/headless/components/dataDisplay/diffStat/diffStat.js +61 -0
- package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
- 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/kbd/kbd.js +25 -0
- package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
- package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +72 -0
- package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
- 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/list/listItem.js +47 -24
- package/dist/headless/components/dataDisplay/list/listItem.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/qrCode/qrCode.js +76 -0
- package/dist/headless/components/dataDisplay/qrCode/qrCode.js.map +1 -0
- package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js +20 -0
- package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
- 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/statusDot/statusDot.js +28 -0
- package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
- package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +355 -0
- package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
- 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 +113 -91
- 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 +84 -63
- 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 +73 -63
- 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/composer/composer.js +217 -0
- package/dist/headless/components/inputs/composer/composer.js.map +1 -0
- package/dist/headless/components/inputs/composer/composerFiles.js +19 -0
- package/dist/headless/components/inputs/composer/composerFiles.js.map +1 -0
- package/dist/headless/components/inputs/composer/composerKeys.js +7 -0
- package/dist/headless/components/inputs/composer/composerKeys.js.map +1 -0
- 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 +156 -140
- 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/layout/tabGroups/tabGroups.js +781 -0
- package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +199 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +497 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
- package/dist/headless/components/navigation/appBar/appBar.js +35 -29
- 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/commandPalette/commandPalette.js +335 -0
- package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
- 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 +55 -52
- 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 +117 -36
- package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +25 -0
- package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
- package/dist/headless/components/navigation/tabs/tabs.js +362 -141
- package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabs.utils.js +11 -0
- package/dist/headless/components/navigation/tabs/tabs.utils.js.map +1 -0
- package/dist/headless/components/navigation/tabs/tabsContext.js +6 -0
- package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -0
- package/dist/headless/hooks/useDismissOnEscape.js +16 -0
- package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
- package/dist/headless/hooks/useFocusTrap.js +24 -20
- 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/hooks/useKeyboardShortcut.js +19 -0
- package/dist/headless/hooks/useKeyboardShortcut.js.map +1 -0
- package/dist/headless/index.js +360 -316
- package/dist/headless/index.js.map +1 -1
- package/dist/headless/utils/controlProps.js +14 -0
- package/dist/headless/utils/controlProps.js.map +1 -0
- package/dist/headless/utils/keyboardShortcut.js +49 -0
- package/dist/headless/utils/keyboardShortcut.js.map +1 -0
- package/dist/headless/utils/linkAttrs.js +13 -0
- package/dist/headless/utils/linkAttrs.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/headless/utils/restoreFocus.js +10 -0
- package/dist/headless/utils/restoreFocus.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 +8 -1
- package/dist/hooks/useFocusTrap.js +24 -20
- 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/hooks/useKeyboardShortcut.d.ts +30 -0
- package/dist/hooks/useKeyboardShortcut.js +19 -0
- package/dist/hooks/useKeyboardShortcut.js.map +1 -0
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +24 -3
- package/dist/index.js +360 -316
- package/dist/index.js.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/keyboardShortcut.d.ts +12 -0
- package/dist/utils/keyboardShortcut.js +49 -0
- package/dist/utils/keyboardShortcut.js.map +1 -0
- package/dist/utils/linkAttrs.d.ts +13 -0
- package/dist/utils/linkAttrs.js +13 -0
- package/dist/utils/linkAttrs.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/dist/utils/restoreFocus.d.ts +8 -0
- package/dist/utils/restoreFocus.js +10 -0
- package/dist/utils/restoreFocus.js.map +1 -0
- package/package.json +5 -3
|
@@ -1,17 +1,30 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as Q, jsx as C } from "react/jsx-runtime";
|
|
2
2
|
import '../../../assets/styles/less/components/chart/chart.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import U, { useRef as y, useState as q, useEffect as z } from "react";
|
|
5
|
+
import V from "clsx";
|
|
6
6
|
import { readChartPalette as B, samePalette as _, chartTheme as H } from "./chartTheme.js";
|
|
7
|
-
import { Skeleton as
|
|
8
|
-
const
|
|
7
|
+
import { Skeleton as X } from "../../feedBack/skeleton/skeleton.js";
|
|
8
|
+
const Y = (u) => typeof u == "number" ? `${u}px` : u, Z = () => import("echarts"), tt = (u) => {
|
|
9
9
|
try {
|
|
10
10
|
return JSON.stringify(u, (k, h) => typeof h == "function" ? String(h) : h);
|
|
11
11
|
} catch {
|
|
12
12
|
return null;
|
|
13
13
|
}
|
|
14
|
-
},
|
|
14
|
+
}, it = U.forwardRef(function({
|
|
15
|
+
className: k,
|
|
16
|
+
style: h,
|
|
17
|
+
label: J,
|
|
18
|
+
summary: x,
|
|
19
|
+
option: g,
|
|
20
|
+
height: W = 240,
|
|
21
|
+
loader: E,
|
|
22
|
+
renderer: F = "canvas",
|
|
23
|
+
onClick: N,
|
|
24
|
+
onReady: S,
|
|
25
|
+
"data-testid": $ = "chart",
|
|
26
|
+
...D
|
|
27
|
+
}, p) {
|
|
15
28
|
const A = y(null), w = y(null), [f, M] = q(null), [b, L] = q(!1), l = y({
|
|
16
29
|
module: null,
|
|
17
30
|
instance: null,
|
|
@@ -21,52 +34,52 @@ const X = (u) => typeof u == "number" ? `${u}px` : u, Y = () => import("echarts"
|
|
|
21
34
|
pending: !1
|
|
22
35
|
}), s = y({ option: g, palette: f, loader: E, renderer: F, onClick: N, onReady: S });
|
|
23
36
|
s.current = { option: g, palette: f, loader: E, renderer: F, onClick: N, onReady: S };
|
|
24
|
-
const
|
|
25
|
-
A.current =
|
|
37
|
+
const G = (t) => {
|
|
38
|
+
A.current = t, typeof p == "function" ? p(t) : p && (p.current = t);
|
|
26
39
|
}, R = () => {
|
|
27
|
-
const
|
|
28
|
-
return !!(
|
|
29
|
-
}, O = (
|
|
30
|
-
const
|
|
31
|
-
return
|
|
40
|
+
const t = w.current;
|
|
41
|
+
return !!(t && t.clientWidth > 0 && t.clientHeight > 0);
|
|
42
|
+
}, O = (t, n) => {
|
|
43
|
+
const e = t.init(w.current, H(n), { renderer: s.current.renderer });
|
|
44
|
+
return e.on("click", (a) => {
|
|
32
45
|
var c, o;
|
|
33
46
|
return (o = (c = s.current).onClick) == null ? void 0 : o.call(c, a);
|
|
34
|
-
}), l.current.themed = n, l.current.drawn = null,
|
|
47
|
+
}), l.current.themed = n, l.current.drawn = null, e;
|
|
35
48
|
}, P = () => {
|
|
36
|
-
const
|
|
37
|
-
if (!
|
|
49
|
+
const t = l.current, n = s.current.palette;
|
|
50
|
+
if (!t.instance || !n) return;
|
|
38
51
|
if (!R()) {
|
|
39
|
-
|
|
52
|
+
t.pending = !0;
|
|
40
53
|
return;
|
|
41
54
|
}
|
|
42
|
-
const
|
|
43
|
-
if (!(!
|
|
44
|
-
|
|
55
|
+
const e = s.current.option, a = typeof e == "function" ? e(n) : e, c = tt(a);
|
|
56
|
+
if (!(!t.pending && c !== null && c === t.drawn)) {
|
|
57
|
+
t.pending = !1;
|
|
45
58
|
try {
|
|
46
|
-
|
|
59
|
+
t.instance.setOption(a, { notMerge: !0 }), t.drawn = c;
|
|
47
60
|
} catch (o) {
|
|
48
|
-
|
|
61
|
+
t.drawn = null, console.error("[smwb] Chart: the option did not draw.", o);
|
|
49
62
|
}
|
|
50
63
|
}
|
|
51
|
-
},
|
|
64
|
+
}, I = (t) => {
|
|
52
65
|
const n = l.current;
|
|
53
|
-
if (!(!n.instance || !n.module || n.themed && _(n.themed,
|
|
66
|
+
if (!(!n.instance || !n.module || n.themed && _(n.themed, t)))
|
|
54
67
|
if (typeof n.instance.setTheme == "function") {
|
|
55
68
|
try {
|
|
56
|
-
n.instance.setTheme(H(
|
|
57
|
-
} catch (
|
|
58
|
-
console.error("[smwb] Chart: the theme did not apply.",
|
|
69
|
+
n.instance.setTheme(H(t));
|
|
70
|
+
} catch (e) {
|
|
71
|
+
console.error("[smwb] Chart: the theme did not apply.", e);
|
|
59
72
|
}
|
|
60
|
-
n.themed =
|
|
73
|
+
n.themed = t, n.drawn = null;
|
|
61
74
|
} else
|
|
62
|
-
n.instance.dispose(), n.instance = O(n.module,
|
|
75
|
+
n.instance.dispose(), n.instance = O(n.module, t);
|
|
63
76
|
};
|
|
64
77
|
return z(() => {
|
|
65
78
|
var j;
|
|
66
|
-
const
|
|
79
|
+
const t = A.current, n = w.current, e = l.current;
|
|
67
80
|
let a = !1;
|
|
68
81
|
const c = () => {
|
|
69
|
-
const r = B(
|
|
82
|
+
const r = B(t);
|
|
70
83
|
M((i) => i && _(i, r) ? i : r);
|
|
71
84
|
};
|
|
72
85
|
c();
|
|
@@ -78,56 +91,56 @@ const X = (u) => typeof u == "number" ? `${u}px` : u, Y = () => import("echarts"
|
|
|
78
91
|
const d = typeof window.matchMedia == "function" ? window.matchMedia("(prefers-color-scheme: dark)") : void 0;
|
|
79
92
|
d == null || d.addEventListener("change", c);
|
|
80
93
|
const T = () => {
|
|
81
|
-
if (a ||
|
|
82
|
-
const r = B(
|
|
83
|
-
M((i) => i && _(i, r) ? i : r),
|
|
84
|
-
},
|
|
94
|
+
if (a || e.instance || !e.module || !R()) return;
|
|
95
|
+
const r = B(t);
|
|
96
|
+
M((i) => i && _(i, r) ? i : r), e.instance = O(e.module, r), L(!0);
|
|
97
|
+
}, K = () => {
|
|
85
98
|
if (R()) {
|
|
86
|
-
if (!
|
|
99
|
+
if (!e.instance) {
|
|
87
100
|
T();
|
|
88
101
|
return;
|
|
89
102
|
}
|
|
90
103
|
try {
|
|
91
|
-
|
|
104
|
+
e.instance.resize();
|
|
92
105
|
} catch {
|
|
93
106
|
}
|
|
94
|
-
|
|
107
|
+
e.pending && P();
|
|
95
108
|
}
|
|
96
109
|
};
|
|
97
110
|
let v = 0;
|
|
98
111
|
const m = typeof ResizeObserver == "function" ? new ResizeObserver(() => {
|
|
99
|
-
cancelAnimationFrame(v), v = requestAnimationFrame(
|
|
112
|
+
cancelAnimationFrame(v), v = requestAnimationFrame(K);
|
|
100
113
|
}) : void 0;
|
|
101
|
-
return m == null || m.observe(n), ((j = s.current.loader) != null ? j :
|
|
114
|
+
return m == null || m.observe(n), ((j = s.current.loader) != null ? j : Z)().then(
|
|
102
115
|
(r) => {
|
|
103
|
-
|
|
116
|
+
e.module = r, T();
|
|
104
117
|
},
|
|
105
118
|
(r) => console.error("[smwb] Chart: ECharts did not load.", r)
|
|
106
119
|
), () => {
|
|
107
120
|
var r;
|
|
108
|
-
a = !0, o.disconnect(), d == null || d.removeEventListener("change", c), m == null || m.disconnect(), cancelAnimationFrame(v), (r =
|
|
121
|
+
a = !0, o.disconnect(), d == null || d.removeEventListener("change", c), m == null || m.disconnect(), cancelAnimationFrame(v), (r = e.instance) == null || r.dispose(), e.instance = null, e.announced = null, e.drawn = null, L(!1);
|
|
109
122
|
};
|
|
110
123
|
}, []), z(() => {
|
|
111
|
-
var n,
|
|
112
|
-
const
|
|
113
|
-
!b || !f || !
|
|
114
|
-
}, [b, f, g]), /* @__PURE__ */
|
|
124
|
+
var n, e;
|
|
125
|
+
const t = l.current;
|
|
126
|
+
!b || !f || !t.instance || (I(f), P(), t.instance && t.announced !== t.instance && (t.announced = t.instance, (e = (n = s.current).onReady) == null || e.call(n, t.instance)));
|
|
127
|
+
}, [b, f, g]), /* @__PURE__ */ Q(
|
|
115
128
|
"div",
|
|
116
129
|
{
|
|
117
|
-
"data-testid":
|
|
118
|
-
|
|
119
|
-
ref:
|
|
120
|
-
className:
|
|
121
|
-
style: { ...h, height:
|
|
130
|
+
"data-testid": $,
|
|
131
|
+
...D,
|
|
132
|
+
ref: G,
|
|
133
|
+
className: V("smwb-chart", k),
|
|
134
|
+
style: { ...h, height: Y(W) },
|
|
122
135
|
children: [
|
|
123
136
|
/* @__PURE__ */ C("div", { ref: w, className: "smwb-chart__canvas", role: "img", "aria-label": J }),
|
|
124
|
-
b ? null : /* @__PURE__ */ C(
|
|
137
|
+
b ? null : /* @__PURE__ */ C(X, { className: "smwb-chart__skeleton", variant: "rounded", width: "100%", height: "100%" }),
|
|
125
138
|
x ? /* @__PURE__ */ C("p", { className: "smwb-chart__summary", children: x }) : null
|
|
126
139
|
]
|
|
127
140
|
}
|
|
128
141
|
);
|
|
129
142
|
});
|
|
130
143
|
export {
|
|
131
|
-
|
|
144
|
+
it as Chart
|
|
132
145
|
};
|
|
133
146
|
//# sourceMappingURL=chart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.js","sources":["../../../../src/components/dataDisplay/chart/chart.tsx"],"sourcesContent":["import React, { HTMLAttributes, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { Skeleton } from \"../../feedBack/skeleton\";\nimport { type ChartOption, type ChartPalette, chartTheme, readChartPalette, samePalette } from \"./chartTheme\";\n\n/** What an ECharts event hands its handler: the item under the pointer. */\nexport interface ChartEventParams {\n componentType?: string;\n seriesType?: string;\n seriesIndex?: number;\n seriesName?: string;\n name?: string;\n dataIndex?: number;\n data?: unknown;\n value?: unknown;\n [key: string]: unknown;\n}\n\n/** The part of an ECharts instance the chart uses; `onReady` hands over the instance itself. */\nexport interface ChartInstance {\n setOption(option: ChartOption, opts?: { notMerge?: boolean }): void;\n resize(): void;\n on(eventName: string, handler: (params: ChartEventParams) => void): void;\n dispose(): void;\n /** ECharts 6 switches the theme in place; with ECharts 5 the chart is created anew. */\n setTheme?(theme: object): void;\n}\n\n/** What `loader` resolves to: `echarts`, or `echarts/core` with the charts you use registered. */\nexport interface ChartModule {\n init(dom: HTMLElement, theme?: object | string | null, opts?: { renderer?: \"canvas\" | \"svg\" }): ChartInstance;\n}\n\nexport interface ChartProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onClick\"> {\n className?: string;\n /** What the chart shows: its accessible name. */\n label: string;\n /** The chart in words, for screen readers; it is there before the chart draws, and on the server. */\n summary?: string;\n /**\n * The ECharts option, or a function of the theme's palette that returns it.\n * It is applied whole whenever it or the theme changes; an equal option\n * passed again (an inline object on a re-render) does not redraw.\n */\n option: ChartOption | ((palette: ChartPalette) => ChartOption);\n /** The chart's height: a number of pixels or any CSS length; 240 by default. It fills the width. */\n height?: number | string;\n /**\n * Loads ECharts in the browser: `import(\"echarts\")` by default, the whole\n * library. For a smaller bundle pass `() => import(\"./my-echarts\")`, a module\n * that registers only the charts you use with `echarts/core`.\n */\n loader?: () => Promise<ChartModule>;\n /** How ECharts draws: \"canvas\" (default) or \"svg\". Read once, when the chart is created. */\n renderer?: \"canvas\" | \"svg\";\n /** A click on an item: a bar, a point, a node. */\n onClick?: (params: ChartEventParams) => void;\n /** The ECharts instance, once it has drawn — for other events and actions. Called again if a theme change re-creates it. */\n onReady?: (chart: ChartInstance) => void;\n}\n\ninterface ChartState {\n module: ChartModule | null;\n instance: ChartInstance | null;\n themed: ChartPalette | null;\n announced: ChartInstance | null;\n /** The option last drawn, serialised; null forces the next draw. */\n drawn: string | null;\n pending: boolean;\n}\n\nconst cssLength = (value: number | string): string => (typeof value === \"number\" ? `${value}px` : value);\n\nconst loadECharts = (): Promise<ChartModule> => import(\"echarts\") as unknown as Promise<ChartModule>;\n\n// Functions (formatters) count by their source, so a changed formatter redraws.\nconst serialise = (option: ChartOption): string | null => {\n try {\n return JSON.stringify(option, (_key, value: unknown) => (typeof value === \"function\" ? String(value) : value));\n } catch {\n return null;\n }\n};\n\n/**\n * An ECharts chart in the theme's palette. On the server, and until ECharts\n * loads in the browser, a skeleton of the same size stands in its place, so\n * the page does not jump; the chart follows theme switches and its box's size.\n */\nexport const Chart = React.forwardRef<HTMLDivElement, ChartProps>(function Chart(\n { className, style, label, summary, option, height = 240, loader, renderer = \"canvas\", onClick, onReady, ...rest },\n ref\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const canvasRef = useRef<HTMLDivElement>(null);\n const [palette, setPalette] = useState<ChartPalette | null>(null);\n const [ready, setReady] = useState(false);\n const state = useRef<ChartState>({\n module: null,\n instance: null,\n themed: null,\n announced: null,\n drawn: null,\n pending: false,\n });\n const latest = useRef({ option, palette, loader, renderer, onClick, onReady });\n latest.current = { option, palette, loader, renderer, onClick, onReady };\n\n const setRoot = (element: HTMLDivElement | null): void => {\n rootRef.current = element;\n if (typeof ref === \"function\") ref(element);\n else if (ref) ref.current = element;\n };\n\n const hasSize = (): boolean => {\n const canvas = canvasRef.current;\n return Boolean(canvas && canvas.clientWidth > 0 && canvas.clientHeight > 0);\n };\n\n const create = (loaded: ChartModule, colours: ChartPalette): ChartInstance => {\n const created = loaded.init(canvasRef.current!, chartTheme(colours), { renderer: latest.current.renderer });\n created.on(\"click\", (params) => latest.current.onClick?.(params));\n state.current.themed = colours;\n state.current.drawn = null;\n return created;\n };\n\n // Not at zero size (a hidden tab, a collapsed panel): there the graph of\n // ECharts 6.1 inverts a degenerate matrix and throws. The option waits for\n // the chart to get a size, and a failed redraw is caught up on the next one.\n const draw = (): void => {\n const current = state.current;\n const colours = latest.current.palette;\n if (!current.instance || !colours) return;\n if (!hasSize()) {\n current.pending = true;\n return;\n }\n const source = latest.current.option;\n const next = typeof source === \"function\" ? source(colours) : source;\n const key = serialise(next);\n if (!current.pending && key !== null && key === current.drawn) return;\n current.pending = false;\n try {\n current.instance.setOption(next, { notMerge: true });\n current.drawn = key;\n } catch (error) {\n current.drawn = null;\n console.error(\"[smwb] Chart: the option did not draw.\", error);\n }\n };\n\n const retheme = (colours: ChartPalette): void => {\n const current = state.current;\n if (!current.instance || !current.module || (current.themed && samePalette(current.themed, colours))) return;\n if (typeof current.instance.setTheme === \"function\") {\n try {\n current.instance.setTheme(chartTheme(colours));\n } catch (error) {\n console.error(\"[smwb] Chart: the theme did not apply.\", error);\n }\n current.themed = colours;\n current.drawn = null;\n } else {\n current.instance.dispose();\n current.instance = create(current.module, colours);\n }\n };\n\n useEffect(() => {\n const root = rootRef.current!;\n const canvas = canvasRef.current!;\n const current = state.current;\n let disposed = false;\n\n const refresh = (): void => {\n const next = readChartPalette(root);\n setPalette((previous) => (previous && samePalette(previous, next) ? previous : next));\n };\n refresh();\n\n // The theme switches by an attribute on <html> (data-theme, a class) or\n // with the system setting.\n const themeObserver = new MutationObserver(() => requestAnimationFrame(refresh));\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"data-theme\", \"class\", \"style\"],\n });\n const media =\n typeof window.matchMedia === \"function\" ? window.matchMedia(\"(prefers-color-scheme: dark)\") : undefined;\n media?.addEventListener(\"change\", refresh);\n\n // The palette is read again here, not taken from mount: a theme set after\n // the chart mounted (a parent's effect runs after this one) would otherwise\n // show for a frame in the old colours.\n const start = (): void => {\n if (disposed || current.instance || !current.module || !hasSize()) return;\n const colours = readChartPalette(root);\n setPalette((previous) => (previous && samePalette(previous, colours) ? previous : colours));\n current.instance = create(current.module, colours);\n setReady(true);\n };\n\n const onResize = (): void => {\n if (!hasSize()) return;\n if (!current.instance) {\n start();\n return;\n }\n try {\n current.instance.resize();\n } catch {\n // It catches up on the next resize.\n }\n if (current.pending) draw();\n };\n // In the next frame, not in the observer's callback: drawing there resizes\n // what it observes, and the browser reports a ResizeObserver loop.\n let frame = 0;\n const resizeObserver =\n typeof ResizeObserver === \"function\"\n ? new ResizeObserver(() => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(onResize);\n })\n : undefined;\n resizeObserver?.observe(canvas);\n\n (latest.current.loader ?? loadECharts)().then(\n (loaded) => {\n current.module = loaded;\n start();\n },\n (error: unknown) => console.error(\"[smwb] Chart: ECharts did not load.\", error)\n );\n\n return () => {\n disposed = true;\n themeObserver.disconnect();\n media?.removeEventListener(\"change\", refresh);\n resizeObserver?.disconnect();\n cancelAnimationFrame(frame);\n current.instance?.dispose();\n current.instance = null;\n current.announced = null;\n current.drawn = null;\n // Effects that run again with the state kept (fast refresh, a hidden\n // <Activity>) create a new chart, and it must draw.\n setReady(false);\n };\n // The chart is set up once; later props are read through `latest`.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const current = state.current;\n if (!ready || !palette || !current.instance) return;\n retheme(palette);\n draw();\n if (current.instance && current.announced !== current.instance) {\n current.announced = current.instance;\n latest.current.onReady?.(current.instance);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ready, palette, option]);\n\n return (\n <div\n data-testid=\"chart\"\n {...rest}\n ref={setRoot}\n className={cn(\"smwb-chart\", className)}\n style={{ ...style, height: cssLength(height) }}\n >\n <div ref={canvasRef} className=\"smwb-chart__canvas\" role=\"img\" aria-label={label} />\n {!ready ? <Skeleton className=\"smwb-chart__skeleton\" variant=\"rounded\" width=\"100%\" height=\"100%\" /> : null}\n {summary ? <p className=\"smwb-chart__summary\">{summary}</p> : null}\n </div>\n );\n});\n\nexport default Chart;\n"],"names":["cssLength","value","loadECharts","serialise","option","_key","Chart","React","className","style","label","summary","height","loader","renderer","onClick","onReady","rest","ref","rootRef","useRef","canvasRef","palette","setPalette","useState","ready","setReady","state","latest","setRoot","element","hasSize","canvas","create","loaded","colours","created","chartTheme","params","_b","_a","draw","current","source","next","key","error","retheme","samePalette","useEffect","root","disposed","refresh","readChartPalette","previous","themeObserver","media","start","onResize","frame","resizeObserver","jsxs","cn","jsx","Skeleton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chart.js","sources":["../../../../src/components/dataDisplay/chart/chart.tsx"],"sourcesContent":["import React, { HTMLAttributes, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { Skeleton } from \"../../feedBack/skeleton\";\nimport { type ChartOption, type ChartPalette, chartTheme, readChartPalette, samePalette } from \"./chartTheme\";\n\n/** What an ECharts event hands its handler: the item under the pointer. */\nexport interface ChartEventParams {\n componentType?: string;\n seriesType?: string;\n seriesIndex?: number;\n seriesName?: string;\n name?: string;\n dataIndex?: number;\n data?: unknown;\n value?: unknown;\n [key: string]: unknown;\n}\n\n/** The part of an ECharts instance the chart uses; `onReady` hands over the instance itself. */\nexport interface ChartInstance {\n setOption(option: ChartOption, opts?: { notMerge?: boolean }): void;\n resize(): void;\n on(eventName: string, handler: (params: ChartEventParams) => void): void;\n dispose(): void;\n /** ECharts 6 switches the theme in place; with ECharts 5 the chart is created anew. */\n setTheme?(theme: object): void;\n}\n\n/** What `loader` resolves to: `echarts`, or `echarts/core` with the charts you use registered. */\nexport interface ChartModule {\n init(dom: HTMLElement, theme?: object | string | null, opts?: { renderer?: \"canvas\" | \"svg\" }): ChartInstance;\n}\n\nexport interface ChartProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onClick\"> {\n className?: string;\n /** What the chart shows: its accessible name. */\n label: string;\n /** The chart in words, for screen readers; it is there before the chart draws, and on the server. */\n summary?: string;\n /**\n * The ECharts option, or a function of the theme's palette that returns it.\n * It is applied whole whenever it or the theme changes; an equal option\n * passed again (an inline object on a re-render) does not redraw.\n */\n option: ChartOption | ((palette: ChartPalette) => ChartOption);\n /** The chart's height: a number of pixels or any CSS length; 240 by default. It fills the width. */\n height?: number | string;\n /**\n * Loads ECharts in the browser: `import(\"echarts\")` by default, the whole\n * library. For a smaller bundle pass `() => import(\"./my-echarts\")`, a module\n * that registers only the charts you use with `echarts/core`.\n */\n loader?: () => Promise<ChartModule>;\n /** How ECharts draws: \"canvas\" (default) or \"svg\". Read once, when the chart is created. */\n renderer?: \"canvas\" | \"svg\";\n /** A click on an item: a bar, a point, a node. */\n onClick?: (params: ChartEventParams) => void;\n /** The ECharts instance, once it has drawn — for other events and actions. Called again if a theme change re-creates it. */\n onReady?: (chart: ChartInstance) => void;\n /** Test id of the root `<div>`; `chart` unless given. */\n \"data-testid\"?: string;\n}\n\ninterface ChartState {\n module: ChartModule | null;\n instance: ChartInstance | null;\n themed: ChartPalette | null;\n announced: ChartInstance | null;\n /** The option last drawn, serialised; null forces the next draw. */\n drawn: string | null;\n pending: boolean;\n}\n\nconst cssLength = (value: number | string): string => (typeof value === \"number\" ? `${value}px` : value);\n\nconst loadECharts = (): Promise<ChartModule> => import(\"echarts\") as unknown as Promise<ChartModule>;\n\n// Functions (formatters) count by their source, so a changed formatter redraws.\nconst serialise = (option: ChartOption): string | null => {\n try {\n return JSON.stringify(option, (_key, value: unknown) => (typeof value === \"function\" ? String(value) : value));\n } catch {\n return null;\n }\n};\n\n/**\n * An ECharts chart in the theme's palette. On the server, and until ECharts\n * loads in the browser, a skeleton of the same size stands in its place, so\n * the page does not jump; the chart follows theme switches and its box's size.\n */\nexport const Chart = React.forwardRef<HTMLDivElement, ChartProps>(function Chart(\n {\n className,\n style,\n label,\n summary,\n option,\n height = 240,\n loader,\n renderer = \"canvas\",\n onClick,\n onReady,\n \"data-testid\": dataTestId = \"chart\",\n ...rest\n },\n ref\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const canvasRef = useRef<HTMLDivElement>(null);\n const [palette, setPalette] = useState<ChartPalette | null>(null);\n const [ready, setReady] = useState(false);\n const state = useRef<ChartState>({\n module: null,\n instance: null,\n themed: null,\n announced: null,\n drawn: null,\n pending: false,\n });\n const latest = useRef({ option, palette, loader, renderer, onClick, onReady });\n latest.current = { option, palette, loader, renderer, onClick, onReady };\n\n const setRoot = (element: HTMLDivElement | null): void => {\n rootRef.current = element;\n if (typeof ref === \"function\") ref(element);\n else if (ref) ref.current = element;\n };\n\n const hasSize = (): boolean => {\n const canvas = canvasRef.current;\n return Boolean(canvas && canvas.clientWidth > 0 && canvas.clientHeight > 0);\n };\n\n const create = (loaded: ChartModule, colours: ChartPalette): ChartInstance => {\n const created = loaded.init(canvasRef.current!, chartTheme(colours), { renderer: latest.current.renderer });\n created.on(\"click\", (params) => latest.current.onClick?.(params));\n state.current.themed = colours;\n state.current.drawn = null;\n return created;\n };\n\n // Not at zero size (a hidden tab, a collapsed panel): there the graph of\n // ECharts 6.1 inverts a degenerate matrix and throws. The option waits for\n // the chart to get a size, and a failed redraw is caught up on the next one.\n const draw = (): void => {\n const current = state.current;\n const colours = latest.current.palette;\n if (!current.instance || !colours) return;\n if (!hasSize()) {\n current.pending = true;\n return;\n }\n const source = latest.current.option;\n const next = typeof source === \"function\" ? source(colours) : source;\n const key = serialise(next);\n if (!current.pending && key !== null && key === current.drawn) return;\n current.pending = false;\n try {\n current.instance.setOption(next, { notMerge: true });\n current.drawn = key;\n } catch (error) {\n current.drawn = null;\n console.error(\"[smwb] Chart: the option did not draw.\", error);\n }\n };\n\n const retheme = (colours: ChartPalette): void => {\n const current = state.current;\n if (!current.instance || !current.module || (current.themed && samePalette(current.themed, colours))) return;\n if (typeof current.instance.setTheme === \"function\") {\n try {\n current.instance.setTheme(chartTheme(colours));\n } catch (error) {\n console.error(\"[smwb] Chart: the theme did not apply.\", error);\n }\n current.themed = colours;\n current.drawn = null;\n } else {\n current.instance.dispose();\n current.instance = create(current.module, colours);\n }\n };\n\n useEffect(() => {\n const root = rootRef.current!;\n const canvas = canvasRef.current!;\n const current = state.current;\n let disposed = false;\n\n const refresh = (): void => {\n const next = readChartPalette(root);\n setPalette((previous) => (previous && samePalette(previous, next) ? previous : next));\n };\n refresh();\n\n // The theme switches by an attribute on <html> (data-theme, a class) or\n // with the system setting.\n const themeObserver = new MutationObserver(() => requestAnimationFrame(refresh));\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"data-theme\", \"class\", \"style\"],\n });\n const media =\n typeof window.matchMedia === \"function\" ? window.matchMedia(\"(prefers-color-scheme: dark)\") : undefined;\n media?.addEventListener(\"change\", refresh);\n\n // The palette is read again here, not taken from mount: a theme set after\n // the chart mounted (a parent's effect runs after this one) would otherwise\n // show for a frame in the old colours.\n const start = (): void => {\n if (disposed || current.instance || !current.module || !hasSize()) return;\n const colours = readChartPalette(root);\n setPalette((previous) => (previous && samePalette(previous, colours) ? previous : colours));\n current.instance = create(current.module, colours);\n setReady(true);\n };\n\n const onResize = (): void => {\n if (!hasSize()) return;\n if (!current.instance) {\n start();\n return;\n }\n try {\n current.instance.resize();\n } catch {\n // It catches up on the next resize.\n }\n if (current.pending) draw();\n };\n // In the next frame, not in the observer's callback: drawing there resizes\n // what it observes, and the browser reports a ResizeObserver loop.\n let frame = 0;\n const resizeObserver =\n typeof ResizeObserver === \"function\"\n ? new ResizeObserver(() => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(onResize);\n })\n : undefined;\n resizeObserver?.observe(canvas);\n\n (latest.current.loader ?? loadECharts)().then(\n (loaded) => {\n current.module = loaded;\n start();\n },\n (error: unknown) => console.error(\"[smwb] Chart: ECharts did not load.\", error)\n );\n\n return () => {\n disposed = true;\n themeObserver.disconnect();\n media?.removeEventListener(\"change\", refresh);\n resizeObserver?.disconnect();\n cancelAnimationFrame(frame);\n current.instance?.dispose();\n current.instance = null;\n current.announced = null;\n current.drawn = null;\n // Effects that run again with the state kept (fast refresh, a hidden\n // <Activity>) create a new chart, and it must draw.\n setReady(false);\n };\n // The chart is set up once; later props are read through `latest`.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const current = state.current;\n if (!ready || !palette || !current.instance) return;\n retheme(palette);\n draw();\n if (current.instance && current.announced !== current.instance) {\n current.announced = current.instance;\n latest.current.onReady?.(current.instance);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ready, palette, option]);\n\n return (\n <div\n data-testid={dataTestId}\n {...rest}\n ref={setRoot}\n className={cn(\"smwb-chart\", className)}\n style={{ ...style, height: cssLength(height) }}\n >\n <div ref={canvasRef} className=\"smwb-chart__canvas\" role=\"img\" aria-label={label} />\n {!ready ? <Skeleton className=\"smwb-chart__skeleton\" variant=\"rounded\" width=\"100%\" height=\"100%\" /> : null}\n {summary ? <p className=\"smwb-chart__summary\">{summary}</p> : null}\n </div>\n );\n});\n\nexport default Chart;\n"],"names":["cssLength","value","loadECharts","serialise","option","_key","Chart","React","className","style","label","summary","height","loader","renderer","onClick","onReady","dataTestId","rest","ref","rootRef","useRef","canvasRef","palette","setPalette","useState","ready","setReady","state","latest","setRoot","element","hasSize","canvas","create","loaded","colours","created","chartTheme","params","_b","_a","draw","current","source","next","key","error","retheme","samePalette","useEffect","root","disposed","refresh","readChartPalette","previous","themeObserver","media","start","onResize","frame","resizeObserver","jsxs","cn","jsx","Skeleton"],"mappings":"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"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { PropsWithChildren, ReactNode } from "react";
|
|
2
2
|
import type { Accept } from "./useChatFileUpload";
|
|
3
|
+
import type { ComposerProps } from "../../inputs/composer/composer";
|
|
3
4
|
import { ChatMessagesProps } from "./chatMessages";
|
|
4
5
|
import { ChatAnchor, ChatLayoutMode, ChatMessage, ChatMessageRenderContext, ChatThemeMode } from "./types";
|
|
6
|
+
/**
|
|
7
|
+
* Props for the `Composer` Chat draws as its footer. The props Chat owns itself — `onSendMessage` (the composer's
|
|
8
|
+
* `onSend`), `busy`, `onStop`, `composerPlaceholder` (`placeholder`), `composerDisabled` (`disabled`), the file upload
|
|
9
|
+
* props (`onAttach`, `accept`, `multiple`, `maxFiles`) and `dropTarget` (always `false`: the Chat shell is the drop
|
|
10
|
+
* target) — are left out, Chat passes them and does not let a caller override them.
|
|
11
|
+
*/
|
|
12
|
+
export type ChatFooterComposerProps = Omit<ComposerProps, "onSend" | "busy" | "onStop" | "disabled" | "placeholder" | "onAttach" | "accept" | "multiple" | "maxFiles" | "dropTarget">;
|
|
5
13
|
export interface ChatProps extends PropsWithChildren, Omit<ChatMessageRenderContext, "showAvatars" | "showAttachments"> {
|
|
6
14
|
className?: string;
|
|
7
15
|
messages: ChatMessage[];
|
|
@@ -26,9 +34,43 @@ export interface ChatProps extends PropsWithChildren, Omit<ChatMessageRenderCont
|
|
|
26
34
|
onLoadMore?: () => void | Promise<void>;
|
|
27
35
|
hasMore?: boolean;
|
|
28
36
|
onSendMessage?: (text: string) => void | Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* The agent is replying: the composer's send button turns into Stop and calls `onStop`, the keys do not send, the
|
|
39
|
+
* text stays editable. Not the same as `loading` (the message list skeleton). The default composer only.
|
|
40
|
+
*/
|
|
41
|
+
busy?: boolean;
|
|
42
|
+
/** Called when Stop is pressed while `busy` (and not `composerDisabled`). The default composer only. */
|
|
43
|
+
onStop?: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* More props for the built-in `Composer`: `toolbar`, `attachments`, `maxLength`, `counter`, `minRows`, `maxRows`,
|
|
46
|
+
* `layout`, `sendKey` (default here `"enter"`), `value`/`defaultValue`/`onValueChange`, `clearOnSend`, `autoFocus`,
|
|
47
|
+
* `inputRef`, `aria-*`, `sendLabel`, `stopLabel`, `attachLabel`, `className`, `data-*`, … Chat's own props
|
|
48
|
+
* (`onSendMessage`, `busy`, `onStop`, `composerPlaceholder`, `composerDisabled`, the file upload props) win.
|
|
49
|
+
*/
|
|
50
|
+
composerProps?: ChatFooterComposerProps;
|
|
51
|
+
/**
|
|
52
|
+
* Deprecated: draws the old `ChatComposer` (Enter sends, TextField DOM, `chat-composer*` test ids) instead of the
|
|
53
|
+
* built-in `Composer`. Kept for the migration and removed with `ChatComposer` in the next major; `busy`, `onStop`
|
|
54
|
+
* and `composerProps` are ignored in this mode.
|
|
55
|
+
*
|
|
56
|
+
* @deprecated Migrate to the default `Composer`; see the README section "Migrating from ChatComposer".
|
|
57
|
+
*/
|
|
58
|
+
legacyComposer?: boolean;
|
|
29
59
|
composerPlaceholder?: string;
|
|
30
60
|
composerDisabled?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Deprecated: works with `legacyComposer` only — the built-in `Composer` always inserts a newline on Shift+Enter.
|
|
63
|
+
* Pass it together with `legacyComposer` until that is removed.
|
|
64
|
+
*
|
|
65
|
+
* @deprecated Use `legacyComposer`; the default `Composer` has no equivalent flag.
|
|
66
|
+
*/
|
|
31
67
|
composerShiftEnterNewline?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Deprecated: works with `legacyComposer` only — with the built-in `Composer` Ctrl/⌘+Enter sends. Pass it together
|
|
70
|
+
* with `legacyComposer` until that is removed.
|
|
71
|
+
*
|
|
72
|
+
* @deprecated Use `legacyComposer`; the default `Composer` has no equivalent flag.
|
|
73
|
+
*/
|
|
32
74
|
composerCtrlEnterNewline?: boolean;
|
|
33
75
|
fileUpload?: boolean;
|
|
34
76
|
onUploadFiles?: (files: File[]) => void | Promise<void>;
|
|
@@ -46,5 +88,5 @@ export interface ChatProps extends PropsWithChildren, Omit<ChatMessageRenderCont
|
|
|
46
88
|
renderStatus?: ChatMessageRenderContext["renderStatus"];
|
|
47
89
|
showCloseButton?: boolean;
|
|
48
90
|
}
|
|
49
|
-
export declare function Chat({ className, messages, showAvatars, showAttachments, headerTitle, headerSubtitle, headerActions, footer, children, anchor, themeMode, allowedLayouts: allowedLayoutsProp, layout: layoutProp, defaultLayout, onLayoutChange, open: openProp, defaultOpen, onOpenChange, floatingTrigger, triggerIcon, triggerLabel, onLoadMore, hasMore, onSendMessage, composerPlaceholder, composerDisabled, composerShiftEnterNewline, composerCtrlEnterNewline, fileUpload, onUploadFiles, fileUploadAccept, fileUploadMaxFiles, attachAriaLabel, loading, loadingMore, loadingSkeletonCount, renderMessage, embedded, overlayContext, showStatus, statusIcons, renderStatus, showCloseButton, }: ChatProps): import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
export declare function Chat({ className, messages, showAvatars, showAttachments, headerTitle, headerSubtitle, headerActions, footer, children, anchor, themeMode, allowedLayouts: allowedLayoutsProp, layout: layoutProp, defaultLayout, onLayoutChange, open: openProp, defaultOpen, onOpenChange, floatingTrigger, triggerIcon, triggerLabel, onLoadMore, hasMore, onSendMessage, busy, onStop, composerProps, legacyComposer, composerPlaceholder, composerDisabled, composerShiftEnterNewline, composerCtrlEnterNewline, fileUpload, onUploadFiles, fileUploadAccept, fileUploadMaxFiles, attachAriaLabel, loading, loadingMore, loadingSkeletonCount, renderMessage, embedded, overlayContext, showStatus, statusIcons, renderStatus, showCloseButton, }: ChatProps): import("react/jsx-runtime").JSX.Element;
|
|
50
92
|
export default Chat;
|