pdyform 1.1.0 → 2.0.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 (175) hide show
  1. package/README.md +28 -1
  2. package/example/README.md +36 -0
  3. package/example/react-demo/dist/assets/index-BBU9cJqy.css +1 -0
  4. package/example/react-demo/dist/assets/index-DeJS8UcQ.js +105 -0
  5. package/example/react-demo/dist/index.html +13 -0
  6. package/example/react-demo/index.html +12 -0
  7. package/example/react-demo/node_modules/.bin/browserslist +17 -0
  8. package/example/react-demo/node_modules/.bin/tsc +17 -0
  9. package/example/react-demo/node_modules/.bin/tsserver +17 -0
  10. package/example/react-demo/node_modules/.bin/vite +17 -0
  11. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-checkbox.js +300 -0
  12. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-checkbox.js.map +7 -0
  13. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-label.js +194 -0
  14. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-label.js.map +7 -0
  15. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-radio-group.js +530 -0
  16. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-radio-group.js.map +7 -0
  17. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-select.js +4808 -0
  18. package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-select.js.map +7 -0
  19. package/example/react-demo/node_modules/.vite/deps/_metadata.json +115 -0
  20. package/example/react-demo/node_modules/.vite/deps/chunk-3D5PZ6F6.js +49 -0
  21. package/example/react-demo/node_modules/.vite/deps/chunk-3D5PZ6F6.js.map +7 -0
  22. package/example/react-demo/node_modules/.vite/deps/chunk-5Q2RBQLA.js +127 -0
  23. package/example/react-demo/node_modules/.vite/deps/chunk-5Q2RBQLA.js.map +7 -0
  24. package/example/react-demo/node_modules/.vite/deps/chunk-G3PMV62Z.js +36 -0
  25. package/example/react-demo/node_modules/.vite/deps/chunk-G3PMV62Z.js.map +7 -0
  26. package/example/react-demo/node_modules/.vite/deps/chunk-GX7YZ5KV.js +370 -0
  27. package/example/react-demo/node_modules/.vite/deps/chunk-GX7YZ5KV.js.map +7 -0
  28. package/example/react-demo/node_modules/.vite/deps/chunk-PUFJGYAC.js +928 -0
  29. package/example/react-demo/node_modules/.vite/deps/chunk-PUFJGYAC.js.map +7 -0
  30. package/example/react-demo/node_modules/.vite/deps/chunk-SIU35MPB.js +21 -0
  31. package/example/react-demo/node_modules/.vite/deps/chunk-SIU35MPB.js.map +7 -0
  32. package/example/react-demo/node_modules/.vite/deps/chunk-TOMGVNQP.js +1906 -0
  33. package/example/react-demo/node_modules/.vite/deps/chunk-TOMGVNQP.js.map +7 -0
  34. package/example/react-demo/node_modules/.vite/deps/chunk-YYN6DZAU.js +21628 -0
  35. package/example/react-demo/node_modules/.vite/deps/chunk-YYN6DZAU.js.map +7 -0
  36. package/example/react-demo/node_modules/.vite/deps/chunk-ZE5VSJFE.js +144 -0
  37. package/example/react-demo/node_modules/.vite/deps/chunk-ZE5VSJFE.js.map +7 -0
  38. package/example/react-demo/node_modules/.vite/deps/class-variance-authority.js +51 -0
  39. package/example/react-demo/node_modules/.vite/deps/class-variance-authority.js.map +7 -0
  40. package/example/react-demo/node_modules/.vite/deps/clsx.js +10 -0
  41. package/example/react-demo/node_modules/.vite/deps/clsx.js.map +7 -0
  42. package/example/react-demo/node_modules/.vite/deps/lucide-react.js +29725 -0
  43. package/example/react-demo/node_modules/.vite/deps/lucide-react.js.map +7 -0
  44. package/example/react-demo/node_modules/.vite/deps/package.json +3 -0
  45. package/example/react-demo/node_modules/.vite/deps/react-dom.js +7 -0
  46. package/example/react-demo/node_modules/.vite/deps/react-dom.js.map +7 -0
  47. package/example/react-demo/node_modules/.vite/deps/react-dom_client.js +39 -0
  48. package/example/react-demo/node_modules/.vite/deps/react-dom_client.js.map +7 -0
  49. package/example/react-demo/node_modules/.vite/deps/react.js +6 -0
  50. package/example/react-demo/node_modules/.vite/deps/react.js.map +7 -0
  51. package/example/react-demo/node_modules/.vite/deps/react_jsx-dev-runtime.js +913 -0
  52. package/example/react-demo/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
  53. package/example/react-demo/node_modules/.vite/deps/react_jsx-runtime.js +7 -0
  54. package/example/react-demo/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
  55. package/example/react-demo/node_modules/.vite/deps/tailwind-merge.js +2534 -0
  56. package/example/react-demo/node_modules/.vite/deps/tailwind-merge.js.map +7 -0
  57. package/example/react-demo/package.json +23 -0
  58. package/example/react-demo/postcss.config.mjs +6 -0
  59. package/example/react-demo/src/App.tsx +64 -0
  60. package/example/react-demo/src/main.tsx +10 -0
  61. package/example/react-demo/src/styles.css +102 -0
  62. package/example/react-demo/tailwind.config.mjs +50 -0
  63. package/example/react-demo/tsconfig.json +16 -0
  64. package/example/react-demo/vite.config.ts +14 -0
  65. package/example/shared/defaultSchema.ts +68 -0
  66. package/example/vue-demo/dist/assets/index-BhWj3D5x.css +1 -0
  67. package/example/vue-demo/dist/assets/index-Bw3THsrD.js +44 -0
  68. package/example/vue-demo/dist/index.html +13 -0
  69. package/example/vue-demo/index.html +12 -0
  70. package/example/vue-demo/node_modules/.bin/tsc +17 -0
  71. package/example/vue-demo/node_modules/.bin/tsserver +17 -0
  72. package/example/vue-demo/node_modules/.bin/vite +17 -0
  73. package/example/vue-demo/node_modules/.vite/deps/_metadata.json +46 -0
  74. package/example/vue-demo/node_modules/.vite/deps/chunk-PZ5AY32C.js +10 -0
  75. package/example/vue-demo/node_modules/.vite/deps/chunk-PZ5AY32C.js.map +7 -0
  76. package/example/vue-demo/node_modules/.vite/deps/chunk-TCXBSQ4M.js +12877 -0
  77. package/example/vue-demo/node_modules/.vite/deps/chunk-TCXBSQ4M.js.map +7 -0
  78. package/example/vue-demo/node_modules/.vite/deps/clsx.js +22 -0
  79. package/example/vue-demo/node_modules/.vite/deps/clsx.js.map +7 -0
  80. package/example/vue-demo/node_modules/.vite/deps/lucide-vue-next.js +29720 -0
  81. package/example/vue-demo/node_modules/.vite/deps/lucide-vue-next.js.map +7 -0
  82. package/example/vue-demo/node_modules/.vite/deps/package.json +3 -0
  83. package/example/vue-demo/node_modules/.vite/deps/radix-vue.js +24321 -0
  84. package/example/vue-demo/node_modules/.vite/deps/radix-vue.js.map +7 -0
  85. package/example/vue-demo/node_modules/.vite/deps/tailwind-merge.js +2534 -0
  86. package/example/vue-demo/node_modules/.vite/deps/tailwind-merge.js.map +7 -0
  87. package/example/vue-demo/node_modules/.vite/deps/vue.js +348 -0
  88. package/example/vue-demo/node_modules/.vite/deps/vue.js.map +7 -0
  89. package/example/vue-demo/package.json +20 -0
  90. package/example/vue-demo/postcss.config.mjs +6 -0
  91. package/example/vue-demo/src/App.vue +61 -0
  92. package/example/vue-demo/src/env.d.ts +1 -0
  93. package/example/vue-demo/src/main.ts +5 -0
  94. package/example/vue-demo/src/style.css +102 -0
  95. package/example/vue-demo/tailwind.config.mjs +50 -0
  96. package/example/vue-demo/tsconfig.json +15 -0
  97. package/example/vue-demo/vite.config.ts +14 -0
  98. package/package.json +10 -2
  99. package/packages/core/dist/{chunk-KQR3LFND.js → chunk-GQASS6PM.js} +20 -0
  100. package/packages/core/dist/index.cjs +20 -0
  101. package/packages/core/dist/index.js +1 -1
  102. package/packages/core/dist/utils.cjs +20 -0
  103. package/packages/core/dist/utils.js +1 -1
  104. package/packages/core/node_modules/.bin/jiti +17 -0
  105. package/packages/core/node_modules/.bin/tsup +2 -2
  106. package/packages/core/node_modules/.bin/tsup-node +2 -2
  107. package/packages/core/node_modules/.vite/vitest/results.json +1 -1
  108. package/packages/core/src/utils.ts +21 -0
  109. package/packages/core/test/utils.test.ts +99 -0
  110. package/packages/react/dist/index.cjs +383 -110
  111. package/packages/react/dist/index.d.cts +80 -4
  112. package/packages/react/dist/index.d.ts +80 -4
  113. package/packages/react/dist/index.js +355 -110
  114. package/packages/react/node_modules/.bin/jiti +17 -0
  115. package/packages/react/node_modules/.bin/tsup +2 -2
  116. package/packages/react/node_modules/.bin/tsup-node +2 -2
  117. package/packages/react/node_modules/.bin/vite +4 -4
  118. package/packages/react/node_modules/.vite/vitest/results.json +1 -1
  119. package/packages/react/package.json +7 -2
  120. package/packages/react/postcss.config.mjs +6 -0
  121. package/packages/react/src/FormFieldRenderer.tsx +32 -112
  122. package/packages/react/src/components/Checkbox.tsx +28 -0
  123. package/packages/react/src/components/CheckboxRenderer.tsx +37 -0
  124. package/packages/react/src/components/Input.tsx +24 -0
  125. package/packages/react/src/components/InputRenderer.tsx +29 -0
  126. package/packages/react/src/components/Label.tsx +24 -0
  127. package/packages/react/src/components/RadioGroup.tsx +42 -0
  128. package/packages/react/src/components/RadioRenderer.tsx +29 -0
  129. package/packages/react/src/components/Select.tsx +93 -0
  130. package/packages/react/src/components/SelectRenderer.tsx +27 -0
  131. package/packages/react/src/components/Textarea.tsx +23 -0
  132. package/packages/react/src/components/TextareaRenderer.tsx +17 -0
  133. package/packages/react/src/components/index.ts +55 -0
  134. package/packages/react/src/components/types.ts +17 -0
  135. package/packages/react/src/index.tsx +1 -0
  136. package/packages/react/src/utils.ts +7 -0
  137. package/packages/react/tailwind.config.mjs +10 -0
  138. package/packages/react/test/FormFieldRenderer.test.tsx +127 -0
  139. package/packages/vue/dist/index.d.ts +33 -0
  140. package/packages/vue/dist/index.js +28 -1
  141. package/packages/vue/dist/index.mjs +6798 -142
  142. package/packages/vue/node_modules/.bin/tsc +2 -2
  143. package/packages/vue/node_modules/.bin/tsserver +2 -2
  144. package/packages/vue/node_modules/.bin/vite +2 -2
  145. package/packages/vue/node_modules/.bin/vitest +2 -2
  146. package/packages/vue/node_modules/.bin/vue-tsc +2 -2
  147. package/packages/vue/node_modules/.vite/vitest/results.json +1 -1
  148. package/packages/vue/package.json +4 -2
  149. package/packages/vue/postcss.config.mjs +6 -0
  150. package/packages/vue/src/FormFieldRenderer.vue +46 -90
  151. package/packages/vue/src/components/Checkbox.vue +28 -0
  152. package/packages/vue/src/components/CheckboxRenderer.vue +35 -0
  153. package/packages/vue/src/components/Input.vue +21 -0
  154. package/packages/vue/src/components/InputRenderer.vue +28 -0
  155. package/packages/vue/src/components/Label.vue +21 -0
  156. package/packages/vue/src/components/RadioGroup.vue +30 -0
  157. package/packages/vue/src/components/RadioGroupItem.vue +26 -0
  158. package/packages/vue/src/components/RadioRenderer.vue +24 -0
  159. package/packages/vue/src/components/Select.vue +40 -0
  160. package/packages/vue/src/components/SelectContent.vue +38 -0
  161. package/packages/vue/src/components/SelectItem.vue +43 -0
  162. package/packages/vue/src/components/SelectRenderer.vue +30 -0
  163. package/packages/vue/src/components/SelectTrigger.vue +27 -0
  164. package/packages/vue/src/components/Textarea.vue +19 -0
  165. package/packages/vue/src/components/TextareaRenderer.vue +18 -0
  166. package/packages/vue/src/components/index.ts +24 -0
  167. package/packages/vue/src/fieldComponentMap.ts +34 -0
  168. package/packages/vue/src/index.ts +2 -0
  169. package/packages/vue/src/utils.ts +6 -0
  170. package/packages/vue/tailwind.config.mjs +10 -0
  171. package/packages/vue/test/FormFieldRenderer.test.ts +133 -0
  172. package/pnpm-workspace.yaml +1 -1
  173. package/packages/core/src/index.test.ts +0 -37
  174. /package/packages/react/{src → test}/DynamicForm.test.tsx +0 -0
  175. /package/packages/vue/{src → test}/DynamicForm.test.ts +0 -0
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>pdyform React Demo</title>
7
+ <script type="module" crossorigin src="/assets/index-DeJS8UcQ.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-BBU9cJqy.css">
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>pdyform React Demo</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/main.tsx"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/browserslist@4.28.1/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/browserslist@4.28.1/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
15
+ else
16
+ exec node "$basedir/../typescript/bin/tsc" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
15
+ else
16
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.35/node_modules/vite/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.35/node_modules/vite/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.35/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.35/node_modules/vite/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.35/node_modules/vite/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.35/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
15
+ else
16
+ exec node "$basedir/../vite/bin/vite.js" "$@"
17
+ fi
@@ -0,0 +1,300 @@
1
+ "use client";
2
+ import {
3
+ Presence
4
+ } from "./chunk-ZE5VSJFE.js";
5
+ import {
6
+ Primitive,
7
+ composeEventHandlers,
8
+ createContextScope,
9
+ useControllableState,
10
+ usePrevious,
11
+ useSize
12
+ } from "./chunk-GX7YZ5KV.js";
13
+ import {
14
+ useComposedRefs
15
+ } from "./chunk-3D5PZ6F6.js";
16
+ import "./chunk-YYN6DZAU.js";
17
+ import {
18
+ require_jsx_runtime
19
+ } from "./chunk-PUFJGYAC.js";
20
+ import {
21
+ require_react
22
+ } from "./chunk-TOMGVNQP.js";
23
+ import {
24
+ __toESM
25
+ } from "./chunk-G3PMV62Z.js";
26
+
27
+ // ../../node_modules/.pnpm/@radix-ui+react-checkbox@1.3.3_@types+react-dom@18.3.7_@types+react@18.3.28__@types+react@18._t74gssewtskobxwycl7nf6sn4m/node_modules/@radix-ui/react-checkbox/dist/index.mjs
28
+ var React = __toESM(require_react(), 1);
29
+ var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
30
+ var CHECKBOX_NAME = "Checkbox";
31
+ var [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);
32
+ var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
33
+ function CheckboxProvider(props) {
34
+ const {
35
+ __scopeCheckbox,
36
+ checked: checkedProp,
37
+ children,
38
+ defaultChecked,
39
+ disabled,
40
+ form,
41
+ name,
42
+ onCheckedChange,
43
+ required,
44
+ value = "on",
45
+ // @ts-expect-error
46
+ internal_do_not_use_render
47
+ } = props;
48
+ const [checked, setChecked] = useControllableState({
49
+ prop: checkedProp,
50
+ defaultProp: defaultChecked ?? false,
51
+ onChange: onCheckedChange,
52
+ caller: CHECKBOX_NAME
53
+ });
54
+ const [control, setControl] = React.useState(null);
55
+ const [bubbleInput, setBubbleInput] = React.useState(null);
56
+ const hasConsumerStoppedPropagationRef = React.useRef(false);
57
+ const isFormControl = control ? !!form || !!control.closest("form") : (
58
+ // We set this to true by default so that events bubble to forms without JS (SSR)
59
+ true
60
+ );
61
+ const context = {
62
+ checked,
63
+ disabled,
64
+ setChecked,
65
+ control,
66
+ setControl,
67
+ name,
68
+ form,
69
+ value,
70
+ hasConsumerStoppedPropagationRef,
71
+ required,
72
+ defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
73
+ isFormControl,
74
+ bubbleInput,
75
+ setBubbleInput
76
+ };
77
+ return (0, import_jsx_runtime.jsx)(
78
+ CheckboxProviderImpl,
79
+ {
80
+ scope: __scopeCheckbox,
81
+ ...context,
82
+ children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
83
+ }
84
+ );
85
+ }
86
+ var TRIGGER_NAME = "CheckboxTrigger";
87
+ var CheckboxTrigger = React.forwardRef(
88
+ ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {
89
+ const {
90
+ control,
91
+ value,
92
+ disabled,
93
+ checked,
94
+ required,
95
+ setControl,
96
+ setChecked,
97
+ hasConsumerStoppedPropagationRef,
98
+ isFormControl,
99
+ bubbleInput
100
+ } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);
101
+ const composedRefs = useComposedRefs(forwardedRef, setControl);
102
+ const initialCheckedStateRef = React.useRef(checked);
103
+ React.useEffect(() => {
104
+ const form = control == null ? void 0 : control.form;
105
+ if (form) {
106
+ const reset = () => setChecked(initialCheckedStateRef.current);
107
+ form.addEventListener("reset", reset);
108
+ return () => form.removeEventListener("reset", reset);
109
+ }
110
+ }, [control, setChecked]);
111
+ return (0, import_jsx_runtime.jsx)(
112
+ Primitive.button,
113
+ {
114
+ type: "button",
115
+ role: "checkbox",
116
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
117
+ "aria-required": required,
118
+ "data-state": getState(checked),
119
+ "data-disabled": disabled ? "" : void 0,
120
+ disabled,
121
+ value,
122
+ ...checkboxProps,
123
+ ref: composedRefs,
124
+ onKeyDown: composeEventHandlers(onKeyDown, (event) => {
125
+ if (event.key === "Enter") event.preventDefault();
126
+ }),
127
+ onClick: composeEventHandlers(onClick, (event) => {
128
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
129
+ if (bubbleInput && isFormControl) {
130
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
131
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
132
+ }
133
+ })
134
+ }
135
+ );
136
+ }
137
+ );
138
+ CheckboxTrigger.displayName = TRIGGER_NAME;
139
+ var Checkbox = React.forwardRef(
140
+ (props, forwardedRef) => {
141
+ const {
142
+ __scopeCheckbox,
143
+ name,
144
+ checked,
145
+ defaultChecked,
146
+ required,
147
+ disabled,
148
+ value,
149
+ onCheckedChange,
150
+ form,
151
+ ...checkboxProps
152
+ } = props;
153
+ return (0, import_jsx_runtime.jsx)(
154
+ CheckboxProvider,
155
+ {
156
+ __scopeCheckbox,
157
+ checked,
158
+ defaultChecked,
159
+ disabled,
160
+ required,
161
+ onCheckedChange,
162
+ name,
163
+ form,
164
+ value,
165
+ internal_do_not_use_render: ({ isFormControl }) => (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
166
+ (0, import_jsx_runtime.jsx)(
167
+ CheckboxTrigger,
168
+ {
169
+ ...checkboxProps,
170
+ ref: forwardedRef,
171
+ __scopeCheckbox
172
+ }
173
+ ),
174
+ isFormControl && (0, import_jsx_runtime.jsx)(
175
+ CheckboxBubbleInput,
176
+ {
177
+ __scopeCheckbox
178
+ }
179
+ )
180
+ ] })
181
+ }
182
+ );
183
+ }
184
+ );
185
+ Checkbox.displayName = CHECKBOX_NAME;
186
+ var INDICATOR_NAME = "CheckboxIndicator";
187
+ var CheckboxIndicator = React.forwardRef(
188
+ (props, forwardedRef) => {
189
+ const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
190
+ const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);
191
+ return (0, import_jsx_runtime.jsx)(
192
+ Presence,
193
+ {
194
+ present: forceMount || isIndeterminate(context.checked) || context.checked === true,
195
+ children: (0, import_jsx_runtime.jsx)(
196
+ Primitive.span,
197
+ {
198
+ "data-state": getState(context.checked),
199
+ "data-disabled": context.disabled ? "" : void 0,
200
+ ...indicatorProps,
201
+ ref: forwardedRef,
202
+ style: { pointerEvents: "none", ...props.style }
203
+ }
204
+ )
205
+ }
206
+ );
207
+ }
208
+ );
209
+ CheckboxIndicator.displayName = INDICATOR_NAME;
210
+ var BUBBLE_INPUT_NAME = "CheckboxBubbleInput";
211
+ var CheckboxBubbleInput = React.forwardRef(
212
+ ({ __scopeCheckbox, ...props }, forwardedRef) => {
213
+ const {
214
+ control,
215
+ hasConsumerStoppedPropagationRef,
216
+ checked,
217
+ defaultChecked,
218
+ required,
219
+ disabled,
220
+ name,
221
+ value,
222
+ form,
223
+ bubbleInput,
224
+ setBubbleInput
225
+ } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);
226
+ const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
227
+ const prevChecked = usePrevious(checked);
228
+ const controlSize = useSize(control);
229
+ React.useEffect(() => {
230
+ const input = bubbleInput;
231
+ if (!input) return;
232
+ const inputProto = window.HTMLInputElement.prototype;
233
+ const descriptor = Object.getOwnPropertyDescriptor(
234
+ inputProto,
235
+ "checked"
236
+ );
237
+ const setChecked = descriptor.set;
238
+ const bubbles = !hasConsumerStoppedPropagationRef.current;
239
+ if (prevChecked !== checked && setChecked) {
240
+ const event = new Event("click", { bubbles });
241
+ input.indeterminate = isIndeterminate(checked);
242
+ setChecked.call(input, isIndeterminate(checked) ? false : checked);
243
+ input.dispatchEvent(event);
244
+ }
245
+ }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);
246
+ const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);
247
+ return (0, import_jsx_runtime.jsx)(
248
+ Primitive.input,
249
+ {
250
+ type: "checkbox",
251
+ "aria-hidden": true,
252
+ defaultChecked: defaultChecked ?? defaultCheckedRef.current,
253
+ required,
254
+ disabled,
255
+ name,
256
+ value,
257
+ form,
258
+ ...props,
259
+ tabIndex: -1,
260
+ ref: composedRefs,
261
+ style: {
262
+ ...props.style,
263
+ ...controlSize,
264
+ position: "absolute",
265
+ pointerEvents: "none",
266
+ opacity: 0,
267
+ margin: 0,
268
+ // We transform because the input is absolutely positioned but we have
269
+ // rendered it **after** the button. This pulls it back to sit on top
270
+ // of the button.
271
+ transform: "translateX(-100%)"
272
+ }
273
+ }
274
+ );
275
+ }
276
+ );
277
+ CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
278
+ function isFunction(value) {
279
+ return typeof value === "function";
280
+ }
281
+ function isIndeterminate(checked) {
282
+ return checked === "indeterminate";
283
+ }
284
+ function getState(checked) {
285
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
286
+ }
287
+ export {
288
+ Checkbox,
289
+ CheckboxIndicator,
290
+ CheckboxIndicator as Indicator,
291
+ Checkbox as Root,
292
+ createCheckboxScope,
293
+ CheckboxBubbleInput as unstable_BubbleInput,
294
+ CheckboxBubbleInput as unstable_CheckboxBubbleInput,
295
+ CheckboxProvider as unstable_CheckboxProvider,
296
+ CheckboxTrigger as unstable_CheckboxTrigger,
297
+ CheckboxProvider as unstable_Provider,
298
+ CheckboxTrigger as unstable_Trigger
299
+ };
300
+ //# sourceMappingURL=@radix-ui_react-checkbox.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../node_modules/.pnpm/@radix-ui+react-checkbox@1.3.3_@types+react-dom@18.3.7_@types+react@18.3.28__@types+react@18._t74gssewtskobxwycl7nf6sn4m/node_modules/@radix-ui/react-checkbox/src/checkbox.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps<P> = P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue<State extends CheckedState | boolean = CheckedState> = {\n checked: State | boolean;\n setChecked: React.Dispatch<React.SetStateAction<State | boolean>>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject<boolean>;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch<React.SetStateAction<HTMLInputElement | null>>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext<CheckboxContextValue>(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps<State extends CheckedState = CheckedState> {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider<State extends CheckedState = CheckedState>(\n props: ScopedProps<CheckboxProviderProps<State>>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState<HTMLButtonElement | null>(null);\n const [bubbleInput, setBubbleInput] = React.useState<HTMLInputElement | null>(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue<State> = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n <CheckboxProviderImpl\n scope={__scopeCheckbox}\n {...(context as unknown as CheckboxContextValue<CheckedState>)}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n </CheckboxProviderImpl>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive.button>,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef<HTMLButtonElement, CheckboxTriggerProps>(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps<CheckboxTriggerProps>,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n <Primitive.button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={isIndeterminate(checked) ? 'mixed' : checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...checkboxProps}\n ref={composedRefs}\n onKeyDown={composeEventHandlers(onKeyDown, (event) => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CheckboxProps extends Omit<PrimitiveButtonProps, 'checked' | 'defaultChecked'> {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>(\n (props: ScopedProps<CheckboxProps>, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n <CheckboxProvider\n __scopeCheckbox={__scopeCheckbox}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n onCheckedChange={onCheckedChange}\n name={name}\n form={form}\n value={value}\n // @ts-expect-error\n internal_do_not_use_render={({ isFormControl }: CheckboxContextValue) => (\n <>\n <CheckboxTrigger\n {...checkboxProps}\n ref={forwardedRef}\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n {isFormControl && (\n <CheckboxBubbleInput\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n )}\n </>\n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef<CheckboxIndicatorElement, CheckboxIndicatorProps>(\n (props: ScopedProps<CheckboxIndicatorProps>, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n <Presence\n present={forceMount || isIndeterminate(context.checked) || context.checked === true}\n >\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n style={{ pointerEvents: 'none', ...props.style }}\n />\n </Presence>\n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface CheckboxBubbleInputProps extends Omit<InputProps, 'checked'> {}\n\nconst CheckboxBubbleInput = React.forwardRef<HTMLInputElement, CheckboxBubbleInputProps>(\n ({ __scopeCheckbox, ...props }: ScopedProps<CheckboxBubbleInputProps>, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n <Primitive.input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={defaultChecked ?? defaultCheckedRef.current}\n required={required}\n disabled={disabled}\n name={name}\n value={value}\n form={form}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: 'translateX(-100%)',\n }}\n />\n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,194 @@
1
+ "use client";
2
+ import {
3
+ composeRefs
4
+ } from "./chunk-3D5PZ6F6.js";
5
+ import {
6
+ require_react_dom
7
+ } from "./chunk-YYN6DZAU.js";
8
+ import {
9
+ require_jsx_runtime
10
+ } from "./chunk-PUFJGYAC.js";
11
+ import {
12
+ require_react
13
+ } from "./chunk-TOMGVNQP.js";
14
+ import {
15
+ __toESM
16
+ } from "./chunk-G3PMV62Z.js";
17
+
18
+ // ../../node_modules/.pnpm/@radix-ui+react-label@2.1.8_@types+react-dom@18.3.7_@types+react@18.3.28__@types+react@18.3.2_ikkobmmbjpasbqgco5lgrwp2hu/node_modules/@radix-ui/react-label/dist/index.mjs
19
+ var React3 = __toESM(require_react(), 1);
20
+
21
+ // ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.4_@types+react-dom@18.3.7_@types+react@18.3.28__@types+react@18_5m4njbrt5jjaaqsixv4pcsp64y/node_modules/@radix-ui/react-primitive/dist/index.mjs
22
+ var React2 = __toESM(require_react(), 1);
23
+ var ReactDOM = __toESM(require_react_dom(), 1);
24
+
25
+ // ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.4_@types+react@18.3.28_react@18.3.1/node_modules/@radix-ui/react-slot/dist/index.mjs
26
+ var React = __toESM(require_react(), 1);
27
+ var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
28
+ var REACT_LAZY_TYPE = Symbol.for("react.lazy");
29
+ var use = React[" use ".trim().toString()];
30
+ function isPromiseLike(value) {
31
+ return typeof value === "object" && value !== null && "then" in value;
32
+ }
33
+ function isLazyComponent(element) {
34
+ return element != null && typeof element === "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload);
35
+ }
36
+ function createSlot(ownerName) {
37
+ const SlotClone = createSlotClone(ownerName);
38
+ const Slot2 = React.forwardRef((props, forwardedRef) => {
39
+ let { children, ...slotProps } = props;
40
+ if (isLazyComponent(children) && typeof use === "function") {
41
+ children = use(children._payload);
42
+ }
43
+ const childrenArray = React.Children.toArray(children);
44
+ const slottable = childrenArray.find(isSlottable);
45
+ if (slottable) {
46
+ const newElement = slottable.props.children;
47
+ const newChildren = childrenArray.map((child) => {
48
+ if (child === slottable) {
49
+ if (React.Children.count(newElement) > 1) return React.Children.only(null);
50
+ return React.isValidElement(newElement) ? newElement.props.children : null;
51
+ } else {
52
+ return child;
53
+ }
54
+ });
55
+ return (0, import_jsx_runtime.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });
56
+ }
57
+ return (0, import_jsx_runtime.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
58
+ });
59
+ Slot2.displayName = `${ownerName}.Slot`;
60
+ return Slot2;
61
+ }
62
+ var Slot = createSlot("Slot");
63
+ function createSlotClone(ownerName) {
64
+ const SlotClone = React.forwardRef((props, forwardedRef) => {
65
+ let { children, ...slotProps } = props;
66
+ if (isLazyComponent(children) && typeof use === "function") {
67
+ children = use(children._payload);
68
+ }
69
+ if (React.isValidElement(children)) {
70
+ const childrenRef = getElementRef(children);
71
+ const props2 = mergeProps(slotProps, children.props);
72
+ if (children.type !== React.Fragment) {
73
+ props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
74
+ }
75
+ return React.cloneElement(children, props2);
76
+ }
77
+ return React.Children.count(children) > 1 ? React.Children.only(null) : null;
78
+ });
79
+ SlotClone.displayName = `${ownerName}.SlotClone`;
80
+ return SlotClone;
81
+ }
82
+ var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
83
+ function createSlottable(ownerName) {
84
+ const Slottable2 = ({ children }) => {
85
+ return (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
86
+ };
87
+ Slottable2.displayName = `${ownerName}.Slottable`;
88
+ Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
89
+ return Slottable2;
90
+ }
91
+ var Slottable = createSlottable("Slottable");
92
+ function isSlottable(child) {
93
+ return React.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
94
+ }
95
+ function mergeProps(slotProps, childProps) {
96
+ const overrideProps = { ...childProps };
97
+ for (const propName in childProps) {
98
+ const slotPropValue = slotProps[propName];
99
+ const childPropValue = childProps[propName];
100
+ const isHandler = /^on[A-Z]/.test(propName);
101
+ if (isHandler) {
102
+ if (slotPropValue && childPropValue) {
103
+ overrideProps[propName] = (...args) => {
104
+ const result = childPropValue(...args);
105
+ slotPropValue(...args);
106
+ return result;
107
+ };
108
+ } else if (slotPropValue) {
109
+ overrideProps[propName] = slotPropValue;
110
+ }
111
+ } else if (propName === "style") {
112
+ overrideProps[propName] = { ...slotPropValue, ...childPropValue };
113
+ } else if (propName === "className") {
114
+ overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
115
+ }
116
+ }
117
+ return { ...slotProps, ...overrideProps };
118
+ }
119
+ function getElementRef(element) {
120
+ var _a, _b;
121
+ let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
122
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
123
+ if (mayWarn) {
124
+ return element.ref;
125
+ }
126
+ getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
127
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
128
+ if (mayWarn) {
129
+ return element.props.ref;
130
+ }
131
+ return element.props.ref || element.ref;
132
+ }
133
+
134
+ // ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.4_@types+react-dom@18.3.7_@types+react@18.3.28__@types+react@18_5m4njbrt5jjaaqsixv4pcsp64y/node_modules/@radix-ui/react-primitive/dist/index.mjs
135
+ var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
136
+ var NODES = [
137
+ "a",
138
+ "button",
139
+ "div",
140
+ "form",
141
+ "h2",
142
+ "h3",
143
+ "img",
144
+ "input",
145
+ "label",
146
+ "li",
147
+ "nav",
148
+ "ol",
149
+ "p",
150
+ "select",
151
+ "span",
152
+ "svg",
153
+ "ul"
154
+ ];
155
+ var Primitive = NODES.reduce((primitive, node) => {
156
+ const Slot2 = createSlot(`Primitive.${node}`);
157
+ const Node = React2.forwardRef((props, forwardedRef) => {
158
+ const { asChild, ...primitiveProps } = props;
159
+ const Comp = asChild ? Slot2 : node;
160
+ if (typeof window !== "undefined") {
161
+ window[Symbol.for("radix-ui")] = true;
162
+ }
163
+ return (0, import_jsx_runtime2.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
164
+ });
165
+ Node.displayName = `Primitive.${node}`;
166
+ return { ...primitive, [node]: Node };
167
+ }, {});
168
+
169
+ // ../../node_modules/.pnpm/@radix-ui+react-label@2.1.8_@types+react-dom@18.3.7_@types+react@18.3.28__@types+react@18.3.2_ikkobmmbjpasbqgco5lgrwp2hu/node_modules/@radix-ui/react-label/dist/index.mjs
170
+ var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
171
+ var NAME = "Label";
172
+ var Label = React3.forwardRef((props, forwardedRef) => {
173
+ return (0, import_jsx_runtime3.jsx)(
174
+ Primitive.label,
175
+ {
176
+ ...props,
177
+ ref: forwardedRef,
178
+ onMouseDown: (event) => {
179
+ var _a;
180
+ const target = event.target;
181
+ if (target.closest("button, input, select, textarea")) return;
182
+ (_a = props.onMouseDown) == null ? void 0 : _a.call(props, event);
183
+ if (!event.defaultPrevented && event.detail > 1) event.preventDefault();
184
+ }
185
+ }
186
+ );
187
+ });
188
+ Label.displayName = NAME;
189
+ var Root = Label;
190
+ export {
191
+ Label,
192
+ Root
193
+ };
194
+ //# sourceMappingURL=@radix-ui_react-label.js.map