@pipe0/react 0.0.5 → 0.0.6
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/CHANGELOG.md +8 -0
- package/README.md +58 -2
- package/dist/components/compound/pipe-catalog/active-filters.d.mts +7 -10
- package/dist/components/compound/pipe-catalog/active-filters.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/active-filters.mjs +22 -18
- package/dist/components/compound/pipe-catalog/active-filters.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/card.d.mts +3 -12
- package/dist/components/compound/pipe-catalog/card.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/card.mjs +28 -25
- package/dist/components/compound/pipe-catalog/card.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/category-filter.d.mts +6 -13
- package/dist/components/compound/pipe-catalog/category-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/category-filter.mjs +12 -13
- package/dist/components/compound/pipe-catalog/category-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/column-filter.d.mts +6 -14
- package/dist/components/compound/pipe-catalog/column-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/column-filter.mjs +9 -9
- package/dist/components/compound/pipe-catalog/column-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/empty.d.mts +5 -10
- package/dist/components/compound/pipe-catalog/empty.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/empty.mjs +12 -14
- package/dist/components/compound/pipe-catalog/empty.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/index.d.mts +1 -1
- package/dist/components/compound/pipe-catalog/input-field-filter.d.mts +3 -3
- package/dist/components/compound/pipe-catalog/input-field-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/input-field-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/list.d.mts +8 -25
- package/dist/components/compound/pipe-catalog/list.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/list.mjs +14 -14
- package/dist/components/compound/pipe-catalog/list.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/output-field-filter.d.mts +3 -3
- package/dist/components/compound/pipe-catalog/output-field-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/output-field-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/provider-filter.d.mts +3 -3
- package/dist/components/compound/pipe-catalog/provider-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/provider-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/root.d.mts +6 -6
- package/dist/components/compound/pipe-catalog/root.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/root.mjs +2 -2
- package/dist/components/compound/pipe-catalog/root.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/search-filter.d.mts +5 -9
- package/dist/components/compound/pipe-catalog/search-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/search-filter.mjs +9 -10
- package/dist/components/compound/pipe-catalog/search-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-catalog/tag-filter.d.mts +3 -3
- package/dist/components/compound/pipe-catalog/tag-filter.d.mts.map +1 -1
- package/dist/components/compound/pipe-catalog/tag-filter.mjs.map +1 -1
- package/dist/components/compound/pipe-form/content.d.mts +6 -3
- package/dist/components/compound/pipe-form/content.d.mts.map +1 -1
- package/dist/components/compound/pipe-form/content.mjs +17 -25
- package/dist/components/compound/pipe-form/content.mjs.map +1 -1
- package/dist/components/compound/pipe-form/errors.d.mts +23 -0
- package/dist/components/compound/pipe-form/errors.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/errors.mjs +40 -0
- package/dist/components/compound/pipe-form/errors.mjs.map +1 -0
- package/dist/components/compound/pipe-form/footer.d.mts +7 -7
- package/dist/components/compound/pipe-form/footer.d.mts.map +1 -1
- package/dist/components/compound/pipe-form/footer.mjs +11 -6
- package/dist/components/compound/pipe-form/footer.mjs.map +1 -1
- package/dist/components/compound/pipe-form/header.d.mts +7 -7
- package/dist/components/compound/pipe-form/header.d.mts.map +1 -1
- package/dist/components/compound/pipe-form/header.mjs +11 -6
- package/dist/components/compound/pipe-form/header.mjs.map +1 -1
- package/dist/components/compound/pipe-form/index.d.mts +2 -1
- package/dist/components/compound/pipe-form/root.d.mts +18 -11
- package/dist/components/compound/pipe-form/root.d.mts.map +1 -1
- package/dist/components/compound/pipe-form/root.mjs +21 -27
- package/dist/components/compound/pipe-form/root.mjs.map +1 -1
- package/dist/components/compound/pipe-form/submit-button.d.mts +15 -4
- package/dist/components/compound/pipe-form/submit-button.d.mts.map +1 -1
- package/dist/components/compound/pipe-form/submit-button.mjs +23 -8
- package/dist/components/compound/pipe-form/submit-button.mjs.map +1 -1
- package/dist/components/compound/pipe-form/title.d.mts +9 -8
- package/dist/components/compound/pipe-form/title.d.mts.map +1 -1
- package/dist/components/compound/pipe-form/title.mjs +11 -6
- package/dist/components/compound/pipe-form/title.mjs.map +1 -1
- package/dist/components/compound/search-catalog/active-filters.d.mts +7 -10
- package/dist/components/compound/search-catalog/active-filters.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/active-filters.mjs +22 -18
- package/dist/components/compound/search-catalog/active-filters.mjs.map +1 -1
- package/dist/components/compound/search-catalog/card.d.mts +4 -13
- package/dist/components/compound/search-catalog/card.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/card.mjs +31 -28
- package/dist/components/compound/search-catalog/card.mjs.map +1 -1
- package/dist/components/compound/search-catalog/category-filter.d.mts +7 -13
- package/dist/components/compound/search-catalog/category-filter.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/category-filter.mjs +12 -13
- package/dist/components/compound/search-catalog/category-filter.mjs.map +1 -1
- package/dist/components/compound/search-catalog/column-filter.d.mts +6 -10
- package/dist/components/compound/search-catalog/column-filter.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/column-filter.mjs +9 -9
- package/dist/components/compound/search-catalog/column-filter.mjs.map +1 -1
- package/dist/components/compound/search-catalog/empty.d.mts +5 -10
- package/dist/components/compound/search-catalog/empty.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/empty.mjs +12 -14
- package/dist/components/compound/search-catalog/empty.mjs.map +1 -1
- package/dist/components/compound/search-catalog/index.d.mts +1 -1
- package/dist/components/compound/search-catalog/list.d.mts +8 -10
- package/dist/components/compound/search-catalog/list.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/list.mjs +14 -14
- package/dist/components/compound/search-catalog/list.mjs.map +1 -1
- package/dist/components/compound/search-catalog/output-field-filter.d.mts +3 -3
- package/dist/components/compound/search-catalog/output-field-filter.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/output-field-filter.mjs.map +1 -1
- package/dist/components/compound/search-catalog/provider-filter.d.mts +3 -3
- package/dist/components/compound/search-catalog/provider-filter.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/provider-filter.mjs.map +1 -1
- package/dist/components/compound/search-catalog/root.d.mts +6 -6
- package/dist/components/compound/search-catalog/root.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/root.mjs +2 -2
- package/dist/components/compound/search-catalog/root.mjs.map +1 -1
- package/dist/components/compound/search-catalog/search-filter.d.mts +5 -9
- package/dist/components/compound/search-catalog/search-filter.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/search-filter.mjs +9 -10
- package/dist/components/compound/search-catalog/search-filter.mjs.map +1 -1
- package/dist/components/compound/search-catalog/tag-filter.d.mts +3 -3
- package/dist/components/compound/search-catalog/tag-filter.d.mts.map +1 -1
- package/dist/components/compound/search-catalog/tag-filter.mjs.map +1 -1
- package/dist/components/compound/search-form/content.d.mts +6 -3
- package/dist/components/compound/search-form/content.d.mts.map +1 -1
- package/dist/components/compound/search-form/content.mjs +17 -25
- package/dist/components/compound/search-form/content.mjs.map +1 -1
- package/dist/components/compound/search-form/errors.d.mts +23 -0
- package/dist/components/compound/search-form/errors.d.mts.map +1 -0
- package/dist/components/compound/search-form/errors.mjs +40 -0
- package/dist/components/compound/search-form/errors.mjs.map +1 -0
- package/dist/components/compound/search-form/footer.d.mts +7 -7
- package/dist/components/compound/search-form/footer.d.mts.map +1 -1
- package/dist/components/compound/search-form/footer.mjs +11 -6
- package/dist/components/compound/search-form/footer.mjs.map +1 -1
- package/dist/components/compound/search-form/header.d.mts +7 -7
- package/dist/components/compound/search-form/header.d.mts.map +1 -1
- package/dist/components/compound/search-form/header.mjs +11 -6
- package/dist/components/compound/search-form/header.mjs.map +1 -1
- package/dist/components/compound/search-form/index.d.mts +2 -1
- package/dist/components/compound/search-form/root.d.mts +19 -12
- package/dist/components/compound/search-form/root.d.mts.map +1 -1
- package/dist/components/compound/search-form/root.mjs +21 -27
- package/dist/components/compound/search-form/root.mjs.map +1 -1
- package/dist/components/compound/search-form/submit-button.d.mts +15 -4
- package/dist/components/compound/search-form/submit-button.d.mts.map +1 -1
- package/dist/components/compound/search-form/submit-button.mjs +23 -8
- package/dist/components/compound/search-form/submit-button.mjs.map +1 -1
- package/dist/components/compound/search-form/title.d.mts +9 -8
- package/dist/components/compound/search-form/title.d.mts.map +1 -1
- package/dist/components/compound/search-form/title.mjs +11 -6
- package/dist/components/compound/search-form/title.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/active-filters.d.mts +7 -10
- package/dist/components/compound/searches-catalog/active-filters.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/active-filters.mjs +22 -18
- package/dist/components/compound/searches-catalog/active-filters.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/card.d.mts +5 -6
- package/dist/components/compound/searches-catalog/card.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/card.mjs +38 -28
- package/dist/components/compound/searches-catalog/card.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/category-filter.d.mts +7 -13
- package/dist/components/compound/searches-catalog/category-filter.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/category-filter.mjs +12 -13
- package/dist/components/compound/searches-catalog/category-filter.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/column-filter.d.mts +6 -10
- package/dist/components/compound/searches-catalog/column-filter.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/column-filter.mjs +9 -9
- package/dist/components/compound/searches-catalog/column-filter.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/empty.d.mts +5 -10
- package/dist/components/compound/searches-catalog/empty.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/empty.mjs +12 -14
- package/dist/components/compound/searches-catalog/empty.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/index.d.mts +1 -1
- package/dist/components/compound/searches-catalog/list.d.mts +8 -10
- package/dist/components/compound/searches-catalog/list.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/list.mjs +14 -14
- package/dist/components/compound/searches-catalog/list.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/output-field-filter.d.mts +3 -3
- package/dist/components/compound/searches-catalog/output-field-filter.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/output-field-filter.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/provider-filter.d.mts +3 -3
- package/dist/components/compound/searches-catalog/provider-filter.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/provider-filter.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/root.d.mts +6 -6
- package/dist/components/compound/searches-catalog/root.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/root.mjs +2 -2
- package/dist/components/compound/searches-catalog/root.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/search-filter.d.mts +5 -9
- package/dist/components/compound/searches-catalog/search-filter.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/search-filter.mjs +9 -10
- package/dist/components/compound/searches-catalog/search-filter.mjs.map +1 -1
- package/dist/components/compound/searches-catalog/tag-filter.d.mts +3 -3
- package/dist/components/compound/searches-catalog/tag-filter.d.mts.map +1 -1
- package/dist/components/compound/searches-catalog/tag-filter.mjs.map +1 -1
- package/dist/components/defaults/adapters/index.mjs +2 -2
- package/dist/components/defaults/adapters/index.mjs.map +1 -1
- package/dist/components/defaults/adapters/json-extraction-input.mjs +291 -199
- package/dist/components/defaults/adapters/json-extraction-input.mjs.map +1 -1
- package/dist/components/defaults/adapters/{pipes-trigger-input.mjs → pipes-run-if-input.mjs} +32 -32
- package/dist/components/defaults/adapters/pipes-run-if-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/providers-input.mjs +221 -13
- package/dist/components/defaults/adapters/providers-input.mjs.map +1 -1
- package/dist/components/defaults/catalog/card-primitives.d.mts +14 -24
- package/dist/components/defaults/catalog/card-primitives.d.mts.map +1 -1
- package/dist/components/defaults/catalog/card-primitives.mjs +19 -19
- package/dist/components/defaults/catalog/card-primitives.mjs.map +1 -1
- package/dist/components/defaults/catalog/layout.mjs +7 -10
- package/dist/components/defaults/catalog/layout.mjs.map +1 -1
- package/dist/components/defaults/layout/field-wrapper.d.mts +2 -2
- package/dist/components/defaults/layout/field-wrapper.d.mts.map +1 -1
- package/dist/components/defaults/layout/field-wrapper.mjs +5 -2
- package/dist/components/defaults/layout/field-wrapper.mjs.map +1 -1
- package/dist/components/defaults/layout/group.d.mts +4 -4
- package/dist/components/defaults/layout/group.d.mts.map +1 -1
- package/dist/components/defaults/layout/group.mjs +69 -54
- package/dist/components/defaults/layout/group.mjs.map +1 -1
- package/dist/components/defaults/layout/section.d.mts +9 -4
- package/dist/components/defaults/layout/section.d.mts.map +1 -1
- package/dist/components/defaults/layout/section.mjs +11 -13
- package/dist/components/defaults/layout/section.mjs.map +1 -1
- package/dist/components/field-renderer.d.mts.map +1 -1
- package/dist/components/field-renderer.mjs +1 -1
- package/dist/components/field-renderer.mjs.map +1 -1
- package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs +30 -15
- package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs.map +1 -1
- package/dist/components/internal/icons.mjs +36 -1
- package/dist/components/internal/icons.mjs.map +1 -1
- package/dist/components/internal/multi-select-popover-trigger.mjs +0 -1
- package/dist/components/internal/multi-select-popover-trigger.mjs.map +1 -1
- package/dist/components/internal/tag-chip-decoration.mjs +15 -0
- package/dist/components/internal/tag-chip-decoration.mjs.map +1 -1
- package/dist/components/ui/badge.mjs +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/components/ui/combobox.mjs +0 -1
- package/dist/components/ui/combobox.mjs.map +1 -1
- package/dist/context/pipe-catalog-card-context.d.mts +7 -0
- package/dist/context/pipe-catalog-card-context.d.mts.map +1 -1
- package/dist/context/pipe-catalog-card-context.mjs.map +1 -1
- package/dist/context/pipe-form-context.d.mts +17 -3
- package/dist/context/pipe-form-context.d.mts.map +1 -1
- package/dist/context/pipe-form-context.mjs.map +1 -1
- package/dist/context/search-catalog-card-context.d.mts +8 -0
- package/dist/context/search-catalog-card-context.d.mts.map +1 -1
- package/dist/context/search-catalog-card-context.mjs.map +1 -1
- package/dist/context/search-form-context.d.mts +17 -3
- package/dist/context/search-form-context.d.mts.map +1 -1
- package/dist/context/search-form-context.mjs.map +1 -1
- package/dist/context/searches-catalog-card-context.d.mts +8 -0
- package/dist/context/searches-catalog-card-context.d.mts.map +1 -1
- package/dist/context/searches-catalog-card-context.mjs.map +1 -1
- package/dist/hooks/use-field-error.d.mts +2 -2
- package/dist/hooks/use-field-error.d.mts.map +1 -1
- package/dist/hooks/use-field-error.mjs +7 -3
- package/dist/hooks/use-field-error.mjs.map +1 -1
- package/dist/hooks/use-form-core.d.mts +0 -3
- package/dist/hooks/use-form-core.d.mts.map +1 -1
- package/dist/hooks/use-form-core.mjs +36 -2
- package/dist/hooks/use-form-core.mjs.map +1 -1
- package/dist/hooks/use-pipe-catalog-table.d.mts +8 -8
- package/dist/hooks/use-pipe-form.d.mts +11 -0
- package/dist/hooks/use-pipe-form.d.mts.map +1 -1
- package/dist/hooks/use-pipe-form.mjs +35 -6
- package/dist/hooks/use-pipe-form.mjs.map +1 -1
- package/dist/hooks/use-search-catalog-table.d.mts +6 -6
- package/dist/hooks/use-search-form.d.mts +11 -0
- package/dist/hooks/use-search-form.d.mts.map +1 -1
- package/dist/hooks/use-search-form.mjs +35 -6
- package/dist/hooks/use-search-form.mjs.map +1 -1
- package/dist/index.d.mts +9 -8
- package/dist/index.mjs +3 -9
- package/dist/styles/pipe0-form.css +4116 -1
- package/dist/types/adapters.d.mts +6 -5
- package/dist/types/adapters.d.mts.map +1 -1
- package/dist/types/catalog-adapters.d.mts +2 -2
- package/dist/types/field-props.d.mts +4 -16
- package/dist/types/field-props.d.mts.map +1 -1
- package/dist/types/form-handle.d.mts +81 -1
- package/dist/types/form-handle.d.mts.map +1 -1
- package/dist/utils/build-section-handlers.mjs +6 -2
- package/dist/utils/build-section-handlers.mjs.map +1 -1
- package/dist/utils/internal-form.mjs +28 -0
- package/dist/utils/internal-form.mjs.map +1 -0
- package/dist/widgets/avatar-group.d.mts +4 -7
- package/dist/widgets/avatar-group.d.mts.map +1 -1
- package/dist/widgets/avatar-group.mjs +13 -12
- package/dist/widgets/avatar-group.mjs.map +1 -1
- package/package.json +70 -18
- package/dist/components/compound/pipe-catalog/index.mjs +0 -15
- package/dist/components/compound/pipe-form/index.mjs +0 -11
- package/dist/components/compound/search-catalog/index.mjs +0 -14
- package/dist/components/compound/search-form/index.mjs +0 -11
- package/dist/components/compound/searches-catalog/index.mjs +0 -14
- package/dist/components/defaults/adapters/pipes-trigger-input.mjs.map +0 -1
- package/dist/components/defaults/layout/submit-button.d.mts +0 -9
- package/dist/components/defaults/layout/submit-button.d.mts.map +0 -1
- package/dist/components/defaults/layout/submit-button.mjs +0 -23
- package/dist/components/defaults/layout/submit-button.mjs.map +0 -1
- package/dist/components/defaults/toggle-advanced-button.mjs +0 -29
- package/dist/components/defaults/toggle-advanced-button.mjs.map +0 -1
- package/dist/components/ui/input-group.mjs +0 -30
- package/dist/components/ui/input-group.mjs.map +0 -1
- package/dist/context/form-customization-context.d.mts +0 -71
- package/dist/context/form-customization-context.d.mts.map +0 -1
- package/dist/context/form-customization-context.mjs +0 -114
- package/dist/context/form-customization-context.mjs.map +0 -1
- package/dist/hooks/use-disclosure.mjs +0 -35
- package/dist/hooks/use-disclosure.mjs.map +0 -1
- package/dist/utils/render-slot.d.mts +0 -44
- package/dist/utils/render-slot.d.mts.map +0 -1
- package/dist/utils/render-slot.mjs +0 -30
- package/dist/utils/render-slot.mjs.map +0 -1
- package/dist/widgets/index.mjs +0 -11
package/package.json
CHANGED
|
@@ -1,7 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pipe0/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
|
+
"description": "React component library for building forms and catalogs powered by pipe0 pipes and searches.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "pipe0",
|
|
4
7
|
"type": "module",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/pipe-0/pipe0-ts.git",
|
|
11
|
+
"directory": "packages/react"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/pipe-0/pipe0-ts/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"react",
|
|
18
|
+
"react-component",
|
|
19
|
+
"pipe0",
|
|
20
|
+
"forms",
|
|
21
|
+
"catalog",
|
|
22
|
+
"ui",
|
|
23
|
+
"data-enrichment",
|
|
24
|
+
"prospecting"
|
|
25
|
+
],
|
|
26
|
+
"sideEffects": [
|
|
27
|
+
"**/*.css"
|
|
28
|
+
],
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18.0.0"
|
|
31
|
+
},
|
|
5
32
|
"publishConfig": {
|
|
6
33
|
"provenance": false,
|
|
7
34
|
"access": "public"
|
|
@@ -21,52 +48,77 @@
|
|
|
21
48
|
"CHANGELOG.md"
|
|
22
49
|
],
|
|
23
50
|
"peerDependencies": {
|
|
51
|
+
"@dnd-kit/core": "^6.0.0",
|
|
52
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
53
|
+
"@dnd-kit/utilities": "^3.0.0",
|
|
54
|
+
"@floating-ui/react": "^0.26.0 || ^0.27.0",
|
|
55
|
+
"@hookform/resolvers": "^5.0.0",
|
|
56
|
+
"@tanstack/react-table": "^8.0.0",
|
|
57
|
+
"@tiptap/pm": "^2.12.0 || ^3.0.0",
|
|
58
|
+
"@tiptap/react": "^2.12.0 || ^3.0.0",
|
|
59
|
+
"@tiptap/starter-kit": "^2.12.0 || ^3.0.0",
|
|
60
|
+
"@tiptap/suggestion": "^2.12.0 || ^3.0.0",
|
|
61
|
+
"@types/react": "^18.0.0 || ^19.0.0",
|
|
62
|
+
"@types/react-dom": "^18.0.0 || ^19.0.0",
|
|
24
63
|
"react": "^18.0.0 || ^19.0.0",
|
|
25
|
-
"react-dom": "^18.0.0 || ^19.0.0"
|
|
64
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
65
|
+
"react-hook-form": "^7.0.0",
|
|
66
|
+
"zod": "^4.0.0"
|
|
67
|
+
},
|
|
68
|
+
"peerDependenciesMeta": {
|
|
69
|
+
"@hookform/resolvers": {
|
|
70
|
+
"optional": true
|
|
71
|
+
},
|
|
72
|
+
"@types/react": {
|
|
73
|
+
"optional": true
|
|
74
|
+
},
|
|
75
|
+
"@types/react-dom": {
|
|
76
|
+
"optional": true
|
|
77
|
+
}
|
|
26
78
|
},
|
|
27
79
|
"dependencies": {
|
|
28
80
|
"@base-ui/react": "^1.3.0",
|
|
29
|
-
"@dnd-kit/core": "^6.3.1",
|
|
30
|
-
"@dnd-kit/sortable": "^10.0.0",
|
|
31
|
-
"@dnd-kit/utilities": "^3.2.2",
|
|
32
|
-
"@floating-ui/react": "^0.26.0",
|
|
33
|
-
"@hookform/resolvers": "^5.2.1",
|
|
34
81
|
"@radix-ui/react-slot": "^1.2.2",
|
|
35
82
|
"@tanstack/match-sorter-utils": "^8.19.4",
|
|
36
|
-
"@tanstack/react-table": "^8.21.3",
|
|
37
|
-
"@tiptap/pm": "^2.12.0",
|
|
38
|
-
"@tiptap/react": "^2.12.0",
|
|
39
|
-
"@tiptap/starter-kit": "^2.12.0",
|
|
40
|
-
"@tiptap/suggestion": "^2.12.0",
|
|
41
83
|
"class-variance-authority": "^0.7.1",
|
|
42
84
|
"clsx": "^2.1.1",
|
|
43
85
|
"cmdk": "^1.1.1",
|
|
44
86
|
"jsonata": "^2.1.0",
|
|
45
87
|
"lucide-react": "^0.475.0",
|
|
46
|
-
"react-hook-form": "^7.62.0",
|
|
47
|
-
"shadcn": "^4.2.0",
|
|
48
88
|
"swr": "^2.4.1",
|
|
49
89
|
"tailwind-merge": "^3.3.1",
|
|
50
|
-
"
|
|
51
|
-
"zod": "4.1.12",
|
|
52
|
-
"@pipe0/base": "0.0.5"
|
|
90
|
+
"@pipe0/base": "0.0.6"
|
|
53
91
|
},
|
|
54
92
|
"devDependencies": {
|
|
93
|
+
"@dnd-kit/core": "^6.3.1",
|
|
94
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
95
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
96
|
+
"@floating-ui/react": "^0.26.0",
|
|
97
|
+
"@hookform/resolvers": "^5.2.1",
|
|
55
98
|
"@storybook/addon-docs": "^10.3.5",
|
|
56
99
|
"@storybook/react-vite": "^10.3.5",
|
|
57
100
|
"@tailwindcss/cli": "^4.2.3",
|
|
58
101
|
"@tailwindcss/vite": "^4.1.11",
|
|
102
|
+
"@tanstack/react-table": "^8.21.3",
|
|
103
|
+
"@tiptap/pm": "^2.12.0",
|
|
104
|
+
"@tiptap/react": "^2.12.0",
|
|
105
|
+
"@tiptap/starter-kit": "^2.12.0",
|
|
106
|
+
"@tiptap/suggestion": "^2.12.0",
|
|
59
107
|
"@types/react": "^19.0.8",
|
|
60
108
|
"@types/react-dom": "^19.0.3",
|
|
61
109
|
"@vitejs/plugin-react": "^6.0.1",
|
|
62
110
|
"react": "^19.0.0",
|
|
63
111
|
"react-dom": "^19.0.0",
|
|
112
|
+
"react-hook-form": "^7.62.0",
|
|
113
|
+
"shadcn": "^4.2.0",
|
|
64
114
|
"storybook": "^10.3.5",
|
|
65
115
|
"tailwindcss": "^4.1.11",
|
|
66
116
|
"tailwindcss-animate": "^1.0.7",
|
|
67
117
|
"tsdown": "^0.21.9",
|
|
118
|
+
"tw-animate-css": "^1.4.0",
|
|
68
119
|
"typescript": "^5.9.3",
|
|
69
|
-
"vite": "^8.0.10"
|
|
120
|
+
"vite": "^8.0.10",
|
|
121
|
+
"zod": "4.1.12"
|
|
70
122
|
},
|
|
71
123
|
"scripts": {
|
|
72
124
|
"dev:css": "tailwindcss -i src/styles/pipe0.css -o dist/styles/pipe0-form.css --watch",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { PipeCatalogActiveFilters } from "./active-filters.mjs";
|
|
2
|
-
import { PipeCatalogCard } from "./card.mjs";
|
|
3
|
-
import { PipeCatalogCategoryFilter } from "./category-filter.mjs";
|
|
4
|
-
import { PipeCatalogColumnFilter } from "./column-filter.mjs";
|
|
5
|
-
import { PipeCatalogInputFieldFilter } from "./input-field-filter.mjs";
|
|
6
|
-
import { PipeCatalogOutputFieldFilter } from "./output-field-filter.mjs";
|
|
7
|
-
import { PipeCatalogProviderFilter } from "./provider-filter.mjs";
|
|
8
|
-
import { PipeCatalogColumnFilters } from "./column-filters.mjs";
|
|
9
|
-
import { PipeCatalogEmpty } from "./empty.mjs";
|
|
10
|
-
import { PipeCatalogList } from "./list.mjs";
|
|
11
|
-
import { PipeCatalogSearchFilter } from "./search-filter.mjs";
|
|
12
|
-
import { PipeCatalog } from "./root.mjs";
|
|
13
|
-
import { PipeCatalogTagFilter } from "./tag-filter.mjs";
|
|
14
|
-
|
|
15
|
-
export { };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { PipeFormField } from "./field.mjs";
|
|
2
|
-
import { PipeFormGroup } from "./group.mjs";
|
|
3
|
-
import { PipeFormSection } from "./section.mjs";
|
|
4
|
-
import { PipeFormContent } from "./content.mjs";
|
|
5
|
-
import { PipeFormFooter } from "./footer.mjs";
|
|
6
|
-
import { PipeFormHeader } from "./header.mjs";
|
|
7
|
-
import { PipeFormSubmitButton } from "./submit-button.mjs";
|
|
8
|
-
import { PipeForm } from "./root.mjs";
|
|
9
|
-
import { PipeFormTitle } from "./title.mjs";
|
|
10
|
-
|
|
11
|
-
export { };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { SearchCatalogActiveFilters } from "./active-filters.mjs";
|
|
2
|
-
import { SearchCatalogCard } from "./card.mjs";
|
|
3
|
-
import { SearchCatalogCategoryFilter } from "./category-filter.mjs";
|
|
4
|
-
import { SearchCatalogColumnFilter } from "./column-filter.mjs";
|
|
5
|
-
import { SearchCatalogOutputFieldFilter } from "./output-field-filter.mjs";
|
|
6
|
-
import { SearchCatalogProviderFilter } from "./provider-filter.mjs";
|
|
7
|
-
import { SearchCatalogColumnFilters } from "./column-filters.mjs";
|
|
8
|
-
import { SearchCatalogEmpty } from "./empty.mjs";
|
|
9
|
-
import { SearchCatalogList } from "./list.mjs";
|
|
10
|
-
import { SearchCatalogSearchFilter } from "./search-filter.mjs";
|
|
11
|
-
import { SearchCatalog } from "./root.mjs";
|
|
12
|
-
import { SearchCatalogTagFilter } from "./tag-filter.mjs";
|
|
13
|
-
|
|
14
|
-
export { };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SearchFormField } from "./field.mjs";
|
|
2
|
-
import { SearchFormGroup } from "./group.mjs";
|
|
3
|
-
import { SearchFormSection } from "./section.mjs";
|
|
4
|
-
import { SearchFormContent } from "./content.mjs";
|
|
5
|
-
import { SearchFormFooter } from "./footer.mjs";
|
|
6
|
-
import { SearchFormHeader } from "./header.mjs";
|
|
7
|
-
import { SearchFormSubmitButton } from "./submit-button.mjs";
|
|
8
|
-
import { SearchForm } from "./root.mjs";
|
|
9
|
-
import { SearchFormTitle } from "./title.mjs";
|
|
10
|
-
|
|
11
|
-
export { };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { SearchesCatalogActiveFilters } from "./active-filters.mjs";
|
|
2
|
-
import { SearchesCatalogCard } from "./card.mjs";
|
|
3
|
-
import { SearchesCatalogCategoryFilter } from "./category-filter.mjs";
|
|
4
|
-
import { SearchesCatalogColumnFilter } from "./column-filter.mjs";
|
|
5
|
-
import { SearchesCatalogOutputFieldFilter } from "./output-field-filter.mjs";
|
|
6
|
-
import { SearchesCatalogProviderFilter } from "./provider-filter.mjs";
|
|
7
|
-
import { SearchesCatalogColumnFilters } from "./column-filters.mjs";
|
|
8
|
-
import { SearchesCatalogEmpty } from "./empty.mjs";
|
|
9
|
-
import { SearchesCatalogList } from "./list.mjs";
|
|
10
|
-
import { SearchesCatalogSearchFilter } from "./search-filter.mjs";
|
|
11
|
-
import { SearchesCatalog } from "./root.mjs";
|
|
12
|
-
import { SearchesCatalogTagFilter } from "./tag-filter.mjs";
|
|
13
|
-
|
|
14
|
-
export { };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipes-trigger-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/pipes-trigger-input.tsx"],"sourcesContent":["import {\n type ConditionOperators,\n type PipesTriggerMeta,\n type PipeTrigger,\n type RecordFieldType,\n TRIGGER_OPERATOR_LABELS,\n TRIGGER_STATUS_OPERATORS,\n TRIGGER_VALUE_OPERATORS,\n} from \"@pipe0/base\";\nimport { useCallback, useMemo } from \"react\";\nimport type { UseFormReturn } from \"react-hook-form\";\nimport { useFieldError } from \"../../../hooks/use-field-error.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { HoverInfo } from \"../../hover-info.js\";\nimport { IconPlus } from \"../../internal/icons.js\";\nimport { Badge } from \"../../ui/badge.js\";\nimport { Button } from \"../../ui/button.js\";\nimport { Input } from \"../../ui/input.js\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../ui/select.js\";\nimport { FieldSectionEnumeration } from \"../field-section-enumeration.js\";\n\n// Use a loose type for internal manipulation since the discriminated union\n// is strict about property/operator/value combinations.\ntype Condition = {\n field_name: string;\n property: string;\n operator: string;\n value: unknown;\n};\n\nconst OPERATORS_BY_TYPE: Record<RecordFieldType, ConditionOperators[]> = {\n string: [\"eq\", \"neq\", \"contains\"],\n number: [\"eq\", \"neq\", \"gt\", \"gte\", \"lt\", \"lte\"],\n boolean: [\"eq\", \"neq\"],\n json: [],\n unknown: [],\n};\n\nconst EMPTY_CONDITION: Condition = {\n field_name: \"\",\n property: \"value\",\n operator: \"eq\",\n value: \"\",\n};\n\nconst CONNECTOR_GAP = 32;\n\ntype MetaField = {\n fieldName: string;\n fieldLabel: string;\n type: RecordFieldType;\n format: string | null;\n};\n\nfunction ConditionRow({\n condition,\n index,\n eligibleFields,\n fieldsByName,\n isFirst,\n isLast,\n logic,\n form,\n basePath,\n onUpdate,\n onRemove,\n onAddCondition,\n onLogicChange,\n}: {\n condition: Condition;\n index: number;\n eligibleFields: MetaField[];\n fieldsByName: ReadonlyMap<string, MetaField>;\n isFirst: boolean;\n isLast: boolean;\n logic: PipeTrigger[\"when\"][\"logic\"];\n form: UseFormReturn<any>;\n basePath: string;\n onUpdate: (index: number, condition: Condition) => void;\n onRemove: (index: number) => void;\n onAddCondition: () => void;\n onLogicChange: (logic: PipeTrigger[\"when\"][\"logic\"]) => void;\n}) {\n const conditionPath = `${basePath}.when.conditions.${index}`;\n const valueError = useFieldError(form, `${conditionPath}.value`);\n const fieldNameError = useFieldError(form, `${conditionPath}.field_name`);\n const operatorError = useFieldError(form, `${conditionPath}.operator`);\n const propertyError = useFieldError(form, `${conditionPath}.property`);\n\n const showConnector = !(isFirst && isLast);\n const hasEligibleFields = eligibleFields.length > 0;\n const selectedField = condition.field_name ? fieldsByName.get(condition.field_name) : undefined;\n\n const availableOperators = useMemo(() => {\n if (condition.property === \"status\") {\n return TRIGGER_STATUS_OPERATORS.map((op) => ({\n value: op,\n label: TRIGGER_OPERATOR_LABELS[op],\n }));\n }\n if (!selectedField?.type) return [];\n return TRIGGER_VALUE_OPERATORS.map((op) => ({\n value: op,\n label: TRIGGER_OPERATOR_LABELS[op],\n })).filter((op) => OPERATORS_BY_TYPE[selectedField.type].includes(op.value));\n }, [condition.property, selectedField]);\n\n const renderValueInput = () => {\n if (!condition.field_name || !selectedField) {\n return <Input className=\"pz:w-32\" placeholder=\"\" disabled aria-invalid={!!valueError} />;\n }\n\n if (condition.property === \"status\") {\n return (\n <Select\n value={String(condition.value) || undefined}\n onValueChange={(v) => onUpdate(index, { ...condition, value: v })}\n >\n <SelectTrigger className=\"pz:w-32\" aria-invalid={!!valueError}>\n <SelectValue placeholder=\"--status--\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"completed\">completed</SelectItem>\n <SelectItem value=\"skipped\">skipped</SelectItem>\n <SelectItem value=\"failed\">failed</SelectItem>\n <SelectItem value=\"no_result\">no_result</SelectItem>\n </SelectContent>\n </Select>\n );\n }\n\n if (selectedField.type === \"boolean\") {\n return (\n <Select\n value={String(condition.value)}\n onValueChange={(v) => onUpdate(index, { ...condition, value: v })}\n >\n <SelectTrigger className=\"pz:w-24\" aria-invalid={!!valueError}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"true\">true</SelectItem>\n <SelectItem value=\"false\">false</SelectItem>\n </SelectContent>\n </Select>\n );\n }\n\n if (selectedField.type === \"number\") {\n return (\n <Input\n type=\"number\"\n className=\"pz:w-32\"\n aria-invalid={!!valueError}\n value={String(Number(condition.value ?? 0))}\n onChange={(e) =>\n onUpdate(index, {\n ...condition,\n value: Number(e.target.value) || 0,\n })\n }\n placeholder=\"\"\n />\n );\n }\n\n return (\n <Input\n className=\"pz:w-32\"\n aria-invalid={!!valueError}\n value={String(condition.value ?? \"\")}\n onChange={(e) => onUpdate(index, { ...condition, value: e.target.value })}\n placeholder=\"\"\n />\n );\n };\n\n const errorMessage = valueError || fieldNameError || operatorError || propertyError;\n\n return (\n <div>\n <div className={cn(\"pz:relative\", showConnector && \"pz:pl-17\")}>\n {showConnector && (\n <>\n {isFirst ? (\n <div\n className=\"pz:absolute pz:left-7 pz:w-10 pz:border-l-2 pz:border-t-2 pz:border-input pz:rounded-tl-lg pz:pointer-events-none\"\n style={{ top: \"50%\", bottom: -CONNECTOR_GAP }}\n />\n ) : (\n <div\n className=\"pz:absolute pz:left-7 pz:w-10 pz:border-l-2 pz:border-b-2 pz:border-input pz:rounded-bl-lg pz:pointer-events-none\"\n style={{ top: -CONNECTOR_GAP, bottom: \"50%\" }}\n />\n )}\n {!isFirst && !isLast && (\n <div\n className=\"pz:absolute pz:left-7 pz:border-l-2 pz:border-input pz:pointer-events-none\"\n style={{ top: \"50%\", bottom: -CONNECTOR_GAP }}\n />\n )}\n {!isFirst && (\n <div\n className=\"pz:absolute pz:left-7 pz:z-10\"\n style={{\n top: -CONNECTOR_GAP / 2,\n transform: \"translate(-50%, -50%)\",\n }}\n >\n <Select value={logic} onValueChange={(v) => onLogicChange(v as \"and\" | \"or\")}>\n <SelectTrigger className=\"pz:w-17 pz:h-6 pz:text-xs pz:bg-background pz:hover:bg-accent\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectItem value=\"and\">AND</SelectItem>\n <SelectItem value=\"or\">OR</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n )}\n </>\n )}\n <div className=\"pz:flex pz:flex-wrap pz:items-center pz:gap-2\">\n <FieldSectionEnumeration index={index} onRemove={onRemove} />\n <Select\n value={condition.field_name || undefined}\n disabled={!hasEligibleFields}\n onValueChange={(v) => {\n if (v === null) return;\n onUpdate(index, {\n ...condition,\n field_name: v,\n operator: \"eq\",\n value: \"\",\n });\n }}\n >\n <SelectTrigger className=\"pz:w-40\" aria-invalid={!!fieldNameError}>\n <SelectValue placeholder=\"Select field\" />\n </SelectTrigger>\n <SelectContent>\n {eligibleFields.map((f) => (\n <SelectItem key={f.fieldName} value={f.fieldName}>\n {f.fieldLabel || f.fieldName}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {!hasEligibleFields && (\n <span className=\"pz:text-xs pz:text-muted-foreground\">\n No fields available{\" \"}\n <HoverInfo>Conditions require plain fields. JSON fields are not allowed.</HoverInfo>\n </span>\n )}\n\n {selectedField?.type && (\n <>\n <Badge\n variant=\"secondary\"\n className=\"pz:bg-accent pz:border pz:border-input pz:font-normal pz:text-muted-foreground pz:h-8\"\n >\n 's\n </Badge>\n <Select\n defaultValue=\"value\"\n value={condition.property}\n onValueChange={(v) => {\n if (v === null) return;\n onUpdate(index, {\n ...condition,\n property: v,\n operator: \"eq\",\n value: \"\",\n });\n }}\n >\n <SelectTrigger className=\"pz:w-28\" aria-invalid={!!propertyError}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"value\">value</SelectItem>\n <SelectItem value=\"status\">status</SelectItem>\n </SelectContent>\n </Select>\n\n <Select\n value={condition.operator}\n onValueChange={(v) =>\n onUpdate(index, {\n ...condition,\n operator: v as ConditionOperators,\n })\n }\n >\n <SelectTrigger className=\"pz:w-28\" aria-invalid={!!operatorError}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {availableOperators.map((op) => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n {renderValueInput()}\n </>\n )}\n </div>\n {errorMessage && (\n <span\n className=\"pz:text-destructive pz:text-xs pz:font-medium pz:mt-1 pz:block\"\n role=\"alert\"\n >\n {errorMessage}\n </span>\n )}\n </div>\n {isLast && (\n <div className=\"pz:flex pz:items-center pz:gap-2\">\n <Button type=\"button\" variant=\"link\" size=\"xs\" onClick={onAddCondition}>\n <IconPlus />\n New rule\n </Button>\n </div>\n )}\n </div>\n );\n}\n\nexport function PipesTriggerInputAdapter(field: FieldHandle<\"pipes_trigger_input\">) {\n const pipeTrigger = field.value as PipeTrigger | null;\n const meta = field.meta as PipesTriggerMeta;\n\n // Built once per render of the adapter and reused across every condition\n // row, instead of each row scanning `meta.fields` linearly. With N rows and\n // M fields this turns O(N·M) lookups into O(N+M).\n const eligibleFields = useMemo(\n () => meta.fields.filter((f) => OPERATORS_BY_TYPE[f.type].length > 0),\n [meta.fields],\n );\n const fieldsByName = useMemo(\n () => new Map(meta.fields.map((f) => [f.fieldName, f])),\n [meta.fields],\n );\n\n const addTrigger = useCallback(() => {\n field.setValue({\n action: \"run\",\n when: {\n logic: \"and\",\n conditions: [{ ...EMPTY_CONDITION }],\n },\n });\n }, [field]);\n\n const updateCondition = (index: number, condition: Condition) => {\n if (!pipeTrigger) return;\n const newConditions = [...pipeTrigger.when.conditions] as Condition[];\n newConditions[index] = condition;\n field.setValue({\n ...pipeTrigger,\n when: { ...pipeTrigger.when, conditions: newConditions },\n });\n };\n\n const removeCondition = (index: number) => {\n if (!pipeTrigger) return;\n if (pipeTrigger.when.conditions.length <= 1) {\n field.setValue(null);\n return;\n }\n const newConditions = pipeTrigger.when.conditions.filter((_, i) => i !== index);\n field.setValue({\n ...pipeTrigger,\n when: { ...pipeTrigger.when, conditions: newConditions },\n });\n };\n\n const addCondition = () => {\n if (!pipeTrigger) return;\n field.setValue({\n ...pipeTrigger,\n when: {\n ...pipeTrigger.when,\n conditions: [...pipeTrigger.when.conditions, { ...EMPTY_CONDITION }],\n },\n });\n };\n\n const changeLogic = (logic: \"and\" | \"or\") => {\n if (!pipeTrigger) return;\n field.setValue({\n ...pipeTrigger,\n when: { ...pipeTrigger.when, logic },\n });\n };\n\n return (\n <div data-p0=\"input\">\n {!pipeTrigger ? (\n <div className=\"pz:flex pz:items-center\">\n <Button type=\"button\" variant=\"link\" size=\"xs\" className=\"pz:px-0\" onClick={addTrigger}>\n <IconPlus />\n New rule\n </Button>\n </div>\n ) : (\n <div className=\"pz:flex pz:flex-col pz:gap-8\">\n {pipeTrigger.when.conditions.map((condition, idx) => (\n <ConditionRow\n key={idx}\n condition={condition}\n index={idx}\n eligibleFields={eligibleFields}\n fieldsByName={fieldsByName}\n isFirst={idx === 0}\n isLast={idx === pipeTrigger.when.conditions.length - 1}\n logic={pipeTrigger.when.logic}\n form={field.form}\n basePath={field.path}\n onUpdate={updateCondition}\n onRemove={removeCondition}\n onAddCondition={addCondition}\n onLogicChange={changeLogic}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
-
|
|
3
|
-
//#region src/components/defaults/layout/submit-button.d.ts
|
|
4
|
-
interface DefaultSubmitButtonProps extends useRender.ComponentProps<"button"> {
|
|
5
|
-
isSubmitting: boolean;
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { DefaultSubmitButtonProps };
|
|
9
|
-
//# sourceMappingURL=submit-button.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"submit-button.d.mts","names":[],"sources":["../../../../src/components/defaults/layout/submit-button.tsx"],"mappings":";;;UAKiB,wBAAA,SAAiC,SAAA,CAAU,cAAA;EAC1D,YAAA;AAAA"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
-
import { buttonVariants } from "../../ui/button.mjs";
|
|
3
|
-
import { mergeProps } from "@base-ui/react/merge-props";
|
|
4
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
5
|
-
|
|
6
|
-
//#region src/components/defaults/layout/submit-button.tsx
|
|
7
|
-
function DefaultSubmitButton({ isSubmitting, className, children, render, ...props }) {
|
|
8
|
-
return useRender({
|
|
9
|
-
defaultTagName: "button",
|
|
10
|
-
render,
|
|
11
|
-
props: mergeProps({
|
|
12
|
-
type: "submit",
|
|
13
|
-
disabled: isSubmitting,
|
|
14
|
-
className: cn(buttonVariants({}), "pz:mt-4", className),
|
|
15
|
-
children: children ?? (isSubmitting ? "Submitting..." : "Submit"),
|
|
16
|
-
"data-p0": "submit"
|
|
17
|
-
}, props)
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { DefaultSubmitButton };
|
|
23
|
-
//# sourceMappingURL=submit-button.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"submit-button.mjs","names":[],"sources":["../../../../src/components/defaults/layout/submit-button.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"../../../lib/utils.js\";\nimport { buttonVariants } from \"../../ui/button.js\";\n\nexport interface DefaultSubmitButtonProps extends useRender.ComponentProps<\"button\"> {\n isSubmitting: boolean;\n}\n\nexport function DefaultSubmitButton({\n isSubmitting,\n className,\n children,\n render,\n ...props\n}: DefaultSubmitButtonProps) {\n return useRender({\n defaultTagName: \"button\",\n render,\n props: mergeProps<\"button\">(\n {\n type: \"submit\",\n disabled: isSubmitting,\n className: cn(buttonVariants({}), \"pz:mt-4\", className),\n children: children ?? (isSubmitting ? \"Submitting...\" : \"Submit\"),\n ...({ \"data-p0\": \"submit\" } as Record<string, string>),\n },\n props,\n ),\n });\n}\n"],"mappings":";;;;;;AASA,SAAgB,oBAAoB,EAClC,cACA,WACA,UACA,QACA,GAAG,SACwB;AAC3B,QAAO,UAAU;EACf,gBAAgB;EAChB;EACA,OAAO,WACL;GACE,MAAM;GACN,UAAU;GACV,WAAW,GAAG,eAAe,EAAE,CAAC,EAAE,WAAW,UAAU;GACvD,UAAU,aAAa,eAAe,kBAAkB;GAClD,WAAW;GAClB,EACD,MACD;EACF,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { cn } from "../../lib/utils.mjs";
|
|
2
|
-
import { Button } from "../ui/button.mjs";
|
|
3
|
-
import { IconChevronDown } from "../internal/icons.mjs";
|
|
4
|
-
import { useDisclosure } from "../../hooks/use-disclosure.mjs";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/components/defaults/toggle-advanced-button.tsx
|
|
8
|
-
function ToggleAdvancedButton({ className, children, onClick, ...rest }) {
|
|
9
|
-
const { open, onOpenChange } = useDisclosure();
|
|
10
|
-
return /* @__PURE__ */ jsxs(Button, {
|
|
11
|
-
type: "button",
|
|
12
|
-
variant: "link",
|
|
13
|
-
size: "xs",
|
|
14
|
-
onClick: (e) => {
|
|
15
|
-
onClick?.(e);
|
|
16
|
-
onOpenChange(!open);
|
|
17
|
-
},
|
|
18
|
-
className: cn(className),
|
|
19
|
-
...rest,
|
|
20
|
-
children: [children, /* @__PURE__ */ jsx(IconChevronDown, { style: {
|
|
21
|
-
transform: open ? "rotate(180deg)" : "rotate(0deg)",
|
|
22
|
-
transition: "transform 0.2s ease"
|
|
23
|
-
} })]
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
//#endregion
|
|
28
|
-
export { ToggleAdvancedButton };
|
|
29
|
-
//# sourceMappingURL=toggle-advanced-button.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-advanced-button.mjs","names":[],"sources":["../../../src/components/defaults/toggle-advanced-button.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { useDisclosure } from \"../../hooks/use-disclosure\";\nimport { cn } from \"../../lib/utils\";\nimport { IconChevronDown } from \"../internal/icons\";\nimport { Button } from \"../ui/button\";\n\ninterface ToggleAdvancedButtonProps extends ComponentProps<typeof Button> {}\n\nexport function ToggleAdvancedButton({\n className,\n children,\n onClick,\n ...rest\n}: ToggleAdvancedButtonProps) {\n const { open, onOpenChange } = useDisclosure();\n\n return (\n <Button\n type=\"button\"\n variant=\"link\"\n size=\"xs\"\n onClick={(e) => {\n onClick?.(e);\n onOpenChange(!open);\n }}\n className={cn(className)}\n {...rest}\n >\n {children}\n <IconChevronDown\n style={{\n transform: open ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </Button>\n );\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,qBAAqB,EACnC,WACA,UACA,SACA,GAAG,QACyB;CAC5B,MAAM,EAAE,MAAM,iBAAiB,eAAe;AAE9C,QACE,qBAAC,QAAD;EACE,MAAK;EACL,SAAQ;EACR,MAAK;EACL,UAAU,MAAM;AACd,aAAU,EAAE;AACZ,gBAAa,CAAC,KAAK;;EAErB,WAAW,GAAG,UAAU;EACxB,GAAI;YATN,CAWG,UACD,oBAAC,iBAAD,EACE,OAAO;GACL,WAAW,OAAO,mBAAmB;GACrC,YAAY;GACb,EACD,EACK"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import "../../lib/utils.mjs";
|
|
2
|
-
import "./button.mjs";
|
|
3
|
-
import "./input.mjs";
|
|
4
|
-
import "./textarea.mjs";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
import { cva } from "class-variance-authority";
|
|
7
|
-
|
|
8
|
-
//#region src/components/ui/input-group.tsx
|
|
9
|
-
const inputGroupAddonVariants = cva("pz:flex pz:h-auto pz:cursor-text pz:items-center pz:justify-center pz:gap-2 pz:py-1.5 pz:text-sm pz:font-medium pz:text-muted-foreground pz:select-none pz:group-data-[disabled=true]/input-group:opacity-50 pz:[&>kbd]:rounded-[calc(var(--p0-radius)-5px)] pz:[&>svg:not([class*=size-])]:size-4", {
|
|
10
|
-
variants: { align: {
|
|
11
|
-
"inline-start": "pz:order-first pz:pl-2 pz:has-[>button]:ml-[-0.3rem] pz:has-[>kbd]:ml-[-0.15rem]",
|
|
12
|
-
"inline-end": "pz:order-last pz:pr-2 pz:has-[>button]:mr-[-0.3rem] pz:has-[>kbd]:mr-[-0.15rem]",
|
|
13
|
-
"block-start": "pz:order-first pz:w-full pz:justify-start pz:px-2.5 pz:pt-2 pz:group-has-[>input]/input-group:pt-2 pz:[.border-b]:pb-2",
|
|
14
|
-
"block-end": "pz:order-last pz:w-full pz:justify-start pz:px-2.5 pz:pb-2 pz:group-has-[>input]/input-group:pb-2 pz:[.border-t]:pt-2"
|
|
15
|
-
} },
|
|
16
|
-
defaultVariants: { align: "inline-start" }
|
|
17
|
-
});
|
|
18
|
-
const inputGroupButtonVariants = cva("pz:flex pz:items-center pz:gap-2 pz:text-sm pz:shadow-none", {
|
|
19
|
-
variants: { size: {
|
|
20
|
-
xs: "pz:h-6 pz:gap-1 pz:rounded-[calc(var(--p0-radius)-3px)] pz:px-1.5 pz:[&>svg:not([class*=size-])]:size-3.5",
|
|
21
|
-
sm: "pz:",
|
|
22
|
-
"icon-xs": "pz:size-6 pz:rounded-[calc(var(--p0-radius)-3px)] pz:p-0 pz:has-[>svg]:p-0",
|
|
23
|
-
"icon-sm": "pz:size-8 pz:p-0 pz:has-[>svg]:p-0"
|
|
24
|
-
} },
|
|
25
|
-
defaultVariants: { size: "xs" }
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
//#endregion
|
|
29
|
-
export { };
|
|
30
|
-
//# sourceMappingURL=input-group.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-group.mjs","names":[],"sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"pz:group/input-group pz:relative pz:flex pz:h-8 pz:w-full pz:min-w-0 pz:items-center pz:rounded-lg pz:border pz:border-input pz:transition-colors pz:outline-none pz:in-data-[slot=combobox-content]:focus-within:border-inherit pz:in-data-[slot=combobox-content]:focus-within:ring-0 pz:has-disabled:bg-input/50 pz:has-disabled:opacity-50 pz:has-[[data-slot=input-group-control]:focus-visible]:border-ring pz:has-[[data-slot=input-group-control]:focus-visible]:ring-3 pz:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 pz:has-[[data-slot][aria-invalid=true]]:border-destructive pz:has-[[data-slot][aria-invalid=true]]:ring-3 pz:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 pz:has-[>[data-align=block-end]]:h-auto pz:has-[>[data-align=block-end]]:flex-col pz:has-[>[data-align=block-start]]:h-auto pz:has-[>[data-align=block-start]]:flex-col pz:has-[>textarea]:h-auto pz:dark:bg-input/30 pz:dark:has-disabled:bg-input/80 pz:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 pz:has-[>[data-align=block-end]]:[&>input]:pt-3 pz:has-[>[data-align=block-start]]:[&>input]:pb-3 pz:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 pz:has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"pz:flex pz:h-auto pz:cursor-text pz:items-center pz:justify-center pz:gap-2 pz:py-1.5 pz:text-sm pz:font-medium pz:text-muted-foreground pz:select-none pz:group-data-[disabled=true]/input-group:opacity-50 pz:[&>kbd]:rounded-[calc(var(--p0-radius)-5px)] pz:[&>svg:not([class*=size-])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"pz:order-first pz:pl-2 pz:has-[>button]:ml-[-0.3rem] pz:has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"pz:order-last pz:pr-2 pz:has-[>button]:mr-[-0.3rem] pz:has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"pz:order-first pz:w-full pz:justify-start pz:px-2.5 pz:pt-2 pz:group-has-[>input]/input-group:pt-2 pz:[.border-b]:pb-2\",\n \"block-end\":\n \"pz:order-last pz:w-full pz:justify-start pz:px-2.5 pz:pb-2 pz:group-has-[>input]/input-group:pb-2 pz:[.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"pz:flex pz:items-center pz:gap-2 pz:text-sm pz:shadow-none\", {\n variants: {\n size: {\n xs: \"pz:h-6 pz:gap-1 pz:rounded-[calc(var(--p0-radius)-3px)] pz:px-1.5 pz:[&>svg:not([class*=size-])]:size-3.5\",\n sm: \"pz:\",\n \"icon-xs\": \"pz:size-6 pz:rounded-[calc(var(--p0-radius)-3px)] pz:p-0 pz:has-[>svg]:p-0\",\n \"icon-sm\": \"pz:size-8 pz:p-0 pz:has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n});\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\";\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"pz:flex pz:items-center pz:gap-2 pz:text-sm pz:text-muted-foreground pz:[&_svg]:pointer-events-none pz:[&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"pz:flex-1 pz:rounded-none pz:border-0 pz:bg-transparent pz:shadow-none pz:ring-0 pz:focus-visible:ring-0 pz:disabled:bg-transparent pz:aria-invalid:ring-0 pz:dark:bg-transparent pz:dark:disabled:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"pz:flex-1 pz:resize-none pz:rounded-none pz:border-0 pz:bg-transparent pz:py-2 pz:shadow-none pz:ring-0 pz:focus-visible:ring-0 pz:disabled:bg-transparent pz:aria-invalid:ring-0 pz:dark:bg-transparent pz:dark:disabled:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;AAsBA,MAAM,0BAA0B,IAC9B,sSACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAwBD,MAAM,2BAA2B,IAAI,8DAA8D;CACjG,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CAAC"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { GroupMap, PathMap, SectionMap } from "../types/form-customization.mjs";
|
|
2
|
-
import { Dispatch, PropsWithChildren } from "react";
|
|
3
|
-
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
-
import { SectionKeys } from "@pipe0/base";
|
|
5
|
-
|
|
6
|
-
//#region src/context/form-customization-context.d.ts
|
|
7
|
-
interface FormCustomizationState {
|
|
8
|
-
sectionMap: SectionMap;
|
|
9
|
-
groupMap: GroupMap;
|
|
10
|
-
pathMap: PathMap;
|
|
11
|
-
}
|
|
12
|
-
type FormCustomizationAction = {
|
|
13
|
-
type: "SET_SECTION_MAP";
|
|
14
|
-
payload: SectionMap;
|
|
15
|
-
} | {
|
|
16
|
-
type: "SET_GROUP_MAP";
|
|
17
|
-
payload: GroupMap;
|
|
18
|
-
} | {
|
|
19
|
-
type: "SET_PATH_MAP";
|
|
20
|
-
payload: PathMap;
|
|
21
|
-
} | {
|
|
22
|
-
type: "MERGE_SECTION_MAP";
|
|
23
|
-
payload: SectionMap;
|
|
24
|
-
} | {
|
|
25
|
-
type: "MERGE_GROUP_MAP";
|
|
26
|
-
payload: GroupMap;
|
|
27
|
-
} | {
|
|
28
|
-
type: "MERGE_PATH_MAP";
|
|
29
|
-
payload: PathMap;
|
|
30
|
-
} | {
|
|
31
|
-
type: "HIDE_SECTION";
|
|
32
|
-
payload: SectionKeys;
|
|
33
|
-
} | {
|
|
34
|
-
type: "SHOW_SECTION";
|
|
35
|
-
payload: SectionKeys;
|
|
36
|
-
} | {
|
|
37
|
-
type: "HIDE_GROUP";
|
|
38
|
-
payload: string;
|
|
39
|
-
} | {
|
|
40
|
-
type: "SHOW_GROUP";
|
|
41
|
-
payload: string;
|
|
42
|
-
} | {
|
|
43
|
-
type: "HIDE_FIELD";
|
|
44
|
-
payload: string;
|
|
45
|
-
} | {
|
|
46
|
-
type: "SHOW_FIELD";
|
|
47
|
-
payload: string;
|
|
48
|
-
};
|
|
49
|
-
interface FormCustomizationProviderProps {
|
|
50
|
-
sectionMap?: SectionMap;
|
|
51
|
-
groupMap?: GroupMap;
|
|
52
|
-
pathMap?: PathMap;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* The `sectionMap` / `groupMap` / `pathMap` props seed the reducer **once**
|
|
56
|
-
* on mount. To swap maps after mount, either dispatch (`SET_*` / `MERGE_*`),
|
|
57
|
-
* or remount the provider with a different `key`. We deliberately don't
|
|
58
|
-
* sync prop changes into the reducer — doing so silently overwrote
|
|
59
|
-
* dispatched mutations whenever a parent re-rendered with a fresh map
|
|
60
|
-
* literal.
|
|
61
|
-
*/
|
|
62
|
-
declare function FormCustomizationProvider({
|
|
63
|
-
children,
|
|
64
|
-
sectionMap,
|
|
65
|
-
groupMap,
|
|
66
|
-
pathMap
|
|
67
|
-
}: PropsWithChildren<FormCustomizationProviderProps>): _$react_jsx_runtime0.JSX.Element;
|
|
68
|
-
declare function useFormCustomization(): readonly [FormCustomizationState, Dispatch<FormCustomizationAction>];
|
|
69
|
-
//#endregion
|
|
70
|
-
export { FormCustomizationAction, FormCustomizationProvider, FormCustomizationState, useFormCustomization };
|
|
71
|
-
//# sourceMappingURL=form-customization-context.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-customization-context.d.mts","names":[],"sources":["../../src/context/form-customization-context.tsx"],"mappings":";;;;;;UAWiB,sBAAA;EACf,UAAA,EAAY,UAAA;EACZ,QAAA,EAAU,QAAA;EACV,OAAA,EAAS,OAAA;AAAA;AAAA,KAGC,uBAAA;EACN,IAAA;EAAyB,OAAA,EAAS,UAAA;AAAA;EAClC,IAAA;EAAuB,OAAA,EAAS,QAAA;AAAA;EAChC,IAAA;EAAsB,OAAA,EAAS,OAAA;AAAA;EAC/B,IAAA;EAA2B,OAAA,EAAS,UAAA;AAAA;EACpC,IAAA;EAAyB,OAAA,EAAS,QAAA;AAAA;EAClC,IAAA;EAAwB,OAAA,EAAS,OAAA;AAAA;EACjC,IAAA;EAAsB,OAAA,EAAS,WAAA;AAAA;EAC/B,IAAA;EAAsB,OAAA,EAAS,WAAA;AAAA;EAC/B,IAAA;EAAoB,OAAA;AAAA;EACpB,IAAA;EAAoB,OAAA;AAAA;EACpB,IAAA;EAAoB,OAAA;AAAA;EACpB,IAAA;EAAoB,OAAA;AAAA;AAAA,UA0DT,8BAAA;EACf,UAAA,GAAa,UAAA;EACb,QAAA,GAAW,QAAA;EACX,OAAA,GAAU,OAAA;AAAA;;;;;;;;;iBAWI,yBAAA,CAAA;EACd,QAAA;EACA,UAAA;EACA,QAAA;EACA;AAAA,GACC,iBAAA,CAAkB,8BAAA,IAA+B,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAapC,oBAAA,CAAA,aAAoB,sBAAA,EAAA,QAAA,CAAA,uBAAA"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { createContext, useContext, useMemo, useReducer } from "react";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
|
|
4
|
-
//#region src/context/form-customization-context.tsx
|
|
5
|
-
const FormCustomizationContext = createContext(void 0);
|
|
6
|
-
function reducer(state, action) {
|
|
7
|
-
switch (action.type) {
|
|
8
|
-
case "SET_SECTION_MAP": return {
|
|
9
|
-
...state,
|
|
10
|
-
sectionMap: action.payload
|
|
11
|
-
};
|
|
12
|
-
case "SET_GROUP_MAP": return {
|
|
13
|
-
...state,
|
|
14
|
-
groupMap: action.payload
|
|
15
|
-
};
|
|
16
|
-
case "SET_PATH_MAP": return {
|
|
17
|
-
...state,
|
|
18
|
-
pathMap: action.payload
|
|
19
|
-
};
|
|
20
|
-
case "MERGE_SECTION_MAP": return {
|
|
21
|
-
...state,
|
|
22
|
-
sectionMap: {
|
|
23
|
-
...state.sectionMap,
|
|
24
|
-
...action.payload
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
case "MERGE_GROUP_MAP": return {
|
|
28
|
-
...state,
|
|
29
|
-
groupMap: {
|
|
30
|
-
...state.groupMap,
|
|
31
|
-
...action.payload
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
case "MERGE_PATH_MAP": return {
|
|
35
|
-
...state,
|
|
36
|
-
pathMap: {
|
|
37
|
-
...state.pathMap,
|
|
38
|
-
...action.payload
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
case "HIDE_SECTION": return {
|
|
42
|
-
...state,
|
|
43
|
-
sectionMap: {
|
|
44
|
-
...state.sectionMap,
|
|
45
|
-
[action.payload]: null
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
case "SHOW_SECTION": {
|
|
49
|
-
const { [action.payload]: _, ...rest } = state.sectionMap;
|
|
50
|
-
return {
|
|
51
|
-
...state,
|
|
52
|
-
sectionMap: rest
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
case "HIDE_GROUP": return {
|
|
56
|
-
...state,
|
|
57
|
-
groupMap: {
|
|
58
|
-
...state.groupMap,
|
|
59
|
-
[action.payload]: null
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
case "SHOW_GROUP": {
|
|
63
|
-
const { [action.payload]: _, ...rest } = state.groupMap;
|
|
64
|
-
return {
|
|
65
|
-
...state,
|
|
66
|
-
groupMap: rest
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
case "HIDE_FIELD": return {
|
|
70
|
-
...state,
|
|
71
|
-
pathMap: {
|
|
72
|
-
...state.pathMap,
|
|
73
|
-
[action.payload]: null
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
case "SHOW_FIELD": {
|
|
77
|
-
const { [action.payload]: _, ...rest } = state.pathMap;
|
|
78
|
-
return {
|
|
79
|
-
...state,
|
|
80
|
-
pathMap: rest
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
default: throw new Error("Unknown action in FormCustomizationContext");
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* The `sectionMap` / `groupMap` / `pathMap` props seed the reducer **once**
|
|
88
|
-
* on mount. To swap maps after mount, either dispatch (`SET_*` / `MERGE_*`),
|
|
89
|
-
* or remount the provider with a different `key`. We deliberately don't
|
|
90
|
-
* sync prop changes into the reducer — doing so silently overwrote
|
|
91
|
-
* dispatched mutations whenever a parent re-rendered with a fresh map
|
|
92
|
-
* literal.
|
|
93
|
-
*/
|
|
94
|
-
function FormCustomizationProvider({ children, sectionMap, groupMap, pathMap }) {
|
|
95
|
-
const [state, dispatch] = useReducer(reducer, void 0, () => ({
|
|
96
|
-
sectionMap: sectionMap ?? {},
|
|
97
|
-
groupMap: groupMap ?? {},
|
|
98
|
-
pathMap: pathMap ?? {}
|
|
99
|
-
}));
|
|
100
|
-
const value = useMemo(() => [state, dispatch], [state]);
|
|
101
|
-
return /* @__PURE__ */ jsx(FormCustomizationContext.Provider, {
|
|
102
|
-
value,
|
|
103
|
-
children
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
function useFormCustomization() {
|
|
107
|
-
const value = useContext(FormCustomizationContext);
|
|
108
|
-
if (value == null) throw new Error("useFormCustomization must be used within FormCustomizationProvider");
|
|
109
|
-
return value;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
//#endregion
|
|
113
|
-
export { FormCustomizationProvider, useFormCustomization };
|
|
114
|
-
//# sourceMappingURL=form-customization-context.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-customization-context.mjs","names":[],"sources":["../../src/context/form-customization-context.tsx"],"sourcesContent":["import type { SectionKeys } from \"@pipe0/base\";\nimport {\n createContext,\n type Dispatch,\n type PropsWithChildren,\n useContext,\n useMemo,\n useReducer,\n} from \"react\";\nimport type { GroupMap, PathMap, SectionMap } from \"../types/form-customization.js\";\n\nexport interface FormCustomizationState {\n sectionMap: SectionMap;\n groupMap: GroupMap;\n pathMap: PathMap;\n}\n\nexport type FormCustomizationAction =\n | { type: \"SET_SECTION_MAP\"; payload: SectionMap }\n | { type: \"SET_GROUP_MAP\"; payload: GroupMap }\n | { type: \"SET_PATH_MAP\"; payload: PathMap }\n | { type: \"MERGE_SECTION_MAP\"; payload: SectionMap }\n | { type: \"MERGE_GROUP_MAP\"; payload: GroupMap }\n | { type: \"MERGE_PATH_MAP\"; payload: PathMap }\n | { type: \"HIDE_SECTION\"; payload: SectionKeys }\n | { type: \"SHOW_SECTION\"; payload: SectionKeys }\n | { type: \"HIDE_GROUP\"; payload: string }\n | { type: \"SHOW_GROUP\"; payload: string }\n | { type: \"HIDE_FIELD\"; payload: string }\n | { type: \"SHOW_FIELD\"; payload: string };\n\nconst FormCustomizationContext = createContext<\n readonly [FormCustomizationState, Dispatch<FormCustomizationAction>] | undefined\n>(undefined);\n\nfunction reducer(\n state: FormCustomizationState,\n action: FormCustomizationAction,\n): FormCustomizationState {\n switch (action.type) {\n case \"SET_SECTION_MAP\":\n return { ...state, sectionMap: action.payload };\n case \"SET_GROUP_MAP\":\n return { ...state, groupMap: action.payload };\n case \"SET_PATH_MAP\":\n return { ...state, pathMap: action.payload };\n case \"MERGE_SECTION_MAP\":\n return {\n ...state,\n sectionMap: { ...state.sectionMap, ...action.payload },\n };\n case \"MERGE_GROUP_MAP\":\n return { ...state, groupMap: { ...state.groupMap, ...action.payload } };\n case \"MERGE_PATH_MAP\":\n return { ...state, pathMap: { ...state.pathMap, ...action.payload } };\n case \"HIDE_SECTION\":\n return {\n ...state,\n sectionMap: { ...state.sectionMap, [action.payload]: null },\n };\n case \"SHOW_SECTION\": {\n const { [action.payload]: _, ...rest } = state.sectionMap;\n return { ...state, sectionMap: rest };\n }\n case \"HIDE_GROUP\":\n return {\n ...state,\n groupMap: { ...state.groupMap, [action.payload]: null },\n };\n case \"SHOW_GROUP\": {\n const { [action.payload]: _, ...rest } = state.groupMap;\n return { ...state, groupMap: rest };\n }\n case \"HIDE_FIELD\":\n return {\n ...state,\n pathMap: { ...state.pathMap, [action.payload]: null },\n };\n case \"SHOW_FIELD\": {\n const { [action.payload]: _, ...rest } = state.pathMap;\n return { ...state, pathMap: rest };\n }\n default:\n throw new Error(\"Unknown action in FormCustomizationContext\");\n }\n}\n\nexport interface FormCustomizationProviderProps {\n sectionMap?: SectionMap;\n groupMap?: GroupMap;\n pathMap?: PathMap;\n}\n\n/**\n * The `sectionMap` / `groupMap` / `pathMap` props seed the reducer **once**\n * on mount. To swap maps after mount, either dispatch (`SET_*` / `MERGE_*`),\n * or remount the provider with a different `key`. We deliberately don't\n * sync prop changes into the reducer — doing so silently overwrote\n * dispatched mutations whenever a parent re-rendered with a fresh map\n * literal.\n */\nexport function FormCustomizationProvider({\n children,\n sectionMap,\n groupMap,\n pathMap,\n}: PropsWithChildren<FormCustomizationProviderProps>) {\n const [state, dispatch] = useReducer(reducer, undefined, () => ({\n sectionMap: sectionMap ?? {},\n groupMap: groupMap ?? {},\n pathMap: pathMap ?? {},\n }));\n const value = useMemo(() => [state, dispatch] as const, [state]);\n\n return (\n <FormCustomizationContext.Provider value={value}>{children}</FormCustomizationContext.Provider>\n );\n}\n\nexport function useFormCustomization() {\n const value = useContext(FormCustomizationContext);\n if (value == null)\n throw new Error(\"useFormCustomization must be used within FormCustomizationProvider\");\n return value;\n}\n"],"mappings":";;;;AA+BA,MAAM,2BAA2B,cAE/B,OAAU;AAEZ,SAAS,QACP,OACA,QACwB;AACxB,SAAQ,OAAO,MAAf;EACE,KAAK,kBACH,QAAO;GAAE,GAAG;GAAO,YAAY,OAAO;GAAS;EACjD,KAAK,gBACH,QAAO;GAAE,GAAG;GAAO,UAAU,OAAO;GAAS;EAC/C,KAAK,eACH,QAAO;GAAE,GAAG;GAAO,SAAS,OAAO;GAAS;EAC9C,KAAK,oBACH,QAAO;GACL,GAAG;GACH,YAAY;IAAE,GAAG,MAAM;IAAY,GAAG,OAAO;IAAS;GACvD;EACH,KAAK,kBACH,QAAO;GAAE,GAAG;GAAO,UAAU;IAAE,GAAG,MAAM;IAAU,GAAG,OAAO;IAAS;GAAE;EACzE,KAAK,iBACH,QAAO;GAAE,GAAG;GAAO,SAAS;IAAE,GAAG,MAAM;IAAS,GAAG,OAAO;IAAS;GAAE;EACvE,KAAK,eACH,QAAO;GACL,GAAG;GACH,YAAY;IAAE,GAAG,MAAM;KAAa,OAAO,UAAU;IAAM;GAC5D;EACH,KAAK,gBAAgB;GACnB,MAAM,GAAG,OAAO,UAAU,GAAG,GAAG,SAAS,MAAM;AAC/C,UAAO;IAAE,GAAG;IAAO,YAAY;IAAM;;EAEvC,KAAK,aACH,QAAO;GACL,GAAG;GACH,UAAU;IAAE,GAAG,MAAM;KAAW,OAAO,UAAU;IAAM;GACxD;EACH,KAAK,cAAc;GACjB,MAAM,GAAG,OAAO,UAAU,GAAG,GAAG,SAAS,MAAM;AAC/C,UAAO;IAAE,GAAG;IAAO,UAAU;IAAM;;EAErC,KAAK,aACH,QAAO;GACL,GAAG;GACH,SAAS;IAAE,GAAG,MAAM;KAAU,OAAO,UAAU;IAAM;GACtD;EACH,KAAK,cAAc;GACjB,MAAM,GAAG,OAAO,UAAU,GAAG,GAAG,SAAS,MAAM;AAC/C,UAAO;IAAE,GAAG;IAAO,SAAS;IAAM;;EAEpC,QACE,OAAM,IAAI,MAAM,6CAA6C;;;;;;;;;;;AAkBnE,SAAgB,0BAA0B,EACxC,UACA,YACA,UACA,WACoD;CACpD,MAAM,CAAC,OAAO,YAAY,WAAW,SAAS,eAAkB;EAC9D,YAAY,cAAc,EAAE;EAC5B,UAAU,YAAY,EAAE;EACxB,SAAS,WAAW,EAAE;EACvB,EAAE;CACH,MAAM,QAAQ,cAAc,CAAC,OAAO,SAAS,EAAW,CAAC,MAAM,CAAC;AAEhE,QACE,oBAAC,yBAAyB,UAA1B;EAA0C;EAAQ;EAA6C;;AAInG,SAAgB,uBAAuB;CACrC,MAAM,QAAQ,WAAW,yBAAyB;AAClD,KAAI,SAAS,KACX,OAAM,IAAI,MAAM,qEAAqE;AACvF,QAAO"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useCallback, useState } from "react";
|
|
2
|
-
|
|
3
|
-
//#region src/hooks/use-disclosure.ts
|
|
4
|
-
function useDisclosure(props = {}) {
|
|
5
|
-
const { onClose: onCloseProp, onOpen: onOpenProp, isOpen: isOpenProp } = props;
|
|
6
|
-
const [isOpenState, setIsOpen] = useState(props.defaultIsOpen || false);
|
|
7
|
-
const isOpen = isOpenProp !== void 0 ? isOpenProp : isOpenState;
|
|
8
|
-
const isControlled = isOpenProp !== void 0;
|
|
9
|
-
const onClose = useCallback(() => {
|
|
10
|
-
if (!isControlled) setIsOpen(false);
|
|
11
|
-
onCloseProp?.();
|
|
12
|
-
}, [isControlled, onCloseProp]);
|
|
13
|
-
const onOpen = useCallback(() => {
|
|
14
|
-
if (!isControlled) setIsOpen(true);
|
|
15
|
-
onOpenProp?.();
|
|
16
|
-
}, [isControlled, onOpenProp]);
|
|
17
|
-
return {
|
|
18
|
-
isOpen,
|
|
19
|
-
open: isOpen,
|
|
20
|
-
onOpen,
|
|
21
|
-
onClose,
|
|
22
|
-
onOpenChange: useCallback((open) => {
|
|
23
|
-
if (open && !isOpen) onOpen();
|
|
24
|
-
if (isOpen && !open) onClose();
|
|
25
|
-
}, [
|
|
26
|
-
isOpen,
|
|
27
|
-
onClose,
|
|
28
|
-
onOpen
|
|
29
|
-
])
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
//#endregion
|
|
34
|
-
export { useDisclosure };
|
|
35
|
-
//# sourceMappingURL=use-disclosure.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-disclosure.mjs","names":[],"sources":["../../src/hooks/use-disclosure.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport interface UseDisclosureProps {\n isOpen?: boolean;\n defaultIsOpen?: boolean;\n onClose?(): void;\n onOpen?(): void;\n}\n\nexport function useDisclosure(props: UseDisclosureProps = {}) {\n const { onClose: onCloseProp, onOpen: onOpenProp, isOpen: isOpenProp } = props;\n\n const [isOpenState, setIsOpen] = useState(props.defaultIsOpen || false);\n\n const isOpen = isOpenProp !== undefined ? isOpenProp : isOpenState;\n const isControlled = isOpenProp !== undefined;\n\n const onClose = useCallback(() => {\n if (!isControlled) setIsOpen(false);\n onCloseProp?.();\n }, [isControlled, onCloseProp]);\n\n const onOpen = useCallback(() => {\n if (!isControlled) setIsOpen(true);\n onOpenProp?.();\n }, [isControlled, onOpenProp]);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (open && !isOpen) onOpen();\n if (isOpen && !open) onClose();\n },\n [isOpen, onClose, onOpen],\n );\n\n return { isOpen, open: isOpen, onOpen, onClose, onOpenChange };\n}\n\nexport type UseDisclosureReturn = ReturnType<typeof useDisclosure>;\n"],"mappings":";;;AASA,SAAgB,cAAc,QAA4B,EAAE,EAAE;CAC5D,MAAM,EAAE,SAAS,aAAa,QAAQ,YAAY,QAAQ,eAAe;CAEzE,MAAM,CAAC,aAAa,aAAa,SAAS,MAAM,iBAAiB,MAAM;CAEvE,MAAM,SAAS,eAAe,SAAY,aAAa;CACvD,MAAM,eAAe,eAAe;CAEpC,MAAM,UAAU,kBAAkB;AAChC,MAAI,CAAC,aAAc,WAAU,MAAM;AACnC,iBAAe;IACd,CAAC,cAAc,YAAY,CAAC;CAE/B,MAAM,SAAS,kBAAkB;AAC/B,MAAI,CAAC,aAAc,WAAU,KAAK;AAClC,gBAAc;IACb,CAAC,cAAc,WAAW,CAAC;AAU9B,QAAO;EAAE;EAAQ,MAAM;EAAQ;EAAQ;EAAS,cAR3B,aAClB,SAAkB;AACjB,OAAI,QAAQ,CAAC,OAAQ,SAAQ;AAC7B,OAAI,UAAU,CAAC,KAAM,UAAS;KAEhC;GAAC;GAAQ;GAAS;GAAO,CAC1B;EAE6D"}
|