@pixpilot/formily-shadcn 0.8.0 → 0.8.2

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 (184) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +25 -1
  2. package/dist/_virtual/rolldown_runtime.js +24 -1
  3. package/dist/components/array-base/array-base.cjs +59 -1
  4. package/dist/components/array-base/array-base.js +55 -1
  5. package/dist/components/array-base/array-context.cjs +28 -1
  6. package/dist/components/array-base/array-context.js +22 -1
  7. package/dist/components/array-base/component-context.cjs +28 -1
  8. package/dist/components/array-base/component-context.js +22 -1
  9. package/dist/components/array-base/components/addition.cjs +51 -1
  10. package/dist/components/array-base/components/addition.js +45 -1
  11. package/dist/components/array-base/components/array-copy.cjs +49 -1
  12. package/dist/components/array-base/components/array-copy.js +42 -1
  13. package/dist/components/array-base/components/array-index.cjs +15 -1
  14. package/dist/components/array-base/components/array-index.js +13 -1
  15. package/dist/components/array-base/components/array-item-label.cjs +22 -1
  16. package/dist/components/array-base/components/array-item-label.js +19 -1
  17. package/dist/components/array-base/components/components.cjs +30 -1
  18. package/dist/components/array-base/components/components.js +29 -1
  19. package/dist/components/array-base/components/edit.cjs +42 -1
  20. package/dist/components/array-base/components/edit.js +36 -1
  21. package/dist/components/array-base/components/empty.cjs +19 -1
  22. package/dist/components/array-base/components/empty.js +16 -1
  23. package/dist/components/array-base/components/get-array-components.cjs +88 -1
  24. package/dist/components/array-base/components/get-array-components.js +84 -1
  25. package/dist/components/array-base/components/move-down.cjs +47 -1
  26. package/dist/components/array-base/components/move-down.js +41 -1
  27. package/dist/components/array-base/components/move-up.cjs +47 -1
  28. package/dist/components/array-base/components/move-up.js +41 -1
  29. package/dist/components/array-base/components/remove.cjs +46 -1
  30. package/dist/components/array-base/components/remove.js +40 -1
  31. package/dist/components/array-base/components/title.cjs +17 -1
  32. package/dist/components/array-base/components/title.js +14 -1
  33. package/dist/components/array-base/components/use-array-components-registry.cjs +56 -1
  34. package/dist/components/array-base/components/use-array-components-registry.js +52 -1
  35. package/dist/components/array-base/constants/index.cjs +17 -1
  36. package/dist/components/array-base/constants/index.js +15 -1
  37. package/dist/components/array-base/index.cjs +2 -1
  38. package/dist/components/array-base/index.js +2 -1
  39. package/dist/components/array-base/utils/filter-and-sort-components.cjs +34 -1
  40. package/dist/components/array-base/utils/filter-and-sort-components.js +34 -1
  41. package/dist/components/array-base/utils/is-array-component.cjs +65 -1
  42. package/dist/components/array-base/utils/is-array-component.js +56 -1
  43. package/dist/components/array-cards/array-cards.cjs +64 -1
  44. package/dist/components/array-cards/array-cards.js +60 -1
  45. package/dist/components/array-cards/index.cjs +1 -1
  46. package/dist/components/array-cards/index.js +1 -1
  47. package/dist/components/array-cards/item.cjs +64 -1
  48. package/dist/components/array-cards/item.js +60 -1
  49. package/dist/components/array-collapse/array-collapse.cjs +96 -1
  50. package/dist/components/array-collapse/array-collapse.js +92 -1
  51. package/dist/components/array-collapse/index.cjs +1 -1
  52. package/dist/components/array-collapse/index.js +1 -1
  53. package/dist/components/array-collapse/item.cjs +84 -1
  54. package/dist/components/array-collapse/item.js +78 -1
  55. package/dist/components/array-common/array-items-list.cjs +43 -1
  56. package/dist/components/array-common/array-items-list.js +39 -1
  57. package/dist/components/array-common/create-active-item-manager.cjs +29 -1
  58. package/dist/components/array-common/create-active-item-manager.js +27 -1
  59. package/dist/components/array-common/index.cjs +5 -1
  60. package/dist/components/array-common/index.js +5 -1
  61. package/dist/components/array-common/item-wrapper.cjs +26 -1
  62. package/dist/components/array-common/item-wrapper.js +21 -1
  63. package/dist/components/array-common/list-item.cjs +53 -1
  64. package/dist/components/array-common/list-item.js +48 -1
  65. package/dist/components/array-common/use-array-editor.cjs +47 -1
  66. package/dist/components/array-common/use-array-editor.js +44 -1
  67. package/dist/components/array-dialog/array-dialog.cjs +66 -1
  68. package/dist/components/array-dialog/array-dialog.js +62 -1
  69. package/dist/components/array-dialog/edit-dialog.cjs +61 -1
  70. package/dist/components/array-dialog/edit-dialog.js +57 -1
  71. package/dist/components/array-dialog/index.cjs +1 -1
  72. package/dist/components/array-dialog/index.js +1 -1
  73. package/dist/components/array-popover/array-popover.cjs +58 -1
  74. package/dist/components/array-popover/array-popover.js +53 -1
  75. package/dist/components/array-popover/index.cjs +1 -1
  76. package/dist/components/array-popover/index.js +1 -1
  77. package/dist/components/array-popover/popover.cjs +75 -1
  78. package/dist/components/array-popover/popover.js +71 -1
  79. package/dist/components/checkbox.cjs +26 -1
  80. package/dist/components/checkbox.js +23 -1
  81. package/dist/components/column.cjs +39 -1
  82. package/dist/components/column.js +35 -1
  83. package/dist/components/combobox.cjs +14 -1
  84. package/dist/components/combobox.js +11 -1
  85. package/dist/components/context/context.cjs +7 -1
  86. package/dist/components/context/context.js +7 -1
  87. package/dist/components/context/form-context.cjs +9 -1
  88. package/dist/components/context/form-context.js +7 -1
  89. package/dist/components/context/index.cjs +2 -1
  90. package/dist/components/context/index.js +2 -1
  91. package/dist/components/date-picker.cjs +23 -1
  92. package/dist/components/date-picker.js +19 -1
  93. package/dist/components/file-upload/file-upload-inline.cjs +35 -1
  94. package/dist/components/file-upload/file-upload-inline.d.cts +8 -8
  95. package/dist/components/file-upload/file-upload-inline.js +30 -1
  96. package/dist/components/file-upload/file-upload.cjs +35 -1
  97. package/dist/components/file-upload/file-upload.d.cts +8 -8
  98. package/dist/components/file-upload/file-upload.js +30 -1
  99. package/dist/components/file-upload/index.cjs +2 -1
  100. package/dist/components/file-upload/index.js +2 -1
  101. package/dist/components/file-upload/use-file-upload-feedback.cjs +59 -3
  102. package/dist/components/file-upload/use-file-upload-feedback.js +53 -3
  103. package/dist/components/form-grid.cjs +19 -1
  104. package/dist/components/form-grid.js +15 -1
  105. package/dist/components/form-item.cjs +118 -3
  106. package/dist/components/form-item.js +112 -3
  107. package/dist/components/form-items-container.cjs +28 -1
  108. package/dist/components/form-items-container.js +24 -1
  109. package/dist/components/form.cjs +56 -1
  110. package/dist/components/form.js +51 -1
  111. package/dist/components/hidden.cjs +26 -1
  112. package/dist/components/hidden.js +23 -1
  113. package/dist/components/icon-picker.cjs +37 -1
  114. package/dist/components/icon-picker.js +33 -1
  115. package/dist/components/input.cjs +20 -1
  116. package/dist/components/input.js +17 -1
  117. package/dist/components/json-schema-form-renderer.cjs +30 -1
  118. package/dist/components/json-schema-form-renderer.js +26 -1
  119. package/dist/components/number-input.cjs +19 -1
  120. package/dist/components/number-input.d.ts +2 -2
  121. package/dist/components/number-input.js +16 -1
  122. package/dist/components/object-container.cjs +35 -1
  123. package/dist/components/object-container.js +32 -1
  124. package/dist/components/radio.cjs +40 -1
  125. package/dist/components/radio.js +35 -1
  126. package/dist/components/rich-text-editor.cjs +27 -1
  127. package/dist/components/rich-text-editor.js +23 -1
  128. package/dist/components/row.cjs +39 -1
  129. package/dist/components/row.js +35 -1
  130. package/dist/components/schema-field-extended.cjs +25 -1
  131. package/dist/components/schema-field-extended.d.cts +9 -9
  132. package/dist/components/schema-field-extended.d.ts +262 -262
  133. package/dist/components/schema-field-extended.js +23 -1
  134. package/dist/components/schema-field.cjs +61 -1
  135. package/dist/components/schema-field.d.cts +9 -9
  136. package/dist/components/schema-field.d.ts +220 -220
  137. package/dist/components/schema-field.js +57 -1
  138. package/dist/components/select.cjs +11 -1
  139. package/dist/components/select.js +8 -1
  140. package/dist/components/separator.cjs +15 -1
  141. package/dist/components/separator.d.ts +2 -2
  142. package/dist/components/separator.js +12 -1
  143. package/dist/components/slider.cjs +33 -1
  144. package/dist/components/slider.d.ts +2 -2
  145. package/dist/components/slider.js +29 -1
  146. package/dist/components/switch.cjs +21 -1
  147. package/dist/components/switch.js +18 -1
  148. package/dist/components/tags-input-inline.cjs +26 -1
  149. package/dist/components/tags-input-inline.js +23 -1
  150. package/dist/components/textarea.cjs +19 -1
  151. package/dist/components/textarea.js +16 -1
  152. package/dist/hooks/index.cjs +3 -1
  153. package/dist/hooks/index.js +3 -1
  154. package/dist/hooks/use-description.cjs +14 -1
  155. package/dist/hooks/use-description.js +12 -1
  156. package/dist/hooks/use-form-context.cjs +13 -1
  157. package/dist/hooks/use-form-context.js +11 -1
  158. package/dist/hooks/use-label.cjs +19 -1
  159. package/dist/hooks/use-label.js +16 -1
  160. package/dist/index.cjs +102 -1
  161. package/dist/index.js +35 -1
  162. package/dist/utils/create-panel-state-manager.cjs +40 -1
  163. package/dist/utils/create-panel-state-manager.js +38 -1
  164. package/dist/utils/for-each-schema.cjs +27 -1
  165. package/dist/utils/for-each-schema.js +26 -1
  166. package/dist/utils/get-array-item-info.cjs +20 -1
  167. package/dist/utils/get-array-item-info.js +19 -1
  168. package/dist/utils/get-default-value.cjs +22 -1
  169. package/dist/utils/get-default-value.js +20 -1
  170. package/dist/utils/has-array-item-errors.cjs +15 -1
  171. package/dist/utils/has-array-item-errors.js +14 -1
  172. package/dist/utils/has-error.cjs +12 -1
  173. package/dist/utils/has-error.js +10 -1
  174. package/dist/utils/index.cjs +10 -1
  175. package/dist/utils/index.js +10 -1
  176. package/dist/utils/resolve-responsive-space.cjs +131 -1
  177. package/dist/utils/resolve-responsive-space.js +123 -1
  178. package/dist/utils/transform-schema.cjs +45 -1
  179. package/dist/utils/transform-schema.js +43 -1
  180. package/dist/utils/use-array-item-editor.cjs +3 -1
  181. package/dist/utils/use-array-item-editor.js +1 -1
  182. package/dist/utils/validate-array-item-fields.cjs +22 -1
  183. package/dist/utils/validate-array-item-fields.js +22 -1
  184. package/package.json +3 -3
