@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.
Files changed (577) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/README.md +172 -0
  3. package/dist/components/compound/pipe-catalog/active-filters.d.mts +26 -0
  4. package/dist/components/compound/pipe-catalog/active-filters.d.mts.map +1 -0
  5. package/dist/components/compound/pipe-catalog/active-filters.mjs +47 -0
  6. package/dist/components/compound/pipe-catalog/active-filters.mjs.map +1 -0
  7. package/dist/components/compound/pipe-catalog/card.d.mts +30 -0
  8. package/dist/components/compound/pipe-catalog/card.d.mts.map +1 -0
  9. package/dist/components/compound/pipe-catalog/card.mjs +77 -0
  10. package/dist/components/compound/pipe-catalog/card.mjs.map +1 -0
  11. package/dist/components/compound/pipe-catalog/category-filter.d.mts +30 -0
  12. package/dist/components/compound/pipe-catalog/category-filter.d.mts.map +1 -0
  13. package/dist/components/compound/pipe-catalog/category-filter.mjs +56 -0
  14. package/dist/components/compound/pipe-catalog/category-filter.mjs.map +1 -0
  15. package/dist/components/compound/pipe-catalog/column-filter.d.mts +40 -0
  16. package/dist/components/compound/pipe-catalog/column-filter.d.mts.map +1 -0
  17. package/dist/components/compound/pipe-catalog/column-filter.mjs +66 -0
  18. package/dist/components/compound/pipe-catalog/column-filter.mjs.map +1 -0
  19. package/dist/components/compound/pipe-catalog/column-filters.d.mts +16 -0
  20. package/dist/components/compound/pipe-catalog/column-filters.d.mts.map +1 -0
  21. package/dist/components/compound/pipe-catalog/column-filters.mjs +21 -0
  22. package/dist/components/compound/pipe-catalog/column-filters.mjs.map +1 -0
  23. package/dist/components/compound/pipe-catalog/empty.d.mts +22 -0
  24. package/dist/components/compound/pipe-catalog/empty.d.mts.map +1 -0
  25. package/dist/components/compound/pipe-catalog/empty.mjs +31 -0
  26. package/dist/components/compound/pipe-catalog/empty.mjs.map +1 -0
  27. package/dist/components/compound/pipe-catalog/index.d.mts +13 -0
  28. package/dist/components/compound/pipe-catalog/index.mjs +15 -0
  29. package/dist/components/compound/pipe-catalog/input-field-filter.d.mts +22 -0
  30. package/dist/components/compound/pipe-catalog/input-field-filter.d.mts.map +1 -0
  31. package/dist/components/compound/pipe-catalog/input-field-filter.mjs +22 -0
  32. package/dist/components/compound/pipe-catalog/input-field-filter.mjs.map +1 -0
  33. package/dist/components/compound/pipe-catalog/list.d.mts +34 -0
  34. package/dist/components/compound/pipe-catalog/list.d.mts.map +1 -0
  35. package/dist/components/compound/pipe-catalog/list.mjs +29 -0
  36. package/dist/components/compound/pipe-catalog/list.mjs.map +1 -0
  37. package/dist/components/compound/pipe-catalog/output-field-filter.d.mts +22 -0
  38. package/dist/components/compound/pipe-catalog/output-field-filter.d.mts.map +1 -0
  39. package/dist/components/compound/pipe-catalog/output-field-filter.mjs +22 -0
  40. package/dist/components/compound/pipe-catalog/output-field-filter.mjs.map +1 -0
  41. package/dist/components/compound/pipe-catalog/provider-filter.d.mts +22 -0
  42. package/dist/components/compound/pipe-catalog/provider-filter.d.mts.map +1 -0
  43. package/dist/components/compound/pipe-catalog/provider-filter.mjs +29 -0
  44. package/dist/components/compound/pipe-catalog/provider-filter.mjs.map +1 -0
  45. package/dist/components/compound/pipe-catalog/root.d.mts +47 -0
  46. package/dist/components/compound/pipe-catalog/root.d.mts.map +1 -0
  47. package/dist/components/compound/pipe-catalog/root.mjs +85 -0
  48. package/dist/components/compound/pipe-catalog/root.mjs.map +1 -0
  49. package/dist/components/compound/pipe-catalog/search-filter.d.mts +24 -0
  50. package/dist/components/compound/pipe-catalog/search-filter.d.mts.map +1 -0
  51. package/dist/components/compound/pipe-catalog/search-filter.mjs +46 -0
  52. package/dist/components/compound/pipe-catalog/search-filter.mjs.map +1 -0
  53. package/dist/components/compound/pipe-catalog/tag-filter.d.mts +22 -0
  54. package/dist/components/compound/pipe-catalog/tag-filter.d.mts.map +1 -0
  55. package/dist/components/compound/pipe-catalog/tag-filter.mjs +22 -0
  56. package/dist/components/compound/pipe-catalog/tag-filter.mjs.map +1 -0
  57. package/dist/components/compound/pipe-form/content.d.mts +18 -0
  58. package/dist/components/compound/pipe-form/content.d.mts.map +1 -0
  59. package/dist/components/compound/pipe-form/content.mjs +45 -0
  60. package/dist/components/compound/pipe-form/content.mjs.map +1 -0
  61. package/dist/components/compound/pipe-form/field.d.mts +17 -0
  62. package/dist/components/compound/pipe-form/field.d.mts.map +1 -0
  63. package/dist/components/compound/pipe-form/field.mjs +21 -0
  64. package/dist/components/compound/pipe-form/field.mjs.map +1 -0
  65. package/dist/components/compound/pipe-form/footer.d.mts +14 -0
  66. package/dist/components/compound/pipe-form/footer.d.mts.map +1 -0
  67. package/dist/components/compound/pipe-form/footer.mjs +14 -0
  68. package/dist/components/compound/pipe-form/footer.mjs.map +1 -0
  69. package/dist/components/compound/pipe-form/group.d.mts +13 -0
  70. package/dist/components/compound/pipe-form/group.d.mts.map +1 -0
  71. package/dist/components/compound/pipe-form/group.mjs +17 -0
  72. package/dist/components/compound/pipe-form/group.mjs.map +1 -0
  73. package/dist/components/compound/pipe-form/header.d.mts +14 -0
  74. package/dist/components/compound/pipe-form/header.d.mts.map +1 -0
  75. package/dist/components/compound/pipe-form/header.mjs +14 -0
  76. package/dist/components/compound/pipe-form/header.mjs.map +1 -0
  77. package/dist/components/compound/pipe-form/index.d.mts +9 -0
  78. package/dist/components/compound/pipe-form/index.mjs +11 -0
  79. package/dist/components/compound/pipe-form/root.d.mts +56 -0
  80. package/dist/components/compound/pipe-form/root.d.mts.map +1 -0
  81. package/dist/components/compound/pipe-form/root.mjs +98 -0
  82. package/dist/components/compound/pipe-form/root.mjs.map +1 -0
  83. package/dist/components/compound/pipe-form/section.d.mts +13 -0
  84. package/dist/components/compound/pipe-form/section.d.mts.map +1 -0
  85. package/dist/components/compound/pipe-form/section.mjs +17 -0
  86. package/dist/components/compound/pipe-form/section.mjs.map +1 -0
  87. package/dist/components/compound/pipe-form/submit-button.d.mts +9 -0
  88. package/dist/components/compound/pipe-form/submit-button.d.mts.map +1 -0
  89. package/dist/components/compound/pipe-form/submit-button.mjs +17 -0
  90. package/dist/components/compound/pipe-form/submit-button.mjs.map +1 -0
  91. package/dist/components/compound/pipe-form/title.d.mts +16 -0
  92. package/dist/components/compound/pipe-form/title.d.mts.map +1 -0
  93. package/dist/components/compound/pipe-form/title.mjs +14 -0
  94. package/dist/components/compound/pipe-form/title.mjs.map +1 -0
  95. package/dist/components/compound/search-catalog/active-filters.d.mts +26 -0
  96. package/dist/components/compound/search-catalog/active-filters.d.mts.map +1 -0
  97. package/dist/components/compound/search-catalog/active-filters.mjs +46 -0
  98. package/dist/components/compound/search-catalog/active-filters.mjs.map +1 -0
  99. package/dist/components/compound/search-catalog/card.d.mts +30 -0
  100. package/dist/components/compound/search-catalog/card.d.mts.map +1 -0
  101. package/dist/components/compound/search-catalog/card.mjs +77 -0
  102. package/dist/components/compound/search-catalog/card.mjs.map +1 -0
  103. package/dist/components/compound/search-catalog/category-filter.d.mts +29 -0
  104. package/dist/components/compound/search-catalog/category-filter.d.mts.map +1 -0
  105. package/dist/components/compound/search-catalog/category-filter.mjs +51 -0
  106. package/dist/components/compound/search-catalog/category-filter.mjs.map +1 -0
  107. package/dist/components/compound/search-catalog/column-filter.d.mts +40 -0
  108. package/dist/components/compound/search-catalog/column-filter.d.mts.map +1 -0
  109. package/dist/components/compound/search-catalog/column-filter.mjs +63 -0
  110. package/dist/components/compound/search-catalog/column-filter.mjs.map +1 -0
  111. package/dist/components/compound/search-catalog/column-filters.d.mts +15 -0
  112. package/dist/components/compound/search-catalog/column-filters.d.mts.map +1 -0
  113. package/dist/components/compound/search-catalog/column-filters.mjs +16 -0
  114. package/dist/components/compound/search-catalog/column-filters.mjs.map +1 -0
  115. package/dist/components/compound/search-catalog/empty.d.mts +22 -0
  116. package/dist/components/compound/search-catalog/empty.d.mts.map +1 -0
  117. package/dist/components/compound/search-catalog/empty.mjs +31 -0
  118. package/dist/components/compound/search-catalog/empty.mjs.map +1 -0
  119. package/dist/components/compound/search-catalog/index.d.mts +12 -0
  120. package/dist/components/compound/search-catalog/index.mjs +14 -0
  121. package/dist/components/compound/search-catalog/list.d.mts +19 -0
  122. package/dist/components/compound/search-catalog/list.d.mts.map +1 -0
  123. package/dist/components/compound/search-catalog/list.mjs +29 -0
  124. package/dist/components/compound/search-catalog/list.mjs.map +1 -0
  125. package/dist/components/compound/search-catalog/output-field-filter.d.mts +22 -0
  126. package/dist/components/compound/search-catalog/output-field-filter.d.mts.map +1 -0
  127. package/dist/components/compound/search-catalog/output-field-filter.mjs +22 -0
  128. package/dist/components/compound/search-catalog/output-field-filter.mjs.map +1 -0
  129. package/dist/components/compound/search-catalog/provider-filter.d.mts +22 -0
  130. package/dist/components/compound/search-catalog/provider-filter.d.mts.map +1 -0
  131. package/dist/components/compound/search-catalog/provider-filter.mjs +29 -0
  132. package/dist/components/compound/search-catalog/provider-filter.mjs.map +1 -0
  133. package/dist/components/compound/search-catalog/root.d.mts +33 -0
  134. package/dist/components/compound/search-catalog/root.d.mts.map +1 -0
  135. package/dist/components/compound/search-catalog/root.mjs +74 -0
  136. package/dist/components/compound/search-catalog/root.mjs.map +1 -0
  137. package/dist/components/compound/search-catalog/search-filter.d.mts +24 -0
  138. package/dist/components/compound/search-catalog/search-filter.d.mts.map +1 -0
  139. package/dist/components/compound/search-catalog/search-filter.mjs +46 -0
  140. package/dist/components/compound/search-catalog/search-filter.mjs.map +1 -0
  141. package/dist/components/compound/search-catalog/tag-filter.d.mts +22 -0
  142. package/dist/components/compound/search-catalog/tag-filter.d.mts.map +1 -0
  143. package/dist/components/compound/search-catalog/tag-filter.mjs +22 -0
  144. package/dist/components/compound/search-catalog/tag-filter.mjs.map +1 -0
  145. package/dist/components/compound/search-form/content.d.mts +18 -0
  146. package/dist/components/compound/search-form/content.d.mts.map +1 -0
  147. package/dist/components/compound/search-form/content.mjs +45 -0
  148. package/dist/components/compound/search-form/content.mjs.map +1 -0
  149. package/dist/components/compound/search-form/field.d.mts +17 -0
  150. package/dist/components/compound/search-form/field.d.mts.map +1 -0
  151. package/dist/components/compound/search-form/field.mjs +21 -0
  152. package/dist/components/compound/search-form/field.mjs.map +1 -0
  153. package/dist/components/compound/search-form/footer.d.mts +14 -0
  154. package/dist/components/compound/search-form/footer.d.mts.map +1 -0
  155. package/dist/components/compound/search-form/footer.mjs +14 -0
  156. package/dist/components/compound/search-form/footer.mjs.map +1 -0
  157. package/dist/components/compound/search-form/group.d.mts +13 -0
  158. package/dist/components/compound/search-form/group.d.mts.map +1 -0
  159. package/dist/components/compound/search-form/group.mjs +17 -0
  160. package/dist/components/compound/search-form/group.mjs.map +1 -0
  161. package/dist/components/compound/search-form/header.d.mts +14 -0
  162. package/dist/components/compound/search-form/header.d.mts.map +1 -0
  163. package/dist/components/compound/search-form/header.mjs +14 -0
  164. package/dist/components/compound/search-form/header.mjs.map +1 -0
  165. package/dist/components/compound/search-form/index.d.mts +9 -0
  166. package/dist/components/compound/search-form/index.mjs +11 -0
  167. package/dist/components/compound/search-form/root.d.mts +45 -0
  168. package/dist/components/compound/search-form/root.d.mts.map +1 -0
  169. package/dist/components/compound/search-form/root.mjs +90 -0
  170. package/dist/components/compound/search-form/root.mjs.map +1 -0
  171. package/dist/components/compound/search-form/section.d.mts +13 -0
  172. package/dist/components/compound/search-form/section.d.mts.map +1 -0
  173. package/dist/components/compound/search-form/section.mjs +17 -0
  174. package/dist/components/compound/search-form/section.mjs.map +1 -0
  175. package/dist/components/compound/search-form/submit-button.d.mts +9 -0
  176. package/dist/components/compound/search-form/submit-button.d.mts.map +1 -0
  177. package/dist/components/compound/search-form/submit-button.mjs +17 -0
  178. package/dist/components/compound/search-form/submit-button.mjs.map +1 -0
  179. package/dist/components/compound/search-form/title.d.mts +16 -0
  180. package/dist/components/compound/search-form/title.d.mts.map +1 -0
  181. package/dist/components/compound/search-form/title.mjs +14 -0
  182. package/dist/components/compound/search-form/title.mjs.map +1 -0
  183. package/dist/components/compound/searches-catalog/active-filters.d.mts +26 -0
  184. package/dist/components/compound/searches-catalog/active-filters.d.mts.map +1 -0
  185. package/dist/components/compound/searches-catalog/active-filters.mjs +46 -0
  186. package/dist/components/compound/searches-catalog/active-filters.mjs.map +1 -0
  187. package/dist/components/compound/searches-catalog/card.d.mts +22 -0
  188. package/dist/components/compound/searches-catalog/card.d.mts.map +1 -0
  189. package/dist/components/compound/searches-catalog/card.mjs +70 -0
  190. package/dist/components/compound/searches-catalog/card.mjs.map +1 -0
  191. package/dist/components/compound/searches-catalog/category-filter.d.mts +29 -0
  192. package/dist/components/compound/searches-catalog/category-filter.d.mts.map +1 -0
  193. package/dist/components/compound/searches-catalog/category-filter.mjs +51 -0
  194. package/dist/components/compound/searches-catalog/category-filter.mjs.map +1 -0
  195. package/dist/components/compound/searches-catalog/column-filter.d.mts +31 -0
  196. package/dist/components/compound/searches-catalog/column-filter.d.mts.map +1 -0
  197. package/dist/components/compound/searches-catalog/column-filter.mjs +58 -0
  198. package/dist/components/compound/searches-catalog/column-filter.mjs.map +1 -0
  199. package/dist/components/compound/searches-catalog/column-filters.d.mts +15 -0
  200. package/dist/components/compound/searches-catalog/column-filters.d.mts.map +1 -0
  201. package/dist/components/compound/searches-catalog/column-filters.mjs +16 -0
  202. package/dist/components/compound/searches-catalog/column-filters.mjs.map +1 -0
  203. package/dist/components/compound/searches-catalog/empty.d.mts +22 -0
  204. package/dist/components/compound/searches-catalog/empty.d.mts.map +1 -0
  205. package/dist/components/compound/searches-catalog/empty.mjs +31 -0
  206. package/dist/components/compound/searches-catalog/empty.mjs.map +1 -0
  207. package/dist/components/compound/searches-catalog/index.d.mts +12 -0
  208. package/dist/components/compound/searches-catalog/index.mjs +14 -0
  209. package/dist/components/compound/searches-catalog/list.d.mts +19 -0
  210. package/dist/components/compound/searches-catalog/list.d.mts.map +1 -0
  211. package/dist/components/compound/searches-catalog/list.mjs +29 -0
  212. package/dist/components/compound/searches-catalog/list.mjs.map +1 -0
  213. package/dist/components/compound/searches-catalog/output-field-filter.d.mts +22 -0
  214. package/dist/components/compound/searches-catalog/output-field-filter.d.mts.map +1 -0
  215. package/dist/components/compound/searches-catalog/output-field-filter.mjs +22 -0
  216. package/dist/components/compound/searches-catalog/output-field-filter.mjs.map +1 -0
  217. package/dist/components/compound/searches-catalog/provider-filter.d.mts +22 -0
  218. package/dist/components/compound/searches-catalog/provider-filter.d.mts.map +1 -0
  219. package/dist/components/compound/searches-catalog/provider-filter.mjs +29 -0
  220. package/dist/components/compound/searches-catalog/provider-filter.mjs.map +1 -0
  221. package/dist/components/compound/searches-catalog/root.d.mts +33 -0
  222. package/dist/components/compound/searches-catalog/root.d.mts.map +1 -0
  223. package/dist/components/compound/searches-catalog/root.mjs +74 -0
  224. package/dist/components/compound/searches-catalog/root.mjs.map +1 -0
  225. package/dist/components/compound/searches-catalog/search-filter.d.mts +24 -0
  226. package/dist/components/compound/searches-catalog/search-filter.d.mts.map +1 -0
  227. package/dist/components/compound/searches-catalog/search-filter.mjs +46 -0
  228. package/dist/components/compound/searches-catalog/search-filter.mjs.map +1 -0
  229. package/dist/components/compound/searches-catalog/tag-filter.d.mts +22 -0
  230. package/dist/components/compound/searches-catalog/tag-filter.d.mts.map +1 -0
  231. package/dist/components/compound/searches-catalog/tag-filter.mjs +22 -0
  232. package/dist/components/compound/searches-catalog/tag-filter.mjs.map +1 -0
  233. package/dist/components/defaults/adapters/async-include-exclude-select-input.mjs +32 -0
  234. package/dist/components/defaults/adapters/async-include-exclude-select-input.mjs.map +1 -0
  235. package/dist/components/defaults/adapters/async-multi-select-input.mjs +26 -0
  236. package/dist/components/defaults/adapters/async-multi-select-input.mjs.map +1 -0
  237. package/dist/components/defaults/adapters/boolean-input.mjs +82 -0
  238. package/dist/components/defaults/adapters/boolean-input.mjs.map +1 -0
  239. package/dist/components/defaults/adapters/connector-input.mjs +94 -0
  240. package/dist/components/defaults/adapters/connector-input.mjs.map +1 -0
  241. package/dist/components/defaults/adapters/context-select-input.mjs +74 -0
  242. package/dist/components/defaults/adapters/context-select-input.mjs.map +1 -0
  243. package/dist/components/defaults/adapters/cursor-pagination-input.mjs +29 -0
  244. package/dist/components/defaults/adapters/cursor-pagination-input.mjs.map +1 -0
  245. package/dist/components/defaults/adapters/date-range-input.mjs +53 -0
  246. package/dist/components/defaults/adapters/date-range-input.mjs.map +1 -0
  247. package/dist/components/defaults/adapters/exact-range-input.mjs +75 -0
  248. package/dist/components/defaults/adapters/exact-range-input.mjs.map +1 -0
  249. package/dist/components/defaults/adapters/fields-select-input.mjs +25 -0
  250. package/dist/components/defaults/adapters/fields-select-input.mjs.map +1 -0
  251. package/dist/components/defaults/adapters/include-exclude-input.mjs +33 -0
  252. package/dist/components/defaults/adapters/include-exclude-input.mjs.map +1 -0
  253. package/dist/components/defaults/adapters/include-exclude-select-input.mjs +36 -0
  254. package/dist/components/defaults/adapters/include-exclude-select-input.mjs.map +1 -0
  255. package/dist/components/defaults/adapters/index.d.mts +11 -0
  256. package/dist/components/defaults/adapters/index.d.mts.map +1 -0
  257. package/dist/components/defaults/adapters/index.mjs +73 -0
  258. package/dist/components/defaults/adapters/index.mjs.map +1 -0
  259. package/dist/components/defaults/adapters/int-input.mjs +16 -0
  260. package/dist/components/defaults/adapters/int-input.mjs.map +1 -0
  261. package/dist/components/defaults/adapters/json-extraction-input.mjs +333 -0
  262. package/dist/components/defaults/adapters/json-extraction-input.mjs.map +1 -0
  263. package/dist/components/defaults/adapters/json-schema-input.mjs +30 -0
  264. package/dist/components/defaults/adapters/json-schema-input.mjs.map +1 -0
  265. package/dist/components/defaults/adapters/key-value-list-input.mjs +100 -0
  266. package/dist/components/defaults/adapters/key-value-list-input.mjs.map +1 -0
  267. package/dist/components/defaults/adapters/min-max-int-input.mjs +65 -0
  268. package/dist/components/defaults/adapters/min-max-int-input.mjs.map +1 -0
  269. package/dist/components/defaults/adapters/multi-create-input.mjs +32 -0
  270. package/dist/components/defaults/adapters/multi-create-input.mjs.map +1 -0
  271. package/dist/components/defaults/adapters/multi-select-input.mjs +26 -0
  272. package/dist/components/defaults/adapters/multi-select-input.mjs.map +1 -0
  273. package/dist/components/defaults/adapters/number-input.mjs +15 -0
  274. package/dist/components/defaults/adapters/number-input.mjs.map +1 -0
  275. package/dist/components/defaults/adapters/ordered-multi-create-input.mjs +43 -0
  276. package/dist/components/defaults/adapters/ordered-multi-create-input.mjs.map +1 -0
  277. package/dist/components/defaults/adapters/output-field-input.mjs +37 -0
  278. package/dist/components/defaults/adapters/output-field-input.mjs.map +1 -0
  279. package/dist/components/defaults/adapters/pipes-trigger-input.mjs +381 -0
  280. package/dist/components/defaults/adapters/pipes-trigger-input.mjs.map +1 -0
  281. package/dist/components/defaults/adapters/prompt-input.mjs +208 -0
  282. package/dist/components/defaults/adapters/prompt-input.mjs.map +1 -0
  283. package/dist/components/defaults/adapters/providers-input.mjs +23 -0
  284. package/dist/components/defaults/adapters/providers-input.mjs.map +1 -0
  285. package/dist/components/defaults/adapters/range-input.mjs +61 -0
  286. package/dist/components/defaults/adapters/range-input.mjs.map +1 -0
  287. package/dist/components/defaults/adapters/select-input.mjs +54 -0
  288. package/dist/components/defaults/adapters/select-input.mjs.map +1 -0
  289. package/dist/components/defaults/adapters/tagged-text-input.mjs +154 -0
  290. package/dist/components/defaults/adapters/tagged-text-input.mjs.map +1 -0
  291. package/dist/components/defaults/adapters/template-input.mjs +34 -0
  292. package/dist/components/defaults/adapters/template-input.mjs.map +1 -0
  293. package/dist/components/defaults/adapters/text-input.mjs +18 -0
  294. package/dist/components/defaults/adapters/text-input.mjs.map +1 -0
  295. package/dist/components/defaults/adapters/textarea-input.mjs +17 -0
  296. package/dist/components/defaults/adapters/textarea-input.mjs.map +1 -0
  297. package/dist/components/defaults/catalog/active-filter-pill.mjs +30 -0
  298. package/dist/components/defaults/catalog/active-filter-pill.mjs.map +1 -0
  299. package/dist/components/defaults/catalog/card-derived.d.mts +98 -0
  300. package/dist/components/defaults/catalog/card-derived.d.mts.map +1 -0
  301. package/dist/components/defaults/catalog/card-derived.mjs +172 -0
  302. package/dist/components/defaults/catalog/card-derived.mjs.map +1 -0
  303. package/dist/components/defaults/catalog/card-primitives.d.mts +81 -0
  304. package/dist/components/defaults/catalog/card-primitives.d.mts.map +1 -0
  305. package/dist/components/defaults/catalog/card-primitives.mjs +108 -0
  306. package/dist/components/defaults/catalog/card-primitives.mjs.map +1 -0
  307. package/dist/components/defaults/catalog/category-filter.d.mts +13 -0
  308. package/dist/components/defaults/catalog/category-filter.d.mts.map +1 -0
  309. package/dist/components/defaults/catalog/category-filter.mjs +28 -0
  310. package/dist/components/defaults/catalog/category-filter.mjs.map +1 -0
  311. package/dist/components/defaults/catalog/category-section.d.mts +39 -0
  312. package/dist/components/defaults/catalog/category-section.d.mts.map +1 -0
  313. package/dist/components/defaults/catalog/category-section.mjs +59 -0
  314. package/dist/components/defaults/catalog/category-section.mjs.map +1 -0
  315. package/dist/components/defaults/catalog/empty-state.mjs +20 -0
  316. package/dist/components/defaults/catalog/empty-state.mjs.map +1 -0
  317. package/dist/components/defaults/catalog/filter-select.d.mts +13 -0
  318. package/dist/components/defaults/catalog/filter-select.d.mts.map +1 -0
  319. package/dist/components/defaults/catalog/filter-select.mjs +45 -0
  320. package/dist/components/defaults/catalog/filter-select.mjs.map +1 -0
  321. package/dist/components/defaults/catalog/layout.mjs +53 -0
  322. package/dist/components/defaults/catalog/layout.mjs.map +1 -0
  323. package/dist/components/defaults/catalog/provider-avatars.d.mts +37 -0
  324. package/dist/components/defaults/catalog/provider-avatars.d.mts.map +1 -0
  325. package/dist/components/defaults/catalog/provider-avatars.mjs +98 -0
  326. package/dist/components/defaults/catalog/provider-avatars.mjs.map +1 -0
  327. package/dist/components/defaults/field-section-enumeration.mjs +32 -0
  328. package/dist/components/defaults/field-section-enumeration.mjs.map +1 -0
  329. package/dist/components/defaults/layout/field-wrapper.d.mts +13 -0
  330. package/dist/components/defaults/layout/field-wrapper.d.mts.map +1 -0
  331. package/dist/components/defaults/layout/field-wrapper.mjs +67 -0
  332. package/dist/components/defaults/layout/field-wrapper.mjs.map +1 -0
  333. package/dist/components/defaults/layout/form.mjs +21 -0
  334. package/dist/components/defaults/layout/form.mjs.map +1 -0
  335. package/dist/components/defaults/layout/group.d.mts +16 -0
  336. package/dist/components/defaults/layout/group.d.mts.map +1 -0
  337. package/dist/components/defaults/layout/group.mjs +87 -0
  338. package/dist/components/defaults/layout/group.mjs.map +1 -0
  339. package/dist/components/defaults/layout/section.d.mts +14 -0
  340. package/dist/components/defaults/layout/section.d.mts.map +1 -0
  341. package/dist/components/defaults/layout/section.mjs +39 -0
  342. package/dist/components/defaults/layout/section.mjs.map +1 -0
  343. package/dist/components/defaults/layout/submit-button.d.mts +9 -0
  344. package/dist/components/defaults/layout/submit-button.d.mts.map +1 -0
  345. package/dist/components/defaults/layout/submit-button.mjs +23 -0
  346. package/dist/components/defaults/layout/submit-button.mjs.map +1 -0
  347. package/dist/components/defaults/toggle-advanced-button.mjs +29 -0
  348. package/dist/components/defaults/toggle-advanced-button.mjs.map +1 -0
  349. package/dist/components/field-renderer.d.mts +14 -0
  350. package/dist/components/field-renderer.d.mts.map +1 -0
  351. package/dist/components/field-renderer.mjs +21 -0
  352. package/dist/components/field-renderer.mjs.map +1 -0
  353. package/dist/components/hover-info.mjs +30 -0
  354. package/dist/components/hover-info.mjs.map +1 -0
  355. package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs +319 -0
  356. package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs.map +1 -0
  357. package/dist/components/internal/LiquidEditor/LiquidEditor.mjs +208 -0
  358. package/dist/components/internal/LiquidEditor/LiquidEditor.mjs.map +1 -0
  359. package/dist/components/internal/LiquidEditor/UnifiedReferencePicker.mjs +240 -0
  360. package/dist/components/internal/LiquidEditor/UnifiedReferencePicker.mjs.map +1 -0
  361. package/dist/components/internal/combobox/include-exclude-combobox.mjs +368 -0
  362. package/dist/components/internal/combobox/include-exclude-combobox.mjs.map +1 -0
  363. package/dist/components/internal/combobox/suggest-combobox.mjs +294 -0
  364. package/dist/components/internal/combobox/suggest-combobox.mjs.map +1 -0
  365. package/dist/components/internal/field-legend.mjs +37 -0
  366. package/dist/components/internal/field-legend.mjs.map +1 -0
  367. package/dist/components/internal/form-level-errors.mjs +71 -0
  368. package/dist/components/internal/form-level-errors.mjs.map +1 -0
  369. package/dist/components/internal/icons.mjs +131 -0
  370. package/dist/components/internal/icons.mjs.map +1 -0
  371. package/dist/components/internal/multi-select-popover-trigger.mjs +26 -0
  372. package/dist/components/internal/multi-select-popover-trigger.mjs.map +1 -0
  373. package/dist/components/internal/schema-editor/SchemaEditor.mjs +468 -0
  374. package/dist/components/internal/schema-editor/SchemaEditor.mjs.map +1 -0
  375. package/dist/components/internal/schema-editor/generate-schema-rows.mjs +374 -0
  376. package/dist/components/internal/schema-editor/generate-schema-rows.mjs.map +1 -0
  377. package/dist/components/internal/schema-editor/schema-editor-context.mjs +32 -0
  378. package/dist/components/internal/schema-editor/schema-editor-context.mjs.map +1 -0
  379. package/dist/components/internal/schema-editor/schema-utils.mjs +249 -0
  380. package/dist/components/internal/schema-editor/schema-utils.mjs.map +1 -0
  381. package/dist/components/internal/suggestion-menu/suggestion-menu-utils.mjs +12 -0
  382. package/dist/components/internal/suggestion-menu/suggestion-menu-utils.mjs.map +1 -0
  383. package/dist/components/internal/suggestion-menu/suggestion-menu.mjs +151 -0
  384. package/dist/components/internal/suggestion-menu/suggestion-menu.mjs.map +1 -0
  385. package/dist/components/internal/tag-chip-decoration.mjs +180 -0
  386. package/dist/components/internal/tag-chip-decoration.mjs.map +1 -0
  387. package/dist/components/rich-text.mjs +42 -0
  388. package/dist/components/rich-text.mjs.map +1 -0
  389. package/dist/components/ui/badge.mjs +32 -0
  390. package/dist/components/ui/badge.mjs.map +1 -0
  391. package/dist/components/ui/button.d.mts +19 -0
  392. package/dist/components/ui/button.d.mts.map +1 -0
  393. package/dist/components/ui/button.mjs +47 -0
  394. package/dist/components/ui/button.mjs.map +1 -0
  395. package/dist/components/ui/combobox.mjs +103 -0
  396. package/dist/components/ui/combobox.mjs.map +1 -0
  397. package/dist/components/ui/input-group.mjs +30 -0
  398. package/dist/components/ui/input-group.mjs.map +1 -0
  399. package/dist/components/ui/input.mjs +17 -0
  400. package/dist/components/ui/input.mjs.map +1 -0
  401. package/dist/components/ui/label.mjs +17 -0
  402. package/dist/components/ui/label.mjs.map +1 -0
  403. package/dist/components/ui/popover.mjs +40 -0
  404. package/dist/components/ui/popover.mjs.map +1 -0
  405. package/dist/components/ui/select.mjs +92 -0
  406. package/dist/components/ui/select.mjs.map +1 -0
  407. package/dist/components/ui/switch.mjs +21 -0
  408. package/dist/components/ui/switch.mjs.map +1 -0
  409. package/dist/components/ui/table.mjs +56 -0
  410. package/dist/components/ui/table.mjs.map +1 -0
  411. package/dist/components/ui/textarea.mjs +15 -0
  412. package/dist/components/ui/textarea.mjs.map +1 -0
  413. package/dist/components/ui/tooltip.mjs +48 -0
  414. package/dist/components/ui/tooltip.mjs.map +1 -0
  415. package/dist/context/catalog-card-context.mjs +31 -0
  416. package/dist/context/catalog-card-context.mjs.map +1 -0
  417. package/dist/context/catalog-config-context.d.mts +43 -0
  418. package/dist/context/catalog-config-context.d.mts.map +1 -0
  419. package/dist/context/catalog-config-context.mjs +48 -0
  420. package/dist/context/catalog-config-context.mjs.map +1 -0
  421. package/dist/context/form-context.mjs +11 -0
  422. package/dist/context/form-context.mjs.map +1 -0
  423. package/dist/context/form-customization-context.d.mts +71 -0
  424. package/dist/context/form-customization-context.d.mts.map +1 -0
  425. package/dist/context/form-customization-context.mjs +114 -0
  426. package/dist/context/form-customization-context.mjs.map +1 -0
  427. package/dist/context/form-provider.d.mts +41 -0
  428. package/dist/context/form-provider.d.mts.map +1 -0
  429. package/dist/context/form-provider.mjs +53 -0
  430. package/dist/context/form-provider.mjs.map +1 -0
  431. package/dist/context/pipe-catalog-card-context.d.mts +17 -0
  432. package/dist/context/pipe-catalog-card-context.d.mts.map +1 -0
  433. package/dist/context/pipe-catalog-card-context.mjs +13 -0
  434. package/dist/context/pipe-catalog-card-context.mjs.map +1 -0
  435. package/dist/context/pipe-catalog-context.d.mts +26 -0
  436. package/dist/context/pipe-catalog-context.d.mts.map +1 -0
  437. package/dist/context/pipe-catalog-context.mjs +13 -0
  438. package/dist/context/pipe-catalog-context.mjs.map +1 -0
  439. package/dist/context/pipe-form-context.d.mts +25 -0
  440. package/dist/context/pipe-form-context.d.mts.map +1 -0
  441. package/dist/context/pipe-form-context.mjs +13 -0
  442. package/dist/context/pipe-form-context.mjs.map +1 -0
  443. package/dist/context/portal-container-context.d.mts +5 -0
  444. package/dist/context/portal-container-context.d.mts.map +1 -0
  445. package/dist/context/portal-container-context.mjs +15 -0
  446. package/dist/context/portal-container-context.mjs.map +1 -0
  447. package/dist/context/search-catalog-card-context.d.mts +16 -0
  448. package/dist/context/search-catalog-card-context.d.mts.map +1 -0
  449. package/dist/context/search-catalog-card-context.mjs +13 -0
  450. package/dist/context/search-catalog-card-context.mjs.map +1 -0
  451. package/dist/context/search-catalog-context.d.mts +20 -0
  452. package/dist/context/search-catalog-context.d.mts.map +1 -0
  453. package/dist/context/search-catalog-context.mjs +13 -0
  454. package/dist/context/search-catalog-context.mjs.map +1 -0
  455. package/dist/context/search-form-context.d.mts +25 -0
  456. package/dist/context/search-form-context.d.mts.map +1 -0
  457. package/dist/context/search-form-context.mjs +13 -0
  458. package/dist/context/search-form-context.mjs.map +1 -0
  459. package/dist/context/searches-catalog-card-context.d.mts +16 -0
  460. package/dist/context/searches-catalog-card-context.d.mts.map +1 -0
  461. package/dist/context/searches-catalog-card-context.mjs +13 -0
  462. package/dist/context/searches-catalog-card-context.mjs.map +1 -0
  463. package/dist/context/searches-catalog-context.d.mts +20 -0
  464. package/dist/context/searches-catalog-context.d.mts.map +1 -0
  465. package/dist/context/searches-catalog-context.mjs +13 -0
  466. package/dist/context/searches-catalog-context.mjs.map +1 -0
  467. package/dist/hooks/use-debounce.mjs +28 -0
  468. package/dist/hooks/use-debounce.mjs.map +1 -0
  469. package/dist/hooks/use-debounced-fn.mjs +47 -0
  470. package/dist/hooks/use-debounced-fn.mjs.map +1 -0
  471. package/dist/hooks/use-disclosure.mjs +35 -0
  472. package/dist/hooks/use-disclosure.mjs.map +1 -0
  473. package/dist/hooks/use-field-error.d.mts +11 -0
  474. package/dist/hooks/use-field-error.d.mts.map +1 -0
  475. package/dist/hooks/use-field-error.mjs +23 -0
  476. package/dist/hooks/use-field-error.mjs.map +1 -0
  477. package/dist/hooks/use-floating-element.mjs +45 -0
  478. package/dist/hooks/use-floating-element.mjs.map +1 -0
  479. package/dist/hooks/use-form-core.d.mts +16 -0
  480. package/dist/hooks/use-form-core.d.mts.map +1 -0
  481. package/dist/hooks/use-form-core.mjs +241 -0
  482. package/dist/hooks/use-form-core.mjs.map +1 -0
  483. package/dist/hooks/use-jsonata-preview.mjs +38 -0
  484. package/dist/hooks/use-jsonata-preview.mjs.map +1 -0
  485. package/dist/hooks/use-menu-navigation.mjs +86 -0
  486. package/dist/hooks/use-menu-navigation.mjs.map +1 -0
  487. package/dist/hooks/use-pipe-catalog-table.d.mts +47 -0
  488. package/dist/hooks/use-pipe-catalog-table.d.mts.map +1 -0
  489. package/dist/hooks/use-pipe-catalog-table.mjs +170 -0
  490. package/dist/hooks/use-pipe-catalog-table.mjs.map +1 -0
  491. package/dist/hooks/use-pipe-form.d.mts +31 -0
  492. package/dist/hooks/use-pipe-form.d.mts.map +1 -0
  493. package/dist/hooks/use-pipe-form.mjs +65 -0
  494. package/dist/hooks/use-pipe-form.mjs.map +1 -0
  495. package/dist/hooks/use-search-catalog-table.d.mts +40 -0
  496. package/dist/hooks/use-search-catalog-table.d.mts.map +1 -0
  497. package/dist/hooks/use-search-catalog-table.mjs +161 -0
  498. package/dist/hooks/use-search-catalog-table.mjs.map +1 -0
  499. package/dist/hooks/use-search-form.d.mts +17 -0
  500. package/dist/hooks/use-search-form.d.mts.map +1 -0
  501. package/dist/hooks/use-search-form.mjs +58 -0
  502. package/dist/hooks/use-search-form.mjs.map +1 -0
  503. package/dist/hooks/use-searches-catalog-table.d.mts +40 -0
  504. package/dist/hooks/use-searches-catalog-table.d.mts.map +1 -0
  505. package/dist/hooks/use-searches-catalog-table.mjs +161 -0
  506. package/dist/hooks/use-searches-catalog-table.mjs.map +1 -0
  507. package/dist/index.d.mts +96 -0
  508. package/dist/index.mjs +98 -0
  509. package/dist/lib/utils.mjs +11 -0
  510. package/dist/lib/utils.mjs.map +1 -0
  511. package/dist/styles/pipe0-form.css +3785 -0
  512. package/dist/types/adapters.d.mts +107 -0
  513. package/dist/types/adapters.d.mts.map +1 -0
  514. package/dist/types/catalog-adapters.d.mts +122 -0
  515. package/dist/types/catalog-adapters.d.mts.map +1 -0
  516. package/dist/types/field-handle.d.mts +3 -0
  517. package/dist/types/field-props.d.mts +285 -0
  518. package/dist/types/field-props.d.mts.map +1 -0
  519. package/dist/types/form-customization.d.mts +25 -0
  520. package/dist/types/form-customization.d.mts.map +1 -0
  521. package/dist/types/form-handle.d.mts +23 -0
  522. package/dist/types/form-handle.d.mts.map +1 -0
  523. package/dist/utils/build-section-handlers.mjs +419 -0
  524. package/dist/utils/build-section-handlers.mjs.map +1 -0
  525. package/dist/utils/catalog-helpers.d.mts +12 -0
  526. package/dist/utils/catalog-helpers.d.mts.map +1 -0
  527. package/dist/utils/catalog-helpers.mjs +35 -0
  528. package/dist/utils/catalog-helpers.mjs.map +1 -0
  529. package/dist/utils/generate-random-string.mjs +11 -0
  530. package/dist/utils/generate-random-string.mjs.map +1 -0
  531. package/dist/utils/merge-form-stores.mjs +14 -0
  532. package/dist/utils/merge-form-stores.mjs.map +1 -0
  533. package/dist/utils/object-path.mjs +72 -0
  534. package/dist/utils/object-path.mjs.map +1 -0
  535. package/dist/utils/render-slot.d.mts +44 -0
  536. package/dist/utils/render-slot.d.mts.map +1 -0
  537. package/dist/utils/render-slot.mjs +30 -0
  538. package/dist/utils/render-slot.mjs.map +1 -0
  539. package/dist/widgets/avatar-group.d.mts +36 -0
  540. package/dist/widgets/avatar-group.d.mts.map +1 -0
  541. package/dist/widgets/avatar-group.mjs +114 -0
  542. package/dist/widgets/avatar-group.mjs.map +1 -0
  543. package/dist/widgets/emoji-glyph.d.mts +11 -0
  544. package/dist/widgets/emoji-glyph.d.mts.map +1 -0
  545. package/dist/widgets/emoji-glyph.mjs +13 -0
  546. package/dist/widgets/emoji-glyph.mjs.map +1 -0
  547. package/dist/widgets/field-type-badge.d.mts +13 -0
  548. package/dist/widgets/field-type-badge.d.mts.map +1 -0
  549. package/dist/widgets/field-type-badge.mjs +30 -0
  550. package/dist/widgets/field-type-badge.mjs.map +1 -0
  551. package/dist/widgets/icon-glyph.d.mts +16 -0
  552. package/dist/widgets/icon-glyph.d.mts.map +1 -0
  553. package/dist/widgets/icon-glyph.mjs +59 -0
  554. package/dist/widgets/icon-glyph.mjs.map +1 -0
  555. package/dist/widgets/index.d.mts +9 -0
  556. package/dist/widgets/index.mjs +11 -0
  557. package/dist/widgets/logo-url.d.mts +17 -0
  558. package/dist/widgets/logo-url.d.mts.map +1 -0
  559. package/dist/widgets/logo-url.mjs +17 -0
  560. package/dist/widgets/logo-url.mjs.map +1 -0
  561. package/dist/widgets/pricing-badge.d.mts +11 -0
  562. package/dist/widgets/pricing-badge.d.mts.map +1 -0
  563. package/dist/widgets/pricing-badge.mjs +13 -0
  564. package/dist/widgets/pricing-badge.mjs.map +1 -0
  565. package/dist/widgets/provider-logo.d.mts +16 -0
  566. package/dist/widgets/provider-logo.d.mts.map +1 -0
  567. package/dist/widgets/provider-logo.mjs +20 -0
  568. package/dist/widgets/provider-logo.mjs.map +1 -0
  569. package/dist/widgets/widget-strip.d.mts +16 -0
  570. package/dist/widgets/widget-strip.d.mts.map +1 -0
  571. package/dist/widgets/widget-strip.mjs +42 -0
  572. package/dist/widgets/widget-strip.mjs.map +1 -0
  573. package/dist/widgets/widget-view.d.mts +14 -0
  574. package/dist/widgets/widget-view.d.mts.map +1 -0
  575. package/dist/widgets/widget-view.mjs +36 -0
  576. package/dist/widgets/widget-view.mjs.map +1 -0
  577. package/package.json +82 -0
