@pixpilot/formily-shadcn 0.10.0 → 0.11.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.
Files changed (116) hide show
  1. package/README.md +27 -1
  2. package/dist/components/checkbox.d.cts +2 -2
  3. package/dist/components/checkbox.d.ts +2 -2
  4. package/dist/components/column.d.ts +2 -2
  5. package/dist/components/context/context.d.cts +1 -1
  6. package/dist/components/context/context.d.ts +1 -1
  7. package/dist/components/context/form-context.d.cts +34 -5
  8. package/dist/components/context/form-context.d.ts +34 -5
  9. package/dist/components/context/index.d.cts +1 -1
  10. package/dist/components/context/index.d.ts +1 -1
  11. package/dist/components/date-picker.d.cts +3 -3
  12. package/dist/components/date-picker.d.ts +3 -3
  13. package/dist/components/file-upload/file-upload-inline.d.cts +8 -8
  14. package/dist/components/file-upload/file-upload-inline.d.ts +8 -8
  15. package/dist/components/file-upload/file-upload.d.cts +8 -8
  16. package/dist/components/file-upload/file-upload.d.ts +8 -8
  17. package/dist/components/form-grid.d.ts +2 -2
  18. package/dist/components/form-item/base-form-item.cjs +85 -0
  19. package/dist/components/form-item/base-form-item.d.cts +2 -0
  20. package/dist/components/form-item/base-form-item.d.ts +2 -0
  21. package/dist/components/form-item/base-form-item.js +80 -0
  22. package/dist/components/form-item/connected-form-item.cjs +47 -0
  23. package/dist/components/form-item/connected-form-item.d.cts +13 -0
  24. package/dist/components/form-item/connected-form-item.d.ts +13 -0
  25. package/dist/components/form-item/connected-form-item.js +44 -0
  26. package/dist/components/form-item/form-item-description-popover.cjs +42 -0
  27. package/dist/components/form-item/form-item-description-popover.js +37 -0
  28. package/dist/components/form-item/form-item-label.cjs +29 -0
  29. package/dist/components/form-item/form-item-label.js +25 -0
  30. package/dist/components/form-item/form-item-types.d.cts +23 -0
  31. package/dist/components/form-item/form-item-types.d.ts +23 -0
  32. package/dist/components/form-item/form-item.cjs +2 -0
  33. package/dist/components/form-item/form-item.d.cts +4 -0
  34. package/dist/components/form-item/form-item.d.ts +4 -0
  35. package/dist/components/form-item/form-item.js +2 -0
  36. package/dist/components/form-item/index.cjs +3 -0
  37. package/dist/components/form-item/index.d.cts +4 -0
  38. package/dist/components/form-item/index.d.ts +4 -0
  39. package/dist/components/form-item/index.js +3 -0
  40. package/dist/components/form-item/spacing-config.cjs +24 -0
  41. package/dist/components/form-item/spacing-config.js +23 -0
  42. package/dist/components/form-items-container.cjs +2 -1
  43. package/dist/components/form-items-container.js +2 -1
  44. package/dist/components/form.cjs +4 -11
  45. package/dist/components/form.d.cts +1 -3
  46. package/dist/components/form.d.ts +1 -3
  47. package/dist/components/form.js +4 -11
  48. package/dist/components/icon-picker.d.ts +3 -3
  49. package/dist/components/input.d.cts +2 -2
  50. package/dist/components/input.d.ts +2 -2
  51. package/dist/components/json-schema-form-renderer/index.cjs +4 -0
  52. package/dist/components/json-schema-form-renderer/index.d.cts +5 -0
  53. package/dist/components/json-schema-form-renderer/index.d.ts +5 -0
  54. package/dist/components/json-schema-form-renderer/index.js +4 -0
  55. package/dist/components/json-schema-form-renderer/json-schema-form-basic.cjs +35 -0
  56. package/dist/components/json-schema-form-renderer/json-schema-form-basic.d.cts +14 -0
  57. package/dist/components/json-schema-form-renderer/json-schema-form-basic.d.ts +14 -0
  58. package/dist/components/json-schema-form-renderer/json-schema-form-basic.js +32 -0
  59. package/dist/components/json-schema-form-renderer/json-schema-form-extended.cjs +35 -0
  60. package/dist/components/json-schema-form-renderer/json-schema-form-extended.d.cts +14 -0
  61. package/dist/components/json-schema-form-renderer/json-schema-form-extended.d.ts +14 -0
  62. package/dist/components/json-schema-form-renderer/json-schema-form-extended.js +32 -0
  63. package/dist/components/{json-schema-form-renderer.cjs → json-schema-form-renderer/json-schema-form-renderer.cjs} +16 -17
  64. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.d.cts +7 -0
  65. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.d.ts +7 -0
  66. package/dist/components/{json-schema-form-renderer.js → json-schema-form-renderer/json-schema-form-renderer.js} +14 -15
  67. package/dist/components/json-schema-form-renderer/json-schema-form.cjs +36 -0
  68. package/dist/components/json-schema-form-renderer/json-schema-form.d.cts +14 -0
  69. package/dist/components/json-schema-form-renderer/json-schema-form.d.ts +14 -0
  70. package/dist/components/json-schema-form-renderer/json-schema-form.js +33 -0
  71. package/dist/components/json-schema-form-renderer/types.d.cts +23 -0
  72. package/dist/components/json-schema-form-renderer/types.d.ts +23 -0
  73. package/dist/components/number-input.d.cts +2 -2
  74. package/dist/components/number-input.d.ts +2 -2
  75. package/dist/components/object-container.cjs +13 -6
  76. package/dist/components/object-container.js +13 -6
  77. package/dist/components/schema-field/index.d.cts +3 -3
  78. package/dist/components/schema-field/index.d.ts +3 -3
  79. package/dist/components/schema-field/index.js +3 -3
  80. package/dist/components/schema-field/schema-field-basics.cjs +66 -23
  81. package/dist/components/schema-field/schema-field-basics.d.cts +283 -198
  82. package/dist/components/schema-field/schema-field-basics.d.ts +294 -209
  83. package/dist/components/schema-field/schema-field-basics.js +65 -23
  84. package/dist/components/schema-field/schema-field-extended.cjs +23 -8
  85. package/dist/components/schema-field/schema-field-extended.d.cts +566 -431
  86. package/dist/components/schema-field/schema-field-extended.d.ts +566 -431
  87. package/dist/components/schema-field/schema-field-extended.js +23 -9
  88. package/dist/components/schema-field/schema-field.cjs +23 -8
  89. package/dist/components/schema-field/schema-field.d.cts +334 -233
  90. package/dist/components/schema-field/schema-field.d.ts +340 -239
  91. package/dist/components/schema-field/schema-field.js +23 -9
  92. package/dist/components/separator.d.cts +2 -2
  93. package/dist/components/separator.d.ts +2 -2
  94. package/dist/components/slider.d.cts +2 -2
  95. package/dist/components/slider.d.ts +2 -2
  96. package/dist/components/switch.d.cts +2 -2
  97. package/dist/components/switch.d.ts +2 -2
  98. package/dist/components/tags-input-inline.d.cts +2 -2
  99. package/dist/components/tags-input-inline.d.ts +2 -2
  100. package/dist/components/textarea.d.cts +2 -2
  101. package/dist/components/textarea.d.ts +2 -2
  102. package/dist/index.cjs +17 -6
  103. package/dist/index.d.cts +14 -6
  104. package/dist/index.d.ts +14 -6
  105. package/dist/index.js +11 -6
  106. package/dist/types/form-item.d.cts +5 -0
  107. package/dist/types/form-item.d.ts +5 -0
  108. package/dist/utils/extract-components.cjs +11 -0
  109. package/dist/utils/extract-components.js +10 -0
  110. package/package.json +7 -7
  111. package/dist/components/form-item.cjs +0 -118
  112. package/dist/components/form-item.d.cts +0 -22
  113. package/dist/components/form-item.d.ts +0 -22
  114. package/dist/components/form-item.js +0 -112
  115. package/dist/components/json-schema-form-renderer.d.cts +0 -20
  116. package/dist/components/json-schema-form-renderer.d.ts +0 -20
