@trebired/frontend 0.3.0

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 (433) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/LICENSE +661 -0
  3. package/README.md +212 -0
  4. package/dist/actions/buttons.d.ts +8 -0
  5. package/dist/actions/buttons.d.ts.map +1 -0
  6. package/dist/actions/buttons.js +116 -0
  7. package/dist/actions/buttons.js.map +1 -0
  8. package/dist/actions/components/index.d.ts +26 -0
  9. package/dist/actions/components/index.d.ts.map +1 -0
  10. package/dist/actions/components/index.js +25 -0
  11. package/dist/actions/components/index.js.map +1 -0
  12. package/dist/actions/confetti.d.ts +12 -0
  13. package/dist/actions/confetti.d.ts.map +1 -0
  14. package/dist/actions/confetti.js +36 -0
  15. package/dist/actions/confetti.js.map +1 -0
  16. package/dist/actions/forms.d.ts +12 -0
  17. package/dist/actions/forms.d.ts.map +1 -0
  18. package/dist/actions/forms.js +159 -0
  19. package/dist/actions/forms.js.map +1 -0
  20. package/dist/actions/index.d.ts +8 -0
  21. package/dist/actions/index.d.ts.map +1 -0
  22. package/dist/actions/index.js +7 -0
  23. package/dist/actions/index.js.map +1 -0
  24. package/dist/actions/request.d.ts +13 -0
  25. package/dist/actions/request.d.ts.map +1 -0
  26. package/dist/actions/request.js +83 -0
  27. package/dist/actions/request.js.map +1 -0
  28. package/dist/actions/response.d.ts +18 -0
  29. package/dist/actions/response.d.ts.map +1 -0
  30. package/dist/actions/response.js +104 -0
  31. package/dist/actions/response.js.map +1 -0
  32. package/dist/actions/styles/index.scss +42 -0
  33. package/dist/actions/triggers.d.ts +24 -0
  34. package/dist/actions/triggers.d.ts.map +1 -0
  35. package/dist/actions/triggers.js +107 -0
  36. package/dist/actions/triggers.js.map +1 -0
  37. package/dist/actions/types.d.ts +63 -0
  38. package/dist/actions/types.d.ts.map +1 -0
  39. package/dist/actions/types.js +2 -0
  40. package/dist/actions/types.js.map +1 -0
  41. package/dist/components/index.d.ts +5 -0
  42. package/dist/components/index.d.ts.map +1 -0
  43. package/dist/components/index.js +11 -0
  44. package/dist/components/index.js.map +1 -0
  45. package/dist/dom/index.d.ts +26 -0
  46. package/dist/dom/index.d.ts.map +1 -0
  47. package/dist/dom/index.js +164 -0
  48. package/dist/dom/index.js.map +1 -0
  49. package/dist/flash/components/index.d.ts +28 -0
  50. package/dist/flash/components/index.d.ts.map +1 -0
  51. package/dist/flash/components/index.js +27 -0
  52. package/dist/flash/components/index.js.map +1 -0
  53. package/dist/flash/dialogs.d.ts +6 -0
  54. package/dist/flash/dialogs.d.ts.map +1 -0
  55. package/dist/flash/dialogs.js +120 -0
  56. package/dist/flash/dialogs.js.map +1 -0
  57. package/dist/flash/duration.d.ts +8 -0
  58. package/dist/flash/duration.d.ts.map +1 -0
  59. package/dist/flash/duration.js +20 -0
  60. package/dist/flash/duration.js.map +1 -0
  61. package/dist/flash/elements.d.ts +14 -0
  62. package/dist/flash/elements.d.ts.map +1 -0
  63. package/dist/flash/elements.js +67 -0
  64. package/dist/flash/elements.js.map +1 -0
  65. package/dist/flash/index.d.ts +8 -0
  66. package/dist/flash/index.d.ts.map +1 -0
  67. package/dist/flash/index.js +18 -0
  68. package/dist/flash/index.js.map +1 -0
  69. package/dist/flash/stack.d.ts +6 -0
  70. package/dist/flash/stack.d.ts.map +1 -0
  71. package/dist/flash/stack.js +56 -0
  72. package/dist/flash/stack.js.map +1 -0
  73. package/dist/flash/styles/index.scss +118 -0
  74. package/dist/flash/toast.d.ts +24 -0
  75. package/dist/flash/toast.d.ts.map +1 -0
  76. package/dist/flash/toast.js +67 -0
  77. package/dist/flash/toast.js.map +1 -0
  78. package/dist/flash/types.d.ts +29 -0
  79. package/dist/flash/types.d.ts.map +1 -0
  80. package/dist/flash/types.js +2 -0
  81. package/dist/flash/types.js.map +1 -0
  82. package/dist/http/index.d.ts +30 -0
  83. package/dist/http/index.d.ts.map +1 -0
  84. package/dist/http/index.js +104 -0
  85. package/dist/http/index.js.map +1 -0
  86. package/dist/index.d.ts +40 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +104 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/inputs/components/index.d.ts +16 -0
  91. package/dist/inputs/components/index.d.ts.map +1 -0
  92. package/dist/inputs/components/index.js +112 -0
  93. package/dist/inputs/components/index.js.map +1 -0
  94. package/dist/inputs/index.d.ts +17 -0
  95. package/dist/inputs/index.d.ts.map +1 -0
  96. package/dist/inputs/index.js +54 -0
  97. package/dist/inputs/index.js.map +1 -0
  98. package/dist/inputs/styles/cropper.scss +244 -0
  99. package/dist/inputs/styles/field.scss +15 -0
  100. package/dist/inputs/styles/index.scss +3 -0
  101. package/dist/inputs/styles/upload.scss +125 -0
  102. package/dist/inputs/upload/config.d.ts +57 -0
  103. package/dist/inputs/upload/config.d.ts.map +1 -0
  104. package/dist/inputs/upload/config.js +61 -0
  105. package/dist/inputs/upload/config.js.map +1 -0
  106. package/dist/inputs/upload/crop-session.d.ts +6 -0
  107. package/dist/inputs/upload/crop-session.d.ts.map +1 -0
  108. package/dist/inputs/upload/crop-session.js +204 -0
  109. package/dist/inputs/upload/crop-session.js.map +1 -0
  110. package/dist/inputs/upload/crop.d.ts +20 -0
  111. package/dist/inputs/upload/crop.d.ts.map +1 -0
  112. package/dist/inputs/upload/crop.js +124 -0
  113. package/dist/inputs/upload/crop.js.map +1 -0
  114. package/dist/inputs/upload/dom.d.ts +19 -0
  115. package/dist/inputs/upload/dom.d.ts.map +1 -0
  116. package/dist/inputs/upload/dom.js +74 -0
  117. package/dist/inputs/upload/dom.js.map +1 -0
  118. package/dist/inputs/upload/drop.d.ts +10 -0
  119. package/dist/inputs/upload/drop.d.ts.map +1 -0
  120. package/dist/inputs/upload/drop.js +92 -0
  121. package/dist/inputs/upload/drop.js.map +1 -0
  122. package/dist/inputs/upload/files.d.ts +14 -0
  123. package/dist/inputs/upload/files.d.ts.map +1 -0
  124. package/dist/inputs/upload/files.js +82 -0
  125. package/dist/inputs/upload/files.js.map +1 -0
  126. package/dist/inputs/upload/manager.d.ts +36 -0
  127. package/dist/inputs/upload/manager.d.ts.map +1 -0
  128. package/dist/inputs/upload/manager.js +236 -0
  129. package/dist/inputs/upload/manager.js.map +1 -0
  130. package/dist/inputs/upload/markup.d.ts +30 -0
  131. package/dist/inputs/upload/markup.d.ts.map +1 -0
  132. package/dist/inputs/upload/markup.js +118 -0
  133. package/dist/inputs/upload/markup.js.map +1 -0
  134. package/dist/inputs/upload/model.d.ts +41 -0
  135. package/dist/inputs/upload/model.d.ts.map +1 -0
  136. package/dist/inputs/upload/model.js +76 -0
  137. package/dist/inputs/upload/model.js.map +1 -0
  138. package/dist/inputs/upload/state.d.ts +16 -0
  139. package/dist/inputs/upload/state.d.ts.map +1 -0
  140. package/dist/inputs/upload/state.js +181 -0
  141. package/dist/inputs/upload/state.js.map +1 -0
  142. package/dist/inputs/upload/text.d.ts +7 -0
  143. package/dist/inputs/upload/text.d.ts.map +1 -0
  144. package/dist/inputs/upload/text.js +29 -0
  145. package/dist/inputs/upload/text.js.map +1 -0
  146. package/dist/inputs/upload/types.d.ts +86 -0
  147. package/dist/inputs/upload/types.d.ts.map +1 -0
  148. package/dist/inputs/upload/types.js +2 -0
  149. package/dist/inputs/upload/types.js.map +1 -0
  150. package/dist/layer/components/index.d.ts +12 -0
  151. package/dist/layer/components/index.d.ts.map +1 -0
  152. package/dist/layer/components/index.js +12 -0
  153. package/dist/layer/components/index.js.map +1 -0
  154. package/dist/layer/index.d.ts +22 -0
  155. package/dist/layer/index.d.ts.map +1 -0
  156. package/dist/layer/index.js +159 -0
  157. package/dist/layer/index.js.map +1 -0
  158. package/dist/layer/styles/index.scss +6 -0
  159. package/dist/live/components/index.d.ts +15 -0
  160. package/dist/live/components/index.d.ts.map +1 -0
  161. package/dist/live/components/index.js +12 -0
  162. package/dist/live/components/index.js.map +1 -0
  163. package/dist/live/index.d.ts +29 -0
  164. package/dist/live/index.d.ts.map +1 -0
  165. package/dist/live/index.js +103 -0
  166. package/dist/live/index.js.map +1 -0
  167. package/dist/logging/index.d.ts +17 -0
  168. package/dist/logging/index.d.ts.map +1 -0
  169. package/dist/logging/index.js +68 -0
  170. package/dist/logging/index.js.map +1 -0
  171. package/dist/modal/components/index.d.ts +18 -0
  172. package/dist/modal/components/index.d.ts.map +1 -0
  173. package/dist/modal/components/index.js +20 -0
  174. package/dist/modal/components/index.js.map +1 -0
  175. package/dist/modal/index.d.ts +24 -0
  176. package/dist/modal/index.d.ts.map +1 -0
  177. package/dist/modal/index.js +184 -0
  178. package/dist/modal/index.js.map +1 -0
  179. package/dist/modal/styles/index.scss +50 -0
  180. package/dist/popover/components/index.d.ts +14 -0
  181. package/dist/popover/components/index.d.ts.map +1 -0
  182. package/dist/popover/components/index.js +16 -0
  183. package/dist/popover/components/index.js.map +1 -0
  184. package/dist/popover/index.d.ts +16 -0
  185. package/dist/popover/index.d.ts.map +1 -0
  186. package/dist/popover/index.js +140 -0
  187. package/dist/popover/index.js.map +1 -0
  188. package/dist/popover/styles/index.scss +24 -0
  189. package/dist/progress/components/index.d.ts +10 -0
  190. package/dist/progress/components/index.d.ts.map +1 -0
  191. package/dist/progress/components/index.js +14 -0
  192. package/dist/progress/components/index.js.map +1 -0
  193. package/dist/progress/index.d.ts +18 -0
  194. package/dist/progress/index.d.ts.map +1 -0
  195. package/dist/progress/index.js +89 -0
  196. package/dist/progress/index.js.map +1 -0
  197. package/dist/progress/styles/index.scss +16 -0
  198. package/dist/react/index.d.ts +17 -0
  199. package/dist/react/index.d.ts.map +1 -0
  200. package/dist/react/index.js +47 -0
  201. package/dist/react/index.js.map +1 -0
  202. package/dist/src/actions/buttons.d.ts +8 -0
  203. package/dist/src/actions/buttons.d.ts.map +1 -0
  204. package/dist/src/actions/buttons.js +116 -0
  205. package/dist/src/actions/buttons.js.map +1 -0
  206. package/dist/src/actions/components/index.d.ts +26 -0
  207. package/dist/src/actions/components/index.d.ts.map +1 -0
  208. package/dist/src/actions/components/index.js +25 -0
  209. package/dist/src/actions/components/index.js.map +1 -0
  210. package/dist/src/actions/confetti.d.ts +12 -0
  211. package/dist/src/actions/confetti.d.ts.map +1 -0
  212. package/dist/src/actions/confetti.js +36 -0
  213. package/dist/src/actions/confetti.js.map +1 -0
  214. package/dist/src/actions/forms.d.ts +12 -0
  215. package/dist/src/actions/forms.d.ts.map +1 -0
  216. package/dist/src/actions/forms.js +159 -0
  217. package/dist/src/actions/forms.js.map +1 -0
  218. package/dist/src/actions/index.d.ts +8 -0
  219. package/dist/src/actions/index.d.ts.map +1 -0
  220. package/dist/src/actions/index.js +7 -0
  221. package/dist/src/actions/index.js.map +1 -0
  222. package/dist/src/actions/request.d.ts +13 -0
  223. package/dist/src/actions/request.d.ts.map +1 -0
  224. package/dist/src/actions/request.js +83 -0
  225. package/dist/src/actions/request.js.map +1 -0
  226. package/dist/src/actions/response.d.ts +18 -0
  227. package/dist/src/actions/response.d.ts.map +1 -0
  228. package/dist/src/actions/response.js +104 -0
  229. package/dist/src/actions/response.js.map +1 -0
  230. package/dist/src/actions/triggers.d.ts +24 -0
  231. package/dist/src/actions/triggers.d.ts.map +1 -0
  232. package/dist/src/actions/triggers.js +107 -0
  233. package/dist/src/actions/triggers.js.map +1 -0
  234. package/dist/src/actions/types.d.ts +63 -0
  235. package/dist/src/actions/types.d.ts.map +1 -0
  236. package/dist/src/actions/types.js +2 -0
  237. package/dist/src/actions/types.js.map +1 -0
  238. package/dist/src/components/index.d.ts +5 -0
  239. package/dist/src/components/index.d.ts.map +1 -0
  240. package/dist/src/components/index.js +11 -0
  241. package/dist/src/components/index.js.map +1 -0
  242. package/dist/src/dom/index.d.ts +26 -0
  243. package/dist/src/dom/index.d.ts.map +1 -0
  244. package/dist/src/dom/index.js +164 -0
  245. package/dist/src/dom/index.js.map +1 -0
  246. package/dist/src/flash/components/index.d.ts +28 -0
  247. package/dist/src/flash/components/index.d.ts.map +1 -0
  248. package/dist/src/flash/components/index.js +27 -0
  249. package/dist/src/flash/components/index.js.map +1 -0
  250. package/dist/src/flash/dialogs.d.ts +6 -0
  251. package/dist/src/flash/dialogs.d.ts.map +1 -0
  252. package/dist/src/flash/dialogs.js +120 -0
  253. package/dist/src/flash/dialogs.js.map +1 -0
  254. package/dist/src/flash/duration.d.ts +8 -0
  255. package/dist/src/flash/duration.d.ts.map +1 -0
  256. package/dist/src/flash/duration.js +20 -0
  257. package/dist/src/flash/duration.js.map +1 -0
  258. package/dist/src/flash/elements.d.ts +14 -0
  259. package/dist/src/flash/elements.d.ts.map +1 -0
  260. package/dist/src/flash/elements.js +67 -0
  261. package/dist/src/flash/elements.js.map +1 -0
  262. package/dist/src/flash/index.d.ts +8 -0
  263. package/dist/src/flash/index.d.ts.map +1 -0
  264. package/dist/src/flash/index.js +18 -0
  265. package/dist/src/flash/index.js.map +1 -0
  266. package/dist/src/flash/stack.d.ts +6 -0
  267. package/dist/src/flash/stack.d.ts.map +1 -0
  268. package/dist/src/flash/stack.js +56 -0
  269. package/dist/src/flash/stack.js.map +1 -0
  270. package/dist/src/flash/toast.d.ts +24 -0
  271. package/dist/src/flash/toast.d.ts.map +1 -0
  272. package/dist/src/flash/toast.js +67 -0
  273. package/dist/src/flash/toast.js.map +1 -0
  274. package/dist/src/flash/types.d.ts +29 -0
  275. package/dist/src/flash/types.d.ts.map +1 -0
  276. package/dist/src/flash/types.js +2 -0
  277. package/dist/src/flash/types.js.map +1 -0
  278. package/dist/src/http/index.d.ts +30 -0
  279. package/dist/src/http/index.d.ts.map +1 -0
  280. package/dist/src/http/index.js +104 -0
  281. package/dist/src/http/index.js.map +1 -0
  282. package/dist/src/index.d.ts +40 -0
  283. package/dist/src/index.d.ts.map +1 -0
  284. package/dist/src/index.js +104 -0
  285. package/dist/src/index.js.map +1 -0
  286. package/dist/src/inputs/components/index.d.ts +16 -0
  287. package/dist/src/inputs/components/index.d.ts.map +1 -0
  288. package/dist/src/inputs/components/index.js +112 -0
  289. package/dist/src/inputs/components/index.js.map +1 -0
  290. package/dist/src/inputs/index.d.ts +17 -0
  291. package/dist/src/inputs/index.d.ts.map +1 -0
  292. package/dist/src/inputs/index.js +54 -0
  293. package/dist/src/inputs/index.js.map +1 -0
  294. package/dist/src/inputs/upload/config.d.ts +57 -0
  295. package/dist/src/inputs/upload/config.d.ts.map +1 -0
  296. package/dist/src/inputs/upload/config.js +61 -0
  297. package/dist/src/inputs/upload/config.js.map +1 -0
  298. package/dist/src/inputs/upload/crop-session.d.ts +6 -0
  299. package/dist/src/inputs/upload/crop-session.d.ts.map +1 -0
  300. package/dist/src/inputs/upload/crop-session.js +204 -0
  301. package/dist/src/inputs/upload/crop-session.js.map +1 -0
  302. package/dist/src/inputs/upload/crop.d.ts +20 -0
  303. package/dist/src/inputs/upload/crop.d.ts.map +1 -0
  304. package/dist/src/inputs/upload/crop.js +124 -0
  305. package/dist/src/inputs/upload/crop.js.map +1 -0
  306. package/dist/src/inputs/upload/dom.d.ts +19 -0
  307. package/dist/src/inputs/upload/dom.d.ts.map +1 -0
  308. package/dist/src/inputs/upload/dom.js +74 -0
  309. package/dist/src/inputs/upload/dom.js.map +1 -0
  310. package/dist/src/inputs/upload/drop.d.ts +10 -0
  311. package/dist/src/inputs/upload/drop.d.ts.map +1 -0
  312. package/dist/src/inputs/upload/drop.js +92 -0
  313. package/dist/src/inputs/upload/drop.js.map +1 -0
  314. package/dist/src/inputs/upload/files.d.ts +14 -0
  315. package/dist/src/inputs/upload/files.d.ts.map +1 -0
  316. package/dist/src/inputs/upload/files.js +82 -0
  317. package/dist/src/inputs/upload/files.js.map +1 -0
  318. package/dist/src/inputs/upload/manager.d.ts +36 -0
  319. package/dist/src/inputs/upload/manager.d.ts.map +1 -0
  320. package/dist/src/inputs/upload/manager.js +236 -0
  321. package/dist/src/inputs/upload/manager.js.map +1 -0
  322. package/dist/src/inputs/upload/markup.d.ts +30 -0
  323. package/dist/src/inputs/upload/markup.d.ts.map +1 -0
  324. package/dist/src/inputs/upload/markup.js +118 -0
  325. package/dist/src/inputs/upload/markup.js.map +1 -0
  326. package/dist/src/inputs/upload/model.d.ts +41 -0
  327. package/dist/src/inputs/upload/model.d.ts.map +1 -0
  328. package/dist/src/inputs/upload/model.js +76 -0
  329. package/dist/src/inputs/upload/model.js.map +1 -0
  330. package/dist/src/inputs/upload/state.d.ts +16 -0
  331. package/dist/src/inputs/upload/state.d.ts.map +1 -0
  332. package/dist/src/inputs/upload/state.js +181 -0
  333. package/dist/src/inputs/upload/state.js.map +1 -0
  334. package/dist/src/inputs/upload/text.d.ts +7 -0
  335. package/dist/src/inputs/upload/text.d.ts.map +1 -0
  336. package/dist/src/inputs/upload/text.js +29 -0
  337. package/dist/src/inputs/upload/text.js.map +1 -0
  338. package/dist/src/inputs/upload/types.d.ts +86 -0
  339. package/dist/src/inputs/upload/types.d.ts.map +1 -0
  340. package/dist/src/inputs/upload/types.js +2 -0
  341. package/dist/src/inputs/upload/types.js.map +1 -0
  342. package/dist/src/layer/components/index.d.ts +12 -0
  343. package/dist/src/layer/components/index.d.ts.map +1 -0
  344. package/dist/src/layer/components/index.js +12 -0
  345. package/dist/src/layer/components/index.js.map +1 -0
  346. package/dist/src/layer/index.d.ts +22 -0
  347. package/dist/src/layer/index.d.ts.map +1 -0
  348. package/dist/src/layer/index.js +159 -0
  349. package/dist/src/layer/index.js.map +1 -0
  350. package/dist/src/live/components/index.d.ts +15 -0
  351. package/dist/src/live/components/index.d.ts.map +1 -0
  352. package/dist/src/live/components/index.js +12 -0
  353. package/dist/src/live/components/index.js.map +1 -0
  354. package/dist/src/live/index.d.ts +29 -0
  355. package/dist/src/live/index.d.ts.map +1 -0
  356. package/dist/src/live/index.js +103 -0
  357. package/dist/src/live/index.js.map +1 -0
  358. package/dist/src/logging/index.d.ts +17 -0
  359. package/dist/src/logging/index.d.ts.map +1 -0
  360. package/dist/src/logging/index.js +68 -0
  361. package/dist/src/logging/index.js.map +1 -0
  362. package/dist/src/modal/components/index.d.ts +18 -0
  363. package/dist/src/modal/components/index.d.ts.map +1 -0
  364. package/dist/src/modal/components/index.js +20 -0
  365. package/dist/src/modal/components/index.js.map +1 -0
  366. package/dist/src/modal/index.d.ts +24 -0
  367. package/dist/src/modal/index.d.ts.map +1 -0
  368. package/dist/src/modal/index.js +184 -0
  369. package/dist/src/modal/index.js.map +1 -0
  370. package/dist/src/popover/components/index.d.ts +14 -0
  371. package/dist/src/popover/components/index.d.ts.map +1 -0
  372. package/dist/src/popover/components/index.js +16 -0
  373. package/dist/src/popover/components/index.js.map +1 -0
  374. package/dist/src/popover/index.d.ts +16 -0
  375. package/dist/src/popover/index.d.ts.map +1 -0
  376. package/dist/src/popover/index.js +140 -0
  377. package/dist/src/popover/index.js.map +1 -0
  378. package/dist/src/progress/components/index.d.ts +10 -0
  379. package/dist/src/progress/components/index.d.ts.map +1 -0
  380. package/dist/src/progress/components/index.js +14 -0
  381. package/dist/src/progress/components/index.js.map +1 -0
  382. package/dist/src/progress/index.d.ts +18 -0
  383. package/dist/src/progress/index.d.ts.map +1 -0
  384. package/dist/src/progress/index.js +89 -0
  385. package/dist/src/progress/index.js.map +1 -0
  386. package/dist/src/react/index.d.ts +17 -0
  387. package/dist/src/react/index.d.ts.map +1 -0
  388. package/dist/src/react/index.js +47 -0
  389. package/dist/src/react/index.js.map +1 -0
  390. package/dist/src/styles/index.d.ts +3 -0
  391. package/dist/src/styles/index.d.ts.map +1 -0
  392. package/dist/src/styles/index.js +14 -0
  393. package/dist/src/styles/index.js.map +1 -0
  394. package/dist/src/theme/components/index.d.ts +14 -0
  395. package/dist/src/theme/components/index.d.ts.map +1 -0
  396. package/dist/src/theme/components/index.js +13 -0
  397. package/dist/src/theme/components/index.js.map +1 -0
  398. package/dist/src/theme/index.d.ts +26 -0
  399. package/dist/src/theme/index.d.ts.map +1 -0
  400. package/dist/src/theme/index.js +119 -0
  401. package/dist/src/theme/index.js.map +1 -0
  402. package/dist/src/tooltip/components/index.d.ts +17 -0
  403. package/dist/src/tooltip/components/index.d.ts.map +1 -0
  404. package/dist/src/tooltip/components/index.js +20 -0
  405. package/dist/src/tooltip/components/index.js.map +1 -0
  406. package/dist/src/tooltip/index.d.ts +10 -0
  407. package/dist/src/tooltip/index.d.ts.map +1 -0
  408. package/dist/src/tooltip/index.js +171 -0
  409. package/dist/src/tooltip/index.js.map +1 -0
  410. package/dist/styles/index.d.ts +3 -0
  411. package/dist/styles/index.d.ts.map +1 -0
  412. package/dist/styles/index.js +14 -0
  413. package/dist/styles/index.js.map +1 -0
  414. package/dist/styles/tokens.scss +22 -0
  415. package/dist/styles/utils.scss +220 -0
  416. package/dist/theme/components/index.d.ts +14 -0
  417. package/dist/theme/components/index.d.ts.map +1 -0
  418. package/dist/theme/components/index.js +13 -0
  419. package/dist/theme/components/index.js.map +1 -0
  420. package/dist/theme/index.d.ts +26 -0
  421. package/dist/theme/index.d.ts.map +1 -0
  422. package/dist/theme/index.js +119 -0
  423. package/dist/theme/index.js.map +1 -0
  424. package/dist/tooltip/components/index.d.ts +17 -0
  425. package/dist/tooltip/components/index.d.ts.map +1 -0
  426. package/dist/tooltip/components/index.js +20 -0
  427. package/dist/tooltip/components/index.js.map +1 -0
  428. package/dist/tooltip/index.d.ts +10 -0
  429. package/dist/tooltip/index.d.ts.map +1 -0
  430. package/dist/tooltip/index.js +171 -0
  431. package/dist/tooltip/index.js.map +1 -0
  432. package/dist/tooltip/styles/index.scss +17 -0
  433. package/package.json +232 -0
