geoiq-frontend-ui-kit 2.0.3 → 2.0.4

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 (505) hide show
  1. package/dist/components/atoms/accordion/accordion.d.ts +1 -2
  2. package/dist/components/atoms/accordion/accordion.d.ts.map +1 -1
  3. package/dist/components/atoms/avatar/avatar.d.ts +1 -2
  4. package/dist/components/atoms/avatar/avatar.d.ts.map +1 -1
  5. package/dist/components/atoms/badge/badge.d.ts +2 -2
  6. package/dist/components/atoms/badge/badge.d.ts.map +1 -1
  7. package/dist/components/atoms/skeleton/skeleton.d.ts +1 -1
  8. package/dist/components/atoms/skeleton/skeleton.d.ts.map +1 -1
  9. package/dist/components/atoms/tooltip/tooltip.d.ts +2 -2
  10. package/dist/components/atoms/tooltip/tooltip.d.ts.map +1 -1
  11. package/dist/components/molecules/breadcrumb/breadcrumb-components.d.ts +2 -2
  12. package/dist/components/molecules/breadcrumb/breadcrumb.d.ts +1 -2
  13. package/dist/components/molecules/breadcrumb/breadcrumb.d.ts.map +1 -1
  14. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts +1 -2
  15. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts.map +1 -1
  16. package/dist/components/molecules/dropdown-menu/dropdown-menu-components.d.ts +1 -1
  17. package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts +1 -2
  18. package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  19. package/dist/components/molecules/multi-combobox/index.d.ts +2 -2
  20. package/dist/components/molecules/multi-combobox/index.d.ts.map +1 -1
  21. package/dist/components/molecules/multi-select/index.d.ts +2 -2
  22. package/dist/components/molecules/multi-select/index.d.ts.map +1 -1
  23. package/dist/components/molecules/pagination/pagination-components.d.ts +4 -4
  24. package/dist/components/molecules/single-combobox/single-combobox.d.ts +2 -2
  25. package/dist/components/molecules/single-combobox/single-combobox.d.ts.map +1 -1
  26. package/dist/components/molecules/stepper/stepper-components.d.ts +1 -1
  27. package/dist/components/molecules/stepper/stepper-components.d.ts.map +1 -1
  28. package/dist/components/molecules/stepper/stepper.d.ts +1 -2
  29. package/dist/components/molecules/stepper/stepper.d.ts.map +1 -1
  30. package/dist/components/molecules/stepper/stepper.mock.d.ts +2 -2
  31. package/dist/components/molecules/stepper/stepper.mock.d.ts.map +1 -1
  32. package/dist/components/molecules/swatch-grid/swatch-grid.d.ts +1 -2
  33. package/dist/components/molecules/swatch-grid/swatch-grid.d.ts.map +1 -1
  34. package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts +1 -3
  35. package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts.map +1 -1
  36. package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts +1 -3
  37. package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts.map +1 -1
  38. package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts +1 -3
  39. package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts.map +1 -1
  40. package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts +1 -3
  41. package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts.map +1 -1
  42. package/dist/components/molecules/toast/toast-components.d.ts +1 -1
  43. package/dist/components/molecules/toast/toast.d.ts +1 -2
  44. package/dist/components/molecules/toast/toast.d.ts.map +1 -1
  45. package/dist/components/molecules/toggle-multi-select/index.d.ts +2 -2
  46. package/dist/components/molecules/toggle-multi-select/index.d.ts.map +1 -1
  47. package/dist/components/organisms/alert-dialog/alert-dialog-components.d.ts +2 -2
  48. package/dist/components/organisms/alert-dialog/alert-dialog.d.ts +1 -2
  49. package/dist/components/organisms/alert-dialog/alert-dialog.d.ts.map +1 -1
  50. package/dist/components/organisms/dialog/dialog-components.d.ts +2 -2
  51. package/dist/components/organisms/dialog/dialog.d.ts +1 -2
  52. package/dist/components/organisms/dialog/dialog.d.ts.map +1 -1
  53. package/dist/components/organisms/image-editor/components/color-picker.d.ts +1 -3
  54. package/dist/components/organisms/image-editor/components/color-picker.d.ts.map +1 -1
  55. package/dist/components/organisms/image-editor/components/layers-list.d.ts +1 -2
  56. package/dist/components/organisms/image-editor/components/layers-list.d.ts.map +1 -1
  57. package/dist/components/organisms/image-editor/components/line-session-bar.d.ts +20 -0
  58. package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -0
  59. package/dist/components/organisms/image-editor/components/panel-adjust.d.ts +1 -2
  60. package/dist/components/organisms/image-editor/components/panel-adjust.d.ts.map +1 -1
  61. package/dist/components/organisms/image-editor/components/panel-crop.d.ts +1 -2
  62. package/dist/components/organisms/image-editor/components/panel-crop.d.ts.map +1 -1
  63. package/dist/components/organisms/image-editor/components/panel-insert.d.ts +1 -2
  64. package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
  65. package/dist/components/organisms/image-editor/components/panel-selected.d.ts +1 -2
  66. package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
  67. package/dist/components/organisms/image-editor/components/panel.d.ts +1 -2
  68. package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
  69. package/dist/components/organisms/image-editor/components/ribbon.d.ts +1 -2
  70. package/dist/components/organisms/image-editor/components/ribbon.d.ts.map +1 -1
  71. package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +9 -0
  72. package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -0
  73. package/dist/components/organisms/image-editor/components/status-bar.d.ts +1 -2
  74. package/dist/components/organisms/image-editor/components/status-bar.d.ts.map +1 -1
  75. package/dist/components/organisms/image-editor/image-editor-modal.d.ts +1 -2
  76. package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
  77. package/dist/components/organisms/image-editor/image-editor.types.d.ts +73 -0
  78. package/dist/components/organisms/image-editor/image-editor.types.d.ts.map +1 -1
  79. package/dist/components/organisms/image-editor/use-image-editor.d.ts.map +1 -1
  80. package/dist/components/organisms/sheet/sheet-components.d.ts +2 -2
  81. package/dist/components/organisms/sheet/sheet.d.ts +1 -2
  82. package/dist/components/organisms/sheet/sheet.d.ts.map +1 -1
  83. package/dist/components/organisms/sidebar/sidebar.d.ts +1 -2
  84. package/dist/components/organisms/sidebar/sidebar.d.ts.map +1 -1
  85. package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts +1 -1
  86. package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts.map +1 -1
  87. package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts +1 -2
  88. package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts.map +1 -1
  89. package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts +1 -2
  90. package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts.map +1 -1
  91. package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts +1 -2
  92. package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts.map +1 -1
  93. package/dist/components/ui/star-score/star-score.d.ts +1 -2
  94. package/dist/components/ui/star-score/star-score.d.ts.map +1 -1
  95. package/dist/components/unstyled/calendar/calendar.d.ts +1 -1
  96. package/dist/components/unstyled/calendar/calendar.d.ts.map +1 -1
  97. package/dist/components/unstyled/command/index.d.ts +2 -2
  98. package/dist/components/unstyled/command/index.d.ts.map +1 -1
  99. package/dist/components/unstyled/date-picker/date-picker.d.ts +2 -2
  100. package/dist/components/unstyled/date-picker/date-picker.d.ts.map +1 -1
  101. package/dist/components/unstyled/hover-card/hover-card.d.ts +1 -2
  102. package/dist/components/unstyled/hover-card/hover-card.d.ts.map +1 -1
  103. package/dist/components/unstyled/popover/popover.d.ts +1 -2
  104. package/dist/components/unstyled/popover/popover.d.ts.map +1 -1
  105. package/dist/components/unstyled/table/table.d.ts +2 -2
  106. package/dist/components/unstyled/table/table.d.ts.map +1 -1
  107. package/dist/index.es.js +88 -88
  108. package/dist/{index10.es.js → index.es10.js} +3 -3
  109. package/dist/{index10.es.js.map → index.es10.js.map} +1 -1
  110. package/dist/index.es100.js +152 -0
  111. package/dist/index.es100.js.map +1 -0
  112. package/dist/{index101.es.js → index.es101.js} +1 -1
  113. package/dist/{index101.es.js.map → index.es101.js.map} +1 -1
  114. package/dist/{index136.es.js → index.es102.js} +1 -1
  115. package/dist/{index136.es.js.map → index.es102.js.map} +1 -1
  116. package/dist/{index133.es.js → index.es103.js} +1 -1
  117. package/dist/{index133.es.js.map → index.es103.js.map} +1 -1
  118. package/dist/{index134.es.js → index.es104.js} +1 -1
  119. package/dist/{index134.es.js.map → index.es104.js.map} +1 -1
  120. package/dist/{index135.es.js → index.es105.js} +3 -3
  121. package/dist/{index135.es.js.map → index.es105.js.map} +1 -1
  122. package/dist/{index97.es.js → index.es106.js} +1 -1
  123. package/dist/index.es106.js.map +1 -0
  124. package/dist/{index107.es.js → index.es107.js} +5 -5
  125. package/dist/{index107.es.js.map → index.es107.js.map} +1 -1
  126. package/dist/{index99.es.js → index.es108.js} +1 -1
  127. package/dist/index.es108.js.map +1 -0
  128. package/dist/{index103.es.js → index.es109.js} +2 -2
  129. package/dist/{index103.es.js.map → index.es109.js.map} +1 -1
  130. package/dist/{index11.es.js → index.es11.js} +4 -4
  131. package/dist/{index11.es.js.map → index.es11.js.map} +1 -1
  132. package/dist/{index115.es.js → index.es110.js} +2 -2
  133. package/dist/{index115.es.js.map → index.es110.js.map} +1 -1
  134. package/dist/{index116.es.js → index.es111.js} +6 -6
  135. package/dist/{index116.es.js.map → index.es111.js.map} +1 -1
  136. package/dist/{index98.es.js → index.es112.js} +1 -1
  137. package/dist/index.es112.js.map +1 -0
  138. package/dist/{index106.es.js → index.es113.js} +1 -1
  139. package/dist/{index106.es.js.map → index.es113.js.map} +1 -1
  140. package/dist/{index132.es.js → index.es114.js} +3 -3
  141. package/dist/{index132.es.js.map → index.es114.js.map} +1 -1
  142. package/dist/{index130.es.js → index.es115.js} +3 -3
  143. package/dist/{index130.es.js.map → index.es115.js.map} +1 -1
  144. package/dist/{index128.es.js → index.es116.js} +1 -1
  145. package/dist/{index128.es.js.map → index.es116.js.map} +1 -1
  146. package/dist/{index129.es.js → index.es117.js} +5 -5
  147. package/dist/{index129.es.js.map → index.es117.js.map} +1 -1
  148. package/dist/{index108.es.js → index.es118.js} +1 -1
  149. package/dist/{index108.es.js.map → index.es118.js.map} +1 -1
  150. package/dist/{index105.es.js → index.es119.js} +1 -1
  151. package/dist/{index105.es.js.map → index.es119.js.map} +1 -1
  152. package/dist/{index12.es.js → index.es12.js} +3 -3
  153. package/dist/{index12.es.js.map → index.es12.js.map} +1 -1
  154. package/dist/{index121.es.js → index.es120.js} +4 -4
  155. package/dist/{index121.es.js.map → index.es120.js.map} +1 -1
  156. package/dist/{index122.es.js → index.es121.js} +3 -3
  157. package/dist/{index122.es.js.map → index.es121.js.map} +1 -1
  158. package/dist/{index123.es.js → index.es122.js} +3 -3
  159. package/dist/{index123.es.js.map → index.es122.js.map} +1 -1
  160. package/dist/{index124.es.js → index.es123.js} +3 -3
  161. package/dist/{index124.es.js.map → index.es123.js.map} +1 -1
  162. package/dist/{index125.es.js → index.es124.js} +10 -10
  163. package/dist/{index125.es.js.map → index.es124.js.map} +1 -1
  164. package/dist/{index126.es.js → index.es125.js} +10 -10
  165. package/dist/{index126.es.js.map → index.es125.js.map} +1 -1
  166. package/dist/{index127.es.js → index.es126.js} +5 -5
  167. package/dist/{index127.es.js.map → index.es126.js.map} +1 -1
  168. package/dist/{index110.es.js → index.es127.js} +4 -4
  169. package/dist/{index110.es.js.map → index.es127.js.map} +1 -1
  170. package/dist/{index111.es.js → index.es128.js} +4 -4
  171. package/dist/{index111.es.js.map → index.es128.js.map} +1 -1
  172. package/dist/{index112.es.js → index.es129.js} +5 -5
  173. package/dist/{index112.es.js.map → index.es129.js.map} +1 -1
  174. package/dist/{index13.es.js → index.es13.js} +3 -3
  175. package/dist/{index13.es.js.map → index.es13.js.map} +1 -1
  176. package/dist/{index113.es.js → index.es130.js} +2 -2
  177. package/dist/{index113.es.js.map → index.es130.js.map} +1 -1
  178. package/dist/{index114.es.js → index.es131.js} +3 -3
  179. package/dist/{index114.es.js.map → index.es131.js.map} +1 -1
  180. package/dist/{index109.es.js → index.es132.js} +1 -1
  181. package/dist/{index109.es.js.map → index.es132.js.map} +1 -1
  182. package/dist/{index100.es.js → index.es133.js} +1 -1
  183. package/dist/{index100.es.js.map → index.es133.js.map} +1 -1
  184. package/dist/{index102.es.js → index.es134.js} +2 -2
  185. package/dist/{index102.es.js.map → index.es134.js.map} +1 -1
  186. package/dist/{index104.es.js → index.es135.js} +1 -1
  187. package/dist/{index104.es.js.map → index.es135.js.map} +1 -1
  188. package/dist/{index131.es.js → index.es136.js} +5 -5
  189. package/dist/{index131.es.js.map → index.es136.js.map} +1 -1
  190. package/dist/{index143.es.js → index.es137.js} +1 -1
  191. package/dist/{index143.es.js.map → index.es137.js.map} +1 -1
  192. package/dist/{index144.es.js → index.es138.js} +12 -11
  193. package/dist/index.es138.js.map +1 -0
  194. package/dist/{index145.es.js → index.es139.js} +3 -3
  195. package/dist/{index145.es.js.map → index.es139.js.map} +1 -1
  196. package/dist/{index14.es.js → index.es14.js} +2 -2
  197. package/dist/{index14.es.js.map → index.es14.js.map} +1 -1
  198. package/dist/{index146.es.js → index.es140.js} +2 -2
  199. package/dist/{index146.es.js.map → index.es140.js.map} +1 -1
  200. package/dist/index.es141.js +77 -0
  201. package/dist/index.es141.js.map +1 -0
  202. package/dist/{index147.es.js → index.es142.js} +1 -1
  203. package/dist/{index147.es.js.map → index.es142.js.map} +1 -1
  204. package/dist/{index148.es.js → index.es143.js} +1 -1
  205. package/dist/{index148.es.js.map → index.es143.js.map} +1 -1
  206. package/dist/{index149.es.js → index.es144.js} +10 -7
  207. package/dist/index.es144.js.map +1 -0
  208. package/dist/index.es145.js +408 -0
  209. package/dist/index.es145.js.map +1 -0
  210. package/dist/{index151.es.js → index.es146.js} +16 -12
  211. package/dist/index.es146.js.map +1 -0
  212. package/dist/{index152.es.js → index.es147.js} +5 -5
  213. package/dist/{index152.es.js.map → index.es147.js.map} +1 -1
  214. package/dist/{index153.es.js → index.es148.js} +17 -16
  215. package/dist/index.es148.js.map +1 -0
  216. package/dist/{index154.es.js → index.es149.js} +2 -2
  217. package/dist/{index154.es.js.map → index.es149.js.map} +1 -1
  218. package/dist/{index15.es.js → index.es15.js} +3 -3
  219. package/dist/{index15.es.js.map → index.es15.js.map} +1 -1
  220. package/dist/{index155.es.js → index.es150.js} +4 -4
  221. package/dist/{index155.es.js.map → index.es150.js.map} +1 -1
  222. package/dist/index.es151.js +215 -0
  223. package/dist/index.es151.js.map +1 -0
  224. package/dist/{index157.es.js → index.es152.js} +5 -5
  225. package/dist/{index157.es.js.map → index.es152.js.map} +1 -1
  226. package/dist/index.es153.js +147 -0
  227. package/dist/index.es153.js.map +1 -0
  228. package/dist/index.es154.js +50 -0
  229. package/dist/index.es154.js.map +1 -0
  230. package/dist/index.es155.js +358 -0
  231. package/dist/index.es155.js.map +1 -0
  232. package/dist/{index137.es.js → index.es156.js} +2 -2
  233. package/dist/{index137.es.js.map → index.es156.js.map} +1 -1
  234. package/dist/{index138.es.js → index.es157.js} +1 -1
  235. package/dist/{index138.es.js.map → index.es157.js.map} +1 -1
  236. package/dist/{index159.es.js → index.es158.js} +1 -1
  237. package/dist/{index159.es.js.map → index.es158.js.map} +1 -1
  238. package/dist/{index139.es.js → index.es159.js} +3 -3
  239. package/dist/{index139.es.js.map → index.es159.js.map} +1 -1
  240. package/dist/{index16.es.js → index.es16.js} +8 -8
  241. package/dist/{index16.es.js.map → index.es16.js.map} +1 -1
  242. package/dist/{index140.es.js → index.es160.js} +1 -1
  243. package/dist/{index140.es.js.map → index.es160.js.map} +1 -1
  244. package/dist/{index141.es.js → index.es161.js} +1 -1
  245. package/dist/{index141.es.js.map → index.es161.js.map} +1 -1
  246. package/dist/{index142.es.js → index.es162.js} +1 -1
  247. package/dist/{index142.es.js.map → index.es162.js.map} +1 -1
  248. package/dist/{index160.es.js → index.es163.js} +1 -1
  249. package/dist/{index160.es.js.map → index.es163.js.map} +1 -1
  250. package/dist/{index161.es.js → index.es164.js} +1 -1
  251. package/dist/{index161.es.js.map → index.es164.js.map} +1 -1
  252. package/dist/{index162.es.js → index.es165.js} +1 -1
  253. package/dist/{index162.es.js.map → index.es165.js.map} +1 -1
  254. package/dist/{index164.es.js → index.es166.js} +2 -2
  255. package/dist/{index164.es.js.map → index.es166.js.map} +1 -1
  256. package/dist/{index165.es.js → index.es167.js} +2 -2
  257. package/dist/{index165.es.js.map → index.es167.js.map} +1 -1
  258. package/dist/{index166.es.js → index.es168.js} +4 -4
  259. package/dist/{index166.es.js.map → index.es168.js.map} +1 -1
  260. package/dist/{index167.es.js → index.es169.js} +4 -4
  261. package/dist/{index167.es.js.map → index.es169.js.map} +1 -1
  262. package/dist/{index17.es.js → index.es17.js} +3 -3
  263. package/dist/{index17.es.js.map → index.es17.js.map} +1 -1
  264. package/dist/index.es170.js +101 -0
  265. package/dist/index.es170.js.map +1 -0
  266. package/dist/index.es171.js +259 -0
  267. package/dist/index.es171.js.map +1 -0
  268. package/dist/index.es172.js +66 -0
  269. package/dist/index.es172.js.map +1 -0
  270. package/dist/{index170.es.js → index.es173.js} +19 -19
  271. package/dist/{index170.es.js.map → index.es173.js.map} +1 -1
  272. package/dist/{index171.es.js → index.es174.js} +4 -4
  273. package/dist/{index171.es.js.map → index.es174.js.map} +1 -1
  274. package/dist/{index172.es.js → index.es175.js} +2 -2
  275. package/dist/{index172.es.js.map → index.es175.js.map} +1 -1
  276. package/dist/{index180.es.js → index.es176.js} +1 -1
  277. package/dist/{index180.es.js.map → index.es176.js.map} +1 -1
  278. package/dist/{index181.es.js → index.es177.js} +2 -2
  279. package/dist/{index181.es.js.map → index.es177.js.map} +1 -1
  280. package/dist/{index173.es.js → index.es178.js} +6 -6
  281. package/dist/{index173.es.js.map → index.es178.js.map} +1 -1
  282. package/dist/{index174.es.js → index.es179.js} +16 -17
  283. package/dist/{index174.es.js.map → index.es179.js.map} +1 -1
  284. package/dist/{index18.es.js → index.es18.js} +2 -2
  285. package/dist/{index18.es.js.map → index.es18.js.map} +1 -1
  286. package/dist/{index175.es.js → index.es180.js} +26 -27
  287. package/dist/{index175.es.js.map → index.es180.js.map} +1 -1
  288. package/dist/{index176.es.js → index.es181.js} +12 -13
  289. package/dist/{index176.es.js.map → index.es181.js.map} +1 -1
  290. package/dist/{index177.es.js → index.es182.js} +5 -5
  291. package/dist/{index177.es.js.map → index.es182.js.map} +1 -1
  292. package/dist/{index178.es.js → index.es183.js} +26 -27
  293. package/dist/{index178.es.js.map → index.es183.js.map} +1 -1
  294. package/dist/{index179.es.js → index.es184.js} +29 -30
  295. package/dist/{index179.es.js.map → index.es184.js.map} +1 -1
  296. package/dist/{index182.es.js → index.es185.js} +1 -1
  297. package/dist/{index182.es.js.map → index.es185.js.map} +1 -1
  298. package/dist/{index19.es.js → index.es19.js} +4 -4
  299. package/dist/{index19.es.js.map → index.es19.js.map} +1 -1
  300. package/dist/{index2.es.js → index.es2.js} +5 -5
  301. package/dist/{index2.es.js.map → index.es2.js.map} +1 -1
  302. package/dist/{index20.es.js → index.es20.js} +5 -5
  303. package/dist/{index20.es.js.map → index.es20.js.map} +1 -1
  304. package/dist/{index21.es.js → index.es21.js} +6 -6
  305. package/dist/{index21.es.js.map → index.es21.js.map} +1 -1
  306. package/dist/{index22.es.js → index.es22.js} +2 -2
  307. package/dist/{index22.es.js.map → index.es22.js.map} +1 -1
  308. package/dist/{index23.es.js → index.es23.js} +7 -7
  309. package/dist/{index23.es.js.map → index.es23.js.map} +1 -1
  310. package/dist/{index24.es.js → index.es24.js} +7 -7
  311. package/dist/{index24.es.js.map → index.es24.js.map} +1 -1
  312. package/dist/{index25.es.js → index.es25.js} +3 -3
  313. package/dist/{index25.es.js.map → index.es25.js.map} +1 -1
  314. package/dist/{index26.es.js → index.es26.js} +2 -2
  315. package/dist/{index26.es.js.map → index.es26.js.map} +1 -1
  316. package/dist/{index27.es.js → index.es27.js} +7 -7
  317. package/dist/{index27.es.js.map → index.es27.js.map} +1 -1
  318. package/dist/{index28.es.js → index.es28.js} +9 -9
  319. package/dist/{index28.es.js.map → index.es28.js.map} +1 -1
  320. package/dist/{index29.es.js → index.es29.js} +5 -5
  321. package/dist/{index29.es.js.map → index.es29.js.map} +1 -1
  322. package/dist/{index3.es.js → index.es3.js} +3 -3
  323. package/dist/{index3.es.js.map → index.es3.js.map} +1 -1
  324. package/dist/{index30.es.js → index.es30.js} +3 -3
  325. package/dist/{index30.es.js.map → index.es30.js.map} +1 -1
  326. package/dist/{index31.es.js → index.es31.js} +1 -1
  327. package/dist/{index31.es.js.map → index.es31.js.map} +1 -1
  328. package/dist/{index32.es.js → index.es32.js} +2 -2
  329. package/dist/{index32.es.js.map → index.es32.js.map} +1 -1
  330. package/dist/{index33.es.js → index.es33.js} +3 -3
  331. package/dist/{index33.es.js.map → index.es33.js.map} +1 -1
  332. package/dist/{index34.es.js → index.es34.js} +5 -5
  333. package/dist/{index34.es.js.map → index.es34.js.map} +1 -1
  334. package/dist/{index35.es.js → index.es35.js} +6 -6
  335. package/dist/{index35.es.js.map → index.es35.js.map} +1 -1
  336. package/dist/{index36.es.js → index.es36.js} +5 -5
  337. package/dist/{index36.es.js.map → index.es36.js.map} +1 -1
  338. package/dist/{index37.es.js → index.es37.js} +6 -6
  339. package/dist/{index37.es.js.map → index.es37.js.map} +1 -1
  340. package/dist/{index38.es.js → index.es38.js} +2 -2
  341. package/dist/{index38.es.js.map → index.es38.js.map} +1 -1
  342. package/dist/{index39.es.js → index.es39.js} +3 -3
  343. package/dist/{index39.es.js.map → index.es39.js.map} +1 -1
  344. package/dist/{index4.es.js → index.es4.js} +2 -2
  345. package/dist/{index4.es.js.map → index.es4.js.map} +1 -1
  346. package/dist/{index40.es.js → index.es40.js} +4 -4
  347. package/dist/{index40.es.js.map → index.es40.js.map} +1 -1
  348. package/dist/{index41.es.js → index.es41.js} +5 -5
  349. package/dist/{index41.es.js.map → index.es41.js.map} +1 -1
  350. package/dist/{index42.es.js → index.es42.js} +4 -4
  351. package/dist/{index42.es.js.map → index.es42.js.map} +1 -1
  352. package/dist/{index43.es.js → index.es43.js} +2 -2
  353. package/dist/{index43.es.js.map → index.es43.js.map} +1 -1
  354. package/dist/{index44.es.js → index.es44.js} +2 -2
  355. package/dist/{index44.es.js.map → index.es44.js.map} +1 -1
  356. package/dist/index.es45.js +69 -0
  357. package/dist/index.es45.js.map +1 -0
  358. package/dist/{index46.es.js → index.es46.js} +9 -9
  359. package/dist/{index46.es.js.map → index.es46.js.map} +1 -1
  360. package/dist/{index47.es.js → index.es47.js} +7 -7
  361. package/dist/{index47.es.js.map → index.es47.js.map} +1 -1
  362. package/dist/{index48.es.js → index.es48.js} +10 -10
  363. package/dist/{index48.es.js.map → index.es48.js.map} +1 -1
  364. package/dist/{index49.es.js → index.es49.js} +2 -2
  365. package/dist/{index49.es.js.map → index.es49.js.map} +1 -1
  366. package/dist/{index5.es.js → index.es5.js} +2 -2
  367. package/dist/{index5.es.js.map → index.es5.js.map} +1 -1
  368. package/dist/{index50.es.js → index.es50.js} +1 -1
  369. package/dist/{index50.es.js.map → index.es50.js.map} +1 -1
  370. package/dist/{index51.es.js → index.es51.js} +2 -2
  371. package/dist/{index51.es.js.map → index.es51.js.map} +1 -1
  372. package/dist/{index52.es.js → index.es52.js} +3 -3
  373. package/dist/{index52.es.js.map → index.es52.js.map} +1 -1
  374. package/dist/{index53.es.js → index.es53.js} +7 -7
  375. package/dist/{index53.es.js.map → index.es53.js.map} +1 -1
  376. package/dist/{index54.es.js → index.es54.js} +4 -4
  377. package/dist/{index54.es.js.map → index.es54.js.map} +1 -1
  378. package/dist/{index55.es.js → index.es55.js} +5 -5
  379. package/dist/{index55.es.js.map → index.es55.js.map} +1 -1
  380. package/dist/{index56.es.js → index.es56.js} +3 -3
  381. package/dist/{index56.es.js.map → index.es56.js.map} +1 -1
  382. package/dist/{index57.es.js → index.es57.js} +9 -9
  383. package/dist/{index57.es.js.map → index.es57.js.map} +1 -1
  384. package/dist/{index58.es.js → index.es58.js} +3 -4
  385. package/dist/{index58.es.js.map → index.es58.js.map} +1 -1
  386. package/dist/{index59.es.js → index.es59.js} +2 -2
  387. package/dist/{index59.es.js.map → index.es59.js.map} +1 -1
  388. package/dist/{index6.es.js → index.es6.js} +2 -2
  389. package/dist/{index6.es.js.map → index.es6.js.map} +1 -1
  390. package/dist/{index60.es.js → index.es60.js} +3 -3
  391. package/dist/{index60.es.js.map → index.es60.js.map} +1 -1
  392. package/dist/{index61.es.js → index.es61.js} +2 -2
  393. package/dist/{index61.es.js.map → index.es61.js.map} +1 -1
  394. package/dist/{index62.es.js → index.es62.js} +2 -2
  395. package/dist/{index62.es.js.map → index.es62.js.map} +1 -1
  396. package/dist/{index63.es.js → index.es63.js} +2 -2
  397. package/dist/{index63.es.js.map → index.es63.js.map} +1 -1
  398. package/dist/{index64.es.js → index.es64.js} +3 -3
  399. package/dist/{index64.es.js.map → index.es64.js.map} +1 -1
  400. package/dist/{index65.es.js → index.es65.js} +3 -3
  401. package/dist/{index65.es.js.map → index.es65.js.map} +1 -1
  402. package/dist/{index66.es.js → index.es66.js} +2 -2
  403. package/dist/{index66.es.js.map → index.es66.js.map} +1 -1
  404. package/dist/{index67.es.js → index.es67.js} +3 -3
  405. package/dist/{index67.es.js.map → index.es67.js.map} +1 -1
  406. package/dist/{index68.es.js → index.es68.js} +3 -3
  407. package/dist/{index68.es.js.map → index.es68.js.map} +1 -1
  408. package/dist/{index69.es.js → index.es69.js} +6 -6
  409. package/dist/{index69.es.js.map → index.es69.js.map} +1 -1
  410. package/dist/{index7.es.js → index.es7.js} +2 -2
  411. package/dist/{index7.es.js.map → index.es7.js.map} +1 -1
  412. package/dist/{index70.es.js → index.es70.js} +6 -6
  413. package/dist/{index70.es.js.map → index.es70.js.map} +1 -1
  414. package/dist/{index71.es.js → index.es71.js} +4 -4
  415. package/dist/{index71.es.js.map → index.es71.js.map} +1 -1
  416. package/dist/{index72.es.js → index.es72.js} +8 -8
  417. package/dist/{index72.es.js.map → index.es72.js.map} +1 -1
  418. package/dist/{index73.es.js → index.es73.js} +5 -5
  419. package/dist/{index73.es.js.map → index.es73.js.map} +1 -1
  420. package/dist/{index74.es.js → index.es74.js} +1 -1
  421. package/dist/{index74.es.js.map → index.es74.js.map} +1 -1
  422. package/dist/{index75.es.js → index.es75.js} +1 -1
  423. package/dist/{index75.es.js.map → index.es75.js.map} +1 -1
  424. package/dist/{index76.es.js → index.es76.js} +1 -1
  425. package/dist/{index76.es.js.map → index.es76.js.map} +1 -1
  426. package/dist/{index77.es.js → index.es77.js} +1 -1
  427. package/dist/{index77.es.js.map → index.es77.js.map} +1 -1
  428. package/dist/{index78.es.js → index.es78.js} +2 -2
  429. package/dist/{index78.es.js.map → index.es78.js.map} +1 -1
  430. package/dist/{index79.es.js → index.es79.js} +1 -1
  431. package/dist/{index79.es.js.map → index.es79.js.map} +1 -1
  432. package/dist/{index8.es.js → index.es8.js} +3 -3
  433. package/dist/{index8.es.js.map → index.es8.js.map} +1 -1
  434. package/dist/{index80.es.js → index.es80.js} +3 -3
  435. package/dist/{index80.es.js.map → index.es80.js.map} +1 -1
  436. package/dist/{index81.es.js → index.es81.js} +4 -4
  437. package/dist/{index81.es.js.map → index.es81.js.map} +1 -1
  438. package/dist/{index82.es.js → index.es82.js} +1 -1
  439. package/dist/{index82.es.js.map → index.es82.js.map} +1 -1
  440. package/dist/{index83.es.js → index.es83.js} +1 -1
  441. package/dist/{index83.es.js.map → index.es83.js.map} +1 -1
  442. package/dist/{index84.es.js.map → index.es84.js.map} +1 -1
  443. package/dist/{index85.es.js → index.es85.js} +2 -2
  444. package/dist/{index85.es.js.map → index.es85.js.map} +1 -1
  445. package/dist/{index86.es.js → index.es86.js} +2 -2
  446. package/dist/{index86.es.js.map → index.es86.js.map} +1 -1
  447. package/dist/{index87.es.js → index.es87.js} +1 -1
  448. package/dist/{index87.es.js.map → index.es87.js.map} +1 -1
  449. package/dist/index.es88.js +5 -0
  450. package/dist/index.es88.js.map +1 -0
  451. package/dist/{index89.es.js → index.es89.js} +1 -1
  452. package/dist/{index89.es.js.map → index.es89.js.map} +1 -1
  453. package/dist/{index9.es.js → index.es9.js} +4 -4
  454. package/dist/{index9.es.js.map → index.es9.js.map} +1 -1
  455. package/dist/{index90.es.js → index.es90.js} +2 -2
  456. package/dist/{index90.es.js.map → index.es90.js.map} +1 -1
  457. package/dist/{index91.es.js → index.es91.js} +3 -3
  458. package/dist/{index91.es.js.map → index.es91.js.map} +1 -1
  459. package/dist/{index92.es.js → index.es92.js} +1 -1
  460. package/dist/{index92.es.js.map → index.es92.js.map} +1 -1
  461. package/dist/{index93.es.js → index.es93.js} +1 -1
  462. package/dist/{index93.es.js.map → index.es93.js.map} +1 -1
  463. package/dist/{index94.es.js → index.es94.js} +1 -1
  464. package/dist/{index94.es.js.map → index.es94.js.map} +1 -1
  465. package/dist/{index95.es.js → index.es95.js} +1 -1
  466. package/dist/{index95.es.js.map → index.es95.js.map} +1 -1
  467. package/dist/{index96.es.js → index.es96.js} +1 -1
  468. package/dist/{index96.es.js.map → index.es96.js.map} +1 -1
  469. package/dist/{index117.es.js → index.es97.js} +1 -1
  470. package/dist/index.es97.js.map +1 -0
  471. package/dist/{index118.es.js → index.es98.js} +24 -23
  472. package/dist/index.es98.js.map +1 -0
  473. package/dist/{index119.es.js → index.es99.js} +1 -1
  474. package/dist/index.es99.js.map +1 -0
  475. package/dist/styles.css +72 -11
  476. package/package.json +1 -1
  477. package/dist/index117.es.js.map +0 -1
  478. package/dist/index118.es.js.map +0 -1
  479. package/dist/index119.es.js.map +0 -1
  480. package/dist/index120.es.js +0 -105
  481. package/dist/index120.es.js.map +0 -1
  482. package/dist/index144.es.js.map +0 -1
  483. package/dist/index149.es.js.map +0 -1
  484. package/dist/index150.es.js +0 -325
  485. package/dist/index150.es.js.map +0 -1
  486. package/dist/index151.es.js.map +0 -1
  487. package/dist/index153.es.js.map +0 -1
  488. package/dist/index156.es.js +0 -146
  489. package/dist/index156.es.js.map +0 -1
  490. package/dist/index158.es.js +0 -50
  491. package/dist/index158.es.js.map +0 -1
  492. package/dist/index163.es.js +0 -216
  493. package/dist/index163.es.js.map +0 -1
  494. package/dist/index168.es.js +0 -94
  495. package/dist/index168.es.js.map +0 -1
  496. package/dist/index169.es.js +0 -120
  497. package/dist/index169.es.js.map +0 -1
  498. package/dist/index45.es.js +0 -67
  499. package/dist/index45.es.js.map +0 -1
  500. package/dist/index88.es.js +0 -5
  501. package/dist/index88.es.js.map +0 -1
  502. package/dist/index97.es.js.map +0 -1
  503. package/dist/index98.es.js.map +0 -1
  504. package/dist/index99.es.js.map +0 -1
  505. package/dist/{index84.es.js → index.es84.js} +1 -1
