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.
- package/README.md +28 -1
- package/example/README.md +36 -0
- package/example/react-demo/dist/assets/index-BBU9cJqy.css +1 -0
- package/example/react-demo/dist/assets/index-DeJS8UcQ.js +105 -0
- package/example/react-demo/dist/index.html +13 -0
- package/example/react-demo/index.html +12 -0
- package/example/react-demo/node_modules/.bin/browserslist +17 -0
- package/example/react-demo/node_modules/.bin/tsc +17 -0
- package/example/react-demo/node_modules/.bin/tsserver +17 -0
- package/example/react-demo/node_modules/.bin/vite +17 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-checkbox.js +300 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-checkbox.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-label.js +194 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-label.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-radio-group.js +530 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-radio-group.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-select.js +4808 -0
- package/example/react-demo/node_modules/.vite/deps/@radix-ui_react-select.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/_metadata.json +115 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-3D5PZ6F6.js +49 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-3D5PZ6F6.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-5Q2RBQLA.js +127 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-5Q2RBQLA.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-G3PMV62Z.js +36 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-G3PMV62Z.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-GX7YZ5KV.js +370 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-GX7YZ5KV.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-PUFJGYAC.js +928 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-PUFJGYAC.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-SIU35MPB.js +21 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-SIU35MPB.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-TOMGVNQP.js +1906 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-TOMGVNQP.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-YYN6DZAU.js +21628 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-YYN6DZAU.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-ZE5VSJFE.js +144 -0
- package/example/react-demo/node_modules/.vite/deps/chunk-ZE5VSJFE.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/class-variance-authority.js +51 -0
- package/example/react-demo/node_modules/.vite/deps/class-variance-authority.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/clsx.js +10 -0
- package/example/react-demo/node_modules/.vite/deps/clsx.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/lucide-react.js +29725 -0
- package/example/react-demo/node_modules/.vite/deps/lucide-react.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/package.json +3 -0
- package/example/react-demo/node_modules/.vite/deps/react-dom.js +7 -0
- package/example/react-demo/node_modules/.vite/deps/react-dom.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/react-dom_client.js +39 -0
- package/example/react-demo/node_modules/.vite/deps/react-dom_client.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/react.js +6 -0
- package/example/react-demo/node_modules/.vite/deps/react.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/react_jsx-dev-runtime.js +913 -0
- package/example/react-demo/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/react_jsx-runtime.js +7 -0
- package/example/react-demo/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
- package/example/react-demo/node_modules/.vite/deps/tailwind-merge.js +2534 -0
- package/example/react-demo/node_modules/.vite/deps/tailwind-merge.js.map +7 -0
- package/example/react-demo/package.json +23 -0
- package/example/react-demo/postcss.config.mjs +6 -0
- package/example/react-demo/src/App.tsx +64 -0
- package/example/react-demo/src/main.tsx +10 -0
- package/example/react-demo/src/styles.css +102 -0
- package/example/react-demo/tailwind.config.mjs +50 -0
- package/example/react-demo/tsconfig.json +16 -0
- package/example/react-demo/vite.config.ts +14 -0
- package/example/shared/defaultSchema.ts +68 -0
- package/example/vue-demo/dist/assets/index-BhWj3D5x.css +1 -0
- package/example/vue-demo/dist/assets/index-Bw3THsrD.js +44 -0
- package/example/vue-demo/dist/index.html +13 -0
- package/example/vue-demo/index.html +12 -0
- package/example/vue-demo/node_modules/.bin/tsc +17 -0
- package/example/vue-demo/node_modules/.bin/tsserver +17 -0
- package/example/vue-demo/node_modules/.bin/vite +17 -0
- package/example/vue-demo/node_modules/.vite/deps/_metadata.json +46 -0
- package/example/vue-demo/node_modules/.vite/deps/chunk-PZ5AY32C.js +10 -0
- package/example/vue-demo/node_modules/.vite/deps/chunk-PZ5AY32C.js.map +7 -0
- package/example/vue-demo/node_modules/.vite/deps/chunk-TCXBSQ4M.js +12877 -0
- package/example/vue-demo/node_modules/.vite/deps/chunk-TCXBSQ4M.js.map +7 -0
- package/example/vue-demo/node_modules/.vite/deps/clsx.js +22 -0
- package/example/vue-demo/node_modules/.vite/deps/clsx.js.map +7 -0
- package/example/vue-demo/node_modules/.vite/deps/lucide-vue-next.js +29720 -0
- package/example/vue-demo/node_modules/.vite/deps/lucide-vue-next.js.map +7 -0
- package/example/vue-demo/node_modules/.vite/deps/package.json +3 -0
- package/example/vue-demo/node_modules/.vite/deps/radix-vue.js +24321 -0
- package/example/vue-demo/node_modules/.vite/deps/radix-vue.js.map +7 -0
- package/example/vue-demo/node_modules/.vite/deps/tailwind-merge.js +2534 -0
- package/example/vue-demo/node_modules/.vite/deps/tailwind-merge.js.map +7 -0
- package/example/vue-demo/node_modules/.vite/deps/vue.js +348 -0
- package/example/vue-demo/node_modules/.vite/deps/vue.js.map +7 -0
- package/example/vue-demo/package.json +20 -0
- package/example/vue-demo/postcss.config.mjs +6 -0
- package/example/vue-demo/src/App.vue +61 -0
- package/example/vue-demo/src/env.d.ts +1 -0
- package/example/vue-demo/src/main.ts +5 -0
- package/example/vue-demo/src/style.css +102 -0
- package/example/vue-demo/tailwind.config.mjs +50 -0
- package/example/vue-demo/tsconfig.json +15 -0
- package/example/vue-demo/vite.config.ts +14 -0
- package/package.json +10 -2
- package/packages/core/dist/{chunk-KQR3LFND.js → chunk-GQASS6PM.js} +20 -0
- package/packages/core/dist/index.cjs +20 -0
- package/packages/core/dist/index.js +1 -1
- package/packages/core/dist/utils.cjs +20 -0
- package/packages/core/dist/utils.js +1 -1
- package/packages/core/node_modules/.bin/jiti +17 -0
- package/packages/core/node_modules/.bin/tsup +2 -2
- package/packages/core/node_modules/.bin/tsup-node +2 -2
- package/packages/core/node_modules/.vite/vitest/results.json +1 -1
- package/packages/core/src/utils.ts +21 -0
- package/packages/core/test/utils.test.ts +99 -0
- package/packages/react/dist/index.cjs +383 -110
- package/packages/react/dist/index.d.cts +80 -4
- package/packages/react/dist/index.d.ts +80 -4
- package/packages/react/dist/index.js +355 -110
- package/packages/react/node_modules/.bin/jiti +17 -0
- package/packages/react/node_modules/.bin/tsup +2 -2
- package/packages/react/node_modules/.bin/tsup-node +2 -2
- package/packages/react/node_modules/.bin/vite +4 -4
- package/packages/react/node_modules/.vite/vitest/results.json +1 -1
- package/packages/react/package.json +7 -2
- package/packages/react/postcss.config.mjs +6 -0
- package/packages/react/src/FormFieldRenderer.tsx +32 -112
- package/packages/react/src/components/Checkbox.tsx +28 -0
- package/packages/react/src/components/CheckboxRenderer.tsx +37 -0
- package/packages/react/src/components/Input.tsx +24 -0
- package/packages/react/src/components/InputRenderer.tsx +29 -0
- package/packages/react/src/components/Label.tsx +24 -0
- package/packages/react/src/components/RadioGroup.tsx +42 -0
- package/packages/react/src/components/RadioRenderer.tsx +29 -0
- package/packages/react/src/components/Select.tsx +93 -0
- package/packages/react/src/components/SelectRenderer.tsx +27 -0
- package/packages/react/src/components/Textarea.tsx +23 -0
- package/packages/react/src/components/TextareaRenderer.tsx +17 -0
- package/packages/react/src/components/index.ts +55 -0
- package/packages/react/src/components/types.ts +17 -0
- package/packages/react/src/index.tsx +1 -0
- package/packages/react/src/utils.ts +7 -0
- package/packages/react/tailwind.config.mjs +10 -0
- package/packages/react/test/FormFieldRenderer.test.tsx +127 -0
- package/packages/vue/dist/index.d.ts +33 -0
- package/packages/vue/dist/index.js +28 -1
- package/packages/vue/dist/index.mjs +6798 -142
- package/packages/vue/node_modules/.bin/tsc +2 -2
- package/packages/vue/node_modules/.bin/tsserver +2 -2
- package/packages/vue/node_modules/.bin/vite +2 -2
- package/packages/vue/node_modules/.bin/vitest +2 -2
- package/packages/vue/node_modules/.bin/vue-tsc +2 -2
- package/packages/vue/node_modules/.vite/vitest/results.json +1 -1
- package/packages/vue/package.json +4 -2
- package/packages/vue/postcss.config.mjs +6 -0
- package/packages/vue/src/FormFieldRenderer.vue +46 -90
- package/packages/vue/src/components/Checkbox.vue +28 -0
- package/packages/vue/src/components/CheckboxRenderer.vue +35 -0
- package/packages/vue/src/components/Input.vue +21 -0
- package/packages/vue/src/components/InputRenderer.vue +28 -0
- package/packages/vue/src/components/Label.vue +21 -0
- package/packages/vue/src/components/RadioGroup.vue +30 -0
- package/packages/vue/src/components/RadioGroupItem.vue +26 -0
- package/packages/vue/src/components/RadioRenderer.vue +24 -0
- package/packages/vue/src/components/Select.vue +40 -0
- package/packages/vue/src/components/SelectContent.vue +38 -0
- package/packages/vue/src/components/SelectItem.vue +43 -0
- package/packages/vue/src/components/SelectRenderer.vue +30 -0
- package/packages/vue/src/components/SelectTrigger.vue +27 -0
- package/packages/vue/src/components/Textarea.vue +19 -0
- package/packages/vue/src/components/TextareaRenderer.vue +18 -0
- package/packages/vue/src/components/index.ts +24 -0
- package/packages/vue/src/fieldComponentMap.ts +34 -0
- package/packages/vue/src/index.ts +2 -0
- package/packages/vue/src/utils.ts +6 -0
- package/packages/vue/tailwind.config.mjs +10 -0
- package/packages/vue/test/FormFieldRenderer.test.ts +133 -0
- package/pnpm-workspace.yaml +1 -1
- package/packages/core/src/index.test.ts +0 -37
- /package/packages/react/{src → test}/DynamicForm.test.tsx +0 -0
- /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
|