@@ -1,3 +1,53 @@
1
- import{useFormContext as e}from"../../hooks/use-form-context.js";import"../../hooks/index.js";import{useField as t}from"@formily/react";import n from"react";import r from"pretty-bytes";function i(i){let{onUpload:a,maxSize:o,onFilesReject:s,onFileValidate:c}=i,{config:l}=e(),u=t(),{fileUpload:d}=l||{},f=a??d?.onUpload,p=o??d?.maxSize;return{onUpload:f,maxSize:p,handleFilesRejection:n.useCallback(e=>{s?.(e);let t=e.filter(e=>e.message.startsWith(`Maximum`)),n=e.filter(e=>e.message.startsWith(`File too large`)),i=e.filter(e=>!n.includes(e)&&!t.includes(e)),a=[];if(t.length>0&&a.push(t[0].message),p!=null&&n.length>0){let e=n.map(e=>`${e.file.name} (${r(e.file.size)})`).join(`
2
- `);a.push(`Files exceed ${r(p)} limit:\n${e}`)}i.length>0&&i.forEach(e=>{a.push(`${e.message}: ${e.file.name}`)}),u.setFeedback({type:`warning`,messages:[a.join(`
3
- `)]})},[u,p,s]),handleFileValidate:n.useCallback(e=>(u.setFeedback({type:`warning`,messages:[]}),c?.(e)),[u,c])}}export{i as useFileUploadFeedback};
1
+ import { useFormContext } from "../../hooks/use-form-context.js";
2
+ import "../../hooks/index.js";
3
+ import { useField } from "@formily/react";
4
+ import React from "react";
5
+ import prettyBytes from "pretty-bytes";
6
+
7
+ //#region src/components/file-upload/use-file-upload-feedback.ts
8
+ function useFileUploadFeedback(props) {
9
+ const { onUpload: onUploadProp, maxSize: maxSizeProp, onFilesReject, onFileValidate } = props;
10
+ const { config } = useFormContext();
11
+ const field = useField();
12
+ const { fileUpload } = config || {};
13
+ const onUpload = onUploadProp ?? fileUpload?.onUpload;
14
+ const maxSize = maxSizeProp ?? fileUpload?.maxSize;
15
+ if (onUpload == null) throw new Error("onUpload prop required for FileUploadInline. Provide handler on form or field props.");
16
+ return {
17
+ onUpload,
18
+ maxSize,
19
+ handleFilesRejection: React.useCallback((files) => {
20
+ onFilesReject?.(files);
21
+ const maximumError = files.filter((f) => f.message.startsWith("Maximum"));
22
+ const withFileSizeError = files.filter((f) => f.message.startsWith("File too large"));
23
+ const otherErrors = files.filter((f) => !withFileSizeError.includes(f) && !maximumError.includes(f));
24
+ const messages = [];
25
+ if (maximumError.length > 0) messages.push(maximumError[0].message);
26
+ if (maxSize != null && withFileSizeError.length > 0) {
27
+ const fileList = withFileSizeError.map((f) => `${f.file.name} (${prettyBytes(f.file.size)})`).join("\n");
28
+ messages.push(`Files exceed ${prettyBytes(maxSize)} limit:\n${fileList}`);
29
+ }
30
+ if (otherErrors.length > 0) otherErrors.forEach((f) => {
31
+ messages.push(`${f.message}: ${f.file.name}`);
32
+ });
33
+ field.setFeedback({
34
+ type: "warning",
35
+ messages: [messages.join("\n")]
36
+ });
37
+ }, [
38
+ field,
39
+ maxSize,
40
+ onFilesReject
41
+ ]),
42
+ handleFileValidate: React.useCallback((file) => {
43
+ field.setFeedback({
44
+ type: "warning",
45
+ messages: []
46
+ });
47
+ return onFileValidate?.(file);
48
+ }, [field, onFileValidate])
49
+ };
50
+ }
51
+
52
+ //#endregion
53
+ export { useFileUploadFeedback };
@@ -1 +1,19 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`);let t=require(`react`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`@pixpilot/shadcn`);r=e.__toESM(r);function i({className:e,children:t,...i}){return(0,n.jsx)(`div`,{...i,className:(0,r.cn)(`grid gap-4 grid-cols-3`,e),children:t})}exports.FormGrid=i;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ let react = require("react");
3
+ react = require_rolldown_runtime.__toESM(react);
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
6
+ let __pixpilot_shadcn = require("@pixpilot/shadcn");
7
+ __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
8
+
9
+ //#region src/components/form-grid.tsx
10
+ function FormGrid({ className, children,...rest }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
12
+ ...rest,
13
+ className: (0, __pixpilot_shadcn.cn)("grid gap-4 grid-cols-3", className),
14
+ children
15
+ });
16
+ }
17
+
18
+ //#endregion
19
+ exports.FormGrid = FormGrid;
@@ -1 +1,15 @@
1
- import e from"react";import{jsx as t}from"react/jsx-runtime";import{cn as n}from"@pixpilot/shadcn";function r({className:e,children:r,...i}){return t(`div`,{...i,className:n(`grid gap-4 grid-cols-3`,e),children:r})}export{r as FormGrid};
1
+ import React from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cn } from "@pixpilot/shadcn";
4
+
5
+ //#region src/components/form-grid.tsx
6
+ function FormGrid({ className, children,...rest }) {
7
+ return /* @__PURE__ */ jsx("div", {
8
+ ...rest,
9
+ className: cn("grid gap-4 grid-cols-3", className),
10
+ children
11
+ });
12
+ }
13
+
14
+ //#endregion
15
+ export { FormGrid };
@@ -1,3 +1,118 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../hooks/use-form-context.cjs`),n=require(`../hooks/use-label.cjs`);require(`../hooks/index.cjs`);let r=require(`@formily/react`);r=e.__toESM(r);let i=require(`react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);let o=require(`@pixpilot/shadcn`);o=e.__toESM(o);let s=require(`@formily/core`);s=e.__toESM(s);const c=({className:e,children:s,label:c,description:l,asterisk:u,feedbackStatus:d,feedbackText:f,labelPlacement:p=`top`,...m})=>{let h=(0,r.useField)(),g=h?.componentProps??{},_=n.useLabel(c),{itemProps:v}=t.useFormContext(),{className:y}=v||{},b=g.labelPlacement??p,x=h?.componentProps?.id??`form-${h?.address?.toString()?.replace(/\./gu,`-`)}`,S=i.default.useId(),C=i.default.useId(),w=[l==null?void 0:S,f==null?void 0:C].filter(Boolean).join(` `),T=_!=null&&(0,a.jsxs)(`label`,{htmlFor:x,"data-slot":`form-label`,"data-error":d===`error`,className:(0,o.cn)(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,d===`error`&&`text-destructive`,(b===`end`||b===`start`)&&`shrink-0`),children:[_,u&&(0,a.jsx)(`span`,{className:`text-destructive ml-1`,"aria-label":`required`,children:`*`})]}),E=(0,a.jsx)(`div`,{className:`relative`,children:i.default.isValidElement(s)?i.default.cloneElement(s,{id:x,"aria-describedby":w||void 0,"aria-invalid":d===`error`?`true`:void 0}):s}),D=(0,a.jsxs)(a.Fragment,{children:[b===`top`&&T,l!=null&&b===`top`&&(0,a.jsx)(`p`,{id:S,className:`text-muted-foreground text-[0.8rem]`,children:l}),(b===`start`||b===`end`)&&(0,a.jsxs)(`div`,{className:(0,o.cn)(`flex items-center gap-2`,b===`start`&&`flex-row`),children:[b===`start`&&T,E,b===`end`&&T]}),b===`top`&&E,l!=null&&(b===`start`||b===`end`)&&(0,a.jsx)(`p`,{id:S,className:`text-muted-foreground text-[0.8rem]`,children:l})]});return(0,a.jsxs)(`div`,{"data-slot":`form-item`,className:(0,o.cn)(`flex flex-col gap-2`,y,e),...m,children:[D,!!f&&(0,a.jsx)(`p`,{id:C,className:(0,o.cn)(`text-[0.8rem]`,d===`error`&&`text-destructive font-medium`,d===`warning`&&`text-amber-600`,d===`success`&&`text-green-600`),children:typeof f==`string`?f.split(`
2
- `).map((e,t)=>(0,a.jsxs)(i.default.Fragment,{children:[e,t<f.split(`
3
- `).length-1&&(0,a.jsx)(`br`,{})]},t)):f})]})},l=(0,r.connect)(c,(0,r.mapProps)((e,t)=>(0,s.isVoidField)(t)?{label:t.title??e.label,description:e.description??t.description,asterisk:e.asterisk}:{label:e.label??t.title,description:e.description??t.description,feedbackStatus:(()=>{if(!t.validating){if(t.selfErrors?.length)return`error`;if(t.selfWarnings?.length)return`warning`;if(t.selfSuccesses?.length)return`success`}})(),feedbackText:(()=>{if(!t.validating){if(e.feedbackText!=null)return e.feedbackText;if(t.selfErrors?.length)return t.selfErrors.join(`, `);if(t.selfWarnings?.length)return t.selfWarnings.join(`, `);if(t.selfSuccesses?.length)return t.selfSuccesses.join(`, `)}})(),asterisk:(()=>t.required&&t.pattern!==`readPretty`?!0:`asterisk`in e?!!e.asterisk:!1)()}));exports.FormItem=l;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_use_form_context = require('../hooks/use-form-context.cjs');
3
+ const require_use_label = require('../hooks/use-label.cjs');
4
+ require('../hooks/index.cjs');
5
+ let __formily_react = require("@formily/react");
6
+ __formily_react = require_rolldown_runtime.__toESM(__formily_react);
7
+ let react = require("react");
8
+ react = require_rolldown_runtime.__toESM(react);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
11
+ let __pixpilot_shadcn = require("@pixpilot/shadcn");
12
+ __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
13
+ let __formily_core = require("@formily/core");
14
+ __formily_core = require_rolldown_runtime.__toESM(__formily_core);
15
+
16
+ //#region src/components/form-item.tsx
17
+ const BaseFormItem = ({ className, children, label, description, asterisk, feedbackStatus, feedbackText, labelPlacement = "top",...props }) => {
18
+ const field = (0, __formily_react.useField)();
19
+ const fieldProps = field?.componentProps ?? {};
20
+ const effectiveLabel = require_use_label.useLabel(label);
21
+ const { itemProps } = require_use_form_context.useFormContext();
22
+ const { className: itemPropsClassName } = itemProps || {};
23
+ const effectiveLabelPlacement = fieldProps.labelPlacement ?? labelPlacement;
24
+ const id = field?.componentProps?.id ?? `form-${field?.address?.toString()?.replace(/\./gu, "-")}`;
25
+ const descriptionId = react.default.useId();
26
+ const feedbackId = react.default.useId();
27
+ const ariaDescribedBy = [description != null ? descriptionId : void 0, feedbackText != null ? feedbackId : void 0].filter(Boolean).join(" ");
28
+ const labelElement = effectiveLabel != null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
29
+ htmlFor: id,
30
+ "data-slot": "form-label",
31
+ "data-error": Boolean(feedbackStatus === "error"),
32
+ className: (0, __pixpilot_shadcn.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"),
33
+ children: [effectiveLabel, asterisk && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
34
+ className: "text-destructive ml-1",
35
+ "aria-label": "required",
36
+ children: "*"
37
+ })]
38
+ });
39
+ const inputElement = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
40
+ className: "relative",
41
+ children: react.default.isValidElement(children) ? react.default.cloneElement(children, {
42
+ id,
43
+ "aria-describedby": ariaDescribedBy || void 0,
44
+ "aria-invalid": feedbackStatus === "error" ? "true" : void 0
45
+ }) : children
46
+ });
47
+ const contentElement = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
48
+ effectiveLabelPlacement === "top" && labelElement,
49
+ description != null && effectiveLabelPlacement === "top" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
50
+ id: descriptionId,
51
+ className: "text-muted-foreground text-[0.8rem]",
52
+ children: description
53
+ }),
54
+ (effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
55
+ className: (0, __pixpilot_shadcn.cn)("flex items-center gap-2", effectiveLabelPlacement === "start" && "flex-row"),
56
+ children: [
57
+ effectiveLabelPlacement === "start" && labelElement,
58
+ inputElement,
59
+ effectiveLabelPlacement === "end" && labelElement
60
+ ]
61
+ }),
62
+ effectiveLabelPlacement === "top" && inputElement,
63
+ description != null && (effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
64
+ id: descriptionId,
65
+ className: "text-muted-foreground text-[0.8rem]",
66
+ children: description
67
+ })
68
+ ] });
69
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
70
+ "data-slot": "form-item",
71
+ className: (0, __pixpilot_shadcn.cn)("flex flex-col gap-2", itemPropsClassName, className),
72
+ ...props,
73
+ children: [contentElement, Boolean(feedbackText) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
74
+ id: feedbackId,
75
+ className: (0, __pixpilot_shadcn.cn)("text-[0.8rem]", feedbackStatus === "error" && "text-destructive font-medium", feedbackStatus === "warning" && "text-amber-600", feedbackStatus === "success" && "text-green-600"),
76
+ children: typeof feedbackText === "string" ? feedbackText.split("\n").map((line, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.default.Fragment, { children: [line, index < feedbackText.split("\n").length - 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("br", {})] }, index)) : feedbackText
77
+ })]
78
+ });
79
+ };
80
+ /**
81
+ * FormItem component connected to Formily field state
82
+ * Automatically maps field validation state to component props
83
+ */
84
+ const FormItem = (0, __formily_react.connect)(BaseFormItem, (0, __formily_react.mapProps)((props, field) => {
85
+ if ((0, __formily_core.isVoidField)(field)) return {
86
+ label: field.title ?? props.label,
87
+ description: props.description ?? field.description,
88
+ asterisk: props.asterisk
89
+ };
90
+ const takeFeedbackStatus = () => {
91
+ if (field.validating) return void 0;
92
+ if (field.selfErrors?.length) return "error";
93
+ if (field.selfWarnings?.length) return "warning";
94
+ if (field.selfSuccesses?.length) return "success";
95
+ };
96
+ const takeFeedbackText = () => {
97
+ if (field.validating) return void 0;
98
+ if (props.feedbackText != null) return props.feedbackText;
99
+ if (field.selfErrors?.length) return field.selfErrors.join(", ");
100
+ if (field.selfWarnings?.length) return field.selfWarnings.join(", ");
101
+ if (field.selfSuccesses?.length) return field.selfSuccesses.join(", ");
102
+ };
103
+ const takeAsterisk = () => {
104
+ if (field.required && field.pattern !== "readPretty") return true;
105
+ if ("asterisk" in props) return Boolean(props.asterisk);
106
+ return false;
107
+ };
108
+ return {
109
+ label: props.label ?? field.title,
110
+ description: props.description ?? field.description,
111
+ feedbackStatus: takeFeedbackStatus(),
112
+ feedbackText: takeFeedbackText(),
113
+ asterisk: takeAsterisk()
114
+ };
115
+ }));
116
+
117
+ //#endregion
118
+ exports.FormItem = FormItem;
@@ -1,3 +1,112 @@
1
- import{useFormContext as e}from"../hooks/use-form-context.js";import{useLabel as t}from"../hooks/use-label.js";import"../hooks/index.js";import{connect as n,mapProps as r,useField as i}from"@formily/react";import a from"react";import{Fragment as o,jsx as s,jsxs as c}from"react/jsx-runtime";import{cn as l}from"@pixpilot/shadcn";import{isVoidField as u}from"@formily/core";const d=n(({className:n,children:r,label:u,description:d,asterisk:f,feedbackStatus:p,feedbackText:m,labelPlacement:h=`top`,...g})=>{let _=i(),v=_?.componentProps??{},y=t(u),{itemProps:b}=e(),{className:x}=b||{},S=v.labelPlacement??h,C=_?.componentProps?.id??`form-${_?.address?.toString()?.replace(/\./gu,`-`)}`,w=a.useId(),T=a.useId(),E=[d==null?void 0:w,m==null?void 0:T].filter(Boolean).join(` `),D=y!=null&&c(`label`,{htmlFor:C,"data-slot":`form-label`,"data-error":p===`error`,className:l(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,p===`error`&&`text-destructive`,(S===`end`||S===`start`)&&`shrink-0`),children:[y,f&&s(`span`,{className:`text-destructive ml-1`,"aria-label":`required`,children:`*`})]}),O=s(`div`,{className:`relative`,children:a.isValidElement(r)?a.cloneElement(r,{id:C,"aria-describedby":E||void 0,"aria-invalid":p===`error`?`true`:void 0}):r}),k=c(o,{children:[S===`top`&&D,d!=null&&S===`top`&&s(`p`,{id:w,className:`text-muted-foreground text-[0.8rem]`,children:d}),(S===`start`||S===`end`)&&c(`div`,{className:l(`flex items-center gap-2`,S===`start`&&`flex-row`),children:[S===`start`&&D,O,S===`end`&&D]}),S===`top`&&O,d!=null&&(S===`start`||S===`end`)&&s(`p`,{id:w,className:`text-muted-foreground text-[0.8rem]`,children:d})]});return c(`div`,{"data-slot":`form-item`,className:l(`flex flex-col gap-2`,x,n),...g,children:[k,!!m&&s(`p`,{id:T,className:l(`text-[0.8rem]`,p===`error`&&`text-destructive font-medium`,p===`warning`&&`text-amber-600`,p===`success`&&`text-green-600`),children:typeof m==`string`?m.split(`
2
- `).map((e,t)=>c(a.Fragment,{children:[e,t<m.split(`
3
- `).length-1&&s(`br`,{})]},t)):m})]})},r((e,t)=>u(t)?{label:t.title??e.label,description:e.description??t.description,asterisk:e.asterisk}:{label:e.label??t.title,description:e.description??t.description,feedbackStatus:(()=>{if(!t.validating){if(t.selfErrors?.length)return`error`;if(t.selfWarnings?.length)return`warning`;if(t.selfSuccesses?.length)return`success`}})(),feedbackText:(()=>{if(!t.validating){if(e.feedbackText!=null)return e.feedbackText;if(t.selfErrors?.length)return t.selfErrors.join(`, `);if(t.selfWarnings?.length)return t.selfWarnings.join(`, `);if(t.selfSuccesses?.length)return t.selfSuccesses.join(`, `)}})(),asterisk:(()=>t.required&&t.pattern!==`readPretty`?!0:`asterisk`in e?!!e.asterisk:!1)()}));export{d as FormItem};
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 +1,28 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../utils/resolve-responsive-space.cjs`),n=require(`../hooks/use-form-context.cjs`);require(`../hooks/index.cjs`);let r=require(`react`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);i=e.__toESM(i);let a=require(`@pixpilot/shadcn`);a=e.__toESM(a);const o=e=>{let{as:r=`div`,className:o,...s}=e,{density:c,responsive:l}=n.useFormContext(),u=t.resolveResponsiveSpaceClass({density:c,responsive:l});return(0,i.jsx)(r,{...s,className:(0,a.cn)(u,o)})};o.displayName=`FormItemContainer`,exports.FormItemContainer=o;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_resolve_responsive_space = require('../utils/resolve-responsive-space.cjs');
3
+ const require_use_form_context = require('../hooks/use-form-context.cjs');
4
+ require('../hooks/index.cjs');
5
+ let react = require("react");
6
+ react = require_rolldown_runtime.__toESM(react);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
+ let __pixpilot_shadcn = require("@pixpilot/shadcn");
10
+ __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
11
+
12
+ //#region src/components/form-items-container.tsx
13
+ const FormItemContainer = (props) => {
14
+ const { as: Component = "div", className,...rest } = props;
15
+ const { density, responsive } = require_use_form_context.useFormContext();
16
+ const spaceClass = require_resolve_responsive_space.resolveResponsiveSpaceClass({
17
+ density,
18
+ responsive
19
+ });
20
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
21
+ ...rest,
22
+ className: (0, __pixpilot_shadcn.cn)(spaceClass, className)
23
+ });
24
+ };
25
+ FormItemContainer.displayName = "FormItemContainer";
26
+
27
+ //#endregion
28
+ exports.FormItemContainer = FormItemContainer;
@@ -1 +1,24 @@
1
- import{resolveResponsiveSpaceClass as e}from"../utils/resolve-responsive-space.js";import{useFormContext as t}from"../hooks/use-form-context.js";import"../hooks/index.js";import n from"react";import{jsx as r}from"react/jsx-runtime";import{cn as i}from"@pixpilot/shadcn";const a=n=>{let{as:a=`div`,className:o,...s}=n,{density:c,responsive:l}=t(),u=e({density:c,responsive:l});return r(a,{...s,className:i(u,o)})};a.displayName=`FormItemContainer`;export{a as FormItemContainer};
1
+ import { resolveResponsiveSpaceClass } from "../utils/resolve-responsive-space.js";
2
+ import { useFormContext } from "../hooks/use-form-context.js";
3
+ import "../hooks/index.js";
4
+ import React from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { cn } from "@pixpilot/shadcn";
7
+
8
+ //#region src/components/form-items-container.tsx
9
+ const FormItemContainer = (props) => {
10
+ const { as: Component = "div", className,...rest } = props;
11
+ const { density, responsive } = useFormContext();
12
+ const spaceClass = resolveResponsiveSpaceClass({
13
+ density,
14
+ responsive
15
+ });
16
+ return /* @__PURE__ */ jsx(Component, {
17
+ ...rest,
18
+ className: cn(spaceClass, className)
19
+ });
20
+ };
21
+ FormItemContainer.displayName = "FormItemContainer";
22
+
23
+ //#endregion
24
+ export { FormItemContainer };
@@ -1 +1,56 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`./context/context.cjs`);require(`./context/index.cjs`);const n=require(`./form-items-container.cjs`);let r=require(`@formily/react`);r=e.__toESM(r);let i=require(`react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);let o=require(`@pixpilot/shadcn`);o=e.__toESM(o);function s({form:e,className:s,style:c,children:l,onSubmit:u,onAutoSubmit:d,itemProps:f,objectContainerProps:p,density:m,responsive:h,config:g}){return(0,a.jsx)(t.Provider,{value:i.default.useMemo(()=>({itemProps:f,objectContainerProps:p,density:m,responsive:h,config:g}),[f,p,m,h,g]),children:(0,a.jsx)(r.FormProvider,{form:e,children:(0,a.jsx)(n.FormItemContainer,{as:`form`,className:(0,o.cn)(`space-y-6`,s),style:c,onSubmit:t=>{t.preventDefault(),e.submit(e=>{u?.(e),d?.(e)}).catch(()=>{})},children:l})})})}exports.Form=s;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_context = require('./context/context.cjs');
3
+ require('./context/index.cjs');
4
+ const require_form_items_container = require('./form-items-container.cjs');
5
+ let __formily_react = require("@formily/react");
6
+ __formily_react = require_rolldown_runtime.__toESM(__formily_react);
7
+ let react = require("react");
8
+ react = require_rolldown_runtime.__toESM(react);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
11
+ let __pixpilot_shadcn = require("@pixpilot/shadcn");
12
+ __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
13
+
14
+ //#region src/components/form.tsx
15
+ /**
16
+ * Form component - wraps FormProvider and provides form context
17
+ */
18
+ function Form({ form, className, style, children, onSubmit, onAutoSubmit, itemProps, objectContainerProps, density, responsive, config }) {
19
+ const handleSubmit = (e) => {
20
+ e.preventDefault();
21
+ form.submit((values) => {
22
+ onSubmit?.(values);
23
+ onAutoSubmit?.(values);
24
+ }).catch(() => {});
25
+ };
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_context.Provider, {
27
+ value: react.default.useMemo(() => {
28
+ return {
29
+ itemProps,
30
+ objectContainerProps,
31
+ density,
32
+ responsive,
33
+ config
34
+ };
35
+ }, [
36
+ itemProps,
37
+ objectContainerProps,
38
+ density,
39
+ responsive,
40
+ config
41
+ ]),
42
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__formily_react.FormProvider, {
43
+ form,
44
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_form_items_container.FormItemContainer, {
45
+ as: "form",
46
+ className: (0, __pixpilot_shadcn.cn)("space-y-6", className),
47
+ style,
48
+ onSubmit: handleSubmit,
49
+ children
50
+ })
51
+ })
52
+ });
53
+ }
54
+
55
+ //#endregion
56
+ exports.Form = Form;
@@ -1 +1,51 @@
1
- import{Provider as e}from"./context/context.js";import"./context/index.js";import{FormItemContainer as t}from"./form-items-container.js";import{FormProvider as n}from"@formily/react";import r from"react";import{jsx as i}from"react/jsx-runtime";import{cn as a}from"@pixpilot/shadcn";function o({form:o,className:s,style:c,children:l,onSubmit:u,onAutoSubmit:d,itemProps:f,objectContainerProps:p,density:m,responsive:h,config:g}){return i(e,{value:r.useMemo(()=>({itemProps:f,objectContainerProps:p,density:m,responsive:h,config:g}),[f,p,m,h,g]),children:i(n,{form:o,children:i(t,{as:`form`,className:a(`space-y-6`,s),style:c,onSubmit:e=>{e.preventDefault(),o.submit(e=>{u?.(e),d?.(e)}).catch(()=>{})},children:l})})})}export{o as Form};
1
+ import { Provider } from "./context/context.js";
2
+ import "./context/index.js";
3
+ import { FormItemContainer } from "./form-items-container.js";
4
+ import { FormProvider } from "@formily/react";
5
+ import React from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ import { cn } from "@pixpilot/shadcn";
8
+
9
+ //#region src/components/form.tsx
10
+ /**
11
+ * Form component - wraps FormProvider and provides form context
12
+ */
13
+ function Form({ form, className, style, children, onSubmit, onAutoSubmit, itemProps, objectContainerProps, density, responsive, config }) {
14
+ const handleSubmit = (e) => {
15
+ e.preventDefault();
16
+ form.submit((values) => {
17
+ onSubmit?.(values);
18
+ onAutoSubmit?.(values);
19
+ }).catch(() => {});
20
+ };
21
+ return /* @__PURE__ */ jsx(Provider, {
22
+ value: React.useMemo(() => {
23
+ return {
24
+ itemProps,
25
+ objectContainerProps,
26
+ density,
27
+ responsive,
28
+ config
29
+ };
30
+ }, [
31
+ itemProps,
32
+ objectContainerProps,
33
+ density,
34
+ responsive,
35
+ config
36
+ ]),
37
+ children: /* @__PURE__ */ jsx(FormProvider, {
38
+ form,
39
+ children: /* @__PURE__ */ jsx(FormItemContainer, {
40
+ as: "form",
41
+ className: cn("space-y-6", className),
42
+ style,
43
+ onSubmit: handleSubmit,
44
+ children
45
+ })
46
+ })
47
+ });
48
+ }
49
+
50
+ //#endregion
51
+ export { Form };
@@ -1 +1,26 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`);let t=require(`@formily/react`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);const r=e=>(0,n.jsx)(`input`,{type:`hidden`,value:e.value}),i=(0,t.connect)(r,(0,t.mapProps)((e,t)=>({...e,value:t.value??``})));exports.Hidden=i;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ let __formily_react = require("@formily/react");
3
+ __formily_react = require_rolldown_runtime.__toESM(__formily_react);
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
6
+
7
+ //#region src/components/hidden.tsx
8
+ const HiddenInput = (props) => {
9
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
10
+ type: "hidden",
11
+ value: props.value
12
+ });
13
+ };
14
+ /**
15
+ * Formily-connected Input component
16
+ * Automatically connects shadcn Input to Formily field state
17
+ */
18
+ const Hidden = (0, __formily_react.connect)(HiddenInput, (0, __formily_react.mapProps)((props, field) => {
19
+ return {
20
+ ...props,
21
+ value: field.value ?? ""
22
+ };
23
+ }));
24
+
25
+ //#endregion
26
+ exports.Hidden = Hidden;
@@ -1 +1,23 @@
1
- import{connect as e,mapProps as t}from"@formily/react";import{jsx as n}from"react/jsx-runtime";const r=e(e=>n(`input`,{type:`hidden`,value:e.value}),t((e,t)=>({...e,value:t.value??``})));export{r as Hidden};
1
+ import { connect, mapProps } from "@formily/react";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/components/hidden.tsx
5
+ const HiddenInput = (props) => {
6
+ return /* @__PURE__ */ jsx("input", {
7
+ type: "hidden",
8
+ value: props.value
9
+ });
10
+ };
11
+ /**
12
+ * Formily-connected Input component
13
+ * Automatically connects shadcn Input to Formily field state
14
+ */
15
+ const Hidden = connect(HiddenInput, mapProps((props, field) => {
16
+ return {
17
+ ...props,
18
+ value: field.value ?? ""
19
+ };
20
+ }));
21
+
22
+ //#endregion
23
+ export { Hidden };
@@ -1 +1,37 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../hooks/use-form-context.cjs`);require(`../hooks/index.cjs`);let n=require(`@formily/react`);n=e.__toESM(n);let r=require(`@pixpilot/shadcn-ui`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=e=>{let{providers:n,...a}=e,{config:o}=t.useFormContext(),{iconPicker:s}=o||{},{providers:c=[]}=s||{},l=n===void 0?c:n;return(0,i.jsx)(r.IconPicker,{...a,providers:l})},o=(0,n.connect)(a,(0,n.mapProps)((e,t)=>{let n=t;return{...e,value:n.value??``}}));exports.IconPicker=o;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_use_form_context = require('../hooks/use-form-context.cjs');
3
+ require('../hooks/index.cjs');
4
+ let __formily_react = require("@formily/react");
5
+ __formily_react = require_rolldown_runtime.__toESM(__formily_react);
6
+ let __pixpilot_shadcn_ui = require("@pixpilot/shadcn-ui");
7
+ __pixpilot_shadcn_ui = require_rolldown_runtime.__toESM(__pixpilot_shadcn_ui);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
10
+
11
+ //#region src/components/icon-picker.tsx
12
+ const IconPickerBase = (props) => {
13
+ const { providers: propProviders,...restProps } = props;
14
+ const { config } = require_use_form_context.useFormContext();
15
+ const { iconPicker } = config || {};
16
+ const { providers: contextProviders = [] } = iconPicker || {};
17
+ const providersToLoad = propProviders !== void 0 ? propProviders : contextProviders;
18
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn_ui.IconPicker, {
19
+ ...restProps,
20
+ providers: providersToLoad
21
+ });
22
+ };
23
+ /**
24
+ * Formily-connected IconPicker component
25
+ * Automatically connects to Formily field state
26
+ * Supports both static and async icon providers
27
+ */
28
+ const IconPicker = (0, __formily_react.connect)(IconPickerBase, (0, __formily_react.mapProps)((props, field) => {
29
+ const formField = field;
30
+ return {
31
+ ...props,
32
+ value: formField.value ?? ""
33
+ };
34
+ }));
35
+
36
+ //#endregion
37
+ exports.IconPicker = IconPicker;
@@ -1 +1,33 @@
1
- import{useFormContext as e}from"../hooks/use-form-context.js";import"../hooks/index.js";import{connect as t,mapProps as n}from"@formily/react";import{IconPicker as r}from"@pixpilot/shadcn-ui";import{jsx as i}from"react/jsx-runtime";const a=t(t=>{let{providers:n,...a}=t,{config:o}=e(),{iconPicker:s}=o||{},{providers:c=[]}=s||{},l=n===void 0?c:n;return i(r,{...a,providers:l})},n((e,t)=>{let n=t;return{...e,value:n.value??``}}));export{a as IconPicker};
1
+ import { useFormContext } from "../hooks/use-form-context.js";
2
+ import "../hooks/index.js";
3
+ import { connect, mapProps } from "@formily/react";
4
+ import { IconPicker } from "@pixpilot/shadcn-ui";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
+ //#region src/components/icon-picker.tsx
8
+ const IconPickerBase = (props) => {
9
+ const { providers: propProviders,...restProps } = props;
10
+ const { config } = useFormContext();
11
+ const { iconPicker } = config || {};
12
+ const { providers: contextProviders = [] } = iconPicker || {};
13
+ const providersToLoad = propProviders !== void 0 ? propProviders : contextProviders;
14
+ return /* @__PURE__ */ jsx(IconPicker, {
15
+ ...restProps,
16
+ providers: providersToLoad
17
+ });
18
+ };
19
+ /**
20
+ * Formily-connected IconPicker component
21
+ * Automatically connects to Formily field state
22
+ * Supports both static and async icon providers
23
+ */
24
+ const IconPicker$1 = connect(IconPickerBase, mapProps((props, field) => {
25
+ const formField = field;
26
+ return {
27
+ ...props,
28
+ value: formField.value ?? ""
29
+ };
30
+ }));
31
+
32
+ //#endregion
33
+ export { IconPicker$1 as IconPicker };