@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 @@
|
|
|
1
|
+
{"version":3,"file":"tag-chip-decoration.mjs","names":[],"sources":["../../../src/components/internal/tag-chip-decoration.ts"],"sourcesContent":["import { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\nimport { Extension } from \"@tiptap/react\";\n\nconst SECRET_REGEX = /\\{\\{\\s*SECRETS\\.([A-Z][A-Z0-9_]*)\\s*\\}\\}/g;\nconst FIELD_REGEX = /\\{\\{\\s*([a-zA-Z_][a-zA-Z0-9_.]*(?:\\s*\\|\\s*[^}]+)?)\\s*\\}\\}/g;\nconst BLOCK_REGEX = /\\{%[\\s\\S]*?%\\}/g;\n\nconst FIELD_CLASS =\n \"pz-tag-chip-field pz:inline-flex pz:items-center pz:rounded-sm pz:bg-sky-100 pz:px-1 pz:text-sky-900 pz:cursor-pointer pz:focus-visible:outline-none pz:focus-visible:ring-2 pz:focus-visible:ring-ring\";\nconst SECRET_CLASS =\n \"pz-tag-chip-secret pz:inline-flex pz:items-center pz:rounded-sm pz:bg-amber-100 pz:px-1 pz:text-amber-900 pz:cursor-pointer pz:focus-visible:outline-none pz:focus-visible:ring-2 pz:focus-visible:ring-ring\";\nconst BLOCK_CLASS =\n \"pz-tag-chip-block pz:inline-flex pz:items-center pz:rounded-sm pz:bg-violet-100 pz:px-1 pz:text-violet-900 pz:cursor-pointer pz:focus-visible:outline-none pz:focus-visible:ring-2 pz:focus-visible:ring-ring\";\n\nexport type ChipKind = \"field\" | \"secret\" | \"block\";\n\nexport interface ChipHit {\n kind: ChipKind;\n raw: string;\n from: number;\n to: number;\n}\n\nexport interface TagChipDecorationOptions {\n /**\n * Fired when the user clicks a chip (or activates it via Enter/Space).\n * `LiquidEditor` mounts the contextual edit popover from this callback.\n */\n onChipClick?: (hit: ChipHit, target: HTMLElement) => void;\n /**\n * Fired when the user hovers a chip. Debounced upstream is the caller's\n * responsibility — the plugin emits the raw event.\n */\n onChipHover?: (hit: ChipHit | null, target: HTMLElement | null) => void;\n}\n\n/**\n * Builds the DecorationSet for a given ProseMirror document. Walks every\n * text node, then in order:\n * 1. `{% … %}` Liquid block tags (e.g. `{% output %}`, `{% if %}`).\n * 2. `{{ SECRETS.<ID> }}` secret references.\n * 3. `{{ … }}` Liquid Outputs (fields, with optional dotted access and\n * filter chains) over positions not already claimed by a secret match.\n * Each match becomes an inline Decoration that styles the substring as a\n * chip without touching the underlying text — copy/paste, cursor\n * navigation, and `editor.getText` keep their flat-text behavior.\n */\nfunction buildDecorations(doc: import(\"@tiptap/pm/model\").Node): DecorationSet {\n const decorations: Decoration[] = [];\n\n doc.descendants((node, pos) => {\n if (!node.isText || node.text == null) return;\n const text = node.text;\n const claimed: Array<[number, number]> = [];\n\n // Block tags `{% … %}` use distinct delimiters so they never overlap\n // with `{{ … }}` matches; we still record the ranges for symmetry.\n BLOCK_REGEX.lastIndex = 0;\n for (const m of text.matchAll(BLOCK_REGEX)) {\n const start = pos + (m.index ?? 0);\n const end = start + m[0].length;\n claimed.push([start, end]);\n decorations.push(\n Decoration.inline(start, end, {\n class: BLOCK_CLASS,\n \"data-tag-chip\": \"block\",\n \"data-tag-chip-text\": m[0],\n role: \"button\",\n tabindex: \"0\",\n }),\n );\n }\n\n // Secrets next — `{{ SECRETS.<ID> }}` would also match the field regex\n // via its dotted-access branch, so we claim those ranges first and skip\n // overlaps in the field pass below.\n SECRET_REGEX.lastIndex = 0;\n for (const m of text.matchAll(SECRET_REGEX)) {\n const start = pos + (m.index ?? 0);\n const end = start + m[0].length;\n claimed.push([start, end]);\n decorations.push(\n Decoration.inline(start, end, {\n class: SECRET_CLASS,\n \"data-tag-chip\": \"secret\",\n \"data-tag-chip-text\": m[0],\n role: \"button\",\n tabindex: \"0\",\n }),\n );\n }\n\n FIELD_REGEX.lastIndex = 0;\n for (const m of text.matchAll(FIELD_REGEX)) {\n const start = pos + (m.index ?? 0);\n const end = start + m[0].length;\n // Skip if this overlaps a previously claimed range.\n if (claimed.some(([s, e]) => start < e && end > s)) continue;\n decorations.push(\n Decoration.inline(start, end, {\n class: FIELD_CLASS,\n \"data-tag-chip\": \"field\",\n \"data-tag-chip-text\": m[0],\n role: \"button\",\n tabindex: \"0\",\n }),\n );\n }\n });\n\n return DecorationSet.create(doc, decorations);\n}\n\nconst tagChipPluginKey = new PluginKey(\"tagChipDecoration\");\nconst tagChipInteractionKey = new PluginKey(\"tagChipInteraction\");\n\nfunction chipHitFromTarget(target: EventTarget | null): {\n hit: ChipHit;\n el: HTMLElement;\n} | null {\n if (!(target instanceof Element)) return null;\n const el = target.closest(\"[data-tag-chip]\") as HTMLElement | null;\n if (!el) return null;\n const kind = el.getAttribute(\"data-tag-chip\") as ChipKind | null;\n const raw = el.getAttribute(\"data-tag-chip-text\");\n if (!kind || raw == null) return null;\n return {\n el,\n hit: { kind, raw, from: -1, to: -1 },\n };\n}\n\n/**\n * Tiptap extension that renders Liquid syntax as inline pills:\n * `{{ <name> }}` (fields, with optional dotted access and filter chains),\n * `{{ SECRETS.<ID> }}`, and `{% … %}` block tags (e.g. `{% output %}`).\n * Purely visual — the underlying text is unchanged so the persisted value\n * is identical to what the user typed.\n *\n * Configure with `onChipClick` / `onChipHover` to wire interactive\n * popovers and tooltips in the host editor without converting the\n * decorations to widgets (which would break the flat-text invariant).\n */\nexport const TagChipDecoration = Extension.create<TagChipDecorationOptions>({\n name: \"tagChipDecoration\",\n\n addOptions() {\n return {\n onChipClick: undefined,\n onChipHover: undefined,\n };\n },\n\n addProseMirrorPlugins() {\n const options = this.options;\n\n return [\n new Plugin({\n key: tagChipPluginKey,\n state: {\n init: (_, { doc }) => buildDecorations(doc),\n apply: (tr, old) => (tr.docChanged ? buildDecorations(tr.doc) : old),\n },\n props: {\n decorations(state) {\n return this.getState(state) ?? null;\n },\n },\n }),\n new Plugin({\n key: tagChipInteractionKey,\n props: {\n handleDOMEvents: {\n mousedown(view, event) {\n if (!options.onChipClick) return false;\n const found = chipHitFromTarget(event.target);\n if (!found) return false;\n const pos = view.posAtDOM(found.el, 0);\n const raw = found.hit.raw;\n const from = pos;\n const to = pos + raw.length;\n event.preventDefault();\n options.onChipClick({ ...found.hit, from, to }, found.el);\n return true;\n },\n keydown(view, event) {\n if (!options.onChipClick) return false;\n if (event.key !== \"Enter\" && event.key !== \" \") return false;\n const active = document.activeElement;\n if (!(active instanceof HTMLElement)) return false;\n if (!active.matches(\"[data-tag-chip]\")) return false;\n const kind = active.getAttribute(\"data-tag-chip\") as ChipKind | null;\n const raw = active.getAttribute(\"data-tag-chip-text\");\n if (!kind || raw == null) return false;\n const pos = view.posAtDOM(active, 0);\n event.preventDefault();\n options.onChipClick({ kind, raw, from: pos, to: pos + raw.length }, active);\n return true;\n },\n mouseover(_view, event) {\n if (!options.onChipHover) return false;\n const found = chipHitFromTarget(event.target);\n if (!found) {\n options.onChipHover(null, null);\n return false;\n }\n options.onChipHover(found.hit, found.el);\n return false;\n },\n mouseout(_view, event) {\n if (!options.onChipHover) return false;\n const found = chipHitFromTarget(event.target);\n if (found) options.onChipHover(null, null);\n return false;\n },\n },\n },\n }),\n ];\n },\n});\n"],"mappings":";;;;;AAIA,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,cAAc;AAEpB,MAAM,cACJ;AACF,MAAM,eACJ;AACF,MAAM,cACJ;;;;;;;;;;;;AAmCF,SAAS,iBAAiB,KAAqD;CAC7E,MAAM,cAA4B,EAAE;AAEpC,KAAI,aAAa,MAAM,QAAQ;AAC7B,MAAI,CAAC,KAAK,UAAU,KAAK,QAAQ,KAAM;EACvC,MAAM,OAAO,KAAK;EAClB,MAAM,UAAmC,EAAE;AAI3C,cAAY,YAAY;AACxB,OAAK,MAAM,KAAK,KAAK,SAAS,YAAY,EAAE;GAC1C,MAAM,QAAQ,OAAO,EAAE,SAAS;GAChC,MAAM,MAAM,QAAQ,EAAE,GAAG;AACzB,WAAQ,KAAK,CAAC,OAAO,IAAI,CAAC;AAC1B,eAAY,KACV,WAAW,OAAO,OAAO,KAAK;IAC5B,OAAO;IACP,iBAAiB;IACjB,sBAAsB,EAAE;IACxB,MAAM;IACN,UAAU;IACX,CAAC,CACH;;AAMH,eAAa,YAAY;AACzB,OAAK,MAAM,KAAK,KAAK,SAAS,aAAa,EAAE;GAC3C,MAAM,QAAQ,OAAO,EAAE,SAAS;GAChC,MAAM,MAAM,QAAQ,EAAE,GAAG;AACzB,WAAQ,KAAK,CAAC,OAAO,IAAI,CAAC;AAC1B,eAAY,KACV,WAAW,OAAO,OAAO,KAAK;IAC5B,OAAO;IACP,iBAAiB;IACjB,sBAAsB,EAAE;IACxB,MAAM;IACN,UAAU;IACX,CAAC,CACH;;AAGH,cAAY,YAAY;AACxB,OAAK,MAAM,KAAK,KAAK,SAAS,YAAY,EAAE;GAC1C,MAAM,QAAQ,OAAO,EAAE,SAAS;GAChC,MAAM,MAAM,QAAQ,EAAE,GAAG;AAEzB,OAAI,QAAQ,MAAM,CAAC,GAAG,OAAO,QAAQ,KAAK,MAAM,EAAE,CAAE;AACpD,eAAY,KACV,WAAW,OAAO,OAAO,KAAK;IAC5B,OAAO;IACP,iBAAiB;IACjB,sBAAsB,EAAE;IACxB,MAAM;IACN,UAAU;IACX,CAAC,CACH;;GAEH;AAEF,QAAO,cAAc,OAAO,KAAK,YAAY;;AAG/C,MAAM,mBAAmB,IAAI,UAAU,oBAAoB;AAC3D,MAAM,wBAAwB,IAAI,UAAU,qBAAqB;AAEjE,SAAS,kBAAkB,QAGlB;AACP,KAAI,EAAE,kBAAkB,SAAU,QAAO;CACzC,MAAM,KAAK,OAAO,QAAQ,kBAAkB;AAC5C,KAAI,CAAC,GAAI,QAAO;CAChB,MAAM,OAAO,GAAG,aAAa,gBAAgB;CAC7C,MAAM,MAAM,GAAG,aAAa,qBAAqB;AACjD,KAAI,CAAC,QAAQ,OAAO,KAAM,QAAO;AACjC,QAAO;EACL;EACA,KAAK;GAAE;GAAM;GAAK,MAAM;GAAI,IAAI;GAAI;EACrC;;;;;;;;;;;;;AAcH,MAAa,oBAAoB,UAAU,OAAiC;CAC1E,MAAM;CAEN,aAAa;AACX,SAAO;GACL,aAAa;GACb,aAAa;GACd;;CAGH,wBAAwB;EACtB,MAAM,UAAU,KAAK;AAErB,SAAO,CACL,IAAI,OAAO;GACT,KAAK;GACL,OAAO;IACL,OAAO,GAAG,EAAE,UAAU,iBAAiB,IAAI;IAC3C,QAAQ,IAAI,QAAS,GAAG,aAAa,iBAAiB,GAAG,IAAI,GAAG;IACjE;GACD,OAAO,EACL,YAAY,OAAO;AACjB,WAAO,KAAK,SAAS,MAAM,IAAI;MAElC;GACF,CAAC,EACF,IAAI,OAAO;GACT,KAAK;GACL,OAAO,EACL,iBAAiB;IACf,UAAU,MAAM,OAAO;AACrB,SAAI,CAAC,QAAQ,YAAa,QAAO;KACjC,MAAM,QAAQ,kBAAkB,MAAM,OAAO;AAC7C,SAAI,CAAC,MAAO,QAAO;KACnB,MAAM,MAAM,KAAK,SAAS,MAAM,IAAI,EAAE;KACtC,MAAM,MAAM,MAAM,IAAI;KACtB,MAAM,OAAO;KACb,MAAM,KAAK,MAAM,IAAI;AACrB,WAAM,gBAAgB;AACtB,aAAQ,YAAY;MAAE,GAAG,MAAM;MAAK;MAAM;MAAI,EAAE,MAAM,GAAG;AACzD,YAAO;;IAET,QAAQ,MAAM,OAAO;AACnB,SAAI,CAAC,QAAQ,YAAa,QAAO;AACjC,SAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,IAAK,QAAO;KACvD,MAAM,SAAS,SAAS;AACxB,SAAI,EAAE,kBAAkB,aAAc,QAAO;AAC7C,SAAI,CAAC,OAAO,QAAQ,kBAAkB,CAAE,QAAO;KAC/C,MAAM,OAAO,OAAO,aAAa,gBAAgB;KACjD,MAAM,MAAM,OAAO,aAAa,qBAAqB;AACrD,SAAI,CAAC,QAAQ,OAAO,KAAM,QAAO;KACjC,MAAM,MAAM,KAAK,SAAS,QAAQ,EAAE;AACpC,WAAM,gBAAgB;AACtB,aAAQ,YAAY;MAAE;MAAM;MAAK,MAAM;MAAK,IAAI,MAAM,IAAI;MAAQ,EAAE,OAAO;AAC3E,YAAO;;IAET,UAAU,OAAO,OAAO;AACtB,SAAI,CAAC,QAAQ,YAAa,QAAO;KACjC,MAAM,QAAQ,kBAAkB,MAAM,OAAO;AAC7C,SAAI,CAAC,OAAO;AACV,cAAQ,YAAY,MAAM,KAAK;AAC/B,aAAO;;AAET,aAAQ,YAAY,MAAM,KAAK,MAAM,GAAG;AACxC,YAAO;;IAET,SAAS,OAAO,OAAO;AACrB,SAAI,CAAC,QAAQ,YAAa,QAAO;AAEjC,SADc,kBAAkB,MAAM,OAAO,CAClC,SAAQ,YAAY,MAAM,KAAK;AAC1C,YAAO;;IAEV,EACF;GACF,CAAC,CACH;;CAEJ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Fragment, useMemo } from "react";
|
|
2
|
+
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { parseRichText } from "@pipe0/base";
|
|
4
|
+
|
|
5
|
+
//#region src/components/rich-text.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Renders a string as inline markdown. See `parseRichText` in `@pipe0/base`
|
|
8
|
+
* for the supported tokens. Returns `null` for empty/undefined input so callers
|
|
9
|
+
* can keep using `{field.label && <RichText>...</RichText>}` guards.
|
|
10
|
+
*/
|
|
11
|
+
function RichText({ children }) {
|
|
12
|
+
const nodes = useMemo(() => children ? parseRichText(children) : [], [children]);
|
|
13
|
+
if (nodes.length === 0) return null;
|
|
14
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children: renderNodes(nodes) });
|
|
15
|
+
}
|
|
16
|
+
function renderNodes(nodes) {
|
|
17
|
+
return nodes.map((node, i) => /* @__PURE__ */ jsx(Fragment, { children: renderNode(node) }, i));
|
|
18
|
+
}
|
|
19
|
+
function renderNode(node) {
|
|
20
|
+
switch (node.type) {
|
|
21
|
+
case "text": return node.value;
|
|
22
|
+
case "strong": return /* @__PURE__ */ jsx("strong", { children: renderNodes(node.children) });
|
|
23
|
+
case "em": return /* @__PURE__ */ jsx("em", { children: renderNodes(node.children) });
|
|
24
|
+
case "del": return /* @__PURE__ */ jsx("del", { children: renderNodes(node.children) });
|
|
25
|
+
case "code": return /* @__PURE__ */ jsx("code", {
|
|
26
|
+
className: "pz:font-mono pz:text-[0.85em] pz:rounded pz:bg-muted pz:px-1 pz:py-0.5",
|
|
27
|
+
children: node.value
|
|
28
|
+
});
|
|
29
|
+
case "link": return /* @__PURE__ */ jsx("a", {
|
|
30
|
+
href: node.href,
|
|
31
|
+
target: "_blank",
|
|
32
|
+
rel: "noopener noreferrer",
|
|
33
|
+
className: "pz:underline pz:underline-offset-2",
|
|
34
|
+
onClick: (e) => e.stopPropagation(),
|
|
35
|
+
children: renderNodes(node.children)
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { RichText };
|
|
42
|
+
//# sourceMappingURL=rich-text.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-text.mjs","names":[],"sources":["../../src/components/rich-text.tsx"],"sourcesContent":["import { parseRichText, type RichTextNode } from \"@pipe0/base\";\nimport { Fragment, type ReactNode, useMemo } from \"react\";\n\n/**\n * Renders a string as inline markdown. See `parseRichText` in `@pipe0/base`\n * for the supported tokens. Returns `null` for empty/undefined input so callers\n * can keep using `{field.label && <RichText>...</RichText>}` guards.\n */\nexport function RichText({ children }: { children: string | undefined | null }) {\n const nodes = useMemo(() => (children ? parseRichText(children) : []), [children]);\n if (nodes.length === 0) return null;\n return <>{renderNodes(nodes)}</>;\n}\n\nfunction renderNodes(nodes: RichTextNode[]): ReactNode {\n return nodes.map((node, i) => <Fragment key={i}>{renderNode(node)}</Fragment>);\n}\n\nfunction renderNode(node: RichTextNode): ReactNode {\n switch (node.type) {\n case \"text\":\n return node.value;\n case \"strong\":\n return <strong>{renderNodes(node.children)}</strong>;\n case \"em\":\n return <em>{renderNodes(node.children)}</em>;\n case \"del\":\n return <del>{renderNodes(node.children)}</del>;\n case \"code\":\n return (\n <code className=\"pz:font-mono pz:text-[0.85em] pz:rounded pz:bg-muted pz:px-1 pz:py-0.5\">\n {node.value}\n </code>\n );\n case \"link\":\n return (\n <a\n href={node.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"pz:underline pz:underline-offset-2\"\n onClick={(e) => e.stopPropagation()}\n >\n {renderNodes(node.children)}\n </a>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,SAAS,EAAE,YAAqD;CAC9E,MAAM,QAAQ,cAAe,WAAW,cAAc,SAAS,GAAG,EAAE,EAAG,CAAC,SAAS,CAAC;AAClF,KAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAO,4CAAG,YAAY,MAAM,EAAI;;AAGlC,SAAS,YAAY,OAAkC;AACrD,QAAO,MAAM,KAAK,MAAM,MAAM,oBAAC,UAAD,YAAmB,WAAW,KAAK,EAAY,EAAhC,EAAgC,CAAC;;AAGhF,SAAS,WAAW,MAA+B;AACjD,SAAQ,KAAK,MAAb;EACE,KAAK,OACH,QAAO,KAAK;EACd,KAAK,SACH,QAAO,oBAAC,UAAD,YAAS,YAAY,KAAK,SAAS,EAAU;EACtD,KAAK,KACH,QAAO,oBAAC,MAAD,YAAK,YAAY,KAAK,SAAS,EAAM;EAC9C,KAAK,MACH,QAAO,oBAAC,OAAD,YAAM,YAAY,KAAK,SAAS,EAAO;EAChD,KAAK,OACH,QACE,oBAAC,QAAD;GAAM,WAAU;aACb,KAAK;GACD;EAEX,KAAK,OACH,QACE,oBAAC,KAAD;GACE,MAAM,KAAK;GACX,QAAO;GACP,KAAI;GACJ,WAAU;GACV,UAAU,MAAM,EAAE,iBAAiB;aAElC,YAAY,KAAK,SAAS;GACzB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.mjs";
|
|
2
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ui/badge.tsx
|
|
7
|
+
const badgeVariants = cva("pz:group/badge pz:inline-flex pz:h-5 pz:w-fit pz:shrink-0 pz:items-center pz:justify-center pz:gap-1 pz:overflow-hidden pz:rounded-4xl pz:border pz:border-transparent pz:px-2 pz:py-0.5 pz:text-xs pz:font-medium pz:whitespace-nowrap pz:transition-all pz:focus-visible:border-ring pz:focus-visible:ring-[3px] pz:focus-visible:ring-ring/50 pz:has-data-[icon=inline-end]:pr-1.5 pz:has-data-[icon=inline-start]:pl-1.5 pz:aria-invalid:border-destructive pz:aria-invalid:ring-destructive/20 pz:dark:aria-invalid:ring-destructive/40 pz:[&>svg]:pointer-events-none pz:[&>svg]:size-3!", {
|
|
8
|
+
variants: { variant: {
|
|
9
|
+
default: "pz:bg-primary pz:text-primary-foreground pz:[a]:hover:bg-primary/80",
|
|
10
|
+
secondary: "pz:bg-secondary pz:text-secondary-foreground pz:[a]:hover:bg-secondary/80",
|
|
11
|
+
destructive: "pz:bg-destructive/10 pz:text-destructive pz:focus-visible:ring-destructive/20 pz:dark:bg-destructive/20 pz:dark:focus-visible:ring-destructive/40 pz:[a]:hover:bg-destructive/20",
|
|
12
|
+
outline: "pz:border-border pz:text-foreground pz:[a]:hover:bg-muted pz:[a]:hover:text-muted-foreground",
|
|
13
|
+
ghost: "pz:hover:bg-muted pz:hover:text-muted-foreground pz:dark:hover:bg-muted/50",
|
|
14
|
+
link: "pz:text-primary pz:underline-offset-4 pz:hover:underline"
|
|
15
|
+
} },
|
|
16
|
+
defaultVariants: { variant: "default" }
|
|
17
|
+
});
|
|
18
|
+
function Badge({ className, variant = "default", render, ...props }) {
|
|
19
|
+
return useRender({
|
|
20
|
+
defaultTagName: "span",
|
|
21
|
+
props: mergeProps({ className: cn(badgeVariants({ variant }), className) }, props),
|
|
22
|
+
render,
|
|
23
|
+
state: {
|
|
24
|
+
slot: "badge",
|
|
25
|
+
variant
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { Badge };
|
|
32
|
+
//# sourceMappingURL=badge.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.mjs","names":[],"sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"pz:group/badge pz:inline-flex pz:h-5 pz:w-fit pz:shrink-0 pz:items-center pz:justify-center pz:gap-1 pz:overflow-hidden pz:rounded-4xl pz:border pz:border-transparent pz:px-2 pz:py-0.5 pz:text-xs pz:font-medium pz:whitespace-nowrap pz:transition-all pz:focus-visible:border-ring pz:focus-visible:ring-[3px] pz:focus-visible:ring-ring/50 pz:has-data-[icon=inline-end]:pr-1.5 pz:has-data-[icon=inline-start]:pl-1.5 pz:aria-invalid:border-destructive pz:aria-invalid:ring-destructive/20 pz:dark:aria-invalid:ring-destructive/40 pz:[&>svg]:pointer-events-none pz:[&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"pz:bg-primary pz:text-primary-foreground pz:[a]:hover:bg-primary/80\",\n secondary: \"pz:bg-secondary pz:text-secondary-foreground pz:[a]:hover:bg-secondary/80\",\n destructive:\n \"pz:bg-destructive/10 pz:text-destructive pz:focus-visible:ring-destructive/20 pz:dark:bg-destructive/20 pz:dark:focus-visible:ring-destructive/40 pz:[a]:hover:bg-destructive/20\",\n outline:\n \"pz:border-border pz:text-foreground pz:[a]:hover:bg-muted pz:[a]:hover:text-muted-foreground\",\n ghost: \"pz:hover:bg-muted pz:hover:text-muted-foreground pz:dark:hover:bg-muted/50\",\n link: \"pz:text-primary pz:underline-offset-4 pz:hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Badge({\n className,\n variant = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ variant }), className),\n },\n props,\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n });\n}\n\nexport { Badge, badgeVariants };\n"],"mappings":";;;;;;AAMA,MAAM,gBAAgB,IACpB,kkBACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,WAAW;EACX,aACE;EACF,SACE;EACF,OAAO;EACP,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,MAAM,EACb,WACA,UAAU,WACV,QACA,GAAG,SACqE;AACxE,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL,EACE,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU,EACrD,EACD,MACD;EACD;EACA,OAAO;GACL,MAAM;GACN;GACD;EACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "@base-ui/react/button";
|
|
3
|
+
import { VariantProps } from "class-variance-authority";
|
|
4
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ui/button.d.ts
|
|
7
|
+
declare const buttonVariants: (props?: ({
|
|
8
|
+
variant?: "default" | "link" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
9
|
+
size?: "default" | "sm" | "lg" | "icon" | "xs" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
10
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
11
|
+
declare function Button$1({
|
|
12
|
+
className,
|
|
13
|
+
variant,
|
|
14
|
+
size,
|
|
15
|
+
...props
|
|
16
|
+
}: Button.Props & VariantProps<typeof buttonVariants>): _$react_jsx_runtime0.JSX.Element;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { Button$1 as Button };
|
|
19
|
+
//# sourceMappingURL=button.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.mts","names":[],"sources":["../../../src/components/ui/button.tsx"],"mappings":";;;;;;cAKM,cAAA,GAAc,KAAA;;;IAmCnB,iCAAA,CAAA,SAAA;AAAA,iBAEQ,QAAA,CAAA;EACP,SAAA;EACA,OAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,MAAA,CAAgB,KAAA,GAAQ,YAAA,QAAoB,cAAA,IAAe,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.mjs";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from "@base-ui/react/button";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ui/button.tsx
|
|
7
|
+
const buttonVariants = cva("pz:group/button pz:inline-flex pz:shrink-0 pz:items-center pz:justify-center pz:rounded-lg pz:border pz:border-transparent pz:bg-clip-padding pz:text-sm pz:font-medium pz:whitespace-nowrap pz:transition-all pz:outline-none pz:select-none pz:focus-visible:border-ring pz:focus-visible:ring-3 pz:focus-visible:ring-ring/50 pz:active:not-aria-[haspopup]:translate-y-px pz:disabled:pointer-events-none pz:disabled:opacity-50 pz:aria-invalid:border-destructive pz:aria-invalid:ring-3 pz:aria-invalid:ring-destructive/20 pz:dark:aria-invalid:border-destructive/50 pz:dark:aria-invalid:ring-destructive/40 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4", {
|
|
8
|
+
variants: {
|
|
9
|
+
variant: {
|
|
10
|
+
default: "pz:bg-primary pz:text-primary-foreground pz:[a]:hover:bg-primary/80",
|
|
11
|
+
outline: "pz:border-border pz:bg-background pz:hover:bg-muted pz:hover:text-foreground pz:aria-expanded:bg-muted pz:aria-expanded:text-foreground pz:dark:border-input pz:dark:bg-input/30 pz:dark:hover:bg-input/50",
|
|
12
|
+
secondary: "pz:bg-secondary pz:text-secondary-foreground pz:hover:bg-secondary/80 pz:aria-expanded:bg-secondary pz:aria-expanded:text-secondary-foreground",
|
|
13
|
+
ghost: "pz:hover:bg-muted pz:hover:text-foreground pz:aria-expanded:bg-muted pz:aria-expanded:text-foreground pz:dark:hover:bg-muted/50",
|
|
14
|
+
destructive: "pz:bg-destructive/10 pz:text-destructive pz:hover:bg-destructive/20 pz:focus-visible:border-destructive/40 pz:focus-visible:ring-destructive/20 pz:dark:bg-destructive/20 pz:dark:hover:bg-destructive/30 pz:dark:focus-visible:ring-destructive/40",
|
|
15
|
+
link: "pz:text-primary pz:underline-offset-4 pz:hover:underline pz:px-0"
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
default: "pz:h-8 pz:gap-1.5 pz:px-2.5 pz:has-data-[icon=inline-end]:pr-2 pz:has-data-[icon=inline-start]:pl-2",
|
|
19
|
+
xs: "pz:h-6 pz:gap-1 pz:rounded-[min(var(--pz-radius-md),10px)] pz:px-2 pz:text-xs pz:in-data-[slot=button-group]:rounded-lg pz:has-data-[icon=inline-end]:pr-1.5 pz:has-data-[icon=inline-start]:pl-1.5 pz:[&_svg:not([class*=size-])]:size-3",
|
|
20
|
+
sm: "pz:h-7 pz:gap-1 pz:rounded-[min(var(--pz-radius-md),12px)] pz:px-2.5 pz:text-[0.8rem] pz:in-data-[slot=button-group]:rounded-lg pz:has-data-[icon=inline-end]:pr-1.5 pz:has-data-[icon=inline-start]:pl-1.5 pz:[&_svg:not([class*=size-])]:size-3.5",
|
|
21
|
+
lg: "pz:h-9 pz:gap-1.5 pz:px-2.5 pz:has-data-[icon=inline-end]:pr-2 pz:has-data-[icon=inline-start]:pl-2",
|
|
22
|
+
icon: "pz:size-8",
|
|
23
|
+
"icon-xs": "pz:size-6 pz:rounded-[min(var(--pz-radius-md),10px)] pz:in-data-[slot=button-group]:rounded-lg pz:[&_svg:not([class*=size-])]:size-3",
|
|
24
|
+
"icon-sm": "pz:size-7 pz:rounded-[min(var(--pz-radius-md),12px)] pz:in-data-[slot=button-group]:rounded-lg",
|
|
25
|
+
"icon-lg": "pz:size-9"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
variant: "default",
|
|
30
|
+
size: "default"
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
function Button$1({ className, variant = "default", size = "default", ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
35
|
+
"data-slot": "button",
|
|
36
|
+
className: cn(buttonVariants({
|
|
37
|
+
variant,
|
|
38
|
+
size,
|
|
39
|
+
className
|
|
40
|
+
})),
|
|
41
|
+
...props
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { Button$1 as Button, buttonVariants };
|
|
47
|
+
//# sourceMappingURL=button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.mjs","names":["Button","ButtonPrimitive"],"sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"pz:group/button pz:inline-flex pz:shrink-0 pz:items-center pz:justify-center pz:rounded-lg pz:border pz:border-transparent pz:bg-clip-padding pz:text-sm pz:font-medium pz:whitespace-nowrap pz:transition-all pz:outline-none pz:select-none pz:focus-visible:border-ring pz:focus-visible:ring-3 pz:focus-visible:ring-ring/50 pz:active:not-aria-[haspopup]:translate-y-px pz:disabled:pointer-events-none pz:disabled:opacity-50 pz:aria-invalid:border-destructive pz:aria-invalid:ring-3 pz:aria-invalid:ring-destructive/20 pz:dark:aria-invalid:border-destructive/50 pz:dark:aria-invalid:ring-destructive/40 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4\",\n {\n variants: {\n variant: {\n default: \"pz:bg-primary pz:text-primary-foreground pz:[a]:hover:bg-primary/80\",\n outline:\n \"pz:border-border pz:bg-background pz:hover:bg-muted pz:hover:text-foreground pz:aria-expanded:bg-muted pz:aria-expanded:text-foreground pz:dark:border-input pz:dark:bg-input/30 pz:dark:hover:bg-input/50\",\n secondary:\n \"pz:bg-secondary pz:text-secondary-foreground pz:hover:bg-secondary/80 pz:aria-expanded:bg-secondary pz:aria-expanded:text-secondary-foreground\",\n ghost:\n \"pz:hover:bg-muted pz:hover:text-foreground pz:aria-expanded:bg-muted pz:aria-expanded:text-foreground pz:dark:hover:bg-muted/50\",\n destructive:\n \"pz:bg-destructive/10 pz:text-destructive pz:hover:bg-destructive/20 pz:focus-visible:border-destructive/40 pz:focus-visible:ring-destructive/20 pz:dark:bg-destructive/20 pz:dark:hover:bg-destructive/30 pz:dark:focus-visible:ring-destructive/40\",\n link: \"pz:text-primary pz:underline-offset-4 pz:hover:underline pz:px-0\",\n },\n size: {\n default:\n \"pz:h-8 pz:gap-1.5 pz:px-2.5 pz:has-data-[icon=inline-end]:pr-2 pz:has-data-[icon=inline-start]:pl-2\",\n xs: \"pz:h-6 pz:gap-1 pz:rounded-[min(var(--pz-radius-md),10px)] pz:px-2 pz:text-xs pz:in-data-[slot=button-group]:rounded-lg pz:has-data-[icon=inline-end]:pr-1.5 pz:has-data-[icon=inline-start]:pl-1.5 pz:[&_svg:not([class*=size-])]:size-3\",\n sm: \"pz:h-7 pz:gap-1 pz:rounded-[min(var(--pz-radius-md),12px)] pz:px-2.5 pz:text-[0.8rem] pz:in-data-[slot=button-group]:rounded-lg pz:has-data-[icon=inline-end]:pr-1.5 pz:has-data-[icon=inline-start]:pl-1.5 pz:[&_svg:not([class*=size-])]:size-3.5\",\n lg: \"pz:h-9 pz:gap-1.5 pz:px-2.5 pz:has-data-[icon=inline-end]:pr-2 pz:has-data-[icon=inline-start]:pl-2\",\n icon: \"pz:size-8\",\n \"icon-xs\":\n \"pz:size-6 pz:rounded-[min(var(--pz-radius-md),10px)] pz:in-data-[slot=button-group]:rounded-lg pz:[&_svg:not([class*=size-])]:size-3\",\n \"icon-sm\":\n \"pz:size-7 pz:rounded-[min(var(--pz-radius-md),12px)] pz:in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"pz:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;AAKA,MAAM,iBAAiB,IACrB,mrBACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SACE;GACF,WACE;GACF,OACE;GACF,aACE;GACF,MAAM;GACP;EACD,MAAM;GACJ,SACE;GACF,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,WACE;GACF,WACE;GACF,WAAW;GACZ;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,SAASA,SAAO,EACd,WACA,UAAU,WACV,OAAO,WACP,GAAG,SAC2D;AAC9D,QACE,oBAACC,QAAD;EACE,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,GAAI;EACJ"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { usePortalContainer } from "../../context/portal-container-context.mjs";
|
|
4
|
+
import { cn } from "../../lib/utils.mjs";
|
|
5
|
+
import { Button } from "./button.mjs";
|
|
6
|
+
import "./input-group.mjs";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { CheckIcon, ChevronDownIcon, XIcon } from "lucide-react";
|
|
10
|
+
import { Combobox } from "@base-ui/react";
|
|
11
|
+
|
|
12
|
+
//#region src/components/ui/combobox.tsx
|
|
13
|
+
const Combobox$1 = Combobox.Root;
|
|
14
|
+
function ComboboxTrigger({ className, children, ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsxs(Combobox.Trigger, {
|
|
16
|
+
"data-slot": "combobox-trigger",
|
|
17
|
+
className: cn("pz:[&_svg:not([class*=size-])]:size-4", className),
|
|
18
|
+
...props,
|
|
19
|
+
children: [children, /* @__PURE__ */ jsx(ChevronDownIcon, { className: "pz:pointer-events-none pz:size-4 pz:text-muted-foreground" })]
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function ComboboxContent({ className, side = "bottom", sideOffset = 6, align = "start", alignOffset = 0, anchor, ...props }) {
|
|
23
|
+
const container = usePortalContainer();
|
|
24
|
+
return /* @__PURE__ */ jsx(Combobox.Portal, {
|
|
25
|
+
container,
|
|
26
|
+
children: /* @__PURE__ */ jsx(Combobox.Positioner, {
|
|
27
|
+
side,
|
|
28
|
+
sideOffset,
|
|
29
|
+
align,
|
|
30
|
+
alignOffset,
|
|
31
|
+
anchor,
|
|
32
|
+
className: "pz:isolate pz:z-50",
|
|
33
|
+
children: /* @__PURE__ */ jsx(Combobox.Popup, {
|
|
34
|
+
"data-slot": "combobox-content",
|
|
35
|
+
"data-chips": !!anchor,
|
|
36
|
+
className: cn("pz: pz: pz:group/combobox-content pz:relative pz:max-h-(--available-height) pz:w-(--anchor-width) pz:max-w-(--available-width) pz:min-w-[calc(var(--anchor-width)+--spacing(7))] pz:origin-(--transform-origin) pz:overflow-hidden pz:rounded-lg pz:bg-popover pz:text-popover-foreground pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:duration-100 pz:data-[chips=true]:min-w-(--anchor-width) pz:data-[side=bottom]:slide-in-from-top-2 pz:data-[side=inline-end]:slide-in-from-left-2 pz:data-[side=inline-start]:slide-in-from-right-2 pz:data-[side=left]:slide-in-from-right-2 pz:data-[side=right]:slide-in-from-left-2 pz:data-[side=top]:slide-in-from-bottom-2 pz:*:data-[slot=input-group]:m-1 pz:*:data-[slot=input-group]:mb-0 pz:*:data-[slot=input-group]:h-8 pz:*:data-[slot=input-group]:border-input/30 pz:*:data-[slot=input-group]:bg-input/30 pz:*:data-[slot=input-group]:shadow-none pz:data-open:animate-in pz:data-open:fade-in-0 pz:data-open:zoom-in-95 pz:data-closed:animate-out pz:data-closed:fade-out-0 pz:data-closed:zoom-out-95", className),
|
|
37
|
+
...props
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function ComboboxList({ className, ...props }) {
|
|
43
|
+
return /* @__PURE__ */ jsx(Combobox.List, {
|
|
44
|
+
"data-slot": "combobox-list",
|
|
45
|
+
className: cn("pz:no-scrollbar pz:max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] pz:scroll-py-1 pz:overflow-y-auto pz:overscroll-contain pz:p-1 pz:data-empty:p-0", className),
|
|
46
|
+
...props
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function ComboboxItem({ className, children, ...props }) {
|
|
50
|
+
return /* @__PURE__ */ jsxs(Combobox.Item, {
|
|
51
|
+
"data-slot": "combobox-item",
|
|
52
|
+
className: cn("pz:relative pz:flex pz:w-full pz:cursor-default pz:items-center pz:gap-2 pz:rounded-md pz:py-1 pz:pr-8 pz:pl-1.5 pz:text-sm pz:outline-hidden pz:select-none pz:data-highlighted:bg-accent pz:data-highlighted:text-accent-foreground pz:not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground pz:data-disabled:pointer-events-none pz:data-disabled:opacity-50 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4", className),
|
|
53
|
+
...props,
|
|
54
|
+
children: [children, /* @__PURE__ */ jsx(Combobox.ItemIndicator, {
|
|
55
|
+
render: /* @__PURE__ */ jsx("span", { className: "pz:pointer-events-none pz:absolute pz:right-2 pz:flex pz:size-4 pz:items-center pz:justify-center" }),
|
|
56
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "pz:pointer-events-none" })
|
|
57
|
+
})]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function ComboboxEmpty({ className, ...props }) {
|
|
61
|
+
return /* @__PURE__ */ jsx(Combobox.Empty, {
|
|
62
|
+
"data-slot": "combobox-empty",
|
|
63
|
+
className: cn("pz:hidden pz:w-full pz:justify-center pz:py-2 pz:text-center pz:text-sm pz:text-muted-foreground pz:group-data-empty/combobox-content:flex", className),
|
|
64
|
+
...props
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function ComboboxChips({ className, ...props }) {
|
|
68
|
+
return /* @__PURE__ */ jsx(Combobox.Chips, {
|
|
69
|
+
"data-slot": "combobox-chips",
|
|
70
|
+
className: cn("pz:flex pz:min-h-8 pz:flex-wrap pz:items-center pz:gap-1 pz:rounded-lg pz:border pz:border-input pz:bg-transparent pz:bg-clip-padding pz:px-2.5 pz:py-1 pz:text-sm pz:transition-colors pz:focus-within:border-ring pz:focus-within:ring-3 pz:focus-within:ring-ring/50 pz:has-aria-invalid:border-destructive pz:has-aria-invalid:ring-3 pz:has-aria-invalid:ring-destructive/20 pz:has-data-[slot=combobox-chip]:px-1 pz:dark:bg-input/30 pz:dark:has-aria-invalid:border-destructive/50 pz:dark:has-aria-invalid:ring-destructive/40", className),
|
|
71
|
+
...props
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function ComboboxChip({ className, children, showRemove = true, ...props }) {
|
|
75
|
+
return /* @__PURE__ */ jsxs(Combobox.Chip, {
|
|
76
|
+
"data-slot": "combobox-chip",
|
|
77
|
+
className: cn("pz:flex pz:h-[calc(--spacing(5.25))] pz:w-fit pz:items-center pz:justify-center pz:gap-1 pz:rounded-sm pz:bg-muted pz:px-1.5 pz:text-xs pz:font-medium pz:whitespace-nowrap pz:text-foreground pz:has-disabled:pointer-events-none pz:has-disabled:cursor-not-allowed pz:has-disabled:opacity-50 pz:has-data-[slot=combobox-chip-remove]:pr-0", className),
|
|
78
|
+
...props,
|
|
79
|
+
children: [children, showRemove && /* @__PURE__ */ jsx(Combobox.ChipRemove, {
|
|
80
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
81
|
+
variant: "ghost",
|
|
82
|
+
size: "icon-xs"
|
|
83
|
+
}),
|
|
84
|
+
className: "pz:-ml-1 pz:opacity-50 pz:hover:opacity-100",
|
|
85
|
+
"data-slot": "combobox-chip-remove",
|
|
86
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "pz:pointer-events-none" })
|
|
87
|
+
})]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function ComboboxChipsInput({ className, ...props }) {
|
|
91
|
+
return /* @__PURE__ */ jsx(Combobox.Input, {
|
|
92
|
+
"data-slot": "combobox-chip-input",
|
|
93
|
+
className: cn("pz:min-w-16 pz:flex-1 pz:outline-none", className),
|
|
94
|
+
...props
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function useComboboxAnchor() {
|
|
98
|
+
return React.useRef(null);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
//#endregion
|
|
102
|
+
export { Combobox$1 as Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxContent, ComboboxEmpty, ComboboxItem, ComboboxList, ComboboxTrigger, useComboboxAnchor };
|
|
103
|
+
//# sourceMappingURL=combobox.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.mjs","names":["Combobox","ComboboxPrimitive"],"sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { CheckIcon, ChevronDownIcon, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { usePortalContainer } from \"../../context/portal-container-context\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from \"./input-group\";\n\nconst Combobox = ComboboxPrimitive.Root;\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />;\n}\n\nfunction ComboboxTrigger({ className, children, ...props }: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"pz:[&_svg:not([class*=size-])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pz:pointer-events-none pz:size-4 pz:text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n );\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pz:pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n );\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean;\n showClear?: boolean;\n}) {\n return (\n <InputGroup className={cn(\"pz:w-auto\", className)}>\n <ComboboxPrimitive.Input render={<InputGroupInput disabled={disabled} />} {...props} />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n render={<ComboboxTrigger />}\n data-slot=\"input-group-button\"\n className=\"pz:group-has-data-[slot=combobox-clear]/input-group:hidden pz:data-pressed:bg-transparent\"\n disabled={disabled}\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n );\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n const container = usePortalContainer();\n return (\n <ComboboxPrimitive.Portal container={container}>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"pz:isolate pz:z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n \"pz: pz: pz:group/combobox-content pz:relative pz:max-h-(--available-height) pz:w-(--anchor-width) pz:max-w-(--available-width) pz:min-w-[calc(var(--anchor-width)+--spacing(7))] pz:origin-(--transform-origin) pz:overflow-hidden pz:rounded-lg pz:bg-popover pz:text-popover-foreground pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:duration-100 pz:data-[chips=true]:min-w-(--anchor-width) pz:data-[side=bottom]:slide-in-from-top-2 pz:data-[side=inline-end]:slide-in-from-left-2 pz:data-[side=inline-start]:slide-in-from-right-2 pz:data-[side=left]:slide-in-from-right-2 pz:data-[side=right]:slide-in-from-left-2 pz:data-[side=top]:slide-in-from-bottom-2 pz:*:data-[slot=input-group]:m-1 pz:*:data-[slot=input-group]:mb-0 pz:*:data-[slot=input-group]:h-8 pz:*:data-[slot=input-group]:border-input/30 pz:*:data-[slot=input-group]:bg-input/30 pz:*:data-[slot=input-group]:shadow-none pz:data-open:animate-in pz:data-open:fade-in-0 pz:data-open:zoom-in-95 pz:data-closed:animate-out pz:data-closed:fade-out-0 pz:data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n );\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"pz:no-scrollbar pz:max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] pz:scroll-py-1 pz:overflow-y-auto pz:overscroll-contain pz:p-1 pz:data-empty:p-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"pz:relative pz:flex pz:w-full pz:cursor-default pz:items-center pz:gap-2 pz:rounded-md pz:py-1 pz:pr-8 pz:pl-1.5 pz:text-sm pz:outline-hidden pz:select-none pz:data-highlighted:bg-accent pz:data-highlighted:text-accent-foreground pz:not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground pz:data-disabled:pointer-events-none pz:data-disabled:opacity-50 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pz:pointer-events-none pz:absolute pz:right-2 pz:flex pz:size-4 pz:items-center pz:justify-center\" />\n }\n >\n <CheckIcon className=\"pz:pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n );\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group data-slot=\"combobox-group\" className={cn(className)} {...props} />\n );\n}\n\nfunction ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"pz:px-2 pz:py-1.5 pz:text-xs pz:text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />;\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"pz:hidden pz:w-full pz:justify-center pz:py-2 pz:text-center pz:text-sm pz:text-muted-foreground pz:group-data-empty/combobox-content:flex\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"pz:-mx-1 pz:my-1 pz:h-px pz:bg-border\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"pz:flex pz:min-h-8 pz:flex-wrap pz:items-center pz:gap-1 pz:rounded-lg pz:border pz:border-input pz:bg-transparent pz:bg-clip-padding pz:px-2.5 pz:py-1 pz:text-sm pz:transition-colors pz:focus-within:border-ring pz:focus-within:ring-3 pz:focus-within:ring-ring/50 pz:has-aria-invalid:border-destructive pz:has-aria-invalid:ring-3 pz:has-aria-invalid:ring-destructive/20 pz:has-data-[slot=combobox-chip]:px-1 pz:dark:bg-input/30 pz:dark:has-aria-invalid:border-destructive/50 pz:dark:has-aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean;\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"pz:flex pz:h-[calc(--spacing(5.25))] pz:w-fit pz:items-center pz:justify-center pz:gap-1 pz:rounded-sm pz:bg-muted pz:px-1.5 pz:text-xs pz:font-medium pz:whitespace-nowrap pz:text-foreground pz:has-disabled:pointer-events-none pz:has-disabled:cursor-not-allowed pz:has-disabled:opacity-50 pz:has-data-[slot=combobox-chip-remove]:pr-0\",\n className,\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"pz:-ml-1 pz:opacity-50 pz:hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pz:pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n );\n}\n\nfunction ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"pz:min-w-16 pz:flex-1 pz:outline-none\", className)}\n {...props}\n />\n );\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null);\n}\n\nexport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxCollection,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxLabel,\n ComboboxList,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n};\n"],"mappings":";;;;;;;;;;;;AAUA,MAAMA,aAAWC,SAAkB;AAMnC,SAAS,gBAAgB,EAAE,WAAW,UAAU,GAAG,SAA0C;AAC3F,QACE,qBAACA,SAAkB,SAAnB;EACE,aAAU;EACV,WAAW,GAAG,yCAAyC,UAAU;EACjE,GAAI;YAHN,CAKG,UACD,oBAAC,iBAAD,EAAiB,WAAU,6DAA8D,EAC/D;;;AAiDhC,SAAS,gBAAgB,EACvB,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,QACA,GAAG,SAKA;CACH,MAAM,YAAY,oBAAoB;AACtC,QACE,oBAACA,SAAkB,QAAnB;EAAqC;YACnC,oBAACA,SAAkB,YAAnB;GACQ;GACM;GACL;GACM;GACL;GACR,WAAU;aAEV,oBAACA,SAAkB,OAAnB;IACE,aAAU;IACV,cAAY,CAAC,CAAC;IACd,WAAW,GACT,ygCACA,UACD;IACD,GAAI;IACJ;GAC2B;EACN;;AAI/B,SAAS,aAAa,EAAE,WAAW,GAAG,SAAuC;AAC3E,QACE,oBAACA,SAAkB,MAAnB;EACE,aAAU;EACV,WAAW,GACT,gMACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,UAAU,GAAG,SAAuC;AACrF,QACE,qBAACA,SAAkB,MAAnB;EACE,aAAU;EACV,WAAW,GACT,gdACA,UACD;EACD,GAAI;YANN,CAQG,UACD,oBAACA,SAAkB,eAAnB;GACE,QACE,oBAAC,QAAD,EAAM,WAAU,qGAAsG;aAGxH,oBAAC,WAAD,EAAW,WAAU,0BAA2B;GAChB,EACX;;;AAwB7B,SAAS,cAAc,EAAE,WAAW,GAAG,SAAwC;AAC7E,QACE,oBAACA,SAAkB,OAAnB;EACE,aAAU;EACV,WAAW,GACT,8IACA,UACD;EACD,GAAI;EACJ;;AAcN,SAAS,cAAc,EACrB,WACA,GAAG,SAC2F;AAC9F,QACE,oBAACA,SAAkB,OAAnB;EACE,aAAU;EACV,WAAW,GACT,2gBACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,aAAa,EACpB,WACA,UACA,aAAa,MACb,GAAG,SAGF;AACD,QACE,qBAACA,SAAkB,MAAnB;EACE,aAAU;EACV,WAAW,GACT,iVACA,UACD;EACD,GAAI;YANN,CAQG,UACA,cACC,oBAACA,SAAkB,YAAnB;GACE,QAAQ,oBAAC,QAAD;IAAQ,SAAQ;IAAQ,MAAK;IAAY;GACjD,WAAU;GACV,aAAU;aAEV,oBAAC,OAAD,EAAO,WAAU,0BAA2B;GACf,EAEV;;;AAI7B,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAwC;AAClF,QACE,oBAACA,SAAkB,OAAnB;EACE,aAAU;EACV,WAAW,GAAG,yCAAyC,UAAU;EACjE,GAAI;EACJ;;AAIN,SAAS,oBAAoB;AAC3B,QAAO,MAAM,OAA8B,KAAK"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "../../lib/utils.mjs";
|
|
2
|
+
import "./button.mjs";
|
|
3
|
+
import "./input.mjs";
|
|
4
|
+
import "./textarea.mjs";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
|
|
8
|
+
//#region src/components/ui/input-group.tsx
|
|
9
|
+
const inputGroupAddonVariants = cva("pz:flex pz:h-auto pz:cursor-text pz:items-center pz:justify-center pz:gap-2 pz:py-1.5 pz:text-sm pz:font-medium pz:text-muted-foreground pz:select-none pz:group-data-[disabled=true]/input-group:opacity-50 pz:[&>kbd]:rounded-[calc(var(--p0-radius)-5px)] pz:[&>svg:not([class*=size-])]:size-4", {
|
|
10
|
+
variants: { align: {
|
|
11
|
+
"inline-start": "pz:order-first pz:pl-2 pz:has-[>button]:ml-[-0.3rem] pz:has-[>kbd]:ml-[-0.15rem]",
|
|
12
|
+
"inline-end": "pz:order-last pz:pr-2 pz:has-[>button]:mr-[-0.3rem] pz:has-[>kbd]:mr-[-0.15rem]",
|
|
13
|
+
"block-start": "pz:order-first pz:w-full pz:justify-start pz:px-2.5 pz:pt-2 pz:group-has-[>input]/input-group:pt-2 pz:[.border-b]:pb-2",
|
|
14
|
+
"block-end": "pz:order-last pz:w-full pz:justify-start pz:px-2.5 pz:pb-2 pz:group-has-[>input]/input-group:pb-2 pz:[.border-t]:pt-2"
|
|
15
|
+
} },
|
|
16
|
+
defaultVariants: { align: "inline-start" }
|
|
17
|
+
});
|
|
18
|
+
const inputGroupButtonVariants = cva("pz:flex pz:items-center pz:gap-2 pz:text-sm pz:shadow-none", {
|
|
19
|
+
variants: { size: {
|
|
20
|
+
xs: "pz:h-6 pz:gap-1 pz:rounded-[calc(var(--p0-radius)-3px)] pz:px-1.5 pz:[&>svg:not([class*=size-])]:size-3.5",
|
|
21
|
+
sm: "pz:",
|
|
22
|
+
"icon-xs": "pz:size-6 pz:rounded-[calc(var(--p0-radius)-3px)] pz:p-0 pz:has-[>svg]:p-0",
|
|
23
|
+
"icon-sm": "pz:size-8 pz:p-0 pz:has-[>svg]:p-0"
|
|
24
|
+
} },
|
|
25
|
+
defaultVariants: { size: "xs" }
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { };
|
|
30
|
+
//# sourceMappingURL=input-group.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-group.mjs","names":[],"sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"pz:group/input-group pz:relative pz:flex pz:h-8 pz:w-full pz:min-w-0 pz:items-center pz:rounded-lg pz:border pz:border-input pz:transition-colors pz:outline-none pz:in-data-[slot=combobox-content]:focus-within:border-inherit pz:in-data-[slot=combobox-content]:focus-within:ring-0 pz:has-disabled:bg-input/50 pz:has-disabled:opacity-50 pz:has-[[data-slot=input-group-control]:focus-visible]:border-ring pz:has-[[data-slot=input-group-control]:focus-visible]:ring-3 pz:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 pz:has-[[data-slot][aria-invalid=true]]:border-destructive pz:has-[[data-slot][aria-invalid=true]]:ring-3 pz:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 pz:has-[>[data-align=block-end]]:h-auto pz:has-[>[data-align=block-end]]:flex-col pz:has-[>[data-align=block-start]]:h-auto pz:has-[>[data-align=block-start]]:flex-col pz:has-[>textarea]:h-auto pz:dark:bg-input/30 pz:dark:has-disabled:bg-input/80 pz:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 pz:has-[>[data-align=block-end]]:[&>input]:pt-3 pz:has-[>[data-align=block-start]]:[&>input]:pb-3 pz:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 pz:has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"pz:flex pz:h-auto pz:cursor-text pz:items-center pz:justify-center pz:gap-2 pz:py-1.5 pz:text-sm pz:font-medium pz:text-muted-foreground pz:select-none pz:group-data-[disabled=true]/input-group:opacity-50 pz:[&>kbd]:rounded-[calc(var(--p0-radius)-5px)] pz:[&>svg:not([class*=size-])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"pz:order-first pz:pl-2 pz:has-[>button]:ml-[-0.3rem] pz:has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"pz:order-last pz:pr-2 pz:has-[>button]:mr-[-0.3rem] pz:has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"pz:order-first pz:w-full pz:justify-start pz:px-2.5 pz:pt-2 pz:group-has-[>input]/input-group:pt-2 pz:[.border-b]:pb-2\",\n \"block-end\":\n \"pz:order-last pz:w-full pz:justify-start pz:px-2.5 pz:pb-2 pz:group-has-[>input]/input-group:pb-2 pz:[.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"pz:flex pz:items-center pz:gap-2 pz:text-sm pz:shadow-none\", {\n variants: {\n size: {\n xs: \"pz:h-6 pz:gap-1 pz:rounded-[calc(var(--p0-radius)-3px)] pz:px-1.5 pz:[&>svg:not([class*=size-])]:size-3.5\",\n sm: \"pz:\",\n \"icon-xs\": \"pz:size-6 pz:rounded-[calc(var(--p0-radius)-3px)] pz:p-0 pz:has-[>svg]:p-0\",\n \"icon-sm\": \"pz:size-8 pz:p-0 pz:has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n});\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\";\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"pz:flex pz:items-center pz:gap-2 pz:text-sm pz:text-muted-foreground pz:[&_svg]:pointer-events-none pz:[&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"pz:flex-1 pz:rounded-none pz:border-0 pz:bg-transparent pz:shadow-none pz:ring-0 pz:focus-visible:ring-0 pz:disabled:bg-transparent pz:aria-invalid:ring-0 pz:dark:bg-transparent pz:dark:disabled:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"pz:flex-1 pz:resize-none pz:rounded-none pz:border-0 pz:bg-transparent pz:py-2 pz:shadow-none pz:ring-0 pz:focus-visible:ring-0 pz:disabled:bg-transparent pz:aria-invalid:ring-0 pz:dark:bg-transparent pz:dark:disabled:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;AAsBA,MAAM,0BAA0B,IAC9B,sSACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAwBD,MAAM,2BAA2B,IAAI,8DAA8D;CACjG,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.mjs";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Input } from "@base-ui/react/input";
|
|
4
|
+
|
|
5
|
+
//#region src/components/ui/input.tsx
|
|
6
|
+
function Input$1({ className, type, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(Input, {
|
|
8
|
+
type,
|
|
9
|
+
"data-slot": "input",
|
|
10
|
+
className: cn("pz:h-8 pz:w-full pz:min-w-0 pz:rounded-lg pz:border pz:border-input pz:bg-transparent pz:px-2.5 pz:py-1 pz:text-base pz:transition-colors pz:outline-none pz:file:inline-flex pz:file:h-6 pz:file:border-0 pz:file:bg-transparent pz:file:text-sm pz:file:font-medium pz:file:text-foreground pz:placeholder:text-muted-foreground pz:focus-visible:border-ring pz:focus-visible:ring-3 pz:focus-visible:ring-ring/50 pz:disabled:pointer-events-none pz:disabled:cursor-not-allowed pz:disabled:bg-input/50 pz:disabled:opacity-50 pz:aria-invalid:border-destructive pz:aria-invalid:ring-3 pz:aria-invalid:ring-destructive/20 pz:md:text-sm pz:dark:bg-input/30 pz:dark:disabled:bg-input/80 pz:dark:aria-invalid:border-destructive/50 pz:dark:aria-invalid:ring-destructive/40", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Input$1 as Input };
|
|
17
|
+
//# sourceMappingURL=input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.mjs","names":["Input","InputPrimitive"],"sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import { Input as InputPrimitive } from \"@base-ui/react/input\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"pz:h-8 pz:w-full pz:min-w-0 pz:rounded-lg pz:border pz:border-input pz:bg-transparent pz:px-2.5 pz:py-1 pz:text-base pz:transition-colors pz:outline-none pz:file:inline-flex pz:file:h-6 pz:file:border-0 pz:file:bg-transparent pz:file:text-sm pz:file:font-medium pz:file:text-foreground pz:placeholder:text-muted-foreground pz:focus-visible:border-ring pz:focus-visible:ring-3 pz:focus-visible:ring-ring/50 pz:disabled:pointer-events-none pz:disabled:cursor-not-allowed pz:disabled:bg-input/50 pz:disabled:opacity-50 pz:aria-invalid:border-destructive pz:aria-invalid:ring-3 pz:aria-invalid:ring-destructive/20 pz:md:text-sm pz:dark:bg-input/30 pz:dark:disabled:bg-input/80 pz:dark:aria-invalid:border-destructive/50 pz:dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;;AAKA,SAASA,QAAM,EAAE,WAAW,MAAM,GAAG,SAAwC;AAC3E,QACE,oBAACC,OAAD;EACQ;EACN,aAAU;EACV,WAAW,GACT,wvBACA,UACD;EACD,GAAI;EACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { cn } from "../../lib/utils.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ui/label.tsx
|
|
7
|
+
function Label({ className, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx("label", {
|
|
9
|
+
"data-slot": "label",
|
|
10
|
+
className: cn("pz:flex pz:items-center pz:gap-2 pz:text-sm pz:leading-none pz:font-medium pz:select-none pz:group-data-[disabled=true]:pointer-events-none pz:group-data-[disabled=true]:opacity-50 pz:peer-disabled:cursor-not-allowed pz:peer-disabled:opacity-50", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Label };
|
|
17
|
+
//# sourceMappingURL=label.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.mjs","names":[],"sources":["../../../src/components/ui/label.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"pz:flex pz:items-center pz:gap-2 pz:text-sm pz:leading-none pz:font-medium pz:select-none pz:group-data-[disabled=true]:pointer-events-none pz:group-data-[disabled=true]:opacity-50 pz:peer-disabled:cursor-not-allowed pz:peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAwC;AACrE,QACE,oBAAC,SAAD;EACE,aAAU;EACV,WAAW,GACT,wPACA,UACD;EACD,GAAI;EACJ"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { usePortalContainer } from "../../context/portal-container-context.mjs";
|
|
2
|
+
import { cn } from "../../lib/utils.mjs";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Popover } from "@base-ui/react/popover";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ui/popover.tsx
|
|
7
|
+
function Popover$1({ ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(Popover.Root, {
|
|
9
|
+
"data-slot": "popover",
|
|
10
|
+
...props
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function PopoverTrigger({ ...props }) {
|
|
14
|
+
return /* @__PURE__ */ jsx(Popover.Trigger, {
|
|
15
|
+
"data-slot": "popover-trigger",
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 4, ...props }) {
|
|
20
|
+
const container = usePortalContainer();
|
|
21
|
+
return /* @__PURE__ */ jsx(Popover.Portal, {
|
|
22
|
+
container,
|
|
23
|
+
children: /* @__PURE__ */ jsx(Popover.Positioner, {
|
|
24
|
+
align,
|
|
25
|
+
alignOffset,
|
|
26
|
+
side,
|
|
27
|
+
sideOffset,
|
|
28
|
+
className: "pz:isolate pz:z-50",
|
|
29
|
+
children: /* @__PURE__ */ jsx(Popover.Popup, {
|
|
30
|
+
"data-slot": "popover-content",
|
|
31
|
+
className: cn("pz:z-50 pz:flex pz:w-72 pz:origin-(--transform-origin) pz:flex-col pz:gap-2.5 pz:rounded-lg pz:bg-popover pz:p-2.5 pz:text-sm pz:text-popover-foreground pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:outline-hidden pz:duration-100 pz:data-[side=bottom]:slide-in-from-top-2 pz:data-[side=inline-end]:slide-in-from-left-2 pz:data-[side=inline-start]:slide-in-from-right-2 pz:data-[side=left]:slide-in-from-right-2 pz:data-[side=right]:slide-in-from-left-2 pz:data-[side=top]:slide-in-from-bottom-2 pz:data-open:animate-in pz:data-open:fade-in-0 pz:data-open:zoom-in-95 pz:data-closed:animate-out pz:data-closed:fade-out-0 pz:data-closed:zoom-out-95", className),
|
|
32
|
+
...props
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { Popover$1 as Popover, PopoverContent, PopoverTrigger };
|
|
40
|
+
//# sourceMappingURL=popover.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.mjs","names":["Popover","PopoverPrimitive"],"sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\nimport type * as React from \"react\";\nimport { usePortalContainer } from \"../../context/portal-container-context\";\nimport { cn } from \"../../lib/utils\";\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<PopoverPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n const container = usePortalContainer();\n return (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"pz:isolate pz:z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n \"pz:z-50 pz:flex pz:w-72 pz:origin-(--transform-origin) pz:flex-col pz:gap-2.5 pz:rounded-lg pz:bg-popover pz:p-2.5 pz:text-sm pz:text-popover-foreground pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:outline-hidden pz:duration-100 pz:data-[side=bottom]:slide-in-from-top-2 pz:data-[side=inline-end]:slide-in-from-left-2 pz:data-[side=inline-start]:slide-in-from-right-2 pz:data-[side=left]:slide-in-from-right-2 pz:data-[side=right]:slide-in-from-left-2 pz:data-[side=top]:slide-in-from-bottom-2 pz:data-open:animate-in pz:data-open:fade-in-0 pz:data-open:zoom-in-95 pz:data-closed:animate-out pz:data-closed:fade-out-0 pz:data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"pz:flex pz:flex-col pz:gap-0.5 pz:text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(\"pz:font-heading pz:font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(\"pz:text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };\n"],"mappings":";;;;;;AAKA,SAASA,UAAQ,EAAE,GAAG,SAAsC;AAC1D,QAAO,oBAACC,QAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;EAAS;;AAGjE,SAAS,eAAe,EAAE,GAAG,SAAyC;AACpE,QAAO,oBAACA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS;;AAG5E,SAAS,eAAe,EACtB,WACA,QAAQ,UACR,cAAc,GACd,OAAO,UACP,aAAa,GACb,GAAG,SAEuF;CAC1F,MAAM,YAAY,oBAAoB;AACtC,QACE,oBAACA,QAAiB,QAAlB;EAAoC;YAClC,oBAACA,QAAiB,YAAlB;GACS;GACM;GACP;GACM;GACZ,WAAU;aAEV,oBAACA,QAAiB,OAAlB;IACE,aAAU;IACV,WAAW,GACT,2oBACA,UACD;IACD,GAAI;IACJ;GAC0B;EACN"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { usePortalContainer } from "../../context/portal-container-context.mjs";
|
|
4
|
+
import { cn } from "../../lib/utils.mjs";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
7
|
+
import { Select } from "@base-ui/react/select";
|
|
8
|
+
|
|
9
|
+
//#region src/components/ui/select.tsx
|
|
10
|
+
const Select$1 = Select.Root;
|
|
11
|
+
function SelectGroup({ className, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(Select.Group, {
|
|
13
|
+
"data-slot": "select-group",
|
|
14
|
+
className: cn("pz:scroll-my-1 pz:p-1", className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function SelectValue({ className, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ jsx(Select.Value, {
|
|
20
|
+
"data-slot": "select-value",
|
|
21
|
+
className: cn("pz:flex pz:flex-1 pz:text-left", className),
|
|
22
|
+
...props
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function SelectTrigger({ className, size = "default", children, ...props }) {
|
|
26
|
+
return /* @__PURE__ */ jsxs(Select.Trigger, {
|
|
27
|
+
"data-slot": "select-trigger",
|
|
28
|
+
"data-size": size,
|
|
29
|
+
className: cn("pz:flex pz:w-fit pz:items-center pz:justify-between pz:gap-1.5 pz:rounded-lg pz:border pz:border-input pz:bg-transparent pz:py-2 pz:pr-2 pz:pl-2.5 pz:text-sm pz:whitespace-nowrap pz:transition-colors pz:outline-none pz:select-none pz:focus-visible:border-ring pz:focus-visible:ring-3 pz:focus-visible:ring-ring/50 pz:disabled:cursor-not-allowed pz:disabled:opacity-50 pz:aria-invalid:border-destructive pz:aria-invalid:ring-3 pz:aria-invalid:ring-destructive/20 pz:data-placeholder:text-muted-foreground pz:data-[size=default]:h-8 pz:data-[size=sm]:h-7 pz:data-[size=sm]:rounded-[min(var(--pz-radius-md),10px)] pz:*:data-[slot=select-value]:line-clamp-1 pz:*:data-[slot=select-value]:flex pz:*:data-[slot=select-value]:items-center pz:*:data-[slot=select-value]:gap-1.5 pz:dark:bg-input/30 pz:dark:hover:bg-input/50 pz:dark:aria-invalid:border-destructive/50 pz:dark:aria-invalid:ring-destructive/40 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4", className),
|
|
30
|
+
...props,
|
|
31
|
+
children: [children, /* @__PURE__ */ jsx(Select.Icon, { render: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "pz:pointer-events-none pz:size-4 pz:text-muted-foreground" }) })]
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function SelectContent({ className, children, side = "bottom", sideOffset = 4, align = "center", alignOffset = 0, alignItemWithTrigger = true, ...props }) {
|
|
35
|
+
const container = usePortalContainer();
|
|
36
|
+
return /* @__PURE__ */ jsx(Select.Portal, {
|
|
37
|
+
container,
|
|
38
|
+
children: /* @__PURE__ */ jsx(Select.Positioner, {
|
|
39
|
+
side,
|
|
40
|
+
sideOffset,
|
|
41
|
+
align,
|
|
42
|
+
alignOffset,
|
|
43
|
+
alignItemWithTrigger,
|
|
44
|
+
className: "pz:isolate pz:z-50",
|
|
45
|
+
children: /* @__PURE__ */ jsxs(Select.Popup, {
|
|
46
|
+
"data-slot": "select-content",
|
|
47
|
+
"data-align-trigger": alignItemWithTrigger,
|
|
48
|
+
className: cn("pz: pz: pz:relative pz:isolate pz:z-50 pz:max-h-(--available-height) pz:w-(--anchor-width) pz:min-w-36 pz:origin-(--transform-origin) pz:overflow-x-hidden pz:overflow-y-auto pz:rounded-lg pz:bg-popover pz:text-popover-foreground pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:duration-100 pz:data-[align-trigger=true]:animate-none pz:data-[side=bottom]:slide-in-from-top-2 pz:data-[side=inline-end]:slide-in-from-left-2 pz:data-[side=inline-start]:slide-in-from-right-2 pz:data-[side=left]:slide-in-from-right-2 pz:data-[side=right]:slide-in-from-left-2 pz:data-[side=top]:slide-in-from-bottom-2 pz:data-open:animate-in pz:data-open:fade-in-0 pz:data-open:zoom-in-95 pz:data-closed:animate-out pz:data-closed:fade-out-0 pz:data-closed:zoom-out-95", className),
|
|
49
|
+
...props,
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
52
|
+
/* @__PURE__ */ jsx(Select.List, { children }),
|
|
53
|
+
/* @__PURE__ */ jsx(SelectScrollDownButton, {})
|
|
54
|
+
]
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function SelectItem({ className, children, ...props }) {
|
|
60
|
+
return /* @__PURE__ */ jsxs(Select.Item, {
|
|
61
|
+
"data-slot": "select-item",
|
|
62
|
+
className: cn("pz:relative pz:flex pz:w-full pz:cursor-default pz:items-center pz:gap-1.5 pz:rounded-md pz:py-1 pz:pr-8 pz:pl-1.5 pz:text-sm pz:outline-hidden pz:select-none pz:focus:bg-accent pz:focus:text-accent-foreground pz:not-data-[variant=destructive]:focus:**:text-accent-foreground pz:data-disabled:pointer-events-none pz:data-disabled:opacity-50 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4 pz:*:[span]:last:flex pz:*:[span]:last:items-center pz:*:[span]:last:gap-2", className),
|
|
63
|
+
...props,
|
|
64
|
+
children: [/* @__PURE__ */ jsx(Select.ItemText, {
|
|
65
|
+
className: "pz:flex pz:flex-1 pz:shrink-0 pz:gap-2 pz:whitespace-nowrap",
|
|
66
|
+
children
|
|
67
|
+
}), /* @__PURE__ */ jsx(Select.ItemIndicator, {
|
|
68
|
+
render: /* @__PURE__ */ jsx("span", { className: "pz:pointer-events-none pz:absolute pz:right-2 pz:flex pz:size-4 pz:items-center pz:justify-center" }),
|
|
69
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "pz:pointer-events-none" })
|
|
70
|
+
})]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function SelectScrollUpButton({ className, ...props }) {
|
|
74
|
+
return /* @__PURE__ */ jsx(Select.ScrollUpArrow, {
|
|
75
|
+
"data-slot": "select-scroll-up-button",
|
|
76
|
+
className: cn("pz:top-0 pz:z-10 pz:flex pz:w-full pz:cursor-default pz:items-center pz:justify-center pz:bg-popover pz:py-1 pz:[&_svg:not([class*=size-])]:size-4", className),
|
|
77
|
+
...props,
|
|
78
|
+
children: /* @__PURE__ */ jsx(ChevronUpIcon, {})
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function SelectScrollDownButton({ className, ...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx(Select.ScrollDownArrow, {
|
|
83
|
+
"data-slot": "select-scroll-down-button",
|
|
84
|
+
className: cn("pz:bottom-0 pz:z-10 pz:flex pz:w-full pz:cursor-default pz:items-center pz:justify-center pz:bg-popover pz:py-1 pz:[&_svg:not([class*=size-])]:size-4", className),
|
|
85
|
+
...props,
|
|
86
|
+
children: /* @__PURE__ */ jsx(ChevronDownIcon, {})
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
//#endregion
|
|
91
|
+
export { Select$1 as Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue };
|
|
92
|
+
//# sourceMappingURL=select.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.mjs","names":["Select","SelectPrimitive"],"sources":["../../../src/components/ui/select.tsx"],"sourcesContent":["\"use client\";\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { usePortalContainer } from \"../../context/portal-container-context\";\nimport { cn } from \"../../lib/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"pz:scroll-my-1 pz:p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"pz:flex pz:flex-1 pz:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"pz:flex pz:w-fit pz:items-center pz:justify-between pz:gap-1.5 pz:rounded-lg pz:border pz:border-input pz:bg-transparent pz:py-2 pz:pr-2 pz:pl-2.5 pz:text-sm pz:whitespace-nowrap pz:transition-colors pz:outline-none pz:select-none pz:focus-visible:border-ring pz:focus-visible:ring-3 pz:focus-visible:ring-ring/50 pz:disabled:cursor-not-allowed pz:disabled:opacity-50 pz:aria-invalid:border-destructive pz:aria-invalid:ring-3 pz:aria-invalid:ring-destructive/20 pz:data-placeholder:text-muted-foreground pz:data-[size=default]:h-8 pz:data-[size=sm]:h-7 pz:data-[size=sm]:rounded-[min(var(--pz-radius-md),10px)] pz:*:data-[slot=select-value]:line-clamp-1 pz:*:data-[slot=select-value]:flex pz:*:data-[slot=select-value]:items-center pz:*:data-[slot=select-value]:gap-1.5 pz:dark:bg-input/30 pz:dark:hover:bg-input/50 pz:dark:aria-invalid:border-destructive/50 pz:dark:aria-invalid:ring-destructive/40 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"pz:pointer-events-none pz:size-4 pz:text-muted-foreground\" />\n }\n />\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n const container = usePortalContainer();\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"pz:isolate pz:z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"pz: pz: pz:relative pz:isolate pz:z-50 pz:max-h-(--available-height) pz:w-(--anchor-width) pz:min-w-36 pz:origin-(--transform-origin) pz:overflow-x-hidden pz:overflow-y-auto pz:rounded-lg pz:bg-popover pz:text-popover-foreground pz:shadow-md pz:ring-1 pz:ring-foreground/10 pz:duration-100 pz:data-[align-trigger=true]:animate-none pz:data-[side=bottom]:slide-in-from-top-2 pz:data-[side=inline-end]:slide-in-from-left-2 pz:data-[side=inline-start]:slide-in-from-right-2 pz:data-[side=left]:slide-in-from-right-2 pz:data-[side=right]:slide-in-from-left-2 pz:data-[side=top]:slide-in-from-bottom-2 pz:data-open:animate-in pz:data-open:fade-in-0 pz:data-open:zoom-in-95 pz:data-closed:animate-out pz:data-closed:fade-out-0 pz:data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"pz:px-1.5 pz:py-1 pz:text-xs pz:text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"pz:relative pz:flex pz:w-full pz:cursor-default pz:items-center pz:gap-1.5 pz:rounded-md pz:py-1 pz:pr-8 pz:pl-1.5 pz:text-sm pz:outline-hidden pz:select-none pz:focus:bg-accent pz:focus:text-accent-foreground pz:not-data-[variant=destructive]:focus:**:text-accent-foreground pz:data-disabled:pointer-events-none pz:data-disabled:opacity-50 pz:[&_svg]:pointer-events-none pz:[&_svg]:shrink-0 pz:[&_svg:not([class*=size-])]:size-4 pz:*:[span]:last:flex pz:*:[span]:last:items-center pz:*:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"pz:flex pz:flex-1 pz:shrink-0 pz:gap-2 pz:whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pz:pointer-events-none pz:absolute pz:right-2 pz:flex pz:size-4 pz:items-center pz:justify-center\" />\n }\n >\n <CheckIcon className=\"pz:pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pz:pointer-events-none pz:-mx-1 pz:my-1 pz:h-px pz:bg-border\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"pz:top-0 pz:z-10 pz:flex pz:w-full pz:cursor-default pz:items-center pz:justify-center pz:bg-popover pz:py-1 pz:[&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"pz:bottom-0 pz:z-10 pz:flex pz:w-full pz:cursor-default pz:items-center pz:justify-center pz:bg-popover pz:py-1 pz:[&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"mappings":";;;;;;;;;AAQA,MAAMA,WAASC,OAAgB;AAE/B,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAACA,OAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;EACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAACA,OAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,kCAAkC,UAAU;EAC1D,GAAI;EACJ;;AAIN,SAAS,cAAc,EACrB,WACA,OAAO,WACP,UACA,GAAG,SAGF;AACD,QACE,qBAACA,OAAgB,SAAjB;EACE,aAAU;EACV,aAAW;EACX,WAAW,GACT,g+BACA,UACD;EACD,GAAI;YAPN,CASG,UACD,oBAACA,OAAgB,MAAjB,EACE,QACE,oBAAC,iBAAD,EAAiB,WAAU,6DAA8D,GAE3F,EACsB;;;AAI9B,SAAS,cAAc,EACrB,WACA,UACA,OAAO,UACP,aAAa,GACb,QAAQ,UACR,cAAc,GACd,uBAAuB,MACvB,GAAG,SAKA;CACH,MAAM,YAAY,oBAAoB;AACtC,QACE,oBAACA,OAAgB,QAAjB;EAAmC;YACjC,oBAACA,OAAgB,YAAjB;GACQ;GACM;GACL;GACM;GACS;GACtB,WAAU;aAEV,qBAACA,OAAgB,OAAjB;IACE,aAAU;IACV,sBAAoB;IACpB,WAAW,GACT,+uBACA,UACD;IACD,GAAI;cAPN;KASE,oBAAC,sBAAD,EAAwB;KACxB,oBAACA,OAAgB,MAAjB,EAAuB,UAAgC;KACvD,oBAAC,wBAAD,EAA0B;KACJ;;GACG;EACN;;AAc7B,SAAS,WAAW,EAAE,WAAW,UAAU,GAAG,SAAqC;AACjF,QACE,qBAACA,OAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,4fACA,UACD;EACD,GAAI;YANN,CAQE,oBAACA,OAAgB,UAAjB;GAA0B,WAAU;GACjC;GACwB,GAC3B,oBAACA,OAAgB,eAAjB;GACE,QACE,oBAAC,QAAD,EAAM,WAAU,qGAAsG;aAGxH,oBAAC,WAAD,EAAW,WAAU,0BAA2B;GAClB,EACX;;;AAc3B,SAAS,qBAAqB,EAC5B,WACA,GAAG,SAC0D;AAC7D,QACE,oBAACA,OAAgB,eAAjB;EACE,aAAU;EACV,WAAW,GACT,sJACA,UACD;EACD,GAAI;YAEJ,oBAAC,eAAD,EAAiB;EACa;;AAIpC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAACA,OAAgB,iBAAjB;EACE,aAAU;EACV,WAAW,GACT,yJACA,UACD;EACD,GAAI;YAEJ,oBAAC,iBAAD,EAAmB;EACa"}
|