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