@pactor-app/ui 1.12.0 → 1.13.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.
@@ -2,7 +2,7 @@ import {
2
2
  Icon,
3
3
  Menu,
4
4
  Sidebar
5
- } from "./chunk-2B5YV2HR.js";
5
+ } from "./chunk-GQE62HDV.js";
6
6
  import {
7
7
  Alert,
8
8
  AlertDescription,
@@ -141,7 +141,7 @@ import {
141
141
  chartColor,
142
142
  navigationMenuTriggerStyle,
143
143
  toast
144
- } from "./chunk-XEK5NQJA.js";
144
+ } from "./chunk-NQQAPB7Q.js";
145
145
  import {
146
146
  Dialog,
147
147
  DialogContent,
@@ -3177,7 +3177,16 @@ function Table2({
3177
3177
  // src/components/components/Tabs/index.tsx
3178
3178
  import { useRenderer as useRenderer16 } from "@pactor-app/runtime";
3179
3179
  import { jsx as jsx64, jsxs as jsxs44 } from "react/jsx-runtime";
3180
- function Tabs2({ items = [], activeKey, variant, onChange, className, style }) {
3180
+ function Tabs2({
3181
+ items = [],
3182
+ activeKey,
3183
+ variant,
3184
+ onChange,
3185
+ contentClassName,
3186
+ contentStyle,
3187
+ className,
3188
+ style
3189
+ }) {
3181
3190
  const { renderChildren } = useRenderer16();
3182
3191
  return /* @__PURE__ */ jsxs44(
3183
3192
  Tabs,
@@ -3189,7 +3198,16 @@ function Tabs2({ items = [], activeKey, variant, onChange, className, style }) {
3189
3198
  style,
3190
3199
  children: [
3191
3200
  /* @__PURE__ */ jsx64(TabsList, { variant, children: items.map((item) => /* @__PURE__ */ jsx64(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
3192
- items.map((item) => /* @__PURE__ */ jsx64(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
3201
+ items.map((item) => /* @__PURE__ */ jsx64(
3202
+ TabsContent,
3203
+ {
3204
+ value: item.key,
3205
+ className: cn(contentClassName, item.className),
3206
+ style: { ...contentStyle, ...item.style },
3207
+ children: renderChildren(item.children)
3208
+ },
3209
+ item.key
3210
+ ))
3193
3211
  ]
3194
3212
  }
3195
3213
  );
@@ -219,7 +219,28 @@ var ICONS = {
219
219
  "rotate-ccw": RotateCcw,
220
220
  quote: Quote,
221
221
  chat: MessageSquare,
222
- brain: Brain
222
+ brain: Brain,
223
+ // lucide 规范名别名(kebab-case 原名直通;上方短别名保留兼容)——
224
+ // 白名单文档承诺 kebab-case 键,缺别名时规范名(如 trash-2)会落入未知占位
225
+ "trash-2": Trash2,
226
+ "share-2": Share2,
227
+ "building-2": Building2,
228
+ house: House,
229
+ "triangle-alert": TriangleAlert,
230
+ "circle-alert": CircleAlert,
231
+ "circle-check": CircleCheck,
232
+ "circle-x": CircleX,
233
+ "circle-question-mark": CircleQuestionMark,
234
+ "square-pen": SquarePen,
235
+ "refresh-ccw": RefreshCcw,
236
+ "chart-column": ChartColumn,
237
+ "layout-grid": LayoutGrid,
238
+ funnel: Funnel,
239
+ "loader-circle": LoaderCircle,
240
+ ellipsis: Ellipsis,
241
+ "ellipsis-vertical": EllipsisVertical,
242
+ "message-circle": MessageCircle,
243
+ "lock-open": LockOpen
223
244
  };
224
245
  function normalizeIconName(name) {
225
246
  return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/[_\s]+/g, "-").toLowerCase();
@@ -249,7 +270,7 @@ function Icon({
249
270
  size: px,
250
271
  color,
251
272
  strokeWidth,
252
- className: cn("shrink-0 text-muted-foreground", className),
273
+ className: cn("shrink-0", className),
253
274
  style,
254
275
  "aria-hidden": "true"
255
276
  }
@@ -2476,7 +2476,8 @@ var tabsListVariants = cva4(
2476
2476
  variants: {
2477
2477
  variant: {
2478
2478
  default: "h-9 rounded-lg bg-muted p-[3px]",
2479
- line: "h-auto gap-1 rounded-none border-b border-border bg-transparent p-0"
2479
+ // line:页签栏通栏(下划线轨道占满容器宽),触发器自然宽度靠左排列
2480
+ line: "h-auto w-full justify-start gap-1 rounded-none border-b border-border bg-transparent p-0"
2480
2481
  }
2481
2482
  },
2482
2483
  defaultVariants: {
@@ -2512,8 +2513,9 @@ function TabsTrigger({
2512
2513
  // default 变体:激活态胶囊(边框 + 卡片底 + 阴影)
2513
2514
  "group-data-[variant=default]/tabs-list:data-active:border-border group-data-[variant=default]/tabs-list:data-active:bg-card group-data-[variant=default]/tabs-list:data-active:shadow-sm",
2514
2515
  // line 变体:下划线指示——弱化未激活文字,激活态底部 2px 主色线
2515
- //(叠在 List 的底边轨道上),无底色/圆角/阴影
2516
- "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
2516
+ //(叠在 List 的底边轨道上),无底色/圆角/阴影;通栏 List 下取消
2517
+ // flex-1 拉伸,触发器保持自然宽度
2518
+ "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
2517
2519
  className
2518
2520
  ),
2519
2521
  ...props
@@ -2,7 +2,7 @@ import {
2
2
  Icon,
3
3
  Menu,
4
4
  Sidebar
5
- } from "./chunk-2B5YV2HR.js";
5
+ } from "./chunk-GQE62HDV.js";
6
6
  import {
7
7
  Accordion,
8
8
  AccordionContent,
@@ -396,7 +396,28 @@ var ICONS = {
396
396
  "rotate-ccw": import_lucide_react2.RotateCcw,
397
397
  quote: import_lucide_react2.Quote,
398
398
  chat: import_lucide_react2.MessageSquare,
399
- brain: import_lucide_react2.Brain
399
+ brain: import_lucide_react2.Brain,
400
+ // lucide 规范名别名(kebab-case 原名直通;上方短别名保留兼容)——
401
+ // 白名单文档承诺 kebab-case 键,缺别名时规范名(如 trash-2)会落入未知占位
402
+ "trash-2": import_lucide_react2.Trash2,
403
+ "share-2": import_lucide_react2.Share2,
404
+ "building-2": import_lucide_react2.Building2,
405
+ house: import_lucide_react2.House,
406
+ "triangle-alert": import_lucide_react2.TriangleAlert,
407
+ "circle-alert": import_lucide_react2.CircleAlert,
408
+ "circle-check": import_lucide_react2.CircleCheck,
409
+ "circle-x": import_lucide_react2.CircleX,
410
+ "circle-question-mark": import_lucide_react2.CircleQuestionMark,
411
+ "square-pen": import_lucide_react2.SquarePen,
412
+ "refresh-ccw": import_lucide_react2.RefreshCcw,
413
+ "chart-column": import_lucide_react2.ChartColumn,
414
+ "layout-grid": import_lucide_react2.LayoutGrid,
415
+ funnel: import_lucide_react2.Funnel,
416
+ "loader-circle": import_lucide_react2.LoaderCircle,
417
+ ellipsis: import_lucide_react2.Ellipsis,
418
+ "ellipsis-vertical": import_lucide_react2.EllipsisVertical,
419
+ "message-circle": import_lucide_react2.MessageCircle,
420
+ "lock-open": import_lucide_react2.LockOpen
400
421
  };
401
422
  function normalizeIconName(name) {
402
423
  return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/[_\s]+/g, "-").toLowerCase();
@@ -426,7 +447,7 @@ function Icon({
426
447
  size: px,
427
448
  color,
428
449
  strokeWidth,
429
- className: cn("shrink-0 text-muted-foreground", className),
450
+ className: cn("shrink-0", className),
430
451
  style,
431
452
  "aria-hidden": "true"
432
453
  }
@@ -7070,7 +7091,8 @@ var tabsListVariants = (0, import_class_variance_authority7.cva)(
7070
7091
  variants: {
7071
7092
  variant: {
7072
7093
  default: "h-9 rounded-lg bg-muted p-[3px]",
7073
- line: "h-auto gap-1 rounded-none border-b border-border bg-transparent p-0"
7094
+ // line:页签栏通栏(下划线轨道占满容器宽),触发器自然宽度靠左排列
7095
+ line: "h-auto w-full justify-start gap-1 rounded-none border-b border-border bg-transparent p-0"
7074
7096
  }
7075
7097
  },
7076
7098
  defaultVariants: {
@@ -7106,8 +7128,9 @@ function TabsTrigger({
7106
7128
  // default 变体:激活态胶囊(边框 + 卡片底 + 阴影)
7107
7129
  "group-data-[variant=default]/tabs-list:data-active:border-border group-data-[variant=default]/tabs-list:data-active:bg-card group-data-[variant=default]/tabs-list:data-active:shadow-sm",
7108
7130
  // line 变体:下划线指示——弱化未激活文字,激活态底部 2px 主色线
7109
- //(叠在 List 的底边轨道上),无底色/圆角/阴影
7110
- "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
7131
+ //(叠在 List 的底边轨道上),无底色/圆角/阴影;通栏 List 下取消
7132
+ // flex-1 拉伸,触发器保持自然宽度
7133
+ "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
7111
7134
  className
7112
7135
  ),
7113
7136
  ...props
@@ -7130,7 +7153,16 @@ function TabsContent({
7130
7153
 
7131
7154
  // src/components/components/Tabs/index.tsx
7132
7155
  var import_jsx_runtime119 = require("react/jsx-runtime");
7133
- function Tabs2({ items = [], activeKey, variant, onChange, className, style }) {
7156
+ function Tabs2({
7157
+ items = [],
7158
+ activeKey,
7159
+ variant,
7160
+ onChange,
7161
+ contentClassName,
7162
+ contentStyle,
7163
+ className,
7164
+ style
7165
+ }) {
7134
7166
  const { renderChildren } = (0, import_runtime22.useRenderer)();
7135
7167
  return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(
7136
7168
  Tabs,
@@ -7142,7 +7174,16 @@ function Tabs2({ items = [], activeKey, variant, onChange, className, style }) {
7142
7174
  style,
7143
7175
  children: [
7144
7176
  /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsList, { variant, children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
7145
- items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
7177
+ items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7178
+ TabsContent,
7179
+ {
7180
+ value: item.key,
7181
+ className: cn(contentClassName, item.className),
7182
+ style: { ...contentStyle, ...item.style },
7183
+ children: renderChildren(item.children)
7184
+ },
7185
+ item.key
7186
+ ))
7146
7187
  ]
7147
7188
  }
7148
7189
  );
@@ -976,7 +976,8 @@ declare function normalizeIconName(name: string): string;
976
976
  /**
977
977
  * Icon 适配器(shadcn kit):按 name 从 lucide 白名单渲染图标。
978
978
  * 未知名渲染占位图标(help-circle)并标 `data-unknown`,不抛错
979
- * (与 chat messageActions 图标白名单同约定)。
979
+ * (与 chat messageActions 图标白名单同约定);占位图标跟随上下文
980
+ * 文本色(currentColor),避免在 danger 等有色按钮上撞色。
980
981
  */
981
982
  declare function Icon({ name, size, color, strokeWidth, className, style, }: IconProps): React.JSX.Element;
982
983
 
@@ -1692,6 +1693,10 @@ interface TabItem {
1692
1693
  key: string;
1693
1694
  label: string;
1694
1695
  children?: DslNode[];
1696
+ /** 该页签内容区 class(与 Tabs 的 contentClassName 合并,此项在后) */
1697
+ className?: string;
1698
+ /** 该页签内容区内联样式(同 className 的合并规则) */
1699
+ style?: CSSProperties;
1695
1700
  }
1696
1701
  interface TabsProps {
1697
1702
  items?: TabItem[];
@@ -1701,6 +1706,10 @@ interface TabsProps {
1701
1706
  variant?: 'default' | 'line';
1702
1707
  /** 页签切换事件,传出新激活的 key */
1703
1708
  onChange?: (key: string) => void;
1709
+ /** 页签内容区 class(TabsContent 根节点,与内置样式合并) */
1710
+ contentClassName?: string;
1711
+ /** 页签内容区内联样式(同 contentClassName 的挂载规则) */
1712
+ contentStyle?: CSSProperties;
1704
1713
  /** 通用:根节点 class(与内置样式合并) */
1705
1714
  className?: string;
1706
1715
  /** 通用:根节点内联样式 */
@@ -1711,7 +1720,7 @@ interface TabsProps {
1711
1720
  * 基于 vendored shadcn Tabs(@base-ui/react),每个 pane 的内容经
1712
1721
  * renderChildren 渲染;未传 activeKey 时缺省激活第一个页签。
1713
1722
  */
1714
- declare function Tabs({ items, activeKey, variant, onChange, className, style }: TabsProps): React.JSX.Element;
1723
+ declare function Tabs({ items, activeKey, variant, onChange, contentClassName, contentStyle, className, style, }: TabsProps): React.JSX.Element;
1715
1724
 
1716
1725
  /** DSL Text 语义类型 */
1717
1726
  type TextType = 'default' | 'secondary' | 'success' | 'warning' | 'danger';
@@ -976,7 +976,8 @@ declare function normalizeIconName(name: string): string;
976
976
  /**
977
977
  * Icon 适配器(shadcn kit):按 name 从 lucide 白名单渲染图标。
978
978
  * 未知名渲染占位图标(help-circle)并标 `data-unknown`,不抛错
979
- * (与 chat messageActions 图标白名单同约定)。
979
+ * (与 chat messageActions 图标白名单同约定);占位图标跟随上下文
980
+ * 文本色(currentColor),避免在 danger 等有色按钮上撞色。
980
981
  */
981
982
  declare function Icon({ name, size, color, strokeWidth, className, style, }: IconProps): React.JSX.Element;
982
983
 
@@ -1692,6 +1693,10 @@ interface TabItem {
1692
1693
  key: string;
1693
1694
  label: string;
1694
1695
  children?: DslNode[];
1696
+ /** 该页签内容区 class(与 Tabs 的 contentClassName 合并,此项在后) */
1697
+ className?: string;
1698
+ /** 该页签内容区内联样式(同 className 的合并规则) */
1699
+ style?: CSSProperties;
1695
1700
  }
1696
1701
  interface TabsProps {
1697
1702
  items?: TabItem[];
@@ -1701,6 +1706,10 @@ interface TabsProps {
1701
1706
  variant?: 'default' | 'line';
1702
1707
  /** 页签切换事件,传出新激活的 key */
1703
1708
  onChange?: (key: string) => void;
1709
+ /** 页签内容区 class(TabsContent 根节点,与内置样式合并) */
1710
+ contentClassName?: string;
1711
+ /** 页签内容区内联样式(同 contentClassName 的挂载规则) */
1712
+ contentStyle?: CSSProperties;
1704
1713
  /** 通用:根节点 class(与内置样式合并) */
1705
1714
  className?: string;
1706
1715
  /** 通用:根节点内联样式 */
@@ -1711,7 +1720,7 @@ interface TabsProps {
1711
1720
  * 基于 vendored shadcn Tabs(@base-ui/react),每个 pane 的内容经
1712
1721
  * renderChildren 渲染;未传 activeKey 时缺省激活第一个页签。
1713
1722
  */
1714
- declare function Tabs({ items, activeKey, variant, onChange, className, style }: TabsProps): React.JSX.Element;
1723
+ declare function Tabs({ items, activeKey, variant, onChange, contentClassName, contentStyle, className, style, }: TabsProps): React.JSX.Element;
1715
1724
 
1716
1725
  /** DSL Text 语义类型 */
1717
1726
  type TextType = 'default' | 'secondary' | 'success' | 'warning' | 'danger';
@@ -71,7 +71,7 @@ import {
71
71
  createComponentRegistry,
72
72
  registerBuiltinComponents,
73
73
  useFormContext
74
- } from "../chunk-3KCE7ROX.js";
74
+ } from "../chunk-CFUWF54N.js";
75
75
  import {
76
76
  ICONS,
77
77
  Icon,
@@ -80,8 +80,8 @@ import {
80
80
  Sidebar,
81
81
  normalizeIconName,
82
82
  useSidebarDrawer
83
- } from "../chunk-2B5YV2HR.js";
84
- import "../chunk-XEK5NQJA.js";
83
+ } from "../chunk-GQE62HDV.js";
84
+ import "../chunk-NQQAPB7Q.js";
85
85
  import "../chunk-XUHJ5YSG.js";
86
86
  import "../chunk-AUSWAD26.js";
87
87
  import "../chunk-WKJUCGV4.js";
package/dist/index.cjs CHANGED
@@ -412,7 +412,28 @@ var ICONS = {
412
412
  "rotate-ccw": import_lucide_react2.RotateCcw,
413
413
  quote: import_lucide_react2.Quote,
414
414
  chat: import_lucide_react2.MessageSquare,
415
- brain: import_lucide_react2.Brain
415
+ brain: import_lucide_react2.Brain,
416
+ // lucide 规范名别名(kebab-case 原名直通;上方短别名保留兼容)——
417
+ // 白名单文档承诺 kebab-case 键,缺别名时规范名(如 trash-2)会落入未知占位
418
+ "trash-2": import_lucide_react2.Trash2,
419
+ "share-2": import_lucide_react2.Share2,
420
+ "building-2": import_lucide_react2.Building2,
421
+ house: import_lucide_react2.House,
422
+ "triangle-alert": import_lucide_react2.TriangleAlert,
423
+ "circle-alert": import_lucide_react2.CircleAlert,
424
+ "circle-check": import_lucide_react2.CircleCheck,
425
+ "circle-x": import_lucide_react2.CircleX,
426
+ "circle-question-mark": import_lucide_react2.CircleQuestionMark,
427
+ "square-pen": import_lucide_react2.SquarePen,
428
+ "refresh-ccw": import_lucide_react2.RefreshCcw,
429
+ "chart-column": import_lucide_react2.ChartColumn,
430
+ "layout-grid": import_lucide_react2.LayoutGrid,
431
+ funnel: import_lucide_react2.Funnel,
432
+ "loader-circle": import_lucide_react2.LoaderCircle,
433
+ ellipsis: import_lucide_react2.Ellipsis,
434
+ "ellipsis-vertical": import_lucide_react2.EllipsisVertical,
435
+ "message-circle": import_lucide_react2.MessageCircle,
436
+ "lock-open": import_lucide_react2.LockOpen
416
437
  };
417
438
  function normalizeIconName(name) {
418
439
  return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/[_\s]+/g, "-").toLowerCase();
@@ -442,7 +463,7 @@ function Icon({
442
463
  size: px,
443
464
  color,
444
465
  strokeWidth,
445
- className: cn("shrink-0 text-muted-foreground", className),
466
+ className: cn("shrink-0", className),
446
467
  style,
447
468
  "aria-hidden": "true"
448
469
  }
@@ -7109,7 +7130,8 @@ var tabsListVariants = (0, import_class_variance_authority7.cva)(
7109
7130
  variants: {
7110
7131
  variant: {
7111
7132
  default: "h-9 rounded-lg bg-muted p-[3px]",
7112
- line: "h-auto gap-1 rounded-none border-b border-border bg-transparent p-0"
7133
+ // line:页签栏通栏(下划线轨道占满容器宽),触发器自然宽度靠左排列
7134
+ line: "h-auto w-full justify-start gap-1 rounded-none border-b border-border bg-transparent p-0"
7113
7135
  }
7114
7136
  },
7115
7137
  defaultVariants: {
@@ -7145,8 +7167,9 @@ function TabsTrigger({
7145
7167
  // default 变体:激活态胶囊(边框 + 卡片底 + 阴影)
7146
7168
  "group-data-[variant=default]/tabs-list:data-active:border-border group-data-[variant=default]/tabs-list:data-active:bg-card group-data-[variant=default]/tabs-list:data-active:shadow-sm",
7147
7169
  // line 变体:下划线指示——弱化未激活文字,激活态底部 2px 主色线
7148
- //(叠在 List 的底边轨道上),无底色/圆角/阴影
7149
- "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
7170
+ //(叠在 List 的底边轨道上),无底色/圆角/阴影;通栏 List 下取消
7171
+ // flex-1 拉伸,触发器保持自然宽度
7172
+ "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
7150
7173
  className
7151
7174
  ),
7152
7175
  ...props
@@ -7169,7 +7192,16 @@ function TabsContent({
7169
7192
 
7170
7193
  // src/components/components/Tabs/index.tsx
7171
7194
  var import_jsx_runtime119 = require("react/jsx-runtime");
7172
- function Tabs2({ items = [], activeKey, variant, onChange, className, style }) {
7195
+ function Tabs2({
7196
+ items = [],
7197
+ activeKey,
7198
+ variant,
7199
+ onChange,
7200
+ contentClassName,
7201
+ contentStyle,
7202
+ className,
7203
+ style
7204
+ }) {
7173
7205
  const { renderChildren } = (0, import_runtime22.useRenderer)();
7174
7206
  return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(
7175
7207
  Tabs,
@@ -7181,7 +7213,16 @@ function Tabs2({ items = [], activeKey, variant, onChange, className, style }) {
7181
7213
  style,
7182
7214
  children: [
7183
7215
  /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsList, { variant, children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
7184
- items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
7216
+ items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7217
+ TabsContent,
7218
+ {
7219
+ value: item.key,
7220
+ className: cn(contentClassName, item.className),
7221
+ style: { ...contentStyle, ...item.style },
7222
+ children: renderChildren(item.children)
7223
+ },
7224
+ item.key
7225
+ ))
7185
7226
  ]
7186
7227
  }
7187
7228
  );
package/dist/index.js CHANGED
@@ -71,7 +71,7 @@ import {
71
71
  createComponentRegistry,
72
72
  registerBuiltinComponents,
73
73
  useFormContext
74
- } from "./chunk-3KCE7ROX.js";
74
+ } from "./chunk-CFUWF54N.js";
75
75
  import {
76
76
  InteractionProvider,
77
77
  OVERLAY_CANCEL_PAYLOAD,
@@ -91,7 +91,7 @@ import {
91
91
  findMenuChain,
92
92
  registerBuiltinLayouts,
93
93
  resolveLayout
94
- } from "./chunk-CWUY7LXF.js";
94
+ } from "./chunk-V2J6FHWX.js";
95
95
  import {
96
96
  ICONS,
97
97
  Icon,
@@ -100,8 +100,8 @@ import {
100
100
  Sidebar,
101
101
  normalizeIconName,
102
102
  useSidebarDrawer
103
- } from "./chunk-2B5YV2HR.js";
104
- import "./chunk-XEK5NQJA.js";
103
+ } from "./chunk-GQE62HDV.js";
104
+ import "./chunk-NQQAPB7Q.js";
105
105
  import "./chunk-XUHJ5YSG.js";
106
106
  import "./chunk-AUSWAD26.js";
107
107
  import "./chunk-WKJUCGV4.js";
@@ -325,7 +325,28 @@ var ICONS = {
325
325
  "rotate-ccw": import_lucide_react2.RotateCcw,
326
326
  quote: import_lucide_react2.Quote,
327
327
  chat: import_lucide_react2.MessageSquare,
328
- brain: import_lucide_react2.Brain
328
+ brain: import_lucide_react2.Brain,
329
+ // lucide 规范名别名(kebab-case 原名直通;上方短别名保留兼容)——
330
+ // 白名单文档承诺 kebab-case 键,缺别名时规范名(如 trash-2)会落入未知占位
331
+ "trash-2": import_lucide_react2.Trash2,
332
+ "share-2": import_lucide_react2.Share2,
333
+ "building-2": import_lucide_react2.Building2,
334
+ house: import_lucide_react2.House,
335
+ "triangle-alert": import_lucide_react2.TriangleAlert,
336
+ "circle-alert": import_lucide_react2.CircleAlert,
337
+ "circle-check": import_lucide_react2.CircleCheck,
338
+ "circle-x": import_lucide_react2.CircleX,
339
+ "circle-question-mark": import_lucide_react2.CircleQuestionMark,
340
+ "square-pen": import_lucide_react2.SquarePen,
341
+ "refresh-ccw": import_lucide_react2.RefreshCcw,
342
+ "chart-column": import_lucide_react2.ChartColumn,
343
+ "layout-grid": import_lucide_react2.LayoutGrid,
344
+ funnel: import_lucide_react2.Funnel,
345
+ "loader-circle": import_lucide_react2.LoaderCircle,
346
+ ellipsis: import_lucide_react2.Ellipsis,
347
+ "ellipsis-vertical": import_lucide_react2.EllipsisVertical,
348
+ "message-circle": import_lucide_react2.MessageCircle,
349
+ "lock-open": import_lucide_react2.LockOpen
329
350
  };
330
351
  function normalizeIconName(name) {
331
352
  return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/[_\s]+/g, "-").toLowerCase();
@@ -355,7 +376,7 @@ function Icon({
355
376
  size: px,
356
377
  color,
357
378
  strokeWidth,
358
- className: cn("shrink-0 text-muted-foreground", className),
379
+ className: cn("shrink-0", className),
359
380
  style,
360
381
  "aria-hidden": "true"
361
382
  }
@@ -9,8 +9,8 @@ import {
9
9
  findMenuChain,
10
10
  registerBuiltinLayouts,
11
11
  resolveLayout
12
- } from "../chunk-CWUY7LXF.js";
13
- import "../chunk-2B5YV2HR.js";
12
+ } from "../chunk-V2J6FHWX.js";
13
+ import "../chunk-GQE62HDV.js";
14
14
  import "../chunk-AUSWAD26.js";
15
15
  import "../chunk-WKJUCGV4.js";
16
16
  export {
package/dist/ui/index.cjs CHANGED
@@ -4591,7 +4591,8 @@ var tabsListVariants = (0, import_class_variance_authority9.cva)(
4591
4591
  variants: {
4592
4592
  variant: {
4593
4593
  default: "h-9 rounded-lg bg-muted p-[3px]",
4594
- line: "h-auto gap-1 rounded-none border-b border-border bg-transparent p-0"
4594
+ // line:页签栏通栏(下划线轨道占满容器宽),触发器自然宽度靠左排列
4595
+ line: "h-auto w-full justify-start gap-1 rounded-none border-b border-border bg-transparent p-0"
4595
4596
  }
4596
4597
  },
4597
4598
  defaultVariants: {
@@ -4627,8 +4628,9 @@ function TabsTrigger({
4627
4628
  // default 变体:激活态胶囊(边框 + 卡片底 + 阴影)
4628
4629
  "group-data-[variant=default]/tabs-list:data-active:border-border group-data-[variant=default]/tabs-list:data-active:bg-card group-data-[variant=default]/tabs-list:data-active:shadow-sm",
4629
4630
  // line 变体:下划线指示——弱化未激活文字,激活态底部 2px 主色线
4630
- //(叠在 List 的底边轨道上),无底色/圆角/阴影
4631
- "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
4631
+ //(叠在 List 的底边轨道上),无底色/圆角/阴影;通栏 List 下取消
4632
+ // flex-1 拉伸,触发器保持自然宽度
4633
+ "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
4632
4634
  className
4633
4635
  ),
4634
4636
  ...props
package/dist/ui/index.js CHANGED
@@ -160,7 +160,7 @@ import {
160
160
  toggleVariants,
161
161
  typographyVariants,
162
162
  useCarousel
163
- } from "../chunk-XEK5NQJA.js";
163
+ } from "../chunk-NQQAPB7Q.js";
164
164
  import {
165
165
  Dialog,
166
166
  DialogClose,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pactor-app/ui",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "Pactor UI kit (shadcn): the single built-in UI kit — vendored shadcn/ui components (Base UI primitives + cva + tailwind-merge + lucide-react), props contracts, interaction core (OverlayManager / UiBridge) and layouts, with build-time Tailwind v4 prebuilt styles.css (zero consumer-side Tailwind config)",
5
5
  "keywords": [
6
6
  "pactor",
@@ -105,10 +105,10 @@
105
105
  "recharts": "^3.10.1",
106
106
  "tailwind-merge": "^3.6.0",
107
107
  "vaul": "^1.1.2",
108
- "@pactor-app/core": "1.12.0",
109
- "@pactor-app/permission": "1.12.0",
110
- "@pactor-app/runtime": "1.12.0",
111
- "@pactor-app/router": "1.12.0"
108
+ "@pactor-app/core": "1.13.0",
109
+ "@pactor-app/router": "1.13.0",
110
+ "@pactor-app/runtime": "1.13.0",
111
+ "@pactor-app/permission": "1.13.0"
112
112
  },
113
113
  "peerDependencies": {
114
114
  "react": ">=18",
package/styles.css CHANGED
@@ -740,6 +740,9 @@
740
740
  .flex-1 {
741
741
  flex: 1;
742
742
  }
743
+ .flex-none {
744
+ flex: none;
745
+ }
743
746
  .shrink-0 {
744
747
  flex-shrink: 0;
745
748
  }
@@ -1894,6 +1897,9 @@
1894
1897
  .group-data-\[variant\=line\]\/tabs-list\:h-9:is(:where(.group\/tabs-list)[data-variant="line"] *) {
1895
1898
  height: calc(var(--spacing) * 9);
1896
1899
  }
1900
+ .group-data-\[variant\=line\]\/tabs-list\:flex-none:is(:where(.group\/tabs-list)[data-variant="line"] *) {
1901
+ flex: none;
1902
+ }
1897
1903
  .group-data-\[variant\=line\]\/tabs-list\:rounded-none:is(:where(.group\/tabs-list)[data-variant="line"] *) {
1898
1904
  border-radius: 0;
1899
1905
  }