@smwb/ui-solid 0.12.1 → 0.14.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 +638 -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/tokens.entry.css +1 -1
- package/dist/components/base/animateHeight/animateHeight.js +41 -42
- package/dist/components/base/animateHeight/animateHeight.js.map +1 -1
- package/dist/components/base/icon/icon.d.ts +6 -2
- package/dist/components/base/icon/icon.js +41 -41
- 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 +46 -34
- 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 +37 -33
- package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/components/dataDisplay/card/card.d.ts +32 -1
- package/dist/components/dataDisplay/card/card.js +47 -34
- package/dist/components/dataDisplay/card/card.js.map +1 -1
- package/dist/components/dataDisplay/carousel/carousel.js +92 -88
- package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
- package/dist/components/dataDisplay/chat/chat.d.ts +42 -0
- package/dist/components/dataDisplay/chat/chat.js +116 -57
- 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 +21 -19
- package/dist/components/dataDisplay/chat/chatComposer.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatIconButton.js +23 -13
- package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatLayout.d.ts +2 -0
- package/dist/components/dataDisplay/chat/chatLayout.js +33 -29
- package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +2 -0
- package/dist/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
- package/dist/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -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 +32 -0
- package/dist/components/dataDisplay/chip/chip.js +104 -63
- package/dist/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/components/dataDisplay/chipGroup/chipGroup.js +44 -39
- 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 +284 -0
- package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
- package/dist/components/dataDisplay/dagView/dagView.d.ts +151 -0
- package/dist/components/dataDisplay/dagView/dagView.js +503 -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 +161 -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 +20 -24
- package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/components/dataDisplay/diffStat/diffStat.d.ts +55 -0
- package/dist/components/dataDisplay/diffStat/diffStat.js +70 -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 +114 -81
- 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 +71 -61
- 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 +41 -0
- package/dist/components/dataDisplay/kbd/kbd.js +47 -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 +70 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
- package/dist/components/dataDisplay/lazyImage/lazyImage.js +14 -12
- 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 +16 -12
- 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 +58 -19
- 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 +15 -13
- 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 +12 -10
- 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 +30 -0
- package/dist/components/dataDisplay/qrCode/qrCode.js +88 -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 +41 -43
- 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 +31 -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 +75 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.js +361 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
- package/dist/components/dataDisplay/table/table.d.ts +10 -1
- package/dist/components/dataDisplay/table/table.js +46 -22
- package/dist/components/dataDisplay/table/table.js.map +1 -1
- package/dist/components/dataDisplay/table/tableBody.js +25 -12
- 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 +15 -14
- package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableColumns.d.ts +146 -0
- package/dist/components/dataDisplay/table/tableColumns.js +254 -0
- package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
- package/dist/components/dataDisplay/table/tableEntities.d.ts +4 -0
- package/dist/components/dataDisplay/table/tableEntities.js +6 -0
- package/dist/components/dataDisplay/table/tableEntities.js.map +1 -0
- package/dist/components/dataDisplay/table/tableHead.js +29 -11
- package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
- package/dist/components/dataDisplay/table/tableHeadCell.d.ts +23 -1
- package/dist/components/dataDisplay/table/tableHeadCell.js +51 -26
- package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableHtmlText.d.ts +8 -0
- package/dist/components/dataDisplay/table/tableHtmlText.js +121 -0
- package/dist/components/dataDisplay/table/tableHtmlText.js.map +1 -0
- package/dist/components/dataDisplay/table/tableRow.d.ts +2 -0
- package/dist/components/dataDisplay/table/tableRow.js +28 -13
- 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 +86 -58
- package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/components/dataDisplay/treeView/treeView.d.ts +22 -0
- package/dist/components/dataDisplay/treeView/treeView.js +164 -96
- package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/components/dataDisplay/typography/typography.js +22 -26
- package/dist/components/dataDisplay/typography/typography.js.map +1 -1
- package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
- package/dist/components/feedBack/emptyState/emptyState.js +20 -16
- 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 +17 -13
- package/dist/components/feedBack/message/message.js.map +1 -1
- package/dist/components/feedBack/modal/modal.d.ts +9 -0
- package/dist/components/feedBack/modal/modal.js +71 -53
- 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 +43 -35
- package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/components/feedBack/snackbar/snackbar.js +24 -20
- 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 +65 -41
- package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/components/inputs/button/button.d.ts +14 -0
- package/dist/components/inputs/button/button.js +71 -36
- 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 +14 -10
- 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 +59 -36
- package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/components/inputs/composer/composer.d.ts +148 -0
- package/dist/components/inputs/composer/composer.js +276 -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 +18 -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 +108 -97
- package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerActionLabel.js +19 -17
- package/dist/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerDay.js +41 -25
- package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerIconButton.js +24 -14
- package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/components/inputs/floatingButton/floatingButton.js +26 -16
- 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 +48 -34
- package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/components/inputs/rating/rating.d.ts +9 -0
- package/dist/components/inputs/rating/rating.js +74 -53
- package/dist/components/inputs/rating/rating.js.map +1 -1
- package/dist/components/inputs/selectField/dropdownMenu.d.ts +21 -1
- package/dist/components/inputs/selectField/dropdownMenu.js +268 -143
- 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 +37 -0
- package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
- package/dist/components/inputs/selectField/selectField.d.ts +32 -1
- package/dist/components/inputs/selectField/selectField.js +297 -126
- package/dist/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/components/inputs/slider/slider.d.ts +25 -3
- package/dist/components/inputs/slider/slider.js +320 -197
- package/dist/components/inputs/slider/slider.js.map +1 -1
- package/dist/components/inputs/textField/textField.d.ts +9 -1
- package/dist/components/inputs/textField/textField.js +104 -51
- package/dist/components/inputs/textField/textField.js.map +1 -1
- package/dist/components/inputs/textField/textFieldWrapper.d.ts +14 -0
- package/dist/components/inputs/textField/textFieldWrapper.js +52 -45
- package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/components/inputs/timePicker/timePicker.js +73 -62
- 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 +43 -31
- 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 +32 -27
- 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 +32 -30
- 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 +22 -20
- 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 +171 -168
- package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/components/layout/grid/grid.d.ts +8 -0
- package/dist/components/layout/grid/grid.js +52 -44
- 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 +14 -12
- 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 +23 -21
- 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 +38 -36
- 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 +92 -76
- 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 +26 -24
- 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 +102 -0
- package/dist/components/layout/tabGroups/tabGroups.js +895 -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 +192 -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 +480 -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 +68 -28
- package/dist/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/components/navigation/bottomBar/bottomBar.js +125 -120
- 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 +18 -14
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/navigation/commandPalette/commandPalette.d.ts +126 -0
- package/dist/components/navigation/commandPalette/commandPalette.js +457 -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 +15 -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 +6 -0
- package/dist/components/navigation/menu/menu.d.ts +6 -0
- package/dist/components/navigation/menu/menu.js.map +1 -1
- package/dist/components/navigation/menu/menuComponent.js +12 -23
- package/dist/components/navigation/menu/menuComponent.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 +54 -46
- 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 +58 -33
- package/dist/components/navigation/menu/menuItem.js.map +1 -1
- package/dist/components/navigation/menu/menuList.d.ts +4 -0
- package/dist/components/navigation/menu/menuList.js +34 -16
- package/dist/components/navigation/menu/menuList.js.map +1 -1
- package/dist/components/navigation/menu/menuSubmenu.d.ts +8 -1
- package/dist/components/navigation/menu/menuSubmenu.js +58 -38
- 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 +28 -24
- 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 +37 -33
- 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 +46 -42
- 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 +89 -2
- package/dist/components/navigation/tabs/tab/tab.js +174 -43
- package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +20 -0
- package/dist/components/navigation/tabs/tabPanel/tabPanel.js +34 -0
- package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
- package/dist/components/navigation/tabs/tabs.d.ts +79 -2
- package/dist/components/navigation/tabs/tabs.js +389 -147
- 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 +36 -4
- package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
- package/dist/connects/rt/table/table.d.ts +16 -1
- package/dist/headless/components/base/animateHeight/animateHeight.js +41 -42
- package/dist/headless/components/base/animateHeight/animateHeight.js.map +1 -1
- package/dist/headless/components/base/icon/icon.js +40 -40
- package/dist/headless/components/base/icon/icon.js.map +1 -1
- package/dist/headless/components/base/ripple/ripple.js +46 -34
- package/dist/headless/components/base/ripple/ripple.js.map +1 -1
- package/dist/headless/components/dataDisplay/avatar/avatar.js +37 -33
- package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/headless/components/dataDisplay/card/card.js +44 -31
- package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
- package/dist/headless/components/dataDisplay/carousel/carousel.js +102 -98
- package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chat.js +116 -57
- package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatComposer.js +21 -19
- package/dist/headless/components/dataDisplay/chat/chatComposer.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatIconButton.js +23 -13
- package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatLayout.js +33 -29
- package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
- package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/utils.js.map +1 -1
- package/dist/headless/components/dataDisplay/chip/chip.js +104 -63
- package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +44 -39
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
- package/dist/headless/components/dataDisplay/dagView/dagLayout.js +284 -0
- package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
- package/dist/headless/components/dataDisplay/dagView/dagView.js +501 -0
- package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
- package/dist/headless/components/dataDisplay/dagView/panZoom.js +161 -0
- package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +15 -19
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/headless/components/dataDisplay/diffStat/diffStat.js +68 -0
- package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/headless/components/dataDisplay/kanban/kanban.js +71 -61
- package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
- package/dist/headless/components/dataDisplay/kbd/kbd.js +45 -0
- package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
- package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +70 -0
- package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +14 -12
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/headless/components/dataDisplay/list/list.js +16 -12
- package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
- package/dist/headless/components/dataDisplay/list/listItem.js +58 -19
- package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
- package/dist/headless/components/dataDisplay/meter/meter.js +14 -12
- package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
- package/dist/headless/components/dataDisplay/personChip/personChip.js +12 -10
- package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
- package/dist/headless/components/dataDisplay/qrCode/qrCode.js +86 -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 +43 -45
- package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
- package/dist/headless/components/dataDisplay/statusDot/statusDot.js +29 -0
- package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
- package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +359 -0
- package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/table.js +47 -23
- package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableBody.js +25 -12
- package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableCell.js +15 -14
- package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableColumns.js +254 -0
- package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableEntities.js +6 -0
- package/dist/headless/components/dataDisplay/table/tableEntities.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableHead.js +29 -11
- package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js +51 -26
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableHtmlText.js +121 -0
- package/dist/headless/components/dataDisplay/table/tableHtmlText.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableRow.js +28 -13
- package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +86 -58
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/headless/components/dataDisplay/treeView/treeView.js +164 -96
- package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/headless/components/dataDisplay/typography/typography.js +21 -25
- package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
- package/dist/headless/components/feedBack/emptyState/emptyState.js +9 -5
- package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
- package/dist/headless/components/feedBack/message/message.js +17 -13
- package/dist/headless/components/feedBack/message/message.js.map +1 -1
- package/dist/headless/components/feedBack/modal/modal.js +71 -53
- package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
- package/dist/headless/components/feedBack/skeleton/skeleton.js +43 -35
- package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/headless/components/feedBack/snackbar/snackbar.js +30 -26
- package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
- package/dist/headless/components/feedBack/tooltip/tooltip.js +63 -39
- package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/headless/components/inputs/button/button.js +71 -36
- package/dist/headless/components/inputs/button/button.js.map +1 -1
- package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +22 -18
- package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
- package/dist/headless/components/inputs/checkbox/checkbox.js +59 -36
- package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/headless/components/inputs/composer/composer.js +274 -0
- package/dist/headless/components/inputs/composer/composer.js.map +1 -0
- package/dist/headless/components/inputs/composer/composerFiles.js +18 -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 +106 -95
- package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js +19 -17
- package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerDay.js +41 -25
- package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +24 -14
- package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/headless/components/inputs/floatingButton/floatingButton.js +25 -15
- package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
- package/dist/headless/components/inputs/radioButton/radioButton.js +48 -34
- package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/headless/components/inputs/rating/rating.js +74 -53
- package/dist/headless/components/inputs/rating/rating.js.map +1 -1
- package/dist/headless/components/inputs/selectField/dropdownMenu.js +268 -143
- package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/headless/components/inputs/selectField/optionNavigation.js +37 -0
- package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
- package/dist/headless/components/inputs/selectField/selectField.js +297 -126
- package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/headless/components/inputs/slider/slider.js +320 -197
- package/dist/headless/components/inputs/slider/slider.js.map +1 -1
- package/dist/headless/components/inputs/textField/textField.js +104 -51
- package/dist/headless/components/inputs/textField/textField.js.map +1 -1
- package/dist/headless/components/inputs/textField/textFieldWrapper.js +52 -45
- package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/headless/components/inputs/timePicker/timePicker.js +74 -63
- package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/headless/components/inputs/toggle/toggle.js +42 -30
- package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
- package/dist/headless/components/inputs/valueSlider/valueSlider.js +33 -28
- package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/headless/components/layout/appLayout/appLayout.js +29 -27
- package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/headless/components/layout/divider/divider.js +19 -17
- package/dist/headless/components/layout/divider/divider.js.map +1 -1
- package/dist/headless/components/layout/floatingWindow/floatingWindow.js +185 -182
- package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/headless/components/layout/grid/grid.js +54 -46
- package/dist/headless/components/layout/grid/grid.js.map +1 -1
- package/dist/headless/components/layout/page/page.js +12 -10
- package/dist/headless/components/layout/page/page.js.map +1 -1
- package/dist/headless/components/layout/pageHeader/pageHeader.js +22 -20
- package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js +39 -37
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
- package/dist/headless/components/layout/sheet/sheet.js +101 -85
- package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
- package/dist/headless/components/layout/stack/stack.js +23 -21
- package/dist/headless/components/layout/stack/stack.js.map +1 -1
- package/dist/headless/components/layout/tabGroups/tabGroups.js +893 -0
- package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +192 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +480 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
- package/dist/headless/components/navigation/appBar/appBar.js +68 -28
- package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/headless/components/navigation/bottomBar/bottomBar.js +125 -120
- package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +13 -9
- package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/headless/components/navigation/commandPalette/commandPalette.js +455 -0
- package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +15 -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/menuComponent.js +12 -23
- package/dist/headless/components/navigation/menu/menuComponent.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuFloating.js +54 -46
- package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuItem.js +58 -33
- package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuList.js +34 -16
- package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuSubmenu.js +58 -38
- package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
- package/dist/headless/components/navigation/pagination/pagination.js +23 -19
- package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
- package/dist/headless/components/navigation/sidebar/sidebar.js +39 -35
- package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/components/navigation/stepper/stepper.js +38 -34
- package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tab/tab.js +175 -44
- package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +32 -0
- package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
- package/dist/headless/components/navigation/tabs/tabs.js +389 -147
- 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.map +1 -1
- package/dist/headless/index.js +405 -363
- package/dist/headless/index.js.map +1 -1
- package/dist/headless/primitives/createDismissOnEscape.js +14 -0
- package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
- package/dist/headless/primitives/createFocusTrap.js +17 -16
- package/dist/headless/primitives/createFocusTrap.js.map +1 -1
- package/dist/headless/primitives/createHelperText.js +14 -0
- package/dist/headless/primitives/createHelperText.js.map +1 -0
- package/dist/headless/primitives/createKeyboardShortcut.js +16 -0
- package/dist/headless/primitives/createKeyboardShortcut.js.map +1 -0
- package/dist/headless/primitives/mergeStyle.js +9 -0
- package/dist/headless/primitives/mergeStyle.js.map +1 -0
- package/dist/headless/primitives/overlayLayer.js +14 -7
- package/dist/headless/primitives/overlayLayer.js.map +1 -1
- package/dist/headless/primitives/restoreFocus.js +10 -0
- package/dist/headless/primitives/restoreFocus.js.map +1 -0
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
- package/dist/headless/source/components/base/icon/icon.jsx +10 -12
- package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
- package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
- package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
- package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
- package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx +38 -4
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/index.js.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/utils.js.map +2 -2
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
- package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
- package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +648 -0
- package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
- package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
- package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
- package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx +76 -0
- package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/diffStat/index.js +19 -0
- package/dist/headless/source/components/dataDisplay/diffStat/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
- package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/kbd/index.js +9 -0
- package/dist/headless/source/components/dataDisplay/kbd/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx +48 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
- package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx +47 -16
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
- package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
- package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/qrCode/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/qrCode/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx +94 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
- package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/statusDot/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/statusDot/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx +28 -0
- package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/index.js +15 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx +450 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
- package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
- package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
- package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
- package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +127 -39
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
- package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
- package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/modal/modal.jsx +39 -6
- package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/headless/source/components/inputs/button/button.jsx +14 -5
- package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
- package/dist/headless/source/components/inputs/composer/composer.jsx +319 -0
- package/dist/headless/source/components/inputs/composer/composer.jsx.map +1 -0
- package/dist/headless/source/components/inputs/composer/composerFiles.js +27 -0
- package/dist/headless/source/components/inputs/composer/composerFiles.js.map +7 -0
- package/dist/headless/source/components/inputs/composer/composerKeys.js +11 -0
- package/dist/headless/source/components/inputs/composer/composerKeys.js.map +7 -0
- package/dist/headless/source/components/inputs/composer/index.js +5 -0
- package/dist/headless/source/components/inputs/composer/index.js.map +7 -0
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
- package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
- package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
- package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
- package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
- package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
- package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
- package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
- package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
- package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
- package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
- package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
- package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
- package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
- package/dist/headless/source/components/layout/page/page.jsx +10 -2
- package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
- package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
- package/dist/headless/source/components/layout/sheet/sheet.jsx +39 -19
- package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
- package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/headless/source/components/layout/tabGroups/index.js +8 -0
- package/dist/headless/source/components/layout/tabGroups/index.js.map +7 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx +1117 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
- package/dist/headless/source/components/navigation/appBar/appBar.jsx +30 -5
- package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
- package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx +506 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
- package/dist/headless/source/components/navigation/commandPalette/index.js +11 -0
- package/dist/headless/source/components/navigation/commandPalette/index.js.map +7 -0
- package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
- package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
- package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
- package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
- package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +6 -3
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
- package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/index.js +2 -0
- package/dist/headless/source/components/navigation/tabs/index.js.map +2 -2
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +144 -21
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx +28 -0
- package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
- package/dist/headless/source/components/navigation/tabs/tabs.jsx +392 -20
- package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabs.utils.js +18 -0
- package/dist/headless/source/components/navigation/tabs/tabs.utils.js.map +7 -0
- package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
- package/dist/headless/source/connects/rt/table/table.jsx +7 -2
- package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
- package/dist/headless/source/index.js +44 -1
- package/dist/headless/source/index.js.map +2 -2
- package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
- package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
- package/dist/headless/source/primitives/createFocusTrap.js +9 -3
- package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
- package/dist/headless/source/primitives/createHelperText.js +16 -0
- package/dist/headless/source/primitives/createHelperText.js.map +7 -0
- package/dist/headless/source/primitives/createKeyboardShortcut.js +23 -0
- package/dist/headless/source/primitives/createKeyboardShortcut.js.map +7 -0
- package/dist/headless/source/primitives/mergeStyle.js +15 -0
- package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
- package/dist/headless/source/primitives/overlayLayer.js +10 -2
- package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
- package/dist/headless/source/primitives/restoreFocus.js +14 -0
- package/dist/headless/source/primitives/restoreFocus.js.map +7 -0
- package/dist/headless/source/utils/controlProps.js +22 -0
- package/dist/headless/source/utils/controlProps.js.map +7 -0
- package/dist/headless/source/utils/keyboardShortcut.js +74 -0
- package/dist/headless/source/utils/keyboardShortcut.js.map +7 -0
- package/dist/headless/source/utils/linkAttrs.js +16 -0
- package/dist/headless/source/utils/linkAttrs.js.map +7 -0
- package/dist/headless/source/utils/ownClick.js +41 -0
- package/dist/headless/source/utils/ownClick.js.map +7 -0
- package/dist/headless/utils/controlProps.js +20 -0
- package/dist/headless/utils/controlProps.js.map +1 -0
- package/dist/headless/utils/keyboardShortcut.js +48 -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/ownClick.js +39 -0
- package/dist/headless/utils/ownClick.js.map +1 -0
- package/dist/index.d.ts +26 -3
- package/dist/index.js +405 -363
- package/dist/index.js.map +1 -1
- package/dist/primitives/createDismissOnEscape.d.ts +12 -0
- package/dist/primitives/createDismissOnEscape.js +14 -0
- package/dist/primitives/createDismissOnEscape.js.map +1 -0
- package/dist/primitives/createFocusTrap.d.ts +7 -0
- package/dist/primitives/createFocusTrap.js +17 -16
- package/dist/primitives/createFocusTrap.js.map +1 -1
- package/dist/primitives/createHelperText.d.ts +26 -0
- package/dist/primitives/createHelperText.js +14 -0
- package/dist/primitives/createHelperText.js.map +1 -0
- package/dist/primitives/createKeyboardShortcut.d.ts +23 -0
- package/dist/primitives/createKeyboardShortcut.js +16 -0
- package/dist/primitives/createKeyboardShortcut.js.map +1 -0
- package/dist/primitives/mergeStyle.d.ts +19 -0
- package/dist/primitives/mergeStyle.js +9 -0
- package/dist/primitives/mergeStyle.js.map +1 -0
- package/dist/primitives/overlayLayer.d.ts +15 -3
- package/dist/primitives/overlayLayer.js +14 -7
- package/dist/primitives/overlayLayer.js.map +1 -1
- package/dist/primitives/restoreFocus.d.ts +8 -0
- package/dist/primitives/restoreFocus.js +10 -0
- package/dist/primitives/restoreFocus.js.map +1 -0
- package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
- package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
- package/dist/source/components/base/icon/icon.jsx +10 -12
- package/dist/source/components/base/icon/icon.jsx.map +1 -1
- package/dist/source/components/base/ripple/ripple.jsx +16 -4
- package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
- package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
- package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/source/components/dataDisplay/card/card.jsx +31 -12
- package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
- package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
- package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chat.jsx +38 -4
- package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/index.js.map +1 -1
- package/dist/source/components/dataDisplay/chat/utils.js.map +2 -2
- package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
- package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
- package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
- package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
- package/dist/source/components/dataDisplay/dagView/dagView.jsx +650 -0
- package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
- package/dist/source/components/dataDisplay/dagView/index.js +10 -0
- package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
- package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
- package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
- package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
- package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
- package/dist/source/components/dataDisplay/diffStat/diffStat.jsx +78 -0
- package/dist/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
- package/dist/source/components/dataDisplay/diffStat/index.js +19 -0
- package/dist/source/components/dataDisplay/diffStat/index.js.map +7 -0
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
- package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
- package/dist/source/components/dataDisplay/kbd/index.js +9 -0
- package/dist/source/components/dataDisplay/kbd/index.js.map +7 -0
- package/dist/source/components/dataDisplay/kbd/kbd.jsx +50 -0
- package/dist/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
- package/dist/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
- package/dist/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
- package/dist/source/components/dataDisplay/list/list.jsx +3 -3
- package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/source/components/dataDisplay/list/listItem.jsx +47 -16
- package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
- package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
- package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
- package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
- package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
- package/dist/source/components/dataDisplay/qrCode/index.js +6 -0
- package/dist/source/components/dataDisplay/qrCode/index.js.map +7 -0
- package/dist/source/components/dataDisplay/qrCode/qrCode.jsx +96 -0
- package/dist/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
- package/dist/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
- package/dist/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
- package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
- package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
- package/dist/source/components/dataDisplay/statusDot/index.js +6 -0
- package/dist/source/components/dataDisplay/statusDot/index.js.map +7 -0
- package/dist/source/components/dataDisplay/statusDot/statusDot.jsx +30 -0
- package/dist/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
- package/dist/source/components/dataDisplay/swimlanes/index.js +15 -0
- package/dist/source/components/dataDisplay/swimlanes/index.js.map +7 -0
- package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx +452 -0
- package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/table.jsx +18 -1
- package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
- package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
- package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
- package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
- package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
- package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
- package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
- package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
- package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
- package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
- package/dist/source/components/dataDisplay/treeView/treeView.jsx +127 -39
- package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
- package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
- package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
- package/dist/source/components/feedBack/message/message.jsx +5 -4
- package/dist/source/components/feedBack/message/message.jsx.map +1 -1
- package/dist/source/components/feedBack/modal/modal.jsx +39 -6
- package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
- package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
- package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
- package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
- package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
- package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/source/components/inputs/button/button.jsx +14 -5
- package/dist/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
- package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
- package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
- package/dist/source/components/inputs/composer/composer.jsx +321 -0
- package/dist/source/components/inputs/composer/composer.jsx.map +1 -0
- package/dist/source/components/inputs/composer/composerFiles.js +27 -0
- package/dist/source/components/inputs/composer/composerFiles.js.map +7 -0
- package/dist/source/components/inputs/composer/composerKeys.js +11 -0
- package/dist/source/components/inputs/composer/composerKeys.js.map +7 -0
- package/dist/source/components/inputs/composer/index.js +5 -0
- package/dist/source/components/inputs/composer/index.js.map +7 -0
- package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
- package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
- package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
- package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
- package/dist/source/components/inputs/rating/rating.jsx +49 -20
- package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
- package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
- package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
- package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
- package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/source/components/inputs/slider/slider.jsx +89 -18
- package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textField.jsx +47 -9
- package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
- package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
- package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
- package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
- package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
- package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
- package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/source/components/layout/divider/divider.jsx +6 -5
- package/dist/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
- package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
- package/dist/source/components/layout/grid/grid.jsx +20 -8
- package/dist/source/components/layout/grid/grid.jsx.map +1 -1
- package/dist/source/components/layout/page/page.jsx +10 -2
- package/dist/source/components/layout/page/page.jsx.map +1 -1
- package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
- package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
- package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
- package/dist/source/components/layout/sheet/sheet.jsx +39 -19
- package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/source/components/layout/stack/stack.jsx +15 -11
- package/dist/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/source/components/layout/tabGroups/index.js +8 -0
- package/dist/source/components/layout/tabGroups/index.js.map +7 -0
- package/dist/source/components/layout/tabGroups/tabGroups.jsx +1119 -0
- package/dist/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
- package/dist/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
- package/dist/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
- package/dist/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
- package/dist/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
- package/dist/source/components/navigation/appBar/appBar.jsx +30 -5
- package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
- package/dist/source/components/navigation/commandPalette/commandPalette.jsx +508 -0
- package/dist/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
- package/dist/source/components/navigation/commandPalette/index.js +11 -0
- package/dist/source/components/navigation/commandPalette/index.js.map +7 -0
- package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
- package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
- package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
- package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
- package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuList.jsx +19 -7
- package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
- package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
- package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
- package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
- package/dist/source/components/navigation/sidebar/sidebar.jsx +6 -3
- package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
- package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/index.js +2 -0
- package/dist/source/components/navigation/tabs/index.js.map +2 -2
- package/dist/source/components/navigation/tabs/tab/tab.jsx +144 -21
- package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx +30 -0
- package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
- package/dist/source/components/navigation/tabs/tabs.jsx +392 -20
- package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabs.utils.js +18 -0
- package/dist/source/components/navigation/tabs/tabs.utils.js.map +7 -0
- package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
- package/dist/source/connects/rt/table/table.jsx +7 -2
- package/dist/source/connects/rt/table/table.jsx.map +1 -1
- package/dist/source/index.js +44 -1
- package/dist/source/index.js.map +2 -2
- package/dist/source/primitives/createDismissOnEscape.js +17 -0
- package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
- package/dist/source/primitives/createFocusTrap.js +9 -3
- package/dist/source/primitives/createFocusTrap.js.map +2 -2
- package/dist/source/primitives/createHelperText.js +16 -0
- package/dist/source/primitives/createHelperText.js.map +7 -0
- package/dist/source/primitives/createKeyboardShortcut.js +23 -0
- package/dist/source/primitives/createKeyboardShortcut.js.map +7 -0
- package/dist/source/primitives/mergeStyle.js +15 -0
- package/dist/source/primitives/mergeStyle.js.map +7 -0
- package/dist/source/primitives/overlayLayer.js +10 -2
- package/dist/source/primitives/overlayLayer.js.map +2 -2
- package/dist/source/primitives/restoreFocus.js +14 -0
- package/dist/source/primitives/restoreFocus.js.map +7 -0
- package/dist/source/utils/controlProps.js +22 -0
- package/dist/source/utils/controlProps.js.map +7 -0
- package/dist/source/utils/keyboardShortcut.js +74 -0
- package/dist/source/utils/keyboardShortcut.js.map +7 -0
- package/dist/source/utils/linkAttrs.js +16 -0
- package/dist/source/utils/linkAttrs.js.map +7 -0
- package/dist/source/utils/ownClick.js +41 -0
- package/dist/source/utils/ownClick.js.map +7 -0
- package/dist/utils/controlProps.d.ts +17 -0
- package/dist/utils/controlProps.js +20 -0
- package/dist/utils/controlProps.js.map +1 -0
- package/dist/utils/keyboardShortcut.d.ts +12 -0
- package/dist/utils/keyboardShortcut.js +48 -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/ownClick.d.ts +16 -0
- package/dist/utils/ownClick.js +39 -0
- package/dist/utils/ownClick.js.map +1 -0
- package/package.json +72 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatComposer.tsx"],"sourcesContent":["import { type JSX, Show, createSignal, mergeProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { TextField } from \"../../inputs/textField\";\nimport { TextFieldWrapper } from \"../../inputs/textField/textFieldWrapper\";\nimport { ChatIconButton } from \"./chatIconButton\";\nimport { createId } from \"../../../primitives/createId\";\nimport { shouldComposerNewlineOnEnter } from \"./utils\";\n\nexport interface ChatComposerProps {\n class?: string | undefined;\n onSendMessage?: ((text: string) => void | Promise<void>) | undefined;\n placeholder?: string | undefined;\n disabled?: boolean | undefined;\n sendAriaLabel?: string | undefined;\n shiftEnterNewline?: boolean | undefined;\n ctrlEnterNewline?: boolean | undefined;\n fileUpload?: boolean | undefined;\n attachInputId?: string | undefined;\n onAttachClick?: (() => void) | undefined;\n attachAriaLabel?: string | undefined;\n}\n\nfunction stopPropagation(event: Event): void {\n event.stopPropagation();\n}\n\nfunction insertNewlineAtCursor(element: HTMLTextAreaElement, value: string, setValue: (next: string) => void): void {\n const start = element.selectionStart ?? value.length;\n const end = element.selectionEnd ?? value.length;\n const nextValue = `${value.slice(0, start)}\\n${value.slice(end)}`;\n\n setValue(nextValue);\n\n requestAnimationFrame(() => {\n element.selectionStart = start + 1;\n element.selectionEnd = start + 1;\n });\n}\n\nexport function ChatComposer(props: ChatComposerProps): JSX.Element {\n const merged = mergeProps(\n {\n placeholder: \"message\",\n disabled: false,\n sendAriaLabel: \"Send message\",\n shiftEnterNewline: true,\n ctrlEnterNewline: true,\n fileUpload: false,\n attachAriaLabel: \"Attach file\",\n },\n props\n );\n\n const [value, setValue] = createSignal(\"\");\n const [isFocused, setIsFocused] = createSignal(false);\n const inputId = createId();\n let textareaRef: HTMLTextAreaElement | undefined;\n\n const multiline = (): boolean => merged.shiftEnterNewline || merged.ctrlEnterNewline;\n const canSend = (): boolean => Boolean(merged.onSendMessage) && value().trim().length > 0 && !merged.disabled;\n const showAttach = (): boolean => merged.fileUpload && Boolean(merged.attachInputId || merged.onAttachClick);\n\n const handleSend = (): void => {\n if (!merged.onSendMessage) return;\n const text = value().trim();\n if (!text || merged.disabled) return;\n void merged.onSendMessage(text);\n setValue(\"\");\n };\n\n const handleKeyDown = (event: KeyboardEvent & { currentTarget: HTMLElement }): void => {\n if (shouldComposerNewlineOnEnter(event, { shiftEnterNewline: merged.shiftEnterNewline, ctrlEnterNewline: merged.ctrlEnterNewline })) {\n if (event.currentTarget instanceof HTMLTextAreaElement) {\n event.preventDefault();\n insertNewlineAtCursor(event.currentTarget, value(), setValue);\n }\n return;\n }\n\n if (event.key !== \"Enter\") return;\n\n event.preventDefault();\n handleSend();\n };\n\n const attachClass = (): string =>\n cn(\"smwb-chat-icon-button\", \"smwb-chat-icon-button_edge-start\", merged.disabled && \"smwb-chat-icon-button_disabled\");\n\n const attachButton = (): JSX.Element => (\n <Show when={showAttach()}>\n <Show\n when={merged.attachInputId}\n fallback={\n <ChatIconButton\n edge=\"start\"\n aria-label={merged.attachAriaLabel}\n data-testid=\"chat-composer-attach\"\n disabled={merged.disabled}\n onClick={() => merged.onAttachClick?.()}\n onMouseDown={stopPropagation}\n >\n <Icon name=\"attach_file\" size={24} />\n </ChatIconButton>\n }\n >\n {(id) => (\n <label\n for={merged.disabled ? undefined : id()}\n class={attachClass()}\n aria-label={merged.attachAriaLabel}\n aria-disabled={merged.disabled || undefined}\n data-testid=\"chat-composer-attach\"\n onMouseDown={stopPropagation}\n >\n <Icon name=\"attach_file\" size={24} />\n </label>\n )}\n </Show>\n </Show>\n );\n\n const sendButton = (): JSX.Element => (\n <Show when={merged.onSendMessage}>\n <ChatIconButton\n edge=\"end\"\n color=\"primary\"\n aria-label={merged.sendAriaLabel}\n data-testid=\"chat-composer-send\"\n disabled={!canSend()}\n onClick={handleSend}\n onMouseDown={stopPropagation}\n >\n <Icon name=\"send\" size={24} />\n </ChatIconButton>\n </Show>\n );\n\n const onHolderMouseDown: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n if (textareaRef && event.currentTarget === event.target) {\n event.preventDefault();\n textareaRef.focus();\n }\n };\n\n return (\n <Show\n when={!(showAttach() && !merged.onSendMessage)}\n fallback={\n <div class={cn(\"smwb-chat-composer\", \"smwb-chat-composer_attach-only\", merged.class)} data-testid=\"chat-composer\">\n {attachButton()}\n </div>\n }\n >\n <Show\n when={multiline()}\n fallback={\n <TextField\n class={cn(\"smwb-chat-composer\", merged.class)}\n data-testid=\"chat-composer\"\n fullWidth\n value={value()}\n disabled={merged.disabled}\n placeholder={merged.placeholder}\n onChange={(event) => setValue(event.currentTarget.value)}\n startAdornment={attachButton()}\n endAdornment={sendButton()}\n onKeyDown={handleKeyDown}\n />\n }\n >\n <TextFieldWrapper\n class={cn(\"smwb-chat-composer\", merged.class)}\n data-testid=\"chat-composer\"\n fullWidth\n disabled={merged.disabled}\n isFilledState={value().length > 0}\n isFocused={isFocused()}\n for={inputId}\n shrink={Boolean(merged.attachInputId || merged.onAttachClick) && showAttach()}\n onHolderMouseDown={onHolderMouseDown}\n startAdornment={attachButton()}\n endAdornment={sendButton()}\n >\n <textarea\n id={inputId}\n ref={(el) => (textareaRef = el)}\n class={cn(\n \"smwb-text-field__input\",\n \"smwb-chat-composer__input\",\n \"smwb-text-field__input--show-placeholder\",\n showAttach() && \"smwb-text-field__input--adornment-start\",\n merged.onSendMessage && \"smwb-text-field__input--adornment-end\"\n )}\n value={value()}\n disabled={merged.disabled}\n placeholder={merged.placeholder}\n rows={1}\n onInput={(event) => setValue(event.currentTarget.value)}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={handleKeyDown}\n />\n </TextFieldWrapper>\n </Show>\n </Show>\n );\n}\n\nexport default ChatComposer;\n"],"mappings":"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","names":[],"file":"chatComposer.jsx"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatComposer.tsx"],"sourcesContent":["import { type JSX, Show, createSignal, mergeProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { TextField } from \"../../inputs/textField\";\nimport { TextFieldWrapper } from \"../../inputs/textField/textFieldWrapper\";\nimport { ChatIconButton } from \"./chatIconButton\";\nimport { createId } from \"../../../primitives/createId\";\nimport { shouldComposerNewlineOnEnter } from \"./utils\";\n\n/**\n * Deprecated: the props of the old chat input. Use `ComposerProps` — `Chat` now draws a `Composer` as its footer,\n * and the standalone `Composer` replaces these props (`onSendMessage` → `onSend`, `sendAriaLabel` → `sendLabel`,\n * `attachAriaLabel` → `attachLabel`, `fileUpload` + `attachInputId`/`onAttachClick` → `onAttach`,\n * `shiftEnterNewline` → `sendKey=\"enter\"`; `ctrlEnterNewline` has no equivalent — Ctrl/⌘+Enter always sends).\n * Removed in the next major.\n *\n * @deprecated Use `Composer` (`ComposerProps`); see the README section \"Migrating from ChatComposer\".\n */\nexport interface ChatComposerProps {\n class?: string | undefined;\n onSendMessage?: ((text: string) => void | Promise<void>) | undefined;\n placeholder?: string | undefined;\n disabled?: boolean | undefined;\n sendAriaLabel?: string | undefined;\n shiftEnterNewline?: boolean | undefined;\n ctrlEnterNewline?: boolean | undefined;\n fileUpload?: boolean | undefined;\n attachInputId?: string | undefined;\n onAttachClick?: (() => void) | undefined;\n attachAriaLabel?: string | undefined;\n}\n\nfunction stopPropagation(event: Event): void {\n event.stopPropagation();\n}\n\nfunction insertNewlineAtCursor(element: HTMLTextAreaElement, value: string, setValue: (next: string) => void): void {\n const start = element.selectionStart ?? value.length;\n const end = element.selectionEnd ?? value.length;\n const nextValue = `${value.slice(0, start)}\\n${value.slice(end)}`;\n\n setValue(nextValue);\n\n requestAnimationFrame(() => {\n element.selectionStart = start + 1;\n element.selectionEnd = start + 1;\n });\n}\n\n/**\n * Deprecated: the old chat input — Enter sends, a TextField-based DOM and the `chat-composer*` test ids.\n * `Chat` draws a `Composer` as its footer now, and the standalone `Composer` replaces this component\n * (`onSendMessage` → `onSend`, Enter-to-send → `sendKey=\"enter\"`). Kept for the migration and removed in the\n * next major; to keep this markup inside a Chat while migrating, pass `legacyComposer` to `Chat`.\n *\n * @deprecated Use `Composer`; see the README section \"Migrating from ChatComposer\".\n */\nexport function ChatComposer(props: ChatComposerProps): JSX.Element {\n const merged = mergeProps(\n {\n placeholder: \"message\",\n disabled: false,\n sendAriaLabel: \"Send message\",\n shiftEnterNewline: true,\n ctrlEnterNewline: true,\n fileUpload: false,\n attachAriaLabel: \"Attach file\",\n },\n props\n );\n\n const [value, setValue] = createSignal(\"\");\n const [isFocused, setIsFocused] = createSignal(false);\n const inputId = createId();\n let textareaRef: HTMLTextAreaElement | undefined;\n\n const multiline = (): boolean => merged.shiftEnterNewline || merged.ctrlEnterNewline;\n const canSend = (): boolean => Boolean(merged.onSendMessage) && value().trim().length > 0 && !merged.disabled;\n const showAttach = (): boolean => merged.fileUpload && Boolean(merged.attachInputId || merged.onAttachClick);\n\n const handleSend = (): void => {\n if (!merged.onSendMessage) return;\n const text = value().trim();\n if (!text || merged.disabled) return;\n void merged.onSendMessage(text);\n setValue(\"\");\n };\n\n const handleKeyDown = (event: KeyboardEvent & { currentTarget: HTMLElement }): void => {\n // Enter that commits or cancels an IME composition belongs to the IME, not to the composer.\n if (event.isComposing || event.keyCode === 229) return;\n\n if (shouldComposerNewlineOnEnter(event, { shiftEnterNewline: merged.shiftEnterNewline, ctrlEnterNewline: merged.ctrlEnterNewline })) {\n if (event.currentTarget instanceof HTMLTextAreaElement) {\n event.preventDefault();\n insertNewlineAtCursor(event.currentTarget, value(), setValue);\n }\n return;\n }\n\n if (event.key !== \"Enter\") return;\n\n event.preventDefault();\n handleSend();\n };\n\n const attachClass = (): string =>\n cn(\"smwb-chat-icon-button\", \"smwb-chat-icon-button_edge-start\", merged.disabled && \"smwb-chat-icon-button_disabled\");\n\n const attachButton = (): JSX.Element => (\n <Show when={showAttach()}>\n <Show\n when={merged.attachInputId}\n fallback={\n <ChatIconButton\n edge=\"start\"\n aria-label={merged.attachAriaLabel}\n data-testid=\"chat-composer-attach\"\n disabled={merged.disabled}\n onClick={() => merged.onAttachClick?.()}\n onMouseDown={stopPropagation}\n >\n <Icon name=\"attach_file\" size={24} />\n </ChatIconButton>\n }\n >\n {(id) => (\n <label\n for={merged.disabled ? undefined : id()}\n class={attachClass()}\n aria-label={merged.attachAriaLabel}\n aria-disabled={merged.disabled || undefined}\n data-testid=\"chat-composer-attach\"\n onMouseDown={stopPropagation}\n >\n <Icon name=\"attach_file\" size={24} />\n </label>\n )}\n </Show>\n </Show>\n );\n\n const sendButton = (): JSX.Element => (\n <Show when={merged.onSendMessage}>\n <ChatIconButton\n edge=\"end\"\n color=\"primary\"\n aria-label={merged.sendAriaLabel}\n data-testid=\"chat-composer-send\"\n disabled={!canSend()}\n onClick={handleSend}\n onMouseDown={stopPropagation}\n >\n <Icon name=\"send\" size={24} />\n </ChatIconButton>\n </Show>\n );\n\n const onHolderMouseDown: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n if (textareaRef && event.currentTarget === event.target) {\n event.preventDefault();\n textareaRef.focus();\n }\n };\n\n return (\n <Show\n when={!(showAttach() && !merged.onSendMessage)}\n fallback={\n <div class={cn(\"smwb-chat-composer\", \"smwb-chat-composer_attach-only\", merged.class)} data-testid=\"chat-composer\">\n {attachButton()}\n </div>\n }\n >\n <Show\n when={multiline()}\n fallback={\n <TextField\n class={cn(\"smwb-chat-composer\", merged.class)}\n data-testid=\"chat-composer\"\n fullWidth\n value={value()}\n disabled={merged.disabled}\n placeholder={merged.placeholder}\n onChange={(event) => setValue(event.currentTarget.value)}\n startAdornment={attachButton()}\n endAdornment={sendButton()}\n onKeyDown={handleKeyDown}\n />\n }\n >\n <TextFieldWrapper\n class={cn(\"smwb-chat-composer\", merged.class)}\n data-testid=\"chat-composer\"\n fullWidth\n disabled={merged.disabled}\n isFilledState={value().length > 0}\n isFocused={isFocused()}\n for={inputId}\n shrink={Boolean(merged.attachInputId || merged.onAttachClick) && showAttach()}\n onHolderMouseDown={onHolderMouseDown}\n startAdornment={attachButton()}\n endAdornment={sendButton()}\n >\n <textarea\n id={inputId}\n ref={(el) => (textareaRef = el)}\n class={cn(\n \"smwb-text-field__input\",\n \"smwb-chat-composer__input\",\n \"smwb-text-field__input--show-placeholder\",\n showAttach() && \"smwb-text-field__input--adornment-start\",\n merged.onSendMessage && \"smwb-text-field__input--adornment-end\"\n )}\n value={value()}\n disabled={merged.disabled}\n placeholder={merged.placeholder}\n rows={1}\n onInput={(event) => setValue(event.currentTarget.value)}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={handleKeyDown}\n />\n </TextFieldWrapper>\n </Show>\n </Show>\n );\n}\n\nexport default ChatComposer;\n"],"mappings":"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","names":[],"file":"chatComposer.jsx"}
|
|
@@ -2,17 +2,27 @@ import { Show, mergeProps, splitProps } from "solid-js";
|
|
|
2
2
|
import cn from "clsx";
|
|
3
3
|
import { Ripple } from "../../base/ripple";
|
|
4
4
|
import { mergeRefs } from "../../../primitives/mergeRefs";
|
|
5
|
+
import { callHandler } from "../../../primitives/callHandler";
|
|
5
6
|
function ChatIconButton(props) {
|
|
6
|
-
const merged = mergeProps({ color: "default" }, props);
|
|
7
|
-
const [local, rest] = splitProps(merged, [
|
|
7
|
+
const merged = mergeProps({ color: "default", type: "button" }, props);
|
|
8
|
+
const [local, rest] = splitProps(merged, [
|
|
9
|
+
"class",
|
|
10
|
+
"children",
|
|
11
|
+
"disabled",
|
|
12
|
+
"edge",
|
|
13
|
+
"color",
|
|
14
|
+
"ref",
|
|
15
|
+
// The button sets this on its root too; its own handler calls the caller's first.
|
|
16
|
+
"onPointerDown"
|
|
17
|
+
]);
|
|
8
18
|
let rippleActions;
|
|
9
19
|
const onPointerDown = (event) => {
|
|
20
|
+
callHandler(local.onPointerDown, event);
|
|
10
21
|
if (!local.disabled) rippleActions?.onRipple(event);
|
|
11
22
|
};
|
|
12
23
|
return <button
|
|
13
24
|
{...rest}
|
|
14
25
|
ref={mergeRefs(local.ref)}
|
|
15
|
-
type="button"
|
|
16
26
|
class={cn(
|
|
17
27
|
"smwb-chat-icon-button",
|
|
18
28
|
local.edge === "start" && "smwb-chat-icon-button_edge-start",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatIconButton.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ChatIconButtonProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {\n edge?: \"start\" | \"end\" | undefined;\n color?: \"default\" | \"primary\" | undefined;\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport function ChatIconButton(props: ParentProps<ChatIconButtonProps>): JSX.Element {\n const merged = mergeProps({ color: \"default\" as const }, props);\n const [local, rest] = splitProps(merged, [\"class\"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatIconButton.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport interface ChatIconButtonProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {\n edge?: \"start\" | \"end\" | undefined;\n color?: \"default\" | \"primary\" | undefined;\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport function ChatIconButton(props: ParentProps<ChatIconButtonProps>): JSX.Element {\n // `type` is a default: the caller's wins.\n const merged = mergeProps({ color: \"default\" as const, type: \"button\" as const }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"disabled\",\n \"edge\",\n \"color\",\n \"ref\",\n // The button sets this on its root too; its own handler calls the caller's first.\n \"onPointerDown\",\n ]);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown: JSX.EventHandler<HTMLButtonElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!local.disabled) rippleActions?.onRipple(event);\n };\n\n return (\n <button\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\n \"smwb-chat-icon-button\",\n local.edge === \"start\" && \"smwb-chat-icon-button_edge-start\",\n local.edge === \"end\" && \"smwb-chat-icon-button_edge-end\",\n local.color === \"primary\" && \"smwb-chat-icon-button_primary\",\n local.disabled && \"smwb-chat-icon-button_disabled\",\n local.class\n )}\n disabled={local.disabled}\n onPointerDown={onPointerDown}\n >\n {local.children}\n <Show when={!local.disabled}>\n <Ripple actionRef={(actions) => (rippleActions = actions)} center />\n </Show>\n </button>\n );\n}\n\nexport default ChatIconButton;\n"],"mappings":"AAAA,SAAqC,MAAM,YAAY,kBAAkB;AACzE,OAAO,QAAQ;AACf,SAAS,cAAqC;AAC9C,SAAS,iBAA2B;AACpC,SAAS,mBAAmB;AAQrB,SAAS,eAAe,OAAsD;AAEnF,QAAM,SAAS,WAAW,EAAE,OAAO,WAAoB,MAAM,SAAkB,GAAG,KAAK;AACvF,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,EACF,CAAC;AAED,MAAI;AAEJ,QAAM,gBAAmE,CAAC,UAAU;AAClF,gBAAY,MAAM,eAAe,KAAK;AACtC,QAAI,CAAC,MAAM,SAAU,gBAAe,SAAS,KAAK;AAAA,EACpD;AAEA,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO;AAAA,MACL;AAAA,MACA,MAAM,SAAS,WAAW;AAAA,MAC1B,MAAM,SAAS,SAAS;AAAA,MACxB,MAAM,UAAU,aAAa;AAAA,MAC7B,MAAM,YAAY;AAAA,MAClB,MAAM;AAAA,IACR;AAAA,IACA,UAAU,MAAM;AAAA,IAChB,eAAe;AAAA,GAChB;AAAA,OACE,MAAM,SAAS;AAAA,MAChB,CAAC,KAAK,MAAM,CAAC,MAAM,UAAU;AAAA,QAC3B,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,OAAO,EAAE;AAAA,MACtE,EAFC,KAEM;AAAA,IACT,EAlBC;AAoBL;AAEA,IAAO,yBAAQ;","names":[],"file":"chatIconButton.jsx"}
|
|
@@ -3,6 +3,7 @@ import cn from "clsx";
|
|
|
3
3
|
import { Icon } from "../../base/icon";
|
|
4
4
|
import { ChatIconButton } from "./chatIconButton";
|
|
5
5
|
import { createControllableState } from "../../../primitives/createControllableState";
|
|
6
|
+
import { mergeStyle } from "../../../primitives/mergeStyle";
|
|
6
7
|
import { Chat } from "./chat";
|
|
7
8
|
const len = (value) => typeof value === "number" ? `${value}px` : value;
|
|
8
9
|
const floatingAnchorForSide = (side) => side === "left" ? "bottom-left" : "bottom-right";
|
|
@@ -31,7 +32,8 @@ function ChatLayout(props) {
|
|
|
31
32
|
"floatingAnchor",
|
|
32
33
|
"chat",
|
|
33
34
|
"children",
|
|
34
|
-
"style"
|
|
35
|
+
"style",
|
|
36
|
+
"data-testid"
|
|
35
37
|
]);
|
|
36
38
|
const [collapsed, setCollapsed] = createControllableState({
|
|
37
39
|
value: () => local.collapsed,
|
|
@@ -61,17 +63,14 @@ function ChatLayout(props) {
|
|
|
61
63
|
{local.chat.headerActions}
|
|
62
64
|
{expandButton()}
|
|
63
65
|
</>;
|
|
64
|
-
const rootStyle = () => ({
|
|
65
|
-
"--smwb-chat-layout-w": len(local.chatWidth),
|
|
66
|
-
...typeof local.style === "object" && local.style ? local.style : {}
|
|
67
|
-
});
|
|
66
|
+
const rootStyle = () => mergeStyle({ "--smwb-chat-layout-w": len(local.chatWidth) }, local.style);
|
|
68
67
|
return <Show
|
|
69
68
|
when={collapsed()}
|
|
70
69
|
fallback={<div
|
|
71
70
|
{...rest}
|
|
72
71
|
class={cn("smwb-chat-layout", `smwb-chat-layout_${local.side}`, local.class)}
|
|
73
72
|
style={rootStyle()}
|
|
74
|
-
data-testid="chat-layout"
|
|
73
|
+
data-testid={local["data-testid"] ?? "chat-layout"}
|
|
75
74
|
data-collapsed="false"
|
|
76
75
|
>
|
|
77
76
|
<Show when={local.side === "left"}>
|
|
@@ -93,7 +92,7 @@ function ChatLayout(props) {
|
|
|
93
92
|
{...rest}
|
|
94
93
|
class={cn("smwb-chat-layout", "smwb-chat-layout_collapsed", local.class)}
|
|
95
94
|
style={rootStyle()}
|
|
96
|
-
data-testid="chat-layout"
|
|
95
|
+
data-testid={local["data-testid"] ?? "chat-layout"}
|
|
97
96
|
data-collapsed="true"
|
|
98
97
|
>
|
|
99
98
|
<div class={cn("smwb-chat-layout__content", local.contentClass)} data-testid="chat-layout-content">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatLayout.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { ChatIconButton } from \"./chatIconButton\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { Chat, type ChatProps } from \"./chat\";\nimport type { ChatAnchor, ChatLayoutSide } from \"./types\";\n\nconst len = (value: number | string): 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 | \"class\"\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 ParentProps, JSX.HTMLAttributes<HTMLDivElement> {\n contentClass?: string | undefined;\n chatClass?: string | undefined;\n side?: ChatLayoutSide | undefined;\n chatWidth?: number | string | undefined;\n collapsed?: boolean | undefined;\n defaultCollapsed?: boolean | undefined;\n onCollapsedChange?: ((collapsed: boolean) => void) | undefined;\n collapseAriaLabel?: string | undefined;\n expandAriaLabel?: string | undefined;\n floatingAnchor?: ChatAnchor | undefined;\n chat: ChatLayoutChatProps;\n}\n\nexport function ChatLayout(props: ChatLayoutProps): JSX.Element {\n const merged = mergeProps(\n {\n side: \"right\" as const,\n chatWidth: 400 as number | string,\n defaultCollapsed: false,\n collapseAriaLabel: \"Collapse chat panel\",\n expandAriaLabel: \"Expand chat panel\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"contentClass\",\n \"chatClass\",\n \"side\",\n \"chatWidth\",\n \"collapsed\",\n \"defaultCollapsed\",\n \"onCollapsedChange\",\n \"collapseAriaLabel\",\n \"expandAriaLabel\",\n \"floatingAnchor\",\n \"chat\",\n \"children\",\n \"style\",\n ]);\n\n const [collapsed, setCollapsed] = createControllableState<boolean>({\n value: () => local.collapsed,\n defaultValue: local.defaultCollapsed,\n onChange: local.onCollapsedChange,\n });\n\n const [floatingOpen, setFloatingOpen] = createControllableState<boolean>({ defaultValue: false });\n\n createEffect(() => {\n if (!collapsed()) {\n setFloatingOpen(false);\n }\n });\n\n const anchor = (): ChatAnchor => local.floatingAnchor ?? floatingAnchorForSide(local.side);\n const dockIcon = (): string => (local.side === \"left\" ? \"dock_to_left\" : \"dock_to_right\");\n const collapseIcon = (): string => (local.side === \"left\" ? \"left_panel_close\" : \"right_panel_close\");\n\n const collapseButton = (): JSX.Element => (\n <ChatIconButton aria-label={local.collapseAriaLabel} data-testid=\"chat-layout-collapse\" onClick={() => setCollapsed(true)}>\n <Icon name={collapseIcon()} size={18} />\n </ChatIconButton>\n );\n\n const expandButton = (): JSX.Element => (\n <ChatIconButton aria-label={local.expandAriaLabel} data-testid=\"chat-layout-expand\" onClick={() => setCollapsed(false)}>\n <Icon name={dockIcon()} size={18} />\n </ChatIconButton>\n );\n\n const dockedHeaderActions = (): JSX.Element => (\n <>\n {local.chat.headerActions}\n {collapseButton()}\n </>\n );\n\n const floatingHeaderActions = (): JSX.Element => (\n <>\n {local.chat.headerActions}\n {expandButton()}\n </>\n );\n\n const rootStyle = (): JSX.CSSProperties
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatLayout.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { ChatIconButton } from \"./chatIconButton\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\nimport { Chat, type ChatProps } from \"./chat\";\nimport type { ChatAnchor, ChatLayoutSide } from \"./types\";\n\nconst len = (value: number | string): 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 | \"class\"\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 ParentProps, JSX.HTMLAttributes<HTMLDivElement> {\n contentClass?: string | undefined;\n chatClass?: string | undefined;\n side?: ChatLayoutSide | undefined;\n chatWidth?: number | string | undefined;\n collapsed?: boolean | undefined;\n defaultCollapsed?: boolean | undefined;\n onCollapsedChange?: ((collapsed: boolean) => void) | undefined;\n collapseAriaLabel?: string | undefined;\n expandAriaLabel?: string | undefined;\n floatingAnchor?: ChatAnchor | undefined;\n chat: ChatLayoutChatProps;\n /** Test id of the root `<div>`; `chat-layout` unless given. */\n \"data-testid\"?: string | undefined;\n}\n\nexport function ChatLayout(props: ChatLayoutProps): JSX.Element {\n const merged = mergeProps(\n {\n side: \"right\" as const,\n chatWidth: 400 as number | string,\n defaultCollapsed: false,\n collapseAriaLabel: \"Collapse chat panel\",\n expandAriaLabel: \"Expand chat panel\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"contentClass\",\n \"chatClass\",\n \"side\",\n \"chatWidth\",\n \"collapsed\",\n \"defaultCollapsed\",\n \"onCollapsedChange\",\n \"collapseAriaLabel\",\n \"expandAriaLabel\",\n \"floatingAnchor\",\n \"chat\",\n \"children\",\n \"style\",\n \"data-testid\",\n ]);\n\n const [collapsed, setCollapsed] = createControllableState<boolean>({\n value: () => local.collapsed,\n defaultValue: local.defaultCollapsed,\n onChange: local.onCollapsedChange,\n });\n\n const [floatingOpen, setFloatingOpen] = createControllableState<boolean>({ defaultValue: false });\n\n createEffect(() => {\n if (!collapsed()) {\n setFloatingOpen(false);\n }\n });\n\n const anchor = (): ChatAnchor => local.floatingAnchor ?? floatingAnchorForSide(local.side);\n const dockIcon = (): string => (local.side === \"left\" ? \"dock_to_left\" : \"dock_to_right\");\n const collapseIcon = (): string => (local.side === \"left\" ? \"left_panel_close\" : \"right_panel_close\");\n\n const collapseButton = (): JSX.Element => (\n <ChatIconButton aria-label={local.collapseAriaLabel} data-testid=\"chat-layout-collapse\" onClick={() => setCollapsed(true)}>\n <Icon name={collapseIcon()} size={18} />\n </ChatIconButton>\n );\n\n const expandButton = (): JSX.Element => (\n <ChatIconButton aria-label={local.expandAriaLabel} data-testid=\"chat-layout-expand\" onClick={() => setCollapsed(false)}>\n <Icon name={dockIcon()} size={18} />\n </ChatIconButton>\n );\n\n const dockedHeaderActions = (): JSX.Element => (\n <>\n {local.chat.headerActions}\n {collapseButton()}\n </>\n );\n\n const floatingHeaderActions = (): JSX.Element => (\n <>\n {local.chat.headerActions}\n {expandButton()}\n </>\n );\n\n // The caller's style goes last: its own --smwb-chat-layout-w wins over chatWidth.\n const rootStyle = (): JSX.CSSProperties | string | undefined =>\n mergeStyle({ \"--smwb-chat-layout-w\": len(local.chatWidth) }, local.style);\n\n return (\n <Show\n when={collapsed()}\n fallback={\n <div\n {...rest}\n class={cn(\"smwb-chat-layout\", `smwb-chat-layout_${local.side}`, local.class)}\n style={rootStyle()}\n data-testid={local[\"data-testid\"] ?? \"chat-layout\"}\n data-collapsed=\"false\"\n >\n <Show when={local.side === \"left\"}>\n <aside class=\"smwb-chat-layout__panel\" data-testid=\"chat-layout-panel\">\n <Chat {...local.chat} class={local.chatClass} embedded allowedLayouts={[]} headerActions={dockedHeaderActions()} />\n </aside>\n </Show>\n <div class={cn(\"smwb-chat-layout__content\", local.contentClass)} data-testid=\"chat-layout-content\">\n {local.children}\n </div>\n <Show when={local.side === \"right\"}>\n <aside class=\"smwb-chat-layout__panel\" data-testid=\"chat-layout-panel\">\n <Chat {...local.chat} class={local.chatClass} embedded allowedLayouts={[]} headerActions={dockedHeaderActions()} />\n </aside>\n </Show>\n </div>\n }\n >\n <div\n {...rest}\n class={cn(\"smwb-chat-layout\", \"smwb-chat-layout_collapsed\", local.class)}\n style={rootStyle()}\n data-testid={local[\"data-testid\"] ?? \"chat-layout\"}\n data-collapsed=\"true\"\n >\n <div class={cn(\"smwb-chat-layout__content\", local.contentClass)} data-testid=\"chat-layout-content\">\n {local.children}\n </div>\n <Chat\n {...local.chat}\n class={local.chatClass}\n floatingTrigger\n anchor={anchor()}\n allowedLayouts={[\"floating\"]}\n layout=\"floating\"\n open={floatingOpen()}\n onOpenChange={setFloatingOpen}\n headerActions={floatingHeaderActions()}\n />\n </div>\n </Show>\n );\n}\n\nexport default ChatLayout;\n"],"mappings":"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","names":[],"file":"chatLayout.jsx"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mergeProps, splitProps } from "solid-js";
|
|
2
2
|
import cn from "clsx";
|
|
3
|
+
import { mergeStyle } from "../../../primitives/mergeStyle";
|
|
3
4
|
import { Chat } from "./chat";
|
|
4
5
|
const len = (value) => typeof value === "number" ? `${value}px` : value;
|
|
5
6
|
const anchorForSide = (side) => side === "left" ? "bottom-left" : "bottom-right";
|
|
@@ -25,17 +26,15 @@ function ChatOverlayLayout(props) {
|
|
|
25
26
|
"defaultOpen",
|
|
26
27
|
"chat",
|
|
27
28
|
"children",
|
|
28
|
-
"style"
|
|
29
|
+
"style",
|
|
30
|
+
"data-testid"
|
|
29
31
|
]);
|
|
30
|
-
const rootStyle = () => ({
|
|
31
|
-
"--smwb-chat-overlay-w": len(local.chatWidth),
|
|
32
|
-
...typeof local.style === "object" && local.style ? local.style : {}
|
|
33
|
-
});
|
|
32
|
+
const rootStyle = () => mergeStyle({ "--smwb-chat-overlay-w": len(local.chatWidth) }, local.style);
|
|
34
33
|
return <div
|
|
35
34
|
{...rest}
|
|
36
35
|
class={cn("smwb-chat-overlay-layout", local.class)}
|
|
37
36
|
style={rootStyle()}
|
|
38
|
-
data-testid="chat-overlay-layout"
|
|
37
|
+
data-testid={local["data-testid"] ?? "chat-overlay-layout"}
|
|
39
38
|
>
|
|
40
39
|
<div class={cn("smwb-chat-overlay-layout__content", local.contentClass)} data-testid="chat-overlay-layout-content">
|
|
41
40
|
{local.children}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatOverlayLayout.tsx"],"sourcesContent":["import { type JSX, type ParentProps, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chat, type ChatProps } from \"./chat\";\nimport type { ChatAnchor, ChatLayoutMode, ChatLayoutSide } from \"./types\";\n\nconst len = (value: number | string): string => (typeof value === \"number\" ? `${value}px` : value);\n\nconst anchorForSide = (side: ChatLayoutSide): ChatAnchor => (side === \"left\" ? \"bottom-left\" : \"bottom-right\");\n\nexport type ChatOverlayLayoutChatProps = Omit<\n ChatProps,\n | \"class\"\n | \"overlayContext\"\n | \"embedded\"\n | \"floatingTrigger\"\n | \"anchor\"\n | \"allowedLayouts\"\n | \"layout\"\n | \"defaultLayout\"\n | \"onLayoutChange\"\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n>;\n\nexport interface ChatOverlayLayoutProps extends ParentProps, JSX.HTMLAttributes<HTMLDivElement> {\n contentClass?: string | undefined;\n chatClass?: string | undefined;\n side?: ChatLayoutSide | undefined;\n chatWidth?: number | string | undefined;\n allowedLayouts?: ChatLayoutMode[] | undefined;\n defaultLayout?: ChatLayoutMode | undefined;\n defaultOpen?: boolean | undefined;\n chat: ChatOverlayLayoutChatProps;\n}\n\nexport function ChatOverlayLayout(props: ChatOverlayLayoutProps): JSX.Element {\n const merged = mergeProps(\n {\n side: \"right\" as const,\n chatWidth: 400 as number | string,\n allowedLayouts: [\"fullHeight\", \"floating\"] as ChatLayoutMode[],\n defaultLayout: \"fullHeight\" as ChatLayoutMode,\n defaultOpen: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"contentClass\",\n \"chatClass\",\n \"side\",\n \"chatWidth\",\n \"allowedLayouts\",\n \"defaultLayout\",\n \"defaultOpen\",\n \"chat\",\n \"children\",\n \"style\",\n ]);\n\n const rootStyle = (): JSX.CSSProperties
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chat/chatOverlayLayout.tsx"],"sourcesContent":["import { type JSX, type ParentProps, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\nimport { Chat, type ChatProps } from \"./chat\";\nimport type { ChatAnchor, ChatLayoutMode, ChatLayoutSide } from \"./types\";\n\nconst len = (value: number | string): string => (typeof value === \"number\" ? `${value}px` : value);\n\nconst anchorForSide = (side: ChatLayoutSide): ChatAnchor => (side === \"left\" ? \"bottom-left\" : \"bottom-right\");\n\nexport type ChatOverlayLayoutChatProps = Omit<\n ChatProps,\n | \"class\"\n | \"overlayContext\"\n | \"embedded\"\n | \"floatingTrigger\"\n | \"anchor\"\n | \"allowedLayouts\"\n | \"layout\"\n | \"defaultLayout\"\n | \"onLayoutChange\"\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n>;\n\nexport interface ChatOverlayLayoutProps extends ParentProps, JSX.HTMLAttributes<HTMLDivElement> {\n contentClass?: string | undefined;\n chatClass?: string | undefined;\n side?: ChatLayoutSide | undefined;\n chatWidth?: number | string | undefined;\n allowedLayouts?: ChatLayoutMode[] | undefined;\n defaultLayout?: ChatLayoutMode | undefined;\n defaultOpen?: boolean | undefined;\n chat: ChatOverlayLayoutChatProps;\n /** Test id of the root `<div>`; `chat-overlay-layout` unless given. */\n \"data-testid\"?: string | undefined;\n}\n\nexport function ChatOverlayLayout(props: ChatOverlayLayoutProps): JSX.Element {\n const merged = mergeProps(\n {\n side: \"right\" as const,\n chatWidth: 400 as number | string,\n allowedLayouts: [\"fullHeight\", \"floating\"] as ChatLayoutMode[],\n defaultLayout: \"fullHeight\" as ChatLayoutMode,\n defaultOpen: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"contentClass\",\n \"chatClass\",\n \"side\",\n \"chatWidth\",\n \"allowedLayouts\",\n \"defaultLayout\",\n \"defaultOpen\",\n \"chat\",\n \"children\",\n \"style\",\n \"data-testid\",\n ]);\n\n // The caller's style goes last: its own --smwb-chat-overlay-w wins over chatWidth.\n const rootStyle = (): JSX.CSSProperties | string | undefined =>\n mergeStyle({ \"--smwb-chat-overlay-w\": len(local.chatWidth) }, local.style);\n\n return (\n <div\n {...rest}\n class={cn(\"smwb-chat-overlay-layout\", local.class)}\n style={rootStyle()}\n data-testid={local[\"data-testid\"] ?? \"chat-overlay-layout\"}\n >\n <div class={cn(\"smwb-chat-overlay-layout__content\", local.contentClass)} data-testid=\"chat-overlay-layout-content\">\n {local.children}\n </div>\n <Chat\n {...local.chat}\n class={local.chatClass}\n overlayContext\n floatingTrigger\n anchor={anchorForSide(local.side)}\n allowedLayouts={local.allowedLayouts}\n defaultLayout={local.defaultLayout}\n defaultOpen={local.defaultOpen}\n />\n </div>\n );\n}\n\nexport default ChatOverlayLayout;\n"],"mappings":"AAAA,SAAqC,YAAY,kBAAkB;AACnE,OAAO,QAAQ;AACf,SAAS,kBAAkB;AAC3B,SAAS,YAA4B;AAGrC,MAAM,MAAM,CAAC,UAAoC,OAAO,UAAU,WAAW,GAAG,KAAK,OAAO;AAE5F,MAAM,gBAAgB,CAAC,SAAsC,SAAS,SAAS,gBAAgB;AA+BxF,SAAS,kBAAkB,OAA4C;AAC5E,QAAM,SAAS;AAAA,IACb;AAAA,MACE,MAAM;AAAA,MACN,WAAW;AAAA,MACX,gBAAgB,CAAC,cAAc,UAAU;AAAA,MACzC,eAAe;AAAA,MACf,aAAa;AAAA,IACf;AAAA,IACA;AAAA,EACF;AACA,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAGD,QAAM,YAAY,MAChB,WAAW,EAAE,yBAAyB,IAAI,MAAM,SAAS,EAAE,GAAG,MAAM,KAAK;AAE3E,SACE,CAAC;AAAA,QACK;AAAA,IACJ,OAAO,GAAG,4BAA4B,MAAM,KAAK;AAAA,IACjD,OAAO,UAAU;AAAA,IACjB,aAAa,MAAM,aAAa,KAAK;AAAA,GACtC;AAAA,MACC,CAAC,IAAI,OAAO,GAAG,qCAAqC,MAAM,YAAY,GAAG,YAAY,8BAA8B;AAAA,SAChH,MAAM,SAAS;AAAA,MAClB,EAFC,IAEK;AAAA,MACN,CAAC;AAAA,QACK,MAAM;AAAA,IACV,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA,QAAQ,cAAc,MAAM,IAAI;AAAA,IAChC,gBAAgB,MAAM;AAAA,IACtB,eAAe,MAAM;AAAA,IACrB,aAAa,MAAM;AAAA,EACrB,EAAE;AAAA,IACJ,EAnBC;AAqBL;AAEA,IAAO,4BAAQ;","names":[],"file":"chatOverlayLayout.jsx"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/components/dataDisplay/chat/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { ChatLayout, default as ChatLayoutDefault } from \"./chatLayout\";\nexport type { ChatLayoutProps, ChatLayoutChatProps } from \"./chatLayout\";\nexport { ChatOverlayLayout } from \"./chatOverlayLayout\";\nexport type { ChatOverlayLayoutProps, ChatOverlayLayoutChatProps } from \"./chatOverlayLayout\";\nexport { Chat, default } from \"./chat\";\nexport type { ChatProps } from \"./chat\";\nexport { ChatShell } from \"./chatShell\";\nexport type { ChatShellProps } from \"./chatShell\";\nexport { ChatHeader } from \"./chatHeader\";\nexport type { ChatHeaderProps } from \"./chatHeader\";\nexport { ChatMessages } from \"./chatMessages\";\nexport type { ChatMessagesProps } from \"./chatMessages\";\nexport { ChatMessageItem } from \"./chatMessageItem\";\nexport type { ChatMessageItemProps } from \"./chatMessageItem\";\nexport { ChatMessageIncoming } from \"./chatMessageIncoming\";\nexport type { ChatMessageIncomingProps } from \"./chatMessageIncoming\";\nexport { ChatMessageOutgoing } from \"./chatMessageOutgoing\";\nexport type { ChatMessageOutgoingProps } from \"./chatMessageOutgoing\";\nexport { ChatMessageSystem } from \"./chatMessageSystem\";\nexport type { ChatMessageSystemProps } from \"./chatMessageSystem\";\nexport { ChatMessageBubble } from \"./chatMessageBubble\";\nexport type { ChatMessageBubbleProps } from \"./chatMessageBubble\";\nexport { ChatMessageSkeleton } from \"./chatMessageSkeleton\";\nexport type { ChatMessageSkeletonProps } from \"./chatMessageSkeleton\";\nexport { ChatMessageStatus } from \"./chatMessageStatus\";\nexport type { ChatMessageStatusProps } from \"./chatMessageStatus\";\nexport { ChatMessageAvatar } from \"./chatMessageAvatar\";\nexport type { ChatMessageAvatarProps } from \"./chatMessageAvatar\";\nexport { ChatAttachments } from \"./chatAttachments\";\nexport type { ChatAttachmentsProps } from \"./chatAttachments\";\nexport { ChatAttachmentImage } from \"./chatAttachmentImage\";\nexport type { ChatAttachmentImageProps } from \"./chatAttachmentImage\";\nexport { ChatIconButton } from \"./chatIconButton\";\nexport type { ChatIconButtonProps } from \"./chatIconButton\";\nexport { ChatComposer } from \"./chatComposer\";\nexport type { ChatComposerProps } from \"./chatComposer\";\nexport { createChatInfiniteScroll } from \"./useChatInfiniteScroll\";\nexport type { CreateChatInfiniteScrollParams } from \"./useChatInfiniteScroll\";\nexport { createChatFileUpload, resolveChatFileUploadMaxFiles } from \"./useChatFileUpload\";\nexport type { CreateChatFileUploadOptions, ChatFileUploadState } from \"./useChatFileUpload\";\nexport { createChatStickToBottom, isScrolledToBottom, scrollChatToBottom } from \"./useChatStickToBottom\";\nexport type { CreateChatStickToBottomParams } from \"./useChatStickToBottom\";\nexport type {\n ChatMessage,\n ChatAttachment,\n ChatAuthor,\n ChatMessageVariant,\n ChatLayoutMode,\n ChatAnchor,\n ChatThemeMode,\n ChatMessageRenderContext,\n ChatLayoutSide,\n ChatMessageDeliveryStatus,\n ChatMessageStatus as ChatMessageStatusValue,\n ChatMessageStatusIcons,\n ChatMessageStatusRenderContext,\n} from \"./types\";\nexport {\n CHAT_EXPAND_LAYOUTS,\n CHAT_DEFAULT_FILE_UPLOAD_MAX_FILES,\n CHAT_MESSAGE_DELIVERY_STATUSES,\n CHAT_MESSAGE_STATUS_ICONS,\n CHAT_MESSAGE_STATUS_LABELS,\n} from \"./types\";\nexport {\n isImageAttachment,\n formatChatTimestamp,\n resolveAllowedLayouts,\n isChatMessageDeliveryStatus,\n resolveChatMessageStatusIcon,\n resolveChatMessageStatusLabel,\n shouldComposerNewlineOnEnter,\n getChatLayoutActions,\n shouldShowChatCloseButton,\n} from \"./utils\";\nexport type { ChatComposerNewlineOptions } from \"./utils\";\n"],
|
|
4
|
+
"sourcesContent": ["export { ChatLayout, default as ChatLayoutDefault } from \"./chatLayout\";\nexport type { ChatLayoutProps, ChatLayoutChatProps } from \"./chatLayout\";\nexport { ChatOverlayLayout } from \"./chatOverlayLayout\";\nexport type { ChatOverlayLayoutProps, ChatOverlayLayoutChatProps } from \"./chatOverlayLayout\";\nexport { Chat, default } from \"./chat\";\nexport type { ChatProps, ChatFooterComposerProps } from \"./chat\";\nexport { ChatShell } from \"./chatShell\";\nexport type { ChatShellProps } from \"./chatShell\";\nexport { ChatHeader } from \"./chatHeader\";\nexport type { ChatHeaderProps } from \"./chatHeader\";\nexport { ChatMessages } from \"./chatMessages\";\nexport type { ChatMessagesProps } from \"./chatMessages\";\nexport { ChatMessageItem } from \"./chatMessageItem\";\nexport type { ChatMessageItemProps } from \"./chatMessageItem\";\nexport { ChatMessageIncoming } from \"./chatMessageIncoming\";\nexport type { ChatMessageIncomingProps } from \"./chatMessageIncoming\";\nexport { ChatMessageOutgoing } from \"./chatMessageOutgoing\";\nexport type { ChatMessageOutgoingProps } from \"./chatMessageOutgoing\";\nexport { ChatMessageSystem } from \"./chatMessageSystem\";\nexport type { ChatMessageSystemProps } from \"./chatMessageSystem\";\nexport { ChatMessageBubble } from \"./chatMessageBubble\";\nexport type { ChatMessageBubbleProps } from \"./chatMessageBubble\";\nexport { ChatMessageSkeleton } from \"./chatMessageSkeleton\";\nexport type { ChatMessageSkeletonProps } from \"./chatMessageSkeleton\";\nexport { ChatMessageStatus } from \"./chatMessageStatus\";\nexport type { ChatMessageStatusProps } from \"./chatMessageStatus\";\nexport { ChatMessageAvatar } from \"./chatMessageAvatar\";\nexport type { ChatMessageAvatarProps } from \"./chatMessageAvatar\";\nexport { ChatAttachments } from \"./chatAttachments\";\nexport type { ChatAttachmentsProps } from \"./chatAttachments\";\nexport { ChatAttachmentImage } from \"./chatAttachmentImage\";\nexport type { ChatAttachmentImageProps } from \"./chatAttachmentImage\";\nexport { ChatIconButton } from \"./chatIconButton\";\nexport type { ChatIconButtonProps } from \"./chatIconButton\";\nexport { ChatComposer } from \"./chatComposer\";\nexport type { ChatComposerProps } from \"./chatComposer\";\nexport { createChatInfiniteScroll } from \"./useChatInfiniteScroll\";\nexport type { CreateChatInfiniteScrollParams } from \"./useChatInfiniteScroll\";\nexport { createChatFileUpload, resolveChatFileUploadMaxFiles } from \"./useChatFileUpload\";\nexport type { CreateChatFileUploadOptions, ChatFileUploadState } from \"./useChatFileUpload\";\nexport { createChatStickToBottom, isScrolledToBottom, scrollChatToBottom } from \"./useChatStickToBottom\";\nexport type { CreateChatStickToBottomParams } from \"./useChatStickToBottom\";\nexport type {\n ChatMessage,\n ChatAttachment,\n ChatAuthor,\n ChatMessageVariant,\n ChatLayoutMode,\n ChatAnchor,\n ChatThemeMode,\n ChatMessageRenderContext,\n ChatLayoutSide,\n ChatMessageDeliveryStatus,\n ChatMessageStatus as ChatMessageStatusValue,\n ChatMessageStatusIcons,\n ChatMessageStatusRenderContext,\n} from \"./types\";\nexport {\n CHAT_EXPAND_LAYOUTS,\n CHAT_DEFAULT_FILE_UPLOAD_MAX_FILES,\n CHAT_MESSAGE_DELIVERY_STATUSES,\n CHAT_MESSAGE_STATUS_ICONS,\n CHAT_MESSAGE_STATUS_LABELS,\n} from \"./types\";\nexport {\n isImageAttachment,\n formatChatTimestamp,\n resolveAllowedLayouts,\n isChatMessageDeliveryStatus,\n resolveChatMessageStatusIcon,\n resolveChatMessageStatusLabel,\n shouldComposerNewlineOnEnter,\n getChatLayoutActions,\n shouldShowChatCloseButton,\n} from \"./utils\";\nexport type { ChatComposerNewlineOptions } from \"./utils\";\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,YAAuB,WAAXA,gBAAoC;AAEzD,SAAS,yBAAyB;AAElC,SAAS,MAAM,WAAAA,gBAAe;AAE9B,SAAS,iBAAiB;AAE1B,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB;AAE7B,SAAS,uBAAuB;AAEhC,SAAS,2BAA2B;AAEpC,SAAS,2BAA2B;AAEpC,SAAS,yBAAyB;AAElC,SAAS,yBAAyB;AAElC,SAAS,2BAA2B;AAEpC,SAAS,yBAAyB;AAElC,SAAS,yBAAyB;AAElC,SAAS,uBAAuB;AAEhC,SAAS,2BAA2B;AAEpC,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAE7B,SAAS,gCAAgC;AAEzC,SAAS,sBAAsB,qCAAqC;AAEpE,SAAS,yBAAyB,oBAAoB,0BAA0B;AAiBhF;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
|
|
6
6
|
"names": ["default"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/components/dataDisplay/chat/utils.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ChatAttachment,\n type ChatLayoutMode,\n CHAT_EXPAND_LAYOUTS,\n CHAT_MESSAGE_DELIVERY_STATUSES,\n CHAT_MESSAGE_STATUS_ICONS,\n CHAT_MESSAGE_STATUS_LABELS,\n type ChatMessageDeliveryStatus,\n type ChatMessageStatus,\n type ChatMessageStatusIcons,\n} from \"./types\";\n\nexport function isChatMessageDeliveryStatus(status: ChatMessageStatus): status is ChatMessageDeliveryStatus {\n return CHAT_MESSAGE_DELIVERY_STATUSES.includes(status as ChatMessageDeliveryStatus);\n}\n\nexport function resolveChatMessageStatusIcon(\n status: ChatMessageStatus,\n icons?: ChatMessageStatusIcons & Record<string, string | undefined>\n): string | undefined {\n const custom = icons?.[status];\n if (custom) {\n return custom;\n }\n\n if (isChatMessageDeliveryStatus(status)) {\n return CHAT_MESSAGE_STATUS_ICONS[status];\n }\n\n return undefined;\n}\n\nexport function resolveChatMessageStatusLabel(status: ChatMessageStatus): string {\n if (isChatMessageDeliveryStatus(status)) {\n return CHAT_MESSAGE_STATUS_LABELS[status];\n }\n\n return String(status);\n}\n\nexport function isImageAttachment(attachment: ChatAttachment): boolean {\n if (attachment.mimeType?.startsWith(\"image/\")) {\n return true;\n }\n\n return /\\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(attachment.name);\n}\n\nexport function formatChatTimestamp(value?: string | Date): string {\n if (!value) {\n return \"\";\n }\n\n const date = value instanceof Date ? value : new Date(value);\n\n if (Number.isNaN(date.getTime())) {\n return String(value);\n }\n\n return new Intl.DateTimeFormat(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(date);\n}\n\nexport function resolveAllowedLayouts(input?: ChatLayoutMode[]): ChatLayoutMode[] {\n if (input == null) {\n return [\"floating\"];\n }\n\n if (input.length === 0) {\n return [];\n }\n\n return CHAT_EXPAND_LAYOUTS.filter((mode) => input.includes(mode));\n}\n\nexport function pickInitialLayout(allowed: ChatLayoutMode[], preferred?: ChatLayoutMode): ChatLayoutMode {\n if (preferred && preferred !== \"closed\" && allowed.includes(preferred)) {\n return preferred;\n }\n\n return allowed[0] ?? \"floating\";\n}\n\nexport function getChatLayoutActions(\n allowedLayouts: ChatLayoutMode[],\n currentLayout?: ChatLayoutMode\n): Exclude<ChatLayoutMode, \"closed\">[] {\n return resolveAllowedLayouts(allowedLayouts).filter(\n (mode): mode is Exclude<ChatLayoutMode, \"closed\"> => mode !== \"closed\" && mode !== currentLayout\n );\n}\n\nexport function shouldShowChatCloseButton(options: {\n floatingTrigger?: boolean | undefined;\n embedded?: boolean | undefined;\n overlayContext?: boolean | undefined;\n effectiveLayout?: ChatLayoutMode | undefined;\n showCloseButton?: boolean | undefined;\n}): boolean {\n if (options.showCloseButton === false) {\n return false;\n }\n\n if (options.showCloseButton === true) {\n return true;\n }\n\n if (\n options.overlayContext &&\n options.floatingTrigger &&\n !options.embedded &&\n (options.effectiveLayout === \"floating\" || options.effectiveLayout === \"fullHeight\")\n ) {\n return true;\n }\n\n return Boolean(options.floatingTrigger && !options.embedded && options.effectiveLayout === \"floating\");\n}\n\nexport interface ChatComposerNewlineOptions {\n shiftEnterNewline?: boolean;\n ctrlEnterNewline?: boolean;\n}\n\nexport function shouldComposerNewlineOnEnter(\n event: { key: string; shiftKey: boolean; ctrlKey: boolean; metaKey: boolean },\n options: ChatComposerNewlineOptions = {}\n): boolean {\n if (event.key !== \"Enter\") {\n return false;\n }\n\n const { shiftEnterNewline = true, ctrlEnterNewline = true } = options;\n const isCtrl = event.ctrlKey || event.metaKey;\n\n if (shiftEnterNewline && event.shiftKey && !isCtrl) {\n return true;\n }\n\n if (ctrlEnterNewline && isCtrl && !event.shiftKey) {\n return true;\n }\n\n return false;\n}\n"],
|
|
5
|
-
"mappings": "AAAA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEA,SAAS,4BAA4B,QAAgE;AAC1G,SAAO,+BAA+B,SAAS,MAAmC;AACpF;AAEO,SAAS,6BACd,QACA,OACoB;AACpB,QAAM,SAAS,QAAQ,MAAM;AAC7B,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,MAAI,4BAA4B,MAAM,GAAG;AACvC,WAAO,0BAA0B,MAAM;AAAA,EACzC;AAEA,SAAO;AACT;AAEO,SAAS,8BAA8B,QAAmC;AAC/E,MAAI,4BAA4B,MAAM,GAAG;AACvC,WAAO,2BAA2B,MAAM;AAAA,EAC1C;AAEA,SAAO,OAAO,MAAM;AACtB;AAEO,SAAS,kBAAkB,YAAqC;AACrE,MAAI,WAAW,UAAU,WAAW,QAAQ,GAAG;AAC7C,WAAO;AAAA,EACT;AAEA,SAAO,mCAAmC,KAAK,WAAW,IAAI;AAChE;AAEO,SAAS,oBAAoB,OAA+B;AACjE,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,KAAK;AAE3D,MAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,GAAG;AAChC,WAAO,OAAO,KAAK;AAAA,EACrB;AAEA,SAAO,IAAI,KAAK,eAAe,QAAW;AAAA,IACxC,MAAM;AAAA,IACN,QAAQ;AAAA,EACV,CAAC,EAAE,OAAO,IAAI;AAChB;AAEO,SAAS,sBAAsB,OAA4C;AAChF,MAAI,SAAS,MAAM;AACjB,WAAO,CAAC,UAAU;AAAA,EACpB;AAEA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,oBAAoB,OAAO,CAAC,SAAS,MAAM,SAAS,IAAI,CAAC;AAClE;AAEO,SAAS,kBAAkB,SAA2B,WAA4C;AACvG,MAAI,aAAa,cAAc,YAAY,QAAQ,SAAS,SAAS,GAAG;AACtE,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,CAAC,KAAK;AACvB;AAEO,SAAS,qBACd,gBACA,eACqC;AACrC,SAAO,sBAAsB,cAAc,EAAE;AAAA,IAC3C,CAAC,SAAoD,SAAS,YAAY,SAAS;AAAA,EACrF;AACF;AAEO,SAAS,0BAA0B,SAM9B;AACV,MAAI,QAAQ,oBAAoB,OAAO;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,oBAAoB,MAAM;AACpC,WAAO;AAAA,EACT;AAEA,MACE,QAAQ,kBACR,QAAQ,mBACR,CAAC,QAAQ,aACR,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB,eACvE;AACA,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,QAAQ,mBAAmB,CAAC,QAAQ,YAAY,QAAQ,oBAAoB,UAAU;AACvG;
|
|
4
|
+
"sourcesContent": ["import {\n type ChatAttachment,\n type ChatLayoutMode,\n CHAT_EXPAND_LAYOUTS,\n CHAT_MESSAGE_DELIVERY_STATUSES,\n CHAT_MESSAGE_STATUS_ICONS,\n CHAT_MESSAGE_STATUS_LABELS,\n type ChatMessageDeliveryStatus,\n type ChatMessageStatus,\n type ChatMessageStatusIcons,\n} from \"./types\";\n\nexport function isChatMessageDeliveryStatus(status: ChatMessageStatus): status is ChatMessageDeliveryStatus {\n return CHAT_MESSAGE_DELIVERY_STATUSES.includes(status as ChatMessageDeliveryStatus);\n}\n\nexport function resolveChatMessageStatusIcon(\n status: ChatMessageStatus,\n icons?: ChatMessageStatusIcons & Record<string, string | undefined>\n): string | undefined {\n const custom = icons?.[status];\n if (custom) {\n return custom;\n }\n\n if (isChatMessageDeliveryStatus(status)) {\n return CHAT_MESSAGE_STATUS_ICONS[status];\n }\n\n return undefined;\n}\n\nexport function resolveChatMessageStatusLabel(status: ChatMessageStatus): string {\n if (isChatMessageDeliveryStatus(status)) {\n return CHAT_MESSAGE_STATUS_LABELS[status];\n }\n\n return String(status);\n}\n\nexport function isImageAttachment(attachment: ChatAttachment): boolean {\n if (attachment.mimeType?.startsWith(\"image/\")) {\n return true;\n }\n\n return /\\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(attachment.name);\n}\n\nexport function formatChatTimestamp(value?: string | Date): string {\n if (!value) {\n return \"\";\n }\n\n const date = value instanceof Date ? value : new Date(value);\n\n if (Number.isNaN(date.getTime())) {\n return String(value);\n }\n\n return new Intl.DateTimeFormat(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(date);\n}\n\nexport function resolveAllowedLayouts(input?: ChatLayoutMode[]): ChatLayoutMode[] {\n if (input == null) {\n return [\"floating\"];\n }\n\n if (input.length === 0) {\n return [];\n }\n\n return CHAT_EXPAND_LAYOUTS.filter((mode) => input.includes(mode));\n}\n\nexport function pickInitialLayout(allowed: ChatLayoutMode[], preferred?: ChatLayoutMode): ChatLayoutMode {\n if (preferred && preferred !== \"closed\" && allowed.includes(preferred)) {\n return preferred;\n }\n\n return allowed[0] ?? \"floating\";\n}\n\nexport function getChatLayoutActions(\n allowedLayouts: ChatLayoutMode[],\n currentLayout?: ChatLayoutMode\n): Exclude<ChatLayoutMode, \"closed\">[] {\n return resolveAllowedLayouts(allowedLayouts).filter(\n (mode): mode is Exclude<ChatLayoutMode, \"closed\"> => mode !== \"closed\" && mode !== currentLayout\n );\n}\n\nexport function shouldShowChatCloseButton(options: {\n floatingTrigger?: boolean | undefined;\n embedded?: boolean | undefined;\n overlayContext?: boolean | undefined;\n effectiveLayout?: ChatLayoutMode | undefined;\n showCloseButton?: boolean | undefined;\n}): boolean {\n if (options.showCloseButton === false) {\n return false;\n }\n\n if (options.showCloseButton === true) {\n return true;\n }\n\n if (\n options.overlayContext &&\n options.floatingTrigger &&\n !options.embedded &&\n (options.effectiveLayout === \"floating\" || options.effectiveLayout === \"fullHeight\")\n ) {\n return true;\n }\n\n return Boolean(options.floatingTrigger && !options.embedded && options.effectiveLayout === \"floating\");\n}\n\n/**\n * Deprecated: the newline flags of the old `ChatComposer`. `Composer` picks the send key with `sendKey` instead\n * (`\"enter\"` = Enter sends, Shift+Enter makes a newline; `\"modEnter\"` = Ctrl/\u2318+Enter sends). Removed with\n * `ChatComposer` in the next major.\n *\n * @deprecated Use `Composer`'s `sendKey`; see the README section \"Migrating from ChatComposer\".\n */\nexport interface ChatComposerNewlineOptions {\n shiftEnterNewline?: boolean;\n ctrlEnterNewline?: boolean;\n}\n\n/**\n * Deprecated: the key rule of the old `ChatComposer` (which Enter sends, which makes a newline).\n * `Composer` resolves the same choice through `sendKey` in `resolveComposerKeyAction`, and `Chat` draws a `Composer`\n * by default. Kept for `ChatComposer` and `legacyComposer` only; removed in the next major.\n *\n * @deprecated Use `Composer`'s `sendKey`; see the README section \"Migrating from ChatComposer\".\n */\nexport function shouldComposerNewlineOnEnter(\n event: { key: string; shiftKey: boolean; ctrlKey: boolean; metaKey: boolean },\n options: ChatComposerNewlineOptions = {}\n): boolean {\n if (event.key !== \"Enter\") {\n return false;\n }\n\n const { shiftEnterNewline = true, ctrlEnterNewline = true } = options;\n const isCtrl = event.ctrlKey || event.metaKey;\n\n if (shiftEnterNewline && event.shiftKey && !isCtrl) {\n return true;\n }\n\n if (ctrlEnterNewline && isCtrl && !event.shiftKey) {\n return true;\n }\n\n return false;\n}\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEA,SAAS,4BAA4B,QAAgE;AAC1G,SAAO,+BAA+B,SAAS,MAAmC;AACpF;AAEO,SAAS,6BACd,QACA,OACoB;AACpB,QAAM,SAAS,QAAQ,MAAM;AAC7B,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,MAAI,4BAA4B,MAAM,GAAG;AACvC,WAAO,0BAA0B,MAAM;AAAA,EACzC;AAEA,SAAO;AACT;AAEO,SAAS,8BAA8B,QAAmC;AAC/E,MAAI,4BAA4B,MAAM,GAAG;AACvC,WAAO,2BAA2B,MAAM;AAAA,EAC1C;AAEA,SAAO,OAAO,MAAM;AACtB;AAEO,SAAS,kBAAkB,YAAqC;AACrE,MAAI,WAAW,UAAU,WAAW,QAAQ,GAAG;AAC7C,WAAO;AAAA,EACT;AAEA,SAAO,mCAAmC,KAAK,WAAW,IAAI;AAChE;AAEO,SAAS,oBAAoB,OAA+B;AACjE,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,KAAK;AAE3D,MAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,GAAG;AAChC,WAAO,OAAO,KAAK;AAAA,EACrB;AAEA,SAAO,IAAI,KAAK,eAAe,QAAW;AAAA,IACxC,MAAM;AAAA,IACN,QAAQ;AAAA,EACV,CAAC,EAAE,OAAO,IAAI;AAChB;AAEO,SAAS,sBAAsB,OAA4C;AAChF,MAAI,SAAS,MAAM;AACjB,WAAO,CAAC,UAAU;AAAA,EACpB;AAEA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,oBAAoB,OAAO,CAAC,SAAS,MAAM,SAAS,IAAI,CAAC;AAClE;AAEO,SAAS,kBAAkB,SAA2B,WAA4C;AACvG,MAAI,aAAa,cAAc,YAAY,QAAQ,SAAS,SAAS,GAAG;AACtE,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,CAAC,KAAK;AACvB;AAEO,SAAS,qBACd,gBACA,eACqC;AACrC,SAAO,sBAAsB,cAAc,EAAE;AAAA,IAC3C,CAAC,SAAoD,SAAS,YAAY,SAAS;AAAA,EACrF;AACF;AAEO,SAAS,0BAA0B,SAM9B;AACV,MAAI,QAAQ,oBAAoB,OAAO;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,oBAAoB,MAAM;AACpC,WAAO;AAAA,EACT;AAEA,MACE,QAAQ,kBACR,QAAQ,mBACR,CAAC,QAAQ,aACR,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB,eACvE;AACA,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,QAAQ,mBAAmB,CAAC,QAAQ,YAAY,QAAQ,oBAAoB,UAAU;AACvG;AAqBO,SAAS,6BACd,OACA,UAAsC,CAAC,GAC9B;AACT,MAAI,MAAM,QAAQ,SAAS;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,oBAAoB,MAAM,mBAAmB,KAAK,IAAI;AAC9D,QAAM,SAAS,MAAM,WAAW,MAAM;AAEtC,MAAI,qBAAqB,MAAM,YAAY,CAAC,QAAQ;AAClD,WAAO;AAAA,EACT;AAEA,MAAI,oBAAoB,UAAU,CAAC,MAAM,UAAU;AACjD,WAAO;AAAA,EACT;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,6 +4,8 @@ import { Ripple } from "../../base/ripple";
|
|
|
4
4
|
import { Icon } from "../../base/icon";
|
|
5
5
|
import { mergeRefs } from "../../../primitives/mergeRefs";
|
|
6
6
|
import { callHandler } from "../../../primitives/callHandler";
|
|
7
|
+
import { isOwnClick } from "../../../utils/ownClick";
|
|
8
|
+
import { splitControlProps } from "../../../utils/controlProps";
|
|
7
9
|
function DeleteIcon(props) {
|
|
8
10
|
const icon = children(() => props.icon);
|
|
9
11
|
return <Show when={icon()} fallback={<Icon name="cancel" size={18} fill={1} />}>
|
|
@@ -24,6 +26,7 @@ function Chip(props) {
|
|
|
24
26
|
);
|
|
25
27
|
const [local, rest] = splitProps(merged, [
|
|
26
28
|
"label",
|
|
29
|
+
"labelId",
|
|
27
30
|
"class",
|
|
28
31
|
"deleteIcon",
|
|
29
32
|
"icon",
|
|
@@ -38,16 +41,24 @@ function Chip(props) {
|
|
|
38
41
|
"color",
|
|
39
42
|
"disabled",
|
|
40
43
|
"onClick",
|
|
44
|
+
// The chip sets these on its root too; its own handlers call the caller's first.
|
|
45
|
+
"onKeyDown",
|
|
46
|
+
"onPointerDown",
|
|
41
47
|
"deleteAriaLabel",
|
|
42
|
-
"ref"
|
|
48
|
+
"ref",
|
|
49
|
+
"data-testid"
|
|
43
50
|
]);
|
|
44
51
|
const icon = children(() => local.icon);
|
|
45
52
|
let rippleActions;
|
|
46
53
|
const onPointerDown = (event) => {
|
|
54
|
+
callHandler(local.onPointerDown, event);
|
|
47
55
|
if (!local.disabled) {
|
|
48
56
|
rippleActions?.onRipple(event);
|
|
49
57
|
}
|
|
50
58
|
};
|
|
59
|
+
const onDeleteClick = (event) => {
|
|
60
|
+
local.onDelete?.(event);
|
|
61
|
+
};
|
|
51
62
|
const onDeleteMouseDown = (event) => {
|
|
52
63
|
callHandler(local.onDeleteMouseDown, event);
|
|
53
64
|
event.stopPropagation();
|
|
@@ -61,18 +72,35 @@ function Chip(props) {
|
|
|
61
72
|
{ "smwb-disabled": local.disabled, "smwb-selected": local.selected }
|
|
62
73
|
);
|
|
63
74
|
const clickable = () => !!local.onClick && !local.disabled;
|
|
64
|
-
const
|
|
75
|
+
const [control, box] = splitControlProps(rest, () => !!local.onClick);
|
|
76
|
+
let content;
|
|
77
|
+
const onKeyDown = (event) => {
|
|
78
|
+
callHandler(local.onKeyDown, event);
|
|
79
|
+
if (!clickable() || event.target !== content) return;
|
|
80
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
local.onClick?.();
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const onChipClick = (event) => {
|
|
86
|
+
if (isOwnClick(event, content ?? null)) local.onClick?.();
|
|
87
|
+
};
|
|
88
|
+
const iconAndLabel = () => <>
|
|
65
89
|
<Show when={icon()}>
|
|
66
90
|
<span class="smwb-chip__icon">{icon()}</span>
|
|
67
91
|
</Show>
|
|
68
|
-
<span class="smwb-chip__label">
|
|
92
|
+
<span id={local.labelId} class="smwb-chip__label">
|
|
93
|
+
{local.label}
|
|
94
|
+
</span>
|
|
95
|
+
</>;
|
|
96
|
+
const trailing = () => <>
|
|
69
97
|
<Show when={local.onDelete}>
|
|
70
98
|
<button
|
|
71
99
|
type="button"
|
|
72
100
|
class="smwb-chip__delete-icon"
|
|
73
101
|
aria-label={local.deleteAriaLabel}
|
|
74
102
|
disabled={local.disabled}
|
|
75
|
-
onClick={
|
|
103
|
+
onClick={onDeleteClick}
|
|
76
104
|
onMouseDown={onDeleteMouseDown}
|
|
77
105
|
>
|
|
78
106
|
<DeleteIcon icon={local.deleteIcon} />
|
|
@@ -83,36 +111,44 @@ function Chip(props) {
|
|
|
83
111
|
return <Show
|
|
84
112
|
when={local.asLink && local.href}
|
|
85
113
|
fallback={<span
|
|
86
|
-
{...
|
|
114
|
+
{...box}
|
|
87
115
|
ref={mergeRefs(local.ref)}
|
|
88
|
-
data-testid="chip"
|
|
116
|
+
data-testid={local["data-testid"] ?? "chip"}
|
|
89
117
|
class={classes()}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
onClick={clickable() ? () => local.onClick?.() : void 0}
|
|
94
|
-
onKeyDown={clickable() ? (event) => {
|
|
95
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
96
|
-
event.preventDefault();
|
|
97
|
-
local.onClick?.();
|
|
98
|
-
}
|
|
99
|
-
} : void 0}
|
|
118
|
+
aria-disabled={!local.onClick && local.disabled || void 0}
|
|
119
|
+
onClick={clickable() ? onChipClick : void 0}
|
|
120
|
+
onKeyDown={onKeyDown}
|
|
100
121
|
onPointerDown={onPointerDown}
|
|
101
122
|
>
|
|
102
|
-
|
|
123
|
+
<span
|
|
124
|
+
{...control}
|
|
125
|
+
ref={(el) => content = el}
|
|
126
|
+
class="smwb-chip__content"
|
|
127
|
+
role={local.onClick ? "button" : void 0}
|
|
128
|
+
tabindex={control.tabindex ?? (clickable() ? 0 : void 0)}
|
|
129
|
+
aria-disabled={!!local.onClick && local.disabled || void 0}
|
|
130
|
+
>
|
|
131
|
+
{iconAndLabel()}
|
|
132
|
+
</span>
|
|
133
|
+
{
|
|
134
|
+
/* Beside the button, not in it: the delete button keeps its name and input. */
|
|
135
|
+
}
|
|
136
|
+
{trailing()}
|
|
103
137
|
</span>}
|
|
104
138
|
>
|
|
105
139
|
<a
|
|
106
140
|
{...rest}
|
|
107
141
|
ref={mergeRefs(local.ref)}
|
|
108
|
-
data-testid="chip-link"
|
|
142
|
+
data-testid={local["data-testid"] ?? "chip-link"}
|
|
109
143
|
class={classes()}
|
|
110
144
|
href={local.href}
|
|
145
|
+
onKeyDown={local.onKeyDown}
|
|
111
146
|
onPointerDown={onPointerDown}
|
|
112
147
|
target={local.target}
|
|
113
148
|
rel="noreferrer"
|
|
114
149
|
>
|
|
115
|
-
{
|
|
150
|
+
{iconAndLabel()}
|
|
151
|
+
{trailing()}
|
|
116
152
|
</a>
|
|
117
153
|
</Show>;
|
|
118
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends JSX.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n onDelete?: (event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void;\n icon?: JSX.Element;\n deleteIcon?: JSX.Element;\n label: string;\n onClick?: () => void;\n onDeleteMouseDown?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;\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 ref?: Ref<HTMLSpanElement | HTMLAnchorElement>;\n}\n\n/**\n * The delete control's icon: a custom one or the default. It is read here, only\n * when the control renders — markup created and not rendered has no server node\n * to hydrate against either.\n */\nfunction DeleteIcon(props: { icon: JSX.Element }): JSX.Element {\n const icon = children(() => props.icon);\n return (\n <Show when={icon()} fallback={<Icon name=\"cancel\" size={18} fill={1} />}>\n {icon()}\n </Show>\n );\n}\n\nexport function Chip(props: ChipProps): JSX.Element {\n const merged = mergeProps(\n {\n target: \"_blank\",\n variant: \"filled\" as const,\n size: \"medium\" as const,\n color: \"default\" as ChipColor,\n disabled: false,\n deleteAriaLabel: \"Remove\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"class\",\n \"deleteIcon\",\n \"icon\",\n \"onDelete\",\n \"onDeleteMouseDown\",\n \"asLink\",\n \"href\",\n \"target\",\n \"selected\",\n \"variant\",\n \"size\",\n \"color\",\n \"disabled\",\n \"onClick\",\n \"deleteAriaLabel\",\n \"ref\",\n ]);\n\n // Read the icon once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for the <Show> test has no server DOM\n // node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown = (event: PointerEvent): void => {\n if (!local.disabled) {\n rippleActions?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n callHandler(local.onDeleteMouseDown, event);\n event.stopPropagation();\n };\n\n const classes = (): string =>\n cn(\n \"smwb-chip\",\n `smwb-${local.variant}`,\n `smwb-chip_size-${local.size}`,\n local.color !== \"default\" && `smwb-chip_color-${local.color}`,\n local.class,\n { \"smwb-disabled\": local.disabled, \"smwb-selected\": local.selected }\n );\n\n const clickable = (): boolean => !!local.onClick && !local.disabled;\n\n const inner = (): JSX.Element => (\n <>\n <Show when={icon()}>\n <span class=\"smwb-chip__icon\">{icon()}</span>\n </Show>\n <span class=\"smwb-chip__label\">{local.label}</span>\n <Show when={local.onDelete}>\n <button\n type=\"button\"\n class=\"smwb-chip__delete-icon\"\n aria-label={local.deleteAriaLabel}\n disabled={local.disabled}\n onClick={local.onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n <DeleteIcon icon={local.deleteIcon} />\n </button>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </>\n );\n\n return (\n <Show\n when={local.asLink && local.href}\n fallback={\n <span\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"chip\"\n class={classes()}\n role={clickable() ? \"button\" : undefined}\n tabindex={clickable() ? 0 : undefined}\n aria-disabled={local.disabled || undefined}\n onClick={clickable() ? () => local.onClick?.() : undefined}\n onKeyDown={\n clickable()\n ? (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onClick?.();\n }\n }\n : undefined\n }\n onPointerDown={onPointerDown}\n >\n {inner()}\n </span>\n }\n >\n <a\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"chip-link\"\n class={classes()}\n href={local.href}\n onPointerDown={onPointerDown}\n target={local.target}\n rel=\"noreferrer\"\n >\n {inner()}\n </a>\n </Show>\n );\n}\n\nexport default Chip;\n"],"mappings":"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","names":[],"file":"chip.jsx"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\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 JSX.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 class?: string | undefined;\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: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void;\n icon?: JSX.Element;\n deleteIcon?: JSX.Element;\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?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;\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 | undefined;\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 | undefined;\n ref?: Ref<HTMLSpanElement | HTMLAnchorElement>;\n}\n\n/**\n * The delete control's icon: a custom one or the default. It is read here, only\n * when the control renders — markup created and not rendered has no server node\n * to hydrate against either.\n */\nfunction DeleteIcon(props: { icon: JSX.Element }): JSX.Element {\n const icon = children(() => props.icon);\n return (\n <Show when={icon()} fallback={<Icon name=\"cancel\" size={18} fill={1} />}>\n {icon()}\n </Show>\n );\n}\n\nexport function Chip(props: ChipProps): JSX.Element {\n const merged = mergeProps(\n {\n target: \"_blank\",\n variant: \"filled\" as const,\n size: \"medium\" as const,\n color: \"default\" as ChipColor,\n disabled: false,\n deleteAriaLabel: \"Remove\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"labelId\",\n \"class\",\n \"deleteIcon\",\n \"icon\",\n \"onDelete\",\n \"onDeleteMouseDown\",\n \"asLink\",\n \"href\",\n \"target\",\n \"selected\",\n \"variant\",\n \"size\",\n \"color\",\n \"disabled\",\n \"onClick\",\n // The chip sets these on its root too; its own handlers call the caller's first.\n \"onKeyDown\",\n \"onPointerDown\",\n \"deleteAriaLabel\",\n \"ref\",\n \"data-testid\",\n ]);\n\n // Read the icon once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for the <Show> test has no server DOM\n // node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown: JSX.EventHandler<HTMLSpanElement | HTMLAnchorElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!local.disabled) {\n rippleActions?.onRipple(event);\n }\n };\n\n // Reads onDelete on each click. Solid binds event handlers once, and <Show>\n // builds the button in a tracked scope, so binding onDelete itself there\n // would rebuild the button for each new onDelete.\n const onDeleteClick: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n local.onDelete?.(event);\n };\n\n const onDeleteMouseDown: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n callHandler(local.onDeleteMouseDown, event);\n event.stopPropagation();\n };\n\n const classes = (): string =>\n cn(\n \"smwb-chip\",\n `smwb-${local.variant}`,\n `smwb-chip_size-${local.size}`,\n local.color !== \"default\" && `smwb-chip_color-${local.color}`,\n local.class,\n { \"smwb-disabled\": local.disabled, \"smwb-selected\": local.selected }\n );\n\n const clickable = (): boolean => !!local.onClick && !local.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, () => !!local.onClick);\n let content: HTMLSpanElement | undefined;\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: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n callHandler(local.onKeyDown, event);\n if (!clickable() || event.target !== content) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.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 Solid\n // delivers here too.\n const onChipClick: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (isOwnClick(event, content ?? null)) local.onClick?.();\n };\n\n // The chip's own content: its button when it is clickable.\n const iconAndLabel = (): JSX.Element => (\n <>\n <Show when={icon()}>\n <span class=\"smwb-chip__icon\">{icon()}</span>\n </Show>\n <span id={local.labelId} class=\"smwb-chip__label\">\n {local.label}\n </span>\n </>\n );\n // After the content: in a clickable chip, beside its button, not in it.\n const trailing = (): JSX.Element => (\n <>\n <Show when={local.onDelete}>\n <button\n type=\"button\"\n class=\"smwb-chip__delete-icon\"\n aria-label={local.deleteAriaLabel}\n disabled={local.disabled}\n onClick={onDeleteClick}\n onMouseDown={onDeleteMouseDown}\n >\n <DeleteIcon icon={local.deleteIcon} />\n </button>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </>\n );\n\n return (\n <Show\n when={local.asLink && local.href}\n fallback={\n <span\n {...box}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"chip\"}\n class={classes()}\n // A disabled chip says so where the caller's ARIA attributes are: on\n // its button with onClick, on the root without. Where it sets none\n // (undefined), the caller's stay.\n aria-disabled={(!local.onClick && local.disabled) || undefined}\n onClick={clickable() ? onChipClick : undefined}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n >\n <span\n {...control}\n ref={(el) => (content = el)}\n class=\"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 // (undefined), the caller's stay. Its tabindex is a default: the\n // caller's wins, e.g. for roving focus.\n role={local.onClick ? \"button\" : undefined}\n tabindex={control.tabindex ?? (clickable() ? 0 : undefined)}\n aria-disabled={(!!local.onClick && local.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 <a\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"chip-link\"}\n class={classes()}\n href={local.href}\n onKeyDown={local.onKeyDown}\n onPointerDown={onPointerDown}\n target={local.target}\n rel=\"noreferrer\"\n >\n {iconAndLabel()}\n {trailing()}\n </a>\n </Show>\n );\n}\n\nexport default Chip;\n"],"mappings":"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","names":[],"file":"chip.jsx"}
|
|
@@ -27,20 +27,23 @@ function ChipGroup(props) {
|
|
|
27
27
|
local.onChange?.(value);
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
|
-
return
|
|
30
|
+
return (
|
|
31
|
+
// role="group" is a default: the caller's own wins, and an explicit undefined keeps it.
|
|
32
|
+
<div {...rest} role={rest.role ?? "group"} class={cn("smwb-chip-group", local.class)}>
|
|
31
33
|
<For each={local.options}>
|
|
32
34
|
{(option) => <Chip
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
label={option.label}
|
|
36
|
+
size={local.size}
|
|
37
|
+
color={local.color}
|
|
38
|
+
selected={isSelected(option.value)}
|
|
39
|
+
variant={isSelected(option.value) ? "filled" : "outlined"}
|
|
40
|
+
disabled={!!(local.disabled || option.disabled)}
|
|
41
|
+
onClick={() => toggle(option.value)}
|
|
42
|
+
{...option.icon ? { icon: option.icon } : {}}
|
|
43
|
+
/>}
|
|
42
44
|
</For>
|
|
43
|
-
</div
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
44
47
|
}
|
|
45
48
|
var chipGroup_default = ChipGroup;
|
|
46
49
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.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`) that apps re-hand-roll\n * for 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(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n <div {...rest} role
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.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`) that apps re-hand-roll\n * for 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(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\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\"} class={cn(\"smwb-chip-group\", local.class)}>\n <For each={local.options}>\n {(option) => (\n <Chip\n label={option.label}\n size={local.size}\n color={local.color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(local.disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n {...(option.icon ? { icon: option.icon } : {})}\n />\n )}\n </For>\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"mappings":"AAAA,SAAmB,KAAK,YAAY,kBAAkB;AACtD,OAAO,QAAQ;AACf,SAAS,YAA4B;AA2B9B,SAAS,UAAU,OAAoC;AAC5D,QAAM,SAAS,WAAW,EAAE,MAAM,UAAmB,OAAO,UAAuB,GAAG,KAAK;AAC3F,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,MAAgB;AACrC,QAAI,MAAM,SAAS,KAAM,QAAO,CAAC;AACjC,WAAO,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,QAAQ,CAAC,MAAM,KAAK;AAAA,EAChE;AACA,QAAM,aAAa,CAAC,UAA2B,eAAe,EAAE,SAAS,KAAK;AAE9E,QAAM,SAAS,CAAC,UAAwB;AACtC,QAAI,MAAM,UAAU;AAClB,YAAM,UAAU,eAAe;AAC/B,YAAM,OAAO,QAAQ,SAAS,KAAK,IAAI,QAAQ,OAAO,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK;AAC9F,YAAM,WAAW,IAAI;AAAA,IACvB,OAAO;AACL,YAAM,WAAW,KAAK;AAAA,IACxB;AAAA,EACF;AAEA;AAAA;AAAA,IAEE,CAAC,QAAQ,MAAM,MAAM,KAAK,QAAQ,SAAS,OAAO,GAAG,mBAAmB,MAAM,KAAK,GAAG;AAAA,MACpF,CAAC,IAAI,MAAM,MAAM,SAAS;AAAA,SACvB,CAAC,WACA,CAAC;AAAA,MACC,OAAO,OAAO;AAAA,MACd,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,WAAW,OAAO,KAAK;AAAA,MACjC,SAAS,WAAW,OAAO,KAAK,IAAI,WAAW;AAAA,MAC/C,UAAU,CAAC,EAAE,MAAM,YAAY,OAAO;AAAA,MACtC,SAAS,MAAM,OAAO,OAAO,KAAK;AAAA,UAC7B,OAAO,OAAO,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,IAC9C,GACA;AAAA,MACJ,EAbC,IAaK;AAAA,IACR,EAfC;AAAA;AAiBL;AAEA,IAAO,oBAAQ;","names":[],"file":"chipGroup.jsx"}
|