@teamix-evo/ui 0.6.2 → 0.7.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/manifest.json CHANGED
@@ -1150,6 +1150,11 @@
1150
1150
  "source": "src/components/tree/index.tsx",
1151
1151
  "targetAlias": "components",
1152
1152
  "targetName": "tree.tsx"
1153
+ },
1154
+ {
1155
+ "source": "src/components/tree/utils.ts",
1156
+ "targetAlias": "components",
1157
+ "targetName": "utils.ts"
1153
1158
  }
1154
1159
  ],
1155
1160
  "meta": "src/components/tree/meta.md",
@@ -1372,7 +1377,7 @@
1372
1377
  }
1373
1378
  ],
1374
1379
  "meta": "src/components/tree-select/meta.md",
1375
- "registryDependencies": ["cn", "popover", "checkbox"],
1380
+ "registryDependencies": ["cn", "popover", "checkbox", "tree"],
1376
1381
  "dependencies": {
1377
1382
  "lucide-react": "^0.460.0",
1378
1383
  "class-variance-authority": "^0.7.1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamix-evo/ui",
3
- "version": "0.6.2",
3
+ "version": "0.7.0",
4
4
  "description": "Source-injected UI components for Teamix Evo (shadcn-based, antd capabilities)",
5
5
  "type": "module",
6
6
  "files": [
@@ -51,9 +51,9 @@
51
51
  "vite": "^5.4.0",
52
52
  "vite-tsconfig-paths": "^6.1.1",
53
53
  "zod": "^3",
54
- "@teamix-evo/eslint-config": "0.2.3",
55
54
  "@teamix-evo/registry": "0.12.0",
56
- "@teamix-evo/tokens": "^0.7.3"
55
+ "@teamix-evo/eslint-config": "0.2.3",
56
+ "@teamix-evo/tokens": "^0.8.0"
57
57
  },
58
58
  "publishConfig": {
59
59
  "access": "public",
@@ -289,12 +289,6 @@ function alignClass(align?: DataTableColumn<unknown>['align']) {
289
289
  return undefined;
290
290
  }
291
291
 
292
- function widthStyle(col: DataTableColumn<unknown>): React.CSSProperties {
293
- const w = col.size ?? col.width;
294
- if (w === undefined) return {};
295
- return { width: typeof w === 'number' ? `${w}px` : w };
296
- }
297
-
298
292
  /** 把 DataTableColumn 适配为 TanStack ColumnDef;同时按 fixed 重排(左→中→右)以满足锁列 sticky 计算。 */
299
293
  function adaptColumns<T>(
300
294
  columns: DataTableColumn<T>[],
@@ -50,7 +50,6 @@ import { Spinner } from '@/components/spinner';
50
50
  import {
51
51
  TimePickerPanel,
52
52
  parseTime,
53
- formatTime,
54
53
  triggerVariants,
55
54
  type TimeParts,
56
55
  type TriggerSize,
@@ -39,8 +39,94 @@ export default meta;
39
39
 
40
40
  type Story = StoryObj<typeof meta>;
41
41
 
42
- /** 完整版页头:面包屑 + 帮助链接 + 返回 + 主图标 + 标题(含 ⓘ) + 描述 + 多操作 + 底部信息。 */
42
+ /** 仅标题:最基础的页头形态,只包含一个标题。 */
43
43
  export const Default: Story = {
44
+ render: () => (
45
+ <PageHeader>
46
+ <PageHeaderContent>
47
+ <PageHeaderHeading>
48
+ <PageHeaderTitle>页面标题</PageHeaderTitle>
49
+ </PageHeaderHeading>
50
+ </PageHeaderContent>
51
+ </PageHeader>
52
+ ),
53
+ };
54
+
55
+ /** 标题 + 描述:标题下方附加一行描述文字。 */
56
+ export const WithDescription: Story = {
57
+ render: () => (
58
+ <PageHeader>
59
+ <PageHeaderContent>
60
+ <div className="flex flex-col">
61
+ <PageHeaderHeading>
62
+ <PageHeaderTitle>页面标题</PageHeaderTitle>
63
+ </PageHeaderHeading>
64
+ <PageHeaderDescription>
65
+ 页面描述页面描述页面描述页面描述页面描述页面描述页面描述
66
+ </PageHeaderDescription>
67
+ </div>
68
+ </PageHeaderContent>
69
+ </PageHeader>
70
+ ),
71
+ };
72
+
73
+ /** 仅面包屑:只有面包屑导航,无标题。 */
74
+ export const OnlyBreadcrumb: Story = {
75
+ render: () => (
76
+ <PageHeader>
77
+ <PageHeaderNav>
78
+ <Breadcrumb>
79
+ <BreadcrumbList>
80
+ <BreadcrumbItem>
81
+ <BreadcrumbLink href="#">首页</BreadcrumbLink>
82
+ </BreadcrumbItem>
83
+ <BreadcrumbSeparator />
84
+ <BreadcrumbItem>
85
+ <BreadcrumbLink href="#">实例列表</BreadcrumbLink>
86
+ </BreadcrumbItem>
87
+ <BreadcrumbSeparator />
88
+ <BreadcrumbItem>
89
+ <BreadcrumbPage>实例详情</BreadcrumbPage>
90
+ </BreadcrumbItem>
91
+ </BreadcrumbList>
92
+ </Breadcrumb>
93
+ </PageHeaderNav>
94
+ </PageHeader>
95
+ ),
96
+ };
97
+
98
+ /** 面包屑 + 标题:面包屑导航 + 标题,常见于二级页面。 */
99
+ export const WithBreadcrumb: Story = {
100
+ render: () => (
101
+ <PageHeader>
102
+ <PageHeaderNav>
103
+ <Breadcrumb>
104
+ <BreadcrumbList>
105
+ <BreadcrumbItem>
106
+ <BreadcrumbLink href="#">首页</BreadcrumbLink>
107
+ </BreadcrumbItem>
108
+ <BreadcrumbSeparator />
109
+ <BreadcrumbItem>
110
+ <BreadcrumbLink href="#">实例列表</BreadcrumbLink>
111
+ </BreadcrumbItem>
112
+ <BreadcrumbSeparator />
113
+ <BreadcrumbItem>
114
+ <BreadcrumbPage>实例详情</BreadcrumbPage>
115
+ </BreadcrumbItem>
116
+ </BreadcrumbList>
117
+ </Breadcrumb>
118
+ </PageHeaderNav>
119
+ <PageHeaderContent>
120
+ <PageHeaderHeading>
121
+ <PageHeaderTitle>实例详情</PageHeaderTitle>
122
+ </PageHeaderHeading>
123
+ </PageHeaderContent>
124
+ </PageHeader>
125
+ ),
126
+ };
127
+
128
+ /** 完整版页头:面包屑 + 帮助链接 + 返回 + 主图标 + 标题(含 ⓘ) + 描述 + 多操作。 */
129
+ export const Full: Story = {
44
130
  render: () => (
45
131
  <PageHeader>
46
132
  <PageHeaderNav>
@@ -154,7 +154,7 @@ function Table({
154
154
  // ─── TableHeader ────────────────────────────────────────────────────────────
155
155
 
156
156
  function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {
157
- const { stickyHeader, bordered, size } = useTableContext();
157
+ const { stickyHeader } = useTableContext();
158
158
  return (
159
159
  <thead
160
160
  data-slot="table-header"