@plumile/ui 0.1.56 → 0.1.57
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/lib/esm/atomic/atoms/badge/Badge.js +17 -16
- package/lib/esm/atomic/atoms/badge/Badge.js.map +1 -1
- package/lib/esm/atomic/atoms/badge/badge.css.js +30 -8
- package/lib/esm/atomic/atoms/badge/badge.css.js.map +1 -1
- package/lib/esm/atomic/atoms/button/Button.js +46 -58
- package/lib/esm/atomic/atoms/button/Button.js.map +1 -1
- package/lib/esm/atomic/atoms/button/LinkButton.js +48 -62
- package/lib/esm/atomic/atoms/button/LinkButton.js.map +1 -1
- package/lib/esm/atomic/atoms/button/button.css.js +95 -16
- package/lib/esm/atomic/atoms/button/button.css.js.map +1 -1
- package/lib/esm/atomic/atoms/checkbox/Checkbox.js +37 -40
- package/lib/esm/atomic/atoms/checkbox/Checkbox.js.map +1 -1
- package/lib/esm/atomic/atoms/checkbox/checkbox.css.js +26 -11
- package/lib/esm/atomic/atoms/checkbox/checkbox.css.js.map +1 -1
- package/lib/esm/atomic/atoms/formatted-date/FormattedDate.js +32 -31
- package/lib/esm/atomic/atoms/formatted-date/FormattedDate.js.map +1 -1
- package/lib/esm/atomic/atoms/icon-button/IconMenuButton.js +18 -25
- package/lib/esm/atomic/atoms/icon-button/IconMenuButton.js.map +1 -1
- package/lib/esm/atomic/atoms/input/Input.js +46 -40
- package/lib/esm/atomic/atoms/input/Input.js.map +1 -1
- package/lib/esm/atomic/atoms/input/input.css.js +32 -14
- package/lib/esm/atomic/atoms/input/input.css.js.map +1 -1
- package/lib/esm/atomic/atoms/label/Label.js +23 -16
- package/lib/esm/atomic/atoms/label/Label.js.map +1 -1
- package/lib/esm/atomic/atoms/label/label.css.js +27 -9
- package/lib/esm/atomic/atoms/label/label.css.js.map +1 -1
- package/lib/esm/atomic/atoms/textarea/Textarea.js +19 -18
- package/lib/esm/atomic/atoms/textarea/Textarea.js.map +1 -1
- package/lib/esm/atomic/atoms/textarea/textarea.css.js +32 -8
- package/lib/esm/atomic/atoms/textarea/textarea.css.js.map +1 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.js +47 -54
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.js.map +1 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js +53 -60
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js.map +1 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js +62 -63
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js.map +1 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js +8 -30
- package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js.map +1 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/types.js +0 -2
- package/lib/esm/atomic/molecules/card/Card.css.js +8 -10
- package/lib/esm/atomic/molecules/card/Card.css.js.map +1 -1
- package/lib/esm/atomic/molecules/card/Card.js +24 -17
- package/lib/esm/atomic/molecules/card/Card.js.map +1 -1
- package/lib/esm/atomic/molecules/dropdown/Dropdown.js +148 -177
- package/lib/esm/atomic/molecules/dropdown/Dropdown.js.map +1 -1
- package/lib/esm/atomic/molecules/dropdown/dropdown.css.js +8 -13
- package/lib/esm/atomic/molecules/dropdown/dropdown.css.js.map +1 -1
- package/lib/esm/atomic/molecules/form-actions/FormActions.js +31 -56
- package/lib/esm/atomic/molecules/form-actions/FormActions.js.map +1 -1
- package/lib/esm/atomic/molecules/tabs/Tabs.js +34 -33
- package/lib/esm/atomic/molecules/tabs/Tabs.js.map +1 -1
- package/lib/esm/atomic/molecules/tabs/tabs.css.js +18 -9
- package/lib/esm/atomic/molecules/tabs/tabs.css.js.map +1 -1
- package/lib/esm/atomic/molecules/toast/ToastProvider.js +82 -77
- package/lib/esm/atomic/molecules/toast/ToastProvider.js.map +1 -1
- package/lib/esm/atomic/molecules/toast/ToastViewport.js +75 -70
- package/lib/esm/atomic/molecules/toast/ToastViewport.js.map +1 -1
- package/lib/esm/atomic/molecules/toast/constants.js +6 -5
- package/lib/esm/atomic/molecules/toast/constants.js.map +1 -1
- package/lib/esm/atomic/molecules/toast/toast.css.js +18 -17
- package/lib/esm/atomic/molecules/toast/toast.css.js.map +1 -1
- package/lib/esm/components/charts/BillingUsageLineChart.js +140 -173
- package/lib/esm/components/charts/BillingUsageLineChart.js.map +1 -1
- package/lib/esm/components/charts/billingUsageLineChart.css.js +8 -12
- package/lib/esm/components/charts/billingUsageLineChart.css.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.css.js +84 -24
- package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.js +73 -140
- package/lib/esm/components/data-table/DataTable.js.map +1 -1
- package/lib/esm/components/data-table/TableCell.css.js +18 -15
- package/lib/esm/components/data-table/TableCell.css.js.map +1 -1
- package/lib/esm/components/data-table/TableCell.js +74 -73
- package/lib/esm/components/data-table/TableCell.js.map +1 -1
- package/lib/esm/components/data-table/TableCellBase.js +18 -15
- package/lib/esm/components/data-table/TableCellBase.js.map +1 -1
- package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js +8 -10
- package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js.map +1 -1
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js +190 -248
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -1
- package/lib/esm/components/data-table/tableBreakpoints.js +28 -34
- package/lib/esm/components/data-table/tableBreakpoints.js.map +1 -1
- package/lib/esm/components/layout/ContentLayout.css.js +8 -18
- package/lib/esm/components/layout/ContentLayout.css.js.map +1 -1
- package/lib/esm/components/layout/ContentLayout.js +68 -78
- package/lib/esm/components/layout/ContentLayout.js.map +1 -1
- package/lib/esm/components/layout/TabsContentLayout.css.js +8 -11
- package/lib/esm/components/layout/TabsContentLayout.css.js.map +1 -1
- package/lib/esm/components/layout/TabsContentLayout.js +30 -13
- package/lib/esm/components/layout/TabsContentLayout.js.map +1 -1
- package/lib/esm/components/select/SimpleSelect.css.js +17 -22
- package/lib/esm/components/select/SimpleSelect.css.js.map +1 -1
- package/lib/esm/components/select/SimpleSelect.js +184 -184
- package/lib/esm/components/select/SimpleSelect.js.map +1 -1
- package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js +8 -10
- package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js.map +1 -1
- package/lib/esm/components/subscriptions/RefetchNeededBanner.js +31 -23
- package/lib/esm/components/subscriptions/RefetchNeededBanner.js.map +1 -1
- package/lib/esm/components/tile/InfoTile.css.js +8 -18
- package/lib/esm/components/tile/InfoTile.css.js.map +1 -1
- package/lib/esm/components/tile/InfoTile.js +62 -67
- package/lib/esm/components/tile/InfoTile.js.map +1 -1
- package/lib/esm/i18n/useUiTranslation.js +8 -7
- package/lib/esm/i18n/useUiTranslation.js.map +1 -1
- package/lib/esm/icons/BanSvg.js +29 -44
- package/lib/esm/icons/BanSvg.js.map +1 -1
- package/lib/esm/icons/ButtonLoadingSpinnerSvg.js +26 -41
- package/lib/esm/icons/ButtonLoadingSpinnerSvg.js.map +1 -1
- package/lib/esm/icons/ChatCheckSvg.js +27 -42
- package/lib/esm/icons/ChatCheckSvg.js.map +1 -1
- package/lib/esm/icons/ChatSizeLargeSvg.js +49 -70
- package/lib/esm/icons/ChatSizeLargeSvg.js.map +1 -1
- package/lib/esm/icons/ChatSizeMediumSvg.js +43 -61
- package/lib/esm/icons/ChatSizeMediumSvg.js.map +1 -1
- package/lib/esm/icons/ChatSizeSmallSvg.js +37 -52
- package/lib/esm/icons/ChatSizeSmallSvg.js.map +1 -1
- package/lib/esm/icons/ChatXSvg.js +27 -42
- package/lib/esm/icons/ChatXSvg.js.map +1 -1
- package/lib/esm/icons/CheckSvg.js +21 -30
- package/lib/esm/icons/CheckSvg.js.map +1 -1
- package/lib/esm/icons/ChevronDownSvg.js +21 -30
- package/lib/esm/icons/ChevronDownSvg.js.map +1 -1
- package/lib/esm/icons/ChevronLeftSvg.js +21 -30
- package/lib/esm/icons/ChevronLeftSvg.js.map +1 -1
- package/lib/esm/icons/ChevronRightSvg.js +21 -30
- package/lib/esm/icons/ChevronRightSvg.js.map +1 -1
- package/lib/esm/icons/ClockSvg.js +29 -44
- package/lib/esm/icons/ClockSvg.js.map +1 -1
- package/lib/esm/icons/CoinOffSvg.js +47 -65
- package/lib/esm/icons/CoinOffSvg.js.map +1 -1
- package/lib/esm/icons/CoinSvg.js +40 -55
- package/lib/esm/icons/CoinSvg.js.map +1 -1
- package/lib/esm/icons/DatabaseCheckSvg.js +47 -65
- package/lib/esm/icons/DatabaseCheckSvg.js.map +1 -1
- package/lib/esm/icons/DatabaseXSvg.js +47 -65
- package/lib/esm/icons/DatabaseXSvg.js.map +1 -1
- package/lib/esm/icons/DevModeSvg.js +21 -30
- package/lib/esm/icons/DevModeSvg.js.map +1 -1
- package/lib/esm/icons/EyeSvg.js +27 -33
- package/lib/esm/icons/EyeSvg.js.map +1 -1
- package/lib/esm/icons/FormErrorAlertSvg.js +37 -29
- package/lib/esm/icons/FormErrorAlertSvg.js.map +1 -1
- package/lib/esm/icons/GlobeSvg.js +18 -27
- package/lib/esm/icons/GlobeSvg.js.map +1 -1
- package/lib/esm/icons/GripDotsSvg.js +52 -29
- package/lib/esm/icons/GripDotsSvg.js.map +1 -1
- package/lib/esm/icons/HomeActivityAssignUserSvg.js +44 -62
- package/lib/esm/icons/HomeActivityAssignUserSvg.js.map +1 -1
- package/lib/esm/icons/HomeStatsCheckBadgeSvg.js +27 -42
- package/lib/esm/icons/HomeStatsCheckBadgeSvg.js.map +1 -1
- package/lib/esm/icons/HomeStatsClipboardSvg.js +27 -42
- package/lib/esm/icons/HomeStatsClipboardSvg.js.map +1 -1
- package/lib/esm/icons/HomeStatsClockSvg.js +27 -42
- package/lib/esm/icons/HomeStatsClockSvg.js.map +1 -1
- package/lib/esm/icons/KeyOffSvg.js +39 -54
- package/lib/esm/icons/KeyOffSvg.js.map +1 -1
- package/lib/esm/icons/KeySvg.js +39 -54
- package/lib/esm/icons/KeySvg.js.map +1 -1
- package/lib/esm/icons/KronexSvg.js +28 -43
- package/lib/esm/icons/KronexSvg.js.map +1 -1
- package/lib/esm/icons/LinkCheckSvg.js +37 -52
- package/lib/esm/icons/LinkCheckSvg.js.map +1 -1
- package/lib/esm/icons/LinkSvg.js +27 -42
- package/lib/esm/icons/LinkSvg.js.map +1 -1
- package/lib/esm/icons/LinkXSvg.js +37 -52
- package/lib/esm/icons/LinkXSvg.js.map +1 -1
- package/lib/esm/icons/LockOpenSvg.js +31 -46
- package/lib/esm/icons/LockOpenSvg.js.map +1 -1
- package/lib/esm/icons/LockSvg.js +31 -46
- package/lib/esm/icons/LockSvg.js.map +1 -1
- package/lib/esm/icons/MailCheckSvg.js +41 -56
- package/lib/esm/icons/MailCheckSvg.js.map +1 -1
- package/lib/esm/icons/MailSvg.js +31 -46
- package/lib/esm/icons/MailSvg.js.map +1 -1
- package/lib/esm/icons/MailXSvg.js +41 -56
- package/lib/esm/icons/MailXSvg.js.map +1 -1
- package/lib/esm/icons/ModalCloseSvg.js +27 -42
- package/lib/esm/icons/ModalCloseSvg.js.map +1 -1
- package/lib/esm/icons/PencilSvg.js +14 -20
- package/lib/esm/icons/PencilSvg.js.map +1 -1
- package/lib/esm/icons/PinFilledSvg.js +24 -40
- package/lib/esm/icons/PinFilledSvg.js.map +1 -1
- package/lib/esm/icons/PinSvg.js +27 -43
- package/lib/esm/icons/PinSvg.js.map +1 -1
- package/lib/esm/icons/ProfileDropdownLogoutSvg.js +37 -52
- package/lib/esm/icons/ProfileDropdownLogoutSvg.js.map +1 -1
- package/lib/esm/icons/ProfileDropdownOrganizationSvg.js +27 -42
- package/lib/esm/icons/ProfileDropdownOrganizationSvg.js.map +1 -1
- package/lib/esm/icons/ProjectsFolderSvg.js +21 -30
- package/lib/esm/icons/ProjectsFolderSvg.js.map +1 -1
- package/lib/esm/icons/RobotCheckSvg.js +60 -68
- package/lib/esm/icons/RobotCheckSvg.js.map +1 -1
- package/lib/esm/icons/RobotSvg.js +53 -58
- package/lib/esm/icons/RobotSvg.js.map +1 -1
- package/lib/esm/icons/RobotXSvg.js +60 -68
- package/lib/esm/icons/RobotXSvg.js.map +1 -1
- package/lib/esm/icons/RocketOffSvg.js +58 -83
- package/lib/esm/icons/RocketOffSvg.js.map +1 -1
- package/lib/esm/icons/RocketSvg.js +51 -73
- package/lib/esm/icons/RocketSvg.js.map +1 -1
- package/lib/esm/icons/SendCheckSvg.js +40 -55
- package/lib/esm/icons/SendCheckSvg.js.map +1 -1
- package/lib/esm/icons/SendMessageSvg.js +30 -45
- package/lib/esm/icons/SendMessageSvg.js.map +1 -1
- package/lib/esm/icons/SendXSvg.js +40 -55
- package/lib/esm/icons/SendXSvg.js.map +1 -1
- package/lib/esm/icons/SettingsCheckSvg.js +37 -52
- package/lib/esm/icons/SettingsCheckSvg.js.map +1 -1
- package/lib/esm/icons/SettingsXSvg.js +37 -52
- package/lib/esm/icons/SettingsXSvg.js.map +1 -1
- package/lib/esm/icons/ShieldLockSvg.js +41 -56
- package/lib/esm/icons/ShieldLockSvg.js.map +1 -1
- package/lib/esm/icons/ShieldOffSvg.js +27 -42
- package/lib/esm/icons/ShieldOffSvg.js.map +1 -1
- package/lib/esm/icons/SidebarHomeSvg.js +27 -42
- package/lib/esm/icons/SidebarHomeSvg.js.map +1 -1
- package/lib/esm/icons/SidebarInitiativesSvg.js +37 -52
- package/lib/esm/icons/SidebarInitiativesSvg.js.map +1 -1
- package/lib/esm/icons/SidebarPlusSvg.js +27 -42
- package/lib/esm/icons/SidebarPlusSvg.js.map +1 -1
- package/lib/esm/icons/SidebarSearchSvg.js +27 -42
- package/lib/esm/icons/SidebarSearchSvg.js.map +1 -1
- package/lib/esm/icons/SidebarSettingsSvg.js +27 -42
- package/lib/esm/icons/SidebarSettingsSvg.js.map +1 -1
- package/lib/esm/icons/SidebarTasksSvg.js +27 -42
- package/lib/esm/icons/SidebarTasksSvg.js.map +1 -1
- package/lib/esm/icons/SidebarTeamSvg.js +44 -62
- package/lib/esm/icons/SidebarTeamSvg.js.map +1 -1
- package/lib/esm/icons/TaskAttachmentSvg.js +21 -30
- package/lib/esm/icons/TaskAttachmentSvg.js.map +1 -1
- package/lib/esm/icons/TaskCalendarSvg.js +44 -62
- package/lib/esm/icons/TaskCalendarSvg.js.map +1 -1
- package/lib/esm/icons/TaskCommentBubbleSvg.js +21 -30
- package/lib/esm/icons/TaskCommentBubbleSvg.js.map +1 -1
- package/lib/esm/icons/TaskDeleteSvg.js +27 -42
- package/lib/esm/icons/TaskDeleteSvg.js.map +1 -1
- package/lib/esm/icons/TaskDependencyBlockedSvg.js +27 -43
- package/lib/esm/icons/TaskDependencyBlockedSvg.js.map +1 -1
- package/lib/esm/icons/TaskDependencyReadySvg.js +27 -43
- package/lib/esm/icons/TaskDependencyReadySvg.js.map +1 -1
- package/lib/esm/icons/TaskMenuDotsSvg.js +37 -52
- package/lib/esm/icons/TaskMenuDotsSvg.js.map +1 -1
- package/lib/esm/icons/TaskTagSvg.js +27 -42
- package/lib/esm/icons/TaskTagSvg.js.map +1 -1
- package/lib/esm/icons/TeamMemberEmailSvg.js +27 -42
- package/lib/esm/icons/TeamMemberEmailSvg.js.map +1 -1
- package/lib/esm/icons/TeamMemberLocationSvg.js +27 -42
- package/lib/esm/icons/TeamMemberLocationSvg.js.map +1 -1
- package/lib/esm/icons/WrenchSvg.js +21 -30
- package/lib/esm/icons/WrenchSvg.js.map +1 -1
- package/lib/esm/icons/XBadgeSvg.js +27 -42
- package/lib/esm/icons/XBadgeSvg.js.map +1 -1
- package/lib/esm/icons/markdown/MarkdownCheckboxCheckedSvg.js +30 -42
- package/lib/esm/icons/markdown/MarkdownCheckboxCheckedSvg.js.map +1 -1
- package/lib/esm/icons/markdown/MarkdownCheckboxUncheckedSvg.js +22 -28
- package/lib/esm/icons/markdown/MarkdownCheckboxUncheckedSvg.js.map +1 -1
- package/lib/esm/icons/markdown/MarkdownCopySuccessSvg.js +41 -53
- package/lib/esm/icons/markdown/MarkdownCopySuccessSvg.js.map +1 -1
- package/lib/esm/icons/markdown/MarkdownCopySvg.js +30 -42
- package/lib/esm/icons/markdown/MarkdownCopySvg.js.map +1 -1
- package/lib/esm/icons/markdown/MarkdownExternalLinkSvg.js +39 -51
- package/lib/esm/icons/markdown/MarkdownExternalLinkSvg.js.map +1 -1
- package/lib/esm/index.js +34 -77
- package/lib/esm/style.css +2 -0
- package/lib/esm/style.js +4 -0
- package/lib/esm/styles/slots.js +0 -2
- package/lib/esm/svg/ChevronDownIcon.js +11 -10
- package/lib/esm/svg/ChevronDownIcon.js.map +1 -1
- package/lib/esm/svg/ChevronRightIcon.js +11 -9
- package/lib/esm/svg/ChevronRightIcon.js.map +1 -1
- package/lib/esm/svg/GlobeIcon.js +11 -6
- package/lib/esm/svg/GlobeIcon.js.map +1 -1
- package/lib/esm/theme/ThemeProvider.js +33 -37
- package/lib/esm/theme/ThemeProvider.js.map +1 -1
- package/lib/esm/theme/VisuallyHidden.js +12 -8
- package/lib/esm/theme/VisuallyHidden.js.map +1 -1
- package/lib/esm/theme/accessibility.css.js +7 -8
- package/lib/esm/theme/accessibility.css.js.map +1 -1
- package/lib/esm/theme/colors.js +101 -100
- package/lib/esm/theme/colors.js.map +1 -1
- package/lib/esm/theme/common.js +122 -123
- package/lib/esm/theme/common.js.map +1 -1
- package/lib/esm/theme/containerQueries.js +14 -13
- package/lib/esm/theme/containerQueries.js.map +1 -1
- package/lib/esm/theme/global.css.js +1 -2
- package/lib/esm/theme/index.js +9 -28
- package/lib/esm/theme/sprinkles.css.js +68484 -9
- package/lib/esm/theme/sprinkles.css.js.map +1 -1
- package/lib/esm/theme/theme.css.js +1 -2
- package/lib/esm/theme/themeContract.js +1025 -1035
- package/lib/esm/theme/themeContract.js.map +1 -1
- package/lib/esm/theme/tools.js +16 -19
- package/lib/esm/theme/tools.js.map +1 -1
- package/lib/style.d.ts +5 -0
- package/lib/style.d.ts.map +1 -0
- package/lib/style.js +5 -0
- package/lib/types/style.d.ts +5 -0
- package/lib/types/style.d.ts.map +1 -0
- package/package.json +4 -3
- package/lib/esm/atomic/atoms/badge/badge.css.ts.vanilla-BxMgYgcH.css +0 -1
- package/lib/esm/atomic/atoms/button/button.css.ts.vanilla-BYFxDZro.css +0 -1
- package/lib/esm/atomic/atoms/checkbox/checkbox.css.ts.vanilla-D6TvWxlo.css +0 -1
- package/lib/esm/atomic/atoms/input/input.css.ts.vanilla-D_X5_tcn.css +0 -1
- package/lib/esm/atomic/atoms/textarea/textarea.css.ts.vanilla-IrvNTQEt.css +0 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.ts.vanilla-Bhz61Foa.css +0 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/types.js.map +0 -1
- package/lib/esm/atomic/molecules/tabs/tabs.css.ts.vanilla-DQm5wO0K.css +0 -1
- package/lib/esm/atomic/molecules/toast/toast.css.ts.vanilla-2GtcGJsi.css +0 -1
- package/lib/esm/components/charts/billingUsageLineChart.css.ts.vanilla-7e3dy1Dj.css +0 -1
- package/lib/esm/components/data-table/DataTable.css.ts.vanilla-BLE98fwj.css +0 -1
- package/lib/esm/components/data-table/TableCell.css.ts.vanilla-i5QJvdbl.css +0 -1
- package/lib/esm/components/layout/ContentLayout.css.ts.vanilla-tn0RQdqM.css +0 -0
- package/lib/esm/components/select/SimpleSelect.css.ts.vanilla-Bil1v8q6.css +0 -1
- package/lib/esm/components/tile/InfoTile.css.ts.vanilla-ByCg4UKz.css +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/styles/slots.js.map +0 -1
- package/lib/esm/theme/accessibility.css.ts.vanilla-D6gfeWvf.css +0 -1
- package/lib/esm/theme/global.css.js.map +0 -1
- package/lib/esm/theme/global.css.ts.vanilla-ClXnHnoy.css +0 -1
- package/lib/esm/theme/index.js.map +0 -1
- package/lib/esm/theme/sprinkles.css.ts.vanilla-DOI5FNoi.css +0 -1
- package/lib/esm/theme/theme.css.js.map +0 -1
- package/lib/esm/theme/theme.css.ts.vanilla-a3SsXff5.css +0 -1
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
import { container as e, tabRecipe as t } from "./tabs.css.js";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { Link as r, useLocation as i } from "@plumile/router";
|
|
4
|
+
//#region src/atomic/molecules/tabs/Tabs.tsx
|
|
5
|
+
var a = r, o = (r) => {
|
|
6
|
+
let { items: o, ariaLabel: s } = r, { pathname: c } = i();
|
|
7
|
+
return /* @__PURE__ */ n("div", {
|
|
8
|
+
role: "tablist",
|
|
9
|
+
"aria-label": s,
|
|
10
|
+
className: e,
|
|
11
|
+
children: o.map((e) => {
|
|
12
|
+
let { disabled: r, id: i, label: o, to: s } = e, l = c === s, u;
|
|
13
|
+
r && (u = !0);
|
|
14
|
+
let d = "default", f;
|
|
15
|
+
r ? (d = "disabled", f = -1) : l && (d = "active");
|
|
16
|
+
let p = (e) => {
|
|
17
|
+
r && e.preventDefault();
|
|
18
|
+
};
|
|
19
|
+
return /* @__PURE__ */ n(a, {
|
|
20
|
+
exact: !0,
|
|
21
|
+
"aria-disabled": u,
|
|
22
|
+
className: t({ state: d }),
|
|
23
|
+
role: "tab",
|
|
24
|
+
to: s,
|
|
25
|
+
tabIndex: f,
|
|
26
|
+
onClick: p,
|
|
27
|
+
children: o
|
|
28
|
+
}, i);
|
|
29
|
+
})
|
|
30
|
+
});
|
|
30
31
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=Tabs.js.map
|
|
32
|
+
//#endregion
|
|
33
|
+
export { o as Tabs };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../../../../src/atomic/molecules/tabs/Tabs.tsx"],"sourcesContent":["import {\n type AnchorHTMLAttributes,\n type ComponentPropsWithoutRef,\n type JSX,\n type MouseEvent,\n type ReactNode,\n} from 'react';\nimport { Link, useLocation } from '@plumile/router';\n\nimport * as styles from './tabs.css.js';\n\nexport type TabsSelectEvent = MouseEvent<HTMLButtonElement | HTMLAnchorElement>;\n\ntype LinkComponentProps = ComponentPropsWithoutRef<typeof Link>;\ntype RouterLinkProps = LinkComponentProps &\n AnchorHTMLAttributes<HTMLAnchorElement>;\nconst RouterLink = Link as unknown as (props: RouterLinkProps) => JSX.Element;\n\ntype BaseTabItem = {\n id: string;\n label: ReactNode;\n disabled?: boolean;\n};\n\ntype NavigationTabItem = BaseTabItem & {\n to: NonNullable<LinkComponentProps['to']>;\n};\n\nexport type TabItem = NavigationTabItem;\n\nexport type TabsProps = {\n items: TabItem[];\n ariaLabel?: string;\n};\n\nexport const Tabs = (props: TabsProps): JSX.Element => {\n const { items, ariaLabel } = props;\n const { pathname } = useLocation();\n\n return (\n <div role=\"tablist\" aria-label={ariaLabel} className={styles.container}>\n {items.map((item) => {\n const { disabled, id, label, to } = item;\n const isActive = pathname === to;\n\n let ariaDisabled: true | undefined;\n if (disabled) {\n ariaDisabled = true;\n }\n\n type TabState = NonNullable<\n Parameters<typeof styles.tabRecipe>[0]\n >['state'];\n let tabState: TabState = 'default';\n let tabIndex: number | undefined;\n if (disabled) {\n tabState = 'disabled';\n tabIndex = -1;\n } else if (isActive) {\n tabState = 'active';\n }\n\n const handleLinkClick = (event: MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n event.preventDefault();\n }\n };\n\n return (\n <RouterLink\n key={id}\n exact\n aria-disabled={ariaDisabled}\n className={styles.tabRecipe({ state: tabState })}\n role=\"tab\"\n to={to}\n tabIndex={tabIndex}\n onClick={handleLinkClick}\n >\n {label}\n </RouterLink>\n );\n })}\n </div>\n );\n};\n"],"
|
|
1
|
+
{"version":3,"file":"Tabs.js","names":[],"sources":["../../../../../src/atomic/molecules/tabs/Tabs.tsx"],"sourcesContent":["import {\n type AnchorHTMLAttributes,\n type ComponentPropsWithoutRef,\n type JSX,\n type MouseEvent,\n type ReactNode,\n} from 'react';\nimport { Link, useLocation } from '@plumile/router';\n\nimport * as styles from './tabs.css.js';\n\nexport type TabsSelectEvent = MouseEvent<HTMLButtonElement | HTMLAnchorElement>;\n\ntype LinkComponentProps = ComponentPropsWithoutRef<typeof Link>;\ntype RouterLinkProps = LinkComponentProps &\n AnchorHTMLAttributes<HTMLAnchorElement>;\nconst RouterLink = Link as unknown as (props: RouterLinkProps) => JSX.Element;\n\ntype BaseTabItem = {\n id: string;\n label: ReactNode;\n disabled?: boolean;\n};\n\ntype NavigationTabItem = BaseTabItem & {\n to: NonNullable<LinkComponentProps['to']>;\n};\n\nexport type TabItem = NavigationTabItem;\n\nexport type TabsProps = {\n items: TabItem[];\n ariaLabel?: string;\n};\n\nexport const Tabs = (props: TabsProps): JSX.Element => {\n const { items, ariaLabel } = props;\n const { pathname } = useLocation();\n\n return (\n <div role=\"tablist\" aria-label={ariaLabel} className={styles.container}>\n {items.map((item) => {\n const { disabled, id, label, to } = item;\n const isActive = pathname === to;\n\n let ariaDisabled: true | undefined;\n if (disabled) {\n ariaDisabled = true;\n }\n\n type TabState = NonNullable<\n Parameters<typeof styles.tabRecipe>[0]\n >['state'];\n let tabState: TabState = 'default';\n let tabIndex: number | undefined;\n if (disabled) {\n tabState = 'disabled';\n tabIndex = -1;\n } else if (isActive) {\n tabState = 'active';\n }\n\n const handleLinkClick = (event: MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n event.preventDefault();\n }\n };\n\n return (\n <RouterLink\n key={id}\n exact\n aria-disabled={ariaDisabled}\n className={styles.tabRecipe({ state: tabState })}\n role=\"tab\"\n to={to}\n tabIndex={tabIndex}\n onClick={handleLinkClick}\n >\n {label}\n </RouterLink>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;AAgBA,IAAM,IAAa,GAmBN,KAAQ,MAAkC;CACrD,IAAM,EAAE,UAAO,iBAAc,GACvB,EAAE,gBAAa,GAAa;AAElC,QACE,kBAAC,OAAD;EAAK,MAAK;EAAU,cAAY;EAAW,WAAW;YACnD,EAAM,KAAK,MAAS;GACnB,IAAM,EAAE,aAAU,OAAI,UAAO,UAAO,GAC9B,IAAW,MAAa,GAE1B;AACJ,GAAI,MACF,IAAe;GAMjB,IAAI,IAAqB,WACrB;AACJ,GAAI,KACF,IAAW,YACX,IAAW,MACF,MACT,IAAW;GAGb,IAAM,KAAmB,MAAyC;AAChE,IAAI,KACF,EAAM,gBAAgB;;AAI1B,UACE,kBAAC,GAAD;IAEE,OAAA;IACA,iBAAe;IACf,WAAW,EAAiB,EAAE,OAAO,GAAU,CAAC;IAChD,MAAK;IACD;IACM;IACV,SAAS;cAER;IACU,EAVN,EAUM;IAEf;EACE,CAAA"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
/* empty css
|
|
2
|
-
/* empty css
|
|
3
|
-
import { createRuntimeFn as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { createRuntimeFn as e } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
4
|
+
//#region src/atomic/molecules/tabs/tabs.css.ts
|
|
5
|
+
var t = "_11tf63d0 txvbqb9io txvbqbajx txvbqbco txvbqbao6 txvbqbdnx", n = e({
|
|
6
|
+
defaultClassName: "_11tf63d6 _11tf63d2 _11tf63d1 txvbqbnvf txvbqboio txvbqbp5f txvbqblx6 txvbqb9jf txvbqbco txvbqbanx txvbqb76x txvbqb746 txvbqb8x txvbqbv8r txvbqb78 txvbqb6x txvbqb7k txvbqb5sx txvbqb36f txvbqbamf txvbqb3b txvbqbl3f txvbqbpsf",
|
|
7
|
+
variantClassNames: { state: {
|
|
8
|
+
default: "_11tf63d7 _11tf63d3",
|
|
9
|
+
active: "_11tf63d8 _11tf63d4 txvbqbv7z txvbqb3jo txvbqbamo",
|
|
10
|
+
disabled: "_11tf63d9 _11tf63d5 txvbqbv8t txvbqb2k txvbqbr"
|
|
11
|
+
} },
|
|
12
|
+
defaultVariants: { state: "default" },
|
|
13
|
+
compoundVariants: []
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { t as container, n as tabRecipe };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=tabs.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.css.js","
|
|
1
|
+
{"version":3,"file":"tabs.css.js","names":[],"sources":["../../../../../src/atomic/molecules/tabs/tabs.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { recipe, type RecipeVariants } from '@vanilla-extract/recipes';\n\nimport { sprinkles } from '../../../theme/sprinkles.css.js';\nimport { vars } from '../../../theme/themeContract.js';\n\nexport const container = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: 2,\n justifyContent: 'center',\n});\n\nconst tabBase = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 1,\n borderTopLeftRadius: 'md',\n borderTopRightRadius: 'md',\n paddingX: 4,\n paddingY: 2,\n fontSize: 'sm',\n color: 'textSecondary',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n borderBottomWidth: 2,\n borderBottomColor: 'transparent',\n fontWeight: 'medium',\n textDecoration: 'none',\n outline: 'none',\n position: 'relative',\n }),\n {\n marginBottom: '-1px',\n selectors: {\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n color: vars.colors.primary,\n borderBottomColor: vars.colors.primary,\n },\n },\n },\n]);\n\nexport const tabRecipe = recipe({\n base: tabBase,\n variants: {\n state: {\n default: style({\n selectors: {\n '&:hover': {\n color: vars.colors.primary,\n borderBottomColor: vars.colors.primaryLight,\n },\n },\n }),\n active: sprinkles({\n color: 'primary',\n borderBottomColor: 'primary',\n fontWeight: 'semibold',\n }),\n disabled: sprinkles({\n color: 'textMuted',\n pointerEvents: 'none',\n cursor: 'not-allowed',\n }),\n },\n },\n defaultVariants: {\n state: 'default',\n },\n});\n\nexport type TabRecipeVariants = RecipeVariants<typeof tabRecipe>;\n"],"mappings":""}
|
|
@@ -1,78 +1,83 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
1
|
+
import { INFO_TOAST_DURATION_MS as e } from "./constants.js";
|
|
2
|
+
import { ToastViewport as t } from "./ToastViewport.js";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
import { createContext as i, useCallback as a, useContext as o, useEffect as s, useMemo as c, useRef as l, useState as u } from "react";
|
|
5
|
+
//#region src/atomic/molecules/toast/ToastProvider.tsx
|
|
6
|
+
var d = i(null), f = (e, t) => (n, r) => e.push({
|
|
7
|
+
kind: t,
|
|
8
|
+
title: n,
|
|
9
|
+
message: r
|
|
10
|
+
}), p = ({ children: i, maxToasts: o = 4 }) => {
|
|
11
|
+
let [p, m] = u([]), h = l(0), g = l(/* @__PURE__ */ new Map()), _ = a((e) => {
|
|
12
|
+
let t = g.current.get(e);
|
|
13
|
+
t != null && (clearTimeout(t), g.current.delete(e)), m((t) => t.filter((t) => t.id !== e));
|
|
14
|
+
}, []), v = a(() => {
|
|
15
|
+
g.current.forEach((e) => {
|
|
16
|
+
clearTimeout(e);
|
|
17
|
+
}), g.current.clear(), m([]);
|
|
18
|
+
}, []), y = a((e) => {
|
|
19
|
+
let t = e.id ?? `toast-${h.current++}`;
|
|
20
|
+
return m((n) => {
|
|
21
|
+
let r = [...n, {
|
|
22
|
+
...e,
|
|
23
|
+
kind: e.kind ?? "info",
|
|
24
|
+
id: t
|
|
25
|
+
}];
|
|
26
|
+
return r.length > o ? r.slice(r.length - o) : r;
|
|
27
|
+
}), t;
|
|
28
|
+
}, [o]);
|
|
29
|
+
s(() => {
|
|
30
|
+
let t = /* @__PURE__ */ new Set();
|
|
31
|
+
p.forEach((n) => {
|
|
32
|
+
if (n.kind !== "info" || (t.add(n.id), g.current.has(n.id))) return;
|
|
33
|
+
let r = setTimeout(() => {
|
|
34
|
+
g.current.delete(n.id), m((e) => e.filter((e) => e.id !== n.id));
|
|
35
|
+
}, e);
|
|
36
|
+
g.current.set(n.id, r);
|
|
37
|
+
}), g.current.forEach((e, n) => {
|
|
38
|
+
t.has(n) || (clearTimeout(e), g.current.delete(n));
|
|
39
|
+
});
|
|
40
|
+
}, [p]), s(() => {
|
|
41
|
+
let e = g.current;
|
|
42
|
+
return () => {
|
|
43
|
+
e.forEach((e) => {
|
|
44
|
+
clearTimeout(e);
|
|
45
|
+
}), e.clear();
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
let b = c(() => {
|
|
49
|
+
let e = {
|
|
50
|
+
push: y,
|
|
51
|
+
dismiss: _,
|
|
52
|
+
clear: v,
|
|
53
|
+
info: () => "",
|
|
54
|
+
warning: () => "",
|
|
55
|
+
error: () => ""
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
...e,
|
|
59
|
+
info: f(e, "info"),
|
|
60
|
+
warning: f(e, "warning"),
|
|
61
|
+
error: f(e, "error")
|
|
62
|
+
};
|
|
63
|
+
}, [
|
|
64
|
+
v,
|
|
65
|
+
_,
|
|
66
|
+
y
|
|
67
|
+
]);
|
|
68
|
+
return /* @__PURE__ */ r(d.Provider, {
|
|
69
|
+
value: b,
|
|
70
|
+
children: [i, /* @__PURE__ */ n(t, {
|
|
71
|
+
toasts: p,
|
|
72
|
+
onDismiss: _
|
|
73
|
+
})]
|
|
74
|
+
});
|
|
75
|
+
}, m = () => {
|
|
76
|
+
let e = o(d);
|
|
77
|
+
if (e == null) throw Error("useToast must be used within a ToastProvider");
|
|
78
|
+
return e;
|
|
73
79
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
//# sourceMappingURL=ToastProvider.js.map
|
|
80
|
+
//#endregion
|
|
81
|
+
export { p as ToastProvider, m as useToast };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=ToastProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.js","sources":["../../../../../src/atomic/molecules/toast/ToastProvider.tsx"],"sourcesContent":["import {\n createContext,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport {\n ToastViewport,\n type ToastItem,\n type ToastKind,\n} from './ToastViewport.js';\nimport { INFO_TOAST_DURATION_MS } from './constants.js';\n\nexport type ToastApi = {\n push: (toast: Omit<ToastItem, 'id'> & { id?: string }) => string;\n dismiss: (toastId: string) => void;\n clear: () => void;\n info: (title: ReactNode, message?: ReactNode) => string;\n warning: (title: ReactNode, message?: ReactNode) => string;\n error: (title: ReactNode, message?: ReactNode) => string;\n};\n\nexport type ToastProviderProps = {\n children: ReactNode;\n maxToasts?: number;\n};\n\nconst ToastContext = createContext<ToastApi | null>(null);\n\nconst pushWithKind = (api: ToastApi, kind: ToastKind) => {\n return (title: ReactNode, message?: ReactNode): string => {\n return api.push({ kind, title, message });\n };\n};\n\nexport const ToastProvider = ({\n children,\n maxToasts = 4,\n}: ToastProviderProps): JSX.Element => {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const counter = useRef(0);\n const infoToastTimers = useRef<Map<string, ReturnType<typeof setTimeout>>>(\n new Map(),\n );\n\n const dismiss = useCallback((toastId: string) => {\n const timer = infoToastTimers.current.get(toastId);\n if (timer != null) {\n clearTimeout(timer);\n infoToastTimers.current.delete(toastId);\n }\n setToasts((prev) => {\n return prev.filter((t) => {\n return t.id !== toastId;\n });\n });\n }, []);\n\n const clear = useCallback(() => {\n infoToastTimers.current.forEach((timer) => {\n clearTimeout(timer);\n });\n infoToastTimers.current.clear();\n setToasts([]);\n }, []);\n\n const push = useCallback(\n (toast: Omit<ToastItem, 'id'> & { id?: string }): string => {\n const id = toast.id ?? `toast-${counter.current++}`;\n setToasts((prev) => {\n const next = [...prev, { ...toast, kind: toast.kind ?? 'info', id }];\n if (next.length > maxToasts) {\n return next.slice(next.length - maxToasts);\n }\n return next;\n });\n return id;\n },\n [maxToasts],\n );\n\n useEffect(() => {\n const activeInfoToastIds = new Set<string>();\n toasts.forEach((toast) => {\n if (toast.kind !== 'info') {\n return;\n }\n activeInfoToastIds.add(toast.id);\n if (infoToastTimers.current.has(toast.id)) {\n return;\n }\n const timer = setTimeout(() => {\n infoToastTimers.current.delete(toast.id);\n setToasts((prev) => {\n return prev.filter((item) => {\n return item.id !== toast.id;\n });\n });\n }, INFO_TOAST_DURATION_MS);\n infoToastTimers.current.set(toast.id, timer);\n });\n\n infoToastTimers.current.forEach((timer, toastId) => {\n if (activeInfoToastIds.has(toastId)) {\n return;\n }\n clearTimeout(timer);\n infoToastTimers.current.delete(toastId);\n });\n }, [toasts]);\n\n useEffect(() => {\n const timers = infoToastTimers.current;\n return () => {\n timers.forEach((timer) => {\n clearTimeout(timer);\n });\n timers.clear();\n };\n }, []);\n\n const api = useMemo<ToastApi>(() => {\n const base: ToastApi = {\n push,\n dismiss,\n clear,\n info: () => {\n return '';\n },\n warning: () => {\n return '';\n },\n error: () => {\n return '';\n },\n };\n return {\n ...base,\n info: pushWithKind(base, 'info'),\n warning: pushWithKind(base, 'warning'),\n error: pushWithKind(base, 'error'),\n };\n }, [clear, dismiss, push]);\n\n return (\n <ToastContext.Provider value={api}>\n {children}\n <ToastViewport toasts={toasts} onDismiss={dismiss} />\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = (): ToastApi => {\n const value = useContext(ToastContext);\n if (value == null) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return value;\n};\n"],"
|
|
1
|
+
{"version":3,"file":"ToastProvider.js","names":[],"sources":["../../../../../src/atomic/molecules/toast/ToastProvider.tsx"],"sourcesContent":["import {\n createContext,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport {\n ToastViewport,\n type ToastItem,\n type ToastKind,\n} from './ToastViewport.js';\nimport { INFO_TOAST_DURATION_MS } from './constants.js';\n\nexport type ToastApi = {\n push: (toast: Omit<ToastItem, 'id'> & { id?: string }) => string;\n dismiss: (toastId: string) => void;\n clear: () => void;\n info: (title: ReactNode, message?: ReactNode) => string;\n warning: (title: ReactNode, message?: ReactNode) => string;\n error: (title: ReactNode, message?: ReactNode) => string;\n};\n\nexport type ToastProviderProps = {\n children: ReactNode;\n maxToasts?: number;\n};\n\nconst ToastContext = createContext<ToastApi | null>(null);\n\nconst pushWithKind = (api: ToastApi, kind: ToastKind) => {\n return (title: ReactNode, message?: ReactNode): string => {\n return api.push({ kind, title, message });\n };\n};\n\nexport const ToastProvider = ({\n children,\n maxToasts = 4,\n}: ToastProviderProps): JSX.Element => {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const counter = useRef(0);\n const infoToastTimers = useRef<Map<string, ReturnType<typeof setTimeout>>>(\n new Map(),\n );\n\n const dismiss = useCallback((toastId: string) => {\n const timer = infoToastTimers.current.get(toastId);\n if (timer != null) {\n clearTimeout(timer);\n infoToastTimers.current.delete(toastId);\n }\n setToasts((prev) => {\n return prev.filter((t) => {\n return t.id !== toastId;\n });\n });\n }, []);\n\n const clear = useCallback(() => {\n infoToastTimers.current.forEach((timer) => {\n clearTimeout(timer);\n });\n infoToastTimers.current.clear();\n setToasts([]);\n }, []);\n\n const push = useCallback(\n (toast: Omit<ToastItem, 'id'> & { id?: string }): string => {\n const id = toast.id ?? `toast-${counter.current++}`;\n setToasts((prev) => {\n const next = [...prev, { ...toast, kind: toast.kind ?? 'info', id }];\n if (next.length > maxToasts) {\n return next.slice(next.length - maxToasts);\n }\n return next;\n });\n return id;\n },\n [maxToasts],\n );\n\n useEffect(() => {\n const activeInfoToastIds = new Set<string>();\n toasts.forEach((toast) => {\n if (toast.kind !== 'info') {\n return;\n }\n activeInfoToastIds.add(toast.id);\n if (infoToastTimers.current.has(toast.id)) {\n return;\n }\n const timer = setTimeout(() => {\n infoToastTimers.current.delete(toast.id);\n setToasts((prev) => {\n return prev.filter((item) => {\n return item.id !== toast.id;\n });\n });\n }, INFO_TOAST_DURATION_MS);\n infoToastTimers.current.set(toast.id, timer);\n });\n\n infoToastTimers.current.forEach((timer, toastId) => {\n if (activeInfoToastIds.has(toastId)) {\n return;\n }\n clearTimeout(timer);\n infoToastTimers.current.delete(toastId);\n });\n }, [toasts]);\n\n useEffect(() => {\n const timers = infoToastTimers.current;\n return () => {\n timers.forEach((timer) => {\n clearTimeout(timer);\n });\n timers.clear();\n };\n }, []);\n\n const api = useMemo<ToastApi>(() => {\n const base: ToastApi = {\n push,\n dismiss,\n clear,\n info: () => {\n return '';\n },\n warning: () => {\n return '';\n },\n error: () => {\n return '';\n },\n };\n return {\n ...base,\n info: pushWithKind(base, 'info'),\n warning: pushWithKind(base, 'warning'),\n error: pushWithKind(base, 'error'),\n };\n }, [clear, dismiss, push]);\n\n return (\n <ToastContext.Provider value={api}>\n {children}\n <ToastViewport toasts={toasts} onDismiss={dismiss} />\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = (): ToastApi => {\n const value = useContext(ToastContext);\n if (value == null) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return value;\n};\n"],"mappings":";;;;;AAiCA,IAAM,IAAe,EAA+B,KAAK,EAEnD,KAAgB,GAAe,OAC3B,GAAkB,MACjB,EAAI,KAAK;CAAE;CAAM;CAAO;CAAS,CAAC,EAIhC,KAAiB,EAC5B,aACA,eAAY,QACyB;CACrC,IAAM,CAAC,GAAQ,KAAa,EAAsB,EAAE,CAAC,EAC/C,IAAU,EAAO,EAAE,EACnB,IAAkB,kBACtB,IAAI,KAAK,CACV,EAEK,IAAU,GAAa,MAAoB;EAC/C,IAAM,IAAQ,EAAgB,QAAQ,IAAI,EAAQ;AAKlD,EAJI,KAAS,SACX,aAAa,EAAM,EACnB,EAAgB,QAAQ,OAAO,EAAQ,GAEzC,GAAW,MACF,EAAK,QAAQ,MACX,EAAE,OAAO,EAChB,CACF;IACD,EAAE,CAAC,EAEA,IAAQ,QAAkB;AAK9B,EAJA,EAAgB,QAAQ,SAAS,MAAU;AACzC,gBAAa,EAAM;IACnB,EACF,EAAgB,QAAQ,OAAO,EAC/B,EAAU,EAAE,CAAC;IACZ,EAAE,CAAC,EAEA,IAAO,GACV,MAA2D;EAC1D,IAAM,IAAK,EAAM,MAAM,SAAS,EAAQ;AAQxC,SAPA,GAAW,MAAS;GAClB,IAAM,IAAO,CAAC,GAAG,GAAM;IAAE,GAAG;IAAO,MAAM,EAAM,QAAQ;IAAQ;IAAI,CAAC;AAIpE,UAHI,EAAK,SAAS,IACT,EAAK,MAAM,EAAK,SAAS,EAAU,GAErC;IACP,EACK;IAET,CAAC,EAAU,CACZ;AAgCD,CA9BA,QAAgB;EACd,IAAM,oBAAqB,IAAI,KAAa;AAoB5C,EAnBA,EAAO,SAAS,MAAU;AAKxB,OAJI,EAAM,SAAS,WAGnB,EAAmB,IAAI,EAAM,GAAG,EAC5B,EAAgB,QAAQ,IAAI,EAAM,GAAG,EACvC;GAEF,IAAM,IAAQ,iBAAiB;AAE7B,IADA,EAAgB,QAAQ,OAAO,EAAM,GAAG,EACxC,GAAW,MACF,EAAK,QAAQ,MACX,EAAK,OAAO,EAAM,GACzB,CACF;MACD,EAAuB;AAC1B,KAAgB,QAAQ,IAAI,EAAM,IAAI,EAAM;IAC5C,EAEF,EAAgB,QAAQ,SAAS,GAAO,MAAY;AAC9C,KAAmB,IAAI,EAAQ,KAGnC,aAAa,EAAM,EACnB,EAAgB,QAAQ,OAAO,EAAQ;IACvC;IACD,CAAC,EAAO,CAAC,EAEZ,QAAgB;EACd,IAAM,IAAS,EAAgB;AAC/B,eAAa;AAIX,GAHA,EAAO,SAAS,MAAU;AACxB,iBAAa,EAAM;KACnB,EACF,EAAO,OAAO;;IAEf,EAAE,CAAC;CAEN,IAAM,IAAM,QAAwB;EAClC,IAAM,IAAiB;GACrB;GACA;GACA;GACA,YACS;GAET,eACS;GAET,aACS;GAEV;AACD,SAAO;GACL,GAAG;GACH,MAAM,EAAa,GAAM,OAAO;GAChC,SAAS,EAAa,GAAM,UAAU;GACtC,OAAO,EAAa,GAAM,QAAQ;GACnC;IACA;EAAC;EAAO;EAAS;EAAK,CAAC;AAE1B,QACE,kBAAC,EAAa,UAAd;EAAuB,OAAO;YAA9B,CACG,GACD,kBAAC,GAAD;GAAuB;GAAQ,WAAW;GAAW,CAAA,CAC/B;;GAIf,UAA2B;CACtC,IAAM,IAAQ,EAAW,EAAa;AACtC,KAAI,KAAS,KACX,OAAU,MAAM,+CAA+C;AAEjE,QAAO"}
|
|
@@ -1,71 +1,76 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
1
|
+
import { cx as e } from "../../../theme/tools.js";
|
|
2
|
+
import { useUiTranslation as t } from "../../../i18n/useUiTranslation.js";
|
|
3
|
+
import { Button as n } from "../../atoms/button/Button.js";
|
|
4
|
+
import { ModalCloseSvg as r } from "../../../icons/ModalCloseSvg.js";
|
|
5
|
+
import { actions as i, closeButton as a, header as o, kindRecipe as s, message as c, progressBar as l, progressTrack as u, title as d, toast as f, viewport as p } from "./toast.css.js";
|
|
6
|
+
import { INFO_TOAST_DURATION_MS as m } from "./constants.js";
|
|
7
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
8
|
+
import { useMemo as _ } from "react";
|
|
9
|
+
//#region src/atomic/molecules/toast/ToastViewport.tsx
|
|
10
|
+
var v = ({ toasts: v, onDismiss: y, dismissLabel: b, className: x }) => {
|
|
11
|
+
let { t: S } = t(), C = b ?? S("toast.dismissAriaLabel"), w = _(() => v.map((t) => {
|
|
12
|
+
let p = t.kind ?? "info", _ = t.actions ?? [], v = null;
|
|
13
|
+
t.message != null && (v = /* @__PURE__ */ h("div", {
|
|
14
|
+
className: c,
|
|
15
|
+
children: t.message
|
|
16
|
+
}));
|
|
17
|
+
let b = null;
|
|
18
|
+
_.length > 0 && (b = /* @__PURE__ */ h("div", {
|
|
19
|
+
className: i,
|
|
20
|
+
children: _.map((e) => /* @__PURE__ */ h(n, {
|
|
21
|
+
type: "button",
|
|
22
|
+
size: "small",
|
|
23
|
+
variant: "secondary",
|
|
24
|
+
onClick: e.onClick,
|
|
25
|
+
children: e.label
|
|
26
|
+
}, e.id))
|
|
27
|
+
}));
|
|
28
|
+
let x = null;
|
|
29
|
+
return p === "info" && (x = /* @__PURE__ */ h("div", {
|
|
30
|
+
className: u,
|
|
31
|
+
"aria-hidden": "true",
|
|
32
|
+
children: /* @__PURE__ */ h("div", {
|
|
33
|
+
className: l,
|
|
34
|
+
style: { animationDuration: `${m}ms` }
|
|
35
|
+
})
|
|
36
|
+
})), /* @__PURE__ */ g("div", {
|
|
37
|
+
className: e(f, s({ kind: p })),
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ g("div", {
|
|
40
|
+
className: o,
|
|
41
|
+
children: [/* @__PURE__ */ h("div", {
|
|
42
|
+
className: d,
|
|
43
|
+
children: t.title
|
|
44
|
+
}), /* @__PURE__ */ h("button", {
|
|
45
|
+
type: "button",
|
|
46
|
+
className: a,
|
|
47
|
+
"aria-label": C,
|
|
48
|
+
onClick: () => {
|
|
49
|
+
y(t.id);
|
|
50
|
+
},
|
|
51
|
+
children: /* @__PURE__ */ h(r, {
|
|
52
|
+
width: 18,
|
|
53
|
+
height: 18,
|
|
54
|
+
"aria-hidden": "true"
|
|
55
|
+
})
|
|
56
|
+
})]
|
|
57
|
+
}),
|
|
58
|
+
v,
|
|
59
|
+
b,
|
|
60
|
+
x
|
|
61
|
+
]
|
|
62
|
+
}, t.id);
|
|
63
|
+
}), [
|
|
64
|
+
y,
|
|
65
|
+
C,
|
|
66
|
+
v
|
|
67
|
+
]);
|
|
68
|
+
return v.length === 0 ? null : /* @__PURE__ */ h("div", {
|
|
69
|
+
className: e(p, x),
|
|
70
|
+
children: w
|
|
71
|
+
});
|
|
67
72
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=ToastViewport.js.map
|
|
73
|
+
//#endregion
|
|
74
|
+
export { v as ToastViewport };
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=ToastViewport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastViewport.js","sources":["../../../../../src/atomic/molecules/toast/ToastViewport.tsx"],"sourcesContent":["import { type JSX, type ReactNode, useMemo } from 'react';\nimport type { RecipeVariants } from '@vanilla-extract/recipes';\n\nimport { ModalCloseSvg } from '../../../icons/ModalCloseSvg.js';\nimport { Button } from '../../atoms/button/Button.js';\nimport { useUiTranslation } from '../../../i18n/useUiTranslation.js';\n\nimport * as styles from './toast.css.js';\nimport { cx } from '../../../theme/tools.js';\nimport { INFO_TOAST_DURATION_MS } from './constants.js';\n\nexport type ToastKind = NonNullable<\n NonNullable<RecipeVariants<typeof styles.kindRecipe>>['kind']\n>;\n\nexport type ToastAction = {\n id: string;\n label: string;\n onClick: () => void;\n};\n\nexport type ToastItem = {\n id: string;\n kind?: ToastKind;\n title: ReactNode;\n message?: ReactNode;\n actions?: readonly ToastAction[];\n};\n\nexport type ToastViewportProps = {\n toasts: readonly ToastItem[];\n onDismiss: (toastId: string) => void;\n dismissLabel?: string;\n className?: string;\n};\n\nexport const ToastViewport = ({\n toasts,\n onDismiss,\n dismissLabel,\n className,\n}: ToastViewportProps): JSX.Element | null => {\n const { t } = useUiTranslation();\n const resolvedDismissLabel = dismissLabel ?? t('toast.dismissAriaLabel');\n\n const items = useMemo(() => {\n return toasts.map((toast) => {\n const kind = toast.kind ?? 'info';\n const actions = toast.actions ?? [];\n\n let messageNode: JSX.Element | null = null;\n if (toast.message != null) {\n messageNode = <div className={styles.message}>{toast.message}</div>;\n }\n\n let actionsNode: JSX.Element | null = null;\n if (actions.length > 0) {\n actionsNode = (\n <div className={styles.actions}>\n {actions.map((action) => {\n return (\n <Button\n key={action.id}\n type=\"button\"\n size=\"small\"\n variant=\"secondary\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n );\n })}\n </div>\n );\n }\n\n let progressNode: JSX.Element | null = null;\n if (kind === 'info') {\n progressNode = (\n <div className={styles.progressTrack} aria-hidden=\"true\">\n <div\n className={styles.progressBar}\n style={{ animationDuration: `${INFO_TOAST_DURATION_MS}ms` }}\n />\n </div>\n );\n }\n\n return (\n <div\n key={toast.id}\n className={cx(styles.toast, styles.kindRecipe({ kind }))}\n >\n <div className={styles.header}>\n <div className={styles.title}>{toast.title}</div>\n <button\n type=\"button\"\n className={styles.closeButton}\n aria-label={resolvedDismissLabel}\n onClick={() => {\n onDismiss(toast.id);\n }}\n >\n <ModalCloseSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n </div>\n {messageNode}\n {actionsNode}\n {progressNode}\n </div>\n );\n });\n }, [onDismiss, resolvedDismissLabel, toasts]);\n\n if (toasts.length === 0) {\n return null;\n }\n\n return <div className={cx(styles.viewport, className)}>{items}</div>;\n};\n"],"
|
|
1
|
+
{"version":3,"file":"ToastViewport.js","names":[],"sources":["../../../../../src/atomic/molecules/toast/ToastViewport.tsx"],"sourcesContent":["import { type JSX, type ReactNode, useMemo } from 'react';\nimport type { RecipeVariants } from '@vanilla-extract/recipes';\n\nimport { ModalCloseSvg } from '../../../icons/ModalCloseSvg.js';\nimport { Button } from '../../atoms/button/Button.js';\nimport { useUiTranslation } from '../../../i18n/useUiTranslation.js';\n\nimport * as styles from './toast.css.js';\nimport { cx } from '../../../theme/tools.js';\nimport { INFO_TOAST_DURATION_MS } from './constants.js';\n\nexport type ToastKind = NonNullable<\n NonNullable<RecipeVariants<typeof styles.kindRecipe>>['kind']\n>;\n\nexport type ToastAction = {\n id: string;\n label: string;\n onClick: () => void;\n};\n\nexport type ToastItem = {\n id: string;\n kind?: ToastKind;\n title: ReactNode;\n message?: ReactNode;\n actions?: readonly ToastAction[];\n};\n\nexport type ToastViewportProps = {\n toasts: readonly ToastItem[];\n onDismiss: (toastId: string) => void;\n dismissLabel?: string;\n className?: string;\n};\n\nexport const ToastViewport = ({\n toasts,\n onDismiss,\n dismissLabel,\n className,\n}: ToastViewportProps): JSX.Element | null => {\n const { t } = useUiTranslation();\n const resolvedDismissLabel = dismissLabel ?? t('toast.dismissAriaLabel');\n\n const items = useMemo(() => {\n return toasts.map((toast) => {\n const kind = toast.kind ?? 'info';\n const actions = toast.actions ?? [];\n\n let messageNode: JSX.Element | null = null;\n if (toast.message != null) {\n messageNode = <div className={styles.message}>{toast.message}</div>;\n }\n\n let actionsNode: JSX.Element | null = null;\n if (actions.length > 0) {\n actionsNode = (\n <div className={styles.actions}>\n {actions.map((action) => {\n return (\n <Button\n key={action.id}\n type=\"button\"\n size=\"small\"\n variant=\"secondary\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n );\n })}\n </div>\n );\n }\n\n let progressNode: JSX.Element | null = null;\n if (kind === 'info') {\n progressNode = (\n <div className={styles.progressTrack} aria-hidden=\"true\">\n <div\n className={styles.progressBar}\n style={{ animationDuration: `${INFO_TOAST_DURATION_MS}ms` }}\n />\n </div>\n );\n }\n\n return (\n <div\n key={toast.id}\n className={cx(styles.toast, styles.kindRecipe({ kind }))}\n >\n <div className={styles.header}>\n <div className={styles.title}>{toast.title}</div>\n <button\n type=\"button\"\n className={styles.closeButton}\n aria-label={resolvedDismissLabel}\n onClick={() => {\n onDismiss(toast.id);\n }}\n >\n <ModalCloseSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n </div>\n {messageNode}\n {actionsNode}\n {progressNode}\n </div>\n );\n });\n }, [onDismiss, resolvedDismissLabel, toasts]);\n\n if (toasts.length === 0) {\n return null;\n }\n\n return <div className={cx(styles.viewport, className)}>{items}</div>;\n};\n"],"mappings":";;;;;;;;;AAoCA,IAAa,KAAiB,EAC5B,WACA,cACA,iBACA,mBAC4C;CAC5C,IAAM,EAAE,SAAM,GAAkB,EAC1B,IAAuB,KAAgB,EAAE,yBAAyB,EAElE,IAAQ,QACL,EAAO,KAAK,MAAU;EAC3B,IAAM,IAAO,EAAM,QAAQ,QACrB,IAAU,EAAM,WAAW,EAAE,EAE/B,IAAkC;AACtC,EAAI,EAAM,WAAW,SACnB,IAAc,kBAAC,OAAD;GAAK,WAAW;aAAiB,EAAM;GAAc,CAAA;EAGrE,IAAI,IAAkC;AACtC,EAAI,EAAQ,SAAS,MACnB,IACE,kBAAC,OAAD;GAAK,WAAW;aACb,EAAQ,KAAK,MAEV,kBAAC,GAAD;IAEE,MAAK;IACL,MAAK;IACL,SAAQ;IACR,SAAS,EAAO;cAEf,EAAO;IACD,EAPF,EAAO,GAOL,CAEX;GACE,CAAA;EAIV,IAAI,IAAmC;AAYvC,SAXI,MAAS,WACX,IACE,kBAAC,OAAD;GAAK,WAAW;GAAsB,eAAY;aAChD,kBAAC,OAAD;IACE,WAAW;IACX,OAAO,EAAE,mBAAmB,GAAG,EAAuB,KAAK;IAC3D,CAAA;GACE,CAAA,GAKR,kBAAC,OAAD;GAEE,WAAW,EAAG,GAAc,EAAkB,EAAE,SAAM,CAAC,CAAC;aAF1D;IAIE,kBAAC,OAAD;KAAK,WAAW;eAAhB,CACE,kBAAC,OAAD;MAAK,WAAW;gBAAe,EAAM;MAAY,CAAA,EACjD,kBAAC,UAAD;MACE,MAAK;MACL,WAAW;MACX,cAAY;MACZ,eAAe;AACb,SAAU,EAAM,GAAG;;gBAGrB,kBAAC,GAAD;OAAe,OAAO;OAAI,QAAQ;OAAI,eAAY;OAAS,CAAA;MACpD,CAAA,CACL;;IACL;IACA;IACA;IACG;KAnBC,EAAM,GAmBP;GAER,EACD;EAAC;EAAW;EAAsB;EAAO,CAAC;AAM7C,QAJI,EAAO,WAAW,IACb,OAGF,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAiB,EAAU;YAAG;EAAY,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
1
|
+
//#region src/atomic/molecules/toast/constants.ts
|
|
2
|
+
var e = 15e3;
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as INFO_TOAST_DURATION_MS };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../../src/atomic/molecules/toast/constants.ts"],"sourcesContent":["export const INFO_TOAST_DURATION_MS = 15_000;\n"],"
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../../../../../src/atomic/molecules/toast/constants.ts"],"sourcesContent":["export const INFO_TOAST_DURATION_MS = 15_000;\n"],"mappings":";AAAA,IAAa,IAAyB"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
/* empty css
|
|
2
|
-
/* empty css
|
|
3
|
-
import { createRuntimeFn as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { createRuntimeFn as e } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
4
|
+
//#region src/atomic/molecules/toast/toast.css.ts
|
|
5
|
+
var t = "_19cwz1i0 txvbqbpso txvbqbpuf txvbqb836 txvbqbuvx txvbqb9io txvbqbai6 txvbqbao6", n = "_19cwz1i3 _19cwz1i2 txvbqbnvf txvbqboio txvbqbp5o txvbqblxf txvbqbuzn txvbqbwf txvbqb1qf txvbqb1co txvbqb9io txvbqbai6 txvbqbanx txvbqb1ro txvbqb8q6", r = e({
|
|
6
|
+
defaultClassName: "_19cwz1i4",
|
|
7
|
+
variantClassNames: { kind: {
|
|
8
|
+
info: "_19cwz1i5",
|
|
9
|
+
warning: "_19cwz1i6",
|
|
10
|
+
error: "_19cwz1i7"
|
|
11
|
+
} },
|
|
12
|
+
defaultVariants: { kind: "info" },
|
|
13
|
+
compoundVariants: []
|
|
14
|
+
}), i = "_19cwz1i8 txvbqb9io txvbqbcf txvbqbdoo txvbqbao6", a = "_19cwz1i9 txvbqbamo", o = "_19cwz1ia txvbqb8x", s = "_19cwz1ib txvbqb9jf txvbqbco txvbqbao6 txvbqbhwx", c = "_19cwz1id _19cwz1ic txvbqb9jf txvbqbco txvbqbdnx txvbqbtx6 txvbqbc6o txvbqb1rf txvbqb1px txvbqb12f txvbqbuzj txvbqbv", l = "_19cwz1if _19cwz1ie txvbqbhwx txvbqb1t6", u = "_19cwz1ih";
|
|
15
|
+
//#endregion
|
|
16
|
+
export { s as actions, c as closeButton, i as header, r as kindRecipe, o as message, u as progressBar, l as progressTrack, a as title, n as toast, t as viewport };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=toast.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.css.js","
|
|
1
|
+
{"version":3,"file":"toast.css.js","names":[],"sources":["../../../../../src/atomic/molecules/toast/toast.css.ts"],"sourcesContent":["import { keyframes, style } from '@vanilla-extract/css';\nimport { recipe, type RecipeVariants } from '@vanilla-extract/recipes';\n\nimport { sprinkles } from '../../../theme/sprinkles.css.js';\nimport { vars } from '../../../theme/themeContract.js';\n\nexport const viewport = sprinkles({\n position: 'fixed',\n right: 4,\n bottom: 4,\n zIndex: 'modal',\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n\nconst slideIn = keyframes({\n from: { transform: 'translateY(10px)', opacity: 0 },\n to: { transform: 'translateY(0)', opacity: 1 },\n});\n\nexport const toast = style([\n sprinkles({\n backgroundColor: 'white',\n borderColor: 'border',\n borderStyle: 'solid',\n borderWidth: 'default',\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n paddingX: 4,\n paddingY: 3,\n borderRadius: 'lg',\n boxShadow: 'lg',\n }),\n {\n width: 'min(28rem, calc(100vw - 2rem))',\n animation: `${slideIn} 140ms ease-out`,\n },\n]);\n\nexport const kindRecipe = recipe({\n variants: {\n kind: {\n info: { borderColor: vars.colors['blue-200'] },\n warning: { borderColor: vars.colors['amber-200'] },\n error: { borderColor: vars.colors['red-200'] },\n },\n },\n defaultVariants: {\n kind: 'info',\n },\n});\n\nexport type KindVariants = RecipeVariants<typeof kindRecipe>;\n\nexport const header = sprinkles({\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: 2,\n});\n\nexport const title = sprinkles({\n fontWeight: 'semibold',\n});\n\nexport const message = sprinkles({\n fontSize: 'sm',\n});\n\nexport const actions = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 2,\n marginTop: 1,\n});\n\nexport const closeButton = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 8,\n height: 8,\n borderRadius: 'md',\n borderStyle: 'none',\n borderWidth: 0,\n backgroundColor: 'transparent',\n cursor: 'pointer',\n }),\n]);\n\nexport const progressTrack = style([\n sprinkles({\n marginTop: 1,\n borderRadius: 'full',\n }),\n {\n height: 4,\n backgroundColor: vars.colors['blue-50'],\n overflow: 'hidden',\n },\n]);\n\nconst progressFill = keyframes({\n from: { width: '0%' },\n to: { width: '100%' },\n});\n\nexport const progressBar = style([\n {\n height: '100%',\n width: '0%',\n backgroundColor: vars.colors['blue-400'],\n animationName: progressFill,\n animationTimingFunction: 'linear',\n animationFillMode: 'forwards',\n },\n]);\n"],"mappings":""}
|