@smwb/ui-solid 0.12.1 → 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/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/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/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/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
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
import { use as _e, spread as Ne, mergeProps as Re, setAttribute as l, insert as k, createComponent as N, effect as W, setStyleProperty as Q, template as z, className as Ue, style as Fe, delegateEvents as Ge } from "solid-js/web";
|
|
2
|
+
import { mergeProps as Pe, splitProps as We, createUniqueId as Te, createMemo as S, untrack as V, createSelector as qe, createSignal as ee, createEffect as te, on as xe, onMount as ke, onCleanup as oe, For as Se, Show as re, DEV as He } from "solid-js";
|
|
3
|
+
import ne from "clsx";
|
|
4
|
+
import { createControllableState as $e } from "../../../primitives/createControllableState.js";
|
|
5
|
+
import { mergeRefs as Ke } from "../../../primitives/mergeRefs.js";
|
|
6
|
+
import { mergeStyle as je } from "../../../primitives/mergeStyle.js";
|
|
7
|
+
import { dagLayout as Ye, dagEdgePath as Xe } from "./dagLayout.js";
|
|
8
|
+
import { createPanZoom as Je, viewportTransform as Qe, centerOn as et, zoomAt as tt, fitBounds as ot, isVisible as rt } from "./panZoom.js";
|
|
9
|
+
var nt = /* @__PURE__ */ z("<span class=smwb-dag-view__dot aria-hidden=true>"), st = /* @__PURE__ */ z("<span class=smwb-dag-view__label>"), it = /* @__PURE__ */ z("<span class=smwb-dag-view__status>"), at = /* @__PURE__ */ z("<div role=option><span hidden>"), dt = /* @__PURE__ */ z("<p class=smwb-dag-view__summary>"), ct = /* @__PURE__ */ z('<div class=smwb-dag-view__controls role=group><button type=button class=smwb-dag-view__control><svg viewBox="0 0 24 24"aria-hidden=true><path d="M12 5v14M5 12h14"></path></svg></button><button type=button class=smwb-dag-view__control><svg viewBox="0 0 24 24"aria-hidden=true><path d="M5 12h14"></path></svg></button><button type=button class=smwb-dag-view__control><svg viewBox="0 0 24 24"aria-hidden=true><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5">'), lt = /* @__PURE__ */ z('<div><div class=smwb-dag-view__world role=listbox><svg class=smwb-dag-view__edges aria-hidden=true><defs><marker viewBox="0 0 10 10"refX=9 refY=5 markerWidth=10 markerHeight=10 markerUnits=userSpaceOnUse orient=auto-start-reverse><path class=smwb-dag-view__arrow d="M0,1 L9,5 L0,9 z"></path></marker><marker viewBox="0 0 10 10"refX=9 refY=5 markerWidth=10 markerHeight=10 markerUnits=userSpaceOnUse orient=auto-start-reverse><path class="smwb-dag-view__arrow smwb-dag-view__arrow--active"d="M0,1 L9,5 L0,9 z"></path></marker></defs><g transform="translate(24 24)">'), ut = /* @__PURE__ */ z("<svg><path></svg>", !1, !0, !1);
|
|
10
|
+
const C = 24, Ae = {
|
|
11
|
+
roleDescription: "dependency graph",
|
|
12
|
+
status: "Status",
|
|
13
|
+
dependsOn: "Depends on",
|
|
14
|
+
requiredBy: "Required by",
|
|
15
|
+
statuses: {
|
|
16
|
+
idle: "Idle",
|
|
17
|
+
pending: "Pending",
|
|
18
|
+
running: "Running",
|
|
19
|
+
success: "Success",
|
|
20
|
+
warning: "Warning",
|
|
21
|
+
error: "Error",
|
|
22
|
+
skipped: "Skipped"
|
|
23
|
+
},
|
|
24
|
+
zoomIn: "Zoom in",
|
|
25
|
+
zoomOut: "Zoom out",
|
|
26
|
+
fitView: "Fit to view",
|
|
27
|
+
controls: "Zoom"
|
|
28
|
+
}, mt = ["label", "status", "accent", "width", "height", "data", "disabled"], gt = 'a[href], button, input, select, textarea, iframe, summary, audio[controls], video[controls], [tabindex], [contenteditable]:not([contenteditable="false"])', ht = (f) => typeof f == "number" ? `${f}px` : f, wt = (f, M) => f.length === M.length && f.every((n, T) => n === M[T]), ft = (f, M) => {
|
|
29
|
+
const n = f?.label;
|
|
30
|
+
return typeof n == "string" || typeof n == "number" ? String(n) : M;
|
|
31
|
+
}, vt = He ? (f) => console.warn(`[smwb] DagView: ${f}`) : void 0;
|
|
32
|
+
function At(f) {
|
|
33
|
+
const M = Pe({
|
|
34
|
+
direction: "LR",
|
|
35
|
+
nodeWidth: 180,
|
|
36
|
+
nodeHeight: 56,
|
|
37
|
+
rankGap: 64,
|
|
38
|
+
nodeGap: 24,
|
|
39
|
+
fit: !0,
|
|
40
|
+
minZoom: 0.1,
|
|
41
|
+
maxZoom: 2,
|
|
42
|
+
wheel: "zoom",
|
|
43
|
+
controls: !0
|
|
44
|
+
}, f), [n, T] = We(M, ["class", "style", "label", "summary", "nodes", "edges", "renderNode", "direction", "nodeWidth", "nodeHeight", "rankGap", "nodeGap", "layout", "selectedId", "defaultSelectedId", "onSelectedChange", "onNodeClick", "dimUnrelated", "viewport", "defaultViewport", "onViewportChange", "fit", "minZoom", "maxZoom", "wheel", "controls", "labels", "height", "apiRef", "ref", "data-testid"]), R = Te(), se = `${R}-arrow`, ie = `${R}-arrow-active`, ae = `${R}-summary`;
|
|
45
|
+
let D;
|
|
46
|
+
const B = /* @__PURE__ */ new Map(), x = S(() => ({
|
|
47
|
+
...Ae,
|
|
48
|
+
...n.labels,
|
|
49
|
+
statuses: {
|
|
50
|
+
...Ae.statuses,
|
|
51
|
+
...n.labels?.statuses
|
|
52
|
+
}
|
|
53
|
+
})), de = (e) => x().statuses[e] ?? e, I = S(() => {
|
|
54
|
+
const e = /* @__PURE__ */ new Map();
|
|
55
|
+
for (const t of n.nodes) e.has(t.id) || e.set(t.id, t);
|
|
56
|
+
return e;
|
|
57
|
+
}), ce = S(() => [...I().keys()], [], {
|
|
58
|
+
equals: wt
|
|
59
|
+
}), ze = S(() => {
|
|
60
|
+
const e = [...I().values()].map((a) => ({
|
|
61
|
+
id: a.id,
|
|
62
|
+
width: a.width ?? n.nodeWidth,
|
|
63
|
+
height: a.height ?? n.nodeHeight
|
|
64
|
+
})), t = n.edges.map((a) => ({
|
|
65
|
+
id: a.id,
|
|
66
|
+
source: a.source,
|
|
67
|
+
target: a.target
|
|
68
|
+
})), o = {
|
|
69
|
+
nodes: e,
|
|
70
|
+
edges: t,
|
|
71
|
+
direction: n.direction,
|
|
72
|
+
rankGap: n.rankGap,
|
|
73
|
+
nodeGap: n.nodeGap,
|
|
74
|
+
warn: vt
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
key: JSON.stringify([n.direction, n.rankGap, n.nodeGap, e.map((a) => [a.id, a.width, a.height]), t.map((a) => [a.id ?? null, a.source, a.target])]),
|
|
78
|
+
input: o
|
|
79
|
+
};
|
|
80
|
+
}, void 0, {
|
|
81
|
+
equals: (e, t) => e.key === t.key
|
|
82
|
+
}), b = S(() => (n.layout ?? Ye)(ze().input)), U = (e) => n.direction === "TB" ? e.x : e.y, y = S(() => {
|
|
83
|
+
const e = b(), t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
|
|
84
|
+
for (const i of e.edges)
|
|
85
|
+
t.has(i.target) || t.set(i.target, []), o.has(i.source) || o.set(i.source, []), t.get(i.target).push(i), o.get(i.source).push(i);
|
|
86
|
+
const c = [...e.nodes.values()].sort((i, g) => i.layer - g.layer || U(i) - U(g)), a = /* @__PURE__ */ new Map();
|
|
87
|
+
for (const i of c)
|
|
88
|
+
a.has(i.layer) || a.set(i.layer, []), a.get(i.layer).push(i);
|
|
89
|
+
return {
|
|
90
|
+
incoming: t,
|
|
91
|
+
outgoing: o,
|
|
92
|
+
ordered: c,
|
|
93
|
+
layers: a
|
|
94
|
+
};
|
|
95
|
+
}), [L, q] = $e({
|
|
96
|
+
value: () => n.selectedId,
|
|
97
|
+
defaultValue: V(() => n.defaultSelectedId) ?? null,
|
|
98
|
+
onChange: (e) => n.onSelectedChange?.(e)
|
|
99
|
+
}), le = qe(L), F = S(() => {
|
|
100
|
+
const e = L(), t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
|
|
101
|
+
if (e === null || !b().nodes.has(e)) return {
|
|
102
|
+
active: !1,
|
|
103
|
+
edges: t,
|
|
104
|
+
nodes: o
|
|
105
|
+
};
|
|
106
|
+
const {
|
|
107
|
+
incoming: c,
|
|
108
|
+
outgoing: a
|
|
109
|
+
} = y();
|
|
110
|
+
for (const i of c.get(e) ?? [])
|
|
111
|
+
t.set(i.id, "upstream"), o.set(i.source, "upstream");
|
|
112
|
+
for (const i of a.get(e) ?? [])
|
|
113
|
+
t.set(i.id, "downstream"), o.set(i.target, "downstream");
|
|
114
|
+
return {
|
|
115
|
+
active: !0,
|
|
116
|
+
edges: t,
|
|
117
|
+
nodes: o
|
|
118
|
+
};
|
|
119
|
+
}), [De, ue] = ee(null), [H, K] = ee(null), G = S(() => {
|
|
120
|
+
const e = b().nodes, t = De();
|
|
121
|
+
if (t !== null && e.has(t)) return t;
|
|
122
|
+
const o = L();
|
|
123
|
+
return o !== null && e.has(o) ? o : y().ordered[0]?.id ?? null;
|
|
124
|
+
}), [$, E] = $e({
|
|
125
|
+
value: () => n.viewport,
|
|
126
|
+
defaultValue: V(() => n.defaultViewport) ?? {
|
|
127
|
+
x: 0,
|
|
128
|
+
y: 0,
|
|
129
|
+
zoom: 1
|
|
130
|
+
},
|
|
131
|
+
onChange: (e) => n.onViewportChange?.(e)
|
|
132
|
+
}), [Me, Be] = ee(!1), Ie = S(() => $().zoom < 0.45), O = () => ({
|
|
133
|
+
width: D?.clientWidth ?? 0,
|
|
134
|
+
height: D?.clientHeight ?? 0
|
|
135
|
+
}), j = () => {
|
|
136
|
+
const {
|
|
137
|
+
width: e,
|
|
138
|
+
height: t
|
|
139
|
+
} = O();
|
|
140
|
+
return e > 0 && t > 0;
|
|
141
|
+
}, Z = () => ({
|
|
142
|
+
width: b().width + C * 2,
|
|
143
|
+
height: b().height + C * 2
|
|
144
|
+
}), me = (e) => {
|
|
145
|
+
const t = b().nodes.get(e);
|
|
146
|
+
return t && {
|
|
147
|
+
x: t.x + C,
|
|
148
|
+
y: t.y + C,
|
|
149
|
+
width: t.width,
|
|
150
|
+
height: t.height
|
|
151
|
+
};
|
|
152
|
+
}, _ = {
|
|
153
|
+
fitView() {
|
|
154
|
+
if (!j()) return;
|
|
155
|
+
const e = Z();
|
|
156
|
+
E(ot({
|
|
157
|
+
x: 0,
|
|
158
|
+
y: 0,
|
|
159
|
+
...e
|
|
160
|
+
}, O(), 0, n.minZoom, Math.max(n.minZoom, Math.min(1, n.maxZoom))));
|
|
161
|
+
},
|
|
162
|
+
zoomTo(e) {
|
|
163
|
+
_.zoomBy(e / $().zoom);
|
|
164
|
+
},
|
|
165
|
+
zoomBy(e) {
|
|
166
|
+
const {
|
|
167
|
+
width: t,
|
|
168
|
+
height: o
|
|
169
|
+
} = O();
|
|
170
|
+
E(tt($(), {
|
|
171
|
+
x: t / 2,
|
|
172
|
+
y: o / 2
|
|
173
|
+
}, e, n.minZoom, n.maxZoom));
|
|
174
|
+
},
|
|
175
|
+
centerNode(e) {
|
|
176
|
+
const t = me(e);
|
|
177
|
+
t && E(et($(), {
|
|
178
|
+
x: t.x + t.width / 2,
|
|
179
|
+
y: t.y + t.height / 2
|
|
180
|
+
}, O()));
|
|
181
|
+
}
|
|
182
|
+
}, ge = (e) => {
|
|
183
|
+
const t = me(e);
|
|
184
|
+
t && j() && !rt($(), t, O(), 8) && _.centerNode(e);
|
|
185
|
+
};
|
|
186
|
+
let P = !1;
|
|
187
|
+
const Y = () => {
|
|
188
|
+
!P || !j() || (P = !1, _.fitView());
|
|
189
|
+
};
|
|
190
|
+
te(xe(b, () => {
|
|
191
|
+
V(() => n.fit) && (P = !0, Y());
|
|
192
|
+
}, {
|
|
193
|
+
defer: !0
|
|
194
|
+
})), ke(() => {
|
|
195
|
+
const e = Je(D, {
|
|
196
|
+
viewport: $,
|
|
197
|
+
write: E,
|
|
198
|
+
minZoom: () => n.minZoom,
|
|
199
|
+
maxZoom: () => n.maxZoom,
|
|
200
|
+
wheel: () => n.wheel,
|
|
201
|
+
onInteracting: Be
|
|
202
|
+
});
|
|
203
|
+
let t = 0;
|
|
204
|
+
const o = typeof ResizeObserver == "function" ? new ResizeObserver(() => {
|
|
205
|
+
cancelAnimationFrame(t), t = requestAnimationFrame(Y);
|
|
206
|
+
}) : void 0;
|
|
207
|
+
o?.observe(D), oe(() => {
|
|
208
|
+
e(), o?.disconnect(), cancelAnimationFrame(t);
|
|
209
|
+
}), P = n.fit, Y(), n.apiRef?.(_);
|
|
210
|
+
});
|
|
211
|
+
const he = (e, t) => {
|
|
212
|
+
const o = I().get(e);
|
|
213
|
+
!o || o.disabled || (q(e), n.onNodeClick?.(o, t));
|
|
214
|
+
}, X = (e) => {
|
|
215
|
+
e !== void 0 && (ue(e), B.get(e)?.focus({
|
|
216
|
+
preventScroll: !0
|
|
217
|
+
}), ge(e));
|
|
218
|
+
};
|
|
219
|
+
te((e) => {
|
|
220
|
+
const t = ce();
|
|
221
|
+
return e && V(() => {
|
|
222
|
+
const o = new Set(t), c = L();
|
|
223
|
+
c !== null && !o.has(c) && e.includes(c) && q(null);
|
|
224
|
+
const a = H();
|
|
225
|
+
if (a === null || o.has(a)) return;
|
|
226
|
+
K(null);
|
|
227
|
+
const i = D?.ownerDocument, g = G();
|
|
228
|
+
i && (i.activeElement === null || i.activeElement === i.body) && g !== null && B.get(g)?.focus({
|
|
229
|
+
preventScroll: !0
|
|
230
|
+
});
|
|
231
|
+
}), t;
|
|
232
|
+
});
|
|
233
|
+
const J = /* @__PURE__ */ new WeakMap(), we = () => {
|
|
234
|
+
const e = V(G);
|
|
235
|
+
for (const [t, o] of B)
|
|
236
|
+
for (const c of o.querySelectorAll(gt)) {
|
|
237
|
+
J.has(c) || J.set(c, c.getAttribute("tabindex"));
|
|
238
|
+
const a = J.get(c) ?? null, i = t === e ? a : "-1";
|
|
239
|
+
c.getAttribute("tabindex") !== i && (i === null ? c.removeAttribute("tabindex") : c.setAttribute("tabindex", i));
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
ke(() => {
|
|
243
|
+
if (!n.renderNode || (te(xe(G, we)), typeof MutationObserver != "function")) return;
|
|
244
|
+
const e = new MutationObserver(we);
|
|
245
|
+
e.observe(D, {
|
|
246
|
+
childList: !0,
|
|
247
|
+
subtree: !0
|
|
248
|
+
}), oe(() => e.disconnect());
|
|
249
|
+
});
|
|
250
|
+
const Ve = (e, t) => {
|
|
251
|
+
const o = n.direction === "TB", c = o ? "ArrowDown" : "ArrowRight", a = o ? "ArrowUp" : "ArrowLeft", i = o ? "ArrowLeft" : "ArrowUp", g = o ? "ArrowRight" : "ArrowDown", v = b().nodes, d = (s) => s.map((h) => v.get(h)).filter((h) => h !== void 0).sort((h, w) => U(h) - U(w))[0]?.id;
|
|
252
|
+
if (t === c) return d((y().outgoing.get(e) ?? []).map((s) => s.target));
|
|
253
|
+
if (t === a) return d((y().incoming.get(e) ?? []).map((s) => s.source));
|
|
254
|
+
const m = v.get(e);
|
|
255
|
+
if (!m) return;
|
|
256
|
+
const r = y().layers.get(m.layer) ?? [], u = r.findIndex((s) => s.id === e);
|
|
257
|
+
if (t === i) return r[u - 1]?.id;
|
|
258
|
+
if (t === g) return r[u + 1]?.id;
|
|
259
|
+
}, Ce = (e) => {
|
|
260
|
+
const t = e.target, o = t.dataset?.dagId;
|
|
261
|
+
if (o === void 0 || !t.classList.contains("smwb-dag-view__node") || e.ctrlKey || e.metaKey || e.altKey) return;
|
|
262
|
+
const c = e.key;
|
|
263
|
+
if (c.startsWith("Arrow") && e.shiftKey) {
|
|
264
|
+
const i = $(), g = c === "ArrowLeft" ? 48 : c === "ArrowRight" ? -48 : 0, v = c === "ArrowUp" ? 48 : c === "ArrowDown" ? -48 : 0;
|
|
265
|
+
E({
|
|
266
|
+
x: i.x + g,
|
|
267
|
+
y: i.y + v,
|
|
268
|
+
zoom: i.zoom
|
|
269
|
+
}), e.preventDefault();
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (c.startsWith("Arrow")) {
|
|
273
|
+
e.preventDefault(), X(Ve(o, c));
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
switch (c) {
|
|
277
|
+
case "Home":
|
|
278
|
+
e.preventDefault(), X(y().ordered[0]?.id);
|
|
279
|
+
return;
|
|
280
|
+
case "End":
|
|
281
|
+
e.preventDefault(), X(y().ordered[y().ordered.length - 1]?.id);
|
|
282
|
+
return;
|
|
283
|
+
case "Enter":
|
|
284
|
+
case " ":
|
|
285
|
+
e.preventDefault(), he(o, e);
|
|
286
|
+
return;
|
|
287
|
+
case "Escape":
|
|
288
|
+
if (L() === null) return;
|
|
289
|
+
e.preventDefault(), q(null);
|
|
290
|
+
return;
|
|
291
|
+
case "+":
|
|
292
|
+
case "=":
|
|
293
|
+
e.preventDefault(), _.zoomBy(1.25);
|
|
294
|
+
return;
|
|
295
|
+
case "-":
|
|
296
|
+
case "_":
|
|
297
|
+
e.preventDefault(), _.zoomBy(0.8);
|
|
298
|
+
return;
|
|
299
|
+
case "0":
|
|
300
|
+
e.preventDefault(), _.fitView();
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
}, Le = (e) => [nt(), (() => {
|
|
304
|
+
var t = st();
|
|
305
|
+
return k(t, () => e.label ?? e.id), t;
|
|
306
|
+
})(), N(re, {
|
|
307
|
+
get when() {
|
|
308
|
+
return e.status;
|
|
309
|
+
},
|
|
310
|
+
children: (t) => (() => {
|
|
311
|
+
var o = it();
|
|
312
|
+
return k(o, () => de(t())), o;
|
|
313
|
+
})()
|
|
314
|
+
})], fe = (e) => {
|
|
315
|
+
const t = I().get(e), o = [];
|
|
316
|
+
t?.status && o.push(`${x().status}: ${de(t.status)}.`);
|
|
317
|
+
const c = (g) => g.map((v) => ft(I().get(v), v)).join(", "), a = (y().incoming.get(e) ?? []).map((g) => g.source), i = (y().outgoing.get(e) ?? []).map((g) => g.target);
|
|
318
|
+
return a.length && o.push(`${x().dependsOn}: ${c(a)}.`), i.length && o.push(`${x().requiredBy}: ${c(i)}.`), o.join(" ");
|
|
319
|
+
}, Ee = (e, t) => {
|
|
320
|
+
const o = () => I().get(e), c = {
|
|
321
|
+
id: e
|
|
322
|
+
};
|
|
323
|
+
for (const r of mt) Object.defineProperty(c, r, {
|
|
324
|
+
enumerable: !0,
|
|
325
|
+
get: () => o()?.[r]
|
|
326
|
+
});
|
|
327
|
+
const a = {
|
|
328
|
+
get selected() {
|
|
329
|
+
return le(e);
|
|
330
|
+
},
|
|
331
|
+
get related() {
|
|
332
|
+
return F().nodes.get(e) ?? null;
|
|
333
|
+
},
|
|
334
|
+
get dimmed() {
|
|
335
|
+
const r = F();
|
|
336
|
+
return !!n.dimUnrelated && r.active && !le(e) && !r.nodes.has(e);
|
|
337
|
+
},
|
|
338
|
+
get focused() {
|
|
339
|
+
return H() === e;
|
|
340
|
+
}
|
|
341
|
+
}, i = () => `${R}-node-${t()}`, g = () => {
|
|
342
|
+
const r = b().nodes.get(e), u = r ? {
|
|
343
|
+
left: `${r.x + C}px`,
|
|
344
|
+
top: `${r.y + C}px`,
|
|
345
|
+
width: `${r.width}px`,
|
|
346
|
+
height: `${r.height}px`
|
|
347
|
+
} : {
|
|
348
|
+
display: "none"
|
|
349
|
+
}, s = o()?.accent;
|
|
350
|
+
return s && (u["--smwb-dag-view-node-accent"] = s), u;
|
|
351
|
+
}, v = (r) => {
|
|
352
|
+
if (r.target !== r.currentTarget) return;
|
|
353
|
+
ue(e), K(e);
|
|
354
|
+
let u = !0;
|
|
355
|
+
try {
|
|
356
|
+
u = r.currentTarget.matches(":focus-visible");
|
|
357
|
+
} catch {
|
|
358
|
+
}
|
|
359
|
+
u && ge(e);
|
|
360
|
+
}, d = (r) => {
|
|
361
|
+
r.target === r.currentTarget && H() === e && K(null);
|
|
362
|
+
}, m = V(() => (n.renderNode ?? Le)(c, a));
|
|
363
|
+
return (() => {
|
|
364
|
+
var r = at(), u = r.firstChild;
|
|
365
|
+
return r.addEventListener("blur", d), r.addEventListener("focus", v), r.$$click = (s) => he(e, s), _e((s) => {
|
|
366
|
+
B.set(e, s), oe(() => B.get(e) === s && B.delete(e));
|
|
367
|
+
}, r), l(r, "data-dag-id", e), k(r, m, u), k(u, () => fe(e)), W((s) => {
|
|
368
|
+
var h = ne("smwb-dag-view__node", {
|
|
369
|
+
"smwb-dag-view__node--selected": a.selected,
|
|
370
|
+
"smwb-dag-view__node--upstream": a.related === "upstream",
|
|
371
|
+
"smwb-dag-view__node--downstream": a.related === "downstream",
|
|
372
|
+
"smwb-dag-view__node--dimmed": a.dimmed,
|
|
373
|
+
"smwb-dag-view__node--disabled": !!o()?.disabled
|
|
374
|
+
}), w = o()?.status, p = a.selected ? "true" : "false", A = o()?.disabled ? "true" : void 0, pe = fe(e) ? i() : void 0, be = G() === e ? 0 : -1, Ze = g(), ye = i();
|
|
375
|
+
return h !== s.e && Ue(r, s.e = h), w !== s.t && l(r, "data-status", s.t = w), p !== s.a && l(r, "aria-selected", s.a = p), A !== s.o && l(r, "aria-disabled", s.o = A), pe !== s.i && l(r, "aria-describedby", s.i = pe), be !== s.n && l(r, "tabindex", s.n = be), s.s = Fe(r, Ze, s.s), ye !== s.h && l(u, "id", s.h = ye), s;
|
|
376
|
+
}, {
|
|
377
|
+
e: void 0,
|
|
378
|
+
t: void 0,
|
|
379
|
+
a: void 0,
|
|
380
|
+
o: void 0,
|
|
381
|
+
i: void 0,
|
|
382
|
+
n: void 0,
|
|
383
|
+
s: void 0,
|
|
384
|
+
h: void 0
|
|
385
|
+
}), r;
|
|
386
|
+
})();
|
|
387
|
+
}, Oe = (e) => {
|
|
388
|
+
const t = F(), o = t.edges.get(e.id);
|
|
389
|
+
return ne("smwb-dag-view__edge", {
|
|
390
|
+
"smwb-dag-view__edge--active": o !== void 0,
|
|
391
|
+
"smwb-dag-view__edge--upstream": o === "upstream",
|
|
392
|
+
"smwb-dag-view__edge--downstream": o === "downstream",
|
|
393
|
+
"smwb-dag-view__edge--dimmed": !!n.dimUnrelated && t.active && o === void 0,
|
|
394
|
+
"smwb-dag-view__edge--reversed": e.reversed
|
|
395
|
+
});
|
|
396
|
+
}, ve = () => je(n.style, {
|
|
397
|
+
height: n.height === void 0 ? void 0 : ht(n.height)
|
|
398
|
+
});
|
|
399
|
+
return (() => {
|
|
400
|
+
var e = lt(), t = e.firstChild, o = t.firstChild, c = o.firstChild, a = c.firstChild, i = a.nextSibling, g = c.nextSibling, v = Ke(n.ref, (d) => D = d);
|
|
401
|
+
return typeof v == "function" && _e(v, e), Ne(e, Re({
|
|
402
|
+
get "data-testid"() {
|
|
403
|
+
return n["data-testid"] ?? "dag-view";
|
|
404
|
+
}
|
|
405
|
+
}, T, {
|
|
406
|
+
get class() {
|
|
407
|
+
return ne("smwb-dag-view", n.class);
|
|
408
|
+
}
|
|
409
|
+
}, () => ve() === void 0 ? {} : {
|
|
410
|
+
style: ve()
|
|
411
|
+
}, {
|
|
412
|
+
get "data-direction"() {
|
|
413
|
+
return n.direction;
|
|
414
|
+
},
|
|
415
|
+
get "data-zoom"() {
|
|
416
|
+
return Ie() ? "far" : void 0;
|
|
417
|
+
},
|
|
418
|
+
get "data-interacting"() {
|
|
419
|
+
return Me() ? "" : void 0;
|
|
420
|
+
}
|
|
421
|
+
}), !1, !0), t.$$keydown = Ce, l(a, "id", se), l(i, "id", ie), k(g, N(Se, {
|
|
422
|
+
get each() {
|
|
423
|
+
return b().edges;
|
|
424
|
+
},
|
|
425
|
+
children: (d) => (() => {
|
|
426
|
+
var m = ut();
|
|
427
|
+
return W((r) => {
|
|
428
|
+
var u = Oe(d), s = d.source, h = d.target, w = Xe(d.points, n.direction), p = `url(#${F().edges.has(d.id) ? ie : se})`;
|
|
429
|
+
return u !== r.e && l(m, "class", r.e = u), s !== r.t && l(m, "data-source", r.t = s), h !== r.a && l(m, "data-target", r.a = h), w !== r.o && l(m, "d", r.o = w), p !== r.i && l(m, "marker-end", r.i = p), r;
|
|
430
|
+
}, {
|
|
431
|
+
e: void 0,
|
|
432
|
+
t: void 0,
|
|
433
|
+
a: void 0,
|
|
434
|
+
o: void 0,
|
|
435
|
+
i: void 0
|
|
436
|
+
}), m;
|
|
437
|
+
})()
|
|
438
|
+
})), k(t, N(Se, {
|
|
439
|
+
get each() {
|
|
440
|
+
return ce();
|
|
441
|
+
},
|
|
442
|
+
children: (d, m) => Ee(d, m)
|
|
443
|
+
}), null), k(e, N(re, {
|
|
444
|
+
get when() {
|
|
445
|
+
return n.summary;
|
|
446
|
+
},
|
|
447
|
+
get children() {
|
|
448
|
+
var d = dt();
|
|
449
|
+
return l(d, "id", ae), k(d, () => n.summary), d;
|
|
450
|
+
}
|
|
451
|
+
}), null), k(e, N(re, {
|
|
452
|
+
get when() {
|
|
453
|
+
return n.controls;
|
|
454
|
+
},
|
|
455
|
+
get children() {
|
|
456
|
+
var d = ct(), m = d.firstChild, r = m.nextSibling, u = r.nextSibling;
|
|
457
|
+
return m.$$click = () => _.zoomBy(1.25), r.$$click = () => _.zoomBy(0.8), u.$$click = () => _.fitView(), W((s) => {
|
|
458
|
+
var h = x().controls, w = x().zoomIn, p = x().zoomOut, A = x().fitView;
|
|
459
|
+
return h !== s.e && l(d, "aria-label", s.e = h), w !== s.t && l(m, "title", s.t = w), p !== s.a && l(r, "title", s.a = p), A !== s.o && l(u, "title", s.o = A), s;
|
|
460
|
+
}, {
|
|
461
|
+
e: void 0,
|
|
462
|
+
t: void 0,
|
|
463
|
+
a: void 0,
|
|
464
|
+
o: void 0
|
|
465
|
+
}), d;
|
|
466
|
+
}
|
|
467
|
+
}), null), W((d) => {
|
|
468
|
+
var m = n.label, r = x().roleDescription, u = n.summary ? ae : void 0, s = `${Z().width}px`, h = `${Z().height}px`, w = Qe($()), p = Z().width, A = Z().height;
|
|
469
|
+
return m !== d.e && l(t, "aria-label", d.e = m), r !== d.t && l(t, "aria-roledescription", d.t = r), u !== d.a && l(t, "aria-describedby", d.a = u), s !== d.o && Q(t, "width", d.o = s), h !== d.i && Q(t, "height", d.i = h), w !== d.n && Q(t, "transform", d.n = w), p !== d.s && l(o, "width", d.s = p), A !== d.h && l(o, "height", d.h = A), d;
|
|
470
|
+
}, {
|
|
471
|
+
e: void 0,
|
|
472
|
+
t: void 0,
|
|
473
|
+
a: void 0,
|
|
474
|
+
o: void 0,
|
|
475
|
+
i: void 0,
|
|
476
|
+
n: void 0,
|
|
477
|
+
s: void 0,
|
|
478
|
+
h: void 0
|
|
479
|
+
}), e;
|
|
480
|
+
})();
|
|
481
|
+
}
|
|
482
|
+
Ge(["click", "keydown"]);
|
|
483
|
+
export {
|
|
484
|
+
At as DagView
|
|
485
|
+
};
|
|
486
|
+
//# sourceMappingURL=dagView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagView.js","sources":["../../../../../src/components/dataDisplay/dagView/dagView.tsx"],"sourcesContent":["import {\n DEV,\n For,\n type JSX,\n Show,\n createEffect,\n createMemo,\n createSelector,\n createSignal,\n createUniqueId,\n mergeProps,\n on,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n} from \"solid-js\";\nimport cn from \"clsx\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\nimport {\n type DagDirection,\n type DagLayoutEdge,\n type DagLayoutInput,\n type DagLayoutNode,\n type DagLayoutResult,\n dagEdgePath,\n dagLayout,\n} from \"./dagLayout\";\nimport { type Viewport, centerOn, createPanZoom, fitBounds, isVisible, viewportTransform, zoomAt } from \"./panZoom\";\n\n/** A node's status: a built-in one, coloured by the theme, or any word of the app's, styled by `[data-status]`. */\nexport type DagViewStatus =\n | \"idle\"\n | \"pending\"\n | \"running\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"skipped\"\n | (string & {});\n\nexport interface DagViewNode<T = unknown> {\n /** Unique among the nodes; edges name nodes by it. */\n id: string;\n /** What the default node shows, and its accessible name; the id unless given. */\n label?: JSX.Element;\n /** Colours the node's accent from the theme. */\n status?: DagViewStatus | undefined;\n /** The node's accent colour, over its status colour: any CSS colour. */\n accent?: string | undefined;\n /** The node's width in pixels; `nodeWidth` unless given. */\n width?: number | undefined;\n /** The node's height in pixels; `nodeHeight` unless given. */\n height?: number | undefined;\n /** Anything of the app's, handed back to `renderNode` and `onNodeClick`. */\n data?: T;\n /** Shown, focusable, but not selectable. */\n disabled?: boolean | undefined;\n}\n\nexport interface DagViewEdge {\n /** `source->target` unless given. */\n id?: string | undefined;\n /** The id of the node the edge starts from: the one depended on. */\n source: string;\n /** The id of the node the edge points to: the one that depends on `source`. */\n target: string;\n}\n\n/** A node's state for `renderNode`. Its fields are reactive: read them in JSX or an effect. */\nexport interface DagViewNodeState {\n readonly selected: boolean;\n /** Next to the selected node: \"upstream\" feeds it, \"downstream\" depends on it. */\n readonly related: \"upstream\" | \"downstream\" | null;\n /** Set apart from the selected node and its neighbours, with `dimUnrelated`. */\n readonly dimmed: boolean;\n /** Has keyboard focus. */\n readonly focused: boolean;\n}\n\n/** Where the graph is: moved by x, y (pixels) and scaled by zoom. */\nexport type DagViewViewport = Viewport;\n\n/** Moves the view from outside; handed over by `apiRef` once the graph is in the page. */\nexport interface DagViewApi {\n /** Fits the whole graph in view. */\n fitView(): void;\n /** Zooms to `zoom` around the middle of the view. */\n zoomTo(zoom: number): void;\n /** Zooms by `factor` around the middle of the view. */\n zoomBy(factor: number): void;\n /** Moves the node with this id to the middle of the view. */\n centerNode(id: string): void;\n}\n\n/** Texts for assistive technology and the zoom buttons, English by default. */\nexport interface DagViewLabels {\n /** What the graph is called as a widget: \"dependency graph\". */\n roleDescription: string;\n /** \"Status\", before a node's status word. */\n status: string;\n /** \"Depends on\", before the names of the nodes a node's edges come from. */\n dependsOn: string;\n /** \"Required by\", before the names of the nodes a node's edges go to. */\n requiredBy: string;\n /** Status words, shown on the default nodes and read out: { running: \"Running\", … }. */\n statuses: Record<string, string>;\n zoomIn: string;\n zoomOut: string;\n fitView: string;\n /** The name of the group of zoom buttons. */\n controls: string;\n}\n\nexport interface DagViewProps<T = unknown> extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onClick\"> {\n /** What the graph shows: its accessible name. */\n label: string;\n /** The graph in words, for screen readers; it is there on the server too. */\n summary?: string | undefined;\n /** The nodes. A change of status, label or data alone does not lay the graph out again. */\n nodes: readonly DagViewNode<T>[];\n /** The edges, from the node depended on to the node that depends on it. */\n edges: readonly DagViewEdge[];\n /**\n * Draws a node's content inside its box; the default shows a status dot,\n * the label and the status word. Called once per node: `node` and `state`\n * are reactive, so read their fields in JSX. Keep the content\n * non-interactive where you can: a node is an ARIA option, whose content\n * assistive technology may read as plain text, and a click in it also\n * selects the node. Links and buttons in it are left out of the Tab order\n * except in the node that is the graph's Tab stop.\n */\n renderNode?: ((node: DagViewNode<T>, state: DagViewNodeState) => JSX.Element) | undefined;\n /** Which way the layers run: \"LR\" (left to right, default) or \"TB\" (top to bottom). */\n direction?: DagDirection | undefined;\n /** A node's width in pixels, unless the node sets its own; 180 by default. */\n nodeWidth?: number | undefined;\n /** A node's height in pixels, unless the node sets its own; 56 by default. */\n nodeHeight?: number | undefined;\n /** The space between layers in pixels; 64 by default. */\n rankGap?: number | undefined;\n /** The space between nodes in a layer in pixels; 24 by default. */\n nodeGap?: number | undefined;\n /** Lays the graph out in place of the built-in layout, e.g. with dagre or elk. It must be synchronous. */\n layout?: ((input: DagLayoutInput) => DagLayoutResult) | undefined;\n /** The selected node's id (controlled); null selects nothing. */\n selectedId?: string | null | undefined;\n /** The node selected at first (uncontrolled). */\n defaultSelectedId?: string | null | undefined;\n /** A node was selected (its id) or the selection was cleared (null). */\n onSelectedChange?: ((id: string | null) => void) | undefined;\n /** A node was clicked, or chosen with Enter or Space. Not called for a disabled node. */\n onNodeClick?: ((node: DagViewNode<T>, event: MouseEvent | KeyboardEvent) => void) | undefined;\n /** Fades the nodes and edges that are not next to the selected node. */\n dimUnrelated?: boolean | undefined;\n /** Where the graph is (controlled). */\n viewport?: DagViewViewport | undefined;\n /** Where the graph is at first (uncontrolled); with `fit={false}` the page does not move after it loads. */\n defaultViewport?: DagViewViewport | undefined;\n /** The view moved or zoomed: at most once per frame during a gesture. */\n onViewportChange?: ((viewport: DagViewViewport) => void) | undefined;\n /** Fits the graph in view once it is in the page, and again when its nodes or edges change; true by default. */\n fit?: boolean | undefined;\n /** The smallest zoom; 0.1 by default. */\n minZoom?: number | undefined;\n /** The largest zoom; 2 by default. */\n maxZoom?: number | undefined;\n /** What a plain mouse wheel does: \"zoom\" (default), \"pan\", or \"none\" (the page scrolls). Ctrl+wheel and a trackpad pinch always zoom. */\n wheel?: \"zoom\" | \"pan\" | \"none\" | undefined;\n /** Shows the zoom in, zoom out and fit buttons; true by default. */\n controls?: boolean | undefined;\n /** Texts for assistive technology and the buttons, over the English defaults. */\n labels?: Partial<DagViewLabels> | undefined;\n /**\n * The graph's height: a number of pixels or any CSS length; 480 by default,\n * from the stylesheet, so a height in `style` works too. It fills the width.\n */\n height?: number | string | undefined;\n /** Gets the functions that move the view from outside. */\n apiRef?: ((api: DagViewApi) => void) | undefined;\n /** Test id of the root `<div>`; `dag-view` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** Room around the graph inside its world, in pixels. */\nconst PADDING = 24;\n\nconst DEFAULT_LABELS: DagViewLabels = {\n roleDescription: \"dependency graph\",\n status: \"Status\",\n dependsOn: \"Depends on\",\n requiredBy: \"Required by\",\n statuses: {\n idle: \"Idle\",\n pending: \"Pending\",\n running: \"Running\",\n success: \"Success\",\n warning: \"Warning\",\n error: \"Error\",\n skipped: \"Skipped\",\n },\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n fitView: \"Fit to view\",\n controls: \"Zoom\",\n};\n\nconst NODE_KEYS = [\"label\", \"status\", \"accent\", \"width\", \"height\", \"data\", \"disabled\"] as const;\n\n/** What can take focus inside a node's own content. */\nconst INNER_FOCUSABLE =\n 'a[href], button, input, select, textarea, iframe, summary, audio[controls], video[controls], [tabindex], [contenteditable]:not([contenteditable=\"false\"])';\n\nconst cssLength =(value: number | string): string => (typeof value === \"number\" ? `${value}px` : value);\n\nconst sameList = (a: readonly string[], b: readonly string[]): boolean =>\n a.length === b.length && a.every((value, i) => value === b[i]);\n\n/** A node's name in words, for descriptions: its label when that is text, else its id. */\nconst nameOf = (node: DagViewNode<unknown> | undefined, id: string): string => {\n const label = node?.label;\n return typeof label === \"string\" || typeof label === \"number\" ? String(label) : id;\n};\n\nconst warn = DEV ? (message: string): void => console.warn(`[smwb] DagView: ${message}`) : undefined;\n\n/**\n * A directed graph of dependencies: nodes in layers, left to right or top to\n * bottom, joined by arrows. A node is selected by a click or the keyboard, and\n * the edges into and out of it light up; the view pans and zooms with a mouse,\n * a trackpad, touch or the keyboard.\n */\nexport function DagView<T = unknown>(props: DagViewProps<T>): JSX.Element {\n const merged = mergeProps(\n {\n direction: \"LR\" as DagDirection,\n nodeWidth: 180,\n nodeHeight: 56,\n rankGap: 64,\n nodeGap: 24,\n fit: true,\n minZoom: 0.1,\n maxZoom: 2,\n wheel: \"zoom\" as \"zoom\" | \"pan\" | \"none\",\n controls: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"style\",\n \"label\",\n \"summary\",\n \"nodes\",\n \"edges\",\n \"renderNode\",\n \"direction\",\n \"nodeWidth\",\n \"nodeHeight\",\n \"rankGap\",\n \"nodeGap\",\n \"layout\",\n \"selectedId\",\n \"defaultSelectedId\",\n \"onSelectedChange\",\n \"onNodeClick\",\n \"dimUnrelated\",\n \"viewport\",\n \"defaultViewport\",\n \"onViewportChange\",\n \"fit\",\n \"minZoom\",\n \"maxZoom\",\n \"wheel\",\n \"controls\",\n \"labels\",\n \"height\",\n \"apiRef\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const uid = createUniqueId();\n const arrowId = `${uid}-arrow`;\n const activeArrowId = `${uid}-arrow-active`;\n const summaryId = `${uid}-summary`;\n let root!: HTMLDivElement;\n const elements = new Map<string, HTMLElement>();\n\n const labels = createMemo(\n (): DagViewLabels => ({\n ...DEFAULT_LABELS,\n ...local.labels,\n statuses: { ...DEFAULT_LABELS.statuses, ...local.labels?.statuses },\n })\n );\n const statusWord = (status: string): string => labels().statuses[status] ?? status;\n\n // ---- Nodes and layout ----\n\n const byId = createMemo(() => {\n const map = new Map<string, DagViewNode<T>>();\n for (const node of local.nodes) if (!map.has(node.id)) map.set(node.id, node);\n return map;\n });\n // Nodes are drawn by id, so content stays mounted when the app replaces a\n // node object to change its status.\n const ids = createMemo(() => [...byId().keys()], [], { equals: sameList });\n\n // The layout depends only on the graph's shape; a status change leaves it be.\n const structure = createMemo(\n () => {\n const nodes = [...byId().values()].map((node) => ({\n id: node.id,\n width: node.width ?? local.nodeWidth,\n height: node.height ?? local.nodeHeight,\n }));\n const edges = local.edges.map((edge) => ({ id: edge.id, source: edge.source, target: edge.target }));\n const input: DagLayoutInput = {\n nodes,\n edges,\n direction: local.direction,\n rankGap: local.rankGap,\n nodeGap: local.nodeGap,\n warn,\n };\n const key = JSON.stringify([\n local.direction,\n local.rankGap,\n local.nodeGap,\n nodes.map((n) => [n.id, n.width, n.height]),\n edges.map((e) => [e.id ?? null, e.source, e.target]),\n ]);\n return { key, input };\n },\n undefined,\n { equals: (a, b) => a.key === b.key }\n );\n const layout = createMemo(() => (local.layout ?? dagLayout)(structure().input));\n\n // The flow of a layer runs along x in LR and along y in TB; across it is the other one.\n const across = (node: DagLayoutNode): number => (local.direction === \"TB\" ? node.x : node.y);\n\n const graph = createMemo(() => {\n const result = layout();\n const incoming = new Map<string, DagLayoutEdge[]>();\n const outgoing = new Map<string, DagLayoutEdge[]>();\n for (const edge of result.edges) {\n if (!incoming.has(edge.target)) incoming.set(edge.target, []);\n if (!outgoing.has(edge.source)) outgoing.set(edge.source, []);\n incoming.get(edge.target)!.push(edge);\n outgoing.get(edge.source)!.push(edge);\n }\n const ordered = [...result.nodes.values()].sort((a, b) => a.layer - b.layer || across(a) - across(b));\n const layers = new Map<number, DagLayoutNode[]>();\n for (const node of ordered) {\n if (!layers.has(node.layer)) layers.set(node.layer, []);\n layers.get(node.layer)!.push(node);\n }\n return { incoming, outgoing, ordered, layers };\n });\n\n // ---- Selection ----\n\n const [selected, setSelected] = createControllableState<string | null>({\n value: () => local.selectedId,\n defaultValue: untrack(() => local.defaultSelectedId) ?? null,\n onChange: (id) => local.onSelectedChange?.(id),\n });\n const isSelected = createSelector(selected);\n\n const relations = createMemo(() => {\n const id = selected();\n const edges = new Map<string, \"upstream\" | \"downstream\">();\n const nodes = new Map<string, \"upstream\" | \"downstream\">();\n if (id === null || !layout().nodes.has(id)) return { active: false, edges, nodes };\n const { incoming, outgoing } = graph();\n for (const edge of incoming.get(id) ?? []) {\n edges.set(edge.id, \"upstream\");\n nodes.set(edge.source, \"upstream\");\n }\n for (const edge of outgoing.get(id) ?? []) {\n edges.set(edge.id, \"downstream\");\n nodes.set(edge.target, \"downstream\");\n }\n return { active: true, edges, nodes };\n });\n\n // ---- Focus: one tab stop, on the last focused node, else the selected one, else the first ----\n\n const [active, setActive] = createSignal<string | null>(null);\n const [focused, setFocused] = createSignal<string | null>(null);\n const tabStop = createMemo(() => {\n const nodes = layout().nodes;\n const last = active();\n if (last !== null && nodes.has(last)) return last;\n const chosen = selected();\n if (chosen !== null && nodes.has(chosen)) return chosen;\n return graph().ordered[0]?.id ?? null;\n });\n\n // ---- Viewport ----\n\n const [viewport, setViewport] = createControllableState<Viewport>({\n value: () => local.viewport,\n defaultValue: untrack(() => local.defaultViewport) ?? { x: 0, y: 0, zoom: 1 },\n onChange: (next) => local.onViewportChange?.(next),\n });\n const [interacting, setInteracting] = createSignal(false);\n const far = createMemo(() => viewport().zoom < 0.45);\n\n const size = (): { width: number; height: number } => ({\n width: root?.clientWidth ?? 0,\n height: root?.clientHeight ?? 0,\n });\n const hasSize = (): boolean => {\n const { width, height } = size();\n return width > 0 && height > 0;\n };\n const worldSize = (): { width: number; height: number } => ({\n width: layout().width + PADDING * 2,\n height: layout().height + PADDING * 2,\n });\n const nodeRect = (id: string): { x: number; y: number; width: number; height: number } | undefined => {\n const box = layout().nodes.get(id);\n return box && { x: box.x + PADDING, y: box.y + PADDING, width: box.width, height: box.height };\n };\n\n const api: DagViewApi = {\n fitView() {\n if (!hasSize()) return;\n const world = worldSize();\n setViewport(\n fitBounds(\n { x: 0, y: 0, ...world },\n size(),\n 0,\n local.minZoom,\n Math.max(local.minZoom, Math.min(1, local.maxZoom))\n )\n );\n },\n zoomTo(zoom) {\n api.zoomBy(zoom / viewport().zoom);\n },\n zoomBy(factor) {\n const { width, height } = size();\n setViewport(zoomAt(viewport(), { x: width / 2, y: height / 2 }, factor, local.minZoom, local.maxZoom));\n },\n centerNode(id) {\n const rect = nodeRect(id);\n if (!rect) return;\n setViewport(centerOn(viewport(), { x: rect.x + rect.width / 2, y: rect.y + rect.height / 2 }, size()));\n },\n };\n\n const ensureVisible = (id: string): void => {\n const rect = nodeRect(id);\n if (rect && hasSize() && !isVisible(viewport(), rect, size(), 8)) api.centerNode(id);\n };\n\n // Fit once the graph has a size, and again when its shape changes. At zero\n // size (a hidden tab) the fit waits for the first resize that gives one.\n let fitPending = false;\n const tryFit = (): void => {\n if (!fitPending || !hasSize()) return;\n fitPending = false;\n api.fitView();\n };\n createEffect(\n on(\n layout,\n () => {\n if (!untrack(() => local.fit)) return;\n fitPending = true;\n tryFit();\n },\n { defer: true }\n )\n );\n\n onMount(() => {\n const dispose = createPanZoom(root, {\n viewport,\n write: setViewport,\n minZoom: () => local.minZoom,\n maxZoom: () => local.maxZoom,\n wheel: () => local.wheel,\n onInteracting: setInteracting,\n });\n let frame = 0;\n const resizeObserver =\n typeof ResizeObserver === \"function\"\n ? new ResizeObserver(() => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(tryFit);\n })\n : undefined;\n resizeObserver?.observe(root);\n onCleanup(() => {\n dispose();\n resizeObserver?.disconnect();\n cancelAnimationFrame(frame);\n });\n fitPending = local.fit;\n tryFit();\n local.apiRef?.(api);\n });\n\n // ---- Interaction ----\n\n const choose = (id: string, event: MouseEvent | KeyboardEvent): void => {\n const node = byId().get(id);\n if (!node || node.disabled) return;\n setSelected(id);\n local.onNodeClick?.(node, event);\n };\n\n const focusNode = (id: string | undefined): void => {\n if (id === undefined) return;\n setActive(id);\n elements.get(id)?.focus({ preventScroll: true });\n ensureVisible(id);\n };\n\n // A node that goes away takes its selection with it, and focus moves to the\n // Tab stop rather than dropping to the page. Only a node that was there\n // counts: a selection given before its node loads is kept.\n createEffect<readonly string[] | undefined>((before) => {\n const now = ids();\n if (before) {\n untrack(() => {\n const present = new Set(now);\n const chosen = selected();\n if (chosen !== null && !present.has(chosen) && before.includes(chosen)) setSelected(null);\n const had = focused();\n if (had === null || present.has(had)) return;\n setFocused(null);\n const doc = root?.ownerDocument;\n const stop = tabStop();\n if (doc && (doc.activeElement === null || doc.activeElement === doc.body) && stop !== null)\n elements.get(stop)?.focus({ preventScroll: true });\n });\n }\n return now;\n });\n\n // One Tab stop: focusables in `renderNode` content (a link, a button) are\n // taken out of the Tab order, except in the node that is the Tab stop. Their\n // own tabindex comes back when their node becomes it.\n const ownTabIndex = new WeakMap<Element, string | null>();\n const syncInnerTabStops = (): void => {\n const stop = untrack(tabStop);\n for (const [id, el] of elements) {\n for (const inner of el.querySelectorAll(INNER_FOCUSABLE)) {\n if (!ownTabIndex.has(inner)) ownTabIndex.set(inner, inner.getAttribute(\"tabindex\"));\n const own = ownTabIndex.get(inner) ?? null;\n const next = id === stop ? own : \"-1\";\n if (inner.getAttribute(\"tabindex\") === next) continue;\n if (next === null) inner.removeAttribute(\"tabindex\");\n else inner.setAttribute(\"tabindex\", next);\n }\n }\n };\n onMount(() => {\n if (!local.renderNode) return;\n createEffect(on(tabStop, syncInnerTabStops));\n if (typeof MutationObserver !== \"function\") return;\n // Content that changes later (a link that shows up with a status) is caught too.\n const observer = new MutationObserver(syncInnerTabStops);\n observer.observe(root, { childList: true, subtree: true });\n onCleanup(() => observer.disconnect());\n });\n\n /** The node an arrow key leads to from `id`: along the edges, or to a neighbour in the layer. */\n const neighbour = (id: string, key: string): string | undefined => {\n const tb = local.direction === \"TB\";\n const forward = tb ? \"ArrowDown\" : \"ArrowRight\";\n const back = tb ? \"ArrowUp\" : \"ArrowLeft\";\n const before = tb ? \"ArrowLeft\" : \"ArrowUp\";\n const after = tb ? \"ArrowRight\" : \"ArrowDown\";\n const nodes = layout().nodes;\n const first = (list: string[]): string | undefined =>\n list\n .map((other) => nodes.get(other))\n .filter((node): node is DagLayoutNode => node !== undefined)\n .sort((a, b) => across(a) - across(b))[0]?.id;\n if (key === forward) return first((graph().outgoing.get(id) ?? []).map((e) => e.target));\n if (key === back) return first((graph().incoming.get(id) ?? []).map((e) => e.source));\n const self = nodes.get(id);\n if (!self) return undefined;\n const layer = graph().layers.get(self.layer) ?? [];\n const index = layer.findIndex((node) => node.id === id);\n if (key === before) return layer[index - 1]?.id;\n if (key === after) return layer[index + 1]?.id;\n return undefined;\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const target = event.target as HTMLElement;\n const id = target.dataset?.[\"dagId\"];\n // Keys pressed in a node's own content (a link, a field) are its own.\n if (id === undefined || !target.classList.contains(\"smwb-dag-view__node\")) return;\n // Ctrl, Cmd and Alt shortcuts are the browser's: page zoom, history, tabs.\n if (event.ctrlKey || event.metaKey || event.altKey) return;\n const key = event.key;\n if (key.startsWith(\"Arrow\") && event.shiftKey) {\n const step = 48;\n const v = viewport();\n const dx = key === \"ArrowLeft\" ? step : key === \"ArrowRight\" ? -step : 0;\n const dy = key === \"ArrowUp\" ? step : key === \"ArrowDown\" ? -step : 0;\n setViewport({ x: v.x + dx, y: v.y + dy, zoom: v.zoom });\n event.preventDefault();\n return;\n }\n if (key.startsWith(\"Arrow\")) {\n event.preventDefault();\n focusNode(neighbour(id, key));\n return;\n }\n switch (key) {\n case \"Home\":\n event.preventDefault();\n focusNode(graph().ordered[0]?.id);\n return;\n case \"End\":\n event.preventDefault();\n focusNode(graph().ordered[graph().ordered.length - 1]?.id);\n return;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n choose(id, event);\n return;\n case \"Escape\":\n // Handled only when there was a selection, so an enclosing dialog still gets it otherwise.\n if (selected() === null) return;\n event.preventDefault();\n setSelected(null);\n return;\n case \"+\":\n case \"=\":\n event.preventDefault();\n api.zoomBy(1.25);\n return;\n case \"-\":\n case \"_\":\n event.preventDefault();\n api.zoomBy(0.8);\n return;\n case \"0\":\n event.preventDefault();\n api.fitView();\n return;\n }\n };\n\n const defaultRender = (node: DagViewNode<T>): JSX.Element => (\n <>\n <span class=\"smwb-dag-view__dot\" aria-hidden=\"true\" />\n <span class=\"smwb-dag-view__label\">{node.label ?? node.id}</span>\n <Show when={node.status}>{(status) => <span class=\"smwb-dag-view__status\">{statusWord(status())}</span>}</Show>\n </>\n );\n\n const description = (id: string): string => {\n const node = byId().get(id);\n const parts: string[] = [];\n if (node?.status) parts.push(`${labels().status}: ${statusWord(node.status)}.`);\n const names = (list: string[]): string => list.map((other) => nameOf(byId().get(other), other)).join(\", \");\n const from = (graph().incoming.get(id) ?? []).map((e) => e.source);\n const to = (graph().outgoing.get(id) ?? []).map((e) => e.target);\n if (from.length) parts.push(`${labels().dependsOn}: ${names(from)}.`);\n if (to.length) parts.push(`${labels().requiredBy}: ${names(to)}.`);\n return parts.join(\" \");\n };\n\n const renderNodeFor = (id: string, index: () => number): JSX.Element => {\n const node = (): DagViewNode<T> | undefined => byId().get(id);\n // The node as `renderNode` sees it: its fields read the app's latest object.\n const view = { id } as DagViewNode<T>;\n for (const key of NODE_KEYS) Object.defineProperty(view, key, { enumerable: true, get: () => node()?.[key] });\n const state: DagViewNodeState = {\n get selected() {\n return isSelected(id);\n },\n get related() {\n return relations().nodes.get(id) ?? null;\n },\n get dimmed() {\n const r = relations();\n return Boolean(local.dimUnrelated) && r.active && !isSelected(id) && !r.nodes.has(id);\n },\n get focused() {\n return focused() === id;\n },\n };\n const descriptionId = (): string => `${uid}-node-${index()}`;\n const style = (): JSX.CSSProperties => {\n const box = layout().nodes.get(id);\n const css: JSX.CSSProperties = box\n ? {\n left: `${box.x + PADDING}px`,\n top: `${box.y + PADDING}px`,\n width: `${box.width}px`,\n height: `${box.height}px`,\n }\n : { display: \"none\" };\n const accent = node()?.accent;\n if (accent) css[\"--smwb-dag-view-node-accent\"] = accent;\n return css;\n };\n const onFocus = (event: FocusEvent): void => {\n if (event.target !== event.currentTarget) return;\n setActive(id);\n setFocused(id);\n let keyboard = true;\n try {\n keyboard = (event.currentTarget as HTMLElement).matches(\":focus-visible\");\n } catch {\n // An engine without :focus-visible: treat it as the keyboard.\n }\n if (keyboard) ensureVisible(id);\n };\n const onBlur = (event: FocusEvent): void => {\n if (event.target === event.currentTarget && focused() === id) setFocused(null);\n };\n const content = untrack(() => (local.renderNode ?? defaultRender)(view, state));\n return (\n <div\n role=\"option\"\n data-dag-id={id}\n ref={(el) => {\n elements.set(id, el);\n onCleanup(() => elements.get(id) === el && elements.delete(id));\n }}\n class={cn(\"smwb-dag-view__node\", {\n \"smwb-dag-view__node--selected\": state.selected,\n \"smwb-dag-view__node--upstream\": state.related === \"upstream\",\n \"smwb-dag-view__node--downstream\": state.related === \"downstream\",\n \"smwb-dag-view__node--dimmed\": state.dimmed,\n \"smwb-dag-view__node--disabled\": Boolean(node()?.disabled),\n })}\n data-status={node()?.status}\n aria-selected={state.selected ? \"true\" : \"false\"}\n aria-disabled={node()?.disabled ? \"true\" : undefined}\n aria-describedby={description(id) ? descriptionId() : undefined}\n tabIndex={tabStop() === id ? 0 : -1}\n style={style()}\n onClick={(event) => choose(id, event)}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {content}\n <span id={descriptionId()} hidden>\n {description(id)}\n </span>\n </div>\n );\n };\n\n const edgeClass = (edge: DagLayoutEdge): string => {\n const r = relations();\n const relation = r.edges.get(edge.id);\n return cn(\"smwb-dag-view__edge\", {\n \"smwb-dag-view__edge--active\": relation !== undefined,\n \"smwb-dag-view__edge--upstream\": relation === \"upstream\",\n \"smwb-dag-view__edge--downstream\": relation === \"downstream\",\n \"smwb-dag-view__edge--dimmed\": Boolean(local.dimUnrelated) && r.active && relation === undefined,\n \"smwb-dag-view__edge--reversed\": edge.reversed,\n });\n };\n\n // The default height is the stylesheet's, so a height in the caller's style is not overridden.\n const rootStyle = (): JSX.CSSProperties | string | undefined =>\n mergeStyle(local.style, { height: local.height === undefined ? undefined : cssLength(local.height) });\n\n return (\n <div\n data-testid={local[\"data-testid\"] ?? \"dag-view\"}\n {...rest}\n ref={mergeRefs(local.ref, (el) => (root = el))}\n class={cn(\"smwb-dag-view\", local.class)}\n // Only when there is one: the server would print an empty style=\"\".\n {...(rootStyle() === undefined ? {} : { style: rootStyle() })}\n data-direction={local.direction}\n data-zoom={far() ? \"far\" : undefined}\n data-interacting={interacting() ? \"\" : undefined}\n >\n <div\n class=\"smwb-dag-view__world\"\n role=\"listbox\"\n aria-label={local.label}\n aria-roledescription={labels().roleDescription}\n aria-describedby={local.summary ? summaryId : undefined}\n style={{\n width: `${worldSize().width}px`,\n height: `${worldSize().height}px`,\n transform: viewportTransform(viewport()),\n }}\n onKeyDown={onKeyDown}\n >\n <svg class=\"smwb-dag-view__edges\" width={worldSize().width} height={worldSize().height} aria-hidden=\"true\">\n <defs>\n <marker\n id={arrowId}\n viewBox=\"0 0 10 10\"\n refX=\"9\"\n refY=\"5\"\n markerWidth=\"10\"\n markerHeight=\"10\"\n markerUnits=\"userSpaceOnUse\"\n orient=\"auto-start-reverse\"\n >\n <path class=\"smwb-dag-view__arrow\" d=\"M0,1 L9,5 L0,9 z\" />\n </marker>\n <marker\n id={activeArrowId}\n viewBox=\"0 0 10 10\"\n refX=\"9\"\n refY=\"5\"\n markerWidth=\"10\"\n markerHeight=\"10\"\n markerUnits=\"userSpaceOnUse\"\n orient=\"auto-start-reverse\"\n >\n <path class=\"smwb-dag-view__arrow smwb-dag-view__arrow--active\" d=\"M0,1 L9,5 L0,9 z\" />\n </marker>\n </defs>\n <g transform={`translate(${PADDING} ${PADDING})`}>\n <For each={layout().edges}>\n {(edge) => (\n <path\n class={edgeClass(edge)}\n data-source={edge.source}\n data-target={edge.target}\n d={dagEdgePath(edge.points, local.direction)}\n marker-end={`url(#${relations().edges.has(edge.id) ? activeArrowId : arrowId})`}\n />\n )}\n </For>\n </g>\n </svg>\n <For each={ids()}>{(id, index) => renderNodeFor(id, index)}</For>\n </div>\n <Show when={local.summary}>\n <p id={summaryId} class=\"smwb-dag-view__summary\">\n {local.summary}\n </p>\n </Show>\n <Show when={local.controls}>\n <div class=\"smwb-dag-view__controls\" role=\"group\" aria-label={labels().controls}>\n <button\n type=\"button\"\n class=\"smwb-dag-view__control\"\n title={labels().zoomIn}\n onClick={() => api.zoomBy(1.25)}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 5v14M5 12h14\" />\n </svg>\n </button>\n <button\n type=\"button\"\n class=\"smwb-dag-view__control\"\n title={labels().zoomOut}\n onClick={() => api.zoomBy(0.8)}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M5 12h14\" />\n </svg>\n </button>\n <button\n type=\"button\"\n class=\"smwb-dag-view__control\"\n title={labels().fitView}\n onClick={() => api.fitView()}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5\" />\n </svg>\n </button>\n </div>\n </Show>\n </div>\n );\n}\n\nexport default DagView;\n"],"names":["PADDING","DEFAULT_LABELS","roleDescription","status","dependsOn","requiredBy","statuses","idle","pending","running","success","warning","error","skipped","zoomIn","zoomOut","fitView","controls","NODE_KEYS","INNER_FOCUSABLE","cssLength","value","sameList","a","b","length","every","i","nameOf","node","id","label","String","warn","DEV","message","console","undefined","DagView","props","merged","mergeProps","direction","nodeWidth","nodeHeight","rankGap","nodeGap","fit","minZoom","maxZoom","wheel","local","rest","splitProps","uid","createUniqueId","arrowId","activeArrowId","summaryId","root","elements","Map","labels","createMemo","statusWord","byId","map","nodes","has","set","ids","keys","equals","structure","values","width","height","edges","edge","source","target","input","key","JSON","stringify","n","e","layout","dagLayout","across","x","y","graph","result","incoming","outgoing","get","push","ordered","sort","layer","layers","selected","setSelected","createControllableState","selectedId","defaultValue","untrack","defaultSelectedId","onChange","onSelectedChange","isSelected","createSelector","relations","active","setActive","createSignal","focused","setFocused","tabStop","last","chosen","viewport","setViewport","defaultViewport","zoom","next","onViewportChange","interacting","setInteracting","far","size","clientWidth","clientHeight","hasSize","worldSize","nodeRect","box","api","world","fitBounds","Math","max","min","zoomTo","zoomBy","factor","zoomAt","centerNode","rect","centerOn","ensureVisible","isVisible","fitPending","tryFit","createEffect","on","defer","onMount","dispose","createPanZoom","write","onInteracting","frame","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","onCleanup","disconnect","apiRef","choose","event","disabled","onNodeClick","focusNode","focus","preventScroll","before","now","present","Set","includes","had","doc","ownerDocument","stop","activeElement","body","ownTabIndex","WeakMap","syncInnerTabStops","el","inner","querySelectorAll","getAttribute","own","removeAttribute","setAttribute","renderNode","MutationObserver","observer","childList","subtree","neighbour","tb","forward","back","after","first","list","other","filter","self","index","findIndex","onKeyDown","dataset","classList","contains","ctrlKey","metaKey","altKey","startsWith","shiftKey","v","dx","step","dy","preventDefault","defaultRender","_tmpl$","_el$2","_tmpl$2","_$insert","_$createComponent","Show","when","children","_el$3","_tmpl$3","description","parts","names","join","from","to","renderNodeFor","view","Object","defineProperty","enumerable","state","related","dimmed","r","Boolean","dimUnrelated","descriptionId","style","css","left","top","display","accent","onFocus","currentTarget","keyboard","matches","onBlur","content","_el$4","_tmpl$4","_el$5","firstChild","addEventListener","$$click","_$use","delete","_$setAttribute","_$effect","_p$","_v$","cn","_v$2","_v$3","_v$4","_v$5","_v$6","_v$7","_v$8","_$className","t","o","s","_$style","h","edgeClass","relation","reversed","rootStyle","mergeStyle","_el$6","_tmpl$7","_el$7","_el$8","_el$9","_el$0","_el$1","nextSibling","_el$10","_ref$","mergeRefs","ref","_$spread","_$mergeProps","class","$$keydown","For","each","_el$16","_tmpl$8","_v$19","_v$20","_v$21","_v$22","dagEdgePath","points","_v$23","summary","_el$11","_tmpl$5","_el$12","_tmpl$6","_el$13","_el$14","_el$15","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","viewportTransform","_v$17","_v$18","_$setStyleProperty","_$delegateEvents"],"mappings":"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"}
|