@@ -0,0 +1,16 @@
1
+ .tbf-progress {
2
+ position: fixed;
3
+ inset: 0 0 auto 0;
4
+ height: 3px;
5
+ pointer-events: none;
6
+ z-index: var(--tbf-z-progress, 99999);
7
+ }
8
+
9
+ .tbf-progress__bar {
10
+ display: block;
11
+ height: 100%;
12
+ background: var(--tbf-focus, #000);
13
+ transform: scaleX(0);
14
+ transform-origin: left center;
15
+ transition: transform var(--tbf-transition-fast) ease;
16
+ }
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from "react";
2
+ import { readJsonScript } from "../dom/index.d.ts";
3
+ type ReactRootOptions = {
4
+ hydrate?: boolean;
5
+ };
6
+ declare function mountReactRoot(root: Element, node: ReactNode, options?: ReactRootOptions): Promise<import("react-dom/client").Root>;
7
+ declare function renderReactRoot(root: Element, node: ReactNode): Promise<import("react-dom/client").Root>;
8
+ declare function unmountReactRoot(root: Element): boolean;
9
+ declare function mountLiveIsland(options: {
10
+ component: (props: any) => ReactNode;
11
+ initialState?: unknown;
12
+ root: Element | string | null;
13
+ stateId?: string;
14
+ }): Promise<import("react-dom/client").Root>;
15
+ export { mountLiveIsland, mountReactRoot, readJsonScript, renderReactRoot, unmountReactRoot, };
16
+ export type { ReactRootOptions };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAIF,iBAAe,cAAc,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,4CAc/B;AAED,iBAAe,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,4CAE5D;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,OAAO,WAMtC;AAED,iBAAe,eAAe,CAAC,OAAO,EAAE;IACtC,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,4CAgBA;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { readJsonScript } from "../dom/index.js";
2
+ const roots = new WeakMap();
3
+ async function mountReactRoot(root, node, options = {}) {
4
+ const client = await import("react-dom/client");
5
+ const existing = roots.get(root);
6
+ if (existing) {
7
+ existing.render(node);
8
+ return existing;
9
+ }
10
+ const created = options.hydrate === true
11
+ ? client.hydrateRoot(root, node)
12
+ : client.createRoot(root);
13
+ if (options.hydrate !== true)
14
+ created.render(node);
15
+ roots.set(root, created);
16
+ return created;
17
+ }
18
+ async function renderReactRoot(root, node) {
19
+ return await mountReactRoot(root, node, { hydrate: false });
20
+ }
21
+ function unmountReactRoot(root) {
22
+ const existing = roots.get(root);
23
+ if (!existing)
24
+ return false;
25
+ existing.unmount();
26
+ roots.delete(root);
27
+ return true;
28
+ }
29
+ async function mountLiveIsland(options) {
30
+ const target = typeof options.root === "string"
31
+ ? document.getElementById(options.root.replace(/^#/, ""))
32
+ : options.root;
33
+ if (!(target instanceof Element))
34
+ return null;
35
+ const state = options.stateId
36
+ ? readJsonScript(options.stateId, {})
37
+ : options.initialState || {};
38
+ const react = await import("react");
39
+ const node = react.createElement(options.component, { initialState: state });
40
+ const root = await mountReactRoot(target, node, {
41
+ hydrate: target.childNodes.length > 0,
42
+ });
43
+ target.setAttribute("data-tbf-live-hydrated", "true");
44
+ return root;
45
+ }
46
+ export { mountLiveIsland, mountReactRoot, readJsonScript, renderReactRoot, unmountReactRoot, };
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C,MAAM,KAAK,GAAG,IAAI,OAAO,EAAuE,CAAC;AAEjG,KAAK,UAAU,cAAc,CAC3B,IAAa,EACb,IAAe,EACf,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI;QACtC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAW,CAAC;QACvC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,IAAW,CAAC,CAAC;IAC1D,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAa,EAAE,IAAe;IAC3D,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAK9B;IACC,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAC9B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO;QAC3B,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;QAC9C,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type BindRoot } from "../../dom/index.d.ts";
2
+ import type { ActionJson, SubmitActionButtonOptions } from "./types.js";
3
+ declare const ACTION_BUTTON_SELECTOR = "[data-tbf-submit],[data-tbf-action-url]";
4
+ declare function submitActionButton(button: HTMLElement, event?: Event, options?: SubmitActionButtonOptions): Promise<ActionJson>;
5
+ declare function bindActionButton(button: HTMLElement | null, options?: SubmitActionButtonOptions): boolean;
6
+ declare function bindActionButtons(root?: BindRoot, options?: SubmitActionButtonOptions): void;
7
+ export { ACTION_BUTTON_SELECTOR, bindActionButton, bindActionButtons, submitActionButton, };
8
+ //# sourceMappingURL=buttons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../../src/actions/buttons.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAExE,QAAA,MAAM,sBAAsB,4CACe,CAAC;AAqE5C,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,GAAE,yBAA8B,uBAmCxC;AAED,iBAAS,gBAAgB,CACvB,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,OAAO,GAAE,yBAA8B,WASxC;AAED,iBAAS,iBAAiB,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,yBAA8B,QAI5F;AAED,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { queryAll, readDataJson, setControlDisabled, } from "../../dom/index.js";
2
+ import { flash as defaultFlash } from "../../flash/index.js";
3
+ import { maybeFireActionSuccessConfetti } from "./confetti.js";
4
+ import { handleJson } from "./request.js";
5
+ import { actionResponseOk } from "./response.js";
6
+ const ACTION_BUTTON_SELECTOR = "[data-tbf-submit],[data-tbf-action-url]";
7
+ const boundButtons = new WeakMap();
8
+ function buttonUrl(button, options) {
9
+ return String(options.url || button.getAttribute("data-tbf-action-url") || "").trim();
10
+ }
11
+ function buttonMethod(button, options) {
12
+ return String(options.method || button.getAttribute("data-tbf-action-method") || "post").toUpperCase();
13
+ }
14
+ function readButtonBody(button, options) {
15
+ if (options.body !== undefined)
16
+ return options.body;
17
+ return readDataJson(button, "data-tbf-action-body", {});
18
+ }
19
+ function dispatchActionButtonEvent(button, name, detail, cancelable = false) {
20
+ const event = new CustomEvent(name, {
21
+ bubbles: true,
22
+ cancelable,
23
+ detail: { ...detail, button },
24
+ });
25
+ button.dispatchEvent(event);
26
+ return event;
27
+ }
28
+ async function confirmActionButton(button, options) {
29
+ const configured = options.confirm === true || button.hasAttribute("data-tbf-confirm");
30
+ if (!configured && !button.hasAttribute("data-tbf-confirm-title"))
31
+ return true;
32
+ const detail = { button, confirm: null };
33
+ const event = dispatchActionButtonEvent(button, "tbf:action-confirm", detail, true);
34
+ if (event.defaultPrevented)
35
+ return false;
36
+ if (detail.confirm !== null && detail.confirm !== undefined) {
37
+ const value = typeof detail.confirm === "function" ? detail.confirm() : detail.confirm;
38
+ return Boolean(await value);
39
+ }
40
+ const flashApi = options.adapters?.flash || defaultFlash;
41
+ return await flashApi.confirmElement?.(button, button);
42
+ }
43
+ async function resolveCustomActionButtonRequest(button, options) {
44
+ if (typeof options.request === "function") {
45
+ return { handled: true, json: await options.request() };
46
+ }
47
+ const detail = { button, handled: false, json: null, request: null };
48
+ const event = dispatchActionButtonEvent(button, "tbf:action-request", detail, true);
49
+ if (!event.defaultPrevented && !detail.handled && detail.request == null) {
50
+ return { handled: false, json: null };
51
+ }
52
+ if (typeof detail.request === "function") {
53
+ return { handled: true, json: await detail.request() };
54
+ }
55
+ if (detail.request && typeof detail.request.then === "function") {
56
+ return { handled: true, json: await detail.request };
57
+ }
58
+ return { handled: true, json: detail.json };
59
+ }
60
+ async function submitActionButton(button, event, options = {}) {
61
+ event?.preventDefault();
62
+ event?.stopImmediatePropagation();
63
+ if (!(await confirmActionButton(button, options)))
64
+ return null;
65
+ const wasDisabled = button.hasAttribute("disabled") || button.disabled === true;
66
+ let json = null;
67
+ setControlDisabled(button, true);
68
+ try {
69
+ dispatchActionButtonEvent(button, "tbf:action-submit", {});
70
+ const custom = await resolveCustomActionButtonRequest(button, options);
71
+ json = custom.handled
72
+ ? custom.json
73
+ : await handleJson(buttonUrl(button, options), {
74
+ adapters: options.adapters,
75
+ body: readButtonBody(button, options),
76
+ method: buttonMethod(button, options),
77
+ ui: options.ui,
78
+ });
79
+ const ok = actionResponseOk(json);
80
+ if (ok)
81
+ maybeFireActionSuccessConfetti(button, options.successConfetti === true);
82
+ dispatchActionButtonEvent(button, "tbf:action-complete", { json, ok });
83
+ return json;
84
+ }
85
+ catch (error) {
86
+ dispatchActionButtonEvent(button, "tbf:action-complete", {
87
+ error,
88
+ json: null,
89
+ ok: false,
90
+ });
91
+ throw error;
92
+ }
93
+ finally {
94
+ if (!wasDisabled && options.keepDisabled?.(json) !== true) {
95
+ setControlDisabled(button, false);
96
+ }
97
+ }
98
+ }
99
+ function bindActionButton(button, options = {}) {
100
+ if (!(button instanceof HTMLElement) || boundButtons.has(button))
101
+ return false;
102
+ const handler = (event) => {
103
+ if (!event.defaultPrevented)
104
+ void submitActionButton(button, event, options);
105
+ };
106
+ button.addEventListener("click", handler);
107
+ boundButtons.set(button, handler);
108
+ return true;
109
+ }
110
+ function bindActionButtons(root = document, options = {}) {
111
+ queryAll(root, ACTION_BUTTON_SELECTOR).forEach((button) => {
112
+ bindActionButton(button, options);
113
+ });
114
+ }
115
+ export { ACTION_BUTTON_SELECTOR, bindActionButton, bindActionButtons, submitActionButton, };
116
+ //# sourceMappingURL=buttons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../src/actions/buttons.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ButtonHTMLAttributes, FormHTMLAttributes, HTMLAttributes, ReactNode } from "react";
2
+ type ActionFormProps = FormHTMLAttributes<HTMLFormElement> & {
3
+ actionConfig?: Record<string, unknown>;
4
+ children?: ReactNode;
5
+ confirm?: boolean;
6
+ jsonBody?: boolean;
7
+ silent?: boolean;
8
+ successConfetti?: boolean;
9
+ };
10
+ type ActionButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
11
+ actionBody?: Record<string, unknown>;
12
+ actionMethod?: string;
13
+ actionUrl?: string;
14
+ confirm?: boolean;
15
+ successConfetti?: boolean;
16
+ };
17
+ type ActionTriggerProps = HTMLAttributes<HTMLButtonElement> & {
18
+ action: string;
19
+ href?: string;
20
+ };
21
+ declare function ActionForm(props: ActionFormProps): import("react").JSX.Element;
22
+ declare function ActionButton(props: ActionButtonProps): import("react").JSX.Element;
23
+ declare function ActionTrigger(props: ActionTriggerProps): import("react").JSX.Element;
24
+ export { ActionButton, ActionForm, ActionTrigger };
25
+ export type { ActionButtonProps, ActionFormProps, ActionTriggerProps };
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/actions/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACV,MAAM,OAAO,CAAC;AAGf,KAAK,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,GAAG;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,kBAAkB,GAAG,cAAc,CAAC,iBAAiB,CAAC,GAAG;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAWF,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,+BA8BzC;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BA0B7C;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAe/C;AAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames, dataBool, jsonScript } from "../../../components/index.js";
3
+ function actionConfig(props) {
4
+ return {
5
+ ...(props.actionConfig || {}),
6
+ ...(props.jsonBody ? { body: "json" } : {}),
7
+ ...(props.silent ? { silent: true } : {}),
8
+ ...(props.successConfetti ? { successConfetti: true } : {}),
9
+ };
10
+ }
11
+ function ActionForm(props) {
12
+ const { actionConfig: _actionConfig, children, className, confirm, jsonBody: _jsonBody, silent: _silent, successConfetti: _successConfetti, ...rest } = props;
13
+ const config = actionConfig(props);
14
+ return (_jsxs("form", { ...rest, className: classNames("tbf-form", className), "data-tbf-action": "", "data-tbf-confirm": dataBool(confirm), children: [Object.keys(config).length ? (_jsx("script", { "data-tbf-action-config": "", hidden: true, type: "application/json", dangerouslySetInnerHTML: { __html: jsonScript(config) } })) : null, children] }));
15
+ }
16
+ function ActionButton(props) {
17
+ const { actionBody, actionMethod, actionUrl, children, className, confirm, successConfetti, type = "button", ...rest } = props;
18
+ return (_jsx("button", { ...rest, className: classNames("tbf-button", className), "data-tbf-action-body": actionBody ? jsonScript(actionBody) : undefined, "data-tbf-action-method": actionMethod, "data-tbf-action-url": actionUrl, "data-tbf-confetti": dataBool(successConfetti), "data-tbf-confirm": dataBool(confirm), type: type, children: children }));
19
+ }
20
+ function ActionTrigger(props) {
21
+ const { action, children, className, href, role, tabIndex, ...rest } = props;
22
+ return (_jsx("button", { ...rest, className: classNames("tbf-action-trigger", className), "data-tbf-action-trigger": action, "data-tbf-href": href, role: role, tabIndex: tabIndex, type: "button", children: children }));
23
+ }
24
+ export { ActionButton, ActionForm, ActionTrigger };
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/components/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwBjE,SAAS,YAAY,CAAC,KAAsB;IAC1C,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EACJ,YAAY,EAAE,aAAa,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,gBAAgB,EACjC,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IACV,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,CACL,mBACM,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,qBAC5B,EAAE,sBACA,QAAQ,CAAC,OAAO,CAAC,aAElC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAC5B,2CACyB,EAAE,EACzB,MAAM,QACN,IAAI,EAAC,kBAAkB,EACvB,uBAAuB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GACvD,CACH,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IACJ,CACR,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,eAAe,EACf,IAAI,GAAG,QAAQ,EACf,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IACV,OAAO,CACL,oBACM,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,0BACxB,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,4BAC7C,YAAY,yBACf,SAAS,uBACX,QAAQ,CAAC,eAAe,CAAC,sBAC1B,QAAQ,CAAC,OAAO,CAAC,EACnC,IAAI,EAAE,IAAI,YAET,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7E,OAAO,CACL,oBACM,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,6BAC7B,MAAM,mBAChB,IAAI,EACnB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,YAEZ,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ declare const CONFETTI_EVENT = "tbf:confetti";
2
+ declare const CONFETTI_SELECTOR = "[data-tbf-confetti=\"true\"],[data-tbf-confetti=\"1\"]";
3
+ type ConfettiOptions = {
4
+ durationMs?: number;
5
+ particles?: number;
6
+ };
7
+ declare function shouldFireActionSuccessConfetti(trigger: HTMLElement | null, configured?: boolean): boolean;
8
+ declare function fireSuccessConfetti(options?: ConfettiOptions): boolean;
9
+ declare function maybeFireActionSuccessConfetti(trigger: HTMLElement | null, configured?: boolean, options?: ConfettiOptions): boolean;
10
+ export { CONFETTI_EVENT, CONFETTI_SELECTOR, fireSuccessConfetti, maybeFireActionSuccessConfetti, shouldFireActionSuccessConfetti, };
11
+ export type { ConfettiOptions };
12
+ //# sourceMappingURL=confetti.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confetti.d.ts","sourceRoot":"","sources":["../../../src/actions/confetti.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,iBAAiB,CAAC;AACtC,QAAA,MAAM,iBAAiB,2DAAuD,CAAC;AAE/E,KAAK,eAAe,GAAG;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAS,+BAA+B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,UAAQ,WAGvF;AAED,iBAAS,mBAAmB,CAAC,OAAO,GAAE,eAAoB,WAsBzD;AAED,iBAAS,8BAA8B,CACrC,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,UAAU,UAAQ,EAClB,OAAO,GAAE,eAAoB,WAI9B;AAED,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,GAChC,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,36 @@
1
+ const CONFETTI_EVENT = "tbf:confetti";
2
+ const CONFETTI_SELECTOR = '[data-tbf-confetti="true"],[data-tbf-confetti="1"]';
3
+ function shouldFireActionSuccessConfetti(trigger, configured = false) {
4
+ if (configured)
5
+ return true;
6
+ return Boolean(trigger && trigger.matches(CONFETTI_SELECTOR));
7
+ }
8
+ function fireSuccessConfetti(options = {}) {
9
+ if (typeof document === "undefined")
10
+ return false;
11
+ const particles = Math.max(8, Math.min(80, Number(options.particles) || 36));
12
+ const layer = document.createElement("div");
13
+ layer.className = "tbf-confetti";
14
+ layer.setAttribute("aria-hidden", "true");
15
+ for (let index = 0; index < particles; index += 1) {
16
+ const piece = document.createElement("i");
17
+ piece.style.setProperty("--x", `${Math.random() * 100}vw`);
18
+ piece.style.setProperty("--d", `${Math.random() * 0.7 + 0.4}s`);
19
+ piece.style.setProperty("--r", `${Math.random() * 360}deg`);
20
+ piece.style.setProperty("--tbf-confetti-hue", `${Math.floor(Math.random() * 360)}deg`);
21
+ layer.appendChild(piece);
22
+ }
23
+ document.body.appendChild(layer);
24
+ document.dispatchEvent(new CustomEvent(CONFETTI_EVENT, {
25
+ detail: { layer, options },
26
+ }));
27
+ window.setTimeout(() => layer.remove(), Number(options.durationMs) || 1400);
28
+ return true;
29
+ }
30
+ function maybeFireActionSuccessConfetti(trigger, configured = false, options = {}) {
31
+ if (!shouldFireActionSuccessConfetti(trigger, configured))
32
+ return false;
33
+ return fireSuccessConfetti(options);
34
+ }
35
+ export { CONFETTI_EVENT, CONFETTI_SELECTOR, fireSuccessConfetti, maybeFireActionSuccessConfetti, shouldFireActionSuccessConfetti, };
36
+ //# sourceMappingURL=confetti.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confetti.js","sourceRoot":"","sources":["../../../src/actions/confetti.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,cAAc,CAAC;AACtC,MAAM,iBAAiB,GAAG,oDAAoD,CAAC;AAO/E,SAAS,+BAA+B,CAAC,OAA2B,EAAE,UAAU,GAAG,KAAK;IACtF,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA2B,EAAE;IACxD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC;IACjC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAChE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QACvF,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,cAAc,EAAE;QAC9B,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;KAC3B,CAAC,CACH,CAAC;IACF,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CACrC,OAA2B,EAC3B,UAAU,GAAG,KAAK,EAClB,UAA2B,EAAE;IAE7B,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,GAChC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type BindRoot } from "../../dom/index.d.ts";
2
+ import type { SubmitActionFormOptions } from "./types.js";
3
+ declare const ACTION_FORM_SELECTOR = "form[data-tbf-action]";
4
+ declare const ACTION_CONFIG_SELECTOR = "script[type=\"application/json\"][data-tbf-action-config]";
5
+ declare function readActionFormConfig(form: HTMLFormElement): {
6
+ [x: string]: unknown;
7
+ };
8
+ declare function submitActionForm(form: HTMLFormElement, event?: SubmitEvent, options?: SubmitActionFormOptions): Promise<any>;
9
+ declare function bindActionForm(form: HTMLFormElement | null, options?: SubmitActionFormOptions): boolean;
10
+ declare function bindActionForms(root?: BindRoot, options?: SubmitActionFormOptions): void;
11
+ export { ACTION_CONFIG_SELECTOR, ACTION_FORM_SELECTOR, bindActionForm, bindActionForms, readActionFormConfig, submitActionForm, };
12
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/actions/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,oBAAoB,0BAA0B,CAAC;AACrD,QAAA,MAAM,sBAAsB,8DAC+B,CAAC;AAW5D,iBAAS,oBAAoB,CAAC,IAAI,EAAE,eAAe;;EAKlD;AA8GD,iBAAe,gBAAgB,CAC7B,IAAI,EAAE,eAAe,EACrB,KAAK,CAAC,EAAE,WAAW,EACnB,OAAO,GAAE,uBAA4B,gBA+CtC;AAED,iBAAS,cAAc,CACrB,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,OAAO,GAAE,uBAA4B,WAStC;AAED,iBAAS,eAAe,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,uBAA4B,QAIxF;AAED,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { formDataFlatRecord, formDataSearchParams, queryAll, readDataJson, readElementJson, setControlDisabled, } from "../../dom/index.js";
2
+ import { ensureFormCsrfToken } from "../../http/index.js";
3
+ import { flash as defaultFlash } from "../../flash/index.js";
4
+ import { maybeFireActionSuccessConfetti } from "./confetti.js";
5
+ import { handleJson } from "./request.js";
6
+ import { actionResponseOk } from "./response.js";
7
+ const ACTION_FORM_SELECTOR = "form[data-tbf-action]";
8
+ const ACTION_CONFIG_SELECTOR = 'script[type="application/json"][data-tbf-action-config]';
9
+ const boundForms = new WeakMap();
10
+ function submitterFor(event) {
11
+ return event?.submitter instanceof HTMLElement ? event.submitter : null;
12
+ }
13
+ function submitterAttr(submitter, attr) {
14
+ return String(submitter?.getAttribute(attr) || "").trim();
15
+ }
16
+ function readActionFormConfig(form) {
17
+ return {
18
+ ...readElementJson(form, ACTION_CONFIG_SELECTOR, {}),
19
+ ...readDataJson(form, "data-tbf-action-config", {}),
20
+ };
21
+ }
22
+ function resolveSubmitAction(form, submitter) {
23
+ return submitterAttr(submitter, "formaction") || form.action;
24
+ }
25
+ function resolveSubmitMethod(form, submitter) {
26
+ return (submitterAttr(submitter, "formmethod") ||
27
+ String(form.getAttribute("method") || form.method || "post")).toUpperCase();
28
+ }
29
+ function resolveSubmitEnctype(form, submitter) {
30
+ return (submitterAttr(submitter, "formenctype") ||
31
+ String(form.getAttribute("enctype") || form.enctype || "")).toLowerCase();
32
+ }
33
+ function formDataFromSubmit(form, submitter) {
34
+ const data = new FormData(form);
35
+ if (submitter instanceof HTMLButtonElement &&
36
+ submitter.name &&
37
+ submitter.value &&
38
+ !data.has(submitter.name)) {
39
+ data.append(submitter.name, submitter.value);
40
+ }
41
+ return data;
42
+ }
43
+ function createSubmitBody(form, submitter, config) {
44
+ const data = formDataFromSubmit(form, submitter);
45
+ if (config.body === "json")
46
+ return formDataFlatRecord(data);
47
+ return resolveSubmitEnctype(form, submitter) === "multipart/form-data"
48
+ ? data
49
+ : formDataSearchParams(data);
50
+ }
51
+ function dispatchActionFormEvent(form, name, detail, cancelable = false) {
52
+ const event = new CustomEvent(name, {
53
+ bubbles: true,
54
+ cancelable,
55
+ detail: { ...detail, form },
56
+ });
57
+ form.dispatchEvent(event);
58
+ return event;
59
+ }
60
+ async function confirmActionForm(form, submitter, options) {
61
+ const configured = options.confirm === true || form.hasAttribute("data-tbf-confirm");
62
+ if (!configured && !form.hasAttribute("data-tbf-confirm-title"))
63
+ return true;
64
+ const detail = { confirm: null, form, submitter };
65
+ const event = dispatchActionFormEvent(form, "tbf:action-confirm", detail, true);
66
+ if (event.defaultPrevented)
67
+ return false;
68
+ if (detail.confirm !== null && detail.confirm !== undefined) {
69
+ const value = typeof detail.confirm === "function" ? detail.confirm() : detail.confirm;
70
+ return Boolean(await value);
71
+ }
72
+ const flashApi = options.adapters?.flash || defaultFlash;
73
+ return await flashApi.confirmElement?.(submitter, form);
74
+ }
75
+ async function resolveCustomActionFormRequest(form, submitter, options) {
76
+ if (typeof options.request === "function") {
77
+ return { handled: true, json: await options.request(form, submitter) };
78
+ }
79
+ const detail = { form, handled: false, json: null, request: null, submitter };
80
+ const event = dispatchActionFormEvent(form, "tbf:action-request", detail, true);
81
+ if (!event.defaultPrevented && !detail.handled && detail.request == null) {
82
+ return { handled: false, json: null };
83
+ }
84
+ if (typeof detail.request === "function") {
85
+ return { handled: true, json: await detail.request() };
86
+ }
87
+ if (detail.request && typeof detail.request.then === "function") {
88
+ return { handled: true, json: await detail.request };
89
+ }
90
+ return { handled: true, json: detail.json };
91
+ }
92
+ function formUi(options, config) {
93
+ return {
94
+ ...(options.ui || {}),
95
+ ignoreResponseAction: options.ui?.ignoreResponseAction === true ||
96
+ config.ignoreResponseAction === true,
97
+ silent: options.ui?.silent === true || config.silent === true,
98
+ };
99
+ }
100
+ async function submitActionForm(form, event, options = {}) {
101
+ event?.preventDefault();
102
+ event?.stopImmediatePropagation();
103
+ const submitter = submitterFor(event);
104
+ if (!(await confirmActionForm(form, submitter, options)))
105
+ return null;
106
+ const config = readActionFormConfig(form);
107
+ setControlDisabled(submitter, true);
108
+ try {
109
+ ensureFormCsrfToken(form);
110
+ options.beforeSubmit?.(form, submitter);
111
+ dispatchActionFormEvent(form, "tbf:action-submit", { submitter });
112
+ const custom = await resolveCustomActionFormRequest(form, submitter, options);
113
+ const json = custom.handled
114
+ ? custom.json
115
+ : await handleJson(resolveSubmitAction(form, submitter), {
116
+ adapters: options.adapters,
117
+ body: createSubmitBody(form, submitter, config),
118
+ method: resolveSubmitMethod(form, submitter),
119
+ ui: formUi(options, config),
120
+ }, formUi(options, config));
121
+ const ok = actionResponseOk(json);
122
+ if (ok) {
123
+ maybeFireActionSuccessConfetti(submitter || form, config.successConfetti === true);
124
+ }
125
+ options.onComplete?.(ok, json);
126
+ dispatchActionFormEvent(form, "tbf:action-complete", { json, ok, submitter });
127
+ return json;
128
+ }
129
+ catch (error) {
130
+ options.onComplete?.(false, { ok: false });
131
+ dispatchActionFormEvent(form, "tbf:action-complete", {
132
+ error,
133
+ json: null,
134
+ ok: false,
135
+ submitter,
136
+ });
137
+ throw error;
138
+ }
139
+ finally {
140
+ setControlDisabled(submitter, false);
141
+ }
142
+ }
143
+ function bindActionForm(form, options = {}) {
144
+ if (!(form instanceof HTMLFormElement) || boundForms.has(form))
145
+ return false;
146
+ const handler = ((event) => {
147
+ void submitActionForm(form, event, options);
148
+ });
149
+ form.addEventListener("submit", handler, true);
150
+ boundForms.set(form, handler);
151
+ return true;
152
+ }
153
+ function bindActionForms(root = document, options = {}) {
154
+ queryAll(root, ACTION_FORM_SELECTOR).forEach((form) => {
155
+ bindActionForm(form, options);
156
+ });
157
+ }
158
+ export { ACTION_CONFIG_SELECTOR, ACTION_FORM_SELECTOR, bindActionForm, bindActionForms, readActionFormConfig, submitActionForm, };
159
+ //# sourceMappingURL=forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/actions/forms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { CONFETTI_EVENT, CONFETTI_SELECTOR, fireSuccessConfetti, maybeFireActionSuccessConfetti, shouldFireActionSuccessConfetti, } from "./confetti.js";
2
+ export { ACTION_BUTTON_SELECTOR, bindActionButton, bindActionButtons, submitActionButton, } from "./buttons.js";
3
+ export { ACTION_CONFIG_SELECTOR, ACTION_FORM_SELECTOR, bindActionForm, bindActionForms, readActionFormConfig, submitActionForm, } from "./forms.js";
4
+ export { ACTION_TRIGGER_SELECTOR, bindActionTrigger, bindActionTriggers, dispatchAction, on, unbindActionTrigger, } from "./triggers.js";
5
+ export { handleJson, handleXhrJson, networkFailure, requestJsonPayload, } from "./request.js";
6
+ export { actionResponseOk, computeFlashMeta, handleResponseAction, isNoop, pickResponseAction, scheduleRedirectOrReload, shouldShowFlash, showResponseFlash, } from "./response.js";
7
+ export type { ActionAdapters, ActionFlashMeta, ActionJson, ActionRequestUi, SubmitActionButtonOptions, SubmitActionFormOptions, } from "./types.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,EAAE,EACF,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACV,eAAe,EACf,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { CONFETTI_EVENT, CONFETTI_SELECTOR, fireSuccessConfetti, maybeFireActionSuccessConfetti, shouldFireActionSuccessConfetti, } from "./confetti.js";
2
+ export { ACTION_BUTTON_SELECTOR, bindActionButton, bindActionButtons, submitActionButton, } from "./buttons.js";
3
+ export { ACTION_CONFIG_SELECTOR, ACTION_FORM_SELECTOR, bindActionForm, bindActionForms, readActionFormConfig, submitActionForm, } from "./forms.js";
4
+ export { ACTION_TRIGGER_SELECTOR, bindActionTrigger, bindActionTriggers, dispatchAction, on, unbindActionTrigger, } from "./triggers.js";
5
+ export { handleJson, handleXhrJson, networkFailure, requestJsonPayload, } from "./request.js";
6
+ export { actionResponseOk, computeFlashMeta, handleResponseAction, isNoop, pickResponseAction, scheduleRedirectOrReload, shouldShowFlash, showResponseFlash, } from "./response.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,EAAE,EACF,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ActionAdapters, ActionJson, ActionRequestUi } from "./types.js";
2
+ type ActionRequestOptions = Omit<RequestInit, "body"> & {
3
+ adapters?: ActionAdapters;
4
+ body?: BodyInit | Record<string, unknown> | null;
5
+ ui?: ActionRequestUi;
6
+ };
7
+ declare function networkFailure(): ActionJson;
8
+ declare function handleJson(url: string, options?: ActionRequestOptions, ui?: ActionRequestUi): Promise<any>;
9
+ declare function handleXhrJson(url: string, body: FormData, options?: ActionRequestOptions, onProgress?: (event: ProgressEvent) => void): Promise<ActionJson>;
10
+ declare function requestJsonPayload(url: string, options?: ActionRequestOptions): Promise<any>;
11
+ export { handleJson, handleXhrJson, networkFailure, requestJsonPayload, };
12
+ export type { ActionRequestOptions };
13
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/actions/request.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9E,KAAK,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;IACtD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,iBAAS,cAAc,IAAI,UAAU,CASpC;AAED,iBAAe,UAAU,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,EAClC,EAAE,GAAE,eAAoB,gBAgBzB;AAkBD,iBAAS,aAAa,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE,oBAAyB,EAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,uBA6B5C;AAED,iBAAe,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,gBAGhF;AAED,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,CAAC;AACF,YAAY,EAAE,oBAAoB,EAAE,CAAC"}