@ 精心建造/ saas- kit
一个安装用于精心建造的SaaS组件、产品表面和帮助者.
精心建造SaaS Kit是存在的,所以每一个新的B2B产品都不必从零开始重塑相同的表格,表格,过滤器,工作表,设置,文件,通知,日历和仪表板模式.
如果您想要管理 npm 导入和共享应用程序的升级, 请使用此软件包 。 使用 @carefully-built/cli 当您想要从可编辑组件源中弹出到应用程序时.
组件预览
安装
bun add @carefully-built/saas-kit
import { Button, SmartTable, TableToolbar, ResponsiveSheet } from "@carefully-built/saas-kit";
套件包括模块化的小心构建套件作为依赖性. 您的应用程序仍应安装它实际使用的框架对等依赖, 如 React, Next.js, Convex, WorkOS, Radix原始语, React Hook Form, TipTap, FullCalendar, 以及 Recharts.
软件包模块
从根部导入共享的UI原始物,或者从子路径导入一个产品区域.
| 模块 | 用于 |
|---|---|
@carefully-built/saas-kit | 共享的 UI 原始文件、 表格工具、 覆盖、 空状态、 错误页、 钩和工具 |
@carefully-built/saas-kit/agenda | 日历和议程表面 |
@carefully-built/saas-kit/app-shell | 板壳、响应导航、页面布局和移动底导航 |
@carefully-built/saas-kit/association-picker | 可搜索关联选择 |
@carefully-built/saas-kit/auth-pages | 认证表单、控制器、页面、社会登录、组织、和 WorkOS 认证 UI |
@carefully-built/saas-kit/automations | 自动化构建器状态、画布、选项和草稿帮助器 |
@carefully-built/saas-kit/charts | 剪贴板图表部件 |
@carefully-built/saas-kit/convex-crud | CRUD 辅助器 |
@carefully-built/saas-kit/convex-multitenant | Convex 多重租赁助手 |
@carefully-built/saas-kit/convex-platform | Convex 平台关联助手 |
@carefully-built/saas-kit/convex-workos | Convex WorkOS 集成辅助工具 |
@carefully-built/saas-kit/crud | CRUD 表格/页面状态和 URL 过滤器 |
@carefully-built/saas-kit/custom-fields | 自定义和输入 |
@carefully-built/saas-kit/files | 文档卡、网格、上传和文件过滤 |
@carefully-built/saas-kit/forms | Schema/ 客户表和用户拾取字段 |
@carefully-built/saas-kit/import-export | CSV 进出口助手和工作表 |
@carefully-built/saas-kit/kanban | Kanban 板和管线助手 |
@carefully-built/saas-kit/legal-ui | 法律文件渲染器和缺省法律文本 |
@carefully-built/saas-kit/maps-ui | 谷歌地图 |
@carefully-built/saas-kit/notes | 注解 CRUD 页和注解列表类型 |
@carefully-built/saas-kit/notifications | 通知列表、按钮和可视元数据 |
@carefully-built/saas-kit/resource-kit | 资源页面、 实体细节 shells、 相关标签和土司助手 |
@carefully-built/saas-kit/rich-text | 丰富的文本编辑器和渲染器 |
@carefully-built/saas-kit/search | 搜索和命令调色板模块 |
@carefully-built/saas-kit/settings-ui | 设置牌和设置标签表面 |
@carefully-built/saas-kit/superadmin | 超级admin UI, 服务器助手和 Next.js 页面厂 |
@carefully-built/saas-kit/theme-ui | 主题选择器组件 |
@carefully-built/saas-kit/ui | 直接接入UI包桶 |
@carefully-built/saas-kit/user-picker | 用户拾件桶 |
@carefully-built/saas-kit/widgets | 剪贴板部件包装器 |
@carefully-built/saas-kit/workos | WorkOS 组织 UI 和服务器助手 |
@carefully-built/saas-kit/server | 仅限服务器的助手 |
@carefully-built/saas-kit/next | Next.js 帮助者 |
子路径导入示例 :
import { DashboardPageLayout } from "@carefully-built/saas-kit/app-shell";
import { AuthLoginPage } from "@carefully-built/saas-kit/auth-pages/pages";
import { createWorkOSWidgetTokenResponse } from "@carefully-built/saas-kit/server";
import { createSuperAdminPage } from "@carefully-built/saas-kit/next";
UI 完整登记
每个公用UI模块导出 @carefully-built/ui 可通过 @carefully-built/saas-kit 和通过CLI登记.
| 书记官处条目 | 管理导入 | 可编辑源 |
|---|---|---|
avatar | import { Avatar, AvatarFallback, AvatarImage } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add avatar |
button | import { Button, ButtonSize, ButtonVariant, buttonVariants } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add button |
calendar | import { Calendar } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add calendar |
card | import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add card |
chip | import { Chip, ChipButton } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add chip |
chip-utils | import { CHIP_CLASS_NAMES, ChipSize, getChipClassName } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add chip-utils |
date-display | import { DateDisplayValue, formatAbsoluteDate, formatDisplayDate } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add date-display |
dialog | import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add dialog |
display-date | import { DisplayDate } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add display-date |
drawer | import { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerOverlay, DrawerPortal } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add drawer |
dropdown-menu | import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add dropdown-menu |
empty-state | import { CollectionEmptyState, EmptyStateCard, InitialEmptyState, NoResultsState, ResolveCollectionEmptyStateOptions, resolveCollectionEmptyState } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add empty-state |
error-page | import { ErrorCode, ErrorPageContent, ErrorPageKind, PostHogErrorCapturePayload, ResolveErrorPageContentOptions, SaasErrorPage } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add error-page |
field-detail-row | import { FieldDetailRow } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add field-detail-row |
file-dropzone | import { FileDropzone } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add file-dropzone |
help-info-button | import { HelpInfoButton } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add help-info-button |
input | import { Input } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add input |
keyboard-shortcut-hint | import { KeyboardKeycap, ShortcutModifierKeycap } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add keyboard-shortcut-hint |
label | import { Label } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add label |
pagination | import { Pagination } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add pagination |
popover | import { Popover, PopoverContent, PopoverTrigger } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add popover |
responsive-sheet | import { ResponsiveSheet, SheetOutsideInteractionGuard } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add responsive-sheet |
responsive-sheet.footer | import { DesktopConfirmShortcutHint, SheetActionFooter } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add responsive-sheet.footer |
responsive-sheet.shortcuts | import { getDesktopShortcutModifierLabel, isAllowedConfirmShortcutEvent, useDesktopConfirmShortcut, useDesktopShortcutModifierLabel } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add responsive-sheet.shortcuts |
scroll-fade-area | import { ScrollFadeArea } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add scroll-fade-area |
search | import { SearchTextPart, buildSearchText, filterAndRankBySearch, rankBySearch, scoreFuzzyMatch } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add search |
searchable-select | import { AUTO_SEARCHABLE_SELECT_THRESHOLD, SearchableSelect, SearchableSelectOption, getSearchableSelectPortalContainer, isSearchableSelectPointerInside } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add searchable-select |
searchable-select-position | import { SearchableSelectRect, resolveSearchableSelectDropdownPosition } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add searchable-select-position |
segmented-toggle | import { SegmentedToggle, SegmentedToggleOption } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add segmented-toggle |
select | import { Select, SelectContent, SelectItem, SelectScrollDownButton, SelectScrollUpButton, SelectTrigger } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add select |
sheet | import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add sheet |
skeleton | import { Skeleton } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add skeleton |
smart-table | import { ActionHandlers, ActionType, Column, ColumnAlign, PaginationConfig, SmartTable } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add smart-table |
switch | import { Switch } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add switch |
table | import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add table |
table-toolbar | import { CustomTableToolbarFilter, FilterConfig, FilterDropdown, FilterOption, SearchInput, TableToolbar } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add table-toolbar |
tabs | import { Tabs, TabsContent, TabsList, TabsScrollArea, TabsTrigger, tabsListVariants } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add tabs |
textarea | import { Textarea } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add textarea |
tooltip | import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add tooltip |
use-media-query | import { useIsMobile, useMediaQuery } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add use-media-query |
user-picker | import { UserPicker } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add user-picker |
user-picker-utils | import { UserPickerCopy, UserPickerOption, buildUserInitials, filterSelectableUsers, filterUsersBySearch, formatSelectedUserSummary } from "@carefully-built/saas-kit" | bunx @carefully-built/cli add user-picker-utils |
一些条目从一个模块中导出多个相关的组件,钩子,帮助器,以及类型. TypeScript自动完成将在安装工具包后显示完整的API.
使用 CLI 可编辑源
当一个组件成为可以直接编辑的本地代码时使用 CLI .
bunx @carefully-built/cli list
bunx @carefully-built/cli add button
bunx @carefully-built/cli add smart-table
bunx @carefully-built/cli add responsive-sheet
CLI 复制组件源及其本地依赖性关闭到您的应用程序中 。 它读取了常见的影子项目公约,例如: components.json 别名和 tsconfig.json 路径.
导入 vs 弹出
从 @carefully-built/saas-kit 当:
- 您需要软件包更新和错误修正
- 组件应保持共享应用程序
- 特定产品的差异可以通过道具,槽来处理,
className,或classes
使用 @carefully-built/cli add 当:
- 组件需要本地产品行为
- 设计需要偏离共享软件包
- 您想要拥有并编辑消费应用程序中的每行
- 组件应当遵循应用程序的正常源控工作流程
复制和本地化
每一个用户界面字符串仍然是标签/配置道具. 默认跟随风筝语言:英语没有提供者,意大利语有 KitLocaleProvider数字 :
import { KitLocaleProvider } from '@carefully-built/saas-kit';
<KitLocaleProvider locale="it">{children}</KitLocaleProvider>;
迄今本地化: ui (重叠、表格工具栏、可搜索选择、空和出错状态、文件投放区、用户拾取器), forms 字段,则, auth-pages (页数、表格、社会按钮、组织选择、法律同意、验证) search 命令调色板。 服务器侧认证动作消息保留在内 config.messages。 。 。 .