@smwb/ui-solid 0.3.0 → 0.4.1
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/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
- package/dist/components/layout/appLayout/appLayout.js +43 -43
- package/dist/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/components/navigation/bottomBar/bottomBar.js +31 -30
- package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/components/navigation/sidebar/sidebar.js +48 -47
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/components/layout/appLayout/appLayout.js +43 -43
- package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/headless/components/navigation/bottomBar/bottomBar.js +31 -30
- package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/headless/components/navigation/sidebar/sidebar.js +48 -47
- package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +177 -0
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -0
- package/dist/headless/source/components/base/animateHeight/index.js +6 -0
- package/dist/headless/source/components/base/animateHeight/index.js.map +7 -0
- package/dist/headless/source/components/base/icon/icon.jsx +60 -0
- package/dist/headless/source/components/base/icon/icon.jsx.map +1 -0
- package/dist/headless/source/components/base/icon/index.js +6 -0
- package/dist/headless/source/components/base/icon/index.js.map +7 -0
- package/dist/headless/source/components/base/ripple/index.js +6 -0
- package/dist/headless/source/components/base/ripple/index.js.map +7 -0
- package/dist/headless/source/components/base/ripple/ripple.jsx +63 -0
- package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -0
- package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx +73 -0
- package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx.map +1 -0
- package/dist/headless/source/components/clickAwayListener/index.js +6 -0
- package/dist/headless/source/components/clickAwayListener/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx +82 -0
- package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/accordion/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/accordion/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +95 -0
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/avatar/index.js +7 -0
- package/dist/headless/source/components/dataDisplay/avatar/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/badge/badge.jsx +56 -0
- package/dist/headless/source/components/dataDisplay/badge/badge.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/badge/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/badge/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/card/card.jsx +54 -0
- package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/card/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/card/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +407 -0
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/carousel/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/carousel/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/carousel/utils.js +76 -0
- package/dist/headless/source/components/dataDisplay/carousel/utils.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx +155 -0
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatAttachmentImage.jsx +53 -0
- package/dist/headless/source/components/dataDisplay/chat/chatAttachmentImage.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatAttachments.jsx +35 -0
- package/dist/headless/source/components/dataDisplay/chat/chatAttachments.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +170 -0
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx +55 -0
- package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +38 -0
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +121 -0
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageAvatar.jsx +19 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageAvatar.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx +56 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageIncoming.jsx +21 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageIncoming.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageItem.jsx +56 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageItem.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageOutgoing.jsx +25 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageOutgoing.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageSkeleton.jsx +33 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageSkeleton.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageStatus.jsx +35 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageStatus.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageSystem.jsx +17 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessageSystem.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessages.jsx +63 -0
- package/dist/headless/source/components/dataDisplay/chat/chatMessages.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +60 -0
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx +66 -0
- package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/index.js +82 -0
- package/dist/headless/source/components/dataDisplay/chat/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/types.js +25 -0
- package/dist/headless/source/components/dataDisplay/chat/types.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/useChatFileUpload.js +49 -0
- package/dist/headless/source/components/dataDisplay/chat/useChatFileUpload.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/useChatInfiniteScroll.js +27 -0
- package/dist/headless/source/components/dataDisplay/chat/useChatInfiniteScroll.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/useChatStickToBottom.js +54 -0
- package/dist/headless/source/components/dataDisplay/chat/useChatStickToBottom.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/utils.js +103 -0
- package/dist/headless/source/components/dataDisplay/chat/utils.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx +119 -0
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chip/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/chip/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +164 -0
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/expansionPanel/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/expansionPanel/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesList.jsx +25 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesList.types.js +1 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesList.types.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListContext.js +8 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListContext.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +55 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx +30 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/imagesList/index.js +12 -0
- package/dist/headless/source/components/dataDisplay/imagesList/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/list/index.js +8 -0
- package/dist/headless/source/components/dataDisplay/list/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/list/list.jsx +24 -0
- package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx +53 -0
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/index.js +17 -0
- package/dist/headless/source/components/dataDisplay/table/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/table/table.jsx +46 -0
- package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +15 -0
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +16 -0
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +15 -0
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +53 -0
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +47 -0
- package/dist/headless/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +25 -0
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/treeView/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/treeView/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +172 -0
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/typography/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/typography/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx +57 -0
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/message/index.js +7 -0
- package/dist/headless/source/components/feedBack/message/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/message/message.jsx +51 -0
- package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/modal/index.js +6 -0
- package/dist/headless/source/components/feedBack/modal/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/modal/modal.jsx +101 -0
- package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/progressIndicator/index.js +7 -0
- package/dist/headless/source/components/feedBack/progressIndicator/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx +68 -0
- package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/skeleton/index.js +6 -0
- package/dist/headless/source/components/feedBack/skeleton/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +65 -0
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/snackbar/index.js +10 -0
- package/dist/headless/source/components/feedBack/snackbar/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +196 -0
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/snackbar/useSnackbarsPortal.js +21 -0
- package/dist/headless/source/components/feedBack/snackbar/useSnackbarsPortal.js.map +7 -0
- package/dist/headless/source/components/feedBack/tooltip/index.js +6 -0
- package/dist/headless/source/components/feedBack/tooltip/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +92 -0
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -0
- package/dist/headless/source/components/inputs/button/button.jsx +101 -0
- package/dist/headless/source/components/inputs/button/button.jsx.map +1 -0
- package/dist/headless/source/components/inputs/button/index.js +6 -0
- package/dist/headless/source/components/inputs/button/index.js.map +7 -0
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +72 -0
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -0
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroupContext.js +8 -0
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroupContext.js.map +7 -0
- package/dist/headless/source/components/inputs/buttonGroups/index.js +9 -0
- package/dist/headless/source/components/inputs/buttonGroups/index.js.map +7 -0
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +86 -0
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -0
- package/dist/headless/source/components/inputs/checkbox/index.js +6 -0
- package/dist/headless/source/components/inputs/checkbox/index.js.map +7 -0
- package/dist/headless/source/components/inputs/datePicker/dataPickerDays.jsx +87 -0
- package/dist/headless/source/components/inputs/datePicker/dataPickerDays.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/dataPickerHeader.jsx +40 -0
- package/dist/headless/source/components/inputs/datePicker/dataPickerHeader.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx +57 -0
- package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/dateFormat.js +89 -0
- package/dist/headless/source/components/inputs/datePicker/dateFormat.js.map +7 -0
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +241 -0
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +48 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +52 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +36 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerList.jsx +44 -0
- package/dist/headless/source/components/inputs/datePicker/datePickerList.jsx.map +1 -0
- package/dist/headless/source/components/inputs/datePicker/dateUtils.js +232 -0
- package/dist/headless/source/components/inputs/datePicker/dateUtils.js.map +7 -0
- package/dist/headless/source/components/inputs/datePicker/index.js +24 -0
- package/dist/headless/source/components/inputs/datePicker/index.js.map +7 -0
- package/dist/headless/source/components/inputs/datePicker/openView.js +10 -0
- package/dist/headless/source/components/inputs/datePicker/openView.js.map +7 -0
- package/dist/headless/source/components/inputs/datePicker/useDateInput.js +56 -0
- package/dist/headless/source/components/inputs/datePicker/useDateInput.js.map +7 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimeFormat.js +119 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimeFormat.js.map +7 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +200 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx +57 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx.map +1 -0
- package/dist/headless/source/components/inputs/dateTimePicker/index.js +20 -0
- package/dist/headless/source/components/inputs/dateTimePicker/index.js.map +7 -0
- package/dist/headless/source/components/inputs/dateTimePicker/useDateTimeInput.js +85 -0
- package/dist/headless/source/components/inputs/dateTimePicker/useDateTimeInput.js.map +7 -0
- package/dist/headless/source/components/inputs/fileDrop/countPreview.jsx +17 -0
- package/dist/headless/source/components/inputs/fileDrop/countPreview.jsx.map +1 -0
- package/dist/headless/source/components/inputs/fileDrop/fileDrop.jsx +72 -0
- package/dist/headless/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -0
- package/dist/headless/source/components/inputs/fileDrop/index.js +14 -0
- package/dist/headless/source/components/inputs/fileDrop/index.js.map +7 -0
- package/dist/headless/source/components/inputs/fileDrop/preview.jsx +41 -0
- package/dist/headless/source/components/inputs/fileDrop/preview.jsx.map +1 -0
- package/dist/headless/source/components/inputs/fileDrop/previewWrapper.jsx +27 -0
- package/dist/headless/source/components/inputs/fileDrop/previewWrapper.jsx.map +1 -0
- package/dist/headless/source/components/inputs/fileDrop/utils.js +7 -0
- package/dist/headless/source/components/inputs/fileDrop/utils.js.map +7 -0
- package/dist/headless/source/components/inputs/fileInput/fileInput.jsx +46 -0
- package/dist/headless/source/components/inputs/fileInput/fileInput.jsx.map +1 -0
- package/dist/headless/source/components/inputs/fileInput/index.js +6 -0
- package/dist/headless/source/components/inputs/fileInput/index.js.map +7 -0
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +30 -0
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -0
- package/dist/headless/source/components/inputs/floatingButton/index.js +6 -0
- package/dist/headless/source/components/inputs/floatingButton/index.js.map +7 -0
- package/dist/headless/source/components/inputs/radioButton/index.js +6 -0
- package/dist/headless/source/components/inputs/radioButton/index.js.map +7 -0
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +75 -0
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -0
- package/dist/headless/source/components/inputs/rating/index.js +6 -0
- package/dist/headless/source/components/inputs/rating/index.js.map +7 -0
- package/dist/headless/source/components/inputs/rating/rating.jsx +124 -0
- package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -0
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +141 -0
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -0
- package/dist/headless/source/components/inputs/selectField/index.js +8 -0
- package/dist/headless/source/components/inputs/selectField/index.js.map +7 -0
- package/dist/headless/source/components/inputs/selectField/selectField.jsx +272 -0
- package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -0
- package/dist/headless/source/components/inputs/slider/index.js +6 -0
- package/dist/headless/source/components/inputs/slider/index.js.map +7 -0
- package/dist/headless/source/components/inputs/slider/slider.jsx +404 -0
- package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -0
- package/dist/headless/source/components/inputs/slider/utils.js +49 -0
- package/dist/headless/source/components/inputs/slider/utils.js.map +7 -0
- package/dist/headless/source/components/inputs/textField/index.js +9 -0
- package/dist/headless/source/components/inputs/textField/index.js.map +7 -0
- package/dist/headless/source/components/inputs/textField/textField.jsx +137 -0
- package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -0
- package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx +31 -0
- package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -0
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +83 -0
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -0
- package/dist/headless/source/components/inputs/textField/types.js +1 -0
- package/dist/headless/source/components/inputs/textField/types.js.map +7 -0
- package/dist/headless/source/components/inputs/textField/utils.js +13 -0
- package/dist/headless/source/components/inputs/textField/utils.js.map +7 -0
- package/dist/headless/source/components/inputs/timePicker/index.js +14 -0
- package/dist/headless/source/components/inputs/timePicker/index.js.map +7 -0
- package/dist/headless/source/components/inputs/timePicker/timeFormat.js +78 -0
- package/dist/headless/source/components/inputs/timePicker/timeFormat.js.map +7 -0
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +114 -0
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -0
- package/dist/headless/source/components/inputs/timePicker/timePickerColumns.jsx +42 -0
- package/dist/headless/source/components/inputs/timePicker/timePickerColumns.jsx.map +1 -0
- package/dist/headless/source/components/inputs/timePicker/timePickerInput.jsx +57 -0
- package/dist/headless/source/components/inputs/timePicker/timePickerInput.jsx.map +1 -0
- package/dist/headless/source/components/inputs/timePicker/timePickerList.jsx +36 -0
- package/dist/headless/source/components/inputs/timePicker/timePickerList.jsx.map +1 -0
- package/dist/headless/source/components/inputs/timePicker/timeUtils.js +96 -0
- package/dist/headless/source/components/inputs/timePicker/timeUtils.js.map +7 -0
- package/dist/headless/source/components/inputs/timePicker/useTimeInput.js +57 -0
- package/dist/headless/source/components/inputs/timePicker/useTimeInput.js.map +7 -0
- package/dist/headless/source/components/inputs/toggle/index.js +6 -0
- package/dist/headless/source/components/inputs/toggle/index.js.map +7 -0
- package/dist/headless/source/components/inputs/toggle/toggle.jsx +77 -0
- package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -0
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx +104 -0
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -0
- package/dist/headless/source/components/layout/appLayout/index.js +6 -0
- package/dist/headless/source/components/layout/appLayout/index.js.map +7 -0
- package/dist/headless/source/components/layout/divider/divider.jsx +68 -0
- package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -0
- package/dist/headless/source/components/layout/divider/index.js +6 -0
- package/dist/headless/source/components/layout/divider/index.js.map +7 -0
- package/dist/headless/source/components/layout/grid/grid.jsx +112 -0
- package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -0
- package/dist/headless/source/components/layout/grid/index.js +8 -0
- package/dist/headless/source/components/layout/grid/index.js.map +7 -0
- package/dist/headless/source/components/layout/page/index.js +6 -0
- package/dist/headless/source/components/layout/page/index.js.map +7 -0
- package/dist/headless/source/components/layout/page/page.jsx +28 -0
- package/dist/headless/source/components/layout/page/page.jsx.map +1 -0
- package/dist/headless/source/components/layout/pageHeader/index.js +6 -0
- package/dist/headless/source/components/layout/pageHeader/index.js.map +7 -0
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +52 -0
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -0
- package/dist/headless/source/components/layout/screenDivider/index.js +6 -0
- package/dist/headless/source/components/layout/screenDivider/index.js.map +7 -0
- package/dist/headless/source/components/layout/screenDivider/screenDivider.jsx +129 -0
- package/dist/headless/source/components/layout/screenDivider/screenDivider.jsx.map +1 -0
- package/dist/headless/source/components/layout/sheet/index.js +6 -0
- package/dist/headless/source/components/layout/sheet/index.js.map +7 -0
- package/dist/headless/source/components/layout/sheet/sheet.jsx +261 -0
- package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -0
- package/dist/headless/source/components/layout/stack/index.js +6 -0
- package/dist/headless/source/components/layout/stack/index.js.map +7 -0
- package/dist/headless/source/components/layout/stack/stack.jsx +53 -0
- package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -0
- package/dist/headless/source/components/navigation/appBar/appBar.jsx +65 -0
- package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -0
- package/dist/headless/source/components/navigation/appBar/index.js +6 -0
- package/dist/headless/source/components/navigation/appBar/index.js.map +7 -0
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +135 -0
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -0
- package/dist/headless/source/components/navigation/bottomBar/index.js +6 -0
- package/dist/headless/source/components/navigation/bottomBar/index.js.map +7 -0
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +62 -0
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -0
- package/dist/headless/source/components/navigation/breadcrumbs/index.js +6 -0
- package/dist/headless/source/components/navigation/breadcrumbs/index.js.map +7 -0
- package/dist/headless/source/components/navigation/menu/index.js +23 -0
- package/dist/headless/source/components/navigation/menu/index.js.map +7 -0
- package/dist/headless/source/components/navigation/menu/menu.jsx +27 -0
- package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx +18 -0
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuContext.js +14 -0
- package/dist/headless/source/components/navigation/menu/menuContext.js.map +7 -0
- package/dist/headless/source/components/navigation/menu/menuDivider.jsx +19 -0
- package/dist/headless/source/components/navigation/menu/menuDivider.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx +84 -0
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuItem.jsx +68 -0
- package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuItemIcon.jsx +25 -0
- package/dist/headless/source/components/navigation/menu/menuItemIcon.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuItemText.jsx +25 -0
- package/dist/headless/source/components/navigation/menu/menuItemText.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuList.jsx +46 -0
- package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -0
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +86 -0
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -0
- package/dist/headless/source/components/navigation/pagination/index.js +6 -0
- package/dist/headless/source/components/navigation/pagination/index.js.map +7 -0
- package/dist/headless/source/components/navigation/pagination/pagination.jsx +142 -0
- package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -0
- package/dist/headless/source/components/navigation/sidebar/index.js +6 -0
- package/dist/headless/source/components/navigation/sidebar/index.js.map +7 -0
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +115 -0
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -0
- package/dist/headless/source/components/navigation/stepper/index.js +6 -0
- package/dist/headless/source/components/navigation/stepper/index.js.map +7 -0
- package/dist/headless/source/components/navigation/stepper/stepper.jsx +82 -0
- package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -0
- package/dist/headless/source/components/navigation/tabs/index.js +10 -0
- package/dist/headless/source/components/navigation/tabs/index.js.map +7 -0
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +75 -0
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -0
- package/dist/headless/source/components/navigation/tabs/tabs.jsx +141 -0
- package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -0
- package/dist/headless/source/components/navigation/tabs/tabsContext.js +8 -0
- package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +7 -0
- package/dist/headless/source/index.js +309 -0
- package/dist/headless/source/index.js.map +7 -0
- package/dist/headless/source/primitives/callHandler.js +12 -0
- package/dist/headless/source/primitives/callHandler.js.map +7 -0
- package/dist/headless/source/primitives/createControllableState.js +19 -0
- package/dist/headless/source/primitives/createControllableState.js.map +7 -0
- package/dist/headless/source/primitives/createCssTransition.js +59 -0
- package/dist/headless/source/primitives/createCssTransition.js.map +7 -0
- package/dist/headless/source/primitives/createDropzone.js +46 -0
- package/dist/headless/source/primitives/createDropzone.js.map +7 -0
- package/dist/headless/source/primitives/createFloating.js +48 -0
- package/dist/headless/source/primitives/createFloating.js.map +7 -0
- package/dist/headless/source/primitives/createFocusTrap.js +50 -0
- package/dist/headless/source/primitives/createFocusTrap.js.map +7 -0
- package/dist/headless/source/primitives/createId.js +9 -0
- package/dist/headless/source/primitives/createId.js.map +7 -0
- package/dist/headless/source/primitives/createMaskedInput.js +35 -0
- package/dist/headless/source/primitives/createMaskedInput.js.map +7 -0
- package/dist/headless/source/primitives/createTheme.js +51 -0
- package/dist/headless/source/primitives/createTheme.js.map +7 -0
- package/dist/headless/source/primitives/createVirtualList.js +19 -0
- package/dist/headless/source/primitives/createVirtualList.js.map +7 -0
- package/dist/headless/source/primitives/mergeRefs.js +13 -0
- package/dist/headless/source/primitives/mergeRefs.js.map +7 -0
- package/dist/headless/source/utils/animate.js +35 -0
- package/dist/headless/source/utils/animate.js.map +7 -0
- package/dist/headless/source/utils/debounce.js +23 -0
- package/dist/headless/source/utils/debounce.js.map +7 -0
- package/dist/headless/source/utils/floating.js +42 -0
- package/dist/headless/source/utils/floating.js.map +7 -0
- package/dist/headless/source/utils/throttle.js +41 -0
- package/dist/headless/source/utils/throttle.js.map +7 -0
- package/dist/source/components/base/animateHeight/animateHeight.jsx +177 -0
- package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -0
- package/dist/source/components/base/animateHeight/index.js +6 -0
- package/dist/source/components/base/animateHeight/index.js.map +7 -0
- package/dist/source/components/base/icon/icon.jsx +61 -0
- package/dist/source/components/base/icon/icon.jsx.map +1 -0
- package/dist/source/components/base/icon/index.js +6 -0
- package/dist/source/components/base/icon/index.js.map +7 -0
- package/dist/source/components/base/ripple/index.js +6 -0
- package/dist/source/components/base/ripple/index.js.map +7 -0
- package/dist/source/components/base/ripple/ripple.jsx +64 -0
- package/dist/source/components/base/ripple/ripple.jsx.map +1 -0
- package/dist/source/components/clickAwayListener/clickAwayListener.jsx +73 -0
- package/dist/source/components/clickAwayListener/clickAwayListener.jsx.map +1 -0
- package/dist/source/components/clickAwayListener/index.js +6 -0
- package/dist/source/components/clickAwayListener/index.js.map +7 -0
- package/dist/source/components/dataDisplay/accordion/accordion.jsx +83 -0
- package/dist/source/components/dataDisplay/accordion/accordion.jsx.map +1 -0
- package/dist/source/components/dataDisplay/accordion/index.js +6 -0
- package/dist/source/components/dataDisplay/accordion/index.js.map +7 -0
- package/dist/source/components/dataDisplay/avatar/avatar.jsx +96 -0
- package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -0
- package/dist/source/components/dataDisplay/avatar/index.js +7 -0
- package/dist/source/components/dataDisplay/avatar/index.js.map +7 -0
- package/dist/source/components/dataDisplay/badge/badge.jsx +57 -0
- package/dist/source/components/dataDisplay/badge/badge.jsx.map +1 -0
- package/dist/source/components/dataDisplay/badge/index.js +6 -0
- package/dist/source/components/dataDisplay/badge/index.js.map +7 -0
- package/dist/source/components/dataDisplay/card/card.jsx +55 -0
- package/dist/source/components/dataDisplay/card/card.jsx.map +1 -0
- package/dist/source/components/dataDisplay/card/index.js +6 -0
- package/dist/source/components/dataDisplay/card/index.js.map +7 -0
- package/dist/source/components/dataDisplay/carousel/carousel.jsx +408 -0
- package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -0
- package/dist/source/components/dataDisplay/carousel/index.js +6 -0
- package/dist/source/components/dataDisplay/carousel/index.js.map +7 -0
- package/dist/source/components/dataDisplay/carousel/utils.js +76 -0
- package/dist/source/components/dataDisplay/carousel/utils.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/chat.jsx +156 -0
- package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatAttachmentImage.jsx +53 -0
- package/dist/source/components/dataDisplay/chat/chatAttachmentImage.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatAttachments.jsx +35 -0
- package/dist/source/components/dataDisplay/chat/chatAttachments.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx +170 -0
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatHeader.jsx +55 -0
- package/dist/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +38 -0
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx +121 -0
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageAvatar.jsx +19 -0
- package/dist/source/components/dataDisplay/chat/chatMessageAvatar.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx +56 -0
- package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageIncoming.jsx +21 -0
- package/dist/source/components/dataDisplay/chat/chatMessageIncoming.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageItem.jsx +56 -0
- package/dist/source/components/dataDisplay/chat/chatMessageItem.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageOutgoing.jsx +25 -0
- package/dist/source/components/dataDisplay/chat/chatMessageOutgoing.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageSkeleton.jsx +33 -0
- package/dist/source/components/dataDisplay/chat/chatMessageSkeleton.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageStatus.jsx +35 -0
- package/dist/source/components/dataDisplay/chat/chatMessageStatus.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessageSystem.jsx +17 -0
- package/dist/source/components/dataDisplay/chat/chatMessageSystem.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatMessages.jsx +63 -0
- package/dist/source/components/dataDisplay/chat/chatMessages.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +60 -0
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/chatShell.jsx +66 -0
- package/dist/source/components/dataDisplay/chat/chatShell.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chat/index.js +82 -0
- package/dist/source/components/dataDisplay/chat/index.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/types.js +25 -0
- package/dist/source/components/dataDisplay/chat/types.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/useChatFileUpload.js +49 -0
- package/dist/source/components/dataDisplay/chat/useChatFileUpload.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/useChatInfiniteScroll.js +27 -0
- package/dist/source/components/dataDisplay/chat/useChatInfiniteScroll.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/useChatStickToBottom.js +54 -0
- package/dist/source/components/dataDisplay/chat/useChatStickToBottom.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/utils.js +103 -0
- package/dist/source/components/dataDisplay/chat/utils.js.map +7 -0
- package/dist/source/components/dataDisplay/chip/chip.jsx +120 -0
- package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chip/index.js +6 -0
- package/dist/source/components/dataDisplay/chip/index.js.map +7 -0
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +165 -0
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -0
- package/dist/source/components/dataDisplay/expansionPanel/index.js +6 -0
- package/dist/source/components/dataDisplay/expansionPanel/index.js.map +7 -0
- package/dist/source/components/dataDisplay/imagesList/imagesList.jsx +26 -0
- package/dist/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -0
- package/dist/source/components/dataDisplay/imagesList/imagesList.types.js +1 -0
- package/dist/source/components/dataDisplay/imagesList/imagesList.types.js.map +7 -0
- package/dist/source/components/dataDisplay/imagesList/imagesListContext.js +8 -0
- package/dist/source/components/dataDisplay/imagesList/imagesListContext.js.map +7 -0
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +56 -0
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -0
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx +30 -0
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx.map +1 -0
- package/dist/source/components/dataDisplay/imagesList/index.js +12 -0
- package/dist/source/components/dataDisplay/imagesList/index.js.map +7 -0
- package/dist/source/components/dataDisplay/list/index.js +8 -0
- package/dist/source/components/dataDisplay/list/index.js.map +7 -0
- package/dist/source/components/dataDisplay/list/list.jsx +25 -0
- package/dist/source/components/dataDisplay/list/list.jsx.map +1 -0
- package/dist/source/components/dataDisplay/list/listItem.jsx +53 -0
- package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/index.js +17 -0
- package/dist/source/components/dataDisplay/table/index.js.map +7 -0
- package/dist/source/components/dataDisplay/table/table.jsx +47 -0
- package/dist/source/components/dataDisplay/table/table.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableBody.jsx +15 -0
- package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableCell.jsx +16 -0
- package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableHead.jsx +15 -0
- package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +53 -0
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +48 -0
- package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableRow.jsx +25 -0
- package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -0
- package/dist/source/components/dataDisplay/treeView/index.js +6 -0
- package/dist/source/components/dataDisplay/treeView/index.js.map +7 -0
- package/dist/source/components/dataDisplay/treeView/treeView.jsx +173 -0
- package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -0
- package/dist/source/components/dataDisplay/typography/index.js +6 -0
- package/dist/source/components/dataDisplay/typography/index.js.map +7 -0
- package/dist/source/components/dataDisplay/typography/typography.jsx +58 -0
- package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -0
- package/dist/source/components/feedBack/message/index.js +7 -0
- package/dist/source/components/feedBack/message/index.js.map +7 -0
- package/dist/source/components/feedBack/message/message.jsx +52 -0
- package/dist/source/components/feedBack/message/message.jsx.map +1 -0
- package/dist/source/components/feedBack/modal/index.js +6 -0
- package/dist/source/components/feedBack/modal/index.js.map +7 -0
- package/dist/source/components/feedBack/modal/modal.jsx +102 -0
- package/dist/source/components/feedBack/modal/modal.jsx.map +1 -0
- package/dist/source/components/feedBack/progressIndicator/index.js +7 -0
- package/dist/source/components/feedBack/progressIndicator/index.js.map +7 -0
- package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx +69 -0
- package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -0
- package/dist/source/components/feedBack/skeleton/index.js +6 -0
- package/dist/source/components/feedBack/skeleton/index.js.map +7 -0
- package/dist/source/components/feedBack/skeleton/skeleton.jsx +66 -0
- package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -0
- package/dist/source/components/feedBack/snackbar/index.js +10 -0
- package/dist/source/components/feedBack/snackbar/index.js.map +7 -0
- package/dist/source/components/feedBack/snackbar/snackbar.jsx +197 -0
- package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -0
- package/dist/source/components/feedBack/snackbar/useSnackbarsPortal.js +21 -0
- package/dist/source/components/feedBack/snackbar/useSnackbarsPortal.js.map +7 -0
- package/dist/source/components/feedBack/tooltip/index.js +6 -0
- package/dist/source/components/feedBack/tooltip/index.js.map +7 -0
- package/dist/source/components/feedBack/tooltip/tooltip.jsx +93 -0
- package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -0
- package/dist/source/components/inputs/button/button.jsx +102 -0
- package/dist/source/components/inputs/button/button.jsx.map +1 -0
- package/dist/source/components/inputs/button/index.js +6 -0
- package/dist/source/components/inputs/button/index.js.map +7 -0
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +73 -0
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -0
- package/dist/source/components/inputs/buttonGroups/buttonGroupContext.js +8 -0
- package/dist/source/components/inputs/buttonGroups/buttonGroupContext.js.map +7 -0
- package/dist/source/components/inputs/buttonGroups/index.js +9 -0
- package/dist/source/components/inputs/buttonGroups/index.js.map +7 -0
- package/dist/source/components/inputs/checkbox/checkbox.jsx +87 -0
- package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -0
- package/dist/source/components/inputs/checkbox/index.js +6 -0
- package/dist/source/components/inputs/checkbox/index.js.map +7 -0
- package/dist/source/components/inputs/datePicker/dataPickerDays.jsx +87 -0
- package/dist/source/components/inputs/datePicker/dataPickerDays.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/dataPickerHeader.jsx +40 -0
- package/dist/source/components/inputs/datePicker/dataPickerHeader.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/dataPickerInput.jsx +57 -0
- package/dist/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/dateFormat.js +89 -0
- package/dist/source/components/inputs/datePicker/dateFormat.js.map +7 -0
- package/dist/source/components/inputs/datePicker/datePicker.jsx +242 -0
- package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +48 -0
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx +52 -0
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +36 -0
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/datePickerList.jsx +44 -0
- package/dist/source/components/inputs/datePicker/datePickerList.jsx.map +1 -0
- package/dist/source/components/inputs/datePicker/dateUtils.js +232 -0
- package/dist/source/components/inputs/datePicker/dateUtils.js.map +7 -0
- package/dist/source/components/inputs/datePicker/index.js +24 -0
- package/dist/source/components/inputs/datePicker/index.js.map +7 -0
- package/dist/source/components/inputs/datePicker/openView.js +10 -0
- package/dist/source/components/inputs/datePicker/openView.js.map +7 -0
- package/dist/source/components/inputs/datePicker/useDateInput.js +56 -0
- package/dist/source/components/inputs/datePicker/useDateInput.js.map +7 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimeFormat.js +119 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimeFormat.js.map +7 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +200 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx +57 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx.map +1 -0
- package/dist/source/components/inputs/dateTimePicker/index.js +20 -0
- package/dist/source/components/inputs/dateTimePicker/index.js.map +7 -0
- package/dist/source/components/inputs/dateTimePicker/useDateTimeInput.js +85 -0
- package/dist/source/components/inputs/dateTimePicker/useDateTimeInput.js.map +7 -0
- package/dist/source/components/inputs/fileDrop/countPreview.jsx +17 -0
- package/dist/source/components/inputs/fileDrop/countPreview.jsx.map +1 -0
- package/dist/source/components/inputs/fileDrop/fileDrop.jsx +73 -0
- package/dist/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -0
- package/dist/source/components/inputs/fileDrop/index.js +14 -0
- package/dist/source/components/inputs/fileDrop/index.js.map +7 -0
- package/dist/source/components/inputs/fileDrop/preview.jsx +41 -0
- package/dist/source/components/inputs/fileDrop/preview.jsx.map +1 -0
- package/dist/source/components/inputs/fileDrop/previewWrapper.jsx +27 -0
- package/dist/source/components/inputs/fileDrop/previewWrapper.jsx.map +1 -0
- package/dist/source/components/inputs/fileDrop/utils.js +7 -0
- package/dist/source/components/inputs/fileDrop/utils.js.map +7 -0
- package/dist/source/components/inputs/fileInput/fileInput.jsx +47 -0
- package/dist/source/components/inputs/fileInput/fileInput.jsx.map +1 -0
- package/dist/source/components/inputs/fileInput/index.js +6 -0
- package/dist/source/components/inputs/fileInput/index.js.map +7 -0
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx +31 -0
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -0
- package/dist/source/components/inputs/floatingButton/index.js +6 -0
- package/dist/source/components/inputs/floatingButton/index.js.map +7 -0
- package/dist/source/components/inputs/radioButton/index.js +6 -0
- package/dist/source/components/inputs/radioButton/index.js.map +7 -0
- package/dist/source/components/inputs/radioButton/radioButton.jsx +76 -0
- package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -0
- package/dist/source/components/inputs/rating/index.js +6 -0
- package/dist/source/components/inputs/rating/index.js.map +7 -0
- package/dist/source/components/inputs/rating/rating.jsx +125 -0
- package/dist/source/components/inputs/rating/rating.jsx.map +1 -0
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx +141 -0
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -0
- package/dist/source/components/inputs/selectField/index.js +8 -0
- package/dist/source/components/inputs/selectField/index.js.map +7 -0
- package/dist/source/components/inputs/selectField/selectField.jsx +273 -0
- package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -0
- package/dist/source/components/inputs/slider/index.js +6 -0
- package/dist/source/components/inputs/slider/index.js.map +7 -0
- package/dist/source/components/inputs/slider/slider.jsx +405 -0
- package/dist/source/components/inputs/slider/slider.jsx.map +1 -0
- package/dist/source/components/inputs/slider/utils.js +49 -0
- package/dist/source/components/inputs/slider/utils.js.map +7 -0
- package/dist/source/components/inputs/textField/index.js +9 -0
- package/dist/source/components/inputs/textField/index.js.map +7 -0
- package/dist/source/components/inputs/textField/textField.jsx +138 -0
- package/dist/source/components/inputs/textField/textField.jsx.map +1 -0
- package/dist/source/components/inputs/textField/textFieldAdornment.jsx +31 -0
- package/dist/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -0
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx +83 -0
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -0
- package/dist/source/components/inputs/textField/types.js +1 -0
- package/dist/source/components/inputs/textField/types.js.map +7 -0
- package/dist/source/components/inputs/textField/utils.js +13 -0
- package/dist/source/components/inputs/textField/utils.js.map +7 -0
- package/dist/source/components/inputs/timePicker/index.js +14 -0
- package/dist/source/components/inputs/timePicker/index.js.map +7 -0
- package/dist/source/components/inputs/timePicker/timeFormat.js +78 -0
- package/dist/source/components/inputs/timePicker/timeFormat.js.map +7 -0
- package/dist/source/components/inputs/timePicker/timePicker.jsx +115 -0
- package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -0
- package/dist/source/components/inputs/timePicker/timePickerColumns.jsx +42 -0
- package/dist/source/components/inputs/timePicker/timePickerColumns.jsx.map +1 -0
- package/dist/source/components/inputs/timePicker/timePickerInput.jsx +57 -0
- package/dist/source/components/inputs/timePicker/timePickerInput.jsx.map +1 -0
- package/dist/source/components/inputs/timePicker/timePickerList.jsx +36 -0
- package/dist/source/components/inputs/timePicker/timePickerList.jsx.map +1 -0
- package/dist/source/components/inputs/timePicker/timeUtils.js +96 -0
- package/dist/source/components/inputs/timePicker/timeUtils.js.map +7 -0
- package/dist/source/components/inputs/timePicker/useTimeInput.js +57 -0
- package/dist/source/components/inputs/timePicker/useTimeInput.js.map +7 -0
- package/dist/source/components/inputs/toggle/index.js +6 -0
- package/dist/source/components/inputs/toggle/index.js.map +7 -0
- package/dist/source/components/inputs/toggle/toggle.jsx +78 -0
- package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -0
- package/dist/source/components/layout/appLayout/appLayout.jsx +105 -0
- package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -0
- package/dist/source/components/layout/appLayout/index.js +6 -0
- package/dist/source/components/layout/appLayout/index.js.map +7 -0
- package/dist/source/components/layout/divider/divider.jsx +69 -0
- package/dist/source/components/layout/divider/divider.jsx.map +1 -0
- package/dist/source/components/layout/divider/index.js +6 -0
- package/dist/source/components/layout/divider/index.js.map +7 -0
- package/dist/source/components/layout/grid/grid.jsx +113 -0
- package/dist/source/components/layout/grid/grid.jsx.map +1 -0
- package/dist/source/components/layout/grid/index.js +8 -0
- package/dist/source/components/layout/grid/index.js.map +7 -0
- package/dist/source/components/layout/page/index.js +6 -0
- package/dist/source/components/layout/page/index.js.map +7 -0
- package/dist/source/components/layout/page/page.jsx +29 -0
- package/dist/source/components/layout/page/page.jsx.map +1 -0
- package/dist/source/components/layout/pageHeader/index.js +6 -0
- package/dist/source/components/layout/pageHeader/index.js.map +7 -0
- package/dist/source/components/layout/pageHeader/pageHeader.jsx +53 -0
- package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -0
- package/dist/source/components/layout/screenDivider/index.js +6 -0
- package/dist/source/components/layout/screenDivider/index.js.map +7 -0
- package/dist/source/components/layout/screenDivider/screenDivider.jsx +130 -0
- package/dist/source/components/layout/screenDivider/screenDivider.jsx.map +1 -0
- package/dist/source/components/layout/sheet/index.js +6 -0
- package/dist/source/components/layout/sheet/index.js.map +7 -0
- package/dist/source/components/layout/sheet/sheet.jsx +262 -0
- package/dist/source/components/layout/sheet/sheet.jsx.map +1 -0
- package/dist/source/components/layout/stack/index.js +6 -0
- package/dist/source/components/layout/stack/index.js.map +7 -0
- package/dist/source/components/layout/stack/stack.jsx +54 -0
- package/dist/source/components/layout/stack/stack.jsx.map +1 -0
- package/dist/source/components/navigation/appBar/appBar.jsx +66 -0
- package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -0
- package/dist/source/components/navigation/appBar/index.js +6 -0
- package/dist/source/components/navigation/appBar/index.js.map +7 -0
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx +136 -0
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -0
- package/dist/source/components/navigation/bottomBar/index.js +6 -0
- package/dist/source/components/navigation/bottomBar/index.js.map +7 -0
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +63 -0
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -0
- package/dist/source/components/navigation/breadcrumbs/index.js +6 -0
- package/dist/source/components/navigation/breadcrumbs/index.js.map +7 -0
- package/dist/source/components/navigation/menu/index.js +23 -0
- package/dist/source/components/navigation/menu/index.js.map +7 -0
- package/dist/source/components/navigation/menu/menu.jsx +28 -0
- package/dist/source/components/navigation/menu/menu.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuComponent.jsx +18 -0
- package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuContext.js +14 -0
- package/dist/source/components/navigation/menu/menuContext.js.map +7 -0
- package/dist/source/components/navigation/menu/menuDivider.jsx +19 -0
- package/dist/source/components/navigation/menu/menuDivider.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuFloating.jsx +84 -0
- package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuItem.jsx +68 -0
- package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuItemIcon.jsx +25 -0
- package/dist/source/components/navigation/menu/menuItemIcon.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuItemText.jsx +25 -0
- package/dist/source/components/navigation/menu/menuItemText.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuList.jsx +46 -0
- package/dist/source/components/navigation/menu/menuList.jsx.map +1 -0
- package/dist/source/components/navigation/menu/menuSubmenu.jsx +86 -0
- package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -0
- package/dist/source/components/navigation/pagination/index.js +6 -0
- package/dist/source/components/navigation/pagination/index.js.map +7 -0
- package/dist/source/components/navigation/pagination/pagination.jsx +143 -0
- package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -0
- package/dist/source/components/navigation/sidebar/index.js +6 -0
- package/dist/source/components/navigation/sidebar/index.js.map +7 -0
- package/dist/source/components/navigation/sidebar/sidebar.jsx +116 -0
- package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -0
- package/dist/source/components/navigation/stepper/index.js +6 -0
- package/dist/source/components/navigation/stepper/index.js.map +7 -0
- package/dist/source/components/navigation/stepper/stepper.jsx +83 -0
- package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -0
- package/dist/source/components/navigation/tabs/index.js +10 -0
- package/dist/source/components/navigation/tabs/index.js.map +7 -0
- package/dist/source/components/navigation/tabs/tab/tab.jsx +76 -0
- package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -0
- package/dist/source/components/navigation/tabs/tabs.jsx +142 -0
- package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -0
- package/dist/source/components/navigation/tabs/tabsContext.js +8 -0
- package/dist/source/components/navigation/tabs/tabsContext.js.map +7 -0
- package/dist/source/index.js +309 -0
- package/dist/source/index.js.map +7 -0
- package/dist/source/primitives/callHandler.js +12 -0
- package/dist/source/primitives/callHandler.js.map +7 -0
- package/dist/source/primitives/createControllableState.js +19 -0
- package/dist/source/primitives/createControllableState.js.map +7 -0
- package/dist/source/primitives/createCssTransition.js +59 -0
- package/dist/source/primitives/createCssTransition.js.map +7 -0
- package/dist/source/primitives/createDropzone.js +46 -0
- package/dist/source/primitives/createDropzone.js.map +7 -0
- package/dist/source/primitives/createFloating.js +48 -0
- package/dist/source/primitives/createFloating.js.map +7 -0
- package/dist/source/primitives/createFocusTrap.js +50 -0
- package/dist/source/primitives/createFocusTrap.js.map +7 -0
- package/dist/source/primitives/createId.js +9 -0
- package/dist/source/primitives/createId.js.map +7 -0
- package/dist/source/primitives/createMaskedInput.js +35 -0
- package/dist/source/primitives/createMaskedInput.js.map +7 -0
- package/dist/source/primitives/createTheme.js +51 -0
- package/dist/source/primitives/createTheme.js.map +7 -0
- package/dist/source/primitives/createVirtualList.js +19 -0
- package/dist/source/primitives/createVirtualList.js.map +7 -0
- package/dist/source/primitives/mergeRefs.js +13 -0
- package/dist/source/primitives/mergeRefs.js.map +7 -0
- package/dist/source/utils/animate.js +35 -0
- package/dist/source/utils/animate.js.map +7 -0
- package/dist/source/utils/debounce.js +23 -0
- package/dist/source/utils/debounce.js.map +7 -0
- package/dist/source/utils/floating.js +42 -0
- package/dist/source/utils/floating.js.map +7 -0
- package/dist/source/utils/throttle.js +41 -0
- package/dist/source/utils/throttle.js.map +7 -0
- package/package.json +11 -5
- package/dist/ssr.ssr-spec.d.ts +0 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import "@smwb/ui-styles/less/components/chat/chat.entry.less";
|
|
2
|
+
import { Show, createMemo, mergeProps } from "solid-js";
|
|
3
|
+
import cn from "clsx";
|
|
4
|
+
import { FloatingButton } from "../../inputs/floatingButton";
|
|
5
|
+
import { Icon } from "../../base/icon";
|
|
6
|
+
import { createControllableState } from "../../../primitives/createControllableState";
|
|
7
|
+
import { createId } from "../../../primitives/createId";
|
|
8
|
+
import { ChatComposer } from "./chatComposer";
|
|
9
|
+
import { ChatHeader } from "./chatHeader";
|
|
10
|
+
import { ChatMessages } from "./chatMessages";
|
|
11
|
+
import { ChatShell } from "./chatShell";
|
|
12
|
+
import { createChatFileUpload } from "./useChatFileUpload";
|
|
13
|
+
import {
|
|
14
|
+
CHAT_EXPAND_LAYOUTS
|
|
15
|
+
} from "./types";
|
|
16
|
+
import { pickInitialLayout, resolveAllowedLayouts, shouldShowChatCloseButton } from "./utils";
|
|
17
|
+
function Chat(props) {
|
|
18
|
+
const p = mergeProps(
|
|
19
|
+
{
|
|
20
|
+
showAvatars: false,
|
|
21
|
+
showAttachments: false,
|
|
22
|
+
anchor: "bottom-right",
|
|
23
|
+
themeMode: "inherit",
|
|
24
|
+
defaultOpen: false,
|
|
25
|
+
floatingTrigger: false,
|
|
26
|
+
composerPlaceholder: "message",
|
|
27
|
+
composerShiftEnterNewline: true,
|
|
28
|
+
composerCtrlEnterNewline: true,
|
|
29
|
+
fileUpload: false,
|
|
30
|
+
embedded: false,
|
|
31
|
+
overlayContext: false,
|
|
32
|
+
showStatus: false
|
|
33
|
+
},
|
|
34
|
+
props
|
|
35
|
+
);
|
|
36
|
+
const allowedLayouts = createMemo(() => resolveAllowedLayouts(p.allowedLayouts ?? CHAT_EXPAND_LAYOUTS));
|
|
37
|
+
const [open, setOpen] = createControllableState({
|
|
38
|
+
value: () => p.open,
|
|
39
|
+
defaultValue: p.defaultOpen,
|
|
40
|
+
onChange: p.onOpenChange
|
|
41
|
+
});
|
|
42
|
+
const [layout, setLayout] = createControllableState({
|
|
43
|
+
value: () => p.layout,
|
|
44
|
+
defaultValue: pickInitialLayout(allowedLayouts(), p.defaultLayout),
|
|
45
|
+
onChange: p.onLayoutChange
|
|
46
|
+
});
|
|
47
|
+
const effectiveLayout = () => p.embedded ? "fullHeight" : p.floatingTrigger ? open() ? layout() : "closed" : layout();
|
|
48
|
+
const handleOpen = () => {
|
|
49
|
+
setOpen(true);
|
|
50
|
+
if (layout() === "closed") {
|
|
51
|
+
setLayout(pickInitialLayout(allowedLayouts(), p.defaultLayout));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const handleClose = () => {
|
|
55
|
+
setOpen(false);
|
|
56
|
+
};
|
|
57
|
+
const handleLayoutChange = (next) => {
|
|
58
|
+
setOpen(true);
|
|
59
|
+
setLayout(next);
|
|
60
|
+
};
|
|
61
|
+
const fileUpload = createChatFileUpload({
|
|
62
|
+
enabled: () => p.fileUpload,
|
|
63
|
+
accept: p.fileUploadAccept,
|
|
64
|
+
maxFiles: p.fileUploadMaxFiles,
|
|
65
|
+
onUploadFiles: p.onUploadFiles,
|
|
66
|
+
disabled: () => Boolean(p.composerDisabled)
|
|
67
|
+
});
|
|
68
|
+
const attachInputId = createId();
|
|
69
|
+
const showComposer = () => Boolean(p.onSendMessage) || fileUpload.enabled();
|
|
70
|
+
const fileInput = () => <Show when={fileUpload.enabled()}>
|
|
71
|
+
<input {...fileUpload.getInputProps({ id: attachInputId })} data-testid="chat-file-input" />
|
|
72
|
+
</Show>;
|
|
73
|
+
const resolvedFooter = () => p.footer ?? p.children ?? (showComposer() ? <>
|
|
74
|
+
{fileInput()}
|
|
75
|
+
<ChatComposer
|
|
76
|
+
onSendMessage={p.onSendMessage}
|
|
77
|
+
placeholder={p.composerPlaceholder}
|
|
78
|
+
disabled={p.composerDisabled}
|
|
79
|
+
shiftEnterNewline={p.composerShiftEnterNewline}
|
|
80
|
+
ctrlEnterNewline={p.composerCtrlEnterNewline}
|
|
81
|
+
fileUpload={fileUpload.enabled()}
|
|
82
|
+
attachInputId={fileUpload.enabled() ? attachInputId : void 0}
|
|
83
|
+
attachAriaLabel={p.attachAriaLabel}
|
|
84
|
+
/>
|
|
85
|
+
</> : void 0);
|
|
86
|
+
const closeButtonVisible = () => shouldShowChatCloseButton({
|
|
87
|
+
floatingTrigger: p.floatingTrigger,
|
|
88
|
+
embedded: p.embedded,
|
|
89
|
+
overlayContext: p.overlayContext,
|
|
90
|
+
effectiveLayout: effectiveLayout(),
|
|
91
|
+
showCloseButton: p.showCloseButton
|
|
92
|
+
});
|
|
93
|
+
return <div
|
|
94
|
+
class={cn(
|
|
95
|
+
"smwb-chat",
|
|
96
|
+
!p.embedded && `smwb-chat_${p.anchor}`,
|
|
97
|
+
p.embedded && "smwb-chat_embedded",
|
|
98
|
+
p.overlayContext && "smwb-chat_overlay-context",
|
|
99
|
+
p.class
|
|
100
|
+
)}
|
|
101
|
+
data-testid="chat"
|
|
102
|
+
>
|
|
103
|
+
<Show when={p.floatingTrigger && !p.embedded && !open()}>
|
|
104
|
+
<FloatingButton
|
|
105
|
+
class="smwb-chat__trigger"
|
|
106
|
+
aria-label={p.triggerLabel ?? "Open chat"}
|
|
107
|
+
data-testid="chat-trigger"
|
|
108
|
+
onClick={handleOpen}
|
|
109
|
+
>
|
|
110
|
+
<Show when={p.triggerIcon} fallback={<Icon name="chat" size={24} />}>
|
|
111
|
+
{p.triggerIcon}
|
|
112
|
+
</Show>
|
|
113
|
+
</FloatingButton>
|
|
114
|
+
</Show>
|
|
115
|
+
<ChatShell
|
|
116
|
+
layout={effectiveLayout()}
|
|
117
|
+
anchor={p.anchor}
|
|
118
|
+
themeMode={p.themeMode}
|
|
119
|
+
embedded={p.embedded}
|
|
120
|
+
overlayContext={p.overlayContext}
|
|
121
|
+
fileDropzoneRootProps={fileUpload.enabled() ? fileUpload.getRootProps() : void 0}
|
|
122
|
+
fileDropzoneActive={fileUpload.enabled() && fileUpload.isDragActive()}
|
|
123
|
+
header={<ChatHeader
|
|
124
|
+
title={p.headerTitle}
|
|
125
|
+
subtitle={p.headerSubtitle}
|
|
126
|
+
actions={p.headerActions}
|
|
127
|
+
layout={effectiveLayout() === "closed" ? layout() : effectiveLayout()}
|
|
128
|
+
allowedLayouts={allowedLayouts()}
|
|
129
|
+
onLayoutChange={handleLayoutChange}
|
|
130
|
+
onClose={closeButtonVisible() ? handleClose : void 0}
|
|
131
|
+
/>}
|
|
132
|
+
footer={resolvedFooter()}
|
|
133
|
+
>
|
|
134
|
+
<ChatMessages
|
|
135
|
+
messages={p.messages}
|
|
136
|
+
showAvatars={p.showAvatars}
|
|
137
|
+
showAttachments={p.showAttachments}
|
|
138
|
+
showStatus={p.showStatus}
|
|
139
|
+
statusIcons={p.statusIcons}
|
|
140
|
+
renderStatus={p.renderStatus}
|
|
141
|
+
onLoadMore={p.onLoadMore}
|
|
142
|
+
hasMore={p.hasMore}
|
|
143
|
+
loading={p.loading}
|
|
144
|
+
loadingMore={p.loadingMore}
|
|
145
|
+
loadingSkeletonCount={p.loadingSkeletonCount}
|
|
146
|
+
renderMessage={p.renderMessage}
|
|
147
|
+
/>
|
|
148
|
+
</ChatShell>
|
|
149
|
+
</div>;
|
|
150
|
+
}
|
|
151
|
+
var chat_default = Chat;
|
|
152
|
+
export {
|
|
153
|
+
Chat,
|
|
154
|
+
chat_default as default
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=chat.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/dataDisplay/chat/chat.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/components/chat/chat.entry.less\";\nimport { type JSX, type ParentProps, Show, createMemo, mergeProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { FloatingButton } from \"../../inputs/floatingButton\";\nimport { Icon } from \"../../base/icon\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { createId } from \"../../../primitives/createId\";\nimport { ChatComposer } from \"./chatComposer\";\nimport { ChatHeader } from \"./chatHeader\";\nimport { ChatMessages } from \"./chatMessages\";\nimport { ChatShell } from \"./chatShell\";\nimport { createChatFileUpload } from \"./useChatFileUpload\";\nimport {\n type ChatAnchor,\n type ChatLayoutMode,\n type ChatMessage,\n type ChatMessageRenderContext,\n type ChatThemeMode,\n CHAT_EXPAND_LAYOUTS,\n} from \"./types\";\nimport { pickInitialLayout, resolveAllowedLayouts, shouldShowChatCloseButton } from \"./utils\";\n\nexport interface ChatProps extends ParentProps, Omit<ChatMessageRenderContext, \"showAvatars\" | \"showAttachments\"> {\n class?: string | undefined;\n messages: ChatMessage[];\n showAvatars?: boolean | undefined;\n showAttachments?: boolean | undefined;\n headerTitle?: JSX.Element;\n headerSubtitle?: JSX.Element;\n headerActions?: JSX.Element;\n footer?: JSX.Element;\n anchor?: ChatAnchor | undefined;\n themeMode?: ChatThemeMode | undefined;\n allowedLayouts?: ChatLayoutMode[] | undefined;\n layout?: ChatLayoutMode | undefined;\n defaultLayout?: ChatLayoutMode | undefined;\n onLayoutChange?: ((layout: ChatLayoutMode) => void) | undefined;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n floatingTrigger?: boolean | undefined;\n triggerIcon?: JSX.Element;\n triggerLabel?: string | undefined;\n onLoadMore?: (() => void | Promise<void>) | undefined;\n hasMore?: boolean | undefined;\n onSendMessage?: ((text: string) => void | Promise<void>) | undefined;\n composerPlaceholder?: string | undefined;\n composerDisabled?: boolean | undefined;\n composerShiftEnterNewline?: boolean | undefined;\n composerCtrlEnterNewline?: boolean | undefined;\n fileUpload?: boolean | undefined;\n onUploadFiles?: ((files: File[]) => void | Promise<void>) | undefined;\n fileUploadAccept?: Record<string, string[]> | string | undefined;\n fileUploadMaxFiles?: number | undefined;\n attachAriaLabel?: string | undefined;\n loading?: boolean | undefined;\n loadingMore?: boolean | undefined;\n loadingSkeletonCount?: number | undefined;\n renderMessage?: ((message: ChatMessage, ctx: ChatMessageRenderContext) => JSX.Element) | undefined;\n embedded?: boolean | undefined;\n overlayContext?: boolean | undefined;\n showCloseButton?: boolean | undefined;\n}\n\nexport function Chat(props: ChatProps): JSX.Element {\n const p = mergeProps(\n {\n showAvatars: false,\n showAttachments: false,\n anchor: \"bottom-right\" as const,\n themeMode: \"inherit\" as const,\n defaultOpen: false,\n floatingTrigger: false,\n composerPlaceholder: \"message\",\n composerShiftEnterNewline: true,\n composerCtrlEnterNewline: true,\n fileUpload: false,\n embedded: false,\n overlayContext: false,\n showStatus: false,\n },\n props\n );\n\n const allowedLayouts = createMemo(() => resolveAllowedLayouts(p.allowedLayouts ?? CHAT_EXPAND_LAYOUTS));\n\n const [open, setOpen] = createControllableState<boolean>({\n value: () => p.open,\n defaultValue: p.defaultOpen,\n onChange: p.onOpenChange,\n });\n\n const [layout, setLayout] = createControllableState<ChatLayoutMode>({\n value: () => p.layout,\n defaultValue: pickInitialLayout(allowedLayouts(), p.defaultLayout),\n onChange: p.onLayoutChange,\n });\n\n const effectiveLayout = (): ChatLayoutMode =>\n p.embedded ? \"fullHeight\" : p.floatingTrigger ? (open() ? layout() : \"closed\") : layout();\n\n const handleOpen = (): void => {\n setOpen(true);\n if (layout() === \"closed\") {\n setLayout(pickInitialLayout(allowedLayouts(), p.defaultLayout));\n }\n };\n\n const handleClose = (): void => {\n setOpen(false);\n };\n\n const handleLayoutChange = (next: ChatLayoutMode): void => {\n setOpen(true);\n setLayout(next);\n };\n\n const fileUpload = createChatFileUpload({\n enabled: () => p.fileUpload,\n accept: p.fileUploadAccept,\n maxFiles: p.fileUploadMaxFiles,\n onUploadFiles: p.onUploadFiles,\n disabled: () => Boolean(p.composerDisabled),\n });\n\n const attachInputId = createId();\n\n const showComposer = (): boolean => Boolean(p.onSendMessage) || fileUpload.enabled();\n\n const fileInput = (): JSX.Element => (\n <Show when={fileUpload.enabled()}>\n <input {...fileUpload.getInputProps({ id: attachInputId })} data-testid=\"chat-file-input\" />\n </Show>\n );\n\n const resolvedFooter = (): JSX.Element =>\n p.footer ??\n p.children ??\n (showComposer() ? (\n <>\n {fileInput()}\n <ChatComposer\n onSendMessage={p.onSendMessage}\n placeholder={p.composerPlaceholder}\n disabled={p.composerDisabled}\n shiftEnterNewline={p.composerShiftEnterNewline}\n ctrlEnterNewline={p.composerCtrlEnterNewline}\n fileUpload={fileUpload.enabled()}\n attachInputId={fileUpload.enabled() ? attachInputId : undefined}\n attachAriaLabel={p.attachAriaLabel}\n />\n </>\n ) : undefined);\n\n const closeButtonVisible = (): boolean =>\n shouldShowChatCloseButton({\n floatingTrigger: p.floatingTrigger,\n embedded: p.embedded,\n overlayContext: p.overlayContext,\n effectiveLayout: effectiveLayout(),\n showCloseButton: p.showCloseButton,\n });\n\n return (\n <div\n class={cn(\n \"smwb-chat\",\n !p.embedded && `smwb-chat_${p.anchor}`,\n p.embedded && \"smwb-chat_embedded\",\n p.overlayContext && \"smwb-chat_overlay-context\",\n p.class\n )}\n data-testid=\"chat\"\n >\n <Show when={p.floatingTrigger && !p.embedded && !open()}>\n <FloatingButton\n class=\"smwb-chat__trigger\"\n aria-label={p.triggerLabel ?? \"Open chat\"}\n data-testid=\"chat-trigger\"\n onClick={handleOpen}\n >\n <Show when={p.triggerIcon} fallback={<Icon name=\"chat\" size={24} />}>\n {p.triggerIcon}\n </Show>\n </FloatingButton>\n </Show>\n <ChatShell\n layout={effectiveLayout()}\n anchor={p.anchor}\n themeMode={p.themeMode}\n embedded={p.embedded}\n overlayContext={p.overlayContext}\n fileDropzoneRootProps={fileUpload.enabled() ? fileUpload.getRootProps() : undefined}\n fileDropzoneActive={fileUpload.enabled() && fileUpload.isDragActive()}\n header={\n <ChatHeader\n title={p.headerTitle}\n subtitle={p.headerSubtitle}\n actions={p.headerActions}\n layout={effectiveLayout() === \"closed\" ? layout() : effectiveLayout()}\n allowedLayouts={allowedLayouts()}\n onLayoutChange={handleLayoutChange}\n onClose={closeButtonVisible() ? handleClose : undefined}\n />\n }\n footer={resolvedFooter()}\n >\n <ChatMessages\n messages={p.messages}\n showAvatars={p.showAvatars}\n showAttachments={p.showAttachments}\n showStatus={p.showStatus}\n statusIcons={p.statusIcons}\n renderStatus={p.renderStatus}\n onLoadMore={p.onLoadMore}\n hasMore={p.hasMore}\n loading={p.loading}\n loadingMore={p.loadingMore}\n loadingSkeletonCount={p.loadingSkeletonCount}\n renderMessage={p.renderMessage}\n />\n </ChatShell>\n </div>\n );\n}\n\nexport default Chat;\n"],"mappings":"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","names":[],"file":"chat.jsx"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Show, createSignal } from "solid-js";
|
|
2
|
+
import { Portal, isServer } from "solid-js/web";
|
|
3
|
+
import cn from "clsx";
|
|
4
|
+
import { createCssTransition } from "../../../primitives/createCssTransition";
|
|
5
|
+
function ChatAttachmentImage(props) {
|
|
6
|
+
const [open, setOpen] = createSignal(false);
|
|
7
|
+
const transition = createCssTransition({
|
|
8
|
+
in: open,
|
|
9
|
+
timeout: { enter: 150, exit: 150 },
|
|
10
|
+
classNames: {
|
|
11
|
+
enterActive: "smwb-chat-attachment-image__overlay_enter-active",
|
|
12
|
+
enterDone: "smwb-chat-attachment-image__overlay_enter-done"
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return <Show when={props.attachment.url}>
|
|
16
|
+
{(url) => <>
|
|
17
|
+
<button
|
|
18
|
+
type="button"
|
|
19
|
+
class={cn("smwb-chat-attachment-image", props.class)}
|
|
20
|
+
onClick={() => setOpen(true)}
|
|
21
|
+
data-testid="chat-attachment-image"
|
|
22
|
+
aria-label={props.attachment.name}
|
|
23
|
+
>
|
|
24
|
+
<img src={url()} alt={props.attachment.name} class="smwb-chat-attachment-image__img" />
|
|
25
|
+
</button>
|
|
26
|
+
<Show when={transition.mounted()}>
|
|
27
|
+
<Portal mount={isServer ? void 0 : document.body}>
|
|
28
|
+
<div
|
|
29
|
+
class={cn("smwb-chat-attachment-image__overlay", "smwb-dark", transition.classes())}
|
|
30
|
+
role="dialog"
|
|
31
|
+
aria-modal="true"
|
|
32
|
+
aria-label={props.attachment.name}
|
|
33
|
+
data-testid="chat-attachment-image-overlay"
|
|
34
|
+
onClick={() => setOpen(false)}
|
|
35
|
+
>
|
|
36
|
+
<img
|
|
37
|
+
src={url()}
|
|
38
|
+
alt={props.attachment.name}
|
|
39
|
+
class="smwb-chat-attachment-image__overlay-img"
|
|
40
|
+
onClick={(event) => event.stopPropagation()}
|
|
41
|
+
/>
|
|
42
|
+
</div>
|
|
43
|
+
</Portal>
|
|
44
|
+
</Show>
|
|
45
|
+
</>}
|
|
46
|
+
</Show>;
|
|
47
|
+
}
|
|
48
|
+
var chatAttachmentImage_default = ChatAttachmentImage;
|
|
49
|
+
export {
|
|
50
|
+
ChatAttachmentImage,
|
|
51
|
+
chatAttachmentImage_default as default
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=chatAttachmentImage.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/dataDisplay/chat/chatAttachmentImage.tsx"],"sourcesContent":["import { type JSX, Show, createSignal } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport type { ChatAttachment } from \"./types\";\n\nexport interface ChatAttachmentImageProps {\n attachment: ChatAttachment;\n class?: string | undefined;\n}\n\nexport function ChatAttachmentImage(props: ChatAttachmentImageProps): JSX.Element {\n const [open, setOpen] = createSignal(false);\n\n const transition = createCssTransition({\n in: open,\n timeout: { enter: 150, exit: 150 },\n classNames: {\n enterActive: \"smwb-chat-attachment-image__overlay_enter-active\",\n enterDone: \"smwb-chat-attachment-image__overlay_enter-done\",\n },\n });\n\n return (\n <Show when={props.attachment.url}>\n {(url) => (\n <>\n <button\n type=\"button\"\n class={cn(\"smwb-chat-attachment-image\", props.class)}\n onClick={() => setOpen(true)}\n data-testid=\"chat-attachment-image\"\n aria-label={props.attachment.name}\n >\n <img src={url()} alt={props.attachment.name} class=\"smwb-chat-attachment-image__img\" />\n </button>\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n class={cn(\"smwb-chat-attachment-image__overlay\", \"smwb-dark\", transition.classes())}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={props.attachment.name}\n data-testid=\"chat-attachment-image-overlay\"\n onClick={() => setOpen(false)}\n >\n <img\n src={url()}\n alt={props.attachment.name}\n class=\"smwb-chat-attachment-image__overlay-img\"\n onClick={(event) => event.stopPropagation()}\n />\n </div>\n </Portal>\n </Show>\n </>\n )}\n </Show>\n );\n}\n\nexport default ChatAttachmentImage;\n"],"mappings":"AAAA,SAAmB,MAAM,oBAAoB;AAC7C,SAAS,QAAQ,gBAAgB;AACjC,OAAO,QAAQ;AACf,SAAS,2BAA2B;AAQ7B,SAAS,oBAAoB,OAA8C;AAChF,QAAM,CAAC,MAAM,OAAO,IAAI,aAAa,KAAK;AAE1C,QAAM,aAAa,oBAAoB;AAAA,IACrC,IAAI;AAAA,IACJ,SAAS,EAAE,OAAO,KAAK,MAAM,IAAI;AAAA,IACjC,YAAY;AAAA,MACV,aAAa;AAAA,MACb,WAAW;AAAA,IACb;AAAA,EACF,CAAC;AAED,SACE,CAAC,KAAK,MAAM,MAAM,WAAW,KAAK;AAAA,OAC/B,CAAC,QACA,EAAE;AAAA,UACA,CAAC;AAAA,IACC,KAAK;AAAA,IACL,OAAO,GAAG,8BAA8B,MAAM,KAAK;AAAA,IACnD,SAAS,MAAM,QAAQ,IAAI;AAAA,IAC3B,YAAY;AAAA,IACZ,YAAY,MAAM,WAAW;AAAA,GAC9B;AAAA,YACC,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,WAAW,MAAM,MAAM,kCAAkC,EAAE;AAAA,UACzF,EARC,OAQQ;AAAA,UACT,CAAC,KAAK,MAAM,WAAW,QAAQ,GAAG;AAAA,YAChC,CAAC,OAAO,OAAQ,WAAW,SAAY,SAAS,MAAe;AAAA,cAC7D,CAAC;AAAA,IACC,OAAO,GAAG,uCAAuC,aAAa,WAAW,QAAQ,CAAC;AAAA,IAClF,KAAK;AAAA,IACL,WAAW;AAAA,IACX,YAAY,MAAM,WAAW;AAAA,IAC7B,YAAY;AAAA,IACZ,SAAS,MAAM,QAAQ,KAAK;AAAA,GAC7B;AAAA,gBACC,CAAC;AAAA,IACC,KAAK,IAAI;AAAA,IACT,KAAK,MAAM,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,SAAS,CAAC,UAAU,MAAM,gBAAgB;AAAA,EAC5C,EAAE;AAAA,cACJ,EAdC,IAcK;AAAA,YACR,EAhBC,OAgBQ;AAAA,UACX,EAlBC,KAkBM;AAAA,QACT,IACA;AAAA,IACJ,EAjCC;AAmCL;AAEA,IAAO,8BAAQ;","names":[],"file":"chatAttachmentImage.jsx"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { For, Show } from "solid-js";
|
|
2
|
+
import cn from "clsx";
|
|
3
|
+
import { isImageAttachment } from "./utils";
|
|
4
|
+
import { ChatAttachmentImage } from "./chatAttachmentImage";
|
|
5
|
+
function ChatAttachments(props) {
|
|
6
|
+
const enabled = () => props.enabled ?? true;
|
|
7
|
+
const visible = () => enabled() && Boolean(props.attachments?.length);
|
|
8
|
+
return <Show when={visible()}>
|
|
9
|
+
<div class={cn("smwb-chat-attachments", props.class)} data-testid="chat-attachments">
|
|
10
|
+
<For each={props.attachments}>
|
|
11
|
+
{(attachment) => <Show
|
|
12
|
+
when={isImageAttachment(attachment)}
|
|
13
|
+
fallback={<a
|
|
14
|
+
class="smwb-chat-attachments__file"
|
|
15
|
+
href={attachment.url}
|
|
16
|
+
download={attachment.name}
|
|
17
|
+
target="_blank"
|
|
18
|
+
rel="noreferrer"
|
|
19
|
+
data-testid="chat-attachment-file"
|
|
20
|
+
>
|
|
21
|
+
{attachment.name}
|
|
22
|
+
</a>}
|
|
23
|
+
>
|
|
24
|
+
<ChatAttachmentImage attachment={attachment} />
|
|
25
|
+
</Show>}
|
|
26
|
+
</For>
|
|
27
|
+
</div>
|
|
28
|
+
</Show>;
|
|
29
|
+
}
|
|
30
|
+
var chatAttachments_default = ChatAttachments;
|
|
31
|
+
export {
|
|
32
|
+
ChatAttachments,
|
|
33
|
+
chatAttachments_default as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=chatAttachments.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/dataDisplay/chat/chatAttachments.tsx"],"sourcesContent":["import { type JSX, For, Show } from \"solid-js\";\nimport cn from \"clsx\";\nimport type { ChatAttachment } from \"./types\";\nimport { isImageAttachment } from \"./utils\";\nimport { ChatAttachmentImage } from \"./chatAttachmentImage\";\n\nexport interface ChatAttachmentsProps {\n attachments?: ChatAttachment[] | undefined;\n class?: string | undefined;\n enabled?: boolean | undefined;\n}\n\nexport function ChatAttachments(props: ChatAttachmentsProps): JSX.Element {\n const enabled = (): boolean => props.enabled ?? true;\n const visible = (): boolean => enabled() && Boolean(props.attachments?.length);\n\n return (\n <Show when={visible()}>\n <div class={cn(\"smwb-chat-attachments\", props.class)} data-testid=\"chat-attachments\">\n <For each={props.attachments}>\n {(attachment) => (\n <Show\n when={isImageAttachment(attachment)}\n fallback={\n <a\n class=\"smwb-chat-attachments__file\"\n href={attachment.url}\n download={attachment.name}\n target=\"_blank\"\n rel=\"noreferrer\"\n data-testid=\"chat-attachment-file\"\n >\n {attachment.name}\n </a>\n }\n >\n <ChatAttachmentImage attachment={attachment} />\n </Show>\n )}\n </For>\n </div>\n </Show>\n );\n}\n\nexport default ChatAttachments;\n"],"mappings":"AAAA,SAAmB,KAAK,YAAY;AACpC,OAAO,QAAQ;AAEf,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AAQ7B,SAAS,gBAAgB,OAA0C;AACxE,QAAM,UAAU,MAAe,MAAM,WAAW;AAChD,QAAM,UAAU,MAAe,QAAQ,KAAK,QAAQ,MAAM,aAAa,MAAM;AAE7E,SACE,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,MACrB,CAAC,IAAI,OAAO,GAAG,yBAAyB,MAAM,KAAK,GAAG,YAAY,mBAAmB;AAAA,QACnF,CAAC,IAAI,MAAM,MAAM,aAAa;AAAA,WAC3B,CAAC,eACA,CAAC;AAAA,IACC,MAAM,kBAAkB,UAAU;AAAA,IAClC,UACE,CAAC;AAAA,MACC,MAAM;AAAA,MACN,MAAM,WAAW;AAAA,MACjB,UAAU,WAAW;AAAA,MACrB,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,YAAY;AAAA,KACb;AAAA,mBACE,WAAW,KAAK;AAAA,gBACnB,EATC;AAAA,GAWJ;AAAA,cACC,CAAC,oBAAoB,YAAY,YAAY,EAAE;AAAA,YACjD,EAhBC,MAiBD;AAAA,QACJ,EApBC,IAoBK;AAAA,MACR,EAtBC,IAsBK;AAAA,IACR,EAxBC;AA0BL;AAEA,IAAO,0BAAQ;","names":[],"file":"chatAttachments.jsx"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Show, createSignal, mergeProps } from "solid-js";
|
|
2
|
+
import cn from "clsx";
|
|
3
|
+
import { Icon } from "../../base/icon";
|
|
4
|
+
import { TextField } from "../../inputs/textField";
|
|
5
|
+
import { TextFieldWrapper } from "../../inputs/textField/textFieldWrapper";
|
|
6
|
+
import { ChatIconButton } from "./chatIconButton";
|
|
7
|
+
import { createId } from "../../../primitives/createId";
|
|
8
|
+
import { shouldComposerNewlineOnEnter } from "./utils";
|
|
9
|
+
function stopPropagation(event) {
|
|
10
|
+
event.stopPropagation();
|
|
11
|
+
}
|
|
12
|
+
function insertNewlineAtCursor(element, value, setValue) {
|
|
13
|
+
const start = element.selectionStart ?? value.length;
|
|
14
|
+
const end = element.selectionEnd ?? value.length;
|
|
15
|
+
const nextValue = `${value.slice(0, start)}
|
|
16
|
+
${value.slice(end)}`;
|
|
17
|
+
setValue(nextValue);
|
|
18
|
+
requestAnimationFrame(() => {
|
|
19
|
+
element.selectionStart = start + 1;
|
|
20
|
+
element.selectionEnd = start + 1;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function ChatComposer(props) {
|
|
24
|
+
const merged = mergeProps(
|
|
25
|
+
{
|
|
26
|
+
placeholder: "message",
|
|
27
|
+
disabled: false,
|
|
28
|
+
sendAriaLabel: "Send message",
|
|
29
|
+
shiftEnterNewline: true,
|
|
30
|
+
ctrlEnterNewline: true,
|
|
31
|
+
fileUpload: false,
|
|
32
|
+
attachAriaLabel: "Attach file"
|
|
33
|
+
},
|
|
34
|
+
props
|
|
35
|
+
);
|
|
36
|
+
const [value, setValue] = createSignal("");
|
|
37
|
+
const [isFocused, setIsFocused] = createSignal(false);
|
|
38
|
+
const inputId = createId();
|
|
39
|
+
let textareaRef;
|
|
40
|
+
const multiline = () => merged.shiftEnterNewline || merged.ctrlEnterNewline;
|
|
41
|
+
const canSend = () => Boolean(merged.onSendMessage) && value().trim().length > 0 && !merged.disabled;
|
|
42
|
+
const showAttach = () => merged.fileUpload && Boolean(merged.attachInputId || merged.onAttachClick);
|
|
43
|
+
const handleSend = () => {
|
|
44
|
+
if (!merged.onSendMessage) return;
|
|
45
|
+
const text = value().trim();
|
|
46
|
+
if (!text || merged.disabled) return;
|
|
47
|
+
void merged.onSendMessage(text);
|
|
48
|
+
setValue("");
|
|
49
|
+
};
|
|
50
|
+
const handleKeyDown = (event) => {
|
|
51
|
+
if (shouldComposerNewlineOnEnter(event, { shiftEnterNewline: merged.shiftEnterNewline, ctrlEnterNewline: merged.ctrlEnterNewline })) {
|
|
52
|
+
if (event.currentTarget instanceof HTMLTextAreaElement) {
|
|
53
|
+
event.preventDefault();
|
|
54
|
+
insertNewlineAtCursor(event.currentTarget, value(), setValue);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (event.key !== "Enter") return;
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
handleSend();
|
|
61
|
+
};
|
|
62
|
+
const attachClass = () => cn("smwb-chat-icon-button", "smwb-chat-icon-button_edge-start", merged.disabled && "smwb-chat-icon-button_disabled");
|
|
63
|
+
const attachButton = () => <Show when={showAttach()}>
|
|
64
|
+
<Show
|
|
65
|
+
when={merged.attachInputId}
|
|
66
|
+
fallback={<ChatIconButton
|
|
67
|
+
edge="start"
|
|
68
|
+
aria-label={merged.attachAriaLabel}
|
|
69
|
+
data-testid="chat-composer-attach"
|
|
70
|
+
disabled={merged.disabled}
|
|
71
|
+
onClick={() => merged.onAttachClick?.()}
|
|
72
|
+
onMouseDown={stopPropagation}
|
|
73
|
+
>
|
|
74
|
+
<Icon name="attach_file" size={24} />
|
|
75
|
+
</ChatIconButton>}
|
|
76
|
+
>
|
|
77
|
+
{(id) => <label
|
|
78
|
+
for={merged.disabled ? void 0 : id()}
|
|
79
|
+
class={attachClass()}
|
|
80
|
+
aria-label={merged.attachAriaLabel}
|
|
81
|
+
aria-disabled={merged.disabled || void 0}
|
|
82
|
+
data-testid="chat-composer-attach"
|
|
83
|
+
onMouseDown={stopPropagation}
|
|
84
|
+
>
|
|
85
|
+
<Icon name="attach_file" size={24} />
|
|
86
|
+
</label>}
|
|
87
|
+
</Show>
|
|
88
|
+
</Show>;
|
|
89
|
+
const sendButton = () => <Show when={merged.onSendMessage}>
|
|
90
|
+
<ChatIconButton
|
|
91
|
+
edge="end"
|
|
92
|
+
color="primary"
|
|
93
|
+
aria-label={merged.sendAriaLabel}
|
|
94
|
+
data-testid="chat-composer-send"
|
|
95
|
+
disabled={!canSend()}
|
|
96
|
+
onClick={handleSend}
|
|
97
|
+
onMouseDown={stopPropagation}
|
|
98
|
+
>
|
|
99
|
+
<Icon name="send" size={24} />
|
|
100
|
+
</ChatIconButton>
|
|
101
|
+
</Show>;
|
|
102
|
+
const onHolderMouseDown = (event) => {
|
|
103
|
+
if (textareaRef && event.currentTarget === event.target) {
|
|
104
|
+
event.preventDefault();
|
|
105
|
+
textareaRef.focus();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
return <Show
|
|
109
|
+
when={!(showAttach() && !merged.onSendMessage)}
|
|
110
|
+
fallback={<div class={cn("smwb-chat-composer", "smwb-chat-composer_attach-only", merged.class)} data-testid="chat-composer">
|
|
111
|
+
{attachButton()}
|
|
112
|
+
</div>}
|
|
113
|
+
>
|
|
114
|
+
<Show
|
|
115
|
+
when={multiline()}
|
|
116
|
+
fallback={<TextField
|
|
117
|
+
class={cn("smwb-chat-composer", merged.class)}
|
|
118
|
+
data-testid="chat-composer"
|
|
119
|
+
fullWidth
|
|
120
|
+
value={value()}
|
|
121
|
+
disabled={merged.disabled}
|
|
122
|
+
placeholder={merged.placeholder}
|
|
123
|
+
onChange={(event) => setValue(event.currentTarget.value)}
|
|
124
|
+
startAdornment={attachButton()}
|
|
125
|
+
endAdornment={sendButton()}
|
|
126
|
+
onKeyDown={handleKeyDown}
|
|
127
|
+
/>}
|
|
128
|
+
>
|
|
129
|
+
<TextFieldWrapper
|
|
130
|
+
class={cn("smwb-chat-composer", merged.class)}
|
|
131
|
+
data-testid="chat-composer"
|
|
132
|
+
fullWidth
|
|
133
|
+
disabled={merged.disabled}
|
|
134
|
+
isFilledState={value().length > 0}
|
|
135
|
+
isFocused={isFocused()}
|
|
136
|
+
for={inputId}
|
|
137
|
+
shrink={Boolean(merged.attachInputId || merged.onAttachClick) && showAttach()}
|
|
138
|
+
onHolderMouseDown={onHolderMouseDown}
|
|
139
|
+
startAdornment={attachButton()}
|
|
140
|
+
endAdornment={sendButton()}
|
|
141
|
+
>
|
|
142
|
+
<textarea
|
|
143
|
+
id={inputId}
|
|
144
|
+
ref={(el) => textareaRef = el}
|
|
145
|
+
class={cn(
|
|
146
|
+
"smwb-text-field__input",
|
|
147
|
+
"smwb-chat-composer__input",
|
|
148
|
+
"smwb-text-field__input--show-placeholder",
|
|
149
|
+
showAttach() && "smwb-text-field__input--adornment-start",
|
|
150
|
+
merged.onSendMessage && "smwb-text-field__input--adornment-end"
|
|
151
|
+
)}
|
|
152
|
+
value={value()}
|
|
153
|
+
disabled={merged.disabled}
|
|
154
|
+
placeholder={merged.placeholder}
|
|
155
|
+
rows={1}
|
|
156
|
+
onInput={(event) => setValue(event.currentTarget.value)}
|
|
157
|
+
onFocus={() => setIsFocused(true)}
|
|
158
|
+
onBlur={() => setIsFocused(false)}
|
|
159
|
+
onKeyDown={handleKeyDown}
|
|
160
|
+
/>
|
|
161
|
+
</TextFieldWrapper>
|
|
162
|
+
</Show>
|
|
163
|
+
</Show>;
|
|
164
|
+
}
|
|
165
|
+
var chatComposer_default = ChatComposer;
|
|
166
|
+
export {
|
|
167
|
+
ChatComposer,
|
|
168
|
+
chatComposer_default as default
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=chatComposer.jsx.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { For, Show } from "solid-js";
|
|
2
|
+
import cn from "clsx";
|
|
3
|
+
import { Icon } from "../../base/icon";
|
|
4
|
+
import { ChatIconButton } from "./chatIconButton";
|
|
5
|
+
import { getChatLayoutActions } from "./utils";
|
|
6
|
+
const layoutIcons = {
|
|
7
|
+
floating: "picture_in_picture",
|
|
8
|
+
fullHeight: "fit_screen",
|
|
9
|
+
fullscreen: "open_in_full"
|
|
10
|
+
};
|
|
11
|
+
const layoutAriaLabels = {
|
|
12
|
+
floating: "Floating window",
|
|
13
|
+
fullHeight: "Full height",
|
|
14
|
+
fullscreen: "Fullscreen"
|
|
15
|
+
};
|
|
16
|
+
function ChatHeader(props) {
|
|
17
|
+
const layoutActions = () => getChatLayoutActions(props.allowedLayouts ?? ["floating"], props.layout);
|
|
18
|
+
const showLayoutActions = () => Boolean(props.onLayoutChange) && layoutActions().length > 0;
|
|
19
|
+
return <div class={cn("smwb-chat-header", props.class)} data-testid="chat-header">
|
|
20
|
+
<div class="smwb-chat-header__main">
|
|
21
|
+
<Show when={props.title}>
|
|
22
|
+
<div class="smwb-chat-header__title">{props.title}</div>
|
|
23
|
+
</Show>
|
|
24
|
+
<Show when={props.subtitle}>
|
|
25
|
+
<div class="smwb-chat-header__subtitle">{props.subtitle}</div>
|
|
26
|
+
</Show>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="smwb-chat-header__actions">
|
|
29
|
+
{props.actions}
|
|
30
|
+
<Show when={showLayoutActions()}>
|
|
31
|
+
<For each={layoutActions()}>
|
|
32
|
+
{(mode) => <ChatIconButton
|
|
33
|
+
aria-pressed={props.layout === mode}
|
|
34
|
+
aria-label={layoutAriaLabels[mode]}
|
|
35
|
+
data-testid={`chat-layout-${mode}`}
|
|
36
|
+
onClick={() => props.onLayoutChange?.(mode)}
|
|
37
|
+
>
|
|
38
|
+
<Icon name={layoutIcons[mode]} size={18} />
|
|
39
|
+
</ChatIconButton>}
|
|
40
|
+
</For>
|
|
41
|
+
</Show>
|
|
42
|
+
<Show when={props.onClose}>
|
|
43
|
+
<ChatIconButton aria-label="Close chat" data-testid="chat-close" onClick={() => props.onClose?.()}>
|
|
44
|
+
<Icon name="close" size={18} />
|
|
45
|
+
</ChatIconButton>
|
|
46
|
+
</Show>
|
|
47
|
+
</div>
|
|
48
|
+
</div>;
|
|
49
|
+
}
|
|
50
|
+
var chatHeader_default = ChatHeader;
|
|
51
|
+
export {
|
|
52
|
+
ChatHeader,
|
|
53
|
+
chatHeader_default as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=chatHeader.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/dataDisplay/chat/chatHeader.tsx"],"sourcesContent":["import { type JSX, For, Show } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { ChatIconButton } from \"./chatIconButton\";\nimport type { ChatLayoutMode } from \"./types\";\nimport { getChatLayoutActions } from \"./utils\";\n\nexport interface ChatHeaderProps {\n class?: string | undefined;\n title?: JSX.Element;\n subtitle?: JSX.Element;\n actions?: JSX.Element;\n layout?: ChatLayoutMode | undefined;\n allowedLayouts?: ChatLayoutMode[] | undefined;\n onLayoutChange?: ((layout: ChatLayoutMode) => void) | undefined;\n onClose?: (() => void) | undefined;\n}\n\nconst layoutIcons: Record<Exclude<ChatLayoutMode, \"closed\">, string> = {\n floating: \"picture_in_picture\",\n fullHeight: \"fit_screen\",\n fullscreen: \"open_in_full\",\n};\n\nconst layoutAriaLabels: Record<Exclude<ChatLayoutMode, \"closed\">, string> = {\n floating: \"Floating window\",\n fullHeight: \"Full height\",\n fullscreen: \"Fullscreen\",\n};\n\nexport function ChatHeader(props: ChatHeaderProps): JSX.Element {\n const layoutActions = (): Exclude<ChatLayoutMode, \"closed\">[] =>\n getChatLayoutActions(props.allowedLayouts ?? [\"floating\"], props.layout);\n const showLayoutActions = (): boolean => Boolean(props.onLayoutChange) && layoutActions().length > 0;\n\n return (\n <div class={cn(\"smwb-chat-header\", props.class)} data-testid=\"chat-header\">\n <div class=\"smwb-chat-header__main\">\n <Show when={props.title}>\n <div class=\"smwb-chat-header__title\">{props.title}</div>\n </Show>\n <Show when={props.subtitle}>\n <div class=\"smwb-chat-header__subtitle\">{props.subtitle}</div>\n </Show>\n </div>\n <div class=\"smwb-chat-header__actions\">\n {props.actions}\n <Show when={showLayoutActions()}>\n <For each={layoutActions()}>\n {(mode) => (\n <ChatIconButton\n aria-pressed={props.layout === mode}\n aria-label={layoutAriaLabels[mode]}\n data-testid={`chat-layout-${mode}`}\n onClick={() => props.onLayoutChange?.(mode)}\n >\n <Icon name={layoutIcons[mode]} size={18} />\n </ChatIconButton>\n )}\n </For>\n </Show>\n <Show when={props.onClose}>\n <ChatIconButton aria-label=\"Close chat\" data-testid=\"chat-close\" onClick={() => props.onClose?.()}>\n <Icon name=\"close\" size={18} />\n </ChatIconButton>\n </Show>\n </div>\n </div>\n );\n}\n\nexport default ChatHeader;\n"],"mappings":"AAAA,SAAmB,KAAK,YAAY;AACpC,OAAO,QAAQ;AACf,SAAS,YAAY;AACrB,SAAS,sBAAsB;AAE/B,SAAS,4BAA4B;AAarC,MAAM,cAAiE;AAAA,EACrE,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd;AAEA,MAAM,mBAAsE;AAAA,EAC1E,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd;AAEO,SAAS,WAAW,OAAqC;AAC9D,QAAM,gBAAgB,MACpB,qBAAqB,MAAM,kBAAkB,CAAC,UAAU,GAAG,MAAM,MAAM;AACzE,QAAM,oBAAoB,MAAe,QAAQ,MAAM,cAAc,KAAK,cAAc,EAAE,SAAS;AAEnG,SACE,CAAC,IAAI,OAAO,GAAG,oBAAoB,MAAM,KAAK,GAAG,YAAY,cAAc;AAAA,MACzE,CAAC,IAAI,MAAM,yBAAyB;AAAA,QAClC,CAAC,KAAK,MAAM,MAAM,OAAO;AAAA,UACvB,CAAC,IAAI,MAAM,2BAA2B,MAAM,MAAM,EAAjD,IAAuD;AAAA,QAC1D,EAFC,KAEM;AAAA,QACP,CAAC,KAAK,MAAM,MAAM,UAAU;AAAA,UAC1B,CAAC,IAAI,MAAM,8BAA8B,MAAM,SAAS,EAAvD,IAA6D;AAAA,QAChE,EAFC,KAEM;AAAA,MACT,EAPC,IAOK;AAAA,MACN,CAAC,IAAI,MAAM,4BAA4B;AAAA,SACpC,MAAM,QAAQ;AAAA,QACf,CAAC,KAAK,MAAM,kBAAkB,GAAG;AAAA,UAC/B,CAAC,IAAI,MAAM,cAAc,GAAG;AAAA,aACzB,CAAC,SACA,CAAC;AAAA,IACC,cAAc,MAAM,WAAW;AAAA,IAC/B,YAAY,iBAAiB,IAAI;AAAA,IACjC,aAAa,eAAe,IAAI;AAAA,IAChC,SAAS,MAAM,MAAM,iBAAiB,IAAI;AAAA,GAC3C;AAAA,gBACC,CAAC,KAAK,MAAM,YAAY,IAAI,GAAG,MAAM,IAAI,EAAE;AAAA,cAC7C,EAPC,gBAQD;AAAA,UACJ,EAXC,IAWK;AAAA,QACR,EAbC,KAaM;AAAA,QACP,CAAC,KAAK,MAAM,MAAM,SAAS;AAAA,UACzB,CAAC,eAAe,WAAW,aAAa,YAAY,aAAa,SAAS,MAAM,MAAM,UAAU,GAAG;AAAA,YACjG,CAAC,KAAK,KAAK,QAAQ,MAAM,IAAI,EAAE;AAAA,UACjC,EAFC,eAEgB;AAAA,QACnB,EAJC,KAIM;AAAA,MACT,EArBC,IAqBK;AAAA,IACR,EA/BC;AAiCL;AAEA,IAAO,qBAAQ;","names":[],"file":"chatHeader.jsx"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Show, mergeProps, splitProps } from "solid-js";
|
|
2
|
+
import cn from "clsx";
|
|
3
|
+
import { Ripple } from "../../base/ripple";
|
|
4
|
+
import { mergeRefs } from "../../../primitives/mergeRefs";
|
|
5
|
+
function ChatIconButton(props) {
|
|
6
|
+
const merged = mergeProps({ color: "default" }, props);
|
|
7
|
+
const [local, rest] = splitProps(merged, ["class", "children", "disabled", "edge", "color", "ref"]);
|
|
8
|
+
let rippleActions;
|
|
9
|
+
const onPointerDown = (event) => {
|
|
10
|
+
if (!local.disabled) rippleActions?.onRipple(event);
|
|
11
|
+
};
|
|
12
|
+
return <button
|
|
13
|
+
{...rest}
|
|
14
|
+
ref={mergeRefs(local.ref)}
|
|
15
|
+
type="button"
|
|
16
|
+
class={cn(
|
|
17
|
+
"smwb-chat-icon-button",
|
|
18
|
+
local.edge === "start" && "smwb-chat-icon-button_edge-start",
|
|
19
|
+
local.edge === "end" && "smwb-chat-icon-button_edge-end",
|
|
20
|
+
local.color === "primary" && "smwb-chat-icon-button_primary",
|
|
21
|
+
local.disabled && "smwb-chat-icon-button_disabled",
|
|
22
|
+
local.class
|
|
23
|
+
)}
|
|
24
|
+
disabled={local.disabled}
|
|
25
|
+
onPointerDown={onPointerDown}
|
|
26
|
+
>
|
|
27
|
+
{local.children}
|
|
28
|
+
<Show when={!local.disabled}>
|
|
29
|
+
<Ripple actionRef={(actions) => rippleActions = actions} center />
|
|
30
|
+
</Show>
|
|
31
|
+
</button>;
|
|
32
|
+
}
|
|
33
|
+
var chatIconButton_default = ChatIconButton;
|
|
34
|
+
export {
|
|
35
|
+
ChatIconButton,
|
|
36
|
+
chatIconButton_default as default
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=chatIconButton.jsx.map
|
|
@@ -0,0 +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\", \"children\", \"disabled\", \"edge\", \"color\", \"ref\"]);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown = (event: PointerEvent): void => {\n if (!local.disabled) rippleActions?.onRipple(event);\n };\n\n return (\n <button\n {...rest}\n ref={mergeRefs(local.ref)}\n type=\"button\"\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;AAQ7B,SAAS,eAAe,OAAsD;AACnF,QAAM,SAAS,WAAW,EAAE,OAAO,UAAmB,GAAG,KAAK;AAC9D,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ,CAAC,SAAS,YAAY,YAAY,QAAQ,SAAS,KAAK,CAAC;AAElG,MAAI;AAEJ,QAAM,gBAAgB,CAAC,UAA8B;AACnD,QAAI,CAAC,MAAM,SAAU,gBAAe,SAAS,KAAK;AAAA,EACpD;AAEA,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,KAAK;AAAA,IACL,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,EAnBC;AAqBL;AAEA,IAAO,yBAAQ;","names":[],"file":"chatIconButton.jsx"}
|