@smwb/ui-solid 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -22
- package/dist/assets/styles/less/components/accordion/accordion.entry.css +1 -1
- package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
- package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
- package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
- package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
- package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
- package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
- package/dist/assets/styles/less/components/modal/modal.entry.css +1 -1
- package/dist/assets/styles/less/components/overflowMenu/overflowMenu.entry.css +1 -1
- package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
- package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
- package/dist/assets/styles/less/components/sectionHeader/sectionHeader.entry.css +1 -0
- package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
- package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
- package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
- package/dist/assets/styles/less/components/table/table.entry.css +1 -1
- package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
- package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
- package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
- package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
- package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
- package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
- package/dist/assets/styles/less/tokens.entry.css +1 -0
- package/dist/components/base/icon/icon.js +4 -3
- package/dist/components/base/icon/icon.js.map +1 -1
- package/dist/components/base/ripple/ripple.js +4 -3
- package/dist/components/base/ripple/ripple.js.map +1 -1
- package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
- package/dist/components/dataDisplay/accordion/accordion.js +91 -48
- package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
- package/dist/components/dataDisplay/assetGrid/assetGrid.js +14 -13
- package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
- package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
- package/dist/components/dataDisplay/avatar/avatar.js +56 -40
- package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/components/dataDisplay/badge/badge.js +24 -20
- package/dist/components/dataDisplay/badge/badge.js.map +1 -1
- package/dist/components/dataDisplay/card/card.js +24 -23
- package/dist/components/dataDisplay/card/card.js.map +1 -1
- package/dist/components/dataDisplay/carousel/carousel.js +4 -3
- package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/components/dataDisplay/chart/chart.d.ts +65 -0
- package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
- package/dist/components/dataDisplay/chart/index.d.ts +4 -0
- package/dist/components/dataDisplay/chat/chat.js +52 -51
- package/dist/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatHeader.js +29 -29
- package/dist/components/dataDisplay/chat/chatHeader.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatMessageBubble.js +28 -28
- package/dist/components/dataDisplay/chat/chatMessageBubble.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatShell.js +54 -51
- package/dist/components/dataDisplay/chat/chatShell.js.map +1 -1
- package/dist/components/dataDisplay/chip/chip.js +79 -70
- package/dist/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/components/dataDisplay/chipGroup/chipGroup.js +9 -8
- package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
- package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +32 -0
- package/dist/components/dataDisplay/descriptionList/descriptionList.js +60 -0
- package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
- package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +4 -3
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/components/dataDisplay/imagesList/imagesList.js +8 -7
- package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
- package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -24
- package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
- package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
- package/dist/components/dataDisplay/kanban/kanban.d.ts +42 -0
- package/dist/components/dataDisplay/kanban/kanban.js +133 -0
- package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
- package/dist/components/dataDisplay/lazyImage/lazyImage.js +30 -29
- package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/components/dataDisplay/list/list.js +17 -16
- package/dist/components/dataDisplay/list/list.js.map +1 -1
- package/dist/components/dataDisplay/meter/index.d.ts +2 -0
- package/dist/components/dataDisplay/meter/meter.d.ts +34 -0
- package/dist/components/dataDisplay/meter/meter.js +84 -0
- package/dist/components/dataDisplay/meter/meter.js.map +1 -0
- package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
- package/dist/components/dataDisplay/personChip/personChip.d.ts +32 -0
- package/dist/components/dataDisplay/personChip/personChip.js +104 -0
- package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
- package/dist/components/dataDisplay/stat/index.d.ts +2 -0
- package/dist/components/dataDisplay/stat/stat.d.ts +33 -0
- package/dist/components/dataDisplay/stat/stat.js +101 -0
- package/dist/components/dataDisplay/stat/stat.js.map +1 -0
- package/dist/components/dataDisplay/table/table.d.ts +7 -0
- package/dist/components/dataDisplay/table/table.js +22 -21
- package/dist/components/dataDisplay/table/table.js.map +1 -1
- package/dist/components/dataDisplay/table/tableCell.d.ts +2 -0
- package/dist/components/dataDisplay/table/tableCell.js +9 -6
- package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableHeadCell.d.ts +11 -1
- package/dist/components/dataDisplay/table/tableHeadCell.js +26 -23
- package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +4 -3
- package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
- package/dist/components/dataDisplay/thumbCard/thumbCard.js +54 -53
- package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
- package/dist/components/dataDisplay/timeline/timeline.d.ts +38 -0
- package/dist/components/dataDisplay/timeline/timeline.js +89 -0
- package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
- package/dist/components/dataDisplay/treeView/treeView.js +4 -3
- package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
- package/dist/components/dataDisplay/typography/typography.js +36 -22
- package/dist/components/dataDisplay/typography/typography.js.map +1 -1
- package/dist/components/feedBack/confirmDialog/confirmDialog.js +10 -9
- package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
- package/dist/components/feedBack/emptyState/emptyState.d.ts +25 -0
- package/dist/components/feedBack/emptyState/emptyState.js +86 -0
- package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
- package/dist/components/feedBack/emptyState/index.d.ts +2 -0
- package/dist/components/feedBack/message/message.js +4 -3
- package/dist/components/feedBack/message/message.js.map +1 -1
- package/dist/components/feedBack/modal/modal.js +4 -3
- package/dist/components/feedBack/modal/modal.js.map +1 -1
- package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +13 -0
- package/dist/components/feedBack/progressIndicator/progressIndicator.js +79 -46
- package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
- package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +20 -15
- package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
- package/dist/components/feedBack/skeleton/skeleton.js +4 -3
- package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/components/feedBack/snackbar/snackbar.js +18 -17
- package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
- package/dist/components/feedBack/tooltip/tooltip.js +41 -33
- package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/components/inputs/button/button.js +32 -30
- package/dist/components/inputs/button/button.js.map +1 -1
- package/dist/components/inputs/buttonGroups/buttonGroup.js +9 -8
- package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.js +4 -3
- package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/components/inputs/datePicker/dataPickerInput.js +23 -23
- package/dist/components/inputs/datePicker/dataPickerInput.js.map +1 -1
- package/dist/components/inputs/datePicker/datePicker.js +84 -83
- package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/components/inputs/fileDrop/fileDrop.js +4 -3
- package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
- package/dist/components/inputs/fileInput/fileInput.js +11 -10
- package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
- package/dist/components/inputs/floatingButton/floatingButton.js +9 -8
- package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
- package/dist/components/inputs/radioButton/radioButton.js +9 -8
- package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/components/inputs/rating/rating.js +41 -40
- package/dist/components/inputs/rating/rating.js.map +1 -1
- package/dist/components/inputs/selectField/selectField.d.ts +2 -0
- package/dist/components/inputs/selectField/selectField.js +55 -51
- package/dist/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/components/inputs/slider/slider.js +4 -3
- package/dist/components/inputs/slider/slider.js.map +1 -1
- package/dist/components/inputs/textField/textField.js +38 -37
- package/dist/components/inputs/textField/textField.js.map +1 -1
- package/dist/components/inputs/textField/textFieldAdornment.js +9 -9
- package/dist/components/inputs/textField/textFieldAdornment.js.map +1 -1
- package/dist/components/inputs/textField/textFieldWrapper.js +41 -41
- package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/components/inputs/timePicker/timePicker.js +12 -11
- package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/components/inputs/toggle/toggle.js +4 -3
- package/dist/components/inputs/toggle/toggle.js.map +1 -1
- package/dist/components/inputs/valueSlider/valueSlider.js +26 -25
- package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/components/layout/appLayout/appLayout.js +39 -38
- package/dist/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/components/layout/divider/divider.js +26 -22
- package/dist/components/layout/divider/divider.js.map +1 -1
- package/dist/components/layout/floatingWindow/floatingWindow.js +74 -73
- package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/components/layout/grid/grid.js +10 -9
- package/dist/components/layout/grid/grid.js.map +1 -1
- package/dist/components/layout/page/page.js +4 -3
- package/dist/components/layout/page/page.js.map +1 -1
- package/dist/components/layout/pageHeader/pageHeader.js +36 -35
- package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/components/layout/screenDivider/screenDivider.js +9 -8
- package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
- package/dist/components/layout/sectionHeader/index.d.ts +2 -0
- package/dist/components/layout/sectionHeader/sectionHeader.d.ts +30 -0
- package/dist/components/layout/sectionHeader/sectionHeader.js +100 -0
- package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
- package/dist/components/layout/sheet/sheet.js +4 -3
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/stack/stack.js +31 -27
- package/dist/components/layout/stack/stack.js.map +1 -1
- package/dist/components/navigation/appBar/appBar.js +24 -23
- package/dist/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/components/navigation/bottomBar/bottomBar.js +57 -56
- package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js +4 -3
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/navigation/menu/menu.js +10 -9
- package/dist/components/navigation/menu/menu.js.map +1 -1
- package/dist/components/navigation/overflowMenu/overflowMenu.js +4 -3
- package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
- package/dist/components/navigation/pagination/pagination.js +14 -13
- package/dist/components/navigation/pagination/pagination.js.map +1 -1
- package/dist/components/navigation/sidebar/sidebar.js +4 -3
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/components/navigation/stepper/stepper.d.ts +10 -2
- package/dist/components/navigation/stepper/stepper.js +63 -47
- package/dist/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
- package/dist/components/navigation/tabs/tab/tab.js +45 -44
- package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/components/navigation/tabs/tabs.d.ts +12 -0
- package/dist/components/navigation/tabs/tabs.js +142 -86
- package/dist/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/connects/rt/table/table.d.ts +2 -0
- package/dist/headless/components/dataDisplay/accordion/accordion.js +89 -47
- package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
- package/dist/headless/components/dataDisplay/avatar/avatar.js +54 -39
- package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/headless/components/dataDisplay/badge/badge.js +22 -19
- package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
- package/dist/headless/components/dataDisplay/card/card.js +22 -22
- package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chat.js +50 -50
- package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatHeader.js +29 -29
- package/dist/headless/components/dataDisplay/chat/chatHeader.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatMessageBubble.js +28 -28
- package/dist/headless/components/dataDisplay/chat/chatMessageBubble.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatShell.js +54 -51
- package/dist/headless/components/dataDisplay/chat/chatShell.js.map +1 -1
- package/dist/headless/components/dataDisplay/chip/chip.js +77 -69
- package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +58 -0
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
- package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +28 -24
- package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
- package/dist/headless/components/dataDisplay/kanban/kanban.js +131 -0
- package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +28 -28
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/headless/components/dataDisplay/list/list.js +15 -15
- package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
- package/dist/headless/components/dataDisplay/meter/meter.js +82 -0
- package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
- package/dist/headless/components/dataDisplay/personChip/personChip.js +102 -0
- package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
- package/dist/headless/components/dataDisplay/stat/stat.js +99 -0
- package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/table.js +20 -20
- package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableCell.js +9 -6
- package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js +26 -23
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +53 -53
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/headless/components/dataDisplay/timeline/timeline.js +87 -0
- package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
- package/dist/headless/components/dataDisplay/typography/typography.js +34 -21
- package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
- package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js +1 -1
- package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
- package/dist/headless/components/feedBack/emptyState/emptyState.js +84 -0
- package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
- package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +77 -45
- package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
- package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +18 -14
- package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
- package/dist/headless/components/feedBack/tooltip/tooltip.js +33 -26
- package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/headless/components/inputs/button/button.js +33 -32
- package/dist/headless/components/inputs/button/button.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/dataPickerInput.js +23 -23
- package/dist/headless/components/inputs/datePicker/dataPickerInput.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePicker.js +79 -79
- package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/headless/components/inputs/rating/rating.js +39 -39
- package/dist/headless/components/inputs/rating/rating.js.map +1 -1
- package/dist/headless/components/inputs/selectField/selectField.js +61 -58
- package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/headless/components/inputs/textField/textField.js +36 -36
- package/dist/headless/components/inputs/textField/textField.js.map +1 -1
- package/dist/headless/components/inputs/textField/textFieldAdornment.js +9 -9
- package/dist/headless/components/inputs/textField/textFieldAdornment.js.map +1 -1
- package/dist/headless/components/inputs/textField/textFieldWrapper.js +41 -41
- package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/headless/components/inputs/valueSlider/valueSlider.js +24 -24
- package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/headless/components/layout/appLayout/appLayout.js +39 -39
- package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/headless/components/layout/divider/divider.js +24 -21
- package/dist/headless/components/layout/divider/divider.js.map +1 -1
- package/dist/headless/components/layout/pageHeader/pageHeader.js +34 -34
- package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js +98 -0
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
- package/dist/headless/components/layout/stack/stack.js +29 -26
- package/dist/headless/components/layout/stack/stack.js.map +1 -1
- package/dist/headless/components/navigation/appBar/appBar.js +22 -22
- package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/headless/components/navigation/bottomBar/bottomBar.js +51 -51
- package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/headless/components/navigation/stepper/stepper.js +61 -46
- package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tab/tab.js +44 -44
- package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabs.js +140 -85
- package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/headless/icons/catalog.js +78 -1
- package/dist/headless/icons/catalog.js.map +1 -1
- package/dist/headless/icons/index.js +596 -574
- package/dist/headless/icons/index.js.map +1 -1
- package/dist/headless/icons/svg/accountTree.js +9 -0
- package/dist/headless/icons/svg/accountTree.js.map +1 -0
- package/dist/headless/icons/svg/callSplit.js +9 -0
- package/dist/headless/icons/svg/callSplit.js.map +1 -0
- package/dist/headless/icons/svg/deviceHub.js +8 -0
- package/dist/headless/icons/svg/deviceHub.js.map +1 -0
- package/dist/headless/icons/svg/editNote.js +9 -0
- package/dist/headless/icons/svg/editNote.js.map +1 -0
- package/dist/headless/icons/svg/filterList.js +9 -0
- package/dist/headless/icons/svg/filterList.js.map +1 -0
- package/dist/headless/icons/svg/forkRight.js +8 -0
- package/dist/headless/icons/svg/forkRight.js.map +1 -0
- package/dist/headless/icons/svg/groups.js +9 -0
- package/dist/headless/icons/svg/groups.js.map +1 -0
- package/dist/headless/icons/svg/hub.js +8 -0
- package/dist/headless/icons/svg/hub.js.map +1 -0
- package/dist/headless/icons/svg/index.js +598 -576
- package/dist/headless/icons/svg/index.js.map +1 -1
- package/dist/headless/icons/svg/lan.js +9 -0
- package/dist/headless/icons/svg/lan.js.map +1 -0
- package/dist/headless/icons/svg/personOff.js +9 -0
- package/dist/headless/icons/svg/personOff.js.map +1 -0
- package/dist/headless/icons/svg/schema.js +9 -0
- package/dist/headless/icons/svg/schema.js.map +1 -0
- package/dist/headless/index.js +281 -255
- package/dist/headless/index.js.map +1 -1
- package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx +60 -18
- package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +28 -3
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/badge/badge.jsx +8 -4
- package/dist/headless/source/components/dataDisplay/badge/badge.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/card/card.jsx +4 -3
- package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chart/chart.jsx +168 -0
- package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chart/chartTheme.js +78 -0
- package/dist/headless/source/components/dataDisplay/chart/chartTheme.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chart/index.js +9 -0
- package/dist/headless/source/components/dataDisplay/chart/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx +4 -3
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx +7 -5
- package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx +4 -3
- package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx +30 -26
- package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx +11 -6
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +42 -0
- package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/descriptionList/index.js +7 -0
- package/dist/headless/source/components/dataDisplay/descriptionList/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +10 -4
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/kanban/index.js +8 -0
- package/dist/headless/source/components/dataDisplay/kanban/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +99 -0
- package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +4 -3
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/list/list.jsx +4 -3
- package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/meter/index.js +8 -0
- package/dist/headless/source/components/dataDisplay/meter/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/meter/meter.jsx +80 -0
- package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/personChip/index.js +8 -0
- package/dist/headless/source/components/dataDisplay/personChip/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +71 -0
- package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/stat/index.js +7 -0
- package/dist/headless/source/components/dataDisplay/stat/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/stat/stat.jsx +72 -0
- package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/table.jsx +11 -4
- package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +8 -2
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +37 -3
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +10 -7
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/timeline/index.js +8 -0
- package/dist/headless/source/components/dataDisplay/timeline/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/timeline/timeline.jsx +64 -0
- package/dist/headless/source/components/dataDisplay/timeline/timeline.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx +17 -3
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/confirmDialog/confirmDialog.jsx +1 -1
- package/dist/headless/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +47 -0
- package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/emptyState/index.js +6 -0
- package/dist/headless/source/components/feedBack/emptyState/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx +52 -10
- package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +4 -2
- package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +4 -2
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/headless/source/components/inputs/button/button.jsx +7 -3
- package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx +4 -3
- package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +4 -6
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/rating/rating.jsx +4 -3
- package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/headless/source/components/inputs/selectField/selectField.jsx +8 -2
- package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textField.jsx +8 -6
- package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx +4 -3
- package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +9 -6
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +4 -3
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx +3 -2
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/headless/source/components/layout/divider/divider.jsx +10 -6
- package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +14 -10
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/headless/source/components/layout/sectionHeader/index.js +6 -0
- package/dist/headless/source/components/layout/sectionHeader/index.js.map +7 -0
- package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +80 -0
- package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -0
- package/dist/headless/source/components/layout/stack/stack.jsx +3 -2
- package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/headless/source/components/navigation/appBar/appBar.jsx +7 -5
- package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +4 -3
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -7
- package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +7 -5
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabs.jsx +84 -4
- package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/headless/source/connects/rt/table/table.jsx +9 -1
- package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
- package/dist/headless/source/icons/catalog.js +78 -1
- package/dist/headless/source/icons/catalog.js.map +2 -2
- package/dist/headless/source/icons/svg/accountTree.js +11 -0
- package/dist/headless/source/icons/svg/accountTree.js.map +7 -0
- package/dist/headless/source/icons/svg/callSplit.js +11 -0
- package/dist/headless/source/icons/svg/callSplit.js.map +7 -0
- package/dist/headless/source/icons/svg/deviceHub.js +10 -0
- package/dist/headless/source/icons/svg/deviceHub.js.map +7 -0
- package/dist/headless/source/icons/svg/editNote.js +11 -0
- package/dist/headless/source/icons/svg/editNote.js.map +7 -0
- package/dist/headless/source/icons/svg/filterList.js +11 -0
- package/dist/headless/source/icons/svg/filterList.js.map +7 -0
- package/dist/headless/source/icons/svg/forkRight.js +10 -0
- package/dist/headless/source/icons/svg/forkRight.js.map +7 -0
- package/dist/headless/source/icons/svg/groups.js +11 -0
- package/dist/headless/source/icons/svg/groups.js.map +7 -0
- package/dist/headless/source/icons/svg/hub.js +10 -0
- package/dist/headless/source/icons/svg/hub.js.map +7 -0
- package/dist/headless/source/icons/svg/index.js +22 -0
- package/dist/headless/source/icons/svg/index.js.map +2 -2
- package/dist/headless/source/icons/svg/lan.js +11 -0
- package/dist/headless/source/icons/svg/lan.js.map +7 -0
- package/dist/headless/source/icons/svg/personOff.js +11 -0
- package/dist/headless/source/icons/svg/personOff.js.map +7 -0
- package/dist/headless/source/icons/svg/schema.js +11 -0
- package/dist/headless/source/icons/svg/schema.js.map +7 -0
- package/dist/headless/source/index.js +33 -1
- package/dist/headless/source/index.js.map +2 -2
- package/dist/icons/catalog.d.ts +1 -1
- package/dist/icons/catalog.js +78 -1
- package/dist/icons/catalog.js.map +1 -1
- package/dist/icons/index.js +596 -574
- package/dist/icons/index.js.map +1 -1
- package/dist/icons/svg/accountTree.d.ts +4 -0
- package/dist/icons/svg/accountTree.js +9 -0
- package/dist/icons/svg/accountTree.js.map +1 -0
- package/dist/icons/svg/callSplit.d.ts +4 -0
- package/dist/icons/svg/callSplit.js +9 -0
- package/dist/icons/svg/callSplit.js.map +1 -0
- package/dist/icons/svg/deviceHub.d.ts +4 -0
- package/dist/icons/svg/deviceHub.js +8 -0
- package/dist/icons/svg/deviceHub.js.map +1 -0
- package/dist/icons/svg/editNote.d.ts +4 -0
- package/dist/icons/svg/editNote.js +9 -0
- package/dist/icons/svg/editNote.js.map +1 -0
- package/dist/icons/svg/filterList.d.ts +4 -0
- package/dist/icons/svg/filterList.js +9 -0
- package/dist/icons/svg/filterList.js.map +1 -0
- package/dist/icons/svg/forkRight.d.ts +4 -0
- package/dist/icons/svg/forkRight.js +8 -0
- package/dist/icons/svg/forkRight.js.map +1 -0
- package/dist/icons/svg/groups.d.ts +4 -0
- package/dist/icons/svg/groups.js +9 -0
- package/dist/icons/svg/groups.js.map +1 -0
- package/dist/icons/svg/hub.d.ts +4 -0
- package/dist/icons/svg/hub.js +8 -0
- package/dist/icons/svg/hub.js.map +1 -0
- package/dist/icons/svg/index.d.ts +11 -0
- package/dist/icons/svg/index.js +598 -576
- package/dist/icons/svg/index.js.map +1 -1
- package/dist/icons/svg/lan.d.ts +4 -0
- package/dist/icons/svg/lan.js +9 -0
- package/dist/icons/svg/lan.js.map +1 -0
- package/dist/icons/svg/personOff.d.ts +4 -0
- package/dist/icons/svg/personOff.js +9 -0
- package/dist/icons/svg/personOff.js.map +1 -0
- package/dist/icons/svg/schema.d.ts +4 -0
- package/dist/icons/svg/schema.js +9 -0
- package/dist/icons/svg/schema.js.map +1 -0
- package/dist/index.d.ts +21 -5
- package/dist/index.js +281 -255
- package/dist/index.js.map +1 -1
- package/dist/source/components/base/icon/icon.jsx +1 -0
- package/dist/source/components/base/icon/icon.jsx.map +1 -1
- package/dist/source/components/base/ripple/ripple.jsx +1 -0
- package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
- package/dist/source/components/dataDisplay/accordion/accordion.jsx +61 -18
- package/dist/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
- package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx +1 -0
- package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -1
- package/dist/source/components/dataDisplay/avatar/avatar.jsx +29 -3
- package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/source/components/dataDisplay/badge/badge.jsx +9 -4
- package/dist/source/components/dataDisplay/badge/badge.jsx.map +1 -1
- package/dist/source/components/dataDisplay/card/card.jsx +5 -3
- package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/source/components/dataDisplay/carousel/carousel.jsx +1 -0
- package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chart/chart.jsx +170 -0
- package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chart/chartTheme.js +78 -0
- package/dist/source/components/dataDisplay/chart/chartTheme.js.map +7 -0
- package/dist/source/components/dataDisplay/chart/index.js +9 -0
- package/dist/source/components/dataDisplay/chart/index.js.map +7 -0
- package/dist/source/components/dataDisplay/chat/chat.jsx +5 -3
- package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatHeader.jsx +7 -5
- package/dist/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx +4 -3
- package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatShell.jsx +30 -26
- package/dist/source/components/dataDisplay/chat/chatShell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chip/chip.jsx +12 -6
- package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +1 -0
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
- package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +44 -0
- package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -0
- package/dist/source/components/dataDisplay/descriptionList/index.js +7 -0
- package/dist/source/components/dataDisplay/descriptionList/index.js.map +7 -0
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +1 -0
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/imagesList/imagesList.jsx +1 -0
- package/dist/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -1
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +11 -4
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
- package/dist/source/components/dataDisplay/kanban/index.js +8 -0
- package/dist/source/components/dataDisplay/kanban/index.js.map +7 -0
- package/dist/source/components/dataDisplay/kanban/kanban.jsx +101 -0
- package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -0
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +5 -3
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
- package/dist/source/components/dataDisplay/list/list.jsx +5 -3
- package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/source/components/dataDisplay/meter/index.js +8 -0
- package/dist/source/components/dataDisplay/meter/index.js.map +7 -0
- package/dist/source/components/dataDisplay/meter/meter.jsx +82 -0
- package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -0
- package/dist/source/components/dataDisplay/personChip/index.js +8 -0
- package/dist/source/components/dataDisplay/personChip/index.js.map +7 -0
- package/dist/source/components/dataDisplay/personChip/personChip.jsx +73 -0
- package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -0
- package/dist/source/components/dataDisplay/stat/index.js +7 -0
- package/dist/source/components/dataDisplay/stat/index.js.map +7 -0
- package/dist/source/components/dataDisplay/stat/stat.jsx +74 -0
- package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/table.jsx +12 -4
- package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableCell.jsx +8 -2
- package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +37 -3
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +1 -0
- package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -1
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +11 -7
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
- package/dist/source/components/dataDisplay/timeline/index.js +8 -0
- package/dist/source/components/dataDisplay/timeline/index.js.map +7 -0
- package/dist/source/components/dataDisplay/timeline/timeline.jsx +66 -0
- package/dist/source/components/dataDisplay/timeline/timeline.jsx.map +1 -0
- package/dist/source/components/dataDisplay/treeView/treeView.jsx +1 -0
- package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/source/components/dataDisplay/typography/typography.jsx +18 -3
- package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx +2 -1
- package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -1
- package/dist/source/components/feedBack/emptyState/emptyState.jsx +49 -0
- package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -0
- package/dist/source/components/feedBack/emptyState/index.js +6 -0
- package/dist/source/components/feedBack/emptyState/index.js.map +7 -0
- package/dist/source/components/feedBack/message/message.jsx +1 -0
- package/dist/source/components/feedBack/message/message.jsx.map +1 -1
- package/dist/source/components/feedBack/modal/modal.jsx +1 -0
- package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx +53 -10
- package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
- package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +5 -2
- package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -1
- package/dist/source/components/feedBack/skeleton/skeleton.jsx +1 -0
- package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
- package/dist/source/components/feedBack/snackbar/snackbar.jsx +1 -0
- package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
- package/dist/source/components/feedBack/tooltip/tooltip.jsx +5 -2
- package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/source/components/inputs/button/button.jsx +8 -3
- package/dist/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +1 -0
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
- package/dist/source/components/inputs/checkbox/checkbox.jsx +1 -0
- package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/dataPickerInput.jsx +4 -3
- package/dist/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePicker.jsx +5 -6
- package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/source/components/inputs/fileDrop/fileDrop.jsx +1 -0
- package/dist/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -1
- package/dist/source/components/inputs/fileInput/fileInput.jsx +1 -0
- package/dist/source/components/inputs/fileInput/fileInput.jsx.map +1 -1
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx +1 -0
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
- package/dist/source/components/inputs/radioButton/radioButton.jsx +1 -0
- package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
- package/dist/source/components/inputs/rating/rating.jsx +5 -3
- package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/source/components/inputs/selectField/selectField.jsx +9 -2
- package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/source/components/inputs/slider/slider.jsx +1 -0
- package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textField.jsx +9 -6
- package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textFieldAdornment.jsx +4 -3
- package/dist/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx +9 -6
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
- package/dist/source/components/inputs/timePicker/timePicker.jsx +1 -0
- package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
- package/dist/source/components/inputs/toggle/toggle.jsx +1 -0
- package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx +5 -3
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
- package/dist/source/components/layout/appLayout/appLayout.jsx +4 -2
- package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/source/components/layout/divider/divider.jsx +11 -6
- package/dist/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +1 -0
- package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
- package/dist/source/components/layout/grid/grid.jsx +1 -0
- package/dist/source/components/layout/grid/grid.jsx.map +1 -1
- package/dist/source/components/layout/page/page.jsx +1 -0
- package/dist/source/components/layout/page/page.jsx.map +1 -1
- package/dist/source/components/layout/pageHeader/pageHeader.jsx +15 -10
- package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/source/components/layout/screenDivider/screenDivider.jsx +1 -0
- package/dist/source/components/layout/screenDivider/screenDivider.jsx.map +1 -1
- package/dist/source/components/layout/sectionHeader/index.js +6 -0
- package/dist/source/components/layout/sectionHeader/index.js.map +7 -0
- package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +82 -0
- package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -0
- package/dist/source/components/layout/sheet/sheet.jsx +1 -0
- package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/source/components/layout/stack/stack.jsx +4 -2
- package/dist/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/source/components/navigation/appBar/appBar.jsx +8 -5
- package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx +5 -3
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +1 -0
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menu.jsx +1 -0
- package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
- package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx +1 -0
- package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -1
- package/dist/source/components/navigation/pagination/pagination.jsx +1 -0
- package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
- package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -0
- package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/source/components/navigation/stepper/stepper.jsx +15 -7
- package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tab/tab.jsx +8 -5
- package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabs.jsx +85 -4
- package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/source/connects/rt/table/table.jsx +9 -1
- package/dist/source/connects/rt/table/table.jsx.map +1 -1
- package/dist/source/icons/catalog.js +78 -1
- package/dist/source/icons/catalog.js.map +2 -2
- package/dist/source/icons/svg/accountTree.js +11 -0
- package/dist/source/icons/svg/accountTree.js.map +7 -0
- package/dist/source/icons/svg/callSplit.js +11 -0
- package/dist/source/icons/svg/callSplit.js.map +7 -0
- package/dist/source/icons/svg/deviceHub.js +10 -0
- package/dist/source/icons/svg/deviceHub.js.map +7 -0
- package/dist/source/icons/svg/editNote.js +11 -0
- package/dist/source/icons/svg/editNote.js.map +7 -0
- package/dist/source/icons/svg/filterList.js +11 -0
- package/dist/source/icons/svg/filterList.js.map +7 -0
- package/dist/source/icons/svg/forkRight.js +10 -0
- package/dist/source/icons/svg/forkRight.js.map +7 -0
- package/dist/source/icons/svg/groups.js +11 -0
- package/dist/source/icons/svg/groups.js.map +7 -0
- package/dist/source/icons/svg/hub.js +10 -0
- package/dist/source/icons/svg/hub.js.map +7 -0
- package/dist/source/icons/svg/index.js +22 -0
- package/dist/source/icons/svg/index.js.map +2 -2
- package/dist/source/icons/svg/lan.js +11 -0
- package/dist/source/icons/svg/lan.js.map +7 -0
- package/dist/source/icons/svg/personOff.js +11 -0
- package/dist/source/icons/svg/personOff.js.map +7 -0
- package/dist/source/icons/svg/schema.js +11 -0
- package/dist/source/icons/svg/schema.js.map +7 -0
- package/dist/source/index.js +33 -1
- package/dist/source/index.js.map +2 -2
- package/package.json +79 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/navigation/stepper/stepper.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/components/stepper/stepper.entry.less\";\nimport { type JSX, For, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface StepItem {\n label: JSX.Element;\n description?: JSX.Element;\n optional?: JSX.Element;\n /** Marks the step as errored. */\n error?: boolean;\n /** Disables interaction with the step. */\n disabled?: boolean;\n /** Custom icon overriding the default number/check. */\n icon?: JSX.Element;\n}\n\nexport interface StepperProps extends JSX.HTMLAttributes<HTMLDivElement> {\n steps: StepItem[];\n /** Index of the active (current) step. */\n activeStep: number;\n orientation?:
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/navigation/stepper/stepper.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/stepper/stepper.entry.less\";\nimport { type JSX, For, Show, createMemo, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface StepItem {\n label: JSX.Element;\n /** Longer text under the label, in every orientation. */\n description?: JSX.Element;\n optional?: JSX.Element;\n /** Marks the step as errored. */\n error?: boolean;\n /** Disables interaction with the step. */\n disabled?: boolean;\n /** Custom icon overriding the default number/check. */\n icon?: JSX.Element;\n}\n\n/**\n * `auto` lays the steps out in a row while the stepper's container is wide\n * enough for them — about 8rem per step, a theme variable — and in a column when\n * it is not. It is a CSS container query, so the server renders the same markup\n * and nothing changes on hydration.\n */\nexport type StepperOrientation = \"horizontal\" | \"vertical\" | \"auto\";\n\nexport interface StepperProps extends JSX.HTMLAttributes<HTMLDivElement> {\n steps: StepItem[];\n /** Index of the active (current) step. */\n activeStep: number;\n orientation?: StepperOrientation;\n /** Place the label under the icon (in a row: horizontal, or auto while wide). */\n alternativeLabel?: boolean;\n /** Makes steps clickable; receives the clicked step index. */\n onStepClick?: (index: number) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** Step counts with their own `auto` breakpoint; longer steppers use the last one. */\nconst AUTO_MAX_STEPS = 12;\n\nexport function Stepper(props: StepperProps): JSX.Element {\n const merged = mergeProps({ orientation: \"horizontal\" as StepperOrientation, alternativeLabel: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"steps\",\n \"activeStep\",\n \"orientation\",\n \"alternativeLabel\",\n \"onStepClick\",\n \"ref\",\n ]);\n\n // Read the steps once. An inline array is re-evaluated on every read, creating\n // the markup in it (icons, labels, descriptions) again; during hydration a copy\n // that is not the rendered one has no server DOM node to adopt.\n const steps = createMemo(() => local.steps);\n const auto = (): boolean => local.orientation === \"auto\";\n\n const stepper = (): JSX.Element => (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"stepper\"\n data-steps={auto() ? String(Math.min(steps().length, AUTO_MAX_STEPS)) : undefined}\n class={cn(\n \"smwb-stepper\",\n auto() ? \"smwb-stepper_horizontal smwb-stepper_auto\" : `smwb-stepper_${local.orientation}`,\n { \"smwb-stepper_alt-label\": local.alternativeLabel && local.orientation !== \"vertical\" },\n local.class\n )}\n >\n <For each={steps()}>\n {(step, index) => {\n const completed = (): boolean => index() < local.activeStep;\n const active = (): boolean => index() === local.activeStep;\n const isLast = (): boolean => index() === steps().length - 1;\n const clickable = (): boolean => Boolean(local.onStepClick) && !step.disabled;\n\n return (\n <>\n <div\n class={cn(\"smwb-stepper__step\", {\n \"smwb-stepper__step_active\": active(),\n \"smwb-stepper__step_completed\": completed(),\n \"smwb-stepper__step_error\": step.error,\n \"smwb-stepper__step_disabled\": step.disabled,\n \"smwb-stepper__step_clickable\": clickable(),\n })}\n aria-current={active() ? \"step\" : undefined}\n aria-disabled={step.disabled || undefined}\n role={clickable() ? \"button\" : undefined}\n tabindex={clickable() ? 0 : undefined}\n onClick={clickable() ? () => local.onStepClick?.(index()) : undefined}\n onKeyDown={\n clickable()\n ? (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onStepClick?.(index());\n }\n }\n : undefined\n }\n >\n <div class=\"smwb-stepper__icon\" aria-hidden=\"true\">\n <Show when={step.icon} fallback={completed() ? <Icon name=\"check\" size={16} /> : <span>{index() + 1}</span>}>\n {step.icon}\n </Show>\n </div>\n <div class=\"smwb-stepper__text\">\n <span class=\"smwb-stepper__label\">{step.label}</span>\n <Show when={step.optional}>\n <span class=\"smwb-stepper__optional\">{step.optional}</span>\n </Show>\n <Show when={step.description}>\n <span class=\"smwb-stepper__description\">{step.description}</span>\n </Show>\n </div>\n </div>\n <Show when={!isLast()}>\n <div class=\"smwb-stepper__connector\" aria-hidden=\"true\" />\n </Show>\n </>\n );\n }}\n </For>\n </div>\n );\n\n // `auto` needs a query container around the stepper: its own flex direction is\n // what the container query switches.\n return (\n <Show when={auto()} fallback={stepper()}>\n <div class=\"smwb-stepper-auto\">{stepper()}</div>\n </Show>\n );\n}\n\nexport default Stepper;\n"],"mappings":"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","names":[],"file":"stepper.jsx"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import "@smwb/ui-styles/less/tokens.entry.less";
|
|
1
2
|
import "@smwb/ui-styles/less/components/tabs/tab/tab.entry.less";
|
|
2
|
-
import { Show, mergeProps, splitProps } from "solid-js";
|
|
3
|
+
import { Show, children, mergeProps, splitProps } from "solid-js";
|
|
3
4
|
import { Dynamic } from "solid-js/web";
|
|
4
5
|
import cn from "clsx";
|
|
5
6
|
import { Ripple } from "../../../base/ripple";
|
|
@@ -22,6 +23,8 @@ function Tab(props) {
|
|
|
22
23
|
"onClick",
|
|
23
24
|
"ref"
|
|
24
25
|
]);
|
|
26
|
+
const icon = children(() => local.icon);
|
|
27
|
+
const label = children(() => local.label);
|
|
25
28
|
let rippleActions;
|
|
26
29
|
const active = () => ctx ? ctx.value() === index : local.isActive;
|
|
27
30
|
const onClick = (event) => {
|
|
@@ -58,11 +61,11 @@ function Tab(props) {
|
|
|
58
61
|
if (ctx?.indicatorContent) ctx.setContentRef(index, el);
|
|
59
62
|
})}
|
|
60
63
|
>
|
|
61
|
-
<Show when={
|
|
62
|
-
<span class="smwb-tab__icon">{
|
|
64
|
+
<Show when={icon()}>
|
|
65
|
+
<span class="smwb-tab__icon">{icon()}</span>
|
|
63
66
|
</Show>
|
|
64
|
-
<Show when={
|
|
65
|
-
<span class="smwb-tab__text-label">{
|
|
67
|
+
<Show when={label()}>
|
|
68
|
+
<span class="smwb-tab__text-label">{label()}</span>
|
|
66
69
|
</Show>
|
|
67
70
|
</span>
|
|
68
71
|
<Ripple actionRef={(actions) => rippleActions = actions} classes={{ child: "tab__ripple-child" }} />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/navigation/tabs/tab/tab.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/components/tabs/tab/tab.entry.less\";\nimport { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../../base/ripple\";\nimport { useTabsContext } from \"../tabsContext\";\nimport { mergeRefs, type Ref } from \"../../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../../primitives/callHandler\";\n\nexport interface TabProps extends JSX.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\n label?: JSX.Element;\n isActive?: boolean;\n contentRef?: Ref<HTMLSpanElement>;\n icon?: JSX.Element;\n stacked?: boolean;\n tag?: string;\n disabled?: boolean;\n ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport function Tab(props: ParentProps<TabProps>): JSX.Element {\n const ctx = useTabsContext();\n const index = ctx ? ctx.registerTab() : -1;\n const merged = mergeProps({ isActive: false, stacked: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"label\",\n \"isActive\",\n \"contentRef\",\n \"icon\",\n \"stacked\",\n \"tag\",\n \"disabled\",\n \"onClick\",\n \"ref\",\n ]);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const active = (): boolean => (ctx ? ctx.value() === index : local.isActive);\n\n const onClick: JSX.EventHandler<HTMLButtonElement | HTMLAnchorElement, MouseEvent> = (event) => {\n if (ctx) {\n ctx.onChange(event, index);\n } else {\n callHandler(local.onClick, event);\n }\n };\n\n const onPointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n\n const tag = (): string => local.tag ?? \"button\";\n\n return (\n <Dynamic\n component={tag()}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-tab\", local.class, {\n \"smwb-tab--active\": active(),\n \"smwb-tab--stacked\": local.stacked,\n \"smwb-tab--disabled\": local.disabled,\n })}\n onClick={onClick}\n onPointerDown={onPointerDown}\n role=\"tab\"\n aria-selected={active()}\n aria-disabled={local.disabled || undefined}\n tabindex={active() ? 0 : -1}\n disabled={tag() === \"button\" ? local.disabled : undefined}\n >\n <span\n class=\"smwb-tab__content\"\n ref={mergeRefs(local.contentRef, (el) => {\n if (ctx?.indicatorContent) ctx.setContentRef(index, el as HTMLSpanElement);\n })}\n >\n <Show when={
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/navigation/tabs/tab/tab.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/tabs/tab/tab.entry.less\";\nimport { type JSX, type ParentProps, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../../base/ripple\";\nimport { useTabsContext } from \"../tabsContext\";\nimport { mergeRefs, type Ref } from \"../../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../../primitives/callHandler\";\n\nexport interface TabProps extends JSX.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\n label?: JSX.Element;\n isActive?: boolean;\n contentRef?: Ref<HTMLSpanElement>;\n icon?: JSX.Element;\n stacked?: boolean;\n tag?: string;\n /** With `tag=\"a\"`: where the link goes, so the tab stays a real link. */\n href?: string;\n disabled?: boolean;\n ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport function Tab(props: ParentProps<TabProps>): JSX.Element {\n const ctx = useTabsContext();\n const index = ctx ? ctx.registerTab() : -1;\n const merged = mergeProps({ isActive: false, stacked: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"label\",\n \"isActive\",\n \"contentRef\",\n \"icon\",\n \"stacked\",\n \"tag\",\n \"disabled\",\n \"onClick\",\n \"ref\",\n ]);\n\n // Read the icon and the label once: markup passed as a prop is created anew on\n // every read, and during hydration the copy made for the <Show> test has no\n // server DOM node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n const label = children(() => local.label);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const active = (): boolean => (ctx ? ctx.value() === index : local.isActive);\n\n const onClick: JSX.EventHandler<HTMLButtonElement | HTMLAnchorElement, MouseEvent> = (event) => {\n if (ctx) {\n ctx.onChange(event, index);\n } else {\n callHandler(local.onClick, event);\n }\n };\n\n const onPointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n\n const tag = (): string => local.tag ?? \"button\";\n\n return (\n <Dynamic\n component={tag()}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-tab\", local.class, {\n \"smwb-tab--active\": active(),\n \"smwb-tab--stacked\": local.stacked,\n \"smwb-tab--disabled\": local.disabled,\n })}\n onClick={onClick}\n onPointerDown={onPointerDown}\n role=\"tab\"\n aria-selected={active()}\n aria-disabled={local.disabled || undefined}\n tabindex={active() ? 0 : -1}\n disabled={tag() === \"button\" ? local.disabled : undefined}\n >\n <span\n class=\"smwb-tab__content\"\n ref={mergeRefs(local.contentRef, (el) => {\n if (ctx?.indicatorContent) ctx.setContentRef(index, el as HTMLSpanElement);\n })}\n >\n <Show when={icon()}>\n <span class=\"smwb-tab__icon\">{icon()}</span>\n </Show>\n <Show when={label()}>\n <span class=\"smwb-tab__text-label\">{label()}</span>\n </Show>\n </span>\n <Ripple actionRef={(actions) => (rippleActions = actions)} classes={{ child: \"tab__ripple-child\" }} />\n </Dynamic>\n );\n}\n\nexport default Tab;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAqC,MAAM,UAAU,YAAY,kBAAkB;AACnF,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,cAAqC;AAC9C,SAAS,sBAAsB;AAC/B,SAAS,iBAA2B;AACpC,SAAS,mBAAmB;AAerB,SAAS,IAAI,OAA2C;AAC7D,QAAM,MAAM,eAAe;AAC3B,QAAM,QAAQ,MAAM,IAAI,YAAY,IAAI;AACxC,QAAM,SAAS,WAAW,EAAE,UAAU,OAAO,SAAS,MAAM,GAAG,KAAK;AACpE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAKD,QAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AAExC,MAAI;AAEJ,QAAM,SAAS,MAAgB,MAAM,IAAI,MAAM,MAAM,QAAQ,MAAM;AAEnE,QAAM,UAA+E,CAAC,UAAU;AAC9F,QAAI,KAAK;AACP,UAAI,SAAS,OAAO,KAAK;AAAA,IAC3B,OAAO;AACL,kBAAY,MAAM,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AAEA,QAAM,gBAAgB,CAAC,UAA8B;AACnD,mBAAe,SAAS,KAAK;AAAA,EAC/B;AAEA,QAAM,MAAM,MAAc,MAAM,OAAO;AAEvC,SACE,CAAC;AAAA,IACC,WAAW,IAAI;AAAA,QACX;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,YAAY,MAAM,OAAO;AAAA,MACjC,oBAAoB,OAAO;AAAA,MAC3B,qBAAqB,MAAM;AAAA,MAC3B,sBAAsB,MAAM;AAAA,IAC9B,CAAC;AAAA,IACD,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK;AAAA,IACL,eAAe,OAAO;AAAA,IACtB,eAAe,MAAM,YAAY;AAAA,IACjC,UAAU,OAAO,IAAI,IAAI;AAAA,IACzB,UAAU,IAAI,MAAM,WAAW,MAAM,WAAW;AAAA,GACjD;AAAA,MACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,KAAK,UAAU,MAAM,YAAY,CAAC,OAAO;AACvC,UAAI,KAAK,iBAAkB,KAAI,cAAc,OAAO,EAAqB;AAAA,IAC3E,CAAC;AAAA,GACF;AAAA,QACC,CAAC,KAAK,MAAM,KAAK,GAAG;AAAA,UAClB,CAAC,KAAK,MAAM,kBAAkB,KAAK,EAAE,EAApC,KAA2C;AAAA,QAC9C,EAFC,KAEM;AAAA,QACP,CAAC,KAAK,MAAM,MAAM,GAAG;AAAA,UACnB,CAAC,KAAK,MAAM,wBAAwB,MAAM,EAAE,EAA3C,KAAkD;AAAA,QACrD,EAFC,KAEM;AAAA,MACT,EAZC,KAYM;AAAA,MACP,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,SAAS,EAAE,OAAO,oBAAoB,GAAG,EAAE;AAAA,IACxG,EA/BC;AAiCL;AAEA,IAAO,cAAQ;","names":[],"file":"tab.jsx"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "@smwb/ui-styles/less/tokens.entry.less";
|
|
1
2
|
import "@smwb/ui-styles/less/components/tabs/tabs.entry.less";
|
|
2
3
|
import { Show, createEffect, createSignal, mergeProps, on, onCleanup, onMount, splitProps } from "solid-js";
|
|
3
4
|
import cn from "clsx";
|
|
@@ -5,10 +6,22 @@ import { debounce } from "../../../utils/debounce";
|
|
|
5
6
|
import { animate } from "../../../utils/animate";
|
|
6
7
|
import { TabsContext } from "./tabsContext";
|
|
7
8
|
import { Tab } from "./tab/tab";
|
|
9
|
+
import { Icon } from "../../base/icon";
|
|
8
10
|
import { mergeRefs } from "../../../primitives/mergeRefs";
|
|
9
11
|
const VIEW_NEXT_TAB_PX = 40;
|
|
12
|
+
const SCROLL_PAGE = 0.8;
|
|
10
13
|
function Tabs(props) {
|
|
11
|
-
const merged = mergeProps(
|
|
14
|
+
const merged = mergeProps(
|
|
15
|
+
{
|
|
16
|
+
indicatorContent: false,
|
|
17
|
+
scrollable: false,
|
|
18
|
+
scrollButtons: false,
|
|
19
|
+
dense: false,
|
|
20
|
+
scrollBackAriaLabel: "Scroll tabs back",
|
|
21
|
+
scrollForwardAriaLabel: "Scroll tabs forward"
|
|
22
|
+
},
|
|
23
|
+
props
|
|
24
|
+
);
|
|
12
25
|
const [local, rest] = splitProps(merged, [
|
|
13
26
|
"class",
|
|
14
27
|
"children",
|
|
@@ -16,11 +29,17 @@ function Tabs(props) {
|
|
|
16
29
|
"value",
|
|
17
30
|
"indicatorContent",
|
|
18
31
|
"scrollable",
|
|
32
|
+
"scrollButtons",
|
|
33
|
+
"dense",
|
|
34
|
+
"scrollBackAriaLabel",
|
|
35
|
+
"scrollForwardAriaLabel",
|
|
19
36
|
"aria-label",
|
|
20
37
|
"ref"
|
|
21
38
|
]);
|
|
22
39
|
const [mounted, setMounted] = createSignal(false);
|
|
23
40
|
const [indicatorStyle, setIndicatorStyle] = createSignal({ root: {} });
|
|
41
|
+
const [overflowStart, setOverflowStart] = createSignal(false);
|
|
42
|
+
const [overflowEnd, setOverflowEnd] = createSignal(false);
|
|
24
43
|
let tabsEl;
|
|
25
44
|
let tabListEl;
|
|
26
45
|
let tabCounter = 0;
|
|
@@ -63,10 +82,24 @@ function Tabs(props) {
|
|
|
63
82
|
setIndicatorStyle(next);
|
|
64
83
|
}
|
|
65
84
|
};
|
|
85
|
+
const updateOverflow = () => {
|
|
86
|
+
if (!tabsEl || !local.scrollable) {
|
|
87
|
+
setOverflowStart(false);
|
|
88
|
+
setOverflowEnd(false);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const max = tabsEl.scrollWidth - tabsEl.clientWidth;
|
|
92
|
+
setOverflowStart(tabsEl.scrollLeft > 1);
|
|
93
|
+
setOverflowEnd(tabsEl.scrollLeft < max - 1);
|
|
94
|
+
};
|
|
66
95
|
const scroll = (scrollValue) => {
|
|
67
96
|
if (!tabsEl) return;
|
|
68
97
|
animate(tabsEl, "scrollLeft", scrollValue, { duration: 300 });
|
|
69
98
|
};
|
|
99
|
+
const scrollByPage = (direction) => {
|
|
100
|
+
if (!tabsEl) return;
|
|
101
|
+
scroll(tabsEl.scrollLeft + direction * tabsEl.clientWidth * SCROLL_PAGE);
|
|
102
|
+
};
|
|
70
103
|
const scrollSelectedIntoView = () => {
|
|
71
104
|
const { tabsMeta, tabMeta } = getTabsMeta();
|
|
72
105
|
if (!tabMeta || !tabsMeta) return;
|
|
@@ -79,17 +112,24 @@ function Tabs(props) {
|
|
|
79
112
|
onMount(() => setMounted(true));
|
|
80
113
|
createEffect(on(() => local.value, () => updateIndicatorState()));
|
|
81
114
|
onMount(() => {
|
|
82
|
-
const onResize = debounce(() =>
|
|
115
|
+
const onResize = debounce(() => {
|
|
116
|
+
updateIndicatorState();
|
|
117
|
+
updateOverflow();
|
|
118
|
+
}, 166);
|
|
83
119
|
const view = tabsEl?.ownerDocument.defaultView;
|
|
84
120
|
view?.addEventListener("resize", onResize);
|
|
121
|
+
tabsEl?.addEventListener("scroll", updateOverflow, { passive: true });
|
|
85
122
|
let resizeObserver;
|
|
86
123
|
if (typeof ResizeObserver !== "undefined" && tabListEl) {
|
|
87
124
|
resizeObserver = new ResizeObserver(onResize);
|
|
125
|
+
if (tabsEl) resizeObserver.observe(tabsEl);
|
|
88
126
|
Array.from(tabListEl.children).forEach((child) => resizeObserver?.observe(child));
|
|
89
127
|
}
|
|
128
|
+
updateOverflow();
|
|
90
129
|
onCleanup(() => {
|
|
91
130
|
onResize.cancel();
|
|
92
131
|
view?.removeEventListener("resize", onResize);
|
|
132
|
+
tabsEl?.removeEventListener("scroll", updateOverflow);
|
|
93
133
|
resizeObserver?.disconnect();
|
|
94
134
|
});
|
|
95
135
|
});
|
|
@@ -106,10 +146,40 @@ function Tabs(props) {
|
|
|
106
146
|
contentRefs[index] = el;
|
|
107
147
|
}
|
|
108
148
|
};
|
|
149
|
+
const showScrollButtons = () => local.scrollable && local.scrollButtons && (overflowStart() || overflowEnd());
|
|
109
150
|
return <TabsContext.Provider value={contextValue}>
|
|
110
|
-
<div
|
|
151
|
+
<div
|
|
152
|
+
{...rest}
|
|
153
|
+
class={cn(
|
|
154
|
+
"smwb-tabs",
|
|
155
|
+
{
|
|
156
|
+
"smwb-tabs--dense": local.dense,
|
|
157
|
+
"smwb-tabs--overflow-start": overflowStart(),
|
|
158
|
+
"smwb-tabs--overflow-end": overflowEnd()
|
|
159
|
+
},
|
|
160
|
+
local.class
|
|
161
|
+
)}
|
|
162
|
+
role="tabpanel"
|
|
163
|
+
ref={mergeRefs(local.ref)}
|
|
164
|
+
>
|
|
165
|
+
<Show when={showScrollButtons()}>
|
|
166
|
+
<button
|
|
167
|
+
type="button"
|
|
168
|
+
class="smwb-tabs__scroll-button smwb-tabs__scroll-button--start"
|
|
169
|
+
aria-label={local.scrollBackAriaLabel}
|
|
170
|
+
disabled={!overflowStart()}
|
|
171
|
+
onClick={() => scrollByPage(-1)}
|
|
172
|
+
>
|
|
173
|
+
<Icon name="chevron_left" size={20} />
|
|
174
|
+
</button>
|
|
175
|
+
</Show>
|
|
176
|
+
{
|
|
177
|
+
/* The scroller's class is static so it is on the element from the start:
|
|
178
|
+
a ref on Tabs can find the row by class right away. */
|
|
179
|
+
}
|
|
111
180
|
<div
|
|
112
|
-
class=
|
|
181
|
+
class="smwb-tabs__scroller"
|
|
182
|
+
classList={{ "smwb-tabs__scroller--scrollable": local.scrollable }}
|
|
113
183
|
ref={(el) => tabsEl = el}
|
|
114
184
|
>
|
|
115
185
|
<div class="smwb-tabs__scroll-area" ref={(el) => tabListEl = el} role="tablist" aria-label={local["aria-label"]}>
|
|
@@ -130,6 +200,17 @@ function Tabs(props) {
|
|
|
130
200
|
</span>
|
|
131
201
|
</Show>
|
|
132
202
|
</div>
|
|
203
|
+
<Show when={showScrollButtons()}>
|
|
204
|
+
<button
|
|
205
|
+
type="button"
|
|
206
|
+
class="smwb-tabs__scroll-button smwb-tabs__scroll-button--end"
|
|
207
|
+
aria-label={local.scrollForwardAriaLabel}
|
|
208
|
+
disabled={!overflowEnd()}
|
|
209
|
+
onClick={() => scrollByPage(1)}
|
|
210
|
+
>
|
|
211
|
+
<Icon name="chevron_right" size={20} />
|
|
212
|
+
</button>
|
|
213
|
+
</Show>
|
|
133
214
|
</div>
|
|
134
215
|
</TabsContext.Provider>;
|
|
135
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/navigation/tabs/tabs.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/components/tabs/tabs.entry.less\";\nimport { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, on, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { debounce } from \"../../../utils/debounce\";\nimport { animate } from \"../../../utils/animate\";\nimport { TabsContext, type TabsContextValue } from \"./tabsContext\";\nimport { Tab } from \"./tab/tab\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface TabsProps {\n value: number;\n onChange: (event: MouseEvent & { currentTarget: HTMLElement; target: Element }, index: number) => void;\n indicatorContent?: boolean;\n scrollable?: boolean;\n class?: string;\n children?: JSX.Element;\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ninterface IndicatorStyle {\n root: { left?: number; width?: number };\n content?: { width: number };\n}\n\nconst VIEW_NEXT_TAB_PX = 40;\n\nexport function Tabs(props: ParentProps<TabsProps>): JSX.Element {\n const merged = mergeProps({ indicatorContent: false, scrollable: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"onChange\",\n \"value\",\n \"indicatorContent\",\n \"scrollable\",\n \"aria-label\",\n \"ref\",\n ]);\n\n const [mounted, setMounted] = createSignal(false);\n const [indicatorStyle, setIndicatorStyle] = createSignal<IndicatorStyle>({ root: {} });\n\n let tabsEl: HTMLDivElement | undefined;\n let tabListEl: HTMLDivElement | undefined;\n let tabCounter = 0;\n const contentRefs: HTMLSpanElement[] = [];\n\n const getTabsMeta = () => {\n let tabsMeta: { clientWidth: number; scrollLeft: number; left: number; right: number } | undefined;\n if (tabsEl) {\n const rect = tabsEl.getBoundingClientRect();\n tabsMeta = { clientWidth: tabsEl.clientWidth, scrollLeft: tabsEl.scrollLeft, left: rect.left, right: rect.right };\n }\n let tabMeta: DOMRect | null = null;\n let tabContentMeta: DOMRect | null = null;\n if (tabsEl && tabListEl && tabListEl.children.length > 0) {\n const tab = tabListEl.children[local.value];\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (local.indicatorContent) {\n tabContentMeta = contentRefs[local.value]?.getBoundingClientRect() ?? null;\n }\n }\n return { tabsMeta, tabMeta, tabContentMeta };\n };\n\n const updateIndicatorState = (): void => {\n const { tabsMeta, tabMeta, tabContentMeta } = getTabsMeta();\n let startValue = 0;\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.left - tabsMeta.left + tabsMeta.scrollLeft;\n }\n const next: IndicatorStyle = { root: { left: startValue, width: tabMeta ? tabMeta.width : 0 } };\n if (local.indicatorContent && tabContentMeta) {\n next.content = { width: tabContentMeta.width };\n }\n const prev = indicatorStyle();\n if (prev.root.left === undefined || prev.root.width === undefined) {\n setIndicatorStyle(next);\n return;\n }\n const dStart = Math.abs((prev.root.left ?? 0) - (next.root.left ?? 0));\n const dSize = Math.abs((prev.root.width ?? 0) - (next.root.width ?? 0));\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(next);\n }\n };\n\n const scroll = (scrollValue: number): void => {\n if (!tabsEl) return;\n animate(tabsEl, \"scrollLeft\", scrollValue, { duration: 300 });\n };\n\n const scrollSelectedIntoView = (): void => {\n const { tabsMeta, tabMeta } = getTabsMeta();\n if (!tabMeta || !tabsMeta) return;\n if (tabMeta.left < tabsMeta.left) {\n scroll(tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left) - VIEW_NEXT_TAB_PX);\n } else if (tabMeta.right > tabsMeta.right) {\n scroll(tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right) + VIEW_NEXT_TAB_PX);\n }\n };\n\n onMount(() => setMounted(true));\n\n // Re-measure when the active value changes (and on mount).\n createEffect(on(() => local.value, () => updateIndicatorState()));\n\n // Keep the indicator in sync with resize.\n onMount(() => {\n const onResize = debounce(() => updateIndicatorState(), 166);\n const view = tabsEl?.ownerDocument.defaultView;\n view?.addEventListener(\"resize\", onResize);\n let resizeObserver: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\" && tabListEl) {\n resizeObserver = new ResizeObserver(onResize);\n Array.from(tabListEl.children).forEach((child) => resizeObserver?.observe(child));\n }\n onCleanup(() => {\n onResize.cancel();\n view?.removeEventListener(\"resize\", onResize);\n resizeObserver?.disconnect();\n });\n });\n\n // Scroll the selected tab into view when the indicator moves.\n createEffect(() => {\n indicatorStyle();\n scrollSelectedIntoView();\n });\n\n const contextValue: TabsContextValue = {\n value: () => local.value,\n onChange: local.onChange,\n indicatorContent: local.indicatorContent,\n registerTab: () => tabCounter++,\n setContentRef: (index, el) => {\n contentRefs[index] = el;\n },\n };\n\n return (\n <TabsContext.Provider value={contextValue}>\n <div {...rest} class={cn(\"smwb-tabs\", local.class)} role=\"tabpanel\" ref={mergeRefs(local.ref)}>\n <div\n class={cn(\"smwb-tabs__scroller\", { \"smwb-tabs__scroller--scrollable\": local.scrollable })}\n ref={(el) => (tabsEl = el)}\n >\n <div class=\"smwb-tabs__scroll-area\" ref={(el) => (tabListEl = el)} role=\"tablist\" aria-label={local[\"aria-label\"]}>\n {local.children}\n </div>\n <Show when={mounted()}>\n <span\n class=\"smwb-tabs__indicator\"\n style={{\n left: `${indicatorStyle().root.left ?? 0}px`,\n width: `${indicatorStyle().root.width ?? 0}px`,\n }}\n >\n <span\n class=\"smwb-tabs__indicator-content\"\n style={indicatorStyle().content ? { width: `${indicatorStyle().content?.width ?? 0}px` } : {}}\n />\n </span>\n </Show>\n </div>\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport { Tab };\nexport type { TabProps } from \"./tab/tab\";\nexport default Tabs;\n"],"mappings":"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","names":[],"file":"tabs.jsx"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/navigation/tabs/tabs.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/tabs/tabs.entry.less\";\nimport { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, on, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { debounce } from \"../../../utils/debounce\";\nimport { animate } from \"../../../utils/animate\";\nimport { TabsContext, type TabsContextValue } from \"./tabsContext\";\nimport { Tab } from \"./tab/tab\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface TabsProps {\n value: number;\n onChange: (event: MouseEvent & { currentTarget: HTMLElement; target: Element }, index: number) => void;\n indicatorContent?: boolean;\n /**\n * Let the tab row scroll sideways instead of clipping it. The edge beyond which\n * more tabs are hidden fades out.\n */\n scrollable?: boolean;\n /** With `scrollable`: buttons at both ends that scroll the row while it overflows. */\n scrollButtons?: boolean;\n /** Compact tabs: labels as written (no capitals, no letter spacing) and less padding. */\n dense?: boolean;\n /** Accessible label of the button that scrolls back. */\n scrollBackAriaLabel?: string;\n /** Accessible label of the button that scrolls forward. */\n scrollForwardAriaLabel?: string;\n class?: string;\n children?: JSX.Element;\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ninterface IndicatorStyle {\n root: { left?: number; width?: number };\n content?: { width: number };\n}\n\nconst VIEW_NEXT_TAB_PX = 40;\n/** A scroll button moves the row by this share of its visible width. */\nconst SCROLL_PAGE = 0.8;\n\nexport function Tabs(props: ParentProps<TabsProps>): JSX.Element {\n const merged = mergeProps(\n {\n indicatorContent: false,\n scrollable: false,\n scrollButtons: false,\n dense: false,\n scrollBackAriaLabel: \"Scroll tabs back\",\n scrollForwardAriaLabel: \"Scroll tabs forward\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"onChange\",\n \"value\",\n \"indicatorContent\",\n \"scrollable\",\n \"scrollButtons\",\n \"dense\",\n \"scrollBackAriaLabel\",\n \"scrollForwardAriaLabel\",\n \"aria-label\",\n \"ref\",\n ]);\n\n const [mounted, setMounted] = createSignal(false);\n const [indicatorStyle, setIndicatorStyle] = createSignal<IndicatorStyle>({ root: {} });\n // Whether tabs are hidden past the start / the end of a scrollable row. Only\n // measured in the browser, so the server markup shows neither.\n const [overflowStart, setOverflowStart] = createSignal(false);\n const [overflowEnd, setOverflowEnd] = createSignal(false);\n\n let tabsEl: HTMLDivElement | undefined;\n let tabListEl: HTMLDivElement | undefined;\n let tabCounter = 0;\n const contentRefs: HTMLSpanElement[] = [];\n\n const getTabsMeta = () => {\n let tabsMeta: { clientWidth: number; scrollLeft: number; left: number; right: number } | undefined;\n if (tabsEl) {\n const rect = tabsEl.getBoundingClientRect();\n tabsMeta = { clientWidth: tabsEl.clientWidth, scrollLeft: tabsEl.scrollLeft, left: rect.left, right: rect.right };\n }\n let tabMeta: DOMRect | null = null;\n let tabContentMeta: DOMRect | null = null;\n if (tabsEl && tabListEl && tabListEl.children.length > 0) {\n const tab = tabListEl.children[local.value];\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (local.indicatorContent) {\n tabContentMeta = contentRefs[local.value]?.getBoundingClientRect() ?? null;\n }\n }\n return { tabsMeta, tabMeta, tabContentMeta };\n };\n\n const updateIndicatorState = (): void => {\n const { tabsMeta, tabMeta, tabContentMeta } = getTabsMeta();\n let startValue = 0;\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.left - tabsMeta.left + tabsMeta.scrollLeft;\n }\n const next: IndicatorStyle = { root: { left: startValue, width: tabMeta ? tabMeta.width : 0 } };\n if (local.indicatorContent && tabContentMeta) {\n next.content = { width: tabContentMeta.width };\n }\n const prev = indicatorStyle();\n if (prev.root.left === undefined || prev.root.width === undefined) {\n setIndicatorStyle(next);\n return;\n }\n const dStart = Math.abs((prev.root.left ?? 0) - (next.root.left ?? 0));\n const dSize = Math.abs((prev.root.width ?? 0) - (next.root.width ?? 0));\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(next);\n }\n };\n\n const updateOverflow = (): void => {\n if (!tabsEl || !local.scrollable) {\n setOverflowStart(false);\n setOverflowEnd(false);\n return;\n }\n const max = tabsEl.scrollWidth - tabsEl.clientWidth;\n setOverflowStart(tabsEl.scrollLeft > 1);\n setOverflowEnd(tabsEl.scrollLeft < max - 1);\n };\n\n const scroll = (scrollValue: number): void => {\n if (!tabsEl) return;\n animate(tabsEl, \"scrollLeft\", scrollValue, { duration: 300 });\n };\n\n const scrollByPage = (direction: -1 | 1): void => {\n if (!tabsEl) return;\n scroll(tabsEl.scrollLeft + direction * tabsEl.clientWidth * SCROLL_PAGE);\n };\n\n const scrollSelectedIntoView = (): void => {\n const { tabsMeta, tabMeta } = getTabsMeta();\n if (!tabMeta || !tabsMeta) return;\n if (tabMeta.left < tabsMeta.left) {\n scroll(tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left) - VIEW_NEXT_TAB_PX);\n } else if (tabMeta.right > tabsMeta.right) {\n scroll(tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right) + VIEW_NEXT_TAB_PX);\n }\n };\n\n onMount(() => setMounted(true));\n\n // Re-measure when the active value changes (and on mount).\n createEffect(on(() => local.value, () => updateIndicatorState()));\n\n // Keep the indicator and the overflow state in sync with resizes: of the\n // window, of the row, and of each tab (a label can grow with its data).\n onMount(() => {\n const onResize = debounce(() => {\n updateIndicatorState();\n updateOverflow();\n }, 166);\n const view = tabsEl?.ownerDocument.defaultView;\n view?.addEventListener(\"resize\", onResize);\n tabsEl?.addEventListener(\"scroll\", updateOverflow, { passive: true });\n let resizeObserver: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\" && tabListEl) {\n resizeObserver = new ResizeObserver(onResize);\n if (tabsEl) resizeObserver.observe(tabsEl);\n Array.from(tabListEl.children).forEach((child) => resizeObserver?.observe(child));\n }\n updateOverflow();\n onCleanup(() => {\n onResize.cancel();\n view?.removeEventListener(\"resize\", onResize);\n tabsEl?.removeEventListener(\"scroll\", updateOverflow);\n resizeObserver?.disconnect();\n });\n });\n\n // Scroll the selected tab into view when the indicator moves.\n createEffect(() => {\n indicatorStyle();\n scrollSelectedIntoView();\n });\n\n const contextValue: TabsContextValue = {\n value: () => local.value,\n onChange: local.onChange,\n indicatorContent: local.indicatorContent,\n registerTab: () => tabCounter++,\n setContentRef: (index, el) => {\n contentRefs[index] = el;\n },\n };\n\n const showScrollButtons = (): boolean => local.scrollable && local.scrollButtons && (overflowStart() || overflowEnd());\n\n return (\n <TabsContext.Provider value={contextValue}>\n <div\n {...rest}\n class={cn(\n \"smwb-tabs\",\n {\n \"smwb-tabs--dense\": local.dense,\n \"smwb-tabs--overflow-start\": overflowStart(),\n \"smwb-tabs--overflow-end\": overflowEnd(),\n },\n local.class\n )}\n role=\"tabpanel\"\n ref={mergeRefs(local.ref)}\n >\n <Show when={showScrollButtons()}>\n <button\n type=\"button\"\n class=\"smwb-tabs__scroll-button smwb-tabs__scroll-button--start\"\n aria-label={local.scrollBackAriaLabel}\n disabled={!overflowStart()}\n onClick={() => scrollByPage(-1)}\n >\n <Icon name=\"chevron_left\" size={20} />\n </button>\n </Show>\n {/* The scroller's class is static so it is on the element from the start:\n a ref on Tabs can find the row by class right away. */}\n <div\n class=\"smwb-tabs__scroller\"\n classList={{ \"smwb-tabs__scroller--scrollable\": local.scrollable }}\n ref={(el) => (tabsEl = el)}\n >\n <div class=\"smwb-tabs__scroll-area\" ref={(el) => (tabListEl = el)} role=\"tablist\" aria-label={local[\"aria-label\"]}>\n {local.children}\n </div>\n <Show when={mounted()}>\n <span\n class=\"smwb-tabs__indicator\"\n style={{\n left: `${indicatorStyle().root.left ?? 0}px`,\n width: `${indicatorStyle().root.width ?? 0}px`,\n }}\n >\n <span\n class=\"smwb-tabs__indicator-content\"\n style={indicatorStyle().content ? { width: `${indicatorStyle().content?.width ?? 0}px` } : {}}\n />\n </span>\n </Show>\n </div>\n <Show when={showScrollButtons()}>\n <button\n type=\"button\"\n class=\"smwb-tabs__scroll-button smwb-tabs__scroll-button--end\"\n aria-label={local.scrollForwardAriaLabel}\n disabled={!overflowEnd()}\n onClick={() => scrollByPage(1)}\n >\n <Icon name=\"chevron_right\" size={20} />\n </button>\n </Show>\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport { Tab };\nexport type { TabProps } from \"./tab/tab\";\nexport default Tabs;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAqC,MAAM,cAAc,cAAc,YAAY,IAAI,WAAW,SAAS,kBAAkB;AAC7H,OAAO,QAAQ;AACf,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,mBAA0C;AACnD,SAAS,WAAW;AACpB,SAAS,YAAY;AACrB,SAAS,iBAA2B;AA8BpC,MAAM,mBAAmB;AAEzB,MAAM,cAAc;AAEb,SAAS,KAAK,OAA4C;AAC/D,QAAM,SAAS;AAAA,IACb;AAAA,MACE,kBAAkB;AAAA,MAClB,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,OAAO;AAAA,MACP,qBAAqB;AAAA,MACrB,wBAAwB;AAAA,IAC1B;AAAA,IACA;AAAA,EACF;AACA,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,CAAC,SAAS,UAAU,IAAI,aAAa,KAAK;AAChD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,aAA6B,EAAE,MAAM,CAAC,EAAE,CAAC;AAGrF,QAAM,CAAC,eAAe,gBAAgB,IAAI,aAAa,KAAK;AAC5D,QAAM,CAAC,aAAa,cAAc,IAAI,aAAa,KAAK;AAExD,MAAI;AACJ,MAAI;AACJ,MAAI,aAAa;AACjB,QAAM,cAAiC,CAAC;AAExC,QAAM,cAAc,MAAM;AACxB,QAAI;AACJ,QAAI,QAAQ;AACV,YAAM,OAAO,OAAO,sBAAsB;AAC1C,iBAAW,EAAE,aAAa,OAAO,aAAa,YAAY,OAAO,YAAY,MAAM,KAAK,MAAM,OAAO,KAAK,MAAM;AAAA,IAClH;AACA,QAAI,UAA0B;AAC9B,QAAI,iBAAiC;AACrC,QAAI,UAAU,aAAa,UAAU,SAAS,SAAS,GAAG;AACxD,YAAM,MAAM,UAAU,SAAS,MAAM,KAAK;AAC1C,gBAAU,MAAM,IAAI,sBAAsB,IAAI;AAC9C,UAAI,MAAM,kBAAkB;AAC1B,yBAAiB,YAAY,MAAM,KAAK,GAAG,sBAAsB,KAAK;AAAA,MACxE;AAAA,IACF;AACA,WAAO,EAAE,UAAU,SAAS,eAAe;AAAA,EAC7C;AAEA,QAAM,uBAAuB,MAAY;AACvC,UAAM,EAAE,UAAU,SAAS,eAAe,IAAI,YAAY;AAC1D,QAAI,aAAa;AACjB,QAAI,WAAW,UAAU;AACvB,mBAAa,QAAQ,OAAO,SAAS,OAAO,SAAS;AAAA,IACvD;AACA,UAAM,OAAuB,EAAE,MAAM,EAAE,MAAM,YAAY,OAAO,UAAU,QAAQ,QAAQ,EAAE,EAAE;AAC9F,QAAI,MAAM,oBAAoB,gBAAgB;AAC5C,WAAK,UAAU,EAAE,OAAO,eAAe,MAAM;AAAA,IAC/C;AACA,UAAM,OAAO,eAAe;AAC5B,QAAI,KAAK,KAAK,SAAS,UAAa,KAAK,KAAK,UAAU,QAAW;AACjE,wBAAkB,IAAI;AACtB;AAAA,IACF;AACA,UAAM,SAAS,KAAK,KAAK,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK,QAAQ,EAAE;AACrE,UAAM,QAAQ,KAAK,KAAK,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,EAAE;AACtE,QAAI,UAAU,KAAK,SAAS,GAAG;AAC7B,wBAAkB,IAAI;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,iBAAiB,MAAY;AACjC,QAAI,CAAC,UAAU,CAAC,MAAM,YAAY;AAChC,uBAAiB,KAAK;AACtB,qBAAe,KAAK;AACpB;AAAA,IACF;AACA,UAAM,MAAM,OAAO,cAAc,OAAO;AACxC,qBAAiB,OAAO,aAAa,CAAC;AACtC,mBAAe,OAAO,aAAa,MAAM,CAAC;AAAA,EAC5C;AAEA,QAAM,SAAS,CAAC,gBAA8B;AAC5C,QAAI,CAAC,OAAQ;AACb,YAAQ,QAAQ,cAAc,aAAa,EAAE,UAAU,IAAI,CAAC;AAAA,EAC9D;AAEA,QAAM,eAAe,CAAC,cAA4B;AAChD,QAAI,CAAC,OAAQ;AACb,WAAO,OAAO,aAAa,YAAY,OAAO,cAAc,WAAW;AAAA,EACzE;AAEA,QAAM,yBAAyB,MAAY;AACzC,UAAM,EAAE,UAAU,QAAQ,IAAI,YAAY;AAC1C,QAAI,CAAC,WAAW,CAAC,SAAU;AAC3B,QAAI,QAAQ,OAAO,SAAS,MAAM;AAChC,aAAO,SAAS,cAAc,QAAQ,OAAO,SAAS,QAAQ,gBAAgB;AAAA,IAChF,WAAW,QAAQ,QAAQ,SAAS,OAAO;AACzC,aAAO,SAAS,cAAc,QAAQ,QAAQ,SAAS,SAAS,gBAAgB;AAAA,IAClF;AAAA,EACF;AAEA,UAAQ,MAAM,WAAW,IAAI,CAAC;AAG9B,eAAa,GAAG,MAAM,MAAM,OAAO,MAAM,qBAAqB,CAAC,CAAC;AAIhE,UAAQ,MAAM;AACZ,UAAM,WAAW,SAAS,MAAM;AAC9B,2BAAqB;AACrB,qBAAe;AAAA,IACjB,GAAG,GAAG;AACN,UAAM,OAAO,QAAQ,cAAc;AACnC,UAAM,iBAAiB,UAAU,QAAQ;AACzC,YAAQ,iBAAiB,UAAU,gBAAgB,EAAE,SAAS,KAAK,CAAC;AACpE,QAAI;AACJ,QAAI,OAAO,mBAAmB,eAAe,WAAW;AACtD,uBAAiB,IAAI,eAAe,QAAQ;AAC5C,UAAI,OAAQ,gBAAe,QAAQ,MAAM;AACzC,YAAM,KAAK,UAAU,QAAQ,EAAE,QAAQ,CAAC,UAAU,gBAAgB,QAAQ,KAAK,CAAC;AAAA,IAClF;AACA,mBAAe;AACf,cAAU,MAAM;AACd,eAAS,OAAO;AAChB,YAAM,oBAAoB,UAAU,QAAQ;AAC5C,cAAQ,oBAAoB,UAAU,cAAc;AACpD,sBAAgB,WAAW;AAAA,IAC7B,CAAC;AAAA,EACH,CAAC;AAGD,eAAa,MAAM;AACjB,mBAAe;AACf,2BAAuB;AAAA,EACzB,CAAC;AAED,QAAM,eAAiC;AAAA,IACrC,OAAO,MAAM,MAAM;AAAA,IACnB,UAAU,MAAM;AAAA,IAChB,kBAAkB,MAAM;AAAA,IACxB,aAAa,MAAM;AAAA,IACnB,eAAe,CAAC,OAAO,OAAO;AAC5B,kBAAY,KAAK,IAAI;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,oBAAoB,MAAe,MAAM,cAAc,MAAM,kBAAkB,cAAc,KAAK,YAAY;AAEpH,SACE,CAAC,YAAY,SAAS,OAAO,cAAc;AAAA,MACzC,CAAC;AAAA,QACK;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,oBAAoB,MAAM;AAAA,QAC1B,6BAA6B,cAAc;AAAA,QAC3C,2BAA2B,YAAY;AAAA,MACzC;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,KAAK;AAAA,IACL,KAAK,UAAU,MAAM,GAAG;AAAA,GACzB;AAAA,QACC,CAAC,KAAK,MAAM,kBAAkB,GAAG;AAAA,UAC/B,CAAC;AAAA,IACC,KAAK;AAAA,IACL,MAAM;AAAA,IACN,YAAY,MAAM;AAAA,IAClB,UAAU,CAAC,cAAc;AAAA,IACzB,SAAS,MAAM,aAAa,EAAE;AAAA,GAC/B;AAAA,YACC,CAAC,KAAK,KAAK,eAAe,MAAM,IAAI,EAAE;AAAA,UACxC,EARC,OAQQ;AAAA,QACX,EAVC,KAUM;AAAA;AAAA;AAAA;AAAA,GAEoD;AAAA,QAC3D,CAAC;AAAA,IACC,MAAM;AAAA,IACN,WAAW,EAAE,mCAAmC,MAAM,WAAW;AAAA,IACjE,KAAK,CAAC,OAAQ,SAAS;AAAA,GACxB;AAAA,UACC,CAAC,IAAI,MAAM,yBAAyB,KAAK,CAAC,OAAQ,YAAY,IAAK,KAAK,UAAU,YAAY,MAAM,YAAY,GAAG;AAAA,aAChH,MAAM,SAAS;AAAA,UAClB,EAFC,IAEK;AAAA,UACN,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,YACrB,CAAC;AAAA,IACC,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM,GAAG,eAAe,EAAE,KAAK,QAAQ,CAAC;AAAA,MACxC,OAAO,GAAG,eAAe,EAAE,KAAK,SAAS,CAAC;AAAA,IAC5C;AAAA,GACD;AAAA,cACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,OAAO,eAAe,EAAE,UAAU,EAAE,OAAO,GAAG,eAAe,EAAE,SAAS,SAAS,CAAC,KAAK,IAAI,CAAC;AAAA,EAC9F,EAAE;AAAA,YACJ,EAXC,KAWM;AAAA,UACT,EAbC,KAaM;AAAA,QACT,EAtBC,IAsBK;AAAA,QACN,CAAC,KAAK,MAAM,kBAAkB,GAAG;AAAA,UAC/B,CAAC;AAAA,IACC,KAAK;AAAA,IACL,MAAM;AAAA,IACN,YAAY,MAAM;AAAA,IAClB,UAAU,CAAC,YAAY;AAAA,IACvB,SAAS,MAAM,aAAa,CAAC;AAAA,GAC9B;AAAA,YACC,CAAC,KAAK,KAAK,gBAAgB,MAAM,IAAI,EAAE;AAAA,UACzC,EARC,OAQQ;AAAA,QACX,EAVC,KAUM;AAAA,MACT,EA7DC,IA6DK;AAAA,IACR,EA/DC,YAAY;AAiEjB;AAIA,IAAO,eAAQ;","names":[],"file":"tabs.jsx"}
|
|
@@ -99,6 +99,10 @@ function Table(props) {
|
|
|
99
99
|
return settings ? { paginationSettings: settings } : {};
|
|
100
100
|
});
|
|
101
101
|
const align = () => local.cellAlign ?? "left";
|
|
102
|
+
const cellLabel = (column) => {
|
|
103
|
+
const label = column.meta?.label ?? (typeof column.header === "string" ? column.header : void 0);
|
|
104
|
+
return label ? { label } : {};
|
|
105
|
+
};
|
|
102
106
|
return <SmwbTable
|
|
103
107
|
{...rest}
|
|
104
108
|
{...paginationProp()}
|
|
@@ -156,7 +160,11 @@ function Table(props) {
|
|
|
156
160
|
{(row) => <>
|
|
157
161
|
<TableRow onClick={(event) => local.onBodyRowClick?.(row, event)}>
|
|
158
162
|
<For each={row.getVisibleCells()}>
|
|
159
|
-
{(cell) => <TableCell
|
|
163
|
+
{(cell) => <TableCell
|
|
164
|
+
cellAlign={align()}
|
|
165
|
+
{...cellLabel(cell.column.columnDef)}
|
|
166
|
+
{...cell.column.columnDef.meta?.cellProps}
|
|
167
|
+
>
|
|
160
168
|
{flexRender(cell.column.columnDef.cell, cell.getContext())}
|
|
161
169
|
</TableCell>}
|
|
162
170
|
</For>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/connects/rt/table/table.tsx"],"sourcesContent":["import { For, Show, createMemo, createSignal, splitProps, type JSX } from \"solid-js\";\nimport {\n createSolidTable,\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type ColumnDef,\n type Row,\n type RowData,\n type SortingState,\n type TableOptions,\n} from \"@tanstack/solid-table\";\n\nimport {\n Table as SmwbTable,\n TableBody,\n TableCell,\n TableHead,\n TableHeadCell,\n TableRow,\n type SortDirection,\n type TableProps as SmwbTableProps,\n type TablePaginationProps,\n} from \"../../../components/dataDisplay/table\";\nimport { ProgressIndicator } from \"../../../components/feedBack/progressIndicator\";\nimport { Message } from \"../../../components/feedBack/message\";\n\ndeclare module \"@tanstack/table-core\" {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n /** Extra attributes for every body cell of the column. */\n cellProps?: JSX.ThHTMLAttributes<HTMLTableCellElement>;\n }\n}\n\nexport interface RtTableProps<TData extends RowData, TValue = unknown> extends SmwbTableProps {\n data: TData[];\n columns: ColumnDef<TData, TValue>[];\n /** Enables the sort affordance in head cells and the sorted row model. */\n sortable?: boolean;\n /** Initial sorting, e.g. `[{ id: \"name\", desc: false }]`. */\n defaultSorting?: SortingState;\n onSortingChange?: (sorting: SortingState) => void;\n withPagination?: boolean;\n /** Rows come from the outside page by page; the total is unknown. */\n isInfinite?: boolean;\n limit?: number;\n limitOptions?: number[];\n onNextPage?: () => void;\n onPrevPage?: () => void;\n expandable?: boolean;\n getRowCanExpand?: (row: Row<TData>) => boolean;\n renderSubComponent?: (props: { row: Row<TData> }) => JSX.Element;\n cellAlign?: \"left\" | \"right\" | \"center\";\n error?: string;\n onHeadCellClick?: (column: ColumnDef<TData, TValue>) => void;\n onBodyRowClick?: (row: Row<TData>, event: MouseEvent) => void;\n}\n\n/**\n * TanStack Table bound to the smwb table components.\n *\n * The connector owns only what the two sides must agree on — row models, the\n * sort affordance in the head cell, the pagination footer, and the loading /\n * error / empty rows. Everything else stays TanStack's: columns are plain\n * `ColumnDef`s and cells are rendered through `flexRender`, so any column\n * definition written against the React connector works here unchanged.\n *\n * `@tanstack/solid-table` is an optional peer: it ships with the connector's\n * subpath only, and a consumer that never imports the subpath never installs it.\n */\nexport function Table<TData extends RowData, TValue = unknown>(\n props: RtTableProps<TData, TValue>\n): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"data\",\n \"columns\",\n \"sortable\",\n \"defaultSorting\",\n \"onSortingChange\",\n \"withPagination\",\n \"isInfinite\",\n \"limit\",\n \"limitOptions\",\n \"onNextPage\",\n \"onPrevPage\",\n \"expandable\",\n \"getRowCanExpand\",\n \"renderSubComponent\",\n \"cellAlign\",\n \"error\",\n \"onHeadCellClick\",\n \"onBodyRowClick\",\n \"isLoading\",\n ]);\n\n const limit = (): number => local.limit ?? 5;\n const [sorting, setSorting] = createSignal<SortingState>(local.defaultSorting ?? []);\n\n // Options are a getter object: Solid has no render pass to rebuild them on,\n // so the table reads current data, columns and sorting on every access.\n const table = createSolidTable({\n get data() {\n return local.data;\n },\n get columns() {\n return local.columns;\n },\n state: {\n get sorting() {\n return sorting();\n },\n },\n initialState: { pagination: { pageIndex: 0, pageSize: limit() } },\n manualPagination: local.isInfinite,\n getCoreRowModel: getCoreRowModel(),\n onSortingChange: (updater) => {\n const next = typeof updater === \"function\" ? updater(sorting()) : updater;\n setSorting(next);\n local.onSortingChange?.(next);\n },\n get getSortedRowModel() {\n return local.sortable ? getSortedRowModel() : undefined;\n },\n get getPaginationRowModel() {\n return local.withPagination ? getPaginationRowModel() : undefined;\n },\n get getExpandedRowModel() {\n return local.expandable ? getExpandedRowModel() : undefined;\n },\n get getRowCanExpand() {\n return local.expandable ? local.getRowCanExpand : undefined;\n },\n } as TableOptions<TData>);\n\n const pagination = createMemo<TablePaginationProps | undefined>(() => {\n if (!local.withPagination) return undefined;\n const state = table.getState().pagination;\n const base = {\n limit: state.pageSize,\n page: state.pageIndex + 1,\n limitOptions: local.limitOptions ?? [5, 10, 15],\n onNext: () => {\n table.nextPage();\n local.onNextPage?.();\n },\n onPrev: () => {\n table.previousPage();\n local.onPrevPage?.();\n },\n onLimitChange: (value: number) => table.setPageSize(value),\n };\n return local.isInfinite\n ? { ...base, hasNextPage: local.data.length >= state.pageSize }\n : { ...base, totalCount: table.getFilteredRowModel().rows.length };\n });\n\n const columnCount = (): number => table.getVisibleFlatColumns().length || 1;\n\n // Spread instead of a prop: with exactOptionalPropertyTypes an explicit\n // `undefined` is not the same as an absent prop, and the footer is absent\n // whenever pagination is off.\n const paginationProp = createMemo(() => {\n const settings = pagination();\n return settings ? { paginationSettings: settings } : {};\n });\n\n const align = (): \"left\" | \"right\" | \"center\" => local.cellAlign ?? \"left\";\n\n return (\n <SmwbTable\n {...rest}\n {...paginationProp()}\n isLoading={local.isLoading ?? false}\n hovered={!!local.onBodyRowClick}\n >\n <TableHead>\n <For each={table.getHeaderGroups()}>\n {(headerGroup) => (\n <TableRow>\n <For each={headerGroup.headers}>\n {(header) => {\n const canSort = (): boolean => !!local.sortable && header.column.getCanSort();\n return (\n <TableHeadCell\n cellAlign={align()}\n sortable={canSort()}\n sortDirection={(header.column.getIsSorted() || false) as SortDirection}\n onSort={() => {\n if (canSort()) header.column.toggleSorting();\n }}\n onClick={() => {\n local.onHeadCellClick?.(header.column.columnDef);\n }}\n {...(header.getSize() ? { style: { width: `${header.getSize()}px` } } : {})}\n >\n <Show when={!header.isPlaceholder}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Show>\n </TableHeadCell>\n );\n }}\n </For>\n </TableRow>\n )}\n </For>\n </TableHead>\n\n <TableBody>\n <Show\n when={!local.isLoading}\n fallback={\n <TableRow class=\"smwb-table__loader__row\">\n <TableCell class=\"smwb-table__loader\" colSpan={columnCount()}>\n <ProgressIndicator variant=\"circular\" type=\"indeterminate\" />\n </TableCell>\n </TableRow>\n }\n >\n <Show\n when={!local.error}\n fallback={\n <TableRow class=\"smwb-table__loader__row\">\n <TableCell class=\"smwb-table__loader\" colSpan={columnCount()}>\n <Message variant=\"filled\" type=\"error\">\n {local.error}\n </Message>\n </TableCell>\n </TableRow>\n }\n >\n <For each={table.getRowModel().rows}>\n {(row) => (\n <>\n <TableRow onClick={(event: MouseEvent) => local.onBodyRowClick?.(row, event)}>\n <For each={row.getVisibleCells()}>\n {(cell) => (\n <TableCell cellAlign={align()} {...cell.column.columnDef.meta?.cellProps}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )}\n </For>\n </TableRow>\n <Show when={row.getIsExpanded() && local.renderSubComponent}>\n <TableRow>\n <TableCell colSpan={row.getVisibleCells().length}>\n {local.renderSubComponent?.({ row })}\n </TableCell>\n </TableRow>\n </Show>\n </>\n )}\n </For>\n </Show>\n </Show>\n </TableBody>\n </SmwbTable>\n );\n}\n\nexport default Table;\n"],"mappings":"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","names":[],"file":"table.jsx"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/connects/rt/table/table.tsx"],"sourcesContent":["import { For, Show, createMemo, createSignal, splitProps, type JSX } from \"solid-js\";\nimport {\n createSolidTable,\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type ColumnDef,\n type Row,\n type RowData,\n type SortingState,\n type TableOptions,\n} from \"@tanstack/solid-table\";\n\nimport {\n Table as SmwbTable,\n TableBody,\n TableCell,\n TableHead,\n TableHeadCell,\n TableRow,\n type SortDirection,\n type TableProps as SmwbTableProps,\n type TablePaginationProps,\n} from \"../../../components/dataDisplay/table\";\nimport { ProgressIndicator } from \"../../../components/feedBack/progressIndicator\";\nimport { Message } from \"../../../components/feedBack/message\";\n\ndeclare module \"@tanstack/table-core\" {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n /** Extra attributes for every body cell of the column. */\n cellProps?: JSX.ThHTMLAttributes<HTMLTableCellElement>;\n /** The column's name on each cell when rows stack as cards (`stackBelow`); a string `header` is used by default. */\n label?: string;\n }\n}\n\nexport interface RtTableProps<TData extends RowData, TValue = unknown> extends SmwbTableProps {\n data: TData[];\n columns: ColumnDef<TData, TValue>[];\n /** Enables the sort affordance in head cells and the sorted row model. */\n sortable?: boolean;\n /** Initial sorting, e.g. `[{ id: \"name\", desc: false }]`. */\n defaultSorting?: SortingState;\n onSortingChange?: (sorting: SortingState) => void;\n withPagination?: boolean;\n /** Rows come from the outside page by page; the total is unknown. */\n isInfinite?: boolean;\n limit?: number;\n limitOptions?: number[];\n onNextPage?: () => void;\n onPrevPage?: () => void;\n expandable?: boolean;\n getRowCanExpand?: (row: Row<TData>) => boolean;\n renderSubComponent?: (props: { row: Row<TData> }) => JSX.Element;\n cellAlign?: \"left\" | \"right\" | \"center\";\n error?: string;\n onHeadCellClick?: (column: ColumnDef<TData, TValue>) => void;\n onBodyRowClick?: (row: Row<TData>, event: MouseEvent) => void;\n}\n\n/**\n * TanStack Table bound to the smwb table components.\n *\n * The connector owns only what the two sides must agree on — row models, the\n * sort affordance in the head cell, the pagination footer, and the loading /\n * error / empty rows. Everything else stays TanStack's: columns are plain\n * `ColumnDef`s and cells are rendered through `flexRender`, so any column\n * definition written against the React connector works here unchanged.\n *\n * `@tanstack/solid-table` is an optional peer: it ships with the connector's\n * subpath only, and a consumer that never imports the subpath never installs it.\n */\nexport function Table<TData extends RowData, TValue = unknown>(\n props: RtTableProps<TData, TValue>\n): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"data\",\n \"columns\",\n \"sortable\",\n \"defaultSorting\",\n \"onSortingChange\",\n \"withPagination\",\n \"isInfinite\",\n \"limit\",\n \"limitOptions\",\n \"onNextPage\",\n \"onPrevPage\",\n \"expandable\",\n \"getRowCanExpand\",\n \"renderSubComponent\",\n \"cellAlign\",\n \"error\",\n \"onHeadCellClick\",\n \"onBodyRowClick\",\n \"isLoading\",\n ]);\n\n const limit = (): number => local.limit ?? 5;\n const [sorting, setSorting] = createSignal<SortingState>(local.defaultSorting ?? []);\n\n // Options are a getter object: Solid has no render pass to rebuild them on,\n // so the table reads current data, columns and sorting on every access.\n const table = createSolidTable({\n get data() {\n return local.data;\n },\n get columns() {\n return local.columns;\n },\n state: {\n get sorting() {\n return sorting();\n },\n },\n initialState: { pagination: { pageIndex: 0, pageSize: limit() } },\n manualPagination: local.isInfinite,\n getCoreRowModel: getCoreRowModel(),\n onSortingChange: (updater) => {\n const next = typeof updater === \"function\" ? updater(sorting()) : updater;\n setSorting(next);\n local.onSortingChange?.(next);\n },\n get getSortedRowModel() {\n return local.sortable ? getSortedRowModel() : undefined;\n },\n get getPaginationRowModel() {\n return local.withPagination ? getPaginationRowModel() : undefined;\n },\n get getExpandedRowModel() {\n return local.expandable ? getExpandedRowModel() : undefined;\n },\n get getRowCanExpand() {\n return local.expandable ? local.getRowCanExpand : undefined;\n },\n } as TableOptions<TData>);\n\n const pagination = createMemo<TablePaginationProps | undefined>(() => {\n if (!local.withPagination) return undefined;\n const state = table.getState().pagination;\n const base = {\n limit: state.pageSize,\n page: state.pageIndex + 1,\n limitOptions: local.limitOptions ?? [5, 10, 15],\n onNext: () => {\n table.nextPage();\n local.onNextPage?.();\n },\n onPrev: () => {\n table.previousPage();\n local.onPrevPage?.();\n },\n onLimitChange: (value: number) => table.setPageSize(value),\n };\n return local.isInfinite\n ? { ...base, hasNextPage: local.data.length >= state.pageSize }\n : { ...base, totalCount: table.getFilteredRowModel().rows.length };\n });\n\n const columnCount = (): number => table.getVisibleFlatColumns().length || 1;\n\n // Spread instead of a prop: with exactOptionalPropertyTypes an explicit\n // `undefined` is not the same as an absent prop, and the footer is absent\n // whenever pagination is off.\n const paginationProp = createMemo(() => {\n const settings = pagination();\n return settings ? { paginationSettings: settings } : {};\n });\n\n const align = (): \"left\" | \"right\" | \"center\" => local.cellAlign ?? \"left\";\n // A body cell's label for the stacked layout: the column's meta.label, or its\n // header when that is plain text.\n const cellLabel = (column: ColumnDef<TData, TValue>): { label?: string } => {\n const label = column.meta?.label ?? (typeof column.header === \"string\" ? column.header : undefined);\n return label ? { label } : {};\n };\n\n return (\n <SmwbTable\n {...rest}\n {...paginationProp()}\n isLoading={local.isLoading ?? false}\n hovered={!!local.onBodyRowClick}\n >\n <TableHead>\n <For each={table.getHeaderGroups()}>\n {(headerGroup) => (\n <TableRow>\n <For each={headerGroup.headers}>\n {(header) => {\n const canSort = (): boolean => !!local.sortable && header.column.getCanSort();\n return (\n <TableHeadCell\n cellAlign={align()}\n sortable={canSort()}\n sortDirection={(header.column.getIsSorted() || false) as SortDirection}\n onSort={() => {\n if (canSort()) header.column.toggleSorting();\n }}\n onClick={() => {\n local.onHeadCellClick?.(header.column.columnDef);\n }}\n {...(header.getSize() ? { style: { width: `${header.getSize()}px` } } : {})}\n >\n <Show when={!header.isPlaceholder}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Show>\n </TableHeadCell>\n );\n }}\n </For>\n </TableRow>\n )}\n </For>\n </TableHead>\n\n <TableBody>\n <Show\n when={!local.isLoading}\n fallback={\n <TableRow class=\"smwb-table__loader__row\">\n <TableCell class=\"smwb-table__loader\" colSpan={columnCount()}>\n <ProgressIndicator variant=\"circular\" type=\"indeterminate\" />\n </TableCell>\n </TableRow>\n }\n >\n <Show\n when={!local.error}\n fallback={\n <TableRow class=\"smwb-table__loader__row\">\n <TableCell class=\"smwb-table__loader\" colSpan={columnCount()}>\n <Message variant=\"filled\" type=\"error\">\n {local.error}\n </Message>\n </TableCell>\n </TableRow>\n }\n >\n <For each={table.getRowModel().rows}>\n {(row) => (\n <>\n <TableRow onClick={(event: MouseEvent) => local.onBodyRowClick?.(row, event)}>\n <For each={row.getVisibleCells()}>\n {(cell) => (\n <TableCell\n cellAlign={align()}\n {...cellLabel(cell.column.columnDef as ColumnDef<TData, TValue>)}\n {...cell.column.columnDef.meta?.cellProps}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )}\n </For>\n </TableRow>\n <Show when={row.getIsExpanded() && local.renderSubComponent}>\n <TableRow>\n <TableCell colSpan={row.getVisibleCells().length}>\n {local.renderSubComponent?.({ row })}\n </TableCell>\n </TableRow>\n </Show>\n </>\n )}\n </For>\n </Show>\n </Show>\n </TableBody>\n </SmwbTable>\n );\n}\n\nexport default Table;\n"],"mappings":"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","names":[],"file":"table.jsx"}
|
|
@@ -59,6 +59,13 @@ const iconCatalog = [
|
|
|
59
59
|
aliases: ["user_circle"],
|
|
60
60
|
keywords: ["account", "user", "profile", "avatar", "person"]
|
|
61
61
|
},
|
|
62
|
+
{
|
|
63
|
+
name: "account_tree",
|
|
64
|
+
export: "accountTree",
|
|
65
|
+
category: "data",
|
|
66
|
+
aliases: ["hierarchy", "org_chart"],
|
|
67
|
+
keywords: ["tree", "hierarchy", "structure", "org chart", "nested", "parent", "child"]
|
|
68
|
+
},
|
|
62
69
|
{
|
|
63
70
|
name: "add",
|
|
64
71
|
export: "add",
|
|
@@ -325,6 +332,13 @@ const iconCatalog = [
|
|
|
325
332
|
aliases: ["hang_up"],
|
|
326
333
|
keywords: ["call", "end", "hangup", "decline", "phone"]
|
|
327
334
|
},
|
|
335
|
+
{
|
|
336
|
+
name: "call_split",
|
|
337
|
+
export: "callSplit",
|
|
338
|
+
category: "navigation",
|
|
339
|
+
aliases: ["split"],
|
|
340
|
+
keywords: ["split", "branch", "fork", "diverge", "divide"]
|
|
341
|
+
},
|
|
328
342
|
{
|
|
329
343
|
name: "campaign",
|
|
330
344
|
export: "campaign",
|
|
@@ -535,6 +549,13 @@ const iconCatalog = [
|
|
|
535
549
|
aliases: [],
|
|
536
550
|
keywords: ["document", "file", "text", "page", "description"]
|
|
537
551
|
},
|
|
552
|
+
{
|
|
553
|
+
name: "device_hub",
|
|
554
|
+
export: "deviceHub",
|
|
555
|
+
category: "device",
|
|
556
|
+
aliases: [],
|
|
557
|
+
keywords: ["hub", "device", "network", "connection", "nodes", "usb"]
|
|
558
|
+
},
|
|
538
559
|
{
|
|
539
560
|
name: "diversity_3",
|
|
540
561
|
export: "diversity3",
|
|
@@ -605,6 +626,13 @@ const iconCatalog = [
|
|
|
605
626
|
aliases: ["pencil"],
|
|
606
627
|
keywords: ["edit", "pencil", "write", "modify", "compose"]
|
|
607
628
|
},
|
|
629
|
+
{
|
|
630
|
+
name: "edit_note",
|
|
631
|
+
export: "editNote",
|
|
632
|
+
category: "editor",
|
|
633
|
+
aliases: ["note_edit"],
|
|
634
|
+
keywords: ["edit", "note", "notes", "write", "journal", "record", "pencil"]
|
|
635
|
+
},
|
|
608
636
|
{
|
|
609
637
|
name: "emoji_events",
|
|
610
638
|
export: "emojiEvents",
|
|
@@ -717,6 +745,13 @@ const iconCatalog = [
|
|
|
717
745
|
aliases: ["funnel"],
|
|
718
746
|
keywords: ["filter", "funnel", "refine", "narrow", "sift"]
|
|
719
747
|
},
|
|
748
|
+
{
|
|
749
|
+
name: "filter_list",
|
|
750
|
+
export: "filterList",
|
|
751
|
+
category: "action",
|
|
752
|
+
aliases: ["filter_lines"],
|
|
753
|
+
keywords: ["filter", "list", "refine", "narrow", "sort", "lines"]
|
|
754
|
+
},
|
|
720
755
|
{
|
|
721
756
|
name: "first_page",
|
|
722
757
|
export: "firstPage",
|
|
@@ -752,6 +787,13 @@ const iconCatalog = [
|
|
|
752
787
|
aliases: [],
|
|
753
788
|
keywords: ["folder", "open", "directory", "browse", "files"]
|
|
754
789
|
},
|
|
790
|
+
{
|
|
791
|
+
name: "fork_right",
|
|
792
|
+
export: "forkRight",
|
|
793
|
+
category: "navigation",
|
|
794
|
+
aliases: [],
|
|
795
|
+
keywords: ["fork", "branch", "right", "diverge", "road", "turn"]
|
|
796
|
+
},
|
|
755
797
|
{
|
|
756
798
|
name: "format_align_center",
|
|
757
799
|
export: "formatAlignCenter",
|
|
@@ -857,6 +899,13 @@ const iconCatalog = [
|
|
|
857
899
|
aliases: ["users_plus"],
|
|
858
900
|
keywords: ["group", "users", "team", "add", "invite", "members"]
|
|
859
901
|
},
|
|
902
|
+
{
|
|
903
|
+
name: "groups",
|
|
904
|
+
export: "groups",
|
|
905
|
+
category: "social",
|
|
906
|
+
aliases: ["team"],
|
|
907
|
+
keywords: ["groups", "team", "people", "community", "members", "staff"]
|
|
908
|
+
},
|
|
860
909
|
{
|
|
861
910
|
name: "headphones",
|
|
862
911
|
export: "headphones",
|
|
@@ -899,6 +948,13 @@ const iconCatalog = [
|
|
|
899
948
|
aliases: ["hourglass"],
|
|
900
949
|
keywords: ["hourglass", "wait", "loading", "sand", "time"]
|
|
901
950
|
},
|
|
951
|
+
{
|
|
952
|
+
name: "hub",
|
|
953
|
+
export: "hub",
|
|
954
|
+
category: "data",
|
|
955
|
+
aliases: [],
|
|
956
|
+
keywords: ["hub", "network", "center", "connections", "nodes", "graph"]
|
|
957
|
+
},
|
|
902
958
|
{
|
|
903
959
|
name: "image",
|
|
904
960
|
export: "image",
|
|
@@ -983,6 +1039,13 @@ const iconCatalog = [
|
|
|
983
1039
|
aliases: ["tag"],
|
|
984
1040
|
keywords: ["label", "tag", "badge", "category", "marker"]
|
|
985
1041
|
},
|
|
1042
|
+
{
|
|
1043
|
+
name: "lan",
|
|
1044
|
+
export: "lan",
|
|
1045
|
+
category: "device",
|
|
1046
|
+
aliases: ["network"],
|
|
1047
|
+
keywords: ["lan", "network", "local", "ethernet", "topology", "connection"]
|
|
1048
|
+
},
|
|
986
1049
|
{
|
|
987
1050
|
name: "language",
|
|
988
1051
|
export: "language",
|
|
@@ -1326,6 +1389,13 @@ const iconCatalog = [
|
|
|
1326
1389
|
aliases: ["user_plus"],
|
|
1327
1390
|
keywords: ["person", "user", "add", "invite", "new", "signup"]
|
|
1328
1391
|
},
|
|
1392
|
+
{
|
|
1393
|
+
name: "person_off",
|
|
1394
|
+
export: "personOff",
|
|
1395
|
+
category: "social",
|
|
1396
|
+
aliases: ["user_off"],
|
|
1397
|
+
keywords: ["person", "user", "off", "removed", "inactive", "unassigned", "nobody"]
|
|
1398
|
+
},
|
|
1329
1399
|
{
|
|
1330
1400
|
name: "pets",
|
|
1331
1401
|
export: "pets",
|
|
@@ -1529,6 +1599,13 @@ const iconCatalog = [
|
|
|
1529
1599
|
aliases: ["clock"],
|
|
1530
1600
|
keywords: ["clock", "time", "schedule", "hour", "watch"]
|
|
1531
1601
|
},
|
|
1602
|
+
{
|
|
1603
|
+
name: "schema",
|
|
1604
|
+
export: "schema",
|
|
1605
|
+
category: "data",
|
|
1606
|
+
aliases: ["diagram"],
|
|
1607
|
+
keywords: ["schema", "diagram", "flow", "structure", "model", "blocks"]
|
|
1608
|
+
},
|
|
1532
1609
|
{
|
|
1533
1610
|
name: "school",
|
|
1534
1611
|
export: "school",
|
|
@@ -2076,7 +2153,7 @@ const iconCatalog = [
|
|
|
2076
2153
|
keywords: ["zoom", "magnify", "shrink", "scale", "search"]
|
|
2077
2154
|
}
|
|
2078
2155
|
];
|
|
2079
|
-
const iconCount =
|
|
2156
|
+
const iconCount = 305;
|
|
2080
2157
|
export {
|
|
2081
2158
|
iconCatalog,
|
|
2082
2159
|
iconCategories,
|