@pixpilot/formily-shadcn 0.10.0 → 0.11.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.
Files changed (112) hide show
  1. package/README.md +27 -1
  2. package/dist/components/checkbox.d.cts +2 -2
  3. package/dist/components/context/context.d.cts +1 -1
  4. package/dist/components/context/context.d.ts +1 -1
  5. package/dist/components/context/form-context.d.cts +34 -5
  6. package/dist/components/context/form-context.d.ts +34 -5
  7. package/dist/components/context/index.d.cts +1 -1
  8. package/dist/components/context/index.d.ts +1 -1
  9. package/dist/components/date-picker.d.cts +3 -3
  10. package/dist/components/file-upload/file-upload-inline.d.cts +8 -8
  11. package/dist/components/file-upload/file-upload.d.cts +8 -8
  12. package/dist/components/form-grid.d.cts +2 -2
  13. package/dist/components/form-item/base-form-item.cjs +85 -0
  14. package/dist/components/form-item/base-form-item.d.cts +2 -0
  15. package/dist/components/form-item/base-form-item.d.ts +2 -0
  16. package/dist/components/form-item/base-form-item.js +80 -0
  17. package/dist/components/form-item/connected-form-item.cjs +47 -0
  18. package/dist/components/form-item/connected-form-item.d.cts +13 -0
  19. package/dist/components/form-item/connected-form-item.d.ts +13 -0
  20. package/dist/components/form-item/connected-form-item.js +44 -0
  21. package/dist/components/form-item/form-item-description-popover.cjs +42 -0
  22. package/dist/components/form-item/form-item-description-popover.js +37 -0
  23. package/dist/components/form-item/form-item-label.cjs +29 -0
  24. package/dist/components/form-item/form-item-label.js +25 -0
  25. package/dist/components/form-item/form-item-types.d.cts +23 -0
  26. package/dist/components/form-item/form-item-types.d.ts +23 -0
  27. package/dist/components/form-item/form-item.cjs +2 -0
  28. package/dist/components/form-item/form-item.d.cts +4 -0
  29. package/dist/components/form-item/form-item.d.ts +4 -0
  30. package/dist/components/form-item/form-item.js +2 -0
  31. package/dist/components/form-item/index.cjs +3 -0
  32. package/dist/components/form-item/index.d.cts +4 -0
  33. package/dist/components/form-item/index.d.ts +4 -0
  34. package/dist/components/form-item/index.js +3 -0
  35. package/dist/components/form-item/spacing-config.cjs +24 -0
  36. package/dist/components/form-item/spacing-config.js +23 -0
  37. package/dist/components/form-items-container.cjs +2 -1
  38. package/dist/components/form-items-container.js +2 -1
  39. package/dist/components/form.cjs +4 -11
  40. package/dist/components/form.d.cts +3 -5
  41. package/dist/components/form.d.ts +1 -3
  42. package/dist/components/form.js +4 -11
  43. package/dist/components/icon-picker.d.cts +3 -3
  44. package/dist/components/icon-picker.d.ts +3 -3
  45. package/dist/components/input.d.ts +2 -2
  46. package/dist/components/json-schema-form-renderer/index.cjs +4 -0
  47. package/dist/components/json-schema-form-renderer/index.d.cts +5 -0
  48. package/dist/components/json-schema-form-renderer/index.d.ts +5 -0
  49. package/dist/components/json-schema-form-renderer/index.js +4 -0
  50. package/dist/components/json-schema-form-renderer/json-schema-form-basic.cjs +35 -0
  51. package/dist/components/json-schema-form-renderer/json-schema-form-basic.d.cts +14 -0
  52. package/dist/components/json-schema-form-renderer/json-schema-form-basic.d.ts +14 -0
  53. package/dist/components/json-schema-form-renderer/json-schema-form-basic.js +32 -0
  54. package/dist/components/json-schema-form-renderer/json-schema-form-extended.cjs +35 -0
  55. package/dist/components/json-schema-form-renderer/json-schema-form-extended.d.cts +14 -0
  56. package/dist/components/json-schema-form-renderer/json-schema-form-extended.d.ts +14 -0
  57. package/dist/components/json-schema-form-renderer/json-schema-form-extended.js +32 -0
  58. package/dist/components/{json-schema-form-renderer.cjs → json-schema-form-renderer/json-schema-form-renderer.cjs} +14 -15
  59. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.d.cts +7 -0
  60. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.d.ts +7 -0
  61. package/dist/components/{json-schema-form-renderer.js → json-schema-form-renderer/json-schema-form-renderer.js} +13 -14
  62. package/dist/components/json-schema-form-renderer/json-schema-form.cjs +36 -0
  63. package/dist/components/json-schema-form-renderer/json-schema-form.d.cts +14 -0
  64. package/dist/components/json-schema-form-renderer/json-schema-form.d.ts +14 -0
  65. package/dist/components/json-schema-form-renderer/json-schema-form.js +33 -0
  66. package/dist/components/json-schema-form-renderer/types.d.cts +23 -0
  67. package/dist/components/json-schema-form-renderer/types.d.ts +23 -0
  68. package/dist/components/number-input.d.ts +2 -2
  69. package/dist/components/object-container.cjs +13 -6
  70. package/dist/components/object-container.js +13 -6
  71. package/dist/components/radio.d.cts +2 -2
  72. package/dist/components/row.d.cts +2 -2
  73. package/dist/components/schema-field/index.d.cts +3 -3
  74. package/dist/components/schema-field/index.d.ts +3 -3
  75. package/dist/components/schema-field/index.js +3 -3
  76. package/dist/components/schema-field/schema-field-basics.cjs +66 -23
  77. package/dist/components/schema-field/schema-field-basics.d.cts +283 -198
  78. package/dist/components/schema-field/schema-field-basics.d.ts +295 -210
  79. package/dist/components/schema-field/schema-field-basics.js +65 -23
  80. package/dist/components/schema-field/schema-field-extended.cjs +23 -8
  81. package/dist/components/schema-field/schema-field-extended.d.cts +569 -434
  82. package/dist/components/schema-field/schema-field-extended.d.ts +569 -434
  83. package/dist/components/schema-field/schema-field-extended.js +23 -9
  84. package/dist/components/schema-field/schema-field.cjs +23 -8
  85. package/dist/components/schema-field/schema-field.d.cts +341 -240
  86. package/dist/components/schema-field/schema-field.d.ts +340 -239
  87. package/dist/components/schema-field/schema-field.js +23 -9
  88. package/dist/components/separator.d.cts +2 -2
  89. package/dist/components/separator.d.ts +2 -2
  90. package/dist/components/slider.d.cts +2 -2
  91. package/dist/components/slider.d.ts +2 -2
  92. package/dist/components/switch.d.cts +2 -2
  93. package/dist/components/switch.d.ts +2 -2
  94. package/dist/components/tags-input-inline.d.cts +2 -2
  95. package/dist/components/tags-input-inline.d.ts +2 -2
  96. package/dist/components/textarea.d.cts +2 -2
  97. package/dist/components/textarea.d.ts +2 -2
  98. package/dist/index.cjs +17 -6
  99. package/dist/index.d.cts +14 -6
  100. package/dist/index.d.ts +14 -6
  101. package/dist/index.js +11 -6
  102. package/dist/types/form-item.d.cts +5 -0
  103. package/dist/types/form-item.d.ts +5 -0
  104. package/dist/utils/extract-components.cjs +11 -0
  105. package/dist/utils/extract-components.js +10 -0
  106. package/package.json +5 -5
  107. package/dist/components/form-item.cjs +0 -118
  108. package/dist/components/form-item.d.cts +0 -22
  109. package/dist/components/form-item.d.ts +0 -22
  110. package/dist/components/form-item.js +0 -112
  111. package/dist/components/json-schema-form-renderer.d.cts +0 -20
  112. 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 };