@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,26 @@
1
+ import { SuggestCombobox } from "../../internal/combobox/suggest-combobox.mjs";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/components/defaults/adapters/multi-select-input.tsx
5
+ function MultiSelectInputAdapter(field) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ "data-p0": "input",
8
+ children: /* @__PURE__ */ jsx(SuggestCombobox, {
9
+ value: field.selected,
10
+ onChange: (next) => {
11
+ const current = new Set(field.selected);
12
+ const incoming = new Set(next);
13
+ [...current, ...incoming].forEach((v) => {
14
+ if (current.has(v) !== incoming.has(v)) field.onToggle(v);
15
+ });
16
+ },
17
+ options: field.options,
18
+ ariaInvalid: !!field.error,
19
+ placeholder: field.meta.placeholder
20
+ })
21
+ });
22
+ }
23
+
24
+ //#endregion
25
+ export { MultiSelectInputAdapter };
26
+ //# sourceMappingURL=multi-select-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/multi-select-input.tsx"],"sourcesContent":["import type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { SuggestCombobox } from \"../../internal/combobox/suggest-combobox.js\";\n\nexport function MultiSelectInputAdapter(field: FieldHandle<\"multi_select_input\">) {\n return (\n <div data-p0=\"input\">\n <SuggestCombobox\n value={field.selected}\n onChange={(next) => {\n // Replay as toggles so the field handle stays the source of truth.\n const current = new Set(field.selected);\n const incoming = new Set(next);\n [...current, ...incoming].forEach((v) => {\n if (current.has(v) !== incoming.has(v)) field.onToggle(v);\n });\n }}\n options={field.options}\n ariaInvalid={!!field.error}\n placeholder={field.meta.placeholder}\n />\n </div>\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,wBAAwB,OAA0C;AAChF,QACE,oBAAC,OAAD;EAAK,WAAQ;YACX,oBAAC,iBAAD;GACE,OAAO,MAAM;GACb,WAAW,SAAS;IAElB,MAAM,UAAU,IAAI,IAAI,MAAM,SAAS;IACvC,MAAM,WAAW,IAAI,IAAI,KAAK;AAC9B,KAAC,GAAG,SAAS,GAAG,SAAS,CAAC,SAAS,MAAM;AACvC,SAAI,QAAQ,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,CAAE,OAAM,SAAS,EAAE;MACzD;;GAEJ,SAAS,MAAM;GACf,aAAa,CAAC,CAAC,MAAM;GACrB,aAAa,MAAM,KAAK;GACxB;EACE"}
@@ -0,0 +1,15 @@
1
+ import { Input } from "../../ui/input.mjs";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/components/defaults/adapters/number-input.tsx
5
+ function NumberInputAdapter(field) {
6
+ return /* @__PURE__ */ jsx(Input, {
7
+ ...field.inputProps,
8
+ "data-p0": "input",
9
+ "aria-invalid": !!field.error
10
+ });
11
+ }
12
+
13
+ //#endregion
14
+ export { NumberInputAdapter };
15
+ //# sourceMappingURL=number-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/number-input.tsx"],"sourcesContent":["import type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { Input } from \"../../ui/input.js\";\n\nexport function NumberInputAdapter(field: FieldHandle<\"number_input\">) {\n return <Input {...field.inputProps} data-p0=\"input\" aria-invalid={!!field.error} />;\n}\n"],"mappings":";;;;AAGA,SAAgB,mBAAmB,OAAoC;AACrE,QAAO,oBAAC,OAAD;EAAO,GAAI,MAAM;EAAY,WAAQ;EAAQ,gBAAc,CAAC,CAAC,MAAM;EAAS"}
@@ -0,0 +1,43 @@
1
+ import { useFieldError } from "../../../hooks/use-field-error.mjs";
2
+ import { SuggestCombobox } from "../../internal/combobox/suggest-combobox.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+
5
+ //#region src/components/defaults/adapters/ordered-multi-create-input.tsx
6
+ function OrderedMultiCreateInputAdapter(field) {
7
+ const itemsError = useFieldError(field.form, field.path);
8
+ const onChange = (next) => {
9
+ const prev = field.items;
10
+ const prevSet = new Set(prev);
11
+ const nextSet = new Set(next);
12
+ for (const v of prev) if (!nextSet.has(v)) field.remove(v);
13
+ for (const v of next) if (!prevSet.has(v)) field.add(v);
14
+ const afterAddRemove = prev.filter((v) => nextSet.has(v)).concat(next.filter((v) => !prevSet.has(v)));
15
+ for (let target = 0; target < next.length; target++) {
16
+ if (afterAddRemove[target] === next[target]) continue;
17
+ const source = afterAddRemove.indexOf(next[target], target);
18
+ if (source === -1 || source === target) continue;
19
+ field.reorder(source, target);
20
+ const [moved] = afterAddRemove.splice(source, 1);
21
+ afterAddRemove.splice(target, 0, moved);
22
+ }
23
+ };
24
+ return /* @__PURE__ */ jsx("div", {
25
+ "data-p0": "input",
26
+ className: "pz:flex pz:flex-col pz:gap-1",
27
+ children: /* @__PURE__ */ jsx(SuggestCombobox, {
28
+ value: field.items,
29
+ onChange,
30
+ options: field.options,
31
+ loadOptions: field.loadOptions,
32
+ allowCreate: true,
33
+ reorderable: true,
34
+ maxItems: field.meta.maxItems,
35
+ placeholder: field.meta.placeholder,
36
+ ariaInvalid: !!itemsError || !!field.error
37
+ })
38
+ });
39
+ }
40
+
41
+ //#endregion
42
+ export { OrderedMultiCreateInputAdapter };
43
+ //# sourceMappingURL=ordered-multi-create-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordered-multi-create-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/ordered-multi-create-input.tsx"],"sourcesContent":["import { useFieldError } from \"../../../hooks/use-field-error.js\";\nimport type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { SuggestCombobox } from \"../../internal/combobox/suggest-combobox.js\";\n\nexport function OrderedMultiCreateInputAdapter(field: FieldHandle<\"ordered_multi_create_input\">) {\n const itemsError = useFieldError(field.form, field.path);\n\n const onChange = (next: string[]) => {\n const prev = field.items;\n const prevSet = new Set(prev);\n const nextSet = new Set(next);\n\n for (const v of prev) if (!nextSet.has(v)) field.remove(v);\n for (const v of next) if (!prevSet.has(v)) field.add(v);\n\n const afterAddRemove = prev\n .filter((v) => nextSet.has(v))\n .concat(next.filter((v) => !prevSet.has(v)));\n\n for (let target = 0; target < next.length; target++) {\n if (afterAddRemove[target] === next[target]) continue;\n const source = afterAddRemove.indexOf(next[target], target);\n if (source === -1 || source === target) continue;\n field.reorder(source, target);\n const [moved] = afterAddRemove.splice(source, 1);\n afterAddRemove.splice(target, 0, moved);\n }\n };\n\n return (\n <div data-p0=\"input\" className=\"pz:flex pz:flex-col pz:gap-1\">\n <SuggestCombobox\n value={field.items}\n onChange={onChange}\n options={field.options}\n loadOptions={field.loadOptions}\n allowCreate\n reorderable\n maxItems={field.meta.maxItems}\n placeholder={field.meta.placeholder}\n ariaInvalid={!!itemsError || !!field.error}\n />\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,+BAA+B,OAAkD;CAC/F,MAAM,aAAa,cAAc,MAAM,MAAM,MAAM,KAAK;CAExD,MAAM,YAAY,SAAmB;EACnC,MAAM,OAAO,MAAM;EACnB,MAAM,UAAU,IAAI,IAAI,KAAK;EAC7B,MAAM,UAAU,IAAI,IAAI,KAAK;AAE7B,OAAK,MAAM,KAAK,KAAM,KAAI,CAAC,QAAQ,IAAI,EAAE,CAAE,OAAM,OAAO,EAAE;AAC1D,OAAK,MAAM,KAAK,KAAM,KAAI,CAAC,QAAQ,IAAI,EAAE,CAAE,OAAM,IAAI,EAAE;EAEvD,MAAM,iBAAiB,KACpB,QAAQ,MAAM,QAAQ,IAAI,EAAE,CAAC,CAC7B,OAAO,KAAK,QAAQ,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAE9C,OAAK,IAAI,SAAS,GAAG,SAAS,KAAK,QAAQ,UAAU;AACnD,OAAI,eAAe,YAAY,KAAK,QAAS;GAC7C,MAAM,SAAS,eAAe,QAAQ,KAAK,SAAS,OAAO;AAC3D,OAAI,WAAW,MAAM,WAAW,OAAQ;AACxC,SAAM,QAAQ,QAAQ,OAAO;GAC7B,MAAM,CAAC,SAAS,eAAe,OAAO,QAAQ,EAAE;AAChD,kBAAe,OAAO,QAAQ,GAAG,MAAM;;;AAI3C,QACE,oBAAC,OAAD;EAAK,WAAQ;EAAQ,WAAU;YAC7B,oBAAC,iBAAD;GACE,OAAO,MAAM;GACH;GACV,SAAS,MAAM;GACf,aAAa,MAAM;GACnB;GACA;GACA,UAAU,MAAM,KAAK;GACrB,aAAa,MAAM,KAAK;GACxB,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM;GACrC;EACE"}
@@ -0,0 +1,37 @@
1
+ import { Input } from "../../ui/input.mjs";
2
+ import { Switch } from "../../ui/switch.mjs";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+
5
+ //#region src/components/defaults/adapters/output-field-input.tsx
6
+ function OutputFieldInputAdapter(field) {
7
+ const value = field.value ?? {
8
+ alias: "",
9
+ enabled: true
10
+ };
11
+ const enabled = value.enabled;
12
+ return /* @__PURE__ */ jsxs("div", {
13
+ "data-p0": "input",
14
+ className: "pz:flex pz:items-center pz:gap-2",
15
+ children: [/* @__PURE__ */ jsx(Input, {
16
+ className: "pz:flex-1",
17
+ value: value.alias,
18
+ onChange: (e) => field.setValue({
19
+ ...value,
20
+ alias: e.target.value
21
+ }),
22
+ placeholder: field.meta.placeholder,
23
+ disabled: !enabled,
24
+ "aria-invalid": !!field.error
25
+ }), /* @__PURE__ */ jsx(Switch, {
26
+ checked: enabled,
27
+ onCheckedChange: (checked) => field.setValue({
28
+ ...value,
29
+ enabled: !!checked
30
+ })
31
+ })]
32
+ });
33
+ }
34
+
35
+ //#endregion
36
+ export { OutputFieldInputAdapter };
37
+ //# sourceMappingURL=output-field-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-field-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/output-field-input.tsx"],"sourcesContent":["import type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { Input } from \"../../ui/input.js\";\nimport { Switch } from \"../../ui/switch.js\";\n\nexport function OutputFieldInputAdapter(field: FieldHandle<\"output_field_input\">) {\n const value = field.value ?? { alias: \"\", enabled: true };\n const enabled = value.enabled;\n\n return (\n <div data-p0=\"input\" className=\"pz:flex pz:items-center pz:gap-2\">\n <Input\n className=\"pz:flex-1\"\n value={value.alias}\n onChange={(e) => field.setValue({ ...value, alias: e.target.value })}\n placeholder={field.meta.placeholder}\n disabled={!enabled}\n aria-invalid={!!field.error}\n />\n <Switch\n checked={enabled}\n onCheckedChange={(checked) => field.setValue({ ...value, enabled: !!checked })}\n />\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,wBAAwB,OAA0C;CAChF,MAAM,QAAQ,MAAM,SAAS;EAAE,OAAO;EAAI,SAAS;EAAM;CACzD,MAAM,UAAU,MAAM;AAEtB,QACE,qBAAC,OAAD;EAAK,WAAQ;EAAQ,WAAU;YAA/B,CACE,oBAAC,OAAD;GACE,WAAU;GACV,OAAO,MAAM;GACb,WAAW,MAAM,MAAM,SAAS;IAAE,GAAG;IAAO,OAAO,EAAE,OAAO;IAAO,CAAC;GACpE,aAAa,MAAM,KAAK;GACxB,UAAU,CAAC;GACX,gBAAc,CAAC,CAAC,MAAM;GACtB,GACF,oBAAC,QAAD;GACE,SAAS;GACT,kBAAkB,YAAY,MAAM,SAAS;IAAE,GAAG;IAAO,SAAS,CAAC,CAAC;IAAS,CAAC;GAC9E,EACE"}
@@ -0,0 +1,381 @@
1
+ import { cn } from "../../../lib/utils.mjs";
2
+ import { Button } from "../../ui/button.mjs";
3
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "../../ui/select.mjs";
4
+ import { Input } from "../../ui/input.mjs";
5
+ import { IconPlus } from "../../internal/icons.mjs";
6
+ import { HoverInfo } from "../../hover-info.mjs";
7
+ import { Badge } from "../../ui/badge.mjs";
8
+ import { useFieldError } from "../../../hooks/use-field-error.mjs";
9
+ import { FieldSectionEnumeration } from "../field-section-enumeration.mjs";
10
+ import { useCallback, useMemo } from "react";
11
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
12
+ import { TRIGGER_OPERATOR_LABELS, TRIGGER_STATUS_OPERATORS, TRIGGER_VALUE_OPERATORS } from "@pipe0/base";
13
+
14
+ //#region src/components/defaults/adapters/pipes-trigger-input.tsx
15
+ const OPERATORS_BY_TYPE = {
16
+ string: [
17
+ "eq",
18
+ "neq",
19
+ "contains"
20
+ ],
21
+ number: [
22
+ "eq",
23
+ "neq",
24
+ "gt",
25
+ "gte",
26
+ "lt",
27
+ "lte"
28
+ ],
29
+ boolean: ["eq", "neq"],
30
+ json: [],
31
+ unknown: []
32
+ };
33
+ const EMPTY_CONDITION = {
34
+ field_name: "",
35
+ property: "value",
36
+ operator: "eq",
37
+ value: ""
38
+ };
39
+ const CONNECTOR_GAP = 32;
40
+ function ConditionRow({ condition, index, eligibleFields, fieldsByName, isFirst, isLast, logic, form, basePath, onUpdate, onRemove, onAddCondition, onLogicChange }) {
41
+ const conditionPath = `${basePath}.when.conditions.${index}`;
42
+ const valueError = useFieldError(form, `${conditionPath}.value`);
43
+ const fieldNameError = useFieldError(form, `${conditionPath}.field_name`);
44
+ const operatorError = useFieldError(form, `${conditionPath}.operator`);
45
+ const propertyError = useFieldError(form, `${conditionPath}.property`);
46
+ const showConnector = !(isFirst && isLast);
47
+ const hasEligibleFields = eligibleFields.length > 0;
48
+ const selectedField = condition.field_name ? fieldsByName.get(condition.field_name) : void 0;
49
+ const availableOperators = useMemo(() => {
50
+ if (condition.property === "status") return TRIGGER_STATUS_OPERATORS.map((op) => ({
51
+ value: op,
52
+ label: TRIGGER_OPERATOR_LABELS[op]
53
+ }));
54
+ if (!selectedField?.type) return [];
55
+ return TRIGGER_VALUE_OPERATORS.map((op) => ({
56
+ value: op,
57
+ label: TRIGGER_OPERATOR_LABELS[op]
58
+ })).filter((op) => OPERATORS_BY_TYPE[selectedField.type].includes(op.value));
59
+ }, [condition.property, selectedField]);
60
+ const renderValueInput = () => {
61
+ if (!condition.field_name || !selectedField) return /* @__PURE__ */ jsx(Input, {
62
+ className: "pz:w-32",
63
+ placeholder: "",
64
+ disabled: true,
65
+ "aria-invalid": !!valueError
66
+ });
67
+ if (condition.property === "status") return /* @__PURE__ */ jsxs(Select, {
68
+ value: String(condition.value) || void 0,
69
+ onValueChange: (v) => onUpdate(index, {
70
+ ...condition,
71
+ value: v
72
+ }),
73
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
74
+ className: "pz:w-32",
75
+ "aria-invalid": !!valueError,
76
+ children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "--status--" })
77
+ }), /* @__PURE__ */ jsxs(SelectContent, { children: [
78
+ /* @__PURE__ */ jsx(SelectItem, {
79
+ value: "completed",
80
+ children: "completed"
81
+ }),
82
+ /* @__PURE__ */ jsx(SelectItem, {
83
+ value: "skipped",
84
+ children: "skipped"
85
+ }),
86
+ /* @__PURE__ */ jsx(SelectItem, {
87
+ value: "failed",
88
+ children: "failed"
89
+ }),
90
+ /* @__PURE__ */ jsx(SelectItem, {
91
+ value: "no_result",
92
+ children: "no_result"
93
+ })
94
+ ] })]
95
+ });
96
+ if (selectedField.type === "boolean") return /* @__PURE__ */ jsxs(Select, {
97
+ value: String(condition.value),
98
+ onValueChange: (v) => onUpdate(index, {
99
+ ...condition,
100
+ value: v
101
+ }),
102
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
103
+ className: "pz:w-24",
104
+ "aria-invalid": !!valueError,
105
+ children: /* @__PURE__ */ jsx(SelectValue, {})
106
+ }), /* @__PURE__ */ jsxs(SelectContent, { children: [/* @__PURE__ */ jsx(SelectItem, {
107
+ value: "true",
108
+ children: "true"
109
+ }), /* @__PURE__ */ jsx(SelectItem, {
110
+ value: "false",
111
+ children: "false"
112
+ })] })]
113
+ });
114
+ if (selectedField.type === "number") return /* @__PURE__ */ jsx(Input, {
115
+ type: "number",
116
+ className: "pz:w-32",
117
+ "aria-invalid": !!valueError,
118
+ value: String(Number(condition.value ?? 0)),
119
+ onChange: (e) => onUpdate(index, {
120
+ ...condition,
121
+ value: Number(e.target.value) || 0
122
+ }),
123
+ placeholder: ""
124
+ });
125
+ return /* @__PURE__ */ jsx(Input, {
126
+ className: "pz:w-32",
127
+ "aria-invalid": !!valueError,
128
+ value: String(condition.value ?? ""),
129
+ onChange: (e) => onUpdate(index, {
130
+ ...condition,
131
+ value: e.target.value
132
+ }),
133
+ placeholder: ""
134
+ });
135
+ };
136
+ const errorMessage = valueError || fieldNameError || operatorError || propertyError;
137
+ return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
138
+ className: cn("pz:relative", showConnector && "pz:pl-17"),
139
+ children: [
140
+ showConnector && /* @__PURE__ */ jsxs(Fragment$1, { children: [
141
+ isFirst ? /* @__PURE__ */ jsx("div", {
142
+ className: "pz:absolute pz:left-7 pz:w-10 pz:border-l-2 pz:border-t-2 pz:border-input pz:rounded-tl-lg pz:pointer-events-none",
143
+ style: {
144
+ top: "50%",
145
+ bottom: -CONNECTOR_GAP
146
+ }
147
+ }) : /* @__PURE__ */ jsx("div", {
148
+ className: "pz:absolute pz:left-7 pz:w-10 pz:border-l-2 pz:border-b-2 pz:border-input pz:rounded-bl-lg pz:pointer-events-none",
149
+ style: {
150
+ top: -CONNECTOR_GAP,
151
+ bottom: "50%"
152
+ }
153
+ }),
154
+ !isFirst && !isLast && /* @__PURE__ */ jsx("div", {
155
+ className: "pz:absolute pz:left-7 pz:border-l-2 pz:border-input pz:pointer-events-none",
156
+ style: {
157
+ top: "50%",
158
+ bottom: -CONNECTOR_GAP
159
+ }
160
+ }),
161
+ !isFirst && /* @__PURE__ */ jsx("div", {
162
+ className: "pz:absolute pz:left-7 pz:z-10",
163
+ style: {
164
+ top: -CONNECTOR_GAP / 2,
165
+ transform: "translate(-50%, -50%)"
166
+ },
167
+ children: /* @__PURE__ */ jsxs(Select, {
168
+ value: logic,
169
+ onValueChange: (v) => onLogicChange(v),
170
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
171
+ className: "pz:w-17 pz:h-6 pz:text-xs pz:bg-background pz:hover:bg-accent",
172
+ children: /* @__PURE__ */ jsx(SelectValue, {})
173
+ }), /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsxs(SelectGroup, { children: [/* @__PURE__ */ jsx(SelectItem, {
174
+ value: "and",
175
+ children: "AND"
176
+ }), /* @__PURE__ */ jsx(SelectItem, {
177
+ value: "or",
178
+ children: "OR"
179
+ })] }) })]
180
+ })
181
+ })
182
+ ] }),
183
+ /* @__PURE__ */ jsxs("div", {
184
+ className: "pz:flex pz:flex-wrap pz:items-center pz:gap-2",
185
+ children: [
186
+ /* @__PURE__ */ jsx(FieldSectionEnumeration, {
187
+ index,
188
+ onRemove
189
+ }),
190
+ /* @__PURE__ */ jsxs(Select, {
191
+ value: condition.field_name || void 0,
192
+ disabled: !hasEligibleFields,
193
+ onValueChange: (v) => {
194
+ if (v === null) return;
195
+ onUpdate(index, {
196
+ ...condition,
197
+ field_name: v,
198
+ operator: "eq",
199
+ value: ""
200
+ });
201
+ },
202
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
203
+ className: "pz:w-40",
204
+ "aria-invalid": !!fieldNameError,
205
+ children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select field" })
206
+ }), /* @__PURE__ */ jsx(SelectContent, { children: eligibleFields.map((f) => /* @__PURE__ */ jsx(SelectItem, {
207
+ value: f.fieldName,
208
+ children: f.fieldLabel || f.fieldName
209
+ }, f.fieldName)) })]
210
+ }),
211
+ !hasEligibleFields && /* @__PURE__ */ jsxs("span", {
212
+ className: "pz:text-xs pz:text-muted-foreground",
213
+ children: [
214
+ "No fields available",
215
+ " ",
216
+ /* @__PURE__ */ jsx(HoverInfo, { children: "Conditions require plain fields. JSON fields are not allowed." })
217
+ ]
218
+ }),
219
+ selectedField?.type && /* @__PURE__ */ jsxs(Fragment$1, { children: [
220
+ /* @__PURE__ */ jsx(Badge, {
221
+ variant: "secondary",
222
+ className: "pz:bg-accent pz:border pz:border-input pz:font-normal pz:text-muted-foreground pz:h-8",
223
+ children: "'s"
224
+ }),
225
+ /* @__PURE__ */ jsxs(Select, {
226
+ defaultValue: "value",
227
+ value: condition.property,
228
+ onValueChange: (v) => {
229
+ if (v === null) return;
230
+ onUpdate(index, {
231
+ ...condition,
232
+ property: v,
233
+ operator: "eq",
234
+ value: ""
235
+ });
236
+ },
237
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
238
+ className: "pz:w-28",
239
+ "aria-invalid": !!propertyError,
240
+ children: /* @__PURE__ */ jsx(SelectValue, {})
241
+ }), /* @__PURE__ */ jsxs(SelectContent, { children: [/* @__PURE__ */ jsx(SelectItem, {
242
+ value: "value",
243
+ children: "value"
244
+ }), /* @__PURE__ */ jsx(SelectItem, {
245
+ value: "status",
246
+ children: "status"
247
+ })] })]
248
+ }),
249
+ /* @__PURE__ */ jsxs(Select, {
250
+ value: condition.operator,
251
+ onValueChange: (v) => onUpdate(index, {
252
+ ...condition,
253
+ operator: v
254
+ }),
255
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
256
+ className: "pz:w-28",
257
+ "aria-invalid": !!operatorError,
258
+ children: /* @__PURE__ */ jsx(SelectValue, {})
259
+ }), /* @__PURE__ */ jsx(SelectContent, { children: availableOperators.map((op) => /* @__PURE__ */ jsx(SelectItem, {
260
+ value: op.value,
261
+ children: op.label
262
+ }, op.value)) })]
263
+ }),
264
+ renderValueInput()
265
+ ] })
266
+ ]
267
+ }),
268
+ errorMessage && /* @__PURE__ */ jsx("span", {
269
+ className: "pz:text-destructive pz:text-xs pz:font-medium pz:mt-1 pz:block",
270
+ role: "alert",
271
+ children: errorMessage
272
+ })
273
+ ]
274
+ }), isLast && /* @__PURE__ */ jsx("div", {
275
+ className: "pz:flex pz:items-center pz:gap-2",
276
+ children: /* @__PURE__ */ jsxs(Button, {
277
+ type: "button",
278
+ variant: "link",
279
+ size: "xs",
280
+ onClick: onAddCondition,
281
+ children: [/* @__PURE__ */ jsx(IconPlus, {}), "New rule"]
282
+ })
283
+ })] });
284
+ }
285
+ function PipesTriggerInputAdapter(field) {
286
+ const pipeTrigger = field.value;
287
+ const meta = field.meta;
288
+ const eligibleFields = useMemo(() => meta.fields.filter((f) => OPERATORS_BY_TYPE[f.type].length > 0), [meta.fields]);
289
+ const fieldsByName = useMemo(() => new Map(meta.fields.map((f) => [f.fieldName, f])), [meta.fields]);
290
+ const addTrigger = useCallback(() => {
291
+ field.setValue({
292
+ action: "run",
293
+ when: {
294
+ logic: "and",
295
+ conditions: [{ ...EMPTY_CONDITION }]
296
+ }
297
+ });
298
+ }, [field]);
299
+ const updateCondition = (index, condition) => {
300
+ if (!pipeTrigger) return;
301
+ const newConditions = [...pipeTrigger.when.conditions];
302
+ newConditions[index] = condition;
303
+ field.setValue({
304
+ ...pipeTrigger,
305
+ when: {
306
+ ...pipeTrigger.when,
307
+ conditions: newConditions
308
+ }
309
+ });
310
+ };
311
+ const removeCondition = (index) => {
312
+ if (!pipeTrigger) return;
313
+ if (pipeTrigger.when.conditions.length <= 1) {
314
+ field.setValue(null);
315
+ return;
316
+ }
317
+ const newConditions = pipeTrigger.when.conditions.filter((_, i) => i !== index);
318
+ field.setValue({
319
+ ...pipeTrigger,
320
+ when: {
321
+ ...pipeTrigger.when,
322
+ conditions: newConditions
323
+ }
324
+ });
325
+ };
326
+ const addCondition = () => {
327
+ if (!pipeTrigger) return;
328
+ field.setValue({
329
+ ...pipeTrigger,
330
+ when: {
331
+ ...pipeTrigger.when,
332
+ conditions: [...pipeTrigger.when.conditions, { ...EMPTY_CONDITION }]
333
+ }
334
+ });
335
+ };
336
+ const changeLogic = (logic) => {
337
+ if (!pipeTrigger) return;
338
+ field.setValue({
339
+ ...pipeTrigger,
340
+ when: {
341
+ ...pipeTrigger.when,
342
+ logic
343
+ }
344
+ });
345
+ };
346
+ return /* @__PURE__ */ jsx("div", {
347
+ "data-p0": "input",
348
+ children: !pipeTrigger ? /* @__PURE__ */ jsx("div", {
349
+ className: "pz:flex pz:items-center",
350
+ children: /* @__PURE__ */ jsxs(Button, {
351
+ type: "button",
352
+ variant: "link",
353
+ size: "xs",
354
+ className: "pz:px-0",
355
+ onClick: addTrigger,
356
+ children: [/* @__PURE__ */ jsx(IconPlus, {}), "New rule"]
357
+ })
358
+ }) : /* @__PURE__ */ jsx("div", {
359
+ className: "pz:flex pz:flex-col pz:gap-8",
360
+ children: pipeTrigger.when.conditions.map((condition, idx) => /* @__PURE__ */ jsx(ConditionRow, {
361
+ condition,
362
+ index: idx,
363
+ eligibleFields,
364
+ fieldsByName,
365
+ isFirst: idx === 0,
366
+ isLast: idx === pipeTrigger.when.conditions.length - 1,
367
+ logic: pipeTrigger.when.logic,
368
+ form: field.form,
369
+ basePath: field.path,
370
+ onUpdate: updateCondition,
371
+ onRemove: removeCondition,
372
+ onAddCondition: addCondition,
373
+ onLogicChange: changeLogic
374
+ }, idx))
375
+ })
376
+ });
377
+ }
378
+
379
+ //#endregion
380
+ export { PipesTriggerInputAdapter };
381
+ //# sourceMappingURL=pipes-trigger-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipes-trigger-input.mjs","names":[],"sources":["../../../../src/components/defaults/adapters/pipes-trigger-input.tsx"],"sourcesContent":["import {\n type ConditionOperators,\n type PipesTriggerMeta,\n type PipeTrigger,\n type RecordFieldType,\n TRIGGER_OPERATOR_LABELS,\n TRIGGER_STATUS_OPERATORS,\n TRIGGER_VALUE_OPERATORS,\n} from \"@pipe0/base\";\nimport { useCallback, useMemo } from \"react\";\nimport type { UseFormReturn } from \"react-hook-form\";\nimport { useFieldError } from \"../../../hooks/use-field-error.js\";\nimport { cn } from \"../../../lib/utils.js\";\nimport type { FieldHandle } from \"../../../types/field-handle.js\";\nimport { HoverInfo } from \"../../hover-info.js\";\nimport { IconPlus } from \"../../internal/icons.js\";\nimport { Badge } from \"../../ui/badge.js\";\nimport { Button } from \"../../ui/button.js\";\nimport { Input } from \"../../ui/input.js\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../ui/select.js\";\nimport { FieldSectionEnumeration } from \"../field-section-enumeration.js\";\n\n// Use a loose type for internal manipulation since the discriminated union\n// is strict about property/operator/value combinations.\ntype Condition = {\n field_name: string;\n property: string;\n operator: string;\n value: unknown;\n};\n\nconst OPERATORS_BY_TYPE: Record<RecordFieldType, ConditionOperators[]> = {\n string: [\"eq\", \"neq\", \"contains\"],\n number: [\"eq\", \"neq\", \"gt\", \"gte\", \"lt\", \"lte\"],\n boolean: [\"eq\", \"neq\"],\n json: [],\n unknown: [],\n};\n\nconst EMPTY_CONDITION: Condition = {\n field_name: \"\",\n property: \"value\",\n operator: \"eq\",\n value: \"\",\n};\n\nconst CONNECTOR_GAP = 32;\n\ntype MetaField = {\n fieldName: string;\n fieldLabel: string;\n type: RecordFieldType;\n format: string | null;\n};\n\nfunction ConditionRow({\n condition,\n index,\n eligibleFields,\n fieldsByName,\n isFirst,\n isLast,\n logic,\n form,\n basePath,\n onUpdate,\n onRemove,\n onAddCondition,\n onLogicChange,\n}: {\n condition: Condition;\n index: number;\n eligibleFields: MetaField[];\n fieldsByName: ReadonlyMap<string, MetaField>;\n isFirst: boolean;\n isLast: boolean;\n logic: PipeTrigger[\"when\"][\"logic\"];\n form: UseFormReturn<any>;\n basePath: string;\n onUpdate: (index: number, condition: Condition) => void;\n onRemove: (index: number) => void;\n onAddCondition: () => void;\n onLogicChange: (logic: PipeTrigger[\"when\"][\"logic\"]) => void;\n}) {\n const conditionPath = `${basePath}.when.conditions.${index}`;\n const valueError = useFieldError(form, `${conditionPath}.value`);\n const fieldNameError = useFieldError(form, `${conditionPath}.field_name`);\n const operatorError = useFieldError(form, `${conditionPath}.operator`);\n const propertyError = useFieldError(form, `${conditionPath}.property`);\n\n const showConnector = !(isFirst && isLast);\n const hasEligibleFields = eligibleFields.length > 0;\n const selectedField = condition.field_name ? fieldsByName.get(condition.field_name) : undefined;\n\n const availableOperators = useMemo(() => {\n if (condition.property === \"status\") {\n return TRIGGER_STATUS_OPERATORS.map((op) => ({\n value: op,\n label: TRIGGER_OPERATOR_LABELS[op],\n }));\n }\n if (!selectedField?.type) return [];\n return TRIGGER_VALUE_OPERATORS.map((op) => ({\n value: op,\n label: TRIGGER_OPERATOR_LABELS[op],\n })).filter((op) => OPERATORS_BY_TYPE[selectedField.type].includes(op.value));\n }, [condition.property, selectedField]);\n\n const renderValueInput = () => {\n if (!condition.field_name || !selectedField) {\n return <Input className=\"pz:w-32\" placeholder=\"\" disabled aria-invalid={!!valueError} />;\n }\n\n if (condition.property === \"status\") {\n return (\n <Select\n value={String(condition.value) || undefined}\n onValueChange={(v) => onUpdate(index, { ...condition, value: v })}\n >\n <SelectTrigger className=\"pz:w-32\" aria-invalid={!!valueError}>\n <SelectValue placeholder=\"--status--\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"completed\">completed</SelectItem>\n <SelectItem value=\"skipped\">skipped</SelectItem>\n <SelectItem value=\"failed\">failed</SelectItem>\n <SelectItem value=\"no_result\">no_result</SelectItem>\n </SelectContent>\n </Select>\n );\n }\n\n if (selectedField.type === \"boolean\") {\n return (\n <Select\n value={String(condition.value)}\n onValueChange={(v) => onUpdate(index, { ...condition, value: v })}\n >\n <SelectTrigger className=\"pz:w-24\" aria-invalid={!!valueError}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"true\">true</SelectItem>\n <SelectItem value=\"false\">false</SelectItem>\n </SelectContent>\n </Select>\n );\n }\n\n if (selectedField.type === \"number\") {\n return (\n <Input\n type=\"number\"\n className=\"pz:w-32\"\n aria-invalid={!!valueError}\n value={String(Number(condition.value ?? 0))}\n onChange={(e) =>\n onUpdate(index, {\n ...condition,\n value: Number(e.target.value) || 0,\n })\n }\n placeholder=\"\"\n />\n );\n }\n\n return (\n <Input\n className=\"pz:w-32\"\n aria-invalid={!!valueError}\n value={String(condition.value ?? \"\")}\n onChange={(e) => onUpdate(index, { ...condition, value: e.target.value })}\n placeholder=\"\"\n />\n );\n };\n\n const errorMessage = valueError || fieldNameError || operatorError || propertyError;\n\n return (\n <div>\n <div className={cn(\"pz:relative\", showConnector && \"pz:pl-17\")}>\n {showConnector && (\n <>\n {isFirst ? (\n <div\n className=\"pz:absolute pz:left-7 pz:w-10 pz:border-l-2 pz:border-t-2 pz:border-input pz:rounded-tl-lg pz:pointer-events-none\"\n style={{ top: \"50%\", bottom: -CONNECTOR_GAP }}\n />\n ) : (\n <div\n className=\"pz:absolute pz:left-7 pz:w-10 pz:border-l-2 pz:border-b-2 pz:border-input pz:rounded-bl-lg pz:pointer-events-none\"\n style={{ top: -CONNECTOR_GAP, bottom: \"50%\" }}\n />\n )}\n {!isFirst && !isLast && (\n <div\n className=\"pz:absolute pz:left-7 pz:border-l-2 pz:border-input pz:pointer-events-none\"\n style={{ top: \"50%\", bottom: -CONNECTOR_GAP }}\n />\n )}\n {!isFirst && (\n <div\n className=\"pz:absolute pz:left-7 pz:z-10\"\n style={{\n top: -CONNECTOR_GAP / 2,\n transform: \"translate(-50%, -50%)\",\n }}\n >\n <Select value={logic} onValueChange={(v) => onLogicChange(v as \"and\" | \"or\")}>\n <SelectTrigger className=\"pz:w-17 pz:h-6 pz:text-xs pz:bg-background pz:hover:bg-accent\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectItem value=\"and\">AND</SelectItem>\n <SelectItem value=\"or\">OR</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n )}\n </>\n )}\n <div className=\"pz:flex pz:flex-wrap pz:items-center pz:gap-2\">\n <FieldSectionEnumeration index={index} onRemove={onRemove} />\n <Select\n value={condition.field_name || undefined}\n disabled={!hasEligibleFields}\n onValueChange={(v) => {\n if (v === null) return;\n onUpdate(index, {\n ...condition,\n field_name: v,\n operator: \"eq\",\n value: \"\",\n });\n }}\n >\n <SelectTrigger className=\"pz:w-40\" aria-invalid={!!fieldNameError}>\n <SelectValue placeholder=\"Select field\" />\n </SelectTrigger>\n <SelectContent>\n {eligibleFields.map((f) => (\n <SelectItem key={f.fieldName} value={f.fieldName}>\n {f.fieldLabel || f.fieldName}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {!hasEligibleFields && (\n <span className=\"pz:text-xs pz:text-muted-foreground\">\n No fields available{\" \"}\n <HoverInfo>Conditions require plain fields. JSON fields are not allowed.</HoverInfo>\n </span>\n )}\n\n {selectedField?.type && (\n <>\n <Badge\n variant=\"secondary\"\n className=\"pz:bg-accent pz:border pz:border-input pz:font-normal pz:text-muted-foreground pz:h-8\"\n >\n &apos;s\n </Badge>\n <Select\n defaultValue=\"value\"\n value={condition.property}\n onValueChange={(v) => {\n if (v === null) return;\n onUpdate(index, {\n ...condition,\n property: v,\n operator: \"eq\",\n value: \"\",\n });\n }}\n >\n <SelectTrigger className=\"pz:w-28\" aria-invalid={!!propertyError}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"value\">value</SelectItem>\n <SelectItem value=\"status\">status</SelectItem>\n </SelectContent>\n </Select>\n\n <Select\n value={condition.operator}\n onValueChange={(v) =>\n onUpdate(index, {\n ...condition,\n operator: v as ConditionOperators,\n })\n }\n >\n <SelectTrigger className=\"pz:w-28\" aria-invalid={!!operatorError}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {availableOperators.map((op) => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n {renderValueInput()}\n </>\n )}\n </div>\n {errorMessage && (\n <span\n className=\"pz:text-destructive pz:text-xs pz:font-medium pz:mt-1 pz:block\"\n role=\"alert\"\n >\n {errorMessage}\n </span>\n )}\n </div>\n {isLast && (\n <div className=\"pz:flex pz:items-center pz:gap-2\">\n <Button type=\"button\" variant=\"link\" size=\"xs\" onClick={onAddCondition}>\n <IconPlus />\n New rule\n </Button>\n </div>\n )}\n </div>\n );\n}\n\nexport function PipesTriggerInputAdapter(field: FieldHandle<\"pipes_trigger_input\">) {\n const pipeTrigger = field.value as PipeTrigger | null;\n const meta = field.meta as PipesTriggerMeta;\n\n // Built once per render of the adapter and reused across every condition\n // row, instead of each row scanning `meta.fields` linearly. With N rows and\n // M fields this turns O(N·M) lookups into O(N+M).\n const eligibleFields = useMemo(\n () => meta.fields.filter((f) => OPERATORS_BY_TYPE[f.type].length > 0),\n [meta.fields],\n );\n const fieldsByName = useMemo(\n () => new Map(meta.fields.map((f) => [f.fieldName, f])),\n [meta.fields],\n );\n\n const addTrigger = useCallback(() => {\n field.setValue({\n action: \"run\",\n when: {\n logic: \"and\",\n conditions: [{ ...EMPTY_CONDITION }],\n },\n });\n }, [field]);\n\n const updateCondition = (index: number, condition: Condition) => {\n if (!pipeTrigger) return;\n const newConditions = [...pipeTrigger.when.conditions] as Condition[];\n newConditions[index] = condition;\n field.setValue({\n ...pipeTrigger,\n when: { ...pipeTrigger.when, conditions: newConditions },\n });\n };\n\n const removeCondition = (index: number) => {\n if (!pipeTrigger) return;\n if (pipeTrigger.when.conditions.length <= 1) {\n field.setValue(null);\n return;\n }\n const newConditions = pipeTrigger.when.conditions.filter((_, i) => i !== index);\n field.setValue({\n ...pipeTrigger,\n when: { ...pipeTrigger.when, conditions: newConditions },\n });\n };\n\n const addCondition = () => {\n if (!pipeTrigger) return;\n field.setValue({\n ...pipeTrigger,\n when: {\n ...pipeTrigger.when,\n conditions: [...pipeTrigger.when.conditions, { ...EMPTY_CONDITION }],\n },\n });\n };\n\n const changeLogic = (logic: \"and\" | \"or\") => {\n if (!pipeTrigger) return;\n field.setValue({\n ...pipeTrigger,\n when: { ...pipeTrigger.when, logic },\n });\n };\n\n return (\n <div data-p0=\"input\">\n {!pipeTrigger ? (\n <div className=\"pz:flex pz:items-center\">\n <Button type=\"button\" variant=\"link\" size=\"xs\" className=\"pz:px-0\" onClick={addTrigger}>\n <IconPlus />\n New rule\n </Button>\n </div>\n ) : (\n <div className=\"pz:flex pz:flex-col pz:gap-8\">\n {pipeTrigger.when.conditions.map((condition, idx) => (\n <ConditionRow\n key={idx}\n condition={condition}\n index={idx}\n eligibleFields={eligibleFields}\n fieldsByName={fieldsByName}\n isFirst={idx === 0}\n isLast={idx === pipeTrigger.when.conditions.length - 1}\n logic={pipeTrigger.when.logic}\n form={field.form}\n basePath={field.path}\n onUpdate={updateCondition}\n onRemove={removeCondition}\n onAddCondition={addCondition}\n onLogicChange={changeLogic}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}