@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
|
@@ -6,6 +6,8 @@ import { Ripple } from "../../base/ripple";
|
|
|
6
6
|
import { Icon } from "../../base/icon";
|
|
7
7
|
import { mergeRefs } from "../../../primitives/mergeRefs";
|
|
8
8
|
import { callHandler } from "../../../primitives/callHandler";
|
|
9
|
+
import { isOwnClick } from "../../../utils/ownClick";
|
|
10
|
+
import { splitControlProps } from "../../../utils/controlProps";
|
|
9
11
|
function DeleteIcon(props) {
|
|
10
12
|
const icon = children(() => props.icon);
|
|
11
13
|
return <Show when={icon()} fallback={<Icon name="cancel" size={18} fill={1} />}>
|
|
@@ -26,6 +28,7 @@ function Chip(props) {
|
|
|
26
28
|
);
|
|
27
29
|
const [local, rest] = splitProps(merged, [
|
|
28
30
|
"label",
|
|
31
|
+
"labelId",
|
|
29
32
|
"class",
|
|
30
33
|
"deleteIcon",
|
|
31
34
|
"icon",
|
|
@@ -40,16 +43,24 @@ function Chip(props) {
|
|
|
40
43
|
"color",
|
|
41
44
|
"disabled",
|
|
42
45
|
"onClick",
|
|
46
|
+
// The chip sets these on its root too; its own handlers call the caller's first.
|
|
47
|
+
"onKeyDown",
|
|
48
|
+
"onPointerDown",
|
|
43
49
|
"deleteAriaLabel",
|
|
44
|
-
"ref"
|
|
50
|
+
"ref",
|
|
51
|
+
"data-testid"
|
|
45
52
|
]);
|
|
46
53
|
const icon = children(() => local.icon);
|
|
47
54
|
let rippleActions;
|
|
48
55
|
const onPointerDown = (event) => {
|
|
56
|
+
callHandler(local.onPointerDown, event);
|
|
49
57
|
if (!local.disabled) {
|
|
50
58
|
rippleActions?.onRipple(event);
|
|
51
59
|
}
|
|
52
60
|
};
|
|
61
|
+
const onDeleteClick = (event) => {
|
|
62
|
+
local.onDelete?.(event);
|
|
63
|
+
};
|
|
53
64
|
const onDeleteMouseDown = (event) => {
|
|
54
65
|
callHandler(local.onDeleteMouseDown, event);
|
|
55
66
|
event.stopPropagation();
|
|
@@ -63,18 +74,35 @@ function Chip(props) {
|
|
|
63
74
|
{ "smwb-disabled": local.disabled, "smwb-selected": local.selected }
|
|
64
75
|
);
|
|
65
76
|
const clickable = () => !!local.onClick && !local.disabled;
|
|
66
|
-
const
|
|
77
|
+
const [control, box] = splitControlProps(rest, () => !!local.onClick);
|
|
78
|
+
let content;
|
|
79
|
+
const onKeyDown = (event) => {
|
|
80
|
+
callHandler(local.onKeyDown, event);
|
|
81
|
+
if (!clickable() || event.target !== content) return;
|
|
82
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
83
|
+
event.preventDefault();
|
|
84
|
+
local.onClick?.();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const onChipClick = (event) => {
|
|
88
|
+
if (isOwnClick(event, content ?? null)) local.onClick?.();
|
|
89
|
+
};
|
|
90
|
+
const iconAndLabel = () => <>
|
|
67
91
|
<Show when={icon()}>
|
|
68
92
|
<span class="smwb-chip__icon">{icon()}</span>
|
|
69
93
|
</Show>
|
|
70
|
-
<span class="smwb-chip__label">
|
|
94
|
+
<span id={local.labelId} class="smwb-chip__label">
|
|
95
|
+
{local.label}
|
|
96
|
+
</span>
|
|
97
|
+
</>;
|
|
98
|
+
const trailing = () => <>
|
|
71
99
|
<Show when={local.onDelete}>
|
|
72
100
|
<button
|
|
73
101
|
type="button"
|
|
74
102
|
class="smwb-chip__delete-icon"
|
|
75
103
|
aria-label={local.deleteAriaLabel}
|
|
76
104
|
disabled={local.disabled}
|
|
77
|
-
onClick={
|
|
105
|
+
onClick={onDeleteClick}
|
|
78
106
|
onMouseDown={onDeleteMouseDown}
|
|
79
107
|
>
|
|
80
108
|
<DeleteIcon icon={local.deleteIcon} />
|
|
@@ -85,36 +113,44 @@ function Chip(props) {
|
|
|
85
113
|
return <Show
|
|
86
114
|
when={local.asLink && local.href}
|
|
87
115
|
fallback={<span
|
|
88
|
-
{...
|
|
116
|
+
{...box}
|
|
89
117
|
ref={mergeRefs(local.ref)}
|
|
90
|
-
data-testid="chip"
|
|
118
|
+
data-testid={local["data-testid"] ?? "chip"}
|
|
91
119
|
class={classes()}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
onClick={clickable() ? () => local.onClick?.() : void 0}
|
|
96
|
-
onKeyDown={clickable() ? (event) => {
|
|
97
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
98
|
-
event.preventDefault();
|
|
99
|
-
local.onClick?.();
|
|
100
|
-
}
|
|
101
|
-
} : void 0}
|
|
120
|
+
aria-disabled={!local.onClick && local.disabled || void 0}
|
|
121
|
+
onClick={clickable() ? onChipClick : void 0}
|
|
122
|
+
onKeyDown={onKeyDown}
|
|
102
123
|
onPointerDown={onPointerDown}
|
|
103
124
|
>
|
|
104
|
-
|
|
125
|
+
<span
|
|
126
|
+
{...control}
|
|
127
|
+
ref={(el) => content = el}
|
|
128
|
+
class="smwb-chip__content"
|
|
129
|
+
role={local.onClick ? "button" : void 0}
|
|
130
|
+
tabindex={control.tabindex ?? (clickable() ? 0 : void 0)}
|
|
131
|
+
aria-disabled={!!local.onClick && local.disabled || void 0}
|
|
132
|
+
>
|
|
133
|
+
{iconAndLabel()}
|
|
134
|
+
</span>
|
|
135
|
+
{
|
|
136
|
+
/* Beside the button, not in it: the delete button keeps its name and input. */
|
|
137
|
+
}
|
|
138
|
+
{trailing()}
|
|
105
139
|
</span>}
|
|
106
140
|
>
|
|
107
141
|
<a
|
|
108
142
|
{...rest}
|
|
109
143
|
ref={mergeRefs(local.ref)}
|
|
110
|
-
data-testid="chip-link"
|
|
144
|
+
data-testid={local["data-testid"] ?? "chip-link"}
|
|
111
145
|
class={classes()}
|
|
112
146
|
href={local.href}
|
|
147
|
+
onKeyDown={local.onKeyDown}
|
|
113
148
|
onPointerDown={onPointerDown}
|
|
114
149
|
target={local.target}
|
|
115
150
|
rel="noreferrer"
|
|
116
151
|
>
|
|
117
|
-
{
|
|
152
|
+
{iconAndLabel()}
|
|
153
|
+
{trailing()}
|
|
118
154
|
</a>
|
|
119
155
|
</Show>;
|
|
120
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chip/chip.entry.less\";\nimport { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends JSX.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n onDelete?: (event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void;\n icon?: JSX.Element;\n deleteIcon?: JSX.Element;\n label: string;\n onClick?: () => void;\n onDeleteMouseDown?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n ref?: Ref<HTMLSpanElement | HTMLAnchorElement>;\n}\n\n/**\n * The delete control's icon: a custom one or the default. It is read here, only\n * when the control renders — markup created and not rendered has no server node\n * to hydrate against either.\n */\nfunction DeleteIcon(props: { icon: JSX.Element }): JSX.Element {\n const icon = children(() => props.icon);\n return (\n <Show when={icon()} fallback={<Icon name=\"cancel\" size={18} fill={1} />}>\n {icon()}\n </Show>\n );\n}\n\nexport function Chip(props: ChipProps): JSX.Element {\n const merged = mergeProps(\n {\n target: \"_blank\",\n variant: \"filled\" as const,\n size: \"medium\" as const,\n color: \"default\" as ChipColor,\n disabled: false,\n deleteAriaLabel: \"Remove\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"class\",\n \"deleteIcon\",\n \"icon\",\n \"onDelete\",\n \"onDeleteMouseDown\",\n \"asLink\",\n \"href\",\n \"target\",\n \"selected\",\n \"variant\",\n \"size\",\n \"color\",\n \"disabled\",\n \"onClick\",\n \"deleteAriaLabel\",\n \"ref\",\n ]);\n\n // Read the icon once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for the <Show> test has no server DOM\n // node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown = (event: PointerEvent): void => {\n if (!local.disabled) {\n rippleActions?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n callHandler(local.onDeleteMouseDown, event);\n event.stopPropagation();\n };\n\n const classes = (): string =>\n cn(\n \"smwb-chip\",\n `smwb-${local.variant}`,\n `smwb-chip_size-${local.size}`,\n local.color !== \"default\" && `smwb-chip_color-${local.color}`,\n local.class,\n { \"smwb-disabled\": local.disabled, \"smwb-selected\": local.selected }\n );\n\n const clickable = (): boolean => !!local.onClick && !local.disabled;\n\n const inner = (): JSX.Element => (\n <>\n <Show when={icon()}>\n <span class=\"smwb-chip__icon\">{icon()}</span>\n </Show>\n <span class=\"smwb-chip__label\">{local.label}</span>\n <Show when={local.onDelete}>\n <button\n type=\"button\"\n class=\"smwb-chip__delete-icon\"\n aria-label={local.deleteAriaLabel}\n disabled={local.disabled}\n onClick={local.onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n <DeleteIcon icon={local.deleteIcon} />\n </button>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </>\n );\n\n return (\n <Show\n when={local.asLink && local.href}\n fallback={\n <span\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"chip\"\n class={classes()}\n role={clickable() ? \"button\" : undefined}\n tabindex={clickable() ? 0 : undefined}\n aria-disabled={local.disabled || undefined}\n onClick={clickable() ? () => local.onClick?.() : undefined}\n onKeyDown={\n clickable()\n ? (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onClick?.();\n }\n }\n : undefined\n }\n onPointerDown={onPointerDown}\n >\n {inner()}\n </span>\n }\n >\n <a\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"chip-link\"\n class={classes()}\n href={local.href}\n onPointerDown={onPointerDown}\n target={local.target}\n rel=\"noreferrer\"\n >\n {inner()}\n </a>\n </Show>\n );\n}\n\nexport default Chip;\n"],"mappings":"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","names":[],"file":"chip.jsx"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chip/chip.entry.less\";\nimport { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { splitControlProps } from \"../../../utils/controlProps\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends JSX.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n /**\n * Class name(s) for the chip's root, a `<span>` (an `<a>` with `asLink`). `style`, `id`, `data-*`, `aria-hidden`,\n * `ref` and event handlers go to the root too. In a clickable chip (`onClick`), `role`, `tabindex`, `onFocus`,\n * `onBlur` and the other `aria-*` attributes go to its button, `.smwb-chip__content` (the icon and the label), which\n * is also the element to focus. Otherwise they stay on the root, which holds the delete button too.\n */\n class?: string | undefined;\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n /**\n * Shows a delete button in the chip and runs when it is pressed: a click, or\n * Enter / Space while the button has focus. In a clickable chip it sits\n * beside the chip's button, not inside it, and pressing it does not run the\n * chip's `onClick`.\n */\n onDelete?: (event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void;\n icon?: JSX.Element;\n deleteIcon?: JSX.Element;\n label: string;\n /**\n * Makes the chip clickable: its icon and label become a button, named by\n * them, with a focus ring around the whole chip. The delete button is not\n * part of that button but its sibling, so it keeps its own name.\n *\n * Runs on a click on the chip and on Enter / Space while the chip's button\n * has focus, but not on a click or key on the delete button.\n */\n onClick?: () => void;\n onDeleteMouseDown?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;\n /**\n * Disables the chip: it is dimmed, takes no pointer input and says `aria-disabled`, and its delete button is\n * disabled too. With `onClick` the chip is still a button, out of the tab order.\n */\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /**\n * Id of the label's element, for another element to take the chip's text as\n * its name (`aria-labelledby`) without the delete button's name.\n */\n labelId?: string | undefined;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n /** Test id of the root; `chip`, or `chip-link` for a link, unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLSpanElement | HTMLAnchorElement>;\n}\n\n/**\n * The delete control's icon: a custom one or the default. It is read here, only\n * when the control renders — markup created and not rendered has no server node\n * to hydrate against either.\n */\nfunction DeleteIcon(props: { icon: JSX.Element }): JSX.Element {\n const icon = children(() => props.icon);\n return (\n <Show when={icon()} fallback={<Icon name=\"cancel\" size={18} fill={1} />}>\n {icon()}\n </Show>\n );\n}\n\nexport function Chip(props: ChipProps): JSX.Element {\n const merged = mergeProps(\n {\n target: \"_blank\",\n variant: \"filled\" as const,\n size: \"medium\" as const,\n color: \"default\" as ChipColor,\n disabled: false,\n deleteAriaLabel: \"Remove\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"labelId\",\n \"class\",\n \"deleteIcon\",\n \"icon\",\n \"onDelete\",\n \"onDeleteMouseDown\",\n \"asLink\",\n \"href\",\n \"target\",\n \"selected\",\n \"variant\",\n \"size\",\n \"color\",\n \"disabled\",\n \"onClick\",\n // The chip sets these on its root too; its own handlers call the caller's first.\n \"onKeyDown\",\n \"onPointerDown\",\n \"deleteAriaLabel\",\n \"ref\",\n \"data-testid\",\n ]);\n\n // Read the icon once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for the <Show> test has no server DOM\n // node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown: JSX.EventHandler<HTMLSpanElement | HTMLAnchorElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!local.disabled) {\n rippleActions?.onRipple(event);\n }\n };\n\n // Reads onDelete on each click. Solid binds event handlers once, and <Show>\n // builds the button in a tracked scope, so binding onDelete itself there\n // would rebuild the button for each new onDelete.\n const onDeleteClick: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n local.onDelete?.(event);\n };\n\n const onDeleteMouseDown: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n callHandler(local.onDeleteMouseDown, event);\n event.stopPropagation();\n };\n\n const classes = (): string =>\n cn(\n \"smwb-chip\",\n `smwb-${local.variant}`,\n `smwb-chip_size-${local.size}`,\n local.color !== \"default\" && `smwb-chip_color-${local.color}`,\n local.class,\n { \"smwb-disabled\": local.disabled, \"smwb-selected\": local.selected }\n );\n\n const clickable = (): boolean => !!local.onClick && !local.disabled;\n // With onClick the chip's content is its button, and what the chip is to the\n // keyboard and to assistive tech goes there. Without it the chip is not a\n // control: the caller's role and ARIA attributes stay on the root, around\n // the delete button too.\n const [control, box] = splitControlProps(rest, () => !!local.onClick);\n let content: HTMLSpanElement | undefined;\n\n // Keys pressed on the delete button bubble up here too; only the keys of the\n // chip's button activate it.\n const onKeyDown: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n callHandler(local.onKeyDown, event);\n if (!clickable() || event.target !== content) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onClick?.();\n }\n };\n\n // A click on the chip's button, or on its padding, activates the chip: not\n // one on the delete button, nor one in a Portal rendered inside, which Solid\n // delivers here too.\n const onChipClick: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (isOwnClick(event, content ?? null)) local.onClick?.();\n };\n\n // The chip's own content: its button when it is clickable.\n const iconAndLabel = (): JSX.Element => (\n <>\n <Show when={icon()}>\n <span class=\"smwb-chip__icon\">{icon()}</span>\n </Show>\n <span id={local.labelId} class=\"smwb-chip__label\">\n {local.label}\n </span>\n </>\n );\n // After the content: in a clickable chip, beside its button, not in it.\n const trailing = (): JSX.Element => (\n <>\n <Show when={local.onDelete}>\n <button\n type=\"button\"\n class=\"smwb-chip__delete-icon\"\n aria-label={local.deleteAriaLabel}\n disabled={local.disabled}\n onClick={onDeleteClick}\n onMouseDown={onDeleteMouseDown}\n >\n <DeleteIcon icon={local.deleteIcon} />\n </button>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </>\n );\n\n return (\n <Show\n when={local.asLink && local.href}\n fallback={\n <span\n {...box}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"chip\"}\n class={classes()}\n // A disabled chip says so where the caller's ARIA attributes are: on\n // its button with onClick, on the root without. Where it sets none\n // (undefined), the caller's stay.\n aria-disabled={(!local.onClick && local.disabled) || undefined}\n onClick={clickable() ? onChipClick : undefined}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n >\n <span\n {...control}\n ref={(el) => (content = el)}\n class=\"smwb-chip__content\"\n // With onClick the content is the chip's button, and a disabled chip\n // says so: these win over the caller's, and where the chip sets none\n // (undefined), the caller's stay. Its tabindex is a default: the\n // caller's wins, e.g. for roving focus.\n role={local.onClick ? \"button\" : undefined}\n tabindex={control.tabindex ?? (clickable() ? 0 : undefined)}\n aria-disabled={(!!local.onClick && local.disabled) || undefined}\n >\n {iconAndLabel()}\n </span>\n {/* Beside the button, not in it: the delete button keeps its name and input. */}\n {trailing()}\n </span>\n }\n >\n <a\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"chip-link\"}\n class={classes()}\n href={local.href}\n onKeyDown={local.onKeyDown}\n onPointerDown={onPointerDown}\n target={local.target}\n rel=\"noreferrer\"\n >\n {iconAndLabel()}\n {trailing()}\n </a>\n </Show>\n );\n}\n\nexport default Chip;\n"],"mappings":"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","names":[],"file":"chip.jsx"}
|
|
@@ -29,20 +29,23 @@ function ChipGroup(props) {
|
|
|
29
29
|
local.onChange?.(value);
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
|
-
return
|
|
32
|
+
return (
|
|
33
|
+
// role="group" is a default: the caller's own wins, and an explicit undefined keeps it.
|
|
34
|
+
<div {...rest} role={rest.role ?? "group"} class={cn("smwb-chip-group", local.class)}>
|
|
33
35
|
<For each={local.options}>
|
|
34
36
|
{(option) => <Chip
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
label={option.label}
|
|
38
|
+
size={local.size}
|
|
39
|
+
color={local.color}
|
|
40
|
+
selected={isSelected(option.value)}
|
|
41
|
+
variant={isSelected(option.value) ? "filled" : "outlined"}
|
|
42
|
+
disabled={!!(local.disabled || option.disabled)}
|
|
43
|
+
onClick={() => toggle(option.value)}
|
|
44
|
+
{...option.icon ? { icon: option.icon } : {}}
|
|
45
|
+
/>}
|
|
44
46
|
</For>
|
|
45
|
-
</div
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
46
49
|
}
|
|
47
50
|
var chipGroup_default = ChipGroup;
|
|
48
51
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chipGroup/chipGroup.entry.less\";\nimport { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll\n * for filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n <div {...rest} role
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chipGroup/chipGroup.entry.less\";\nimport { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll\n * for filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n // role=\"group\" is a default: the caller's own wins, and an explicit undefined keeps it.\n <div {...rest} role={rest.role ?? \"group\"} class={cn(\"smwb-chip-group\", local.class)}>\n <For each={local.options}>\n {(option) => (\n <Chip\n label={option.label}\n size={local.size}\n color={local.color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(local.disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n {...(option.icon ? { icon: option.icon } : {})}\n />\n )}\n </For>\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAmB,KAAK,YAAY,kBAAkB;AACtD,OAAO,QAAQ;AACf,SAAS,YAA4B;AA2B9B,SAAS,UAAU,OAAoC;AAC5D,QAAM,SAAS,WAAW,EAAE,MAAM,UAAmB,OAAO,UAAuB,GAAG,KAAK;AAC3F,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,MAAgB;AACrC,QAAI,MAAM,SAAS,KAAM,QAAO,CAAC;AACjC,WAAO,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,QAAQ,CAAC,MAAM,KAAK;AAAA,EAChE;AACA,QAAM,aAAa,CAAC,UAA2B,eAAe,EAAE,SAAS,KAAK;AAE9E,QAAM,SAAS,CAAC,UAAwB;AACtC,QAAI,MAAM,UAAU;AAClB,YAAM,UAAU,eAAe;AAC/B,YAAM,OAAO,QAAQ,SAAS,KAAK,IAAI,QAAQ,OAAO,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK;AAC9F,YAAM,WAAW,IAAI;AAAA,IACvB,OAAO;AACL,YAAM,WAAW,KAAK;AAAA,IACxB;AAAA,EACF;AAEA;AAAA;AAAA,IAEE,CAAC,QAAQ,MAAM,MAAM,KAAK,QAAQ,SAAS,OAAO,GAAG,mBAAmB,MAAM,KAAK,GAAG;AAAA,MACpF,CAAC,IAAI,MAAM,MAAM,SAAS;AAAA,SACvB,CAAC,WACA,CAAC;AAAA,MACC,OAAO,OAAO;AAAA,MACd,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,WAAW,OAAO,KAAK;AAAA,MACjC,SAAS,WAAW,OAAO,KAAK,IAAI,WAAW;AAAA,MAC/C,UAAU,CAAC,EAAE,MAAM,YAAY,OAAO;AAAA,MACtC,SAAS,MAAM,OAAO,OAAO,KAAK;AAAA,UAC7B,OAAO,OAAO,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,IAC9C,GACA;AAAA,MACJ,EAbC,IAaK;AAAA,IACR,EAfC;AAAA;AAiBL;AAEA,IAAO,oBAAQ;","names":[],"file":"chipGroup.jsx"}
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
const dagEdgeId = (edge) => edge.id ?? `${edge.source}->${edge.target}`;
|
|
2
|
+
function normalise(input) {
|
|
3
|
+
const warn = input.warn ?? (() => void 0);
|
|
4
|
+
const nodes = [];
|
|
5
|
+
const index = /* @__PURE__ */ new Map();
|
|
6
|
+
for (const node of input.nodes) {
|
|
7
|
+
if (index.has(node.id)) {
|
|
8
|
+
warn(`node "${node.id}" is listed twice; the second is dropped.`);
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
index.set(node.id, nodes.length);
|
|
12
|
+
nodes.push(node);
|
|
13
|
+
}
|
|
14
|
+
const edges = [];
|
|
15
|
+
const pairs = /* @__PURE__ */ new Set();
|
|
16
|
+
const ids = /* @__PURE__ */ new Set();
|
|
17
|
+
for (const edge of input.edges) {
|
|
18
|
+
const from = index.get(edge.source);
|
|
19
|
+
const to = index.get(edge.target);
|
|
20
|
+
if (from === void 0 || to === void 0) {
|
|
21
|
+
const missing = from === void 0 ? edge.source : edge.target;
|
|
22
|
+
warn(`edge ${edge.source} -> ${edge.target} names an unknown node "${missing}"; it is dropped.`);
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (from === to) {
|
|
26
|
+
warn(`edge ${edge.source} -> ${edge.target} is a self-loop; it is dropped.`);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const pair = `${from} ${to}`;
|
|
30
|
+
const id = dagEdgeId(edge);
|
|
31
|
+
if (pairs.has(pair) || ids.has(id)) {
|
|
32
|
+
warn(`edge ${edge.source} -> ${edge.target} is listed twice; the second is dropped.`);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
pairs.add(pair);
|
|
36
|
+
ids.add(id);
|
|
37
|
+
edges.push({ id, source: edge.source, target: edge.target, from, to, reversed: false });
|
|
38
|
+
}
|
|
39
|
+
const out = nodes.map(() => []);
|
|
40
|
+
edges.forEach((edge, i) => out[edge.from].push(i));
|
|
41
|
+
const state = new Uint8Array(nodes.length);
|
|
42
|
+
for (let root = 0; root < nodes.length; root++) {
|
|
43
|
+
if (state[root]) continue;
|
|
44
|
+
const stack = [[root, 0]];
|
|
45
|
+
state[root] = 1;
|
|
46
|
+
while (stack.length) {
|
|
47
|
+
const top = stack[stack.length - 1];
|
|
48
|
+
const [v, next] = top;
|
|
49
|
+
const list = out[v];
|
|
50
|
+
if (next >= list.length) {
|
|
51
|
+
state[v] = 2;
|
|
52
|
+
stack.pop();
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
top[1] = next + 1;
|
|
56
|
+
const edge = edges[list[next]];
|
|
57
|
+
if (state[edge.to] === 1) edge.reversed = true;
|
|
58
|
+
else if (state[edge.to] === 0) {
|
|
59
|
+
state[edge.to] = 1;
|
|
60
|
+
stack.push([edge.to, 0]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return { nodes, index, edges };
|
|
65
|
+
}
|
|
66
|
+
function assignLayers(count, arcs) {
|
|
67
|
+
const out = Array.from({ length: count }, () => []);
|
|
68
|
+
const inDegree = new Array(count).fill(0);
|
|
69
|
+
for (const [u, v] of arcs) {
|
|
70
|
+
out[u].push(v);
|
|
71
|
+
inDegree[v]++;
|
|
72
|
+
}
|
|
73
|
+
const hasPred = inDegree.map((d) => d > 0);
|
|
74
|
+
const layer = new Array(count).fill(0);
|
|
75
|
+
const order = [];
|
|
76
|
+
const queue = [];
|
|
77
|
+
for (let v = 0; v < count; v++) if (inDegree[v] === 0) queue.push(v);
|
|
78
|
+
for (let head = 0; head < queue.length; head++) {
|
|
79
|
+
const u = queue[head];
|
|
80
|
+
order.push(u);
|
|
81
|
+
for (const v of out[u]) {
|
|
82
|
+
layer[v] = Math.max(layer[v], layer[u] + 1);
|
|
83
|
+
if (--inDegree[v] === 0) queue.push(v);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
for (let i = order.length - 1; i >= 0; i--) {
|
|
87
|
+
const v = order[i];
|
|
88
|
+
const succs = out[v];
|
|
89
|
+
if (succs.length === 0 || hasPred[v]) continue;
|
|
90
|
+
layer[v] = Math.min(...succs.map((s) => layer[s])) - 1;
|
|
91
|
+
}
|
|
92
|
+
return layer;
|
|
93
|
+
}
|
|
94
|
+
function crossingsBetween(upper, vertices, position) {
|
|
95
|
+
const pairs = [];
|
|
96
|
+
for (const u of upper) for (const v of vertices[u].succs) pairs.push([position[u], position[v]]);
|
|
97
|
+
pairs.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
|
|
98
|
+
let size = 1;
|
|
99
|
+
for (const [, b] of pairs) size = Math.max(size, b + 2);
|
|
100
|
+
const tree = new Int32Array(size + 1);
|
|
101
|
+
let crossings = 0;
|
|
102
|
+
for (let i = pairs.length - 1; i >= 0; i--) {
|
|
103
|
+
const b = pairs[i][1];
|
|
104
|
+
for (let j = b; j > 0; j -= j & -j) crossings += tree[j];
|
|
105
|
+
for (let j = b + 1; j <= size; j += j & -j) tree[j]++;
|
|
106
|
+
}
|
|
107
|
+
return crossings;
|
|
108
|
+
}
|
|
109
|
+
function totalCrossings(layers, vertices, position) {
|
|
110
|
+
let sum = 0;
|
|
111
|
+
for (let l = 0; l + 1 < layers.length; l++) sum += crossingsBetween(layers[l], vertices, position);
|
|
112
|
+
return sum;
|
|
113
|
+
}
|
|
114
|
+
function reorder(layer, vertices, position, down) {
|
|
115
|
+
const key = /* @__PURE__ */ new Map();
|
|
116
|
+
for (const v of layer) {
|
|
117
|
+
const neighbours = down ? vertices[v].preds : vertices[v].succs;
|
|
118
|
+
if (neighbours.length === 0) key.set(v, position[v]);
|
|
119
|
+
else key.set(v, neighbours.reduce((sum, n) => sum + position[n], 0) / neighbours.length);
|
|
120
|
+
}
|
|
121
|
+
layer.sort((a, b) => key.get(a) - key.get(b) || position[a] - position[b]);
|
|
122
|
+
layer.forEach((v, i) => position[v] = i);
|
|
123
|
+
}
|
|
124
|
+
function orderLayers(layers, vertices, sweeps) {
|
|
125
|
+
const position = new Int32Array(vertices.length);
|
|
126
|
+
for (const layer of layers) layer.forEach((v, i) => position[v] = i);
|
|
127
|
+
let best = layers.map((layer) => layer.slice());
|
|
128
|
+
let bestCrossings = totalCrossings(layers, vertices, position);
|
|
129
|
+
let stale = 0;
|
|
130
|
+
for (let sweep = 0; sweep < sweeps && bestCrossings > 0; sweep++) {
|
|
131
|
+
const down = sweep % 2 === 0;
|
|
132
|
+
if (down) for (let l = 1; l < layers.length; l++) reorder(layers[l], vertices, position, true);
|
|
133
|
+
else for (let l = layers.length - 2; l >= 0; l--) reorder(layers[l], vertices, position, false);
|
|
134
|
+
const crossings = totalCrossings(layers, vertices, position);
|
|
135
|
+
if (crossings < bestCrossings) {
|
|
136
|
+
bestCrossings = crossings;
|
|
137
|
+
best = layers.map((layer) => layer.slice());
|
|
138
|
+
stale = 0;
|
|
139
|
+
} else if (++stale >= 2) break;
|
|
140
|
+
}
|
|
141
|
+
best.forEach((layer, l) => layers[l] = layer);
|
|
142
|
+
}
|
|
143
|
+
function place(desired, gaps, weights) {
|
|
144
|
+
const offset = [0];
|
|
145
|
+
for (let i = 1; i < desired.length; i++) offset.push(offset[i - 1] + gaps[i - 1]);
|
|
146
|
+
const blocks = [];
|
|
147
|
+
desired.forEach((d, i) => {
|
|
148
|
+
let block = { value: d - offset[i], weight: weights[i], count: 1 };
|
|
149
|
+
while (blocks.length && blocks[blocks.length - 1].value > block.value) {
|
|
150
|
+
const last = blocks.pop();
|
|
151
|
+
const weight = last.weight + block.weight;
|
|
152
|
+
block = {
|
|
153
|
+
value: (last.value * last.weight + block.value * block.weight) / weight,
|
|
154
|
+
weight,
|
|
155
|
+
count: last.count + block.count
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
blocks.push(block);
|
|
159
|
+
});
|
|
160
|
+
const result = [];
|
|
161
|
+
for (const block of blocks) for (let k = 0; k < block.count; k++) result.push(block.value + offset[result.length]);
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
function assignCross(layers, vertices, nodeGap) {
|
|
165
|
+
const gapBetween = (a, b) => {
|
|
166
|
+
const va = vertices[a];
|
|
167
|
+
const vb = vertices[b];
|
|
168
|
+
const gap = va.node < 0 && vb.node < 0 ? nodeGap / 2 : nodeGap;
|
|
169
|
+
return va.crossSize / 2 + gap + vb.crossSize / 2;
|
|
170
|
+
};
|
|
171
|
+
for (const layer of layers) {
|
|
172
|
+
let at = 0;
|
|
173
|
+
layer.forEach((v, i) => {
|
|
174
|
+
if (i > 0) at += gapBetween(layer[i - 1], v);
|
|
175
|
+
vertices[v].cross = at;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
const passes = ["down", "up", "down", "up", "both", "both"];
|
|
179
|
+
for (const pass of passes) {
|
|
180
|
+
const range = pass === "up" ? layers.map((_, l) => layers.length - 1 - l) : layers.map((_, l) => l);
|
|
181
|
+
for (const l of range) {
|
|
182
|
+
const layer = layers[l];
|
|
183
|
+
if (layer.length === 0) continue;
|
|
184
|
+
const desired = layer.map((v) => {
|
|
185
|
+
const vertex = vertices[v];
|
|
186
|
+
const neighbours = pass === "down" ? vertex.preds : pass === "up" ? vertex.succs : [...vertex.preds, ...vertex.succs];
|
|
187
|
+
if (neighbours.length === 0) return vertex.cross;
|
|
188
|
+
return neighbours.reduce((sum, n) => sum + vertices[n].cross, 0) / neighbours.length;
|
|
189
|
+
});
|
|
190
|
+
const gaps = layer.slice(1).map((v, i) => gapBetween(layer[i], v));
|
|
191
|
+
const weights = layer.map((v) => vertices[v].node < 0 ? 2 : 1);
|
|
192
|
+
place(desired, gaps, weights).forEach((cross, i) => vertices[layer[i]].cross = cross);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
function layoutPart(members, graph, edgeList, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps) {
|
|
197
|
+
const local = /* @__PURE__ */ new Map();
|
|
198
|
+
members.forEach((n, i) => local.set(n, i));
|
|
199
|
+
const arcs = edgeList.map((e) => {
|
|
200
|
+
const edge = graph.edges[e];
|
|
201
|
+
const from = local.get(edge.from);
|
|
202
|
+
const to = local.get(edge.to);
|
|
203
|
+
return edge.reversed ? [to, from] : [from, to];
|
|
204
|
+
});
|
|
205
|
+
const layerOf = assignLayers(members.length, arcs);
|
|
206
|
+
const vertices = members.map((n, i) => ({
|
|
207
|
+
node: n,
|
|
208
|
+
rankSize: rankSizeOf(n),
|
|
209
|
+
crossSize: crossSizeOf(n),
|
|
210
|
+
layer: layerOf[i],
|
|
211
|
+
cross: 0,
|
|
212
|
+
preds: [],
|
|
213
|
+
succs: []
|
|
214
|
+
}));
|
|
215
|
+
const segments = edgeList.map((e, k) => {
|
|
216
|
+
const [from, to] = arcs[k];
|
|
217
|
+
const chain = [from];
|
|
218
|
+
let previous = from;
|
|
219
|
+
for (let l = vertices[from].layer + 1; l < vertices[to].layer; l++) {
|
|
220
|
+
const dummy = vertices.length;
|
|
221
|
+
vertices.push({ node: -1, rankSize: 0, crossSize: 0, layer: l, cross: 0, preds: [], succs: [] });
|
|
222
|
+
vertices[previous].succs.push(dummy);
|
|
223
|
+
vertices[dummy].preds.push(previous);
|
|
224
|
+
chain.push(dummy);
|
|
225
|
+
previous = dummy;
|
|
226
|
+
}
|
|
227
|
+
vertices[previous].succs.push(to);
|
|
228
|
+
vertices[to].preds.push(previous);
|
|
229
|
+
chain.push(to);
|
|
230
|
+
return { edge: e, chain };
|
|
231
|
+
});
|
|
232
|
+
const layerCount = vertices.reduce((max, v) => Math.max(max, v.layer + 1), 0);
|
|
233
|
+
const layers = Array.from({ length: layerCount }, () => []);
|
|
234
|
+
vertices.forEach((v, i) => layers[v.layer].push(i));
|
|
235
|
+
orderLayers(layers, vertices, sweeps);
|
|
236
|
+
assignCross(layers, vertices, nodeGap);
|
|
237
|
+
const thickness = layers.map((layer) => layer.reduce((max, v) => Math.max(max, vertices[v].rankSize), 0));
|
|
238
|
+
const start = [];
|
|
239
|
+
let rank = 0;
|
|
240
|
+
thickness.forEach((t, l) => {
|
|
241
|
+
start[l] = rank;
|
|
242
|
+
rank += t + (l + 1 < thickness.length ? rankGap : 0);
|
|
243
|
+
});
|
|
244
|
+
let minCross = Infinity;
|
|
245
|
+
let maxCross = -Infinity;
|
|
246
|
+
for (const v of vertices) {
|
|
247
|
+
minCross = Math.min(minCross, v.cross - v.crossSize / 2);
|
|
248
|
+
maxCross = Math.max(maxCross, v.cross + v.crossSize / 2);
|
|
249
|
+
}
|
|
250
|
+
const shift = Number.isFinite(minCross) ? -minCross : 0;
|
|
251
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
252
|
+
layers.forEach(
|
|
253
|
+
(layer, l) => layer.forEach((v, order) => {
|
|
254
|
+
const vertex = vertices[v];
|
|
255
|
+
if (vertex.node < 0) return;
|
|
256
|
+
nodes.set(vertex.node, {
|
|
257
|
+
rank: start[l] + (thickness[l] - vertex.rankSize) / 2,
|
|
258
|
+
cross: vertex.cross - vertex.crossSize / 2 + shift,
|
|
259
|
+
layer: l,
|
|
260
|
+
order
|
|
261
|
+
});
|
|
262
|
+
})
|
|
263
|
+
);
|
|
264
|
+
const edges = /* @__PURE__ */ new Map();
|
|
265
|
+
for (const { edge, chain } of segments) {
|
|
266
|
+
const points = [];
|
|
267
|
+
chain.forEach((v, i) => {
|
|
268
|
+
const vertex = vertices[v];
|
|
269
|
+
const l = vertex.layer;
|
|
270
|
+
const cross = vertex.cross + shift;
|
|
271
|
+
const bandStart = start[l] + (thickness[l] - vertex.rankSize) / 2;
|
|
272
|
+
if (i === 0) points.push({ rank: bandStart + vertex.rankSize, cross });
|
|
273
|
+
else if (i === chain.length - 1) points.push({ rank: bandStart, cross });
|
|
274
|
+
else {
|
|
275
|
+
points.push({ rank: start[l], cross }, { rank: start[l] + thickness[l], cross });
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
if (graph.edges[edge].reversed) points.reverse();
|
|
279
|
+
edges.set(edge, points);
|
|
280
|
+
}
|
|
281
|
+
return {
|
|
282
|
+
nodes,
|
|
283
|
+
edges,
|
|
284
|
+
rankExtent: rank,
|
|
285
|
+
crossExtent: Number.isFinite(maxCross) ? maxCross - minCross : 0
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
function dagLayout(input) {
|
|
289
|
+
const direction = input.direction ?? "LR";
|
|
290
|
+
const rankGap = input.rankGap ?? 64;
|
|
291
|
+
const nodeGap = input.nodeGap ?? 24;
|
|
292
|
+
const sweeps = input.sweeps ?? 8;
|
|
293
|
+
const graph = normalise(input);
|
|
294
|
+
const lr = direction === "LR";
|
|
295
|
+
const rankSizeOf = (n) => lr ? graph.nodes[n].width : graph.nodes[n].height;
|
|
296
|
+
const crossSizeOf = (n) => lr ? graph.nodes[n].height : graph.nodes[n].width;
|
|
297
|
+
const parent = graph.nodes.map((_, i) => i);
|
|
298
|
+
const find = (v) => {
|
|
299
|
+
while (parent[v] !== v) {
|
|
300
|
+
parent[v] = parent[parent[v]];
|
|
301
|
+
v = parent[v];
|
|
302
|
+
}
|
|
303
|
+
return v;
|
|
304
|
+
};
|
|
305
|
+
for (const edge of graph.edges) {
|
|
306
|
+
const a = find(edge.from);
|
|
307
|
+
const b = find(edge.to);
|
|
308
|
+
if (a !== b) parent[Math.max(a, b)] = Math.min(a, b);
|
|
309
|
+
}
|
|
310
|
+
const parts = /* @__PURE__ */ new Map();
|
|
311
|
+
graph.nodes.forEach((_, i) => {
|
|
312
|
+
const root = find(i);
|
|
313
|
+
if (!parts.has(root)) parts.set(root, { members: [], edges: [] });
|
|
314
|
+
parts.get(root).members.push(i);
|
|
315
|
+
});
|
|
316
|
+
graph.edges.forEach((edge, e) => parts.get(find(edge.from)).edges.push(e));
|
|
317
|
+
const placedNodes = /* @__PURE__ */ new Map();
|
|
318
|
+
const placedEdges = /* @__PURE__ */ new Map();
|
|
319
|
+
const toPoint = (rank, cross) => lr ? { x: rank, y: cross } : { x: cross, y: rank };
|
|
320
|
+
let crossAt = 0;
|
|
321
|
+
let rankExtent = 0;
|
|
322
|
+
for (const part of parts.values()) {
|
|
323
|
+
const laid = layoutPart(part.members, graph, part.edges, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps);
|
|
324
|
+
for (const [n, p] of laid.nodes) {
|
|
325
|
+
const node = graph.nodes[n];
|
|
326
|
+
placedNodes.set(n, {
|
|
327
|
+
id: node.id,
|
|
328
|
+
...toPoint(p.rank, p.cross + crossAt),
|
|
329
|
+
width: node.width,
|
|
330
|
+
height: node.height,
|
|
331
|
+
layer: p.layer,
|
|
332
|
+
order: p.order
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
for (const [e, points] of laid.edges) {
|
|
336
|
+
placedEdges.set(
|
|
337
|
+
e,
|
|
338
|
+
points.map((p) => toPoint(p.rank, p.cross + crossAt))
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
rankExtent = Math.max(rankExtent, laid.rankExtent);
|
|
342
|
+
crossAt += laid.crossExtent + nodeGap * 2;
|
|
343
|
+
}
|
|
344
|
+
const crossExtent = Math.max(0, crossAt - nodeGap * 2);
|
|
345
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
346
|
+
graph.nodes.forEach((node, i) => nodes.set(node.id, placedNodes.get(i)));
|
|
347
|
+
const pairs = new Set(graph.edges.map((edge) => `${edge.from} ${edge.to}`));
|
|
348
|
+
const edges = graph.edges.map((edge, e) => {
|
|
349
|
+
let points = placedEdges.get(e);
|
|
350
|
+
if (edge.reversed && pairs.has(`${edge.to} ${edge.from}`)) {
|
|
351
|
+
const across = (n) => lr ? graph.nodes[n].height : graph.nodes[n].width;
|
|
352
|
+
const offset = Math.min(8, across(edge.from) / 4, across(edge.to) / 4);
|
|
353
|
+
points = points.map((p) => lr ? { x: p.x, y: p.y + offset } : { x: p.x + offset, y: p.y });
|
|
354
|
+
}
|
|
355
|
+
return { id: edge.id, source: edge.source, target: edge.target, points, reversed: edge.reversed };
|
|
356
|
+
});
|
|
357
|
+
const extent = toPoint(rankExtent, crossExtent);
|
|
358
|
+
return { nodes, edges, width: extent.x, height: extent.y };
|
|
359
|
+
}
|
|
360
|
+
function dagEdgePath(points, direction = "LR") {
|
|
361
|
+
if (points.length === 0) return "";
|
|
362
|
+
const round = (n) => Math.round(n * 10) / 10;
|
|
363
|
+
const first = points[0];
|
|
364
|
+
let d = `M${round(first.x)},${round(first.y)}`;
|
|
365
|
+
for (let i = 1; i < points.length; i++) {
|
|
366
|
+
const a = points[i - 1];
|
|
367
|
+
const b = points[i];
|
|
368
|
+
if (direction === "LR") {
|
|
369
|
+
const mid = (a.x + b.x) / 2;
|
|
370
|
+
d += ` C${round(mid)},${round(a.y)} ${round(mid)},${round(b.y)} ${round(b.x)},${round(b.y)}`;
|
|
371
|
+
} else {
|
|
372
|
+
const mid = (a.y + b.y) / 2;
|
|
373
|
+
d += ` C${round(a.x)},${round(mid)} ${round(b.x)},${round(mid)} ${round(b.x)},${round(b.y)}`;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return d;
|
|
377
|
+
}
|
|
378
|
+
export {
|
|
379
|
+
dagEdgeId,
|
|
380
|
+
dagEdgePath,
|
|
381
|
+
dagLayout
|
|
382
|
+
};
|
|
383
|
+
//# sourceMappingURL=dagLayout.js.map
|