@shipfox/react-ui 0.15.0 → 0.17.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/button-group/button-group.stories.js +4 -4
- package/dist/components/card/card.d.ts +24 -0
- package/dist/components/card/card.js +56 -0
- package/dist/components/card/card.stories.js +216 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/index.js +3 -0
- package/dist/components/dashboard/components/charts/bar-chart.d.ts +30 -0
- package/dist/components/dashboard/components/charts/bar-chart.js +150 -0
- package/dist/components/dashboard/components/charts/bar-chart.stories.js +287 -0
- package/dist/components/dashboard/components/charts/chart-tooltip.d.ts +14 -0
- package/dist/components/dashboard/components/charts/chart-tooltip.js +46 -0
- package/dist/components/dashboard/components/charts/colors.d.ts +12 -0
- package/dist/components/dashboard/components/charts/colors.js +20 -0
- package/dist/components/dashboard/components/charts/index.d.ts +6 -0
- package/dist/components/dashboard/components/charts/index.js +7 -0
- package/dist/components/dashboard/components/charts/line-chart.d.ts +28 -0
- package/dist/components/dashboard/components/charts/line-chart.js +152 -0
- package/dist/components/dashboard/components/charts/line-chart.stories.js +257 -0
- package/dist/components/dashboard/components/charts/utils.d.ts +13 -0
- package/dist/components/dashboard/components/charts/utils.js +18 -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-sidebar.d.ts +19 -0
- package/dist/components/dashboard/components/mobile-sidebar.js +50 -0
- package/dist/components/dashboard/components/organization-selector.d.ts +24 -1
- package/dist/components/dashboard/components/organization-selector.js +93 -70
- package/dist/components/dashboard/components/sidebar.d.ts +24 -0
- package/dist/components/dashboard/components/sidebar.js +218 -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 +27 -1
- package/dist/components/dashboard/dashboard.js +76 -36
- 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 +25 -1
- package/dist/components/dashboard/index.js +22 -1
- 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/empty-state/empty-state.d.ts +10 -0
- package/dist/components/empty-state/empty-state.js +40 -0
- package/dist/components/empty-state/empty-state.stories.js +74 -0
- package/dist/components/empty-state/index.d.ts +2 -0
- package/dist/components/empty-state/index.js +3 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +4 -0
- package/dist/components/modal/modal.js +3 -3
- package/dist/components/search/search-inline.js +1 -1
- package/dist/components/search/search-modal.js +13 -7
- package/dist/components/select/select.d.ts +3 -1
- package/dist/components/select/select.js +2 -1
- 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/table/data-table.d.ts +19 -2
- package/dist/components/table/data-table.js +89 -72
- package/dist/components/table/table.js +1 -1
- package/dist/components/table/table.stories.components.js +6 -28
- package/dist/styles.css +1 -1
- package/package.json +12 -4
- package/.storybook/main.ts +0 -35
- package/.storybook/preview.tsx +0 -66
- 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 -114
- 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/button-group/button-group.d.ts.map +0 -1
- package/dist/components/button-group/button-group.js.map +0 -1
- package/dist/components/button-group/button-group.stories.js.map +0 -1
- package/dist/components/button-group/index.d.ts.map +0 -1
- package/dist/components/button-group/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/command/command.d.ts.map +0 -1
- package/dist/components/command/command.js.map +0 -1
- package/dist/components/command/command.stories.js.map +0 -1
- package/dist/components/command/index.d.ts.map +0 -1
- package/dist/components/command/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/dashboard/components/analytics-content.d.ts +0 -2
- package/dist/components/dashboard/components/analytics-content.d.ts.map +0 -1
- package/dist/components/dashboard/components/analytics-content.js +0 -180
- package/dist/components/dashboard/components/analytics-content.js.map +0 -1
- package/dist/components/dashboard/components/animated-logo.d.ts.map +0 -1
- package/dist/components/dashboard/components/animated-logo.js.map +0 -1
- package/dist/components/dashboard/components/complete-setup-button.d.ts.map +0 -1
- package/dist/components/dashboard/components/complete-setup-button.js.map +0 -1
- package/dist/components/dashboard/components/jobs-content.d.ts +0 -2
- package/dist/components/dashboard/components/jobs-content.d.ts.map +0 -1
- package/dist/components/dashboard/components/jobs-content.js +0 -69
- package/dist/components/dashboard/components/jobs-content.js.map +0 -1
- package/dist/components/dashboard/components/mobile-menu.d.ts.map +0 -1
- package/dist/components/dashboard/components/mobile-menu.js.map +0 -1
- package/dist/components/dashboard/components/organization-selector.d.ts.map +0 -1
- package/dist/components/dashboard/components/organization-selector.js.map +0 -1
- package/dist/components/dashboard/components/top-menu.d.ts.map +0 -1
- package/dist/components/dashboard/components/top-menu.js.map +0 -1
- package/dist/components/dashboard/components/topbar-button.d.ts.map +0 -1
- package/dist/components/dashboard/components/topbar-button.js.map +0 -1
- package/dist/components/dashboard/components/topbar.d.ts.map +0 -1
- package/dist/components/dashboard/components/topbar.js.map +0 -1
- package/dist/components/dashboard/components/user-profile.d.ts.map +0 -1
- package/dist/components/dashboard/components/user-profile.js.map +0 -1
- package/dist/components/dashboard/dashboard.d.ts.map +0 -1
- package/dist/components/dashboard/dashboard.js.map +0 -1
- package/dist/components/dashboard/dashboard.stories.js.map +0 -1
- package/dist/components/dashboard/index.d.ts.map +0 -1
- package/dist/components/dashboard/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/kbd/index.d.ts.map +0 -1
- package/dist/components/kbd/index.js.map +0 -1
- package/dist/components/kbd/kbd.d.ts.map +0 -1
- package/dist/components/kbd/kbd.js.map +0 -1
- package/dist/components/kbd/kbd.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/search/index.d.ts.map +0 -1
- package/dist/components/search/index.js.map +0 -1
- package/dist/components/search/search-context.d.ts.map +0 -1
- package/dist/components/search/search-context.js.map +0 -1
- package/dist/components/search/search-inline.d.ts.map +0 -1
- package/dist/components/search/search-inline.js.map +0 -1
- package/dist/components/search/search-modal.d.ts.map +0 -1
- package/dist/components/search/search-modal.js.map +0 -1
- package/dist/components/search/search-trigger.d.ts.map +0 -1
- package/dist/components/search/search-trigger.js.map +0 -1
- package/dist/components/search/search-variants.d.ts.map +0 -1
- package/dist/components/search/search-variants.js.map +0 -1
- package/dist/components/search/search.d.ts.map +0 -1
- package/dist/components/search/search.js.map +0 -1
- package/dist/components/search/search.stories.js.map +0 -1
- package/dist/components/select/index.d.ts.map +0 -1
- package/dist/components/select/index.js.map +0 -1
- package/dist/components/select/select.d.ts.map +0 -1
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/select/select.stories.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/skeleton/index.d.ts.map +0 -1
- package/dist/components/skeleton/index.js.map +0 -1
- package/dist/components/skeleton/skeleton.d.ts.map +0 -1
- package/dist/components/skeleton/skeleton.js.map +0 -1
- package/dist/components/skeleton/skeleton.stories.js.map +0 -1
- package/dist/components/table/data-table.d.ts.map +0 -1
- package/dist/components/table/data-table.js.map +0 -1
- package/dist/components/table/index.d.ts.map +0 -1
- package/dist/components/table/index.js.map +0 -1
- package/dist/components/table/table-column-header.d.ts.map +0 -1
- package/dist/components/table/table-column-header.js.map +0 -1
- package/dist/components/table/table-pagination.d.ts.map +0 -1
- package/dist/components/table/table-pagination.js.map +0 -1
- package/dist/components/table/table.d.ts.map +0 -1
- package/dist/components/table/table.js.map +0 -1
- package/dist/components/table/table.stories.columns.d.ts.map +0 -1
- package/dist/components/table/table.stories.columns.js.map +0 -1
- package/dist/components/table/table.stories.components.d.ts.map +0 -1
- package/dist/components/table/table.stories.components.js.map +0 -1
- package/dist/components/table/table.stories.data.d.ts.map +0 -1
- package/dist/components/table/table.stories.data.js.map +0 -1
- package/dist/components/table/table.stories.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 -1018
- 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/button-group/button-group.stories.tsx +0 -361
- package/src/components/button-group/button-group.tsx +0 -111
- package/src/components/button-group/index.ts +0 -1
- 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 -197
- 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/command/command.stories.tsx +0 -133
- package/src/components/command/command.tsx +0 -265
- package/src/components/command/index.ts +0 -1
- 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/dashboard/components/analytics-content.tsx +0 -102
- package/src/components/dashboard/components/animated-logo.tsx +0 -25
- package/src/components/dashboard/components/complete-setup-button.tsx +0 -30
- package/src/components/dashboard/components/jobs-content.tsx +0 -51
- package/src/components/dashboard/components/mobile-menu.tsx +0 -50
- package/src/components/dashboard/components/organization-selector.tsx +0 -51
- package/src/components/dashboard/components/top-menu.tsx +0 -26
- package/src/components/dashboard/components/topbar-button.tsx +0 -27
- package/src/components/dashboard/components/topbar.tsx +0 -40
- package/src/components/dashboard/components/user-profile.tsx +0 -90
- package/src/components/dashboard/dashboard.stories.tsx +0 -25
- package/src/components/dashboard/dashboard.tsx +0 -61
- package/src/components/dashboard/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 -505
- 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 -36
- 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/kbd/index.ts +0 -1
- package/src/components/kbd/kbd.stories.tsx +0 -64
- package/src/components/kbd/kbd.tsx +0 -32
- 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/search/index.ts +0 -28
- package/src/components/search/search-context.tsx +0 -78
- package/src/components/search/search-inline.tsx +0 -107
- package/src/components/search/search-modal.tsx +0 -198
- package/src/components/search/search-trigger.tsx +0 -47
- package/src/components/search/search-variants.ts +0 -88
- package/src/components/search/search.stories.tsx +0 -392
- package/src/components/search/search.tsx +0 -47
- package/src/components/select/index.ts +0 -1
- package/src/components/select/select.stories.tsx +0 -207
- package/src/components/select/select.tsx +0 -220
- package/src/components/shiny-text/index.ts +0 -1
- package/src/components/shiny-text/shiny-text.tsx +0 -21
- package/src/components/skeleton/index.ts +0 -1
- package/src/components/skeleton/skeleton.stories.tsx +0 -178
- package/src/components/skeleton/skeleton.tsx +0 -14
- package/src/components/table/data-table.tsx +0 -254
- package/src/components/table/index.ts +0 -5
- package/src/components/table/table-column-header.tsx +0 -141
- package/src/components/table/table-pagination.tsx +0 -161
- package/src/components/table/table.stories.columns.tsx +0 -198
- package/src/components/table/table.stories.components.tsx +0 -104
- package/src/components/table/table.stories.data.ts +0 -117
- package/src/components/table/table.stories.tsx +0 -256
- package/src/components/table/table.tsx +0 -95
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-inline.d.ts","sourceRoot":"","sources":["../../../src/components/search/search-inline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,GACnE,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEJ,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAmFnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search/search-inline.tsx"],"sourcesContent":["import type {VariantProps} from 'class-variance-authority';\nimport type {ComponentProps} from 'react';\nimport {useCallback, useRef, useState} from 'react';\nimport {cn} from 'utils/cn';\nimport {Icon} from '../icon';\nimport {searchInputVariants} from './search-variants';\n\nexport type SearchInlineProps = Omit<ComponentProps<'input'>, 'size'> &\n VariantProps<typeof searchInputVariants> & {\n showClearButton?: boolean;\n onClear?: () => void;\n };\n\nexport function SearchInline({\n className,\n variant,\n size,\n radius,\n value,\n onChange,\n onClear,\n showClearButton = true,\n ...props\n}: SearchInlineProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const [internalValue, setInternalValue] = useState('');\n const isControlled = value !== undefined;\n const inputValue = isControlled ? value : internalValue;\n const hasValue = Boolean(inputValue);\n const isSmall = size === 'small';\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(e.target.value);\n }\n onChange?.(e);\n },\n [isControlled, onChange],\n );\n\n const handleClear = useCallback(() => {\n if (!isControlled) {\n setInternalValue('');\n }\n\n if (onChange && inputRef.current) {\n inputRef.current.value = '';\n const syntheticEvent = {\n target: inputRef.current,\n currentTarget: inputRef.current,\n } as React.ChangeEvent<HTMLInputElement>;\n onChange(syntheticEvent);\n }\n onClear?.();\n inputRef.current?.focus();\n }, [isControlled, onChange, onClear]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape' && hasValue) {\n e.preventDefault();\n handleClear();\n }\n },\n [hasValue, handleClear],\n );\n\n return (\n <div\n data-slot=\"search-inline\"\n className={cn(searchInputVariants({variant, size, radius}), className)}\n >\n <Icon\n name=\"searchLine\"\n className={cn('shrink-0 text-foreground-neutral-muted', isSmall ? 'size-14' : 'size-16')}\n />\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n className={cn(\n 'flex-1 bg-transparent outline-none min-w-0',\n 'text-foreground-neutral-base',\n 'placeholder:text-foreground-neutral-muted',\n 'disabled:cursor-not-allowed disabled:text-foreground-neutral-disabled',\n )}\n {...props}\n />\n {showClearButton && hasValue && (\n <button\n type=\"button\"\n onClick={handleClear}\n className={cn(\n 'shrink-0 cursor-pointer rounded-4 p-2 -mx-2',\n 'text-foreground-neutral-muted hover:text-foreground-neutral-subtle transition-colors',\n )}\n aria-label=\"Clear search\"\n >\n <Icon name=\"closeLine\" className=\"size-16\" />\n </button>\n )}\n </div>\n );\n}\n"],"names":["useCallback","useRef","useState","cn","Icon","searchInputVariants","SearchInline","className","variant","size","radius","value","onChange","onClear","showClearButton","props","inputRef","internalValue","setInternalValue","isControlled","undefined","inputValue","hasValue","Boolean","isSmall","handleChange","e","target","handleClear","current","syntheticEvent","currentTarget","focus","handleKeyDown","key","preventDefault","div","data-slot","name","input","ref","type","onKeyDown","button","onClick","aria-label"],"mappings":";AAEA,SAAQA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAO,QAAQ;AACpD,SAAQC,EAAE,QAAO,WAAW;AAC5B,SAAQC,IAAI,QAAO,UAAU;AAC7B,SAAQC,mBAAmB,QAAO,oBAAoB;AAQtD,OAAO,SAASC,aAAa,EAC3BC,SAAS,EACTC,OAAO,EACPC,IAAI,EACJC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,kBAAkB,IAAI,EACtB,GAAGC,OACe;IAClB,MAAMC,WAAWf,OAAyB;IAC1C,MAAM,CAACgB,eAAeC,iBAAiB,GAAGhB,SAAS;IACnD,MAAMiB,eAAeR,UAAUS;IAC/B,MAAMC,aAAaF,eAAeR,QAAQM;IAC1C,MAAMK,WAAWC,QAAQF;IACzB,MAAMG,UAAUf,SAAS;IAEzB,MAAMgB,eAAezB,YACnB,CAAC0B;QACC,IAAI,CAACP,cAAc;YACjBD,iBAAiBQ,EAAEC,MAAM,CAAChB,KAAK;QACjC;QACAC,WAAWc;IACb,GACA;QAACP;QAAcP;KAAS;IAG1B,MAAMgB,cAAc5B,YAAY;QAC9B,IAAI,CAACmB,cAAc;YACjBD,iBAAiB;QACnB;QAEA,IAAIN,YAAYI,SAASa,OAAO,EAAE;YAChCb,SAASa,OAAO,CAAClB,KAAK,GAAG;YACzB,MAAMmB,iBAAiB;gBACrBH,QAAQX,SAASa,OAAO;gBACxBE,eAAef,SAASa,OAAO;YACjC;YACAjB,SAASkB;QACX;QACAjB;QACAG,SAASa,OAAO,EAAEG;IACpB,GAAG;QAACb;QAAcP;QAAUC;KAAQ;IAEpC,MAAMoB,gBAAgBjC,YACpB,CAAC0B;QACC,IAAIA,EAAEQ,GAAG,KAAK,YAAYZ,UAAU;YAClCI,EAAES,cAAc;YAChBP;QACF;IACF,GACA;QAACN;QAAUM;KAAY;IAGzB,qBACE,MAACQ;QACCC,aAAU;QACV9B,WAAWJ,GAAGE,oBAAoB;YAACG;YAASC;YAAMC;QAAM,IAAIH;;0BAE5D,KAACH;gBACCkC,MAAK;gBACL/B,WAAWJ,GAAG,0CAA0CqB,UAAU,YAAY;;0BAEhF,KAACe;gBACCC,KAAKxB;gBACLyB,MAAK;gBACL9B,OAAOU;gBACPT,UAAUa;gBACViB,WAAWT;gBACX1B,WAAWJ,GACT,8CACA,gCACA,6CACA;gBAED,GAAGY,KAAK;;YAEVD,mBAAmBQ,0BAClB,KAACqB;gBACCF,MAAK;gBACLG,SAAShB;gBACTrB,WAAWJ,GACT,+CACA;gBAEF0C,cAAW;0BAEX,cAAA,KAACzC;oBAAKkC,MAAK;oBAAY/B,WAAU;;;;;AAK3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-modal.d.ts","sourceRoot":"","sources":["../../../src/components/search/search-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAKrD,OAAO,EAAiC,KAAK,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAGtF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;AAErD,wBAAgB,aAAa,CAAC,EAC5B,UAAiC,EACjC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,2CA8BpB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,EAC7C,OAAO,GAAG,eAAe,CAC1B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,2CAsBlE;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAE3E,wBAAgB,UAAU,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,2CAYhE;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAE7E,wBAAgB,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,2CAQlE;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAE7E,wBAAgB,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,2CAelE;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,2CAsB7F;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAErF,wBAAgB,eAAe,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,oBAAoB,2CAQ1E;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEtD,wBAAgB,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,2CA0BpE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search/search-modal.tsx"],"sourcesContent":["import {Command as CommandPrimitive} from 'cmdk';\nimport type {ComponentProps, ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {cn} from 'utils/cn';\nimport {Icon} from '../icon';\nimport {Kbd} from '../kbd';\nimport {Modal, ModalBody, ModalContent, type ModalContentProps} from '../modal/modal';\nimport {useSearchContext} from './search-context';\n\nexport type SearchContentProps = {\n breakpoint?: string;\n} & Omit<ModalContentProps, 'open' | 'onOpenChange'>;\n\nexport function SearchContent({\n breakpoint = '(min-width: 768px)',\n className,\n children,\n overlayClassName,\n onEscapeKeyDown,\n ...props\n}: SearchContentProps) {\n const {open, setOpen, searchValue, setSearchValue} = useSearchContext();\n\n const handleEscapeKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (searchValue) {\n event.preventDefault();\n setSearchValue('');\n } else {\n onEscapeKeyDown?.(event);\n }\n },\n [searchValue, setSearchValue, onEscapeKeyDown],\n );\n\n return (\n <Modal open={open} onOpenChange={setOpen} breakpoint={breakpoint}>\n <ModalContent\n data-slot=\"search-content\"\n className={cn('top-[15%]! translate-y-0!', className)}\n overlayClassName={cn('backdrop-blur-sm', overlayClassName)}\n onEscapeKeyDown={handleEscapeKeyDown}\n {...props}\n >\n <ModalBody className=\"flex flex-col p-0 min-h-0 overflow-hidden md:overflow-clip\">\n {children}\n </ModalBody>\n </ModalContent>\n </Modal>\n );\n}\n\nexport type SearchInputProps = Omit<\n ComponentProps<typeof CommandPrimitive.Input>,\n 'value' | 'onValueChange'\n>;\n\nexport function SearchInput({className, ...props}: SearchInputProps) {\n const {open, searchValue, setSearchValue} = useSearchContext();\n\n return (\n <div className=\"w-full shrink-0 flex items-center gap-8 border-b border-border-neutral-strong px-16 py-12\">\n <Icon name=\"searchLine\" className=\"size-16 shrink-0 text-foreground-neutral-muted\" />\n <CommandPrimitive.Input\n data-slot=\"search-input\"\n autoFocus={open}\n value={searchValue}\n onValueChange={setSearchValue}\n className={cn(\n 'flex-1 bg-transparent text-sm leading-20 outline-none',\n 'placeholder:text-foreground-neutral-muted',\n 'disabled:cursor-not-allowed disabled:text-foreground-neutral-disabled',\n className,\n )}\n {...props}\n />\n <Kbd>Esc</Kbd>\n </div>\n );\n}\n\nexport type SearchListProps = ComponentProps<typeof CommandPrimitive.List>;\n\nexport function SearchList({className, ...props}: SearchListProps) {\n return (\n <CommandPrimitive.List\n data-slot=\"search-list\"\n className={cn(\n 'flex-1 min-h-0 w-full overflow-y-auto overflow-x-hidden px-8 py-4 scrollbar',\n 'md:max-h-400',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SearchEmptyProps = ComponentProps<typeof CommandPrimitive.Empty>;\n\nexport function SearchEmpty({className, ...props}: SearchEmptyProps) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"search-empty\"\n className={cn('py-32 text-center text-sm text-foreground-neutral-muted', className)}\n {...props}\n />\n );\n}\n\nexport type SearchGroupProps = ComponentProps<typeof CommandPrimitive.Group>;\n\nexport function SearchGroup({className, ...props}: SearchGroupProps) {\n return (\n <CommandPrimitive.Group\n data-slot=\"search-group\"\n className={cn(\n 'overflow-hidden',\n '[&_[cmdk-group-heading]]:px-8 [&_[cmdk-group-heading]]:py-4',\n '[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:leading-20',\n '[&_[cmdk-group-heading]]:text-foreground-neutral-subtle',\n '[&_[cmdk-group-heading]]:select-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SearchItemProps = ComponentProps<typeof CommandPrimitive.Item> & {\n icon?: ReactNode;\n description?: string;\n};\n\nexport function SearchItem({className, children, icon, description, ...props}: SearchItemProps) {\n return (\n <CommandPrimitive.Item\n data-slot=\"search-item\"\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-12 rounded-8 p-8',\n 'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',\n 'aria-selected:bg-background-components-hover aria-selected:text-foreground-neutral-base',\n 'data-[disabled=true]:pointer-events-none data-[disabled=true]:text-foreground-neutral-disabled',\n className,\n )}\n {...props}\n >\n {icon && <span className=\"shrink-0 text-foreground-neutral-muted\">{icon}</span>}\n <div className=\"flex-1 min-w-0\">\n <div className=\"truncate\">{children}</div>\n {description && (\n <div className=\"truncate text-xs text-foreground-neutral-muted\">{description}</div>\n )}\n </div>\n </CommandPrimitive.Item>\n );\n}\n\nexport type SearchSeparatorProps = ComponentProps<typeof CommandPrimitive.Separator>;\n\nexport function SearchSeparator({className, ...props}: SearchSeparatorProps) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"search-separator\"\n className={cn('my-8 h-px bg-border-neutral-base', className)}\n {...props}\n />\n );\n}\n\nexport type SearchFooterProps = ComponentProps<'div'>;\n\nexport function SearchFooter({className, ...props}: SearchFooterProps) {\n return (\n <div\n data-slot=\"search-footer\"\n className={cn(\n 'w-full shrink-0 flex items-center justify-end gap-12 px-16 py-12',\n 'border-t border-border-neutral-strong',\n 'bg-background-components-base',\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center gap-8\">\n <span className=\"text-xs font-medium text-foreground-neutral-subtle\">Navigation</span>\n <div className=\"flex items-center gap-4\">\n <Kbd>↓</Kbd>\n <Kbd>↑</Kbd>\n </div>\n </div>\n <div className=\"h-12 w-px bg-border-neutral-strong\" />\n <div className=\"flex items-center gap-8\">\n <span className=\"text-xs font-medium text-foreground-neutral-subtle\">Open result</span>\n <Kbd>↵</Kbd>\n </div>\n </div>\n );\n}\n"],"names":["Command","CommandPrimitive","useCallback","cn","Icon","Kbd","Modal","ModalBody","ModalContent","useSearchContext","SearchContent","breakpoint","className","children","overlayClassName","onEscapeKeyDown","props","open","setOpen","searchValue","setSearchValue","handleEscapeKeyDown","event","preventDefault","onOpenChange","data-slot","SearchInput","div","name","Input","autoFocus","value","onValueChange","SearchList","List","SearchEmpty","Empty","SearchGroup","Group","SearchItem","icon","description","Item","span","SearchSeparator","Separator","SearchFooter"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-trigger.d.ts","sourceRoot":"","sources":["../../../src/components/search/search-trigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAK1C,OAAO,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,GACvD,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAAG;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAsB,EACtB,QAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAwBpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search/search-trigger.tsx"],"sourcesContent":["import type {VariantProps} from 'class-variance-authority';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\nimport {Icon} from '../icon';\nimport {Kbd} from '../kbd';\nimport {useSearchContext} from './search-context';\nimport {searchTriggerVariants} from './search-variants';\n\nexport type SearchTriggerProps = ComponentProps<'button'> &\n VariantProps<typeof searchTriggerVariants> & {\n placeholder?: string;\n shortcut?: string;\n };\n\nexport function SearchTrigger({\n className,\n variant,\n size,\n radius,\n placeholder = 'Search',\n shortcut = '⌘K',\n ...props\n}: SearchTriggerProps) {\n const {setOpen} = useSearchContext();\n const isSmall = size === 'small';\n\n return (\n <button\n type=\"button\"\n data-slot=\"search-trigger\"\n onClick={() => setOpen(true)}\n className={cn(searchTriggerVariants({variant, size, radius}), className)}\n {...props}\n >\n <Icon name=\"searchLine\" className={cn('shrink-0', isSmall ? 'size-14' : 'size-16')} />\n <span className=\"flex-1 text-left truncate\">{placeholder}</span>\n <Kbd\n className={cn(\n isSmall && 'h-16 min-w-16 px-4 text-[10px]',\n radius === 'rounded' && 'rounded-full',\n )}\n >\n {shortcut}\n </Kbd>\n </button>\n );\n}\n"],"names":["cn","Icon","Kbd","useSearchContext","searchTriggerVariants","SearchTrigger","className","variant","size","radius","placeholder","shortcut","props","setOpen","isSmall","button","type","data-slot","onClick","name","span"],"mappings":";AAEA,SAAQA,EAAE,QAAO,WAAW;AAC5B,SAAQC,IAAI,QAAO,UAAU;AAC7B,SAAQC,GAAG,QAAO,SAAS;AAC3B,SAAQC,gBAAgB,QAAO,mBAAmB;AAClD,SAAQC,qBAAqB,QAAO,oBAAoB;AAQxD,OAAO,SAASC,cAAc,EAC5BC,SAAS,EACTC,OAAO,EACPC,IAAI,EACJC,MAAM,EACNC,cAAc,QAAQ,EACtBC,WAAW,IAAI,EACf,GAAGC,OACgB;IACnB,MAAM,EAACC,OAAO,EAAC,GAAGV;IAClB,MAAMW,UAAUN,SAAS;IAEzB,qBACE,MAACO;QACCC,MAAK;QACLC,aAAU;QACVC,SAAS,IAAML,QAAQ;QACvBP,WAAWN,GAAGI,sBAAsB;YAACG;YAASC;YAAMC;QAAM,IAAIH;QAC7D,GAAGM,KAAK;;0BAET,KAACX;gBAAKkB,MAAK;gBAAab,WAAWN,GAAG,YAAYc,UAAU,YAAY;;0BACxE,KAACM;gBAAKd,WAAU;0BAA6BI;;0BAC7C,KAACR;gBACCI,WAAWN,GACTc,WAAW,kCACXL,WAAW,aAAa;0BAGzBE;;;;AAIT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-variants.d.ts","sourceRoot":"","sources":["../../../src/components/search/search-variants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAiC9C,eAAO,MAAM,mBAAmB;;;;8EAc9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;8EA6BjC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,UAIrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAiC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search/search-variants.ts"],"sourcesContent":["import {cva} from 'class-variance-authority';\nimport type {Transition} from 'framer-motion';\n\nconst sharedInputStyles = [\n 'inline-flex items-center gap-8',\n 'text-sm leading-20',\n 'transition-[color,box-shadow,background-color] outline-none',\n];\n\nconst variantStyles = {\n primary: {\n base: ['bg-background-field-base', 'shadow-button-neutral'],\n focus: 'focus-within:shadow-border-interactive-with-active',\n hover: 'hover:bg-background-field-hover',\n focusVisible: 'focus-visible:shadow-border-interactive-with-active',\n },\n secondary: {\n base: ['bg-background-field-component', 'border border-border-neutral-strong'],\n focus: 'focus-within:shadow-border-interactive-with-active',\n hover: 'hover:bg-background-field-component-hover',\n focusVisible: 'focus-visible:shadow-border-interactive-with-active',\n },\n};\n\nconst sizeStyles = {\n base: 'h-32 px-8 py-6',\n small: 'h-28 px-8 py-4',\n};\n\nconst radiusStyles = {\n rounded: 'rounded-full',\n squared: 'rounded-6',\n};\n\nexport const searchInputVariants = cva(sharedInputStyles, {\n variants: {\n variant: {\n primary: [...variantStyles.primary.base, variantStyles.primary.focus],\n secondary: [...variantStyles.secondary.base, variantStyles.secondary.focus],\n },\n size: sizeStyles,\n radius: radiusStyles,\n },\n defaultVariants: {\n variant: 'primary',\n size: 'base',\n radius: 'squared',\n },\n});\n\nexport const searchTriggerVariants = cva(\n [\n ...sharedInputStyles,\n 'cursor-pointer text-foreground-neutral-muted',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:text-foreground-neutral-disabled',\n ],\n {\n variants: {\n variant: {\n primary: [\n ...variantStyles.primary.base,\n variantStyles.primary.hover,\n variantStyles.primary.focusVisible,\n ],\n secondary: [\n ...variantStyles.secondary.base,\n variantStyles.secondary.hover,\n variantStyles.secondary.focusVisible,\n ],\n },\n size: sizeStyles,\n radius: radiusStyles,\n },\n defaultVariants: {\n variant: 'primary',\n size: 'base',\n radius: 'squared',\n },\n },\n);\n\nexport const searchDefaultTransition: Transition = {\n type: 'spring',\n stiffness: 400,\n damping: 30,\n};\n\nexport const SHORTCUT_KEY_REGEX = /^(meta\\+|cmd\\+|ctrl\\+|⌘\\+?)/i;\n"],"names":["cva","sharedInputStyles","variantStyles","primary","base","focus","hover","focusVisible","secondary","sizeStyles","small","radiusStyles","rounded","squared","searchInputVariants","variants","variant","size","radius","defaultVariants","searchTriggerVariants","searchDefaultTransition","type","stiffness","damping","SHORTCUT_KEY_REGEX"],"mappings":"AAAA,SAAQA,GAAG,QAAO,2BAA2B;AAG7C,MAAMC,oBAAoB;IACxB;IACA;IACA;CACD;AAED,MAAMC,gBAAgB;IACpBC,SAAS;QACPC,MAAM;YAAC;YAA4B;SAAwB;QAC3DC,OAAO;QACPC,OAAO;QACPC,cAAc;IAChB;IACAC,WAAW;QACTJ,MAAM;YAAC;YAAiC;SAAsC;QAC9EC,OAAO;QACPC,OAAO;QACPC,cAAc;IAChB;AACF;AAEA,MAAME,aAAa;IACjBL,MAAM;IACNM,OAAO;AACT;AAEA,MAAMC,eAAe;IACnBC,SAAS;IACTC,SAAS;AACX;AAEA,OAAO,MAAMC,sBAAsBd,IAAIC,mBAAmB;IACxDc,UAAU;QACRC,SAAS;YACPb,SAAS;mBAAID,cAAcC,OAAO,CAACC,IAAI;gBAAEF,cAAcC,OAAO,CAACE,KAAK;aAAC;YACrEG,WAAW;mBAAIN,cAAcM,SAAS,CAACJ,IAAI;gBAAEF,cAAcM,SAAS,CAACH,KAAK;aAAC;QAC7E;QACAY,MAAMR;QACNS,QAAQP;IACV;IACAQ,iBAAiB;QACfH,SAAS;QACTC,MAAM;QACNC,QAAQ;IACV;AACF,GAAG;AAEH,OAAO,MAAME,wBAAwBpB,IACnC;OACKC;IACH;IACA;CACD,EACD;IACEc,UAAU;QACRC,SAAS;YACPb,SAAS;mBACJD,cAAcC,OAAO,CAACC,IAAI;gBAC7BF,cAAcC,OAAO,CAACG,KAAK;gBAC3BJ,cAAcC,OAAO,CAACI,YAAY;aACnC;YACDC,WAAW;mBACNN,cAAcM,SAAS,CAACJ,IAAI;gBAC/BF,cAAcM,SAAS,CAACF,KAAK;gBAC7BJ,cAAcM,SAAS,CAACD,YAAY;aACrC;QACH;QACAU,MAAMR;QACNS,QAAQP;IACV;IACAQ,iBAAiB;QACfH,SAAS;QACTC,MAAM;QACNC,QAAQ;IACV;AACF,GACA;AAEF,OAAO,MAAMG,0BAAsC;IACjDC,MAAM;IACNC,WAAW;IACXC,SAAS;AACX,EAAE;AAEF,OAAO,MAAMC,qBAAqB,+BAA+B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/components/search/search.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAIrC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,WAAmB,EACnB,WAAW,EACX,YAAmB,GACpB,EAAE,WAAW,2CAyBb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search/search.tsx"],"sourcesContent":["import {Command as CommandPrimitive} from 'cmdk';\nimport type {ReactNode} from 'react';\nimport {useCallback, useState} from 'react';\nimport {SearchContext, useControllableState, useKeyboardShortcut} from './search-context';\n\nexport type SearchProps = {\n children: ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n shortcutKey?: string;\n shouldFilter?: boolean;\n};\n\nexport function Search({\n children,\n open: controlledOpen,\n onOpenChange,\n defaultOpen = false,\n shortcutKey,\n shouldFilter = true,\n}: SearchProps) {\n const [open, setOpen] = useControllableState(controlledOpen, defaultOpen, onOpenChange);\n const [searchValue, setSearchValue] = useState('');\n\n const handleOpen = useCallback(() => setOpen(true), [setOpen]);\n\n useKeyboardShortcut(shortcutKey, handleOpen);\n\n const handleSetOpen = useCallback(\n (newOpen: boolean) => {\n if (!newOpen) {\n setSearchValue('');\n }\n setOpen(newOpen);\n },\n [setOpen],\n );\n\n return (\n <SearchContext.Provider value={{open, setOpen: handleSetOpen, searchValue, setSearchValue}}>\n <CommandPrimitive data-slot=\"search\" shouldFilter={shouldFilter}>\n {children}\n </CommandPrimitive>\n </SearchContext.Provider>\n );\n}\n"],"names":["Command","CommandPrimitive","useCallback","useState","SearchContext","useControllableState","useKeyboardShortcut","Search","children","open","controlledOpen","onOpenChange","defaultOpen","shortcutKey","shouldFilter","setOpen","searchValue","setSearchValue","handleOpen","handleSetOpen","newOpen","Provider","value","data-slot"],"mappings":";AAAA,SAAQA,WAAWC,gBAAgB,QAAO,OAAO;AAEjD,SAAQC,WAAW,EAAEC,QAAQ,QAAO,QAAQ;AAC5C,SAAQC,aAAa,EAAEC,oBAAoB,EAAEC,mBAAmB,QAAO,mBAAmB;AAW1F,OAAO,SAASC,OAAO,EACrBC,QAAQ,EACRC,MAAMC,cAAc,EACpBC,YAAY,EACZC,cAAc,KAAK,EACnBC,WAAW,EACXC,eAAe,IAAI,EACP;IACZ,MAAM,CAACL,MAAMM,QAAQ,GAAGV,qBAAqBK,gBAAgBE,aAAaD;IAC1E,MAAM,CAACK,aAAaC,eAAe,GAAGd,SAAS;IAE/C,MAAMe,aAAahB,YAAY,IAAMa,QAAQ,OAAO;QAACA;KAAQ;IAE7DT,oBAAoBO,aAAaK;IAEjC,MAAMC,gBAAgBjB,YACpB,CAACkB;QACC,IAAI,CAACA,SAAS;YACZH,eAAe;QACjB;QACAF,QAAQK;IACV,GACA;QAACL;KAAQ;IAGX,qBACE,KAACX,cAAciB,QAAQ;QAACC,OAAO;YAACb;YAAMM,SAASI;YAAeH;YAAaC;QAAc;kBACvF,cAAA,KAAChB;YAAiBsB,aAAU;YAAST,cAAcA;sBAChDN;;;AAIT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search/search.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {useState} from 'react';\nimport {Icon} from '../icon';\nimport {\n Search,\n SearchContent,\n SearchEmpty,\n SearchFooter,\n SearchGroup,\n SearchInline,\n SearchInput,\n SearchItem,\n SearchList,\n SearchSeparator,\n SearchTrigger,\n} from './index';\n\nconst meta: Meta = {\n title: 'Components/Search',\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component:\n 'A search component with two types: inline (input-style) and modal (trigger + overlay). Supports primary/secondary variants, base/small sizes, and squared/rounded radius options.',\n },\n },\n },\n};\n\nexport default meta;\n\ntype Story = StoryObj;\n\nexport const Inline: Story = {\n render: () => {\n function InlineDemo() {\n const [value, setValue] = useState('');\n\n return (\n <div className=\"flex flex-col gap-16 max-w-400\">\n <SearchInline\n placeholder=\"Search...\"\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onClear={() => setValue('')}\n />\n {value && (\n <p className=\"text-sm text-foreground-neutral-muted\">Searching for: \"{value}\"</p>\n )}\n </div>\n );\n }\n return <InlineDemo />;\n },\n};\n\nexport const InlineVariants: Story = {\n render: () => (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary (default)</span>\n <div className=\"flex gap-8\">\n <SearchInline\n variant=\"primary\"\n radius=\"squared\"\n placeholder=\"Search...\"\n defaultValue=\"random\"\n className=\"w-200\"\n />\n <SearchInline\n variant=\"primary\"\n radius=\"rounded\"\n placeholder=\"Search...\"\n defaultValue=\"random\"\n className=\"w-200\"\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Secondary</span>\n <div className=\"flex gap-8\">\n <SearchInline\n variant=\"secondary\"\n radius=\"squared\"\n placeholder=\"Search...\"\n defaultValue=\"random\"\n className=\"w-200\"\n />\n <SearchInline\n variant=\"secondary\"\n radius=\"rounded\"\n placeholder=\"Search...\"\n defaultValue=\"random\"\n className=\"w-200\"\n />\n </div>\n </div>\n </div>\n ),\n};\n\nexport const InlineSizes: Story = {\n render: () => (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Base (32px)</span>\n <div className=\"flex gap-8\">\n <SearchInline\n size=\"base\"\n placeholder=\"Search...\"\n defaultValue=\"random\"\n className=\"w-200\"\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Small (28px)</span>\n <div className=\"flex gap-8\">\n <SearchInline\n size=\"small\"\n placeholder=\"Search...\"\n defaultValue=\"random\"\n className=\"w-200\"\n />\n </div>\n </div>\n </div>\n ),\n};\n\nfunction ModalSearchDemo() {\n const [open, setOpen] = useState(false);\n\n return (\n <Search open={open} onOpenChange={setOpen} shortcutKey=\"meta+k\">\n <SearchTrigger placeholder=\"Find...\" className=\"w-full max-w-280\" />\n <SearchContent aria-describedby={undefined}>\n <SearchInput placeholder=\"Search for anything...\" />\n <SearchList>\n <SearchEmpty>No results found.</SearchEmpty>\n <SearchGroup heading=\"Recent\">\n <SearchItem\n icon={\n <Icon name=\"gitBranchLine\" className=\"size-16 text-foreground-neutral-subtle\" />\n }\n description=\"qr-attendance\"\n >\n feat/data-processing\n </SearchItem>\n <SearchItem\n icon={\n <Icon name=\"gitBranchLine\" className=\"size-16 text-foreground-neutral-subtle\" />\n }\n description=\"qr-attendance\"\n >\n feat/pagination-polling\n </SearchItem>\n </SearchGroup>\n <SearchSeparator />\n <SearchGroup heading=\"Team\">\n <SearchItem\n icon={<Icon name=\"rocketLine\" className=\"size-16 text-foreground-neutral-subtle\" />}\n description=\"Team\"\n >\n Deployments\n </SearchItem>\n <SearchItem\n icon={<Icon name=\"linksLine\" className=\"size-16 text-foreground-neutral-subtle\" />}\n description=\"Team\"\n >\n Integrations\n </SearchItem>\n </SearchGroup>\n </SearchList>\n <SearchFooter />\n </SearchContent>\n </Search>\n );\n}\n\nexport const Modal: Story = {\n render: () => <ModalSearchDemo />,\n};\n\nfunction TriggerPreview({\n variant,\n size,\n radius,\n className,\n}: {\n variant?: 'primary' | 'secondary';\n size?: 'base' | 'small';\n radius?: 'squared' | 'rounded';\n className?: string;\n}) {\n return (\n <Search>\n <SearchTrigger variant={variant} size={size} radius={radius} className={className} />\n </Search>\n );\n}\n\nexport const ModalTriggerVariants: Story = {\n render: () => (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary (default)</span>\n <div className=\"flex gap-8\">\n <TriggerPreview variant=\"primary\" radius=\"squared\" className=\"w-200\" />\n <TriggerPreview variant=\"primary\" radius=\"rounded\" className=\"w-200\" />\n </div>\n </div>\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Secondary</span>\n <div className=\"flex gap-8\">\n <TriggerPreview variant=\"secondary\" radius=\"squared\" className=\"w-200\" />\n <TriggerPreview variant=\"secondary\" radius=\"rounded\" className=\"w-200\" />\n </div>\n </div>\n </div>\n ),\n};\n\nexport const ModalTriggerSizes: Story = {\n render: () => (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Base (32px)</span>\n <div className=\"flex gap-8\">\n <TriggerPreview size=\"base\" variant=\"primary\" className=\"w-200\" />\n <TriggerPreview size=\"base\" variant=\"secondary\" className=\"w-200\" />\n </div>\n </div>\n <div className=\"flex flex-col gap-8\">\n <span className=\"text-xs text-foreground-neutral-muted\">Small (28px)</span>\n <div className=\"flex gap-8\">\n <TriggerPreview size=\"small\" variant=\"primary\" className=\"w-200\" />\n <TriggerPreview size=\"small\" variant=\"secondary\" className=\"w-200\" />\n </div>\n </div>\n </div>\n ),\n};\n\nexport const AllCombinations: Story = {\n render: () => (\n <div className=\"flex flex-col gap-24\">\n <div>\n <h3 className=\"text-sm font-medium text-foreground-neutral-base mb-12\">Inline Search</h3>\n <div className=\"grid grid-cols-4 gap-12\">\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Squared / Base</span>\n <SearchInline\n variant=\"primary\"\n radius=\"squared\"\n size=\"base\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Squared / Small</span>\n <SearchInline\n variant=\"primary\"\n radius=\"squared\"\n size=\"small\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Rounded / Base</span>\n <SearchInline\n variant=\"primary\"\n radius=\"rounded\"\n size=\"base\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Rounded / Small</span>\n <SearchInline\n variant=\"primary\"\n radius=\"rounded\"\n size=\"small\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Squared / Base\n </span>\n <SearchInline\n variant=\"secondary\"\n radius=\"squared\"\n size=\"base\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Squared / Small\n </span>\n <SearchInline\n variant=\"secondary\"\n radius=\"squared\"\n size=\"small\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Rounded / Base\n </span>\n <SearchInline\n variant=\"secondary\"\n radius=\"rounded\"\n size=\"base\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Rounded / Small\n </span>\n <SearchInline\n variant=\"secondary\"\n radius=\"rounded\"\n size=\"small\"\n placeholder=\"Search...\"\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-sm font-medium text-foreground-neutral-base mb-12\">\n Modal Search Triggers\n </h3>\n <div className=\"grid grid-cols-4 gap-12\">\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Squared / Base</span>\n <TriggerPreview variant=\"primary\" radius=\"squared\" size=\"base\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Squared / Small</span>\n <TriggerPreview variant=\"primary\" radius=\"squared\" size=\"small\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Rounded / Base</span>\n <TriggerPreview variant=\"primary\" radius=\"rounded\" size=\"base\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">Primary / Rounded / Small</span>\n <TriggerPreview variant=\"primary\" radius=\"rounded\" size=\"small\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Squared / Base\n </span>\n <TriggerPreview variant=\"secondary\" radius=\"squared\" size=\"base\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Squared / Small\n </span>\n <TriggerPreview variant=\"secondary\" radius=\"squared\" size=\"small\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Rounded / Base\n </span>\n <TriggerPreview variant=\"secondary\" radius=\"rounded\" size=\"base\" className=\"w-full\" />\n </div>\n <div className=\"flex flex-col gap-4\">\n <span className=\"text-xs text-foreground-neutral-muted\">\n Secondary / Rounded / Small\n </span>\n <TriggerPreview variant=\"secondary\" radius=\"rounded\" size=\"small\" className=\"w-full\" />\n </div>\n </div>\n </div>\n </div>\n ),\n};\n"],"names":["useState","Icon","Search","SearchContent","SearchEmpty","SearchFooter","SearchGroup","SearchInline","SearchInput","SearchItem","SearchList","SearchSeparator","SearchTrigger","meta","title","tags","parameters","docs","description","component","Inline","render","InlineDemo","value","setValue","div","className","placeholder","onChange","e","target","onClear","p","InlineVariants","span","variant","radius","defaultValue","InlineSizes","size","ModalSearchDemo","open","setOpen","onOpenChange","shortcutKey","aria-describedby","undefined","heading","icon","name","Modal","TriggerPreview","ModalTriggerVariants","ModalTriggerSizes","AllCombinations","h3"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/select/index.ts"],"sourcesContent":["export * from './select';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/select/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5C,iBAAS,MAAM,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEtE;AAED,iBAAS,WAAW,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAE5E;AAED,iBAAS,WAAW,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAE5E;AAED,QAAA,MAAM,qBAAqB;;;8EA2B1B,CAAC;AAEF,KAAK,kBAAkB,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GACtE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE7C,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,kBAAkB,2CAaxF;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAUvD;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAUzD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,UAAc,EACd,KAAgB,EAChB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAqChD;AAED,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAWvF;AAED,KAAK,eAAe,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACnE,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,2CA6BzE;AAED,iBAAS,eAAe,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAc/F;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GACtB,CAAC;AAEF,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/select/select.tsx"],"sourcesContent":["import * as SelectPrimitive from '@radix-ui/react-select';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\nimport {Icon, type IconName} from '../icon';\n\nfunction Select({...props}: ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({...props}: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({...props}: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nconst selectTriggerVariants = cva(\n [\n 'flex items-center justify-between gap-8',\n 'w-full rounded-6 px-8 text-sm leading-20',\n 'bg-background-field-base text-foreground-neutral-subtle',\n 'shadow-button-neutral transition-[color,box-shadow] outline-none',\n 'hover:bg-background-field-hover',\n 'focus-visible:shadow-border-interactive-with-active',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-background-neutral-disabled disabled:shadow-none disabled:text-foreground-neutral-disabled',\n 'data-[placeholder]:text-foreground-neutral-muted',\n ],\n {\n variants: {\n variant: {\n base: 'bg-background-field-base',\n component: 'bg-background-field-component',\n },\n size: {\n small: 'h-28 py-4',\n base: 'h-32 py-6',\n },\n },\n defaultVariants: {\n variant: 'base',\n size: 'base',\n },\n },\n);\n\ntype SelectTriggerProps = ComponentProps<typeof SelectPrimitive.Trigger> &\n VariantProps<typeof selectTriggerVariants>;\n\nfunction SelectTrigger({className, variant, size, children, ...props}: SelectTriggerProps) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(selectTriggerVariants({variant, size}), className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <Icon name=\"expandUpDownLine\" className=\"size-16 text-foreground-neutral-muted shrink-0\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn('flex cursor-default items-center justify-center py-4', className)}\n {...props}\n >\n <Icon name=\"arrowUpSLine\" className=\"size-16 text-foreground-neutral-muted\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn('flex cursor-default items-center justify-center py-4', className)}\n {...props}\n >\n <Icon name=\"arrowDownSLine\" className=\"size-16 text-foreground-neutral-muted\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n sideOffset = 4,\n align = 'center',\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'relative z-50 max-h-300 min-w-180 overflow-hidden rounded-10 p-4',\n 'bg-background-neutral-overlay shadow-tooltip',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n sideOffset={sideOffset}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-slot=\"select-viewport\"\n className={cn(\n 'p-0',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({className, ...props}: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\n 'px-8 py-4 text-xs leading-20 text-foreground-neutral-subtle select-none',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype SelectItemProps = ComponentProps<typeof SelectPrimitive.Item> & {\n icon?: IconName;\n};\n\nfunction SelectItem({className, children, icon, ...props}: SelectItemProps) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-8 rounded-6 py-6 pl-32 pr-8',\n 'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',\n 'focus:bg-background-components-hover',\n 'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',\n 'data-[state=checked]:text-foreground-neutral-base',\n icon && 'pl-56',\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-8 flex size-16 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Icon name=\"check\" className=\"size-14 text-foreground-neutral-base\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n {icon && (\n <Icon\n name={icon}\n className=\"size-16 shrink-0 text-foreground-neutral-subtle absolute left-32\"\n />\n )}\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({className, ...props}: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\n 'relative -mx-4 my-4 h-px',\n 'bg-border-neutral-menu-top',\n 'after:absolute after:inset-x-0 after:top-px after:h-px',\n 'after:bg-border-neutral-menu-bottom',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n selectTriggerVariants,\n};\n\nexport type {SelectTriggerProps, SelectItemProps};\n"],"names":["SelectPrimitive","cva","cn","Icon","Select","props","Root","data-slot","SelectGroup","Group","SelectValue","Value","selectTriggerVariants","variants","variant","base","component","size","small","defaultVariants","SelectTrigger","className","children","Trigger","asChild","name","SelectScrollUpButton","ScrollUpButton","SelectScrollDownButton","ScrollDownButton","SelectContent","position","sideOffset","align","Portal","Content","Viewport","SelectLabel","Label","SelectItem","icon","Item","span","ItemIndicator","ItemText","SelectSeparator","Separator"],"mappings":";AAAA,YAAYA,qBAAqB,yBAAyB;AAC1D,SAAQC,GAAG,QAA0B,2BAA2B;AAEhE,SAAQC,EAAE,QAAO,WAAW;AAC5B,SAAQC,IAAI,QAAsB,UAAU;AAE5C,SAASC,OAAO,EAAC,GAAGC,OAAmD;IACrE,qBAAO,KAACL,gBAAgBM,IAAI;QAACC,aAAU;QAAU,GAAGF,KAAK;;AAC3D;AAEA,SAASG,YAAY,EAAC,GAAGH,OAAoD;IAC3E,qBAAO,KAACL,gBAAgBS,KAAK;QAACF,aAAU;QAAgB,GAAGF,KAAK;;AAClE;AAEA,SAASK,YAAY,EAAC,GAAGL,OAAoD;IAC3E,qBAAO,KAACL,gBAAgBW,KAAK;QAACJ,aAAU;QAAgB,GAAGF,KAAK;;AAClE;AAEA,MAAMO,wBAAwBX,IAC5B;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,EACD;IACEY,UAAU;QACRC,SAAS;YACPC,MAAM;YACNC,WAAW;QACb;QACAC,MAAM;YACJC,OAAO;YACPH,MAAM;QACR;IACF;IACAI,iBAAiB;QACfL,SAAS;QACTG,MAAM;IACR;AACF;AAMF,SAASG,cAAc,EAACC,SAAS,EAAEP,OAAO,EAAEG,IAAI,EAAEK,QAAQ,EAAE,GAAGjB,OAA0B;IACvF,qBACE,MAACL,gBAAgBuB,OAAO;QACtBhB,aAAU;QACVc,WAAWnB,GAAGU,sBAAsB;YAACE;YAASG;QAAI,IAAII;QACrD,GAAGhB,KAAK;;YAERiB;0BACD,KAACtB,gBAAgBG,IAAI;gBAACqB,OAAO;0BAC3B,cAAA,KAACrB;oBAAKsB,MAAK;oBAAmBJ,WAAU;;;;;AAIhD;AAEA,SAASK,qBAAqB,EAC5BL,SAAS,EACT,GAAGhB,OACmD;IACtD,qBACE,KAACL,gBAAgB2B,cAAc;QAC7BpB,aAAU;QACVc,WAAWnB,GAAG,wDAAwDmB;QACrE,GAAGhB,KAAK;kBAET,cAAA,KAACF;YAAKsB,MAAK;YAAeJ,WAAU;;;AAG1C;AAEA,SAASO,uBAAuB,EAC9BP,SAAS,EACT,GAAGhB,OACqD;IACxD,qBACE,KAACL,gBAAgB6B,gBAAgB;QAC/BtB,aAAU;QACVc,WAAWnB,GAAG,wDAAwDmB;QACrE,GAAGhB,KAAK;kBAET,cAAA,KAACF;YAAKsB,MAAK;YAAiBJ,WAAU;;;AAG5C;AAEA,SAASS,cAAc,EACrBT,SAAS,EACTC,QAAQ,EACRS,WAAW,QAAQ,EACnBC,aAAa,CAAC,EACdC,QAAQ,QAAQ,EAChB,GAAG5B,OAC4C;IAC/C,qBACE,KAACL,gBAAgBkC,MAAM;kBACrB,cAAA,MAAClC,gBAAgBmC,OAAO;YACtB5B,aAAU;YACVc,WAAWnB,GACT,oEACA,gDACA,gEACA,8DACA,gEACA,iFACA,iFACA6B,aAAa,YACX,mIACFV;YAEFU,UAAUA;YACVC,YAAYA;YACZC,OAAOA;YACN,GAAG5B,KAAK;;8BAET,KAACqB;8BACD,KAAC1B,gBAAgBoC,QAAQ;oBACvB7B,aAAU;oBACVc,WAAWnB,GACT,OACA6B,aAAa,YACX;8BAGHT;;8BAEH,KAACM;;;;AAIT;AAEA,SAASS,YAAY,EAAChB,SAAS,EAAE,GAAGhB,OAAoD;IACtF,qBACE,KAACL,gBAAgBsC,KAAK;QACpB/B,aAAU;QACVc,WAAWnB,GACT,2EACAmB;QAED,GAAGhB,KAAK;;AAGf;AAMA,SAASkC,WAAW,EAAClB,SAAS,EAAEC,QAAQ,EAAEkB,IAAI,EAAE,GAAGnC,OAAuB;IACxE,qBACE,MAACL,gBAAgByC,IAAI;QACnBlC,aAAU;QACVc,WAAWnB,GACT,yFACA,oFACA,wCACA,oFACA,qDACAsC,QAAQ,SACRnB;QAED,GAAGhB,KAAK;;0BAET,KAACqC;gBAAKrB,WAAU;0BACd,cAAA,KAACrB,gBAAgB2C,aAAa;8BAC5B,cAAA,KAACxC;wBAAKsB,MAAK;wBAAQJ,WAAU;;;;YAGhCmB,sBACC,KAACrC;gBACCsB,MAAMe;gBACNnB,WAAU;;0BAGd,KAACrB,gBAAgB4C,QAAQ;0BAAEtB;;;;AAGjC;AAEA,SAASuB,gBAAgB,EAACxB,SAAS,EAAE,GAAGhB,OAAwD;IAC9F,qBACE,KAACL,gBAAgB8C,SAAS;QACxBvC,aAAU;QACVc,WAAWnB,GACT,4BACA,8BACA,0DACA,uCACAmB;QAED,GAAGhB,KAAK;;AAGf;AAEA,SACED,MAAM,EACNI,WAAW,EACXE,WAAW,EACXU,aAAa,EACbU,aAAa,EACbO,WAAW,EACXE,UAAU,EACVM,eAAe,EACfnB,oBAAoB,EACpBE,sBAAsB,EACtBhB,qBAAqB,GACrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/select/select.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Kbd} from '../kbd';\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n} from './select';\n\nconst meta = {\n title: 'Components/Select',\n component: Select,\n tags: ['autodocs'],\n} satisfies Meta<typeof Select>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n render: () => (\n <Select>\n <SelectTrigger className=\"w-200\">\n <SelectValue placeholder=\"Select an option\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n <SelectItem value=\"option3\">Option 3</SelectItem>\n </SelectContent>\n </Select>\n ),\n};\n\nexport const WithGroups: Story = {\n render: () => (\n <Select defaultValue=\"typescript\">\n <SelectTrigger className=\"w-280\">\n <SelectValue placeholder=\"Select a technology\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Frontend</SelectLabel>\n <SelectItem value=\"react\">React</SelectItem>\n <SelectItem value=\"vue\">Vue</SelectItem>\n <SelectItem value=\"angular\">Angular</SelectItem>\n <SelectItem value=\"svelte\">Svelte</SelectItem>\n </SelectGroup>\n <SelectSeparator />\n <SelectGroup>\n <SelectLabel>Backend</SelectLabel>\n <SelectItem value=\"nodejs\">Node.js</SelectItem>\n <SelectItem value=\"python\">Python</SelectItem>\n <SelectItem value=\"ruby\">Ruby</SelectItem>\n <SelectItem value=\"go\">Go</SelectItem>\n </SelectGroup>\n <SelectSeparator />\n <SelectGroup>\n <SelectLabel>Languages</SelectLabel>\n <SelectItem value=\"typescript\">TypeScript</SelectItem>\n <SelectItem value=\"javascript\">JavaScript</SelectItem>\n <SelectItem value=\"rust\">Rust</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n ),\n};\n\nexport const WithIcons: Story = {\n render: () => (\n <div className=\"flex flex-col gap-12\">\n <Select defaultValue=\"active\">\n <SelectTrigger className=\"w-200\">\n <SelectValue placeholder=\"Select status\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"active\" icon=\"checkboxCircleLine\">\n Active\n </SelectItem>\n <SelectItem value=\"pending\" icon=\"timeLine\">\n Pending\n </SelectItem>\n <SelectItem value=\"inactive\" icon=\"closeLine\">\n Inactive\n </SelectItem>\n </SelectContent>\n </Select>\n\n <Select defaultValue=\"medium\">\n <SelectTrigger className=\"w-200\">\n <SelectValue placeholder=\"Select priority\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"high\" icon=\"arrowUpLine\">\n High\n </SelectItem>\n <SelectItem value=\"medium\" icon=\"equalLine\">\n Medium\n </SelectItem>\n <SelectItem value=\"low\" icon=\"arrowDownLine\">\n Low\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n};\n\nexport const Sizes: Story = {\n render: () => (\n <div className=\"flex flex-col gap-12\">\n <Select>\n <SelectTrigger size=\"small\" className=\"w-200\">\n <SelectValue placeholder=\"Small\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n </SelectContent>\n </Select>\n\n <Select>\n <SelectTrigger size=\"base\" className=\"w-200\">\n <SelectValue placeholder=\"Base (default)\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n};\n\nexport const Variants: Story = {\n render: () => (\n <div className=\"flex flex-col gap-12\">\n <Select>\n <SelectTrigger variant=\"base\" className=\"w-200\">\n <SelectValue placeholder=\"Base variant\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n </SelectContent>\n </Select>\n\n <Select>\n <SelectTrigger variant=\"component\" className=\"w-200\">\n <SelectValue placeholder=\"Component variant\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n};\n\nexport const TimeSelector: Story = {\n render: () => (\n <Select defaultValue=\"2days\">\n <SelectTrigger className=\"w-280\">\n <div className=\"flex items-center gap-8 flex-1 min-w-0\">\n <SelectValue placeholder=\"Select time range\" />\n </div>\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"1hour\">\n <div className=\"flex items-center gap-8\">\n <Kbd className=\"h-16\">1h</Kbd>\n <span>Past 1 Hour</span>\n </div>\n </SelectItem>\n <SelectItem value=\"1day\">\n <div className=\"flex items-center gap-8\">\n <Kbd className=\"h-16\">1d</Kbd>\n <span>Past 1 Day</span>\n </div>\n </SelectItem>\n <SelectItem value=\"2days\">\n <div className=\"flex items-center gap-8\">\n <Kbd className=\"h-16\">2d</Kbd>\n <span>Past 2 Days</span>\n </div>\n </SelectItem>\n <SelectItem value=\"7days\">\n <div className=\"flex items-center gap-8\">\n <Kbd className=\"h-16\">7d</Kbd>\n <span>Past 7 Days</span>\n </div>\n </SelectItem>\n <SelectItem value=\"30days\">\n <div className=\"flex items-center gap-8\">\n <Kbd className=\"h-16\">30d</Kbd>\n <span>Past 30 Days</span>\n </div>\n </SelectItem>\n </SelectContent>\n </Select>\n ),\n};\n"],"names":["Kbd","Select","SelectContent","SelectGroup","SelectItem","SelectLabel","SelectSeparator","SelectTrigger","SelectValue","meta","title","component","tags","Default","render","className","placeholder","value","WithGroups","defaultValue","WithIcons","div","icon","Sizes","size","Variants","variant","TimeSelector","span"],"mappings":";AACA,SAAQA,GAAG,QAAO,SAAS;AAC3B,SACEC,MAAM,EACNC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,WAAW,EACXC,eAAe,EACfC,aAAa,EACbC,WAAW,QACN,WAAW;AAElB,MAAMC,OAAO;IACXC,OAAO;IACPC,WAAWV;IACXW,MAAM;QAAC;KAAW;AACpB;AAEA,eAAeH,KAAK;AAIpB,OAAO,MAAMI,UAAiB;IAC5BC,QAAQ,kBACN,MAACb;;8BACC,KAACM;oBAAcQ,WAAU;8BACvB,cAAA,KAACP;wBAAYQ,aAAY;;;8BAE3B,MAACd;;sCACC,KAACE;4BAAWa,OAAM;sCAAU;;sCAC5B,KAACb;4BAAWa,OAAM;sCAAU;;sCAC5B,KAACb;4BAAWa,OAAM;sCAAU;;;;;;AAIpC,EAAE;AAEF,OAAO,MAAMC,aAAoB;IAC/BJ,QAAQ,kBACN,MAACb;YAAOkB,cAAa;;8BACnB,KAACZ;oBAAcQ,WAAU;8BACvB,cAAA,KAACP;wBAAYQ,aAAY;;;8BAE3B,MAACd;;sCACC,MAACC;;8CACC,KAACE;8CAAY;;8CACb,KAACD;oCAAWa,OAAM;8CAAQ;;8CAC1B,KAACb;oCAAWa,OAAM;8CAAM;;8CACxB,KAACb;oCAAWa,OAAM;8CAAU;;8CAC5B,KAACb;oCAAWa,OAAM;8CAAS;;;;sCAE7B,KAACX;sCACD,MAACH;;8CACC,KAACE;8CAAY;;8CACb,KAACD;oCAAWa,OAAM;8CAAS;;8CAC3B,KAACb;oCAAWa,OAAM;8CAAS;;8CAC3B,KAACb;oCAAWa,OAAM;8CAAO;;8CACzB,KAACb;oCAAWa,OAAM;8CAAK;;;;sCAEzB,KAACX;sCACD,MAACH;;8CACC,KAACE;8CAAY;;8CACb,KAACD;oCAAWa,OAAM;8CAAa;;8CAC/B,KAACb;oCAAWa,OAAM;8CAAa;;8CAC/B,KAACb;oCAAWa,OAAM;8CAAO;;;;;;;;AAKnC,EAAE;AAEF,OAAO,MAAMG,YAAmB;IAC9BN,QAAQ,kBACN,MAACO;YAAIN,WAAU;;8BACb,MAACd;oBAAOkB,cAAa;;sCACnB,KAACZ;4BAAcQ,WAAU;sCACvB,cAAA,KAACP;gCAAYQ,aAAY;;;sCAE3B,MAACd;;8CACC,KAACE;oCAAWa,OAAM;oCAASK,MAAK;8CAAqB;;8CAGrD,KAAClB;oCAAWa,OAAM;oCAAUK,MAAK;8CAAW;;8CAG5C,KAAClB;oCAAWa,OAAM;oCAAWK,MAAK;8CAAY;;;;;;8BAMlD,MAACrB;oBAAOkB,cAAa;;sCACnB,KAACZ;4BAAcQ,WAAU;sCACvB,cAAA,KAACP;gCAAYQ,aAAY;;;sCAE3B,MAACd;;8CACC,KAACE;oCAAWa,OAAM;oCAAOK,MAAK;8CAAc;;8CAG5C,KAAClB;oCAAWa,OAAM;oCAASK,MAAK;8CAAY;;8CAG5C,KAAClB;oCAAWa,OAAM;oCAAMK,MAAK;8CAAgB;;;;;;;;AAOvD,EAAE;AAEF,OAAO,MAAMC,QAAe;IAC1BT,QAAQ,kBACN,MAACO;YAAIN,WAAU;;8BACb,MAACd;;sCACC,KAACM;4BAAciB,MAAK;4BAAQT,WAAU;sCACpC,cAAA,KAACP;gCAAYQ,aAAY;;;sCAE3B,MAACd;;8CACC,KAACE;oCAAWa,OAAM;8CAAU;;8CAC5B,KAACb;oCAAWa,OAAM;8CAAU;;;;;;8BAIhC,MAAChB;;sCACC,KAACM;4BAAciB,MAAK;4BAAOT,WAAU;sCACnC,cAAA,KAACP;gCAAYQ,aAAY;;;sCAE3B,MAACd;;8CACC,KAACE;oCAAWa,OAAM;8CAAU;;8CAC5B,KAACb;oCAAWa,OAAM;8CAAU;;;;;;;;AAKtC,EAAE;AAEF,OAAO,MAAMQ,WAAkB;IAC7BX,QAAQ,kBACN,MAACO;YAAIN,WAAU;;8BACb,MAACd;;sCACC,KAACM;4BAAcmB,SAAQ;4BAAOX,WAAU;sCACtC,cAAA,KAACP;gCAAYQ,aAAY;;;sCAE3B,MAACd;;8CACC,KAACE;oCAAWa,OAAM;8CAAU;;8CAC5B,KAACb;oCAAWa,OAAM;8CAAU;;;;;;8BAIhC,MAAChB;;sCACC,KAACM;4BAAcmB,SAAQ;4BAAYX,WAAU;sCAC3C,cAAA,KAACP;gCAAYQ,aAAY;;;sCAE3B,MAACd;;8CACC,KAACE;oCAAWa,OAAM;8CAAU;;8CAC5B,KAACb;oCAAWa,OAAM;8CAAU;;;;;;;;AAKtC,EAAE;AAEF,OAAO,MAAMU,eAAsB;IACjCb,QAAQ,kBACN,MAACb;YAAOkB,cAAa;;8BACnB,KAACZ;oBAAcQ,WAAU;8BACvB,cAAA,KAACM;wBAAIN,WAAU;kCACb,cAAA,KAACP;4BAAYQ,aAAY;;;;8BAG7B,MAACd;;sCACC,KAACE;4BAAWa,OAAM;sCAChB,cAAA,MAACI;gCAAIN,WAAU;;kDACb,KAACf;wCAAIe,WAAU;kDAAO;;kDACtB,KAACa;kDAAK;;;;;sCAGV,KAACxB;4BAAWa,OAAM;sCAChB,cAAA,MAACI;gCAAIN,WAAU;;kDACb,KAACf;wCAAIe,WAAU;kDAAO;;kDACtB,KAACa;kDAAK;;;;;sCAGV,KAACxB;4BAAWa,OAAM;sCAChB,cAAA,MAACI;gCAAIN,WAAU;;kDACb,KAACf;wCAAIe,WAAU;kDAAO;;kDACtB,KAACa;kDAAK;;;;;sCAGV,KAACxB;4BAAWa,OAAM;sCAChB,cAAA,MAACI;gCAAIN,WAAU;;kDACb,KAACf;wCAAIe,WAAU;kDAAO;;kDACtB,KAACa;kDAAK;;;;;sCAGV,KAACxB;4BAAWa,OAAM;sCAChB,cAAA,MAACI;gCAAIN,WAAU;;kDACb,KAACf;wCAAIe,WAAU;kDAAO;;kDACtB,KAACa;kDAAK;;;;;;;;;AAMlB,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/shiny-text/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/shiny-text/index.ts"],"sourcesContent":["export * from './shiny-text';\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shiny-text.d.ts","sourceRoot":"","sources":["../../../src/components/shiny-text/shiny-text.tsx"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAS,SAAS,CAAC,EAAC,IAAI,EAAE,QAAgB,EAAE,KAAS,EAAE,SAAc,EAAC,EAAE,cAAc,2CAQrF;AAED,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,YAAY,EAAC,cAAc,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/shiny-text/shiny-text.tsx"],"sourcesContent":["import {cn} from 'utils/cn';\n\ntype ShinyTextProps = {\n text: string;\n disabled?: boolean;\n speed?: number;\n className?: string;\n};\n\nfunction ShinyText({text, disabled = false, speed = 5, className = ''}: ShinyTextProps) {\n const animationDuration = `${speed}s`;\n\n return (\n <span className={cn('shiny-text', {disabled: disabled}, className)} style={{animationDuration}}>\n {text}\n </span>\n );\n}\n\nexport {ShinyText};\nexport type {ShinyTextProps};\n"],"names":["cn","ShinyText","text","disabled","speed","className","animationDuration","span","style"],"mappings":";AAAA,SAAQA,EAAE,QAAO,WAAW;AAS5B,SAASC,UAAU,EAACC,IAAI,EAAEC,WAAW,KAAK,EAAEC,QAAQ,CAAC,EAAEC,YAAY,EAAE,EAAiB;IACpF,MAAMC,oBAAoB,GAAGF,MAAM,CAAC,CAAC;IAErC,qBACE,KAACG;QAAKF,WAAWL,GAAG,cAAc;YAACG,UAAUA;QAAQ,GAAGE;QAAYG,OAAO;YAACF;QAAiB;kBAC1FJ;;AAGP;AAEA,SAAQD,SAAS,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/skeleton/index.ts"],"sourcesContent":["export * from './skeleton';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,KAAK,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE3C,wBAAgB,QAAQ,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,aAAa,2CAQ5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\ntype SkeletonProps = ComponentProps<'div'>;\n\nexport function Skeleton({className, ...props}: SkeletonProps) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('animate-pulse rounded-6 bg-background-neutral-disabled', className)}\n {...props}\n />\n );\n}\n"],"names":["cn","Skeleton","className","props","div","data-slot"],"mappings":";AACA,SAAQA,EAAE,QAAO,WAAW;AAI5B,OAAO,SAASC,SAAS,EAACC,SAAS,EAAE,GAAGC,OAAqB;IAC3D,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GAAG,0DAA0DE;QACvE,GAAGC,KAAK;;AAGf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/skeleton/skeleton.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {Skeleton} from './skeleton';\n\nconst meta = {\n title: 'Components/Skeleton',\n component: Skeleton,\n tags: ['autodocs'],\n} satisfies Meta<typeof Skeleton>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n render: () => <Skeleton className=\"w-200 h-20\" />,\n};\n\nexport const Card: Story = {\n render: () => (\n <div className=\"flex flex-col gap-12 p-16 rounded-10 border border-border-neutral-base bg-background-field-base max-w-400\">\n <Skeleton className=\"h-200 w-full rounded-6\" />\n <div className=\"space-y-8\">\n <Skeleton className=\"h-20 w-3/4\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-5/6\" />\n </div>\n <div className=\"flex gap-8 pt-8\">\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n </div>\n </div>\n ),\n};\n\nexport const List: Story = {\n render: () => (\n <div className=\"flex flex-col gap-8 max-w-500\">\n {Array.from({length: 5}, (_, i) => i).map((id) => (\n <div\n key={`list-${id}`}\n className=\"flex items-center gap-12 p-12 rounded-6 border border-border-neutral-base bg-background-field-base\"\n >\n <Skeleton className=\"h-48 w-48 rounded-full shrink-0\" />\n <div className=\"flex-1 space-y-8\">\n <Skeleton className=\"h-16 w-3/4\" />\n <Skeleton className=\"h-14 w-1/2\" />\n </div>\n <Skeleton className=\"h-32 w-80 rounded-6\" />\n </div>\n ))}\n </div>\n ),\n};\n\nexport const Showcase: Story = {\n render: () => (\n <div className=\"flex flex-col gap-32\">\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Basic Shapes</Header>\n <div className=\"flex flex-col gap-12\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rectangle\n </Code>\n <Skeleton className=\"h-20 w-200\" />\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Circle\n </Code>\n <Skeleton className=\"h-48 w-48 rounded-full\" />\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Square\n </Code>\n <Skeleton className=\"h-100 w-100\" />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Card Loading</Header>\n <div className=\"flex flex-col gap-12 p-16 rounded-10 border border-border-neutral-base bg-background-field-base max-w-400\">\n <Skeleton className=\"h-200 w-full rounded-6\" />\n <div className=\"space-y-8\">\n <Skeleton className=\"h-20 w-3/4\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-2/3\" />\n </div>\n <div className=\"flex gap-8 pt-8\">\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">List Loading</Header>\n <div className=\"flex flex-col gap-8 max-w-500\">\n {Array.from({length: 4}, (_, i) => i).map((id) => (\n <div\n key={`list-loading-${id}`}\n className=\"flex items-center gap-12 p-12 rounded-6 border border-border-neutral-base bg-background-field-base\"\n >\n <Skeleton className=\"h-48 w-48 rounded-full shrink-0\" />\n <div className=\"flex-1 space-y-8\">\n <Skeleton className=\"h-16 w-3/4\" />\n <Skeleton className=\"h-14 w-1/2\" />\n </div>\n <Skeleton className=\"h-32 w-80 rounded-6\" />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Table Loading</Header>\n <div className=\"rounded-10 border border-border-neutral-base bg-background-field-base overflow-hidden max-w-700\">\n <div className=\"flex gap-16 p-12 border-b border-border-neutral-base bg-background-neutral-base\">\n <Skeleton className=\"h-16 w-140\" />\n <Skeleton className=\"h-16 w-220\" />\n <Skeleton className=\"h-16 w-120\" />\n <Skeleton className=\"h-16 w-100 ml-auto\" />\n </div>\n {Array.from({length: 5}, (_, i) => i).map((id) => (\n <div\n key={`table-row-${id}`}\n className=\"flex gap-16 p-12 border-b border-border-neutral-base last:border-0\"\n >\n <Skeleton className=\"h-14 w-140\" />\n <Skeleton className=\"h-14 w-220\" />\n <Skeleton className=\"h-14 w-120\" />\n <Skeleton className=\"h-14 w-100 ml-auto\" />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Form Loading</Header>\n <div className=\"max-w-400 space-y-16 p-16 rounded-10 border border-border-neutral-base bg-background-field-base\">\n <div className=\"space-y-8\">\n <Skeleton className=\"h-16 w-100\" />\n <Skeleton className=\"h-32 w-full rounded-6\" />\n </div>\n <div className=\"space-y-8\">\n <Skeleton className=\"h-16 w-120\" />\n <Skeleton className=\"h-32 w-full rounded-6\" />\n </div>\n <div className=\"space-y-8\">\n <Skeleton className=\"h-16 w-80\" />\n <Skeleton className=\"h-96 w-full rounded-6\" />\n </div>\n <div className=\"flex gap-8 pt-8\">\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Avatar Group Loading</Header>\n <div className=\"flex -space-x-8\">\n {Array.from({length: 5}, (_, i) => i).map((id) => (\n <Skeleton\n key={`avatar-${id}`}\n className=\"h-40 w-40 rounded-full border-2 border-background-field-base\"\n />\n ))}\n </div>\n </div>\n </div>\n ),\n};\n"],"names":["Code","Header","Skeleton","meta","title","component","tags","Default","render","className","Card","div","List","Array","from","length","_","i","map","id","Showcase","variant"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/components/table/data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EAAC,KAAK,cAAc,EAA+B,MAAM,OAAO,CAAC;AAKxE;;;;;GAKG;AACH,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACrF;;;;OAIG;IACH,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC;;OAEG;IACH,IAAI,EAAE,KAAK,EAAE,CAAC;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EACvC,OAAO,EACP,IAAI,EACJ,UAAiB,EACjB,QAAa,EACb,eAAe,EACf,iBAAyB,EACzB,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,2CAyJ/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/data-table.tsx"],"sourcesContent":["import type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport {Checkbox} from 'components/checkbox';\nimport {Icon} from 'components/icon';\nimport {Text} from 'components/typography';\nimport {type ComponentProps, useEffect, useMemo, useState} from 'react';\nimport {cn} from 'utils/cn';\nimport {Table, TableBody, TableCell, TableHead, TableHeader, TableRow} from './table';\nimport {TablePagination} from './table-pagination';\n\n/**\n * Props for the {@link DataTable} component.\n *\n * @typeParam TData - The shape of the row data.\n * @typeParam TValue - The value type used by column definitions.\n */\ninterface DataTableProps<TData, TValue> extends Omit<ComponentProps<'div'>, 'children'> {\n /**\n * Column definitions for the table, as expected by `@tanstack/react-table`.\n *\n * These control how each field in {@link data} is rendered and interacted with.\n */\n columns: ColumnDef<TData, TValue>[];\n /**\n * Array of data items to render as table rows.\n */\n data: TData[];\n /**\n * Enables client-side pagination when `true`.\n *\n * Defaults to `true`. When set to `false`, all rows are rendered in a single\n * page and the pagination controls are disabled. In that case, the\n * {@link pageSize} value is effectively ignored.\n */\n pagination?: boolean;\n /**\n * Number of rows to display per page when pagination is enabled.\n *\n * Defaults to `10`. This value is used to initialize the internal pagination\n * state and only has an effect when {@link pagination} is `true`.\n */\n pageSize?: number;\n /**\n * Array of page size options to display in the page size selector.\n * When provided, a dropdown will be rendered in the pagination footer allowing\n * users to change the number of rows per page.\n *\n * @default [10, 20, 50, 100]\n * @example\n * ```tsx\n * <DataTable columns={columns} data={data} pageSizeOptions={[5, 10, 25]} />\n * ```\n */\n pageSizeOptions?: number[];\n /**\n * When `true`, displays the count of selected rows.\n *\n * This is useful when row selection is enabled to give users feedback on how\n * many rows are currently selected.\n */\n showSelectedCount?: boolean;\n /**\n * Optional callback invoked when a table row is clicked.\n *\n * The callback receives the corresponding data item for the clicked row.\n */\n onRowClick?: (row: TData) => void;\n /**\n * React node to render when there are no rows to display.\n *\n * If not provided, the table will render without rows and without a custom\n * empty state message or placeholder.\n */\n emptyState?: React.ReactNode;\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n pagination = true,\n pageSize = 10,\n pageSizeOptions,\n showSelectedCount = false,\n onRowClick,\n emptyState,\n className,\n ...props\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = useState({});\n const [paginationState, setPaginationState] = useState<PaginationState>({\n pageIndex: 0,\n pageSize,\n });\n\n useEffect(() => {\n setPaginationState((prev) => ({...prev, pageSize, pageIndex: 0}));\n }, [pageSize]);\n\n // Add selection column if showSelectedCount is enabled\n const columnsWithSelection = useMemo(() => {\n if (!showSelectedCount) {\n return columns;\n }\n\n const selectionColumn: ColumnDef<TData, TValue> = {\n id: 'select',\n header: ({table}) => {\n const isAllSelected = table.getIsAllPageRowsSelected();\n const isSomeSelected = table.getIsSomePageRowsSelected();\n return (\n <Checkbox\n checked={isAllSelected ? true : isSomeSelected ? 'indeterminate' : false}\n onCheckedChange={(checked) => table.toggleAllPageRowsSelected(!!checked)}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Select all\"\n />\n );\n },\n cell: ({row}) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(checked) => row.toggleSelected(!!checked)}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Select row\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n };\n\n return [selectionColumn, ...columns];\n }, [columns, showSelectedCount]);\n\n const table = useReactTable({\n data,\n columns: columnsWithSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getPaginationRowModel: pagination ? getPaginationRowModel() : undefined,\n enableRowSelection: showSelectedCount,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n onPaginationChange: setPaginationState,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n pagination: pagination ? paginationState : undefined,\n },\n });\n\n return (\n <div\n className={cn('rounded-8 border border-border-neutral-base overflow-hidden', className)}\n {...props}\n >\n <Table>\n {table.getRowModel().rows.length > 0 ? (\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"hover:bg-transparent border-b\">\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n ) : null}\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n onClick={() => onRowClick?.(row.original)}\n data-selected={row.getIsSelected()}\n className={onRowClick ? 'cursor-pointer' : ''}\n tabIndex={onRowClick ? 0 : undefined}\n role={onRowClick ? 'button' : undefined}\n onKeyDown={(event) => {\n if (!onRowClick) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onRowClick(row.original);\n }\n }}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"hover:bg-transparent\">\n <TableCell colSpan={table.getAllColumns().length} className=\"h-240 text-center\">\n {emptyState || (\n <div className=\"flex flex-col items-center justify-center gap-12 py-48\">\n <div className=\"size-32 rounded-6 bg-transparent border border-border-neutral-strong flex items-center justify-center\">\n <Icon\n name=\"fileDamageLine\"\n className=\"size-16 text-foreground-neutral-subtle\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </div>\n <div className=\"text-center space-y-4\">\n <Text size=\"sm\" className=\"text-foreground-neutral-base\">\n No results\n </Text>\n <Text size=\"xs\" className=\"text-foreground-neutral-muted\">\n Looks like there are no results.\n </Text>\n </div>\n </div>\n )}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n {pagination && table.getRowModel().rows?.length > 0 && (\n <TablePagination\n table={table}\n pageSizeOptions={pageSizeOptions}\n showSelectedCount={showSelectedCount}\n />\n )}\n </Table>\n </div>\n );\n}\n"],"names":["flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","Checkbox","Icon","Text","useEffect","useMemo","useState","cn","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","TablePagination","DataTable","columns","data","pagination","pageSize","pageSizeOptions","showSelectedCount","onRowClick","emptyState","className","props","sorting","setSorting","columnFilters","setColumnFilters","columnVisibility","setColumnVisibility","rowSelection","setRowSelection","paginationState","setPaginationState","pageIndex","prev","columnsWithSelection","selectionColumn","id","header","table","isAllSelected","getIsAllPageRowsSelected","isSomeSelected","getIsSomePageRowsSelected","checked","onCheckedChange","toggleAllPageRowsSelected","onClick","e","stopPropagation","aria-label","cell","row","getIsSelected","toggleSelected","enableSorting","enableHiding","undefined","enableRowSelection","onSortingChange","onColumnFiltersChange","onColumnVisibilityChange","onRowSelectionChange","onPaginationChange","state","div","getRowModel","rows","length","getHeaderGroups","map","headerGroup","headers","isPlaceholder","column","columnDef","getContext","original","data-selected","tabIndex","role","onKeyDown","event","key","preventDefault","getVisibleCells","colSpan","getAllColumns","name","color","size"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/index.ts"],"sourcesContent":["export type {ColumnDef} from '@tanstack/react-table';\nexport * from './data-table';\nexport * from './table';\nexport * from './table-column-header';\nexport * from './table-pagination';\n"],"names":[],"mappings":"AACA,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,wBAAwB;AACtC,cAAc,qBAAqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-column-header.d.ts","sourceRoot":"","sources":["../../../src/components/table/table-column-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAU1C;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3F;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAC/C,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,2CAgDvC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table-column-header.tsx"],"sourcesContent":["import type {Column} from '@tanstack/react-table';\nimport {Icon} from 'components/icon';\nimport type {HTMLAttributes} from 'react';\nimport {cn} from 'utils/cn';\nimport {Button} from '../button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '../dropdown-menu';\n\n/**\n * Props for the {@link TableColumnHeader} component.\n *\n * Defines the properties needed to render a sortable table column header\n * with interactive sorting controls.\n *\n * @typeParam TData - The shape of the row data in the table.\n * @typeParam TValue - The type of the value in this specific column.\n */\nexport interface TableColumnHeaderProps<TData, TValue> extends HTMLAttributes<HTMLDivElement> {\n /**\n * The TanStack Table column instance for this header.\n *\n * This instance provides access to column state and sorting methods.\n * It's typically obtained from the `header.column` property when mapping\n * over header groups in TanStack Table.\n *\n * The column determines:\n * - Whether sorting is enabled (`getCanSort()`)\n * - Current sort direction (`getIsSorted()`)\n * - Methods to toggle sorting (`toggleSorting()`)\n *\n * @see {@link https://tanstack.com/table/latest/docs/api/core/column TanStack Column API}\n */\n column: Column<TData, TValue>;\n /**\n * The display text for the column header.\n *\n * This is the human-readable label that appears in the table header.\n * For sortable columns, this text appears in a button with sort indicators.\n * For non-sortable columns, it renders as plain text.\n *\n * @example\n * ```tsx\n * <TableColumnHeader column={column} title=\"Customer Name\" />\n * <TableColumnHeader column={column} title=\"Order Date\" />\n * ```\n */\n title: string;\n}\n\n/**\n * Renders a table column header with optional sorting functionality.\n *\n * This component automatically adapts based on whether the column supports sorting:\n * - **Sortable columns**: Renders an interactive button with a dropdown menu for\n * ascending/descending sort options and visual indicators for the current sort state\n * - **Non-sortable columns**: Renders plain text without interactive controls\n *\n * The component integrates seamlessly with TanStack Table's sorting system and\n * manages sort state through the provided column instance.\n *\n * @typeParam TData - The shape of the row data in the table.\n * @typeParam TValue - The type of the value in this specific column.\n *\n * @example\n * ```tsx\n * // In your column definitions:\n * const columns: ColumnDef<User>[] = [\n * {\n * accessorKey: 'name',\n * header: ({ column }) => (\n * <TableColumnHeader column={column} title=\"Name\" />\n * ),\n * enableSorting: true,\n * },\n * {\n * accessorKey: 'email',\n * header: ({ column }) => (\n * <TableColumnHeader column={column} title=\"Email\" />\n * ),\n * enableSorting: false,\n * },\n * ];\n * ```\n */\nexport function TableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: TableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn('text-xs font-medium', className)}>{title}</div>;\n }\n\n const isSorted = column.getIsSorted();\n\n return (\n <div className={cn('flex items-center space-x-2', className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"transparent\"\n size=\"xs\"\n className=\"-ml-12 h-32 px-8 data-[state=open]:bg-background-components-hover gap-0\"\n >\n <span className=\"text-xs font-medium text-foreground-neutral-subtle\">{title}</span>\n {isSorted === 'desc' ? (\n <Icon\n name=\"arrowDownLongLine\"\n className=\"ml-2 size-14 text-foreground-neutral-muted\"\n />\n ) : isSorted === 'asc' ? (\n <Icon name=\"arrowUpLongLine\" className=\"ml-2 size-14 text-foreground-neutral-muted\" />\n ) : (\n <Icon name=\"arrowUpDownLine\" className=\"ml-4 size-16 text-foreground-neutral-muted\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" size=\"sm\">\n <DropdownMenuItem\n icon=\"arrowUpLongLine\"\n onClick={() => column.toggleSorting(false)}\n closeOnSelect\n >\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem\n icon=\"arrowDownLongLine\"\n onClick={() => column.toggleSorting(true)}\n closeOnSelect\n >\n Desc\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n"],"names":["Icon","cn","Button","DropdownMenu","DropdownMenuContent","DropdownMenuItem","DropdownMenuTrigger","TableColumnHeader","column","title","className","getCanSort","div","isSorted","getIsSorted","asChild","variant","size","span","name","align","icon","onClick","toggleSorting","closeOnSelect"],"mappings":";AACA,SAAQA,IAAI,QAAO,kBAAkB;AAErC,SAAQC,EAAE,QAAO,WAAW;AAC5B,SAAQC,MAAM,QAAO,YAAY;AACjC,SACEC,YAAY,EACZC,mBAAmB,EACnBC,gBAAgB,EAChBC,mBAAmB,QACd,mBAAmB;AA2C1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GACD,OAAO,SAASC,kBAAiC,EAC/CC,MAAM,EACNC,KAAK,EACLC,SAAS,EAC6B;IACtC,IAAI,CAACF,OAAOG,UAAU,IAAI;QACxB,qBAAO,KAACC;YAAIF,WAAWT,GAAG,uBAAuBS;sBAAaD;;IAChE;IAEA,MAAMI,WAAWL,OAAOM,WAAW;IAEnC,qBACE,KAACF;QAAIF,WAAWT,GAAG,+BAA+BS;kBAChD,cAAA,MAACP;;8BACC,KAACG;oBAAoBS,OAAO;8BAC1B,cAAA,MAACb;wBACCc,SAAQ;wBACRC,MAAK;wBACLP,WAAU;;0CAEV,KAACQ;gCAAKR,WAAU;0CAAsDD;;4BACrEI,aAAa,uBACZ,KAACb;gCACCmB,MAAK;gCACLT,WAAU;iCAEVG,aAAa,sBACf,KAACb;gCAAKmB,MAAK;gCAAkBT,WAAU;+CAEvC,KAACV;gCAAKmB,MAAK;gCAAkBT,WAAU;;;;;8BAI7C,MAACN;oBAAoBgB,OAAM;oBAAQH,MAAK;;sCACtC,KAACZ;4BACCgB,MAAK;4BACLC,SAAS,IAAMd,OAAOe,aAAa,CAAC;4BACpCC,aAAa;sCACd;;sCAGD,KAACnB;4BACCgB,MAAK;4BACLC,SAAS,IAAMd,OAAOe,aAAa,CAAC;4BACpCC,aAAa;sCACd;;;;;;;AAOX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-pagination.d.ts","sourceRoot":"","sources":["../../../src/components/table/table-pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAM1C;;;;;;;GAOG;AACH,UAAU,oBAAoB,CAAC,KAAK,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IACnE;;;;;;;;OAQG;IACH,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,EACrC,KAAK,EACL,SAAS,EACT,eAAmC,EACnC,iBAAyB,EACzB,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,CAAC,2CAiG7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table-pagination.tsx"],"sourcesContent":["import type {Table} from '@tanstack/react-table';\nimport {Text} from 'components/typography';\nimport type {ComponentProps} from 'react';\nimport {Button} from '../button';\nimport {Icon} from '../icon';\nimport {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from '../select/select';\nimport {TableCell, TableFooter, TableRow} from './table';\n\n/**\n * Props for the {@link TablePagination} component.\n *\n * Provides pagination controls for data tables, including page navigation,\n * page size selection, and row count displays.\n *\n * @typeParam TData - The shape of the row data in the table.\n */\ninterface TablePaginationProps<TData> extends ComponentProps<'tfoot'> {\n /**\n * The TanStack Table instance that manages the table state and behavior.\n *\n * This is typically created using `useReactTable` from `@tanstack/react-table`.\n * The table instance provides access to pagination state, row data, and methods\n * for controlling pagination (e.g., `setPageSize`, `nextPage`, `previousPage`).\n *\n * @see {@link https://tanstack.com/table/latest/docs/api/core/table TanStack Table API}\n */\n table: Table<TData>;\n /**\n * Array of page size options to display in the page size selector.\n * When provided, a dropdown will be rendered allowing users to change the number of rows per page.\n *\n * @default [10, 20, 50, 100]\n * @example\n * ```tsx\n * <TablePagination table={table} pageSizeOptions={[10, 25, 50]} />\n * ```\n */\n pageSizeOptions?: number[];\n /**\n * When `true`, displays the count of selected rows instead of pagination range.\n *\n * - If `true`: Shows \"X of Y row(s) selected\" where X is the number of selected rows\n * - If `false`: Shows \"A — B of C results\" where A-B is the current page range\n *\n * This is useful when row selection is enabled and you want to give users feedback\n * on how many rows they have selected.\n *\n * @default false\n * @example\n * ```tsx\n * <TablePagination table={table} showSelectedCount={true} />\n * // Displays: \"5 of 100 row(s) selected\"\n * ```\n */\n showSelectedCount?: boolean;\n}\n\nexport function TablePagination<TData>({\n table,\n className,\n pageSizeOptions = [10, 20, 50, 100],\n showSelectedCount = false,\n ...props\n}: TablePaginationProps<TData>) {\n const currentPage = table.getState().pagination.pageIndex + 1;\n const pageSize = table.getState().pagination.pageSize;\n const totalRows = table.getFilteredRowModel().rows.length;\n const startRow = totalRows === 0 ? 0 : currentPage === 1 ? 1 : (currentPage - 1) * pageSize + 1;\n const endRow = Math.min(currentPage * pageSize, totalRows);\n\n return (\n <TableFooter className={className} {...props}>\n <TableRow className=\"hover:bg-transparent\">\n <TableCell\n colSpan={table.getAllColumns().length}\n className=\"group-hover/row:bg-transparent\"\n >\n <div className=\"flex items-center justify-between gap-16\">\n <div className=\"flex items-center gap-16\">\n {showSelectedCount && (\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n {table.getFilteredSelectedRowModel().rows.length} of {totalRows} row(s) selected\n </Text>\n )}\n {!showSelectedCount && (\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n {startRow} — {endRow} of {totalRows} results\n </Text>\n )}\n <div className=\"flex items-center gap-8\">\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n Rows per page\n </Text>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-28 w-80\" size=\"small\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n\n <div className=\"flex items-center\">\n <Button\n variant=\"transparent\"\n size=\"xs\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n className=\"h-32 w-32 p-0\"\n aria-label=\"Go to first page\"\n >\n <Icon name=\"arrowLeftDoubleLine\" className=\"size-16\" />\n </Button>\n <Button\n variant=\"transparent\"\n size=\"xs\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n className=\"h-32 px-12\"\n aria-label=\"Go to previous page\"\n >\n Prev\n </Button>\n <Button\n variant=\"transparent\"\n size=\"xs\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n className=\"h-32 px-12\"\n aria-label=\"Go to next page\"\n >\n Next\n </Button>\n <Button\n variant=\"transparent\"\n size=\"xs\"\n onClick={() => table.setPageIndex(table.getPageCount() - 1)}\n disabled={!table.getCanNextPage()}\n className=\"h-32 w-32 p-0\"\n aria-label=\"Go to last page\"\n >\n <Icon name=\"arrowRightDoubleLine\" className=\"size-16\" />\n </Button>\n </div>\n </div>\n </TableCell>\n </TableRow>\n </TableFooter>\n );\n}\n"],"names":["Text","Button","Icon","Select","SelectContent","SelectItem","SelectTrigger","SelectValue","TableCell","TableFooter","TableRow","TablePagination","table","className","pageSizeOptions","showSelectedCount","props","currentPage","getState","pagination","pageIndex","pageSize","totalRows","getFilteredRowModel","rows","length","startRow","endRow","Math","min","colSpan","getAllColumns","div","size","getFilteredSelectedRowModel","value","String","onValueChange","setPageSize","Number","map","variant","onClick","setPageIndex","disabled","getCanPreviousPage","aria-label","name","previousPage","nextPage","getCanNextPage","getPageCount"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/table/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,iBAAS,KAAK,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,CAAC,2CAU5D;AAED,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,CAAC,2CAElE;AAED,iBAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,CAAC,2CAEhE;AAED,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,CAAC,2CAWlE;AAED,iBAAS,QAAQ,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,IAAI,CAAC,2CAc5D;AAED,iBAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,IAAI,CAAC,2CAa7D;AAED,iBAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,IAAI,CAAC,2CAe7D;AAED,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,SAAS,CAAC,2CAQrE;AAED,OAAO,EAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table.tsx"],"sourcesContent":["import type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nfunction Table({className, ...props}: ComponentProps<'table'>) {\n return (\n <div className=\"relative w-full overflow-auto scrollbar\">\n <table\n data-slot=\"table\"\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({className, ...props}: ComponentProps<'thead'>) {\n return <thead data-slot=\"table-header\" className={cn(className)} {...props} />;\n}\n\nfunction TableBody({className, ...props}: ComponentProps<'tbody'>) {\n return <tbody data-slot=\"table-body\" className={cn(className)} {...props} />;\n}\n\nfunction TableFooter({className, ...props}: ComponentProps<'tfoot'>) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n 'border-t border-border-neutral-base bg-background-neutral-base font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({className, ...props}: ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n 'group/row border-b border-border-neutral-base transition-colors',\n 'last:border-b-0',\n 'hover:bg-background-neutral-hover',\n 'data-[selected=true]:bg-background-neutral-pressed data-[selected=true]:hover:bg-background-neutral-pressed',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({className, ...props}: ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'h-40 px-16 text-left align-middle text-xs font-medium leading-20 text-foreground-neutral-subtle',\n 'bg-background-subtle-base',\n '[&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:px-12 [&:has([role=checkbox])]:w-0 [&:has([role=checkbox])]:pt-6',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({className, ...props}: ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n 'px-12 py-10 align-middle text-sm leading-20 text-foreground-neutral-base',\n 'bg-background-neutral-base',\n 'group-hover/row:bg-background-neutral-hover',\n 'group-data-[selected=true]/row:bg-background-neutral-pressed!',\n '[&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:pt-14',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({className, ...props}: ComponentProps<'caption'>) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn('mt-16 text-sm text-foreground-neutral-muted', className)}\n {...props}\n />\n );\n}\n\nexport {Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption};\n"],"names":["cn","Table","className","props","div","table","data-slot","TableHeader","thead","TableBody","tbody","TableFooter","tfoot","TableRow","tr","TableHead","th","TableCell","td","TableCaption","caption"],"mappings":";AACA,SAAQA,EAAE,QAAO,WAAW;AAE5B,SAASC,MAAM,EAACC,SAAS,EAAE,GAAGC,OAA+B;IAC3D,qBACE,KAACC;QAAIF,WAAU;kBACb,cAAA,KAACG;YACCC,aAAU;YACVJ,WAAWF,GAAG,iCAAiCE;YAC9C,GAAGC,KAAK;;;AAIjB;AAEA,SAASI,YAAY,EAACL,SAAS,EAAE,GAAGC,OAA+B;IACjE,qBAAO,KAACK;QAAMF,aAAU;QAAeJ,WAAWF,GAAGE;QAAa,GAAGC,KAAK;;AAC5E;AAEA,SAASM,UAAU,EAACP,SAAS,EAAE,GAAGC,OAA+B;IAC/D,qBAAO,KAACO;QAAMJ,aAAU;QAAaJ,WAAWF,GAAGE;QAAa,GAAGC,KAAK;;AAC1E;AAEA,SAASQ,YAAY,EAACT,SAAS,EAAE,GAAGC,OAA+B;IACjE,qBACE,KAACS;QACCN,aAAU;QACVJ,WAAWF,GACT,8EACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASU,SAAS,EAACX,SAAS,EAAE,GAAGC,OAA4B;IAC3D,qBACE,KAACW;QACCR,aAAU;QACVJ,WAAWF,GACT,mEACA,mBACA,qCACA,+GACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASY,UAAU,EAACb,SAAS,EAAE,GAAGC,OAA4B;IAC5D,qBACE,KAACa;QACCV,aAAU;QACVJ,WAAWF,GACT,mGACA,6BACA,2HACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASc,UAAU,EAACf,SAAS,EAAE,GAAGC,OAA4B;IAC5D,qBACE,KAACe;QACCZ,aAAU;QACVJ,WAAWF,GACT,4EACA,8BACA,+CACA,iEACA,gEACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASgB,aAAa,EAACjB,SAAS,EAAE,GAAGC,OAAiC;IACpE,qBACE,KAACiB;QACCd,aAAU;QACVJ,WAAWF,GAAG,+CAA+CE;QAC5D,GAAGC,KAAK;;AAGf;AAEA,SAAQF,KAAK,EAAEM,WAAW,EAAEE,SAAS,EAAEE,WAAW,EAAEE,QAAQ,EAAEE,SAAS,EAAEE,SAAS,EAAEE,YAAY,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.stories.columns.d.ts","sourceRoot":"","sources":["../../../src/components/table/table.stories.columns.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGrD,OAAO,KAAK,EAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAGvE;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,SAAS,CAAC,OAAO,CAAC,EAoErD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,SAAS,CAAC,IAAI,CAAC,EA8BnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAAO,SAAS,CAAC,aAAa,CAAC,EAqEjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,sBAAqB,CAAC;AAC7C,eAAO,MAAM,WAAW,mBAAsB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,4BAA2B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table.stories.columns.tsx"],"sourcesContent":["/**\n * Column definitions for Table stories\n */\n\nimport type {ColumnDef} from '@tanstack/react-table';\nimport {Badge} from 'components/badge';\nimport {Icon} from 'components/icon';\nimport type {JobData, SearchJobData, User} from './table.stories.data';\nimport {TableColumnHeader} from './table-column-header';\n\n/**\n * Create column definitions for JobData\n */\nexport const createJobColumns = (): ColumnDef<JobData>[] => [\n {\n accessorKey: 'name',\n header: ({column}) => <TableColumnHeader column={column} title=\"Name\" />,\n cell: ({row}) => (\n <div className=\"font-medium text-foreground-neutral-base\">{row.getValue('name')}</div>\n ),\n },\n {\n accessorKey: 'total',\n header: ({column}) => <TableColumnHeader column={column} title=\"Total\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-foreground-neutral-muted\" />\n <span className=\"tabular-nums\">{row.getValue('total')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'success',\n header: ({column}) => <TableColumnHeader column={column} title=\"Success\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-tag-success-icon\" />\n <span className=\"tabular-nums\">{row.getValue('success')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'failed',\n header: ({column}) => <TableColumnHeader column={column} title=\"Failed\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-tag-error-icon\" />\n <span className=\"tabular-nums\">{row.getValue('failed')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'neutral',\n header: ({column}) => <TableColumnHeader column={column} title=\"Neutral\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-foreground-neutral-muted\" />\n <span className=\"tabular-nums\">{row.getValue('neutral')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'flaked',\n header: ({column}) => <TableColumnHeader column={column} title=\"Flaked\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-tag-warning-icon\" />\n <span className=\"tabular-nums\">{row.getValue('flaked')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'failureRate',\n header: ({column}) => <TableColumnHeader column={column} title=\"Failure rate\" />,\n cell: ({row}) => <span className=\"tabular-nums\">{row.getValue('failureRate')}</span>,\n },\n {\n accessorKey: 'flakeRate',\n header: ({column}) => <TableColumnHeader column={column} title=\"Flake rate\" />,\n cell: ({row}) => <span className=\"tabular-nums\">{row.getValue('flakeRate')}</span>,\n },\n];\n\n/**\n * Create column definitions for User data\n */\nexport const createUserColumns = (): ColumnDef<User>[] => [\n {\n accessorKey: 'name',\n header: ({column}) => <TableColumnHeader column={column} title=\"Name\" />,\n cell: ({row}) => (\n <div className=\"font-medium text-foreground-neutral-base\">{row.getValue('name')}</div>\n ),\n },\n {\n accessorKey: 'email',\n header: ({column}) => <TableColumnHeader column={column} title=\"Email\" />,\n cell: ({row}) => <div className=\"text-foreground-neutral-subtle\">{row.getValue('email')}</div>,\n },\n {\n accessorKey: 'role',\n header: ({column}) => <TableColumnHeader column={column} title=\"Role\" />,\n cell: ({row}) => <Badge variant=\"neutral\">{row.getValue('role')}</Badge>,\n },\n {\n accessorKey: 'status',\n header: ({column}) => <TableColumnHeader column={column} title=\"Status\" />,\n cell: ({row}) => {\n const status = row.getValue('status') as string;\n return (\n <Badge variant={status === 'active' ? 'success' : 'neutral'}>\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n );\n },\n },\n];\n\n/**\n * Create column definitions for SearchJobData\n */\nexport const createSearchJobColumns = (): ColumnDef<SearchJobData>[] => [\n {\n accessorKey: 'name',\n header: ({column}) => <TableColumnHeader column={column} title=\"Job Name\" />,\n cell: ({row}) => (\n <div className=\"font-medium text-foreground-neutral-base\">{row.getValue('name')}</div>\n ),\n },\n {\n accessorKey: 'repository',\n header: ({column}) => <TableColumnHeader column={column} title=\"Repository\" />,\n cell: ({row}) => (\n <div className=\"text-foreground-neutral-subtle font-mono text-xs\">\n {row.getValue('repository')}\n </div>\n ),\n },\n {\n accessorKey: 'branch',\n header: ({column}) => <TableColumnHeader column={column} title=\"Branch\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <Icon name=\"gitBranchLine\" className=\"size-14 text-foreground-neutral-muted\" />\n <span className=\"font-mono text-xs\">{row.getValue('branch')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'total',\n header: ({column}) => <TableColumnHeader column={column} title=\"Total\" />,\n cell: ({row}) => <span className=\"tabular-nums\">{row.getValue('total')}</span>,\n },\n {\n accessorKey: 'success',\n header: ({column}) => <TableColumnHeader column={column} title=\"Success\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-tag-success-icon\" />\n <span className=\"tabular-nums\">{row.getValue('success')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'failed',\n header: ({column}) => <TableColumnHeader column={column} title=\"Failed\" />,\n cell: ({row}) => (\n <div className=\"flex items-center gap-6\">\n <div className=\"size-6 rounded-full bg-tag-error-icon\" />\n <span className=\"tabular-nums\">{row.getValue('failed')}</span>\n </div>\n ),\n },\n {\n accessorKey: 'status',\n header: ({column}) => <TableColumnHeader column={column} title=\"Status\" />,\n cell: ({row}) => {\n const status = row.getValue('status') as string;\n const variantMap = {\n active: 'info',\n completed: 'success',\n failed: 'error',\n } as const;\n return (\n <Badge variant={variantMap[status as keyof typeof variantMap]}>\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n );\n },\n },\n];\n\n/**\n * Column instances for reuse in stories\n */\nexport const jobColumns = createJobColumns();\nexport const userColumns = createUserColumns();\nexport const searchJobColumns = createSearchJobColumns();\n"],"names":["Badge","Icon","TableColumnHeader","createJobColumns","accessorKey","header","column","title","cell","row","div","className","getValue","span","createUserColumns","variant","status","charAt","toUpperCase","slice","createSearchJobColumns","name","variantMap","active","completed","failed","jobColumns","userColumns","searchJobColumns"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.stories.components.d.ts","sourceRoot":"","sources":["../../../src/components/table/table.stories.components.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;GAEG;AACH,wBAAgB,cAAc,4CAoB7B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAC,WAAW,EAAC,EAAE;IAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAC,2CAyDvF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table.stories.components.tsx"],"sourcesContent":["/**\n * Shared components for Table stories\n */\n\nimport {Icon} from 'components/icon';\nimport {useSearchContext} from 'components/search/search-context';\nimport {\n SearchEmpty,\n SearchFooter,\n SearchGroup,\n SearchInput,\n SearchItem,\n SearchList,\n} from 'components/search/search-modal';\nimport {Text} from 'components/typography';\nimport {useMemo} from 'react';\nimport {searchJobsData} from './table.stories.data';\n\n/**\n * Empty state component for job tables\n */\nexport function JobsEmptyState() {\n return (\n <div className=\"flex flex-col items-center justify-center gap-12 py-48\">\n <div className=\"size-32 rounded-6 bg-transparent border border-border-neutral-strong flex items-center justify-center\">\n <Icon\n name=\"shipfox\"\n className=\"size-16 text-foreground-neutral-subtle\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </div>\n <div className=\"text-center space-y-4\">\n <Text size=\"sm\" className=\"text-foreground-neutral-base\">\n No jobs yet\n </Text>\n <Text size=\"xs\" className=\"text-foreground-neutral-muted\">\n Import past runs or start a runner.\n </Text>\n </div>\n </div>\n );\n}\n\n/**\n * Search modal content component with job filtering\n */\nexport function SearchModalContent({onSelectJob}: {onSelectJob: (jobId: string) => void}) {\n const {searchValue} = useSearchContext();\n\n const modalFilteredData = useMemo(() => {\n if (!searchValue) {\n return searchJobsData;\n }\n const query = searchValue.toLowerCase();\n return searchJobsData.filter(\n (job) =>\n job.name.toLowerCase().includes(query) ||\n job.repository.toLowerCase().includes(query) ||\n job.branch.toLowerCase().includes(query),\n );\n }, [searchValue]);\n\n return (\n <>\n <SearchInput placeholder=\"Search by job name, repository, or branch...\" />\n <SearchList>\n {modalFilteredData.length === 0 ? (\n <SearchEmpty>\n <JobsEmptyState />\n </SearchEmpty>\n ) : (\n <SearchGroup heading={searchValue ? `Results (${modalFilteredData.length})` : 'All Jobs'}>\n {modalFilteredData.map((job) => (\n <SearchItem\n key={job.id}\n value={`${job.id}-${job.name}-${job.repository}-${job.branch}`}\n icon={\n <Icon name=\"gitBranchLine\" className=\"size-16 text-foreground-neutral-subtle\" />\n }\n description={`${job.repository} • ${job.branch}`}\n onSelect={() => onSelectJob(job.id)}\n >\n {job.name}\n </SearchItem>\n ))}\n </SearchGroup>\n )}\n </SearchList>\n <SearchFooter>\n <div className=\"flex items-center justify-between px-8 py-6\">\n <Text size=\"xs\" className=\"text-foreground-neutral-muted\">\n Select a job to filter the table\n </Text>\n <div className=\"flex items-center gap-8\">\n <Icon name=\"cornerDownLeft\" className=\"size-14 text-foreground-neutral-muted\" />\n <Text size=\"xs\" className=\"text-foreground-neutral-muted\">\n to select\n </Text>\n </div>\n </div>\n </SearchFooter>\n </>\n );\n}\n"],"names":["Icon","useSearchContext","SearchEmpty","SearchFooter","SearchGroup","SearchInput","SearchItem","SearchList","Text","useMemo","searchJobsData","JobsEmptyState","div","className","name","color","size","SearchModalContent","onSelectJob","searchValue","modalFilteredData","query","toLowerCase","filter","job","includes","repository","branch","placeholder","length","heading","map","value","id","icon","description","onSelect"],"mappings":";AAAA;;CAEC,GAED,SAAQA,IAAI,QAAO,kBAAkB;AACrC,SAAQC,gBAAgB,QAAO,mCAAmC;AAClE,SACEC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,UAAU,QACL,iCAAiC;AACxC,SAAQC,IAAI,QAAO,wBAAwB;AAC3C,SAAQC,OAAO,QAAO,QAAQ;AAC9B,SAAQC,cAAc,QAAO,uBAAuB;AAEpD;;CAEC,GACD,OAAO,SAASC;IACd,qBACE,MAACC;QAAIC,WAAU;;0BACb,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACb;oBACCc,MAAK;oBACLD,WAAU;oBACVE,OAAM;;;0BAGV,MAACH;gBAAIC,WAAU;;kCACb,KAACL;wBAAKQ,MAAK;wBAAKH,WAAU;kCAA+B;;kCAGzD,KAACL;wBAAKQ,MAAK;wBAAKH,WAAU;kCAAgC;;;;;;AAMlE;AAEA;;CAEC,GACD,OAAO,SAASI,mBAAmB,EAACC,WAAW,EAAyC;IACtF,MAAM,EAACC,WAAW,EAAC,GAAGlB;IAEtB,MAAMmB,oBAAoBX,QAAQ;QAChC,IAAI,CAACU,aAAa;YAChB,OAAOT;QACT;QACA,MAAMW,QAAQF,YAAYG,WAAW;QACrC,OAAOZ,eAAea,MAAM,CAC1B,CAACC,MACCA,IAAIV,IAAI,CAACQ,WAAW,GAAGG,QAAQ,CAACJ,UAChCG,IAAIE,UAAU,CAACJ,WAAW,GAAGG,QAAQ,CAACJ,UACtCG,IAAIG,MAAM,CAACL,WAAW,GAAGG,QAAQ,CAACJ;IAExC,GAAG;QAACF;KAAY;IAEhB,qBACE;;0BACE,KAACd;gBAAYuB,aAAY;;0BACzB,KAACrB;0BACEa,kBAAkBS,MAAM,KAAK,kBAC5B,KAAC3B;8BACC,cAAA,KAACS;mCAGH,KAACP;oBAAY0B,SAASX,cAAc,CAAC,SAAS,EAAEC,kBAAkBS,MAAM,CAAC,CAAC,CAAC,GAAG;8BAC3ET,kBAAkBW,GAAG,CAAC,CAACP,oBACtB,KAAClB;4BAEC0B,OAAO,GAAGR,IAAIS,EAAE,CAAC,CAAC,EAAET,IAAIV,IAAI,CAAC,CAAC,EAAEU,IAAIE,UAAU,CAAC,CAAC,EAAEF,IAAIG,MAAM,EAAE;4BAC9DO,oBACE,KAAClC;gCAAKc,MAAK;gCAAgBD,WAAU;;4BAEvCsB,aAAa,GAAGX,IAAIE,UAAU,CAAC,GAAG,EAAEF,IAAIG,MAAM,EAAE;4BAChDS,UAAU,IAAMlB,YAAYM,IAAIS,EAAE;sCAEjCT,IAAIV,IAAI;2BARJU,IAAIS,EAAE;;;0BAcrB,KAAC9B;0BACC,cAAA,MAACS;oBAAIC,WAAU;;sCACb,KAACL;4BAAKQ,MAAK;4BAAKH,WAAU;sCAAgC;;sCAG1D,MAACD;4BAAIC,WAAU;;8CACb,KAACb;oCAAKc,MAAK;oCAAiBD,WAAU;;8CACtC,KAACL;oCAAKQ,MAAK;oCAAKH,WAAU;8CAAgC;;;;;;;;;AAQtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.stories.data.d.ts","sourceRoot":"","sources":["../../../src/components/table/table.stories.data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,OAAO,EAuBtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,aAAa,EA2BlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,WAAuB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,cAAc,iBAA4B,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,IAAI,EAMvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table.stories.data.ts"],"sourcesContent":["/**\n * Data types, generation functions, and sample data for Table stories\n */\n\nexport type JobData = {\n id: string;\n name: string;\n total: number;\n success: number;\n failed: number;\n neutral: number;\n flaked: number;\n failureRate: string;\n flakeRate: string;\n repository?: string;\n branch?: string;\n};\n\nexport type SearchJobData = {\n id: string;\n name: string;\n total: number;\n success: number;\n failed: number;\n status: 'active' | 'completed' | 'failed';\n repository: string;\n branch: string;\n};\n\nexport type User = {\n id: string;\n name: string;\n email: string;\n role: string;\n status: 'active' | 'inactive';\n};\n\n/**\n * Generate mock job data\n */\nexport const generateJobData = (count: number): JobData[] => {\n return Array.from({length: count}, (_, i) => {\n const total = 40 + (i % 20); // keeps totals in a reasonable range\n const failed = i % 7;\n const flaked = i % 5;\n const neutral = i % 3;\n const success = total - failed - flaked - neutral;\n const failureRate = `${Math.round((failed / total) * 100)}%`;\n const flakeRate = `${Math.round((flaked / total) * 100)}%`;\n return {\n id: `job-${i + 1}`,\n name: 'Dependabot updates',\n total,\n success,\n failed,\n neutral,\n flaked,\n failureRate,\n flakeRate,\n repository: 'shipfox/tooling',\n branch: 'main',\n };\n });\n};\n\n/**\n * Generate mock search job data with varied properties\n */\nexport const generateSearchJobData = (count: number): SearchJobData[] => {\n const jobNames = [\n 'Build & Deploy',\n 'Run Tests',\n 'Code Quality Check',\n 'Security Scan',\n 'Integration Tests',\n 'Performance Tests',\n 'Deploy to Staging',\n 'Deploy to Production',\n 'Database Migration',\n 'Cache Warm-up',\n ];\n const repositories = ['shipfox/tooling', 'shipfox/web', 'shipfox/api', 'shipfox/mobile'];\n const branches = ['main', 'develop', 'staging', 'feat/new-feature'];\n const statuses: Array<'active' | 'completed' | 'failed'> = ['active', 'completed', 'failed'];\n\n return Array.from({length: count}, (_, i) => ({\n id: `job-${i + 1}`,\n name: jobNames[i % jobNames.length],\n total: Math.floor(Math.random() * 100) + 20,\n success: Math.floor(Math.random() * 80) + 10,\n failed: Math.floor(Math.random() * 20),\n status: statuses[i % statuses.length],\n repository: repositories[i % repositories.length],\n branch: branches[i % branches.length],\n }));\n};\n\n/**\n * Sample job data\n */\nexport const jobsData = generateJobData(100);\n\n/**\n * Sample search job data\n */\nexport const searchJobsData = generateSearchJobData(50);\n\n/**\n * Sample user data\n */\nexport const users: User[] = [\n {id: '1', name: 'John Doe', email: 'john@example.com', role: 'Admin', status: 'active'},\n {id: '2', name: 'Jane Smith', email: 'jane@example.com', role: 'User', status: 'active'},\n {id: '3', name: 'Bob Johnson', email: 'bob@example.com', role: 'User', status: 'inactive'},\n {id: '4', name: 'Alice Williams', email: 'alice@example.com', role: 'Editor', status: 'active'},\n {id: '5', name: 'Charlie Brown', email: 'charlie@example.com', role: 'User', status: 'active'},\n];\n"],"names":["generateJobData","count","Array","from","length","_","i","total","failed","flaked","neutral","success","failureRate","Math","round","flakeRate","id","name","repository","branch","generateSearchJobData","jobNames","repositories","branches","statuses","floor","random","status","jobsData","searchJobsData","users","email","role"],"mappings":"AAAA;;CAEC,GAmCD;;CAEC,GACD,OAAO,MAAMA,kBAAkB,CAACC;IAC9B,OAAOC,MAAMC,IAAI,CAAC;QAACC,QAAQH;IAAK,GAAG,CAACI,GAAGC;QACrC,MAAMC,QAAQ,KAAMD,IAAI,IAAK,qCAAqC;QAClE,MAAME,SAASF,IAAI;QACnB,MAAMG,SAASH,IAAI;QACnB,MAAMI,UAAUJ,IAAI;QACpB,MAAMK,UAAUJ,QAAQC,SAASC,SAASC;QAC1C,MAAME,cAAc,GAAGC,KAAKC,KAAK,CAAC,AAACN,SAASD,QAAS,KAAK,CAAC,CAAC;QAC5D,MAAMQ,YAAY,GAAGF,KAAKC,KAAK,CAAC,AAACL,SAASF,QAAS,KAAK,CAAC,CAAC;QAC1D,OAAO;YACLS,IAAI,CAAC,IAAI,EAAEV,IAAI,GAAG;YAClBW,MAAM;YACNV;YACAI;YACAH;YACAE;YACAD;YACAG;YACAG;YACAG,YAAY;YACZC,QAAQ;QACV;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CAACnB;IACpC,MAAMoB,WAAW;QACf;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IACD,MAAMC,eAAe;QAAC;QAAmB;QAAe;QAAe;KAAiB;IACxF,MAAMC,WAAW;QAAC;QAAQ;QAAW;QAAW;KAAmB;IACnE,MAAMC,WAAqD;QAAC;QAAU;QAAa;KAAS;IAE5F,OAAOtB,MAAMC,IAAI,CAAC;QAACC,QAAQH;IAAK,GAAG,CAACI,GAAGC,IAAO,CAAA;YAC5CU,IAAI,CAAC,IAAI,EAAEV,IAAI,GAAG;YAClBW,MAAMI,QAAQ,CAACf,IAAIe,SAASjB,MAAM,CAAC;YACnCG,OAAOM,KAAKY,KAAK,CAACZ,KAAKa,MAAM,KAAK,OAAO;YACzCf,SAASE,KAAKY,KAAK,CAACZ,KAAKa,MAAM,KAAK,MAAM;YAC1ClB,QAAQK,KAAKY,KAAK,CAACZ,KAAKa,MAAM,KAAK;YACnCC,QAAQH,QAAQ,CAAClB,IAAIkB,SAASpB,MAAM,CAAC;YACrCc,YAAYI,YAAY,CAAChB,IAAIgB,aAAalB,MAAM,CAAC;YACjDe,QAAQI,QAAQ,CAACjB,IAAIiB,SAASnB,MAAM,CAAC;QACvC,CAAA;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMwB,WAAW5B,gBAAgB,KAAK;AAE7C;;CAEC,GACD,OAAO,MAAM6B,iBAAiBT,sBAAsB,IAAI;AAExD;;CAEC,GACD,OAAO,MAAMU,QAAgB;IAC3B;QAACd,IAAI;QAAKC,MAAM;QAAYc,OAAO;QAAoBC,MAAM;QAASL,QAAQ;IAAQ;IACtF;QAACX,IAAI;QAAKC,MAAM;QAAcc,OAAO;QAAoBC,MAAM;QAAQL,QAAQ;IAAQ;IACvF;QAACX,IAAI;QAAKC,MAAM;QAAec,OAAO;QAAmBC,MAAM;QAAQL,QAAQ;IAAU;IACzF;QAACX,IAAI;QAAKC,MAAM;QAAkBc,OAAO;QAAqBC,MAAM;QAAUL,QAAQ;IAAQ;IAC9F;QAACX,IAAI;QAAKC,MAAM;QAAiBc,OAAO;QAAuBC,MAAM;QAAQL,QAAQ;IAAQ;CAC9F,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/table/table.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport type {ColumnDef} from '@tanstack/react-table';\nimport {Search, SearchContent, SearchTrigger} from 'components/search';\nimport {Header, Text} from 'components/typography';\nimport {useMemo, useState} from 'react';\nimport {Button} from '../button';\nimport {Icon} from '../icon';\nimport {SearchInline} from '../search/search-inline';\nimport {DataTable} from './data-table';\nimport {jobColumns, searchJobColumns, userColumns} from './table.stories.columns';\nimport {JobsEmptyState, SearchModalContent} from './table.stories.components';\nimport {type JobData, jobsData, searchJobsData, users} from './table.stories.data';\n\nconst meta = {\n title: 'Components/Table',\n parameters: {\n layout: 'padded',\n },\n tags: ['autodocs'],\n} satisfies Meta;\n\nexport default meta;\ntype Story = StoryObj;\n\nexport const Simple: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <DataTable columns={jobColumns.slice(0, 4)} data={jobsData.slice(0, 5)} pagination={false} />\n </div>\n ),\n};\n\nexport const WithPagination: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <DataTable\n columns={jobColumns}\n data={jobsData}\n pagination={true}\n pageSize={10}\n pageSizeOptions={[5, 10, 20, 50]}\n />\n </div>\n ),\n};\n\nexport const EmptyState: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <DataTable columns={jobColumns} data={[]} pagination={true} emptyState={<JobsEmptyState />} />\n </div>\n ),\n};\n\nexport const UserTable: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <DataTable columns={userColumns} data={users} pagination={false} />\n </div>\n ),\n};\n\nexport const CompactTable: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => {\n const compactColumns: ColumnDef<JobData>[] = [\n jobColumns[0], // name\n jobColumns[1], // total\n jobColumns[6], // failureRate\n ];\n\n return (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <DataTable columns={compactColumns} data={jobsData.slice(0, 5)} pagination={false} />\n </div>\n );\n },\n};\n\nexport const JobsOverview: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => {\n const [searchQuery, setSearchQuery] = useState('');\n\n const filteredData = useMemo(\n () => jobsData.filter((job) => job.name.toLowerCase().includes(searchQuery.toLowerCase())),\n [searchQuery],\n );\n\n return (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <div className=\"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-12 sm:gap-0 p-12 border-t border-x border-border-neutral-base rounded-t-8 rounded-b-none bg-background-neutral-base\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-base\">\n Jobs overview\n </Header>\n\n <div className=\"flex items-center gap-12 sm:gap-16 w-full sm:w-auto\">\n <SearchInline\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onClear={() => setSearchQuery('')}\n className=\"flex-1 sm:w-240\"\n />\n <Button variant=\"secondary\" aria-label=\"Insert column left\" className=\"shrink-0\">\n <Icon name=\"insertColumnLeft\" className=\"size-16 text-foreground-neutral-subtle\" />\n </Button>\n </div>\n </div>\n\n <DataTable\n columns={jobColumns}\n data={filteredData}\n pagination={true}\n pageSize={10}\n pageSizeOptions={[10, 20, 50, 100]}\n className=\"rounded-t-none\"\n />\n </div>\n );\n },\n};\n\nexport const WithSearchModal: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => {\n function SearchModalDemo() {\n const [open, setOpen] = useState(false);\n const [selectedJobId, setSelectedJobId] = useState<string | null>(null);\n\n const filteredData = useMemo(\n () =>\n selectedJobId ? searchJobsData.filter((job) => job.id === selectedJobId) : searchJobsData,\n [selectedJobId],\n );\n\n const selectedJob = useMemo(\n () => (selectedJobId ? searchJobsData.find((job) => job.id === selectedJobId) : null),\n [selectedJobId],\n );\n\n const handleSelectJob = (jobId: string) => {\n setSelectedJobId(jobId);\n setOpen(false);\n };\n\n const handleClearSelection = () => {\n setSelectedJobId(null);\n };\n\n return (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <div className=\"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-12 sm:gap-0 p-12 border-t border-x border-border-neutral-base rounded-t-8 rounded-b-none bg-background-neutral-base\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-base\">\n Jobs Breakdown\n </Header>\n\n <div className=\"flex flex-col sm:flex-row items-stretch sm:items-center gap-12 sm:gap-16 w-full sm:w-auto\">\n {selectedJob && (\n <Button\n variant=\"transparentMuted\"\n size=\"sm\"\n onClick={handleClearSelection}\n className=\"text-foreground-neutral-muted gap-4 w-full sm:w-auto justify-center sm:justify-start\"\n iconRight=\"closeLine\"\n >\n Clear filter\n </Button>\n )}\n <Search open={open} onOpenChange={setOpen} shortcutKey=\"meta+k\" shouldFilter={false}>\n <SearchTrigger placeholder=\"Filter jobs...\" className=\"w-full sm:w-280\" />\n <SearchContent aria-describedby={undefined}>\n <SearchModalContent onSelectJob={handleSelectJob} />\n </SearchContent>\n </Search>\n </div>\n </div>\n\n <DataTable\n columns={searchJobColumns}\n data={filteredData}\n pagination={true}\n pageSize={10}\n pageSizeOptions={[10, 25, 50]}\n className=\"rounded-t-none\"\n />\n </div>\n );\n }\n\n return <SearchModalDemo />;\n },\n};\n\nexport const WithRowSelection: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'extraLarge',\n },\n },\n render: () => (\n <div className=\"w-full min-h-screen bg-background-neutral-background p-24\">\n <div className=\"space-y-16\">\n <div>\n <Header variant=\"h3\" className=\"text-foreground-neutral-base mb-8\">\n Selectable Rows\n </Header>\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n Use the checkboxes to select rows. The pagination footer shows the count of selected\n rows.\n </Text>\n </div>\n <DataTable\n columns={jobColumns}\n data={jobsData}\n pagination={true}\n pageSize={10}\n pageSizeOptions={[5, 10, 20, 50]}\n showSelectedCount={true}\n />\n </div>\n </div>\n ),\n};\n"],"names":["Search","SearchContent","SearchTrigger","Header","Text","useMemo","useState","Button","Icon","SearchInline","DataTable","jobColumns","searchJobColumns","userColumns","JobsEmptyState","SearchModalContent","jobsData","searchJobsData","users","meta","title","parameters","layout","tags","Simple","viewport","defaultViewport","render","div","className","columns","slice","data","pagination","WithPagination","pageSize","pageSizeOptions","EmptyState","emptyState","UserTable","CompactTable","compactColumns","JobsOverview","searchQuery","setSearchQuery","filteredData","filter","job","name","toLowerCase","includes","variant","placeholder","value","onChange","e","target","onClear","aria-label","WithSearchModal","SearchModalDemo","open","setOpen","selectedJobId","setSelectedJobId","id","selectedJob","find","handleSelectJob","jobId","handleClearSelection","size","onClick","iconRight","onOpenChange","shortcutKey","shouldFilter","aria-describedby","undefined","onSelectJob","WithRowSelection","showSelectedCount"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/tabs/index.ts"],"sourcesContent":["export * from './tabs';\n"],"names":[],"mappings":"AAAA,cAAc,SAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tabs.tsx"],"names":[],"mappings":"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"}
|