@plumile/ui 0.1.55 → 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/atomic/atoms/button/Button.d.ts.map +1 -1
- package/lib/atomic/atoms/button/Button.js +5 -2
- package/lib/atomic/atoms/formatted-date/FormattedDate.d.ts +14 -0
- package/lib/atomic/atoms/formatted-date/FormattedDate.d.ts.map +1 -0
- package/lib/atomic/atoms/formatted-date/FormattedDate.js +29 -0
- package/lib/atomic/atoms/icon-button/IconMenuButton.d.ts +8 -0
- package/lib/atomic/atoms/icon-button/IconMenuButton.d.ts.map +1 -0
- package/lib/atomic/atoms/icon-button/IconMenuButton.js +10 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.d.ts +14 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.d.ts.map +1 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.js +16 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.d.ts +13 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.d.ts.map +1 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js +42 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.d.ts +13 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.d.ts.map +1 -0
- package/lib/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js +37 -0
- package/lib/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.d.ts +25 -0
- package/lib/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.d.ts.map +1 -0
- package/lib/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js +221 -0
- package/lib/atomic/molecules/breadcrumb_navigation/types.d.ts +15 -0
- package/lib/atomic/molecules/breadcrumb_navigation/types.d.ts.map +1 -0
- package/lib/atomic/molecules/breadcrumb_navigation/types.js +2 -0
- package/lib/atomic/molecules/dropdown/Dropdown.d.ts +26 -0
- package/lib/atomic/molecules/dropdown/Dropdown.d.ts.map +1 -0
- package/lib/atomic/molecules/dropdown/Dropdown.js +271 -0
- package/lib/atomic/molecules/dropdown/dropdown.css.d.ts +8 -0
- package/lib/atomic/molecules/dropdown/dropdown.css.d.ts.map +1 -0
- package/lib/atomic/molecules/dropdown/dropdown.css.js +30 -0
- package/lib/atomic/molecules/form-actions/FormActions.d.ts +16 -0
- package/lib/atomic/molecules/form-actions/FormActions.d.ts.map +1 -0
- package/lib/atomic/molecules/form-actions/FormActions.js +27 -0
- package/lib/atomic/molecules/toast/ToastProvider.d.ts +19 -0
- package/lib/atomic/molecules/toast/ToastProvider.d.ts.map +1 -0
- package/lib/atomic/molecules/toast/ToastProvider.js +113 -0
- package/lib/atomic/molecules/toast/ToastViewport.d.ts +24 -0
- package/lib/atomic/molecules/toast/ToastViewport.d.ts.map +1 -0
- package/lib/atomic/molecules/toast/ToastViewport.js +40 -0
- package/lib/atomic/molecules/toast/constants.d.ts +2 -0
- package/lib/atomic/molecules/toast/constants.d.ts.map +1 -0
- package/lib/atomic/molecules/toast/constants.js +2 -0
- package/lib/atomic/molecules/toast/toast.css.d.ts +25 -0
- package/lib/atomic/molecules/toast/toast.css.d.ts.map +1 -0
- package/lib/atomic/molecules/toast/toast.css.js +106 -0
- package/lib/components/data-table/DataTable.css.d.ts +61 -0
- package/lib/components/data-table/DataTable.css.d.ts.map +1 -0
- package/lib/components/data-table/DataTable.css.js +285 -0
- package/lib/components/data-table/DataTable.d.ts +32 -0
- package/lib/components/data-table/DataTable.d.ts.map +1 -0
- package/lib/components/data-table/DataTable.js +95 -0
- package/lib/components/data-table/TableCell.css.d.ts +26 -0
- package/lib/components/data-table/TableCell.css.d.ts.map +1 -0
- package/lib/components/data-table/TableCell.css.js +45 -0
- package/lib/components/data-table/TableCell.d.ts +46 -0
- package/lib/components/data-table/TableCell.d.ts.map +1 -0
- package/lib/components/data-table/TableCell.js +72 -0
- package/lib/components/data-table/TableCellBase.d.ts +13 -0
- package/lib/components/data-table/TableCellBase.d.ts.map +1 -0
- package/lib/components/data-table/TableCellBase.js +11 -0
- package/lib/components/data-table/VirtualizedConnectionTable.css.d.ts +5 -0
- package/lib/components/data-table/VirtualizedConnectionTable.css.d.ts.map +1 -0
- package/lib/components/data-table/VirtualizedConnectionTable.css.js +18 -0
- package/lib/components/data-table/VirtualizedConnectionTable.d.ts +32 -0
- package/lib/components/data-table/VirtualizedConnectionTable.d.ts.map +1 -0
- package/lib/components/data-table/VirtualizedConnectionTable.js +304 -0
- package/lib/components/data-table/tableBreakpoints.d.ts +9 -0
- package/lib/components/data-table/tableBreakpoints.d.ts.map +1 -0
- package/lib/components/data-table/tableBreakpoints.js +34 -0
- package/lib/components/select/SimpleSelect.css.d.ts +23 -0
- package/lib/components/select/SimpleSelect.css.d.ts.map +1 -0
- package/lib/components/select/SimpleSelect.css.js +175 -0
- package/lib/components/select/SimpleSelect.d.ts +22 -0
- package/lib/components/select/SimpleSelect.d.ts.map +1 -0
- package/lib/components/select/SimpleSelect.js +218 -0
- package/lib/components/subscriptions/RefetchNeededBanner.css.d.ts +5 -0
- package/lib/components/subscriptions/RefetchNeededBanner.css.d.ts.map +1 -0
- package/lib/components/subscriptions/RefetchNeededBanner.css.js +32 -0
- package/lib/components/subscriptions/RefetchNeededBanner.d.ts +9 -0
- package/lib/components/subscriptions/RefetchNeededBanner.d.ts.map +1 -0
- package/lib/components/subscriptions/RefetchNeededBanner.js +17 -0
- 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 -56
- 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 +33 -0
- package/lib/esm/atomic/atoms/formatted-date/FormattedDate.js.map +1 -0
- package/lib/esm/atomic/atoms/icon-button/IconMenuButton.js +19 -0
- package/lib/esm/atomic/atoms/icon-button/IconMenuButton.js.map +1 -0
- 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 +48 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.js.map +1 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js +54 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js.map +1 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js +63 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js.map +1 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js +8 -0
- package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js.map +1 -0
- 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 +149 -0
- package/lib/esm/atomic/molecules/dropdown/Dropdown.js.map +1 -0
- package/lib/esm/atomic/molecules/dropdown/dropdown.css.js +8 -0
- package/lib/esm/atomic/molecules/dropdown/dropdown.css.js.map +1 -0
- package/lib/esm/atomic/molecules/form-actions/FormActions.js +32 -0
- package/lib/esm/atomic/molecules/form-actions/FormActions.js.map +1 -0
- 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 +83 -0
- package/lib/esm/atomic/molecules/toast/ToastProvider.js.map +1 -0
- package/lib/esm/atomic/molecules/toast/ToastViewport.js +76 -0
- package/lib/esm/atomic/molecules/toast/ToastViewport.js.map +1 -0
- package/lib/esm/atomic/molecules/toast/constants.js +6 -0
- package/lib/esm/atomic/molecules/toast/constants.js.map +1 -0
- package/lib/esm/atomic/molecules/toast/toast.css.js +18 -0
- package/lib/esm/atomic/molecules/toast/toast.css.js.map +1 -0
- 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 -0
- package/lib/esm/components/data-table/DataTable.css.js.map +1 -0
- package/lib/esm/components/data-table/DataTable.js +74 -0
- package/lib/esm/components/data-table/DataTable.js.map +1 -0
- package/lib/esm/components/data-table/TableCell.css.js +18 -0
- package/lib/esm/components/data-table/TableCell.css.js.map +1 -0
- package/lib/esm/components/data-table/TableCell.js +75 -0
- package/lib/esm/components/data-table/TableCell.js.map +1 -0
- package/lib/esm/components/data-table/TableCellBase.js +19 -0
- package/lib/esm/components/data-table/TableCellBase.js.map +1 -0
- package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js +8 -0
- package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js.map +1 -0
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js +191 -0
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -0
- package/lib/esm/components/data-table/tableBreakpoints.js +31 -0
- package/lib/esm/components/data-table/tableBreakpoints.js.map +1 -0
- 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 -0
- package/lib/esm/components/select/SimpleSelect.css.js.map +1 -0
- package/lib/esm/components/select/SimpleSelect.js +185 -0
- package/lib/esm/components/select/SimpleSelect.js.map +1 -0
- package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js +8 -0
- package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js.map +1 -0
- package/lib/esm/components/subscriptions/RefetchNeededBanner.js +32 -0
- package/lib/esm/components/subscriptions/RefetchNeededBanner.js.map +1 -0
- 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 +9 -0
- package/lib/esm/i18n/useUiTranslation.js.map +1 -0
- 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 +33 -55
- package/lib/esm/style.css +2 -0
- package/lib/esm/style.js +4 -0
- package/lib/esm/styles/slots.js +0 -0
- 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/i18n/useUiTranslation.d.ts +3 -0
- package/lib/i18n/useUiTranslation.d.ts.map +1 -0
- package/lib/i18n/useUiTranslation.js +5 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -1
- package/lib/style.d.ts +5 -0
- package/lib/style.d.ts.map +1 -0
- package/lib/style.js +5 -0
- package/lib/styles/slots.d.ts +2 -0
- package/lib/styles/slots.d.ts.map +1 -0
- package/lib/styles/slots.js +2 -0
- package/lib/types/atomic/atoms/button/Button.d.ts.map +1 -1
- package/lib/types/atomic/atoms/formatted-date/FormattedDate.d.ts +14 -0
- package/lib/types/atomic/atoms/formatted-date/FormattedDate.d.ts.map +1 -0
- package/lib/types/atomic/atoms/icon-button/IconMenuButton.d.ts +8 -0
- package/lib/types/atomic/atoms/icon-button/IconMenuButton.d.ts.map +1 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.d.ts +14 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.d.ts.map +1 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.d.ts +13 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.d.ts.map +1 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.d.ts +13 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.d.ts.map +1 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.d.ts +25 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.d.ts.map +1 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/types.d.ts +15 -0
- package/lib/types/atomic/molecules/breadcrumb_navigation/types.d.ts.map +1 -0
- package/lib/types/atomic/molecules/dropdown/Dropdown.d.ts +26 -0
- package/lib/types/atomic/molecules/dropdown/Dropdown.d.ts.map +1 -0
- package/lib/types/atomic/molecules/dropdown/dropdown.css.d.ts +8 -0
- package/lib/types/atomic/molecules/dropdown/dropdown.css.d.ts.map +1 -0
- package/lib/types/atomic/molecules/form-actions/FormActions.d.ts +16 -0
- package/lib/types/atomic/molecules/form-actions/FormActions.d.ts.map +1 -0
- package/lib/types/atomic/molecules/toast/ToastProvider.d.ts +19 -0
- package/lib/types/atomic/molecules/toast/ToastProvider.d.ts.map +1 -0
- package/lib/types/atomic/molecules/toast/ToastViewport.d.ts +24 -0
- package/lib/types/atomic/molecules/toast/ToastViewport.d.ts.map +1 -0
- package/lib/types/atomic/molecules/toast/constants.d.ts +2 -0
- package/lib/types/atomic/molecules/toast/constants.d.ts.map +1 -0
- package/lib/types/atomic/molecules/toast/toast.css.d.ts +25 -0
- package/lib/types/atomic/molecules/toast/toast.css.d.ts.map +1 -0
- package/lib/types/components/data-table/DataTable.css.d.ts +61 -0
- package/lib/types/components/data-table/DataTable.css.d.ts.map +1 -0
- package/lib/types/components/data-table/DataTable.d.ts +32 -0
- package/lib/types/components/data-table/DataTable.d.ts.map +1 -0
- package/lib/types/components/data-table/TableCell.css.d.ts +26 -0
- package/lib/types/components/data-table/TableCell.css.d.ts.map +1 -0
- package/lib/types/components/data-table/TableCell.d.ts +46 -0
- package/lib/types/components/data-table/TableCell.d.ts.map +1 -0
- package/lib/types/components/data-table/TableCellBase.d.ts +13 -0
- package/lib/types/components/data-table/TableCellBase.d.ts.map +1 -0
- package/lib/types/components/data-table/VirtualizedConnectionTable.css.d.ts +5 -0
- package/lib/types/components/data-table/VirtualizedConnectionTable.css.d.ts.map +1 -0
- package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts +32 -0
- package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts.map +1 -0
- package/lib/types/components/data-table/tableBreakpoints.d.ts +9 -0
- package/lib/types/components/data-table/tableBreakpoints.d.ts.map +1 -0
- package/lib/types/components/select/SimpleSelect.css.d.ts +23 -0
- package/lib/types/components/select/SimpleSelect.css.d.ts.map +1 -0
- package/lib/types/components/select/SimpleSelect.d.ts +22 -0
- package/lib/types/components/select/SimpleSelect.d.ts.map +1 -0
- package/lib/types/components/subscriptions/RefetchNeededBanner.css.d.ts +5 -0
- package/lib/types/components/subscriptions/RefetchNeededBanner.css.d.ts.map +1 -0
- package/lib/types/components/subscriptions/RefetchNeededBanner.d.ts +9 -0
- package/lib/types/components/subscriptions/RefetchNeededBanner.d.ts.map +1 -0
- package/lib/types/i18n/useUiTranslation.d.ts +3 -0
- package/lib/types/i18n/useUiTranslation.d.ts.map +1 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/style.d.ts +5 -0
- package/lib/types/style.d.ts.map +1 -0
- package/lib/types/styles/slots.d.ts +2 -0
- package/lib/types/styles/slots.d.ts.map +1 -0
- package/package.json +12 -4
- package/src/i18n/locales/en/ui.json +53 -0
- package/src/i18n/locales/fr/ui.json +53 -0
- package/src/i18n/useUiTranslation.ts +6 -0
- 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/tabs/tabs.css.ts.vanilla-DQm5wO0K.css +0 -1
- package/lib/esm/components/charts/billingUsageLineChart.css.ts.vanilla-7e3dy1Dj.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/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
- /package/lib/esm/{components/layout/TabsContentLayout.css.ts.vanilla-tn0RQdqM.css → atomic/molecules/breadcrumb_navigation/types.js} +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
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;
|
|
79
|
+
};
|
|
80
|
+
//#endregion
|
|
81
|
+
export { p as ToastProvider, m as useToast };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=ToastProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
+
});
|
|
72
|
+
};
|
|
73
|
+
//#endregion
|
|
74
|
+
export { v as ToastViewport };
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=ToastViewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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":""}
|
|
@@ -1,177 +1,144 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { chartContainer as e, tooltip as t, tooltipDate as n, tooltipRow as r, tooltipRowLabel as i, tooltipSwatch as a } from "./billingUsageLineChart.css.js";
|
|
2
|
+
import { vars as o } from "../../theme/themeContract.js";
|
|
3
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
4
|
+
import { ResponsiveLine as l } from "@nivo/line";
|
|
5
|
+
//#region src/components/charts/BillingUsageLineChart.tsx
|
|
6
|
+
var u = 6, d = new Intl.NumberFormat("en-US", {
|
|
7
|
+
notation: "compact",
|
|
8
|
+
maximumFractionDigits: 1
|
|
8
9
|
});
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return o != null && a.at(-1) !== o.x && a.push(o.x), a;
|
|
10
|
+
function f(e) {
|
|
11
|
+
let t = e[0];
|
|
12
|
+
if (t == null || t.data.length <= u) return t == null ? [] : t.data.map((e) => e.x);
|
|
13
|
+
let n = Math.ceil(t.data.length / u), r = t.data.filter((e, t) => t % n === 0).map((e) => e.x), i = t.data.at(-1);
|
|
14
|
+
return i != null && r.at(-1) !== i.x && r.push(i.x), r;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
function p(e) {
|
|
17
|
+
return (/* @__PURE__ */ new Date(`${e}T00:00:00Z`)).toLocaleDateString(void 0, {
|
|
18
|
+
month: "short",
|
|
19
|
+
day: "2-digit"
|
|
20
|
+
});
|
|
21
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
legend: {
|
|
141
|
-
text: {
|
|
142
|
-
fill: i.colors.textSecondary
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
grid: {
|
|
147
|
-
line: {
|
|
148
|
-
stroke: i.colors.borderLight
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
crosshair: {
|
|
152
|
-
line: {
|
|
153
|
-
stroke: i.colors.primary,
|
|
154
|
-
strokeWidth: 1,
|
|
155
|
-
strokeOpacity: 0.35
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
tooltip: {
|
|
159
|
-
container: {
|
|
160
|
-
background: "transparent",
|
|
161
|
-
boxShadow: "none",
|
|
162
|
-
padding: 0
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
legends: {
|
|
166
|
-
text: {
|
|
167
|
-
fill: i.colors.textSecondary
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
) });
|
|
22
|
+
var m = (u) => {
|
|
23
|
+
let { ariaLabel: m, categoryColorById: h, categoryLabel: g, categoryOrder: _, formatValue: v, series: y } = u, b = f(y), x = _, S = (e) => x.includes(e), C = [{
|
|
24
|
+
anchor: "bottom",
|
|
25
|
+
direction: "row",
|
|
26
|
+
translateY: 56,
|
|
27
|
+
itemWidth: 90,
|
|
28
|
+
itemHeight: 16,
|
|
29
|
+
itemsSpacing: 8,
|
|
30
|
+
symbolSize: 10,
|
|
31
|
+
symbolShape: "circle",
|
|
32
|
+
itemTextColor: o.colors.textSecondary,
|
|
33
|
+
data: _.map((e) => ({
|
|
34
|
+
id: e,
|
|
35
|
+
label: g(e),
|
|
36
|
+
color: h[e]
|
|
37
|
+
}))
|
|
38
|
+
}];
|
|
39
|
+
return /* @__PURE__ */ s("div", {
|
|
40
|
+
className: e,
|
|
41
|
+
children: /* @__PURE__ */ s(l, {
|
|
42
|
+
data: y,
|
|
43
|
+
margin: {
|
|
44
|
+
top: 14,
|
|
45
|
+
right: 16,
|
|
46
|
+
bottom: 74,
|
|
47
|
+
left: 52
|
|
48
|
+
},
|
|
49
|
+
colors: (e) => typeof e.id != "string" || !S(e.id) ? o.colors.primary : h[e.id],
|
|
50
|
+
xScale: { type: "point" },
|
|
51
|
+
yScale: {
|
|
52
|
+
type: "linear",
|
|
53
|
+
min: 0,
|
|
54
|
+
max: "auto"
|
|
55
|
+
},
|
|
56
|
+
curve: "monotoneX",
|
|
57
|
+
lineWidth: 2.5,
|
|
58
|
+
pointSize: 4,
|
|
59
|
+
pointBorderWidth: 2,
|
|
60
|
+
pointBorderColor: {
|
|
61
|
+
from: "seriesColor",
|
|
62
|
+
modifiers: [["darker", .2]]
|
|
63
|
+
},
|
|
64
|
+
enableArea: !0,
|
|
65
|
+
areaOpacity: .1,
|
|
66
|
+
enableGridX: !1,
|
|
67
|
+
enableGridY: !0,
|
|
68
|
+
axisTop: null,
|
|
69
|
+
axisRight: null,
|
|
70
|
+
axisBottom: {
|
|
71
|
+
tickValues: b,
|
|
72
|
+
format: (e) => p(String(e)),
|
|
73
|
+
tickSize: 0,
|
|
74
|
+
tickPadding: 10
|
|
75
|
+
},
|
|
76
|
+
axisLeft: {
|
|
77
|
+
tickSize: 0,
|
|
78
|
+
tickPadding: 8,
|
|
79
|
+
tickValues: 4,
|
|
80
|
+
format: (e) => d.format(Number(e))
|
|
81
|
+
},
|
|
82
|
+
enableSlices: "x",
|
|
83
|
+
sliceTooltip: ({ slice: e }) => {
|
|
84
|
+
let o = String(e.id), l = _[0] ?? null, u = [...e.points].map((e) => {
|
|
85
|
+
let t = 0;
|
|
86
|
+
typeof e.data.y == "number" && (t = e.data.y);
|
|
87
|
+
let n = l;
|
|
88
|
+
return typeof e.seriesId == "string" && S(e.seriesId) && (n = e.seriesId), n == null ? null : {
|
|
89
|
+
seriesId: n,
|
|
90
|
+
data: { y: t },
|
|
91
|
+
color: e.seriesColor
|
|
92
|
+
};
|
|
93
|
+
}).filter((e) => e != null).sort((e, t) => _.indexOf(e.seriesId) - _.indexOf(t.seriesId));
|
|
94
|
+
return /* @__PURE__ */ c("div", {
|
|
95
|
+
className: t,
|
|
96
|
+
children: [/* @__PURE__ */ s("p", {
|
|
97
|
+
className: n,
|
|
98
|
+
children: p(o)
|
|
99
|
+
}), u.map((e) => /* @__PURE__ */ c("div", {
|
|
100
|
+
className: r,
|
|
101
|
+
children: [/* @__PURE__ */ c("span", {
|
|
102
|
+
className: i,
|
|
103
|
+
children: [/* @__PURE__ */ s("span", {
|
|
104
|
+
className: a,
|
|
105
|
+
style: { backgroundColor: e.color },
|
|
106
|
+
"aria-hidden": !0
|
|
107
|
+
}), /* @__PURE__ */ s("span", { children: g(e.seriesId) })]
|
|
108
|
+
}), /* @__PURE__ */ s("strong", { children: v(e.data.y) })]
|
|
109
|
+
}, `${o}-${e.seriesId}`))]
|
|
110
|
+
});
|
|
111
|
+
},
|
|
112
|
+
legends: C,
|
|
113
|
+
useMesh: !0,
|
|
114
|
+
ariaLabel: m,
|
|
115
|
+
theme: {
|
|
116
|
+
text: {
|
|
117
|
+
fill: o.colors.textSecondary,
|
|
118
|
+
fontSize: 12
|
|
119
|
+
},
|
|
120
|
+
axis: {
|
|
121
|
+
domain: { line: { stroke: o.colors.borderLight } },
|
|
122
|
+
ticks: { line: { stroke: "transparent" } },
|
|
123
|
+
legend: { text: { fill: o.colors.textSecondary } }
|
|
124
|
+
},
|
|
125
|
+
grid: { line: { stroke: o.colors.borderLight } },
|
|
126
|
+
crosshair: { line: {
|
|
127
|
+
stroke: o.colors.primary,
|
|
128
|
+
strokeWidth: 1,
|
|
129
|
+
strokeOpacity: .35
|
|
130
|
+
} },
|
|
131
|
+
tooltip: { container: {
|
|
132
|
+
background: "transparent",
|
|
133
|
+
boxShadow: "none",
|
|
134
|
+
padding: 0
|
|
135
|
+
} },
|
|
136
|
+
legends: { text: { fill: o.colors.textSecondary } }
|
|
137
|
+
}
|
|
138
|
+
})
|
|
139
|
+
});
|
|
173
140
|
};
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
//# sourceMappingURL=BillingUsageLineChart.js.map
|
|
141
|
+
//#endregion
|
|
142
|
+
export { m as BillingUsageLineChart };
|
|
143
|
+
|
|
144
|
+
//# sourceMappingURL=BillingUsageLineChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BillingUsageLineChart.js","sources":["../../../../src/components/charts/BillingUsageLineChart.tsx"],"sourcesContent":["import { ResponsiveLine, type SliceTooltipProps } from '@nivo/line';\nimport type { JSX } from 'react';\n\nimport * as styles from './billingUsageLineChart.css.js';\nimport { vars } from '../../theme/themeContract.js';\n\nexport type BillingUsageLineChartPoint = {\n x: string;\n y: number;\n};\n\nexport type BillingUsageLineChartSerie<Category extends string> = {\n id: Category;\n data: readonly BillingUsageLineChartPoint[];\n};\n\ntype SlicePointPayload<Category extends string> = {\n seriesId: Category;\n data: {\n y: number;\n };\n color: string;\n};\n\nexport type BillingUsageLineChartProps<Category extends string> = {\n series: readonly BillingUsageLineChartSerie<Category>[];\n categoryOrder: readonly Category[];\n categoryColorById: Readonly<Record<Category, string>>;\n categoryLabel: (category: Category) => string;\n formatValue: (value: number) => string;\n ariaLabel: string;\n};\n\nconst MAX_X_TICKS = 6;\n\nconst compactNumberFormatter = new Intl.NumberFormat('en-US', {\n notation: 'compact',\n maximumFractionDigits: 1,\n});\n\n/**\n * Limits the number of visible day ticks while always keeping the last point.\n */\nfunction getVisibleDayTicks<Category extends string>(\n series: readonly BillingUsageLineChartSerie<Category>[],\n): readonly string[] {\n const firstSerie = series[0];\n if (firstSerie == null || firstSerie.data.length <= MAX_X_TICKS) {\n if (firstSerie == null) {\n return [];\n }\n\n return firstSerie.data.map((point) => {\n return point.x;\n });\n }\n\n const step = Math.ceil(firstSerie.data.length / MAX_X_TICKS);\n const visibleTicks = firstSerie.data\n .filter((_, index) => {\n return index % step === 0;\n })\n .map((point) => {\n return point.x;\n });\n\n const lastPoint = firstSerie.data.at(-1);\n if (lastPoint != null && visibleTicks.at(-1) !== lastPoint.x) {\n visibleTicks.push(lastPoint.x);\n }\n\n return visibleTicks;\n}\n\n/**\n * Formats a `YYYY-MM-DD` key into a short month/day label for the x-axis.\n */\nfunction formatDayTick(dayKey: string): string {\n const parsed = new Date(`${dayKey}T00:00:00Z`);\n return parsed.toLocaleDateString(undefined, {\n month: 'short',\n day: '2-digit',\n });\n}\n\nexport const BillingUsageLineChart = <Category extends string>(\n props: BillingUsageLineChartProps<Category>,\n): JSX.Element => {\n const {\n ariaLabel,\n categoryColorById,\n categoryLabel,\n categoryOrder,\n formatValue,\n series,\n } = props;\n\n const visibleTicks = getVisibleDayTicks(series);\n const categoryOrderString = categoryOrder as readonly string[];\n const isCategory = (value: string): value is Category => {\n return categoryOrderString.includes(value);\n };\n\n const legends = [\n {\n anchor: 'bottom' as const,\n direction: 'row' as const,\n translateY: 56,\n itemWidth: 90,\n itemHeight: 16,\n itemsSpacing: 8,\n symbolSize: 10,\n symbolShape: 'circle' as const,\n itemTextColor: vars.colors.textSecondary,\n data: categoryOrder.map((category) => {\n return {\n id: category,\n label: categoryLabel(category),\n color: categoryColorById[category],\n };\n }),\n },\n ];\n\n const colorById = (serie: { id: string | number }): string => {\n if (typeof serie.id !== 'string' || !isCategory(serie.id)) {\n return vars.colors.primary;\n }\n\n return categoryColorById[serie.id];\n };\n\n const sliceTooltip = ({\n slice,\n }: SliceTooltipProps<BillingUsageLineChartSerie<Category>>): JSX.Element => {\n const dayKey = String(slice.id);\n const fallbackCategory = categoryOrder[0] ?? null;\n const points = [...slice.points]\n .map((point): SlicePointPayload<Category> | null => {\n let credits = 0;\n if (typeof point.data.y === 'number') {\n credits = point.data.y;\n }\n\n let seriesId = fallbackCategory;\n if (typeof point.seriesId === 'string' && isCategory(point.seriesId)) {\n seriesId = point.seriesId;\n }\n if (seriesId == null) {\n return null;\n }\n\n return {\n seriesId,\n data: { y: credits },\n color: point.seriesColor,\n };\n })\n .filter((point): point is SlicePointPayload<Category> => {\n return point != null;\n })\n .sort((left, right) => {\n const leftIndex = categoryOrder.indexOf(left.seriesId);\n const rightIndex = categoryOrder.indexOf(right.seriesId);\n\n return leftIndex - rightIndex;\n });\n\n return (\n <div className={styles.tooltip}>\n <p className={styles.tooltipDate}>{formatDayTick(dayKey)}</p>\n {points.map((point) => {\n return (\n <div\n key={`${dayKey}-${point.seriesId}`}\n className={styles.tooltipRow}\n >\n <span className={styles.tooltipRowLabel}>\n <span\n className={styles.tooltipSwatch}\n style={{ backgroundColor: point.color }}\n aria-hidden\n />\n <span>{categoryLabel(point.seriesId)}</span>\n </span>\n <strong>{formatValue(point.data.y)}</strong>\n </div>\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={styles.chartContainer}>\n <ResponsiveLine\n data={series}\n margin={{ top: 14, right: 16, bottom: 74, left: 52 }}\n colors={colorById}\n xScale={{ type: 'point' }}\n yScale={{ type: 'linear', min: 0, max: 'auto' }}\n curve=\"monotoneX\"\n lineWidth={2.5}\n pointSize={4}\n pointBorderWidth={2}\n pointBorderColor={{ from: 'seriesColor', modifiers: [['darker', 0.2]] }}\n enableArea\n areaOpacity={0.1}\n enableGridX={false}\n enableGridY\n axisTop={null}\n axisRight={null}\n axisBottom={{\n tickValues: visibleTicks,\n format: (value) => {\n return formatDayTick(String(value));\n },\n tickSize: 0,\n tickPadding: 10,\n }}\n axisLeft={{\n tickSize: 0,\n tickPadding: 8,\n tickValues: 4,\n format: (value) => {\n return compactNumberFormatter.format(Number(value));\n },\n }}\n enableSlices=\"x\"\n sliceTooltip={sliceTooltip}\n legends={legends}\n useMesh\n ariaLabel={ariaLabel}\n theme={{\n text: {\n fill: vars.colors.textSecondary,\n fontSize: 12,\n },\n axis: {\n domain: {\n line: {\n stroke: vars.colors.borderLight,\n },\n },\n ticks: {\n line: {\n stroke: 'transparent',\n },\n },\n legend: {\n text: {\n fill: vars.colors.textSecondary,\n },\n },\n },\n grid: {\n line: {\n stroke: vars.colors.borderLight,\n },\n },\n crosshair: {\n line: {\n stroke: vars.colors.primary,\n strokeWidth: 1,\n strokeOpacity: 0.35,\n },\n },\n tooltip: {\n container: {\n background: 'transparent',\n boxShadow: 'none',\n padding: 0,\n },\n },\n legends: {\n text: {\n fill: vars.colors.textSecondary,\n },\n },\n }}\n />\n </div>\n );\n};\n"],"names":["MAX_X_TICKS","compactNumberFormatter","getVisibleDayTicks","series","firstSerie","point","step","visibleTicks","_","index","lastPoint","formatDayTick","dayKey","BillingUsageLineChart","props","ariaLabel","categoryColorById","categoryLabel","categoryOrder","formatValue","categoryOrderString","isCategory","value","legends","vars","category","jsx","styles.chartContainer","ResponsiveLine","serie","slice","fallbackCategory","points","credits","seriesId","left","right","leftIndex","rightIndex","jsxs","styles.tooltip","styles.tooltipDate","styles.tooltipRow","styles.tooltipRowLabel","styles.tooltipSwatch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BillingUsageLineChart.js","names":[],"sources":["../../../../src/components/charts/BillingUsageLineChart.tsx"],"sourcesContent":["import { ResponsiveLine, type SliceTooltipProps } from '@nivo/line';\nimport type { JSX } from 'react';\n\nimport * as styles from './billingUsageLineChart.css.js';\nimport { vars } from '../../theme/themeContract.js';\n\nexport type BillingUsageLineChartPoint = {\n x: string;\n y: number;\n};\n\nexport type BillingUsageLineChartSerie<Category extends string> = {\n id: Category;\n data: readonly BillingUsageLineChartPoint[];\n};\n\ntype SlicePointPayload<Category extends string> = {\n seriesId: Category;\n data: {\n y: number;\n };\n color: string;\n};\n\nexport type BillingUsageLineChartProps<Category extends string> = {\n series: readonly BillingUsageLineChartSerie<Category>[];\n categoryOrder: readonly Category[];\n categoryColorById: Readonly<Record<Category, string>>;\n categoryLabel: (category: Category) => string;\n formatValue: (value: number) => string;\n ariaLabel: string;\n};\n\nconst MAX_X_TICKS = 6;\n\nconst compactNumberFormatter = new Intl.NumberFormat('en-US', {\n notation: 'compact',\n maximumFractionDigits: 1,\n});\n\n/**\n * Limits the number of visible day ticks while always keeping the last point.\n */\nfunction getVisibleDayTicks<Category extends string>(\n series: readonly BillingUsageLineChartSerie<Category>[],\n): readonly string[] {\n const firstSerie = series[0];\n if (firstSerie == null || firstSerie.data.length <= MAX_X_TICKS) {\n if (firstSerie == null) {\n return [];\n }\n\n return firstSerie.data.map((point) => {\n return point.x;\n });\n }\n\n const step = Math.ceil(firstSerie.data.length / MAX_X_TICKS);\n const visibleTicks = firstSerie.data\n .filter((_, index) => {\n return index % step === 0;\n })\n .map((point) => {\n return point.x;\n });\n\n const lastPoint = firstSerie.data.at(-1);\n if (lastPoint != null && visibleTicks.at(-1) !== lastPoint.x) {\n visibleTicks.push(lastPoint.x);\n }\n\n return visibleTicks;\n}\n\n/**\n * Formats a `YYYY-MM-DD` key into a short month/day label for the x-axis.\n */\nfunction formatDayTick(dayKey: string): string {\n const parsed = new Date(`${dayKey}T00:00:00Z`);\n return parsed.toLocaleDateString(undefined, {\n month: 'short',\n day: '2-digit',\n });\n}\n\nexport const BillingUsageLineChart = <Category extends string>(\n props: BillingUsageLineChartProps<Category>,\n): JSX.Element => {\n const {\n ariaLabel,\n categoryColorById,\n categoryLabel,\n categoryOrder,\n formatValue,\n series,\n } = props;\n\n const visibleTicks = getVisibleDayTicks(series);\n const categoryOrderString = categoryOrder as readonly string[];\n const isCategory = (value: string): value is Category => {\n return categoryOrderString.includes(value);\n };\n\n const legends = [\n {\n anchor: 'bottom' as const,\n direction: 'row' as const,\n translateY: 56,\n itemWidth: 90,\n itemHeight: 16,\n itemsSpacing: 8,\n symbolSize: 10,\n symbolShape: 'circle' as const,\n itemTextColor: vars.colors.textSecondary,\n data: categoryOrder.map((category) => {\n return {\n id: category,\n label: categoryLabel(category),\n color: categoryColorById[category],\n };\n }),\n },\n ];\n\n const colorById = (serie: { id: string | number }): string => {\n if (typeof serie.id !== 'string' || !isCategory(serie.id)) {\n return vars.colors.primary;\n }\n\n return categoryColorById[serie.id];\n };\n\n const sliceTooltip = ({\n slice,\n }: SliceTooltipProps<BillingUsageLineChartSerie<Category>>): JSX.Element => {\n const dayKey = String(slice.id);\n const fallbackCategory = categoryOrder[0] ?? null;\n const points = [...slice.points]\n .map((point): SlicePointPayload<Category> | null => {\n let credits = 0;\n if (typeof point.data.y === 'number') {\n credits = point.data.y;\n }\n\n let seriesId = fallbackCategory;\n if (typeof point.seriesId === 'string' && isCategory(point.seriesId)) {\n seriesId = point.seriesId;\n }\n if (seriesId == null) {\n return null;\n }\n\n return {\n seriesId,\n data: { y: credits },\n color: point.seriesColor,\n };\n })\n .filter((point): point is SlicePointPayload<Category> => {\n return point != null;\n })\n .sort((left, right) => {\n const leftIndex = categoryOrder.indexOf(left.seriesId);\n const rightIndex = categoryOrder.indexOf(right.seriesId);\n\n return leftIndex - rightIndex;\n });\n\n return (\n <div className={styles.tooltip}>\n <p className={styles.tooltipDate}>{formatDayTick(dayKey)}</p>\n {points.map((point) => {\n return (\n <div\n key={`${dayKey}-${point.seriesId}`}\n className={styles.tooltipRow}\n >\n <span className={styles.tooltipRowLabel}>\n <span\n className={styles.tooltipSwatch}\n style={{ backgroundColor: point.color }}\n aria-hidden\n />\n <span>{categoryLabel(point.seriesId)}</span>\n </span>\n <strong>{formatValue(point.data.y)}</strong>\n </div>\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={styles.chartContainer}>\n <ResponsiveLine\n data={series}\n margin={{ top: 14, right: 16, bottom: 74, left: 52 }}\n colors={colorById}\n xScale={{ type: 'point' }}\n yScale={{ type: 'linear', min: 0, max: 'auto' }}\n curve=\"monotoneX\"\n lineWidth={2.5}\n pointSize={4}\n pointBorderWidth={2}\n pointBorderColor={{ from: 'seriesColor', modifiers: [['darker', 0.2]] }}\n enableArea\n areaOpacity={0.1}\n enableGridX={false}\n enableGridY\n axisTop={null}\n axisRight={null}\n axisBottom={{\n tickValues: visibleTicks,\n format: (value) => {\n return formatDayTick(String(value));\n },\n tickSize: 0,\n tickPadding: 10,\n }}\n axisLeft={{\n tickSize: 0,\n tickPadding: 8,\n tickValues: 4,\n format: (value) => {\n return compactNumberFormatter.format(Number(value));\n },\n }}\n enableSlices=\"x\"\n sliceTooltip={sliceTooltip}\n legends={legends}\n useMesh\n ariaLabel={ariaLabel}\n theme={{\n text: {\n fill: vars.colors.textSecondary,\n fontSize: 12,\n },\n axis: {\n domain: {\n line: {\n stroke: vars.colors.borderLight,\n },\n },\n ticks: {\n line: {\n stroke: 'transparent',\n },\n },\n legend: {\n text: {\n fill: vars.colors.textSecondary,\n },\n },\n },\n grid: {\n line: {\n stroke: vars.colors.borderLight,\n },\n },\n crosshair: {\n line: {\n stroke: vars.colors.primary,\n strokeWidth: 1,\n strokeOpacity: 0.35,\n },\n },\n tooltip: {\n container: {\n background: 'transparent',\n boxShadow: 'none',\n padding: 0,\n },\n },\n legends: {\n text: {\n fill: vars.colors.textSecondary,\n },\n },\n }}\n />\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
/* empty css
|
|
2
|
-
/* empty css
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
a as tooltipRowLabel,
|
|
10
|
-
r as tooltipSwatch
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=billingUsageLineChart.css.js.map
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
//#region src/components/charts/billingUsageLineChart.css.ts
|
|
4
|
+
var e = "_1a38h831 _1a38h830 txvbqbnux txvbqboi6 txvbqbp5f txvbqblx6 txvbqbu6f txvbqb1df txvbqb1qf txvbqbx6 txvbqb1ro txvbqbv2r", t = "_1a38h832 txvbqbogo txvbqbp3x txvbqbp5f txvbqblx6 txvbqb9io txvbqbai6 txvbqbb9o txvbqb1df txvbqb1qf txvbqbwf txvbqb1rf txvbqbv2x txvbqb8q6", n = "_1a38h833 txvbqb8o txvbqbv8t txvbqbamf txvbqbfbo", r = "_1a38h834 txvbqb9io txvbqbco txvbqbdoo txvbqbaof txvbqb8x txvbqbv8p", i = "_1a38h835 txvbqb9jf txvbqbco txvbqbb9o", a = "_1a38h837 _1a38h836 txvbqbtvo txvbqbc56 txvbqb1t6";
|
|
5
|
+
//#endregion
|
|
6
|
+
export { e as chartContainer, t as tooltip, n as tooltipDate, r as tooltipRow, i as tooltipRowLabel, a as tooltipSwatch };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=billingUsageLineChart.css.js.map
|