@@ -0,0 +1,259 @@
1
+ import { Spline as v, Bookmark as f, Trash2 as S } from "lucide-react";
2
+ import e, { useState as E } from "react";
3
+ import { Button as m } from "./index.es9.js";
4
+ import { Input as g } from "./index.es11.js";
5
+ import { Textarea as h } from "./index.es16.js";
6
+ import { Slider as n } from "./index.es30.js";
7
+ import { Switch as N } from "./index.es15.js";
8
+ import { SingleSelect as r } from "./index.es29.js";
9
+ import { FONTS as u } from "./index.es143.js";
10
+ import { ColorPicker as y } from "./index.es177.js";
11
+ import { useImageEditorPortalContainer as C } from "./index.es137.js";
12
+ const k = [
13
+ { label: "Outline only", value: "stroke" },
14
+ { label: "Solid fill", value: "fill" }
15
+ ], o = ["rect", "ellipse", "circle"], L = ["line", "dashedLine"], w = [
16
+ "line",
17
+ "dashedLine",
18
+ "arrow",
19
+ "dashedArrow",
20
+ "doubleArrow",
21
+ "dashedDoubleArrow"
22
+ ];
23
+ function _({ selected: t, engine: l }) {
24
+ const s = C(), [d, c] = E(!1), [x, i] = E(""), p = () => t.type === "text" ? (t.text ?? "").trim().slice(0, 40) : t.label ? t.label.trim().slice(0, 40) : t.shape ?? t.type ?? "", b = () => {
25
+ l.saveSelectedLayer(x.trim() || void 0), c(!1), i("");
26
+ };
27
+ return /* @__PURE__ */ e.createElement("div", null, t.type === "text" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Text"), /* @__PURE__ */ e.createElement(
28
+ h,
29
+ {
30
+ className: "min-h-[52px]",
31
+ value: t.text ?? "",
32
+ onChange: (a) => l.setSelectedText(a.target.value)
33
+ }
34
+ ), /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Font"), /* @__PURE__ */ e.createElement(
35
+ r,
36
+ {
37
+ items: u,
38
+ value: t.font ?? "",
39
+ onValueChange: l.setSelectedFont,
40
+ container: s
41
+ }
42
+ ), /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Size"), /* @__PURE__ */ e.createElement("span", null, t.size, "px")), /* @__PURE__ */ e.createElement(
43
+ n,
44
+ {
45
+ min: 10,
46
+ max: 240,
47
+ step: 1,
48
+ value: [t.size ?? 24],
49
+ onValueChange: ([a]) => l.setSelectedTextSize(a)
50
+ }
51
+ ), /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Box size"), /* @__PURE__ */ e.createElement("span", null, t.boxWidth, "px")), /* @__PURE__ */ e.createElement(
52
+ n,
53
+ {
54
+ min: 20,
55
+ max: 2e3,
56
+ step: 1,
57
+ value: [t.boxWidth ?? 200],
58
+ onValueChange: ([a]) => l.setSelectedBoxWidth(a)
59
+ }
60
+ )), t.type === "shape" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Fill style"), /* @__PURE__ */ e.createElement(
61
+ r,
62
+ {
63
+ items: k,
64
+ value: t.fill ?? "stroke",
65
+ onValueChange: (a) => l.setSelectedShapeFill(a),
66
+ container: s
67
+ }
68
+ ), /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Thickness"), /* @__PURE__ */ e.createElement(
69
+ n,
70
+ {
71
+ min: 1,
72
+ max: 40,
73
+ step: 1,
74
+ value: [t.width ?? 6],
75
+ onValueChange: ([a]) => l.setSelectedWidth(a)
76
+ }
77
+ ), L.includes(t.shape ?? "") && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "my-3 h-px bg-neutral-1" }), /* @__PURE__ */ e.createElement(
78
+ m,
79
+ {
80
+ variant: "secondary",
81
+ size: "sm",
82
+ onClick: l.continueSelectedLine,
83
+ prefixIcon: /* @__PURE__ */ e.createElement(v, { className: "h-4 w-4" })
84
+ },
85
+ "Continue this line"
86
+ ), /* @__PURE__ */ e.createElement("p", { className: "mt-1.5 text-[11px] leading-snug text-light-4" }, "Reopens the line so you can click more corners onto the end.")), (w.includes(t.shape ?? "") || o.includes(t.shape ?? "")) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "my-3 h-px bg-neutral-1" }), /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, o.includes(t.shape ?? "") || t.closed ? "Text inside shape" : "Label above line"), /* @__PURE__ */ e.createElement(
87
+ h,
88
+ {
89
+ className: "min-h-[44px]",
90
+ placeholder: "Add a caption…",
91
+ value: t.label ?? "",
92
+ onChange: (a) => l.setSelectedLabel(a.target.value)
93
+ }
94
+ ), !!t.label && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Label font"), /* @__PURE__ */ e.createElement(
95
+ r,
96
+ {
97
+ items: u,
98
+ value: t.labelFont ?? u[1].value,
99
+ onValueChange: l.setSelectedLabelFont,
100
+ container: s
101
+ }
102
+ ), /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Label size"), /* @__PURE__ */ e.createElement("span", null, t.labelSize ?? 42, "px")), /* @__PURE__ */ e.createElement(
103
+ n,
104
+ {
105
+ min: 10,
106
+ max: 200,
107
+ step: 1,
108
+ value: [t.labelSize ?? 42],
109
+ onValueChange: ([a]) => l.setSelectedLabelSize(a)
110
+ }
111
+ ), !o.includes(t.shape ?? "") && !t.closed && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Label side"), /* @__PURE__ */ e.createElement(
112
+ r,
113
+ {
114
+ items: [
115
+ { label: "Above the line", value: "above" },
116
+ { label: "Below the line", value: "below" }
117
+ ],
118
+ value: t.labelSide ?? "above",
119
+ onValueChange: (a) => l.setSelectedLabelSide(a),
120
+ container: s
121
+ }
122
+ ), /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Distance from line"), /* @__PURE__ */ e.createElement("span", null, t.labelOffset ?? 10, "px")), /* @__PURE__ */ e.createElement(
123
+ n,
124
+ {
125
+ min: 0,
126
+ max: 200,
127
+ step: 1,
128
+ value: [t.labelOffset ?? 10],
129
+ onValueChange: ([a]) => l.setSelectedLabelOffset(a)
130
+ }
131
+ ), /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Position along line"), /* @__PURE__ */ e.createElement("span", null, Math.round((t.labelPos ?? 0.5) * 100), "%")), /* @__PURE__ */ e.createElement(
132
+ n,
133
+ {
134
+ min: 0,
135
+ max: 100,
136
+ step: 1,
137
+ value: [Math.round((t.labelPos ?? 0.5) * 100)],
138
+ onValueChange: ([a]) => l.setSelectedLabelPos(a / 100)
139
+ }
140
+ ), /* @__PURE__ */ e.createElement("div", { className: "mt-3 flex items-center justify-between gap-3" }, /* @__PURE__ */ e.createElement("span", { className: "text-xs text-light-4" }, "Follow line angle"), /* @__PURE__ */ e.createElement(
141
+ N,
142
+ {
143
+ checked: t.labelRotate !== !1,
144
+ onCheckedChange: l.setSelectedLabelRotate
145
+ }
146
+ ))), (o.includes(t.shape ?? "") || t.closed) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Horizontal position"), /* @__PURE__ */ e.createElement("span", null, t.labelDx ?? 0, "px")), /* @__PURE__ */ e.createElement(
147
+ n,
148
+ {
149
+ min: -300,
150
+ max: 300,
151
+ step: 1,
152
+ value: [t.labelDx ?? 0],
153
+ onValueChange: ([a]) => l.setSelectedLabelDx(a)
154
+ }
155
+ ), /* @__PURE__ */ e.createElement("div", { className: "mb-1 mt-2.5 flex justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Vertical position"), /* @__PURE__ */ e.createElement("span", null, t.labelDy ?? 0, "px")), /* @__PURE__ */ e.createElement(
156
+ n,
157
+ {
158
+ min: -300,
159
+ max: 300,
160
+ step: 1,
161
+ value: [t.labelDy ?? 0],
162
+ onValueChange: ([a]) => l.setSelectedLabelDy(a)
163
+ }
164
+ ))), (t.pointCount ?? 0) >= 3 && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Path"), /* @__PURE__ */ e.createElement(
165
+ r,
166
+ {
167
+ items: [
168
+ { label: "Open line", value: "open" },
169
+ { label: "Closed shape", value: "closed" }
170
+ ],
171
+ value: t.closed ? "closed" : "open",
172
+ onValueChange: (a) => l.setSelectedClosed(a === "closed"),
173
+ container: s
174
+ }
175
+ )))), t.type === "stroke" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Brush size"), /* @__PURE__ */ e.createElement(
176
+ n,
177
+ {
178
+ min: 1,
179
+ max: 60,
180
+ step: 1,
181
+ value: [t.width ?? 8],
182
+ onValueChange: ([a]) => l.setSelectedWidth(a)
183
+ }
184
+ )), t.type !== "sticker" && /* @__PURE__ */ e.createElement(
185
+ y,
186
+ {
187
+ value: t.color ?? "#d24b2f",
188
+ onChange: l.setSelectedColor
189
+ }
190
+ ), /* @__PURE__ */ e.createElement("div", { className: "my-3.5 h-px bg-neutral-1" }), /* @__PURE__ */ e.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ e.createElement(
191
+ m,
192
+ {
193
+ variant: "secondary",
194
+ size: "sm",
195
+ onClick: l.bringSelectedToFront
196
+ },
197
+ "Bring to front"
198
+ ), /* @__PURE__ */ e.createElement(
199
+ m,
200
+ {
201
+ variant: "secondary",
202
+ size: "sm",
203
+ onClick: l.sendSelectedToBack
204
+ },
205
+ "Send to back"
206
+ ), /* @__PURE__ */ e.createElement(
207
+ m,
208
+ {
209
+ variant: "secondary",
210
+ size: "sm",
211
+ onClick: l.duplicateSelected
212
+ },
213
+ "Duplicate"
214
+ ), d ? /* @__PURE__ */ e.createElement("div", { className: "rounded-lg border border-neutral-2 bg-rest-s1 p-2" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Layer name"), /* @__PURE__ */ e.createElement(
215
+ g,
216
+ {
217
+ autoFocus: !0,
218
+ value: x,
219
+ placeholder: p() || "Layer name",
220
+ onChange: (a) => i(a.target.value),
221
+ onKeyDown: (a) => {
222
+ a.key === "Enter" && b(), a.key === "Escape" && c(!1);
223
+ }
224
+ }
225
+ ), /* @__PURE__ */ e.createElement("div", { className: "mt-2 flex gap-2" }, /* @__PURE__ */ e.createElement(m, { size: "sm", onClick: b, title: "Save" }), /* @__PURE__ */ e.createElement(
226
+ m,
227
+ {
228
+ variant: "secondary",
229
+ size: "sm",
230
+ onClick: () => c(!1),
231
+ title: "Cancel"
232
+ }
233
+ ))) : /* @__PURE__ */ e.createElement(
234
+ m,
235
+ {
236
+ variant: "secondary",
237
+ size: "sm",
238
+ onClick: () => {
239
+ i(p()), c(!0);
240
+ },
241
+ prefixIcon: /* @__PURE__ */ e.createElement(f, { className: "h-4 w-4" })
242
+ },
243
+ "Save for reuse"
244
+ ), /* @__PURE__ */ e.createElement(
245
+ m,
246
+ {
247
+ variant: "secondary",
248
+ size: "sm",
249
+ onClick: l.deleteSelected,
250
+ prefixIcon: /* @__PURE__ */ e.createElement(S, { className: "h-4 w-4" }),
251
+ className: "text-danger-1"
252
+ },
253
+ "Delete layer"
254
+ )));
255
+ }
256
+ export {
257
+ _ as PanelSelected
258
+ };
259
+ //# sourceMappingURL=index.es171.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es171.js","sources":["../src/components/organisms/image-editor/components/panel-selected.tsx"],"sourcesContent":["import { Bookmark, Spline, Trash2 } from 'lucide-react'\nimport React, { useState } from 'react'\n\nimport { Button } from '@/components/atoms/button'\nimport { Input } from '@/components/atoms/input'\nimport { Textarea } from '@/components/atoms/textarea'\nimport { Slider } from '@/components/molecules/slider'\nimport { Switch } from '@/components/atoms/switch'\nimport { SingleSelect } from '@/components/molecules/single-select'\n\nimport {\n ImageEditorEngine,\n ImageEditorSelectedLayer,\n} from '../image-editor.types'\nimport { FONTS } from '../picture-studio-engine'\nimport { ColorPicker } from './color-picker'\nimport { useImageEditorPortalContainer } from './portal-context'\n\ninterface PanelSelectedProps {\n selected: ImageEditorSelectedLayer\n engine: ImageEditorEngine\n}\n\nconst FILL_ITEMS = [\n { label: 'Outline only', value: 'stroke' },\n { label: 'Solid fill', value: 'fill' },\n]\n\nconst CLOSED_SHAPES = ['rect', 'ellipse', 'circle']\n\nconst MULTI_POINT_SHAPES = ['line', 'dashedLine']\n\nconst DIRECTIONAL_SHAPES = [\n 'line',\n 'dashedLine',\n 'arrow',\n 'dashedArrow',\n 'doubleArrow',\n 'dashedDoubleArrow',\n]\n\nexport function PanelSelected({ selected, engine }: PanelSelectedProps) {\n const container = useImageEditorPortalContainer()\n const [naming, setNaming] = useState(false)\n const [layerName, setLayerName] = useState('')\n\n const suggestedName = () => {\n if (selected.type === 'text')\n return (selected.text ?? '').trim().slice(0, 40)\n if (selected.label) return selected.label.trim().slice(0, 40)\n return selected.shape ?? selected.type ?? ''\n }\n\n const commitSave = () => {\n engine.saveSelectedLayer(layerName.trim() || undefined)\n setNaming(false)\n setLayerName('')\n }\n return (\n <div>\n {selected.type === 'text' && (\n <div className=\"mb-3.5\">\n <span className=\"mb-1 block text-xs text-light-4\">Text</span>\n <Textarea\n className=\"min-h-[52px]\"\n value={selected.text ?? ''}\n onChange={(e) => engine.setSelectedText(e.target.value)}\n />\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">Font</span>\n <SingleSelect\n items={FONTS}\n value={selected.font ?? ''}\n onValueChange={engine.setSelectedFont}\n container={container}\n />\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Size</span>\n <span>{selected.size}px</span>\n </div>\n <Slider\n min={10}\n max={240}\n step={1}\n value={[selected.size ?? 24]}\n onValueChange={([v]) => engine.setSelectedTextSize(v)}\n />\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Box size</span>\n <span>{selected.boxWidth}px</span>\n </div>\n <Slider\n min={20}\n max={2000}\n step={1}\n value={[selected.boxWidth ?? 200]}\n onValueChange={([v]) => engine.setSelectedBoxWidth(v)}\n />\n </div>\n )}\n\n {selected.type === 'shape' && (\n <div className=\"mb-3.5\">\n <span className=\"mb-1 block text-xs text-light-4\">Fill style</span>\n <SingleSelect\n items={FILL_ITEMS}\n value={selected.fill ?? 'stroke'}\n onValueChange={(v) =>\n engine.setSelectedShapeFill(v as 'stroke' | 'fill')\n }\n container={container}\n />\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Thickness\n </span>\n <Slider\n min={1}\n max={40}\n step={1}\n value={[selected.width ?? 6]}\n onValueChange={([v]) => engine.setSelectedWidth(v)}\n />\n\n {MULTI_POINT_SHAPES.includes(selected.shape ?? '') && (\n <>\n <div className=\"my-3 h-px bg-neutral-1\" />\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={engine.continueSelectedLine}\n prefixIcon={<Spline className=\"h-4 w-4\" />}\n >\n Continue this line\n </Button>\n <p className=\"mt-1.5 text-[11px] leading-snug text-light-4\">\n Reopens the line so you can click more corners onto the end.\n </p>\n </>\n )}\n\n {(DIRECTIONAL_SHAPES.includes(selected.shape ?? '') ||\n CLOSED_SHAPES.includes(selected.shape ?? '')) && (\n <>\n <div className=\"my-3 h-px bg-neutral-1\" />\n <span className=\"mb-1 block text-xs text-light-4\">\n {CLOSED_SHAPES.includes(selected.shape ?? '') || selected.closed\n ? 'Text inside shape'\n : 'Label above line'}\n </span>\n <Textarea\n className=\"min-h-[44px]\"\n placeholder=\"Add a caption…\"\n value={selected.label ?? ''}\n onChange={(e) => engine.setSelectedLabel(e.target.value)}\n />\n {!!selected.label && (\n <>\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Label font\n </span>\n <SingleSelect\n items={FONTS}\n value={selected.labelFont ?? FONTS[1].value}\n onValueChange={engine.setSelectedLabelFont}\n container={container}\n />\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Label size</span>\n <span>{selected.labelSize ?? 42}px</span>\n </div>\n <Slider\n min={10}\n max={200}\n step={1}\n value={[selected.labelSize ?? 42]}\n onValueChange={([v]) => engine.setSelectedLabelSize(v)}\n />\n\n {!CLOSED_SHAPES.includes(selected.shape ?? '') &&\n !selected.closed && (\n <>\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Label side\n </span>\n <SingleSelect\n items={[\n { label: 'Above the line', value: 'above' },\n { label: 'Below the line', value: 'below' },\n ]}\n value={selected.labelSide ?? 'above'}\n onValueChange={(v) =>\n engine.setSelectedLabelSide(v as 'above' | 'below')\n }\n container={container}\n />\n\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Distance from line</span>\n <span>{selected.labelOffset ?? 10}px</span>\n </div>\n <Slider\n min={0}\n max={200}\n step={1}\n value={[selected.labelOffset ?? 10]}\n onValueChange={([v]) =>\n engine.setSelectedLabelOffset(v)\n }\n />\n\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Position along line</span>\n <span>\n {Math.round((selected.labelPos ?? 0.5) * 100)}%\n </span>\n </div>\n <Slider\n min={0}\n max={100}\n step={1}\n value={[Math.round((selected.labelPos ?? 0.5) * 100)]}\n onValueChange={([v]) =>\n engine.setSelectedLabelPos(v / 100)\n }\n />\n\n <div className=\"mt-3 flex items-center justify-between gap-3\">\n <span className=\"text-xs text-light-4\">\n Follow line angle\n </span>\n <Switch\n checked={selected.labelRotate !== false}\n onCheckedChange={engine.setSelectedLabelRotate}\n />\n </div>\n </>\n )}\n\n {(CLOSED_SHAPES.includes(selected.shape ?? '') ||\n selected.closed) && (\n <>\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Horizontal position</span>\n <span>{selected.labelDx ?? 0}px</span>\n </div>\n <Slider\n min={-300}\n max={300}\n step={1}\n value={[selected.labelDx ?? 0]}\n onValueChange={([v]) => engine.setSelectedLabelDx(v)}\n />\n <div className=\"mb-1 mt-2.5 flex justify-between text-xs text-light-4\">\n <span>Vertical position</span>\n <span>{selected.labelDy ?? 0}px</span>\n </div>\n <Slider\n min={-300}\n max={300}\n step={1}\n value={[selected.labelDy ?? 0]}\n onValueChange={([v]) => engine.setSelectedLabelDy(v)}\n />\n </>\n )}\n </>\n )}\n {(selected.pointCount ?? 0) >= 3 && (\n <>\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Path\n </span>\n <SingleSelect\n items={[\n { label: 'Open line', value: 'open' },\n { label: 'Closed shape', value: 'closed' },\n ]}\n value={selected.closed ? 'closed' : 'open'}\n onValueChange={(v) =>\n engine.setSelectedClosed(v === 'closed')\n }\n container={container}\n />\n </>\n )}\n </>\n )}\n </div>\n )}\n\n {selected.type === 'stroke' && (\n <div className=\"mb-3.5\">\n <span className=\"mb-1 block text-xs text-light-4\">Brush size</span>\n <Slider\n min={1}\n max={60}\n step={1}\n value={[selected.width ?? 8]}\n onValueChange={([v]) => engine.setSelectedWidth(v)}\n />\n </div>\n )}\n\n {selected.type !== 'sticker' && (\n <ColorPicker\n value={selected.color ?? '#d24b2f'}\n onChange={engine.setSelectedColor}\n />\n )}\n\n <div className=\"my-3.5 h-px bg-neutral-1\" />\n\n <div className=\"flex flex-col gap-2\">\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={engine.bringSelectedToFront}\n >\n Bring to front\n </Button>\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={engine.sendSelectedToBack}\n >\n Send to back\n </Button>\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={engine.duplicateSelected}\n >\n Duplicate\n </Button>\n {naming ? (\n <div className=\"rounded-lg border border-neutral-2 bg-rest-s1 p-2\">\n <span className=\"mb-1 block text-xs text-light-4\">Layer name</span>\n <Input\n autoFocus\n value={layerName}\n placeholder={suggestedName() || 'Layer name'}\n onChange={(e) => setLayerName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') commitSave()\n if (e.key === 'Escape') setNaming(false)\n }}\n />\n <div className=\"mt-2 flex gap-2\">\n <Button size=\"sm\" onClick={commitSave} title=\"Save\" />\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => setNaming(false)}\n title=\"Cancel\"\n />\n </div>\n </div>\n ) : (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => {\n setLayerName(suggestedName())\n setNaming(true)\n }}\n prefixIcon={<Bookmark className=\"h-4 w-4\" />}\n >\n Save for reuse\n </Button>\n )}\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={engine.deleteSelected}\n prefixIcon={<Trash2 className=\"h-4 w-4\" />}\n className=\"text-danger-1\"\n >\n Delete layer\n </Button>\n </div>\n </div>\n )\n}\n"],"names":["FILL_ITEMS","CLOSED_SHAPES","MULTI_POINT_SHAPES","DIRECTIONAL_SHAPES","PanelSelected","selected","engine","container","useImageEditorPortalContainer","naming","setNaming","useState","layerName","setLayerName","suggestedName","commitSave","React","Textarea","e","SingleSelect","FONTS","Slider","v","Button","Spline","Switch","ColorPicker","Input","Bookmark","Trash2"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { Bookmark as f, SearchIcon as v, Loader2 as E, Plus as b, Trash2 as N } from "lucide-react";
2
+ import e, { useState as o, useEffect as S } from "react";
3
+ import { Input as k } from "./index.es11.js";
4
+ const L = {
5
+ text: "Text",
6
+ shape: "Shape",
7
+ stroke: "Drawing",
8
+ sticker: "Sticker"
9
+ }, w = 350;
10
+ function R({ ui: r, engine: a }) {
11
+ const [l, u] = o(""), [m, n] = o(null), [p, c] = o(!1), i = r.savedLayers ?? [], x = r.canSearchSavedLayers || i.length > 0;
12
+ if (S(() => {
13
+ const t = l.trim();
14
+ if (!t) {
15
+ n(null), c(!1);
16
+ return;
17
+ }
18
+ c(!0);
19
+ let s = !1;
20
+ const y = setTimeout(() => {
21
+ a.searchSavedLayers(t).then((g) => !s && n(g)).catch(() => !s && n([])).finally(() => !s && c(!1));
22
+ }, w);
23
+ return () => {
24
+ s = !0, clearTimeout(y);
25
+ };
26
+ }, [l, a]), !x) return null;
27
+ const h = m ?? i, d = m !== null;
28
+ return /* @__PURE__ */ e.createElement("div", { className: "mt-4 border-t border-neutral-1 pt-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-2 flex items-center gap-1.5 text-xs font-medium text-light-2" }, /* @__PURE__ */ e.createElement(f, { className: "h-3.5 w-3.5" }), "Saved layers"), /* @__PURE__ */ e.createElement("div", { className: "relative mb-2" }, /* @__PURE__ */ e.createElement(
29
+ k,
30
+ {
31
+ value: l,
32
+ onChange: (t) => u(t.target.value),
33
+ placeholder: "Search saved layers",
34
+ className: "pl-2 bg-light-1",
35
+ prefix: /* @__PURE__ */ e.createElement(v, { className: "h-5 w-5 text-light-4" }),
36
+ "aria-label": "Search saved layers"
37
+ }
38
+ ), p && /* @__PURE__ */ e.createElement(E, { className: "absolute right-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 animate-spin text-light-4" })), h.length === 0 ? /* @__PURE__ */ e.createElement("p", { className: "px-0.5 py-2 text-xs text-light-4" }, d ? "No layers match that." : "Nothing saved yet.") : /* @__PURE__ */ e.createElement("ul", { className: "flex flex-col gap-1" }, h.map((t) => /* @__PURE__ */ e.createElement("li", { key: t.id, className: "flex items-center gap-1" }, /* @__PURE__ */ e.createElement(
39
+ "button",
40
+ {
41
+ type: "button",
42
+ onClick: () => d ? a.insertSavedLayerEntry(
43
+ t
44
+ ) : a.insertSavedLayer(t.id),
45
+ disabled: !r.hasImage,
46
+ title: `Add "${t.name}"`,
47
+ className: "flex min-h-9 flex-1 items-center gap-2 overflow-hidden rounded-lg border border-neutral-2 bg-rest-s1 px-2.5 text-left text-xs hover:bg-hover-s1 disabled:pointer-events-none disabled:opacity-50"
48
+ },
49
+ /* @__PURE__ */ e.createElement(b, { className: "h-4 w-4 shrink-0 text-light-4" }),
50
+ /* @__PURE__ */ e.createElement("span", { className: "truncate text-light-2" }, t.name),
51
+ /* @__PURE__ */ e.createElement("span", { className: "ml-auto shrink-0 text-[10px] uppercase tracking-wide text-light-4" }, L[("type" in t ? t.type : t.layer?.type) ?? ""] ?? "")
52
+ ), /* @__PURE__ */ e.createElement(
53
+ "button",
54
+ {
55
+ type: "button",
56
+ onClick: () => a.deleteSavedLayer(t.id),
57
+ "aria-label": `Delete saved layer ${t.name}`,
58
+ className: "flex min-h-9 w-9 shrink-0 items-center justify-center rounded-lg text-light-4 hover:bg-hover-s1 hover:text-danger-1"
59
+ },
60
+ /* @__PURE__ */ e.createElement(N, { className: "h-3.5 w-3.5" })
61
+ )))));
62
+ }
63
+ export {
64
+ R as SavedLayersList
65
+ };
66
+ //# sourceMappingURL=index.es172.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es172.js","sources":["../src/components/organisms/image-editor/components/saved-layers-list.tsx"],"sourcesContent":["import { Bookmark, Loader2, Plus, SearchIcon, Trash2 } from 'lucide-react'\nimport React, { useEffect, useState } from 'react'\n\nimport { Input } from '@/components/atoms/input'\n\nimport {\n ImageEditorEngine,\n ImageEditorSavedLayer,\n ImageEditorUiState,\n} from '../image-editor.types'\n\ninterface SavedLayersListProps {\n ui: ImageEditorUiState\n engine: ImageEditorEngine\n}\n\nconst TYPE_LABEL: Record<string, string> = {\n text: 'Text',\n shape: 'Shape',\n stroke: 'Drawing',\n sticker: 'Sticker',\n}\n\nconst SEARCH_DEBOUNCE_MS = 350\n\nexport function SavedLayersList({ ui, engine }: SavedLayersListProps) {\n const [query, setQuery] = useState('')\n const [results, setResults] = useState<ImageEditorSavedLayer[] | null>(null)\n const [searching, setSearching] = useState(false)\n\n const saved = ui.savedLayers ?? []\n const searchable = ui.canSearchSavedLayers || saved.length > 0\n\n useEffect(() => {\n const q = query.trim()\n if (!q) {\n setResults(null)\n setSearching(false)\n return\n }\n setSearching(true)\n let cancelled = false\n const t = setTimeout(() => {\n engine\n .searchSavedLayers(q)\n // A slow response for an old query must not overwrite a newer one.\n .then((r) => !cancelled && setResults(r))\n .catch(() => !cancelled && setResults([]))\n .finally(() => !cancelled && setSearching(false))\n }, SEARCH_DEBOUNCE_MS)\n return () => {\n cancelled = true\n clearTimeout(t)\n }\n }, [query, engine])\n\n if (!searchable) return null\n\n const rows = results ?? saved\n const isSearchResults = results !== null\n\n return (\n <div className=\"mt-4 border-t border-neutral-1 pt-3.5\">\n <span className=\"mb-2 flex items-center gap-1.5 text-xs font-medium text-light-2\">\n <Bookmark className=\"h-3.5 w-3.5\" />\n Saved layers\n </span>\n\n <div className=\"relative mb-2\">\n <Input\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search saved layers\"\n className=\"pl-2 bg-light-1\"\n prefix={<SearchIcon className='h-5 w-5 text-light-4'/>}\n aria-label=\"Search saved layers\"\n />\n {searching && (\n <Loader2 className=\"absolute right-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 animate-spin text-light-4\" />\n )}\n </div>\n\n {rows.length === 0 ? (\n <p className=\"px-0.5 py-2 text-xs text-light-4\">\n {isSearchResults ? 'No layers match that.' : 'Nothing saved yet.'}\n </p>\n ) : (\n <ul className=\"flex flex-col gap-1\">\n {rows.map((item) => (\n <li key={item.id} className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n onClick={() =>\n isSearchResults\n ? engine.insertSavedLayerEntry(\n item as ImageEditorSavedLayer\n )\n : engine.insertSavedLayer(item.id)\n }\n disabled={!ui.hasImage}\n title={`Add \"${item.name}\"`}\n className=\"flex min-h-9 flex-1 items-center gap-2 overflow-hidden rounded-lg border border-neutral-2 bg-rest-s1 px-2.5 text-left text-xs hover:bg-hover-s1 disabled:pointer-events-none disabled:opacity-50\"\n >\n <Plus className=\"h-4 w-4 shrink-0 text-light-4\" />\n <span className=\"truncate text-light-2\">{item.name}</span>\n <span className=\"ml-auto shrink-0 text-[10px] uppercase tracking-wide text-light-4\">\n {TYPE_LABEL[\n ('type' in item\n ? (item.type as string)\n : ((item as ImageEditorSavedLayer).layer\n ?.type as string)) ?? ''\n ] ?? ''}\n </span>\n </button>\n <button\n type=\"button\"\n onClick={() => engine.deleteSavedLayer(item.id)}\n aria-label={`Delete saved layer ${item.name}`}\n className=\"flex min-h-9 w-9 shrink-0 items-center justify-center rounded-lg text-light-4 hover:bg-hover-s1 hover:text-danger-1\"\n >\n <Trash2 className=\"h-3.5 w-3.5\" />\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n )\n}\n"],"names":["TYPE_LABEL","SEARCH_DEBOUNCE_MS","SavedLayersList","ui","engine","query","setQuery","useState","results","setResults","searching","setSearching","saved","searchable","useEffect","q","cancelled","t","r","rows","isSearchResults","React","Bookmark","Input","e","SearchIcon","Loader2","item","Plus","Trash2"],"mappings":";;;AAgBA,MAAMA,IAAqC;AAAA,EACzC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX,GAEMC,IAAqB;AAEpB,SAASC,EAAgB,EAAE,IAAAC,GAAI,QAAAC,KAAgC;AACpE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAS,EAAE,GAC/B,CAACC,GAASC,CAAU,IAAIF,EAAyC,IAAI,GACrE,CAACG,GAAWC,CAAY,IAAIJ,EAAS,EAAK,GAE1CK,IAAQT,EAAG,eAAe,CAAA,GAC1BU,IAAaV,EAAG,wBAAwBS,EAAM,SAAS;AAyB7D,MAvBAE,EAAU,MAAM;AACd,UAAMC,IAAIV,EAAM,KAAA;AAChB,QAAI,CAACU,GAAG;AACN,MAAAN,EAAW,IAAI,GACfE,EAAa,EAAK;AAClB;AAAA,IACF;AACA,IAAAA,EAAa,EAAI;AACjB,QAAIK,IAAY;AAChB,UAAMC,IAAI,WAAW,MAAM;AACzB,MAAAb,EACG,kBAAkBW,CAAC,EAEnB,KAAK,CAACG,MAAM,CAACF,KAAaP,EAAWS,CAAC,CAAC,EACvC,MAAM,MAAM,CAACF,KAAaP,EAAW,CAAA,CAAE,CAAC,EACxC,QAAQ,MAAM,CAACO,KAAaL,EAAa,EAAK,CAAC;AAAA,IACpD,GAAGV,CAAkB;AACrB,WAAO,MAAM;AACX,MAAAe,IAAY,IACZ,aAAaC,CAAC;AAAA,IAChB;AAAA,EACF,GAAG,CAACZ,GAAOD,CAAM,CAAC,GAEd,CAACS,EAAY,QAAO;AAExB,QAAMM,IAAOX,KAAWI,GAClBQ,IAAkBZ,MAAY;AAEpC,yCACG,OAAA,EAAI,WAAU,2CACba,gBAAAA,EAAA,cAAC,QAAA,EAAK,WAAU,kEAAA,GACdA,gBAAAA,EAAA,cAACC,GAAA,EAAS,WAAU,eAAc,GAAE,cAEtC,GAEAD,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,gBAAA,GACbA,gBAAAA,EAAA;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,OAAOlB;AAAA,MACP,UAAU,CAACmB,MAAMlB,EAASkB,EAAE,OAAO,KAAK;AAAA,MACxC,aAAY;AAAA,MACZ,WAAU;AAAA,MACV,QAAQH,gBAAAA,EAAA,cAACI,GAAA,EAAW,WAAU,wBAAsB;AAAA,MACpD,cAAW;AAAA,IAAA;AAAA,EAAA,GAEZf,KACCW,gBAAAA,EAAA,cAACK,GAAA,EAAQ,WAAU,qFAAoF,CAE3G,GAECP,EAAK,WAAW,IACfE,gBAAAA,EAAA,cAAC,KAAA,EAAE,WAAU,mCAAA,GACVD,IAAkB,0BAA0B,oBAC/C,IAEAC,gBAAAA,EAAA,cAAC,MAAA,EAAG,WAAU,yBACXF,EAAK,IAAI,CAACQ,sCACR,MAAA,EAAG,KAAKA,EAAK,IAAI,WAAU,6BAC1BN,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS,MACPD,IACIhB,EAAO;AAAA,QACLuB;AAAA,MAAA,IAEFvB,EAAO,iBAAiBuB,EAAK,EAAE;AAAA,MAErC,UAAU,CAACxB,EAAG;AAAA,MACd,OAAO,QAAQwB,EAAK,IAAI;AAAA,MACxB,WAAU;AAAA,IAAA;AAAA,IAEVN,gBAAAA,EAAA,cAACO,GAAA,EAAK,WAAU,gCAAA,CAAgC;AAAA,IAChDP,gBAAAA,EAAA,cAAC,QAAA,EAAK,WAAU,wBAAA,GAAyBM,EAAK,IAAK;AAAA,IACnDN,gBAAAA,EAAA,cAAC,QAAA,EAAK,WAAU,oEAAA,GACbrB,GACE,UAAU2B,IACNA,EAAK,OACJA,EAA+B,OAC7B,SAAoB,EAC9B,KAAK,EACP;AAAA,EAAA,GAEFN,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS,MAAMjB,EAAO,iBAAiBuB,EAAK,EAAE;AAAA,MAC9C,cAAY,sBAAsBA,EAAK,IAAI;AAAA,MAC3C,WAAU;AAAA,IAAA;AAAA,IAEVN,gBAAAA,EAAA,cAACQ,GAAA,EAAO,WAAU,cAAA,CAAc;AAAA,EAAA,CAEpC,CACD,CACH,CAEJ;AAEJ;"}
@@ -1,23 +1,23 @@
1
1
  import t from "react";