@@ -1,112 +0,0 @@
1
- import { useFormContext } from "../hooks/use-form-context.js";
2
- import { useLabel } from "../hooks/use-label.js";
3
- import "../hooks/index.js";
4
- import { connect, mapProps, useField } from "@formily/react";
5
- import React from "react";
6
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
- import { cn } from "@pixpilot/shadcn";
8
- import { isVoidField } from "@formily/core";
9
-
10
- //#region src/components/form-item.tsx
11
- const BaseFormItem = ({ className, children, label, description, asterisk, feedbackStatus, feedbackText, labelPlacement = "top",...props }) => {
12
- const field = useField();
13
- const fieldProps = field?.componentProps ?? {};
14
- const effectiveLabel = useLabel(label);
15
- const { itemProps } = useFormContext();
16
- const { className: itemPropsClassName } = itemProps || {};
17
- const effectiveLabelPlacement = fieldProps.labelPlacement ?? labelPlacement;
18
- const id = field?.componentProps?.id ?? `form-${field?.address?.toString()?.replace(/\./gu, "-")}`;
19
- const descriptionId = React.useId();
20
- const feedbackId = React.useId();
21
- const ariaDescribedBy = [description != null ? descriptionId : void 0, feedbackText != null ? feedbackId : void 0].filter(Boolean).join(" ");
22
- const labelElement = effectiveLabel != null && /* @__PURE__ */ jsxs("label", {
23
- htmlFor: id,
24
- "data-slot": "form-label",
25
- "data-error": Boolean(feedbackStatus === "error"),
26
- className: cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", feedbackStatus === "error" && "text-destructive", (effectiveLabelPlacement === "end" || effectiveLabelPlacement === "start") && "shrink-0"),
27
- children: [effectiveLabel, asterisk && /* @__PURE__ */ jsx("span", {
28
- className: "text-destructive ml-1",
29
- "aria-label": "required",
30
- children: "*"
31
- })]
32
- });
33
- const inputElement = /* @__PURE__ */ jsx("div", {
34
- className: "relative",
35
- children: React.isValidElement(children) ? React.cloneElement(children, {
36
- id,
37
- "aria-describedby": ariaDescribedBy || void 0,
38
- "aria-invalid": feedbackStatus === "error" ? "true" : void 0
39
- }) : children
40
- });
41
- const contentElement = /* @__PURE__ */ jsxs(Fragment, { children: [
42
- effectiveLabelPlacement === "top" && labelElement,
43
- description != null && effectiveLabelPlacement === "top" && /* @__PURE__ */ jsx("p", {
44
- id: descriptionId,
45
- className: "text-muted-foreground text-[0.8rem]",
46
- children: description
47
- }),
48
- (effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ jsxs("div", {
49
- className: cn("flex items-center gap-2", effectiveLabelPlacement === "start" && "flex-row"),
50
- children: [
51
- effectiveLabelPlacement === "start" && labelElement,
52
- inputElement,
53
- effectiveLabelPlacement === "end" && labelElement
54
- ]
55
- }),
56
- effectiveLabelPlacement === "top" && inputElement,
57
- description != null && (effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ jsx("p", {
58
- id: descriptionId,
59
- className: "text-muted-foreground text-[0.8rem]",
60
- children: description
61
- })
62
- ] });
63
- return /* @__PURE__ */ jsxs("div", {
64
- "data-slot": "form-item",
65
- className: cn("flex flex-col gap-2", itemPropsClassName, className),
66
- ...props,
67
- children: [contentElement, Boolean(feedbackText) && /* @__PURE__ */ jsx("p", {
68
- id: feedbackId,
69
- className: cn("text-[0.8rem]", feedbackStatus === "error" && "text-destructive font-medium", feedbackStatus === "warning" && "text-amber-600", feedbackStatus === "success" && "text-green-600"),
70
- children: typeof feedbackText === "string" ? feedbackText.split("\n").map((line, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [line, index < feedbackText.split("\n").length - 1 && /* @__PURE__ */ jsx("br", {})] }, index)) : feedbackText
71
- })]
72
- });
73
- };
74
- /**
75
- * FormItem component connected to Formily field state
76
- * Automatically maps field validation state to component props
77
- */
78
- const FormItem = connect(BaseFormItem, mapProps((props, field) => {
79
- if (isVoidField(field)) return {
80
- label: field.title ?? props.label,
81
- description: props.description ?? field.description,
82
- asterisk: props.asterisk
83
- };
84
- const takeFeedbackStatus = () => {
85
- if (field.validating) return void 0;
86
- if (field.selfErrors?.length) return "error";
87
- if (field.selfWarnings?.length) return "warning";
88
- if (field.selfSuccesses?.length) return "success";
89
- };
90
- const takeFeedbackText = () => {
91
- if (field.validating) return void 0;
92
- if (props.feedbackText != null) return props.feedbackText;
93
- if (field.selfErrors?.length) return field.selfErrors.join(", ");
94
- if (field.selfWarnings?.length) return field.selfWarnings.join(", ");
95
- if (field.selfSuccesses?.length) return field.selfSuccesses.join(", ");
96
- };
97
- const takeAsterisk = () => {
98
- if (field.required && field.pattern !== "readPretty") return true;
99
- if ("asterisk" in props) return Boolean(props.asterisk);
100
- return false;
101
- };
102
- return {
103
- label: props.label ?? field.title,
104
- description: props.description ?? field.description,
105
- feedbackStatus: takeFeedbackStatus(),
106
- feedbackText: takeFeedbackText(),
107
- asterisk: takeAsterisk()
108
- };
109
- }));
110
-
111
- //#endregion
112
- export { FormItem };
@@ -1,20 +0,0 @@
1
- import { Form } from "./form.cjs";
2
- import { ISchema } from "@formily/react";
3
- import React from "react";
4
-
5
- //#region src/components/json-schema-form-renderer.d.ts
6
- interface JsonSchemaFormRendererProps extends Omit<React.ComponentProps<typeof Form>, 'form'> {
7
- schema: ISchema;
8
- children?: React.ReactNode;
9
- values?: Record<string, any>;
10
- components?: {
11
- fields?: Record<string, {
12
- component: React.ComponentType<any>;
13
- decorator?: string;
14
- }>;
15
- decorators?: Record<string, React.ComponentType<any>>;
16
- };
17
- }
18
- declare const JsonSchemaFormRenderer: React.FC<JsonSchemaFormRendererProps>;
19
- //#endregion
20
- export { JsonSchemaFormRenderer, JsonSchemaFormRendererProps };
@@ -1,20 +0,0 @@
1
- import { Form } from "./form.js";
2
- import { ISchema } from "@formily/react";
3
- import React from "react";
4
-
5
- //#region src/components/json-schema-form-renderer.d.ts
6
- interface JsonSchemaFormRendererProps extends Omit<React.ComponentProps<typeof Form>, 'form'> {
7
- schema: ISchema;
8
- children?: React.ReactNode;
9
- values?: Record<string, any>;
10
- components?: {
11
- fields?: Record<string, {
12
- component: React.ComponentType<any>;
13
- decorator?: string;
14
- }>;
15
- decorators?: Record<string, React.ComponentType<any>>;
16
- };
17
- }
18
- declare const JsonSchemaFormRenderer: React.FC<JsonSchemaFormRendererProps>;
19
- //#endregion
20
- export { JsonSchemaFormRenderer, JsonSchemaFormRendererProps };