@shipfox/react-ui 0.14.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/avatar/avatar.js +1 -1
- package/dist/components/button-group/button-group.d.ts +17 -0
- package/dist/components/button-group/button-group.js +74 -0
- package/dist/components/button-group/button-group.stories.js +644 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/button-group/index.js +3 -0
- package/dist/components/code-block/code-block-footer.js +4 -2
- package/dist/components/command/command.d.ts +28 -0
- package/dist/components/command/command.js +190 -0
- package/dist/components/command/command.stories.js +228 -0
- package/dist/components/command/index.d.ts +2 -0
- package/dist/components/command/index.js +3 -0
- package/dist/components/dashboard/components/animated-logo.d.ts +4 -0
- package/dist/components/dashboard/components/animated-logo.js +23 -0
- package/dist/components/dashboard/components/charts/bar-chart.d.ts +39 -0
- package/dist/components/dashboard/components/charts/bar-chart.js +104 -0
- package/dist/components/dashboard/components/charts/chart-tooltip.d.ts +14 -0
- package/dist/components/dashboard/components/charts/chart-tooltip.js +45 -0
- package/dist/components/dashboard/components/charts/colors.d.ts +11 -0
- package/dist/components/dashboard/components/charts/colors.js +17 -0
- package/dist/components/dashboard/components/charts/index.d.ts +5 -0
- package/dist/components/dashboard/components/charts/index.js +6 -0
- package/dist/components/dashboard/components/charts/line-chart.d.ts +37 -0
- package/dist/components/dashboard/components/charts/line-chart.js +128 -0
- package/dist/components/dashboard/components/complete-setup-button.d.ts +4 -0
- package/dist/components/dashboard/components/complete-setup-button.js +28 -0
- package/dist/components/dashboard/components/dashboard-alert.d.ts +8 -0
- package/dist/components/dashboard/components/dashboard-alert.js +24 -0
- package/dist/components/dashboard/components/kpi-card.d.ts +15 -0
- package/dist/components/dashboard/components/kpi-card.js +77 -0
- package/dist/components/dashboard/components/mobile-menu.d.ts +2 -0
- package/dist/components/dashboard/components/mobile-menu.js +65 -0
- package/dist/components/dashboard/components/mobile-sidebar.d.ts +19 -0
- package/dist/components/dashboard/components/mobile-sidebar.js +50 -0
- package/dist/components/dashboard/components/organization-selector.d.ts +25 -0
- package/dist/components/dashboard/components/organization-selector.js +115 -0
- package/dist/components/dashboard/components/sidebar.d.ts +24 -0
- package/dist/components/dashboard/components/sidebar.js +218 -0
- package/dist/components/dashboard/components/top-menu.d.ts +5 -0
- package/dist/components/dashboard/components/top-menu.js +31 -0
- package/dist/components/dashboard/components/topbar-button.d.ts +7 -0
- package/dist/components/dashboard/components/topbar-button.js +18 -0
- package/dist/components/dashboard/components/topbar.d.ts +4 -0
- package/dist/components/dashboard/components/topbar.js +62 -0
- package/dist/components/dashboard/components/user-profile.d.ts +2 -0
- package/dist/components/dashboard/components/user-profile.js +146 -0
- package/dist/components/dashboard/context/dashboard-context.d.ts +70 -0
- package/dist/components/dashboard/context/dashboard-context.js +175 -0
- package/dist/components/dashboard/context/index.d.ts +8 -0
- package/dist/components/dashboard/context/index.js +6 -0
- package/dist/components/dashboard/context/types.d.ts +50 -0
- package/dist/components/dashboard/context/types.js +7 -0
- package/dist/components/dashboard/context/utils.d.ts +28 -0
- package/dist/components/dashboard/context/utils.js +53 -0
- package/dist/components/dashboard/dashboard.d.ts +28 -0
- package/dist/components/dashboard/dashboard.js +110 -0
- package/dist/components/dashboard/dashboard.stories.js +23 -0
- package/dist/components/dashboard/filters/expression-filter-bar.d.ts +42 -0
- package/dist/components/dashboard/filters/expression-filter-bar.js +80 -0
- package/dist/components/dashboard/filters/index.d.ts +6 -0
- package/dist/components/dashboard/filters/index.js +5 -0
- package/dist/components/dashboard/index.d.ts +26 -0
- package/dist/components/dashboard/index.js +24 -0
- package/dist/components/dashboard/pages/analytics-page.d.ts +20 -0
- package/dist/components/dashboard/pages/analytics-page.js +258 -0
- package/dist/components/dashboard/pages/index.d.ts +6 -0
- package/dist/components/dashboard/pages/index.js +6 -0
- package/dist/components/dashboard/pages/jobs-page.d.ts +20 -0
- package/dist/components/dashboard/pages/jobs-page.js +56 -0
- package/dist/components/dashboard/table/index.d.ts +6 -0
- package/dist/components/dashboard/table/index.js +5 -0
- package/dist/components/dashboard/table/table-wrapper.d.ts +104 -0
- package/dist/components/dashboard/table/table-wrapper.js +93 -0
- package/dist/components/dashboard/toolbar/filter-button.d.ts +12 -0
- package/dist/components/dashboard/toolbar/filter-button.js +124 -0
- package/dist/components/dashboard/toolbar/index.d.ts +13 -0
- package/dist/components/dashboard/toolbar/index.js +10 -0
- package/dist/components/dashboard/toolbar/page-toolbar.d.ts +75 -0
- package/dist/components/dashboard/toolbar/page-toolbar.js +208 -0
- package/dist/components/dashboard/toolbar/toolbar-actions.d.ts +52 -0
- package/dist/components/dashboard/toolbar/toolbar-actions.js +51 -0
- package/dist/components/dashboard/toolbar/toolbar-search.d.ts +21 -0
- package/dist/components/dashboard/toolbar/toolbar-search.js +123 -0
- package/dist/components/dashboard/toolbar/view-dropdown.d.ts +11 -0
- package/dist/components/dashboard/toolbar/view-dropdown.js +113 -0
- package/dist/components/form/form.stories.js +6 -1
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.js +8 -0
- package/dist/components/kbd/index.d.ts +2 -0
- package/dist/components/kbd/index.js +3 -0
- package/dist/components/kbd/kbd.d.ts +7 -0
- package/dist/components/kbd/kbd.js +18 -0
- package/dist/components/kbd/kbd.stories.js +119 -0
- package/dist/components/modal/modal.js +3 -3
- package/dist/components/search/index.d.ts +7 -0
- package/dist/components/search/index.js +8 -0
- package/dist/components/search/search-context.d.ts +11 -0
- package/dist/components/search/search-context.js +56 -0
- package/dist/components/search/search-inline.d.ts +9 -0
- package/dist/components/search/search-inline.js +85 -0
- package/dist/components/search/search-modal.d.ts +25 -0
- package/dist/components/search/search-modal.js +168 -0
- package/dist/components/search/search-trigger.d.ts +9 -0
- package/dist/components/search/search-trigger.js +37 -0
- package/dist/components/search/search-variants.d.ts +14 -0
- package/dist/components/search/search-variants.js +90 -0
- package/dist/components/search/search.d.ts +11 -0
- package/dist/components/search/search.js +35 -0
- package/dist/components/search/search.stories.js +630 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.js +3 -0
- package/dist/components/select/select.d.ts +27 -0
- package/dist/components/select/select.js +154 -0
- package/dist/components/select/select.stories.js +393 -0
- package/dist/components/sheet/index.d.ts +2 -0
- package/dist/components/sheet/index.js +3 -0
- package/dist/components/sheet/sheet.d.ts +33 -0
- package/dist/components/sheet/sheet.js +163 -0
- package/dist/components/sheet/sheet.stories.js +368 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.js +3 -0
- package/dist/components/skeleton/skeleton.d.ts +5 -0
- package/dist/components/skeleton/skeleton.js +11 -0
- package/dist/components/skeleton/skeleton.stories.js +345 -0
- package/dist/components/table/data-table.d.ts +83 -0
- package/dist/components/table/data-table.js +164 -0
- package/dist/components/table/index.d.ts +6 -0
- package/dist/components/table/index.js +6 -0
- package/dist/components/table/table-column-header.d.ts +79 -0
- package/dist/components/table/table-column-header.js +99 -0
- package/dist/components/table/table-pagination.d.ts +53 -0
- package/dist/components/table/table-pagination.js +139 -0
- package/dist/components/table/table.d.ts +11 -0
- package/dist/components/table/table.js +64 -0
- package/dist/components/table/table.stories.columns.d.ts +24 -0
- package/dist/components/table/table.stories.columns.js +310 -0
- package/dist/components/table/table.stories.components.d.ts +14 -0
- package/dist/components/table/table.stories.components.js +107 -0
- package/dist/components/table/table.stories.data.d.ts +54 -0
- package/dist/components/table/table.stories.data.js +122 -0
- package/dist/components/table/table.stories.js +302 -0
- package/dist/styles.css +1 -1
- package/package.json +14 -5
- package/.storybook/main.ts +0 -35
- package/.storybook/preview.tsx +0 -59
- package/.storybook/vitest.setup.ts +0 -4
- package/.turbo/turbo-build.log +0 -19
- package/.turbo/turbo-check.log +0 -6
- package/.turbo/turbo-type.log +0 -5
- package/CHANGELOG.md +0 -104
- package/argos.config.ts +0 -33
- package/dist/build-css-entry.js.map +0 -1
- package/dist/colors.stories.conts.d.ts.map +0 -1
- package/dist/colors.stories.conts.js.map +0 -1
- package/dist/colors.stories.js.map +0 -1
- package/dist/components/alert/alert.d.ts.map +0 -1
- package/dist/components/alert/alert.js.map +0 -1
- package/dist/components/alert/alert.stories.js.map +0 -1
- package/dist/components/alert/index.d.ts.map +0 -1
- package/dist/components/alert/index.js.map +0 -1
- package/dist/components/avatar/avatar-group.d.ts.map +0 -1
- package/dist/components/avatar/avatar-group.js.map +0 -1
- package/dist/components/avatar/avatar.d.ts.map +0 -1
- package/dist/components/avatar/avatar.js.map +0 -1
- package/dist/components/avatar/avatar.stories.js.map +0 -1
- package/dist/components/avatar/index.d.ts.map +0 -1
- package/dist/components/avatar/index.js.map +0 -1
- package/dist/components/badge/badge.d.ts.map +0 -1
- package/dist/components/badge/badge.js.map +0 -1
- package/dist/components/badge/badge.stories.js.map +0 -1
- package/dist/components/badge/icon-badge.d.ts.map +0 -1
- package/dist/components/badge/icon-badge.js.map +0 -1
- package/dist/components/badge/index.d.ts.map +0 -1
- package/dist/components/badge/index.js.map +0 -1
- package/dist/components/badge/status-badge.d.ts.map +0 -1
- package/dist/components/badge/status-badge.js.map +0 -1
- package/dist/components/badge/user-badge.d.ts.map +0 -1
- package/dist/components/badge/user-badge.js.map +0 -1
- package/dist/components/button/button-link.d.ts.map +0 -1
- package/dist/components/button/button-link.js.map +0 -1
- package/dist/components/button/button-link.stories.js.map +0 -1
- package/dist/components/button/button.d.ts.map +0 -1
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/button/button.stories.js.map +0 -1
- package/dist/components/button/icon-button.d.ts.map +0 -1
- package/dist/components/button/icon-button.js.map +0 -1
- package/dist/components/button/icon-button.stories.js.map +0 -1
- package/dist/components/button/index.d.ts.map +0 -1
- package/dist/components/button/index.js.map +0 -1
- package/dist/components/calendar/calendar.d.ts.map +0 -1
- package/dist/components/calendar/calendar.js.map +0 -1
- package/dist/components/calendar/index.d.ts.map +0 -1
- package/dist/components/calendar/index.js.map +0 -1
- package/dist/components/checkbox/checkbox-label.d.ts.map +0 -1
- package/dist/components/checkbox/checkbox-label.js.map +0 -1
- package/dist/components/checkbox/checkbox-links.d.ts.map +0 -1
- package/dist/components/checkbox/checkbox-links.js.map +0 -1
- package/dist/components/checkbox/checkbox.d.ts.map +0 -1
- package/dist/components/checkbox/checkbox.js.map +0 -1
- package/dist/components/checkbox/checkbox.stories.js.map +0 -1
- package/dist/components/checkbox/index.d.ts.map +0 -1
- package/dist/components/checkbox/index.js.map +0 -1
- package/dist/components/code-block/code-block-footer.d.ts.map +0 -1
- package/dist/components/code-block/code-block-footer.js.map +0 -1
- package/dist/components/code-block/code-block.d.ts.map +0 -1
- package/dist/components/code-block/code-block.js.map +0 -1
- package/dist/components/code-block/code-block.stories.js.map +0 -1
- package/dist/components/code-block/code-content.d.ts.map +0 -1
- package/dist/components/code-block/code-content.js.map +0 -1
- package/dist/components/code-block/code-copy-button.d.ts.map +0 -1
- package/dist/components/code-block/code-copy-button.js.map +0 -1
- package/dist/components/code-block/code-tabs.d.ts.map +0 -1
- package/dist/components/code-block/code-tabs.js.map +0 -1
- package/dist/components/code-block/index.d.ts.map +0 -1
- package/dist/components/code-block/index.js.map +0 -1
- package/dist/components/confetti/confetti.d.ts.map +0 -1
- package/dist/components/confetti/confetti.js.map +0 -1
- package/dist/components/confetti/confetti.stories.js.map +0 -1
- package/dist/components/confetti/index.d.ts.map +0 -1
- package/dist/components/confetti/index.js.map +0 -1
- package/dist/components/date-picker/date-picker.d.ts.map +0 -1
- package/dist/components/date-picker/date-picker.js.map +0 -1
- package/dist/components/date-picker/date-picker.stories.js.map +0 -1
- package/dist/components/date-picker/index.d.ts.map +0 -1
- package/dist/components/date-picker/index.js.map +0 -1
- package/dist/components/date-time-range-picker/date-time-range-picker.d.ts.map +0 -1
- package/dist/components/date-time-range-picker/date-time-range-picker.js.map +0 -1
- package/dist/components/date-time-range-picker/index.d.ts.map +0 -1
- package/dist/components/date-time-range-picker/index.js.map +0 -1
- package/dist/components/dot-grid/dot-grid.d.ts.map +0 -1
- package/dist/components/dot-grid/dot-grid.js.map +0 -1
- package/dist/components/dot-grid/index.d.ts.map +0 -1
- package/dist/components/dot-grid/index.js.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.stories.js.map +0 -1
- package/dist/components/dropdown-menu/index.d.ts.map +0 -1
- package/dist/components/dropdown-menu/index.js.map +0 -1
- package/dist/components/dynamic-item/dynamic-item.d.ts.map +0 -1
- package/dist/components/dynamic-item/dynamic-item.js.map +0 -1
- package/dist/components/dynamic-item/dynamic-item.stories.js.map +0 -1
- package/dist/components/dynamic-item/index.d.ts.map +0 -1
- package/dist/components/dynamic-item/index.js.map +0 -1
- package/dist/components/form/form.d.ts.map +0 -1
- package/dist/components/form/form.js.map +0 -1
- package/dist/components/form/form.stories.js.map +0 -1
- package/dist/components/form/index.d.ts.map +0 -1
- package/dist/components/form/index.js.map +0 -1
- package/dist/components/icon/custom/badge.d.ts.map +0 -1
- package/dist/components/icon/custom/badge.js.map +0 -1
- package/dist/components/icon/custom/check-circle-solid.d.ts.map +0 -1
- package/dist/components/icon/custom/check-circle-solid.js.map +0 -1
- package/dist/components/icon/custom/circle-dotted-line.d.ts.map +0 -1
- package/dist/components/icon/custom/circle-dotted-line.js.map +0 -1
- package/dist/components/icon/custom/component-fill.d.ts.map +0 -1
- package/dist/components/icon/custom/component-fill.js.map +0 -1
- package/dist/components/icon/custom/component-line.d.ts.map +0 -1
- package/dist/components/icon/custom/component-line.js.map +0 -1
- package/dist/components/icon/custom/ellipse-mini-solid.d.ts.map +0 -1
- package/dist/components/icon/custom/ellipse-mini-solid.js.map +0 -1
- package/dist/components/icon/custom/index.d.ts.map +0 -1
- package/dist/components/icon/custom/index.js.map +0 -1
- package/dist/components/icon/custom/info-tooltip-fill.d.ts.map +0 -1
- package/dist/components/icon/custom/info-tooltip-fill.js.map +0 -1
- package/dist/components/icon/custom/resize.d.ts.map +0 -1
- package/dist/components/icon/custom/resize.js.map +0 -1
- package/dist/components/icon/custom/shipfox-logo.d.ts.map +0 -1
- package/dist/components/icon/custom/shipfox-logo.js.map +0 -1
- package/dist/components/icon/custom/slack-logo.d.ts.map +0 -1
- package/dist/components/icon/custom/slack-logo.js.map +0 -1
- package/dist/components/icon/custom/spinner.d.ts.map +0 -1
- package/dist/components/icon/custom/spinner.js.map +0 -1
- package/dist/components/icon/custom/stripe-logo.d.ts.map +0 -1
- package/dist/components/icon/custom/stripe-logo.js.map +0 -1
- package/dist/components/icon/custom/thunder.d.ts.map +0 -1
- package/dist/components/icon/custom/thunder.js.map +0 -1
- package/dist/components/icon/custom/x-circle-solid.d.ts.map +0 -1
- package/dist/components/icon/custom/x-circle-solid.js.map +0 -1
- package/dist/components/icon/icon.d.ts.map +0 -1
- package/dist/components/icon/icon.js.map +0 -1
- package/dist/components/icon/icon.stories.js.map +0 -1
- package/dist/components/icon/index.d.ts.map +0 -1
- package/dist/components/icon/index.js.map +0 -1
- package/dist/components/icon/remixicon-registry.d.ts.map +0 -1
- package/dist/components/icon/remixicon-registry.js.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/inline-tips/index.d.ts.map +0 -1
- package/dist/components/inline-tips/index.js.map +0 -1
- package/dist/components/inline-tips/inline-tips.d.ts.map +0 -1
- package/dist/components/inline-tips/inline-tips.js.map +0 -1
- package/dist/components/inline-tips/inline-tips.stories.js.map +0 -1
- package/dist/components/input/index.d.ts.map +0 -1
- package/dist/components/input/index.js.map +0 -1
- package/dist/components/input/input.d.ts.map +0 -1
- package/dist/components/input/input.js.map +0 -1
- package/dist/components/input/input.stories.js.map +0 -1
- package/dist/components/item/index.d.ts.map +0 -1
- package/dist/components/item/index.js.map +0 -1
- package/dist/components/item/item.d.ts.map +0 -1
- package/dist/components/item/item.js.map +0 -1
- package/dist/components/item/item.stories.js.map +0 -1
- package/dist/components/label/index.d.ts.map +0 -1
- package/dist/components/label/index.js.map +0 -1
- package/dist/components/label/label.d.ts.map +0 -1
- package/dist/components/label/label.js.map +0 -1
- package/dist/components/label/label.stories.js.map +0 -1
- package/dist/components/modal/index.d.ts.map +0 -1
- package/dist/components/modal/index.js.map +0 -1
- package/dist/components/modal/modal.d.ts.map +0 -1
- package/dist/components/modal/modal.js.map +0 -1
- package/dist/components/modal/modal.stories.js.map +0 -1
- package/dist/components/moving-border/index.d.ts.map +0 -1
- package/dist/components/moving-border/index.js.map +0 -1
- package/dist/components/moving-border/moving-border.d.ts.map +0 -1
- package/dist/components/moving-border/moving-border.js.map +0 -1
- package/dist/components/popover/index.d.ts.map +0 -1
- package/dist/components/popover/index.js.map +0 -1
- package/dist/components/popover/popover.d.ts.map +0 -1
- package/dist/components/popover/popover.js.map +0 -1
- package/dist/components/shiny-text/index.d.ts.map +0 -1
- package/dist/components/shiny-text/index.js.map +0 -1
- package/dist/components/shiny-text/shiny-text.d.ts.map +0 -1
- package/dist/components/shiny-text/shiny-text.js.map +0 -1
- package/dist/components/tabs/index.d.ts.map +0 -1
- package/dist/components/tabs/index.js.map +0 -1
- package/dist/components/tabs/tabs.d.ts.map +0 -1
- package/dist/components/tabs/tabs.js.map +0 -1
- package/dist/components/tabs/tabs.stories.js.map +0 -1
- package/dist/components/textarea/index.d.ts.map +0 -1
- package/dist/components/textarea/index.js.map +0 -1
- package/dist/components/textarea/textarea.d.ts.map +0 -1
- package/dist/components/textarea/textarea.js.map +0 -1
- package/dist/components/textarea/textarea.stories.js.map +0 -1
- package/dist/components/theme/index.d.ts.map +0 -1
- package/dist/components/theme/index.js.map +0 -1
- package/dist/components/theme/theme-provider.d.ts.map +0 -1
- package/dist/components/theme/theme-provider.js.map +0 -1
- package/dist/components/toast/index.d.ts.map +0 -1
- package/dist/components/toast/index.js.map +0 -1
- package/dist/components/toast/toast-custom.d.ts.map +0 -1
- package/dist/components/toast/toast-custom.js.map +0 -1
- package/dist/components/toast/toast.d.ts.map +0 -1
- package/dist/components/toast/toast.js.map +0 -1
- package/dist/components/toast/toast.stories.js.map +0 -1
- package/dist/components/tooltip/index.d.ts.map +0 -1
- package/dist/components/tooltip/index.js.map +0 -1
- package/dist/components/tooltip/tooltip.d.ts.map +0 -1
- package/dist/components/tooltip/tooltip.js.map +0 -1
- package/dist/components/tooltip/tooltip.stories.js.map +0 -1
- package/dist/components/typography/code.d.ts.map +0 -1
- package/dist/components/typography/code.js.map +0 -1
- package/dist/components/typography/code.stories.js.map +0 -1
- package/dist/components/typography/header.d.ts.map +0 -1
- package/dist/components/typography/header.js.map +0 -1
- package/dist/components/typography/header.stories.js.map +0 -1
- package/dist/components/typography/index.d.ts.map +0 -1
- package/dist/components/typography/index.js.map +0 -1
- package/dist/components/typography/text.d.ts.map +0 -1
- package/dist/components/typography/text.js.map +0 -1
- package/dist/components/typography/text.stories.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useCopy.d.ts.map +0 -1
- package/dist/hooks/useCopy.js.map +0 -1
- package/dist/hooks/useCopyToClipboard.d.ts.map +0 -1
- package/dist/hooks/useCopyToClipboard.js.map +0 -1
- package/dist/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/hooks/useMediaQuery.js.map +0 -1
- package/dist/hooks/useResolvedTheme.d.ts.map +0 -1
- package/dist/hooks/useResolvedTheme.js.map +0 -1
- package/dist/hooks/useShikiHighlight.d.ts.map +0 -1
- package/dist/hooks/useShikiHighlight.js.map +0 -1
- package/dist/hooks/useShikiStyleInjection.d.ts.map +0 -1
- package/dist/hooks/useShikiStyleInjection.js.map +0 -1
- package/dist/hooks/useTheme.d.ts.map +0 -1
- package/dist/hooks/useTheme.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/onboarding/sign-in.stories.js.map +0 -1
- package/dist/state/theme.d.ts.map +0 -1
- package/dist/state/theme.js.map +0 -1
- package/dist/utils/avatar.d.ts.map +0 -1
- package/dist/utils/avatar.js.map +0 -1
- package/dist/utils/clipboard.d.ts.map +0 -1
- package/dist/utils/clipboard.js.map +0 -1
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/cn.js.map +0 -1
- package/dist/utils/date.d.ts.map +0 -1
- package/dist/utils/date.js.map +0 -1
- package/dist/utils/debounce.d.ts.map +0 -1
- package/dist/utils/debounce.js.map +0 -1
- package/dist/utils/format/chart.d.ts.map +0 -1
- package/dist/utils/format/chart.js.map +0 -1
- package/dist/utils/format/date.d.ts.map +0 -1
- package/dist/utils/format/date.js.map +0 -1
- package/dist/utils/format/duration.d.ts.map +0 -1
- package/dist/utils/format/duration.js.map +0 -1
- package/dist/utils/format/index.d.ts.map +0 -1
- package/dist/utils/format/index.js.map +0 -1
- package/dist/utils/format/number.d.ts.map +0 -1
- package/dist/utils/format/number.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/index.css +0 -970
- package/src/assets/illustration-1.svg +0 -92
- package/src/assets/illustration-2.svg +0 -14
- package/src/assets/illustration-gradient.svg +0 -7049
- package/src/build-css-entry.ts +0 -3
- package/src/colors.stories.conts.ts +0 -164
- package/src/colors.stories.tsx +0 -66
- package/src/components/alert/alert.stories.tsx +0 -178
- package/src/components/alert/alert.tsx +0 -291
- package/src/components/alert/index.ts +0 -1
- package/src/components/avatar/avatar-group.tsx +0 -186
- package/src/components/avatar/avatar.stories.tsx +0 -179
- package/src/components/avatar/avatar.tsx +0 -219
- package/src/components/avatar/index.ts +0 -2
- package/src/components/badge/badge.stories.tsx +0 -468
- package/src/components/badge/badge.tsx +0 -147
- package/src/components/badge/icon-badge.tsx +0 -43
- package/src/components/badge/index.ts +0 -4
- package/src/components/badge/status-badge.tsx +0 -43
- package/src/components/badge/user-badge.tsx +0 -34
- package/src/components/button/button-link.stories.tsx +0 -86
- package/src/components/button/button-link.tsx +0 -76
- package/src/components/button/button.stories.tsx +0 -138
- package/src/components/button/button.tsx +0 -91
- package/src/components/button/icon-button.stories.tsx +0 -228
- package/src/components/button/icon-button.tsx +0 -95
- package/src/components/button/index.ts +0 -3
- package/src/components/calendar/calendar.tsx +0 -90
- package/src/components/calendar/index.ts +0 -1
- package/src/components/checkbox/checkbox-label.tsx +0 -125
- package/src/components/checkbox/checkbox-links.tsx +0 -92
- package/src/components/checkbox/checkbox.stories.tsx +0 -391
- package/src/components/checkbox/checkbox.tsx +0 -71
- package/src/components/checkbox/index.ts +0 -3
- package/src/components/code-block/code-block-footer.tsx +0 -190
- package/src/components/code-block/code-block.stories.tsx +0 -323
- package/src/components/code-block/code-block.tsx +0 -283
- package/src/components/code-block/code-content.tsx +0 -63
- package/src/components/code-block/code-copy-button.tsx +0 -73
- package/src/components/code-block/code-tabs.tsx +0 -170
- package/src/components/code-block/index.ts +0 -3
- package/src/components/confetti/confetti.stories.tsx +0 -38
- package/src/components/confetti/confetti.tsx +0 -140
- package/src/components/confetti/index.ts +0 -1
- package/src/components/date-picker/date-picker.stories.tsx +0 -230
- package/src/components/date-picker/date-picker.tsx +0 -179
- package/src/components/date-picker/index.ts +0 -1
- package/src/components/date-time-range-picker/date-time-range-picker.tsx +0 -211
- package/src/components/date-time-range-picker/index.ts +0 -1
- package/src/components/dot-grid/dot-grid.tsx +0 -325
- package/src/components/dot-grid/index.ts +0 -1
- package/src/components/dropdown-menu/dropdown-menu.stories.tsx +0 -384
- package/src/components/dropdown-menu/dropdown-menu.tsx +0 -416
- package/src/components/dropdown-menu/index.ts +0 -1
- package/src/components/dynamic-item/dynamic-item.stories.tsx +0 -266
- package/src/components/dynamic-item/dynamic-item.tsx +0 -74
- package/src/components/dynamic-item/index.ts +0 -1
- package/src/components/form/form.stories.tsx +0 -500
- package/src/components/form/form.tsx +0 -154
- package/src/components/form/index.ts +0 -1
- package/src/components/icon/custom/badge.tsx +0 -17
- package/src/components/icon/custom/check-circle-solid.tsx +0 -24
- package/src/components/icon/custom/circle-dotted-line.tsx +0 -17
- package/src/components/icon/custom/component-fill.tsx +0 -17
- package/src/components/icon/custom/component-line.tsx +0 -17
- package/src/components/icon/custom/ellipse-mini-solid.tsx +0 -17
- package/src/components/icon/custom/index.ts +0 -14
- package/src/components/icon/custom/info-tooltip-fill.tsx +0 -21
- package/src/components/icon/custom/resize.tsx +0 -17
- package/src/components/icon/custom/shipfox-logo.tsx +0 -20
- package/src/components/icon/custom/slack-logo.tsx +0 -35
- package/src/components/icon/custom/spinner.tsx +0 -144
- package/src/components/icon/custom/stripe-logo.tsx +0 -27
- package/src/components/icon/custom/thunder.tsx +0 -17
- package/src/components/icon/custom/x-circle-solid.tsx +0 -24
- package/src/components/icon/icon.stories.tsx +0 -31
- package/src/components/icon/icon.tsx +0 -90
- package/src/components/icon/index.ts +0 -1
- package/src/components/icon/remixicon-registry.ts +0 -24
- package/src/components/index.ts +0 -29
- package/src/components/inline-tips/index.ts +0 -1
- package/src/components/inline-tips/inline-tips.stories.tsx +0 -131
- package/src/components/inline-tips/inline-tips.tsx +0 -132
- package/src/components/input/index.ts +0 -1
- package/src/components/input/input.stories.tsx +0 -138
- package/src/components/input/input.tsx +0 -43
- package/src/components/item/index.ts +0 -1
- package/src/components/item/item.stories.tsx +0 -159
- package/src/components/item/item.tsx +0 -182
- package/src/components/label/index.ts +0 -1
- package/src/components/label/label.stories.tsx +0 -67
- package/src/components/label/label.tsx +0 -15
- package/src/components/modal/index.ts +0 -1
- package/src/components/modal/modal.stories.tsx +0 -448
- package/src/components/modal/modal.tsx +0 -311
- package/src/components/moving-border/index.ts +0 -1
- package/src/components/moving-border/moving-border.tsx +0 -67
- package/src/components/popover/index.ts +0 -1
- package/src/components/popover/popover.tsx +0 -60
- package/src/components/renovate.json +0 -23
- package/src/components/shiny-text/index.ts +0 -1
- package/src/components/shiny-text/shiny-text.tsx +0 -21
- package/src/components/tabs/index.ts +0 -1
- package/src/components/tabs/tabs.stories.tsx +0 -100
- package/src/components/tabs/tabs.tsx +0 -380
- package/src/components/textarea/index.ts +0 -1
- package/src/components/textarea/textarea.stories.tsx +0 -196
- package/src/components/textarea/textarea.tsx +0 -42
- package/src/components/theme/index.ts +0 -1
- package/src/components/theme/theme-provider.tsx +0 -50
- package/src/components/toast/index.ts +0 -2
- package/src/components/toast/toast-custom.tsx +0 -154
- package/src/components/toast/toast.stories.tsx +0 -369
- package/src/components/toast/toast.tsx +0 -41
- package/src/components/tooltip/index.ts +0 -1
- package/src/components/tooltip/tooltip.stories.tsx +0 -284
- package/src/components/tooltip/tooltip.tsx +0 -121
- package/src/components/typography/code.stories.tsx +0 -36
- package/src/components/typography/code.tsx +0 -38
- package/src/components/typography/header.stories.tsx +0 -27
- package/src/components/typography/header.tsx +0 -41
- package/src/components/typography/index.ts +0 -3
- package/src/components/typography/text.stories.tsx +0 -67
- package/src/components/typography/text.tsx +0 -50
- package/src/hooks/index.ts +0 -6
- package/src/hooks/useCopy.ts +0 -0
- package/src/hooks/useCopyToClipboard.ts +0 -20
- package/src/hooks/useMediaQuery.ts +0 -87
- package/src/hooks/useResolvedTheme.ts +0 -34
- package/src/hooks/useShikiHighlight.ts +0 -140
- package/src/hooks/useShikiStyleInjection.ts +0 -34
- package/src/hooks/useTheme.ts +0 -10
- package/src/index.ts +0 -4
- package/src/onboarding/sign-in.stories.tsx +0 -85
- package/src/state/theme.ts +0 -15
- package/src/utils/avatar.ts +0 -27
- package/src/utils/clipboard.ts +0 -4
- package/src/utils/cn.ts +0 -6
- package/src/utils/date.test.ts +0 -119
- package/src/utils/date.ts +0 -99
- package/src/utils/debounce.ts +0 -15
- package/src/utils/format/chart.ts +0 -16
- package/src/utils/format/date.test.ts +0 -65
- package/src/utils/format/date.ts +0 -75
- package/src/utils/format/duration.test.ts +0 -58
- package/src/utils/format/duration.ts +0 -82
- package/src/utils/format/index.ts +0 -4
- package/src/utils/format/number.test.ts +0 -38
- package/src/utils/format/number.ts +0 -33
- package/src/utils/index.ts +0 -6
- package/test/global.ts +0 -3
- package/test/setup.ts +0 -9
- package/tsconfig.build.json +0 -19
- package/tsconfig.json +0 -11
- package/tsconfig.test.json +0 -12
- package/vercel.json +0 -8
- package/vite.css.config.ts +0 -30
- package/vitest.config.ts +0 -44
package/.storybook/preview.tsx
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import '../index.css';
|
|
2
|
-
import type {Decorator, Preview} from '@storybook/react';
|
|
3
|
-
import {ThemeProvider} from '../src/components/theme';
|
|
4
|
-
|
|
5
|
-
const withTheme: Decorator = (Story, context) => {
|
|
6
|
-
return <ThemeProvider defaultTheme={context.globals.theme}>{Story()}</ThemeProvider>;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const preview: Preview = {
|
|
10
|
-
decorators: [withTheme],
|
|
11
|
-
parameters: {
|
|
12
|
-
viewport: {
|
|
13
|
-
viewports: {
|
|
14
|
-
large: {
|
|
15
|
-
name: 'Large Viewport',
|
|
16
|
-
styles: {
|
|
17
|
-
width: '1280px',
|
|
18
|
-
height: '2000px',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
options: {
|
|
24
|
-
storySort: {
|
|
25
|
-
method: 'alphabetical',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
globalTypes: {
|
|
30
|
-
theme: {
|
|
31
|
-
name: 'Theme',
|
|
32
|
-
description: 'Global theme for components',
|
|
33
|
-
defaultValue: 'system',
|
|
34
|
-
toolbar: {
|
|
35
|
-
icon: 'sun',
|
|
36
|
-
items: [
|
|
37
|
-
{
|
|
38
|
-
value: 'light',
|
|
39
|
-
icon: 'sun',
|
|
40
|
-
title: 'Light',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
value: 'dark',
|
|
44
|
-
icon: 'moon',
|
|
45
|
-
title: 'Dark',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
value: 'system',
|
|
49
|
-
icon: 'info',
|
|
50
|
-
title: 'System',
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
showName: true,
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export default preview;
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
|
-
|
|
3
|
-
> @shipfox/react-ui@0.14.0 build /runner/_work/tooling/tooling/libs/react/ui
|
|
4
|
-
> swc && pnpm run build:css
|
|
5
|
-
|
|
6
|
-
Successfully compiled: 141 files with swc (415.03ms)
|
|
7
|
-
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
8
|
-
|
|
9
|
-
> @shipfox/react-ui@0.14.0 build:css /runner/_work/tooling/tooling/libs/react/ui
|
|
10
|
-
> vite build --config vite.css.config.ts && rm -f dist/css-entry.js dist/css-entry.js.map
|
|
11
|
-
|
|
12
|
-
[36mvite v7.2.7 [32mbuilding client environment for production...[36m[39m
|
|
13
|
-
transforming...
|
|
14
|
-
[32m✓[39m 2 modules transformed.
|
|
15
|
-
rendering chunks...
|
|
16
|
-
computing gzip size...
|
|
17
|
-
[2mdist/[22m[35mstyles.css [39m[1m[2m92.87 kB[22m[1m[22m[2m │ gzip: 14.70 kB[22m
|
|
18
|
-
[2mdist/[22m[36mcss-entry.js [39m[1m[2m 0.00 kB[22m[1m[22m[2m │ gzip: 0.02 kB[22m
|
|
19
|
-
[32m✓ built in 599ms[39m
|
package/.turbo/turbo-check.log
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
|
-
|
|
3
|
-
> @shipfox/react-ui@0.14.0 check /runner/_work/tooling/tooling/libs/react/ui
|
|
4
|
-
> biome-check --fix
|
|
5
|
-
|
|
6
|
-
Checked 160 files in 291ms. No fixes applied.
|
package/.turbo/turbo-type.log
DELETED
package/CHANGELOG.md
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# @shipfox/react-ui
|
|
2
|
-
|
|
3
|
-
## 0.14.0
|
|
4
|
-
|
|
5
|
-
### Minor Changes
|
|
6
|
-
|
|
7
|
-
- 18f4ab3: Add shiny text, confetti and shipfox loader components
|
|
8
|
-
|
|
9
|
-
## 0.13.0
|
|
10
|
-
|
|
11
|
-
### Minor Changes
|
|
12
|
-
|
|
13
|
-
- 45a8a61: Add Tabs component
|
|
14
|
-
|
|
15
|
-
## 0.12.0
|
|
16
|
-
|
|
17
|
-
### Minor Changes
|
|
18
|
-
|
|
19
|
-
- 5da4917: Add Date Picker component
|
|
20
|
-
|
|
21
|
-
## 0.11.0
|
|
22
|
-
|
|
23
|
-
### Minor Changes
|
|
24
|
-
|
|
25
|
-
- 2fb16bb: Add dropdown component
|
|
26
|
-
|
|
27
|
-
## 0.10.0
|
|
28
|
-
|
|
29
|
-
### Minor Changes
|
|
30
|
-
|
|
31
|
-
- 43f0699: Enhance Icon Component
|
|
32
|
-
|
|
33
|
-
## 0.9.0
|
|
34
|
-
|
|
35
|
-
### Minor Changes
|
|
36
|
-
|
|
37
|
-
- 00b8126: Enhance Alert, Buttons, Checkbox components
|
|
38
|
-
|
|
39
|
-
## 0.8.0
|
|
40
|
-
|
|
41
|
-
### Minor Changes
|
|
42
|
-
|
|
43
|
-
- f3dd22c: Add Form components
|
|
44
|
-
- 5e4a493: Update Spinner icon and Button loading state
|
|
45
|
-
|
|
46
|
-
## 0.7.0
|
|
47
|
-
|
|
48
|
-
### Minor Changes
|
|
49
|
-
|
|
50
|
-
- 6054e39: Add Dot-grid component
|
|
51
|
-
|
|
52
|
-
## 0.6.0
|
|
53
|
-
|
|
54
|
-
### Minor Changes
|
|
55
|
-
|
|
56
|
-
- 3a95f26: Add Argos CI Upload Screenshots
|
|
57
|
-
- 35f3c64: Add CSS bundle
|
|
58
|
-
- 3a95f26: Add Modal components
|
|
59
|
-
|
|
60
|
-
## 0.5.0
|
|
61
|
-
|
|
62
|
-
### Minor Changes
|
|
63
|
-
|
|
64
|
-
- ec0b437: Add Button Link and Icon Button components
|
|
65
|
-
- 7b73bd6: Integrate Argos CI
|
|
66
|
-
|
|
67
|
-
## 0.4.0
|
|
68
|
-
|
|
69
|
-
### Minor Changes
|
|
70
|
-
|
|
71
|
-
- 2cfbf33: Add Codeblock components
|
|
72
|
-
- dd023e1: Add checkbox and label components
|
|
73
|
-
- a808a32: Add toast components and refactor
|
|
74
|
-
- feeb725: Add Item and DynamicItem components
|
|
75
|
-
- 34000b7: Add Badge component
|
|
76
|
-
- 090e011: Add tooltip component
|
|
77
|
-
|
|
78
|
-
## 0.3.0
|
|
79
|
-
|
|
80
|
-
### Minor Changes
|
|
81
|
-
|
|
82
|
-
- ab01d39: Add Avatar and Avatar Group components
|
|
83
|
-
|
|
84
|
-
## 0.2.0
|
|
85
|
-
|
|
86
|
-
### Minor Changes
|
|
87
|
-
|
|
88
|
-
- d2f5795: Add textarea component
|
|
89
|
-
|
|
90
|
-
## 0.1.0
|
|
91
|
-
|
|
92
|
-
### Minor Changes
|
|
93
|
-
|
|
94
|
-
- cd386f2: Add Input component
|
|
95
|
-
|
|
96
|
-
### Patch Changes
|
|
97
|
-
|
|
98
|
-
- 674ecbb: Add README for all packages
|
|
99
|
-
|
|
100
|
-
## 0.0.1
|
|
101
|
-
|
|
102
|
-
### Patch Changes
|
|
103
|
-
|
|
104
|
-
- 9bd640b: Modify repository structure
|
package/argos.config.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
const config = {
|
|
2
|
-
// Upload Storybook build output
|
|
3
|
-
buildDir: 'storybook-static',
|
|
4
|
-
|
|
5
|
-
// Project token (can also be set via ARGOS_TOKEN env var)
|
|
6
|
-
// token: process.env.ARGOS_TOKEN,
|
|
7
|
-
|
|
8
|
-
// Repository information (optional, auto-detected from git)
|
|
9
|
-
// repository: 'shipfox/tooling',
|
|
10
|
-
|
|
11
|
-
// Branch information (optional, auto-detected from git)
|
|
12
|
-
// branch: process.env.GITHUB_REF_NAME,
|
|
13
|
-
|
|
14
|
-
// Commit information (optional, auto-detected from git)
|
|
15
|
-
// commit: process.env.GITHUB_SHA,
|
|
16
|
-
|
|
17
|
-
// Parallel upload settings for faster uploads
|
|
18
|
-
parallel: {
|
|
19
|
-
total: -1, // Auto-detect based on available resources
|
|
20
|
-
nonce: process.env.GITHUB_RUN_ID || Date.now().toString(),
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
// Ignore certain screenshots or patterns
|
|
24
|
-
// ignore: ['**/private/**'],
|
|
25
|
-
|
|
26
|
-
// Reference branch for comparisons (usually main)
|
|
27
|
-
reference: 'main',
|
|
28
|
-
|
|
29
|
-
// Threshold for visual changes (0 = any change, 1 = no changes)
|
|
30
|
-
threshold: 0,
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default config;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/build-css-entry.ts"],"sourcesContent":["// This file is only used for building CSS\n// It imports the CSS file which Vite will process and bundle\nimport '../index.css';\n"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,6DAA6D;AAC7D,OAAO,eAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colors.stories.conts.d.ts","sourceRoot":"","sources":["../src/colors.stories.conts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmKlB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/colors.stories.conts.ts"],"sourcesContent":["export const primitiveColors = {\n neutral: {\n variants: [\n 'bg-neutral-0',\n 'bg-neutral-50',\n 'bg-neutral-100',\n 'bg-neutral-200',\n 'bg-neutral-300',\n 'bg-neutral-400',\n 'bg-neutral-500',\n 'bg-neutral-600',\n 'bg-neutral-700',\n 'bg-neutral-800',\n 'bg-neutral-900',\n 'bg-neutral-950',\n 'bg-neutral-1000',\n ],\n },\n purple: {\n variants: [\n 'bg-purple-50',\n 'bg-purple-100',\n 'bg-purple-200',\n 'bg-purple-300',\n 'bg-purple-400',\n 'bg-purple-500',\n 'bg-purple-600',\n 'bg-purple-700',\n 'bg-purple-800',\n 'bg-purple-900',\n 'bg-purple-950',\n ],\n },\n blue: {\n variants: [\n 'bg-blue-50',\n 'bg-blue-100',\n 'bg-blue-200',\n 'bg-blue-300',\n 'bg-blue-400',\n 'bg-blue-500',\n 'bg-blue-600',\n 'bg-blue-700',\n 'bg-blue-800',\n 'bg-blue-900',\n 'bg-blue-950',\n ],\n },\n green: {\n variants: [\n 'bg-green-50',\n 'bg-green-100',\n 'bg-green-200',\n 'bg-green-300',\n 'bg-green-400',\n 'bg-green-500',\n 'bg-green-600',\n 'bg-green-700',\n 'bg-green-800',\n 'bg-green-900',\n 'bg-green-950',\n ],\n },\n primary: {\n variants: [\n 'bg-primary-50',\n 'bg-primary-100',\n 'bg-primary-200',\n 'bg-primary-300',\n 'bg-primary-400',\n 'bg-primary-500',\n 'bg-primary-600',\n 'bg-primary-700',\n 'bg-primary-800',\n 'bg-primary-900',\n 'bg-primary-950',\n ],\n },\n red: {\n variants: [\n 'bg-red-50',\n 'bg-red-100',\n 'bg-red-200',\n 'bg-red-300',\n 'bg-red-400',\n 'bg-red-500',\n 'bg-red-600',\n 'bg-red-700',\n 'bg-red-800',\n 'bg-red-900',\n 'bg-red-950',\n ],\n },\n orange: {\n variants: [\n 'bg-orange-50',\n 'bg-orange-100',\n 'bg-orange-200',\n 'bg-orange-300',\n 'bg-orange-400',\n 'bg-orange-500',\n 'bg-orange-600',\n 'bg-orange-700',\n 'bg-orange-800',\n 'bg-orange-900',\n 'bg-orange-950',\n ],\n },\n accent: {\n variants: [\n 'bg-accent-purple',\n 'bg-accent-indigo',\n 'bg-accent-mint',\n 'bg-accent-green',\n 'bg-accent-teal',\n 'bg-accent-brown',\n 'bg-accent-blue',\n 'bg-accent-orange',\n 'bg-accent-yellow',\n 'bg-accent-pink',\n 'bg-accent-gray',\n 'bg-accent-cyan',\n 'bg-accent-red',\n ],\n },\n 'alpha-white': {\n variants: [\n 'bg-alpha-white-0',\n 'bg-alpha-white-2',\n 'bg-alpha-white-4',\n 'bg-alpha-white-6',\n 'bg-alpha-white-8',\n 'bg-alpha-white-10',\n 'bg-alpha-white-12',\n 'bg-alpha-white-16',\n 'bg-alpha-white-24',\n 'bg-alpha-white-40',\n 'bg-alpha-white-56',\n 'bg-alpha-white-64',\n 'bg-alpha-white-72',\n 'bg-alpha-white-80',\n 'bg-alpha-white-88',\n ],\n },\n 'alpha-black': {\n variants: [\n 'bg-alpha-black-0',\n 'bg-alpha-black-2',\n 'bg-alpha-black-4',\n 'bg-alpha-black-6',\n 'bg-alpha-black-8',\n 'bg-alpha-black-10',\n 'bg-alpha-black-12',\n 'bg-alpha-black-16',\n 'bg-alpha-black-24',\n 'bg-alpha-black-40',\n 'bg-alpha-black-56',\n 'bg-alpha-black-64',\n 'bg-alpha-black-72',\n 'bg-alpha-black-80',\n 'bg-alpha-black-88',\n ],\n },\n} as const;\n"],"names":["primitiveColors","neutral","variants","purple","blue","green","primary","red","orange","accent"],"mappings":"AAAA,OAAO,MAAMA,kBAAkB;IAC7BC,SAAS;QACPC,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAC,QAAQ;QACND,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAE,MAAM;QACJF,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAG,OAAO;QACLH,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAI,SAAS;QACPJ,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAK,KAAK;QACHL,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAM,QAAQ;QACNN,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAO,QAAQ;QACNP,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACA,eAAe;QACbA,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACA,eAAe;QACbA,UAAU;YACR;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;AACF,EAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/colors.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {cn} from 'utils/cn';\nimport {primitiveColors} from './colors.stories.conts';\n\nconst meta: Meta = {\n title: 'Assets/Colors',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\ninterface ColorItemProps {\n color: string;\n variant: string;\n}\n\nfunction ColorItem({variant}: ColorItemProps) {\n const value = variant.split('-').pop();\n return (\n <div className=\"flex flex-col items-center gap-1\">\n <div className={cn('h-24 w-full rounded-6 border border-border', variant)} />\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n {value}\n </Code>\n </div>\n );\n}\n\ninterface ColorPaletteProps {\n title: string;\n rootKey: string;\n variants: readonly string[];\n}\n\nfunction ColorPalette({title, rootKey, variants}: ColorPaletteProps) {\n return (\n <div className=\"grid grid-cols-16 gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n {title}\n </Code>\n {variants.map((variant) => (\n <ColorItem key={variant} variant={variant} color={rootKey} />\n ))}\n </div>\n );\n}\n\nexport const Palette: Story = {\n render: () => (\n <div className=\"flex flex-col gap-16\">\n <section className=\"flex flex-col gap-8\">\n <Header variant=\"h2\">Primitive Colors</Header>\n\n {Object.entries(primitiveColors).map(([color, variants]) => (\n <ColorPalette\n key={color}\n title={color.replace('-', ' ')}\n rootKey={color}\n variants={variants.variants as readonly string[]}\n />\n ))}\n </section>\n </div>\n ),\n};\n"],"names":["Code","Header","cn","primitiveColors","meta","title","ColorItem","variant","value","split","pop","div","className","ColorPalette","rootKey","variants","map","color","Palette","render","section","Object","entries","replace"],"mappings":";AACA,SAAQA,IAAI,EAAEC,MAAM,QAAO,wBAAwB;AACnD,SAAQC,EAAE,QAAO,WAAW;AAC5B,SAAQC,eAAe,QAAO,yBAAyB;AAEvD,MAAMC,OAAa;IACjBC,OAAO;AACT;AACA,eAAeD,KAAK;AASpB,SAASE,UAAU,EAACC,OAAO,EAAiB;IAC1C,MAAMC,QAAQD,QAAQE,KAAK,CAAC,KAAKC,GAAG;IACpC,qBACE,MAACC;QAAIC,WAAU;;0BACb,KAACD;gBAAIC,WAAWV,GAAG,8CAA8CK;;0BACjE,KAACP;gBAAKO,SAAQ;gBAAQK,WAAU;0BAC7BJ;;;;AAIT;AAQA,SAASK,aAAa,EAACR,KAAK,EAAES,OAAO,EAAEC,QAAQ,EAAoB;IACjE,qBACE,MAACJ;QAAIC,WAAU;;0BACb,KAACZ;gBAAKO,SAAQ;gBAAQK,WAAU;0BAC7BP;;YAEFU,SAASC,GAAG,CAAC,CAACT,wBACb,KAACD;oBAAwBC,SAASA;oBAASU,OAAOH;mBAAlCP;;;AAIxB;AAEA,OAAO,MAAMW,UAAiB;IAC5BC,QAAQ,kBACN,KAACR;YAAIC,WAAU;sBACb,cAAA,MAACQ;gBAAQR,WAAU;;kCACjB,KAACX;wBAAOM,SAAQ;kCAAK;;oBAEpBc,OAAOC,OAAO,CAACnB,iBAAiBa,GAAG,CAAC,CAAC,CAACC,OAAOF,SAAS,iBACrD,KAACF;4BAECR,OAAOY,MAAMM,OAAO,CAAC,KAAK;4BAC1BT,SAASG;4BACTF,UAAUA,SAASA,QAAQ;2BAHtBE;;;;AASjB,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/alert/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAA0B,KAAK,UAAU,EAAC,MAAM,eAAe,CAAC;AACvE,OAAO,EACL,KAAK,cAAc,EAQpB,MAAM,OAAO,CAAC;AAGf,QAAA,MAAM,aAAa;;8EAgBlB,CAAC;AAiBF,QAAA,MAAM,iBAAiB;;8EAarB,CAAC;AAEH,QAAA,MAAM,sBAAsB,EAAE,UAG7B,CAAC;AAkBF,KAAK,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GACrC,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEJ,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAmB,EACnB,QAAQ,EACR,IAAI,EAAE,cAAc,EACpB,WAAkB,EAClB,YAAY,EACZ,QAAe,EACf,UAAmC,EACnC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,UAAU,kDA0FZ;AAED,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,KAAK,CAAC,2CAEjE;AAED,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,KAAK,CAAC,2CAQ/D;AAED,iBAAS,gBAAgB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,KAAK,CAAC,2CAWrE;AAED,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,KAAK,CAAC,2CAQjE;AAED,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,2CAYnE;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,OAAO,EAAE,WAAW,EACpB,OAAO,EACP,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,2CAwBnE;AAED,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,sBAAsB,GACvB,CAAC;AAEF,YAAY,EAAC,UAAU,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/alert/alert.tsx"],"sourcesContent":["import {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon} from 'components/icon';\nimport {AnimatePresence, motion, type Transition} from 'framer-motion';\nimport {\n type ComponentProps,\n createContext,\n type MouseEvent,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport {cn} from 'utils/cn';\n\nconst alertVariants = cva(\n 'relative w-full rounded-l-4 rounded-r-8 px-16 py-12 text-sm flex gap-12 items-start border',\n {\n variants: {\n variant: {\n default: 'bg-tag-neutral-bg text-foreground-neutral-base border-tag-neutral-border',\n info: 'bg-tag-blue-bg text-foreground-neutral-base border-tag-blue-border',\n success: 'bg-tag-success-bg text-foreground-neutral-base border-tag-success-border',\n warning: 'bg-tag-warning-bg text-foreground-neutral-base border-tag-warning-border',\n error: 'bg-tag-error-bg text-foreground-neutral-base border-tag-error-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst alertLineVariants = cva('w-4 self-stretch rounded-full', {\n variants: {\n variant: {\n default: 'bg-tag-neutral-icon',\n info: 'bg-tag-blue-icon',\n success: 'bg-tag-success-icon',\n warning: 'bg-tag-warning-icon',\n error: 'bg-tag-error-icon',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst closeIconVariants = cva('w-16 h-16', {\n variants: {\n variant: {\n default: 'text-tag-neutral-icon',\n info: 'text-tag-blue-icon',\n success: 'text-tag-success-icon',\n warning: 'text-tag-warning-icon',\n error: 'text-tag-error-icon',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst alertDefaultTransition: Transition = {\n duration: 0.2,\n ease: 'easeInOut',\n};\n\ntype AlertContextValue = {\n isOpen: boolean;\n onClose: () => void;\n variant: VariantProps<typeof alertVariants>['variant'];\n};\n\nconst AlertContext = createContext<AlertContextValue | null>(null);\n\nfunction useAlertContext() {\n const context = useContext(AlertContext);\n if (!context) {\n throw new Error('Alert components must be used within an Alert component');\n }\n return context;\n}\n\ntype AlertProps = ComponentProps<'div'> &\n VariantProps<typeof alertVariants> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n animated?: boolean;\n transition?: Transition;\n autoClose?: number;\n };\n\nfunction Alert({\n className,\n variant = 'default',\n children,\n open: controlledOpen,\n defaultOpen = true,\n onOpenChange,\n animated = true,\n transition = alertDefaultTransition,\n autoClose,\n ...props\n}: AlertProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen;\n\n const handleClose = useCallback(() => {\n if (controlledOpen === undefined) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n }, [controlledOpen, onOpenChange]);\n\n const handleCloseRef = useRef(handleClose);\n useEffect(() => {\n handleCloseRef.current = handleClose;\n }, [handleClose]);\n\n useEffect(() => {\n if (autoClose && isOpen && autoClose > 0) {\n const timeoutId = setTimeout(() => {\n handleCloseRef.current();\n }, autoClose);\n\n return () => {\n clearTimeout(timeoutId);\n };\n }\n }, [autoClose, isOpen]);\n\n const contextValue: AlertContextValue = {\n isOpen,\n onClose: handleClose,\n variant,\n };\n\n if (!animated) {\n if (!isOpen) {\n return null;\n }\n\n return (\n <AlertContext.Provider value={contextValue}>\n <div className=\"w-full flex items-start gap-4\">\n <div\n data-slot=\"alert-line\"\n className={cn(alertLineVariants({variant}))}\n aria-hidden=\"true\"\n />\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({variant}), className)}\n {...props}\n >\n {children}\n </div>\n </div>\n </AlertContext.Provider>\n );\n }\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n key=\"alert\"\n className=\"w-full flex items-start gap-4\"\n initial={{opacity: 0}}\n animate={{opacity: 1}}\n exit={{opacity: 0}}\n transition={transition}\n >\n <AlertContext.Provider value={contextValue}>\n <div\n data-slot=\"alert-line\"\n className={cn(alertLineVariants({variant}))}\n aria-hidden=\"true\"\n />\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({variant}), className)}\n {...props}\n >\n {children}\n </div>\n </AlertContext.Provider>\n </motion.div>\n )}\n </AnimatePresence>\n );\n}\n\nfunction AlertContent({className, ...props}: ComponentProps<'div'>) {\n return <div data-slot=\"alert-content\" className={cn('flex-1 min-w-0', className)} {...props} />;\n}\n\nfunction AlertTitle({className, ...props}: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn('font-medium text-sm leading-20 text-foreground-neutral-base mb-4', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({className, ...props}: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n 'text-xs leading-20 text-foreground-neutral-base [&_p]:leading-relaxed',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertActions({className, ...props}: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-actions\"\n className={cn('flex items-center gap-8 mt-8', className)}\n {...props}\n />\n );\n}\n\nfunction AlertAction({className, ...props}: ComponentProps<'button'>) {\n return (\n <button\n data-slot=\"alert-action\"\n type=\"button\"\n className={cn(\n 'bg-transparent border-none p-0 cursor-pointer text-xs font-medium leading-20 text-foreground-neutral-base hover:text-foreground-neutral-subtle transition-colors duration-150 outline-none focus-visible:ring-2 focus-visible:ring-background-accent-blue-base focus-visible:ring-offset-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertClose({\n className,\n variant: variantProp,\n onClick,\n ...props\n}: ComponentProps<'button'> & VariantProps<typeof closeIconVariants>) {\n const {onClose, variant: contextVariant} = useAlertContext();\n const variant = variantProp ?? contextVariant ?? 'default';\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n onClose();\n onClick?.(e);\n };\n\n return (\n <button\n data-slot=\"alert-close\"\n type=\"button\"\n className={cn(\n 'absolute cursor-pointer top-12 right-12 rounded-4 p-4 bg-transparent border-none text-foreground-neutral-muted hover:text-foreground-neutral-base hover:bg-background-components-hover transition-colors duration-150 outline-none focus-visible:ring-2 focus-visible:ring-background-accent-blue-base focus-visible:ring-offset-2',\n className,\n )}\n aria-label=\"Close\"\n onClick={handleClick}\n {...props}\n >\n <Icon name=\"close\" className={cn(closeIconVariants({variant}))} />\n </button>\n );\n}\n\nexport {\n Alert,\n AlertContent,\n AlertTitle,\n AlertDescription,\n AlertActions,\n AlertAction,\n AlertClose,\n alertDefaultTransition,\n};\n\nexport type {AlertProps};\n"],"names":["cva","Icon","AnimatePresence","motion","createContext","useCallback","useContext","useEffect","useRef","useState","cn","alertVariants","variants","variant","default","info","success","warning","error","defaultVariants","alertLineVariants","closeIconVariants","alertDefaultTransition","duration","ease","AlertContext","useAlertContext","context","Error","Alert","className","children","open","controlledOpen","defaultOpen","onOpenChange","animated","transition","autoClose","props","internalOpen","setInternalOpen","isOpen","undefined","handleClose","handleCloseRef","current","timeoutId","setTimeout","clearTimeout","contextValue","onClose","Provider","value","div","data-slot","aria-hidden","role","initial","opacity","animate","exit","AlertContent","AlertTitle","AlertDescription","AlertActions","AlertAction","button","type","AlertClose","variantProp","onClick","contextVariant","handleClick","e","aria-label","name"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/alert/alert.stories.tsx"],"sourcesContent":["import {zodResolver} from '@hookform/resolvers/zod';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Button} from 'components/button';\nimport {Form, FormControl, FormField, FormItem, FormLabel, FormMessage} from 'components/form';\nimport {Input} from 'components/input';\nimport {Header} from 'components/typography';\nimport {useState} from 'react';\nimport {useForm} from 'react-hook-form';\nimport {z} from 'zod';\nimport {\n Alert,\n AlertAction,\n AlertActions,\n AlertClose,\n AlertContent,\n AlertDescription,\n AlertTitle,\n} from './alert';\n\nconst meta = {\n title: 'Components/Alert',\n component: Alert,\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: ['default', 'info', 'success', 'warning', 'error'],\n },\n },\n args: {\n variant: 'default',\n },\n} satisfies Meta<typeof Alert>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nconst variants = ['default', 'info', 'success', 'warning', 'error'] as const;\n\nexport const Default: Story = {\n render: (args) => {\n return (\n <Alert {...args}>\n <AlertContent>\n <AlertTitle>Title</AlertTitle>\n <AlertDescription>Description</AlertDescription>\n <AlertActions>\n <AlertAction>Download</AlertAction>\n <AlertAction>View</AlertAction>\n </AlertActions>\n </AlertContent>\n <AlertClose />\n </Alert>\n );\n },\n};\n\nconst validationFormSchema = z.object({\n email: z.string().email('Please enter a valid email address'),\n password: z.string().min(8, 'Password must be at least 8 characters'),\n});\n\ntype ValidationFormValues = z.infer<typeof validationFormSchema>;\n\nfunction ErrorValidationToasterExample() {\n const [showError, setShowError] = useState(false);\n const form = useForm<ValidationFormValues>({\n resolver: zodResolver(validationFormSchema),\n defaultValues: {\n email: '',\n password: '',\n },\n });\n\n function onSubmit(data: ValidationFormValues) {\n // biome-ignore lint/suspicious/noConsole: <we need to log the data for the story>\n console.log('Form submitted:', data);\n setShowError(false);\n }\n\n function onError() {\n setShowError(true);\n }\n\n const errors = form.formState.errors;\n const errorCount = Object.keys(errors).length;\n const errorMessage =\n errorCount > 0\n ? `Please fix ${errorCount} error${errorCount > 1 ? 's' : ''} before submitting.`\n : '';\n\n return (\n <div className=\"flex flex-col gap-16 w-full max-w-md\">\n {errorCount > 0 && (\n <Alert variant=\"error\" open={showError} autoClose={5000} onOpenChange={setShowError}>\n <AlertContent>\n <AlertTitle>Validation Error</AlertTitle>\n <AlertDescription>{errorMessage}</AlertDescription>\n <AlertActions>\n <AlertAction\n onClick={() => {\n form.clearErrors();\n setShowError(false);\n }}\n >\n Dismiss\n </AlertAction>\n </AlertActions>\n </AlertContent>\n <AlertClose />\n </Alert>\n )}\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit, onError)} className=\"space-y-8\">\n <FormField\n control={form.control}\n name=\"email\"\n render={({field}) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input type=\"email\" placeholder=\"email@example.com\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"password\"\n render={({field}) => (\n <FormItem>\n <FormLabel>Password</FormLabel>\n <FormControl>\n <Input type=\"password\" placeholder=\"Enter password\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type=\"submit\">Submit</Button>\n </form>\n </Form>\n </div>\n );\n}\n\nexport const WithFormValidation: Story = {\n render: () => <ErrorValidationToasterExample />,\n};\n\nexport const DesignMock: Story = {\n render: () => {\n return (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-subtle\">\n ALERTS\n </Header>\n <div className=\"flex flex-col gap-16\">\n {variants.map((variant) => (\n <Alert key={variant} variant={variant}>\n <AlertContent>\n <AlertTitle>Title</AlertTitle>\n <AlertDescription>Description</AlertDescription>\n <AlertActions>\n <AlertAction>Download</AlertAction>\n <AlertAction>View</AlertAction>\n </AlertActions>\n </AlertContent>\n <AlertClose />\n </Alert>\n ))}\n </div>\n </div>\n );\n },\n};\n"],"names":["zodResolver","Button","Form","FormControl","FormField","FormItem","FormLabel","FormMessage","Input","Header","useState","useForm","z","Alert","AlertAction","AlertActions","AlertClose","AlertContent","AlertDescription","AlertTitle","meta","title","component","tags","argTypes","variant","control","options","args","variants","Default","render","validationFormSchema","object","email","string","password","min","ErrorValidationToasterExample","showError","setShowError","form","resolver","defaultValues","onSubmit","data","console","log","onError","errors","formState","errorCount","Object","keys","length","errorMessage","div","className","open","autoClose","onOpenChange","onClick","clearErrors","handleSubmit","name","field","type","placeholder","WithFormValidation","DesignMock","map"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/alert/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/alert/index.ts"],"sourcesContent":["export * from './alert';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-group.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,YAAY,EAGlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAC,cAAc,EAAkC,MAAM,oBAAoB,CAAC;AAEnF,QAAA,MAAM,mBAAmB;;8EAiBvB,CAAC;AAwBH,KAAK,mBAAmB,GAAG,cAAc,CAAC,OAAO,cAAc,CAAC,CAAC;AAkDjE,KAAK,uBAAuB,GAAG,mBAAmB,CAAC;AAEnD,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAEzD;AAED,KAAK,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,GAC3C,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG;IACzC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC7C,CAAC;AAEJ,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,IAAW,EACX,QAAQ,EACR,UAAU,EACV,cAAsB,EACtB,YAA2C,EAC3C,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAyDlB;AAED,OAAO,EAAC,kBAAkB,EAAE,KAAK,uBAAuB,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/avatar/avatar-group.tsx"],"sourcesContent":["import * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {\n Children,\n type ComponentProps,\n cloneElement,\n type ReactElement,\n type ReactNode,\n useMemo,\n} from 'react';\nimport {cn} from 'utils/cn';\nimport {TooltipContent, TooltipProvider, TooltipTrigger} from '../tooltip/tooltip';\n\nconst avatarGroupVariants = cva('flex items-start', {\n variants: {\n size: {\n '3xs': '-space-x-4',\n '2xs': '-space-x-4',\n xs: '-space-x-4',\n sm: '-space-x-6',\n md: '-space-x-6',\n lg: '-space-x-6',\n xl: '-space-x-6',\n '2xl': '-space-x-12',\n '3xl': '-space-x-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nconst avatarGroupOverflowVariants = cva(\n 'flex shrink-0 items-center justify-center rounded-full bg-background-components-base text-foreground-neutral-subtle font-medium ring-1 ring-border-neutral-base-component ring-offset-1 ring-offset-background-neutral-base shadow-button-neutral',\n {\n variants: {\n size: {\n '3xs': 'size-[18px] text-[10px] leading-[10px]',\n '2xs': 'size-[20px] text-[11px] leading-[11px]',\n xs: 'size-[24px] text-xs leading-4',\n sm: 'size-[28px] text-xs leading-5',\n md: 'size-[32px] text-sm leading-5',\n lg: 'size-[36px] text-sm leading-5',\n xl: 'size-[40px] text-base leading-6',\n '2xl': 'size-[80px] text-2xl leading-8',\n '3xl': 'size-[120px] text-4xl leading-[56px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\ntype TooltipContentProps = ComponentProps<typeof TooltipContent>;\n\ntype AvatarContainerProps = {\n children: ReactNode;\n zIndex: number;\n tooltipContent?: ReactNode;\n tooltipProps?: Partial<TooltipContentProps>;\n animateOnHover?: boolean;\n};\n\nfunction AvatarContainer({\n children,\n zIndex,\n tooltipContent,\n tooltipProps,\n animateOnHover = false,\n}: AvatarContainerProps) {\n return (\n <TooltipPrimitive.Root>\n <TooltipTrigger asChild>\n <div\n data-slot=\"avatar-container\"\n className={cn(\n 'relative',\n animateOnHover && 'transition-transform duration-300 ease-in-out hover:-translate-y-4',\n )}\n style={{zIndex}}\n >\n {children}\n </div>\n </TooltipTrigger>\n {tooltipContent && (\n <AvatarGroupTooltip {...tooltipProps}>{tooltipContent}</AvatarGroupTooltip>\n )}\n </TooltipPrimitive.Root>\n );\n}\n\nfunction getTooltipContent(children: ReactNode): ReactNode | null {\n const tooltip = Children.toArray(children).find(\n (child) =>\n typeof child === 'object' &&\n child !== null &&\n 'type' in child &&\n child.type === AvatarGroupTooltip,\n ) as ReactElement<ComponentProps<typeof AvatarGroupTooltip>> | undefined;\n\n return tooltip?.props.children || null;\n}\n\ntype AvatarGroupTooltipProps = TooltipContentProps;\n\nfunction AvatarGroupTooltip(props: AvatarGroupTooltipProps) {\n return <TooltipContent {...props} />;\n}\n\ntype AvatarGroupProps = ComponentProps<'div'> &\n VariantProps<typeof avatarGroupVariants> & {\n children: ReactElement[];\n maxVisible?: number;\n animateOnHover?: boolean;\n tooltipProps?: Partial<TooltipContentProps>;\n };\n\nexport function AvatarGroup({\n className,\n size = 'md',\n children,\n maxVisible,\n animateOnHover = false,\n tooltipProps = {side: 'top', sideOffset: 8},\n ...props\n}: AvatarGroupProps) {\n const normalizedSize = size ?? 'md';\n\n const childrenArray = Children.toArray(children) as ReactElement[];\n\n const {visibleCount, visibleAvatars, overflowCount} = useMemo(() => {\n const count =\n maxVisible !== undefined ? Math.min(maxVisible, childrenArray.length) : childrenArray.length;\n return {\n visibleCount: count,\n visibleAvatars: childrenArray.slice(0, count),\n overflowCount: childrenArray.length - count,\n };\n }, [childrenArray, maxVisible]);\n\n return (\n <TooltipProvider delayDuration={0}>\n <div\n className={cn(avatarGroupVariants({size: normalizedSize}), className)}\n data-slot=\"avatar-group\"\n {...props}\n >\n {visibleAvatars.map((child, index) => {\n const zIndex = index + 1;\n const childProps = 'props' in child ? (child.props as {children?: ReactNode}) : {};\n const tooltipContent = getTooltipContent(childProps.children);\n\n return (\n <AvatarContainer\n key={child.key || index}\n zIndex={zIndex}\n tooltipContent={tooltipContent}\n tooltipProps={tooltipProps}\n animateOnHover={animateOnHover}\n >\n {cloneElement(child, {\n ...childProps,\n children: tooltipContent ? undefined : childProps.children,\n } as Partial<typeof childProps>)}\n </AvatarContainer>\n );\n })}\n {overflowCount > 0 && (\n <div\n className={cn(\n 'relative',\n avatarGroupOverflowVariants({size: normalizedSize}),\n 'rounded-full',\n )}\n style={{zIndex: visibleCount + 1}}\n >\n +{overflowCount}\n </div>\n )}\n </div>\n </TooltipProvider>\n );\n}\n\nexport {AvatarGroupTooltip, type AvatarGroupTooltipProps};\n"],"names":["TooltipPrimitive","cva","Children","cloneElement","useMemo","cn","TooltipContent","TooltipProvider","TooltipTrigger","avatarGroupVariants","variants","size","xs","sm","md","lg","xl","defaultVariants","avatarGroupOverflowVariants","AvatarContainer","children","zIndex","tooltipContent","tooltipProps","animateOnHover","Root","asChild","div","data-slot","className","style","AvatarGroupTooltip","getTooltipContent","tooltip","toArray","find","child","type","props","AvatarGroup","maxVisible","side","sideOffset","normalizedSize","childrenArray","visibleCount","visibleAvatars","overflowCount","count","undefined","Math","min","length","slice","delayDuration","map","index","childProps","key"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAC,cAAc,EAAY,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,cAAc;;;8EAyB1B,CAAC;AAqBF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAiBxF,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,MAAM,EACN,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAQnF;AAED,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQvF;AAED,iBAAS,cAAc,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,2CAQ7F;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GACnE,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEJ,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,MAAM,EACN,IAAW,EACX,OAAmB,EACnB,GAAG,EACH,GAAG,EACH,QAAQ,EACR,cAAsB,EACtB,QAAoB,EACpB,aAAa,EACb,GAAG,KAAK,EACT,EAAE,WAAW,2CAwFb;AAED,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/avatar/avatar.tsx"],"sourcesContent":["import * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport type {ComponentProps, ReactNode} from 'react';\nimport {getInitial, getPlaceholderImageUrl} from 'utils';\nimport {cn} from 'utils/cn';\nimport {Icon, type IconName} from '../icon/icon';\n\nexport const avatarVariants = cva(\n 'relative flex shrink-0 overflow-hidden bg-background-button-neutral-default text-foreground-neutral-base ring-1 ring-border-neutral-base-component ring-offset-1 ring-offset-background-neutral-base shadow-button-neutral',\n {\n variants: {\n radius: {\n full: 'rounded-full',\n rounded: 'rounded-6',\n },\n size: {\n '3xs': 'size-[18px]',\n '2xs': 'size-[20px]',\n xs: 'size-[24px]',\n sm: 'size-[28px]',\n md: 'size-[32px]',\n lg: 'size-[36px]',\n xl: 'size-[40px]',\n '2xl': 'size-[80px]',\n '3xl': 'size-[120px]',\n },\n },\n defaultVariants: {\n radius: 'full',\n size: 'md',\n },\n },\n);\n\nconst avatarInnerVariants = cva('flex h-full w-full items-center justify-center', {\n variants: {\n size: {\n '3xs': 'text-[10px] leading-[10px]',\n '2xs': 'text-[11px] leading-[11px]',\n xs: 'text-xs leading-4',\n sm: 'text-xs leading-5',\n md: 'text-sm leading-5',\n lg: 'text-sm leading-5',\n xl: 'text-base leading-6',\n '2xl': 'text-2xl leading-8',\n '3xl': 'text-4xl leading-[56px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type AvatarContent = 'letters' | 'logo' | 'logoPlaceholder' | 'image' | 'upload';\n\nconst UPLOAD_ICON_SIZE_MAP: Record<\n NonNullable<VariantProps<typeof avatarVariants>['size']>,\n string\n> = {\n '3xs': 'size-[10px]',\n '2xs': 'size-[12px]',\n xs: 'size-[14px]',\n sm: 'size-[16px]',\n md: 'size-[18px]',\n lg: 'size-[20px]',\n xl: 'size-[24px]',\n '2xl': 'size-[40px]',\n '3xl': 'size-[60px]',\n} as const;\n\nfunction AvatarRoot({\n className,\n radius,\n size,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root> & VariantProps<typeof avatarVariants>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(avatarVariants({radius, size}), className)}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({className, ...props}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({className, ...props}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-name\"\n className={cn('flex size-full items-center justify-center', className)}\n {...props}\n />\n );\n}\n\nexport type AvatarProps = ComponentProps<typeof AvatarPrimitive.Root> &\n VariantProps<typeof avatarVariants> & {\n content?: AvatarContent;\n src?: string;\n alt?: string;\n fallback?: string;\n animateOnHover?: boolean;\n logoName?: IconName;\n logoClassName?: string;\n };\n\nexport function Avatar({\n className,\n radius,\n size = 'md',\n content = 'letters',\n src,\n alt,\n fallback,\n animateOnHover = false,\n logoName = 'shipfox',\n logoClassName,\n ...props\n}: AvatarProps) {\n const innerClassName =\n 'flex h-full w-full items-center justify-center rounded-inherit relative bg-background-neutral-base dark:bg-background-components-base text-foreground-neutral-subtle';\n\n const renderContent = (): ReactNode => {\n if (content === 'image') {\n const imageSrc = src || getPlaceholderImageUrl(fallback);\n return (\n <>\n <AvatarImage\n src={imageSrc}\n alt={alt || 'Avatar image'}\n className=\"object-scale-down rounded-inherit\"\n />\n <AvatarFallback className={innerClassName}>\n <div\n className={cn(\n 'absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2',\n avatarInnerVariants({size}),\n )}\n >\n <span className=\"font-medium\">{getInitial(fallback)}</span>\n </div>\n </AvatarFallback>\n </>\n );\n }\n\n if (content === 'logo') {\n return (\n <AvatarFallback className={cn(innerClassName, logoClassName ?? 'p-[15%]')}>\n <Icon name={logoName} className=\"h-full w-full\" />\n </AvatarFallback>\n );\n }\n\n if (content === 'logoPlaceholder') {\n return (\n <AvatarFallback className={cn(innerClassName, logoClassName ?? 'p-[15%]')}>\n <Icon\n name={logoName}\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n className=\"h-full w-full opacity-50\"\n />\n </AvatarFallback>\n );\n }\n\n if (content === 'letters') {\n return (\n <AvatarFallback className={innerClassName}>\n <div\n className={cn(\n 'absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2',\n avatarInnerVariants({size}),\n )}\n >\n <span className=\"font-medium\">{getInitial(fallback)}</span>\n </div>\n </AvatarFallback>\n );\n }\n\n if (content === 'upload') {\n const iconSizeClass = UPLOAD_ICON_SIZE_MAP[size as keyof typeof UPLOAD_ICON_SIZE_MAP];\n return (\n <AvatarFallback className={innerClassName}>\n <Icon name=\"imageAdd\" className={cn('text-foreground-neutral-subtle', iconSizeClass)} />\n </AvatarFallback>\n );\n }\n\n return null;\n };\n\n return (\n <AvatarRoot\n className={cn(\n animateOnHover ? 'hover:-translate-y-8 transition-transform duration-300 ease-out' : '',\n className,\n )}\n radius={radius}\n size={size}\n {...props}\n >\n {renderContent()}\n </AvatarRoot>\n );\n}\n\nexport {AvatarRoot, AvatarImage, AvatarFallback};\n"],"names":["AvatarPrimitive","cva","getInitial","getPlaceholderImageUrl","cn","Icon","avatarVariants","variants","radius","full","rounded","size","xs","sm","md","lg","xl","defaultVariants","avatarInnerVariants","UPLOAD_ICON_SIZE_MAP","AvatarRoot","className","props","Root","data-slot","AvatarImage","Image","AvatarFallback","Fallback","Avatar","content","src","alt","fallback","animateOnHover","logoName","logoClassName","innerClassName","renderContent","imageSrc","div","span","name","color","iconSizeClass"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/avatar/avatar.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code} from 'components/typography';\nimport {Avatar} from './avatar';\nimport {AvatarGroup, AvatarGroupTooltip} from './avatar-group';\n\nconst contentOptions = ['letters', 'logo', 'logoPlaceholder', 'image', 'upload'] as const;\nconst radiusOptions = ['full', 'rounded'] as const;\nconst sizeOptions = ['3xs', '2xs', 'xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl'] as const;\nconst logoNameOptions = ['shipfox', 'slack', 'stripe', 'github'] as const;\n\nconst meta = {\n title: 'Components/Avatar',\n component: Avatar,\n tags: ['autodocs'],\n argTypes: {\n content: {\n control: 'select',\n options: contentOptions,\n },\n radius: {\n control: 'select',\n options: radiusOptions,\n },\n size: {\n control: 'select',\n options: sizeOptions,\n },\n fallback: {\n control: 'text',\n },\n src: {\n control: 'text',\n },\n alt: {\n control: 'text',\n },\n logoName: {\n control: 'select',\n options: logoNameOptions,\n description: 'Logo icon name to display when content is \"logo\" or \"logoPlaceholder\"',\n },\n },\n args: {\n content: 'letters',\n radius: 'full',\n size: 'md',\n fallback: 'John Doe',\n logoName: 'shipfox',\n },\n} satisfies Meta<typeof Avatar>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n args: {\n content: 'logo',\n fallback: 'Shipfox',\n },\n\n render: (args) => (\n <div className=\"flex flex-wrap items-end gap-16\">\n {sizeOptions.map((size) => (\n <div key={size} className=\"flex flex-col items-center gap-8\">\n <Avatar {...args} size={size} />\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n {size}\n </Code>\n </div>\n ))}\n </div>\n ),\n};\n\n// AvatarGroup Stories\nconst avatarGroupMeta = {\n title: 'Components/AvatarGroup',\n component: AvatarGroup,\n tags: ['autodocs'],\n argTypes: {\n size: {\n control: 'select',\n options: sizeOptions,\n },\n maxVisible: {\n control: 'number',\n },\n },\n args: {\n size: 'md',\n children: [],\n },\n} satisfies Meta<typeof AvatarGroup>;\n\nexport const AvatarGroupDefault: StoryObj<typeof avatarGroupMeta> = {\n args: {\n children: [],\n },\n render: () => {\n const avatars = [\n {name: 'John Doe', content: 'image'},\n {name: 'Jane Smith', content: 'image'},\n {name: 'Bob Johnson', content: 'image'},\n {name: 'Alice Brown', content: 'image'},\n ] as const;\n\n return (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n Default (without tooltips)\n </Code>\n <AvatarGroup size=\"md\">\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name} />\n ))}\n </AvatarGroup>\n </div>\n </div>\n );\n },\n};\n\nexport const AvatarGroupWithTooltips: StoryObj<typeof avatarGroupMeta> = {\n args: {\n children: [],\n },\n render: () => {\n const avatars = [\n {name: 'John Doe', content: 'image'},\n {name: 'Jane Smith', content: 'image'},\n {name: 'Bob Johnson', content: 'image'},\n {name: 'Alice Brown', content: 'image'},\n {name: 'Carlos Vega', content: 'image'},\n {name: 'Linda Tran', content: 'image'},\n ] as const;\n\n return (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n With Tooltips\n </Code>\n <AvatarGroup size=\"md\">\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name}>\n <AvatarGroupTooltip>{avatar.name}</AvatarGroupTooltip>\n </Avatar>\n ))}\n </AvatarGroup>\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n With Tooltips (maxVisible: 4)\n </Code>\n <AvatarGroup size=\"md\" maxVisible={4}>\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name}>\n <AvatarGroupTooltip>{avatar.name}</AvatarGroupTooltip>\n </Avatar>\n ))}\n </AvatarGroup>\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n With Tooltips and Hover Animation\n </Code>\n <AvatarGroup size=\"md\" maxVisible={4} animateOnHover>\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name}>\n <AvatarGroupTooltip>{avatar.name}</AvatarGroupTooltip>\n </Avatar>\n ))}\n </AvatarGroup>\n </div>\n </div>\n );\n },\n};\n"],"names":["Code","Avatar","AvatarGroup","AvatarGroupTooltip","contentOptions","radiusOptions","sizeOptions","logoNameOptions","meta","title","component","tags","argTypes","content","control","options","radius","size","fallback","src","alt","logoName","description","args","Default","render","div","className","map","variant","avatarGroupMeta","maxVisible","children","AvatarGroupDefault","avatars","name","avatar","AvatarGroupWithTooltips","animateOnHover"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/avatar/index.ts"],"sourcesContent":["export * from './avatar';\nexport * from './avatar-group';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,iBAAiB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,eAAO,MAAM,aAAa;;;;8EAgCzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;AAEzE,KAAK,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,GAC1C,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,KAAK,uBAAuB,GAAG,cAAc,GAAG;IAC9C,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,KAAK,wBAAwB,GAAG,cAAc,GAAG;IAC/C,SAAS,EAAE,QAAQ,CAAC;IACpB,gBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,wBAAwB,GAAG,cAAc,GAAG;IAC/C,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC;IACpB,gBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,uBAAuB,GAAG,cAAc,GAAG;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,iBAAiB,CAAC,EAAE,KAAK,CAAC;IAC1B,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,OAAe,EACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,GAAG,KAAK,EACT,EAAE,UAAU,2CA2CZ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/badge/badge.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const badgeVariants = cva(\n 'inline-flex select-none items-center justify-center font-medium transition-colors shrink-0 leading-20',\n {\n variants: {\n variant: {\n neutral:\n 'bg-tag-neutral-bg text-tag-neutral-text border border-tag-neutral-border hover:bg-tag-neutral-bg-hover',\n info: 'bg-tag-blue-bg text-tag-blue-text border border-tag-blue-border hover:bg-tag-blue-bg-hover',\n feature:\n 'bg-tag-purple-bg text-tag-purple-text border border-tag-purple-border hover:bg-tag-purple-bg-hover',\n success:\n 'bg-tag-success-bg text-tag-success-text border border-tag-success-border hover:bg-tag-success-bg-hover',\n warning:\n 'bg-tag-warning-bg text-tag-warning-text border border-tag-warning-border hover:bg-tag-warning-bg-hover',\n error:\n 'bg-tag-error-bg text-tag-error-text border border-tag-error-border hover:bg-tag-error-bg-hover',\n },\n size: {\n '2xs': 'h-20 px-6 text-xs gap-4',\n xs: 'h-24 px-8 text-xs gap-6',\n },\n radius: {\n default: 'rounded-6',\n rounded: 'rounded-full',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: '2xs',\n radius: 'default',\n },\n },\n);\n\nexport type BadgeVariant = VariantProps<typeof badgeVariants>['variant'];\n\ntype BaseBadgeProps = ComponentProps<'span'> &\n VariantProps<typeof badgeVariants> & {\n asChild?: boolean;\n };\n\ntype BadgePropsWithLeftClick = BaseBadgeProps & {\n iconLeft: IconName;\n onIconLeftClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n iconLeftAriaLabel: string;\n iconRight?: IconName;\n onIconRightClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n iconRightAriaLabel?: string;\n};\n\ntype BadgePropsWithRightClick = BaseBadgeProps & {\n iconRight: IconName;\n onIconRightClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n iconRightAriaLabel: string;\n iconLeft?: IconName;\n onIconLeftClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n iconLeftAriaLabel?: string;\n};\n\ntype BadgePropsWithBothClicks = BaseBadgeProps & {\n iconLeft: IconName;\n onIconLeftClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n iconLeftAriaLabel: string;\n iconRight: IconName;\n onIconRightClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n iconRightAriaLabel: string;\n};\n\ntype BadgePropsWithoutClicks = BaseBadgeProps & {\n iconLeft?: IconName;\n iconRight?: IconName;\n onIconLeftClick?: never;\n onIconRightClick?: never;\n iconLeftAriaLabel?: never;\n iconRightAriaLabel?: never;\n};\n\nexport type BadgeProps =\n | BadgePropsWithLeftClick\n | BadgePropsWithRightClick\n | BadgePropsWithBothClicks\n | BadgePropsWithoutClicks;\n\nexport function Badge({\n className,\n variant,\n size,\n radius,\n asChild = false,\n children,\n iconLeft,\n iconRight,\n onIconLeftClick,\n onIconRightClick,\n iconLeftAriaLabel,\n iconRightAriaLabel,\n ...props\n}: BadgeProps) {\n const Comp = asChild ? Slot : 'span';\n\n const renderIcon = (\n iconName: IconName,\n position: 'left' | 'right',\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void,\n ariaLabel?: string,\n ) => {\n const isInteractive = Boolean(onClick);\n\n if (isInteractive) {\n if (!ariaLabel) {\n // biome-ignore lint/suspicious/noConsole: Development warning for accessibility\n console.warn(\n `Badge: Missing aria-label for interactive ${position} icon. Please provide icon${position === 'left' ? 'Left' : 'Right'}AriaLabel prop.`,\n );\n\n return null;\n }\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className=\"inline-flex items-center justify-center transition-colors shrink-0 hover:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-blue-500\"\n aria-label={ariaLabel}\n >\n <Icon name={iconName} className=\"size-12\" />\n </button>\n );\n }\n\n return <Icon name={iconName} className=\"size-12\" />;\n };\n\n return (\n <Comp className={cn(badgeVariants({variant, size, radius}), className)} {...props}>\n {iconLeft && renderIcon(iconLeft, 'left', onIconLeftClick, iconLeftAriaLabel)}\n {children}\n {iconRight && renderIcon(iconRight, 'right', onIconRightClick, iconRightAriaLabel)}\n </Comp>\n );\n}\n"],"names":["Slot","cva","Icon","cn","badgeVariants","variants","variant","neutral","info","feature","success","warning","error","size","xs","radius","default","rounded","defaultVariants","Badge","className","asChild","children","iconLeft","iconRight","onIconLeftClick","onIconRightClick","iconLeftAriaLabel","iconRightAriaLabel","props","Comp","renderIcon","iconName","position","onClick","ariaLabel","isInteractive","Boolean","console","warn","button","type","aria-label","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,GAAG,QAA0B,2BAA2B;AAChE,SAAQC,IAAI,QAAsB,kBAAkB;AAEpD,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,MAAMC,gBAAgBH,IAC3B,yGACA;IACEI,UAAU;QACRC,SAAS;YACPC,SACE;YACFC,MAAM;YACNC,SACE;YACFC,SACE;YACFC,SACE;YACFC,OACE;QACJ;QACAC,MAAM;YACJ,OAAO;YACPC,IAAI;QACN;QACAC,QAAQ;YACNC,SAAS;YACTC,SAAS;QACX;IACF;IACAC,iBAAiB;QACfZ,SAAS;QACTO,MAAM;QACNE,QAAQ;IACV;AACF,GACA;AAmDF,OAAO,SAASI,MAAM,EACpBC,SAAS,EACTd,OAAO,EACPO,IAAI,EACJE,MAAM,EACNM,UAAU,KAAK,EACfC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,eAAe,EACfC,gBAAgB,EAChBC,iBAAiB,EACjBC,kBAAkB,EAClB,GAAGC,OACQ;IACX,MAAMC,OAAOT,UAAUrB,OAAO;IAE9B,MAAM+B,aAAa,CACjBC,UACAC,UACAC,SACAC;QAEA,MAAMC,gBAAgBC,QAAQH;QAE9B,IAAIE,eAAe;YACjB,IAAI,CAACD,WAAW;gBACd,gFAAgF;gBAChFG,QAAQC,IAAI,CACV,CAAC,0CAA0C,EAAEN,SAAS,0BAA0B,EAAEA,aAAa,SAAS,SAAS,QAAQ,eAAe,CAAC;gBAG3I,OAAO;YACT;YAEA,qBACE,KAACO;gBACCC,MAAK;gBACLP,SAASA;gBACTd,WAAU;gBACVsB,cAAYP;0BAEZ,cAAA,KAACjC;oBAAKyC,MAAMX;oBAAUZ,WAAU;;;QAGtC;QAEA,qBAAO,KAAClB;YAAKyC,MAAMX;YAAUZ,WAAU;;IACzC;IAEA,qBACE,MAACU;QAAKV,WAAWjB,GAAGC,cAAc;YAACE;YAASO;YAAME;QAAM,IAAIK;QAAa,GAAGS,KAAK;;YAC9EN,YAAYQ,WAAWR,UAAU,QAAQE,iBAAiBE;YAC1DL;YACAE,aAAaO,WAAWP,WAAW,SAASE,kBAAkBE;;;AAGrE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/badge/badge.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code} from 'components/typography';\nimport React from 'react';\nimport {Badge, IconBadge, StatusBadge, UserBadge} from '.';\n\nconst meta = {\n title: 'Components/Badge',\n component: Badge,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof Badge>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const AllVariants: Story = {\n render: () => (\n <div className=\"flex flex-col gap-32\">\n {/* STATUS BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Status Badge\n </Code>\n <div className=\"flex gap-16\">\n <StatusBadge variant=\"neutral\">Badge</StatusBadge>\n <StatusBadge variant=\"info\">Badge</StatusBadge>\n <StatusBadge variant=\"feature\">Badge</StatusBadge>\n <StatusBadge variant=\"success\" dotClassName=\"size-5 rounded-full\">\n Badge\n </StatusBadge>\n <StatusBadge variant=\"warning\">Badge</StatusBadge>\n <StatusBadge variant=\"error\">Badge</StatusBadge>\n </div>\n </div>\n\n {/* USER BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n User Badge\n </Code>\n <div className=\"flex gap-16\">\n <UserBadge\n name=\"Thierry Abalea\"\n avatarSrc=\"https://avatars.githubusercontent.com/u/1290899?v=4\"\n />\n <UserBadge\n name=\"Kyle Nguyen\"\n avatarSrc=\"https://avatars.githubusercontent.com/u/89263955?v=4\"\n />\n <UserBadge\n name=\"Noe Charmet\"\n avatarSrc=\"https://avatars.githubusercontent.com/u/59678972?v=4\"\n />\n </div>\n </div>\n\n {/* ICON BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Icon Badge\n </Code>\n <div className=\"flex gap-16\">\n <IconBadge variant=\"neutral\" name=\"homeSmile\" />\n <IconBadge variant=\"info\" name=\"homeSmile\" />\n <IconBadge variant=\"feature\" name=\"homeSmile\" />\n <IconBadge variant=\"success\" name=\"homeSmile\" />\n <IconBadge variant=\"primary\" name=\"homeSmile\" />\n <IconBadge variant=\"error\" name=\"homeSmile\" />\n </div>\n </div>\n\n {/* BADGE - 2XS SIZE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Badge - 2XS Size\n </Code>\n <div className=\"flex flex-col gap-16\">\n {/* Base */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n </div>\n </div>\n\n {/* BADGE - XS SIZE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Badge - XS Size\n </Code>\n <div className=\"flex flex-col gap-16\">\n {/* Base */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n </div>\n </div>\n\n {/* BADGE - ROUNDED */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Badge - Rounded\n </Code>\n <div className=\"flex flex-col gap-16\">\n {/* Base - 2XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n </div>\n\n {/* Base - XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon - 2XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon - XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon - 2XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon - XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n </div>\n </div>\n\n {/* BETA BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Beta Badge\n </Code>\n <div className=\"flex gap-16\">\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\">\n Beta\n </Badge>\n </div>\n </div>\n </div>\n ),\n};\n\n// Interactive badges with click handlers\nfunction InteractiveBadgesComponent() {\n const [tags, setTags] = React.useState(['React', 'TypeScript', 'Next.js', 'Tailwind']);\n\n const removeTag = (tagToRemove: string) => {\n setTags(tags.filter((tag) => tag !== tagToRemove));\n };\n\n return (\n <div className=\"flex flex-col gap-32\">\n {/* Removable tags */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Interactive Badges - Removable Tags\n </Code>\n <div className=\"flex flex-wrap gap-8\">\n {tags.map((tag) => (\n <Badge\n key={tag}\n variant=\"neutral\"\n size=\"xs\"\n radius=\"rounded\"\n iconRight=\"close\"\n onIconRightClick={() => removeTag(tag)}\n iconRightAriaLabel={`Remove ${tag} tag`}\n >\n {tag}\n </Badge>\n ))}\n </div>\n </div>\n\n {/* Different variants with interactive icons */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Interactive Badges - Different Variants\n </Code>\n <div className=\"flex flex-wrap gap-8\">\n <Badge\n variant=\"success\"\n size=\"xs\"\n iconRight=\"close\"\n onIconRightClick={() => alert('Success badge clicked!')}\n iconRightAriaLabel=\"Remove success badge\"\n >\n Completed\n </Badge>\n <Badge\n variant=\"warning\"\n size=\"xs\"\n iconRight=\"close\"\n onIconRightClick={() => alert('Warning badge clicked!')}\n iconRightAriaLabel=\"Remove warning badge\"\n >\n Pending\n </Badge>\n <Badge\n variant=\"error\"\n size=\"xs\"\n iconRight=\"close\"\n onIconRightClick={() => alert('Error badge clicked!')}\n iconRightAriaLabel=\"Remove error badge\"\n >\n Failed\n </Badge>\n </div>\n </div>\n\n {/* Non-interactive icons (static) */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Static Icons (Non-interactive)\n </Code>\n <div className=\"flex flex-wrap gap-8\">\n <Badge variant=\"info\" size=\"xs\" iconLeft=\"info\">\n Information\n </Badge>\n <Badge variant=\"success\" size=\"xs\" iconLeft=\"check\">\n Verified\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" iconLeft=\"money\">\n Premium\n </Badge>\n </div>\n </div>\n </div>\n );\n}\n\nexport const InteractiveBadges: Story = {\n render: () => <InteractiveBadgesComponent />,\n};\n"],"names":["Code","React","Badge","IconBadge","StatusBadge","UserBadge","meta","title","component","parameters","layout","tags","AllVariants","render","div","className","variant","dotClassName","name","avatarSrc","size","iconRight","iconLeft","radius","InteractiveBadgesComponent","setTags","useState","removeTag","tagToRemove","filter","tag","map","onIconRightClick","iconRightAriaLabel","alert","InteractiveBadges"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/icon-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC;AAoBF,wBAAgB,SAAS,CAAC,EAAC,SAAS,EAAE,OAAmB,EAAE,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,2CAazF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/badge/icon-badge.tsx"],"sourcesContent":["import {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type IconBadgeVariant = 'neutral' | 'info' | 'feature' | 'success' | 'primary' | 'error';\n\nexport type IconBadgeProps = ComponentProps<'span'> & {\n variant?: IconBadgeVariant;\n name?: IconName;\n};\n\nconst variantStyles: Record<IconBadgeVariant, string> = {\n neutral: 'bg-tag-neutral-bg border-tag-neutral-border',\n info: 'bg-tag-blue-bg border-tag-blue-border',\n feature: 'bg-tag-purple-bg border-tag-purple-border',\n success: 'bg-tag-success-bg border-tag-success-border',\n primary: 'bg-tag-warning-bg border-tag-warning-border',\n error: 'bg-tag-error-bg border-tag-error-border',\n};\n\nconst iconColorStyles: Record<IconBadgeVariant, string> = {\n neutral: 'text-tag-neutral-icon',\n info: 'text-tag-blue-icon',\n feature: 'text-tag-purple-icon',\n success: 'text-tag-success-icon',\n primary: 'text-tag-warning-icon',\n error: 'text-tag-error-icon',\n};\n\nexport function IconBadge({className, variant = 'neutral', name, ...props}: IconBadgeProps) {\n return (\n <span\n className={cn(\n 'inline-flex size-20 items-center justify-center rounded-6 border',\n variantStyles[variant],\n className,\n )}\n {...props}\n >\n {name && <Icon name={name} className={cn('shrink-0', iconColorStyles[variant])} size={12} />}\n </span>\n );\n}\n"],"names":["Icon","cn","variantStyles","neutral","info","feature","success","primary","error","iconColorStyles","IconBadge","className","variant","name","props","span","size"],"mappings":";AAAA,SAAQA,IAAI,QAAsB,kBAAkB;AAEpD,SAAQC,EAAE,QAAO,WAAW;AAS5B,MAAMC,gBAAkD;IACtDC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO;AACT;AAEA,MAAMC,kBAAoD;IACxDN,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO;AACT;AAEA,OAAO,SAASE,UAAU,EAACC,SAAS,EAAEC,UAAU,SAAS,EAAEC,IAAI,EAAE,GAAGC,OAAsB;IACxF,qBACE,KAACC;QACCJ,WAAWV,GACT,oEACAC,aAAa,CAACU,QAAQ,EACtBD;QAED,GAAGG,KAAK;kBAERD,sBAAQ,KAACb;YAAKa,MAAMA;YAAMF,WAAWV,GAAG,YAAYQ,eAAe,CAACG,QAAQ;YAAGI,MAAM;;;AAG5F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/badge/index.ts"],"sourcesContent":["export * from './badge';\nexport * from './icon-badge';\nexport * from './status-badge';\nexport * from './user-badge';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,iBAAiB;AAC/B,cAAc,eAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/status-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAI1C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAWtF,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,OAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAgBlB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/badge/status-badge.tsx"],"sourcesContent":["import type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\nimport {badgeVariants} from './badge';\n\nexport type StatusBadgeProps = ComponentProps<'span'> & {\n variant?: StatusVariant;\n dotClassName?: string;\n};\n\ntype StatusVariant = 'neutral' | 'info' | 'feature' | 'success' | 'warning' | 'error';\n\nconst dotVariantStyles: Record<StatusVariant, string> = {\n neutral: 'bg-tag-neutral-icon',\n info: 'bg-tag-blue-icon',\n feature: 'bg-tag-purple-icon',\n success: 'bg-tag-success-icon',\n warning: 'bg-tag-warning-icon',\n error: 'bg-tag-error-icon',\n};\n\nexport function StatusBadge({\n className,\n variant = 'neutral',\n children,\n dotClassName,\n ...props\n}: StatusBadgeProps) {\n return (\n <span\n className={cn(badgeVariants({variant, size: '2xs', radius: 'default'}), 'gap-6', className)}\n {...props}\n >\n <span\n className={cn(\n 'size-8.5 rounded-2 shrink-0',\n dotVariantStyles[variant as StatusVariant],\n dotClassName,\n )}\n />\n {children}\n </span>\n );\n}\n"],"names":["cn","badgeVariants","dotVariantStyles","neutral","info","feature","success","warning","error","StatusBadge","className","variant","children","dotClassName","props","span","size","radius"],"mappings":";AACA,SAAQA,EAAE,QAAO,WAAW;AAC5B,SAAQC,aAAa,QAAO,UAAU;AAStC,MAAMC,mBAAkD;IACtDC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO;AACT;AAEA,OAAO,SAASC,YAAY,EAC1BC,SAAS,EACTC,UAAU,SAAS,EACnBC,QAAQ,EACRC,YAAY,EACZ,GAAGC,OACc;IACjB,qBACE,MAACC;QACCL,WAAWV,GAAGC,cAAc;YAACU;YAASK,MAAM;YAAOC,QAAQ;QAAS,IAAI,SAASP;QAChF,GAAGI,KAAK;;0BAET,KAACC;gBACCL,WAAWV,GACT,+BACAE,gBAAgB,CAACS,QAAyB,EAC1CE;;YAGHD;;;AAGP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/user-badge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,2CAuB/F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/badge/user-badge.tsx"],"sourcesContent":["import {Avatar} from 'components/avatar';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type UserBadgeProps = ComponentProps<'button'> & {\n name: string;\n avatarSrc?: string;\n avatarFallback?: string;\n};\n\nexport function UserBadge({className, name, avatarSrc, avatarFallback, ...props}: UserBadgeProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n 'inline-flex items-center gap-6 rounded-full px-6 py-2 text-xs font-medium leading-20',\n 'bg-background-components-base hover:bg-background-components-hover active:bg-background-components-pressed',\n 'text-foreground-neutral-base transition-colors',\n 'border border-border-neutral-base-component',\n 'h-28',\n className,\n )}\n {...props}\n >\n <Avatar\n className=\"size-16 shrink-0\"\n content=\"image\"\n src={avatarSrc}\n fallback={avatarFallback}\n />\n <span className=\"whitespace-nowrap\">{name}</span>\n </button>\n );\n}\n"],"names":["Avatar","cn","UserBadge","className","name","avatarSrc","avatarFallback","props","button","type","content","src","fallback","span"],"mappings":";AAAA,SAAQA,MAAM,QAAO,oBAAoB;AAEzC,SAAQC,EAAE,QAAO,WAAW;AAQ5B,OAAO,SAASC,UAAU,EAACC,SAAS,EAAEC,IAAI,EAAEC,SAAS,EAAEC,cAAc,EAAE,GAAGC,OAAsB;IAC9F,qBACE,MAACC;QACCC,MAAK;QACLN,WAAWF,GACT,wFACA,8GACA,kDACA,+CACA,QACAE;QAED,GAAGI,KAAK;;0BAET,KAACP;gBACCG,WAAU;gBACVO,SAAQ;gBACRC,KAAKN;gBACLO,UAAUN;;0BAEZ,KAACO;gBAAKV,WAAU;0BAAqBC;;;;AAG3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-link.d.ts","sourceRoot":"","sources":["../../../src/components/button/button-link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,eAAO,MAAM,kBAAkB;;;;8EA8B9B,CAAC;AASF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,OAAO,EACP,IAAW,EACX,SAAS,EACT,OAAe,EACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,GAAG,CAAC,GACpB,YAAY,CAAC,OAAO,kBAAkB,CAAC,GAAG;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,2CAeF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/button/button-link.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const buttonLinkVariants = cva(\n 'inline-flex items-center justify-center gap-4 whitespace-nowrap transition-colors cursor-pointer disabled:pointer-events-none outline-none font-medium',\n {\n variants: {\n variant: {\n base: 'text-foreground-neutral-base hover:text-foreground-neutral-base focus-visible:text-foreground-neutral-base disabled:text-foreground-neutral-disabled',\n interactive:\n 'text-foreground-highlight-interactive hover:text-foreground-highlight-interactive-hover focus-visible:text-foreground-highlight-interactive disabled:text-foreground-neutral-disabled',\n muted:\n 'text-foreground-neutral-muted hover:text-foreground-neutral-base focus-visible:text-foreground-neutral-base disabled:text-foreground-neutral-disabled',\n subtle:\n 'text-foreground-neutral-subtle hover:text-foreground-neutral-base focus-visible:text-foreground-neutral-base disabled:text-foreground-neutral-disabled',\n },\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-md',\n xl: 'text-xl',\n },\n underline: {\n true: 'underline decoration-solid [text-underline-position:from-font]',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'base',\n size: 'sm',\n underline: false,\n },\n },\n);\n\nconst iconSizeMap = {\n xs: 14,\n sm: 14,\n md: 16,\n xl: 20,\n} as const;\n\nexport function ButtonLink({\n className,\n variant,\n size = 'sm',\n underline,\n asChild = false,\n children,\n iconLeft,\n iconRight,\n ...props\n}: ComponentProps<'a'> &\n VariantProps<typeof buttonLinkVariants> & {\n asChild?: boolean;\n iconLeft?: IconName;\n iconRight?: IconName;\n }) {\n const Comp = asChild ? Slot : 'a';\n const iconSize = iconSizeMap[size as keyof typeof iconSizeMap];\n\n return (\n <Comp\n data-slot=\"button-link\"\n className={cn(buttonLinkVariants({variant, size, underline, className}))}\n {...props}\n >\n {iconLeft && <Icon name={iconLeft} size={iconSize} />}\n {children}\n {iconRight && <Icon name={iconRight} size={iconSize} />}\n </Comp>\n );\n}\n"],"names":["Slot","cva","Icon","cn","buttonLinkVariants","variants","variant","base","interactive","muted","subtle","size","xs","sm","md","xl","underline","true","false","defaultVariants","iconSizeMap","ButtonLink","className","asChild","children","iconLeft","iconRight","props","Comp","iconSize","data-slot","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,GAAG,QAA0B,2BAA2B;AAChE,SAAQC,IAAI,QAAsB,kBAAkB;AAEpD,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,MAAMC,qBAAqBH,IAChC,0JACA;IACEI,UAAU;QACRC,SAAS;YACPC,MAAM;YACNC,aACE;YACFC,OACE;YACFC,QACE;QACJ;QACAC,MAAM;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;QACN;QACAC,WAAW;YACTC,MAAM;YACNC,OAAO;QACT;IACF;IACAC,iBAAiB;QACfb,SAAS;QACTK,MAAM;QACNK,WAAW;IACb;AACF,GACA;AAEF,MAAMI,cAAc;IAClBR,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;AACN;AAEA,OAAO,SAASM,WAAW,EACzBC,SAAS,EACThB,OAAO,EACPK,OAAO,IAAI,EACXK,SAAS,EACTO,UAAU,KAAK,EACfC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACT,GAAGC,OAMF;IACD,MAAMC,OAAOL,UAAUvB,OAAO;IAC9B,MAAM6B,WAAWT,WAAW,CAACT,KAAiC;IAE9D,qBACE,MAACiB;QACCE,aAAU;QACVR,WAAWnB,GAAGC,mBAAmB;YAACE;YAASK;YAAMK;YAAWM;QAAS;QACpE,GAAGK,KAAK;;YAERF,0BAAY,KAACvB;gBAAK6B,MAAMN;gBAAUd,MAAMkB;;YACxCL;YACAE,2BAAa,KAACxB;gBAAK6B,MAAML;gBAAWf,MAAMkB;;;;AAGjD"}
|