@wakastellar/ui 2.3.5 → 3.0.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/blocks/antivirus-dashboard/index.d.ts +44 -0
- package/dist/blocks/clamav-service-status/index.d.ts +35 -0
- package/dist/blocks/file-scan-uploader/index.d.ts +29 -0
- package/dist/blocks/index.d.ts +18 -9
- package/dist/blocks/quarantine-manager/index.d.ts +27 -0
- package/dist/blocks/scan-history-log/index.d.ts +28 -0
- package/dist/blocks/scan-policy-editor/index.d.ts +27 -0
- package/dist/blocks/scan-report-generator/index.d.ts +47 -0
- package/dist/blocks/signature-database-manager/index.d.ts +39 -0
- package/dist/blocks/threat-alert-banner/index.d.ts +26 -0
- package/dist/components/index.d.ts +4 -4
- package/dist/components/waka-signature-pad/index.d.ts +1 -1
- package/dist/exceljs.min-BcLLX0PC.js +29 -0
- package/dist/exceljs.min-KOayaaQ4.mjs +23013 -0
- package/dist/export.cjs.js +1 -1
- package/dist/export.d.ts +2 -2
- package/dist/export.es.js +1 -1
- package/dist/index.cjs.js +136 -136
- package/dist/index.es.js +29978 -27215
- package/dist/stories/Button.d.ts +14 -0
- package/dist/stories/Button.stories.d.ts +8 -0
- package/dist/stories/Header.d.ts +11 -0
- package/dist/stories/Header.stories.d.ts +6 -0
- package/dist/stories/Page.d.ts +2 -0
- package/dist/stories/Page.stories.d.ts +6 -0
- package/dist/useDataTableImport-COVnvslz.js +9 -0
- package/dist/useDataTableImport-DAlxBY8w.mjs +237 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/package.json +14 -6
- package/src/blocks/activity-timeline/ActivityTimeline.stories.tsx +460 -0
- package/src/blocks/antivirus-dashboard/AntivirusDashboard.stories.tsx +291 -0
- package/src/blocks/antivirus-dashboard/index.tsx +525 -0
- package/src/blocks/apm-overview/APMOverview.stories.tsx +435 -0
- package/src/blocks/auth-2fa/Auth2FA.stories.tsx +308 -0
- package/src/blocks/calendar-view/CalendarView.stories.tsx +398 -0
- package/src/blocks/chat/Chat.stories.tsx +466 -0
- package/src/blocks/chat-interface/ChatInterface.stories.tsx +412 -0
- package/src/blocks/checkout-flow/CheckoutFlow.stories.tsx +408 -0
- package/src/blocks/cicd-builder/CICDBuilder.stories.tsx +499 -0
- package/src/blocks/clamav-service-status/ClamAVServiceStatus.stories.tsx +195 -0
- package/src/blocks/clamav-service-status/index.tsx +370 -0
- package/src/blocks/cloud-cost-dashboard/CloudCostDashboard.stories.tsx +356 -0
- package/src/blocks/container-orchestrator/ContainerOrchestrator.stories.tsx +461 -0
- package/src/blocks/dashboard/Dashboard.stories.tsx +559 -0
- package/src/blocks/dashboard-kpi/DashboardKPI.stories.tsx +422 -0
- package/src/blocks/database-admin/DatabaseAdmin.stories.tsx +393 -0
- package/src/blocks/deployment-dashboard/DeploymentDashboard.stories.tsx +457 -0
- package/src/blocks/empty-states/EmptyStates.stories.tsx +467 -0
- package/src/blocks/error-pages/ErrorPages.stories.tsx +401 -0
- package/src/blocks/faq/FAQ.stories.tsx +416 -0
- package/src/blocks/file-manager/FileManager.stories.tsx +413 -0
- package/src/blocks/file-scan-uploader/FileScanUploader.stories.tsx +257 -0
- package/src/blocks/file-scan-uploader/index.tsx +311 -0
- package/src/blocks/footer/Footer.stories.tsx +328 -0
- package/src/blocks/gitops-sync-status/GitOpsSyncStatus.stories.tsx +529 -0
- package/src/blocks/header/WakaHeader.stories.tsx +455 -0
- package/src/blocks/headtab/Headtab.stories.tsx +369 -0
- package/src/blocks/i18n-editor/I18nEditor.stories.tsx +451 -0
- package/src/blocks/incident-manager/IncidentManager.stories.tsx +464 -0
- package/src/blocks/index.ts +163 -11
- package/src/blocks/infrastructure-map/InfrastructureMap.stories.tsx +533 -0
- package/src/blocks/kanban-board/KanbanBoard.stories.tsx +494 -0
- package/src/blocks/landing/WakaLanding.stories.tsx +449 -0
- package/src/blocks/language-selector/LanguageSelector.stories.tsx +345 -0
- package/src/blocks/layout/Layout.stories.tsx +373 -0
- package/src/blocks/login/Login.stories.tsx +443 -0
- package/src/blocks/on-call-schedule/OnCallSchedule.stories.tsx +381 -0
- package/src/blocks/player-profile/PlayerProfile.stories.tsx +316 -0
- package/src/blocks/pricing/WakaPricing.stories.tsx +530 -0
- package/src/blocks/profile/Profile.stories.tsx +371 -0
- package/src/blocks/quarantine-manager/QuarantineManager.stories.tsx +209 -0
- package/src/blocks/quarantine-manager/index.tsx +435 -0
- package/src/blocks/release-notes/ReleaseNotes.stories.tsx +431 -0
- package/src/blocks/scan-history-log/ScanHistoryLog.stories.tsx +231 -0
- package/src/blocks/scan-history-log/index.tsx +406 -0
- package/src/blocks/scan-policy-editor/ScanPolicyEditor.stories.tsx +106 -0
- package/src/blocks/scan-policy-editor/index.tsx +418 -0
- package/src/blocks/scan-report-generator/ScanReportGenerator.stories.tsx +232 -0
- package/src/blocks/scan-report-generator/index.tsx +612 -0
- package/src/blocks/settings/Settings.stories.tsx +520 -0
- package/src/blocks/sidebar/WakaSidebar.stories.tsx +513 -0
- package/src/blocks/sidebar/index.tsx +2 -1
- package/src/blocks/signature-database-manager/SignatureDatabaseManager.stories.tsx +279 -0
- package/src/blocks/signature-database-manager/index.tsx +470 -0
- package/src/blocks/theme-creator-block/ThemeCreatorBlock.stories.tsx +370 -0
- package/src/blocks/theme-creator-block/index.tsx +16 -2
- package/src/blocks/threat-alert-banner/ThreatAlertBanner.stories.tsx +152 -0
- package/src/blocks/threat-alert-banner/index.tsx +320 -0
- package/src/blocks/user-management/UserManagement.stories.tsx +411 -0
- package/src/blocks/wizard/Wizard.stories.tsx +683 -0
- package/src/components/DataTable/DataTable.stories.tsx +203 -0
- package/src/components/DataTable/hooks/useDataTableExport.ts +38 -31
- package/src/components/DataTable/hooks/useDataTableImport.ts +31 -20
- package/src/components/accordion/Accordion.stories.tsx +93 -0
- package/src/components/alert/Alert.stories.tsx +95 -0
- package/src/components/alert-dialog/AlertDialog.stories.tsx +126 -0
- package/src/components/aspect-ratio/AspectRatio.stories.tsx +118 -0
- package/src/components/avatar/Avatar.stories.tsx +104 -0
- package/src/components/button/Button.stories.tsx +12 -1
- package/src/components/calendar/Calendar.stories.tsx +102 -0
- package/src/components/card/Card.stories.tsx +125 -0
- package/src/components/checkbox/Checkbox.stories.tsx +100 -0
- package/src/components/code/Code.stories.tsx +402 -0
- package/src/components/collapsible/Collapsible.stories.tsx +123 -0
- package/src/components/command/Command.stories.tsx +207 -0
- package/src/components/context-menu/ContextMenu.stories.tsx +220 -0
- package/src/components/dialog/Dialog.stories.tsx +157 -0
- package/src/components/dropdown-menu/DropdownMenu.stories.tsx +225 -0
- package/src/components/error-boundary/ErrorBoundary.stories.tsx +125 -0
- package/src/components/form/Form.stories.tsx +413 -0
- package/src/components/hover-card/HoverCard.stories.tsx +148 -0
- package/src/components/index.ts +45 -4
- package/src/components/input-otp/InputOTP.stories.tsx +255 -0
- package/src/components/label/Label.stories.tsx +68 -0
- package/src/components/language-selector/LanguageSelector.stories.tsx +112 -0
- package/src/components/menubar/Menubar.stories.tsx +278 -0
- package/src/components/navigation-menu/NavigationMenu.stories.tsx +202 -0
- package/src/components/popover/Popover.stories.tsx +199 -0
- package/src/components/progress/Progress.stories.tsx +104 -0
- package/src/components/radio-group/RadioGroup.stories.tsx +138 -0
- package/src/components/scroll-area/ScrollArea.stories.tsx +153 -0
- package/src/components/select/Select.stories.tsx +146 -0
- package/src/components/separator/Separator.stories.tsx +117 -0
- package/src/components/sheet/Sheet.stories.tsx +195 -0
- package/src/components/skeleton/Skeleton.stories.tsx +114 -0
- package/src/components/slider/Slider.stories.tsx +157 -0
- package/src/components/switch/Switch.stories.tsx +114 -0
- package/src/components/table/Table.stories.tsx +153 -0
- package/src/components/tabs/Tabs.stories.tsx +155 -0
- package/src/components/textarea/Textarea.stories.tsx +116 -0
- package/src/components/theme-selector/ThemeSelector.stories.tsx +77 -0
- package/src/components/toast/Toast.stories.tsx +160 -0
- package/src/components/toaster/Toaster.stories.tsx +67 -0
- package/src/components/toggle/Toggle.stories.tsx +125 -0
- package/src/components/tooltip/Tooltip.stories.tsx +133 -0
- package/src/components/typography/Typography.stories.tsx +207 -0
- package/src/components/waka-3d-pie-chart/Waka3DPieChart.stories.tsx +308 -0
- package/src/components/waka-achievement-unlock/WakaAchievementUnlock.stories.tsx +353 -0
- package/src/components/waka-activity-feed/WakaActivityFeed.stories.tsx +116 -0
- package/src/components/waka-ad-banner/WakaAdBanner.stories.tsx +102 -0
- package/src/components/waka-ad-fallback/WakaAdFallback.stories.tsx +117 -0
- package/src/components/waka-ad-inline/WakaAdInline.stories.tsx +105 -0
- package/src/components/waka-ad-interstitial/WakaAdInterstitial.stories.tsx +92 -0
- package/src/components/waka-ad-placeholder/WakaAdPlaceholder.stories.tsx +89 -0
- package/src/components/waka-ad-provider/WakaAdProvider.stories.tsx +110 -0
- package/src/components/waka-ad-sidebar/WakaAdSidebar.stories.tsx +89 -0
- package/src/components/waka-ad-sidebar/index.tsx +3 -2
- package/src/components/waka-ad-sticky-footer/WakaAdStickyFooter.stories.tsx +88 -0
- package/src/components/waka-address-autocomplete/WakaAddressAutocomplete.stories.tsx +46 -0
- package/src/components/waka-admincrumb/WakaAdmincrumb.stories.tsx +166 -0
- package/src/components/waka-alert-panel/WakaAlertPanel.stories.tsx +45 -0
- package/src/components/waka-alert-stack/WakaAlertStack.stories.tsx +62 -0
- package/src/components/waka-allocation-matrix/WakaAllocationMatrix.stories.tsx +68 -0
- package/src/components/waka-approval-chain/WakaApprovalChain.stories.tsx +63 -0
- package/src/components/waka-artifact-list/WakaArtifactList.stories.tsx +258 -0
- package/src/components/waka-audit-log/WakaAuditLog.stories.tsx +73 -0
- package/src/components/waka-autocomplete/WakaAutocomplete.stories.tsx +184 -0
- package/src/components/waka-badge-showcase/WakaBadgeShowcase.stories.tsx +269 -0
- package/src/components/waka-barcode/WakaBarcode.stories.tsx +227 -0
- package/src/components/waka-biometric-prompt/WakaBiometricPrompt.stories.tsx +48 -0
- package/src/components/waka-bottom-sheet/WakaBottomSheet.stories.tsx +408 -0
- package/src/components/waka-breadcrumb/WakaBreadcrumb.stories.tsx +120 -0
- package/src/components/waka-breadcrumb-path/WakaBreadcrumbPath.stories.tsx +40 -0
- package/src/components/waka-budget-burn/WakaBudgetBurn.stories.tsx +86 -0
- package/src/components/waka-build-matrix/WakaBuildMatrix.stories.tsx +328 -0
- package/src/components/waka-capacity-planner/WakaCapacityPlanner.stories.tsx +273 -0
- package/src/components/waka-carousel/WakaCarousel.stories.tsx +296 -0
- package/src/components/waka-cart-summary/WakaCartSummary.stories.tsx +176 -0
- package/src/components/waka-cart-summary/index.tsx +19 -10
- package/src/components/waka-challenge-timer/WakaChallengeTimer.stories.tsx +98 -0
- package/src/components/waka-charts/WakaCharts.stories.tsx +519 -0
- package/src/components/waka-chat-bubble/WakaChatBubble.stories.tsx +118 -0
- package/src/components/waka-checklist/WakaChecklist.stories.tsx +71 -0
- package/src/components/waka-checkout-stepper/WakaCheckoutStepper.stories.tsx +102 -0
- package/src/components/waka-cohort-table/WakaCohortTable.stories.tsx +56 -0
- package/src/components/waka-color-picker/WakaColorPicker.stories.tsx +144 -0
- package/src/components/waka-combo-counter/WakaComboCounter.stories.tsx +128 -0
- package/src/components/waka-combobox/WakaCombobox.stories.tsx +250 -0
- package/src/components/waka-command-bar/WakaCommandBar.stories.tsx +45 -0
- package/src/components/waka-compare-period/WakaComparePeriod.stories.tsx +76 -0
- package/src/components/waka-config-comparator/WakaConfigComparator.stories.tsx +143 -0
- package/src/components/waka-connection-matrix/WakaConnectionMatrix.stories.tsx +52 -0
- package/src/components/waka-container-list/WakaContainerList.stories.tsx +315 -0
- package/src/components/waka-content-recommendation/WakaContentRecommendation.stories.tsx +41 -0
- package/src/components/waka-contribution-graph/WakaContributionGraph.stories.tsx +354 -0
- package/src/components/waka-cost-breakdown/WakaCostBreakdown.stories.tsx +348 -0
- package/src/components/waka-coupon-input/WakaCouponInput.stories.tsx +126 -0
- package/src/components/waka-credit-card-input/WakaCreditCardInput.stories.tsx +120 -0
- package/src/components/waka-daily-reward/WakaDailyReward.stories.tsx +365 -0
- package/src/components/waka-database-card/WakaDatabaseCard.stories.tsx +306 -0
- package/src/components/waka-date-range-picker/WakaDateRangePicker.stories.tsx +339 -0
- package/src/components/waka-datetime-picker/WakaDateTimePicker.stories.tsx +317 -0
- package/src/components/waka-datetime-picker.form-integration/WakaDateTimePickerForm.stories.tsx +79 -0
- package/src/components/waka-dependency-tree/WakaDependencyTree.stories.tsx +72 -0
- package/src/components/waka-deployment-lane/WakaDeploymentLane.stories.tsx +292 -0
- package/src/components/waka-device-trust/WakaDeviceTrust.stories.tsx +109 -0
- package/src/components/waka-dock/WakaDock.stories.tsx +332 -0
- package/src/components/waka-drawer/WakaDrawer.stories.tsx +437 -0
- package/src/components/waka-empty-state/WakaEmptyState.stories.tsx +87 -0
- package/src/components/waka-env-var-editor/WakaEnvVarEditor.stories.tsx +263 -0
- package/src/components/waka-error-shake/WakaErrorShake.stories.tsx +410 -0
- package/src/components/waka-feature-announcement/WakaFeatureAnnouncement.stories.tsx +47 -0
- package/src/components/waka-feature-flag-row/WakaFeatureFlagRow.stories.tsx +188 -0
- package/src/components/waka-file-upload/WakaFileUpload.stories.tsx +183 -0
- package/src/components/waka-floating-nav/WakaFloatingNav.stories.tsx +53 -0
- package/src/components/waka-flow-diagram/WakaFlowDiagram.stories.tsx +365 -0
- package/src/components/waka-funnel-chart/WakaFunnelChart.stories.tsx +281 -0
- package/src/components/waka-glow-card/WakaGlowCard.stories.tsx +274 -0
- package/src/components/waka-goal-progress/WakaGoalProgress.stories.tsx +137 -0
- package/src/components/waka-haptic-button/WakaHapticButton.stories.tsx +349 -0
- package/src/components/waka-health-pulse/WakaHealthPulse.stories.tsx +293 -0
- package/src/components/waka-heatmap/WakaHeatmap.stories.tsx +376 -0
- package/src/components/waka-hotspot/WakaHotspot.stories.tsx +56 -0
- package/src/components/waka-image/WakaImage.stories.tsx +255 -0
- package/src/components/waka-incident-timeline/WakaIncidentTimeline.stories.tsx +300 -0
- package/src/components/waka-invoice-preview/WakaInvoicePreview.stories.tsx +169 -0
- package/src/components/waka-kanban/WakaKanban.stories.tsx +399 -0
- package/src/components/waka-kpi-dashboard/WakaKpiDashboard.stories.tsx +46 -0
- package/src/components/waka-kubernetes-overview/WakaKubernetesOverview.stories.tsx +281 -0
- package/src/components/waka-leaderboard/WakaLeaderboard.stories.tsx +300 -0
- package/src/components/waka-level-progress/WakaLevelProgress.stories.tsx +332 -0
- package/src/components/waka-liquid-button/WakaLiquidButton.stories.tsx +45 -0
- package/src/components/waka-loading-orbit/WakaLoadingOrbit.stories.tsx +413 -0
- package/src/components/waka-log-viewer/WakaLogViewer.stories.tsx +312 -0
- package/src/components/waka-loot-box/WakaLootBox.stories.tsx +374 -0
- package/src/components/waka-magic-link/WakaMagicLink.stories.tsx +61 -0
- package/src/components/waka-magnetic-button/WakaMagneticButton.stories.tsx +40 -0
- package/src/components/waka-mention-input/WakaMentionInput.stories.tsx +140 -0
- package/src/components/waka-metric-sparkline/WakaMetricSparkline.stories.tsx +312 -0
- package/src/components/waka-migration-list/WakaMigrationList.stories.tsx +289 -0
- package/src/components/waka-milestone-road/WakaMilestoneRoad.stories.tsx +143 -0
- package/src/components/waka-modal/WakaModal.stories.tsx +434 -0
- package/src/components/waka-morph-button/WakaMorphButton.stories.tsx +405 -0
- package/src/components/waka-network-topology/WakaNetworkTopology.stories.tsx +364 -0
- package/src/components/waka-notifications/WakaNotifications.stories.tsx +290 -0
- package/src/components/waka-number-input/WakaNumberInput.stories.tsx +282 -0
- package/src/components/waka-orbital-menu/WakaOrbitalMenu.stories.tsx +54 -0
- package/src/components/waka-order-tracker/WakaOrderTracker.stories.tsx +163 -0
- package/src/components/waka-outstream-video/WakaOutstreamVideo.stories.tsx +94 -0
- package/src/components/waka-pagination/WakaPagination.stories.tsx +158 -0
- package/src/components/waka-password-strength/WakaPasswordStrength.stories.tsx +182 -0
- package/src/components/waka-payment-method-picker/WakaPaymentMethodPicker.stories.tsx +141 -0
- package/src/components/waka-permission-matrix/WakaPermissionMatrix.stories.tsx +124 -0
- package/src/components/waka-phone-input/WakaPhoneInput.stories.tsx +56 -0
- package/src/components/waka-pipeline-view/WakaPipelineView.stories.tsx +386 -0
- package/src/components/waka-player-card/WakaPlayerCard.stories.tsx +333 -0
- package/src/components/waka-pod-card/WakaPodCard.stories.tsx +435 -0
- package/src/components/waka-points-popup/WakaPointsPopup.stories.tsx +96 -0
- package/src/components/waka-power-up/WakaPowerUp.stories.tsx +121 -0
- package/src/components/waka-presence-indicator/WakaPresenceIndicator.stories.tsx +49 -0
- package/src/components/waka-pricing-table/WakaPricingTable.stories.tsx +159 -0
- package/src/components/waka-product-card/WakaProductCard.stories.tsx +202 -0
- package/src/components/waka-progress-onboarding/WakaProgressOnboarding.stories.tsx +57 -0
- package/src/components/waka-pull-to-refresh/WakaPullToRefresh.stories.tsx +51 -0
- package/src/components/waka-qrcode/WakaQRCode.stories.tsx +232 -0
- package/src/components/waka-query-explain/WakaQueryExplain.stories.tsx +407 -0
- package/src/components/waka-quest-card/WakaQuestCard.stories.tsx +394 -0
- package/src/components/waka-quota-bar/WakaQuotaBar.stories.tsx +435 -0
- package/src/components/waka-radar-score/WakaRadarScore.stories.tsx +372 -0
- package/src/components/waka-rank-badge/WakaRankBadge.stories.tsx +108 -0
- package/src/components/waka-rating-input/WakaRatingInput.stories.tsx +51 -0
- package/src/components/waka-reaction-picker/WakaReactionPicker.stories.tsx +52 -0
- package/src/components/waka-region-map/WakaRegionMap.stories.tsx +181 -0
- package/src/components/waka-resource-gauge/WakaResourceGauge.stories.tsx +366 -0
- package/src/components/waka-resource-pool/WakaResourcePool.stories.tsx +70 -0
- package/src/components/waka-rich-text-editor/WakaRichTextEditor.stories.tsx +149 -0
- package/src/components/waka-rollback-slider/WakaRollbackSlider.stories.tsx +41 -0
- package/src/components/waka-sankey-diagram/WakaSankeyDiagram.stories.tsx +389 -0
- package/src/components/waka-schedule-picker/WakaSchedulePicker.stories.tsx +64 -0
- package/src/components/waka-scratch-card/WakaScratchCard.stories.tsx +388 -0
- package/src/components/waka-season-pass/WakaSeasonPass.stories.tsx +107 -0
- package/src/components/waka-secret-card/WakaSecretCard.stories.tsx +314 -0
- package/src/components/waka-security-scan-result/WakaSecurityScanResult.stories.tsx +146 -0
- package/src/components/waka-security-score/WakaSecurityScore.stories.tsx +63 -0
- package/src/components/waka-segmented-control/WakaSegmentedControl.stories.tsx +309 -0
- package/src/components/waka-server-rack/WakaServerRack.stories.tsx +382 -0
- package/src/components/waka-service-graph/WakaServiceGraph.stories.tsx +262 -0
- package/src/components/waka-session-manager/WakaSessionManager.stories.tsx +68 -0
- package/src/components/waka-signature-pad/WakaSignaturePad.stories.tsx +159 -0
- package/src/components/waka-signature-pad/index.tsx +5 -3
- package/src/components/waka-skeleton-wave/WakaSkeletonWave.stories.tsx +321 -0
- package/src/components/waka-skill-tree/WakaSkillTree.stories.tsx +308 -0
- package/src/components/waka-sla-tracker/WakaSlaTracker.stories.tsx +65 -0
- package/src/components/waka-slider-range/WakaSliderRange.stories.tsx +66 -0
- package/src/components/waka-spin-wheel/WakaSpinWheel.stories.tsx +368 -0
- package/src/components/waka-spinner/WakaSpinner.stories.tsx +156 -0
- package/src/components/waka-sponsored-badge/WakaSponsoredBadge.stories.tsx +60 -0
- package/src/components/waka-sponsored-card/WakaSponsoredCard.stories.tsx +64 -0
- package/src/components/waka-sponsored-feed/WakaSponsoredFeed.stories.tsx +58 -0
- package/src/components/waka-spotlight/WakaSpotlight.stories.tsx +53 -0
- package/src/components/waka-stat/WakaStat.stories.tsx +334 -0
- package/src/components/waka-stats-hexagon/WakaStatsHexagon.stories.tsx +161 -0
- package/src/components/waka-status-matrix/WakaStatusMatrix.stories.tsx +331 -0
- package/src/components/waka-stepper/WakaStepper.stories.tsx +195 -0
- package/src/components/waka-streak-counter/WakaStreakCounter.stories.tsx +235 -0
- package/src/components/waka-success-explosion/WakaSuccessExplosion.stories.tsx +389 -0
- package/src/components/waka-swipe-card/WakaSwipeCard.stories.tsx +51 -0
- package/src/components/waka-tabs-morph/WakaTabsMorph.stories.tsx +471 -0
- package/src/components/waka-tag-input/WakaTagInput.stories.tsx +224 -0
- package/src/components/waka-team-banner/WakaTeamBanner.stories.tsx +50 -0
- package/src/components/waka-terminal-output/WakaTerminalOutput.stories.tsx +351 -0
- package/src/components/waka-test-report/WakaTestReport.stories.tsx +322 -0
- package/src/components/waka-theme-creator/WakaThemeCreator.stories.tsx +58 -0
- package/src/components/waka-theme-manager/WakaThemeManager.stories.tsx +298 -0
- package/src/components/waka-theme-manager/index.tsx +6 -11
- package/src/components/waka-thread-view/WakaThreadView.stories.tsx +143 -0
- package/src/components/waka-tilt-card/WakaTiltCard.stories.tsx +300 -0
- package/src/components/waka-time-picker/WakaTimePicker.stories.tsx +227 -0
- package/src/components/waka-timeline/WakaTimeline.stories.tsx +230 -0
- package/src/components/waka-tooltip-tour/WakaTooltipTour.stories.tsx +92 -0
- package/src/components/waka-tour-guide/WakaTourGuide.stories.tsx +89 -0
- package/src/components/waka-tournament-bracket/WakaTournamentBracket.stories.tsx +375 -0
- package/src/components/waka-trace-viewer/WakaTraceViewer.stories.tsx +445 -0
- package/src/components/waka-tree/WakaTree.stories.tsx +359 -0
- package/src/components/waka-treemap-chart/WakaTreemapChart.stories.tsx +483 -0
- package/src/components/waka-treemap-chart/index.tsx +2 -2
- package/src/components/waka-two-factor-setup/WakaTwoFactorSetup.stories.tsx +142 -0
- package/src/components/waka-typewriter/WakaTypewriter.stories.tsx +366 -0
- package/src/components/waka-typing-indicator/WakaTypingIndicator.stories.tsx +134 -0
- package/src/components/waka-versus-card/WakaVersusCard.stories.tsx +530 -0
- package/src/components/waka-video/WakaVideo.stories.tsx +203 -0
- package/src/components/waka-video-ad/WakaVideoAd.stories.tsx +138 -0
- package/src/components/waka-video-call/WakaVideoCall.stories.tsx +186 -0
- package/src/components/waka-video-overlay/WakaVideoOverlay.stories.tsx +100 -0
- package/src/components/waka-virtual-list/WakaVirtualList.stories.tsx +273 -0
- package/src/components/waka-voice-message/WakaVoiceMessage.stories.tsx +190 -0
- package/src/components/waka-welcome-modal/WakaWelcomeModal.stories.tsx +87 -0
- package/src/components/waka-xp-bar/WakaXPBar.stories.tsx +305 -0
- package/dist/useDataTableImport-D8R2HQl6.mjs +0 -229
- package/dist/useDataTableImport-S_hhA5Wo.js +0 -9
- package/src/components/DataTable/README.md +0 -446
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import { Progress } from './index'
|
|
3
|
+
import * as React from 'react'
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Progress> = {
|
|
6
|
+
title: 'Components/Progress',
|
|
7
|
+
component: Progress,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'centered',
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: 'Displays an indicator showing the completion progress of a task.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
tags: ['autodocs'],
|
|
17
|
+
argTypes: {
|
|
18
|
+
value: {
|
|
19
|
+
control: { type: 'range', min: 0, max: 100, step: 1 },
|
|
20
|
+
description: 'The progress value (0-100)',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default meta
|
|
26
|
+
type Story = StoryObj<typeof Progress>
|
|
27
|
+
|
|
28
|
+
export const Default: Story = {
|
|
29
|
+
args: {
|
|
30
|
+
value: 60,
|
|
31
|
+
className: 'w-[300px]',
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const Values: Story = {
|
|
36
|
+
render: () => (
|
|
37
|
+
<div className="flex flex-col gap-4 w-[300px]">
|
|
38
|
+
<div className="space-y-1">
|
|
39
|
+
<span className="text-sm text-muted-foreground">0%</span>
|
|
40
|
+
<Progress value={0} />
|
|
41
|
+
</div>
|
|
42
|
+
<div className="space-y-1">
|
|
43
|
+
<span className="text-sm text-muted-foreground">25%</span>
|
|
44
|
+
<Progress value={25} />
|
|
45
|
+
</div>
|
|
46
|
+
<div className="space-y-1">
|
|
47
|
+
<span className="text-sm text-muted-foreground">50%</span>
|
|
48
|
+
<Progress value={50} />
|
|
49
|
+
</div>
|
|
50
|
+
<div className="space-y-1">
|
|
51
|
+
<span className="text-sm text-muted-foreground">75%</span>
|
|
52
|
+
<Progress value={75} />
|
|
53
|
+
</div>
|
|
54
|
+
<div className="space-y-1">
|
|
55
|
+
<span className="text-sm text-muted-foreground">100%</span>
|
|
56
|
+
<Progress value={100} />
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
),
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const Animated: Story = {
|
|
63
|
+
render: function AnimatedProgress() {
|
|
64
|
+
const [progress, setProgress] = React.useState(13)
|
|
65
|
+
|
|
66
|
+
React.useEffect(() => {
|
|
67
|
+
const timer = setTimeout(() => setProgress(66), 500)
|
|
68
|
+
return () => clearTimeout(timer)
|
|
69
|
+
}, [])
|
|
70
|
+
|
|
71
|
+
return <Progress value={progress} className="w-[300px]" />
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const Sizes: Story = {
|
|
76
|
+
render: () => (
|
|
77
|
+
<div className="flex flex-col gap-4 w-[300px]">
|
|
78
|
+
<div className="space-y-1">
|
|
79
|
+
<span className="text-sm text-muted-foreground">Small (h-2)</span>
|
|
80
|
+
<Progress value={60} className="h-2" />
|
|
81
|
+
</div>
|
|
82
|
+
<div className="space-y-1">
|
|
83
|
+
<span className="text-sm text-muted-foreground">Default (h-4)</span>
|
|
84
|
+
<Progress value={60} />
|
|
85
|
+
</div>
|
|
86
|
+
<div className="space-y-1">
|
|
87
|
+
<span className="text-sm text-muted-foreground">Large (h-6)</span>
|
|
88
|
+
<Progress value={60} className="h-6" />
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
),
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export const WithLabel: Story = {
|
|
95
|
+
render: () => (
|
|
96
|
+
<div className="w-[300px] space-y-2">
|
|
97
|
+
<div className="flex justify-between text-sm">
|
|
98
|
+
<span>Uploading...</span>
|
|
99
|
+
<span className="text-muted-foreground">73%</span>
|
|
100
|
+
</div>
|
|
101
|
+
<Progress value={73} />
|
|
102
|
+
</div>
|
|
103
|
+
),
|
|
104
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import { RadioGroup, RadioGroupItem } from './index'
|
|
3
|
+
import { Label } from '../label'
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof RadioGroup> = {
|
|
6
|
+
title: 'Components/RadioGroup',
|
|
7
|
+
component: RadioGroup,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'centered',
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: 'A set of checkable buttons where only one can be checked at a time.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
tags: ['autodocs'],
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default meta
|
|
20
|
+
type Story = StoryObj<typeof RadioGroup>
|
|
21
|
+
|
|
22
|
+
export const Default: Story = {
|
|
23
|
+
args: {
|
|
24
|
+
defaultValue: 'comfortable',
|
|
25
|
+
},
|
|
26
|
+
render: (args) => (
|
|
27
|
+
<RadioGroup {...args}>
|
|
28
|
+
<div className="flex items-center space-x-2">
|
|
29
|
+
<RadioGroupItem value="default" id="r1" />
|
|
30
|
+
<Label htmlFor="r1">Default</Label>
|
|
31
|
+
</div>
|
|
32
|
+
<div className="flex items-center space-x-2">
|
|
33
|
+
<RadioGroupItem value="comfortable" id="r2" />
|
|
34
|
+
<Label htmlFor="r2">Comfortable</Label>
|
|
35
|
+
</div>
|
|
36
|
+
<div className="flex items-center space-x-2">
|
|
37
|
+
<RadioGroupItem value="compact" id="r3" />
|
|
38
|
+
<Label htmlFor="r3">Compact</Label>
|
|
39
|
+
</div>
|
|
40
|
+
</RadioGroup>
|
|
41
|
+
),
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const Horizontal: Story = {
|
|
45
|
+
render: () => (
|
|
46
|
+
<RadioGroup defaultValue="option-1" className="flex gap-4">
|
|
47
|
+
<div className="flex items-center space-x-2">
|
|
48
|
+
<RadioGroupItem value="option-1" id="h1" />
|
|
49
|
+
<Label htmlFor="h1">Option 1</Label>
|
|
50
|
+
</div>
|
|
51
|
+
<div className="flex items-center space-x-2">
|
|
52
|
+
<RadioGroupItem value="option-2" id="h2" />
|
|
53
|
+
<Label htmlFor="h2">Option 2</Label>
|
|
54
|
+
</div>
|
|
55
|
+
<div className="flex items-center space-x-2">
|
|
56
|
+
<RadioGroupItem value="option-3" id="h3" />
|
|
57
|
+
<Label htmlFor="h3">Option 3</Label>
|
|
58
|
+
</div>
|
|
59
|
+
</RadioGroup>
|
|
60
|
+
),
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const WithDescription: Story = {
|
|
64
|
+
render: () => (
|
|
65
|
+
<RadioGroup defaultValue="card" className="gap-4">
|
|
66
|
+
<div className="flex items-start space-x-3">
|
|
67
|
+
<RadioGroupItem value="card" id="card" className="mt-1" />
|
|
68
|
+
<div className="grid gap-1.5 leading-none">
|
|
69
|
+
<Label htmlFor="card">Card payment</Label>
|
|
70
|
+
<p className="text-sm text-muted-foreground">
|
|
71
|
+
Pay with credit or debit card
|
|
72
|
+
</p>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
<div className="flex items-start space-x-3">
|
|
76
|
+
<RadioGroupItem value="paypal" id="paypal" className="mt-1" />
|
|
77
|
+
<div className="grid gap-1.5 leading-none">
|
|
78
|
+
<Label htmlFor="paypal">PayPal</Label>
|
|
79
|
+
<p className="text-sm text-muted-foreground">
|
|
80
|
+
Pay with your PayPal account
|
|
81
|
+
</p>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div className="flex items-start space-x-3">
|
|
85
|
+
<RadioGroupItem value="bank" id="bank" className="mt-1" />
|
|
86
|
+
<div className="grid gap-1.5 leading-none">
|
|
87
|
+
<Label htmlFor="bank">Bank transfer</Label>
|
|
88
|
+
<p className="text-sm text-muted-foreground">
|
|
89
|
+
Pay via bank transfer
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</RadioGroup>
|
|
94
|
+
),
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export const Disabled: Story = {
|
|
98
|
+
render: () => (
|
|
99
|
+
<RadioGroup defaultValue="option-1">
|
|
100
|
+
<div className="flex items-center space-x-2">
|
|
101
|
+
<RadioGroupItem value="option-1" id="d1" />
|
|
102
|
+
<Label htmlFor="d1">Available</Label>
|
|
103
|
+
</div>
|
|
104
|
+
<div className="flex items-center space-x-2">
|
|
105
|
+
<RadioGroupItem value="option-2" id="d2" disabled />
|
|
106
|
+
<Label htmlFor="d2" className="text-muted-foreground">Disabled</Label>
|
|
107
|
+
</div>
|
|
108
|
+
<div className="flex items-center space-x-2">
|
|
109
|
+
<RadioGroupItem value="option-3" id="d3" />
|
|
110
|
+
<Label htmlFor="d3">Available</Label>
|
|
111
|
+
</div>
|
|
112
|
+
</RadioGroup>
|
|
113
|
+
),
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export const FormExample: Story = {
|
|
117
|
+
render: () => (
|
|
118
|
+
<form className="w-[300px] space-y-6">
|
|
119
|
+
<div className="space-y-3">
|
|
120
|
+
<Label>Notification preferences</Label>
|
|
121
|
+
<RadioGroup defaultValue="all">
|
|
122
|
+
<div className="flex items-center space-x-2">
|
|
123
|
+
<RadioGroupItem value="all" id="notify-all" />
|
|
124
|
+
<Label htmlFor="notify-all">All notifications</Label>
|
|
125
|
+
</div>
|
|
126
|
+
<div className="flex items-center space-x-2">
|
|
127
|
+
<RadioGroupItem value="important" id="notify-important" />
|
|
128
|
+
<Label htmlFor="notify-important">Important only</Label>
|
|
129
|
+
</div>
|
|
130
|
+
<div className="flex items-center space-x-2">
|
|
131
|
+
<RadioGroupItem value="none" id="notify-none" />
|
|
132
|
+
<Label htmlFor="notify-none">None</Label>
|
|
133
|
+
</div>
|
|
134
|
+
</RadioGroup>
|
|
135
|
+
</div>
|
|
136
|
+
</form>
|
|
137
|
+
),
|
|
138
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import { ScrollArea, ScrollBar } from './index'
|
|
3
|
+
import { Separator } from '../separator'
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof ScrollArea> = {
|
|
6
|
+
title: 'Components/ScrollArea',
|
|
7
|
+
component: ScrollArea,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'centered',
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: 'Augments native scroll functionality for custom, cross-browser styling.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
tags: ['autodocs'],
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default meta
|
|
20
|
+
type Story = StoryObj<typeof ScrollArea>
|
|
21
|
+
|
|
22
|
+
const tags = Array.from({ length: 50 }).map(
|
|
23
|
+
(_, i, a) => `v1.2.0-beta.${a.length - i}`
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
export const Default: Story = {
|
|
27
|
+
args: {
|
|
28
|
+
className: 'h-72 w-48 rounded-md border',
|
|
29
|
+
},
|
|
30
|
+
render: (args) => (
|
|
31
|
+
<ScrollArea {...args}>
|
|
32
|
+
<div className="p-4">
|
|
33
|
+
<h4 className="mb-4 text-sm font-medium leading-none">Tags</h4>
|
|
34
|
+
{tags.map((tag) => (
|
|
35
|
+
<div key={tag}>
|
|
36
|
+
<div className="text-sm">{tag}</div>
|
|
37
|
+
<Separator className="my-2" />
|
|
38
|
+
</div>
|
|
39
|
+
))}
|
|
40
|
+
</div>
|
|
41
|
+
</ScrollArea>
|
|
42
|
+
),
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const works = [
|
|
46
|
+
{ artist: "Ornella Binni", art: "Artwork 1" },
|
|
47
|
+
{ artist: "Tom Byrom", art: "Artwork 2" },
|
|
48
|
+
{ artist: "Vladimir Malyutin", art: "Artwork 3" },
|
|
49
|
+
{ artist: "Jane Doe", art: "Artwork 4" },
|
|
50
|
+
{ artist: "John Smith", art: "Artwork 5" },
|
|
51
|
+
{ artist: "Alice Brown", art: "Artwork 6" },
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
export const Horizontal: Story = {
|
|
55
|
+
render: () => (
|
|
56
|
+
<ScrollArea className="w-96 whitespace-nowrap rounded-md border">
|
|
57
|
+
<div className="flex w-max space-x-4 p-4">
|
|
58
|
+
{works.map((work) => (
|
|
59
|
+
<figure key={work.artist} className="shrink-0">
|
|
60
|
+
<div className="h-32 w-48 rounded-md bg-muted" />
|
|
61
|
+
<figcaption className="pt-2 text-xs text-muted-foreground">
|
|
62
|
+
Photo by{" "}
|
|
63
|
+
<span className="font-semibold text-foreground">
|
|
64
|
+
{work.artist}
|
|
65
|
+
</span>
|
|
66
|
+
</figcaption>
|
|
67
|
+
</figure>
|
|
68
|
+
))}
|
|
69
|
+
</div>
|
|
70
|
+
<ScrollBar orientation="horizontal" />
|
|
71
|
+
</ScrollArea>
|
|
72
|
+
),
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const items = Array.from({ length: 20 }).map((_, i) => ({
|
|
76
|
+
id: i + 1,
|
|
77
|
+
title: `Item ${i + 1}`,
|
|
78
|
+
description: `Description for item ${i + 1}`,
|
|
79
|
+
}))
|
|
80
|
+
|
|
81
|
+
export const List: Story = {
|
|
82
|
+
render: () => (
|
|
83
|
+
<ScrollArea className="h-[300px] w-[350px] rounded-md border p-4">
|
|
84
|
+
<h4 className="mb-4 text-sm font-medium leading-none">Items</h4>
|
|
85
|
+
<div className="space-y-4">
|
|
86
|
+
{items.map((item) => (
|
|
87
|
+
<div key={item.id} className="flex items-center space-x-4">
|
|
88
|
+
<div className="h-8 w-8 rounded-full bg-muted flex items-center justify-center text-xs">
|
|
89
|
+
{item.id}
|
|
90
|
+
</div>
|
|
91
|
+
<div>
|
|
92
|
+
<p className="text-sm font-medium">{item.title}</p>
|
|
93
|
+
<p className="text-xs text-muted-foreground">{item.description}</p>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
))}
|
|
97
|
+
</div>
|
|
98
|
+
</ScrollArea>
|
|
99
|
+
),
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const Card: Story = {
|
|
103
|
+
render: () => (
|
|
104
|
+
<div className="rounded-lg border w-[350px]">
|
|
105
|
+
<div className="p-4 border-b">
|
|
106
|
+
<h3 className="font-medium">Notifications</h3>
|
|
107
|
+
<p className="text-sm text-muted-foreground">You have 20 unread messages.</p>
|
|
108
|
+
</div>
|
|
109
|
+
<ScrollArea className="h-[200px]">
|
|
110
|
+
<div className="p-4 space-y-4">
|
|
111
|
+
{Array.from({ length: 10 }).map((_, i) => (
|
|
112
|
+
<div key={i} className="flex items-start space-x-3">
|
|
113
|
+
<div className="h-8 w-8 rounded-full bg-primary/10" />
|
|
114
|
+
<div className="flex-1">
|
|
115
|
+
<p className="text-sm font-medium">Notification {i + 1}</p>
|
|
116
|
+
<p className="text-xs text-muted-foreground">2 minutes ago</p>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
))}
|
|
120
|
+
</div>
|
|
121
|
+
</ScrollArea>
|
|
122
|
+
</div>
|
|
123
|
+
),
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export const CodeBlock: Story = {
|
|
127
|
+
render: () => (
|
|
128
|
+
<ScrollArea className="h-[200px] w-[400px] rounded-md border bg-muted/50 p-4">
|
|
129
|
+
<pre className="text-sm">
|
|
130
|
+
<code>{`function fibonacci(n) {
|
|
131
|
+
if (n <= 1) return n;
|
|
132
|
+
return fibonacci(n - 1) + fibonacci(n - 2);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Example usage
|
|
136
|
+
console.log(fibonacci(10)); // 55
|
|
137
|
+
|
|
138
|
+
// More complex example
|
|
139
|
+
const memoFib = (function() {
|
|
140
|
+
const cache = {};
|
|
141
|
+
return function fib(n) {
|
|
142
|
+
if (n in cache) return cache[n];
|
|
143
|
+
if (n <= 1) return n;
|
|
144
|
+
cache[n] = fib(n - 1) + fib(n - 2);
|
|
145
|
+
return cache[n];
|
|
146
|
+
};
|
|
147
|
+
})();
|
|
148
|
+
|
|
149
|
+
console.log(memoFib(100));`}</code>
|
|
150
|
+
</pre>
|
|
151
|
+
</ScrollArea>
|
|
152
|
+
),
|
|
153
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import {
|
|
3
|
+
Select,
|
|
4
|
+
SelectContent,
|
|
5
|
+
SelectGroup,
|
|
6
|
+
SelectItem,
|
|
7
|
+
SelectLabel,
|
|
8
|
+
SelectTrigger,
|
|
9
|
+
SelectValue,
|
|
10
|
+
SelectSeparator,
|
|
11
|
+
} from './index'
|
|
12
|
+
|
|
13
|
+
const meta: Meta<typeof Select> = {
|
|
14
|
+
title: 'Components/Select',
|
|
15
|
+
component: Select,
|
|
16
|
+
parameters: {
|
|
17
|
+
layout: 'centered',
|
|
18
|
+
docs: {
|
|
19
|
+
description: {
|
|
20
|
+
component: 'Displays a list of options for the user to pick from, triggered by a button.',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
tags: ['autodocs'],
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default meta
|
|
28
|
+
type Story = StoryObj<typeof Select>
|
|
29
|
+
|
|
30
|
+
export const Default: Story = {
|
|
31
|
+
args: {},
|
|
32
|
+
render: (args) => (
|
|
33
|
+
<Select {...args}>
|
|
34
|
+
<SelectTrigger className="w-[180px]">
|
|
35
|
+
<SelectValue placeholder="Select a fruit" />
|
|
36
|
+
</SelectTrigger>
|
|
37
|
+
<SelectContent>
|
|
38
|
+
<SelectItem value="apple">Apple</SelectItem>
|
|
39
|
+
<SelectItem value="banana">Banana</SelectItem>
|
|
40
|
+
<SelectItem value="orange">Orange</SelectItem>
|
|
41
|
+
<SelectItem value="grape">Grape</SelectItem>
|
|
42
|
+
<SelectItem value="mango">Mango</SelectItem>
|
|
43
|
+
</SelectContent>
|
|
44
|
+
</Select>
|
|
45
|
+
),
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const WithGroups: Story = {
|
|
49
|
+
render: () => (
|
|
50
|
+
<Select>
|
|
51
|
+
<SelectTrigger className="w-[200px]">
|
|
52
|
+
<SelectValue placeholder="Select a timezone" />
|
|
53
|
+
</SelectTrigger>
|
|
54
|
+
<SelectContent>
|
|
55
|
+
<SelectGroup>
|
|
56
|
+
<SelectLabel>North America</SelectLabel>
|
|
57
|
+
<SelectItem value="est">Eastern Standard Time (EST)</SelectItem>
|
|
58
|
+
<SelectItem value="cst">Central Standard Time (CST)</SelectItem>
|
|
59
|
+
<SelectItem value="pst">Pacific Standard Time (PST)</SelectItem>
|
|
60
|
+
</SelectGroup>
|
|
61
|
+
<SelectSeparator />
|
|
62
|
+
<SelectGroup>
|
|
63
|
+
<SelectLabel>Europe</SelectLabel>
|
|
64
|
+
<SelectItem value="gmt">Greenwich Mean Time (GMT)</SelectItem>
|
|
65
|
+
<SelectItem value="cet">Central European Time (CET)</SelectItem>
|
|
66
|
+
</SelectGroup>
|
|
67
|
+
</SelectContent>
|
|
68
|
+
</Select>
|
|
69
|
+
),
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const WithDefaultValue: Story = {
|
|
73
|
+
render: () => (
|
|
74
|
+
<Select defaultValue="banana">
|
|
75
|
+
<SelectTrigger className="w-[180px]">
|
|
76
|
+
<SelectValue />
|
|
77
|
+
</SelectTrigger>
|
|
78
|
+
<SelectContent>
|
|
79
|
+
<SelectItem value="apple">Apple</SelectItem>
|
|
80
|
+
<SelectItem value="banana">Banana</SelectItem>
|
|
81
|
+
<SelectItem value="orange">Orange</SelectItem>
|
|
82
|
+
</SelectContent>
|
|
83
|
+
</Select>
|
|
84
|
+
),
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export const Disabled: Story = {
|
|
88
|
+
render: () => (
|
|
89
|
+
<div className="flex flex-col gap-4">
|
|
90
|
+
<Select disabled>
|
|
91
|
+
<SelectTrigger className="w-[180px]">
|
|
92
|
+
<SelectValue placeholder="Disabled select" />
|
|
93
|
+
</SelectTrigger>
|
|
94
|
+
<SelectContent>
|
|
95
|
+
<SelectItem value="apple">Apple</SelectItem>
|
|
96
|
+
</SelectContent>
|
|
97
|
+
</Select>
|
|
98
|
+
<Select>
|
|
99
|
+
<SelectTrigger className="w-[180px]">
|
|
100
|
+
<SelectValue placeholder="Select a fruit" />
|
|
101
|
+
</SelectTrigger>
|
|
102
|
+
<SelectContent>
|
|
103
|
+
<SelectItem value="apple">Apple</SelectItem>
|
|
104
|
+
<SelectItem value="banana" disabled>Banana (out of stock)</SelectItem>
|
|
105
|
+
<SelectItem value="orange">Orange</SelectItem>
|
|
106
|
+
</SelectContent>
|
|
107
|
+
</Select>
|
|
108
|
+
</div>
|
|
109
|
+
),
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export const WithForm: Story = {
|
|
113
|
+
render: () => (
|
|
114
|
+
<form className="space-y-4 w-[300px]">
|
|
115
|
+
<div className="space-y-2">
|
|
116
|
+
<label className="text-sm font-medium">Country</label>
|
|
117
|
+
<Select>
|
|
118
|
+
<SelectTrigger>
|
|
119
|
+
<SelectValue placeholder="Select a country" />
|
|
120
|
+
</SelectTrigger>
|
|
121
|
+
<SelectContent>
|
|
122
|
+
<SelectItem value="us">United States</SelectItem>
|
|
123
|
+
<SelectItem value="uk">United Kingdom</SelectItem>
|
|
124
|
+
<SelectItem value="fr">France</SelectItem>
|
|
125
|
+
<SelectItem value="de">Germany</SelectItem>
|
|
126
|
+
<SelectItem value="jp">Japan</SelectItem>
|
|
127
|
+
</SelectContent>
|
|
128
|
+
</Select>
|
|
129
|
+
</div>
|
|
130
|
+
<div className="space-y-2">
|
|
131
|
+
<label className="text-sm font-medium">Language</label>
|
|
132
|
+
<Select defaultValue="en">
|
|
133
|
+
<SelectTrigger>
|
|
134
|
+
<SelectValue />
|
|
135
|
+
</SelectTrigger>
|
|
136
|
+
<SelectContent>
|
|
137
|
+
<SelectItem value="en">English</SelectItem>
|
|
138
|
+
<SelectItem value="fr">French</SelectItem>
|
|
139
|
+
<SelectItem value="de">German</SelectItem>
|
|
140
|
+
<SelectItem value="ja">Japanese</SelectItem>
|
|
141
|
+
</SelectContent>
|
|
142
|
+
</Select>
|
|
143
|
+
</div>
|
|
144
|
+
</form>
|
|
145
|
+
),
|
|
146
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import { Separator } from './index'
|
|
3
|
+
|
|
4
|
+
const meta: Meta<typeof Separator> = {
|
|
5
|
+
title: 'Components/Separator',
|
|
6
|
+
component: Separator,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'centered',
|
|
9
|
+
docs: {
|
|
10
|
+
description: {
|
|
11
|
+
component: 'Visually or semantically separates content.',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
tags: ['autodocs'],
|
|
16
|
+
argTypes: {
|
|
17
|
+
orientation: {
|
|
18
|
+
control: 'select',
|
|
19
|
+
options: ['horizontal', 'vertical'],
|
|
20
|
+
description: 'The orientation of the separator',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default meta
|
|
26
|
+
type Story = StoryObj<typeof Separator>
|
|
27
|
+
|
|
28
|
+
export const Default: Story = {
|
|
29
|
+
args: {
|
|
30
|
+
className: 'my-4',
|
|
31
|
+
},
|
|
32
|
+
render: (args) => (
|
|
33
|
+
<div className="w-[300px]">
|
|
34
|
+
<div className="space-y-1">
|
|
35
|
+
<h4 className="text-sm font-medium leading-none">Radix Primitives</h4>
|
|
36
|
+
<p className="text-sm text-muted-foreground">
|
|
37
|
+
An open-source UI component library.
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
<Separator {...args} />
|
|
41
|
+
<div className="flex h-5 items-center space-x-4 text-sm">
|
|
42
|
+
<div>Blog</div>
|
|
43
|
+
<Separator orientation="vertical" />
|
|
44
|
+
<div>Docs</div>
|
|
45
|
+
<Separator orientation="vertical" />
|
|
46
|
+
<div>Source</div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
),
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const Horizontal: Story = {
|
|
53
|
+
render: () => (
|
|
54
|
+
<div className="w-[300px] space-y-4">
|
|
55
|
+
<p className="text-sm">Section 1 content goes here.</p>
|
|
56
|
+
<Separator />
|
|
57
|
+
<p className="text-sm">Section 2 content goes here.</p>
|
|
58
|
+
<Separator />
|
|
59
|
+
<p className="text-sm">Section 3 content goes here.</p>
|
|
60
|
+
</div>
|
|
61
|
+
),
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export const Vertical: Story = {
|
|
65
|
+
render: () => (
|
|
66
|
+
<div className="flex h-10 items-center space-x-4">
|
|
67
|
+
<span className="text-sm">Home</span>
|
|
68
|
+
<Separator orientation="vertical" />
|
|
69
|
+
<span className="text-sm">About</span>
|
|
70
|
+
<Separator orientation="vertical" />
|
|
71
|
+
<span className="text-sm">Contact</span>
|
|
72
|
+
</div>
|
|
73
|
+
),
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export const InCard: Story = {
|
|
77
|
+
render: () => (
|
|
78
|
+
<div className="w-[350px] rounded-lg border p-4">
|
|
79
|
+
<div className="flex items-center justify-between">
|
|
80
|
+
<div>
|
|
81
|
+
<h3 className="font-medium">Subscription</h3>
|
|
82
|
+
<p className="text-sm text-muted-foreground">Manage your plan</p>
|
|
83
|
+
</div>
|
|
84
|
+
<span className="text-sm font-medium text-primary">Pro Plan</span>
|
|
85
|
+
</div>
|
|
86
|
+
<Separator className="my-4" />
|
|
87
|
+
<div className="space-y-2">
|
|
88
|
+
<div className="flex justify-between text-sm">
|
|
89
|
+
<span className="text-muted-foreground">Next billing date</span>
|
|
90
|
+
<span>January 1, 2024</span>
|
|
91
|
+
</div>
|
|
92
|
+
<div className="flex justify-between text-sm">
|
|
93
|
+
<span className="text-muted-foreground">Amount</span>
|
|
94
|
+
<span>$29/month</span>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
),
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export const WithIcons: Story = {
|
|
102
|
+
render: () => (
|
|
103
|
+
<div className="flex items-center space-x-2">
|
|
104
|
+
<div className="flex items-center space-x-1">
|
|
105
|
+
<span className="text-sm">10 likes</span>
|
|
106
|
+
</div>
|
|
107
|
+
<Separator orientation="vertical" className="h-4" />
|
|
108
|
+
<div className="flex items-center space-x-1">
|
|
109
|
+
<span className="text-sm">5 comments</span>
|
|
110
|
+
</div>
|
|
111
|
+
<Separator orientation="vertical" className="h-4" />
|
|
112
|
+
<div className="flex items-center space-x-1">
|
|
113
|
+
<span className="text-sm">3 shares</span>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
),
|
|
117
|
+
}
|