@@ -0,0 +1,17 @@
1
+ import { Textarea } from "../../ui/textarea.mjs";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/components/defaults/adapters/textarea-input.tsx
5
+ function TextareaInputAdapter(field) {
6
+ return /* @__PURE__ */ jsx(Textarea, {
7
+ ...field.textareaProps,
8
+ "data-p0": "input",
9
+ "aria-invalid": !!field.error,
10
+ maxLength: field.meta.maxLength,
11
+ minLength: field.meta.minLength
12
+ });
13
+ }
14
+
15
+ //#endregion
16
+ export { TextareaInputAdapter };
17
+ //# sourceMappingURL=textarea-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/textarea-input.tsx"],"sourcesContent":["import type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { Textarea } from \"../../ui/textarea.js\";\n\nexport function TextareaInputAdapter(field: FieldHandle<\"textarea_input\">) {\n return (\n <Textarea\n {...field.textareaProps}\n data-p0=\"input\"\n aria-invalid={!!field.error}\n maxLength={field.meta.maxLength}\n minLength={field.meta.minLength}\n />\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,qBAAqB,OAAsC;AACzE,QACE,oBAAC,UAAD;EACE,GAAI,MAAM;EACV,WAAQ;EACR,gBAAc,CAAC,CAAC,MAAM;EACtB,WAAW,MAAM,KAAK;EACtB,WAAW,MAAM,KAAK;EACtB"}
@@ -0,0 +1,30 @@
1
+ import { cn } from "../../../lib/utils.mjs";
2
+ import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { X } from "lucide-react";
5
+
6
+ //#region src/components/defaults/catalog/active-filter-pill.tsx
7
+ function DefaultActiveFilterPill({ label, value, onRemove, className }) {
8
+ const { classNames } = useCatalogConfig();
9
+ return /* @__PURE__ */ jsxs("span", {
10
+ "data-p0": "catalog-active-filter",
11
+ className: cn("pz:inline-flex pz:items-center pz:gap-1 pz:px-2 pz:py-0.5 pz:text-xs pz:rounded-md pz:bg-primary/10 pz:text-primary", classNames?.activeFilterPill, className),
12
+ children: [
13
+ label ? /* @__PURE__ */ jsxs("span", {
14
+ className: "pz:text-primary/60",
15
+ children: [label, ":"]
16
+ }) : null,
17
+ value,
18
+ /* @__PURE__ */ jsx("button", {
19
+ type: "button",
20
+ onClick: onRemove,
21
+ className: "pz:ml-0.5 pz:hover:text-primary/80 pz:cursor-pointer",
22
+ children: /* @__PURE__ */ jsx(X, { className: "pz:size-3" })
23
+ })
24
+ ]
25
+ });
26
+ }
27
+
28
+ //#endregion
29
+ export { DefaultActiveFilterPill };
30
+ //# sourceMappingURL=active-filter-pill.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-filter-pill.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/active-filter-pill.tsx"],"sourcesContent":["import { X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface DefaultActiveFilterPillProps {\n label?: ReactNode;\n value: ReactNode;\n onRemove: () => void;\n className?: string;\n}\n\nexport function DefaultActiveFilterPill({\n label,\n value,\n onRemove,\n className,\n}: DefaultActiveFilterPillProps) {\n const { classNames } = useCatalogConfig();\n return (\n <span\n data-p0=\"catalog-active-filter\"\n className={cn(\n \"pz:inline-flex pz:items-center pz:gap-1 pz:px-2 pz:py-0.5 pz:text-xs pz:rounded-md pz:bg-primary/10 pz:text-primary\",\n classNames?.activeFilterPill,\n className,\n )}\n >\n {label ? <span className=\"pz:text-primary/60\">{label}:</span> : null}\n {value}\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"pz:ml-0.5 pz:hover:text-primary/80 pz:cursor-pointer\"\n >\n <X className=\"pz:size-3\" />\n </button>\n </span>\n );\n}\n"],"mappings":";;;;;;AAYA,SAAgB,wBAAwB,EACtC,OACA,OACA,UACA,aAC+B;CAC/B,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,qBAAC,QAAD;EACE,WAAQ;EACR,WAAW,GACT,uHACA,YAAY,kBACZ,UACD;YANH;GAQG,QAAQ,qBAAC,QAAD;IAAM,WAAU;cAAhB,CAAsC,OAAM,IAAQ;QAAG;GAC/D;GACD,oBAAC,UAAD;IACE,MAAK;IACL,SAAS;IACT,WAAU;cAEV,oBAAC,GAAD,EAAG,WAAU,aAAc;IACpB;GACJ"}
@@ -0,0 +1,98 @@
1
+ import { CatalogCardBadgeProps } from "./card-primitives.mjs";
2
+ import { ReactNode } from "react";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/components/defaults/catalog/card-derived.d.ts
6
+ interface CatalogCreditBadgeProps {
7
+ /** Override the auto-bound credit amount. */
8
+ creditAmount?: number;
9
+ /** Override the auto-bound cost mode. */
10
+ costMode?: "per_result" | "per_search" | "per_page";
11
+ freeLabel?: ReactNode;
12
+ creditPrefix?: ReactNode;
13
+ className?: string;
14
+ disabled?: boolean;
15
+ variant?: CatalogCardBadgeProps["variant"];
16
+ }
17
+ /**
18
+ * Displays the starting credit cost for the surrounding card. Self-binds to
19
+ * `card.startingCreditAmount` + `card.costMode` from card context unless
20
+ * overridden via props.
21
+ */
22
+ declare function CatalogCreditBadge({
23
+ creditAmount,
24
+ costMode,
25
+ freeLabel,
26
+ creditPrefix,
27
+ disabled,
28
+ className,
29
+ variant
30
+ }: CatalogCreditBadgeProps): _$react_jsx_runtime0.JSX.Element;
31
+ interface CatalogFieldBadgeState {
32
+ fields: string[];
33
+ isOpen: boolean;
34
+ setOpen: (open: boolean) => void;
35
+ /** Calls onSelectField (or the auto-wired catalog filter) and closes the popover. */
36
+ onSelect: (fieldName: string) => void;
37
+ isFieldAvailable: (fieldName: string) => boolean;
38
+ }
39
+ interface CatalogFieldBadgeProps {
40
+ fieldType: "input" | "output";
41
+ /** Override the auto-bound fields list. */
42
+ fields?: string[];
43
+ /** Override the auto-wired filter handler. */
44
+ onSelectField?: (fieldName: string) => void;
45
+ /** Returns true if the field has any matching cards. Defaults to a reverse-index lookup on the catalog. */
46
+ isFieldAvailable?: (fieldName: string) => boolean;
47
+ label?: ReactNode;
48
+ fieldIcon?: (fieldName: string) => ReactNode;
49
+ className?: string;
50
+ variant?: CatalogCardBadgeProps["variant"];
51
+ /** Render the entire dropdown UI yourself. Receives the merged state. */
52
+ render?: (state: CatalogFieldBadgeState) => ReactNode;
53
+ }
54
+ /**
55
+ * Dropdown that lists a card's input or output fields, with click-to-filter
56
+ * wiring. By default, clicking a field filters the catalog by that field
57
+ * (`addColumnFilter("inputFields"|"outputFields", field)`); pass `onSelectField`
58
+ * to override (e.g. inverted-filter UX).
59
+ */
60
+ declare function CatalogFieldBadge({
61
+ fieldType,
62
+ fields,
63
+ onSelectField,
64
+ isFieldAvailable,
65
+ label,
66
+ fieldIcon,
67
+ className,
68
+ variant,
69
+ render
70
+ }: CatalogFieldBadgeProps): _$react_jsx_runtime0.JSX.Element | null;
71
+ interface CatalogDocsBadgeProps {
72
+ /** Base URL prepended to the card's docPath. */
73
+ baseUrl?: string;
74
+ /** Override the full URL (skips baseUrl + card.docPath composition). */
75
+ href?: string;
76
+ label?: ReactNode;
77
+ className?: string;
78
+ variant?: CatalogCardBadgeProps["variant"];
79
+ }
80
+ declare function CatalogDocsBadge({
81
+ baseUrl,
82
+ href,
83
+ label,
84
+ className,
85
+ variant
86
+ }: CatalogDocsBadgeProps): _$react_jsx_runtime0.JSX.Element | null;
87
+ interface CatalogCopyIdProps {
88
+ /** Override the auto-bound id. Defaults to `card.pipeId` / `card.searchId` / `card.searchesId`. */
89
+ value?: string;
90
+ className?: string;
91
+ }
92
+ declare function CatalogCopyId({
93
+ value,
94
+ className
95
+ }: CatalogCopyIdProps): _$react_jsx_runtime0.JSX.Element | null;
96
+ //#endregion
97
+ export { CatalogCopyId, CatalogCopyIdProps, CatalogCreditBadge, CatalogCreditBadgeProps, CatalogDocsBadge, CatalogDocsBadgeProps, CatalogFieldBadge, CatalogFieldBadgeProps, CatalogFieldBadgeState };
98
+ //# sourceMappingURL=card-derived.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-derived.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/card-derived.tsx"],"mappings":";;;;;UAoBiB,uBAAA;;EAEf,YAAA;EAFe;EAIf,QAAA;EACA,SAAA,GAAY,SAAA;EACZ,YAAA,GAAe,SAAA;EACf,SAAA;EACA,QAAA;EACA,OAAA,GAAU,qBAAA;AAAA;;;;;;iBAQI,kBAAA,CAAA;EACd,YAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,QAAA;EACA,SAAA;EACA;AAAA,GACC,uBAAA,GAAuB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UA6BT,sBAAA;EACf,MAAA;EACA,MAAA;EACA,OAAA,GAAU,IAAA;EAhDqB;EAkD/B,QAAA,GAAW,SAAA;EACX,gBAAA,GAAmB,SAAA;AAAA;AAAA,UAGJ,sBAAA;EACf,SAAA;EA7CA;EA+CA,MAAA;EA7CA;EA+CA,aAAA,IAAiB,SAAA;EA7CjB;EA+CA,gBAAA,IAAoB,SAAA;EACpB,KAAA,GAAQ,SAAA;EACR,SAAA,IAAa,SAAA,aAAsB,SAAA;EACnC,SAAA;EACA,OAAA,GAAU,qBAAA;EAxDV;EA0DA,MAAA,IAAU,KAAA,EAAO,sBAAA,KAA2B,SAAA;AAAA;;;;;;;iBAS9B,iBAAA,CAAA;EACd,SAAA;EACA,MAAA;EACA,aAAA;EACA,gBAAA;EACA,KAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;EACA;AAAA,GACC,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAyHR,qBAAA;EAjMf;EAmMA,OAAA;EAlMA;EAoMA,IAAA;EACA,KAAA,GAAQ,SAAA;EACR,SAAA;EACA,OAAA,GAAU,qBAAA;AAAA;AAAA,iBAGI,gBAAA,CAAA;EACd,OAAA;EACA,IAAA;EACA,KAAA;EACA,SAAA;EACA;AAAA,GACC,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAyBP,kBAAA;;EAEf,KAAA;EACA,SAAA;AAAA;AAAA,iBAGc,aAAA,CAAA;EAAgB,KAAA;EAAO;AAAA,GAAa,kBAAA,GAAkB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,172 @@
1
+ import { cn } from "../../../lib/utils.mjs";
2
+ import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
3
+ import { useAnyCatalogCardOptional, useAnyCatalogContextOptional } from "../../../context/catalog-card-context.mjs";
4
+ import { CatalogCardBadge } from "./card-primitives.mjs";
5
+ import { Popover, PopoverContent, PopoverTrigger } from "../../ui/popover.mjs";
6
+ import { useState } from "react";
7
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
+ import { Check, Coins, Copy, ExternalLink, ListChecks, ListPlus } from "lucide-react";
9
+
10
+ //#region src/components/defaults/catalog/card-derived.tsx
11
+ /**
12
+ * Displays the starting credit cost for the surrounding card. Self-binds to
13
+ * `card.startingCreditAmount` + `card.costMode` from card context unless
14
+ * overridden via props.
15
+ */
16
+ function CatalogCreditBadge({ creditAmount, costMode, freeLabel = "Free", creditPrefix = "Starts at", disabled = true, className, variant }) {
17
+ const card = useAnyCatalogCardOptional()?.card;
18
+ const amount = creditAmount ?? card?.startingCreditAmount ?? 0;
19
+ const mode = costMode ?? card?.costMode ?? "per_result";
20
+ const denom = mode === "per_result" ? "result" : mode === "per_search" ? "search" : "page";
21
+ return /* @__PURE__ */ jsx(CatalogCardBadge, {
22
+ disabled,
23
+ variant,
24
+ className: cn("pz:whitespace-nowrap", className),
25
+ children: amount > 0 ? /* @__PURE__ */ jsxs("span", {
26
+ className: "pz:inline-flex pz:items-center pz:gap-0.5",
27
+ children: [
28
+ creditPrefix ? /* @__PURE__ */ jsx("span", {
29
+ className: "pz:mr-1",
30
+ children: creditPrefix
31
+ }) : null,
32
+ /* @__PURE__ */ jsx("span", { children: amount }),
33
+ /* @__PURE__ */ jsx(Coins, { className: "pz:size-3" }),
34
+ /* @__PURE__ */ jsxs("span", { children: ["/ ", denom] })
35
+ ]
36
+ }) : freeLabel
37
+ });
38
+ }
39
+ /**
40
+ * Dropdown that lists a card's input or output fields, with click-to-filter
41
+ * wiring. By default, clicking a field filters the catalog by that field
42
+ * (`addColumnFilter("inputFields"|"outputFields", field)`); pass `onSelectField`
43
+ * to override (e.g. inverted-filter UX).
44
+ */
45
+ function CatalogFieldBadge({ fieldType, fields, onSelectField, isFieldAvailable, label, fieldIcon, className, variant = "outline", render }) {
46
+ const [open, setOpen] = useState(false);
47
+ const card = useAnyCatalogCardOptional()?.card;
48
+ const ctx = useAnyCatalogContextOptional();
49
+ const resolvedFields = fields ?? deriveCardFields(card, fieldType);
50
+ const handleSelect = onSelectField ?? ((field) => {
51
+ ctx?.addColumnFilter(fieldType === "input" ? "inputFields" : "outputFields", field);
52
+ });
53
+ const handleAvailable = isFieldAvailable ?? ((field) => {
54
+ if (!ctx) return true;
55
+ const map = fieldType === "input" ? ctx.pipeIdsByInputField : pickOutputIndex(ctx);
56
+ if (!map) return true;
57
+ return !!map[field];
58
+ });
59
+ if (render) return /* @__PURE__ */ jsx(Fragment$1, { children: render({
60
+ fields: resolvedFields,
61
+ isOpen: open,
62
+ setOpen,
63
+ onSelect: (field) => {
64
+ handleSelect(field);
65
+ setOpen(false);
66
+ },
67
+ isFieldAvailable: handleAvailable
68
+ }) });
69
+ if (!resolvedFields.length) return null;
70
+ const Icon = fieldType === "input" ? ListPlus : ListChecks;
71
+ const text = label ?? (fieldType === "input" ? "Show inputs" : "Show outputs");
72
+ return /* @__PURE__ */ jsxs(Popover, {
73
+ open,
74
+ onOpenChange: setOpen,
75
+ children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: /* @__PURE__ */ jsxs(CatalogCardBadge, {
76
+ variant,
77
+ className: cn("pz:font-normal pz:text-muted-foreground pz:hover:text-foreground", className),
78
+ children: [/* @__PURE__ */ jsx(Icon, { className: "pz:size-3" }), text]
79
+ }) }), /* @__PURE__ */ jsx(PopoverContent, {
80
+ align: "start",
81
+ side: "bottom",
82
+ className: "pz:w-auto pz:min-w-40 pz:p-1",
83
+ children: /* @__PURE__ */ jsx("ul", {
84
+ "data-p0": "catalog-card-field-badge-list",
85
+ className: "pz:flex pz:flex-col pz:gap-0.5 pz:list-none pz:m-0 pz:p-0",
86
+ children: resolvedFields.map((field) => {
87
+ const available = handleAvailable(field);
88
+ return /* @__PURE__ */ jsx("li", {
89
+ className: "pz:flex",
90
+ children: /* @__PURE__ */ jsxs("button", {
91
+ type: "button",
92
+ onClick: (e) => {
93
+ e.stopPropagation();
94
+ handleSelect(field);
95
+ setOpen(false);
96
+ },
97
+ className: cn("pz:w-full pz:text-sm pz:text-left pz:py-1 pz:px-2 pz:rounded pz:flex pz:items-center pz:gap-2 pz:transition-all", available ? "pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted" : "pz:text-muted-foreground/50 pz:cursor-not-allowed"),
98
+ "data-available": available,
99
+ children: [fieldIcon?.(field), field]
100
+ })
101
+ }, field);
102
+ })
103
+ })
104
+ })]
105
+ });
106
+ }
107
+ function deriveCardFields(card, fieldType) {
108
+ if (!card) return [];
109
+ if (fieldType === "output") return card.defaultOutputFields ?? [];
110
+ if ("defaultInputFields" in card) return card.defaultInputFields.map((f) => f.name);
111
+ return [];
112
+ }
113
+ function pickOutputIndex(ctx) {
114
+ const c = ctx;
115
+ return c.pipeIdsByOutputField ?? c.searchIdsByOutputField;
116
+ }
117
+ function CatalogDocsBadge({ baseUrl, href, label = "Go to docs", className, variant = "outline" }) {
118
+ const docPath = (useAnyCatalogCardOptional()?.card)?.docPath;
119
+ const resolvedHref = href ?? (baseUrl && docPath ? `${baseUrl}${docPath}` : docPath);
120
+ if (!resolvedHref) return null;
121
+ return /* @__PURE__ */ jsx("a", {
122
+ target: "_blank",
123
+ href: resolvedHref,
124
+ rel: "noreferrer",
125
+ onClick: (e) => e.stopPropagation(),
126
+ children: /* @__PURE__ */ jsxs(CatalogCardBadge, {
127
+ variant,
128
+ className: cn("pz:font-normal pz:text-muted-foreground pz:hover:text-foreground", className),
129
+ children: [/* @__PURE__ */ jsx(ExternalLink, { className: "pz:size-3" }), label]
130
+ })
131
+ });
132
+ }
133
+ function CatalogCopyId({ value, className }) {
134
+ const { classNames } = useCatalogConfig();
135
+ const card = useAnyCatalogCardOptional()?.card;
136
+ const resolved = value ?? deriveCardId(card);
137
+ const [copied, setCopied] = useState(false);
138
+ if (!resolved) return null;
139
+ const handleCopy = (e) => {
140
+ e.stopPropagation();
141
+ e.preventDefault();
142
+ navigator.clipboard?.writeText(resolved).then(() => {
143
+ setCopied(true);
144
+ setTimeout(() => setCopied(false), 1500);
145
+ });
146
+ };
147
+ return /* @__PURE__ */ jsxs("div", {
148
+ "data-p0": "catalog-card-copy-id",
149
+ className: cn("pz:flex pz:items-center pz:gap-2 pz:rounded-md pz:border pz:border-input pz:bg-background pz:px-2 pz:py-1", classNames?.copyId, className),
150
+ onClick: (e) => e.stopPropagation(),
151
+ children: [/* @__PURE__ */ jsx("code", {
152
+ className: "pz:flex-1 pz:text-xs pz:text-muted-foreground pz:truncate pz:font-mono",
153
+ children: resolved
154
+ }), /* @__PURE__ */ jsx("button", {
155
+ type: "button",
156
+ onClick: handleCopy,
157
+ "aria-label": "Copy",
158
+ className: "pz:inline-flex pz:items-center pz:justify-center pz:size-6 pz:rounded pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted pz:transition-all",
159
+ children: copied ? /* @__PURE__ */ jsx(Check, { className: "pz:size-3" }) : /* @__PURE__ */ jsx(Copy, { className: "pz:size-3" })
160
+ })]
161
+ });
162
+ }
163
+ function deriveCardId(card) {
164
+ if (!card) return void 0;
165
+ if ("pipeId" in card) return card.pipeId;
166
+ if ("searchesId" in card) return card.searchesId;
167
+ if ("searchId" in card) return card.searchId;
168
+ }
169
+
170
+ //#endregion
171
+ export { CatalogCopyId, CatalogCreditBadge, CatalogDocsBadge, CatalogFieldBadge };
172
+ //# sourceMappingURL=card-derived.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-derived.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/card-derived.tsx"],"sourcesContent":["import { Check, Coins, Copy, ExternalLink, ListChecks, ListPlus } from \"lucide-react\";\nimport { type ReactNode, useState } from \"react\";\nimport {\n useAnyCatalogCardOptional,\n useAnyCatalogContextOptional,\n} from \"../../../context/catalog-card-context.js\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport type {\n PipeCardData,\n SearchCardData,\n SearchesCardData,\n} from \"../../../types/catalog-adapters.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../ui/popover.js\";\nimport { CatalogCardBadge, type CatalogCardBadgeProps } from \"./card-primitives.js\";\n\n/* -------------------------------------------------------------------------- */\n/* Credit badge — \"Starts at X / result|search|page\" or \"Free\" */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCreditBadgeProps {\n /** Override the auto-bound credit amount. */\n creditAmount?: number;\n /** Override the auto-bound cost mode. */\n costMode?: \"per_result\" | \"per_search\" | \"per_page\";\n freeLabel?: ReactNode;\n creditPrefix?: ReactNode;\n className?: string;\n disabled?: boolean;\n variant?: CatalogCardBadgeProps[\"variant\"];\n}\n\n/**\n * Displays the starting credit cost for the surrounding card. Self-binds to\n * `card.startingCreditAmount` + `card.costMode` from card context unless\n * overridden via props.\n */\nexport function CatalogCreditBadge({\n creditAmount,\n costMode,\n freeLabel = \"Free\",\n creditPrefix = \"Starts at\",\n disabled = true,\n className,\n variant,\n}: CatalogCreditBadgeProps) {\n const card = useAnyCatalogCardOptional()?.card;\n const amount = creditAmount ?? card?.startingCreditAmount ?? 0;\n const mode = costMode ?? card?.costMode ?? \"per_result\";\n const denom = mode === \"per_result\" ? \"result\" : mode === \"per_search\" ? \"search\" : \"page\";\n return (\n <CatalogCardBadge\n disabled={disabled}\n variant={variant}\n className={cn(\"pz:whitespace-nowrap\", className)}\n >\n {amount > 0 ? (\n <span className=\"pz:inline-flex pz:items-center pz:gap-0.5\">\n {creditPrefix ? <span className=\"pz:mr-1\">{creditPrefix}</span> : null}\n <span>{amount}</span>\n <Coins className=\"pz:size-3\" />\n <span>/ {denom}</span>\n </span>\n ) : (\n freeLabel\n )}\n </CatalogCardBadge>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Field badge — dropdown listing input or output fields, click to filter */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogFieldBadgeState {\n fields: string[];\n isOpen: boolean;\n setOpen: (open: boolean) => void;\n /** Calls onSelectField (or the auto-wired catalog filter) and closes the popover. */\n onSelect: (fieldName: string) => void;\n isFieldAvailable: (fieldName: string) => boolean;\n}\n\nexport interface CatalogFieldBadgeProps {\n fieldType: \"input\" | \"output\";\n /** Override the auto-bound fields list. */\n fields?: string[];\n /** Override the auto-wired filter handler. */\n onSelectField?: (fieldName: string) => void;\n /** Returns true if the field has any matching cards. Defaults to a reverse-index lookup on the catalog. */\n isFieldAvailable?: (fieldName: string) => boolean;\n label?: ReactNode;\n fieldIcon?: (fieldName: string) => ReactNode;\n className?: string;\n variant?: CatalogCardBadgeProps[\"variant\"];\n /** Render the entire dropdown UI yourself. Receives the merged state. */\n render?: (state: CatalogFieldBadgeState) => ReactNode;\n}\n\n/**\n * Dropdown that lists a card's input or output fields, with click-to-filter\n * wiring. By default, clicking a field filters the catalog by that field\n * (`addColumnFilter(\"inputFields\"|\"outputFields\", field)`); pass `onSelectField`\n * to override (e.g. inverted-filter UX).\n */\nexport function CatalogFieldBadge({\n fieldType,\n fields,\n onSelectField,\n isFieldAvailable,\n label,\n fieldIcon,\n className,\n variant = \"outline\",\n render,\n}: CatalogFieldBadgeProps) {\n const [open, setOpen] = useState(false);\n const card = useAnyCatalogCardOptional()?.card;\n const ctx = useAnyCatalogContextOptional();\n\n const resolvedFields = fields ?? deriveCardFields(card, fieldType);\n\n const handleSelect =\n onSelectField ??\n ((field: string) => {\n ctx?.addColumnFilter(fieldType === \"input\" ? \"inputFields\" : \"outputFields\", field);\n });\n\n const handleAvailable =\n isFieldAvailable ??\n ((field: string) => {\n if (!ctx) return true;\n const map =\n fieldType === \"input\"\n ? (ctx as { pipeIdsByInputField?: Record<string, unknown[]> }).pipeIdsByInputField\n : pickOutputIndex(ctx);\n if (!map) return true;\n return !!map[field];\n });\n\n if (render) {\n return (\n <>\n {render({\n fields: resolvedFields,\n isOpen: open,\n setOpen,\n onSelect: (field: string) => {\n handleSelect(field);\n setOpen(false);\n },\n isFieldAvailable: handleAvailable,\n })}\n </>\n );\n }\n\n if (!resolvedFields.length) return null;\n const Icon = fieldType === \"input\" ? ListPlus : ListChecks;\n const text = label ?? (fieldType === \"input\" ? \"Show inputs\" : \"Show outputs\");\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n render={\n <CatalogCardBadge\n variant={variant}\n className={cn(\n \"pz:font-normal pz:text-muted-foreground pz:hover:text-foreground\",\n className,\n )}\n >\n <Icon className=\"pz:size-3\" />\n {text}\n </CatalogCardBadge>\n }\n />\n <PopoverContent align=\"start\" side=\"bottom\" className=\"pz:w-auto pz:min-w-40 pz:p-1\">\n <ul\n data-p0=\"catalog-card-field-badge-list\"\n className=\"pz:flex pz:flex-col pz:gap-0.5 pz:list-none pz:m-0 pz:p-0\"\n >\n {resolvedFields.map((field) => {\n const available = handleAvailable(field);\n return (\n <li key={field} className=\"pz:flex\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n handleSelect(field);\n setOpen(false);\n }}\n className={cn(\n \"pz:w-full pz:text-sm pz:text-left pz:py-1 pz:px-2 pz:rounded pz:flex pz:items-center pz:gap-2 pz:transition-all\",\n available\n ? \"pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted\"\n : \"pz:text-muted-foreground/50 pz:cursor-not-allowed\",\n )}\n data-available={available}\n >\n {fieldIcon?.(field)}\n {field}\n </button>\n </li>\n );\n })}\n </ul>\n </PopoverContent>\n </Popover>\n );\n}\n\nfunction deriveCardFields(\n card: PipeCardData | SearchCardData | SearchesCardData | undefined,\n fieldType: \"input\" | \"output\",\n): string[] {\n if (!card) return [];\n if (fieldType === \"output\") return card.defaultOutputFields ?? [];\n if (\"defaultInputFields\" in card) {\n return card.defaultInputFields.map((f) => f.name);\n }\n return [];\n}\n\nfunction pickOutputIndex(ctx: unknown): Record<string, unknown[]> | undefined {\n const c = ctx as {\n pipeIdsByOutputField?: Record<string, unknown[]>;\n searchIdsByOutputField?: Record<string, unknown[]>;\n };\n return c.pipeIdsByOutputField ?? c.searchIdsByOutputField;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Docs badge — external link to provider docs */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogDocsBadgeProps {\n /** Base URL prepended to the card's docPath. */\n baseUrl?: string;\n /** Override the full URL (skips baseUrl + card.docPath composition). */\n href?: string;\n label?: ReactNode;\n className?: string;\n variant?: CatalogCardBadgeProps[\"variant\"];\n}\n\nexport function CatalogDocsBadge({\n baseUrl,\n href,\n label = \"Go to docs\",\n className,\n variant = \"outline\",\n}: CatalogDocsBadgeProps) {\n const card = useAnyCatalogCardOptional()?.card;\n const docPath = card?.docPath;\n const resolvedHref = href ?? (baseUrl && docPath ? `${baseUrl}${docPath}` : docPath);\n if (!resolvedHref) return null;\n return (\n <a target=\"_blank\" href={resolvedHref} rel=\"noreferrer\" onClick={(e) => e.stopPropagation()}>\n <CatalogCardBadge\n variant={variant}\n className={cn(\n \"pz:font-normal pz:text-muted-foreground pz:hover:text-foreground\",\n className,\n )}\n >\n <ExternalLink className=\"pz:size-3\" />\n {label}\n </CatalogCardBadge>\n </a>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy-id input — small input with a copy button */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCopyIdProps {\n /** Override the auto-bound id. Defaults to `card.pipeId` / `card.searchId` / `card.searchesId`. */\n value?: string;\n className?: string;\n}\n\nexport function CatalogCopyId({ value, className }: CatalogCopyIdProps) {\n const { classNames } = useCatalogConfig();\n const card = useAnyCatalogCardOptional()?.card;\n const resolved = value ?? deriveCardId(card);\n const [copied, setCopied] = useState(false);\n\n if (!resolved) return null;\n\n const handleCopy = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n void navigator.clipboard?.writeText(resolved).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n });\n };\n\n return (\n <div\n data-p0=\"catalog-card-copy-id\"\n className={cn(\n \"pz:flex pz:items-center pz:gap-2 pz:rounded-md pz:border pz:border-input pz:bg-background pz:px-2 pz:py-1\",\n classNames?.copyId,\n className,\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <code className=\"pz:flex-1 pz:text-xs pz:text-muted-foreground pz:truncate pz:font-mono\">\n {resolved}\n </code>\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copy\"\n className=\"pz:inline-flex pz:items-center pz:justify-center pz:size-6 pz:rounded pz:text-muted-foreground pz:hover:text-foreground pz:hover:bg-muted pz:transition-all\"\n >\n {copied ? <Check className=\"pz:size-3\" /> : <Copy className=\"pz:size-3\" />}\n </button>\n </div>\n );\n}\n\nfunction deriveCardId(\n card: PipeCardData | SearchCardData | SearchesCardData | undefined,\n): string | undefined {\n if (!card) return undefined;\n if (\"pipeId\" in card) return card.pipeId;\n if (\"searchesId\" in card) return card.searchesId;\n if (\"searchId\" in card) return card.searchId;\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,SAAgB,mBAAmB,EACjC,cACA,UACA,YAAY,QACZ,eAAe,aACf,WAAW,MACX,WACA,WAC0B;CAC1B,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,SAAS,gBAAgB,MAAM,wBAAwB;CAC7D,MAAM,OAAO,YAAY,MAAM,YAAY;CAC3C,MAAM,QAAQ,SAAS,eAAe,WAAW,SAAS,eAAe,WAAW;AACpF,QACE,oBAAC,kBAAD;EACY;EACD;EACT,WAAW,GAAG,wBAAwB,UAAU;YAE/C,SAAS,IACR,qBAAC,QAAD;GAAM,WAAU;aAAhB;IACG,eAAe,oBAAC,QAAD;KAAM,WAAU;eAAW;KAAoB,IAAG;IAClE,oBAAC,QAAD,YAAO,QAAc;IACrB,oBAAC,OAAD,EAAO,WAAU,aAAc;IAC/B,qBAAC,QAAD,aAAM,MAAG,MAAa;IACjB;OAEP;EAEe;;;;;;;;AAuCvB,SAAgB,kBAAkB,EAChC,WACA,QACA,eACA,kBACA,OACA,WACA,WACA,UAAU,WACV,UACyB;CACzB,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,MAAM,8BAA8B;CAE1C,MAAM,iBAAiB,UAAU,iBAAiB,MAAM,UAAU;CAElE,MAAM,eACJ,mBACE,UAAkB;AAClB,OAAK,gBAAgB,cAAc,UAAU,gBAAgB,gBAAgB,MAAM;;CAGvF,MAAM,kBACJ,sBACE,UAAkB;AAClB,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,MACJ,cAAc,UACT,IAA4D,sBAC7D,gBAAgB,IAAI;AAC1B,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,CAAC,CAAC,IAAI;;AAGjB,KAAI,OACF,QACE,4CACG,OAAO;EACN,QAAQ;EACR,QAAQ;EACR;EACA,WAAW,UAAkB;AAC3B,gBAAa,MAAM;AACnB,WAAQ,MAAM;;EAEhB,kBAAkB;EACnB,CAAC,EACD;AAIP,KAAI,CAAC,eAAe,OAAQ,QAAO;CACnC,MAAM,OAAO,cAAc,UAAU,WAAW;CAChD,MAAM,OAAO,UAAU,cAAc,UAAU,gBAAgB;AAC/D,QACE,qBAAC,SAAD;EAAe;EAAM,cAAc;YAAnC,CACE,oBAAC,gBAAD,EACE,QACE,qBAAC,kBAAD;GACW;GACT,WAAW,GACT,oEACA,UACD;aALH,CAOE,oBAAC,MAAD,EAAM,WAAU,aAAc,GAC7B,KACgB;MAErB,GACF,oBAAC,gBAAD;GAAgB,OAAM;GAAQ,MAAK;GAAS,WAAU;aACpD,oBAAC,MAAD;IACE,WAAQ;IACR,WAAU;cAET,eAAe,KAAK,UAAU;KAC7B,MAAM,YAAY,gBAAgB,MAAM;AACxC,YACE,oBAAC,MAAD;MAAgB,WAAU;gBACxB,qBAAC,UAAD;OACE,MAAK;OACL,UAAU,MAAM;AACd,UAAE,iBAAiB;AACnB,qBAAa,MAAM;AACnB,gBAAQ,MAAM;;OAEhB,WAAW,GACT,mHACA,YACI,wEACA,oDACL;OACD,kBAAgB;iBAblB,CAeG,YAAY,MAAM,EAClB,MACM;;MACN,EAnBI,MAmBJ;MAEP;IACC;GACU,EACT;;;AAId,SAAS,iBACP,MACA,WACU;AACV,KAAI,CAAC,KAAM,QAAO,EAAE;AACpB,KAAI,cAAc,SAAU,QAAO,KAAK,uBAAuB,EAAE;AACjE,KAAI,wBAAwB,KAC1B,QAAO,KAAK,mBAAmB,KAAK,MAAM,EAAE,KAAK;AAEnD,QAAO,EAAE;;AAGX,SAAS,gBAAgB,KAAqD;CAC5E,MAAM,IAAI;AAIV,QAAO,EAAE,wBAAwB,EAAE;;AAiBrC,SAAgB,iBAAiB,EAC/B,SACA,MACA,QAAQ,cACR,WACA,UAAU,aACc;CAExB,MAAM,WADO,2BAA2B,EAAE,OACpB;CACtB,MAAM,eAAe,SAAS,WAAW,UAAU,GAAG,UAAU,YAAY;AAC5E,KAAI,CAAC,aAAc,QAAO;AAC1B,QACE,oBAAC,KAAD;EAAG,QAAO;EAAS,MAAM;EAAc,KAAI;EAAa,UAAU,MAAM,EAAE,iBAAiB;YACzF,qBAAC,kBAAD;GACW;GACT,WAAW,GACT,oEACA,UACD;aALH,CAOE,oBAAC,cAAD,EAAc,WAAU,aAAc,GACrC,MACgB;;EACjB;;AAcR,SAAgB,cAAc,EAAE,OAAO,aAAiC;CACtE,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,OAAO,2BAA2B,EAAE;CAC1C,MAAM,WAAW,SAAS,aAAa,KAAK;CAC5C,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;AAE3C,KAAI,CAAC,SAAU,QAAO;CAEtB,MAAM,cAAc,MAAwB;AAC1C,IAAE,iBAAiB;AACnB,IAAE,gBAAgB;AAClB,EAAK,UAAU,WAAW,UAAU,SAAS,CAAC,WAAW;AACvD,aAAU,KAAK;AACf,oBAAiB,UAAU,MAAM,EAAE,KAAK;IACxC;;AAGJ,QACE,qBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GACT,6GACA,YAAY,QACZ,UACD;EACD,UAAU,MAAM,EAAE,iBAAiB;YAPrC,CASE,oBAAC,QAAD;GAAM,WAAU;aACb;GACI,GACP,oBAAC,UAAD;GACE,MAAK;GACL,SAAS;GACT,cAAW;GACX,WAAU;aAET,SAAS,oBAAC,OAAD,EAAO,WAAU,aAAc,IAAG,oBAAC,MAAD,EAAM,WAAU,aAAc;GACnE,EACL;;;AAIV,SAAS,aACP,MACoB;AACpB,KAAI,CAAC,KAAM,QAAO;AAClB,KAAI,YAAY,KAAM,QAAO,KAAK;AAClC,KAAI,gBAAgB,KAAM,QAAO,KAAK;AACtC,KAAI,cAAc,KAAM,QAAO,KAAK"}
@@ -0,0 +1,81 @@
1
+ import { RenderProp } from "../../../utils/render-slot.mjs";
2
+ import { Button } from "../../ui/button.mjs";
3
+ import { ComponentProps, MouseEvent, ReactNode } from "react";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/defaults/catalog/card-primitives.d.ts
7
+ interface CatalogCardProps extends ComponentProps<"div"> {
8
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
9
+ }
10
+ /**
11
+ * Bare flat card container. Defaults are structural only (flex column) so
12
+ * consumers can override paddings/colors/borders via `classNames.card` or
13
+ * `className` without fighting the cascade.
14
+ *
15
+ * Most consumers use `<PipeCatalogCard>` / `<SearchCatalogCard>` /
16
+ * `<SearchesCatalogCard>` instead, which provides the card context for
17
+ * self-binding child primitives.
18
+ */
19
+ declare function CatalogCard({
20
+ className,
21
+ onClick,
22
+ children,
23
+ ...rest
24
+ }: CatalogCardProps): _$react_jsx_runtime0.JSX.Element;
25
+ type CatalogCardHeaderState = {};
26
+ interface CatalogCardHeaderProps {
27
+ render?: RenderProp<ComponentProps<"div">, CatalogCardHeaderState>;
28
+ className?: string;
29
+ children?: ReactNode;
30
+ }
31
+ declare function CatalogCardHeader({
32
+ render,
33
+ className,
34
+ children
35
+ }: CatalogCardHeaderProps): ReactNode;
36
+ interface CatalogCardTitleState {
37
+ label: string;
38
+ }
39
+ interface CatalogCardTitleProps {
40
+ /** Override the displayed label. Defaults to `card.label` from context. */
41
+ children?: ReactNode;
42
+ render?: RenderProp<ComponentProps<"h3">, CatalogCardTitleState>;
43
+ className?: string;
44
+ }
45
+ declare function CatalogCardTitle({
46
+ children,
47
+ render,
48
+ className
49
+ }: CatalogCardTitleProps): ReactNode;
50
+ interface CatalogCardDescriptionState {
51
+ description: string;
52
+ }
53
+ interface CatalogCardDescriptionProps {
54
+ children?: ReactNode;
55
+ render?: RenderProp<ComponentProps<"p">, CatalogCardDescriptionState>;
56
+ className?: string;
57
+ }
58
+ declare function CatalogCardDescription({
59
+ children,
60
+ render,
61
+ className
62
+ }: CatalogCardDescriptionProps): ReactNode;
63
+ interface CatalogCardBadgesProps extends ComponentProps<"div"> {}
64
+ declare function CatalogCardBadges({
65
+ className,
66
+ children,
67
+ ...rest
68
+ }: CatalogCardBadgesProps): _$react_jsx_runtime0.JSX.Element | null;
69
+ interface CatalogCardBadgeProps extends Omit<ComponentProps<typeof Button>, "size"> {
70
+ size?: "xs" | "sm";
71
+ }
72
+ declare function CatalogCardBadge({
73
+ className,
74
+ variant,
75
+ size,
76
+ onClick,
77
+ ...rest
78
+ }: CatalogCardBadgeProps): _$react_jsx_runtime0.JSX.Element;
79
+ //#endregion
80
+ export { CatalogCard, CatalogCardBadge, CatalogCardBadgeProps, CatalogCardBadges, CatalogCardBadgesProps, CatalogCardDescription, CatalogCardDescriptionProps, CatalogCardHeader, CatalogCardHeaderProps, CatalogCardProps, CatalogCardTitle, CatalogCardTitleProps };
81
+ //# sourceMappingURL=card-primitives.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-primitives.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/card-primitives.tsx"],"mappings":";;;;;;UAWiB,gBAAA,SAAyB,cAAA;EACxC,OAAA,IAAW,CAAA,EAAG,UAAA,CAAW,cAAA;AAAA;AAD3B;;;;;;;;;AAAA,iBAagB,WAAA,CAAA;EAAc,SAAA;EAAW,OAAA;EAAS,QAAA;EAAA,GAAa;AAAA,GAAQ,gBAAA,GAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,KA+B3E,sBAAA;AAAA,UAEK,sBAAA;EACf,MAAA,GAAS,UAAA,CAAW,cAAA,SAAuB,sBAAA;EAC3C,SAAA;EACA,QAAA,GAAW,SAAA;AAAA;AAAA,iBAGG,iBAAA,CAAA;EAAoB,MAAA;EAAQ,SAAA;EAAW;AAAA,GAAY,sBAAA,GAAsB,SAAA;AAAA,UAkBxE,qBAAA;EACf,KAAA;AAAA;AAAA,UAGe,qBAAA;EA7DsD;EA+DrE,QAAA,GAAW,SAAA;EACX,MAAA,GAAS,UAAA,CAAW,cAAA,QAAsB,qBAAA;EAC1C,SAAA;AAAA;AAAA,iBAGc,gBAAA,CAAA;EAAmB,QAAA;EAAU,MAAA;EAAQ;AAAA,GAAa,qBAAA,GAAqB,SAAA;AAAA,UAwBtE,2BAAA;EACf,WAAA;AAAA;AAAA,UAGe,2BAAA;EACf,QAAA,GAAW,SAAA;EACX,MAAA,GAAS,UAAA,CAAW,cAAA,OAAqB,2BAAA;EACzC,SAAA;AAAA;AAAA,iBAGc,sBAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA;AAAA,GACC,2BAAA,GAA2B,SAAA;AAAA,UAwBb,sBAAA,SAA+B,cAAA;AAAA,iBAEhC,iBAAA,CAAA;EAAoB,SAAA;EAAW,QAAA;EAAA,GAAa;AAAA,GAAQ,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAoBzE,qBAAA,SAA8B,IAAA,CAAK,cAAA,QAAsB,MAAA;EACxE,IAAA;AAAA;AAAA,iBAGc,gBAAA,CAAA;EACd,SAAA;EACA,OAAA;EACA,IAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,108 @@
1
+ import { cn } from "../../../lib/utils.mjs";
2
+ import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
3
+ import { renderSlot } from "../../../utils/render-slot.mjs";
4
+ import { useAnyCatalogCardOptional } from "../../../context/catalog-card-context.mjs";
5
+ import { Button } from "../../ui/button.mjs";
6
+ import { Children } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+
9
+ //#region src/components/defaults/catalog/card-primitives.tsx
10
+ /**
11
+ * Bare flat card container. Defaults are structural only (flex column) so
12
+ * consumers can override paddings/colors/borders via `classNames.card` or
13
+ * `className` without fighting the cascade.
14
+ *
15
+ * Most consumers use `<PipeCatalogCard>` / `<SearchCatalogCard>` /
16
+ * `<SearchesCatalogCard>` instead, which provides the card context for
17
+ * self-binding child primitives.
18
+ */
19
+ function CatalogCard({ className, onClick, children, ...rest }) {
20
+ const { classNames } = useCatalogConfig();
21
+ const interactive = !!onClick;
22
+ return /* @__PURE__ */ jsx("div", {
23
+ "data-p0": "catalog-card",
24
+ role: interactive ? "button" : void 0,
25
+ tabIndex: interactive ? 0 : void 0,
26
+ onClick,
27
+ onKeyDown: interactive ? (e) => {
28
+ if (e.key === "Enter" || e.key === " ") {
29
+ e.preventDefault();
30
+ onClick?.(e);
31
+ }
32
+ } : void 0,
33
+ className: cn("pz:flex pz:flex-col", classNames?.card, className),
34
+ ...rest,
35
+ children
36
+ });
37
+ }
38
+ function CatalogCardHeader({ render, className, children }) {
39
+ const { classNames } = useCatalogConfig();
40
+ return renderSlot({
41
+ defaultTagName: "div",
42
+ render,
43
+ state: {},
44
+ props: {
45
+ "data-p0": "catalog-card-header",
46
+ className: cn("pz:flex pz:items-start pz:gap-2", classNames?.cardHeader, className),
47
+ children
48
+ }
49
+ });
50
+ }
51
+ function CatalogCardTitle({ children, render, className }) {
52
+ const { classNames } = useCatalogConfig();
53
+ const label = (useAnyCatalogCardOptional()?.card)?.label ?? "";
54
+ return renderSlot({
55
+ defaultTagName: "h3",
56
+ render,
57
+ state: { label },
58
+ props: {
59
+ "data-p0": "catalog-card-title",
60
+ className: cn("pz:text-sm pz:font-semibold pz:leading-tight pz:m-0 pz:line-clamp-2 pz:flex-1", classNames?.cardLabel, className),
61
+ children: children ?? label
62
+ }
63
+ });
64
+ }
65
+ function CatalogCardDescription({ children, render, className }) {
66
+ const { classNames } = useCatalogConfig();
67
+ const description = (useAnyCatalogCardOptional()?.card)?.description ?? "";
68
+ return renderSlot({
69
+ defaultTagName: "p",
70
+ render,
71
+ state: { description },
72
+ props: {
73
+ "data-p0": "catalog-card-description",
74
+ className: cn("pz:text-xs pz:text-muted-foreground pz:m-0 pz:line-clamp-2", classNames?.cardDescription, className),
75
+ children: children ?? description
76
+ }
77
+ });
78
+ }
79
+ function CatalogCardBadges({ className, children, ...rest }) {
80
+ const { classNames } = useCatalogConfig();
81
+ const visible = Children.toArray(children);
82
+ if (visible.length === 0) return null;
83
+ return /* @__PURE__ */ jsx("div", {
84
+ "data-p0": "catalog-card-badges",
85
+ className: cn("pz:flex pz:flex-wrap pz:gap-1.5 pz:items-center", classNames?.cardBadges, className),
86
+ onClick: (e) => e.stopPropagation(),
87
+ ...rest,
88
+ children: visible
89
+ });
90
+ }
91
+ function CatalogCardBadge({ className, variant = "outline", size = "xs", onClick, ...rest }) {
92
+ const { classNames } = useCatalogConfig();
93
+ return /* @__PURE__ */ jsx(Button, {
94
+ "data-p0": "catalog-card-badge",
95
+ variant,
96
+ size,
97
+ className: cn(classNames?.badge, className),
98
+ onClick: (e) => {
99
+ e.stopPropagation();
100
+ onClick?.(e);
101
+ },
102
+ ...rest
103
+ });
104
+ }
105
+
106
+ //#endregion
107
+ export { CatalogCard, CatalogCardBadge, CatalogCardBadges, CatalogCardDescription, CatalogCardHeader, CatalogCardTitle };
108
+ //# sourceMappingURL=card-primitives.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-primitives.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/card-primitives.tsx"],"sourcesContent":["import { Children, type ComponentProps, type MouseEvent, type ReactNode } from \"react\";\nimport { useAnyCatalogCardOptional } from \"../../../context/catalog-card-context.js\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport { type RenderProp, renderSlot } from \"../../../utils/render-slot.js\";\nimport { Button } from \"../../ui/button.js\";\n\n/* -------------------------------------------------------------------------- */\n/* Card root */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardProps extends ComponentProps<\"div\"> {\n onClick?: (e: MouseEvent<HTMLDivElement>) => void;\n}\n\n/**\n * Bare flat card container. Defaults are structural only (flex column) so\n * consumers can override paddings/colors/borders via `classNames.card` or\n * `className` without fighting the cascade.\n *\n * Most consumers use `<PipeCatalogCard>` / `<SearchCatalogCard>` /\n * `<SearchesCatalogCard>` instead, which provides the card context for\n * self-binding child primitives.\n */\nexport function CatalogCard({ className, onClick, children, ...rest }: CatalogCardProps) {\n const { classNames } = useCatalogConfig();\n const interactive = !!onClick;\n return (\n <div\n data-p0=\"catalog-card\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n onClick={onClick}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.(e as unknown as MouseEvent<HTMLDivElement>);\n }\n }\n : undefined\n }\n className={cn(\"pz:flex pz:flex-col\", classNames?.card, className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card header */\n/* -------------------------------------------------------------------------- */\n\nexport type CatalogCardHeaderState = {};\n\nexport interface CatalogCardHeaderProps {\n render?: RenderProp<ComponentProps<\"div\">, CatalogCardHeaderState>;\n className?: string;\n children?: ReactNode;\n}\n\nexport function CatalogCardHeader({ render, className, children }: CatalogCardHeaderProps) {\n const { classNames } = useCatalogConfig();\n return renderSlot({\n defaultTagName: \"div\",\n render,\n state: {} as CatalogCardHeaderState,\n props: {\n \"data-p0\": \"catalog-card-header\",\n className: cn(\"pz:flex pz:items-start pz:gap-2\", classNames?.cardHeader, className),\n children,\n } as ComponentProps<\"div\">,\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card title — self-binds to card.label */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardTitleState {\n label: string;\n}\n\nexport interface CatalogCardTitleProps {\n /** Override the displayed label. Defaults to `card.label` from context. */\n children?: ReactNode;\n render?: RenderProp<ComponentProps<\"h3\">, CatalogCardTitleState>;\n className?: string;\n}\n\nexport function CatalogCardTitle({ children, render, className }: CatalogCardTitleProps) {\n const { classNames } = useCatalogConfig();\n const card = useAnyCatalogCardOptional()?.card;\n const label = (card?.label ?? \"\") as string;\n return renderSlot({\n defaultTagName: \"h3\",\n render,\n state: { label },\n props: {\n \"data-p0\": \"catalog-card-title\",\n className: cn(\n \"pz:text-sm pz:font-semibold pz:leading-tight pz:m-0 pz:line-clamp-2 pz:flex-1\",\n classNames?.cardLabel,\n className,\n ),\n children: children ?? label,\n } as ComponentProps<\"h3\">,\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card description — self-binds to card.description */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardDescriptionState {\n description: string;\n}\n\nexport interface CatalogCardDescriptionProps {\n children?: ReactNode;\n render?: RenderProp<ComponentProps<\"p\">, CatalogCardDescriptionState>;\n className?: string;\n}\n\nexport function CatalogCardDescription({\n children,\n render,\n className,\n}: CatalogCardDescriptionProps) {\n const { classNames } = useCatalogConfig();\n const card = useAnyCatalogCardOptional()?.card;\n const description = (card?.description ?? \"\") as string;\n return renderSlot({\n defaultTagName: \"p\",\n render,\n state: { description },\n props: {\n \"data-p0\": \"catalog-card-description\",\n className: cn(\n \"pz:text-xs pz:text-muted-foreground pz:m-0 pz:line-clamp-2\",\n classNames?.cardDescription,\n className,\n ),\n children: children ?? description,\n } as ComponentProps<\"p\">,\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Card badges row + single badge button */\n/* -------------------------------------------------------------------------- */\n\nexport interface CatalogCardBadgesProps extends ComponentProps<\"div\"> {}\n\nexport function CatalogCardBadges({ className, children, ...rest }: CatalogCardBadgesProps) {\n const { classNames } = useCatalogConfig();\n const visible = Children.toArray(children);\n if (visible.length === 0) return null;\n return (\n <div\n data-p0=\"catalog-card-badges\"\n className={cn(\n \"pz:flex pz:flex-wrap pz:gap-1.5 pz:items-center\",\n classNames?.cardBadges,\n className,\n )}\n onClick={(e) => e.stopPropagation()}\n {...rest}\n >\n {visible}\n </div>\n );\n}\n\nexport interface CatalogCardBadgeProps extends Omit<ComponentProps<typeof Button>, \"size\"> {\n size?: \"xs\" | \"sm\";\n}\n\nexport function CatalogCardBadge({\n className,\n variant = \"outline\",\n size = \"xs\",\n onClick,\n ...rest\n}: CatalogCardBadgeProps) {\n const { classNames } = useCatalogConfig();\n return (\n <Button\n data-p0=\"catalog-card-badge\"\n variant={variant}\n size={size}\n className={cn(classNames?.badge, className)}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n {...rest}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,SAAgB,YAAY,EAAE,WAAW,SAAS,UAAU,GAAG,QAA0B;CACvF,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,cAAc,CAAC,CAAC;AACtB,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,MAAM,cAAc,WAAW;EAC/B,UAAU,cAAc,IAAI;EACnB;EACT,WACE,eACK,MAAM;AACL,OAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,MAAE,gBAAgB;AAClB,cAAU,EAA2C;;MAGzD;EAEN,WAAW,GAAG,uBAAuB,YAAY,MAAM,UAAU;EACjE,GAAI;EAEH;EACG;;AAgBV,SAAgB,kBAAkB,EAAE,QAAQ,WAAW,YAAoC;CACzF,MAAM,EAAE,eAAe,kBAAkB;AACzC,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE;EACT,OAAO;GACL,WAAW;GACX,WAAW,GAAG,mCAAmC,YAAY,YAAY,UAAU;GACnF;GACD;EACF,CAAC;;AAkBJ,SAAgB,iBAAiB,EAAE,UAAU,QAAQ,aAAoC;CACvF,MAAM,EAAE,eAAe,kBAAkB;CAEzC,MAAM,SADO,2BAA2B,EAAE,OACrB,SAAS;AAC9B,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE,OAAO;EAChB,OAAO;GACL,WAAW;GACX,WAAW,GACT,iFACA,YAAY,WACZ,UACD;GACD,UAAU,YAAY;GACvB;EACF,CAAC;;AAiBJ,SAAgB,uBAAuB,EACrC,UACA,QACA,aAC8B;CAC9B,MAAM,EAAE,eAAe,kBAAkB;CAEzC,MAAM,eADO,2BAA2B,EAAE,OACf,eAAe;AAC1C,QAAO,WAAW;EAChB,gBAAgB;EAChB;EACA,OAAO,EAAE,aAAa;EACtB,OAAO;GACL,WAAW;GACX,WAAW,GACT,8DACA,YAAY,iBACZ,UACD;GACD,UAAU,YAAY;GACvB;EACF,CAAC;;AASJ,SAAgB,kBAAkB,EAAE,WAAW,UAAU,GAAG,QAAgC;CAC1F,MAAM,EAAE,eAAe,kBAAkB;CACzC,MAAM,UAAU,SAAS,QAAQ,SAAS;AAC1C,KAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GACT,mDACA,YAAY,YACZ,UACD;EACD,UAAU,MAAM,EAAE,iBAAiB;EACnC,GAAI;YAEH;EACG;;AAQV,SAAgB,iBAAiB,EAC/B,WACA,UAAU,WACV,OAAO,MACP,SACA,GAAG,QACqB;CACxB,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,oBAAC,QAAD;EACE,WAAQ;EACC;EACH;EACN,WAAW,GAAG,YAAY,OAAO,UAAU;EAC3C,UAAU,MAAM;AACd,KAAE,iBAAiB;AACnB,aAAU,EAAE;;EAEd,GAAI;EACJ"}
@@ -0,0 +1,13 @@
1
+ import { ComponentType, ReactNode } from "react";
2
+ //#region src/components/defaults/catalog/category-filter.d.ts
3
+ interface CategoryOption<T extends string> {
4
+ id: T | null;
5
+ label: ReactNode;
6
+ icon?: ComponentType<{
7
+ className?: string;
8
+ }>;
9
+ disabled?: boolean;
10
+ }
11
+ //#endregion
12
+ export { CategoryOption };
13
+ //# sourceMappingURL=category-filter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-filter.d.mts","names":[],"sources":["../../../../src/components/defaults/catalog/category-filter.tsx"],"mappings":";;UAIiB,cAAA;EACf,EAAA,EAAI,CAAA;EACJ,KAAA,EAAO,SAAA;EACP,IAAA,GAAO,aAAA;IAAgB,SAAA;EAAA;EACvB,QAAA;AAAA"}
@@ -0,0 +1,28 @@
1
+ import { cn } from "../../../lib/utils.mjs";
2
+ import { useCatalogConfig } from "../../../context/catalog-config-context.mjs";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+
5
+ //#region src/components/defaults/catalog/category-filter.tsx
6
+ function DefaultCategoryFilter({ options, value, onChange, className }) {
7
+ const { classNames } = useCatalogConfig();
8
+ return /* @__PURE__ */ jsx("div", {
9
+ "data-p0": "catalog-category-filter",
10
+ className: cn("pz:flex pz:flex-wrap pz:gap-2", classNames?.categoryFilter, className),
11
+ children: options.map((option) => {
12
+ const isActive = value === option.id;
13
+ const Icon = option.icon;
14
+ return /* @__PURE__ */ jsxs("button", {
15
+ type: "button",
16
+ "data-active": isActive ? "" : void 0,
17
+ disabled: option.disabled,
18
+ onClick: () => onChange(option.id),
19
+ className: cn("pz:inline-flex pz:items-center pz:gap-1.5 pz:px-3 pz:py-1.5 pz:text-sm pz:rounded-md pz:border pz:border-input pz:bg-background pz:text-muted-foreground pz:transition-colors pz:hover:text-foreground pz:hover:bg-muted pz:disabled:opacity-50 pz:disabled:pointer-events-none", classNames?.categoryButton, isActive && "pz:bg-primary pz:text-primary-foreground pz:border-primary pz:font-medium pz:hover:bg-primary pz:hover:text-primary-foreground", isActive && classNames?.categoryButtonActive),
20
+ children: [Icon ? /* @__PURE__ */ jsx(Icon, { className: "pz:size-3.5" }) : null, option.label]
21
+ }, String(option.id ?? "__all__"));
22
+ })
23
+ });
24
+ }
25
+
26
+ //#endregion
27
+ export { DefaultCategoryFilter };
28
+ //# sourceMappingURL=category-filter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-filter.mjs","names":[],"sources":["../../../../src/components/defaults/catalog/category-filter.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { useCatalogConfig } from \"../../../context/catalog-config-context.js\";\nimport { cn } from \"../../../lib/utils.js\";\n\nexport interface CategoryOption<T extends string> {\n id: T | null;\n label: ReactNode;\n icon?: ComponentType<{ className?: string }>;\n disabled?: boolean;\n}\n\nexport interface DefaultCategoryFilterProps<T extends string> {\n options: ReadonlyArray<CategoryOption<T>>;\n value: T | null;\n onChange: (value: T | null) => void;\n className?: string;\n}\n\nexport function DefaultCategoryFilter<T extends string>({\n options,\n value,\n onChange,\n className,\n}: DefaultCategoryFilterProps<T>) {\n const { classNames } = useCatalogConfig();\n return (\n <div\n data-p0=\"catalog-category-filter\"\n className={cn(\"pz:flex pz:flex-wrap pz:gap-2\", classNames?.categoryFilter, className)}\n >\n {options.map((option) => {\n const isActive = value === option.id;\n const Icon = option.icon;\n return (\n <button\n key={String(option.id ?? \"__all__\")}\n type=\"button\"\n data-active={isActive ? \"\" : undefined}\n disabled={option.disabled}\n onClick={() => onChange(option.id)}\n className={cn(\n \"pz:inline-flex pz:items-center pz:gap-1.5 pz:px-3 pz:py-1.5 pz:text-sm pz:rounded-md pz:border pz:border-input pz:bg-background pz:text-muted-foreground pz:transition-colors pz:hover:text-foreground pz:hover:bg-muted pz:disabled:opacity-50 pz:disabled:pointer-events-none\",\n classNames?.categoryButton,\n isActive &&\n \"pz:bg-primary pz:text-primary-foreground pz:border-primary pz:font-medium pz:hover:bg-primary pz:hover:text-primary-foreground\",\n isActive && classNames?.categoryButtonActive,\n )}\n >\n {Icon ? <Icon className=\"pz:size-3.5\" /> : null}\n {option.label}\n </button>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;;;AAkBA,SAAgB,sBAAwC,EACtD,SACA,OACA,UACA,aACgC;CAChC,MAAM,EAAE,eAAe,kBAAkB;AACzC,QACE,oBAAC,OAAD;EACE,WAAQ;EACR,WAAW,GAAG,iCAAiC,YAAY,gBAAgB,UAAU;YAEpF,QAAQ,KAAK,WAAW;GACvB,MAAM,WAAW,UAAU,OAAO;GAClC,MAAM,OAAO,OAAO;AACpB,UACE,qBAAC,UAAD;IAEE,MAAK;IACL,eAAa,WAAW,KAAK;IAC7B,UAAU,OAAO;IACjB,eAAe,SAAS,OAAO,GAAG;IAClC,WAAW,GACT,mRACA,YAAY,gBACZ,YACE,kIACF,YAAY,YAAY,qBACzB;cAZH,CAcG,OAAO,oBAAC,MAAD,EAAM,WAAU,eAAgB,IAAG,MAC1C,OAAO,MACD;MAfF,OAAO,OAAO,MAAM,UAAU,CAe5B;IAEX;EACE"}