@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,17 @@
|
|
|
1
|
+
import { Textarea } from "../../ui/textarea.mjs";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/defaults/adapters/textarea-input.tsx
|
|
5
|
+
function TextareaInputAdapter(field) {
|
|
6
|
+
return /* @__PURE__ */ jsx(Textarea, {
|
|
7
|
+
...field.textareaProps,
|
|
8
|
+
"data-p0": "input",
|
|
9
|
+
"aria-invalid": !!field.error,
|
|
10
|
+
maxLength: field.meta.maxLength,
|
|
11
|
+
minLength: field.meta.minLength
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { TextareaInputAdapter };
|
|
17
|
+
//# sourceMappingURL=textarea-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/textarea-input.tsx"],"sourcesContent":["import type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { Textarea } from \"../../ui/textarea.js\";\n\nexport function TextareaInputAdapter(field: FieldHandle<\"textarea_input\">) {\n return (\n <Textarea\n {...field.textareaProps}\n data-p0=\"input\"\n aria-invalid={!!field.error}\n maxLength={field.meta.maxLength}\n minLength={field.meta.minLength}\n />\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,qBAAqB,OAAsC;AACzE,QACE,oBAAC,UAAD;EACE,GAAI,MAAM;EACV,WAAQ;EACR,gBAAc,CAAC,CAAC,MAAM;EACtB,WAAW,MAAM,KAAK;EACtB,WAAW,MAAM,KAAK;EACtB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { X } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/defaults/catalog/active-filter-pill.tsx
|
|
7
|
+
function DefaultActiveFilterPill({ label, value, onRemove, className }) {
|
|
8
|
+
const { classNames } = useCatalogConfig();
|
|
9
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
10
|
+
"data-p0": "catalog-active-filter",
|
|
11
|
+
className: cn("pz:inline-flex pz:items-center pz:gap-1 pz:px-2 pz:py-0.5 pz:text-xs pz:rounded-md pz:bg-primary/10 pz:text-primary", classNames?.activeFilterPill, className),
|
|
12
|
+
children: [
|
|
13
|
+
label ? /* @__PURE__ */ jsxs("span", {
|
|
14
|
+
className: "pz:text-primary/60",
|
|
15
|
+
children: [label, ":"]
|
|
16
|
+
}) : null,
|
|
17
|
+
value,
|
|
18
|
+
/* @__PURE__ */ jsx("button", {
|
|
19
|
+
type: "button",
|
|
20
|
+
onClick: onRemove,
|
|
21
|
+
className: "pz:ml-0.5 pz:hover:text-primary/80 pz:cursor-pointer",
|
|
22
|
+
children: /* @__PURE__ */ jsx(X, { className: "pz:size-3" })
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { DefaultActiveFilterPill };
|
|
30
|
+
//# sourceMappingURL=active-filter-pill.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-filter-pill.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/active-filter-pill.tsx"],"sourcesContent":["import { X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface DefaultActiveFilterPillProps {\n label?: ReactNode;\n value: ReactNode;\n onRemove: () => void;\n className?: string;\n}\n\nexport function DefaultActiveFilterPill({\n label,\n value,\n onRemove,\n className,\n}: DefaultActiveFilterPillProps) {\n const { classNames } = useCatalogConfig();\n return (\n <span\n data-p0=\"catalog-active-filter\"\n className={cn(\n \"pz:inline-flex pz:items-center pz:gap-1 pz:px-2 pz:py-0.5 pz:text-xs pz:rounded-md pz:bg-primary/10 pz:text-primary\",\n classNames?.activeFilterPill,\n className,\n )}\n >\n {label ? <span className=\"pz:text-primary/60\">{label}:</span> : null}\n {value}\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"pz:ml-0.5 pz:hover:text-primary/80 pz:cursor-pointer\"\n >\n <X className=\"pz:size-3\" />\n </button>\n </span>\n );\n}\n"],"mappings":";;;;;;AAYA,SAAgB,wBAAwB,EACtC,OACA,OACA,UACA,aAC+B;CAC/B,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,qBAAC,QAAD;EACE,WAAQ;EACR,WAAW,GACT,uHACA,YAAY,kBACZ,UACD;YANH;GAQG,QAAQ,qBAAC,QAAD;IAAM,WAAU;cAAhB,CAAsC,OAAM,IAAQ;QAAG;GAC/D;GACD,oBAAC,UAAD;IACE,MAAK;IACL,SAAS;IACT,WAAU;cAEV,oBAAC,GAAD,EAAG,WAAU,aAAc;IACpB;GACJ"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { CatalogCardBadgeProps } from "./card-primitives.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/defaults/catalog/card-derived.d.ts
|
|
6
|
+
interface CatalogCreditBadgeProps {
|
|
7
|
+
/** Override the auto-bound credit amount. */
|
|
8
|
+
creditAmount?: number;
|
|
9
|
+
/** Override the auto-bound cost mode. */
|
|
10
|
+
costMode?: "per_result" | "per_search" | "per_page";
|
|
11
|
+
freeLabel?: ReactNode;
|
|
12
|
+
creditPrefix?: ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
variant?: CatalogCardBadgeProps["variant"];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Displays the starting credit cost for the surrounding card. Self-binds to
|
|
19
|
+
* `card.startingCreditAmount` + `card.costMode` from card context unless
|
|
20
|
+
* overridden via props.
|
|
21
|
+
*/
|
|
22
|
+
declare function CatalogCreditBadge({
|
|
23
|
+
creditAmount,
|
|
24
|
+
costMode,
|
|
25
|
+
freeLabel,
|
|
26
|
+
creditPrefix,
|
|
27
|
+
disabled,
|
|
28
|
+
className,
|
|
29
|
+
variant
|
|
30
|
+
}: CatalogCreditBadgeProps): _$react_jsx_runtime0.JSX.Element;
|
|
31
|
+
interface CatalogFieldBadgeState {
|
|
32
|
+
fields: string[];
|
|
33
|
+
isOpen: boolean;
|
|
34
|
+
setOpen: (open: boolean) => void;
|
|
35
|
+
/** Calls onSelectField (or the auto-wired catalog filter) and closes the popover. */
|
|
36
|
+
onSelect: (fieldName: string) => void;
|
|
37
|
+
isFieldAvailable: (fieldName: string) => boolean;
|
|
38
|
+
}
|
|
39
|
+
interface CatalogFieldBadgeProps {
|
|
40
|
+
fieldType: "input" | "output";
|
|
41
|
+
/** Override the auto-bound fields list. */
|
|
42
|
+
fields?: string[];
|
|
43
|
+
/** Override the auto-wired filter handler. */
|
|
44
|
+
onSelectField?: (fieldName: string) => void;
|
|
45
|
+
/** Returns true if the field has any matching cards. Defaults to a reverse-index lookup on the catalog. */
|
|
46
|
+
isFieldAvailable?: (fieldName: string) => boolean;
|
|
47
|
+
label?: ReactNode;
|
|
48
|
+
fieldIcon?: (fieldName: string) => ReactNode;
|
|
49
|
+
className?: string;
|
|
50
|
+
variant?: CatalogCardBadgeProps["variant"];
|
|
51
|
+
/** Render the entire dropdown UI yourself. Receives the merged state. */
|
|
52
|
+
render?: (state: CatalogFieldBadgeState) => ReactNode;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Dropdown that lists a card's input or output fields, with click-to-filter
|
|
56
|
+
* wiring. By default, clicking a field filters the catalog by that field
|
|
57
|
+
* (`addColumnFilter("inputFields"|"outputFields", field)`); pass `onSelectField`
|
|
58
|
+
* to override (e.g. inverted-filter UX).
|
|
59
|
+
*/
|
|
60
|
+
declare function CatalogFieldBadge({
|
|
61
|
+
fieldType,
|
|
62
|
+
fields,
|
|
63
|
+
onSelectField,
|
|
64
|
+
isFieldAvailable,
|
|
65
|
+
label,
|
|
66
|
+
fieldIcon,
|
|
67
|
+
className,
|
|
68
|
+
variant,
|
|
69
|
+
render
|
|
70
|
+
}: CatalogFieldBadgeProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
71
|
+
interface CatalogDocsBadgeProps {
|
|
72
|
+
/** Base URL prepended to the card's docPath. */
|
|
73
|
+
baseUrl?: string;
|
|
74
|
+
/** Override the full URL (skips baseUrl + card.docPath composition). */
|
|
75
|
+
href?: string;
|
|
76
|
+
label?: ReactNode;
|
|
77
|
+
className?: string;
|
|
78
|
+
variant?: CatalogCardBadgeProps["variant"];
|
|
79
|
+
}
|
|
80
|
+
declare function CatalogDocsBadge({
|
|
81
|
+
baseUrl,
|
|
82
|
+
href,
|
|
83
|
+
label,
|
|
84
|
+
className,
|
|
85
|
+
variant
|
|
86
|
+
}: CatalogDocsBadgeProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
87
|
+
interface CatalogCopyIdProps {
|
|
88
|
+
/** Override the auto-bound id. Defaults to `card.pipeId` / `card.searchId` / `card.searchesId`. */
|
|
89
|
+
value?: string;
|
|
90
|
+
className?: string;
|
|
91
|
+
}
|
|
92
|
+
declare function CatalogCopyId({
|
|
93
|
+
value,
|
|
94
|
+
className
|
|
95
|
+
}: CatalogCopyIdProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
96
|
+
//#endregion
|
|
97
|
+
export { CatalogCopyId, CatalogCopyIdProps, CatalogCreditBadge, CatalogCreditBadgeProps, CatalogDocsBadge, CatalogDocsBadgeProps, CatalogFieldBadge, CatalogFieldBadgeProps, CatalogFieldBadgeState };
|
|
98
|
+
//# sourceMappingURL=card-derived.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-derived.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/card-derived.tsx"],"mappings":";;;;;UAoBiB,uBAAA;;EAEf,YAAA;EAFe;EAIf,QAAA;EACA,SAAA,GAAY,SAAA;EACZ,YAAA,GAAe,SAAA;EACf,SAAA;EACA,QAAA;EACA,OAAA,GAAU,qBAAA;AAAA;;;;;;iBAQI,kBAAA,CAAA;EACd,YAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,QAAA;EACA,SAAA;EACA;AAAA,GACC,uBAAA,GAAuB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UA6BT,sBAAA;EACf,MAAA;EACA,MAAA;EACA,OAAA,GAAU,IAAA;EAhDqB;EAkD/B,QAAA,GAAW,SAAA;EACX,gBAAA,GAAmB,SAAA;AAAA;AAAA,UAGJ,sBAAA;EACf,SAAA;EA7CA;EA+CA,MAAA;EA7CA;EA+CA,aAAA,IAAiB,SAAA;EA7CjB;EA+CA,gBAAA,IAAoB,SAAA;EACpB,KAAA,GAAQ,SAAA;EACR,SAAA,IAAa,SAAA,aAAsB,SAAA;EACnC,SAAA;EACA,OAAA,GAAU,qBAAA;EAxDV;EA0DA,MAAA,IAAU,KAAA,EAAO,sBAAA,KAA2B,SAAA;AAAA;;;;;;;iBAS9B,iBAAA,CAAA;EACd,SAAA;EACA,MAAA;EACA,aAAA;EACA,gBAAA;EACA,KAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;EACA;AAAA,GACC,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAyHR,qBAAA;EAjMf;EAmMA,OAAA;EAlMA;EAoMA,IAAA;EACA,KAAA,GAAQ,SAAA;EACR,SAAA;EACA,OAAA,GAAU,qBAAA;AAAA;AAAA,iBAGI,gBAAA,CAAA;EACd,OAAA;EACA,IAAA;EACA,KAAA;EACA,SAAA;EACA;AAAA,GACC,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAyBP,kBAAA;;EAEf,KAAA;EACA,SAAA;AAAA;AAAA,iBAGc,aAAA,CAAA;EAAgB,KAAA;EAAO;AAAA,GAAa,kBAAA,GAAkB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
3
|
+
import { useAnyCatalogCardOptional, useAnyCatalogContextOptional } from "../../../context/catalog-card-context.mjs";
|
|
4
|
+
import { CatalogCardBadge } from "./card-primitives.mjs";
|
|
5
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../../ui/popover.mjs";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Check, Coins, Copy, ExternalLink, ListChecks, ListPlus } from "lucide-react";
|
|
9
|
+
|
|
10
|
+
//#region src/components/defaults/catalog/card-derived.tsx
|
|
11
|
+
/**
|
|
12
|
+
* Displays the starting credit cost for the surrounding card. Self-binds to
|
|
13
|
+
* `card.startingCreditAmount` + `card.costMode` from card context unless
|
|
14
|
+
* overridden via props.
|
|
15
|
+
*/
|
|
16
|
+
function CatalogCreditBadge({ creditAmount, costMode, freeLabel = "Free", creditPrefix = "Starts at", disabled = true, className, variant }) {
|
|
17
|
+
const card = useAnyCatalogCardOptional()?.card;
|
|
18
|
+
const amount = creditAmount ?? card?.startingCreditAmount ?? 0;
|
|
19
|
+
const mode = costMode ?? card?.costMode ?? "per_result";
|
|
20
|
+
const denom = mode === "per_result" ? "result" : mode === "per_search" ? "search" : "page";
|
|
21
|
+
return /* @__PURE__ */ jsx(CatalogCardBadge, {
|
|
22
|
+
disabled,
|
|
23
|
+
variant,
|
|
24
|
+
className: cn("pz:whitespace-nowrap", className),
|
|
25
|
+
children: amount > 0 ? /* @__PURE__ */ jsxs("span", {
|
|
26
|
+
className: "pz:inline-flex pz:items-center pz:gap-0.5",
|
|
27
|
+
children: [
|
|
28
|
+
creditPrefix ? /* @__PURE__ */ jsx("span", {
|
|
29
|
+
className: "pz:mr-1",
|
|
30
|
+
children: creditPrefix
|
|
31
|
+
}) : null,
|
|
32
|
+
/* @__PURE__ */ jsx("span", { children: amount }),
|
|
33
|
+
/* @__PURE__ */ jsx(Coins, { className: "pz:size-3" }),
|
|
34
|
+
/* @__PURE__ */ jsxs("span", { children: ["/ ", denom] })
|
|
35
|
+
]
|
|
36
|
+
}) : freeLabel
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Dropdown that lists a card's input or output fields, with click-to-filter
|
|
41
|
+
* wiring. By default, clicking a field filters the catalog by that field
|
|
42
|
+
* (`addColumnFilter("inputFields"|"outputFields", field)`); pass `onSelectField`
|
|
43
|
+
* to override (e.g. inverted-filter UX).
|
|
44
|
+
*/
|
|
45
|
+
function CatalogFieldBadge({ fieldType, fields, onSelectField, isFieldAvailable, label, fieldIcon, className, variant = "outline", render }) {
|
|
46
|
+
const [open, setOpen] = useState(false);
|
|
47
|
+
const card = useAnyCatalogCardOptional()?.card;
|
|
48
|
+
const ctx = useAnyCatalogContextOptional();
|
|
49
|
+
const resolvedFields = fields ?? deriveCardFields(card, fieldType);
|
|
50
|
+
const handleSelect = onSelectField ?? ((field) => {
|
|
51
|
+
ctx?.addColumnFilter(fieldType === "input" ? "inputFields" : "outputFields", field);
|
|
52
|
+
});
|
|
53
|
+
const handleAvailable = isFieldAvailable ?? ((field) => {
|
|
54
|
+
if (!ctx) return true;
|
|
55
|
+
const map = fieldType === "input" ? ctx.pipeIdsByInputField : pickOutputIndex(ctx);
|
|
56
|
+
if (!map) return true;
|
|
57
|
+
return !!map[field];
|
|
58
|
+
});
|
|
59
|
+
if (render) return /* @__PURE__ */ jsx(Fragment$1, { children: render({
|
|
60
|
+
fields: resolvedFields,
|
|
61
|
+
isOpen: open,
|
|
62
|
+
setOpen,
|
|
63
|
+
onSelect: (field) => {
|
|
64
|
+
handleSelect(field);
|
|
65
|
+
setOpen(false);
|
|
66
|
+
},
|
|
67
|
+
isFieldAvailable: handleAvailable
|
|
68
|
+
}) });
|
|
69
|
+
if (!resolvedFields.length) return null;
|
|
70
|
+
const Icon = fieldType === "input" ? ListPlus : ListChecks;
|
|
71
|
+
const text = label ?? (fieldType === "input" ? "Show inputs" : "Show outputs");
|
|
72
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
73
|
+
open,
|
|
74
|
+
onOpenChange: setOpen,
|
|
75
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: /* @__PURE__ */ jsxs(CatalogCardBadge, {
|
|
76
|
+
variant,
|
|
77
|
+
className: cn("pz:font-normal pz:text-muted-foreground pz:hover:text-foreground", className),
|
|
78
|
+
children: [/* @__PURE__ */ jsx(Icon, { className: "pz:size-3" }), text]
|
|
79
|
+
}) }), /* @__PURE__ */ jsx(PopoverContent, {
|
|
80
|
+
align: "start",
|
|
81
|
+
side: "bottom",
|
|
82
|
+
className: "pz:w-auto pz:min-w-40 pz:p-1",
|
|
83
|
+
children: /* @__PURE__ */ jsx("ul", {
|
|
84
|
+
"data-p0": "catalog-card-field-badge-list",
|
|
85
|
+
className: "pz:flex pz:flex-col pz:gap-0.5 pz:list-none pz:m-0 pz:p-0",
|
|
86
|
+
children: resolvedFields.map((field) => {
|
|
87
|
+
const available = handleAvailable(field);
|
|
88
|
+
return /* @__PURE__ */ jsx("li", {
|
|
89
|
+
className: "pz:flex",
|
|
90
|
+
children: /* @__PURE__ */ jsxs("button", {
|
|
91
|
+
type: "button",
|
|
92
|
+
onClick: (e) => {
|
|
93
|
+
e.stopPropagation();
|
|
94
|
+
handleSelect(field);
|
|
95
|
+
setOpen(false);
|
|
96
|
+
},
|
|
97
|
+
className: cn("pz:w-full pz:text-sm pz:text-left pz:py-1 pz:px-2 pz:rounded pz:flex pz:items-center pz:gap-2 pz:transition-all", available ? "pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted" : "pz:text-muted-foreground/50 pz:cursor-not-allowed"),
|
|
98
|
+
"data-available": available,
|
|
99
|
+
children: [fieldIcon?.(field), field]
|
|
100
|
+
})
|
|
101
|
+
}, field);
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function deriveCardFields(card, fieldType) {
|
|
108
|
+
if (!card) return [];
|
|
109
|
+
if (fieldType === "output") return card.defaultOutputFields ?? [];
|
|
110
|
+
if ("defaultInputFields" in card) return card.defaultInputFields.map((f) => f.name);
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
function pickOutputIndex(ctx) {
|
|
114
|
+
const c = ctx;
|
|
115
|
+
return c.pipeIdsByOutputField ?? c.searchIdsByOutputField;
|
|
116
|
+
}
|
|
117
|
+
function CatalogDocsBadge({ baseUrl, href, label = "Go to docs", className, variant = "outline" }) {
|
|
118
|
+
const docPath = (useAnyCatalogCardOptional()?.card)?.docPath;
|
|
119
|
+
const resolvedHref = href ?? (baseUrl && docPath ? `${baseUrl}${docPath}` : docPath);
|
|
120
|
+
if (!resolvedHref) return null;
|
|
121
|
+
return /* @__PURE__ */ jsx("a", {
|
|
122
|
+
target: "_blank",
|
|
123
|
+
href: resolvedHref,
|
|
124
|
+
rel: "noreferrer",
|
|
125
|
+
onClick: (e) => e.stopPropagation(),
|
|
126
|
+
children: /* @__PURE__ */ jsxs(CatalogCardBadge, {
|
|
127
|
+
variant,
|
|
128
|
+
className: cn("pz:font-normal pz:text-muted-foreground pz:hover:text-foreground", className),
|
|
129
|
+
children: [/* @__PURE__ */ jsx(ExternalLink, { className: "pz:size-3" }), label]
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
function CatalogCopyId({ value, className }) {
|
|
134
|
+
const { classNames } = useCatalogConfig();
|
|
135
|
+
const card = useAnyCatalogCardOptional()?.card;
|
|
136
|
+
const resolved = value ?? deriveCardId(card);
|
|
137
|
+
const [copied, setCopied] = useState(false);
|
|
138
|
+
if (!resolved) return null;
|
|
139
|
+
const handleCopy = (e) => {
|
|
140
|
+
e.stopPropagation();
|
|
141
|
+
e.preventDefault();
|
|
142
|
+
navigator.clipboard?.writeText(resolved).then(() => {
|
|
143
|
+
setCopied(true);
|
|
144
|
+
setTimeout(() => setCopied(false), 1500);
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
148
|
+
"data-p0": "catalog-card-copy-id",
|
|
149
|
+
className: cn("pz:flex pz:items-center pz:gap-2 pz:rounded-md pz:border pz:border-input pz:bg-background pz:px-2 pz:py-1", classNames?.copyId, className),
|
|
150
|
+
onClick: (e) => e.stopPropagation(),
|
|
151
|
+
children: [/* @__PURE__ */ jsx("code", {
|
|
152
|
+
className: "pz:flex-1 pz:text-xs pz:text-muted-foreground pz:truncate pz:font-mono",
|
|
153
|
+
children: resolved
|
|
154
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
155
|
+
type: "button",
|
|
156
|
+
onClick: handleCopy,
|
|
157
|
+
"aria-label": "Copy",
|
|
158
|
+
className: "pz:inline-flex pz:items-center pz:justify-center pz:size-6 pz:rounded pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted pz:transition-all",
|
|
159
|
+
children: copied ? /* @__PURE__ */ jsx(Check, { className: "pz:size-3" }) : /* @__PURE__ */ jsx(Copy, { className: "pz:size-3" })
|
|
160
|
+
})]
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
function deriveCardId(card) {
|
|
164
|
+
if (!card) return void 0;
|
|
165
|
+
if ("pipeId" in card) return card.pipeId;
|
|
166
|
+
if ("searchesId" in card) return card.searchesId;
|
|
167
|
+
if ("searchId" in card) return card.searchId;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
//#endregion
|
|
171
|
+
export { CatalogCopyId, CatalogCreditBadge, CatalogDocsBadge, CatalogFieldBadge };
|
|
172
|
+
//# sourceMappingURL=card-derived.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-derived.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/card-derived.tsx"],"sourcesContent":["import { Check, Coins, Copy, ExternalLink, ListChecks, ListPlus } from \"lucide-react\";\nimport { type ReactNode, useState } from \"react\";\nimport {\n useAnyCatalogCardOptional,\n useAnyCatalogContextOptional,\n} from \"../../../context/catalog-card-context.js\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport type {\n PipeCardData,\n SearchCardData,\n SearchesCardData,\n} from \"../../../types/catalog-adapters.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../ui/popover.js\";\nimport { CatalogCardBadge, type CatalogCardBadgeProps } from \"./card-primitives.js\";\n\n/* -------------------------------------------------------------------------- */\n/* Credit badge — \"Starts at X / result|search|page\" or \"Free\" */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCreditBadgeProps {\n /** Override the auto-bound credit amount. */\n creditAmount?: number;\n /** Override the auto-bound cost mode. */\n costMode?: \"per_result\" | \"per_search\" | \"per_page\";\n freeLabel?: ReactNode;\n creditPrefix?: ReactNode;\n className?: string;\n disabled?: boolean;\n variant?: CatalogCardBadgeProps[\"variant\"];\n}\n\n/**\n * Displays the starting credit cost for the surrounding card. Self-binds to\n * `card.startingCreditAmount` + `card.costMode` from card context unless\n * overridden via props.\n */\nexport function CatalogCreditBadge({\n creditAmount,\n costMode,\n freeLabel = \"Free\",\n creditPrefix = \"Starts at\",\n disabled = true,\n className,\n variant,\n}: CatalogCreditBadgeProps) {\n const card = useAnyCatalogCardOptional()?.card;\n const amount = creditAmount ?? card?.startingCreditAmount ?? 0;\n const mode = costMode ?? card?.costMode ?? \"per_result\";\n const denom = mode === \"per_result\" ? \"result\" : mode === \"per_search\" ? \"search\" : \"page\";\n return (\n <CatalogCardBadge\n disabled={disabled}\n variant={variant}\n className={cn(\"pz:whitespace-nowrap\", className)}\n >\n {amount > 0 ? (\n <span className=\"pz:inline-flex pz:items-center pz:gap-0.5\">\n {creditPrefix ? <span className=\"pz:mr-1\">{creditPrefix}</span> : null}\n <span>{amount}</span>\n <Coins className=\"pz:size-3\" />\n <span>/ {denom}</span>\n </span>\n ) : (\n freeLabel\n )}\n </CatalogCardBadge>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Field badge — dropdown listing input or output fields, click to filter */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogFieldBadgeState {\n fields: string[];\n isOpen: boolean;\n setOpen: (open: boolean) => void;\n /** Calls onSelectField (or the auto-wired catalog filter) and closes the popover. */\n onSelect: (fieldName: string) => void;\n isFieldAvailable: (fieldName: string) => boolean;\n}\n\nexport interface CatalogFieldBadgeProps {\n fieldType: \"input\" | \"output\";\n /** Override the auto-bound fields list. */\n fields?: string[];\n /** Override the auto-wired filter handler. */\n onSelectField?: (fieldName: string) => void;\n /** Returns true if the field has any matching cards. Defaults to a reverse-index lookup on the catalog. */\n isFieldAvailable?: (fieldName: string) => boolean;\n label?: ReactNode;\n fieldIcon?: (fieldName: string) => ReactNode;\n className?: string;\n variant?: CatalogCardBadgeProps[\"variant\"];\n /** Render the entire dropdown UI yourself. Receives the merged state. */\n render?: (state: CatalogFieldBadgeState) => ReactNode;\n}\n\n/**\n * Dropdown that lists a card's input or output fields, with click-to-filter\n * wiring. By default, clicking a field filters the catalog by that field\n * (`addColumnFilter(\"inputFields\"|\"outputFields\", field)`); pass `onSelectField`\n * to override (e.g. inverted-filter UX).\n */\nexport function CatalogFieldBadge({\n fieldType,\n fields,\n onSelectField,\n isFieldAvailable,\n label,\n fieldIcon,\n className,\n variant = \"outline\",\n render,\n}: CatalogFieldBadgeProps) {\n const [open, setOpen] = useState(false);\n const card = useAnyCatalogCardOptional()?.card;\n const ctx = useAnyCatalogContextOptional();\n\n const resolvedFields = fields ?? deriveCardFields(card, fieldType);\n\n const handleSelect =\n onSelectField ??\n ((field: string) => {\n ctx?.addColumnFilter(fieldType === \"input\" ? \"inputFields\" : \"outputFields\", field);\n });\n\n const handleAvailable =\n isFieldAvailable ??\n ((field: string) => {\n if (!ctx) return true;\n const map =\n fieldType === \"input\"\n ? (ctx as { pipeIdsByInputField?: Record<string, unknown[]> }).pipeIdsByInputField\n : pickOutputIndex(ctx);\n if (!map) return true;\n return !!map[field];\n });\n\n if (render) {\n return (\n <>\n {render({\n fields: resolvedFields,\n isOpen: open,\n setOpen,\n onSelect: (field: string) => {\n handleSelect(field);\n setOpen(false);\n },\n isFieldAvailable: handleAvailable,\n })}\n </>\n );\n }\n\n if (!resolvedFields.length) return null;\n const Icon = fieldType === \"input\" ? ListPlus : ListChecks;\n const text = label ?? (fieldType === \"input\" ? \"Show inputs\" : \"Show outputs\");\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n render={\n <CatalogCardBadge\n variant={variant}\n className={cn(\n \"pz:font-normal pz:text-muted-foreground pz:hover:text-foreground\",\n className,\n )}\n >\n <Icon className=\"pz:size-3\" />\n {text}\n </CatalogCardBadge>\n }\n />\n <PopoverContent align=\"start\" side=\"bottom\" className=\"pz:w-auto pz:min-w-40 pz:p-1\">\n <ul\n data-p0=\"catalog-card-field-badge-list\"\n className=\"pz:flex pz:flex-col pz:gap-0.5 pz:list-none pz:m-0 pz:p-0\"\n >\n {resolvedFields.map((field) => {\n const available = handleAvailable(field);\n return (\n <li key={field} className=\"pz:flex\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n handleSelect(field);\n setOpen(false);\n }}\n className={cn(\n \"pz:w-full pz:text-sm pz:text-left pz:py-1 pz:px-2 pz:rounded pz:flex pz:items-center pz:gap-2 pz:transition-all\",\n available\n ? \"pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted\"\n : \"pz:text-muted-foreground/50 pz:cursor-not-allowed\",\n )}\n data-available={available}\n >\n {fieldIcon?.(field)}\n {field}\n </button>\n </li>\n );\n })}\n </ul>\n </PopoverContent>\n </Popover>\n );\n}\n\nfunction deriveCardFields(\n card: PipeCardData | SearchCardData | SearchesCardData | undefined,\n fieldType: \"input\" | \"output\",\n): string[] {\n if (!card) return [];\n if (fieldType === \"output\") return card.defaultOutputFields ?? [];\n if (\"defaultInputFields\" in card) {\n return card.defaultInputFields.map((f) => f.name);\n }\n return [];\n}\n\nfunction pickOutputIndex(ctx: unknown): Record<string, unknown[]> | undefined {\n const c = ctx as {\n pipeIdsByOutputField?: Record<string, unknown[]>;\n searchIdsByOutputField?: Record<string, unknown[]>;\n };\n return c.pipeIdsByOutputField ?? c.searchIdsByOutputField;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Docs badge — external link to provider docs */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogDocsBadgeProps {\n /** Base URL prepended to the card's docPath. */\n baseUrl?: string;\n /** Override the full URL (skips baseUrl + card.docPath composition). */\n href?: string;\n label?: ReactNode;\n className?: string;\n variant?: CatalogCardBadgeProps[\"variant\"];\n}\n\nexport function CatalogDocsBadge({\n baseUrl,\n href,\n label = \"Go to docs\",\n className,\n variant = \"outline\",\n}: CatalogDocsBadgeProps) {\n const card = useAnyCatalogCardOptional()?.card;\n const docPath = card?.docPath;\n const resolvedHref = href ?? (baseUrl && docPath ? `${baseUrl}${docPath}` : docPath);\n if (!resolvedHref) return null;\n return (\n <a target=\"_blank\" href={resolvedHref} rel=\"noreferrer\" onClick={(e) => e.stopPropagation()}>\n <CatalogCardBadge\n variant={variant}\n className={cn(\n \"pz:font-normal pz:text-muted-foreground pz:hover:text-foreground\",\n className,\n )}\n >\n <ExternalLink className=\"pz:size-3\" />\n {label}\n </CatalogCardBadge>\n </a>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy-id input — small input with a copy button */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCopyIdProps {\n /** Override the auto-bound id. Defaults to `card.pipeId` / `card.searchId` / `card.searchesId`. */\n value?: string;\n className?: string;\n}\n\nexport function CatalogCopyId({ value, className }: CatalogCopyIdProps) {\n const { classNames } = useCatalogConfig();\n const card = useAnyCatalogCardOptional()?.card;\n const resolved = value ?? deriveCardId(card);\n const [copied, setCopied] = useState(false);\n\n if (!resolved) return null;\n\n const handleCopy = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n void navigator.clipboard?.writeText(resolved).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n });\n };\n\n return (\n <div\n data-p0=\"catalog-card-copy-id\"\n className={cn(\n \"pz:flex pz:items-center pz:gap-2 pz:rounded-md pz:border pz:border-input pz:bg-background pz:px-2 pz:py-1\",\n classNames?.copyId,\n className,\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <code className=\"pz:flex-1 pz:text-xs pz:text-muted-foreground pz:truncate pz:font-mono\">\n {resolved}\n </code>\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copy\"\n className=\"pz:inline-flex pz:items-center pz:justify-center pz:size-6 pz:rounded pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted pz:transition-all\"\n >\n {copied ? <Check className=\"pz:size-3\" /> : <Copy className=\"pz:size-3\" />}\n </button>\n </div>\n );\n}\n\nfunction deriveCardId(\n card: PipeCardData | SearchCardData | SearchesCardData | undefined,\n): string | undefined {\n if (!card) return undefined;\n if (\"pipeId\" in card) return card.pipeId;\n if (\"searchesId\" in card) return card.searchesId;\n if (\"searchId\" in card) return card.searchId;\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,SAAgB,mBAAmB,EACjC,cACA,UACA,YAAY,QACZ,eAAe,aACf,WAAW,MACX,WACA,WAC0B;CAC1B,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,SAAS,gBAAgB,MAAM,wBAAwB;CAC7D,MAAM,OAAO,YAAY,MAAM,YAAY;CAC3C,MAAM,QAAQ,SAAS,eAAe,WAAW,SAAS,eAAe,WAAW;AACpF,QACE,oBAAC,kBAAD;EACY;EACD;EACT,WAAW,GAAG,wBAAwB,UAAU;YAE/C,SAAS,IACR,qBAAC,QAAD;GAAM,WAAU;aAAhB;IACG,eAAe,oBAAC,QAAD;KAAM,WAAU;eAAW;KAAoB,IAAG;IAClE,oBAAC,QAAD,YAAO,QAAc;IACrB,oBAAC,OAAD,EAAO,WAAU,aAAc;IAC/B,qBAAC,QAAD,aAAM,MAAG,MAAa;IACjB;OAEP;EAEe;;;;;;;;AAuCvB,SAAgB,kBAAkB,EAChC,WACA,QACA,eACA,kBACA,OACA,WACA,WACA,UAAU,WACV,UACyB;CACzB,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,MAAM,8BAA8B;CAE1C,MAAM,iBAAiB,UAAU,iBAAiB,MAAM,UAAU;CAElE,MAAM,eACJ,mBACE,UAAkB;AAClB,OAAK,gBAAgB,cAAc,UAAU,gBAAgB,gBAAgB,MAAM;;CAGvF,MAAM,kBACJ,sBACE,UAAkB;AAClB,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,MACJ,cAAc,UACT,IAA4D,sBAC7D,gBAAgB,IAAI;AAC1B,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,CAAC,CAAC,IAAI;;AAGjB,KAAI,OACF,QACE,4CACG,OAAO;EACN,QAAQ;EACR,QAAQ;EACR;EACA,WAAW,UAAkB;AAC3B,gBAAa,MAAM;AACnB,WAAQ,MAAM;;EAEhB,kBAAkB;EACnB,CAAC,EACD;AAIP,KAAI,CAAC,eAAe,OAAQ,QAAO;CACnC,MAAM,OAAO,cAAc,UAAU,WAAW;CAChD,MAAM,OAAO,UAAU,cAAc,UAAU,gBAAgB;AAC/D,QACE,qBAAC,SAAD;EAAe;EAAM,cAAc;YAAnC,CACE,oBAAC,gBAAD,EACE,QACE,qBAAC,kBAAD;GACW;GACT,WAAW,GACT,oEACA,UACD;aALH,CAOE,oBAAC,MAAD,EAAM,WAAU,aAAc,GAC7B,KACgB;MAErB,GACF,oBAAC,gBAAD;GAAgB,OAAM;GAAQ,MAAK;GAAS,WAAU;aACpD,oBAAC,MAAD;IACE,WAAQ;IACR,WAAU;cAET,eAAe,KAAK,UAAU;KAC7B,MAAM,YAAY,gBAAgB,MAAM;AACxC,YACE,oBAAC,MAAD;MAAgB,WAAU;gBACxB,qBAAC,UAAD;OACE,MAAK;OACL,UAAU,MAAM;AACd,UAAE,iBAAiB;AACnB,qBAAa,MAAM;AACnB,gBAAQ,MAAM;;OAEhB,WAAW,GACT,mHACA,YACI,wEACA,oDACL;OACD,kBAAgB;iBAblB,CAeG,YAAY,MAAM,EAClB,MACM;;MACN,EAnBI,MAmBJ;MAEP;IACC;GACU,EACT;;;AAId,SAAS,iBACP,MACA,WACU;AACV,KAAI,CAAC,KAAM,QAAO,EAAE;AACpB,KAAI,cAAc,SAAU,QAAO,KAAK,uBAAuB,EAAE;AACjE,KAAI,wBAAwB,KAC1B,QAAO,KAAK,mBAAmB,KAAK,MAAM,EAAE,KAAK;AAEnD,QAAO,EAAE;;AAGX,SAAS,gBAAgB,KAAqD;CAC5E,MAAM,IAAI;AAIV,QAAO,EAAE,wBAAwB,EAAE;;AAiBrC,SAAgB,iBAAiB,EAC/B,SACA,MACA,QAAQ,cACR,WACA,UAAU,aACc;CAExB,MAAM,WADO,2BAA2B,EAAE,OACpB;CACtB,MAAM,eAAe,SAAS,WAAW,UAAU,GAAG,UAAU,YAAY;AAC5E,KAAI,CAAC,aAAc,QAAO;AAC1B,QACE,oBAAC,KAAD;EAAG,QAAO;EAAS,MAAM;EAAc,KAAI;EAAa,UAAU,MAAM,EAAE,iBAAiB;YACzF,qBAAC,kBAAD;GACW;GACT,WAAW,GACT,oEACA,UACD;aALH,CAOE,oBAAC,cAAD,EAAc,WAAU,aAAc,GACrC,MACgB;;EACjB;;AAcR,SAAgB,cAAc,EAAE,OAAO,aAAiC;CACtE,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,WAAW,SAAS,aAAa,KAAK;CAC5C,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;AAE3C,KAAI,CAAC,SAAU,QAAO;CAEtB,MAAM,cAAc,MAAwB;AAC1C,IAAE,iBAAiB;AACnB,IAAE,gBAAgB;AAClB,EAAK,UAAU,WAAW,UAAU,SAAS,CAAC,WAAW;AACvD,aAAU,KAAK;AACf,oBAAiB,UAAU,MAAM,EAAE,KAAK;IACxC;;AAGJ,QACE,qBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GACT,6GACA,YAAY,QACZ,UACD;EACD,UAAU,MAAM,EAAE,iBAAiB;YAPrC,CASE,oBAAC,QAAD;GAAM,WAAU;aACb;GACI,GACP,oBAAC,UAAD;GACE,MAAK;GACL,SAAS;GACT,cAAW;GACX,WAAU;aAET,SAAS,oBAAC,OAAD,EAAO,WAAU,aAAc,IAAG,oBAAC,MAAD,EAAM,WAAU,aAAc;GACnE,EACL;;;AAIV,SAAS,aACP,MACoB;AACpB,KAAI,CAAC,KAAM,QAAO;AAClB,KAAI,YAAY,KAAM,QAAO,KAAK;AAClC,KAAI,gBAAgB,KAAM,QAAO,KAAK;AACtC,KAAI,cAAc,KAAM,QAAO,KAAK"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { RenderProp } from "../../../utils/render-slot.mjs";
|
|
2
|
+
import { Button } from "../../ui/button.mjs";
|
|
3
|
+
import { ComponentProps, MouseEvent, ReactNode } from "react";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/defaults/catalog/card-primitives.d.ts
|
|
7
|
+
interface CatalogCardProps extends ComponentProps<"div"> {
|
|
8
|
+
onClick?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Bare flat card container. Defaults are structural only (flex column) so
|
|
12
|
+
* consumers can override paddings/colors/borders via `classNames.card` or
|
|
13
|
+
* `className` without fighting the cascade.
|
|
14
|
+
*
|
|
15
|
+
* Most consumers use `<PipeCatalogCard>` / `<SearchCatalogCard>` /
|
|
16
|
+
* `<SearchesCatalogCard>` instead, which provides the card context for
|
|
17
|
+
* self-binding child primitives.
|
|
18
|
+
*/
|
|
19
|
+
declare function CatalogCard({
|
|
20
|
+
className,
|
|
21
|
+
onClick,
|
|
22
|
+
children,
|
|
23
|
+
...rest
|
|
24
|
+
}: CatalogCardProps): _$react_jsx_runtime0.JSX.Element;
|
|
25
|
+
type CatalogCardHeaderState = {};
|
|
26
|
+
interface CatalogCardHeaderProps {
|
|
27
|
+
render?: RenderProp<ComponentProps<"div">, CatalogCardHeaderState>;
|
|
28
|
+
className?: string;
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
declare function CatalogCardHeader({
|
|
32
|
+
render,
|
|
33
|
+
className,
|
|
34
|
+
children
|
|
35
|
+
}: CatalogCardHeaderProps): ReactNode;
|
|
36
|
+
interface CatalogCardTitleState {
|
|
37
|
+
label: string;
|
|
38
|
+
}
|
|
39
|
+
interface CatalogCardTitleProps {
|
|
40
|
+
/** Override the displayed label. Defaults to `card.label` from context. */
|
|
41
|
+
children?: ReactNode;
|
|
42
|
+
render?: RenderProp<ComponentProps<"h3">, CatalogCardTitleState>;
|
|
43
|
+
className?: string;
|
|
44
|
+
}
|
|
45
|
+
declare function CatalogCardTitle({
|
|
46
|
+
children,
|
|
47
|
+
render,
|
|
48
|
+
className
|
|
49
|
+
}: CatalogCardTitleProps): ReactNode;
|
|
50
|
+
interface CatalogCardDescriptionState {
|
|
51
|
+
description: string;
|
|
52
|
+
}
|
|
53
|
+
interface CatalogCardDescriptionProps {
|
|
54
|
+
children?: ReactNode;
|
|
55
|
+
render?: RenderProp<ComponentProps<"p">, CatalogCardDescriptionState>;
|
|
56
|
+
className?: string;
|
|
57
|
+
}
|
|
58
|
+
declare function CatalogCardDescription({
|
|
59
|
+
children,
|
|
60
|
+
render,
|
|
61
|
+
className
|
|
62
|
+
}: CatalogCardDescriptionProps): ReactNode;
|
|
63
|
+
interface CatalogCardBadgesProps extends ComponentProps<"div"> {}
|
|
64
|
+
declare function CatalogCardBadges({
|
|
65
|
+
className,
|
|
66
|
+
children,
|
|
67
|
+
...rest
|
|
68
|
+
}: CatalogCardBadgesProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
69
|
+
interface CatalogCardBadgeProps extends Omit<ComponentProps<typeof Button>, "size"> {
|
|
70
|
+
size?: "xs" | "sm";
|
|
71
|
+
}
|
|
72
|
+
declare function CatalogCardBadge({
|
|
73
|
+
className,
|
|
74
|
+
variant,
|
|
75
|
+
size,
|
|
76
|
+
onClick,
|
|
77
|
+
...rest
|
|
78
|
+
}: CatalogCardBadgeProps): _$react_jsx_runtime0.JSX.Element;
|
|
79
|
+
//#endregion
|
|
80
|
+
export { CatalogCard, CatalogCardBadge, CatalogCardBadgeProps, CatalogCardBadges, CatalogCardBadgesProps, CatalogCardDescription, CatalogCardDescriptionProps, CatalogCardHeader, CatalogCardHeaderProps, CatalogCardProps, CatalogCardTitle, CatalogCardTitleProps };
|
|
81
|
+
//# sourceMappingURL=card-primitives.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-primitives.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/card-primitives.tsx"],"mappings":";;;;;;UAWiB,gBAAA,SAAyB,cAAA;EACxC,OAAA,IAAW,CAAA,EAAG,UAAA,CAAW,cAAA;AAAA;AAD3B;;;;;;;;;AAAA,iBAagB,WAAA,CAAA;EAAc,SAAA;EAAW,OAAA;EAAS,QAAA;EAAA,GAAa;AAAA,GAAQ,gBAAA,GAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,KA+B3E,sBAAA;AAAA,UAEK,sBAAA;EACf,MAAA,GAAS,UAAA,CAAW,cAAA,SAAuB,sBAAA;EAC3C,SAAA;EACA,QAAA,GAAW,SAAA;AAAA;AAAA,iBAGG,iBAAA,CAAA;EAAoB,MAAA;EAAQ,SAAA;EAAW;AAAA,GAAY,sBAAA,GAAsB,SAAA;AAAA,UAkBxE,qBAAA;EACf,KAAA;AAAA;AAAA,UAGe,qBAAA;EA7DsD;EA+DrE,QAAA,GAAW,SAAA;EACX,MAAA,GAAS,UAAA,CAAW,cAAA,QAAsB,qBAAA;EAC1C,SAAA;AAAA;AAAA,iBAGc,gBAAA,CAAA;EAAmB,QAAA;EAAU,MAAA;EAAQ;AAAA,GAAa,qBAAA,GAAqB,SAAA;AAAA,UAwBtE,2BAAA;EACf,WAAA;AAAA;AAAA,UAGe,2BAAA;EACf,QAAA,GAAW,SAAA;EACX,MAAA,GAAS,UAAA,CAAW,cAAA,OAAqB,2BAAA;EACzC,SAAA;AAAA;AAAA,iBAGc,sBAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA;AAAA,GACC,2BAAA,GAA2B,SAAA;AAAA,UAwBb,sBAAA,SAA+B,cAAA;AAAA,iBAEhC,iBAAA,CAAA;EAAoB,SAAA;EAAW,QAAA;EAAA,GAAa;AAAA,GAAQ,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAoBzE,qBAAA,SAA8B,IAAA,CAAK,cAAA,QAAsB,MAAA;EACxE,IAAA;AAAA;AAAA,iBAGc,gBAAA,CAAA;EACd,SAAA;EACA,OAAA;EACA,IAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
3
|
+
import { renderSlot } from "../../../utils/render-slot.mjs";
|
|
4
|
+
import { useAnyCatalogCardOptional } from "../../../context/catalog-card-context.mjs";
|
|
5
|
+
import { Button } from "../../ui/button.mjs";
|
|
6
|
+
import { Children } from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
|
|
9
|
+
//#region src/components/defaults/catalog/card-primitives.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Bare flat card container. Defaults are structural only (flex column) so
|
|
12
|
+
* consumers can override paddings/colors/borders via `classNames.card` or
|
|
13
|
+
* `className` without fighting the cascade.
|
|
14
|
+
*
|
|
15
|
+
* Most consumers use `<PipeCatalogCard>` / `<SearchCatalogCard>` /
|
|
16
|
+
* `<SearchesCatalogCard>` instead, which provides the card context for
|
|
17
|
+
* self-binding child primitives.
|
|
18
|
+
*/
|
|
19
|
+
function CatalogCard({ className, onClick, children, ...rest }) {
|
|
20
|
+
const { classNames } = useCatalogConfig();
|
|
21
|
+
const interactive = !!onClick;
|
|
22
|
+
return /* @__PURE__ */ jsx("div", {
|
|
23
|
+
"data-p0": "catalog-card",
|
|
24
|
+
role: interactive ? "button" : void 0,
|
|
25
|
+
tabIndex: interactive ? 0 : void 0,
|
|
26
|
+
onClick,
|
|
27
|
+
onKeyDown: interactive ? (e) => {
|
|
28
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
onClick?.(e);
|
|
31
|
+
}
|
|
32
|
+
} : void 0,
|
|
33
|
+
className: cn("pz:flex pz:flex-col", classNames?.card, className),
|
|
34
|
+
...rest,
|
|
35
|
+
children
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function CatalogCardHeader({ render, className, children }) {
|
|
39
|
+
const { classNames } = useCatalogConfig();
|
|
40
|
+
return renderSlot({
|
|
41
|
+
defaultTagName: "div",
|
|
42
|
+
render,
|
|
43
|
+
state: {},
|
|
44
|
+
props: {
|
|
45
|
+
"data-p0": "catalog-card-header",
|
|
46
|
+
className: cn("pz:flex pz:items-start pz:gap-2", classNames?.cardHeader, className),
|
|
47
|
+
children
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function CatalogCardTitle({ children, render, className }) {
|
|
52
|
+
const { classNames } = useCatalogConfig();
|
|
53
|
+
const label = (useAnyCatalogCardOptional()?.card)?.label ?? "";
|
|
54
|
+
return renderSlot({
|
|
55
|
+
defaultTagName: "h3",
|
|
56
|
+
render,
|
|
57
|
+
state: { label },
|
|
58
|
+
props: {
|
|
59
|
+
"data-p0": "catalog-card-title",
|
|
60
|
+
className: cn("pz:text-sm pz:font-semibold pz:leading-tight pz:m-0 pz:line-clamp-2 pz:flex-1", classNames?.cardLabel, className),
|
|
61
|
+
children: children ?? label
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function CatalogCardDescription({ children, render, className }) {
|
|
66
|
+
const { classNames } = useCatalogConfig();
|
|
67
|
+
const description = (useAnyCatalogCardOptional()?.card)?.description ?? "";
|
|
68
|
+
return renderSlot({
|
|
69
|
+
defaultTagName: "p",
|
|
70
|
+
render,
|
|
71
|
+
state: { description },
|
|
72
|
+
props: {
|
|
73
|
+
"data-p0": "catalog-card-description",
|
|
74
|
+
className: cn("pz:text-xs pz:text-muted-foreground pz:m-0 pz:line-clamp-2", classNames?.cardDescription, className),
|
|
75
|
+
children: children ?? description
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function CatalogCardBadges({ className, children, ...rest }) {
|
|
80
|
+
const { classNames } = useCatalogConfig();
|
|
81
|
+
const visible = Children.toArray(children);
|
|
82
|
+
if (visible.length === 0) return null;
|
|
83
|
+
return /* @__PURE__ */ jsx("div", {
|
|
84
|
+
"data-p0": "catalog-card-badges",
|
|
85
|
+
className: cn("pz:flex pz:flex-wrap pz:gap-1.5 pz:items-center", classNames?.cardBadges, className),
|
|
86
|
+
onClick: (e) => e.stopPropagation(),
|
|
87
|
+
...rest,
|
|
88
|
+
children: visible
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function CatalogCardBadge({ className, variant = "outline", size = "xs", onClick, ...rest }) {
|
|
92
|
+
const { classNames } = useCatalogConfig();
|
|
93
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
94
|
+
"data-p0": "catalog-card-badge",
|
|
95
|
+
variant,
|
|
96
|
+
size,
|
|
97
|
+
className: cn(classNames?.badge, className),
|
|
98
|
+
onClick: (e) => {
|
|
99
|
+
e.stopPropagation();
|
|
100
|
+
onClick?.(e);
|
|
101
|
+
},
|
|
102
|
+
...rest
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
//#endregion
|
|
107
|
+
export { CatalogCard, CatalogCardBadge, CatalogCardBadges, CatalogCardDescription, CatalogCardHeader, CatalogCardTitle };
|
|
108
|
+
//# sourceMappingURL=card-primitives.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-primitives.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/card-primitives.tsx"],"sourcesContent":["import { Children, type ComponentProps, type MouseEvent, type ReactNode } from \"react\";\nimport { useAnyCatalogCardOptional } from \"../../../context/catalog-card-context.js\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport { type RenderProp, renderSlot } from \"../../../utils/render-slot.js\";\nimport { Button } from \"../../ui/button.js\";\n\n/* -------------------------------------------------------------------------- */\n/* Card root */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardProps extends ComponentProps<\"div\"> {\n onClick?: (e: MouseEvent<HTMLDivElement>) => void;\n}\n\n/**\n * Bare flat card container. Defaults are structural only (flex column) so\n * consumers can override paddings/colors/borders via `classNames.card` or\n * `className` without fighting the cascade.\n *\n * Most consumers use `<PipeCatalogCard>` / `<SearchCatalogCard>` /\n * `<SearchesCatalogCard>` instead, which provides the card context for\n * self-binding child primitives.\n */\nexport function CatalogCard({ className, onClick, children, ...rest }: CatalogCardProps) {\n const { classNames } = useCatalogConfig();\n const interactive = !!onClick;\n return (\n <div\n data-p0=\"catalog-card\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n onClick={onClick}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.(e as unknown as MouseEvent<HTMLDivElement>);\n }\n }\n : undefined\n }\n className={cn(\"pz:flex pz:flex-col\", classNames?.card, className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card header */\n/* -------------------------------------------------------------------------- */\n\nexport type CatalogCardHeaderState = {};\n\nexport interface CatalogCardHeaderProps {\n render?: RenderProp<ComponentProps<\"div\">, CatalogCardHeaderState>;\n className?: string;\n children?: ReactNode;\n}\n\nexport function CatalogCardHeader({ render, className, children }: CatalogCardHeaderProps) {\n const { classNames } = useCatalogConfig();\n return renderSlot({\n defaultTagName: \"div\",\n render,\n state: {} as CatalogCardHeaderState,\n props: {\n \"data-p0\": \"catalog-card-header\",\n className: cn(\"pz:flex pz:items-start pz:gap-2\", classNames?.cardHeader, className),\n children,\n } as ComponentProps<\"div\">,\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card title — self-binds to card.label */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardTitleState {\n label: string;\n}\n\nexport interface CatalogCardTitleProps {\n /** Override the displayed label. Defaults to `card.label` from context. */\n children?: ReactNode;\n render?: RenderProp<ComponentProps<\"h3\">, CatalogCardTitleState>;\n className?: string;\n}\n\nexport function CatalogCardTitle({ children, render, className }: CatalogCardTitleProps) {\n const { classNames } = useCatalogConfig();\n const card = useAnyCatalogCardOptional()?.card;\n const label = (card?.label ?? \"\") as string;\n return renderSlot({\n defaultTagName: \"h3\",\n render,\n state: { label },\n props: {\n \"data-p0\": \"catalog-card-title\",\n className: cn(\n \"pz:text-sm pz:font-semibold pz:leading-tight pz:m-0 pz:line-clamp-2 pz:flex-1\",\n classNames?.cardLabel,\n className,\n ),\n children: children ?? label,\n } as ComponentProps<\"h3\">,\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card description — self-binds to card.description */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardDescriptionState {\n description: string;\n}\n\nexport interface CatalogCardDescriptionProps {\n children?: ReactNode;\n render?: RenderProp<ComponentProps<\"p\">, CatalogCardDescriptionState>;\n className?: string;\n}\n\nexport function CatalogCardDescription({\n children,\n render,\n className,\n}: CatalogCardDescriptionProps) {\n const { classNames } = useCatalogConfig();\n const card = useAnyCatalogCardOptional()?.card;\n const description = (card?.description ?? \"\") as string;\n return renderSlot({\n defaultTagName: \"p\",\n render,\n state: { description },\n props: {\n \"data-p0\": \"catalog-card-description\",\n className: cn(\n \"pz:text-xs pz:text-muted-foreground pz:m-0 pz:line-clamp-2\",\n classNames?.cardDescription,\n className,\n ),\n children: children ?? description,\n } as ComponentProps<\"p\">,\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card badges row + single badge button */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardBadgesProps extends ComponentProps<\"div\"> {}\n\nexport function CatalogCardBadges({ className, children, ...rest }: CatalogCardBadgesProps) {\n const { classNames } = useCatalogConfig();\n const visible = Children.toArray(children);\n if (visible.length === 0) return null;\n return (\n <div\n data-p0=\"catalog-card-badges\"\n className={cn(\n \"pz:flex pz:flex-wrap pz:gap-1.5 pz:items-center\",\n classNames?.cardBadges,\n className,\n )}\n onClick={(e) => e.stopPropagation()}\n {...rest}\n >\n {visible}\n </div>\n );\n}\n\nexport interface CatalogCardBadgeProps extends Omit<ComponentProps<typeof Button>, \"size\"> {\n size?: \"xs\" | \"sm\";\n}\n\nexport function CatalogCardBadge({\n className,\n variant = \"outline\",\n size = \"xs\",\n onClick,\n ...rest\n}: CatalogCardBadgeProps) {\n const { classNames } = useCatalogConfig();\n return (\n <Button\n data-p0=\"catalog-card-badge\"\n variant={variant}\n size={size}\n className={cn(classNames?.badge, className)}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n {...rest}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,SAAgB,YAAY,EAAE,WAAW,SAAS,UAAU,GAAG,QAA0B;CACvF,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,cAAc,CAAC,CAAC;AACtB,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,MAAM,cAAc,WAAW;EAC/B,UAAU,cAAc,IAAI;EACnB;EACT,WACE,eACK,MAAM;AACL,OAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,MAAE,gBAAgB;AAClB,cAAU,EAA2C;;MAGzD;EAEN,WAAW,GAAG,uBAAuB,YAAY,MAAM,UAAU;EACjE,GAAI;EAEH;EACG;;AAgBV,SAAgB,kBAAkB,EAAE,QAAQ,WAAW,YAAoC;CACzF,MAAM,EAAE,eAAe,kBAAkB;AACzC,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE;EACT,OAAO;GACL,WAAW;GACX,WAAW,GAAG,mCAAmC,YAAY,YAAY,UAAU;GACnF;GACD;EACF,CAAC;;AAkBJ,SAAgB,iBAAiB,EAAE,UAAU,QAAQ,aAAoC;CACvF,MAAM,EAAE,eAAe,kBAAkB;CAEzC,MAAM,SADO,2BAA2B,EAAE,OACrB,SAAS;AAC9B,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE,OAAO;EAChB,OAAO;GACL,WAAW;GACX,WAAW,GACT,iFACA,YAAY,WACZ,UACD;GACD,UAAU,YAAY;GACvB;EACF,CAAC;;AAiBJ,SAAgB,uBAAuB,EACrC,UACA,QACA,aAC8B;CAC9B,MAAM,EAAE,eAAe,kBAAkB;CAEzC,MAAM,eADO,2BAA2B,EAAE,OACf,eAAe;AAC1C,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE,aAAa;EACtB,OAAO;GACL,WAAW;GACX,WAAW,GACT,8DACA,YAAY,iBACZ,UACD;GACD,UAAU,YAAY;GACvB;EACF,CAAC;;AASJ,SAAgB,kBAAkB,EAAE,WAAW,UAAU,GAAG,QAAgC;CAC1F,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,UAAU,SAAS,QAAQ,SAAS;AAC1C,KAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GACT,mDACA,YAAY,YACZ,UACD;EACD,UAAU,MAAM,EAAE,iBAAiB;EACnC,GAAI;YAEH;EACG;;AAQV,SAAgB,iBAAiB,EAC/B,WACA,UAAU,WACV,OAAO,MACP,SACA,GAAG,QACqB;CACxB,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,oBAAC,QAAD;EACE,WAAQ;EACC;EACH;EACN,WAAW,GAAG,YAAY,OAAO,UAAU;EAC3C,UAAU,MAAM;AACd,KAAE,iBAAiB;AACnB,aAAU,EAAE;;EAEd,GAAI;EACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from "react";
|
|
2
|
+
//#region src/components/defaults/catalog/category-filter.d.ts
|
|
3
|
+
interface CategoryOption<T extends string> {
|
|
4
|
+
id: T | null;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
icon?: ComponentType<{
|
|
7
|
+
className?: string;
|
|
8
|
+
}>;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { CategoryOption };
|
|
13
|
+
//# sourceMappingURL=category-filter.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-filter.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/category-filter.tsx"],"mappings":";;UAIiB,cAAA;EACf,EAAA,EAAI,CAAA;EACJ,KAAA,EAAO,SAAA;EACP,IAAA,GAAO,aAAA;IAAgB,SAAA;EAAA;EACvB,QAAA;AAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.mjs";
|
|
2
|
+
import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/defaults/catalog/category-filter.tsx
|
|
6
|
+
function DefaultCategoryFilter({ options, value, onChange, className }) {
|
|
7
|
+
const { classNames } = useCatalogConfig();
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
"data-p0": "catalog-category-filter",
|
|
10
|
+
className: cn("pz:flex pz:flex-wrap pz:gap-2", classNames?.categoryFilter, className),
|
|
11
|
+
children: options.map((option) => {
|
|
12
|
+
const isActive = value === option.id;
|
|
13
|
+
const Icon = option.icon;
|
|
14
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
15
|
+
type: "button",
|
|
16
|
+
"data-active": isActive ? "" : void 0,
|
|
17
|
+
disabled: option.disabled,
|
|
18
|
+
onClick: () => onChange(option.id),
|
|
19
|
+
className: cn("pz:inline-flex pz:items-center pz:gap-1.5 pz:px-3 pz:py-1.5 pz:text-sm pz:rounded-md pz:border pz:border-input pz:bg-background pz:text-muted-foreground pz:transition-colors pz:hover:text-foreground pz:hover:bg-muted pz:disabled:opacity-50 pz:disabled:pointer-events-none", classNames?.categoryButton, isActive && "pz:bg-primary pz:text-primary-foreground pz:border-primary pz:font-medium pz:hover:bg-primary pz:hover:text-primary-foreground", isActive && classNames?.categoryButtonActive),
|
|
20
|
+
children: [Icon ? /* @__PURE__ */ jsx(Icon, { className: "pz:size-3.5" }) : null, option.label]
|
|
21
|
+
}, String(option.id ?? "__all__"));
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { DefaultCategoryFilter };
|
|
28
|
+
//# sourceMappingURL=category-filter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-filter.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/category-filter.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface CategoryOption<T extends string> {\n id: T | null;\n label: ReactNode;\n icon?: ComponentType<{ className?: string }>;\n disabled?: boolean;\n}\n\nexport interface DefaultCategoryFilterProps<T extends string> {\n options: ReadonlyArray<CategoryOption<T>>;\n value: T | null;\n onChange: (value: T | null) => void;\n className?: string;\n}\n\nexport function DefaultCategoryFilter<T extends string>({\n options,\n value,\n onChange,\n className,\n}: DefaultCategoryFilterProps<T>) {\n const { classNames } = useCatalogConfig();\n return (\n <div\n data-p0=\"catalog-category-filter\"\n className={cn(\"pz:flex pz:flex-wrap pz:gap-2\", classNames?.categoryFilter, className)}\n >\n {options.map((option) => {\n const isActive = value === option.id;\n const Icon = option.icon;\n return (\n <button\n key={String(option.id ?? \"__all__\")}\n type=\"button\"\n data-active={isActive ? \"\" : undefined}\n disabled={option.disabled}\n onClick={() => onChange(option.id)}\n className={cn(\n \"pz:inline-flex pz:items-center pz:gap-1.5 pz:px-3 pz:py-1.5 pz:text-sm pz:rounded-md pz:border pz:border-input pz:bg-background pz:text-muted-foreground pz:transition-colors pz:hover:text-foreground pz:hover:bg-muted pz:disabled:opacity-50 pz:disabled:pointer-events-none\",\n classNames?.categoryButton,\n isActive &&\n \"pz:bg-primary pz:text-primary-foreground pz:border-primary pz:font-medium pz:hover:bg-primary pz:hover:text-primary-foreground\",\n isActive && classNames?.categoryButtonActive,\n )}\n >\n {Icon ? <Icon className=\"pz:size-3.5\" /> : null}\n {option.label}\n </button>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;;;AAkBA,SAAgB,sBAAwC,EACtD,SACA,OACA,UACA,aACgC;CAChC,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GAAG,iCAAiC,YAAY,gBAAgB,UAAU;YAEpF,QAAQ,KAAK,WAAW;GACvB,MAAM,WAAW,UAAU,OAAO;GAClC,MAAM,OAAO,OAAO;AACpB,UACE,qBAAC,UAAD;IAEE,MAAK;IACL,eAAa,WAAW,KAAK;IAC7B,UAAU,OAAO;IACjB,eAAe,SAAS,OAAO,GAAG;IAClC,WAAW,GACT,mRACA,YAAY,gBACZ,YACE,kIACF,YAAY,YAAY,qBACzB;cAZH,CAcG,OAAO,oBAAC,MAAD,EAAM,WAAU,eAAgB,IAAG,MAC1C,OAAO,MACD;MAfF,OAAO,OAAO,MAAM,UAAU,CAe5B;IAEX;EACE"}
|