@pipe0/react 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +119 -0
- package/README.md +172 -0
- package/dist/components/compound/pipe-catalog/active-filters.d.mts +26 -0
- package/dist/components/compound/pipe-catalog/active-filters.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/active-filters.mjs +47 -0
- package/dist/components/compound/pipe-catalog/active-filters.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/card.d.mts +30 -0
- package/dist/components/compound/pipe-catalog/card.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/card.mjs +77 -0
- package/dist/components/compound/pipe-catalog/card.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/category-filter.d.mts +30 -0
- package/dist/components/compound/pipe-catalog/category-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/category-filter.mjs +56 -0
- package/dist/components/compound/pipe-catalog/category-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/column-filter.d.mts +40 -0
- package/dist/components/compound/pipe-catalog/column-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/column-filter.mjs +66 -0
- package/dist/components/compound/pipe-catalog/column-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/column-filters.d.mts +16 -0
- package/dist/components/compound/pipe-catalog/column-filters.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/column-filters.mjs +21 -0
- package/dist/components/compound/pipe-catalog/column-filters.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/empty.d.mts +22 -0
- package/dist/components/compound/pipe-catalog/empty.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/empty.mjs +31 -0
- package/dist/components/compound/pipe-catalog/empty.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/index.d.mts +13 -0
- package/dist/components/compound/pipe-catalog/index.mjs +15 -0
- package/dist/components/compound/pipe-catalog/input-field-filter.d.mts +22 -0
- package/dist/components/compound/pipe-catalog/input-field-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/input-field-filter.mjs +22 -0
- package/dist/components/compound/pipe-catalog/input-field-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/list.d.mts +34 -0
- package/dist/components/compound/pipe-catalog/list.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/list.mjs +29 -0
- package/dist/components/compound/pipe-catalog/list.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/output-field-filter.d.mts +22 -0
- package/dist/components/compound/pipe-catalog/output-field-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/output-field-filter.mjs +22 -0
- package/dist/components/compound/pipe-catalog/output-field-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/provider-filter.d.mts +22 -0
- package/dist/components/compound/pipe-catalog/provider-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/provider-filter.mjs +29 -0
- package/dist/components/compound/pipe-catalog/provider-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/root.d.mts +47 -0
- package/dist/components/compound/pipe-catalog/root.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/root.mjs +85 -0
- package/dist/components/compound/pipe-catalog/root.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/search-filter.d.mts +24 -0
- package/dist/components/compound/pipe-catalog/search-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/search-filter.mjs +46 -0
- package/dist/components/compound/pipe-catalog/search-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-catalog/tag-filter.d.mts +22 -0
- package/dist/components/compound/pipe-catalog/tag-filter.d.mts.map +1 -0
- package/dist/components/compound/pipe-catalog/tag-filter.mjs +22 -0
- package/dist/components/compound/pipe-catalog/tag-filter.mjs.map +1 -0
- package/dist/components/compound/pipe-form/content.d.mts +18 -0
- package/dist/components/compound/pipe-form/content.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/content.mjs +45 -0
- package/dist/components/compound/pipe-form/content.mjs.map +1 -0
- package/dist/components/compound/pipe-form/field.d.mts +17 -0
- package/dist/components/compound/pipe-form/field.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/field.mjs +21 -0
- package/dist/components/compound/pipe-form/field.mjs.map +1 -0
- package/dist/components/compound/pipe-form/footer.d.mts +14 -0
- package/dist/components/compound/pipe-form/footer.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/footer.mjs +14 -0
- package/dist/components/compound/pipe-form/footer.mjs.map +1 -0
- package/dist/components/compound/pipe-form/group.d.mts +13 -0
- package/dist/components/compound/pipe-form/group.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/group.mjs +17 -0
- package/dist/components/compound/pipe-form/group.mjs.map +1 -0
- package/dist/components/compound/pipe-form/header.d.mts +14 -0
- package/dist/components/compound/pipe-form/header.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/header.mjs +14 -0
- package/dist/components/compound/pipe-form/header.mjs.map +1 -0
- package/dist/components/compound/pipe-form/index.d.mts +9 -0
- package/dist/components/compound/pipe-form/index.mjs +11 -0
- package/dist/components/compound/pipe-form/root.d.mts +56 -0
- package/dist/components/compound/pipe-form/root.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/root.mjs +98 -0
- package/dist/components/compound/pipe-form/root.mjs.map +1 -0
- package/dist/components/compound/pipe-form/section.d.mts +13 -0
- package/dist/components/compound/pipe-form/section.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/section.mjs +17 -0
- package/dist/components/compound/pipe-form/section.mjs.map +1 -0
- package/dist/components/compound/pipe-form/submit-button.d.mts +9 -0
- package/dist/components/compound/pipe-form/submit-button.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/submit-button.mjs +17 -0
- package/dist/components/compound/pipe-form/submit-button.mjs.map +1 -0
- package/dist/components/compound/pipe-form/title.d.mts +16 -0
- package/dist/components/compound/pipe-form/title.d.mts.map +1 -0
- package/dist/components/compound/pipe-form/title.mjs +14 -0
- package/dist/components/compound/pipe-form/title.mjs.map +1 -0
- package/dist/components/compound/search-catalog/active-filters.d.mts +26 -0
- package/dist/components/compound/search-catalog/active-filters.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/active-filters.mjs +46 -0
- package/dist/components/compound/search-catalog/active-filters.mjs.map +1 -0
- package/dist/components/compound/search-catalog/card.d.mts +30 -0
- package/dist/components/compound/search-catalog/card.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/card.mjs +77 -0
- package/dist/components/compound/search-catalog/card.mjs.map +1 -0
- package/dist/components/compound/search-catalog/category-filter.d.mts +29 -0
- package/dist/components/compound/search-catalog/category-filter.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/category-filter.mjs +51 -0
- package/dist/components/compound/search-catalog/category-filter.mjs.map +1 -0
- package/dist/components/compound/search-catalog/column-filter.d.mts +40 -0
- package/dist/components/compound/search-catalog/column-filter.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/column-filter.mjs +63 -0
- package/dist/components/compound/search-catalog/column-filter.mjs.map +1 -0
- package/dist/components/compound/search-catalog/column-filters.d.mts +15 -0
- package/dist/components/compound/search-catalog/column-filters.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/column-filters.mjs +16 -0
- package/dist/components/compound/search-catalog/column-filters.mjs.map +1 -0
- package/dist/components/compound/search-catalog/empty.d.mts +22 -0
- package/dist/components/compound/search-catalog/empty.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/empty.mjs +31 -0
- package/dist/components/compound/search-catalog/empty.mjs.map +1 -0
- package/dist/components/compound/search-catalog/index.d.mts +12 -0
- package/dist/components/compound/search-catalog/index.mjs +14 -0
- package/dist/components/compound/search-catalog/list.d.mts +19 -0
- package/dist/components/compound/search-catalog/list.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/list.mjs +29 -0
- package/dist/components/compound/search-catalog/list.mjs.map +1 -0
- package/dist/components/compound/search-catalog/output-field-filter.d.mts +22 -0
- package/dist/components/compound/search-catalog/output-field-filter.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/output-field-filter.mjs +22 -0
- package/dist/components/compound/search-catalog/output-field-filter.mjs.map +1 -0
- package/dist/components/compound/search-catalog/provider-filter.d.mts +22 -0
- package/dist/components/compound/search-catalog/provider-filter.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/provider-filter.mjs +29 -0
- package/dist/components/compound/search-catalog/provider-filter.mjs.map +1 -0
- package/dist/components/compound/search-catalog/root.d.mts +33 -0
- package/dist/components/compound/search-catalog/root.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/root.mjs +74 -0
- package/dist/components/compound/search-catalog/root.mjs.map +1 -0
- package/dist/components/compound/search-catalog/search-filter.d.mts +24 -0
- package/dist/components/compound/search-catalog/search-filter.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/search-filter.mjs +46 -0
- package/dist/components/compound/search-catalog/search-filter.mjs.map +1 -0
- package/dist/components/compound/search-catalog/tag-filter.d.mts +22 -0
- package/dist/components/compound/search-catalog/tag-filter.d.mts.map +1 -0
- package/dist/components/compound/search-catalog/tag-filter.mjs +22 -0
- package/dist/components/compound/search-catalog/tag-filter.mjs.map +1 -0
- package/dist/components/compound/search-form/content.d.mts +18 -0
- package/dist/components/compound/search-form/content.d.mts.map +1 -0
- package/dist/components/compound/search-form/content.mjs +45 -0
- package/dist/components/compound/search-form/content.mjs.map +1 -0
- package/dist/components/compound/search-form/field.d.mts +17 -0
- package/dist/components/compound/search-form/field.d.mts.map +1 -0
- package/dist/components/compound/search-form/field.mjs +21 -0
- package/dist/components/compound/search-form/field.mjs.map +1 -0
- package/dist/components/compound/search-form/footer.d.mts +14 -0
- package/dist/components/compound/search-form/footer.d.mts.map +1 -0
- package/dist/components/compound/search-form/footer.mjs +14 -0
- package/dist/components/compound/search-form/footer.mjs.map +1 -0
- package/dist/components/compound/search-form/group.d.mts +13 -0
- package/dist/components/compound/search-form/group.d.mts.map +1 -0
- package/dist/components/compound/search-form/group.mjs +17 -0
- package/dist/components/compound/search-form/group.mjs.map +1 -0
- package/dist/components/compound/search-form/header.d.mts +14 -0
- package/dist/components/compound/search-form/header.d.mts.map +1 -0
- package/dist/components/compound/search-form/header.mjs +14 -0
- package/dist/components/compound/search-form/header.mjs.map +1 -0
- package/dist/components/compound/search-form/index.d.mts +9 -0
- package/dist/components/compound/search-form/index.mjs +11 -0
- package/dist/components/compound/search-form/root.d.mts +45 -0
- package/dist/components/compound/search-form/root.d.mts.map +1 -0
- package/dist/components/compound/search-form/root.mjs +90 -0
- package/dist/components/compound/search-form/root.mjs.map +1 -0
- package/dist/components/compound/search-form/section.d.mts +13 -0
- package/dist/components/compound/search-form/section.d.mts.map +1 -0
- package/dist/components/compound/search-form/section.mjs +17 -0
- package/dist/components/compound/search-form/section.mjs.map +1 -0
- package/dist/components/compound/search-form/submit-button.d.mts +9 -0
- package/dist/components/compound/search-form/submit-button.d.mts.map +1 -0
- package/dist/components/compound/search-form/submit-button.mjs +17 -0
- package/dist/components/compound/search-form/submit-button.mjs.map +1 -0
- package/dist/components/compound/search-form/title.d.mts +16 -0
- package/dist/components/compound/search-form/title.d.mts.map +1 -0
- package/dist/components/compound/search-form/title.mjs +14 -0
- package/dist/components/compound/search-form/title.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/active-filters.d.mts +26 -0
- package/dist/components/compound/searches-catalog/active-filters.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/active-filters.mjs +46 -0
- package/dist/components/compound/searches-catalog/active-filters.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/card.d.mts +22 -0
- package/dist/components/compound/searches-catalog/card.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/card.mjs +70 -0
- package/dist/components/compound/searches-catalog/card.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/category-filter.d.mts +29 -0
- package/dist/components/compound/searches-catalog/category-filter.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/category-filter.mjs +51 -0
- package/dist/components/compound/searches-catalog/category-filter.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/column-filter.d.mts +31 -0
- package/dist/components/compound/searches-catalog/column-filter.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/column-filter.mjs +58 -0
- package/dist/components/compound/searches-catalog/column-filter.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/column-filters.d.mts +15 -0
- package/dist/components/compound/searches-catalog/column-filters.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/column-filters.mjs +16 -0
- package/dist/components/compound/searches-catalog/column-filters.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/empty.d.mts +22 -0
- package/dist/components/compound/searches-catalog/empty.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/empty.mjs +31 -0
- package/dist/components/compound/searches-catalog/empty.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/index.d.mts +12 -0
- package/dist/components/compound/searches-catalog/index.mjs +14 -0
- package/dist/components/compound/searches-catalog/list.d.mts +19 -0
- package/dist/components/compound/searches-catalog/list.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/list.mjs +29 -0
- package/dist/components/compound/searches-catalog/list.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/output-field-filter.d.mts +22 -0
- package/dist/components/compound/searches-catalog/output-field-filter.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/output-field-filter.mjs +22 -0
- package/dist/components/compound/searches-catalog/output-field-filter.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/provider-filter.d.mts +22 -0
- package/dist/components/compound/searches-catalog/provider-filter.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/provider-filter.mjs +29 -0
- package/dist/components/compound/searches-catalog/provider-filter.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/root.d.mts +33 -0
- package/dist/components/compound/searches-catalog/root.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/root.mjs +74 -0
- package/dist/components/compound/searches-catalog/root.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/search-filter.d.mts +24 -0
- package/dist/components/compound/searches-catalog/search-filter.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/search-filter.mjs +46 -0
- package/dist/components/compound/searches-catalog/search-filter.mjs.map +1 -0
- package/dist/components/compound/searches-catalog/tag-filter.d.mts +22 -0
- package/dist/components/compound/searches-catalog/tag-filter.d.mts.map +1 -0
- package/dist/components/compound/searches-catalog/tag-filter.mjs +22 -0
- package/dist/components/compound/searches-catalog/tag-filter.mjs.map +1 -0
- package/dist/components/defaults/adapters/async-include-exclude-select-input.mjs +32 -0
- package/dist/components/defaults/adapters/async-include-exclude-select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/async-multi-select-input.mjs +26 -0
- package/dist/components/defaults/adapters/async-multi-select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/boolean-input.mjs +82 -0
- package/dist/components/defaults/adapters/boolean-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/connector-input.mjs +94 -0
- package/dist/components/defaults/adapters/connector-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/context-select-input.mjs +74 -0
- package/dist/components/defaults/adapters/context-select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/cursor-pagination-input.mjs +29 -0
- package/dist/components/defaults/adapters/cursor-pagination-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/date-range-input.mjs +53 -0
- package/dist/components/defaults/adapters/date-range-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/exact-range-input.mjs +75 -0
- package/dist/components/defaults/adapters/exact-range-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/fields-select-input.mjs +25 -0
- package/dist/components/defaults/adapters/fields-select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/include-exclude-input.mjs +33 -0
- package/dist/components/defaults/adapters/include-exclude-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/include-exclude-select-input.mjs +36 -0
- package/dist/components/defaults/adapters/include-exclude-select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/index.d.mts +11 -0
- package/dist/components/defaults/adapters/index.d.mts.map +1 -0
- package/dist/components/defaults/adapters/index.mjs +73 -0
- package/dist/components/defaults/adapters/index.mjs.map +1 -0
- package/dist/components/defaults/adapters/int-input.mjs +16 -0
- package/dist/components/defaults/adapters/int-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/json-extraction-input.mjs +333 -0
- package/dist/components/defaults/adapters/json-extraction-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/json-schema-input.mjs +30 -0
- package/dist/components/defaults/adapters/json-schema-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/key-value-list-input.mjs +100 -0
- package/dist/components/defaults/adapters/key-value-list-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/min-max-int-input.mjs +65 -0
- package/dist/components/defaults/adapters/min-max-int-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/multi-create-input.mjs +32 -0
- package/dist/components/defaults/adapters/multi-create-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/multi-select-input.mjs +26 -0
- package/dist/components/defaults/adapters/multi-select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/number-input.mjs +15 -0
- package/dist/components/defaults/adapters/number-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/ordered-multi-create-input.mjs +43 -0
- package/dist/components/defaults/adapters/ordered-multi-create-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/output-field-input.mjs +37 -0
- package/dist/components/defaults/adapters/output-field-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/pipes-trigger-input.mjs +381 -0
- package/dist/components/defaults/adapters/pipes-trigger-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/prompt-input.mjs +208 -0
- package/dist/components/defaults/adapters/prompt-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/providers-input.mjs +23 -0
- package/dist/components/defaults/adapters/providers-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/range-input.mjs +61 -0
- package/dist/components/defaults/adapters/range-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/select-input.mjs +54 -0
- package/dist/components/defaults/adapters/select-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/tagged-text-input.mjs +154 -0
- package/dist/components/defaults/adapters/tagged-text-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/template-input.mjs +34 -0
- package/dist/components/defaults/adapters/template-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/text-input.mjs +18 -0
- package/dist/components/defaults/adapters/text-input.mjs.map +1 -0
- package/dist/components/defaults/adapters/textarea-input.mjs +17 -0
- package/dist/components/defaults/adapters/textarea-input.mjs.map +1 -0
- package/dist/components/defaults/catalog/active-filter-pill.mjs +30 -0
- package/dist/components/defaults/catalog/active-filter-pill.mjs.map +1 -0
- package/dist/components/defaults/catalog/card-derived.d.mts +98 -0
- package/dist/components/defaults/catalog/card-derived.d.mts.map +1 -0
- package/dist/components/defaults/catalog/card-derived.mjs +172 -0
- package/dist/components/defaults/catalog/card-derived.mjs.map +1 -0
- package/dist/components/defaults/catalog/card-primitives.d.mts +81 -0
- package/dist/components/defaults/catalog/card-primitives.d.mts.map +1 -0
- package/dist/components/defaults/catalog/card-primitives.mjs +108 -0
- package/dist/components/defaults/catalog/card-primitives.mjs.map +1 -0
- package/dist/components/defaults/catalog/category-filter.d.mts +13 -0
- package/dist/components/defaults/catalog/category-filter.d.mts.map +1 -0
- package/dist/components/defaults/catalog/category-filter.mjs +28 -0
- package/dist/components/defaults/catalog/category-filter.mjs.map +1 -0
- package/dist/components/defaults/catalog/category-section.d.mts +39 -0
- package/dist/components/defaults/catalog/category-section.d.mts.map +1 -0
- package/dist/components/defaults/catalog/category-section.mjs +59 -0
- package/dist/components/defaults/catalog/category-section.mjs.map +1 -0
- package/dist/components/defaults/catalog/empty-state.mjs +20 -0
- package/dist/components/defaults/catalog/empty-state.mjs.map +1 -0
- package/dist/components/defaults/catalog/filter-select.d.mts +13 -0
- package/dist/components/defaults/catalog/filter-select.d.mts.map +1 -0
- package/dist/components/defaults/catalog/filter-select.mjs +45 -0
- package/dist/components/defaults/catalog/filter-select.mjs.map +1 -0
- package/dist/components/defaults/catalog/layout.mjs +53 -0
- package/dist/components/defaults/catalog/layout.mjs.map +1 -0
- package/dist/components/defaults/catalog/provider-avatars.d.mts +37 -0
- package/dist/components/defaults/catalog/provider-avatars.d.mts.map +1 -0
- package/dist/components/defaults/catalog/provider-avatars.mjs +98 -0
- package/dist/components/defaults/catalog/provider-avatars.mjs.map +1 -0
- package/dist/components/defaults/field-section-enumeration.mjs +32 -0
- package/dist/components/defaults/field-section-enumeration.mjs.map +1 -0
- package/dist/components/defaults/layout/field-wrapper.d.mts +13 -0
- package/dist/components/defaults/layout/field-wrapper.d.mts.map +1 -0
- package/dist/components/defaults/layout/field-wrapper.mjs +67 -0
- package/dist/components/defaults/layout/field-wrapper.mjs.map +1 -0
- package/dist/components/defaults/layout/form.mjs +21 -0
- package/dist/components/defaults/layout/form.mjs.map +1 -0
- package/dist/components/defaults/layout/group.d.mts +16 -0
- package/dist/components/defaults/layout/group.d.mts.map +1 -0
- package/dist/components/defaults/layout/group.mjs +87 -0
- package/dist/components/defaults/layout/group.mjs.map +1 -0
- package/dist/components/defaults/layout/section.d.mts +14 -0
- package/dist/components/defaults/layout/section.d.mts.map +1 -0
- package/dist/components/defaults/layout/section.mjs +39 -0
- package/dist/components/defaults/layout/section.mjs.map +1 -0
- package/dist/components/defaults/layout/submit-button.d.mts +9 -0
- package/dist/components/defaults/layout/submit-button.d.mts.map +1 -0
- package/dist/components/defaults/layout/submit-button.mjs +23 -0
- package/dist/components/defaults/layout/submit-button.mjs.map +1 -0
- package/dist/components/defaults/toggle-advanced-button.mjs +29 -0
- package/dist/components/defaults/toggle-advanced-button.mjs.map +1 -0
- package/dist/components/field-renderer.d.mts +14 -0
- package/dist/components/field-renderer.d.mts.map +1 -0
- package/dist/components/field-renderer.mjs +21 -0
- package/dist/components/field-renderer.mjs.map +1 -0
- package/dist/components/hover-info.mjs +30 -0
- package/dist/components/hover-info.mjs.map +1 -0
- package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs +319 -0
- package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs.map +1 -0
- package/dist/components/internal/LiquidEditor/LiquidEditor.mjs +208 -0
- package/dist/components/internal/LiquidEditor/LiquidEditor.mjs.map +1 -0
- package/dist/components/internal/LiquidEditor/UnifiedReferencePicker.mjs +240 -0
- package/dist/components/internal/LiquidEditor/UnifiedReferencePicker.mjs.map +1 -0
- package/dist/components/internal/combobox/include-exclude-combobox.mjs +368 -0
- package/dist/components/internal/combobox/include-exclude-combobox.mjs.map +1 -0
- package/dist/components/internal/combobox/suggest-combobox.mjs +294 -0
- package/dist/components/internal/combobox/suggest-combobox.mjs.map +1 -0
- package/dist/components/internal/field-legend.mjs +37 -0
- package/dist/components/internal/field-legend.mjs.map +1 -0
- package/dist/components/internal/form-level-errors.mjs +71 -0
- package/dist/components/internal/form-level-errors.mjs.map +1 -0
- package/dist/components/internal/icons.mjs +131 -0
- package/dist/components/internal/icons.mjs.map +1 -0
- package/dist/components/internal/multi-select-popover-trigger.mjs +26 -0
- package/dist/components/internal/multi-select-popover-trigger.mjs.map +1 -0
- package/dist/components/internal/schema-editor/SchemaEditor.mjs +468 -0
- package/dist/components/internal/schema-editor/SchemaEditor.mjs.map +1 -0
- package/dist/components/internal/schema-editor/generate-schema-rows.mjs +374 -0
- package/dist/components/internal/schema-editor/generate-schema-rows.mjs.map +1 -0
- package/dist/components/internal/schema-editor/schema-editor-context.mjs +32 -0
- package/dist/components/internal/schema-editor/schema-editor-context.mjs.map +1 -0
- package/dist/components/internal/schema-editor/schema-utils.mjs +249 -0
- package/dist/components/internal/schema-editor/schema-utils.mjs.map +1 -0
- package/dist/components/internal/suggestion-menu/suggestion-menu-utils.mjs +12 -0
- package/dist/components/internal/suggestion-menu/suggestion-menu-utils.mjs.map +1 -0
- package/dist/components/internal/suggestion-menu/suggestion-menu.mjs +151 -0
- package/dist/components/internal/suggestion-menu/suggestion-menu.mjs.map +1 -0
- package/dist/components/internal/tag-chip-decoration.mjs +180 -0
- package/dist/components/internal/tag-chip-decoration.mjs.map +1 -0
- package/dist/components/rich-text.mjs +42 -0
- package/dist/components/rich-text.mjs.map +1 -0
- package/dist/components/ui/badge.mjs +32 -0
- package/dist/components/ui/badge.mjs.map +1 -0
- package/dist/components/ui/button.d.mts +19 -0
- package/dist/components/ui/button.d.mts.map +1 -0
- package/dist/components/ui/button.mjs +47 -0
- package/dist/components/ui/button.mjs.map +1 -0
- package/dist/components/ui/combobox.mjs +103 -0
- package/dist/components/ui/combobox.mjs.map +1 -0
- package/dist/components/ui/input-group.mjs +30 -0
- package/dist/components/ui/input-group.mjs.map +1 -0
- package/dist/components/ui/input.mjs +17 -0
- package/dist/components/ui/input.mjs.map +1 -0
- package/dist/components/ui/label.mjs +17 -0
- package/dist/components/ui/label.mjs.map +1 -0
- package/dist/components/ui/popover.mjs +40 -0
- package/dist/components/ui/popover.mjs.map +1 -0
- package/dist/components/ui/select.mjs +92 -0
- package/dist/components/ui/select.mjs.map +1 -0
- package/dist/components/ui/switch.mjs +21 -0
- package/dist/components/ui/switch.mjs.map +1 -0
- package/dist/components/ui/table.mjs +56 -0
- package/dist/components/ui/table.mjs.map +1 -0
- package/dist/components/ui/textarea.mjs +15 -0
- package/dist/components/ui/textarea.mjs.map +1 -0
- package/dist/components/ui/tooltip.mjs +48 -0
- package/dist/components/ui/tooltip.mjs.map +1 -0
- package/dist/context/catalog-card-context.mjs +31 -0
- package/dist/context/catalog-card-context.mjs.map +1 -0
- package/dist/context/catalog-config-context.d.mts +43 -0
- package/dist/context/catalog-config-context.d.mts.map +1 -0
- package/dist/context/catalog-config-context.mjs +48 -0
- package/dist/context/catalog-config-context.mjs.map +1 -0
- package/dist/context/form-context.mjs +11 -0
- package/dist/context/form-context.mjs.map +1 -0
- package/dist/context/form-customization-context.d.mts +71 -0
- package/dist/context/form-customization-context.d.mts.map +1 -0
- package/dist/context/form-customization-context.mjs +114 -0
- package/dist/context/form-customization-context.mjs.map +1 -0
- package/dist/context/form-provider.d.mts +41 -0
- package/dist/context/form-provider.d.mts.map +1 -0
- package/dist/context/form-provider.mjs +53 -0
- package/dist/context/form-provider.mjs.map +1 -0
- package/dist/context/pipe-catalog-card-context.d.mts +17 -0
- package/dist/context/pipe-catalog-card-context.d.mts.map +1 -0
- package/dist/context/pipe-catalog-card-context.mjs +13 -0
- package/dist/context/pipe-catalog-card-context.mjs.map +1 -0
- package/dist/context/pipe-catalog-context.d.mts +26 -0
- package/dist/context/pipe-catalog-context.d.mts.map +1 -0
- package/dist/context/pipe-catalog-context.mjs +13 -0
- package/dist/context/pipe-catalog-context.mjs.map +1 -0
- package/dist/context/pipe-form-context.d.mts +25 -0
- package/dist/context/pipe-form-context.d.mts.map +1 -0
- package/dist/context/pipe-form-context.mjs +13 -0
- package/dist/context/pipe-form-context.mjs.map +1 -0
- package/dist/context/portal-container-context.d.mts +5 -0
- package/dist/context/portal-container-context.d.mts.map +1 -0
- package/dist/context/portal-container-context.mjs +15 -0
- package/dist/context/portal-container-context.mjs.map +1 -0
- package/dist/context/search-catalog-card-context.d.mts +16 -0
- package/dist/context/search-catalog-card-context.d.mts.map +1 -0
- package/dist/context/search-catalog-card-context.mjs +13 -0
- package/dist/context/search-catalog-card-context.mjs.map +1 -0
- package/dist/context/search-catalog-context.d.mts +20 -0
- package/dist/context/search-catalog-context.d.mts.map +1 -0
- package/dist/context/search-catalog-context.mjs +13 -0
- package/dist/context/search-catalog-context.mjs.map +1 -0
- package/dist/context/search-form-context.d.mts +25 -0
- package/dist/context/search-form-context.d.mts.map +1 -0
- package/dist/context/search-form-context.mjs +13 -0
- package/dist/context/search-form-context.mjs.map +1 -0
- package/dist/context/searches-catalog-card-context.d.mts +16 -0
- package/dist/context/searches-catalog-card-context.d.mts.map +1 -0
- package/dist/context/searches-catalog-card-context.mjs +13 -0
- package/dist/context/searches-catalog-card-context.mjs.map +1 -0
- package/dist/context/searches-catalog-context.d.mts +20 -0
- package/dist/context/searches-catalog-context.d.mts.map +1 -0
- package/dist/context/searches-catalog-context.mjs +13 -0
- package/dist/context/searches-catalog-context.mjs.map +1 -0
- package/dist/hooks/use-debounce.mjs +28 -0
- package/dist/hooks/use-debounce.mjs.map +1 -0
- package/dist/hooks/use-debounced-fn.mjs +47 -0
- package/dist/hooks/use-debounced-fn.mjs.map +1 -0
- package/dist/hooks/use-disclosure.mjs +35 -0
- package/dist/hooks/use-disclosure.mjs.map +1 -0
- package/dist/hooks/use-field-error.d.mts +11 -0
- package/dist/hooks/use-field-error.d.mts.map +1 -0
- package/dist/hooks/use-field-error.mjs +23 -0
- package/dist/hooks/use-field-error.mjs.map +1 -0
- package/dist/hooks/use-floating-element.mjs +45 -0
- package/dist/hooks/use-floating-element.mjs.map +1 -0
- package/dist/hooks/use-form-core.d.mts +16 -0
- package/dist/hooks/use-form-core.d.mts.map +1 -0
- package/dist/hooks/use-form-core.mjs +241 -0
- package/dist/hooks/use-form-core.mjs.map +1 -0
- package/dist/hooks/use-jsonata-preview.mjs +38 -0
- package/dist/hooks/use-jsonata-preview.mjs.map +1 -0
- package/dist/hooks/use-menu-navigation.mjs +86 -0
- package/dist/hooks/use-menu-navigation.mjs.map +1 -0
- package/dist/hooks/use-pipe-catalog-table.d.mts +47 -0
- package/dist/hooks/use-pipe-catalog-table.d.mts.map +1 -0
- package/dist/hooks/use-pipe-catalog-table.mjs +170 -0
- package/dist/hooks/use-pipe-catalog-table.mjs.map +1 -0
- package/dist/hooks/use-pipe-form.d.mts +31 -0
- package/dist/hooks/use-pipe-form.d.mts.map +1 -0
- package/dist/hooks/use-pipe-form.mjs +65 -0
- package/dist/hooks/use-pipe-form.mjs.map +1 -0
- package/dist/hooks/use-search-catalog-table.d.mts +40 -0
- package/dist/hooks/use-search-catalog-table.d.mts.map +1 -0
- package/dist/hooks/use-search-catalog-table.mjs +161 -0
- package/dist/hooks/use-search-catalog-table.mjs.map +1 -0
- package/dist/hooks/use-search-form.d.mts +17 -0
- package/dist/hooks/use-search-form.d.mts.map +1 -0
- package/dist/hooks/use-search-form.mjs +58 -0
- package/dist/hooks/use-search-form.mjs.map +1 -0
- package/dist/hooks/use-searches-catalog-table.d.mts +40 -0
- package/dist/hooks/use-searches-catalog-table.d.mts.map +1 -0
- package/dist/hooks/use-searches-catalog-table.mjs +161 -0
- package/dist/hooks/use-searches-catalog-table.mjs.map +1 -0
- package/dist/index.d.mts +96 -0
- package/dist/index.mjs +98 -0
- package/dist/lib/utils.mjs +11 -0
- package/dist/lib/utils.mjs.map +1 -0
- package/dist/styles/pipe0-form.css +3785 -0
- package/dist/types/adapters.d.mts +107 -0
- package/dist/types/adapters.d.mts.map +1 -0
- package/dist/types/catalog-adapters.d.mts +122 -0
- package/dist/types/catalog-adapters.d.mts.map +1 -0
- package/dist/types/field-handle.d.mts +3 -0
- package/dist/types/field-props.d.mts +285 -0
- package/dist/types/field-props.d.mts.map +1 -0
- package/dist/types/form-customization.d.mts +25 -0
- package/dist/types/form-customization.d.mts.map +1 -0
- package/dist/types/form-handle.d.mts +23 -0
- package/dist/types/form-handle.d.mts.map +1 -0
- package/dist/utils/build-section-handlers.mjs +419 -0
- package/dist/utils/build-section-handlers.mjs.map +1 -0
- package/dist/utils/catalog-helpers.d.mts +12 -0
- package/dist/utils/catalog-helpers.d.mts.map +1 -0
- package/dist/utils/catalog-helpers.mjs +35 -0
- package/dist/utils/catalog-helpers.mjs.map +1 -0
- package/dist/utils/generate-random-string.mjs +11 -0
- package/dist/utils/generate-random-string.mjs.map +1 -0
- package/dist/utils/merge-form-stores.mjs +14 -0
- package/dist/utils/merge-form-stores.mjs.map +1 -0
- package/dist/utils/object-path.mjs +72 -0
- package/dist/utils/object-path.mjs.map +1 -0
- package/dist/utils/render-slot.d.mts +44 -0
- package/dist/utils/render-slot.d.mts.map +1 -0
- package/dist/utils/render-slot.mjs +30 -0
- package/dist/utils/render-slot.mjs.map +1 -0
- package/dist/widgets/avatar-group.d.mts +36 -0
- package/dist/widgets/avatar-group.d.mts.map +1 -0
- package/dist/widgets/avatar-group.mjs +114 -0
- package/dist/widgets/avatar-group.mjs.map +1 -0
- package/dist/widgets/emoji-glyph.d.mts +11 -0
- package/dist/widgets/emoji-glyph.d.mts.map +1 -0
- package/dist/widgets/emoji-glyph.mjs +13 -0
- package/dist/widgets/emoji-glyph.mjs.map +1 -0
- package/dist/widgets/field-type-badge.d.mts +13 -0
- package/dist/widgets/field-type-badge.d.mts.map +1 -0
- package/dist/widgets/field-type-badge.mjs +30 -0
- package/dist/widgets/field-type-badge.mjs.map +1 -0
- package/dist/widgets/icon-glyph.d.mts +16 -0
- package/dist/widgets/icon-glyph.d.mts.map +1 -0
- package/dist/widgets/icon-glyph.mjs +59 -0
- package/dist/widgets/icon-glyph.mjs.map +1 -0
- package/dist/widgets/index.d.mts +9 -0
- package/dist/widgets/index.mjs +11 -0
- package/dist/widgets/logo-url.d.mts +17 -0
- package/dist/widgets/logo-url.d.mts.map +1 -0
- package/dist/widgets/logo-url.mjs +17 -0
- package/dist/widgets/logo-url.mjs.map +1 -0
- package/dist/widgets/pricing-badge.d.mts +11 -0
- package/dist/widgets/pricing-badge.d.mts.map +1 -0
- package/dist/widgets/pricing-badge.mjs +13 -0
- package/dist/widgets/pricing-badge.mjs.map +1 -0
- package/dist/widgets/provider-logo.d.mts +16 -0
- package/dist/widgets/provider-logo.d.mts.map +1 -0
- package/dist/widgets/provider-logo.mjs +20 -0
- package/dist/widgets/provider-logo.mjs.map +1 -0
- package/dist/widgets/widget-strip.d.mts +16 -0
- package/dist/widgets/widget-strip.d.mts.map +1 -0
- package/dist/widgets/widget-strip.mjs +42 -0
- package/dist/widgets/widget-strip.mjs.map +1 -0
- package/dist/widgets/widget-view.d.mts +14 -0
- package/dist/widgets/widget-view.d.mts.map +1 -0
- package/dist/widgets/widget-view.mjs +36 -0
- package/dist/widgets/widget-view.mjs.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/defaults/catalog/category-section.d.ts
|
|
5
|
+
interface CatalogCategorySectionProps {
|
|
6
|
+
/** Display label (e.g. "People"). */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Hex / CSS color used for the small leading dot. */
|
|
9
|
+
color?: string;
|
|
10
|
+
/** Count rendered next to the label. */
|
|
11
|
+
count?: number;
|
|
12
|
+
/** Default open state when uncontrolled. Defaults to `true`. */
|
|
13
|
+
defaultOpen?: boolean;
|
|
14
|
+
/** Controlled open state. */
|
|
15
|
+
open?: boolean;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
className?: string;
|
|
18
|
+
/** Class names applied to the body container that wraps `children`. */
|
|
19
|
+
bodyClassName?: string;
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Collapsible category section header. Used to group catalog cards by
|
|
24
|
+
* category. Click the header (or chevron) to toggle the body.
|
|
25
|
+
*/
|
|
26
|
+
declare function CatalogCategorySection({
|
|
27
|
+
label,
|
|
28
|
+
color,
|
|
29
|
+
count,
|
|
30
|
+
defaultOpen,
|
|
31
|
+
open,
|
|
32
|
+
onOpenChange,
|
|
33
|
+
className,
|
|
34
|
+
bodyClassName,
|
|
35
|
+
children
|
|
36
|
+
}: CatalogCategorySectionProps): _$react_jsx_runtime0.JSX.Element;
|
|
37
|
+
//#endregion
|
|
38
|
+
export { CatalogCategorySection, CatalogCategorySectionProps };
|
|
39
|
+
//# sourceMappingURL=category-section.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-section.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/category-section.tsx"],"mappings":";;;;UAIiB,2BAAA;;EAEf,KAAA,EAAO,SAAA;EAFQ;EAIf,KAAA;;EAEA,KAAA;EAJA;EAMA,WAAA;EAJA;EAMA,IAAA;EACA,YAAA,IAAgB,IAAA;EAChB,SAAA;EADA;EAGA,aAAA;EACA,QAAA,GAAW,SAAA;AAAA;;;;;iBAOG,sBAAA,CAAA;EACd,KAAA;EACA,KAAA;EACA,KAAA;EACA,WAAA;EACA,IAAA;EACA,YAAA;EACA,SAAA;EACA,aAAA;EACA;AAAA,GACC,2BAAA,GAA2B,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { ChevronDown } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/defaults/catalog/category-section.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Collapsible category section header. Used to group catalog cards by
|
|
9
|
+
* category. Click the header (or chevron) to toggle the body.
|
|
10
|
+
*/
|
|
11
|
+
function CatalogCategorySection({ label, color, count, defaultOpen = true, open, onOpenChange, className, bodyClassName, children }) {
|
|
12
|
+
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
13
|
+
const isControlled = open !== void 0;
|
|
14
|
+
const isOpen = isControlled ? !!open : internalOpen;
|
|
15
|
+
const toggle = () => {
|
|
16
|
+
const next = !isOpen;
|
|
17
|
+
if (!isControlled) setInternalOpen(next);
|
|
18
|
+
onOpenChange?.(next);
|
|
19
|
+
};
|
|
20
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
21
|
+
"data-p0": "catalog-category-section",
|
|
22
|
+
"data-open": isOpen ? "true" : "false",
|
|
23
|
+
className: cn("pz:flex pz:flex-col", className),
|
|
24
|
+
children: [/* @__PURE__ */ jsxs("button", {
|
|
25
|
+
type: "button",
|
|
26
|
+
"data-p0": "catalog-category-section-header",
|
|
27
|
+
onClick: toggle,
|
|
28
|
+
"aria-expanded": isOpen,
|
|
29
|
+
className: "pz:flex pz:items-center pz:gap-2 pz:py-2 pz:text-left pz:bg-transparent pz:border-0 pz:border-b pz:border-input pz:cursor-pointer pz:transition-colors pz:hover:bg-muted/30",
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsx(ChevronDown, {
|
|
32
|
+
"aria-hidden": "true",
|
|
33
|
+
className: cn("pz:size-3.5 pz:text-muted-foreground pz:shrink-0 pz:transition-transform", isOpen ? void 0 : "pz:-rotate-90")
|
|
34
|
+
}),
|
|
35
|
+
color ? /* @__PURE__ */ jsx("span", {
|
|
36
|
+
"aria-hidden": "true",
|
|
37
|
+
className: "pz:size-1.5 pz:rounded-full pz:shrink-0",
|
|
38
|
+
style: { backgroundColor: color }
|
|
39
|
+
}) : null,
|
|
40
|
+
/* @__PURE__ */ jsx("span", {
|
|
41
|
+
className: "pz:text-[11px] pz:font-semibold pz:tracking-[0.08em] pz:uppercase pz:text-foreground",
|
|
42
|
+
children: label
|
|
43
|
+
}),
|
|
44
|
+
typeof count === "number" ? /* @__PURE__ */ jsx("span", {
|
|
45
|
+
className: "pz:text-[11px] pz:text-muted-foreground",
|
|
46
|
+
children: count
|
|
47
|
+
}) : null
|
|
48
|
+
]
|
|
49
|
+
}), isOpen ? /* @__PURE__ */ jsx("div", {
|
|
50
|
+
"data-p0": "catalog-category-section-body",
|
|
51
|
+
className: cn("pz:flex pz:flex-col", bodyClassName),
|
|
52
|
+
children
|
|
53
|
+
}) : null]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { CatalogCategorySection };
|
|
59
|
+
//# sourceMappingURL=category-section.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-section.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/category-section.tsx"],"sourcesContent":["import { ChevronDown } from \"lucide-react\";\nimport { type ReactNode, useState } from \"react\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface CatalogCategorySectionProps {\n /** Display label (e.g. \"People\"). */\n label: ReactNode;\n /** Hex / CSS color used for the small leading dot. */\n color?: string;\n /** Count rendered next to the label. */\n count?: number;\n /** Default open state when uncontrolled. Defaults to `true`. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n /** Class names applied to the body container that wraps `children`. */\n bodyClassName?: string;\n children?: ReactNode;\n}\n\n/**\n * Collapsible category section header. Used to group catalog cards by\n * category. Click the header (or chevron) to toggle the body.\n */\nexport function CatalogCategorySection({\n label,\n color,\n count,\n defaultOpen = true,\n open,\n onOpenChange,\n className,\n bodyClassName,\n children,\n}: CatalogCategorySectionProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? !!open : internalOpen;\n\n const toggle = () => {\n const next = !isOpen;\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n return (\n <section\n data-p0=\"catalog-category-section\"\n data-open={isOpen ? \"true\" : \"false\"}\n className={cn(\"pz:flex pz:flex-col\", className)}\n >\n <button\n type=\"button\"\n data-p0=\"catalog-category-section-header\"\n onClick={toggle}\n aria-expanded={isOpen}\n className=\"pz:flex pz:items-center pz:gap-2 pz:py-2 pz:text-left pz:bg-transparent pz:border-0 pz:border-b pz:border-input pz:cursor-pointer pz:transition-colors pz:hover:bg-muted/30\"\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"pz:size-3.5 pz:text-muted-foreground pz:shrink-0 pz:transition-transform\",\n isOpen ? undefined : \"pz:-rotate-90\",\n )}\n />\n {color ? (\n <span\n aria-hidden=\"true\"\n className=\"pz:size-1.5 pz:rounded-full pz:shrink-0\"\n style={{ backgroundColor: color }}\n />\n ) : null}\n <span className=\"pz:text-[11px] pz:font-semibold pz:tracking-[0.08em] pz:uppercase pz:text-foreground\">\n {label}\n </span>\n {typeof count === \"number\" ? (\n <span className=\"pz:text-[11px] pz:text-muted-foreground\">{count}</span>\n ) : null}\n </button>\n {isOpen ? (\n <div\n data-p0=\"catalog-category-section-body\"\n className={cn(\"pz:flex pz:flex-col\", bodyClassName)}\n >\n {children}\n </div>\n ) : null}\n </section>\n );\n}\n"],"mappings":";;;;;;;;;;AA0BA,SAAgB,uBAAuB,EACrC,OACA,OACA,OACA,cAAc,MACd,MACA,cACA,WACA,eACA,YAC8B;CAC9B,MAAM,CAAC,cAAc,mBAAmB,SAAS,YAAY;CAC7D,MAAM,eAAe,SAAS;CAC9B,MAAM,SAAS,eAAe,CAAC,CAAC,OAAO;CAEvC,MAAM,eAAe;EACnB,MAAM,OAAO,CAAC;AACd,MAAI,CAAC,aAAc,iBAAgB,KAAK;AACxC,iBAAe,KAAK;;AAGtB,QACE,qBAAC,WAAD;EACE,WAAQ;EACR,aAAW,SAAS,SAAS;EAC7B,WAAW,GAAG,uBAAuB,UAAU;YAHjD,CAKE,qBAAC,UAAD;GACE,MAAK;GACL,WAAQ;GACR,SAAS;GACT,iBAAe;GACf,WAAU;aALZ;IAOE,oBAAC,aAAD;KACE,eAAY;KACZ,WAAW,GACT,4EACA,SAAS,SAAY,gBACtB;KACD;IACD,QACC,oBAAC,QAAD;KACE,eAAY;KACZ,WAAU;KACV,OAAO,EAAE,iBAAiB,OAAO;KACjC,IACA;IACJ,oBAAC,QAAD;KAAM,WAAU;eACb;KACI;IACN,OAAO,UAAU,WAChB,oBAAC,QAAD;KAAM,WAAU;eAA2C;KAAa,IACtE;IACG;MACR,SACC,oBAAC,OAAD;GACE,WAAQ;GACR,WAAW,GAAG,uBAAuB,cAAc;GAElD;GACG,IACJ,KACI"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/defaults/catalog/empty-state.tsx
|
|
6
|
+
function DefaultEmptyState({ children, className }) {
|
|
7
|
+
const { classNames } = useCatalogConfig();
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
"data-p0": "catalog-empty-state",
|
|
10
|
+
className: cn("pz:flex pz:h-[200px] pz:flex-col pz:items-center pz:justify-center pz:rounded-md pz:border pz:border-dashed pz:p-8 pz:text-center", classNames?.emptyState, className),
|
|
11
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
12
|
+
className: "pz:text-sm pz:text-muted-foreground",
|
|
13
|
+
children: children ?? "No results found. Try adjusting your filters."
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { DefaultEmptyState };
|
|
20
|
+
//# sourceMappingURL=empty-state.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/empty-state.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface DefaultEmptyStateProps {\n children?: ReactNode;\n className?: string;\n}\n\nexport function DefaultEmptyState({ children, className }: DefaultEmptyStateProps) {\n const { classNames } = useCatalogConfig();\n return (\n <div\n data-p0=\"catalog-empty-state\"\n className={cn(\n \"pz:flex pz:h-[200px] pz:flex-col pz:items-center pz:justify-center pz:rounded-md pz:border pz:border-dashed pz:p-8 pz:text-center\",\n classNames?.emptyState,\n className,\n )}\n >\n <p className=\"pz:text-sm pz:text-muted-foreground\">\n {children ?? \"No results found. Try adjusting your filters.\"}\n </p>\n </div>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,kBAAkB,EAAE,UAAU,aAAqC;CACjF,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GACT,qIACA,YAAY,YACZ,UACD;YAED,oBAAC,KAAD;GAAG,WAAU;aACV,YAAY;GACX;EACA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from "react";
|
|
2
|
+
//#region src/components/defaults/catalog/filter-select.d.ts
|
|
3
|
+
interface FilterSelectOption {
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
value: string;
|
|
6
|
+
icon?: ComponentType<{
|
|
7
|
+
className?: string;
|
|
8
|
+
}>;
|
|
9
|
+
imageSrc?: string;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { FilterSelectOption };
|
|
13
|
+
//# sourceMappingURL=filter-select.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-select.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/filter-select.tsx"],"mappings":";;UAYiB,kBAAA;EACf,KAAA,EAAO,SAAA;EACP,KAAA;EACA,IAAA,GAAO,aAAA;IAAgB,SAAA;EAAA;EACvB,QAAA;AAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
3
|
+
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "../../ui/select.mjs";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/defaults/catalog/filter-select.tsx
|
|
7
|
+
function DefaultFilterSelect({ placeholder, value, onChange, options, clearValue = "__clear__", className }) {
|
|
8
|
+
const { classNames } = useCatalogConfig();
|
|
9
|
+
const isActive = !!value;
|
|
10
|
+
return /* @__PURE__ */ jsxs(Select, {
|
|
11
|
+
value: value || "",
|
|
12
|
+
onValueChange: (v) => {
|
|
13
|
+
if (!v || v === clearValue) onChange(null);
|
|
14
|
+
else onChange(v);
|
|
15
|
+
},
|
|
16
|
+
children: [/* @__PURE__ */ jsx(SelectTrigger, {
|
|
17
|
+
"data-active": isActive ? "" : void 0,
|
|
18
|
+
className: cn("pz:h-9 pz:gap-2 pz:px-3", classNames?.filterSelect, classNames?.filterSelectButton, isActive && "pz:bg-primary pz:text-primary-foreground pz:border-primary", isActive && classNames?.filterSelectButtonActive, className),
|
|
19
|
+
children: /* @__PURE__ */ jsx(SelectValue, { placeholder })
|
|
20
|
+
}), /* @__PURE__ */ jsx(SelectContent, {
|
|
21
|
+
className: classNames?.filterPopover,
|
|
22
|
+
children: /* @__PURE__ */ jsxs(SelectGroup, { children: [/* @__PURE__ */ jsx(SelectItem, {
|
|
23
|
+
value: clearValue,
|
|
24
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
25
|
+
className: "pz:text-muted-foreground",
|
|
26
|
+
children: "Clear filter"
|
|
27
|
+
})
|
|
28
|
+
}), options.map((opt) => {
|
|
29
|
+
const Icon = opt.icon;
|
|
30
|
+
return /* @__PURE__ */ jsxs(SelectItem, {
|
|
31
|
+
value: opt.value,
|
|
32
|
+
children: [Icon ? /* @__PURE__ */ jsx(Icon, { className: "pz:size-4" }) : opt.imageSrc ? /* @__PURE__ */ jsx("img", {
|
|
33
|
+
src: opt.imageSrc,
|
|
34
|
+
alt: "",
|
|
35
|
+
className: "pz:size-4 pz:rounded-sm"
|
|
36
|
+
}) : null, opt.label]
|
|
37
|
+
}, opt.value);
|
|
38
|
+
})] })
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { DefaultFilterSelect };
|
|
45
|
+
//# sourceMappingURL=filter-select.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-select.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/filter-select.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../ui/select.js\";\n\nexport interface FilterSelectOption {\n label: ReactNode;\n value: string;\n icon?: ComponentType<{ className?: string }>;\n imageSrc?: string;\n}\n\nexport interface DefaultFilterSelectProps {\n placeholder: ReactNode;\n value: string;\n onChange: (value: string | null) => void;\n options: ReadonlyArray<FilterSelectOption>;\n /** Sentinel option value used to clear the selection. Defaults to \"__clear__\". */\n clearValue?: string;\n className?: string;\n}\n\nexport function DefaultFilterSelect({\n placeholder,\n value,\n onChange,\n options,\n clearValue = \"__clear__\",\n className,\n}: DefaultFilterSelectProps) {\n const { classNames } = useCatalogConfig();\n const isActive = !!value;\n return (\n <Select\n value={value || \"\"}\n onValueChange={(v) => {\n if (!v || v === clearValue) onChange(null);\n else onChange(v);\n }}\n >\n <SelectTrigger\n data-active={isActive ? \"\" : undefined}\n className={cn(\n \"pz:h-9 pz:gap-2 pz:px-3\",\n classNames?.filterSelect,\n classNames?.filterSelectButton,\n isActive && \"pz:bg-primary pz:text-primary-foreground pz:border-primary\",\n isActive && classNames?.filterSelectButtonActive,\n className,\n )}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent className={classNames?.filterPopover}>\n <SelectGroup>\n <SelectItem value={clearValue}>\n <span className=\"pz:text-muted-foreground\">Clear filter</span>\n </SelectItem>\n {options.map((opt) => {\n const Icon = opt.icon;\n return (\n <SelectItem key={opt.value} value={opt.value}>\n {Icon ? (\n <Icon className=\"pz:size-4\" />\n ) : opt.imageSrc ? (\n <img src={opt.imageSrc} alt=\"\" className=\"pz:size-4 pz:rounded-sm\" />\n ) : null}\n {opt.label}\n </SelectItem>\n );\n })}\n </SelectGroup>\n </SelectContent>\n </Select>\n );\n}\n"],"mappings":";;;;;;AA6BA,SAAgB,oBAAoB,EAClC,aACA,OACA,UACA,SACA,aAAa,aACb,aAC2B;CAC3B,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,WAAW,CAAC,CAAC;AACnB,QACE,qBAAC,QAAD;EACE,OAAO,SAAS;EAChB,gBAAgB,MAAM;AACpB,OAAI,CAAC,KAAK,MAAM,WAAY,UAAS,KAAK;OACrC,UAAS,EAAE;;YAJpB,CAOE,oBAAC,eAAD;GACE,eAAa,WAAW,KAAK;GAC7B,WAAW,GACT,2BACA,YAAY,cACZ,YAAY,oBACZ,YAAY,8DACZ,YAAY,YAAY,0BACxB,UACD;aAED,oBAAC,aAAD,EAA0B,aAAe;GAC3B,GAChB,oBAAC,eAAD;GAAe,WAAW,YAAY;aACpC,qBAAC,aAAD,aACE,oBAAC,YAAD;IAAY,OAAO;cACjB,oBAAC,QAAD;KAAM,WAAU;eAA2B;KAAmB;IACnD,GACZ,QAAQ,KAAK,QAAQ;IACpB,MAAM,OAAO,IAAI;AACjB,WACE,qBAAC,YAAD;KAA4B,OAAO,IAAI;eAAvC,CACG,OACC,oBAAC,MAAD,EAAM,WAAU,aAAc,IAC5B,IAAI,WACN,oBAAC,OAAD;MAAK,KAAK,IAAI;MAAU,KAAI;MAAG,WAAU;MAA4B,IACnE,MACH,IAAI,MACM;OAPI,IAAI,MAOR;KAEf,CACU;GACA,EACT"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { PortalContainerContext } from "../../../context/portal-container-context.mjs";
|
|
2
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
3
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
4
|
+
import { renderSlot } from "../../../utils/render-slot.mjs";
|
|
5
|
+
import { useCallback, useState } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
8
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
9
|
+
|
|
10
|
+
//#region src/components/defaults/catalog/layout.tsx
|
|
11
|
+
/**
|
|
12
|
+
* Outermost catalog wrapper. Owns the `PortalContainerContext.Provider` so
|
|
13
|
+
* elements-react popovers/dropdowns mounted inside the catalog tree portal
|
|
14
|
+
* back into this container — keeping them inside the catalog's CSS scope.
|
|
15
|
+
*/
|
|
16
|
+
function DefaultCatalogRoot({ className, render, children, ...props }) {
|
|
17
|
+
const { classNames } = useCatalogConfig();
|
|
18
|
+
const [portalContainer, setPortalContainer] = useState(null);
|
|
19
|
+
const portalRef = useCallback((node) => {
|
|
20
|
+
setPortalContainer(node);
|
|
21
|
+
}, []);
|
|
22
|
+
const wrappedChildren = /* @__PURE__ */ jsx(PortalContainerContext.Provider, {
|
|
23
|
+
value: portalContainer,
|
|
24
|
+
children
|
|
25
|
+
});
|
|
26
|
+
return renderSlot({
|
|
27
|
+
defaultTagName: "div",
|
|
28
|
+
render,
|
|
29
|
+
state: {},
|
|
30
|
+
props: {
|
|
31
|
+
"data-p0": "catalog",
|
|
32
|
+
className: cn("pz:flex pz:flex-col pz:gap-4", classNames?.root, className),
|
|
33
|
+
ref: portalRef,
|
|
34
|
+
children: wrappedChildren,
|
|
35
|
+
...props
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function DefaultCatalogFilters({ className, render, ...props }) {
|
|
40
|
+
const { classNames } = useCatalogConfig();
|
|
41
|
+
return useRender({
|
|
42
|
+
defaultTagName: "div",
|
|
43
|
+
render,
|
|
44
|
+
props: mergeProps({
|
|
45
|
+
className: cn("pz:flex pz:flex-wrap pz:gap-2", classNames?.filters, className),
|
|
46
|
+
"data-p0": "catalog-filters"
|
|
47
|
+
}, props)
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
export { DefaultCatalogFilters, DefaultCatalogRoot };
|
|
53
|
+
//# sourceMappingURL=layout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/layout.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { type ComponentProps, type ReactNode, useCallback, useState } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { PortalContainerContext } from \"../../../context/portal-container-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport { type RenderProp, renderSlot } from \"../../../utils/render-slot.js\";\n\n/**\n * Outermost catalog wrapper. Owns the `PortalContainerContext.Provider` so\n * elements-react popovers/dropdowns mounted inside the catalog tree portal\n * back into this container — keeping them inside the catalog's CSS scope.\n */\nexport function DefaultCatalogRoot({\n className,\n render,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n render?: RenderProp<ComponentProps<\"div\">, Record<never, never>>;\n}) {\n const { classNames } = useCatalogConfig();\n const [portalContainer, setPortalContainer] = useState<HTMLElement | null>(null);\n const portalRef = useCallback((node: HTMLElement | null) => {\n setPortalContainer(node);\n }, []);\n\n const wrappedChildren: ReactNode = (\n <PortalContainerContext.Provider value={portalContainer}>\n {children}\n </PortalContainerContext.Provider>\n );\n\n return renderSlot({\n defaultTagName: \"div\",\n render,\n state: {},\n props: {\n \"data-p0\": \"catalog\",\n className: cn(\"pz:flex pz:flex-col pz:gap-4\", classNames?.root, className),\n ref: portalRef,\n children: wrappedChildren,\n ...props,\n } as ComponentProps<\"div\">,\n });\n}\n\nexport function DefaultCatalogList({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\">) {\n const { classNames } = useCatalogConfig();\n return useRender({\n defaultTagName: \"div\",\n render,\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"pz:grid pz:gap-3 pz:grid-cols-1 pz:sm:grid-cols-2 pz:lg:grid-cols-3\",\n classNames?.list,\n className,\n ),\n ...({ \"data-p0\": \"catalog-list\" } as Record<string, string>),\n },\n props,\n ),\n });\n}\n\nexport function DefaultCatalogFilters({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\">) {\n const { classNames } = useCatalogConfig();\n return useRender({\n defaultTagName: \"div\",\n render,\n props: mergeProps<\"div\">(\n {\n className: cn(\"pz:flex pz:flex-wrap pz:gap-2\", classNames?.filters, className),\n ...({ \"data-p0\": \"catalog-filters\" } as Record<string, string>),\n },\n props,\n ),\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,SAAgB,mBAAmB,EACjC,WACA,QACA,UACA,GAAG,SAGF;CACD,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,CAAC,iBAAiB,sBAAsB,SAA6B,KAAK;CAChF,MAAM,YAAY,aAAa,SAA6B;AAC1D,qBAAmB,KAAK;IACvB,EAAE,CAAC;CAEN,MAAM,kBACJ,oBAAC,uBAAuB,UAAxB;EAAiC,OAAO;EACrC;EAC+B;AAGpC,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE;EACT,OAAO;GACL,WAAW;GACX,WAAW,GAAG,gCAAgC,YAAY,MAAM,UAAU;GAC1E,KAAK;GACL,UAAU;GACV,GAAG;GACJ;EACF,CAAC;;AA0BJ,SAAgB,sBAAsB,EACpC,WACA,QACA,GAAG,SAC+B;CAClC,MAAM,EAAE,eAAe,kBAAkB;AACzC,QAAO,UAAU;EACf,gBAAgB;EAChB;EACA,OAAO,WACL;GACE,WAAW,GAAG,iCAAiC,YAAY,SAAS,UAAU;GACxE,WAAW;GAClB,EACD,MACD;EACF,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AvatarGroupProps } from "../../../widgets/avatar-group.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
import { ProviderName } from "@pipe0/base";
|
|
5
|
+
|
|
6
|
+
//#region src/components/defaults/catalog/provider-avatars.d.ts
|
|
7
|
+
interface CatalogProviderAvatarsProps extends Omit<AvatarGroupProps, "providers" | "render"> {
|
|
8
|
+
/** Override the providers list. Defaults to `card.providers` from card context. */
|
|
9
|
+
providers?: readonly ProviderName[];
|
|
10
|
+
/** Override the cost lookup. Defaults to `card.startingCostPerProvider` from card context. */
|
|
11
|
+
startingCostPerProvider?: Partial<Record<ProviderName, number>>;
|
|
12
|
+
/** When true, the hover popover does not appear — pure visual stack. */
|
|
13
|
+
disableHover?: boolean;
|
|
14
|
+
/** Fully replace the popover body. */
|
|
15
|
+
renderPopover?: (state: {
|
|
16
|
+
providers: readonly ProviderName[];
|
|
17
|
+
startingCostPerProvider?: Partial<Record<ProviderName, number>>;
|
|
18
|
+
}) => ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* `<AvatarGroup>` with a hover popover that lists each provider plus its
|
|
22
|
+
* starting cost. Self-binds to the surrounding catalog card context — pass
|
|
23
|
+
* explicit `providers` to override.
|
|
24
|
+
*/
|
|
25
|
+
declare function CatalogProviderAvatars({
|
|
26
|
+
providers,
|
|
27
|
+
startingCostPerProvider,
|
|
28
|
+
disableHover,
|
|
29
|
+
renderPopover,
|
|
30
|
+
size,
|
|
31
|
+
showCount,
|
|
32
|
+
className,
|
|
33
|
+
...rest
|
|
34
|
+
}: CatalogProviderAvatarsProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { CatalogProviderAvatars, CatalogProviderAvatarsProps };
|
|
37
|
+
//# sourceMappingURL=provider-avatars.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-avatars.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/provider-avatars.tsx"],"mappings":";;;;;;UASiB,2BAAA,SACP,IAAA,CAAK,gBAAA;;EAEb,SAAA,YAAqB,YAAA;EAHN;EAKf,uBAAA,GAA0B,OAAA,CAAQ,MAAA,CAAO,YAAA;;EAEzC,YAAA;EAJqB;EAMrB,aAAA,IAAiB,KAAA;IACf,SAAA,WAAoB,YAAA;IACpB,uBAAA,GAA0B,OAAA,CAAQ,MAAA,CAAO,YAAA;EAAA,MACrC,SAAA;AAAA;;;;;;iBAQQ,sBAAA,CAAA;EACd,SAAA;EACA,uBAAA;EACA,YAAA;EACA,aAAA;EACA,IAAA;EACA,SAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,2BAAA,GAA2B,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { usePortalContainer } from "../../../context/portal-container-context.mjs";
|
|
2
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
3
|
+
import { useAnyCatalogCardOptional } from "../../../context/catalog-card-context.mjs";
|
|
4
|
+
import { AvatarGroup } from "../../../widgets/avatar-group.mjs";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Coins } from "lucide-react";
|
|
7
|
+
import { getProviderEntry } from "@pipe0/base";
|
|
8
|
+
import { PreviewCard } from "@base-ui/react/preview-card";
|
|
9
|
+
|
|
10
|
+
//#region src/components/defaults/catalog/provider-avatars.tsx
|
|
11
|
+
/**
|
|
12
|
+
* `<AvatarGroup>` with a hover popover that lists each provider plus its
|
|
13
|
+
* starting cost. Self-binds to the surrounding catalog card context — pass
|
|
14
|
+
* explicit `providers` to override.
|
|
15
|
+
*/
|
|
16
|
+
function CatalogProviderAvatars({ providers, startingCostPerProvider, disableHover, renderPopover, size, showCount, className, ...rest }) {
|
|
17
|
+
const card = useAnyCatalogCardOptional()?.card;
|
|
18
|
+
const portalContainer = usePortalContainer();
|
|
19
|
+
const resolvedProviders = providers ?? card?.providers ?? [];
|
|
20
|
+
const resolvedCosts = startingCostPerProvider ?? card?.startingCostPerProvider;
|
|
21
|
+
if (!resolvedProviders.length) return null;
|
|
22
|
+
if (disableHover) return /* @__PURE__ */ jsx(AvatarGroup, {
|
|
23
|
+
providers: resolvedProviders,
|
|
24
|
+
size,
|
|
25
|
+
showCount,
|
|
26
|
+
className,
|
|
27
|
+
onClick: (e) => e.stopPropagation(),
|
|
28
|
+
...rest
|
|
29
|
+
});
|
|
30
|
+
return /* @__PURE__ */ jsxs(PreviewCard.Root, { children: [/* @__PURE__ */ jsx(PreviewCard.Trigger, { render: (triggerProps) => /* @__PURE__ */ jsx(AvatarGroup, {
|
|
31
|
+
providers: resolvedProviders,
|
|
32
|
+
size,
|
|
33
|
+
showCount,
|
|
34
|
+
className: cn("pz:cursor-pointer", className),
|
|
35
|
+
...rest,
|
|
36
|
+
...triggerProps,
|
|
37
|
+
onClick: (e) => {
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
const triggerOnClick = triggerProps.onClick;
|
|
40
|
+
triggerOnClick?.(e);
|
|
41
|
+
}
|
|
42
|
+
}) }), /* @__PURE__ */ jsx(PreviewCard.Portal, {
|
|
43
|
+
container: portalContainer,
|
|
44
|
+
children: /* @__PURE__ */ jsx(PreviewCard.Positioner, {
|
|
45
|
+
side: "bottom",
|
|
46
|
+
sideOffset: 4,
|
|
47
|
+
className: "pz:isolate pz:z-50",
|
|
48
|
+
children: /* @__PURE__ */ jsx(PreviewCard.Popup, {
|
|
49
|
+
"data-p0": "catalog-provider-avatars-popup",
|
|
50
|
+
className: "pz:rounded-lg pz:bg-popover pz:text-popover-foreground pz:p-2.5 pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:outline-none pz:w-56",
|
|
51
|
+
children: renderPopover ? renderPopover({
|
|
52
|
+
providers: resolvedProviders,
|
|
53
|
+
startingCostPerProvider: resolvedCosts
|
|
54
|
+
}) : /* @__PURE__ */ jsx(DefaultPopoverBody, {
|
|
55
|
+
providers: resolvedProviders,
|
|
56
|
+
startingCostPerProvider: resolvedCosts
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
})] });
|
|
61
|
+
}
|
|
62
|
+
function DefaultPopoverBody({ providers, startingCostPerProvider }) {
|
|
63
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
64
|
+
className: "pz:flex pz:flex-col pz:gap-1.5",
|
|
65
|
+
children: [/* @__PURE__ */ jsx("h4", {
|
|
66
|
+
className: "pz:m-0 pz:text-sm pz:font-medium",
|
|
67
|
+
children: "Providers"
|
|
68
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
69
|
+
className: "pz:flex pz:flex-col pz:gap-1.5 pz:list-none pz:m-0 pz:p-0",
|
|
70
|
+
children: providers.map((provider) => {
|
|
71
|
+
const entry = getProviderEntry(provider);
|
|
72
|
+
const cost = startingCostPerProvider?.[provider];
|
|
73
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
74
|
+
className: "pz:flex pz:items-center pz:gap-2",
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ jsx("img", {
|
|
77
|
+
src: entry?.logoUrl ?? "/placeholder.svg?height=24&width=24",
|
|
78
|
+
alt: entry?.label ?? provider,
|
|
79
|
+
className: "pz:rounded-md pz:h-6 pz:w-6 pz:object-cover pz:bg-background pz:border pz:border-input"
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ jsx("span", {
|
|
82
|
+
className: "pz:text-sm pz:flex-1 pz:truncate",
|
|
83
|
+
children: entry?.label ?? provider
|
|
84
|
+
}),
|
|
85
|
+
startingCostPerProvider ? /* @__PURE__ */ jsxs("span", {
|
|
86
|
+
className: "pz:inline-flex pz:items-center pz:gap-1 pz:text-xs pz:text-muted-foreground",
|
|
87
|
+
children: [/* @__PURE__ */ jsx(Coins, { className: "pz:size-3" }), cost ?? "Free"]
|
|
88
|
+
}) : null
|
|
89
|
+
]
|
|
90
|
+
}, provider);
|
|
91
|
+
})
|
|
92
|
+
})]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
export { CatalogProviderAvatars };
|
|
98
|
+
//# sourceMappingURL=provider-avatars.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-avatars.mjs","names":["PreviewCardPrimitive"],"sources":["../../../../src/components/defaults/catalog/provider-avatars.tsx"],"sourcesContent":["import { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\";\nimport { getProviderEntry, type ProviderName } from \"@pipe0/base\";\nimport { Coins } from \"lucide-react\";\nimport type { MouseEvent, ReactNode } from \"react\";\nimport { useAnyCatalogCardOptional } from \"../../../context/catalog-card-context.js\";\nimport { usePortalContainer } from \"../../../context/portal-container-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport { AvatarGroup, type AvatarGroupProps } from \"../../../widgets/avatar-group.js\";\n\nexport interface CatalogProviderAvatarsProps\n extends Omit<AvatarGroupProps, \"providers\" | \"render\"> {\n /** Override the providers list. Defaults to `card.providers` from card context. */\n providers?: readonly ProviderName[];\n /** Override the cost lookup. Defaults to `card.startingCostPerProvider` from card context. */\n startingCostPerProvider?: Partial<Record<ProviderName, number>>;\n /** When true, the hover popover does not appear — pure visual stack. */\n disableHover?: boolean;\n /** Fully replace the popover body. */\n renderPopover?: (state: {\n providers: readonly ProviderName[];\n startingCostPerProvider?: Partial<Record<ProviderName, number>>;\n }) => ReactNode;\n}\n\n/**\n * `<AvatarGroup>` with a hover popover that lists each provider plus its\n * starting cost. Self-binds to the surrounding catalog card context — pass\n * explicit `providers` to override.\n */\nexport function CatalogProviderAvatars({\n providers,\n startingCostPerProvider,\n disableHover,\n renderPopover,\n size,\n showCount,\n className,\n ...rest\n}: CatalogProviderAvatarsProps) {\n const card = useAnyCatalogCardOptional()?.card;\n const portalContainer = usePortalContainer();\n const resolvedProviders = providers ?? (card?.providers as ProviderName[] | undefined) ?? [];\n const resolvedCosts = startingCostPerProvider ?? card?.startingCostPerProvider;\n\n if (!resolvedProviders.length) return null;\n\n if (disableHover) {\n return (\n <AvatarGroup\n providers={resolvedProviders}\n size={size}\n showCount={showCount}\n className={className}\n onClick={(e) => e.stopPropagation()}\n {...rest}\n />\n );\n }\n\n return (\n <PreviewCardPrimitive.Root>\n <PreviewCardPrimitive.Trigger\n render={(triggerProps) => (\n <AvatarGroup\n providers={resolvedProviders}\n size={size}\n showCount={showCount}\n className={cn(\"pz:cursor-pointer\", className)}\n {...rest}\n {...(triggerProps as Record<string, unknown>)}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const triggerOnClick = (\n triggerProps as {\n onClick?: (e: MouseEvent<HTMLDivElement>) => void;\n }\n ).onClick;\n triggerOnClick?.(e);\n }}\n />\n )}\n />\n <PreviewCardPrimitive.Portal container={portalContainer}>\n <PreviewCardPrimitive.Positioner\n side=\"bottom\"\n sideOffset={4}\n className=\"pz:isolate pz:z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-p0=\"catalog-provider-avatars-popup\"\n className=\"pz:rounded-lg pz:bg-popover pz:text-popover-foreground pz:p-2.5 pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:outline-none pz:w-56\"\n >\n {renderPopover ? (\n renderPopover({\n providers: resolvedProviders,\n startingCostPerProvider: resolvedCosts,\n })\n ) : (\n <DefaultPopoverBody\n providers={resolvedProviders}\n startingCostPerProvider={resolvedCosts}\n />\n )}\n </PreviewCardPrimitive.Popup>\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n </PreviewCardPrimitive.Root>\n );\n}\n\nfunction DefaultPopoverBody({\n providers,\n startingCostPerProvider,\n}: {\n providers: readonly ProviderName[];\n startingCostPerProvider?: Partial<Record<ProviderName, number>>;\n}) {\n return (\n <div className=\"pz:flex pz:flex-col pz:gap-1.5\">\n <h4 className=\"pz:m-0 pz:text-sm pz:font-medium\">Providers</h4>\n <ul className=\"pz:flex pz:flex-col pz:gap-1.5 pz:list-none pz:m-0 pz:p-0\">\n {providers.map((provider) => {\n const entry = getProviderEntry(provider);\n const cost = startingCostPerProvider?.[provider];\n return (\n <li key={provider} className=\"pz:flex pz:items-center pz:gap-2\">\n <img\n src={entry?.logoUrl ?? \"/placeholder.svg?height=24&width=24\"}\n alt={entry?.label ?? provider}\n className=\"pz:rounded-md pz:h-6 pz:w-6 pz:object-cover pz:bg-background pz:border pz:border-input\"\n />\n <span className=\"pz:text-sm pz:flex-1 pz:truncate\">{entry?.label ?? provider}</span>\n {startingCostPerProvider ? (\n <span className=\"pz:inline-flex pz:items-center pz:gap-1 pz:text-xs pz:text-muted-foreground\">\n <Coins className=\"pz:size-3\" />\n {cost ?? \"Free\"}\n </span>\n ) : null}\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AA6BA,SAAgB,uBAAuB,EACrC,WACA,yBACA,cACA,eACA,MACA,WACA,WACA,GAAG,QAC2B;CAC9B,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,kBAAkB,oBAAoB;CAC5C,MAAM,oBAAoB,aAAc,MAAM,aAA4C,EAAE;CAC5F,MAAM,gBAAgB,2BAA2B,MAAM;AAEvD,KAAI,CAAC,kBAAkB,OAAQ,QAAO;AAEtC,KAAI,aACF,QACE,oBAAC,aAAD;EACE,WAAW;EACL;EACK;EACA;EACX,UAAU,MAAM,EAAE,iBAAiB;EACnC,GAAI;EACJ;AAIN,QACE,qBAACA,YAAqB,MAAtB,aACE,oBAACA,YAAqB,SAAtB,EACE,SAAS,iBACP,oBAAC,aAAD;EACE,WAAW;EACL;EACK;EACX,WAAW,GAAG,qBAAqB,UAAU;EAC7C,GAAI;EACJ,GAAK;EACL,UAAU,MAAkC;AAC1C,KAAE,iBAAiB;GACnB,MAAM,iBACJ,aAGA;AACF,oBAAiB,EAAE;;EAErB,GAEJ,GACF,oBAACA,YAAqB,QAAtB;EAA6B,WAAW;YACtC,oBAACA,YAAqB,YAAtB;GACE,MAAK;GACL,YAAY;GACZ,WAAU;aAEV,oBAACA,YAAqB,OAAtB;IACE,WAAQ;IACR,WAAU;cAET,gBACC,cAAc;KACZ,WAAW;KACX,yBAAyB;KAC1B,CAAC,GAEF,oBAAC,oBAAD;KACE,WAAW;KACX,yBAAyB;KACzB;IAEuB;GACG;EACN,EACJ;;AAIhC,SAAS,mBAAmB,EAC1B,WACA,2BAIC;AACD,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,MAAD;GAAI,WAAU;aAAmC;GAAc,GAC/D,oBAAC,MAAD;GAAI,WAAU;aACX,UAAU,KAAK,aAAa;IAC3B,MAAM,QAAQ,iBAAiB,SAAS;IACxC,MAAM,OAAO,0BAA0B;AACvC,WACE,qBAAC,MAAD;KAAmB,WAAU;eAA7B;MACE,oBAAC,OAAD;OACE,KAAK,OAAO,WAAW;OACvB,KAAK,OAAO,SAAS;OACrB,WAAU;OACV;MACF,oBAAC,QAAD;OAAM,WAAU;iBAAoC,OAAO,SAAS;OAAgB;MACnF,0BACC,qBAAC,QAAD;OAAM,WAAU;iBAAhB,CACE,oBAAC,OAAD,EAAO,WAAU,aAAc,GAC9B,QAAQ,OACJ;WACL;MACD;OAbI,SAaJ;KAEP;GACC,EACD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Button } from "../ui/button.mjs";
|
|
2
|
+
import { IconTrash } from "../internal/icons.mjs";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/defaults/field-section-enumeration.tsx
|
|
6
|
+
function FieldSectionEnumeration({ onRemove, index, label }) {
|
|
7
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
8
|
+
className: "pz:p-2 pz:gap-1 pz:border pz:border-input pz:rounded-md pz:flex pz:items-center",
|
|
9
|
+
children: [label ? /* @__PURE__ */ jsxs("div", {
|
|
10
|
+
className: "pz:py-0.5 pz:px-1 pz:select-none pz:text-xs pz:rounded-sm pz:bg-accent pz:border pz:border-input pz:text-muted-foreground pz:grid pz:place-content-center",
|
|
11
|
+
children: [
|
|
12
|
+
index + 1,
|
|
13
|
+
". ",
|
|
14
|
+
label
|
|
15
|
+
]
|
|
16
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
17
|
+
className: "pz:select-none pz:text-xs pz:rounded-sm pz:bg-accent pz:border pz:border-input pz:text-muted-foreground pz:size-5 pz:grid pz:place-content-center",
|
|
18
|
+
children: index + 1
|
|
19
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
20
|
+
variant: "destructive",
|
|
21
|
+
size: "icon",
|
|
22
|
+
className: "pz:[&_svg]:size-2 pz:size-5 pz:rounded-sm",
|
|
23
|
+
onClick: () => onRemove(index),
|
|
24
|
+
title: "Remove condition",
|
|
25
|
+
children: /* @__PURE__ */ jsx(IconTrash, {})
|
|
26
|
+
})]
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { FieldSectionEnumeration };
|
|
32
|
+
//# sourceMappingURL=field-section-enumeration.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-section-enumeration.mjs","names":[],"sources":["../../../src/components/defaults/field-section-enumeration.tsx"],"sourcesContent":["import { IconTrash } from \"../internal/icons\";\nimport { Button } from \"../ui/button\";\n\ntype FieldSectionEnumerationProps = {\n label?: string;\n index: number;\n onRemove: (i: number) => unknown;\n};\n\nexport function FieldSectionEnumeration({ onRemove, index, label }: FieldSectionEnumerationProps) {\n return (\n <div className=\"pz:p-2 pz:gap-1 pz:border pz:border-input pz:rounded-md pz:flex pz:items-center\">\n {label ? (\n <div className=\"pz:py-0.5 pz:px-1 pz:select-none pz:text-xs pz:rounded-sm pz:bg-accent pz:border pz:border-input pz:text-muted-foreground pz:grid pz:place-content-center\">\n {index + 1}. {label}\n </div>\n ) : (\n <div className=\"pz:select-none pz:text-xs pz:rounded-sm pz:bg-accent pz:border pz:border-input pz:text-muted-foreground pz:size-5 pz:grid pz:place-content-center\">\n {index + 1}\n </div>\n )}\n <Button\n variant=\"destructive\"\n size=\"icon\"\n className=\"pz:[&_svg]:size-2 pz:size-5 pz:rounded-sm\"\n onClick={() => onRemove(index)}\n title=\"Remove condition\"\n >\n <IconTrash />\n </Button>\n </div>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,wBAAwB,EAAE,UAAU,OAAO,SAAuC;AAChG,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACG,QACC,qBAAC,OAAD;GAAK,WAAU;aAAf;IACG,QAAQ;IAAE;IAAG;IACV;OAEN,oBAAC,OAAD;GAAK,WAAU;aACZ,QAAQ;GACL,GAER,oBAAC,QAAD;GACE,SAAQ;GACR,MAAK;GACL,WAAU;GACV,eAAe,SAAS,MAAM;GAC9B,OAAM;aAEN,oBAAC,WAAD,EAAa;GACN,EACL"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AnyFieldProps } from "../../../types/field-props.mjs";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
|
+
|
|
4
|
+
//#region src/components/defaults/layout/field-wrapper.d.ts
|
|
5
|
+
interface DefaultFieldWrapperState {
|
|
6
|
+
field: AnyFieldProps;
|
|
7
|
+
}
|
|
8
|
+
interface DefaultFieldWrapperProps extends useRender.ComponentProps<"div", DefaultFieldWrapperState> {
|
|
9
|
+
field: AnyFieldProps;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DefaultFieldWrapperProps };
|
|
13
|
+
//# sourceMappingURL=field-wrapper.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-wrapper.d.mts","names":[],"sources":["../../../../src/components/defaults/layout/field-wrapper.tsx"],"mappings":";;;;UAQiB,wBAAA;EACf,KAAA,EAAO,aAAA;AAAA;AAAA,UAGQ,wBAAA,SACP,SAAA,CAAU,cAAA,QAAsB,wBAAA;EACxC,KAAA,EAAO,aAAA;AAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useFormConfig } from "../../../context/form-context.mjs";
|
|
3
|
+
import { HoverInfo } from "../../hover-info.mjs";
|
|
4
|
+
import { RichText } from "../../rich-text.mjs";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
7
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
8
|
+
|
|
9
|
+
//#region src/components/defaults/layout/field-wrapper.tsx
|
|
10
|
+
function DefaultFieldWrapper({ field, children, className, render, ...props }) {
|
|
11
|
+
const { classNames } = useFormConfig();
|
|
12
|
+
const hasError = !!field.error;
|
|
13
|
+
const isDisabled = field.disabled;
|
|
14
|
+
const defaultContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15
|
+
!(field.kind === "boolean_input") && (field.label || field.description || field.info) && /* @__PURE__ */ jsxs("div", {
|
|
16
|
+
className: "pz:flex pz:flex-col pz:gap-1",
|
|
17
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
18
|
+
className: "pz:flex pz:items-center pz:gap-1.5",
|
|
19
|
+
children: [field.label && /* @__PURE__ */ jsx("label", {
|
|
20
|
+
"data-p0": "label",
|
|
21
|
+
htmlFor: field.id,
|
|
22
|
+
className: classNames?.label ?? cn("pz:text-sm pz:leading-none pz:font-medium pz:select-none", hasError && "pz:text-destructive"),
|
|
23
|
+
children: /* @__PURE__ */ jsx(RichText, { children: field.label })
|
|
24
|
+
}), field.info && /* @__PURE__ */ jsx(HoverInfo, { children: /* @__PURE__ */ jsx(RichText, { children: field.info }) })]
|
|
25
|
+
}), field.description && /* @__PURE__ */ jsx("p", {
|
|
26
|
+
"data-p0": "description",
|
|
27
|
+
className: classNames?.description ?? "pz:text-xs pz:text-muted-foreground",
|
|
28
|
+
children: /* @__PURE__ */ jsx(RichText, { children: field.description })
|
|
29
|
+
})]
|
|
30
|
+
}),
|
|
31
|
+
isDisabled ? /* @__PURE__ */ jsx("div", {
|
|
32
|
+
className: "pz:opacity-60 pz:pointer-events-none",
|
|
33
|
+
children
|
|
34
|
+
}) : children,
|
|
35
|
+
isDisabled && field.disabledReason && /* @__PURE__ */ jsx("div", {
|
|
36
|
+
"data-p0": "disabled-reason",
|
|
37
|
+
className: classNames?.disabledReason ?? "pz:rounded-md pz:border pz:border-input pz:bg-muted/40 pz:px-3 pz:py-2 pz:text-xs pz:text-muted-foreground",
|
|
38
|
+
children: /* @__PURE__ */ jsx(RichText, { children: field.disabledReason })
|
|
39
|
+
}),
|
|
40
|
+
hasError && /* @__PURE__ */ jsx("span", {
|
|
41
|
+
"data-p0": "error",
|
|
42
|
+
className: classNames?.error ?? "pz:text-destructive pz:text-xs pz:font-medium",
|
|
43
|
+
role: "alert",
|
|
44
|
+
children: /* @__PURE__ */ jsx(RichText, { children: field.error })
|
|
45
|
+
})
|
|
46
|
+
] });
|
|
47
|
+
return useRender({
|
|
48
|
+
defaultTagName: "div",
|
|
49
|
+
render,
|
|
50
|
+
state: { field },
|
|
51
|
+
props: mergeProps({
|
|
52
|
+
className: cn(classNames?.field ?? "pz:grid pz:gap-2", isDisabled && classNames?.fieldDisabled, className),
|
|
53
|
+
children: defaultContent,
|
|
54
|
+
"data-p0": "field",
|
|
55
|
+
"data-p0-field": field.path,
|
|
56
|
+
"data-p0-kind": field.kind,
|
|
57
|
+
...isDisabled ? {
|
|
58
|
+
"data-p0-disabled": "true",
|
|
59
|
+
"aria-disabled": "true"
|
|
60
|
+
} : {}
|
|
61
|
+
}, props)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
export { DefaultFieldWrapper };
|
|
67
|
+
//# sourceMappingURL=field-wrapper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-wrapper.mjs","names":[],"sources":["../../../../src/components/defaults/layout/field-wrapper.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useFormConfig } from \"../../../context/form-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport type { AnyFieldProps } from \"../../../types/field-props.js\";\nimport { HoverInfo } from \"../../hover-info.js\";\nimport { RichText } from \"../../rich-text.js\";\n\nexport interface DefaultFieldWrapperState {\n field: AnyFieldProps;\n}\n\nexport interface DefaultFieldWrapperProps\n extends useRender.ComponentProps<\"div\", DefaultFieldWrapperState> {\n field: AnyFieldProps;\n}\n\nexport function DefaultFieldWrapper({\n field,\n children,\n className,\n render,\n ...props\n}: DefaultFieldWrapperProps) {\n const { classNames } = useFormConfig();\n const hasError = !!field.error;\n const isDisabled = field.disabled;\n\n // Boolean toggles render their label inline with the switch (settings-row\n // pattern), so the wrapper's label/description block is suppressed for them.\n const inlineLabel = field.kind === \"boolean_input\";\n\n const defaultContent = (\n <>\n {!inlineLabel && (field.label || field.description || field.info) && (\n <div className=\"pz:flex pz:flex-col pz:gap-1\">\n <div className=\"pz:flex pz:items-center pz:gap-1.5\">\n {field.label && (\n <label\n data-p0=\"label\"\n htmlFor={field.id}\n className={\n classNames?.label ??\n cn(\n \"pz:text-sm pz:leading-none pz:font-medium pz:select-none\",\n hasError && \"pz:text-destructive\",\n )\n }\n >\n <RichText>{field.label}</RichText>\n </label>\n )}\n {field.info && (\n <HoverInfo>\n <RichText>{field.info}</RichText>\n </HoverInfo>\n )}\n </div>\n {field.description && (\n <p\n data-p0=\"description\"\n className={classNames?.description ?? \"pz:text-xs pz:text-muted-foreground\"}\n >\n <RichText>{field.description}</RichText>\n </p>\n )}\n </div>\n )}\n {isDisabled ? (\n <div className=\"pz:opacity-60 pz:pointer-events-none\">{children}</div>\n ) : (\n children\n )}\n {isDisabled && field.disabledReason && (\n <div\n data-p0=\"disabled-reason\"\n className={\n classNames?.disabledReason ??\n \"pz:rounded-md pz:border pz:border-input pz:bg-muted/40 pz:px-3 pz:py-2 pz:text-xs pz:text-muted-foreground\"\n }\n >\n <RichText>{field.disabledReason}</RichText>\n </div>\n )}\n {hasError && (\n <span\n data-p0=\"error\"\n className={classNames?.error ?? \"pz:text-destructive pz:text-xs pz:font-medium\"}\n role=\"alert\"\n >\n <RichText>{field.error}</RichText>\n </span>\n )}\n </>\n );\n\n return useRender({\n defaultTagName: \"div\",\n render,\n state: { field },\n props: mergeProps<\"div\">(\n {\n className: cn(\n classNames?.field ?? \"pz:grid pz:gap-2\",\n isDisabled && classNames?.fieldDisabled,\n className,\n ),\n children: defaultContent,\n ...({\n \"data-p0\": \"field\",\n \"data-p0-field\": field.path,\n \"data-p0-kind\": field.kind,\n ...(isDisabled ? { \"data-p0-disabled\": \"true\", \"aria-disabled\": \"true\" } : {}),\n } as Record<string, string>),\n },\n props,\n ),\n });\n}\n"],"mappings":";;;;;;;;;AAiBA,SAAgB,oBAAoB,EAClC,OACA,UACA,WACA,QACA,GAAG,SACwB;CAC3B,MAAM,EAAE,eAAe,eAAe;CACtC,MAAM,WAAW,CAAC,CAAC,MAAM;CACzB,MAAM,aAAa,MAAM;CAMzB,MAAM,iBACJ;EACG,EAJe,MAAM,SAAS,qBAIb,MAAM,SAAS,MAAM,eAAe,MAAM,SAC1D,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACG,MAAM,SACL,oBAAC,SAAD;KACE,WAAQ;KACR,SAAS,MAAM;KACf,WACE,YAAY,SACZ,GACE,4DACA,YAAY,sBACb;eAGH,oBAAC,UAAD,YAAW,MAAM,OAAiB;KAC5B,GAET,MAAM,QACL,oBAAC,WAAD,YACE,oBAAC,UAAD,YAAW,MAAM,MAAgB,GACvB,EAEV;OACL,MAAM,eACL,oBAAC,KAAD;IACE,WAAQ;IACR,WAAW,YAAY,eAAe;cAEtC,oBAAC,UAAD,YAAW,MAAM,aAAuB;IACtC,EAEF;;EAEP,aACC,oBAAC,OAAD;GAAK,WAAU;GAAwC;GAAe,IAEtE;EAED,cAAc,MAAM,kBACnB,oBAAC,OAAD;GACE,WAAQ;GACR,WACE,YAAY,kBACZ;aAGF,oBAAC,UAAD,YAAW,MAAM,gBAA0B;GACvC;EAEP,YACC,oBAAC,QAAD;GACE,WAAQ;GACR,WAAW,YAAY,SAAS;GAChC,MAAK;aAEL,oBAAC,UAAD,YAAW,MAAM,OAAiB;GAC7B;EAER;AAGL,QAAO,UAAU;EACf,gBAAgB;EAChB;EACA,OAAO,EAAE,OAAO;EAChB,OAAO,WACL;GACE,WAAW,GACT,YAAY,SAAS,oBACrB,cAAc,YAAY,eAC1B,UACD;GACD,UAAU;GAER,WAAW;GACX,iBAAiB,MAAM;GACvB,gBAAgB,MAAM;GACtB,GAAI,aAAa;IAAE,oBAAoB;IAAQ,iBAAiB;IAAQ,GAAG,EAAE;GAEhF,EACD,MACD;EACF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useFormConfig } from "../../../context/form-context.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/form.tsx
|
|
7
|
+
function DefaultForm({ onSubmit, className, render, ...props }) {
|
|
8
|
+
const { classNames } = useFormConfig();
|
|
9
|
+
return useRender({
|
|
10
|
+
defaultTagName: "form",
|
|
11
|
+
render,
|
|
12
|
+
props: mergeProps({
|
|
13
|
+
onSubmit,
|
|
14
|
+
className: cn("p0-form", classNames?.form, className)
|
|
15
|
+
}, props)
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { DefaultForm };
|
|
21
|
+
//# sourceMappingURL=form.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.mjs","names":[],"sources":["../../../../src/components/defaults/layout/form.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport type { BaseSyntheticEvent } from \"react\";\nimport { useFormConfig } from \"../../../context/form-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface DefaultFormProps extends Omit<useRender.ComponentProps<\"form\">, \"onSubmit\"> {\n onSubmit: (e?: BaseSyntheticEvent) => void | Promise<void>;\n}\n\nexport function DefaultForm({ onSubmit, className, render, ...props }: DefaultFormProps) {\n const { classNames } = useFormConfig();\n\n return useRender({\n defaultTagName: \"form\",\n render,\n props: mergeProps<\"form\">(\n {\n onSubmit,\n className: cn(\"p0-form\", classNames?.form, className),\n },\n props,\n ),\n });\n}\n"],"mappings":";;;;;;AAUA,SAAgB,YAAY,EAAE,UAAU,WAAW,QAAQ,GAAG,SAA2B;CACvF,MAAM,EAAE,eAAe,eAAe;AAEtC,QAAO,UAAU;EACf,gBAAgB;EAChB;EACA,OAAO,WACL;GACE;GACA,WAAW,GAAG,WAAW,YAAY,MAAM,UAAU;GACtD,EACD,MACD;EACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AnyFieldProps } from "../../../types/field-props.mjs";
|
|
2
|
+
import { FormGroupHandle } from "../../../types/form-handle.mjs";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
|
|
5
|
+
//#region src/components/defaults/layout/group.d.ts
|
|
6
|
+
interface DefaultGroupState {
|
|
7
|
+
group: FormGroupHandle;
|
|
8
|
+
fields: AnyFieldProps[];
|
|
9
|
+
expanded: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface DefaultGroupProps extends useRender.ComponentProps<"div", DefaultGroupState> {
|
|
12
|
+
group: FormGroupHandle;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DefaultGroupProps };
|
|
16
|
+
//# sourceMappingURL=group.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.d.mts","names":[],"sources":["../../../../src/components/defaults/layout/group.tsx"],"mappings":";;;;;UAYiB,iBAAA;EACf,KAAA,EAAO,eAAA;EACP,MAAA,EAAQ,aAAA;EACR,QAAA;AAAA;AAAA,UAGe,iBAAA,SAA0B,SAAA,CAAU,cAAA,QAAsB,iBAAA;EACzE,KAAA,EAAO,eAAA;AAAA"}
|