2
- import { Input as m } from "./index11.es.js";
3
- import { Checkbox as v } from "./index10.es.js";
4
- import { RadioGroup as u, RadioGroupItem as p } from "./index13.es.js";
5
- import { MultiCombobox as I } from "./index23.es.js";
6
- import { SingleCombobox as _ } from "./index27.es.js";
7
- import { CreatableMultiCombobox as C } from "./index28.es.js";
8
- import { Textarea as x } from "./index16.es.js";
9
- import { Typography as s } from "./index19.es.js";
2
+ import { Input as m } from "./index.es11.js";
3
+ import { Checkbox as v } from "./index.es10.js";
4
+ import { RadioGroup as u, RadioGroupItem as p } from "./index.es13.js";
5
+ import { MultiCombobox as I } from "./index.es23.js";
6
+ import { SingleCombobox as _ } from "./index.es27.js";
7
+ import { CreatableMultiCombobox as C } from "./index.es28.js";
8
+ import { Textarea as x } from "./index.es16.js";
9
+ import { Typography as s } from "./index.es19.js";
10
10
  import { Phone as O, Mail as T } from "lucide-react";
11
- import { SingleImagePicker as y } from "./index173.es.js";
12
- import { SingleVideoPicker as R } from "./index174.es.js";
13
- import { MultiImagePicker as M } from "./index175.es.js";
14
- import { MultiVideoPicker as P } from "./index176.es.js";
15
- import { RepeatableGroup as N } from "./index177.es.js";
16
- import { TaggableMultiImagePicker as B } from "./index178.es.js";
17
- import { FormFieldType as c } from "./index142.es.js";
18
- import { DatePicker as U } from "./index69.es.js";
19
- import { TaggableImageUploadFieldWithInput as G } from "./index179.es.js";
20
- import { useFormValues as L } from "./index141.es.js";
11
+ import { SingleImagePicker as y } from "./index.es178.js";
12
+ import { SingleVideoPicker as R } from "./index.es179.js";
13
+ import { MultiImagePicker as M } from "./index.es180.js";
14
+ import { MultiVideoPicker as P } from "./index.es181.js";
15
+ import { RepeatableGroup as N } from "./index.es182.js";
16
+ import { TaggableMultiImagePicker as B } from "./index.es183.js";
17
+ import { FormFieldType as c } from "./index.es162.js";
18
+ import { DatePicker as U } from "./index.es69.js";
19
+ import { TaggableImageUploadFieldWithInput as G } from "./index.es184.js";
20
+ import { useFormValues as L } from "./index.es161.js";
21
21
  const f = ({ field: e }) => {
22
22
  const {
23
23
  values: o,
@@ -286,4 +286,4 @@ const f = ({ field: e }) => {
286
286
  export {
287
287
  f as FormField
288
288
  };
289
- //# sourceMappingURL=index170.es.js.map
289
+ //# sourceMappingURL=index.es173.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index170.es.js","sources":["../src/components/ui/form-renderer/components/form-fields/index.tsx"],"sourcesContent":["// components/FormField.tsx\nimport React from 'react'\nimport {\n AssetValue,\n FormField as FormFieldInterface,\n RadioGroupWithInputFieldValue,\n TaggableAssetValue,\n} from '../../form.types'\nimport { useFormValues } from '../../context/form-values'\nimport { Input } from '@/components/atoms/input'\nimport { Checkbox } from '@/components/atoms/checkbox'\nimport { RadioGroup } from '@/components/atoms/radio-group'\nimport { RadioGroupItem } from '@/components/atoms/radio-group'\nimport { MultiCombobox } from '@/components/molecules/multi-combobox'\nimport { SingleCombobox } from '@/components/molecules/single-combobox'\nimport { CreatableMultiCombobox } from '@/components/molecules/creatable-multi-combobox'\nimport { Textarea } from '@/components/atoms/textarea'\nimport { Typography } from '@/components/atoms/typography'\n\nimport { Mail, Phone } from 'lucide-react'\nimport { SingleImagePicker } from './components/single-image-picker'\nimport { SingleVideoPicker } from './components/single-video-picker'\nimport { MultiImagePicker } from './components/multi-image-picker'\nimport { MultiVideoPicker } from './components/multi-video-picker'\nimport { RepeatableGroup } from './components/repeatable-group'\nimport { TaggableMultiImagePicker } from './components/taggable-multi-image-picker'\nimport { FormFieldType } from '../../form.enums'\nimport { DatePicker } from '@/components/unstyled/date-picker'\nimport { TaggableImageUploadFieldWithInput } from './components/taggable-multi-image-picker-with-input'\n\ninterface FormFieldProps {\n field: FormFieldInterface\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({ field }) => {\n const {\n values,\n errors,\n setValue,\n getRequestHeaders,\n getCreateOptionExtraBody,\n } = useFormValues()\n\n const renderField = () => {\n switch (field.type) {\n case FormFieldType.SINGLE_COMBOBOX:\n return (\n <SingleCombobox\n options={field.options.map((option) => ({\n id: option,\n name: option,\n }))}\n value={values[field.id] as string}\n onChange={(data) => setValue(field.id, data)}\n placeholder={field.placeholder}\n />\n )\n\n case FormFieldType.CREATABLE_MULTI_COMBOBOX: {\n const selected =\n (values[field.id] as string)?.split(',').filter(Boolean) ?? []\n return (\n <CreatableMultiCombobox\n fieldId={field.id}\n optionsUrl={field.optionsUrl}\n createOptionUrl={field.createOptionUrl}\n optionsRequestBody={field.optionsRequestBody}\n createOptionRequestBody={field.createOptionRequestBody}\n createOptionValueKey={field.createOptionValueKey}\n createOptionExtraBody={\n field.skipCreateOptionExtraBody\n ? undefined\n : getCreateOptionExtraBody\n }\n requestHeaders={getRequestHeaders}\n urlTemplateData={values}\n value={selected}\n onChange={(data) =>\n setValue(field.id, data.length > 0 ? data.join(',') : undefined)\n }\n placeholder={field.placeholder}\n minSelected={field.minSelected}\n maxSelected={field.maxSelected}\n />\n )\n }\n\n case FormFieldType.MULTI_COMBOBOX:\n return (\n <MultiCombobox\n options={field.options.map((option) => ({\n label: option,\n value: option,\n }))}\n selected={(values[field.id] as string)?.split(',') || []}\n onChange={(data) => {\n if (data.length === 0) {\n setValue(field.id, undefined)\n } else {\n setValue(field.id, (data as string[]).join(','))\n }\n }}\n placeholder={field.placeholder}\n />\n )\n\n case FormFieldType.RADIO_GROUP:\n return (\n <RadioGroup\n value={values[field.id] as string}\n onValueChange={(data) => setValue(field.id, data)}\n >\n {field.options.map((option) => (\n <div key={option} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option} id={option} />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n ))}\n </RadioGroup>\n )\n\n case FormFieldType.RADIO_GROUP_WITH_OPTIONAL_INPUT: {\n const value = values[field.id] as RadioGroupWithInputFieldValue\n return (\n <div>\n <RadioGroup\n value={value?.radio_value}\n onValueChange={(data) =>\n setValue(field.id, {\n ...value,\n radio_value: data,\n input_value: '',\n })\n }\n >\n {field.options.map((option) => (\n <div key={option} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option} id={option} />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n ))}\n </RadioGroup>\n {field.inputTriggerOptionValue === value?.radio_value ? (\n <Input\n id={field.id}\n type=\"text\"\n placeholder={field.inputFieldPlaceholder}\n value={value?.input_value}\n onChange={(e) =>\n setValue(field.id, {\n ...value,\n input_value: e.target.value,\n })\n }\n />\n ) : null}\n </div>\n )\n }\n\n case FormFieldType.CHECKBOX_GROUP: {\n const value = values[field.id] as string\n return (\n <div className=\"flex flex-col gap-2\">\n {field.options.map((option) => {\n return (\n <div key={option} className=\"flex items-center space-x-2\">\n <Checkbox\n id={option}\n checked={value?.split(',').includes(option)}\n onCheckedChange={(data) => {\n if (data) {\n setValue(\n field.id,\n value ? `${value},${option}` : option\n )\n } else {\n setValue(\n field.id,\n value\n ?.split(',')\n .filter((item) => item !== option)\n .join(',')\n )\n }\n }}\n />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n )\n })}\n </div>\n )\n }\n\n case FormFieldType.DATE_PICKER: {\n const epochValue = values[field.id] as number | undefined\n const dateValue = epochValue ? new Date(epochValue * 1000) : undefined\n return (\n <DatePicker\n variant=\"single\"\n date={dateValue}\n onDateChange={(date) => {\n if (date) {\n setValue(field.id, Math.floor(date.valueOf() / 1000))\n }\n }}\n />\n )\n }\n\n case FormFieldType.LONG_TEXT:\n return (\n <Textarea\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n\n case FormFieldType.EMAIL:\n return (\n <Input\n type=\"email\"\n id={field.id}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n placeholder={field.placeholder}\n prefix={<Mail className=\"stroke-gray-400\" size={20} />}\n />\n )\n\n case FormFieldType.SHORT_TEXT:\n // Default string input\n return (\n <Input\n id={field.id}\n type=\"text\"\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.MOBILE_NUMBER:\n return (\n <Input\n prefix={<Phone className=\"stroke-gray-400\" size={20} />}\n type=\"tel\"\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.NUMBER:\n return (\n <Input\n // type=\"number\"\n type=\"number\"\n inputMode=\"decimal\"\n pattern=\"^\\d*\\.?\\d*$\"\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.SINGLE_IMAGE_PICKER:\n return (\n <SingleImagePicker\n id={field.id}\n onChange={(data?: AssetValue) => setValue(field.id, data)}\n value={values[field.id] as AssetValue | undefined}\n />\n )\n\n case FormFieldType.MULTI_IMAGE_PICKER:\n return (\n <MultiImagePicker\n id={field.id}\n onChange={(data?: AssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as AssetValue[] | undefined}\n maxImages={field.max_items}\n />\n )\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER:\n return (\n <TaggableMultiImagePicker\n id={field.id}\n onChange={(data?: TaggableAssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as TaggableAssetValue[] | undefined}\n options={field.options}\n maxImages={field.max_items}\n />\n )\n\n case FormFieldType.SINGLE_VIDEO_PICKER:\n return (\n <SingleVideoPicker\n id={field.id}\n onChange={(data?: AssetValue) => setValue(field.id, data)}\n value={values[field.id] as AssetValue | undefined}\n />\n )\n\n case FormFieldType.MULTI_VIDEO_PICKER:\n return (\n <MultiVideoPicker\n id={field.id}\n onChange={(data?: AssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as AssetValue[] | undefined}\n maxVideos={field.max_items}\n />\n )\n\n case FormFieldType.REPEATABLE_GROUP_FIELD: {\n return <RepeatableGroup field={field} />\n }\n\n case FormFieldType.SINGLE_VIDEO_PICKER_WITH_INPUT: {\n return (\n <Input\n id={field.id}\n required={field.required}\n type=\"url\"\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n }\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER_WITH_INPUT: {\n return (\n <TaggableImageUploadFieldWithInput\n id={field.id}\n onChange={(data?: TaggableAssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as TaggableAssetValue[] | undefined}\n maxImages={field.max_items}\n placeholder={field.placeholder}\n />\n )\n }\n\n default:\n return <div>Unknown Field</div>\n }\n }\n\n return (\n <aside className=\"flex flex-col gap-1\">\n <Typography variant=\"body1\" className=\"text-light-2\">\n {field.name}\n {field.required && <span className=\"text-danger-1\">*</span>}\n </Typography>\n {renderField()}\n {errors[field.id] && (\n <div className=\"error-message\">{errors[field.id]}</div>\n )}\n </aside>\n )\n}\n"],"names":["FormField","field","values","errors","setValue","getRequestHeaders","getCreateOptionExtraBody","useFormValues","renderField","FormFieldType","React","SingleCombobox","option","data","selected","CreatableMultiCombobox","MultiCombobox","RadioGroup","RadioGroupItem","Typography","value","Input","e","Checkbox","item","epochValue","dateValue","DatePicker","date","Textarea","Mail","Phone","SingleImagePicker","MultiImagePicker","TaggableMultiImagePicker","SingleVideoPicker","MultiVideoPicker","RepeatableGroup","TaggableImageUploadFieldWithInput"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCO,MAAMA,IAAsC,CAAC,EAAE,OAAAC,QAAY;AAChE,QAAM;AAAA,IACJ,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,0BAAAC;AAAA,EAAA,IACEC,EAAA,GAEEC,IAAc,MAAM;AACxB,YAAQP,EAAM,MAAA;AAAA,MACZ,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAASV,EAAM,QAAQ,IAAI,CAACW,OAAY;AAAA,cACtC,IAAIA;AAAA,cACJ,MAAMA;AAAA,YAAA,EACN;AAAA,YACF,OAAOV,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACY,MAAST,EAASH,EAAM,IAAIY,CAAI;AAAA,YAC3C,aAAaZ,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIzB,KAAKQ,EAAc,0BAA0B;AAC3C,cAAMK,IACHZ,EAAOD,EAAM,EAAE,GAAc,MAAM,GAAG,EAAE,OAAO,OAAO,KAAK,CAAA;AAC9D,eACES,gBAAAA,EAAA;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,SAASd,EAAM;AAAA,YACf,YAAYA,EAAM;AAAA,YAClB,iBAAiBA,EAAM;AAAA,YACvB,oBAAoBA,EAAM;AAAA,YAC1B,yBAAyBA,EAAM;AAAA,YAC/B,sBAAsBA,EAAM;AAAA,YAC5B,uBACEA,EAAM,4BACF,SACAK;AAAA,YAEN,gBAAgBD;AAAA,YAChB,iBAAiBH;AAAA,YACjB,OAAOY;AAAA,YACP,UAAU,CAACD,MACTT,EAASH,EAAM,IAAIY,EAAK,SAAS,IAAIA,EAAK,KAAK,GAAG,IAAI,MAAS;AAAA,YAEjE,aAAaZ,EAAM;AAAA,YACnB,aAAaA,EAAM;AAAA,YACnB,aAAaA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAGzB;AAAA,MAEA,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAASf,EAAM,QAAQ,IAAI,CAACW,OAAY;AAAA,cACtC,OAAOA;AAAA,cACP,OAAOA;AAAA,YAAA,EACP;AAAA,YACF,UAAWV,EAAOD,EAAM,EAAE,GAAc,MAAM,GAAG,KAAK,CAAA;AAAA,YACtD,UAAU,CAACY,MAAS;AAClB,cAAIA,EAAK,WAAW,IAClBT,EAASH,EAAM,IAAI,MAAS,IAE5BG,EAASH,EAAM,IAAKY,EAAkB,KAAK,GAAG,CAAC;AAAA,YAEnD;AAAA,YACA,aAAaZ,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIzB,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,OAAOf,EAAOD,EAAM,EAAE;AAAA,YACtB,eAAe,CAACY,MAAST,EAASH,EAAM,IAAIY,CAAI;AAAA,UAAA;AAAA,UAE/CZ,EAAM,QAAQ,IAAI,CAACW,MAClBF,gBAAAA,EAAA,cAAC,OAAA,EAAI,KAAKE,GAAQ,WAAU,8BAAA,GAC1BF,gBAAAA,EAAA,cAACQ,GAAA,EAAe,OAAON,GAAQ,IAAIA,EAAA,CAAQ,GAC3CF,gBAAAA,EAAA,cAACS,GAAA,EAAW,SAAQ,SAAQ,WAAU,eAAA,GACnCP,CACH,CACF,CACD;AAAA,QAAA;AAAA,MAIP,KAAKH,EAAc,iCAAiC;AAClD,cAAMW,IAAQlB,EAAOD,EAAM,EAAE;AAC7B,+CACG,OAAA,MACCS,gBAAAA,EAAA;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,OAAOG,GAAO;AAAA,YACd,eAAe,CAACP,MACdT,EAASH,EAAM,IAAI;AAAA,cACjB,GAAGmB;AAAA,cACH,aAAaP;AAAA,cACb,aAAa;AAAA,YAAA,CACd;AAAA,UAAA;AAAA,UAGFZ,EAAM,QAAQ,IAAI,CAACW,MAClBF,gBAAAA,EAAA,cAAC,OAAA,EAAI,KAAKE,GAAQ,WAAU,8BAAA,GAC1BF,gBAAAA,EAAA,cAACQ,GAAA,EAAe,OAAON,GAAQ,IAAIA,EAAA,CAAQ,GAC3CF,gBAAAA,EAAA,cAACS,GAAA,EAAW,SAAQ,SAAQ,WAAU,eAAA,GACnCP,CACH,CACF,CACD;AAAA,QAAA,GAEFX,EAAM,4BAA4BmB,GAAO,cACxCV,gBAAAA,EAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,IAAIpB,EAAM;AAAA,YACV,MAAK;AAAA,YACL,aAAaA,EAAM;AAAA,YACnB,OAAOmB,GAAO;AAAA,YACd,UAAU,CAACE,MACTlB,EAASH,EAAM,IAAI;AAAA,cACjB,GAAGmB;AAAA,cACH,aAAaE,EAAE,OAAO;AAAA,YAAA,CACvB;AAAA,UAAA;AAAA,QAAA,IAGH,IACN;AAAA,MAEJ;AAAA,MAEA,KAAKb,EAAc,gBAAgB;AACjC,cAAMW,IAAQlB,EAAOD,EAAM,EAAE;AAC7B,eACES,gBAAAA,EAAA,cAAC,SAAI,WAAU,sBAAA,GACZT,EAAM,QAAQ,IAAI,CAACW,MAEhBF,gBAAAA,EAAA,cAAC,OAAA,EAAI,KAAKE,GAAQ,WAAU,iCAC1BF,gBAAAA,EAAA;AAAA,UAACa;AAAA,UAAA;AAAA,YACC,IAAIX;AAAA,YACJ,SAASQ,GAAO,MAAM,GAAG,EAAE,SAASR,CAAM;AAAA,YAC1C,iBAAiB,CAACC,MAAS;AACzB,cAAIA,IACFT;AAAA,gBACEH,EAAM;AAAA,gBACNmB,IAAQ,GAAGA,CAAK,IAAIR,CAAM,KAAKA;AAAA,cAAA,IAGjCR;AAAA,gBACEH,EAAM;AAAA,gBACNmB,GACI,MAAM,GAAG,EACV,OAAO,CAACI,MAASA,MAASZ,CAAM,EAChC,KAAK,GAAG;AAAA,cAAA;AAAA,YAGjB;AAAA,UAAA;AAAA,QAAA,mCAEDO,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCP,CACH,CACF,CAEH,CACH;AAAA,MAEJ;AAAA,MAEA,KAAKH,EAAc,aAAa;AAC9B,cAAMgB,IAAavB,EAAOD,EAAM,EAAE,GAC5ByB,IAAYD,IAAa,IAAI,KAAKA,IAAa,GAAI,IAAI;AAC7D,eACEf,gBAAAA,EAAA;AAAA,UAACiB;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAMD;AAAA,YACN,cAAc,CAACE,MAAS;AACtB,cAAIA,KACFxB,EAASH,EAAM,IAAI,KAAK,MAAM2B,EAAK,YAAY,GAAI,CAAC;AAAA,YAExD;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN;AAAA,MAEA,KAAKnB,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACmB;AAAA,UAAA;AAAA,YACC,IAAI5B,EAAM;AAAA,YACV,aAAaA,EAAM;AAAA,YACnB,OAAOC,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACqB,MAAMlB,EAASH,EAAM,IAAIqB,EAAE,OAAO,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAIxD,KAAKb,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,IAAIpB,EAAM;AAAA,YACV,OAAOC,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACqB,MAAMlB,EAASH,EAAM,IAAIqB,EAAE,OAAO,KAAK;AAAA,YAClD,aAAarB,EAAM;AAAA,YACnB,QAAQS,gBAAAA,EAAA,cAACoB,GAAA,EAAK,WAAU,mBAAkB,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAI1D,KAAKrB,EAAc;AAEjB,eACEC,gBAAAA,EAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,IAAIpB,EAAM;AAAA,YACV,MAAK;AAAA,YACL,aAAaA,EAAM;AAAA,YACnB,OAAOC,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACqB,MAAMlB,EAASH,EAAM,IAAIqB,EAAE,OAAO,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAGxD,KAAKb,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,QAAQX,gBAAAA,EAAA,cAACqB,GAAA,EAAM,WAAU,mBAAkB,MAAM,IAAI;AAAA,YACrD,MAAK;AAAA,YACL,IAAI9B,EAAM;AAAA,YACV,aAAaA,EAAM;AAAA,YACnB,OAAOC,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACqB,MAAMlB,EAASH,EAAM,IAAIqB,EAAE,OAAO,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAGxD,KAAKb,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,IAAIpB,EAAM;AAAA,YACV,aAAaA,EAAM;AAAA,YACnB,OAAOC,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACqB,MAAMlB,EAASH,EAAM,IAAIqB,EAAE,OAAO,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAGxD,KAAKb,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACsB;AAAA,UAAA;AAAA,YACC,IAAI/B,EAAM;AAAA,YACV,UAAU,CAACY,MAAsBT,EAASH,EAAM,IAAIY,CAAI;AAAA,YACxD,OAAOX,EAAOD,EAAM,EAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAI5B,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACuB;AAAA,UAAA;AAAA,YACC,IAAIhC,EAAM;AAAA,YACV,UAAU,CAACY,MAAwBT,EAASH,EAAM,IAAIY,CAAI;AAAA,YAC1D,OAAOX,EAAOD,EAAM,EAAE;AAAA,YACtB,WAAWA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIvB,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACwB;AAAA,UAAA;AAAA,YACC,IAAIjC,EAAM;AAAA,YACV,UAAU,CAACY,MAAgCT,EAASH,EAAM,IAAIY,CAAI;AAAA,YAClE,OAAOX,EAAOD,EAAM,EAAE;AAAA,YACtB,SAASA,EAAM;AAAA,YACf,WAAWA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIvB,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACyB;AAAA,UAAA;AAAA,YACC,IAAIlC,EAAM;AAAA,YACV,UAAU,CAACY,MAAsBT,EAASH,EAAM,IAAIY,CAAI;AAAA,YACxD,OAAOX,EAAOD,EAAM,EAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAI5B,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAAC0B;AAAA,UAAA;AAAA,YACC,IAAInC,EAAM;AAAA,YACV,UAAU,CAACY,MAAwBT,EAASH,EAAM,IAAIY,CAAI;AAAA,YAC1D,OAAOX,EAAOD,EAAM,EAAE;AAAA,YACtB,WAAWA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIvB,KAAKQ,EAAc;AACjB,eAAOC,gBAAAA,EAAA,cAAC2B,KAAgB,OAAApC,EAAA,CAAc;AAAA,MAGxC,KAAKQ,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,IAAIpB,EAAM;AAAA,YACV,UAAUA,EAAM;AAAA,YAChB,MAAK;AAAA,YACL,aAAaA,EAAM;AAAA,YACnB,OAAOC,EAAOD,EAAM,EAAE;AAAA,YACtB,UAAU,CAACqB,MAAMlB,EAASH,EAAM,IAAIqB,EAAE,OAAO,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAKxD,KAAKb,EAAc;AACjB,eACEC,gBAAAA,EAAA;AAAA,UAAC4B;AAAA,UAAA;AAAA,YACC,IAAIrC,EAAM;AAAA,YACV,UAAU,CAACY,MAAgCT,EAASH,EAAM,IAAIY,CAAI;AAAA,YAClE,OAAOX,EAAOD,EAAM,EAAE;AAAA,YACtB,WAAWA,EAAM;AAAA,YACjB,aAAaA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAKzB;AACE,eAAOS,gBAAAA,EAAA,cAAC,aAAI,eAAa;AAAA,IAAA;AAAA,EAE/B;AAEA,SACEA,gBAAAA,EAAA,cAAC,SAAA,EAAM,WAAU,sBAAA,mCACdS,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnClB,EAAM,MACNA,EAAM,4CAAa,QAAA,EAAK,WAAU,gBAAA,GAAgB,GAAC,CACtD,GACCO,EAAA,GACAL,EAAOF,EAAM,EAAE,KACdS,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,gBAAA,GAAiBP,EAAOF,EAAM,EAAE,CAAE,CAErD;AAEJ;"}
1
+ {"version":3,"file":"index.es173.js","sources":["../src/components/ui/form-renderer/components/form-fields/index.tsx"],"sourcesContent":["// components/FormField.tsx\nimport React from 'react'\nimport {\n AssetValue,\n FormField as FormFieldInterface,\n RadioGroupWithInputFieldValue,\n TaggableAssetValue,\n} from '../../form.types'\nimport { useFormValues } from '../../context/form-values'\nimport { Input } from '@/components/atoms/input'\nimport { Checkbox } from '@/components/atoms/checkbox'\nimport { RadioGroup } from '@/components/atoms/radio-group'\nimport { RadioGroupItem } from '@/components/atoms/radio-group'\nimport { MultiCombobox } from '@/components/molecules/multi-combobox'\nimport { SingleCombobox } from '@/components/molecules/single-combobox'\nimport { CreatableMultiCombobox } from '@/components/molecules/creatable-multi-combobox'\nimport { Textarea } from '@/components/atoms/textarea'\nimport { Typography } from '@/components/atoms/typography'\n\nimport { Mail, Phone } from 'lucide-react'\nimport { SingleImagePicker } from './components/single-image-picker'\nimport { SingleVideoPicker } from './components/single-video-picker'\nimport { MultiImagePicker } from './components/multi-image-picker'\nimport { MultiVideoPicker } from './components/multi-video-picker'\nimport { RepeatableGroup } from './components/repeatable-group'\nimport { TaggableMultiImagePicker } from './components/taggable-multi-image-picker'\nimport { FormFieldType } from '../../form.enums'\nimport { DatePicker } from '@/components/unstyled/date-picker'\nimport { TaggableImageUploadFieldWithInput } from './components/taggable-multi-image-picker-with-input'\n\ninterface FormFieldProps {\n field: FormFieldInterface\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({ field }) => {\n const {\n values,\n errors,\n setValue,\n getRequestHeaders,\n getCreateOptionExtraBody,\n } = useFormValues()\n\n const renderField = () => {\n switch (field.type) {\n case FormFieldType.SINGLE_COMBOBOX:\n return (\n <SingleCombobox\n options={field.options.map((option) => ({\n id: option,\n name: option,\n }))}\n value={values[field.id] as string}\n onChange={(data) => setValue(field.id, data)}\n placeholder={field.placeholder}\n />\n )\n\n case FormFieldType.CREATABLE_MULTI_COMBOBOX: {\n const selected =\n (values[field.id] as string)?.split(',').filter(Boolean) ?? []\n return (\n <CreatableMultiCombobox\n fieldId={field.id}\n optionsUrl={field.optionsUrl}\n createOptionUrl={field.createOptionUrl}\n optionsRequestBody={field.optionsRequestBody}\n createOptionRequestBody={field.createOptionRequestBody}\n createOptionValueKey={field.createOptionValueKey}\n createOptionExtraBody={\n field.skipCreateOptionExtraBody\n ? undefined\n : getCreateOptionExtraBody\n }\n requestHeaders={getRequestHeaders}\n urlTemplateData={values}\n value={selected}\n onChange={(data) =>\n setValue(field.id, data.length > 0 ? data.join(',') : undefined)\n }\n placeholder={field.placeholder}\n minSelected={field.minSelected}\n maxSelected={field.maxSelected}\n />\n )\n }\n\n case FormFieldType.MULTI_COMBOBOX:\n return (\n <MultiCombobox\n options={field.options.map((option) => ({\n label: option,\n value: option,\n }))}\n selected={(values[field.id] as string)?.split(',') || []}\n onChange={(data) => {\n if (data.length === 0) {\n setValue(field.id, undefined)\n } else {\n setValue(field.id, (data as string[]).join(','))\n }\n }}\n placeholder={field.placeholder}\n />\n )\n\n case FormFieldType.RADIO_GROUP:\n return (\n <RadioGroup\n value={values[field.id] as string}\n onValueChange={(data) => setValue(field.id, data)}\n >\n {field.options.map((option) => (\n <div key={option} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option} id={option} />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n ))}\n </RadioGroup>\n )\n\n case FormFieldType.RADIO_GROUP_WITH_OPTIONAL_INPUT: {\n const value = values[field.id] as RadioGroupWithInputFieldValue\n return (\n <div>\n <RadioGroup\n value={value?.radio_value}\n onValueChange={(data) =>\n setValue(field.id, {\n ...value,\n radio_value: data,\n input_value: '',\n })\n }\n >\n {field.options.map((option) => (\n <div key={option} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option} id={option} />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n ))}\n </RadioGroup>\n {field.inputTriggerOptionValue === value?.radio_value ? (\n <Input\n id={field.id}\n type=\"text\"\n placeholder={field.inputFieldPlaceholder}\n value={value?.input_value}\n onChange={(e) =>\n setValue(field.id, {\n ...value,\n input_value: e.target.value,\n })\n }\n />\n ) : null}\n </div>\n )\n }\n\n case FormFieldType.CHECKBOX_GROUP: {\n const value = values[field.id] as string\n return (\n <div className=\"flex flex-col gap-2\">\n {field.options.map((option) => {\n return (\n <div key={option} className=\"flex items-center space-x-2\">\n <Checkbox\n id={option}\n checked={value?.split(',').includes(option)}\n onCheckedChange={(data) => {\n if (data) {\n setValue(\n field.id,\n value ? `${value},${option}` : option\n )\n } else {\n setValue(\n field.id,\n value\n ?.split(',')\n .filter((item) => item !== option)\n .join(',')\n )\n }\n }}\n />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n )\n })}\n </div>\n )\n }\n\n case FormFieldType.DATE_PICKER: {\n const epochValue = values[field.id] as number | undefined\n const dateValue = epochValue ? new Date(epochValue * 1000) : undefined\n return (\n <DatePicker\n variant=\"single\"\n date={dateValue}\n onDateChange={(date) => {\n if (date) {\n setValue(field.id, Math.floor(date.valueOf() / 1000))\n }\n }}\n />\n )\n }\n\n case FormFieldType.LONG_TEXT:\n return (\n <Textarea\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n\n case FormFieldType.EMAIL:\n return (\n <Input\n type=\"email\"\n id={field.id}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n placeholder={field.placeholder}\n prefix={<Mail className=\"stroke-gray-400\" size={20} />}\n />\n )\n\n case FormFieldType.SHORT_TEXT:\n // Default string input\n return (\n <Input\n id={field.id}\n type=\"text\"\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.MOBILE_NUMBER:\n return (\n <Input\n prefix={<Phone className=\"stroke-gray-400\" size={20} />}\n type=\"tel\"\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.NUMBER:\n return (\n <Input\n // type=\"number\"\n type=\"number\"\n inputMode=\"decimal\"\n pattern=\"^\\d*\\.?\\d*$\"\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.SINGLE_IMAGE_PICKER:\n return (\n <SingleImagePicker\n id={field.id}\n onChange={(data?: AssetValue) => setValue(field.id, data)}\n value={values[field.id] as AssetValue | undefined}\n />\n )\n\n case FormFieldType.MULTI_IMAGE_PICKER:\n return (\n <MultiImagePicker\n id={field.id}\n onChange={(data?: AssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as AssetValue[] | undefined}\n maxImages={field.max_items}\n />\n )\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER:\n return (\n <TaggableMultiImagePicker\n id={field.id}\n onChange={(data?: TaggableAssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as TaggableAssetValue[] | undefined}\n options={field.options}\n maxImages={field.max_items}\n />\n )\n\n case FormFieldType.SINGLE_VIDEO_PICKER:\n return (\n <SingleVideoPicker\n id={field.id}\n onChange={(data?: AssetValue) => setValue(field.id, data)}\n value={values[field.id] as AssetValue | undefined}\n />\n )\n\n case FormFieldType.MULTI_VIDEO_PICKER:\n return (\n <MultiVideoPicker\n id={field.id}\n onChange={(data?: AssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as AssetValue[] | undefined}\n maxVideos={field.max_items}\n />\n )\n\n case FormFieldType.REPEATABLE_GROUP_FIELD: {\n return <RepeatableGroup field={field} />\n }\n\n case FormFieldType.SINGLE_VIDEO_PICKER_WITH_INPUT: {\n return (\n <Input\n id={field.id}\n required={field.required}\n type=\"url\"\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n }\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER_WITH_INPUT: {\n return (\n <TaggableImageUploadFieldWithInput\n id={field.id}\n onChange={(data?: TaggableAssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as TaggableAssetValue[] | undefined}\n maxImages={field.max_items}\n placeholder={field.placeholder}\n />\n )\n }\n\n default:\n return <div>Unknown Field</div>\n }\n }\n\n return (\n <aside className=\"flex flex-col gap-1\">\n <Typography variant=\"body1\" className=\"text-light-2\">\n {field.name}\n {field.required && <span className=\"text-danger-1\">*</span>}\n </Typography>\n {renderField()}\n {errors[field.id] && (\n <div className=\"error-message\">{errors[field.id]}</div>\n )}\n </aside>\n )\n}\n"],"names":["FormField","field","values","errors","setValue","getRequestHeaders","getCreateOptionExtraBody","useFormValues","renderField","FormFieldType","React","SingleCombobox","option","data","selected","CreatableMultiCombobox","MultiCombobox","RadioGroup","RadioGroupItem","Typography","value","Input","e","Checkbox","item","epochValue","dateValue","DatePicker","date","Textarea","Mail","Phone","SingleImagePicker","MultiImagePicker","TaggableMultiImagePicker","SingleVideoPicker","MultiVideoPicker","RepeatableGroup","TaggableImageUploadFieldWithInput"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as r from "react";
2
2
  import { Clock4 as m } from "lucide-react";
3
- import { convertEpochTime as i } from "./index182.es.js";
4
- import { AvatarDemo as c } from "./index6.es.js";
5
- import { Typography as a } from "./index19.es.js";
3
+ import { convertEpochTime as i } from "./index.es185.js";
4
+ import { AvatarDemo as c } from "./index.es6.js";
5
+ import { Typography as a } from "./index.es19.js";
6
6
  const u = (e) => {
7
7
  const l = (t) => t ? t.split(" ").map((s) => s[0]).join("").toUpperCase() : "", o = () => {
8
8
  typeof window < "u" && e?.action?.redirect_url && (window.location.href = e?.action?.redirect_url);
@@ -35,4 +35,4 @@ const u = (e) => {
35
35
  export {
36
36
  u as default
37
37
  };
38
- //# sourceMappingURL=index171.es.js.map
38
+ //# sourceMappingURL=index.es174.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index171.es.js","sources":["../src/components/organisms/navbar/components/notification-panel/components/notification-card/notification-card.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { NotificationCardProps } from './notification-card.types'\nimport * as React from 'react'\nimport { Clock4 } from 'lucide-react'\nimport { convertEpochTime } from './notification.utils'\nimport { Avatar } from '@/components/atoms/avatar'\nimport { Typography } from '@/components/atoms/typography'\n\nconst NotificationCard: FC<NotificationCardProps> = (notification) => {\n const getInitials = (name: string): string => {\n if (!name) {\n return ''\n }\n return name\n .split(' ')\n .map((word) => word[0])\n .join('')\n .toUpperCase()\n }\n\n const onCardClick = () => {\n if (typeof window !== 'undefined' && notification?.action?.redirect_url)\n window.location.href = notification?.action?.redirect_url\n }\n\n return (\n <div\n className=\"flex flex-row items-start justify-start gap-2 p-3 border-b border-neutral-1 bg-light-1 hover:cursor-pointer\"\n onClick={() => {\n onCardClick()\n }}\n role=\"button\"\n onKeyDown={(event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n onCardClick()\n }\n }}\n tabIndex={0}\n >\n <Avatar\n fallback={getInitials(notification.user.first_name)}\n imageSrc={notification.user.profile_url}\n alt={getInitials(notification.user.first_name)}\n size=\"md\"\n />\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"body3\" className=\"text-light-2 hover:underline\">\n {notification.title}\n </Typography>\n <Typography variant=\"body4\" className=\"text-light-3\">\n {notification.description}\n </Typography>\n\n <div className=\"flex flex-row gap-[6px]\">\n <Clock4 size={16} className=\"stroke-light-2\" />\n <Typography variant=\"body6\" className=\"text-light-3\">\n {convertEpochTime(Number(notification.timestamp))}\n </Typography>\n </div>\n </div>\n </div>\n )\n}\n\nexport default NotificationCard\n"],"names":["NotificationCard","notification","getInitials","name","word","onCardClick","React","event","Avatar","Typography","Clock4","convertEpochTime"],"mappings":";;;;;AAQA,MAAMA,IAA8C,CAACC,MAAiB;AACpE,QAAMC,IAAc,CAACC,MACdA,IAGEA,EACJ,MAAM,GAAG,EACT,IAAI,CAACC,MAASA,EAAK,CAAC,CAAC,EACrB,KAAK,EAAE,EACP,YAAA,IANM,IASLC,IAAc,MAAM;AACxB,IAAI,OAAO,SAAW,OAAeJ,GAAc,QAAQ,iBACzD,OAAO,SAAS,OAAOA,GAAc,QAAQ;AAAA,EACjD;AAEA,SACE,gBAAAK,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS,MAAM;AACb,QAAAD,EAAA;AAAA,MACF;AAAA,MACA,MAAK;AAAA,MACL,WAAW,CAACE,MAA+B;AACzC,QAAIA,EAAM,QAAQ,WAChBF,EAAA;AAAA,MAEJ;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,IAEV,gBAAAC,EAAA;AAAA,MAACE;AAAAA,MAAA;AAAA,QACC,UAAUN,EAAYD,EAAa,KAAK,UAAU;AAAA,QAClD,UAAUA,EAAa,KAAK;AAAA,QAC5B,KAAKC,EAAYD,EAAa,KAAK,UAAU;AAAA,QAC7C,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAEP,gBAAAK,EAAA,cAAC,SAAI,WAAU,sBAAA,mCACZG,GAAA,EAAW,SAAQ,SAAQ,WAAU,kCACnCR,EAAa,KAChB,mCACCQ,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCR,EAAa,WAChB,GAEA,gBAAAK,EAAA,cAAC,SAAI,WAAU,0BAAA,mCACZI,GAAA,EAAO,MAAM,IAAI,WAAU,iBAAA,CAAiB,GAC7C,gBAAAJ,EAAA,cAACG,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCE,EAAiB,OAAOV,EAAa,SAAS,CAAC,CAClD,CACF,CACF;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"index.es174.js","sources":["../src/components/organisms/navbar/components/notification-panel/components/notification-card/notification-card.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { NotificationCardProps } from './notification-card.types'\nimport * as React from 'react'\nimport { Clock4 } from 'lucide-react'\nimport { convertEpochTime } from './notification.utils'\nimport { Avatar } from '@/components/atoms/avatar'\nimport { Typography } from '@/components/atoms/typography'\n\nconst NotificationCard: FC<NotificationCardProps> = (notification) => {\n const getInitials = (name: string): string => {\n if (!name) {\n return ''\n }\n return name\n .split(' ')\n .map((word) => word[0])\n .join('')\n .toUpperCase()\n }\n\n const onCardClick = () => {\n if (typeof window !== 'undefined' && notification?.action?.redirect_url)\n window.location.href = notification?.action?.redirect_url\n }\n\n return (\n <div\n className=\"flex flex-row items-start justify-start gap-2 p-3 border-b border-neutral-1 bg-light-1 hover:cursor-pointer\"\n onClick={() => {\n onCardClick()\n }}\n role=\"button\"\n onKeyDown={(event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n onCardClick()\n }\n }}\n tabIndex={0}\n >\n <Avatar\n fallback={getInitials(notification.user.first_name)}\n imageSrc={notification.user.profile_url}\n alt={getInitials(notification.user.first_name)}\n size=\"md\"\n />\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"body3\" className=\"text-light-2 hover:underline\">\n {notification.title}\n </Typography>\n <Typography variant=\"body4\" className=\"text-light-3\">\n {notification.description}\n </Typography>\n\n <div className=\"flex flex-row gap-[6px]\">\n <Clock4 size={16} className=\"stroke-light-2\" />\n <Typography variant=\"body6\" className=\"text-light-3\">\n {convertEpochTime(Number(notification.timestamp))}\n </Typography>\n </div>\n </div>\n </div>\n )\n}\n\nexport default NotificationCard\n"],"names":["NotificationCard","notification","getInitials","name","word","onCardClick","React","event","Avatar","Typography","Clock4","convertEpochTime"],"mappings":";;;;;AAQA,MAAMA,IAA8C,CAACC,MAAiB;AACpE,QAAMC,IAAc,CAACC,MACdA,IAGEA,EACJ,MAAM,GAAG,EACT,IAAI,CAACC,MAASA,EAAK,CAAC,CAAC,EACrB,KAAK,EAAE,EACP,YAAA,IANM,IASLC,IAAc,MAAM;AACxB,IAAI,OAAO,SAAW,OAAeJ,GAAc,QAAQ,iBACzD,OAAO,SAAS,OAAOA,GAAc,QAAQ;AAAA,EACjD;AAEA,SACE,gBAAAK,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS,MAAM;AACb,QAAAD,EAAA;AAAA,MACF;AAAA,MACA,MAAK;AAAA,MACL,WAAW,CAACE,MAA+B;AACzC,QAAIA,EAAM,QAAQ,WAChBF,EAAA;AAAA,MAEJ;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,IAEV,gBAAAC,EAAA;AAAA,MAACE;AAAAA,MAAA;AAAA,QACC,UAAUN,EAAYD,EAAa,KAAK,UAAU;AAAA,QAClD,UAAUA,EAAa,KAAK;AAAA,QAC5B,KAAKC,EAAYD,EAAa,KAAK,UAAU;AAAA,QAC7C,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAEP,gBAAAK,EAAA,cAAC,SAAI,WAAU,sBAAA,mCACZG,GAAA,EAAW,SAAQ,SAAQ,WAAU,kCACnCR,EAAa,KAChB,mCACCQ,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCR,EAAa,WAChB,GAEA,gBAAAK,EAAA,cAAC,SAAI,WAAU,0BAAA,mCACZI,GAAA,EAAO,MAAM,IAAI,WAAU,iBAAA,CAAiB,GAC7C,gBAAAJ,EAAA,cAACG,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCE,EAAiB,OAAOV,EAAa,SAAS,CAAC,CAClD,CACF,CACF;AAAA,EAAA;AAGN;"}
@@ -1,4 +1,4 @@
1
- import { Typography as t } from "./index19.es.js";
1
+ import { Typography as t } from "./index.es19.js";
2
2
  import * as e from "react";
3
3
  const i = () => /* @__PURE__ */ e.createElement("div", { className: "flex flex-col items-center justify-center h-full max-w-80" }, /* @__PURE__ */ e.createElement(
4
4
  "img",
@@ -11,4 +11,4 @@ const i = () => /* @__PURE__ */ e.createElement("div", { className: "flex flex-c
11
11
  export {
12
12
  i as default
13
13
  };
14
- //# sourceMappingURL=index172.es.js.map
14
+ //# sourceMappingURL=index.es175.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index172.es.js","sources":["../src/components/organisms/navbar/components/notification-panel/components/empty-state/empty-state.tsx"],"sourcesContent":["import { Typography } from '@/components/atoms/typography'\nimport { FC } from 'react'\nimport * as React from 'react'\n\nconst EmptyNotificationState: FC = () => {\n return (\n <div className=\"flex flex-col items-center justify-center h-full max-w-80\">\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/notification_empty_state_d1614ba3d3/notification_empty_state_d1614ba3d3.svg\"\n alt=\"empty-state\"\n className=\"h-[150px] w-[150px]\"\n />\n <div className=\"flex flex-col items-center justify-center gap-1\">\n <Typography variant=\"body1\" className=\"text-light-1\">\n No new notifications for now!\n </Typography>\n <Typography variant=\"body4\" className=\"text-center text-light-4\">\n Stay tuned for updates, and we&apos;ll keep you posted when something\n comes up!\n </Typography>\n </div>\n </div>\n )\n}\n\nexport default EmptyNotificationState\n"],"names":["EmptyNotificationState","React","Typography"],"mappings":";;AAIA,MAAMA,IAA6B,MAE/B,gBAAAC,EAAA,cAAC,OAAA,EAAI,WAAU,4DAAA,GACb,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAI;AAAA,IACJ,KAAI;AAAA,IACJ,WAAU;AAAA,EAAA;AAAA,mCAEX,OAAA,EAAI,WAAU,qDACb,gBAAAA,EAAA,cAACC,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBAAe,+BAErD,mCACCA,GAAA,EAAW,SAAQ,SAAQ,WAAU,8BAA2B,4EAGjE,CACF,CACF;"}
1
+ {"version":3,"file":"index.es175.js","sources":["../src/components/organisms/navbar/components/notification-panel/components/empty-state/empty-state.tsx"],"sourcesContent":["import { Typography } from '@/components/atoms/typography'\nimport { FC } from 'react'\nimport * as React from 'react'\n\nconst EmptyNotificationState: FC = () => {\n return (\n <div className=\"flex flex-col items-center justify-center h-full max-w-80\">\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/notification_empty_state_d1614ba3d3/notification_empty_state_d1614ba3d3.svg\"\n alt=\"empty-state\"\n className=\"h-[150px] w-[150px]\"\n />\n <div className=\"flex flex-col items-center justify-center gap-1\">\n <Typography variant=\"body1\" className=\"text-light-1\">\n No new notifications for now!\n </Typography>\n <Typography variant=\"body4\" className=\"text-center text-light-4\">\n Stay tuned for updates, and we&apos;ll keep you posted when something\n comes up!\n </Typography>\n </div>\n </div>\n )\n}\n\nexport default EmptyNotificationState\n"],"names":["EmptyNotificationState","React","Typography"],"mappings":";;AAIA,MAAMA,IAA6B,MAE/B,gBAAAC,EAAA,cAAC,OAAA,EAAI,WAAU,4DAAA,GACb,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAI;AAAA,IACJ,KAAI;AAAA,IACJ,WAAU;AAAA,EAAA;AAAA,mCAEX,OAAA,EAAI,WAAU,qDACb,gBAAAA,EAAA,cAACC,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBAAe,+BAErD,mCACCA,GAAA,EAAW,SAAQ,SAAQ,WAAU,8BAA2B,4EAGjE,CACF,CACF;"}