@smwb/ui-solid 0.13.0 → 0.14.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 +564 -0
- package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
- package/dist/assets/styles/less/components/button/button.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/commandPalette/commandPalette.entry.css +1 -0
- package/dist/assets/styles/less/components/composer/composer.entry.css +1 -0
- package/dist/assets/styles/less/components/diffStat/diffStat.entry.css +1 -0
- package/dist/assets/styles/less/components/kbd/kbd.entry.css +1 -0
- package/dist/assets/styles/less/components/list/list.entry.css +1 -1
- package/dist/assets/styles/less/components/qrCode/qrCode.entry.css +1 -0
- package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
- package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
- package/dist/assets/styles/less/components/sidebar/sidebar.entry.css +1 -1
- package/dist/assets/styles/less/components/statusDot/statusDot.entry.css +1 -0
- package/dist/assets/styles/less/components/swimlanes/swimlanes.entry.css +1 -0
- package/dist/assets/styles/less/components/tabGroups/tabGroups.entry.css +1 -0
- package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
- package/dist/assets/styles/less/components/tabs/tabPanel/tabPanel.entry.css +1 -0
- package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
- package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
- package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
- package/dist/assets/styles/less/components/treeView/treeView.entry.css +1 -1
- package/dist/assets/styles/less/tokens.entry.css +1 -1
- package/dist/components/dataDisplay/chat/chat.d.ts +42 -0
- package/dist/components/dataDisplay/chat/chat.js +116 -57
- package/dist/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatComposer.d.ts +17 -0
- package/dist/components/dataDisplay/chat/chatComposer.js +21 -19
- package/dist/components/dataDisplay/chat/chatComposer.js.map +1 -1
- package/dist/components/dataDisplay/chat/index.d.ts +1 -1
- package/dist/components/dataDisplay/chat/utils.d.ts +14 -0
- package/dist/components/dataDisplay/chat/utils.js.map +1 -1
- package/dist/components/dataDisplay/dagView/dagView.js +238 -223
- package/dist/components/dataDisplay/dagView/dagView.js.map +1 -1
- package/dist/components/dataDisplay/diffStat/diffStat.d.ts +55 -0
- package/dist/components/dataDisplay/diffStat/diffStat.js +70 -0
- package/dist/components/dataDisplay/diffStat/diffStat.js.map +1 -0
- package/dist/components/dataDisplay/diffStat/index.d.ts +2 -0
- package/dist/components/dataDisplay/kbd/index.d.ts +4 -0
- package/dist/components/dataDisplay/kbd/kbd.d.ts +41 -0
- package/dist/components/dataDisplay/kbd/kbd.js +47 -0
- package/dist/components/dataDisplay/kbd/kbd.js.map +1 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.d.ts +18 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.js +70 -0
- package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
- package/dist/components/dataDisplay/list/listItem.d.ts +34 -0
- package/dist/components/dataDisplay/list/listItem.js +57 -20
- package/dist/components/dataDisplay/list/listItem.js.map +1 -1
- package/dist/components/dataDisplay/qrCode/index.d.ts +2 -0
- package/dist/components/dataDisplay/qrCode/qrCode.d.ts +30 -0
- package/dist/components/dataDisplay/qrCode/qrCode.js +88 -0
- package/dist/components/dataDisplay/qrCode/qrCode.js.map +1 -0
- package/dist/components/dataDisplay/qrCode/qrCodePath.d.ts +7 -0
- package/dist/components/dataDisplay/qrCode/qrCodePath.js +20 -0
- package/dist/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
- package/dist/components/dataDisplay/statusDot/index.d.ts +2 -0
- package/dist/components/dataDisplay/statusDot/statusDot.d.ts +35 -0
- package/dist/components/dataDisplay/statusDot/statusDot.js +31 -0
- package/dist/components/dataDisplay/statusDot/statusDot.js.map +1 -0
- package/dist/components/dataDisplay/swimlanes/index.d.ts +2 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.d.ts +75 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.js +361 -0
- package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
- package/dist/components/dataDisplay/treeView/treeView.d.ts +20 -0
- package/dist/components/dataDisplay/treeView/treeView.js +161 -95
- package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/components/feedBack/modal/modal.d.ts +9 -0
- package/dist/components/feedBack/modal/modal.js +68 -54
- package/dist/components/feedBack/modal/modal.js.map +1 -1
- package/dist/components/inputs/button/button.d.ts +12 -0
- package/dist/components/inputs/button/button.js +44 -37
- package/dist/components/inputs/button/button.js.map +1 -1
- package/dist/components/inputs/composer/composer.d.ts +148 -0
- package/dist/components/inputs/composer/composer.js +276 -0
- package/dist/components/inputs/composer/composer.js.map +1 -0
- package/dist/components/inputs/composer/composerFiles.d.ts +26 -0
- package/dist/components/inputs/composer/composerFiles.js +18 -0
- package/dist/components/inputs/composer/composerFiles.js.map +1 -0
- package/dist/components/inputs/composer/composerKeys.d.ts +29 -0
- package/dist/components/inputs/composer/composerKeys.js +7 -0
- package/dist/components/inputs/composer/composerKeys.js.map +1 -0
- package/dist/components/inputs/composer/index.d.ts +3 -0
- package/dist/components/layout/sheet/sheet.d.ts +12 -0
- package/dist/components/layout/sheet/sheet.js +100 -86
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/tabGroups/index.d.ts +4 -0
- package/dist/components/layout/tabGroups/tabGroups.d.ts +102 -0
- package/dist/components/layout/tabGroups/tabGroups.js +895 -0
- package/dist/components/layout/tabGroups/tabGroups.js.map +1 -0
- package/dist/components/layout/tabGroups/tabGroupsFocus.d.ts +55 -0
- package/dist/components/layout/tabGroups/tabGroupsFocus.js +192 -0
- package/dist/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
- package/dist/components/layout/tabGroups/tabGroupsLayout.d.ts +250 -0
- package/dist/components/layout/tabGroups/tabGroupsLayout.js +480 -0
- package/dist/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
- package/dist/components/navigation/appBar/appBar.d.ts +22 -0
- package/dist/components/navigation/appBar/appBar.js +60 -22
- package/dist/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/components/navigation/commandPalette/commandPalette.d.ts +126 -0
- package/dist/components/navigation/commandPalette/commandPalette.js +457 -0
- package/dist/components/navigation/commandPalette/commandPalette.js.map +1 -0
- package/dist/components/navigation/commandPalette/commandPaletteFilter.d.ts +11 -0
- package/dist/components/navigation/commandPalette/commandPaletteFilter.js +15 -0
- package/dist/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
- package/dist/components/navigation/commandPalette/commandPaletteNavigation.d.ts +13 -0
- package/dist/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
- package/dist/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
- package/dist/components/navigation/commandPalette/commandPaletteTypes.d.ts +39 -0
- package/dist/components/navigation/commandPalette/index.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar.d.ts +10 -0
- package/dist/components/navigation/sidebar/sidebar.js +12 -10
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/components/navigation/tabs/index.d.ts +3 -1
- package/dist/components/navigation/tabs/tab/tab.d.ts +89 -2
- package/dist/components/navigation/tabs/tab/tab.js +164 -44
- package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +20 -0
- package/dist/components/navigation/tabs/tabPanel/tabPanel.js +34 -0
- package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
- package/dist/components/navigation/tabs/tabs.d.ts +73 -3
- package/dist/components/navigation/tabs/tabs.js +387 -160
- package/dist/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/components/navigation/tabs/tabs.utils.d.ts +20 -0
- package/dist/components/navigation/tabs/tabs.utils.js +11 -0
- package/dist/components/navigation/tabs/tabs.utils.js.map +1 -0
- package/dist/components/navigation/tabs/tabsContext.d.ts +31 -1
- package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chat.js +116 -57
- package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatComposer.js +21 -19
- package/dist/headless/components/dataDisplay/chat/chatComposer.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/utils.js.map +1 -1
- package/dist/headless/components/dataDisplay/dagView/dagView.js +238 -223
- package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -1
- package/dist/headless/components/dataDisplay/diffStat/diffStat.js +68 -0
- package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
- package/dist/headless/components/dataDisplay/kbd/kbd.js +45 -0
- package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
- package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +70 -0
- package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
- package/dist/headless/components/dataDisplay/list/listItem.js +57 -20
- package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
- package/dist/headless/components/dataDisplay/qrCode/qrCode.js +86 -0
- package/dist/headless/components/dataDisplay/qrCode/qrCode.js.map +1 -0
- package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js +20 -0
- package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
- package/dist/headless/components/dataDisplay/statusDot/statusDot.js +29 -0
- package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
- package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +359 -0
- package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
- package/dist/headless/components/dataDisplay/treeView/treeView.js +161 -95
- package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
- package/dist/headless/components/feedBack/modal/modal.js +68 -54
- package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
- package/dist/headless/components/inputs/button/button.js +42 -35
- package/dist/headless/components/inputs/button/button.js.map +1 -1
- package/dist/headless/components/inputs/composer/composer.js +274 -0
- package/dist/headless/components/inputs/composer/composer.js.map +1 -0
- package/dist/headless/components/inputs/composer/composerFiles.js +18 -0
- package/dist/headless/components/inputs/composer/composerFiles.js.map +1 -0
- package/dist/headless/components/inputs/composer/composerKeys.js +7 -0
- package/dist/headless/components/inputs/composer/composerKeys.js.map +1 -0
- package/dist/headless/components/layout/sheet/sheet.js +100 -86
- package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
- package/dist/headless/components/layout/tabGroups/tabGroups.js +893 -0
- package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +192 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +480 -0
- package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
- package/dist/headless/components/navigation/appBar/appBar.js +64 -26
- package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
- package/dist/headless/components/navigation/commandPalette/commandPalette.js +455 -0
- package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +15 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
- package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
- package/dist/headless/components/navigation/sidebar/sidebar.js +28 -26
- package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tab/tab.js +164 -44
- package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +32 -0
- package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
- package/dist/headless/components/navigation/tabs/tabs.js +387 -160
- package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
- package/dist/headless/components/navigation/tabs/tabs.utils.js +11 -0
- package/dist/headless/components/navigation/tabs/tabs.utils.js.map +1 -0
- package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -1
- package/dist/headless/index.js +405 -367
- package/dist/headless/index.js.map +1 -1
- package/dist/headless/primitives/createFocusTrap.js +17 -17
- package/dist/headless/primitives/createFocusTrap.js.map +1 -1
- package/dist/headless/primitives/createKeyboardShortcut.js +16 -0
- package/dist/headless/primitives/createKeyboardShortcut.js.map +1 -0
- package/dist/headless/primitives/restoreFocus.js +10 -0
- package/dist/headless/primitives/restoreFocus.js.map +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx +38 -4
- package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
- package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/index.js.map +1 -1
- package/dist/headless/source/components/dataDisplay/chat/utils.js.map +2 -2
- package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +30 -21
- package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx +76 -0
- package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/diffStat/index.js +19 -0
- package/dist/headless/source/components/dataDisplay/diffStat/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/kbd/index.js +9 -0
- package/dist/headless/source/components/dataDisplay/kbd/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx +48 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
- package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx +37 -7
- package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
- package/dist/headless/source/components/dataDisplay/qrCode/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/qrCode/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx +94 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
- package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/statusDot/index.js +6 -0
- package/dist/headless/source/components/dataDisplay/statusDot/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx +28 -0
- package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/index.js +15 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/index.js.map +7 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx +450 -0
- package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +118 -37
- package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/headless/source/components/feedBack/modal/modal.jsx +34 -4
- package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/headless/source/components/inputs/button/button.jsx +6 -2
- package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/headless/source/components/inputs/composer/composer.jsx +319 -0
- package/dist/headless/source/components/inputs/composer/composer.jsx.map +1 -0
- package/dist/headless/source/components/inputs/composer/composerFiles.js +27 -0
- package/dist/headless/source/components/inputs/composer/composerFiles.js.map +7 -0
- package/dist/headless/source/components/inputs/composer/composerKeys.js +11 -0
- package/dist/headless/source/components/inputs/composer/composerKeys.js.map +7 -0
- package/dist/headless/source/components/inputs/composer/index.js +5 -0
- package/dist/headless/source/components/inputs/composer/index.js.map +7 -0
- package/dist/headless/source/components/layout/sheet/sheet.jsx +33 -11
- package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/headless/source/components/layout/tabGroups/index.js +8 -0
- package/dist/headless/source/components/layout/tabGroups/index.js.map +7 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx +1117 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
- package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
- package/dist/headless/source/components/navigation/appBar/appBar.jsx +27 -3
- package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx +506 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
- package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
- package/dist/headless/source/components/navigation/commandPalette/index.js +11 -0
- package/dist/headless/source/components/navigation/commandPalette/index.js.map +7 -0
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +5 -2
- package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/index.js +2 -0
- package/dist/headless/source/components/navigation/tabs/index.js.map +2 -2
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +135 -8
- package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx +28 -0
- package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
- package/dist/headless/source/components/navigation/tabs/tabs.jsx +361 -13
- package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/headless/source/components/navigation/tabs/tabs.utils.js +18 -0
- package/dist/headless/source/components/navigation/tabs/tabs.utils.js.map +7 -0
- package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
- package/dist/headless/source/index.js +41 -1
- package/dist/headless/source/index.js.map +2 -2
- package/dist/headless/source/primitives/createFocusTrap.js +8 -3
- package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
- package/dist/headless/source/primitives/createKeyboardShortcut.js +23 -0
- package/dist/headless/source/primitives/createKeyboardShortcut.js.map +7 -0
- package/dist/headless/source/primitives/restoreFocus.js +14 -0
- package/dist/headless/source/primitives/restoreFocus.js.map +7 -0
- package/dist/headless/source/utils/keyboardShortcut.js +74 -0
- package/dist/headless/source/utils/keyboardShortcut.js.map +7 -0
- package/dist/headless/source/utils/linkAttrs.js +16 -0
- package/dist/headless/source/utils/linkAttrs.js.map +7 -0
- package/dist/headless/utils/keyboardShortcut.js +48 -0
- package/dist/headless/utils/keyboardShortcut.js.map +1 -0
- package/dist/headless/utils/linkAttrs.js +13 -0
- package/dist/headless/utils/linkAttrs.js.map +1 -0
- package/dist/index.d.ts +24 -3
- package/dist/index.js +405 -367
- package/dist/index.js.map +1 -1
- package/dist/primitives/createFocusTrap.d.ts +5 -0
- package/dist/primitives/createFocusTrap.js +17 -17
- package/dist/primitives/createFocusTrap.js.map +1 -1
- package/dist/primitives/createKeyboardShortcut.d.ts +23 -0
- package/dist/primitives/createKeyboardShortcut.js +16 -0
- package/dist/primitives/createKeyboardShortcut.js.map +1 -0
- package/dist/primitives/restoreFocus.d.ts +8 -0
- package/dist/primitives/restoreFocus.js +10 -0
- package/dist/primitives/restoreFocus.js.map +1 -0
- package/dist/source/components/dataDisplay/chat/chat.jsx +38 -4
- package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
- package/dist/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
- package/dist/source/components/dataDisplay/chat/index.js.map +1 -1
- package/dist/source/components/dataDisplay/chat/utils.js.map +2 -2
- package/dist/source/components/dataDisplay/dagView/dagView.jsx +30 -21
- package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -1
- package/dist/source/components/dataDisplay/diffStat/diffStat.jsx +78 -0
- package/dist/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
- package/dist/source/components/dataDisplay/diffStat/index.js +19 -0
- package/dist/source/components/dataDisplay/diffStat/index.js.map +7 -0
- package/dist/source/components/dataDisplay/kbd/index.js +9 -0
- package/dist/source/components/dataDisplay/kbd/index.js.map +7 -0
- package/dist/source/components/dataDisplay/kbd/kbd.jsx +50 -0
- package/dist/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
- package/dist/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
- package/dist/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
- package/dist/source/components/dataDisplay/list/listItem.jsx +37 -7
- package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
- package/dist/source/components/dataDisplay/qrCode/index.js +6 -0
- package/dist/source/components/dataDisplay/qrCode/index.js.map +7 -0
- package/dist/source/components/dataDisplay/qrCode/qrCode.jsx +96 -0
- package/dist/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
- package/dist/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
- package/dist/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
- package/dist/source/components/dataDisplay/statusDot/index.js +6 -0
- package/dist/source/components/dataDisplay/statusDot/index.js.map +7 -0
- package/dist/source/components/dataDisplay/statusDot/statusDot.jsx +30 -0
- package/dist/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
- package/dist/source/components/dataDisplay/swimlanes/index.js +15 -0
- package/dist/source/components/dataDisplay/swimlanes/index.js.map +7 -0
- package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx +452 -0
- package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
- package/dist/source/components/dataDisplay/treeView/treeView.jsx +118 -37
- package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
- package/dist/source/components/feedBack/modal/modal.jsx +34 -4
- package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
- package/dist/source/components/inputs/button/button.jsx +6 -2
- package/dist/source/components/inputs/button/button.jsx.map +1 -1
- package/dist/source/components/inputs/composer/composer.jsx +321 -0
- package/dist/source/components/inputs/composer/composer.jsx.map +1 -0
- package/dist/source/components/inputs/composer/composerFiles.js +27 -0
- package/dist/source/components/inputs/composer/composerFiles.js.map +7 -0
- package/dist/source/components/inputs/composer/composerKeys.js +11 -0
- package/dist/source/components/inputs/composer/composerKeys.js.map +7 -0
- package/dist/source/components/inputs/composer/index.js +5 -0
- package/dist/source/components/inputs/composer/index.js.map +7 -0
- package/dist/source/components/layout/sheet/sheet.jsx +33 -11
- package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
- package/dist/source/components/layout/tabGroups/index.js +8 -0
- package/dist/source/components/layout/tabGroups/index.js.map +7 -0
- package/dist/source/components/layout/tabGroups/tabGroups.jsx +1119 -0
- package/dist/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
- package/dist/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
- package/dist/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
- package/dist/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
- package/dist/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
- package/dist/source/components/navigation/appBar/appBar.jsx +27 -3
- package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
- package/dist/source/components/navigation/commandPalette/commandPalette.jsx +508 -0
- package/dist/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
- package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
- package/dist/source/components/navigation/commandPalette/index.js +11 -0
- package/dist/source/components/navigation/commandPalette/index.js.map +7 -0
- package/dist/source/components/navigation/sidebar/sidebar.jsx +5 -2
- package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/index.js +2 -0
- package/dist/source/components/navigation/tabs/index.js.map +2 -2
- package/dist/source/components/navigation/tabs/tab/tab.jsx +135 -8
- package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx +30 -0
- package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
- package/dist/source/components/navigation/tabs/tabs.jsx +361 -13
- package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
- package/dist/source/components/navigation/tabs/tabs.utils.js +18 -0
- package/dist/source/components/navigation/tabs/tabs.utils.js.map +7 -0
- package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
- package/dist/source/index.js +41 -1
- package/dist/source/index.js.map +2 -2
- package/dist/source/primitives/createFocusTrap.js +8 -3
- package/dist/source/primitives/createFocusTrap.js.map +2 -2
- package/dist/source/primitives/createKeyboardShortcut.js +23 -0
- package/dist/source/primitives/createKeyboardShortcut.js.map +7 -0
- package/dist/source/primitives/restoreFocus.js +14 -0
- package/dist/source/primitives/restoreFocus.js.map +7 -0
- package/dist/source/utils/keyboardShortcut.js +74 -0
- package/dist/source/utils/keyboardShortcut.js.map +7 -0
- package/dist/source/utils/linkAttrs.js +16 -0
- package/dist/source/utils/linkAttrs.js.map +7 -0
- package/dist/utils/keyboardShortcut.d.ts +12 -0
- package/dist/utils/keyboardShortcut.js +48 -0
- package/dist/utils/keyboardShortcut.js.map +1 -0
- package/dist/utils/linkAttrs.d.ts +13 -0
- package/dist/utils/linkAttrs.js +13 -0
- package/dist/utils/linkAttrs.js.map +1 -0
- package/package.json +66 -3
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { createComponent as
|
|
2
|
-
import { mergeProps as
|
|
3
|
-
import
|
|
4
|
-
import { createCssTransition as
|
|
5
|
-
import { createFocusTrap as
|
|
6
|
-
import { isTopOverlayLayer as
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { createComponent as p, Portal as E, use as k, insert as s, Dynamic as $, mergeProps as A, effect as l, className as i, isServer as O, template as b, delegateEvents as h } from "solid-js/web";
|
|
2
|
+
import { mergeProps as x, splitProps as F, createSignal as P, createEffect as v, on as S, onCleanup as _, Show as L } from "solid-js";
|
|
3
|
+
import a from "clsx";
|
|
4
|
+
import { createCssTransition as T } from "../../../primitives/createCssTransition.js";
|
|
5
|
+
import { createFocusTrap as z } from "../../../primitives/createFocusTrap.js";
|
|
6
|
+
import { isTopOverlayLayer as D } from "../../../primitives/overlayLayer.js";
|
|
7
|
+
import { restoreFocus as M } from "../../../primitives/restoreFocus.js";
|
|
8
|
+
import { mergeRefs as N } from "../../../primitives/mergeRefs.js";
|
|
9
|
+
var R = /* @__PURE__ */ b("<div data-smwb-overlay-layer>"), u = /* @__PURE__ */ b("<div>");
|
|
10
|
+
const j = {
|
|
10
11
|
appear: "smwb-modal__overlay-appear",
|
|
11
12
|
appearActive: "smwb-modal__overlay-appear-active",
|
|
12
13
|
appearDone: "smwb-modal__overlay-appear-done",
|
|
@@ -16,8 +17,13 @@ const M = {
|
|
|
16
17
|
exit: "smwb-modal__overlay-exit",
|
|
17
18
|
exitActive: "smwb-modal__overlay-exit-active"
|
|
18
19
|
};
|
|
19
|
-
function
|
|
20
|
-
|
|
20
|
+
function q(r) {
|
|
21
|
+
if (!r || typeof document > "u") return !0;
|
|
22
|
+
const o = document.querySelectorAll(".smwb-modal__overlay:not(.smwb-modal__overlay-exit)");
|
|
23
|
+
return o[o.length - 1] === r;
|
|
24
|
+
}
|
|
25
|
+
function B(r) {
|
|
26
|
+
const o = x({
|
|
21
27
|
animation: "fade",
|
|
22
28
|
backdrop: "dark",
|
|
23
29
|
size: "large",
|
|
@@ -26,55 +32,63 @@ function N(o) {
|
|
|
26
32
|
disableAppearAnimation: !1,
|
|
27
33
|
role: "dialog",
|
|
28
34
|
closeOnEsc: !0
|
|
29
|
-
},
|
|
30
|
-
let
|
|
31
|
-
|
|
35
|
+
}, r), [e, w] = F(o, ["children", "onClose", "open", "class", "animation", "backdrop", "size", "closeOnOutsideClick", "asForm", "disableAppearAnimation", "role", "closeOnEsc", "ref"]), [c, y] = P();
|
|
36
|
+
let m;
|
|
37
|
+
v(S(() => e.open, (t) => {
|
|
38
|
+
if (!t) return;
|
|
39
|
+
const n = c()?.contains(document.activeElement) ? null : document.activeElement;
|
|
40
|
+
_(() => M(n, c()));
|
|
41
|
+
}));
|
|
42
|
+
const d = T({
|
|
32
43
|
in: () => e.open,
|
|
33
44
|
timeout: {
|
|
34
45
|
appear: 225,
|
|
35
46
|
enter: 225,
|
|
36
47
|
exit: 150
|
|
37
48
|
},
|
|
38
|
-
classNames:
|
|
49
|
+
classNames: j,
|
|
39
50
|
appear: !e.disableAppearAnimation
|
|
40
51
|
});
|
|
41
|
-
|
|
42
|
-
active: () => e.open &&
|
|
43
|
-
container:
|
|
44
|
-
|
|
52
|
+
z({
|
|
53
|
+
active: () => e.open && d.mounted(),
|
|
54
|
+
container: c,
|
|
55
|
+
restoreFocus: !1,
|
|
56
|
+
isTopmost: () => q(m)
|
|
57
|
+
}), v(() => {
|
|
45
58
|
if (!e.open || !e.closeOnEsc || !e.onClose) return;
|
|
46
|
-
const t = (
|
|
47
|
-
|
|
59
|
+
const t = (n) => {
|
|
60
|
+
n.key === "Escape" && !n.defaultPrevented && D(m) && e.onClose?.();
|
|
48
61
|
};
|
|
49
|
-
document.addEventListener("keydown", t),
|
|
62
|
+
document.addEventListener("keydown", t), _(() => document.removeEventListener("keydown", t));
|
|
50
63
|
});
|
|
51
|
-
const
|
|
64
|
+
const g = () => {
|
|
52
65
|
e.closeOnOutsideClick && e.onClose?.();
|
|
53
66
|
};
|
|
54
|
-
return
|
|
67
|
+
return p(L, {
|
|
55
68
|
get when() {
|
|
56
|
-
return
|
|
69
|
+
return d.mounted();
|
|
57
70
|
},
|
|
58
71
|
get children() {
|
|
59
|
-
return
|
|
72
|
+
return p(E, {
|
|
60
73
|
get mount() {
|
|
61
|
-
return
|
|
74
|
+
return O ? void 0 : document.body;
|
|
62
75
|
},
|
|
63
76
|
get children() {
|
|
64
|
-
var t =
|
|
65
|
-
return t.$$click =
|
|
77
|
+
var t = R();
|
|
78
|
+
return t.$$click = g, k((n) => m = n, t), s(t, p($, A({
|
|
66
79
|
get component() {
|
|
67
80
|
return e.asForm ? "form" : "div";
|
|
68
81
|
}
|
|
69
|
-
},
|
|
70
|
-
ref(
|
|
71
|
-
var
|
|
72
|
-
typeof
|
|
82
|
+
}, w, {
|
|
83
|
+
ref(n) {
|
|
84
|
+
var f = N(e.ref, (C) => y(C));
|
|
85
|
+
typeof f == "function" && f(n);
|
|
73
86
|
},
|
|
74
87
|
get class() {
|
|
75
|
-
return
|
|
88
|
+
return a("smwb-modal", `smwb-${e.size}`, `smwb-${e.animation}`, e.class);
|
|
76
89
|
},
|
|
77
|
-
onClick: (
|
|
90
|
+
onClick: (n) => n.stopPropagation(),
|
|
91
|
+
tabindex: -1,
|
|
78
92
|
get role() {
|
|
79
93
|
return e.role;
|
|
80
94
|
},
|
|
@@ -82,40 +96,40 @@ function N(o) {
|
|
|
82
96
|
get children() {
|
|
83
97
|
return e.children;
|
|
84
98
|
}
|
|
85
|
-
}))), l(() => i(t,
|
|
99
|
+
}))), l(() => i(t, a("smwb-modal__overlay", `smwb-${e.backdrop}`, `smwb-${e.size}`, d.classes()))), t;
|
|
86
100
|
}
|
|
87
101
|
});
|
|
88
102
|
}
|
|
89
103
|
});
|
|
90
104
|
}
|
|
91
|
-
function
|
|
105
|
+
function H(r) {
|
|
92
106
|
return (() => {
|
|
93
|
-
var
|
|
94
|
-
return s(
|
|
107
|
+
var o = u();
|
|
108
|
+
return s(o, () => r.children), l(() => i(o, a("smwb-modal__header", r.class))), o;
|
|
95
109
|
})();
|
|
96
110
|
}
|
|
97
|
-
function
|
|
111
|
+
function K(r) {
|
|
98
112
|
return (() => {
|
|
99
|
-
var
|
|
100
|
-
return s(
|
|
113
|
+
var o = u();
|
|
114
|
+
return s(o, () => r.children), l(() => i(o, a("smwb-modal__content", r.class))), o;
|
|
101
115
|
})();
|
|
102
116
|
}
|
|
103
|
-
function
|
|
117
|
+
function V(r) {
|
|
104
118
|
return (() => {
|
|
105
|
-
var
|
|
106
|
-
return s(
|
|
119
|
+
var o = u();
|
|
120
|
+
return s(o, () => r.children), l(() => i(o, a("smwb-modal__footer", r.class))), o;
|
|
107
121
|
})();
|
|
108
122
|
}
|
|
109
|
-
const
|
|
110
|
-
Footer:
|
|
111
|
-
Header:
|
|
112
|
-
Content:
|
|
123
|
+
const Z = Object.assign(B, {
|
|
124
|
+
Footer: V,
|
|
125
|
+
Header: H,
|
|
126
|
+
Content: K
|
|
113
127
|
});
|
|
114
|
-
|
|
128
|
+
h(["click"]);
|
|
115
129
|
export {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
130
|
+
K as Content,
|
|
131
|
+
V as Footer,
|
|
132
|
+
H as Header,
|
|
133
|
+
Z as Modal
|
|
120
134
|
};
|
|
121
135
|
//# sourceMappingURL=modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sources":["../../../../../src/components/feedBack/modal/modal.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Dynamic, Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { createFocusTrap } from \"../../../primitives/createFocusTrap\";\nimport { isTopOverlayLayer } from \"../../../primitives/overlayLayer\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ModalProps {\n size?: \"small\" | \"medium\" | \"large\" | \"fullscreen\";\n closeOnOutsideClick?: boolean;\n onClose?: () => void;\n open: boolean;\n animation?: \"fade\" | \"scale\" | \"drop\";\n class?: string;\n backdrop?: \"blured\" | \"dark\" | \"transparent\" | \"darkBlured\";\n asForm?: boolean;\n disableAppearAnimation?: boolean;\n /** ARIA role of the dialog. */\n role?: \"dialog\" | \"alertdialog\";\n /** Close the modal when Escape is pressed. */\n closeOnEsc?: boolean;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst OVERLAY_CLASSNAMES = {\n appear: \"smwb-modal__overlay-appear\",\n appearActive: \"smwb-modal__overlay-appear-active\",\n appearDone: \"smwb-modal__overlay-appear-done\",\n enter: \"smwb-modal__overlay-enter\",\n enterActive: \"smwb-modal__overlay-enter-active\",\n enterDone: \"smwb-modal__overlay-enter-done\",\n exit: \"smwb-modal__overlay-exit\",\n exitActive: \"smwb-modal__overlay-exit-active\",\n};\n\nfunction ModalBase(props: ParentProps<ModalProps>): JSX.Element {\n const merged = mergeProps(\n {\n animation: \"fade\" as const,\n backdrop: \"dark\" as const,\n size: \"large\" as const,\n closeOnOutsideClick: true,\n asForm: false,\n disableAppearAnimation: false,\n role: \"dialog\" as const,\n closeOnEsc: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"children\",\n \"onClose\",\n \"open\",\n \"class\",\n \"animation\",\n \"backdrop\",\n \"size\",\n \"closeOnOutsideClick\",\n \"asForm\",\n \"disableAppearAnimation\",\n \"role\",\n \"closeOnEsc\",\n \"ref\",\n ]);\n\n let contentEl: HTMLDivElement | undefined;\n let overlayEl: HTMLDivElement | undefined;\n\n const transition = createCssTransition({\n in: () => local.open,\n timeout: { appear: 225, enter: 225, exit: 150 },\n classNames: OVERLAY_CLASSNAMES,\n appear: !local.disableAppearAnimation,\n });\n\n createFocusTrap({ active: () => local.open && transition.mounted(), container: () => contentEl });\n\n createEffect(() => {\n if (!local.open || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n // Only the topmost overlay layer reacts to Escape, and not to one handled inside\n // it, e.g. by a menu closing on it.\n if (event.key === \"Escape\" && !event.defaultPrevented && isTopOverlayLayer(overlayEl)) local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n // Always attached and checks the props itself. Solid binds event handlers\n // once, and the portal builds the overlay in a tracked scope, so choosing the\n // handler by these props there would rebuild the dialog, content included,\n // whenever one of them changes.\n const onOverlayClick = (): void => {\n if (local.closeOnOutsideClick) local.onClose?.();\n };\n\n return (\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n ref={(el) => (overlayEl = el)}\n data-smwb-overlay-layer\n class={cn(\"smwb-modal__overlay\", `smwb-${local.backdrop}`, `smwb-${local.size}`, transition.classes())}\n onClick={onOverlayClick}\n >\n <Dynamic\n component={local.asForm ? \"form\" : \"div\"}\n {...rest}\n ref={mergeRefs(local.ref, (el) => (contentEl = el as HTMLDivElement))}\n class={cn(\"smwb-modal\", `smwb-${local.size}`, `smwb-${local.animation}`, local.class)}\n onClick={(event: MouseEvent) => event.stopPropagation()}\n role={local.role}\n aria-modal=\"true\"\n >\n {local.children}\n </Dynamic>\n </div>\n </Portal>\n </Show>\n );\n}\n\nexport interface ModalSlotProps {\n class?: string;\n}\n\nexport function Header(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__header\", props.class)}>{props.children}</div>;\n}\n\nexport function Content(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__content\", props.class)}>{props.children}</div>;\n}\n\nexport function Footer(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__footer\", props.class)}>{props.children}</div>;\n}\n\nexport const Modal = Object.assign(ModalBase, { Footer, Header, Content });\n\nexport default Modal;\n"],"names":["OVERLAY_CLASSNAMES","appear","appearActive","appearDone","enter","enterActive","enterDone","exit","exitActive","ModalBase","props","merged","mergeProps","animation","backdrop","size","closeOnOutsideClick","asForm","disableAppearAnimation","role","closeOnEsc","local","rest","splitProps","contentEl","overlayEl","transition","createCssTransition","in","open","timeout","classNames","createFocusTrap","active","mounted","container","createEffect","onClose","onKeyDown","event","key","defaultPrevented","isTopOverlayLayer","document","addEventListener","onCleanup","removeEventListener","onOverlayClick","_$createComponent","Show","when","children","Portal","mount","isServer","undefined","body","_el$","_tmpl$","$$click","_$use","el","_$insert","Dynamic","_$mergeProps","component","ref","r$","_ref$","mergeRefs","cn","class","onClick","stopPropagation","_$effect","_$className","classes","Header","_el$2","_tmpl$2","Content","_el$3","Footer","_el$4","Modal","Object","assign","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.js","sources":["../../../../../src/components/feedBack/modal/modal.tsx"],"sourcesContent":["import {\n type JSX,\n type ParentProps,\n Show,\n createEffect,\n createSignal,\n mergeProps,\n on,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport { Dynamic, Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { createFocusTrap } from \"../../../primitives/createFocusTrap\";\nimport { isTopOverlayLayer } from \"../../../primitives/overlayLayer\";\nimport { restoreFocus } from \"../../../primitives/restoreFocus\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ModalProps {\n size?: \"small\" | \"medium\" | \"large\" | \"fullscreen\";\n closeOnOutsideClick?: boolean;\n onClose?: () => void;\n open: boolean;\n animation?: \"fade\" | \"scale\" | \"drop\";\n class?: string;\n backdrop?: \"blured\" | \"dark\" | \"transparent\" | \"darkBlured\";\n asForm?: boolean;\n disableAppearAnimation?: boolean;\n /** ARIA role of the dialog. */\n role?: \"dialog\" | \"alertdialog\";\n /** Close the modal when Escape is pressed. */\n closeOnEsc?: boolean;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst OVERLAY_CLASSNAMES = {\n appear: \"smwb-modal__overlay-appear\",\n appearActive: \"smwb-modal__overlay-appear-active\",\n appearDone: \"smwb-modal__overlay-appear-done\",\n enter: \"smwb-modal__overlay-enter\",\n enterActive: \"smwb-modal__overlay-enter-active\",\n enterDone: \"smwb-modal__overlay-enter-done\",\n exit: \"smwb-modal__overlay-exit\",\n exitActive: \"smwb-modal__overlay-exit-active\",\n};\n\n/**\n * Whether `overlay` is the last open Modal overlay; a dialog stacked above it owns Tab. Fading-out\n * ones do not count. Not `isTopOverlayLayer`: menus, select dropdowns and pickers are overlay\n * layers too, and a select dropdown open inside a Modal must not switch the Modal's trap off.\n */\nfunction isTopModal(overlay: Element | null | undefined): boolean {\n if (!overlay || typeof document === \"undefined\") return true;\n const open = document.querySelectorAll(\".smwb-modal__overlay:not(.smwb-modal__overlay-exit)\");\n return open[open.length - 1] === overlay;\n}\n\n/**\n * A modal dialog: portaled to `<body>`, animated, closed by Escape or a backdrop click.\n *\n * While open it traps Tab/Shift+Tab inside the dialog and moves the focus into it (the first tab\n * stop, else the dialog itself), unless a child has already focused itself. On close, and on\n * unmount while open, the focus goes back to the element that had it when the dialog opened —\n * unless the app has moved the focus elsewhere by then.\n * Of stacked dialogs only the topmost one handles Tab.\n */\nfunction ModalBase(props: ParentProps<ModalProps>): JSX.Element {\n const merged = mergeProps(\n {\n animation: \"fade\" as const,\n backdrop: \"dark\" as const,\n size: \"large\" as const,\n closeOnOutsideClick: true,\n asForm: false,\n disableAppearAnimation: false,\n role: \"dialog\" as const,\n closeOnEsc: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"children\",\n \"onClose\",\n \"open\",\n \"class\",\n \"animation\",\n \"backdrop\",\n \"size\",\n \"closeOnOutsideClick\",\n \"asForm\",\n \"disableAppearAnimation\",\n \"role\",\n \"closeOnEsc\",\n \"ref\",\n ]);\n\n // A signal, not a plain `let`: the dialog is built by a portal, so on a closed→open transition\n // the trap's effect runs before the ref below has assigned anything. A plain variable is not\n // tracked, so the trap bailed on the empty container and never armed itself again — Tab then\n // walked focus out of an open dialog. Writing a signal re-runs the trap once the node lands.\n const [contentEl, setContentEl] = createSignal<HTMLDivElement | undefined>();\n let overlayEl: HTMLDivElement | undefined;\n\n // Created before the transition and the trap: effects run in creation order, so the opener is read\n // before the trap's `autoFocus` moves the focus and before a child's `onMount` focuses itself.\n createEffect(\n on(\n () => local.open,\n (open) => {\n if (!open) return;\n // The element focused when the dialog opens gets focus back when it closes or unmounts while open,\n // unless the app has moved focus out of the dialog by then (see restoreFocus).\n const opener = contentEl()?.contains(document.activeElement) ? null : document.activeElement;\n onCleanup(() => restoreFocus(opener, contentEl()));\n }\n )\n );\n\n const transition = createCssTransition({\n in: () => local.open,\n timeout: { appear: 225, enter: 225, exit: 150 },\n classNames: OVERLAY_CLASSNAMES,\n appear: !local.disableAppearAnimation,\n });\n\n createFocusTrap({\n active: () => local.open && transition.mounted(),\n container: contentEl,\n restoreFocus: false,\n isTopmost: () => isTopModal(overlayEl),\n });\n\n createEffect(() => {\n if (!local.open || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n // Only the topmost overlay layer reacts to Escape, and not to one handled inside\n // it, e.g. by a menu closing on it.\n if (event.key === \"Escape\" && !event.defaultPrevented && isTopOverlayLayer(overlayEl)) local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n // Always attached and checks the props itself. Solid binds event handlers\n // once, and the portal builds the overlay in a tracked scope, so choosing the\n // handler by these props there would rebuild the dialog, content included,\n // whenever one of them changes.\n const onOverlayClick = (): void => {\n if (local.closeOnOutsideClick) local.onClose?.();\n };\n\n return (\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n ref={(el) => (overlayEl = el)}\n data-smwb-overlay-layer\n class={cn(\"smwb-modal__overlay\", `smwb-${local.backdrop}`, `smwb-${local.size}`, transition.classes())}\n onClick={onOverlayClick}\n >\n <Dynamic\n component={local.asForm ? \"form\" : \"div\"}\n {...rest}\n ref={mergeRefs(local.ref, (el) => setContentEl(el as HTMLDivElement))}\n class={cn(\"smwb-modal\", `smwb-${local.size}`, `smwb-${local.animation}`, local.class)}\n onClick={(event: MouseEvent) => event.stopPropagation()}\n tabindex={-1}\n role={local.role}\n aria-modal=\"true\"\n >\n {local.children}\n </Dynamic>\n </div>\n </Portal>\n </Show>\n );\n}\n\nexport interface ModalSlotProps {\n class?: string;\n}\n\nexport function Header(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__header\", props.class)}>{props.children}</div>;\n}\n\nexport function Content(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__content\", props.class)}>{props.children}</div>;\n}\n\nexport function Footer(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__footer\", props.class)}>{props.children}</div>;\n}\n\nexport const Modal = Object.assign(ModalBase, { Footer, Header, Content });\n\nexport default Modal;\n"],"names":["OVERLAY_CLASSNAMES","appear","appearActive","appearDone","enter","enterActive","enterDone","exit","exitActive","isTopModal","overlay","document","open","querySelectorAll","length","ModalBase","props","merged","mergeProps","animation","backdrop","size","closeOnOutsideClick","asForm","disableAppearAnimation","role","closeOnEsc","local","rest","splitProps","contentEl","setContentEl","createSignal","overlayEl","createEffect","on","opener","contains","activeElement","onCleanup","restoreFocus","transition","createCssTransition","in","timeout","classNames","createFocusTrap","active","mounted","container","isTopmost","onClose","onKeyDown","event","key","defaultPrevented","isTopOverlayLayer","addEventListener","removeEventListener","onOverlayClick","_$createComponent","Show","when","children","Portal","mount","isServer","undefined","body","_el$","_tmpl$","$$click","_$use","el","_$insert","Dynamic","_$mergeProps","component","ref","r$","_ref$","mergeRefs","cn","class","onClick","stopPropagation","tabindex","_$effect","_$className","classes","Header","_el$2","_tmpl$2","Content","_el$3","Footer","_el$4","Modal","Object","assign","_$delegateEvents"],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { createComponent as n, use as b, spread as
|
|
2
|
-
import { mergeProps as
|
|
1
|
+
import { createComponent as n, use as b, spread as h, mergeProps as l, insert as w, template as $, memo as v } from "solid-js/web";
|
|
2
|
+
import { mergeProps as k, splitProps as D, children as z, Show as s } from "solid-js";
|
|
3
3
|
import W from "clsx";
|
|
4
4
|
import { mergeRefs as P } from "../../../primitives/mergeRefs.js";
|
|
5
|
-
import { useButtonGroup as
|
|
6
|
-
import { callHandler as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { useButtonGroup as C } from "../buttonGroups/buttonGroupContext.js";
|
|
6
|
+
import { callHandler as B } from "../../../primitives/callHandler.js";
|
|
7
|
+
import { resolveLinkRel as L, resolveLinkTarget as x } from "../../../utils/linkAttrs.js";
|
|
8
|
+
import { Ripple as A } from "../../base/ripple/ripple.js";
|
|
9
|
+
import { Icon as E } from "../../base/icon/icon.js";
|
|
10
|
+
var G = /* @__PURE__ */ $("<a>"), H = /* @__PURE__ */ $("<button>");
|
|
11
|
+
function O(_) {
|
|
12
|
+
const t = C(), R = k({
|
|
12
13
|
get variant() {
|
|
13
14
|
return t?.variant ?? "contained";
|
|
14
15
|
},
|
|
@@ -18,12 +19,14 @@ function K($) {
|
|
|
18
19
|
get colorTheme() {
|
|
19
20
|
return t?.colorTheme ?? "primary";
|
|
20
21
|
}
|
|
21
|
-
},
|
|
22
|
+
}, _), [e, a] = D(R, [
|
|
22
23
|
"label",
|
|
23
24
|
"variant",
|
|
24
25
|
"icon",
|
|
25
26
|
"iconProps",
|
|
26
27
|
"href",
|
|
28
|
+
"target",
|
|
29
|
+
"rel",
|
|
27
30
|
"class",
|
|
28
31
|
"disabled",
|
|
29
32
|
"children",
|
|
@@ -37,32 +40,32 @@ function K($) {
|
|
|
37
40
|
"color",
|
|
38
41
|
"ref",
|
|
39
42
|
"data-testid"
|
|
40
|
-
]), c = () => e.color ?? t?.color ?? e.colorTheme, i = () => e.disabled ?? t?.disabled, y = () => e.fullWidth ?? t?.fullWidth;
|
|
41
|
-
let
|
|
42
|
-
const p = () => W("smwb-button", `smwb-${e.variant}`, `smwb-${e.size}`,
|
|
43
|
+
]), c = () => x(e.target), m = () => e.color ?? t?.color ?? e.colorTheme, i = () => e.disabled ?? t?.disabled, y = () => e.fullWidth ?? t?.fullWidth;
|
|
44
|
+
let u;
|
|
45
|
+
const p = () => W("smwb-button", `smwb-${e.variant}`, `smwb-${e.size}`, m() === "primary" ? "smwb-primary" : `smwb-button_color-${m()}`, t && "smwb-button-group__grouped", e.class, {
|
|
43
46
|
"smwb-disabled": i(),
|
|
44
47
|
"smwb-full-width": y()
|
|
45
|
-
}),
|
|
46
|
-
|
|
47
|
-
},
|
|
48
|
-
const r =
|
|
49
|
-
return typeof r == "string" ? n(
|
|
48
|
+
}), d = (r) => {
|
|
49
|
+
B(e.onPointerDown, r), i() || u?.onRipple(r);
|
|
50
|
+
}, f = z(() => e.icon), T = () => {
|
|
51
|
+
const r = f();
|
|
52
|
+
return typeof r == "string" ? n(E, l(() => e.iconProps ?? {}, {
|
|
50
53
|
name: r
|
|
51
54
|
})) : r;
|
|
52
|
-
},
|
|
55
|
+
}, g = () => [n(s, {
|
|
53
56
|
get when() {
|
|
54
|
-
return
|
|
57
|
+
return f();
|
|
55
58
|
},
|
|
56
59
|
get children() {
|
|
57
|
-
return
|
|
60
|
+
return T();
|
|
58
61
|
}
|
|
59
|
-
}),
|
|
62
|
+
}), v(() => v(() => !!e.label)() ? e.label : e.children), n(s, {
|
|
60
63
|
get when() {
|
|
61
64
|
return !e.disableRipple;
|
|
62
65
|
},
|
|
63
66
|
get children() {
|
|
64
|
-
return n(
|
|
65
|
-
actionRef: (r) =>
|
|
67
|
+
return n(A, {
|
|
68
|
+
actionRef: (r) => u = r,
|
|
66
69
|
get center() {
|
|
67
70
|
return e.rippleCenter;
|
|
68
71
|
}
|
|
@@ -75,8 +78,8 @@ function K($) {
|
|
|
75
78
|
},
|
|
76
79
|
get fallback() {
|
|
77
80
|
return (() => {
|
|
78
|
-
var r =
|
|
79
|
-
return typeof o == "function" && b(o, r),
|
|
81
|
+
var r = H(), o = P(e.ref);
|
|
82
|
+
return typeof o == "function" && b(o, r), h(r, l({
|
|
80
83
|
get "data-testid"() {
|
|
81
84
|
return e["data-testid"] ?? "button";
|
|
82
85
|
}
|
|
@@ -84,16 +87,16 @@ function K($) {
|
|
|
84
87
|
get class() {
|
|
85
88
|
return p();
|
|
86
89
|
},
|
|
87
|
-
onPointerDown:
|
|
90
|
+
onPointerDown: d,
|
|
88
91
|
get disabled() {
|
|
89
92
|
return !!i();
|
|
90
93
|
}
|
|
91
|
-
}), !1, !0),
|
|
94
|
+
}), !1, !0), w(r, g), r;
|
|
92
95
|
})();
|
|
93
96
|
},
|
|
94
97
|
get children() {
|
|
95
|
-
var r =
|
|
96
|
-
return typeof o == "function" && b(o, r),
|
|
98
|
+
var r = G(), o = P(e.ref);
|
|
99
|
+
return typeof o == "function" && b(o, r), h(r, l({
|
|
97
100
|
get "data-testid"() {
|
|
98
101
|
return e["data-testid"] ?? "button-link";
|
|
99
102
|
}
|
|
@@ -104,14 +107,18 @@ function K($) {
|
|
|
104
107
|
get href() {
|
|
105
108
|
return e.href;
|
|
106
109
|
},
|
|
107
|
-
target
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
get target() {
|
|
111
|
+
return c();
|
|
112
|
+
},
|
|
113
|
+
get rel() {
|
|
114
|
+
return L(e.rel, c());
|
|
115
|
+
},
|
|
116
|
+
onPointerDown: d
|
|
117
|
+
}), !1, !0), w(r, g), r;
|
|
111
118
|
}
|
|
112
119
|
});
|
|
113
120
|
}
|
|
114
121
|
export {
|
|
115
|
-
|
|
122
|
+
O as Button
|
|
116
123
|
};
|
|
117
124
|
//# sourceMappingURL=button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../../../../src/components/inputs/button/button.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon, type IconProps } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { useButtonGroup } from \"../buttonGroups/buttonGroupContext\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport interface ButtonProps extends JSX.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\n /** Button text. */\n label?: string;\n /** Visual style of the button. */\n variant?: \"contained\" | \"text\" | \"outlined\";\n /** Button size. */\n size?: \"small\" | \"medium\" | \"large\";\n /** Icon as an element (e.g. <Icon/>) or a string (icon name / url / base64). */\n icon?: JSX.Element | string;\n /** Props forwarded to the <Icon/> when `icon` is a string. */\n iconProps?: Omit<IconProps, \"name\">;\n /** @deprecated use `color`. Kept for backward compatibility. */\n colorTheme?: \"primary\";\n /** Semantic color, resolved through `--smwb-*Color*` tokens. */\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** When set, the component renders as an <a>. */\n href?: string;\n disabled?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n /** Stretch to the full width of the container. */\n fullWidth?: boolean;\n /** Center the ripple effect. */\n rippleCenter?: boolean;\n /** Disable the ripple effect. */\n disableRipple?: boolean;\n /** Test id of the root; `button`, or `button-link` for a link, unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport function Button(props: ParentProps<ButtonProps>): JSX.Element {\n const group = useButtonGroup();\n const merged = mergeProps(\n {\n get variant(): NonNullable<ButtonProps[\"variant\"]> {\n return group?.variant ?? \"contained\";\n },\n get size(): NonNullable<ButtonProps[\"size\"]> {\n return group?.size ?? \"medium\";\n },\n get colorTheme(): NonNullable<ButtonProps[\"colorTheme\"]> {\n return group?.colorTheme ?? \"primary\";\n },\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"variant\",\n \"icon\",\n \"iconProps\",\n \"href\",\n \"class\",\n \"disabled\",\n \"children\",\n \"fullWidth\",\n \"rippleCenter\",\n \"disableRipple\",\n // The button sets this on its root too; its own handler calls the caller's first.\n \"onPointerDown\",\n \"size\",\n \"colorTheme\",\n \"color\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const color = (): string => local.color ?? group?.color ?? local.colorTheme;\n const disabled = (): boolean | undefined => local.disabled ?? group?.disabled;\n const fullWidth = (): boolean | undefined => local.fullWidth ?? group?.fullWidth;\n let rippleActions: RippleActionsRef | undefined;\n\n const classes = (): string =>\n cn(\n \"smwb-button\",\n `smwb-${local.variant}`,\n `smwb-${local.size}`,\n color() === \"primary\" ? \"smwb-primary\" : `smwb-button_color-${color()}`,\n group && \"smwb-button-group__grouped\",\n local.class,\n {\n \"smwb-disabled\": disabled(),\n \"smwb-full-width\": fullWidth(),\n }\n );\n\n // Ripple on pointerdown so it fires for touch and pen, not just mouse.\n const onPointerDown: JSX.EventHandler<HTMLButtonElement | HTMLAnchorElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!disabled()) {\n rippleActions?.onRipple(event);\n }\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 a <Show> test has no server DOM node.\n const icon = children(() => local.icon);\n const iconElement = (): JSX.Element => {\n const resolved = icon();\n return typeof resolved === \"string\" ? <Icon {...(local.iconProps ?? {})} name={resolved} /> : resolved;\n };\n\n const content = (): JSX.Element => (\n <>\n <Show when={icon()}>{iconElement()}</Show>\n {local.label ? local.label : local.children}\n <Show when={!local.disableRipple}>\n <Ripple actionRef={(actions) => (rippleActions = actions)} center={local.rippleCenter} />\n </Show>\n </>\n );\n\n return (\n <Show\n when={local.href}\n fallback={\n <button\n data-testid={local[\"data-testid\"] ?? \"button\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={classes()}\n onPointerDown={onPointerDown}\n disabled={!!disabled()}\n >\n {content()}\n </button>\n }\n >\n <a\n data-testid={local[\"data-testid\"] ?? \"button-link\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={classes()}\n href={local.href}\n target
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../../../../src/components/inputs/button/button.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon, type IconProps } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { useButtonGroup } from \"../buttonGroups/buttonGroupContext\";\nimport { callHandler } from \"../../../primitives/callHandler\";\nimport { resolveLinkRel, resolveLinkTarget } from \"../../../utils/linkAttrs\";\n\nexport interface ButtonProps extends JSX.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\n /** Button text. */\n label?: string;\n /** Visual style of the button. */\n variant?: \"contained\" | \"text\" | \"outlined\";\n /** Button size. */\n size?: \"small\" | \"medium\" | \"large\";\n /** Icon as an element (e.g. <Icon/>) or a string (icon name / url / base64). */\n icon?: JSX.Element | string;\n /** Props forwarded to the <Icon/> when `icon` is a string. */\n iconProps?: Omit<IconProps, \"name\">;\n /** @deprecated use `color`. Kept for backward compatibility. */\n colorTheme?: \"primary\";\n /** Semantic color, resolved through `--smwb-*Color*` tokens. */\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** When set, the component renders as an <a>. */\n href?: string;\n /**\n * Where a link (with `href`) opens. By default `\"_blank\"`: a new tab. `null` leaves the `target`\n * attribute out, so the link opens in place, like an internal one; an empty string does the same, and\n * any other string is used as is.\n */\n target?: string | null | undefined;\n /**\n * The `rel` of a link (with `href`). By default `\"noreferrer\"` for a link that opens another tab or\n * window, and none for one that opens in place. Your own value replaces the default, so add `noreferrer` yourself\n * if you still want it; an empty string drops the attribute.\n */\n rel?: string | undefined;\n disabled?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n /** Stretch to the full width of the container. */\n fullWidth?: boolean;\n /** Center the ripple effect. */\n rippleCenter?: boolean;\n /** Disable the ripple effect. */\n disableRipple?: boolean;\n /** Test id of the root; `button`, or `button-link` for a link, unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport function Button(props: ParentProps<ButtonProps>): JSX.Element {\n const group = useButtonGroup();\n const merged = mergeProps(\n {\n get variant(): NonNullable<ButtonProps[\"variant\"]> {\n return group?.variant ?? \"contained\";\n },\n get size(): NonNullable<ButtonProps[\"size\"]> {\n return group?.size ?? \"medium\";\n },\n get colorTheme(): NonNullable<ButtonProps[\"colorTheme\"]> {\n return group?.colorTheme ?? \"primary\";\n },\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"variant\",\n \"icon\",\n \"iconProps\",\n \"href\",\n \"target\",\n \"rel\",\n \"class\",\n \"disabled\",\n \"children\",\n \"fullWidth\",\n \"rippleCenter\",\n \"disableRipple\",\n // The button sets this on its root too; its own handler calls the caller's first.\n \"onPointerDown\",\n \"size\",\n \"colorTheme\",\n \"color\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const linkTarget = (): string | undefined => resolveLinkTarget(local.target);\n const color = (): string => local.color ?? group?.color ?? local.colorTheme;\n const disabled = (): boolean | undefined => local.disabled ?? group?.disabled;\n const fullWidth = (): boolean | undefined => local.fullWidth ?? group?.fullWidth;\n let rippleActions: RippleActionsRef | undefined;\n\n const classes = (): string =>\n cn(\n \"smwb-button\",\n `smwb-${local.variant}`,\n `smwb-${local.size}`,\n color() === \"primary\" ? \"smwb-primary\" : `smwb-button_color-${color()}`,\n group && \"smwb-button-group__grouped\",\n local.class,\n {\n \"smwb-disabled\": disabled(),\n \"smwb-full-width\": fullWidth(),\n }\n );\n\n // Ripple on pointerdown so it fires for touch and pen, not just mouse.\n const onPointerDown: JSX.EventHandler<HTMLButtonElement | HTMLAnchorElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!disabled()) {\n rippleActions?.onRipple(event);\n }\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 a <Show> test has no server DOM node.\n const icon = children(() => local.icon);\n const iconElement = (): JSX.Element => {\n const resolved = icon();\n return typeof resolved === \"string\" ? <Icon {...(local.iconProps ?? {})} name={resolved} /> : resolved;\n };\n\n const content = (): JSX.Element => (\n <>\n <Show when={icon()}>{iconElement()}</Show>\n {local.label ? local.label : local.children}\n <Show when={!local.disableRipple}>\n <Ripple actionRef={(actions) => (rippleActions = actions)} center={local.rippleCenter} />\n </Show>\n </>\n );\n\n return (\n <Show\n when={local.href}\n fallback={\n <button\n data-testid={local[\"data-testid\"] ?? \"button\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={classes()}\n onPointerDown={onPointerDown}\n disabled={!!disabled()}\n >\n {content()}\n </button>\n }\n >\n <a\n data-testid={local[\"data-testid\"] ?? \"button-link\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={classes()}\n href={local.href}\n target={linkTarget()}\n rel={resolveLinkRel(local.rel, linkTarget())}\n onPointerDown={onPointerDown}\n >\n {content()}\n </a>\n </Show>\n );\n}\n\nexport default Button;\n"],"names":["Button","props","group","useButtonGroup","merged","mergeProps","variant","size","colorTheme","local","rest","splitProps","linkTarget","resolveLinkTarget","target","color","disabled","fullWidth","rippleActions","classes","cn","class","onPointerDown","event","callHandler","onRipple","icon","children","iconElement","resolved","_$createComponent","Icon","_$mergeProps","iconProps","name","content","Show","when","_$memo","label","disableRipple","Ripple","actionRef","actions","center","rippleCenter","href","fallback","_el$2","_tmpl$2","_ref$2","mergeRefs","ref","_$use","_$spread","_$insert","_el$","_tmpl$","_ref$","rel","resolveLinkRel"],"mappings":"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"}
|