pdyform 1.2.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -1
- package/example/README.md +36 -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/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 +9 -3
- 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/.vite/vitest/results.json +1 -1
- package/packages/core/src/utils.ts +21 -0
- package/packages/core/test/utils.test.ts +6 -0
- package/packages/react/dist/index.cjs +22 -13
- package/packages/react/dist/index.js +22 -13
- package/packages/react/node_modules/.bin/vite +4 -4
- package/packages/react/node_modules/.vite/vitest/results.json +1 -1
- package/packages/react/src/components/InputRenderer.tsx +23 -12
- package/packages/react/test/FormFieldRenderer.test.tsx +10 -0
- package/packages/vue/dist/index.js +1 -1
- package/packages/vue/dist/index.mjs +9 -3
- package/packages/vue/node_modules/.vite/vitest/results.json +1 -1
- package/packages/vue/src/components/InputRenderer.vue +10 -1
- package/packages/vue/test/FormFieldRenderer.test.ts +11 -0
- package/pnpm-workspace.yaml +1 -1
- package/turbo.json +8 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# pdyform
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/js/pdyform)
|
|
4
|
-
[-brightgreen.svg)]()
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
7
|
[English](#english) | [中文说明](#中文说明)
|
|
@@ -174,3 +174,30 @@ pnpm run build:all
|
|
|
174
174
|
# Run all tests / 运行所有单元测试
|
|
175
175
|
pnpm run test:all
|
|
176
176
|
```
|
|
177
|
+
|
|
178
|
+
## Examples / 示例工程
|
|
179
|
+
|
|
180
|
+
新增 `example/` 目录用于本地开发调试(实时编辑 schema,验证 React/Vue 渲染与提交结果):
|
|
181
|
+
|
|
182
|
+
- `example/react-demo`:React 渲染与 schema 调试
|
|
183
|
+
- `example/vue-demo`:Vue 渲染与 schema 调试
|
|
184
|
+
- `example/shared/defaultSchema.ts`:共享默认 schema
|
|
185
|
+
|
|
186
|
+
在根目录运行:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# React + Vue 同时启动(推荐)
|
|
190
|
+
pnpm run dev:example
|
|
191
|
+
|
|
192
|
+
# 单独启动 React demo
|
|
193
|
+
pnpm run dev:example:react
|
|
194
|
+
|
|
195
|
+
# 单独启动 Vue demo
|
|
196
|
+
pnpm run dev:example:vue
|
|
197
|
+
|
|
198
|
+
# 构建示例工程
|
|
199
|
+
pnpm run build:example:react
|
|
200
|
+
pnpm run build:example:vue
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
更多说明见 `example/README.md`。
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# examples
|
|
2
|
+
|
|
3
|
+
用于本地调试 schema 与渲染行为的示例工程。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
example/
|
|
9
|
+
├── shared/
|
|
10
|
+
│ └── defaultSchema.ts # React/Vue 共享默认 schema
|
|
11
|
+
├── react-demo/ # Vite + React 示例
|
|
12
|
+
└── vue-demo/ # Vite + Vue 示例
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 启动
|
|
16
|
+
|
|
17
|
+
在仓库根目录执行:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm install
|
|
21
|
+
|
|
22
|
+
# React + Vue 一起启动
|
|
23
|
+
pnpm run dev:example
|
|
24
|
+
|
|
25
|
+
# React demo
|
|
26
|
+
pnpm run dev:example:react
|
|
27
|
+
|
|
28
|
+
# Vue demo
|
|
29
|
+
pnpm run dev:example:vue
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 使用方式
|
|
33
|
+
|
|
34
|
+
- 左侧:可直接编辑 JSON schema(实时解析)
|
|
35
|
+
- 右侧:渲染动态表单并提交,观察 payload
|
|
36
|
+
- 修改 schema 后可立即验证字段渲染和校验逻辑是否正常
|
|
@@ -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
|
+
}
|