@wordrhyme/auto-crud 1.2.0 → 1.2.1

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/index.cjs CHANGED
@@ -61,6 +61,8 @@ let __formily_react = require("@formily/react");
61
61
  __formily_react = __toESM(__formily_react);
62
62
  let sonner = require("sonner");
63
63
  sonner = __toESM(sonner);
64
+ let __tanstack_react_query = require("@tanstack/react-query");
65
+ __tanstack_react_query = __toESM(__tanstack_react_query);
64
66
 
65
67
  //#region src/lib/utils.ts
66
68
  function cn(...inputs) {
@@ -5173,12 +5175,8 @@ function getComponentProps(type, parsed) {
5173
5175
  function createFormSchema(schema, options) {
5174
5176
  const shape = schema.shape;
5175
5177
  const properties = {};
5176
- const { overrides, exclude = [], layout = "vertical", gridColumns = 1, labelAlign = "top", labelWidth, labelCol, wrapperCol } = options ?? {};
5178
+ const { overrides, exclude = [], layout = "vertical", gridColumns = 1 } = options ?? {};
5177
5179
  const decoratorProps = { className: "space-y-2" };
5178
- if (labelAlign) decoratorProps.labelAlign = labelAlign;
5179
- if (labelWidth) decoratorProps.labelWidth = labelWidth;
5180
- if (labelCol) decoratorProps.labelCol = labelCol;
5181
- if (wrapperCol) decoratorProps.wrapperCol = wrapperCol;
5182
5180
  for (const [key, fieldSchema] of Object.entries(shape)) {
5183
5181
  if (exclude.includes(key)) continue;
5184
5182
  const parsed = parseZodField(fieldSchema);
@@ -5430,16 +5428,22 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
5430
5428
  const formSchema = (0, react.useMemo)(() => createEditFormSchema(zodSchema, {
5431
5429
  overrides,
5432
5430
  layout: "grid",
5433
- gridColumns,
5434
- labelAlign,
5435
- labelWidth
5431
+ gridColumns
5436
5432
  }), [
5437
5433
  zodSchema,
5438
5434
  overrides,
5439
- gridColumns,
5440
- labelAlign,
5441
- labelWidth
5435
+ gridColumns
5442
5436
  ]);
5437
+ const formLayout = (0, react.useMemo)(() => {
5438
+ const inlineLabel = labelAlign === "left" || labelAlign === "right";
5439
+ return {
5440
+ labelPlacement: inlineLabel ? "start" : "top",
5441
+ itemProps: inlineLabel ? { label: {
5442
+ className: labelAlign === "right" ? "text-right" : void 0,
5443
+ style: labelWidth != null ? { width: labelWidth } : void 0
5444
+ } } : void 0
5445
+ };
5446
+ }, [labelAlign, labelWidth]);
5443
5447
  const fieldComponents = (0, react.useMemo)(() => ({ fields: {
5444
5448
  ...defaultFieldComponents,
5445
5449
  ...formComponents.all()
@@ -5452,6 +5456,7 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
5452
5456
  (0, react.useImperativeHandle)(ref, () => ({ submit: handleSubmit }));
5453
5457
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_formily_shadcn.Form, {
5454
5458
  form,
5459
+ layout: formLayout,
5455
5460
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_formily_shadcn.JsonSchemaField, {
5456
5461
  schema: formSchema,
5457
5462
  components: fieldComponents
@@ -7560,13 +7565,6 @@ function DataTableToolbarFilter({ column }) {
7560
7565
  }
7561
7566
  }
7562
7567
 
7563
- //#endregion
7564
- //#region ../../node_modules/.pnpm/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/utils.js
7565
- var isServer = typeof window === "undefined" || "Deno" in globalThis;
7566
- function keepPreviousData(previousData) {
7567
- return previousData;
7568
- }
7569
-
7570
7568
  //#endregion
7571
7569
  //#region src/hooks/use-auto-crud-resource.ts
7572
7570
  /** 默认 toast 适配器(使用 sonner) */
@@ -7716,7 +7714,7 @@ function useAutoCrudResource({ router, schema, query: queryTransform, options =
7716
7714
  queryTransform
7717
7715
  ]);
7718
7716
  const listQuery = router.list.useQuery(queryInput, {
7719
- placeholderData: keepPreviousData,
7717
+ placeholderData: __tanstack_react_query.keepPreviousData,
7720
7718
  staleTime: 0
7721
7719
  });
7722
7720
  const tableRows = listQuery.data?.data ?? [];
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
2
2
  import { z } from "zod";
3
3
  import * as _tanstack_react_table0 from "@tanstack/react-table";
4
4
  import { Column, ColumnDef, ColumnSort, Row, RowData, Table, TableOptions, TableState } from "@tanstack/react-table";
@@ -362,7 +362,7 @@ declare function AutoTableActionBar<TData>({
362
362
  enableDelete,
363
363
  extraActions,
364
364
  actions
365
- }: AutoTableActionBarProps<TData>): react_jsx_runtime2.JSX.Element;
365
+ }: AutoTableActionBarProps<TData>): react_jsx_runtime3.JSX.Element;
366
366
  //#endregion
367
367
  //#region src/lib/schema-bridge/types.d.ts
368
368
  /**
@@ -530,7 +530,7 @@ declare function AutoTable<T extends z.ZodObject<z.ZodRawShape>>({
530
530
  showDefaultExport,
531
531
  onSelectedCountChange,
532
532
  getSelectedRows
533
- }: AutoTableProps<T>): react_jsx_runtime2.JSX.Element;
533
+ }: AutoTableProps<T>): react_jsx_runtime3.JSX.Element;
534
534
  //#endregion
535
535
  //#region src/i18n/locale.d.ts
536
536
  /**
@@ -935,7 +935,7 @@ declare function AutoCrudTable<TSchema extends z.ZodObject<z.ZodRawShape>>({
935
935
  toolbarActions,
936
936
  locale: localeProp,
937
937
  onCreate
938
- }: AutoCrudTableProps<TSchema>): react_jsx_runtime2.JSX.Element;
938
+ }: AutoCrudTableProps<TSchema>): react_jsx_runtime3.JSX.Element;
939
939
  //#endregion
940
940
  //#region src/components/auto-crud/auto-form.d.ts
941
941
  interface AutoFormProps<T extends z.ZodObject<z.ZodRawShape>> {
@@ -967,7 +967,7 @@ declare function AutoFormInner<T extends z.ZodObject<z.ZodRawShape>>({
967
967
  labelAlign,
968
968
  labelWidth,
969
969
  showSubmitButton
970
- }: AutoFormProps<T>, ref: React.Ref<AutoFormRef>): react_jsx_runtime2.JSX.Element;
970
+ }: AutoFormProps<T>, ref: React.Ref<AutoFormRef>): react_jsx_runtime3.JSX.Element;
971
971
  declare const AutoForm: <T extends z.ZodObject<z.ZodRawShape>>(props: AutoFormProps<T> & {
972
972
  ref?: React.Ref<AutoFormRef>;
973
973
  }) => ReturnType<typeof AutoFormInner>;
@@ -1269,7 +1269,7 @@ declare function AutoTableSimpleFilters<TData>({
1269
1269
  filters: externalFilters,
1270
1270
  onFiltersChange,
1271
1271
  leading
1272
- }: AutoTableSimpleFiltersProps<TData>): react_jsx_runtime2.JSX.Element | null;
1272
+ }: AutoTableSimpleFiltersProps<TData>): react_jsx_runtime3.JSX.Element | null;
1273
1273
  //#endregion
1274
1274
  //#region src/components/auto-crud/form-modal.d.ts
1275
1275
  type ModalVariant = "dialog" | "sheet";
@@ -1311,7 +1311,7 @@ declare function CrudFormModal<T extends z.ZodObject<z.ZodRawShape>>({
1311
1311
  labelAlign,
1312
1312
  labelWidth,
1313
1313
  className
1314
- }: CrudFormModalProps<T>): react_jsx_runtime2.JSX.Element;
1314
+ }: CrudFormModalProps<T>): react_jsx_runtime3.JSX.Element;
1315
1315
  //#endregion
1316
1316
  //#region src/components/auto-crud/import-dialog.d.ts
1317
1317
  interface ImportDialogProps {
@@ -1333,7 +1333,7 @@ declare function ImportDialog({
1333
1333
  columns,
1334
1334
  title,
1335
1335
  locale
1336
- }: ImportDialogProps): react_jsx_runtime2.JSX.Element;
1336
+ }: ImportDialogProps): react_jsx_runtime3.JSX.Element;
1337
1337
  //#endregion
1338
1338
  //#region src/components/auto-crud/export-dialog.d.ts
1339
1339
  type ExportMode = "selected" | "filtered";
@@ -1353,7 +1353,7 @@ declare function ExportDialog({
1353
1353
  selectedCount,
1354
1354
  onExport,
1355
1355
  canExportFiltered
1356
- }: ExportDialogProps): react_jsx_runtime2.JSX.Element;
1356
+ }: ExportDialogProps): react_jsx_runtime3.JSX.Element;
1357
1357
  //#endregion
1358
1358
  //#region src/components/data-table/data-table.d.ts
1359
1359
  interface DataTableProps<TData> extends React$1.ComponentProps<"div"> {
@@ -1366,7 +1366,7 @@ declare function DataTable<TData>({
1366
1366
  children,
1367
1367
  className,
1368
1368
  ...props
1369
- }: DataTableProps<TData>): react_jsx_runtime2.JSX.Element;
1369
+ }: DataTableProps<TData>): react_jsx_runtime3.JSX.Element;
1370
1370
  //#endregion
1371
1371
  //#region src/components/data-table/data-table-advanced-toolbar.d.ts
1372
1372
  interface DataTableAdvancedToolbarProps<TData> extends React$1.ComponentProps<"div"> {
@@ -1377,7 +1377,7 @@ declare function DataTableAdvancedToolbar<TData>({
1377
1377
  children,
1378
1378
  className,
1379
1379
  ...props
1380
- }: DataTableAdvancedToolbarProps<TData>): react_jsx_runtime2.JSX.Element;
1380
+ }: DataTableAdvancedToolbarProps<TData>): react_jsx_runtime3.JSX.Element;
1381
1381
  //#endregion
1382
1382
  //#region src/components/data-table/data-table-column-header.d.ts
1383
1383
  interface DataTableColumnHeaderProps<TData, TValue> extends React.ComponentProps<typeof DropdownMenuTrigger> {
@@ -1389,7 +1389,7 @@ declare function DataTableColumnHeader<TData, TValue>({
1389
1389
  label,
1390
1390
  className,
1391
1391
  ...props
1392
- }: DataTableColumnHeaderProps<TData, TValue>): react_jsx_runtime2.JSX.Element;
1392
+ }: DataTableColumnHeaderProps<TData, TValue>): react_jsx_runtime3.JSX.Element;
1393
1393
  //#endregion
1394
1394
  //#region src/components/data-table/data-table-faceted-filter.d.ts
1395
1395
  interface DataTableFacetedFilterProps<TData, TValue> {
@@ -1403,7 +1403,7 @@ declare function DataTableFacetedFilter<TData, TValue>({
1403
1403
  title,
1404
1404
  options,
1405
1405
  multiple
1406
- }: DataTableFacetedFilterProps<TData, TValue>): react_jsx_runtime2.JSX.Element;
1406
+ }: DataTableFacetedFilterProps<TData, TValue>): react_jsx_runtime3.JSX.Element;
1407
1407
  //#endregion
1408
1408
  //#region src/components/data-table/data-table-pagination.d.ts
1409
1409
  interface DataTablePaginationProps<TData> extends React.ComponentProps<"div"> {
@@ -1415,7 +1415,7 @@ declare function DataTablePagination<TData>({
1415
1415
  pageSizeOptions,
1416
1416
  className,
1417
1417
  ...props
1418
- }: DataTablePaginationProps<TData>): react_jsx_runtime2.JSX.Element;
1418
+ }: DataTablePaginationProps<TData>): react_jsx_runtime3.JSX.Element;
1419
1419
  //#endregion
1420
1420
  //#region src/components/data-table/data-table-toolbar.d.ts
1421
1421
  interface DataTableToolbarProps<TData> extends React$1.ComponentProps<"div"> {
@@ -1426,7 +1426,7 @@ declare function DataTableToolbar<TData>({
1426
1426
  children,
1427
1427
  className,
1428
1428
  ...props
1429
- }: DataTableToolbarProps<TData>): react_jsx_runtime2.JSX.Element;
1429
+ }: DataTableToolbarProps<TData>): react_jsx_runtime3.JSX.Element;
1430
1430
  //#endregion
1431
1431
  //#region src/components/data-table/data-table-view-options.d.ts
1432
1432
  interface DataTableViewOptionsProps<TData> extends React$1.ComponentProps<typeof PopoverContent> {
@@ -1437,7 +1437,7 @@ declare function DataTableViewOptions<TData>({
1437
1437
  table,
1438
1438
  disabled,
1439
1439
  ...props
1440
- }: DataTableViewOptionsProps<TData>): react_jsx_runtime2.JSX.Element;
1440
+ }: DataTableViewOptionsProps<TData>): react_jsx_runtime3.JSX.Element;
1441
1441
  //#endregion
1442
1442
  //#region src/components/ui/multi-combobox.d.ts
1443
1443
  interface MultiComboboxOption {
@@ -1523,7 +1523,7 @@ declare function createFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema:
1523
1523
  /**
1524
1524
  * 为编辑模式创建 Form Schema(排除 id, createdAt, updatedAt)
1525
1525
  */
1526
- declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions, "exclude">): ISchema;
1526
+ declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions, 'exclude'>): ISchema;
1527
1527
  //#endregion
1528
1528
  //#region src/lib/schema-bridge/schema-adapter.d.ts
1529
1529
  /**
package/dist/index.d.ts CHANGED
@@ -1523,7 +1523,7 @@ declare function createFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema:
1523
1523
  /**
1524
1524
  * 为编辑模式创建 Form Schema(排除 id, createdAt, updatedAt)
1525
1525
  */
1526
- declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions, "exclude">): ISchema;
1526
+ declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions, 'exclude'>): ISchema;
1527
1527
  //#endregion
1528
1528
  //#region src/lib/schema-bridge/schema-adapter.d.ts
1529
1529
  /**
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ import { createForm, onFieldValueChange } from "@formily/core";
19
19
  import { Form, JsonSchemaField } from "@pixpilot/formily-shadcn";
20
20
  import { connect, mapProps } from "@formily/react";
21
21
  import { toast } from "sonner";
22
+ import { keepPreviousData } from "@tanstack/react-query";
22
23
 
23
24
  //#region src/lib/utils.ts
24
25
  function cn(...inputs) {
@@ -5131,12 +5132,8 @@ function getComponentProps(type, parsed) {
5131
5132
  function createFormSchema(schema, options) {
5132
5133
  const shape = schema.shape;
5133
5134
  const properties = {};
5134
- const { overrides, exclude = [], layout = "vertical", gridColumns = 1, labelAlign = "top", labelWidth, labelCol, wrapperCol } = options ?? {};
5135
+ const { overrides, exclude = [], layout = "vertical", gridColumns = 1 } = options ?? {};
5135
5136
  const decoratorProps = { className: "space-y-2" };
5136
- if (labelAlign) decoratorProps.labelAlign = labelAlign;
5137
- if (labelWidth) decoratorProps.labelWidth = labelWidth;
5138
- if (labelCol) decoratorProps.labelCol = labelCol;
5139
- if (wrapperCol) decoratorProps.wrapperCol = wrapperCol;
5140
5137
  for (const [key, fieldSchema] of Object.entries(shape)) {
5141
5138
  if (exclude.includes(key)) continue;
5142
5139
  const parsed = parseZodField(fieldSchema);
@@ -5388,16 +5385,22 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
5388
5385
  const formSchema = useMemo(() => createEditFormSchema(zodSchema, {
5389
5386
  overrides,
5390
5387
  layout: "grid",
5391
- gridColumns,
5392
- labelAlign,
5393
- labelWidth
5388
+ gridColumns
5394
5389
  }), [
5395
5390
  zodSchema,
5396
5391
  overrides,
5397
- gridColumns,
5398
- labelAlign,
5399
- labelWidth
5392
+ gridColumns
5400
5393
  ]);
5394
+ const formLayout = useMemo(() => {
5395
+ const inlineLabel = labelAlign === "left" || labelAlign === "right";
5396
+ return {
5397
+ labelPlacement: inlineLabel ? "start" : "top",
5398
+ itemProps: inlineLabel ? { label: {
5399
+ className: labelAlign === "right" ? "text-right" : void 0,
5400
+ style: labelWidth != null ? { width: labelWidth } : void 0
5401
+ } } : void 0
5402
+ };
5403
+ }, [labelAlign, labelWidth]);
5401
5404
  const fieldComponents = useMemo(() => ({ fields: {
5402
5405
  ...defaultFieldComponents,
5403
5406
  ...formComponents.all()
@@ -5410,6 +5413,7 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
5410
5413
  useImperativeHandle(ref, () => ({ submit: handleSubmit }));
5411
5414
  return /* @__PURE__ */ jsxs(Form, {
5412
5415
  form,
5416
+ layout: formLayout,
5413
5417
  children: [/* @__PURE__ */ jsx(JsonSchemaField, {
5414
5418
  schema: formSchema,
5415
5419
  components: fieldComponents
@@ -7518,13 +7522,6 @@ function DataTableToolbarFilter({ column }) {
7518
7522
  }
7519
7523
  }
7520
7524
 
7521
- //#endregion
7522
- //#region ../../node_modules/.pnpm/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/utils.js
7523
- var isServer = typeof window === "undefined" || "Deno" in globalThis;
7524
- function keepPreviousData(previousData) {
7525
- return previousData;
7526
- }
7527
-
7528
7525
  //#endregion
7529
7526
  //#region src/hooks/use-auto-crud-resource.ts
7530
7527
  /** 默认 toast 适配器(使用 sonner) */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wordrhyme/auto-crud",
3
3
  "type": "module",
4
- "version": "1.2.0",
4
+ "version": "1.2.1",
5
5
  "description": "Schema-first CRUD components with auto-generated tables and forms",
6
6
  "author": "wordrhyme",
7
7
  "license": "MIT",
@@ -27,6 +27,7 @@
27
27
  "access": "public"
28
28
  },
29
29
  "peerDependencies": {
30
+ "@tanstack/react-query": "^5.0.0",
30
31
  "react": "^18.0.0 || ^19.0.0",
31
32
  "react-dom": "^18.0.0 || ^19.0.0",
32
33
  "sonner": "^2.0.0",
@@ -66,11 +67,12 @@
66
67
  "tailwind-merge": "^3.5.0",
67
68
  "vaul": "^1.1.2",
68
69
  "@pixpilot/formily-shadcn": "1.11.20",
69
- "@pixpilot/shadcn-ui": "1.21.1",
70
- "@pixpilot/shadcn": "1.2.7"
70
+ "@pixpilot/shadcn": "1.2.7",
71
+ "@pixpilot/shadcn-ui": "1.21.1"
71
72
  },
72
73
  "devDependencies": {
73
74
  "@tanstack/react-query": "^5.90.15",
75
+ "@testing-library/jest-dom": "^6.9.1",
74
76
  "@testing-library/react": "^16.3.2",
75
77
  "@trpc/server": "^11.0.0",
76
78
  "@types/node": "^22.19.17",
@@ -78,15 +80,17 @@
78
80
  "@types/react-dom": "^19.2.3",
79
81
  "drizzle-orm": "1.0.0-beta.15-859cf75",
80
82
  "eslint": "^9.39.4",
83
+ "jsdom": "^27.4.0",
81
84
  "react": "19.2.4",
82
85
  "react-dom": "19.2.4",
83
86
  "tsdown": "^0.15.12",
84
87
  "typescript": "^5.9.3",
85
- "@internal/eslint-config": "0.3.0",
88
+ "vitest": "^3.2.4",
89
+ "@internal/tsconfig": "0.1.0",
86
90
  "@internal/prettier-config": "0.0.1",
87
- "@internal/tsdown-config": "0.1.0",
88
91
  "@internal/vitest-config": "0.1.0",
89
- "@internal/tsconfig": "0.1.0"
92
+ "@internal/eslint-config": "0.3.0",
93
+ "@internal/tsdown-config": "0.1.0"
90
94
  },
91
95
  "prettier": "@internal/prettier-config",
92
96
  "scripts": {