@smwb/ui-solid 0.12.0 → 0.13.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 +74 -0
- package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
- package/dist/assets/styles/less/components/card/card.entry.css +1 -1
- package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
- package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
- package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
- package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
- package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
- package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
- package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
- package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
- package/dist/assets/styles/less/components/table/table.entry.css +1 -1
- package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
- package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
- package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
- package/dist/components/base/animateHeight/animateHeight.js +41 -42
- package/dist/components/base/animateHeight/animateHeight.js.map +1 -1
- package/dist/components/base/icon/icon.d.ts +6 -2
- package/dist/components/base/icon/icon.js +41 -41
- package/dist/components/base/icon/icon.js.map +1 -1
- package/dist/components/base/ripple/ripple.d.ts +3 -0
- package/dist/components/base/ripple/ripple.js +46 -34
- package/dist/components/base/ripple/ripple.js.map +1 -1
- package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
- package/dist/components/dataDisplay/avatar/avatar.js +37 -33
- package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/components/dataDisplay/card/card.d.ts +32 -1
- package/dist/components/dataDisplay/card/card.js +47 -34
- package/dist/components/dataDisplay/card/card.js.map +1 -1
- package/dist/components/dataDisplay/carousel/carousel.js +92 -88
- package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
- package/dist/components/dataDisplay/chat/chatIconButton.js +23 -13
- package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatLayout.d.ts +2 -0
- package/dist/components/dataDisplay/chat/chatLayout.js +33 -29
- package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +2 -0
- package/dist/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
- package/dist/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
- package/dist/components/dataDisplay/chip/chip.d.ts +32 -0
- package/dist/components/dataDisplay/chip/chip.js +104 -63
- package/dist/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/components/dataDisplay/chipGroup/chipGroup.js +44 -39
- package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
- package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
- package/dist/components/dataDisplay/dagView/dagLayout.js +284 -0
- package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
- package/dist/components/dataDisplay/dagView/dagView.d.ts +151 -0
- package/dist/components/dataDisplay/dagView/dagView.js +488 -0
- package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
- package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
- package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
- package/dist/components/dataDisplay/dagView/panZoom.js +161 -0
- package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
- package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
- package/dist/components/dataDisplay/descriptionList/descriptionList.js +20 -24
- package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
- package/dist/components/dataDisplay/kanban/kanban.js +71 -61
- package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
- package/dist/components/dataDisplay/lazyImage/lazyImage.js +14 -12
- package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/components/dataDisplay/list/list.d.ts +2 -0
- package/dist/components/dataDisplay/list/list.js +16 -12
- package/dist/components/dataDisplay/list/list.js.map +1 -1
- package/dist/components/dataDisplay/list/listItem.js +20 -18
- package/dist/components/dataDisplay/list/listItem.js.map +1 -1
- package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
- package/dist/components/dataDisplay/meter/meter.js +15 -13
- package/dist/components/dataDisplay/meter/meter.js.map +1 -1
- package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
- package/dist/components/dataDisplay/personChip/personChip.js +12 -10
- package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
- package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
- package/dist/components/dataDisplay/stat/stat.js +41 -43
- package/dist/components/dataDisplay/stat/stat.js.map +1 -1
- package/dist/components/dataDisplay/table/table.d.ts +10 -1
- package/dist/components/dataDisplay/table/table.js +46 -22
- package/dist/components/dataDisplay/table/table.js.map +1 -1
- package/dist/components/dataDisplay/table/tableBody.js +25 -12
- package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
- package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
- package/dist/components/dataDisplay/table/tableCell.js +15 -14
- package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableColumns.d.ts +146 -0
- package/dist/components/dataDisplay/table/tableColumns.js +254 -0
- package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
- package/dist/components/dataDisplay/table/tableEntities.d.ts +4 -0
- package/dist/components/dataDisplay/table/tableEntities.js +6 -0
- package/dist/components/dataDisplay/table/tableEntities.js.map +1 -0
- package/dist/components/dataDisplay/table/tableHead.js +29 -11
- package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
- package/dist/components/dataDisplay/table/tableHeadCell.d.ts +23 -1
- package/dist/components/dataDisplay/table/tableHeadCell.js +51 -26
- package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/components/dataDisplay/table/tableHtmlText.d.ts +8 -0
- package/dist/components/dataDisplay/table/tableHtmlText.js +121 -0
- package/dist/components/dataDisplay/table/tableHtmlText.js.map +1 -0
- package/dist/components/dataDisplay/table/tableRow.d.ts +2 -0
- package/dist/components/dataDisplay/table/tableRow.js +28 -13
- package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
- package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
- package/dist/components/dataDisplay/thumbCard/thumbCard.js +86 -58
- package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
- package/dist/components/dataDisplay/treeView/treeView.js +4 -2
- package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/components/dataDisplay/typography/typography.js +22 -26
- package/dist/components/dataDisplay/typography/typography.js.map +1 -1
- package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
- package/dist/components/feedBack/emptyState/emptyState.js +20 -16
- package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
- package/dist/components/feedBack/message/message.d.ts +2 -0
- package/dist/components/feedBack/message/message.js +17 -13
- package/dist/components/feedBack/message/message.js.map +1 -1
- package/dist/components/feedBack/modal/modal.js +20 -16
- package/dist/components/feedBack/modal/modal.js.map +1 -1
- package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
- package/dist/components/feedBack/skeleton/skeleton.js +43 -35
- package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/components/feedBack/snackbar/snackbar.js +24 -20
- package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
- package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
- package/dist/components/feedBack/tooltip/tooltip.js +65 -41
- package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/components/inputs/button/button.d.ts +2 -0
- package/dist/components/inputs/button/button.js +48 -20
- package/dist/components/inputs/button/button.js.map +1 -1
- package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
- package/dist/components/inputs/buttonGroups/buttonGroup.js +14 -10
- package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
- package/dist/components/inputs/checkbox/checkbox.js +59 -36
- package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/components/inputs/datePicker/datePicker.js +108 -97
- package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerActionLabel.js +19 -17
- package/dist/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerDay.js +41 -25
- package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
- package/dist/components/inputs/datePicker/datePickerIconButton.js +24 -14
- package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/components/inputs/floatingButton/floatingButton.js +26 -16
- package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
- package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
- package/dist/components/inputs/radioButton/radioButton.js +48 -34
- package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/components/inputs/rating/rating.d.ts +9 -0
- package/dist/components/inputs/rating/rating.js +74 -53
- package/dist/components/inputs/rating/rating.js.map +1 -1
- package/dist/components/inputs/selectField/dropdownMenu.d.ts +21 -1
- package/dist/components/inputs/selectField/dropdownMenu.js +268 -143
- package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
- package/dist/components/inputs/selectField/optionNavigation.js +37 -0
- package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
- package/dist/components/inputs/selectField/selectField.d.ts +32 -1
- package/dist/components/inputs/selectField/selectField.js +297 -126
- package/dist/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/components/inputs/slider/slider.d.ts +25 -3
- package/dist/components/inputs/slider/slider.js +320 -197
- package/dist/components/inputs/slider/slider.js.map +1 -1
- package/dist/components/inputs/textField/textField.d.ts +9 -1
- package/dist/components/inputs/textField/textField.js +104 -51
- package/dist/components/inputs/textField/textField.js.map +1 -1
- package/dist/components/inputs/textField/textFieldWrapper.d.ts +14 -0
- package/dist/components/inputs/textField/textFieldWrapper.js +52 -45
- package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/components/inputs/timePicker/timePicker.js +73 -62
- package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/components/inputs/toggle/toggle.d.ts +4 -0
- package/dist/components/inputs/toggle/toggle.js +43 -31
- package/dist/components/inputs/toggle/toggle.js.map +1 -1
- package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
- package/dist/components/inputs/valueSlider/valueSlider.js +32 -27
- package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
- package/dist/components/layout/appLayout/appLayout.js +32 -30
- package/dist/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/components/layout/divider/divider.d.ts +2 -0
- package/dist/components/layout/divider/divider.js +22 -20
- package/dist/components/layout/divider/divider.js.map +1 -1
- package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
- package/dist/components/layout/floatingWindow/floatingWindow.js +171 -168
- package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/components/layout/grid/grid.d.ts +8 -0
- package/dist/components/layout/grid/grid.js +52 -44
- package/dist/components/layout/grid/grid.js.map +1 -1
- package/dist/components/layout/page/page.d.ts +2 -0
- package/dist/components/layout/page/page.js +14 -12
- package/dist/components/layout/page/page.js.map +1 -1
- package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
- package/dist/components/layout/pageHeader/pageHeader.js +23 -21
- package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
- package/dist/components/layout/sectionHeader/sectionHeader.js +38 -36
- package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
- package/dist/components/layout/sheet/sheet.d.ts +2 -0
- package/dist/components/layout/sheet/sheet.js +50 -48
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/stack/stack.d.ts +2 -0
- package/dist/components/layout/stack/stack.js +26 -24
- package/dist/components/layout/stack/stack.js.map +1 -1
- package/dist/components/navigation/appBar/appBar.d.ts +2 -0
- package/dist/components/navigation/appBar/appBar.js +18 -16
- package/dist/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/components/navigation/bottomBar/bottomBar.js +125 -120
- package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js +18 -14
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/navigation/menu/menu.d.ts +6 -0
- package/dist/components/navigation/menu/menu.js.map +1 -1
- package/dist/components/navigation/menu/menuComponent.js +12 -23
- package/dist/components/navigation/menu/menuComponent.js.map +1 -1
- package/dist/components/navigation/menu/menuContext.d.ts +2 -0
- package/dist/components/navigation/menu/menuContext.js.map +1 -1
- package/dist/components/navigation/menu/menuFloating.js +54 -46
- package/dist/components/navigation/menu/menuFloating.js.map +1 -1
- package/dist/components/navigation/menu/menuItem.d.ts +4 -0
- package/dist/components/navigation/menu/menuItem.js +58 -33
- package/dist/components/navigation/menu/menuItem.js.map +1 -1
- package/dist/components/navigation/menu/menuList.d.ts +4 -0
- package/dist/components/navigation/menu/menuList.js +34 -16
- package/dist/components/navigation/menu/menuList.js.map +1 -1
- package/dist/components/navigation/menu/menuSubmenu.d.ts +8 -1
- package/dist/components/navigation/menu/menuSubmenu.js +58 -38
- package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
- package/dist/components/navigation/pagination/pagination.d.ts +2 -0
- package/dist/components/navigation/pagination/pagination.js +28 -24
- package/dist/components/navigation/pagination/pagination.js.map +1 -1
- package/dist/components/navigation/sidebar/sidebar.js +27 -25
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/components/navigation/stepper/stepper.d.ts +2 -0
- package/dist/components/navigation/stepper/stepper.js +46 -42
- package/dist/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/components/navigation/tabs/tab/tab.js +46 -35
- package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/components/navigation/tabs/tabs.d.ts +7 -0
- package/dist/components/navigation/tabs/tabs.js +90 -75
- package/dist/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/components/navigation/tabs/tabsContext.d.ts +6 -4
- package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
- package/dist/connects/rt/table/table.d.ts +16 -1
- package/dist/headless/components/base/animateHeight/animateHeight.js +41 -42
- package/dist/headless/components/base/animateHeight/animateHeight.js.map +1 -1
- package/dist/headless/components/base/icon/icon.js +40 -40
- package/dist/headless/components/base/icon/icon.js.map +1 -1
- package/dist/headless/components/base/ripple/ripple.js +46 -34
- package/dist/headless/components/base/ripple/ripple.js.map +1 -1
- package/dist/headless/components/dataDisplay/avatar/avatar.js +37 -33
- package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
- package/dist/headless/components/dataDisplay/card/card.js +44 -31
- package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
- package/dist/headless/components/dataDisplay/carousel/carousel.js +102 -98
- package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatIconButton.js +23 -13
- package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatLayout.js +33 -29
- package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
- package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
- package/dist/headless/components/dataDisplay/chip/chip.js +104 -63
- package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +44 -39
- package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
- package/dist/headless/components/dataDisplay/dagView/dagLayout.js +284 -0
- package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
- package/dist/headless/components/dataDisplay/dagView/dagView.js +486 -0
- package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
- package/dist/headless/components/dataDisplay/dagView/panZoom.js +161 -0
- package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +15 -19
- package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/headless/components/dataDisplay/kanban/kanban.js +71 -61
- package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +14 -12
- package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
- package/dist/headless/components/dataDisplay/list/list.js +16 -12
- package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
- package/dist/headless/components/dataDisplay/list/listItem.js +20 -18
- package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
- package/dist/headless/components/dataDisplay/meter/meter.js +14 -12
- package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
- package/dist/headless/components/dataDisplay/personChip/personChip.js +12 -10
- package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
- package/dist/headless/components/dataDisplay/stat/stat.js +43 -45
- package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/table.js +47 -23
- package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableBody.js +25 -12
- package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableCell.js +15 -14
- package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableColumns.js +254 -0
- package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableEntities.js +6 -0
- package/dist/headless/components/dataDisplay/table/tableEntities.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableHead.js +29 -11
- package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js +51 -26
- package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
- package/dist/headless/components/dataDisplay/table/tableHtmlText.js +121 -0
- package/dist/headless/components/dataDisplay/table/tableHtmlText.js.map +1 -0
- package/dist/headless/components/dataDisplay/table/tableRow.js +28 -13
- package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +86 -58
- package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
- package/dist/headless/components/dataDisplay/treeView/treeView.js +4 -2
- package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/headless/components/dataDisplay/typography/typography.js +21 -25
- package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
- package/dist/headless/components/feedBack/emptyState/emptyState.js +9 -5
- package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
- package/dist/headless/components/feedBack/message/message.js +17 -13
- package/dist/headless/components/feedBack/message/message.js.map +1 -1
- package/dist/headless/components/feedBack/modal/modal.js +20 -16
- package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
- package/dist/headless/components/feedBack/skeleton/skeleton.js +43 -35
- package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
- package/dist/headless/components/feedBack/snackbar/snackbar.js +30 -26
- package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
- package/dist/headless/components/feedBack/tooltip/tooltip.js +63 -39
- package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
- package/dist/headless/components/inputs/button/button.js +51 -23
- package/dist/headless/components/inputs/button/button.js.map +1 -1
- package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +22 -18
- package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
- package/dist/headless/components/inputs/checkbox/checkbox.js +59 -36
- package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePicker.js +106 -95
- package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js +19 -17
- package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerDay.js +41 -25
- package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +24 -14
- package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/headless/components/inputs/floatingButton/floatingButton.js +25 -15
- package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
- package/dist/headless/components/inputs/radioButton/radioButton.js +48 -34
- package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
- package/dist/headless/components/inputs/rating/rating.js +74 -53
- package/dist/headless/components/inputs/rating/rating.js.map +1 -1
- package/dist/headless/components/inputs/selectField/dropdownMenu.js +268 -143
- package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/headless/components/inputs/selectField/optionNavigation.js +37 -0
- package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
- package/dist/headless/components/inputs/selectField/selectField.js +297 -126
- package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
- package/dist/headless/components/inputs/slider/slider.js +320 -197
- package/dist/headless/components/inputs/slider/slider.js.map +1 -1
- package/dist/headless/components/inputs/textField/textField.js +104 -51
- package/dist/headless/components/inputs/textField/textField.js.map +1 -1
- package/dist/headless/components/inputs/textField/textFieldWrapper.js +52 -45
- package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
- package/dist/headless/components/inputs/timePicker/timePicker.js +74 -63
- package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/headless/components/inputs/toggle/toggle.js +42 -30
- package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
- package/dist/headless/components/inputs/valueSlider/valueSlider.js +33 -28
- package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
- package/dist/headless/components/layout/appLayout/appLayout.js +29 -27
- package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
- package/dist/headless/components/layout/divider/divider.js +19 -17
- package/dist/headless/components/layout/divider/divider.js.map +1 -1
- package/dist/headless/components/layout/floatingWindow/floatingWindow.js +185 -182
- package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
- package/dist/headless/components/layout/grid/grid.js +54 -46
- package/dist/headless/components/layout/grid/grid.js.map +1 -1
- package/dist/headless/components/layout/page/page.js +12 -10
- package/dist/headless/components/layout/page/page.js.map +1 -1
- package/dist/headless/components/layout/pageHeader/pageHeader.js +22 -20
- package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js +39 -37
- package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
- package/dist/headless/components/layout/sheet/sheet.js +50 -48
- package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
- package/dist/headless/components/layout/stack/stack.js +23 -21
- package/dist/headless/components/layout/stack/stack.js.map +1 -1
- package/dist/headless/components/navigation/appBar/appBar.js +15 -13
- package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/headless/components/navigation/bottomBar/bottomBar.js +125 -120
- package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
- package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +13 -9
- package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/headless/components/navigation/menu/menu.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuComponent.js +12 -23
- package/dist/headless/components/navigation/menu/menuComponent.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuFloating.js +54 -46
- package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuItem.js +58 -33
- package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuList.js +34 -16
- package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
- package/dist/headless/components/navigation/menu/menuSubmenu.js +58 -38
- package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
- package/dist/headless/components/navigation/pagination/pagination.js +23 -19
- package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
- package/dist/headless/components/navigation/sidebar/sidebar.js +14 -12
- package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/components/navigation/stepper/stepper.js +38 -34
- package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tab/tab.js +48 -37
- package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabs.js +91 -76
- package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -1
- package/dist/headless/index.js +224 -220
- package/dist/headless/index.js.map +1 -1
- package/dist/headless/primitives/createCssTransition.js +31 -28
- package/dist/headless/primitives/createCssTransition.js.map +1 -1
- package/dist/headless/primitives/createDismissOnEscape.js +14 -0
- package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
- package/dist/headless/primitives/createFocusTrap.js +1 -0
- package/dist/headless/primitives/createFocusTrap.js.map +1 -1
- package/dist/headless/primitives/createHelperText.js +14 -0
- package/dist/headless/primitives/createHelperText.js.map +1 -0
- package/dist/headless/primitives/mergeStyle.js +9 -0
- package/dist/headless/primitives/mergeStyle.js.map +1 -0
- package/dist/headless/primitives/overlayLayer.js +14 -7
- package/dist/headless/primitives/overlayLayer.js.map +1 -1
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
- package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
- package/dist/headless/source/components/base/icon/icon.jsx +10 -12
- package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
- package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
- package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
- package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
- package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
- package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
- package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
- package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
- package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
- package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
- package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
- package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
- package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +639 -0
- package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
- package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
- package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
- package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
- package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
- package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
- package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
- package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx +11 -10
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
- package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
- package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
- package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
- package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
- package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
- package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
- package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
- package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
- package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
- package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
- package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
- package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
- package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +9 -2
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
- package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
- package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
- package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/modal/modal.jsx +5 -2
- package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
- package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
- package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
- package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/headless/source/components/inputs/button/button.jsx +8 -3
- package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
- package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
- package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
- package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
- package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
- package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
- package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
- package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
- package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
- package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
- package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
- package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
- package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
- package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
- package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
- package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
- package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
- package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
- package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
- package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
- package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
- package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
- package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
- package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
- package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
- package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
- package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
- package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
- package/dist/headless/source/components/layout/page/page.jsx +10 -2
- package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
- package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
- package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
- package/dist/headless/source/components/layout/sheet/sheet.jsx +6 -8
- package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
- package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/headless/source/components/navigation/appBar/appBar.jsx +3 -2
- package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
- package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
- package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
- package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
- package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
- package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
- package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
- package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
- package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
- package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +1 -1
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
- package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +12 -16
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabs.jsx +34 -10
- package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
- package/dist/headless/source/connects/rt/table/table.jsx +7 -2
- package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
- package/dist/headless/source/index.js +3 -0
- package/dist/headless/source/index.js.map +2 -2
- package/dist/headless/source/primitives/createCssTransition.js +10 -1
- package/dist/headless/source/primitives/createCssTransition.js.map +2 -2
- package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
- package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
- package/dist/headless/source/primitives/createFocusTrap.js +1 -0
- package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
- package/dist/headless/source/primitives/createHelperText.js +16 -0
- package/dist/headless/source/primitives/createHelperText.js.map +7 -0
- package/dist/headless/source/primitives/mergeStyle.js +15 -0
- package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
- package/dist/headless/source/primitives/overlayLayer.js +10 -2
- package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
- package/dist/headless/source/utils/controlProps.js +22 -0
- package/dist/headless/source/utils/controlProps.js.map +7 -0
- package/dist/headless/source/utils/ownClick.js +41 -0
- package/dist/headless/source/utils/ownClick.js.map +7 -0
- package/dist/headless/utils/controlProps.js +20 -0
- package/dist/headless/utils/controlProps.js.map +1 -0
- package/dist/headless/utils/ownClick.js +39 -0
- package/dist/headless/utils/ownClick.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +224 -220
- package/dist/index.js.map +1 -1
- package/dist/primitives/createCssTransition.d.ts +6 -0
- package/dist/primitives/createCssTransition.js +31 -28
- package/dist/primitives/createCssTransition.js.map +1 -1
- package/dist/primitives/createDismissOnEscape.d.ts +12 -0
- package/dist/primitives/createDismissOnEscape.js +14 -0
- package/dist/primitives/createDismissOnEscape.js.map +1 -0
- package/dist/primitives/createFocusTrap.d.ts +2 -0
- package/dist/primitives/createFocusTrap.js +1 -0
- package/dist/primitives/createFocusTrap.js.map +1 -1
- package/dist/primitives/createHelperText.d.ts +26 -0
- package/dist/primitives/createHelperText.js +14 -0
- package/dist/primitives/createHelperText.js.map +1 -0
- package/dist/primitives/mergeStyle.d.ts +19 -0
- package/dist/primitives/mergeStyle.js +9 -0
- package/dist/primitives/mergeStyle.js.map +1 -0
- package/dist/primitives/overlayLayer.d.ts +15 -3
- package/dist/primitives/overlayLayer.js +14 -7
- package/dist/primitives/overlayLayer.js.map +1 -1
- package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
- package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
- package/dist/source/components/base/icon/icon.jsx +10 -12
- package/dist/source/components/base/icon/icon.jsx.map +1 -1
- package/dist/source/components/base/ripple/ripple.jsx +16 -4
- package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
- package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
- package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
- package/dist/source/components/dataDisplay/card/card.jsx +31 -12
- package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
- package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
- package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
- package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
- package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
- package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
- package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
- package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
- package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
- package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
- package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
- package/dist/source/components/dataDisplay/dagView/dagView.jsx +641 -0
- package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
- package/dist/source/components/dataDisplay/dagView/index.js +10 -0
- package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
- package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
- package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
- package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
- package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
- package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
- package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
- package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
- package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
- package/dist/source/components/dataDisplay/list/list.jsx +3 -3
- package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
- package/dist/source/components/dataDisplay/list/listItem.jsx +11 -10
- package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
- package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
- package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
- package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
- package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
- package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
- package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/table.jsx +18 -1
- package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
- package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
- package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
- package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
- package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
- package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
- package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
- package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
- package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
- package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
- package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
- package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
- package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
- package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
- package/dist/source/components/dataDisplay/treeView/treeView.jsx +9 -2
- package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
- package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
- package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
- package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
- package/dist/source/components/feedBack/message/message.jsx +5 -4
- package/dist/source/components/feedBack/message/message.jsx.map +1 -1
- package/dist/source/components/feedBack/modal/modal.jsx +5 -2
- package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
- package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
- package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
- package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
- package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
- package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
- package/dist/source/components/inputs/button/button.jsx +8 -3
- package/dist/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
- package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
- package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
- package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
- package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
- package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
- package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
- package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
- package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
- package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
- package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
- package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
- package/dist/source/components/inputs/rating/rating.jsx +49 -20
- package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
- package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
- package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
- package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
- package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
- package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
- package/dist/source/components/inputs/slider/slider.jsx +89 -18
- package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textField.jsx +47 -9
- package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
- package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
- package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
- package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
- package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
- package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
- package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
- package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
- package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
- package/dist/source/components/layout/divider/divider.jsx +6 -5
- package/dist/source/components/layout/divider/divider.jsx.map +1 -1
- package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
- package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
- package/dist/source/components/layout/grid/grid.jsx +20 -8
- package/dist/source/components/layout/grid/grid.jsx.map +1 -1
- package/dist/source/components/layout/page/page.jsx +10 -2
- package/dist/source/components/layout/page/page.jsx.map +1 -1
- package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
- package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
- package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
- package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
- package/dist/source/components/layout/sheet/sheet.jsx +6 -8
- package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/source/components/layout/stack/stack.jsx +15 -11
- package/dist/source/components/layout/stack/stack.jsx.map +1 -1
- package/dist/source/components/navigation/appBar/appBar.jsx +3 -2
- package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
- package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
- package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
- package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
- package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
- package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
- package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuList.jsx +19 -7
- package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
- package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
- package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
- package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
- package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
- package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -1
- package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
- package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tab/tab.jsx +12 -16
- package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabs.jsx +34 -10
- package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
- package/dist/source/connects/rt/table/table.jsx +7 -2
- package/dist/source/connects/rt/table/table.jsx.map +1 -1
- package/dist/source/index.js +3 -0
- package/dist/source/index.js.map +2 -2
- package/dist/source/primitives/createCssTransition.js +10 -1
- package/dist/source/primitives/createCssTransition.js.map +2 -2
- package/dist/source/primitives/createDismissOnEscape.js +17 -0
- package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
- package/dist/source/primitives/createFocusTrap.js +1 -0
- package/dist/source/primitives/createFocusTrap.js.map +2 -2
- package/dist/source/primitives/createHelperText.js +16 -0
- package/dist/source/primitives/createHelperText.js.map +7 -0
- package/dist/source/primitives/mergeStyle.js +15 -0
- package/dist/source/primitives/mergeStyle.js.map +7 -0
- package/dist/source/primitives/overlayLayer.js +10 -2
- package/dist/source/primitives/overlayLayer.js.map +2 -2
- package/dist/source/utils/controlProps.js +22 -0
- package/dist/source/utils/controlProps.js.map +7 -0
- package/dist/source/utils/ownClick.js +41 -0
- package/dist/source/utils/ownClick.js.map +7 -0
- package/dist/utils/controlProps.d.ts +17 -0
- package/dist/utils/controlProps.js +20 -0
- package/dist/utils/controlProps.js.map +1 -0
- package/dist/utils/ownClick.d.ts +16 -0
- package/dist/utils/ownClick.js +39 -0
- package/dist/utils/ownClick.js.map +1 -0
- package/package.json +9 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expansionPanel.js","sources":["../../../../../src/components/dataDisplay/expansionPanel/expansionPanel.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Button } from \"../../inputs/button\";\nimport { Icon } from \"../../base/icon\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type ExpansionMode = \"tile\" | \"row\" | \"fullscreen\";\n\nexport interface ExpansionPanelLabels {\n expandRow?: string;\n collapseRow?: string;\n expandFullscreen?: string;\n closeFullscreen?: string;\n placeholder?: string;\n placeholderClose?: string;\n}\n\nexport interface ExpansionPanelRenderContext {\n mode: ExpansionMode;\n isFullscreen: boolean;\n isFullRow: boolean;\n}\n\nexport interface ExpansionPanelControlsContext extends ExpansionPanelRenderContext {\n setMode: (next: ExpansionMode | ((current: ExpansionMode) => ExpansionMode)) => void;\n toggleRow: () => void;\n openFullscreen: () => void;\n closeFullscreen: () => void;\n labels: Required<ExpansionPanelLabels>;\n}\n\ntype ExpansionPanelChildren = JSX.Element | ((ctx: ExpansionPanelRenderContext) => JSX.Element);\ntype ExpansionPanelControls = JSX.Element | ((ctx: ExpansionPanelControlsContext) => JSX.Element);\n\nexport interface ExpansionPanelProps {\n class?: string;\n header?: JSX.Element;\n mode?: ExpansionMode;\n defaultMode?: ExpansionMode;\n onModeChange?: (mode: ExpansionMode) => void;\n disableExpand?: boolean;\n noControls?: boolean;\n renderControls?: ExpansionPanelControls;\n closeOnOutsideClick?: boolean;\n closeOnEsc?: boolean;\n labels?: ExpansionPanelLabels;\n children?: ExpansionPanelChildren;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst DEFAULT_LABELS: Required<ExpansionPanelLabels> = {\n expandRow: \"Expand to full row\",\n collapseRow: \"Collapse to grid\",\n expandFullscreen: \"Expand to fullscreen\",\n closeFullscreen: \"Close fullscreen\",\n placeholder: \"Panel is open in fullscreen\",\n placeholderClose: \"Close\",\n};\n\nexport function ExpansionPanel(props: ExpansionPanelProps): JSX.Element {\n const merged = mergeProps(\n { defaultMode: \"tile\" as ExpansionMode, disableExpand: false, noControls: false, closeOnOutsideClick: true, closeOnEsc: true },\n props\n );\n const [local] = splitProps(merged, [\n \"class\",\n \"header\",\n \"mode\",\n \"defaultMode\",\n \"onModeChange\",\n \"disableExpand\",\n \"noControls\",\n \"renderControls\",\n \"closeOnOutsideClick\",\n \"closeOnEsc\",\n \"labels\",\n \"children\",\n \"ref\",\n ]);\n\n const [mode, setMode] = createControllableState<ExpansionMode>({\n value: () => local.mode,\n defaultValue: local.defaultMode,\n onChange: (next) => local.onModeChange?.(next),\n });\n\n const labels = (): Required<ExpansionPanelLabels> => ({ ...DEFAULT_LABELS, ...local.labels });\n const effectiveMode = (): ExpansionMode => (local.disableExpand ? \"tile\" : mode());\n const isFullRow = (): boolean => effectiveMode() === \"row\";\n const isFullscreen = (): boolean => effectiveMode() === \"fullscreen\";\n\n const toggleRow = (): void => setMode((current) => (current === \"row\" ? \"tile\" : \"row\"));\n const openFullscreen = (): void => setMode(\"fullscreen\");\n const closeFullscreen = (): void => setMode(\"tile\");\n\n const controlsContext = (overlay: boolean): ExpansionPanelControlsContext => ({\n mode: effectiveMode(),\n isFullscreen: overlay,\n isFullRow: overlay ? false : isFullRow(),\n setMode,\n toggleRow,\n openFullscreen,\n closeFullscreen,\n labels: labels(),\n });\n\n const renderChildren = (overlay: boolean): JSX.Element => {\n const ctx: ExpansionPanelRenderContext = { mode: effectiveMode(), isFullscreen: overlay, isFullRow: overlay ? false : isFullRow() };\n return typeof local.children === \"function\" ? local.children(ctx) : local.children;\n };\n\n const defaultControls = (overlay: boolean): JSX.Element => {\n if (overlay) {\n return (\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={labels().closeFullscreen}\n title={labels().closeFullscreen}\n onClick={closeFullscreen}\n data-testid=\"expansion-panel-close\"\n icon={<Icon name=\"close\" size={18} />}\n />\n );\n }\n return (\n <>\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-pressed={isFullRow()}\n aria-label={isFullRow() ? labels().collapseRow : labels().expandRow}\n title={isFullRow() ? labels().collapseRow : labels().expandRow}\n onClick={toggleRow}\n data-testid=\"expansion-panel-row\"\n icon={<Icon name={isFullRow() ? \"grid_view\" : \"table_rows\"} size={18} />}\n />\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={labels().expandFullscreen}\n title={labels().expandFullscreen}\n onClick={openFullscreen}\n data-testid=\"expansion-panel-fullscreen\"\n icon={<Icon name=\"open_in_full\" size={18} />}\n />\n </>\n );\n };\n\n const controlBar = (overlay: boolean): JSX.Element => {\n if (local.disableExpand || local.noControls) return null;\n const content = local.renderControls\n ? typeof local.renderControls === \"function\"\n ? local.renderControls(controlsContext(overlay))\n : local.renderControls\n : defaultControls(overlay);\n return <Show when={content}>{(c) => <div class=\"smwb-expansion-panel__controls\">{c() as JSX.Element}</div>}</Show>;\n };\n\n // Lock body scroll while fullscreen.\n createEffect(() => {\n if (!isFullscreen()) return;\n const prev = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n onCleanup(() => {\n document.body.style.overflow = prev;\n });\n });\n\n // Escape closes fullscreen.\n createEffect(() => {\n if (!isFullscreen() || !local.closeOnEsc) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") setMode(\"tile\");\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n const card = (): JSX.Element => (\n <div\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-expansion-panel\", { \"smwb-expansion-panel_row\": isFullRow() }, local.class)}\n data-testid=\"expansion-panel\"\n >\n <div class=\"smwb-expansion-panel__head\">\n <div class=\"smwb-expansion-panel__header\">{local.header}</div>\n {controlBar(false)}\n </div>\n <div class=\"smwb-expansion-panel__body\">{renderChildren(false)}</div>\n </div>\n );\n\n return (\n <Show when={isFullscreen()} fallback={card()}>\n <>\n <div class=\"smwb-expansion-panel__placeholder\" data-testid=\"expansion-panel-placeholder\">\n <span>{labels().placeholder}</span>\n <Button type=\"button\" variant=\"outlined\" size=\"small\" label={labels().placeholderClose} onClick={() => setMode(\"tile\")} />\n </div>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n class=\"smwb-expansion-panel__overlay smwb-dark\"\n role=\"dialog\"\n aria-modal=\"true\"\n data-testid=\"expansion-panel-overlay\"\n onClick={\n local.closeOnOutsideClick\n ? (event) => {\n if (event.target === event.currentTarget) setMode(\"tile\");\n }\n : undefined\n }\n >\n <div class=\"smwb-expansion-panel__dialog\">\n <div class=\"smwb-expansion-panel__head\">\n <div class=\"smwb-expansion-panel__header\">{local.header}</div>\n {controlBar(true)}\n </div>\n <div class=\"smwb-expansion-panel__body smwb-expansion-panel__body_fullscreen\">{renderChildren(true)}</div>\n </div>\n </div>\n </Portal>\n </>\n </Show>\n );\n}\n\nexport default ExpansionPanel;\n"],"names":["DEFAULT_LABELS","expandRow","collapseRow","expandFullscreen","closeFullscreen","placeholder","placeholderClose","ExpansionPanel","props","merged","mergeProps","defaultMode","disableExpand","noControls","closeOnOutsideClick","closeOnEsc","local","splitProps","mode","setMode","createControllableState","value","defaultValue","onChange","next","onModeChange","labels","effectiveMode","isFullRow","isFullscreen","toggleRow","current","openFullscreen","controlsContext","overlay","renderChildren","ctx","children","defaultControls","_$createComponent","Button","type","variant","size","title","onClick","icon","Icon","name","_$memo","controlBar","content","renderControls","Show","when","c","_el$","_tmpl$","_$insert","createEffect","prev","document","body","style","overflow","onCleanup","onKeyDown","event","key","addEventListener","removeEventListener","card","_el$2","_tmpl$2","_el$3","firstChild","_el$4","_el$5","nextSibling","_ref$","mergeRefs","ref","_$use","header","_$effect","_$className","cn","class","fallback","_el$6","_tmpl$3","_el$7","label","Portal","mount","isServer","undefined","_el$8","_tmpl$4","_el$9","_el$0","_el$1","_el$10","_$addEventListener","target","currentTarget","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expansionPanel.js","sources":["../../../../../src/components/dataDisplay/expansionPanel/expansionPanel.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, mergeProps, on, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Button } from \"../../inputs/button\";\nimport { Icon } from \"../../base/icon\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { FOCUSABLE } from \"../../../primitives/createFocusTrap\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { hasOverlayLayerAbove } from \"../../../primitives/overlayLayer\";\n\nexport type ExpansionMode = \"tile\" | \"row\" | \"fullscreen\";\n\nexport interface ExpansionPanelLabels {\n expandRow?: string;\n collapseRow?: string;\n expandFullscreen?: string;\n closeFullscreen?: string;\n placeholder?: string;\n placeholderClose?: string;\n}\n\nexport interface ExpansionPanelRenderContext {\n mode: ExpansionMode;\n isFullscreen: boolean;\n isFullRow: boolean;\n}\n\nexport interface ExpansionPanelControlsContext extends ExpansionPanelRenderContext {\n setMode: (next: ExpansionMode | ((current: ExpansionMode) => ExpansionMode)) => void;\n toggleRow: () => void;\n openFullscreen: () => void;\n closeFullscreen: () => void;\n labels: Required<ExpansionPanelLabels>;\n}\n\ntype ExpansionPanelChildren = JSX.Element | ((ctx: ExpansionPanelRenderContext) => JSX.Element);\ntype ExpansionPanelControls = JSX.Element | ((ctx: ExpansionPanelControlsContext) => JSX.Element);\n\nexport interface ExpansionPanelProps {\n class?: string;\n header?: JSX.Element;\n mode?: ExpansionMode;\n defaultMode?: ExpansionMode;\n onModeChange?: (mode: ExpansionMode) => void;\n disableExpand?: boolean;\n noControls?: boolean;\n renderControls?: ExpansionPanelControls;\n closeOnOutsideClick?: boolean;\n closeOnEsc?: boolean;\n labels?: ExpansionPanelLabels;\n children?: ExpansionPanelChildren;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst DEFAULT_LABELS: Required<ExpansionPanelLabels> = {\n expandRow: \"Expand to full row\",\n collapseRow: \"Collapse to grid\",\n expandFullscreen: \"Expand to fullscreen\",\n closeFullscreen: \"Close fullscreen\",\n placeholder: \"Panel is open in fullscreen\",\n placeholderClose: \"Close\",\n};\n\n/** Focuses the first of `targets` that is in the document and takes focus. */\nconst focusFirst = (targets: Array<Element | null | undefined>): void => {\n for (const target of targets) {\n if (!(target instanceof HTMLElement) || !target.isConnected) continue;\n target.focus();\n if ((target.getRootNode() as Document | ShadowRoot).activeElement === target) return;\n }\n};\n\n/** The elements in `container` that Tab can reach, in document order. */\nconst tabbables = (container: HTMLElement): HTMLElement[] =>\n Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE)).filter(\n // Older browsers (and jsdom) lack checkVisibility: count every match there.\n (el) => typeof el.checkVisibility !== \"function\" || el.checkVisibility({ visibilityProperty: true })\n );\n\nexport function ExpansionPanel(props: ExpansionPanelProps): JSX.Element {\n const merged = mergeProps(\n { defaultMode: \"tile\" as ExpansionMode, disableExpand: false, noControls: false, closeOnOutsideClick: true, closeOnEsc: true },\n props\n );\n const [local] = splitProps(merged, [\n \"class\",\n \"header\",\n \"mode\",\n \"defaultMode\",\n \"onModeChange\",\n \"disableExpand\",\n \"noControls\",\n \"renderControls\",\n \"closeOnOutsideClick\",\n \"closeOnEsc\",\n \"labels\",\n \"children\",\n \"ref\",\n ]);\n\n const [mode, setMode] = createControllableState<ExpansionMode>({\n value: () => local.mode,\n defaultValue: local.defaultMode,\n onChange: (next) => local.onModeChange?.(next),\n });\n\n const labels = (): Required<ExpansionPanelLabels> => ({ ...DEFAULT_LABELS, ...local.labels });\n const effectiveMode = (): ExpansionMode => (local.disableExpand ? \"tile\" : mode());\n const isFullRow = (): boolean => effectiveMode() === \"row\";\n const isFullscreen = (): boolean => effectiveMode() === \"fullscreen\";\n\n const toggleRow = (): void => setMode((current) => (current === \"row\" ? \"tile\" : \"row\"));\n const openFullscreen = (): void => setMode(\"fullscreen\");\n const closeFullscreen = (): void => setMode(\"tile\");\n\n // Always attached and checks `closeOnOutsideClick` itself. Solid binds event\n // handlers once, and the portal builds the overlay in a tracked scope, so\n // choosing the handler by that prop there would rebuild the overlay, content\n // included, whenever it changes.\n const onOverlayClick: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n if (local.closeOnOutsideClick && event.target === event.currentTarget) closeFullscreen();\n };\n\n const controlsContext = (overlay: boolean): ExpansionPanelControlsContext => ({\n mode: effectiveMode(),\n isFullscreen: overlay,\n isFullRow: overlay ? false : isFullRow(),\n setMode,\n toggleRow,\n openFullscreen,\n closeFullscreen,\n labels: labels(),\n });\n\n // Static markup is created anew on every read of the prop, so read it once, and\n // read the mode only for a render prop: static children then stay as they are\n // when the row is toggled, as in React.\n const renderChildren = (overlay: boolean): JSX.Element => {\n const children = local.children;\n if (typeof children !== \"function\") return children;\n return children({ mode: effectiveMode(), isFullscreen: overlay, isFullRow: overlay ? false : isFullRow() });\n };\n\n const defaultControls = (overlay: boolean): JSX.Element => {\n if (overlay) {\n return (\n <Button\n ref={(el) => (closeButtonEl = el)}\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={labels().closeFullscreen}\n title={labels().closeFullscreen}\n onClick={closeFullscreen}\n data-testid=\"expansion-panel-close\"\n icon={<Icon name=\"close\" size={18} />}\n />\n );\n }\n return (\n <>\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-pressed={isFullRow()}\n aria-label={isFullRow() ? labels().collapseRow : labels().expandRow}\n title={isFullRow() ? labels().collapseRow : labels().expandRow}\n onClick={toggleRow}\n data-testid=\"expansion-panel-row\"\n icon={<Icon name={isFullRow() ? \"grid_view\" : \"table_rows\"} size={18} />}\n />\n <Button\n ref={(el) => (fullscreenButtonEl = el)}\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={labels().expandFullscreen}\n title={labels().expandFullscreen}\n onClick={openFullscreen}\n data-testid=\"expansion-panel-fullscreen\"\n icon={<Icon name=\"open_in_full\" size={18} />}\n />\n </>\n );\n };\n\n const controlBar = (overlay: boolean): JSX.Element => {\n if (local.disableExpand || local.noControls) return null;\n const controls = local.renderControls;\n const content = controls\n ? typeof controls === \"function\"\n ? controls(controlsContext(overlay))\n : controls\n : defaultControls(overlay);\n return <Show when={content}>{(c) => <div class=\"smwb-expansion-panel__controls\">{c() as JSX.Element}</div>}</Show>;\n };\n\n // Lock body scroll while fullscreen.\n createEffect(() => {\n if (!isFullscreen()) return;\n const prev = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n onCleanup(() => {\n document.body.style.overflow = prev;\n });\n });\n\n let overlayEl: HTMLDivElement | undefined;\n\n // Escape closes fullscreen. An open layer above the overlay takes it first: a select\n // menu opened from the panel, even one rendered inside it (`menuContainer`).\n createEffect(() => {\n if (!isFullscreen() || !local.closeOnEsc) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n // An Escape handled inside the panel, e.g. by a menu closing on it, keeps fullscreen.\n if (event.key === \"Escape\" && !event.defaultPrevented && !hasOverlayLayerAbove(overlayEl)) {\n // Handled: a FloatingWindow, Modal or Sheet around the panel skips it. Focus goes\n // back into the tile, and their listener may come later in this dispatch.\n event.preventDefault();\n setMode(\"tile\");\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n let cardEl: HTMLDivElement | undefined;\n let fullscreenButtonEl: HTMLButtonElement | HTMLAnchorElement | undefined;\n let closeButtonEl: HTMLButtonElement | HTMLAnchorElement | undefined;\n // Where focus goes back to when fullscreen ends; see the effect below.\n let opener: Element | null = null;\n let lastFocused: Element | null = null;\n\n // The overlay and the card replace each other, so focus in the one that goes falls to\n // <body>: focus in the overlay when fullscreen ends, on the tile's button when it\n // begins. A FloatingWindow around the panel then misses the next Escape, as it takes\n // Escape only while focus is inside it. So when fullscreen ends with focus on <body>,\n // focus goes to the element focused last in the overlay if it survived into the tile,\n // else to what had focus when fullscreen began, else to the tile's fullscreen button,\n // else to the tile's first focusable element. Focus anywhere else is left alone.\n createEffect(\n on(isFullscreen, (fullscreen, wasFullscreen) => {\n const active = document.activeElement;\n if (fullscreen) {\n opener = active === document.body ? null : active;\n lastFocused = null;\n } else if (wasFullscreen && (!active || active === document.body)) {\n focusFirst([lastFocused, opener, fullscreenButtonEl, ...Array.from(cardEl?.querySelectorAll(FOCUSABLE) ?? [])]);\n }\n })\n );\n\n // Entering fullscreen removes the tile, so focus in it falls to <body>, behind an\n // `aria-modal` overlay: Tab goes to the page under it and a screen reader is left on\n // nothing. So when the overlay appears with focus on <body>, focus moves into it: to\n // its close button, else to its first focusable element, else to the overlay itself.\n // Focus elsewhere is left alone: on a control outside the panel that set a controlled\n // `mode`, or on an element in the overlay that focused itself.\n createEffect(() => {\n const overlay = overlayEl;\n const active = document.activeElement;\n if (!isFullscreen() || !overlay?.isConnected || (active && active !== document.body)) return;\n focusFirst([closeButtonEl, ...tabbables(overlay), overlay]);\n });\n\n // Tab stays in the overlay: it wraps at either end, and focus on <body> or on the page\n // under the overlay comes back into it. Tab works as usual in what was opened from the\n // panel: a layer above the overlay, or anything portaled after it (a menu, a picker\n // panel). A Tab handled already is left alone too.\n createEffect(() => {\n if (!isFullscreen()) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n const overlay = overlayEl;\n if (event.key !== \"Tab\" || event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return;\n if (!overlay?.isConnected) return;\n const items = tabbables(overlay);\n const first = items[0] ?? overlay;\n const last = items[items.length - 1] ?? overlay;\n const active = document.activeElement;\n let target: HTMLElement | undefined;\n if (active && active !== document.body && overlay.contains(active)) {\n if (event.shiftKey ? active === first || active === overlay : active === last) {\n target = event.shiftKey ? last : first;\n }\n } else if (\n !hasOverlayLayerAbove(overlay) &&\n (!active ||\n active === document.body ||\n overlay.compareDocumentPosition(active) & Node.DOCUMENT_POSITION_PRECEDING)\n ) {\n target = event.shiftKey ? last : first;\n }\n if (target) {\n event.preventDefault();\n target.focus();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n const card = (): JSX.Element => (\n <div\n ref={mergeRefs(local.ref, (el) => (cardEl = el))}\n class={cn(\"smwb-expansion-panel\", { \"smwb-expansion-panel_row\": isFullRow() }, local.class)}\n data-testid=\"expansion-panel\"\n >\n <div class=\"smwb-expansion-panel__head\">\n <div class=\"smwb-expansion-panel__header\">{local.header}</div>\n {controlBar(false)}\n </div>\n <div class=\"smwb-expansion-panel__body\">{renderChildren(false)}</div>\n </div>\n );\n\n return (\n <Show when={isFullscreen()} fallback={card()}>\n <>\n <div class=\"smwb-expansion-panel__placeholder\" data-testid=\"expansion-panel-placeholder\">\n <span>{labels().placeholder}</span>\n <Button type=\"button\" variant=\"outlined\" size=\"small\" label={labels().placeholderClose} onClick={() => setMode(\"tile\")} />\n </div>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n ref={(el) => (overlayEl = el)}\n class=\"smwb-expansion-panel__overlay smwb-dark\"\n data-smwb-overlay-layer\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-testid=\"expansion-panel-overlay\"\n onFocusIn={(event) => (lastFocused = event.target)}\n onClick={onOverlayClick}\n >\n <div class=\"smwb-expansion-panel__dialog\">\n <div class=\"smwb-expansion-panel__head\">\n <div class=\"smwb-expansion-panel__header\">{local.header}</div>\n {controlBar(true)}\n </div>\n <div class=\"smwb-expansion-panel__body smwb-expansion-panel__body_fullscreen\">{renderChildren(true)}</div>\n </div>\n </div>\n </Portal>\n </>\n </Show>\n );\n}\n\nexport default ExpansionPanel;\n"],"names":["DEFAULT_LABELS","expandRow","collapseRow","expandFullscreen","closeFullscreen","placeholder","placeholderClose","focusFirst","targets","target","HTMLElement","isConnected","focus","getRootNode","activeElement","tabbables","container","Array","from","querySelectorAll","FOCUSABLE","filter","el","checkVisibility","visibilityProperty","ExpansionPanel","props","merged","mergeProps","defaultMode","disableExpand","noControls","closeOnOutsideClick","closeOnEsc","local","splitProps","mode","setMode","createControllableState","value","defaultValue","onChange","next","onModeChange","labels","effectiveMode","isFullRow","isFullscreen","toggleRow","current","openFullscreen","onOverlayClick","event","currentTarget","controlsContext","overlay","renderChildren","children","defaultControls","_$createComponent","Button","ref","closeButtonEl","type","variant","size","title","onClick","icon","Icon","name","_$memo","fullscreenButtonEl","controlBar","controls","renderControls","content","Show","when","c","_el$","_tmpl$","_$insert","createEffect","prev","document","body","style","overflow","onCleanup","overlayEl","onKeyDown","key","defaultPrevented","hasOverlayLayerAbove","preventDefault","addEventListener","removeEventListener","cardEl","opener","lastFocused","on","fullscreen","wasFullscreen","active","altKey","ctrlKey","metaKey","items","first","last","length","contains","shiftKey","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","card","_el$2","_tmpl$2","_el$3","firstChild","_el$4","_el$5","nextSibling","_ref$","mergeRefs","_$use","header","_$effect","_$className","cn","class","fallback","_el$6","_tmpl$3","_el$7","label","Portal","mount","isServer","undefined","_el$8","_tmpl$4","_el$9","_el$0","_el$1","_el$10","$$click","$$focusin","_$delegateEvents"],"mappings":"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"}
|
|
@@ -1,131 +1,141 @@
|
|
|
1
|
-
import { use as g, spread as $, mergeProps as w, insert as
|
|
2
|
-
import { splitProps as k, mergeProps as x, children as b, Show as
|
|
1
|
+
import { use as g, spread as $, mergeProps as w, insert as n, createComponent as d, effect as K, setAttribute as h, memo as S, template as s } from "solid-js/web";
|
|
2
|
+
import { splitProps as k, mergeProps as x, children as b, Show as u, createUniqueId as A } from "solid-js";
|
|
3
3
|
import y from "clsx";
|
|
4
4
|
import { mergeRefs as v } from "../../../primitives/mergeRefs.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import { mergeStyle as C } from "../../../primitives/mergeStyle.js";
|
|
6
|
+
var I = /* @__PURE__ */ s("<div>"), W = /* @__PURE__ */ s("<span class=smwb-kanban__count>"), q = /* @__PURE__ */ s("<ul class=smwb-kanban__cards role=list>"), B = /* @__PURE__ */ s("<div class=smwb-kanban__column-footer>"), R = /* @__PURE__ */ s("<div role=group><div class=smwb-kanban__column-header><div class=smwb-kanban__column-title>"), U = /* @__PURE__ */ s("<div class=smwb-kanban__empty>"), j = /* @__PURE__ */ s("<div class=smwb-kanban__card-body>"), z = /* @__PURE__ */ s("<li>"), D = /* @__PURE__ */ s("<div class=smwb-kanban__card-title>"), E = /* @__PURE__ */ s("<a class=smwb-kanban__card-title>");
|
|
7
|
+
const F = (e) => typeof e == "number" ? `${e}px` : e, f = (e) => e != null && e !== !1 && e !== !0 && e !== "";
|
|
8
|
+
function O(e) {
|
|
9
|
+
const [t, a] = k(e, ["class", "style", "columnWidth", "children", "ref", "data-testid"]);
|
|
9
10
|
return (() => {
|
|
10
|
-
var c = I(),
|
|
11
|
-
return typeof
|
|
11
|
+
var c = I(), i = v(t.ref);
|
|
12
|
+
return typeof i == "function" && g(i, c), $(c, w({
|
|
13
|
+
get "data-testid"() {
|
|
14
|
+
return t["data-testid"] ?? "kanban";
|
|
15
|
+
}
|
|
16
|
+
}, a, {
|
|
12
17
|
get class() {
|
|
13
18
|
return y("smwb-kanban", t.class);
|
|
14
19
|
},
|
|
15
20
|
get style() {
|
|
16
|
-
return {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
21
|
+
return C(t.style, {
|
|
22
|
+
"--smwb-kanban-column-width": F(t.columnWidth)
|
|
23
|
+
});
|
|
20
24
|
}
|
|
21
|
-
}), !1, !0),
|
|
25
|
+
}), !1, !0), n(c, () => t.children), c;
|
|
22
26
|
})();
|
|
23
27
|
}
|
|
24
|
-
function
|
|
25
|
-
const [t,
|
|
28
|
+
function Q(e) {
|
|
29
|
+
const [t, a] = k(e, ["class", "style", "title", "count", "accent", "empty", "footer", "children", "ref", "data-testid"]), c = `${A()}-title`, i = b(() => t.children), _ = b(() => t.empty), o = b(() => t.footer), p = () => i.toArray().some(f);
|
|
26
30
|
return (() => {
|
|
27
|
-
var
|
|
28
|
-
return typeof P == "function" && g(P,
|
|
31
|
+
var r = R(), m = r.firstChild, L = m.firstChild, P = v(t.ref);
|
|
32
|
+
return typeof P == "function" && g(P, r), h(r, "aria-labelledby", c), $(r, w({
|
|
33
|
+
get "data-testid"() {
|
|
34
|
+
return t["data-testid"] ?? "kanban-column";
|
|
35
|
+
}
|
|
36
|
+
}, a, {
|
|
29
37
|
get class() {
|
|
30
38
|
return y("smwb-kanban__column", t.class);
|
|
31
39
|
},
|
|
32
40
|
get style() {
|
|
33
|
-
return {
|
|
34
|
-
...C(t.style),
|
|
41
|
+
return C(t.style, {
|
|
35
42
|
"--smwb-kanban-accent": t.accent
|
|
36
|
-
};
|
|
43
|
+
});
|
|
37
44
|
}
|
|
38
|
-
}), !1, !0), h(L, "id", c),
|
|
45
|
+
}), !1, !0), h(L, "id", c), n(L, () => t.title), n(m, d(u, {
|
|
39
46
|
get when() {
|
|
40
|
-
return
|
|
47
|
+
return S(() => t.count !== void 0)() && t.count !== null;
|
|
41
48
|
},
|
|
42
49
|
get children() {
|
|
43
|
-
var
|
|
44
|
-
return
|
|
50
|
+
var l = W();
|
|
51
|
+
return n(l, () => t.count), l;
|
|
45
52
|
}
|
|
46
|
-
}), null), r
|
|
53
|
+
}), null), n(r, d(u, {
|
|
47
54
|
get when() {
|
|
48
55
|
return p();
|
|
49
56
|
},
|
|
50
57
|
get fallback() {
|
|
51
|
-
return u
|
|
58
|
+
return d(u, {
|
|
52
59
|
get when() {
|
|
53
60
|
return f(_());
|
|
54
61
|
},
|
|
55
62
|
get children() {
|
|
56
|
-
var
|
|
57
|
-
return
|
|
63
|
+
var l = U();
|
|
64
|
+
return n(l, _), l;
|
|
58
65
|
}
|
|
59
66
|
});
|
|
60
67
|
},
|
|
61
68
|
get children() {
|
|
62
|
-
var
|
|
63
|
-
return
|
|
69
|
+
var l = q();
|
|
70
|
+
return n(l, i), l;
|
|
64
71
|
}
|
|
65
|
-
}), null), r
|
|
72
|
+
}), null), n(r, d(u, {
|
|
66
73
|
get when() {
|
|
67
|
-
return f(
|
|
74
|
+
return f(o());
|
|
68
75
|
},
|
|
69
76
|
get children() {
|
|
70
|
-
var
|
|
71
|
-
return
|
|
77
|
+
var l = B();
|
|
78
|
+
return n(l, o), l;
|
|
72
79
|
}
|
|
73
|
-
}), null),
|
|
80
|
+
}), null), r;
|
|
74
81
|
})();
|
|
75
82
|
}
|
|
76
|
-
function
|
|
83
|
+
function T(e) {
|
|
77
84
|
const t = x({
|
|
78
85
|
titleLines: 3
|
|
79
|
-
}, e), [
|
|
86
|
+
}, e), [a, c] = k(t, ["class", "style", "title", "href", "titleLines", "children", "ref", "data-testid"]), i = b(() => a.title), _ = b(() => a.children);
|
|
80
87
|
return (() => {
|
|
81
|
-
var
|
|
82
|
-
return typeof p == "function" && g(p,
|
|
88
|
+
var o = z(), p = v(a.ref);
|
|
89
|
+
return typeof p == "function" && g(p, o), $(o, w({
|
|
90
|
+
get "data-testid"() {
|
|
91
|
+
return a["data-testid"] ?? "kanban-card";
|
|
92
|
+
}
|
|
93
|
+
}, c, {
|
|
83
94
|
get class() {
|
|
84
95
|
return y("smwb-kanban__card", {
|
|
85
|
-
"smwb-kanban__card_link": !!
|
|
86
|
-
},
|
|
96
|
+
"smwb-kanban__card_link": !!a.href
|
|
97
|
+
}, a.class);
|
|
87
98
|
},
|
|
88
99
|
get style() {
|
|
89
|
-
return {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
};
|
|
100
|
+
return C(a.style, {
|
|
101
|
+
"--smwb-kanban-title-lines": String(a.titleLines)
|
|
102
|
+
});
|
|
93
103
|
}
|
|
94
|
-
}), !1, !0),
|
|
104
|
+
}), !1, !0), n(o, d(u, {
|
|
95
105
|
get when() {
|
|
96
|
-
return f(
|
|
106
|
+
return f(i());
|
|
97
107
|
},
|
|
98
108
|
get children() {
|
|
99
|
-
return u
|
|
109
|
+
return d(u, {
|
|
100
110
|
get when() {
|
|
101
|
-
return
|
|
111
|
+
return a.href;
|
|
102
112
|
},
|
|
103
113
|
get fallback() {
|
|
104
114
|
return (() => {
|
|
105
|
-
var
|
|
106
|
-
return r
|
|
115
|
+
var r = D();
|
|
116
|
+
return n(r, i), r;
|
|
107
117
|
})();
|
|
108
118
|
},
|
|
109
|
-
children: (
|
|
110
|
-
var
|
|
111
|
-
return
|
|
119
|
+
children: (r) => (() => {
|
|
120
|
+
var m = E();
|
|
121
|
+
return n(m, i), K(() => h(m, "href", r())), m;
|
|
112
122
|
})()
|
|
113
123
|
});
|
|
114
124
|
}
|
|
115
|
-
}), null),
|
|
125
|
+
}), null), n(o, d(u, {
|
|
116
126
|
get when() {
|
|
117
127
|
return f(_());
|
|
118
128
|
},
|
|
119
129
|
get children() {
|
|
120
|
-
var
|
|
121
|
-
return r
|
|
130
|
+
var r = j();
|
|
131
|
+
return n(r, _), r;
|
|
122
132
|
}
|
|
123
|
-
}), null),
|
|
133
|
+
}), null), o;
|
|
124
134
|
})();
|
|
125
135
|
}
|
|
126
136
|
export {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
137
|
+
O as Kanban,
|
|
138
|
+
T as KanbanCard,
|
|
139
|
+
Q as KanbanColumn
|
|
130
140
|
};
|
|
131
141
|
//# sourceMappingURL=kanban.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban.js","sources":["../../../../../src/components/dataDisplay/kanban/kanban.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, createUniqueId, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface KanbanProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * The narrowest a column gets before the board scrolls sideways: a number of\n * pixels or any CSS length. 15.5rem by default.\n */\n columnWidth?: number | string;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface KanbanColumnProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"title\"> {\n /** The column's name: text or a badge. It names the column for assistive technology. */\n title: JSX.Element;\n /** How many cards the column holds (it may show fewer), beside the title. Nothing is shown for null. */\n count?: number | string | null;\n /** The column's colour, a stripe along its top: any CSS colour. */\n accent?: string;\n /** Shown in place of the cards when there are none, e.g. \"Empty\". */\n empty?: JSX.Element;\n /** Under the cards, e.g. a link to the rest as a list. */\n footer?: JSX.Element;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface KanbanCardProps extends Omit<JSX.HTMLAttributes<HTMLLIElement>, \"title\"> {\n /** The card's title, clamped to `titleLines` lines. */\n title?: JSX.Element;\n /** Makes the title a link, and the whole card open it. */\n href?: string;\n /** Lines the title is clamped to: 3 by default. */\n titleLines?: number;\n ref?: Ref<HTMLLIElement>;\n}\n\ntype Style = JSX.CSSProperties | string | undefined;\n\nconst styleObject = (style: Style): JSX.CSSProperties => (typeof style === \"object\" && style ? style : {});\n\nconst cssLength = (value: number | string | undefined): string | undefined =>\n typeof value === \"number\" ? `${value}px` : value;\n\nconst present = (value: unknown): boolean =>\n value !== undefined && value !== null && value !== false && value !== true && value !== \"\";\n\n/** A board: KanbanColumn children side by side, scrolling sideways when they do not fit. */\nexport function Kanban(props: ParentProps<KanbanProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"style\", \"columnWidth\", \"children\", \"ref\"]);\n return (\n <div\n data-testid=\"kanban\"\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban\", local.class)}\n style={{ ...styleObject(local.style), \"--smwb-kanban-column-width\": cssLength(local.columnWidth) }}\n >\n {local.children}\n </div>\n );\n}\n\n/** A column of the board: its title and count, then its KanbanCard children, or `empty` when it has none. */\nexport function KanbanColumn(props: ParentProps<KanbanColumnProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"style\",\n \"title\",\n \"count\",\n \"accent\",\n \"empty\",\n \"footer\",\n \"children\",\n \"ref\",\n ]);\n const titleId = `${createUniqueId()}-title`;\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for a <Show> test has no server DOM node.\n const cards = children(() => local.children);\n const empty = children(() => local.empty);\n const footer = children(() => local.footer);\n const hasCards = (): boolean => cards.toArray().some(present);\n\n return (\n <div\n data-testid=\"kanban-column\"\n role=\"group\"\n aria-labelledby={titleId}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban__column\", local.class)}\n style={{ ...styleObject(local.style), \"--smwb-kanban-accent\": local.accent }}\n >\n <div class=\"smwb-kanban__column-header\">\n <div class=\"smwb-kanban__column-title\" id={titleId}>\n {local.title}\n </div>\n <Show when={local.count !== undefined && local.count !== null}>\n <span class=\"smwb-kanban__count\">{local.count}</span>\n </Show>\n </div>\n <Show\n when={hasCards()}\n fallback={\n <Show when={present(empty())}>\n <div class=\"smwb-kanban__empty\">{empty()}</div>\n </Show>\n }\n >\n <ul class=\"smwb-kanban__cards\" role=\"list\">\n {cards()}\n </ul>\n </Show>\n <Show when={present(footer())}>\n <div class=\"smwb-kanban__column-footer\">{footer()}</div>\n </Show>\n </div>\n );\n}\n\n/**\n * A card on the board: its title (a link with `href`, and then the whole card\n * opens it) and the children under it.\n */\nexport function KanbanCard(props: ParentProps<KanbanCardProps>): JSX.Element {\n const merged = mergeProps({ titleLines: 3 }, props);\n const [local, rest] = splitProps(merged, [\"class\", \"style\", \"title\", \"href\", \"titleLines\", \"children\", \"ref\"]);\n\n const title = children(() => local.title);\n const body = children(() => local.children);\n\n return (\n <li\n data-testid=\"kanban-card\"\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban__card\", { \"smwb-kanban__card_link\": Boolean(local.href) }, local.class)}\n style={{ ...styleObject(local.style), \"--smwb-kanban-title-lines\": String(local.titleLines) }}\n >\n <Show when={present(title())}>\n <Show when={local.href} fallback={<div class=\"smwb-kanban__card-title\">{title()}</div>}>\n {(href) => (\n <a class=\"smwb-kanban__card-title\" href={href()}>\n {title()}\n </a>\n )}\n </Show>\n </Show>\n <Show when={present(body())}>\n <div class=\"smwb-kanban__card-body\">{body()}</div>\n </Show>\n </li>\n );\n}\n\nexport default Kanban;\n"],"names":["styleObject","style","cssLength","value","present","Kanban","props","local","rest","splitProps","_el$","_tmpl$","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","columnWidth","_$insert","children","KanbanColumn","titleId","createUniqueId","cards","empty","footer","hasCards","toArray","some","_el$2","_tmpl$5","_el$3","firstChild","_el$4","_ref$2","_$setAttribute","accent","title","_$createComponent","Show","when","_$memo","count","undefined","_el$5","_tmpl$2","fallback","_el$8","_tmpl$6","_el$6","_tmpl$3","_el$7","_tmpl$4","KanbanCard","merged","mergeProps","titleLines","body","_el$9","_tmpl$8","_ref$3","Boolean","href","String","_el$1","_tmpl$9","_el$10","_tmpl$0","_$effect","_el$0","_tmpl$7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kanban.js","sources":["../../../../../src/components/dataDisplay/kanban/kanban.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, createUniqueId, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\n\nexport interface KanbanProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * The narrowest a column gets before the board scrolls sideways: a number of\n * pixels or any CSS length. 15.5rem by default.\n */\n columnWidth?: number | string;\n /** Test id of the root `<div>`; `kanban` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface KanbanColumnProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"title\"> {\n /** The column's name: text or a badge. It names the column for assistive technology. */\n title: JSX.Element;\n /** How many cards the column holds (it may show fewer), beside the title. Nothing is shown for null. */\n count?: number | string | null;\n /** The column's colour, a stripe along its top: any CSS colour. */\n accent?: string;\n /** Shown in place of the cards when there are none, e.g. \"Empty\". */\n empty?: JSX.Element;\n /** Under the cards, e.g. a link to the rest as a list. */\n footer?: JSX.Element;\n /** Test id of the column's `<div>`; `kanban-column` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface KanbanCardProps extends Omit<JSX.HTMLAttributes<HTMLLIElement>, \"title\"> {\n /** The card's title, clamped to `titleLines` lines. */\n title?: JSX.Element;\n /** Makes the title a link, and the whole card open it. */\n href?: string;\n /** Lines the title is clamped to: 3 by default. */\n titleLines?: number;\n /** Test id of the card's `<li>`; `kanban-card` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLLIElement>;\n}\n\nconst cssLength = (value: number | string | undefined): string | undefined =>\n typeof value === \"number\" ? `${value}px` : value;\n\nconst present = (value: unknown): boolean =>\n value !== undefined && value !== null && value !== false && value !== true && value !== \"\";\n\n/** A board: KanbanColumn children side by side, scrolling sideways when they do not fit. */\nexport function Kanban(props: ParentProps<KanbanProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"style\", \"columnWidth\", \"children\", \"ref\", \"data-testid\"]);\n return (\n <div\n data-testid={local[\"data-testid\"] ?? \"kanban\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban\", local.class)}\n style={mergeStyle(local.style, { \"--smwb-kanban-column-width\": cssLength(local.columnWidth) })}\n >\n {local.children}\n </div>\n );\n}\n\n/** A column of the board: its title and count, then its KanbanCard children, or `empty` when it has none. */\nexport function KanbanColumn(props: ParentProps<KanbanColumnProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"style\",\n \"title\",\n \"count\",\n \"accent\",\n \"empty\",\n \"footer\",\n \"children\",\n \"ref\",\n \"data-testid\",\n ]);\n const titleId = `${createUniqueId()}-title`;\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for a <Show> test has no server DOM node.\n const cards = children(() => local.children);\n const empty = children(() => local.empty);\n const footer = children(() => local.footer);\n const hasCards = (): boolean => cards.toArray().some(present);\n\n return (\n <div\n data-testid={local[\"data-testid\"] ?? \"kanban-column\"}\n role=\"group\"\n aria-labelledby={titleId}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban__column\", local.class)}\n style={mergeStyle(local.style, { \"--smwb-kanban-accent\": local.accent })}\n >\n <div class=\"smwb-kanban__column-header\">\n <div class=\"smwb-kanban__column-title\" id={titleId}>\n {local.title}\n </div>\n <Show when={local.count !== undefined && local.count !== null}>\n <span class=\"smwb-kanban__count\">{local.count}</span>\n </Show>\n </div>\n <Show\n when={hasCards()}\n fallback={\n <Show when={present(empty())}>\n <div class=\"smwb-kanban__empty\">{empty()}</div>\n </Show>\n }\n >\n <ul class=\"smwb-kanban__cards\" role=\"list\">\n {cards()}\n </ul>\n </Show>\n <Show when={present(footer())}>\n <div class=\"smwb-kanban__column-footer\">{footer()}</div>\n </Show>\n </div>\n );\n}\n\n/**\n * A card on the board: its title (a link with `href`, and then the whole card\n * opens it) and the children under it.\n */\nexport function KanbanCard(props: ParentProps<KanbanCardProps>): JSX.Element {\n const merged = mergeProps({ titleLines: 3 }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"style\",\n \"title\",\n \"href\",\n \"titleLines\",\n \"children\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const title = children(() => local.title);\n const body = children(() => local.children);\n\n return (\n <li\n data-testid={local[\"data-testid\"] ?? \"kanban-card\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban__card\", { \"smwb-kanban__card_link\": Boolean(local.href) }, local.class)}\n style={mergeStyle(local.style, { \"--smwb-kanban-title-lines\": String(local.titleLines) })}\n >\n <Show when={present(title())}>\n <Show when={local.href} fallback={<div class=\"smwb-kanban__card-title\">{title()}</div>}>\n {(href) => (\n <a class=\"smwb-kanban__card-title\" href={href()}>\n {title()}\n </a>\n )}\n </Show>\n </Show>\n <Show when={present(body())}>\n <div class=\"smwb-kanban__card-body\">{body()}</div>\n </Show>\n </li>\n );\n}\n\nexport default Kanban;\n"],"names":["cssLength","value","present","Kanban","props","local","rest","splitProps","_el$","_tmpl$","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","style","mergeStyle","columnWidth","_$insert","children","KanbanColumn","titleId","createUniqueId","cards","empty","footer","hasCards","toArray","some","_el$2","_tmpl$5","_el$3","firstChild","_el$4","_ref$2","_$setAttribute","accent","title","_$createComponent","Show","when","_$memo","count","undefined","_el$5","_tmpl$2","fallback","_el$8","_tmpl$6","_el$6","_tmpl$3","_el$7","_tmpl$4","KanbanCard","merged","mergeProps","titleLines","body","_el$9","_tmpl$8","_ref$3","Boolean","href","String","_el$1","_tmpl$9","_el$10","_tmpl$0","_$effect","_el$0","_tmpl$7"],"mappings":"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"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { insert as o, createComponent as
|
|
2
|
-
import { mergeProps as S, splitProps as C, createSignal as p, onMount as F, children as O, Show as
|
|
1
|
+
import { insert as o, createComponent as d, use as $, spread as k, mergeProps as E, effect as I, className as P, style as R, template as i } from "solid-js/web";
|
|
2
|
+
import { mergeProps as S, splitProps as C, createSignal as p, onMount as F, children as O, Show as v, onCleanup as x } from "solid-js";
|
|
3
3
|
import L from "clsx";
|
|
4
4
|
import { mergeRefs as M } from "../../../primitives/mergeRefs.js";
|
|
5
5
|
var N = /* @__PURE__ */ i("<span class=smwb-lazy-image__fallback>"), V = /* @__PURE__ */ i("<img>", !0, !1, !1), j = /* @__PURE__ */ i("<span>");
|
|
6
|
-
function G(
|
|
6
|
+
function G(y) {
|
|
7
7
|
const c = S({
|
|
8
8
|
lazy: !0
|
|
9
|
-
},
|
|
9
|
+
}, y), [r, m] = C(c, ["src", "alt", "fallback", "lazy", "aspectRatio", "class", "onError", "ref"]), [b, z] = p(!1), [f, g] = p(!c.lazy);
|
|
10
10
|
let a;
|
|
11
11
|
F(() => {
|
|
12
|
-
if (!r.lazy ||
|
|
12
|
+
if (!r.lazy || f() || !a) return;
|
|
13
13
|
if (typeof IntersectionObserver > "u") {
|
|
14
|
-
|
|
14
|
+
g(!0);
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
const t = new IntersectionObserver((e) => {
|
|
18
|
-
e.some((s) => s.isIntersecting) && (
|
|
18
|
+
e.some((s) => s.isIntersecting) && (g(!0), t.disconnect());
|
|
19
19
|
});
|
|
20
20
|
t.observe(a), x(() => t.disconnect());
|
|
21
21
|
});
|
|
22
22
|
const w = (t) => {
|
|
23
23
|
z(!0), r.onError?.(t);
|
|
24
|
-
}, n = () => b() || !r.src, _ = () =>
|
|
24
|
+
}, n = () => b() || !r.src, _ = () => f() ? r.src : void 0, u = O(() => n() ? r.fallback : void 0), h = () => r.aspectRatio != null ? {
|
|
25
25
|
"aspect-ratio": String(r.aspectRatio)
|
|
26
26
|
} : void 0;
|
|
27
27
|
return (() => {
|
|
28
28
|
var t = j();
|
|
29
|
-
return o(t,
|
|
29
|
+
return o(t, d(v, {
|
|
30
30
|
get when() {
|
|
31
31
|
return u();
|
|
32
32
|
},
|
|
@@ -34,13 +34,13 @@ function G(v) {
|
|
|
34
34
|
var e = N();
|
|
35
35
|
return o(e, u), e;
|
|
36
36
|
}
|
|
37
|
-
}), null), o(t,
|
|
37
|
+
}), null), o(t, d(v, {
|
|
38
38
|
get when() {
|
|
39
39
|
return !n();
|
|
40
40
|
},
|
|
41
41
|
get children() {
|
|
42
42
|
var e = V(), s = M(r.ref, (l) => a = l);
|
|
43
|
-
return typeof s == "function" && $(s, e), k(e, E(
|
|
43
|
+
return typeof s == "function" && $(s, e), k(e, E(m, {
|
|
44
44
|
class: "smwb-lazy-image__img",
|
|
45
45
|
get src() {
|
|
46
46
|
return _();
|
|
@@ -51,7 +51,9 @@ function G(v) {
|
|
|
51
51
|
get loading() {
|
|
52
52
|
return r.lazy ? "lazy" : void 0;
|
|
53
53
|
},
|
|
54
|
-
decoding
|
|
54
|
+
get decoding() {
|
|
55
|
+
return m.decoding ?? "async";
|
|
56
|
+
},
|
|
55
57
|
onError: w
|
|
56
58
|
}), !1, !1), e;
|
|
57
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazyImage.js","sources":["../../../../../src/components/dataDisplay/lazyImage/lazyImage.tsx"],"sourcesContent":["import { type JSX, Show, children, 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 // Read the fallback once, and only while it is drawn: markup passed as a prop\n // is created anew on every read, and during hydration a copy the server never\n // rendered has no DOM node.\n const fallback = children(() => (showFallback() ? local.fallback : 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={fallback()}>\n <span class=\"smwb-lazy-image__fallback\">{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
|
|
1
|
+
{"version":3,"file":"lazyImage.js","sources":["../../../../../src/components/dataDisplay/lazyImage/lazyImage.tsx"],"sourcesContent":["import { type JSX, Show, children, 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 // Read the fallback once, and only while it is drawn: markup passed as a prop\n // is created anew on every read, and during hydration a copy the server never\n // rendered has no DOM node.\n const fallback = children(() => (showFallback() ? local.fallback : 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={fallback()}>\n <span class=\"smwb-lazy-image__fallback\">{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 // `lazy` wins over the caller's loading; without it (undefined), the\n // caller's stays. decoding=\"async\" is a default: the caller's wins,\n // and an explicit undefined keeps it.\n loading={local.lazy ? \"lazy\" : undefined}\n decoding={rest.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","fallback","children","style","aspectRatio","String","_el$","_tmpl$3","_$insert","_$createComponent","Show","when","_el$2","_tmpl$","_el$3","_tmpl$2","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","alt","loading","decoding","_$effect","_p$","_v$","cn","class","_v$2","e","_$className","t","_$style"],"mappings":"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"}
|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
import { use as
|
|
1
|
+
import { use as d, spread as u, mergeProps as m, insert as t, createComponent as c, template as i } from "solid-js/web";
|
|
2
2
|
import { splitProps as p, children as f, Show as h } from "solid-js";
|
|
3
3
|
import _ from "clsx";
|
|
4
4
|
import { mergeRefs as b } from "../../../primitives/mergeRefs.js";
|
|
5
|
-
var g = /* @__PURE__ */
|
|
6
|
-
function y(
|
|
7
|
-
const [e,
|
|
5
|
+
var g = /* @__PURE__ */ i("<li class=smwb-list__subheader>"), w = /* @__PURE__ */ i("<ul>");
|
|
6
|
+
function y(o) {
|
|
7
|
+
const [e, s] = p(o, ["class", "dense", "subheader", "children", "ref", "data-testid"]), l = f(() => e.subheader);
|
|
8
8
|
return (() => {
|
|
9
|
-
var r = w(),
|
|
10
|
-
return typeof
|
|
11
|
-
"data-testid"
|
|
12
|
-
|
|
9
|
+
var r = w(), n = b(e.ref);
|
|
10
|
+
return typeof n == "function" && d(n, r), u(r, m(s, {
|
|
11
|
+
get "data-testid"() {
|
|
12
|
+
return e["data-testid"] ?? "list";
|
|
13
|
+
},
|
|
14
|
+
get role() {
|
|
15
|
+
return s.role ?? "list";
|
|
16
|
+
},
|
|
13
17
|
get class() {
|
|
14
18
|
return _("smwb-list", {
|
|
15
19
|
"smwb-list_dense": e.dense
|
|
16
20
|
}, e.class);
|
|
17
21
|
}
|
|
18
|
-
}), !1, !0), t(r,
|
|
22
|
+
}), !1, !0), t(r, c(h, {
|
|
19
23
|
get when() {
|
|
20
|
-
return
|
|
24
|
+
return l();
|
|
21
25
|
},
|
|
22
26
|
get children() {
|
|
23
|
-
var
|
|
24
|
-
return t(
|
|
27
|
+
var a = g();
|
|
28
|
+
return t(a, l), a;
|
|
25
29
|
}
|
|
26
30
|
}), null), t(r, () => e.children, null), r;
|
|
27
31
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../../../src/components/dataDisplay/list/list.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ListProps extends JSX.HTMLAttributes<HTMLUListElement> {\n /** Compact vertical rhythm. */\n dense?: boolean;\n /** Section subheader rendered before the items. */\n subheader?: JSX.Element;\n ref?: Ref<HTMLUListElement>;\n}\n\nexport function List(props: ParentProps<ListProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"dense\", \"subheader\", \"children\", \"ref\"]);\n // Read the subheader once: markup passed as a prop is created anew on every\n // read, and during hydration a copy the server never rendered has no DOM node.\n const subheader = children(() => local.subheader);\n return (\n <ul\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../../../src/components/dataDisplay/list/list.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ListProps extends JSX.HTMLAttributes<HTMLUListElement> {\n /** Compact vertical rhythm. */\n dense?: boolean;\n /** Section subheader rendered before the items. */\n subheader?: JSX.Element;\n /** Test id of the root `<ul>`; `list` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLUListElement>;\n}\n\nexport function List(props: ParentProps<ListProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"dense\", \"subheader\", \"children\", \"ref\", \"data-testid\"]);\n // Read the subheader once: markup passed as a prop is created anew on every\n // read, and during hydration a copy the server never rendered has no DOM node.\n const subheader = children(() => local.subheader);\n return (\n <ul\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"list\"}\n // A default: the caller's own wins, and an explicit undefined keeps it.\n role={rest.role ?? \"list\"}\n class={cn(\"smwb-list\", { \"smwb-list_dense\": local.dense }, local.class)}\n >\n <Show when={subheader()}>\n <li class=\"smwb-list__subheader\">{subheader()}</li>\n </Show>\n {local.children}\n </ul>\n );\n}\n\nexport default List;\n"],"names":["List","props","local","rest","splitProps","subheader","children","_el$","_tmpl$2","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","role","cn","dense","class","_$insert","_$createComponent","Show","when","_el$2","_tmpl$"],"mappings":";;;;;AAcO,SAASA,EAAKC,GAA4C;AAC/D,QAAM,CAACC,GAAOC,CAAI,IAAIC,EAAWH,GAAO,CAAC,SAAS,SAAS,aAAa,YAAY,OAAO,aAAa,CAAC,GAGnGI,IAAYC,EAAS,MAAMJ,EAAMG,SAAS;AAChD,UAAA,MAAA;AAAA,QAAAE,IAAAC,EAAAA,GAAAC,IAGSC,EAAUR,EAAMS,GAAG;AAAC,kBAAAF,KAAA,cAAAG,EAAAH,GAAAF,CAAA,GAAAM,EAAAN,GAAAO,EADrBX,GAAI;AAAA,MAAA,IAAA,gBAAA;AAAA,eAEKD,EAAM,aAAa,KAAK;AAAA,MAAM;AAAA,MAAA,IAE3Ca,OAAI;AAAA,eAAEZ,EAAKY,QAAQ;AAAA,MAAM;AAAA,MAAA,IAAA,QAAA;AAAA,eAClBC,EAAG,aAAa;AAAA,UAAE,mBAAmBd,EAAMe;AAAAA,QAAAA,GAASf,EAAMgB,KAAK;AAAA,MAAC;AAAA,IAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAZ,GAAAa,EAEtEC,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEjB,EAAAA;AAAAA,MAAW;AAAA,MAAA,IAAAC,WAAA;AAAA,YAAAiB,IAAAC,EAAAA;AAAAL,eAAAA,EAAAI,GACalB,CAAS,GAAAkB;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAAJ,EAAAZ,GAAA,MAE5CL,EAAMI,UAAQ,IAAA,GAAAC;AAAAA,EAAA,GAAA;AAGrB;"}
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { use as p, insert as s, effect as u, setAttribute as l, className as y, template as C, delegateEvents as $ } from "solid-js/web";
|
|
2
2
|
import { splitProps as A } from "solid-js";
|
|
3
|
-
import
|
|
4
|
-
import { mergeRefs as
|
|
5
|
-
import { callHandler as
|
|
6
|
-
var h = /* @__PURE__ */
|
|
7
|
-
function
|
|
8
|
-
const [e] = A(
|
|
3
|
+
import g from "clsx";
|
|
4
|
+
import { mergeRefs as x } from "../../../primitives/mergeRefs.js";
|
|
5
|
+
import { callHandler as b } from "../../../primitives/callHandler.js";
|
|
6
|
+
var h = /* @__PURE__ */ C("<li role=listitem data-testid=list-item><span class=smwb-list__item__start></span><span class=smwb-list__item__main></span><span class=smwb-list__item__end>");
|
|
7
|
+
function K(f) {
|
|
8
|
+
const [e] = A(f, ["class", "children", "disabled", "selected", "dense", "divider", "startAdornment", "endAdornment", "onClick", "ref"]), d = () => !!e.onClick && !e.disabled, v = (t) => {
|
|
9
|
+
e.disabled || b(e.onClick, t);
|
|
10
|
+
}, k = (t) => {
|
|
11
|
+
d() && (t.key === "Enter" || t.key === " ") && (t.preventDefault(), b(e.onClick, t));
|
|
12
|
+
};
|
|
9
13
|
return (() => {
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return typeof a == "function" && k(a, i), s(r, () => e.startAdornment), s(n, () => e.children), s(f, () => e.endAdornment), u((t) => {
|
|
16
|
-
var o = l() ? 0 : void 0, m = e.disabled || void 0, c = e.selected || void 0, _ = C("smwb-list__item", e.class, {
|
|
14
|
+
var t = h(), n = t.firstChild, r = n.nextSibling, w = r.nextSibling;
|
|
15
|
+
t.$$keydown = k, t.$$click = v;
|
|
16
|
+
var a = x(e.ref);
|
|
17
|
+
return typeof a == "function" && p(a, t), s(n, () => e.startAdornment), s(r, () => e.children), s(w, () => e.endAdornment), u((i) => {
|
|
18
|
+
var o = d() ? 0 : void 0, m = e.disabled || void 0, c = e.selected || void 0, _ = g("smwb-list__item", e.class, {
|
|
17
19
|
"smwb-disabled": e.disabled,
|
|
18
20
|
"smwb-selected": e.selected,
|
|
19
21
|
"smwb-list__item_dense": e.dense,
|
|
20
22
|
"smwb-list__item_divider": e.divider
|
|
21
23
|
});
|
|
22
|
-
return o !==
|
|
24
|
+
return o !== i.e && l(t, "tabindex", i.e = o), m !== i.t && l(t, "aria-disabled", i.t = m), c !== i.a && l(t, "aria-selected", i.a = c), _ !== i.o && y(t, i.o = _), i;
|
|
23
25
|
}, {
|
|
24
26
|
e: void 0,
|
|
25
27
|
t: void 0,
|
|
26
28
|
a: void 0,
|
|
27
29
|
o: void 0
|
|
28
|
-
}),
|
|
30
|
+
}), t;
|
|
29
31
|
})();
|
|
30
32
|
}
|
|
31
|
-
|
|
33
|
+
$(["click", "keydown"]);
|
|
32
34
|
export {
|
|
33
|
-
|
|
35
|
+
K as ListItem
|
|
34
36
|
};
|
|
35
37
|
//# sourceMappingURL=listItem.js.map
|