@smwb/ui-solid 0.4.0 → 0.5.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/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
- package/dist/assets/styles/less/components/assetGrid/assetGrid.entry.css +1 -0
- package/dist/assets/styles/less/components/chipGroup/chipGroup.entry.css +1 -0
- package/dist/assets/styles/less/components/lazyImage/lazyImage.entry.css +1 -0
- package/dist/assets/styles/less/components/overflowMenu/overflowMenu.entry.css +1 -0
- package/dist/assets/styles/less/components/saveAssetDialog/saveAssetDialog.entry.css +1 -0
- package/dist/assets/styles/less/components/sheet/sheet.entry.css +1 -1
- package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -0
- package/dist/assets/styles/less/components/valueSlider/valueSlider.entry.css +1 -0
- package/dist/components/dataDisplay/assetGrid/assetGrid.d.ts +30 -0
- package/dist/components/dataDisplay/assetGrid/assetGrid.js +144 -0
- package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -0
- package/dist/components/dataDisplay/assetGrid/index.d.ts +2 -0
- package/dist/components/dataDisplay/chipGroup/chipGroup.d.ts +27 -0
- package/dist/components/dataDisplay/chipGroup/chipGroup.js +58 -0
- package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -0
- package/dist/components/dataDisplay/chipGroup/index.d.ts +2 -0
- package/dist/components/dataDisplay/lazyImage/index.d.ts +2 -0
- package/dist/components/dataDisplay/lazyImage/lazyImage.d.ts +24 -0
- package/dist/components/dataDisplay/lazyImage/lazyImage.js +73 -0
- package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -0
- package/dist/components/dataDisplay/thumbCard/index.d.ts +2 -0
- package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +31 -0
- package/dist/components/dataDisplay/thumbCard/thumbCard.js +114 -0
- package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -0
- package/dist/components/feedBack/saveAssetDialog/index.d.ts +2 -0
- package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.d.ts +30 -0
- package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +101 -0
- package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -0
- package/dist/components/inputs/valueSlider/index.d.ts +2 -0
- package/dist/components/inputs/valueSlider/valueSlider.d.ts +23 -0
- package/dist/components/inputs/valueSlider/valueSlider.js +57 -0
- package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -0
- package/dist/components/layout/appLayout/appLayout.js +43 -43
- package/dist/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/components/navigation/bottomBar/bottomBar.js +31 -30
- package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/components/navigation/overflowMenu/index.d.ts +2 -0
- package/dist/components/navigation/overflowMenu/overflowMenu.d.ts +27 -0
- package/dist/components/navigation/overflowMenu/overflowMenu.js +88 -0
- package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -0
- package/dist/components/navigation/sidebar/sidebar.js +48 -47
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/components/dataDisplay/assetGrid/assetGrid.js +143 -0
- package/dist/headless/components/dataDisplay/assetGrid/assetGrid.js.map +1 -0
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +57 -0
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -0
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +72 -0
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -0
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +113 -0
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -0
- package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +100 -0
- package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -0
- package/dist/headless/components/inputs/valueSlider/valueSlider.js +56 -0
- package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -0
- package/dist/headless/components/layout/appLayout/appLayout.js +43 -43
- package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/headless/components/navigation/bottomBar/bottomBar.js +31 -30
- package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/headless/components/navigation/overflowMenu/overflowMenu.js +87 -0
- package/dist/headless/components/navigation/overflowMenu/overflowMenu.js.map +1 -0
- package/dist/headless/components/navigation/sidebar/sidebar.js +48 -47
- package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/index.js +278 -264
- package/dist/headless/index.js.map +1 -1
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +1 -1
- package/dist/headless/source/components/base/icon/icon.jsx +1 -1
- package/dist/headless/source/components/base/ripple/ripple.jsx +1 -1
- package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/assetGrid/assetGrid.jsx +115 -0
- package/dist/headless/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/assetGrid/index.js +5 -0
- package/dist/headless/source/components/dataDisplay/assetGrid/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/badge/badge.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/card/card.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatAttachmentImage.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatAttachments.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageAvatar.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageIncoming.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageItem.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageOutgoing.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageSkeleton.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageStatus.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessageSystem.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatMessages.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +50 -0
- package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/chipGroup/index.js +5 -0
- package/dist/headless/source/components/dataDisplay/chipGroup/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/imagesList/imagesList.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/lazyImage/index.js +5 -0
- package/dist/headless/source/components/dataDisplay/lazyImage/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +64 -0
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/list/list.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/table.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/thumbCard/index.js +5 -0
- package/dist/headless/source/components/dataDisplay/thumbCard/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +93 -0
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx +1 -1
- package/dist/headless/source/components/feedBack/message/message.jsx +1 -1
- package/dist/headless/source/components/feedBack/modal/modal.jsx +1 -1
- package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx +1 -1
- package/dist/headless/source/components/feedBack/saveAssetDialog/index.js +5 -0
- package/dist/headless/source/components/feedBack/saveAssetDialog/index.js.map +7 -0
- package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +65 -0
- package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -0
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +1 -1
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +1 -1
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +1 -1
- package/dist/headless/source/components/inputs/button/button.jsx +1 -1
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +1 -1
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/dataPickerDays.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/dataPickerHeader.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerList.jsx +1 -1
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -1
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx +1 -1
- package/dist/headless/source/components/inputs/fileDrop/countPreview.jsx +1 -1
- package/dist/headless/source/components/inputs/fileDrop/fileDrop.jsx +1 -1
- package/dist/headless/source/components/inputs/fileDrop/preview.jsx +1 -1
- package/dist/headless/source/components/inputs/fileDrop/previewWrapper.jsx +1 -1
- package/dist/headless/source/components/inputs/fileInput/fileInput.jsx +1 -1
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +1 -1
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +1 -1
- package/dist/headless/source/components/inputs/rating/rating.jsx +1 -1
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +1 -1
- package/dist/headless/source/components/inputs/selectField/selectField.jsx +1 -1
- package/dist/headless/source/components/inputs/slider/slider.jsx +1 -1
- package/dist/headless/source/components/inputs/textField/textField.jsx +1 -1
- package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx +1 -1
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +1 -1
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +1 -1
- package/dist/headless/source/components/inputs/timePicker/timePickerColumns.jsx +1 -1
- package/dist/headless/source/components/inputs/timePicker/timePickerInput.jsx +1 -1
- package/dist/headless/source/components/inputs/timePicker/timePickerList.jsx +1 -1
- package/dist/headless/source/components/inputs/toggle/toggle.jsx +1 -1
- package/dist/headless/source/components/inputs/valueSlider/index.js +5 -0
- package/dist/headless/source/components/inputs/valueSlider/index.js.map +7 -0
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +54 -0
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -0
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx +11 -8
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/headless/source/components/layout/divider/divider.jsx +1 -1
- package/dist/headless/source/components/layout/grid/grid.jsx +1 -1
- package/dist/headless/source/components/layout/page/page.jsx +1 -1
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +1 -1
- package/dist/headless/source/components/layout/screenDivider/screenDivider.jsx +1 -1
- package/dist/headless/source/components/layout/sheet/sheet.jsx +1 -1
- package/dist/headless/source/components/layout/stack/stack.jsx +1 -1
- package/dist/headless/source/components/navigation/appBar/appBar.jsx +1 -1
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +5 -4
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menu.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuDivider.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuItem.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuItemIcon.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuItemText.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuList.jsx +1 -1
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +1 -1
- package/dist/headless/source/components/navigation/overflowMenu/index.js +5 -0
- package/dist/headless/source/components/navigation/overflowMenu/index.js.map +7 -0
- package/dist/headless/source/components/navigation/overflowMenu/overflowMenu.jsx +60 -0
- package/dist/headless/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -0
- package/dist/headless/source/components/navigation/pagination/pagination.jsx +1 -1
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +5 -4
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/stepper/stepper.jsx +1 -1
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +1 -1
- package/dist/headless/source/components/navigation/tabs/tabs.jsx +1 -1
- package/dist/headless/source/index.js +14 -0
- package/dist/headless/source/index.js.map +2 -2
- package/dist/index.d.ts +14 -0
- package/dist/index.js +278 -264
- package/dist/index.js.map +1 -1
- package/dist/source/components/base/animateHeight/animateHeight.jsx +1 -1
- package/dist/source/components/base/icon/icon.jsx +2 -2
- package/dist/source/components/base/icon/icon.jsx.map +1 -1
- package/dist/source/components/base/ripple/ripple.jsx +2 -2
- package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
- package/dist/source/components/clickAwayListener/clickAwayListener.jsx +1 -1
- package/dist/source/components/dataDisplay/accordion/accordion.jsx +2 -2
- package/dist/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
- package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx +116 -0
- package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -0
- package/dist/source/components/dataDisplay/assetGrid/index.js +5 -0
- package/dist/source/components/dataDisplay/assetGrid/index.js.map +7 -0
- package/dist/source/components/dataDisplay/avatar/avatar.jsx +2 -2
- package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/source/components/dataDisplay/badge/badge.jsx +2 -2
- package/dist/source/components/dataDisplay/badge/badge.jsx.map +1 -1
- package/dist/source/components/dataDisplay/card/card.jsx +2 -2
- package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/source/components/dataDisplay/carousel/carousel.jsx +2 -2
- package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chat.jsx +2 -2
- package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatAttachmentImage.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatAttachments.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatHeader.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageAvatar.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageIncoming.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageItem.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageOutgoing.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageSkeleton.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageStatus.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessageSystem.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatMessages.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +1 -1
- package/dist/source/components/dataDisplay/chat/chatShell.jsx +1 -1
- package/dist/source/components/dataDisplay/chip/chip.jsx +2 -2
- package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +51 -0
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -0
- package/dist/source/components/dataDisplay/chipGroup/index.js +5 -0
- package/dist/source/components/dataDisplay/chipGroup/index.js.map +7 -0
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +2 -2
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/imagesList/imagesList.jsx +2 -2
- package/dist/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -1
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +2 -2
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
- package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx +1 -1
- package/dist/source/components/dataDisplay/lazyImage/index.js +5 -0
- package/dist/source/components/dataDisplay/lazyImage/index.js.map +7 -0
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +65 -0
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -0
- package/dist/source/components/dataDisplay/list/list.jsx +2 -2
- package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/source/components/dataDisplay/list/listItem.jsx +1 -1
- package/dist/source/components/dataDisplay/table/table.jsx +2 -2
- package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableBody.jsx +1 -1
- package/dist/source/components/dataDisplay/table/tableCell.jsx +1 -1
- package/dist/source/components/dataDisplay/table/tableHead.jsx +1 -1
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +1 -1
- package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +2 -2
- package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableRow.jsx +1 -1
- package/dist/source/components/dataDisplay/thumbCard/index.js +5 -0
- package/dist/source/components/dataDisplay/thumbCard/index.js.map +7 -0
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +94 -0
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -0
- package/dist/source/components/dataDisplay/treeView/treeView.jsx +2 -2
- package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/source/components/dataDisplay/typography/typography.jsx +2 -2
- package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/source/components/feedBack/message/message.jsx +2 -2
- package/dist/source/components/feedBack/message/message.jsx.map +1 -1
- package/dist/source/components/feedBack/modal/modal.jsx +2 -2
- package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx +2 -2
- package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
- package/dist/source/components/feedBack/saveAssetDialog/index.js +5 -0
- package/dist/source/components/feedBack/saveAssetDialog/index.js.map +7 -0
- package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +66 -0
- package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -0
- package/dist/source/components/feedBack/skeleton/skeleton.jsx +2 -2
- package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
- package/dist/source/components/feedBack/snackbar/snackbar.jsx +2 -2
- package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
- package/dist/source/components/feedBack/tooltip/tooltip.jsx +2 -2
- package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/source/components/inputs/button/button.jsx +2 -2
- package/dist/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +2 -2
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
- package/dist/source/components/inputs/checkbox/checkbox.jsx +2 -2
- package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/dataPickerDays.jsx +1 -1
- package/dist/source/components/inputs/datePicker/dataPickerHeader.jsx +1 -1
- package/dist/source/components/inputs/datePicker/dataPickerInput.jsx +1 -1
- package/dist/source/components/inputs/datePicker/datePicker.jsx +2 -2
- package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +1 -1
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx +1 -1
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +1 -1
- package/dist/source/components/inputs/datePicker/datePickerList.jsx +1 -1
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -1
- package/dist/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx +1 -1
- package/dist/source/components/inputs/fileDrop/countPreview.jsx +1 -1
- package/dist/source/components/inputs/fileDrop/fileDrop.jsx +2 -2
- package/dist/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -1
- package/dist/source/components/inputs/fileDrop/preview.jsx +1 -1
- package/dist/source/components/inputs/fileDrop/previewWrapper.jsx +1 -1
- package/dist/source/components/inputs/fileInput/fileInput.jsx +2 -2
- package/dist/source/components/inputs/fileInput/fileInput.jsx.map +1 -1
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx +2 -2
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
- package/dist/source/components/inputs/radioButton/radioButton.jsx +2 -2
- package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
- package/dist/source/components/inputs/rating/rating.jsx +2 -2
- package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx +1 -1
- package/dist/source/components/inputs/selectField/selectField.jsx +2 -2
- package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/source/components/inputs/slider/slider.jsx +2 -2
- package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textField.jsx +2 -2
- package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textFieldAdornment.jsx +1 -1
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx +1 -1
- package/dist/source/components/inputs/timePicker/timePicker.jsx +2 -2
- package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
- package/dist/source/components/inputs/timePicker/timePickerColumns.jsx +1 -1
- package/dist/source/components/inputs/timePicker/timePickerInput.jsx +1 -1
- package/dist/source/components/inputs/timePicker/timePickerList.jsx +1 -1
- package/dist/source/components/inputs/toggle/toggle.jsx +2 -2
- package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
- package/dist/source/components/inputs/valueSlider/index.js +5 -0
- package/dist/source/components/inputs/valueSlider/index.js.map +7 -0
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx +55 -0
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -0
- package/dist/source/components/layout/appLayout/appLayout.jsx +12 -9
- package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/source/components/layout/divider/divider.jsx +2 -2
- package/dist/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/source/components/layout/grid/grid.jsx +2 -2
- package/dist/source/components/layout/grid/grid.jsx.map +1 -1
- package/dist/source/components/layout/page/page.jsx +2 -2
- package/dist/source/components/layout/page/page.jsx.map +1 -1
- package/dist/source/components/layout/pageHeader/pageHeader.jsx +2 -2
- package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/source/components/layout/screenDivider/screenDivider.jsx +2 -2
- package/dist/source/components/layout/screenDivider/screenDivider.jsx.map +1 -1
- package/dist/source/components/layout/sheet/sheet.jsx +2 -2
- package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/source/components/layout/stack/stack.jsx +2 -2
- package/dist/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/source/components/navigation/appBar/appBar.jsx +2 -2
- package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx +6 -5
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +2 -2
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menu.jsx +2 -2
- package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuComponent.jsx +1 -1
- package/dist/source/components/navigation/menu/menuDivider.jsx +1 -1
- package/dist/source/components/navigation/menu/menuFloating.jsx +1 -1
- package/dist/source/components/navigation/menu/menuItem.jsx +1 -1
- package/dist/source/components/navigation/menu/menuItemIcon.jsx +1 -1
- package/dist/source/components/navigation/menu/menuItemText.jsx +1 -1
- package/dist/source/components/navigation/menu/menuList.jsx +1 -1
- package/dist/source/components/navigation/menu/menuSubmenu.jsx +1 -1
- package/dist/source/components/navigation/overflowMenu/index.js +5 -0
- package/dist/source/components/navigation/overflowMenu/index.js.map +7 -0
- package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx +61 -0
- package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -0
- package/dist/source/components/navigation/pagination/pagination.jsx +2 -2
- package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
- package/dist/source/components/navigation/sidebar/sidebar.jsx +6 -5
- package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/source/components/navigation/stepper/stepper.jsx +2 -2
- package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tab/tab.jsx +2 -2
- package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabs.jsx +2 -2
- package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/source/index.js +14 -0
- package/dist/source/index.js.map +2 -2
- package/package.json +9 -5
- package/dist/headless/source/ssr-published.ssr-spec.jsx +0 -35
- package/dist/headless/source/ssr-published.ssr-spec.jsx.map +0 -1
- package/dist/headless/source/ssr.ssr-spec.jsx +0 -113
- package/dist/headless/source/ssr.ssr-spec.jsx.map +0 -1
- package/dist/source/ssr-published.ssr-spec.jsx +0 -35
- package/dist/source/ssr-published.ssr-spec.jsx.map +0 -1
- package/dist/source/ssr.ssr-spec.jsx +0 -113
- package/dist/source/ssr.ssr-spec.jsx.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.smwb-appbar{padding:0 16px;display:flex;align-items:center;inset:0 0 auto;min-width:100%;background-color:var(--smui-appBarBg);color:var(--smui-appBarContentColor);font-size:1rem;height:65px}.smwb-appbar.smwb-bottom{bottom:0;top:auto}.smwb-appbar.smwb-relative{position:relative}.smwb-appbar.smwb-static{position:static}.smwb-appbar.smwb-sticky{position:sticky}.smwb-appbar.smwb-fixed{position:fixed}.smwb-appbar.smwb-absolute{position:absolute}.smwb-appbar.smwb-dense{padding:12px;height:48px}.smwb-appbar__inner{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap}.smwb-appbar__left{display:flex;align-items:center;gap:10px;white-space:nowrap}.smwb-appbar__right{white-space:nowrap}.smwb-appbar__mid{width:100%;display:flex;flex:1 1 auto;flex-direction:column;flex-wrap:nowrap}.smwb-appbar__mid.smwb-middle{align-items:center}.smwb-appbar__mid.smwb-right{align-items:flex-end}.smwb-appbar__mid.smwb-left{align-items:flex-start}.smwb-appbar_color-primary{background-color:var(--smui-primaryColor);color:var(--smui-onPrimaryColor)}.smwb-appbar_color-secondary{background-color:var(--smui-secondaryColor);color:var(--smui-onSecondaryColor)}.smwb-appbar_color-error{background-color:var(--smui-errorColor);color:var(--smui-onErrorColor)}.smwb-appbar_color-success{background-color:var(--smui-successColor);color:var(--smui-onSuccessColor)}.smwb-appbar_color-warning{background-color:var(--smui-warningColor);color:var(--smui-onWarningColor)}.smwb-appbar_color-info{background-color:var(--smui-infoColor);color:var(--smui-onInfoColor)}
|
|
1
|
+
.smwb-appbar{box-sizing:border-box;padding:0 16px;display:flex;align-items:center;inset:0 0 auto;min-width:100%;background-color:var(--smui-appBarBg);color:var(--smui-appBarContentColor);font-size:1rem;height:65px}.smwb-appbar.smwb-bottom{bottom:0;top:auto}.smwb-appbar.smwb-relative{position:relative}.smwb-appbar.smwb-static{position:static}.smwb-appbar.smwb-sticky{position:sticky}.smwb-appbar.smwb-fixed{position:fixed}.smwb-appbar.smwb-absolute{position:absolute}.smwb-appbar.smwb-dense{padding:12px;height:48px}.smwb-appbar__inner{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap}.smwb-appbar__left{display:flex;align-items:center;gap:10px;white-space:nowrap}.smwb-appbar__right{white-space:nowrap}.smwb-appbar__mid{width:100%;display:flex;flex:1 1 auto;flex-direction:column;flex-wrap:nowrap}.smwb-appbar__mid.smwb-middle{align-items:center}.smwb-appbar__mid.smwb-right{align-items:flex-end}.smwb-appbar__mid.smwb-left{align-items:flex-start}.smwb-appbar_color-primary{background-color:var(--smui-primaryColor);color:var(--smui-onPrimaryColor)}.smwb-appbar_color-secondary{background-color:var(--smui-secondaryColor);color:var(--smui-onSecondaryColor)}.smwb-appbar_color-error{background-color:var(--smui-errorColor);color:var(--smui-onErrorColor)}.smwb-appbar_color-success{background-color:var(--smui-successColor);color:var(--smui-onSuccessColor)}.smwb-appbar_color-warning{background-color:var(--smui-warningColor);color:var(--smui-onWarningColor)}.smwb-appbar_color-info{background-color:var(--smui-infoColor);color:var(--smui-onInfoColor)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-asset-grid{position:relative;overflow-y:auto;width:100%}.smwb-asset-grid__empty{display:flex;align-items:center;justify-content:center;padding:32px 16px;color:var(--smui-onSurfaceColor);opacity:.7}.smwb-asset-grid__skeleton{border-radius:8px;background-color:var(--smui-surfaceVariant);animation:smwb-asset-grid-pulse 1.4s ease-in-out infinite}@keyframes smwb-asset-grid-pulse{0%,to{opacity:1}50%{opacity:.5}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-chip-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-lazy-image{display:block;position:relative;overflow:hidden;width:100%;height:100%}.smwb-lazy-image__img{display:block;width:100%;height:100%;object-fit:cover}.smwb-lazy-image__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--smui-onSurfaceColor);background-color:var(--smui-surfaceVariant)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-overflow-menu{display:inline-flex}.smwb-overflow-menu__item--danger{color:var(--smui-errorColor)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-save-asset-dialog__body{display:flex;flex-direction:column;gap:12px;min-width:280px}.smwb-save-asset-dialog__preview{display:flex;justify-content:center;align-items:center;border-radius:8px;overflow:hidden;background-color:var(--smui-surfaceVariant)}.smwb-save-asset-dialog__preview img{max-width:100%;max-height:200px;object-fit:contain}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.smwb-sheet{background-color:var(--smui-surfaceBackground);position:fixed;opacity:0;transition:all .2s ease-in-out;box-shadow:#00000024 0 8px 10px -5px,#00000024 0 1px 14px 1px,#00000024 0 6px 22px 4px;z-index:100;padding:10px 20px 20px;overflow:hidden;display:flex;max-width:100vw}.smwb-sheet__header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:4px;padding-bottom:5px}.smwb-sheet__header .smwb-button{min-width:0}.smwb-sheet__drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1;touch-action:none;user-select:none}.smwb-sheet__drag-handle:focus-visible{outline:2px solid var(--smui-primaryColor);outline-offset:-2px}.smwb-sheet__drag-handle-bar{display:block;border-radius:999px;background-color:var(--smui-onSurfaceVariant);opacity:.4;transition:opacity .15s ease-in-out}.smwb-sheet__drag-handle:hover .smwb-sheet__drag-handle-bar,.smwb-sheet__drag-handle:active .smwb-sheet__drag-handle-bar{opacity:.7}.smwb-sheet_resizable.smwb-bottom{padding-top:20px}.smwb-sheet_resizable.smwb-top{padding-bottom:20px}.smwb-sheet_resizable.smwb-left{padding-right:20px}.smwb-sheet_resizable.smwb-right{padding-left:20px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle,.smwb-sheet.smwb-top .smwb-sheet__drag-handle{left:0;right:0;height:20px;cursor:ns-resize}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-top .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:36px;height:4px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle{top:0}.smwb-sheet.smwb-top .smwb-sheet__drag-handle{bottom:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle,.smwb-sheet.smwb-right .smwb-sheet__drag-handle{top:0;bottom:0;width:20px;cursor:ew-resize}.smwb-sheet.smwb-left .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-right .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:4px;height:36px}.smwb-sheet.smwb-right .smwb-sheet__drag-handle{left:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle{right:0}.smwb-sheet__inner{display:flex;flex-direction:column;height:100%;width:100%;overflow-y:auto}.smwb-sheet.smwb-bottom{border-radius:28px 28px 0 0;bottom:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(100%);flex-direction:column}.smwb-sheet.smwb-bottom .smwb-sheet__header{width:100%}.smwb-sheet.smwb-top{border-radius:0 0 28px 28px;top:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(-100%);flex-direction:column}.smwb-sheet.smwb-top .smwb-sheet__header{width:100%}.smwb-sheet.smwb-left{border-radius:0 28px 28px 0;top:0;left:0;height:100%;width:var(--sizeProp);transform:translate(-100%);flex-direction:row-reverse}.smwb-sheet.smwb-left .smwb-sheet__header{flex-direction:column;height:100%;padding-left:10px}.smwb-sheet.smwb-right{border-radius:28px 0 0 28px;top:0;right:0;height:100%;width:var(--sizeProp);transform:translate(100%)}.smwb-sheet.smwb-right .smwb-sheet__header{flex-direction:column;height:100%}.smwb-sheet__overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;z-index:100;opacity:0;transition:all .25s ease-in-out}.smwb-sheet__overlay.smwb-entered{opacity:1}.smwb-sheet__overlay.smwb-dark{background-color:#00000080}.smwb-sheet__default.smwb-entered .smwb-sheet,.smwb-sheet__overlay.smwb-entered .smwb-sheet{opacity:1}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-small{width:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-small{width:10%}.smwb-scrollbar::-webkit-scrollbar-thumb{background-color:var(--smui-scrollThumbColor);width:6px;border-radius:999px}.smwb-scrollbar::-webkit-scrollbar{width:6px}.smwb-scrollbar::-webkit-scrollbar-track{background-color:transparent}
|
|
1
|
+
.smwb-sheet{background-color:var(--smui-surfaceBackground);position:fixed;opacity:0;transition:all .2s ease-in-out;box-shadow:#00000024 0 8px 10px -5px,#00000024 0 1px 14px 1px,#00000024 0 6px 22px 4px;z-index:100;padding:10px 20px 20px;box-sizing:border-box;overflow:hidden;display:flex;max-width:100vw}.smwb-sheet__header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:4px;padding-bottom:5px}.smwb-sheet__header .smwb-button{min-width:0}.smwb-sheet__drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1;touch-action:none;user-select:none}.smwb-sheet__drag-handle:focus-visible{outline:2px solid var(--smui-primaryColor);outline-offset:-2px}.smwb-sheet__drag-handle-bar{display:block;border-radius:999px;background-color:var(--smui-onSurfaceVariant);opacity:.4;transition:opacity .15s ease-in-out}.smwb-sheet__drag-handle:hover .smwb-sheet__drag-handle-bar,.smwb-sheet__drag-handle:active .smwb-sheet__drag-handle-bar{opacity:.7}.smwb-sheet_resizable.smwb-bottom{padding-top:20px}.smwb-sheet_resizable.smwb-top{padding-bottom:20px}.smwb-sheet_resizable.smwb-left{padding-right:20px}.smwb-sheet_resizable.smwb-right{padding-left:20px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle,.smwb-sheet.smwb-top .smwb-sheet__drag-handle{left:0;right:0;height:20px;cursor:ns-resize}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-top .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:36px;height:4px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle{top:0}.smwb-sheet.smwb-top .smwb-sheet__drag-handle{bottom:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle,.smwb-sheet.smwb-right .smwb-sheet__drag-handle{top:0;bottom:0;width:20px;cursor:ew-resize}.smwb-sheet.smwb-left .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-right .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:4px;height:36px}.smwb-sheet.smwb-right .smwb-sheet__drag-handle{left:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle{right:0}.smwb-sheet__inner{display:flex;flex-direction:column;height:100%;width:100%;overflow-y:auto}.smwb-sheet.smwb-bottom{border-radius:28px 28px 0 0;bottom:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(100%);flex-direction:column}.smwb-sheet.smwb-bottom .smwb-sheet__header{width:100%}.smwb-sheet.smwb-top{border-radius:0 0 28px 28px;top:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(-100%);flex-direction:column}.smwb-sheet.smwb-top .smwb-sheet__header{width:100%}.smwb-sheet.smwb-left{border-radius:0 28px 28px 0;top:0;left:0;height:100%;width:var(--sizeProp);transform:translate(-100%);flex-direction:row-reverse}.smwb-sheet.smwb-left .smwb-sheet__header{flex-direction:column;height:100%;padding-left:10px}.smwb-sheet.smwb-right{border-radius:28px 0 0 28px;top:0;right:0;height:100%;width:var(--sizeProp);transform:translate(100%)}.smwb-sheet.smwb-right .smwb-sheet__header{flex-direction:column;height:100%}.smwb-sheet__overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;z-index:100;opacity:0;transition:all .25s ease-in-out}.smwb-sheet__overlay.smwb-entered{opacity:1}.smwb-sheet__overlay.smwb-dark{background-color:#00000080}.smwb-sheet__default.smwb-entered .smwb-sheet,.smwb-sheet__overlay.smwb-entered .smwb-sheet{opacity:1}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-small{width:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-small{width:10%}.smwb-scrollbar::-webkit-scrollbar-thumb{background-color:var(--smui-scrollThumbColor);width:6px;border-radius:999px}.smwb-scrollbar::-webkit-scrollbar{width:6px}.smwb-scrollbar::-webkit-scrollbar-track{background-color:transparent}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-thumb-card{position:relative;display:flex;flex-direction:column;border-radius:8px;overflow:visible;outline:none}.smwb-thumb-card--interactive{cursor:pointer}.smwb-thumb-card--disabled{opacity:.5;pointer-events:none}.smwb-thumb-card__media{position:relative;width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;background-color:var(--smui-surfaceVariant)}.smwb-thumb-card--selected .smwb-thumb-card__media{outline:2px solid var(--smui-primaryColor);outline-offset:1px}.smwb-thumb-card--interactive:focus-visible .smwb-thumb-card__media{outline:2px solid var(--smui-primaryColor);outline-offset:1px}.smwb-thumb-card__slot{position:absolute;top:4px;display:flex;gap:4px;z-index:1}.smwb-thumb-card__slot--start{left:4px}.smwb-thumb-card__slot--end{right:4px}.smwb-thumb-card__caption{margin-top:4px;font-size:.8125rem;color:var(--smui-onSurfaceColor);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smwb-thumb-card__preview{z-index:1000;border-radius:8px;overflow:hidden;box-shadow:0 8px 24px #0000004d;background-color:var(--smui-surfaceBackground);pointer-events:none}.smwb-thumb-card__preview img{display:block;max-width:320px;max-height:320px;object-fit:contain}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.smwb-value-slider{display:flex;flex-direction:column;width:100%}.smwb-value-slider__header{display:flex;align-items:center;gap:8px;min-height:24px}.smwb-value-slider__label{font-size:.875rem;color:var(--smui-onSurfaceColor)}.smwb-value-slider__spacer{flex:1 1 auto}.smwb-value-slider__readout{font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--smui-onSurfaceColor);opacity:.85}.smwb-value-slider__reset{display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;color:var(--smui-onSurfaceColor);cursor:pointer;border-radius:50%;opacity:.7}.smwb-value-slider__reset:hover{opacity:1;background-color:var(--smui-onSurfaceHover)}.smwb-value-slider__reset:disabled{opacity:.4;cursor:default}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export interface AssetGridProps<T> {
|
|
3
|
+
items: T[];
|
|
4
|
+
/** Render one cell. `index` is the absolute index into `items`. */
|
|
5
|
+
renderItem: (item: T, index: number) => JSX.Element;
|
|
6
|
+
/** Minimum column width (px); drives the column count from the measured width. Default 160. */
|
|
7
|
+
minColumn?: number;
|
|
8
|
+
/** Fixed cell height (px). */
|
|
9
|
+
rowHeight: number;
|
|
10
|
+
/** Gap (px) between cells on both axes. Default 8. */
|
|
11
|
+
gap?: number;
|
|
12
|
+
/** Extra rows rendered above/below the viewport. Default 2. */
|
|
13
|
+
overscan?: number;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
/** Skeleton tile count while loading. Default 12. */
|
|
16
|
+
loadingCount?: number;
|
|
17
|
+
emptyLabel?: JSX.Element;
|
|
18
|
+
class?: string;
|
|
19
|
+
style?: JSX.CSSProperties | string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A virtualized, data-shape-agnostic asset grid: measures its own width to pick a
|
|
23
|
+
* column count, windows rows via `createVirtualList`, and renders only the visible
|
|
24
|
+
* cells through a `renderItem` slot — with loading skeletons + an empty state. The
|
|
25
|
+
* windowing math every catalog app reimplements, upstreamed. SSR-safe: before it
|
|
26
|
+
* can measure (server + first paint) it renders a plain auto-fill grid of all
|
|
27
|
+
* items, then virtualizes after mount.
|
|
28
|
+
*/
|
|
29
|
+
export declare function AssetGrid<T>(props: AssetGridProps<T>): JSX.Element;
|
|
30
|
+
export default AssetGrid;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { addEventListener as P, use as E, insert as g, createComponent as o, effect as m, style as h, setStyleProperty as w, className as O, template as c } from "solid-js/web";
|
|
2
|
+
import '../../../assets/styles/less/components/assetGrid/assetGrid.entry.css';/* empty css */
|
|
3
|
+
import { mergeProps as W, splitProps as Y, createSignal as f, onMount as F, createMemo as _, Show as p, For as v, onCleanup as G } from "solid-js";
|
|
4
|
+
import N from "clsx";
|
|
5
|
+
import { createVirtualList as V } from "../../../primitives/createVirtualList.js";
|
|
6
|
+
var j = /* @__PURE__ */ c("<div class=smwb-asset-grid__sizer style=position:relative><div class=smwb-asset-grid__band style=position:absolute;top:0;left:0;right:0>"), q = /* @__PURE__ */ c("<div>"), b = /* @__PURE__ */ c("<div class=smwb-asset-grid__plain>"), B = /* @__PURE__ */ c("<div class=smwb-asset-grid__skeleton>"), D = /* @__PURE__ */ c("<div class=smwb-asset-grid__empty>"), J = /* @__PURE__ */ c("<div class=smwb-asset-grid__row>");
|
|
7
|
+
function ee(y) {
|
|
8
|
+
const x = W({
|
|
9
|
+
minColumn: 160,
|
|
10
|
+
gap: 8,
|
|
11
|
+
overscan: 2,
|
|
12
|
+
loadingCount: 12
|
|
13
|
+
}, y), [t] = Y(x, ["items", "renderItem", "minColumn", "rowHeight", "gap", "overscan", "loading", "loadingCount", "emptyLabel", "class", "style"]);
|
|
14
|
+
let l;
|
|
15
|
+
const [C, H] = f(0), [S, I] = f(0), [M, k] = f(!1);
|
|
16
|
+
F(() => {
|
|
17
|
+
if (!l || typeof ResizeObserver > "u") return;
|
|
18
|
+
const r = new ResizeObserver(() => {
|
|
19
|
+
l && (H(l.clientWidth), I(l.clientHeight), k(!0));
|
|
20
|
+
});
|
|
21
|
+
r.observe(l), G(() => r.disconnect());
|
|
22
|
+
});
|
|
23
|
+
const u = _(() => {
|
|
24
|
+
const r = C();
|
|
25
|
+
return r <= 0 ? 1 : Math.max(1, Math.floor((r + t.gap) / (t.minColumn + t.gap)));
|
|
26
|
+
}), L = _(() => Math.ceil(t.items.length / u())), d = V({
|
|
27
|
+
itemCount: L,
|
|
28
|
+
itemHeight: () => t.rowHeight + t.gap,
|
|
29
|
+
viewportHeight: () => S() || 1,
|
|
30
|
+
overscan: t.overscan
|
|
31
|
+
}), R = _(() => {
|
|
32
|
+
const r = [];
|
|
33
|
+
for (let e = d.startIndex(); e < d.endIndex(); e++) r.push(e);
|
|
34
|
+
return r;
|
|
35
|
+
}), z = () => ({
|
|
36
|
+
display: "grid",
|
|
37
|
+
"grid-template-columns": `repeat(${u()}, minmax(0, 1fr))`,
|
|
38
|
+
gap: `${t.gap}px`,
|
|
39
|
+
height: `${t.rowHeight}px`,
|
|
40
|
+
"margin-bottom": `${t.gap}px`
|
|
41
|
+
}), $ = () => ({
|
|
42
|
+
display: "grid",
|
|
43
|
+
"grid-template-columns": `repeat(auto-fill, minmax(${t.minColumn}px, 1fr))`,
|
|
44
|
+
gap: `${t.gap}px`,
|
|
45
|
+
"grid-auto-rows": `${t.rowHeight}px`
|
|
46
|
+
});
|
|
47
|
+
return (() => {
|
|
48
|
+
var r = q();
|
|
49
|
+
return P(r, "scroll", d.onScroll), E((e) => l = e, r), g(r, o(p, {
|
|
50
|
+
get when() {
|
|
51
|
+
return !t.loading;
|
|
52
|
+
},
|
|
53
|
+
get fallback() {
|
|
54
|
+
return (() => {
|
|
55
|
+
var e = b();
|
|
56
|
+
return g(e, o(v, {
|
|
57
|
+
get each() {
|
|
58
|
+
return Array.from({
|
|
59
|
+
length: t.loadingCount
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
children: () => (() => {
|
|
63
|
+
var n = B();
|
|
64
|
+
return m((i) => w(n, "height", `${t.rowHeight}px`)), n;
|
|
65
|
+
})()
|
|
66
|
+
})), m((n) => h(e, $(), n)), e;
|
|
67
|
+
})();
|
|
68
|
+
},
|
|
69
|
+
get children() {
|
|
70
|
+
return o(p, {
|
|
71
|
+
get when() {
|
|
72
|
+
return t.items.length > 0;
|
|
73
|
+
},
|
|
74
|
+
get fallback() {
|
|
75
|
+
return (() => {
|
|
76
|
+
var e = D();
|
|
77
|
+
return g(e, () => t.emptyLabel), e;
|
|
78
|
+
})();
|
|
79
|
+
},
|
|
80
|
+
get children() {
|
|
81
|
+
return o(p, {
|
|
82
|
+
get when() {
|
|
83
|
+
return M();
|
|
84
|
+
},
|
|
85
|
+
get fallback() {
|
|
86
|
+
return (() => {
|
|
87
|
+
var e = b();
|
|
88
|
+
return g(e, o(v, {
|
|
89
|
+
get each() {
|
|
90
|
+
return t.items;
|
|
91
|
+
},
|
|
92
|
+
children: (n, i) => t.renderItem(n, i())
|
|
93
|
+
})), m((n) => h(e, $(), n)), e;
|
|
94
|
+
})();
|
|
95
|
+
},
|
|
96
|
+
get children() {
|
|
97
|
+
var e = j(), n = e.firstChild;
|
|
98
|
+
return g(n, o(v, {
|
|
99
|
+
get each() {
|
|
100
|
+
return R();
|
|
101
|
+
},
|
|
102
|
+
children: (i) => (() => {
|
|
103
|
+
var a = J();
|
|
104
|
+
return g(a, o(v, {
|
|
105
|
+
get each() {
|
|
106
|
+
return Array.from({
|
|
107
|
+
length: u()
|
|
108
|
+
}, (s, A) => i * u() + A);
|
|
109
|
+
},
|
|
110
|
+
children: (s) => o(p, {
|
|
111
|
+
get when() {
|
|
112
|
+
return s < t.items.length;
|
|
113
|
+
},
|
|
114
|
+
get children() {
|
|
115
|
+
return t.renderItem(t.items[s], s);
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
})), m((s) => h(a, z(), s)), a;
|
|
119
|
+
})()
|
|
120
|
+
})), m((i) => {
|
|
121
|
+
var a = `${d.totalHeight()}px`, s = `translateY(${d.offsetY()}px)`;
|
|
122
|
+
return a !== i.e && w(e, "height", i.e = a), s !== i.t && w(n, "transform", i.t = s), i;
|
|
123
|
+
}, {
|
|
124
|
+
e: void 0,
|
|
125
|
+
t: void 0
|
|
126
|
+
}), e;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
})), m((e) => {
|
|
133
|
+
var n = N("smwb-asset-grid", t.class), i = t.style;
|
|
134
|
+
return n !== e.e && O(r, e.e = n), e.t = h(r, i, e.t), e;
|
|
135
|
+
}, {
|
|
136
|
+
e: void 0,
|
|
137
|
+
t: void 0
|
|
138
|
+
}), r;
|
|
139
|
+
})();
|
|
140
|
+
}
|
|
141
|
+
export {
|
|
142
|
+
ee as AssetGrid
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=assetGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetGrid.js","sources":["../../../../src/components/dataDisplay/assetGrid/assetGrid.tsx"],"sourcesContent":["import { type JSX, For, Show, createMemo, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { createVirtualList } from \"../../../primitives/createVirtualList\";\n\nexport interface AssetGridProps<T> {\n items: T[];\n /** Render one cell. `index` is the absolute index into `items`. */\n renderItem: (item: T, index: number) => JSX.Element;\n /** Minimum column width (px); drives the column count from the measured width. Default 160. */\n minColumn?: number;\n /** Fixed cell height (px). */\n rowHeight: number;\n /** Gap (px) between cells on both axes. Default 8. */\n gap?: number;\n /** Extra rows rendered above/below the viewport. Default 2. */\n overscan?: number;\n loading?: boolean;\n /** Skeleton tile count while loading. Default 12. */\n loadingCount?: number;\n emptyLabel?: JSX.Element;\n class?: string;\n style?: JSX.CSSProperties | string;\n}\n\n/**\n * A virtualized, data-shape-agnostic asset grid: measures its own width to pick a\n * column count, windows rows via `createVirtualList`, and renders only the visible\n * cells through a `renderItem` slot — with loading skeletons + an empty state. The\n * windowing math every catalog app reimplements, upstreamed. SSR-safe: before it\n * can measure (server + first paint) it renders a plain auto-fill grid of all\n * items, then virtualizes after mount.\n */\nexport function AssetGrid<T>(props: AssetGridProps<T>): JSX.Element {\n const merged = mergeProps({ minColumn: 160, gap: 8, overscan: 2, loadingCount: 12 }, props);\n const [local] = splitProps(merged, [\n \"items\",\n \"renderItem\",\n \"minColumn\",\n \"rowHeight\",\n \"gap\",\n \"overscan\",\n \"loading\",\n \"loadingCount\",\n \"emptyLabel\",\n \"class\",\n \"style\",\n ]);\n\n let viewportEl: HTMLDivElement | undefined;\n const [width, setWidth] = createSignal(0);\n const [height, setHeight] = createSignal(0);\n const [ready, setReady] = createSignal(false);\n\n onMount(() => {\n if (!viewportEl || typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(() => {\n if (!viewportEl) return;\n setWidth(viewportEl.clientWidth);\n setHeight(viewportEl.clientHeight);\n setReady(true);\n });\n ro.observe(viewportEl);\n onCleanup(() => ro.disconnect());\n });\n\n const cols = createMemo(() => {\n const w = width();\n if (w <= 0) return 1;\n return Math.max(1, Math.floor((w + local.gap) / (local.minColumn + local.gap)));\n });\n const rowCount = createMemo(() => Math.ceil(local.items.length / cols()));\n const rowStride = (): number => local.rowHeight + local.gap;\n\n const vl = createVirtualList({\n itemCount: rowCount,\n itemHeight: rowStride,\n viewportHeight: () => height() || 1,\n overscan: local.overscan,\n });\n\n const visibleRows = createMemo(() => {\n const out: number[] = [];\n for (let row = vl.startIndex(); row < vl.endIndex(); row++) out.push(row);\n return out;\n });\n\n const rowStyle = (): JSX.CSSProperties => ({\n display: \"grid\",\n \"grid-template-columns\": `repeat(${cols()}, minmax(0, 1fr))`,\n gap: `${local.gap}px`,\n height: `${local.rowHeight}px`,\n \"margin-bottom\": `${local.gap}px`,\n });\n\n const plainStyle = (): JSX.CSSProperties => ({\n display: \"grid\",\n \"grid-template-columns\": `repeat(auto-fill, minmax(${local.minColumn}px, 1fr))`,\n gap: `${local.gap}px`,\n \"grid-auto-rows\": `${local.rowHeight}px`,\n });\n\n return (\n <div\n ref={(el) => (viewportEl = el)}\n class={cn(\"smwb-asset-grid\", local.class)}\n style={local.style}\n onScroll={vl.onScroll}\n >\n <Show\n when={!local.loading}\n fallback={\n <div class=\"smwb-asset-grid__plain\" style={plainStyle()}>\n <For each={Array.from({ length: local.loadingCount })}>\n {() => <div class=\"smwb-asset-grid__skeleton\" style={{ height: `${local.rowHeight}px` }} />}\n </For>\n </div>\n }\n >\n <Show\n when={local.items.length > 0}\n fallback={<div class=\"smwb-asset-grid__empty\">{local.emptyLabel}</div>}\n >\n <Show\n when={ready()}\n fallback={\n <div class=\"smwb-asset-grid__plain\" style={plainStyle()}>\n <For each={local.items}>{(item, index) => local.renderItem(item, index())}</For>\n </div>\n }\n >\n <div class=\"smwb-asset-grid__sizer\" style={{ height: `${vl.totalHeight()}px`, position: \"relative\" }}>\n <div\n class=\"smwb-asset-grid__band\"\n style={{ position: \"absolute\", top: \"0\", left: \"0\", right: \"0\", transform: `translateY(${vl.offsetY()}px)` }}\n >\n <For each={visibleRows()}>\n {(row) => (\n <div class=\"smwb-asset-grid__row\" style={rowStyle()}>\n <For each={Array.from({ length: cols() }, (_, c) => row * cols() + c)}>\n {(index) => (\n <Show when={index < local.items.length}>\n {local.renderItem(local.items[index] as T, index)}\n </Show>\n )}\n </For>\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </Show>\n </Show>\n </div>\n );\n}\n\nexport default AssetGrid;\n"],"names":["AssetGrid","props","merged","mergeProps","minColumn","gap","overscan","loadingCount","local","splitProps","viewportEl","width","setWidth","createSignal","height","setHeight","ready","setReady","onMount","ResizeObserver","ro","clientWidth","clientHeight","observe","onCleanup","disconnect","cols","createMemo","w","Math","max","floor","rowCount","ceil","items","length","vl","createVirtualList","itemCount","itemHeight","rowStride","rowHeight","viewportHeight","visibleRows","out","row","startIndex","endIndex","push","rowStyle","display","plainStyle","_el$","_tmpl$2","_$addEventListener","onScroll","_$use","el","_$insert","_$createComponent","Show","when","loading","fallback","_el$4","_tmpl$3","For","each","Array","from","children","_el$5","_tmpl$4","_$effect","_$p","_$setStyleProperty","_$style","_el$6","_tmpl$5","emptyLabel","_el$7","item","index","renderItem","_el$2","_tmpl$","_el$3","firstChild","_el$8","_tmpl$6","_","c","_p$","_v$","totalHeight","_v$2","offsetY","e","t","undefined","_v$3","cn","class","_v$4","style","_$className"],"mappings":";;;;;;AAiCO,SAASA,GAAaC,GAAuC;AAClE,QAAMC,IAASC,EAAW;AAAA,IAAEC,WAAW;AAAA,IAAKC,KAAK;AAAA,IAAGC,UAAU;AAAA,IAAGC,cAAc;AAAA,EAAA,GAAMN,CAAK,GACpF,CAACO,CAAK,IAAIC,EAAWP,GAAQ,CACjC,SACA,cACA,aACA,aACA,OACA,YACA,WACA,gBACA,cACA,SACA,OAAO,CACR;AAED,MAAIQ;AACJ,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAa,CAAC,GAClC,CAACC,GAAQC,CAAS,IAAIF,EAAa,CAAC,GACpC,CAACG,GAAOC,CAAQ,IAAIJ,EAAa,EAAK;AAE5CK,EAAAA,EAAQ,MAAM;AACZ,QAAI,CAACR,KAAc,OAAOS,iBAAmB,IAAa;AAC1D,UAAMC,IAAK,IAAID,eAAe,MAAM;AAClC,MAAKT,MACLE,EAASF,EAAWW,WAAW,GAC/BN,EAAUL,EAAWY,YAAY,GACjCL,EAAS,EAAI;AAAA,IACf,CAAC;AACDG,IAAAA,EAAGG,QAAQb,CAAU,GACrBc,EAAU,MAAMJ,EAAGK,YAAY;AAAA,EACjC,CAAC;AAED,QAAMC,IAAOC,EAAW,MAAM;AAC5B,UAAMC,IAAIjB,EAAAA;AACV,WAAIiB,KAAK,IAAU,IACZC,KAAKC,IAAI,GAAGD,KAAKE,OAAOH,IAAIpB,EAAMH,QAAQG,EAAMJ,YAAYI,EAAMH,IAAI,CAAC;AAAA,EAChF,CAAC,GACK2B,IAAWL,EAAW,MAAME,KAAKI,KAAKzB,EAAM0B,MAAMC,SAAST,EAAAA,CAAM,CAAC,GAGlEU,IAAKC,EAAkB;AAAA,IAC3BC,WAAWN;AAAAA,IACXO,YAJgBC,MAAchC,EAAMiC,YAAYjC,EAAMH;AAAAA,IAKtDqC,gBAAgBA,MAAM5B,EAAAA,KAAY;AAAA,IAClCR,UAAUE,EAAMF;AAAAA,EAAAA,CACjB,GAEKqC,IAAchB,EAAW,MAAM;AACnC,UAAMiB,IAAgB,CAAA;AACtB,aAASC,IAAMT,EAAGU,WAAAA,GAAcD,IAAMT,EAAGW,SAAAA,GAAYF,IAAOD,CAAAA,EAAII,KAAKH,CAAG;AACxE,WAAOD;AAAAA,EACT,CAAC,GAEKK,IAAWA,OAA0B;AAAA,IACzCC,SAAS;AAAA,IACT,yBAAyB,UAAUxB,EAAAA,CAAM;AAAA,IACzCrB,KAAK,GAAGG,EAAMH,GAAG;AAAA,IACjBS,QAAQ,GAAGN,EAAMiC,SAAS;AAAA,IAC1B,iBAAiB,GAAGjC,EAAMH,GAAG;AAAA,EAAA,IAGzB8C,IAAaA,OAA0B;AAAA,IAC3CD,SAAS;AAAA,IACT,yBAAyB,4BAA4B1C,EAAMJ,SAAS;AAAA,IACpEC,KAAK,GAAGG,EAAMH,GAAG;AAAA,IACjB,kBAAkB,GAAGG,EAAMiC,SAAS;AAAA,EAAA;AAGtC,UAAA,MAAA;AAAA,QAAAW,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAA,UAKchB,EAAGmB,QAAQ,GAAAC,EAHfC,CAAAA,MAAQ/C,IAAa+C,GAAGL,CAAA,GAAAM,EAAAN,GAAAO,EAK7BC,GAAI;AAAA,MAAA,IACHC,OAAI;AAAA,eAAE,CAACrD,EAAMsD;AAAAA,MAAO;AAAA,MAAA,IACpBC,WAAQ;AAAA,gBAAA,MAAA;AAAA,cAAAC,IAAAC,EAAAA;AAAAP,iBAAAA,EAAAM,GAAAL,EAEHO,GAAG;AAAA,YAAA,IAACC,OAAI;AAAA,qBAAEC,MAAMC,KAAK;AAAA,gBAAElC,QAAQ3B,EAAMD;AAAAA,cAAAA,CAAc;AAAA,YAAC;AAAA,YAAA+D,UAClDA,OAAA,MAAA;AAAA,kBAAAC,IAAAC,EAAAA;AAAAC,qBAAAA,EAAAC,CAAAA,MAAAC,EAAAJ,GAAA,UAA8D,GAAG/D,EAAMiC,SAAS,IAAI,CAAA,GAAA8B;AAAAA,YAAA,GAAA;AAAA,UAAA,CAAM,CAAA,GAAAE,EAAAC,OAAAE,EAAAZ,GAFpDb,EAAAA,GAAYuB,CAAA,CAAA,GAAAV;AAAAA,QAAA,GAAA;AAAA,MAAA;AAAA,MAAA,IAAAM,WAAA;AAAA,eAAAX,EAOxDC,GAAI;AAAA,UAAA,IACHC,OAAI;AAAA,mBAAErD,EAAM0B,MAAMC,SAAS;AAAA,UAAC;AAAA,UAAA,IAC5B4B,WAAQ;AAAA,oBAAA,MAAA;AAAA,kBAAAc,IAAAC,EAAAA;AAAApB,qBAAAA,EAAAmB,GAAA,MAAuCrE,EAAMuE,UAAU,GAAAF;AAAAA,YAAA,GAAA;AAAA,UAAA;AAAA,UAAA,IAAAP,WAAA;AAAA,mBAAAX,EAE9DC,GAAI;AAAA,cAAA,IACHC,OAAI;AAAA,uBAAE7C,EAAAA;AAAAA,cAAO;AAAA,cAAA,IACb+C,WAAQ;AAAA,wBAAA,MAAA;AAAA,sBAAAiB,IAAAf,EAAAA;AAAAP,yBAAAA,EAAAsB,GAAArB,EAEHO,GAAG;AAAA,oBAAA,IAACC,OAAI;AAAA,6BAAE3D,EAAM0B;AAAAA,oBAAK;AAAA,oBAAAoC,UAAGA,CAACW,GAAMC,MAAU1E,EAAM2E,WAAWF,GAAMC,GAAO;AAAA,kBAAA,CAAC,CAAA,GAAAT,EAAAC,OAAAE,EAAAI,GADhC7B,EAAAA,GAAYuB,CAAA,CAAA,GAAAM;AAAAA,gBAAA,GAAA;AAAA,cAAA;AAAA,cAAA,IAAAV,WAAA;AAAA,oBAAAc,IAAAC,EAAAA,GAAAC,IAAAF,EAAAG;AAAA7B,uBAAAA,EAAA4B,GAAA3B,EAUpDO,GAAG;AAAA,kBAAA,IAACC,OAAI;AAAA,2BAAExB,EAAAA;AAAAA,kBAAa;AAAA,kBAAA2B,UACpBzB,QAAG,MAAA;AAAA,wBAAA2C,IAAAC,EAAAA;AAAA/B,2BAAAA,EAAA8B,GAAA7B,EAEAO,GAAG;AAAA,sBAAA,IAACC,OAAI;AAAA,+BAAEC,MAAMC,KAAK;AAAA,0BAAElC,QAAQT,EAAAA;AAAAA,wBAAK,GAAK,CAACgE,GAAGC,MAAM9C,IAAMnB,EAAAA,IAASiE,CAAC;AAAA,sBAAC;AAAA,sBAAArB,UACjEY,CAAAA,MAAKvB,EACJC,GAAI;AAAA,wBAAA,IAACC,OAAI;AAAA,iCAAEqB,IAAQ1E,EAAM0B,MAAMC;AAAAA,wBAAM;AAAA,wBAAA,IAAAmC,WAAA;AAAA,iCACnC9D,EAAM2E,WAAW3E,EAAM0B,MAAMgD,CAAK,GAAQA,CAAK;AAAA,wBAAC;AAAA,sBAAA,CAAA;AAAA,oBAAA,CAEpD,CAAA,GAAAT,EAAAC,OAAAE,EAAAY,GANoCvC,EAAAA,GAAUyB,CAAA,CAAA,GAAAc;AAAAA,kBAAA,GAAA;AAAA,gBAAA,CASpD,CAAA,GAAAf,EAAAmB,CAAAA,MAAA;AAAA,sBAAAC,IAhB8C,GAAGzD,EAAG0D,YAAAA,CAAa,MAAIC,IAGG,cAAc3D,EAAG4D,QAAAA,CAAS;AAAKH,yBAAAA,MAAAD,EAAAK,KAAAtB,EAAAS,GAAA,UAAAQ,EAAAK,IAAAJ,CAAA,GAAAE,MAAAH,EAAAM,KAAAvB,EAAAW,GAAA,aAAAM,EAAAM,IAAAH,CAAA,GAAAH;AAAAA,gBAAA,GAAA;AAAA,kBAAAK,GAAAE;AAAAA,kBAAAD,GAAAC;AAAAA,gBAAAA,CAAA,GAAAf;AAAAA,cAAA;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,CAAA,GAAAX,EAAAmB,CAAAA,MAAA;AAAA,UAAAQ,IA7B7GC,EAAG,mBAAmB7F,EAAM8F,KAAK,GAACC,IAClC/F,EAAMgG;AAAKJ,aAAAA,MAAAR,EAAAK,KAAAQ,EAAArD,GAAAwC,EAAAK,IAAAG,CAAA,GAAAR,EAAAM,IAAAtB,EAAAxB,GAAAmD,GAAAX,EAAAM,CAAA,GAAAN;AAAAA,IAAA,GAAA;AAAA,MAAAK,GAAAE;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA,GAAA/C;AAAAA,EAAA,GAAA;AAkDxB;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type ChipColor } from "../chip";
|
|
3
|
+
export interface ChipGroupOption {
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: JSX.Element;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
10
|
+
options: ChipGroupOption[];
|
|
11
|
+
/** Selected value (single) or values (when `multiple`). */
|
|
12
|
+
value?: string | string[];
|
|
13
|
+
/** Allow more than one selected chip (value becomes a string[]). */
|
|
14
|
+
multiple?: boolean;
|
|
15
|
+
onChange?: (value: string | string[]) => void;
|
|
16
|
+
size?: "small" | "medium";
|
|
17
|
+
color?: ChipColor;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A multi/single-select toggle group built on `Chip` — the "chip as a toggle"
|
|
22
|
+
* loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll
|
|
23
|
+
* for filters / segmented controls. Pass an `options` array and a controlled
|
|
24
|
+
* `value`; `onChange` returns the next value (string, or string[] when multiple).
|
|
25
|
+
*/
|
|
26
|
+
export declare function ChipGroup(props: ChipGroupProps): JSX.Element;
|
|
27
|
+
export default ChipGroup;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { spread as p, mergeProps as n, insert as g, createComponent as o, template as f } from "solid-js/web";
|
|
2
|
+
import '../../../assets/styles/less/components/chipGroup/chipGroup.entry.css';/* empty css */
|
|
3
|
+
import { mergeProps as v, splitProps as h, For as b } from "solid-js";
|
|
4
|
+
import C from "clsx";
|
|
5
|
+
import { Chip as z } from "../chip/chip.js";
|
|
6
|
+
var P = /* @__PURE__ */ f("<div>");
|
|
7
|
+
function k(i) {
|
|
8
|
+
const a = v({
|
|
9
|
+
size: "medium",
|
|
10
|
+
color: "primary"
|
|
11
|
+
}, i), [e, c] = h(a, ["options", "value", "multiple", "onChange", "size", "color", "disabled", "class"]), l = () => e.value == null ? [] : Array.isArray(e.value) ? e.value : [e.value], s = (t) => l().includes(t), u = (t) => {
|
|
12
|
+
if (e.multiple) {
|
|
13
|
+
const r = l(), m = r.includes(t) ? r.filter((d) => d !== t) : [...r, t];
|
|
14
|
+
e.onChange?.(m);
|
|
15
|
+
} else
|
|
16
|
+
e.onChange?.(t);
|
|
17
|
+
};
|
|
18
|
+
return (() => {
|
|
19
|
+
var t = P();
|
|
20
|
+
return p(t, n(c, {
|
|
21
|
+
role: "group",
|
|
22
|
+
get class() {
|
|
23
|
+
return C("smwb-chip-group", e.class);
|
|
24
|
+
}
|
|
25
|
+
}), !1, !0), g(t, o(b, {
|
|
26
|
+
get each() {
|
|
27
|
+
return e.options;
|
|
28
|
+
},
|
|
29
|
+
children: (r) => o(z, n({
|
|
30
|
+
get label() {
|
|
31
|
+
return r.label;
|
|
32
|
+
},
|
|
33
|
+
get size() {
|
|
34
|
+
return e.size;
|
|
35
|
+
},
|
|
36
|
+
get color() {
|
|
37
|
+
return e.color;
|
|
38
|
+
},
|
|
39
|
+
get selected() {
|
|
40
|
+
return s(r.value);
|
|
41
|
+
},
|
|
42
|
+
get variant() {
|
|
43
|
+
return s(r.value) ? "filled" : "outlined";
|
|
44
|
+
},
|
|
45
|
+
get disabled() {
|
|
46
|
+
return !!(e.disabled || r.disabled);
|
|
47
|
+
},
|
|
48
|
+
onClick: () => u(r.value)
|
|
49
|
+
}, () => r.icon ? {
|
|
50
|
+
icon: r.icon
|
|
51
|
+
} : {}))
|
|
52
|
+
})), t;
|
|
53
|
+
})();
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
k as ChipGroup
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chipGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chipGroup.js","sources":["../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll\n * for filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n <div {...rest} role=\"group\" class={cn(\"smwb-chip-group\", local.class)}>\n <For each={local.options}>\n {(option) => (\n <Chip\n label={option.label}\n size={local.size}\n color={local.color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(local.disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n {...(option.icon ? { icon: option.icon } : {})}\n />\n )}\n </For>\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","props","merged","mergeProps","size","color","local","rest","splitProps","selectedValues","value","Array","isArray","isSelected","includes","toggle","multiple","current","next","filter","v","onChange","_el$","_tmpl$","_$spread","_$mergeProps","cn","class","_$insert","_$createComponent","For","each","options","children","option","Chip","label","selected","variant","disabled","onClick","icon"],"mappings":";;;;;;AA8BO,SAASA,EAAUC,GAAoC;AAC5D,QAAMC,IAASC,EAAW;AAAA,IAAEC,MAAM;AAAA,IAAmBC,OAAO;AAAA,EAAA,GAA0BJ,CAAK,GACrF,CAACK,GAAOC,CAAI,IAAIC,EAAWN,GAAQ,CACvC,WACA,SACA,YACA,YACA,QACA,SACA,YACA,OAAO,CACR,GAEKO,IAAiBA,MACjBH,EAAMI,SAAS,OAAa,CAAA,IACzBC,MAAMC,QAAQN,EAAMI,KAAK,IAAIJ,EAAMI,QAAQ,CAACJ,EAAMI,KAAK,GAE1DG,IAAaA,CAACH,MAA2BD,EAAAA,EAAiBK,SAASJ,CAAK,GAExEK,IAASA,CAACL,MAAwB;AACtC,QAAIJ,EAAMU,UAAU;AAClB,YAAMC,IAAUR,EAAAA,GACVS,IAAOD,EAAQH,SAASJ,CAAK,IAAIO,EAAQE,OAAQC,CAAAA,MAAMA,MAAMV,CAAK,IAAI,CAAC,GAAGO,GAASP,CAAK;AAC9FJ,MAAAA,EAAMe,WAAWH,CAAI;AAAA,IACvB;AACEZ,MAAAA,EAAMe,WAAWX,CAAK;AAAA,EAE1B;AAEA,UAAA,MAAA;AAAA,QAAAY,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAAG,EACWlB,GAAI;AAAA,MAAA,MAAO;AAAA,MAAO,IAAA,QAAA;AAAA,eAAQmB,EAAG,mBAAmBpB,EAAMqB,KAAK;AAAA,MAAC;AAAA,IAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAN,GAAAO,EAClEC,GAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEzB,EAAM0B;AAAAA,MAAO;AAAA,MAAAC,UACpBC,CAAAA,MAAML,EACLM,GAAIV,EAAA;AAAA,QAAA,IACHW,QAAK;AAAA,iBAAEF,EAAOE;AAAAA,QAAK;AAAA,QAAA,IACnBhC,OAAI;AAAA,iBAAEE,EAAMF;AAAAA,QAAI;AAAA,QAAA,IAChBC,QAAK;AAAA,iBAAEC,EAAMD;AAAAA,QAAK;AAAA,QAAA,IAClBgC,WAAQ;AAAA,iBAAExB,EAAWqB,EAAOxB,KAAK;AAAA,QAAC;AAAA,QAAA,IAClC4B,UAAO;AAAA,iBAAEzB,EAAWqB,EAAOxB,KAAK,IAAI,WAAW;AAAA,QAAU;AAAA,QAAA,IACzD6B,WAAQ;AAAA,iBAAE,CAAC,EAAEjC,EAAMiC,YAAYL,EAAOK;AAAAA,QAAS;AAAA,QAC/CC,SAASA,MAAMzB,EAAOmB,EAAOxB,KAAK;AAAA,MAAA,GAAC,MAC9BwB,EAAOO,OAAO;AAAA,QAAEA,MAAMP,EAAOO;AAAAA,MAAAA,IAAS,EAAE,CAAA;AAAA,IAAA,CAEhD,CAAA,GAAAnB;AAAAA,EAAA,GAAA;AAIT;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type Ref } from "../../../primitives/mergeRefs";
|
|
3
|
+
export interface LazyImageProps extends Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, "onError"> {
|
|
4
|
+
/** Image URL. When absent (or after a load error) the `fallback` is shown. */
|
|
5
|
+
src?: string | undefined;
|
|
6
|
+
alt?: string | undefined;
|
|
7
|
+
/** Rendered in place of the image when it is missing or fails to load. */
|
|
8
|
+
fallback?: JSX.Element | undefined;
|
|
9
|
+
/** Defer loading until the image scrolls into view (IntersectionObserver). Default true. */
|
|
10
|
+
lazy?: boolean;
|
|
11
|
+
/** CSS `aspect-ratio` for the wrapper (e.g. `1`, `"4 / 3"`) to reserve space before load. */
|
|
12
|
+
aspectRatio?: string | number;
|
|
13
|
+
/** Fires on a load error (after the fallback is swapped in). */
|
|
14
|
+
onError?: (event: Event) => void;
|
|
15
|
+
ref?: Ref<HTMLImageElement>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* An `<img>` with a built-in `onError` fallback and optional in-viewport lazy
|
|
19
|
+
* loading — the `<img decoding=async onError=…>` + `<Show>` dance hand-rolled in
|
|
20
|
+
* every gallery, in one primitive. SSR-safe: renders the image markup on the
|
|
21
|
+
* server; the IntersectionObserver only runs after mount on the client.
|
|
22
|
+
*/
|
|
23
|
+
export declare function LazyImage(props: LazyImageProps): JSX.Element;
|
|
24
|
+
export default LazyImage;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { insert as o, createComponent as u, memo as $, use as h, spread as k, mergeProps as E, effect as I, className as P, style as R, template as i } from "solid-js/web";
|
|
2
|
+
import '../../../assets/styles/less/components/lazyImage/lazyImage.entry.css';/* empty css */
|
|
3
|
+
import { mergeProps as S, splitProps as C, createSignal as g, onMount as F, Show as p, onCleanup as O } from "solid-js";
|
|
4
|
+
import x from "clsx";
|
|
5
|
+
import { mergeRefs as L } from "../../../primitives/mergeRefs.js";
|
|
6
|
+
var M = /* @__PURE__ */ i("<span class=smwb-lazy-image__fallback>"), N = /* @__PURE__ */ i("<img>", !0, !1, !1), V = /* @__PURE__ */ i("<span>");
|
|
7
|
+
function G(d) {
|
|
8
|
+
const c = S({
|
|
9
|
+
lazy: !0
|
|
10
|
+
}, d), [r, v] = C(c, ["src", "alt", "fallback", "lazy", "aspectRatio", "class", "onError", "ref"]), [y, b] = g(!1), [m, f] = g(!c.lazy);
|
|
11
|
+
let s;
|
|
12
|
+
F(() => {
|
|
13
|
+
if (!r.lazy || m() || !s) return;
|
|
14
|
+
if (typeof IntersectionObserver > "u") {
|
|
15
|
+
f(!0);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const t = new IntersectionObserver((e) => {
|
|
19
|
+
e.some((a) => a.isIntersecting) && (f(!0), t.disconnect());
|
|
20
|
+
});
|
|
21
|
+
t.observe(s), O(() => t.disconnect());
|
|
22
|
+
});
|
|
23
|
+
const z = (t) => {
|
|
24
|
+
b(!0), r.onError?.(t);
|
|
25
|
+
}, n = () => y() || !r.src, w = () => m() ? r.src : void 0, _ = () => r.aspectRatio != null ? {
|
|
26
|
+
"aspect-ratio": String(r.aspectRatio)
|
|
27
|
+
} : void 0;
|
|
28
|
+
return (() => {
|
|
29
|
+
var t = V();
|
|
30
|
+
return o(t, u(p, {
|
|
31
|
+
get when() {
|
|
32
|
+
return $(() => !!n())() && r.fallback;
|
|
33
|
+
},
|
|
34
|
+
get children() {
|
|
35
|
+
var e = M();
|
|
36
|
+
return o(e, () => r.fallback), e;
|
|
37
|
+
}
|
|
38
|
+
}), null), o(t, u(p, {
|
|
39
|
+
get when() {
|
|
40
|
+
return !n();
|
|
41
|
+
},
|
|
42
|
+
get children() {
|
|
43
|
+
var e = N(), a = L(r.ref, (l) => s = l);
|
|
44
|
+
return typeof a == "function" && h(a, e), k(e, E(v, {
|
|
45
|
+
class: "smwb-lazy-image__img",
|
|
46
|
+
get src() {
|
|
47
|
+
return w();
|
|
48
|
+
},
|
|
49
|
+
get alt() {
|
|
50
|
+
return r.alt ?? "";
|
|
51
|
+
},
|
|
52
|
+
get loading() {
|
|
53
|
+
return r.lazy ? "lazy" : void 0;
|
|
54
|
+
},
|
|
55
|
+
decoding: "async",
|
|
56
|
+
onError: z
|
|
57
|
+
}), !1, !1), e;
|
|
58
|
+
}
|
|
59
|
+
}), null), I((e) => {
|
|
60
|
+
var a = x("smwb-lazy-image", r.class, {
|
|
61
|
+
"smwb-lazy-image--empty": n()
|
|
62
|
+
}), l = _();
|
|
63
|
+
return a !== e.e && P(t, e.e = a), e.t = R(t, l, e.t), e;
|
|
64
|
+
}, {
|
|
65
|
+
e: void 0,
|
|
66
|
+
t: void 0
|
|
67
|
+
}), t;
|
|
68
|
+
})();
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
G as LazyImage
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=lazyImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyImage.js","sources":["../../../../src/components/dataDisplay/lazyImage/lazyImage.tsx"],"sourcesContent":["import { type JSX, Show, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface LazyImageProps extends Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, \"onError\"> {\n /** Image URL. When absent (or after a load error) the `fallback` is shown. */\n src?: string | undefined;\n alt?: string | undefined;\n /** Rendered in place of the image when it is missing or fails to load. */\n fallback?: JSX.Element | undefined;\n /** Defer loading until the image scrolls into view (IntersectionObserver). Default true. */\n lazy?: boolean;\n /** CSS `aspect-ratio` for the wrapper (e.g. `1`, `\"4 / 3\"`) to reserve space before load. */\n aspectRatio?: string | number;\n /** Fires on a load error (after the fallback is swapped in). */\n onError?: (event: Event) => void;\n ref?: Ref<HTMLImageElement>;\n}\n\n/**\n * An `<img>` with a built-in `onError` fallback and optional in-viewport lazy\n * loading — the `<img decoding=async onError=…>` + `<Show>` dance hand-rolled in\n * every gallery, in one primitive. SSR-safe: renders the image markup on the\n * server; the IntersectionObserver only runs after mount on the client.\n */\nexport function LazyImage(props: LazyImageProps): JSX.Element {\n const merged = mergeProps({ lazy: true }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"alt\",\n \"fallback\",\n \"lazy\",\n \"aspectRatio\",\n \"class\",\n \"onError\",\n \"ref\",\n ]);\n\n const [failed, setFailed] = createSignal(false);\n // When lazy, hold the real src back until the element scrolls into view.\n const [visible, setVisible] = createSignal(!merged.lazy);\n let imgEl: HTMLImageElement | undefined;\n\n onMount(() => {\n if (!local.lazy || visible() || !imgEl) return;\n if (typeof IntersectionObserver === \"undefined\") {\n setVisible(true);\n return;\n }\n const io = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setVisible(true);\n io.disconnect();\n }\n });\n io.observe(imgEl);\n onCleanup(() => io.disconnect());\n });\n\n const onError = (event: Event): void => {\n setFailed(true);\n local.onError?.(event);\n };\n\n const showFallback = (): boolean => failed() || !local.src;\n const resolvedSrc = (): string | undefined => (visible() ? local.src : undefined);\n const style = (): JSX.CSSProperties | undefined =>\n local.aspectRatio != null ? { \"aspect-ratio\": String(local.aspectRatio) } : undefined;\n\n return (\n <span class={cn(\"smwb-lazy-image\", local.class, { \"smwb-lazy-image--empty\": showFallback() })} style={style()}>\n <Show when={showFallback() && local.fallback}>\n <span class=\"smwb-lazy-image__fallback\">{local.fallback}</span>\n </Show>\n <Show when={!showFallback()}>\n <img\n {...rest}\n ref={mergeRefs(local.ref, (el) => (imgEl = el as HTMLImageElement))}\n class=\"smwb-lazy-image__img\"\n src={resolvedSrc()}\n alt={local.alt ?? \"\"}\n loading={local.lazy ? \"lazy\" : undefined}\n decoding=\"async\"\n onError={onError}\n />\n </Show>\n </span>\n );\n}\n\nexport default LazyImage;\n"],"names":["LazyImage","props","merged","mergeProps","lazy","local","rest","splitProps","failed","setFailed","createSignal","visible","setVisible","imgEl","onMount","IntersectionObserver","io","entries","some","entry","isIntersecting","disconnect","observe","onCleanup","onError","event","showFallback","src","resolvedSrc","undefined","style","aspectRatio","String","_el$","_tmpl$3","_$insert","_$createComponent","Show","when","_$memo","fallback","children","_el$2","_tmpl$","_el$3","_tmpl$2","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","alt","loading","_$effect","_p$","_v$","cn","class","_v$2","e","_$className","t","_$style"],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type Ref } from "../../../primitives/mergeRefs";
|
|
3
|
+
export interface ThumbCardProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onSelect"> {
|
|
4
|
+
/** Thumbnail URL; falls back to `fallback` when missing / failed. */
|
|
5
|
+
src?: string;
|
|
6
|
+
caption?: JSX.Element;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
/** Makes the card a selectable button (keyboard + `aria-pressed`). */
|
|
9
|
+
onSelect?: () => void;
|
|
10
|
+
/** Shown in place of the image when `src` is missing / fails. */
|
|
11
|
+
fallback?: JSX.Element;
|
|
12
|
+
/** A larger preview shown in a floating popup after a hover delay. */
|
|
13
|
+
hoverPreview?: JSX.Element | string;
|
|
14
|
+
/** Top-left overlay slot (e.g. a favourite star). */
|
|
15
|
+
topStart?: JSX.Element;
|
|
16
|
+
/** Top-right overlay slot (e.g. a kebab menu). */
|
|
17
|
+
topEnd?: JSX.Element;
|
|
18
|
+
lazy?: boolean;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
/** Delay (ms) before the hover preview appears. Default 350. */
|
|
21
|
+
hoverDelay?: number;
|
|
22
|
+
ref?: Ref<HTMLDivElement>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A selectable gallery card: image with an `onError` fallback + optional lazy
|
|
26
|
+
* load, keyboard/`aria-pressed` selection, corner action slots, and a delayed
|
|
27
|
+
* floating hover-preview. The generic gallery-card behaviour every app rebuilds
|
|
28
|
+
* on top of the primitives. SSR-safe — the hover preview is client-only.
|
|
29
|
+
*/
|
|
30
|
+
export declare function ThumbCard(props: ThumbCardProps): JSX.Element;
|
|
31
|
+
export default ThumbCard;
|