sveltekit-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/README.md +23 -0
  2. package/dist/Components/Alert/index.svelte +88 -0
  3. package/dist/Components/Alert/index.svelte.js +101 -0
  4. package/dist/Components/ArrowToggle/index.svelte +62 -0
  5. package/dist/Components/Attachment/index.svelte +69 -0
  6. package/dist/Components/Attachment/index.svelte.js +119 -0
  7. package/dist/Components/Audio/index.svelte +193 -0
  8. package/dist/Components/Audio/index.svelte.js +463 -0
  9. package/dist/Components/AudioEditor/index.svelte +253 -0
  10. package/dist/Components/AudioEditor/index.svelte.js +973 -0
  11. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  12. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  17. package/dist/Components/AuthCodeInput/index.svelte +85 -0
  18. package/dist/Components/AuthCodeInput/index.svelte.js +95 -0
  19. package/dist/Components/Breadcrumbs/index.svelte +27 -0
  20. package/dist/Components/Breadcrumbs/index.svelte.js +88 -0
  21. package/dist/Components/Button/index.svelte +721 -0
  22. package/dist/Components/Button/index.svelte.js +375 -0
  23. package/dist/Components/Chart/Klines/index.svelte +87 -0
  24. package/dist/Components/Chart/index.svelte +226 -0
  25. package/dist/Components/Chart/index.svelte.js +1084 -0
  26. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +150 -0
  27. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +45 -0
  28. package/dist/Components/ChartInput/DisplayNav/index.svelte +297 -0
  29. package/dist/Components/ChartInput/EditPanel/index.svelte +155 -0
  30. package/dist/Components/ChartInput/index.svelte +21 -0
  31. package/dist/Components/ChartInput/index.svelte.js +671 -0
  32. package/dist/Components/Checkbox/index.svelte +411 -0
  33. package/dist/Components/Checkbox/index.svelte.js +178 -0
  34. package/dist/Components/Code/index.svelte +23 -0
  35. package/dist/Components/Code/index.svelte.js +34 -0
  36. package/dist/Components/Color/index.svelte +51 -0
  37. package/dist/Components/Color/index.svelte.js +31 -0
  38. package/dist/Components/ColorInput/ChromaPicker/index.svelte +50 -0
  39. package/dist/Components/ColorInput/ColorPalette/index.svelte +62 -0
  40. package/dist/Components/ColorInput/OpacityPicker/index.svelte +68 -0
  41. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +136 -0
  42. package/dist/Components/ColorInput/index.svelte +70 -0
  43. package/dist/Components/ColorInput/index.svelte.js +383 -0
  44. package/dist/Components/ConditionsInput/index.svelte +46 -0
  45. package/dist/Components/ConditionsInput/index.svelte.js +201 -0
  46. package/dist/Components/Confetti/index.svelte +98 -0
  47. package/dist/Components/Confetti/index.svelte.js +94 -0
  48. package/dist/Components/Content/index.svelte +471 -0
  49. package/dist/Components/Content/index.svelte.js +903 -0
  50. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +31 -0
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +258 -0
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +31 -0
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +258 -0
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +58 -0
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +210 -0
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +28 -0
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +224 -0
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +44 -0
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +273 -0
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +41 -0
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +203 -0
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +19 -0
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +119 -0
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +60 -0
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +546 -0
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +47 -0
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +185 -0
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +35 -0
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +224 -0
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +20 -0
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +87 -0
  72. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +25 -0
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +101 -0
  74. package/dist/Components/ContentInput/AttributesInput/index.svelte +338 -0
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +1446 -0
  76. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +64 -0
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +97 -0
  78. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +122 -0
  79. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +41 -0
  80. package/dist/Components/ContentInput/index.svelte +50 -0
  81. package/dist/Components/ContentInput/index.svelte.js +1066 -0
  82. package/dist/Components/CronInput/index.svelte +78 -0
  83. package/dist/Components/CronInput/index.svelte.js +199 -0
  84. package/dist/Components/DataTypeInput/index.svelte +174 -0
  85. package/dist/Components/DataTypeInput/index.svelte.js +568 -0
  86. package/dist/Components/Dropdown/index.svelte +116 -0
  87. package/dist/Components/Dropdown/index.svelte.js +403 -0
  88. package/dist/Components/EmailAddress/index.svelte +22 -0
  89. package/dist/Components/EmailAddress/index.svelte.js +45 -0
  90. package/dist/Components/ErrorX/index.svelte +58 -0
  91. package/dist/Components/Eye/index.svelte +57 -0
  92. package/dist/Components/FileInput/index.svelte +146 -0
  93. package/dist/Components/FileInput/index.svelte.js +226 -0
  94. package/dist/Components/FunctionInput/Node/helpers/DefinedTargetInput/index.svelte +110 -0
  95. package/dist/Components/FunctionInput/Node/helpers/Field/index.svelte +109 -0
  96. package/dist/Components/FunctionInput/Node/helpers/Field/index.svelte.js +208 -0
  97. package/dist/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte +97 -0
  98. package/dist/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte.js +105 -0
  99. package/dist/Components/FunctionInput/Node/helpers/ObjectInput/index.svelte +198 -0
  100. package/dist/Components/FunctionInput/Node/helpers/StackArea/index.svelte +169 -0
  101. package/dist/Components/FunctionInput/Node/helpers/StackArea/index.svelte.js +152 -0
  102. package/dist/Components/FunctionInput/Node/index.svelte +144 -0
  103. package/dist/Components/FunctionInput/Node/index.svelte.js +130 -0
  104. package/dist/Components/FunctionInput/index.svelte +356 -0
  105. package/dist/Components/FunctionInput/index.svelte.js +1215 -0
  106. package/dist/Components/Hamburger/index.svelte +99 -0
  107. package/dist/Components/HorizScrollBox/index.svelte +145 -0
  108. package/dist/Components/Icon/index.svelte +412 -0
  109. package/dist/Components/Icon/index.svelte.js +117 -0
  110. package/dist/Components/IconInput/index.svelte +77 -0
  111. package/dist/Components/IconInput/index.svelte.js +260 -0
  112. package/dist/Components/Image/index.svelte +121 -0
  113. package/dist/Components/Image/index.svelte.js +114 -0
  114. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +165 -0
  115. package/dist/Components/ImageEditor/Image/index.svelte +104 -0
  116. package/dist/Components/ImageEditor/Panels/AI/index.svelte +36 -0
  117. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +96 -0
  118. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +124 -0
  119. package/dist/Components/ImageEditor/Panels/File/index.svelte +74 -0
  120. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +46 -0
  121. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +58 -0
  122. package/dist/Components/ImageEditor/index.svelte +91 -0
  123. package/dist/Components/ImageEditor/index.svelte.js +1907 -0
  124. package/dist/Components/ImageSlider/index.svelte +124 -0
  125. package/dist/Components/ImageSlider/index.svelte.js +99 -0
  126. package/dist/Components/InfoBox/index.svelte +89 -0
  127. package/dist/Components/Json/Nested/index.svelte +157 -0
  128. package/dist/Components/Json/index.svelte +60 -0
  129. package/dist/Components/Json/index.svelte.js +594 -0
  130. package/dist/Components/LabeledItem/index.svelte +102 -0
  131. package/dist/Components/Layout/NavBar/FullNav/index.svelte +53 -0
  132. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +87 -0
  133. package/dist/Components/Layout/NavBar/index.svelte +72 -0
  134. package/dist/Components/Layout/index.svelte +149 -0
  135. package/dist/Components/Layout/index.svelte.js +362 -0
  136. package/dist/Components/Link/index.svelte +46 -0
  137. package/dist/Components/Link/index.svelte.js +126 -0
  138. package/dist/Components/LoadingSuccessDiv/index.svelte +51 -0
  139. package/dist/Components/LoadingWheel/index.svelte +38 -0
  140. package/dist/Components/Location/index.svelte +85 -0
  141. package/dist/Components/Location/index.svelte.js +292 -0
  142. package/dist/Components/LocationInput/index.svelte +200 -0
  143. package/dist/Components/LocationInput/index.svelte.js +950 -0
  144. package/dist/Components/Number/index.svelte +47 -0
  145. package/dist/Components/Number/index.svelte.js +151 -0
  146. package/dist/Components/PhoneCountryCode/index.svelte +7 -0
  147. package/dist/Components/PhoneCountryCode/index.svelte.js +260 -0
  148. package/dist/Components/PhoneNumber/index.svelte +22 -0
  149. package/dist/Components/PhoneNumber/index.svelte.js +41 -0
  150. package/dist/Components/Popover/index.svelte +396 -0
  151. package/dist/Components/Popover/index.svelte.js +319 -0
  152. package/dist/Components/Qr/index.svelte +60 -0
  153. package/dist/Components/Qr/index.svelte.js +295 -0
  154. package/dist/Components/Slider/index.svelte +231 -0
  155. package/dist/Components/Slider/index.svelte.js +468 -0
  156. package/dist/Components/Spacer/index.svelte +41 -0
  157. package/dist/Components/StoragePicker/DisplayFile/index.svelte +15 -0
  158. package/dist/Components/StoragePicker/index.svelte +192 -0
  159. package/dist/Components/StoragePicker/index.svelte.js +593 -0
  160. package/dist/Components/SuccessCheck/index.svelte +56 -0
  161. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +110 -0
  162. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +494 -0
  163. package/dist/Components/TableAdvanced/FilterInput/index.svelte +54 -0
  164. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +247 -0
  165. package/dist/Components/TableAdvanced/Pagination/index.svelte +43 -0
  166. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +97 -0
  167. package/dist/Components/TableAdvanced/SortByInput/index.svelte +79 -0
  168. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +191 -0
  169. package/dist/Components/TableAdvanced/index.svelte +268 -0
  170. package/dist/Components/TableAdvanced/index.svelte.js +1422 -0
  171. package/dist/Components/Tag/index.svelte +45 -0
  172. package/dist/Components/Tag/index.svelte.js +76 -0
  173. package/dist/Components/TextArrayInput/index.svelte +108 -0
  174. package/dist/Components/TextArrayInput/index.svelte.js +239 -0
  175. package/dist/Components/TextInput/PasswordTooltip/index.svelte +89 -0
  176. package/dist/Components/TextInput/index.svelte +223 -0
  177. package/dist/Components/TextInput/index.svelte.js +434 -0
  178. package/dist/Components/Time/index.svelte +7 -0
  179. package/dist/Components/Time/index.svelte.js +38 -0
  180. package/dist/Components/TimeInput/NumberToggler/index.svelte +34 -0
  181. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +79 -0
  182. package/dist/Components/TimeInput/index.js +699 -0
  183. package/dist/Components/TimeInput/index.svelte +211 -0
  184. package/dist/Components/TimeInput/index.svelte.js +638 -0
  185. package/dist/Components/Tooltip/index.svelte +143 -0
  186. package/dist/Components/TransparentBackground/index.svelte +153 -0
  187. package/dist/Components/TypingDots/index.svelte +84 -0
  188. package/dist/Components/VariablePathInput/index.svelte +109 -0
  189. package/dist/Components/VariablePathInput/index.svelte.js +250 -0
  190. package/dist/Components/VideoTBD/index.svelte +100 -0
  191. package/dist/Components/XFollow/index.svelte +42 -0
  192. package/dist/Components/XPost/index.svelte +52 -0
  193. package/dist/Components/XPost/index.svelte.js +64 -0
  194. package/dist/Components/YoutubeVideo/index.svelte +73 -0
  195. package/dist/Components/YoutubeVideo/index.svelte.js +54 -0
  196. package/dist/actions/draggable.js +49 -0
  197. package/dist/actions/intersection_observer.js +24 -0
  198. package/dist/actions/no_spaces.js +33 -0
  199. package/dist/actions/numbers_only.js +26 -0
  200. package/dist/actions/scroll_y.js +28 -0
  201. package/dist/actions/stop_scroll_propagation_y.js +42 -0
  202. package/dist/actions/swipe_handler.js +295 -0
  203. package/dist/client/astc_formatting/index.js +1167 -0
  204. package/dist/client/docs/index.js +7612 -0
  205. package/dist/client/index.js +729 -0
  206. package/dist/client/types/index.js +4681 -0
  207. package/dist/index.js +161 -0
  208. package/dist/style.css +682 -0
  209. package/package.json +44 -0
  210. package/src/app.html +17 -0
  211. package/src/hooks.server.js +7 -0
  212. package/src/lib/Components/Alert/index.svelte +88 -0
  213. package/src/lib/Components/Alert/index.svelte.js +101 -0
  214. package/src/lib/Components/ArrowToggle/index.svelte +62 -0
  215. package/src/lib/Components/Attachment/index.svelte +69 -0
  216. package/src/lib/Components/Attachment/index.svelte.js +119 -0
  217. package/src/lib/Components/Audio/index.svelte +193 -0
  218. package/src/lib/Components/Audio/index.svelte.js +463 -0
  219. package/src/lib/Components/AudioEditor/index.svelte +253 -0
  220. package/src/lib/Components/AudioEditor/index.svelte.js +973 -0
  221. package/src/lib/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  222. package/src/lib/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  223. package/src/lib/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  224. package/src/lib/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  225. package/src/lib/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  226. package/src/lib/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  227. package/src/lib/Components/AuthCodeInput/index.svelte +85 -0
  228. package/src/lib/Components/AuthCodeInput/index.svelte.js +95 -0
  229. package/src/lib/Components/Breadcrumbs/index.svelte +27 -0
  230. package/src/lib/Components/Breadcrumbs/index.svelte.js +88 -0
  231. package/src/lib/Components/Button/index.svelte +721 -0
  232. package/src/lib/Components/Button/index.svelte.js +375 -0
  233. package/src/lib/Components/Chart/Klines/index.svelte +87 -0
  234. package/src/lib/Components/Chart/index.svelte +226 -0
  235. package/src/lib/Components/Chart/index.svelte.js +1084 -0
  236. package/src/lib/Components/ChartInput/DisplayNav/Klines/index.svelte +150 -0
  237. package/src/lib/Components/ChartInput/DisplayNav/Lines/index.svelte +45 -0
  238. package/src/lib/Components/ChartInput/DisplayNav/index.svelte +297 -0
  239. package/src/lib/Components/ChartInput/EditPanel/index.svelte +155 -0
  240. package/src/lib/Components/ChartInput/index.svelte +21 -0
  241. package/src/lib/Components/ChartInput/index.svelte.js +671 -0
  242. package/src/lib/Components/Checkbox/index.svelte +411 -0
  243. package/src/lib/Components/Checkbox/index.svelte.js +178 -0
  244. package/src/lib/Components/Code/index.svelte +23 -0
  245. package/src/lib/Components/Code/index.svelte.js +34 -0
  246. package/src/lib/Components/Color/index.svelte +51 -0
  247. package/src/lib/Components/Color/index.svelte.js +31 -0
  248. package/src/lib/Components/ColorInput/ChromaPicker/index.svelte +50 -0
  249. package/src/lib/Components/ColorInput/ColorPalette/index.svelte +62 -0
  250. package/src/lib/Components/ColorInput/OpacityPicker/index.svelte +68 -0
  251. package/src/lib/Components/ColorInput/ShowcasePicker/index.svelte +136 -0
  252. package/src/lib/Components/ColorInput/index.svelte +70 -0
  253. package/src/lib/Components/ColorInput/index.svelte.js +383 -0
  254. package/src/lib/Components/ConditionsInput/index.svelte +46 -0
  255. package/src/lib/Components/ConditionsInput/index.svelte.js +201 -0
  256. package/src/lib/Components/Confetti/index.svelte +98 -0
  257. package/src/lib/Components/Confetti/index.svelte.js +94 -0
  258. package/src/lib/Components/Content/index.svelte +471 -0
  259. package/src/lib/Components/Content/index.svelte.js +903 -0
  260. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +31 -0
  261. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +258 -0
  262. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +31 -0
  263. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +258 -0
  264. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +58 -0
  265. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +210 -0
  266. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +28 -0
  267. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +224 -0
  268. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +44 -0
  269. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +273 -0
  270. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +41 -0
  271. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +203 -0
  272. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +19 -0
  273. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +119 -0
  274. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +60 -0
  275. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +546 -0
  276. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +47 -0
  277. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +185 -0
  278. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +35 -0
  279. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +224 -0
  280. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +20 -0
  281. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +87 -0
  282. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +25 -0
  283. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +101 -0
  284. package/src/lib/Components/ContentInput/AttributesInput/index.svelte +338 -0
  285. package/src/lib/Components/ContentInput/AttributesInput/index.svelte.js +1446 -0
  286. package/src/lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +64 -0
  287. package/src/lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +97 -0
  288. package/src/lib/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +122 -0
  289. package/src/lib/Components/ContentInput/ContentPanelBuilder/index.svelte +41 -0
  290. package/src/lib/Components/ContentInput/index.svelte +50 -0
  291. package/src/lib/Components/ContentInput/index.svelte.js +1066 -0
  292. package/src/lib/Components/CronInput/index.svelte +78 -0
  293. package/src/lib/Components/CronInput/index.svelte.js +199 -0
  294. package/src/lib/Components/DataTypeInput/index.svelte +174 -0
  295. package/src/lib/Components/DataTypeInput/index.svelte.js +568 -0
  296. package/src/lib/Components/Dropdown/index.svelte +116 -0
  297. package/src/lib/Components/Dropdown/index.svelte.js +403 -0
  298. package/src/lib/Components/EmailAddress/index.svelte +22 -0
  299. package/src/lib/Components/EmailAddress/index.svelte.js +45 -0
  300. package/src/lib/Components/ErrorX/index.svelte +58 -0
  301. package/src/lib/Components/Eye/index.svelte +57 -0
  302. package/src/lib/Components/FileInput/index.svelte +146 -0
  303. package/src/lib/Components/FileInput/index.svelte.js +226 -0
  304. package/src/lib/Components/FunctionInput/Node/helpers/DefinedTargetInput/index.svelte +110 -0
  305. package/src/lib/Components/FunctionInput/Node/helpers/Field/index.svelte +109 -0
  306. package/src/lib/Components/FunctionInput/Node/helpers/Field/index.svelte.js +208 -0
  307. package/src/lib/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte +97 -0
  308. package/src/lib/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte.js +105 -0
  309. package/src/lib/Components/FunctionInput/Node/helpers/ObjectInput/index.svelte +198 -0
  310. package/src/lib/Components/FunctionInput/Node/helpers/StackArea/index.svelte +169 -0
  311. package/src/lib/Components/FunctionInput/Node/helpers/StackArea/index.svelte.js +152 -0
  312. package/src/lib/Components/FunctionInput/Node/index.svelte +144 -0
  313. package/src/lib/Components/FunctionInput/Node/index.svelte.js +130 -0
  314. package/src/lib/Components/FunctionInput/index.svelte +356 -0
  315. package/src/lib/Components/FunctionInput/index.svelte.js +1215 -0
  316. package/src/lib/Components/Hamburger/index.svelte +99 -0
  317. package/src/lib/Components/HorizScrollBox/index.svelte +145 -0
  318. package/src/lib/Components/Icon/index.svelte +412 -0
  319. package/src/lib/Components/Icon/index.svelte.js +117 -0
  320. package/src/lib/Components/IconInput/index.svelte +77 -0
  321. package/src/lib/Components/IconInput/index.svelte.js +260 -0
  322. package/src/lib/Components/Image/index.svelte +121 -0
  323. package/src/lib/Components/Image/index.svelte.js +114 -0
  324. package/src/lib/Components/ImageEditor/Image/CropBox/index.svelte +165 -0
  325. package/src/lib/Components/ImageEditor/Image/index.svelte +104 -0
  326. package/src/lib/Components/ImageEditor/Panels/AI/index.svelte +36 -0
  327. package/src/lib/Components/ImageEditor/Panels/Crop/index.svelte +96 -0
  328. package/src/lib/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +124 -0
  329. package/src/lib/Components/ImageEditor/Panels/File/index.svelte +74 -0
  330. package/src/lib/Components/ImageEditor/Panels/Filters/index.svelte +46 -0
  331. package/src/lib/Components/ImageEditor/Panels/Resize/index.svelte +58 -0
  332. package/src/lib/Components/ImageEditor/index.svelte +91 -0
  333. package/src/lib/Components/ImageEditor/index.svelte.js +1907 -0
  334. package/src/lib/Components/ImageSlider/index.svelte +124 -0
  335. package/src/lib/Components/ImageSlider/index.svelte.js +99 -0
  336. package/src/lib/Components/InfoBox/index.svelte +89 -0
  337. package/src/lib/Components/Json/Nested/index.svelte +157 -0
  338. package/src/lib/Components/Json/index.svelte +60 -0
  339. package/src/lib/Components/Json/index.svelte.js +594 -0
  340. package/src/lib/Components/LabeledItem/index.svelte +102 -0
  341. package/src/lib/Components/Layout/NavBar/FullNav/index.svelte +53 -0
  342. package/src/lib/Components/Layout/NavBar/NavGuts/index.svelte +87 -0
  343. package/src/lib/Components/Layout/NavBar/index.svelte +72 -0
  344. package/src/lib/Components/Layout/index.svelte +149 -0
  345. package/src/lib/Components/Layout/index.svelte.js +362 -0
  346. package/src/lib/Components/Link/index.svelte +46 -0
  347. package/src/lib/Components/Link/index.svelte.js +126 -0
  348. package/src/lib/Components/LoadingSuccessDiv/index.svelte +51 -0
  349. package/src/lib/Components/LoadingWheel/index.svelte +38 -0
  350. package/src/lib/Components/Location/index.svelte +85 -0
  351. package/src/lib/Components/Location/index.svelte.js +292 -0
  352. package/src/lib/Components/LocationInput/index.svelte +200 -0
  353. package/src/lib/Components/LocationInput/index.svelte.js +950 -0
  354. package/src/lib/Components/Number/index.svelte +47 -0
  355. package/src/lib/Components/Number/index.svelte.js +151 -0
  356. package/src/lib/Components/PhoneCountryCode/index.svelte +7 -0
  357. package/src/lib/Components/PhoneCountryCode/index.svelte.js +260 -0
  358. package/src/lib/Components/PhoneNumber/index.svelte +22 -0
  359. package/src/lib/Components/PhoneNumber/index.svelte.js +41 -0
  360. package/src/lib/Components/Popover/index.svelte +396 -0
  361. package/src/lib/Components/Popover/index.svelte.js +319 -0
  362. package/src/lib/Components/Qr/index.svelte +60 -0
  363. package/src/lib/Components/Qr/index.svelte.js +295 -0
  364. package/src/lib/Components/Slider/index.svelte +231 -0
  365. package/src/lib/Components/Slider/index.svelte.js +468 -0
  366. package/src/lib/Components/Spacer/index.svelte +41 -0
  367. package/src/lib/Components/StoragePicker/DisplayFile/index.svelte +15 -0
  368. package/src/lib/Components/StoragePicker/index.svelte +192 -0
  369. package/src/lib/Components/StoragePicker/index.svelte.js +593 -0
  370. package/src/lib/Components/SuccessCheck/index.svelte +56 -0
  371. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte +110 -0
  372. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte.js +494 -0
  373. package/src/lib/Components/TableAdvanced/FilterInput/index.svelte +54 -0
  374. package/src/lib/Components/TableAdvanced/FilterInput/index.svelte.js +247 -0
  375. package/src/lib/Components/TableAdvanced/Pagination/index.svelte +43 -0
  376. package/src/lib/Components/TableAdvanced/Pagination/index.svelte.js +97 -0
  377. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte +79 -0
  378. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte.js +191 -0
  379. package/src/lib/Components/TableAdvanced/index.svelte +268 -0
  380. package/src/lib/Components/TableAdvanced/index.svelte.js +1422 -0
  381. package/src/lib/Components/Tag/index.svelte +45 -0
  382. package/src/lib/Components/Tag/index.svelte.js +76 -0
  383. package/src/lib/Components/TextArrayInput/index.svelte +108 -0
  384. package/src/lib/Components/TextArrayInput/index.svelte.js +239 -0
  385. package/src/lib/Components/TextInput/PasswordTooltip/index.svelte +89 -0
  386. package/src/lib/Components/TextInput/index.svelte +223 -0
  387. package/src/lib/Components/TextInput/index.svelte.js +434 -0
  388. package/src/lib/Components/Time/index.svelte +7 -0
  389. package/src/lib/Components/Time/index.svelte.js +38 -0
  390. package/src/lib/Components/TimeInput/NumberToggler/index.svelte +34 -0
  391. package/src/lib/Components/TimeInput/NumberToggler/index.svelte.js +79 -0
  392. package/src/lib/Components/TimeInput/index.js +699 -0
  393. package/src/lib/Components/TimeInput/index.svelte +211 -0
  394. package/src/lib/Components/TimeInput/index.svelte.js +638 -0
  395. package/src/lib/Components/Tooltip/index.svelte +143 -0
  396. package/src/lib/Components/TransparentBackground/index.svelte +153 -0
  397. package/src/lib/Components/TypingDots/index.svelte +84 -0
  398. package/src/lib/Components/VariablePathInput/index.svelte +109 -0
  399. package/src/lib/Components/VariablePathInput/index.svelte.js +250 -0
  400. package/src/lib/Components/VideoTBD/index.svelte +100 -0
  401. package/src/lib/Components/XFollow/index.svelte +42 -0
  402. package/src/lib/Components/XPost/index.svelte +52 -0
  403. package/src/lib/Components/XPost/index.svelte.js +64 -0
  404. package/src/lib/Components/YoutubeVideo/index.svelte +73 -0
  405. package/src/lib/Components/YoutubeVideo/index.svelte.js +54 -0
  406. package/src/lib/actions/draggable.js +49 -0
  407. package/src/lib/actions/intersection_observer.js +24 -0
  408. package/src/lib/actions/no_spaces.js +33 -0
  409. package/src/lib/actions/numbers_only.js +26 -0
  410. package/src/lib/actions/scroll_y.js +28 -0
  411. package/src/lib/actions/stop_scroll_propagation_y.js +42 -0
  412. package/src/lib/actions/swipe_handler.js +295 -0
  413. package/src/lib/client/astc_formatting/index.js +1167 -0
  414. package/src/lib/client/docs/index.js +7612 -0
  415. package/src/lib/client/index.js +729 -0
  416. package/src/lib/client/types/index.js +4681 -0
  417. package/src/lib/index.js +161 -0
  418. package/src/lib/style.css +682 -0
  419. package/src/notlib/assets/static/Logo/index.svelte +27 -0
  420. package/src/routes/+layout.js +8 -0
  421. package/src/routes/+layout.svelte +176 -0
  422. package/src/routes/+page.svelte +83 -0
  423. package/src/routes/[component]/+page.svelte +167 -0
  424. package/src/routes/[component]/Showcase/Alert/index.svelte +26 -0
  425. package/src/routes/[component]/Showcase/Audio/index.svelte +86 -0
  426. package/src/routes/[component]/Showcase/AudioEditor/index.svelte +93 -0
  427. package/src/routes/[component]/Showcase/AuthCodeInput/index.svelte +13 -0
  428. package/src/routes/[component]/Showcase/Breadcrumbs/index.svelte +44 -0
  429. package/src/routes/[component]/Showcase/Button/index.svelte +350 -0
  430. package/src/routes/[component]/Showcase/Chart/index.svelte +11117 -0
  431. package/src/routes/[component]/Showcase/Checkbox/index.svelte +52 -0
  432. package/src/routes/[component]/Showcase/Code/index.svelte +13 -0
  433. package/src/routes/[component]/Showcase/Color/index.svelte +28 -0
  434. package/src/routes/[component]/Showcase/ColorInput/index.svelte +35 -0
  435. package/src/routes/[component]/Showcase/ConditionsInput/index.svelte +18 -0
  436. package/src/routes/[component]/Showcase/Confetti/index.svelte +22 -0
  437. package/src/routes/[component]/Showcase/Content/index.svelte +144 -0
  438. package/src/routes/[component]/Showcase/ContentInput/index.svelte +358 -0
  439. package/src/routes/[component]/Showcase/CronInput/index.svelte +30 -0
  440. package/src/routes/[component]/Showcase/DocsDefinition/index.svelte +155 -0
  441. package/src/routes/[component]/Showcase/Dropdown/index.svelte +88 -0
  442. package/src/routes/[component]/Showcase/FileInput/index.svelte +40 -0
  443. package/src/routes/[component]/Showcase/FunctionInput/index.svelte +77 -0
  444. package/src/routes/[component]/Showcase/Icon/index.svelte +120 -0
  445. package/src/routes/[component]/Showcase/IconInput/index.svelte +15 -0
  446. package/src/routes/[component]/Showcase/Image/index.svelte +119 -0
  447. package/src/routes/[component]/Showcase/ImageEditor/index.svelte +89 -0
  448. package/src/routes/[component]/Showcase/ImageSlider/index.svelte +26 -0
  449. package/src/routes/[component]/Showcase/InfoBox/index.svelte +44 -0
  450. package/src/routes/[component]/Showcase/Json/index.svelte +80 -0
  451. package/src/routes/[component]/Showcase/LabeledItem/index.svelte +18 -0
  452. package/src/routes/[component]/Showcase/Link/index.svelte +15 -0
  453. package/src/routes/[component]/Showcase/LoadingWheel/index.svelte +10 -0
  454. package/src/routes/[component]/Showcase/Location/index.svelte +422 -0
  455. package/src/routes/[component]/Showcase/LocationInput/index.svelte +121 -0
  456. package/src/routes/[component]/Showcase/Number/index.svelte +55 -0
  457. package/src/routes/[component]/Showcase/Popover/index.svelte +225 -0
  458. package/src/routes/[component]/Showcase/Qr/index.svelte +77 -0
  459. package/src/routes/[component]/Showcase/Slider/index.svelte +92 -0
  460. package/src/routes/[component]/Showcase/Spacer/index.svelte +27 -0
  461. package/src/routes/[component]/Showcase/StoragePicker/index.svelte +139 -0
  462. package/src/routes/[component]/Showcase/TableAdvanced/index.svelte +888 -0
  463. package/src/routes/[component]/Showcase/Tag/index.svelte +27 -0
  464. package/src/routes/[component]/Showcase/TextArrayInput/index.svelte +23 -0
  465. package/src/routes/[component]/Showcase/TextInput/index.svelte +95 -0
  466. package/src/routes/[component]/Showcase/Time/index.svelte +43 -0
  467. package/src/routes/[component]/Showcase/TimeInput/index.svelte +100 -0
  468. package/src/routes/[component]/Showcase/Tooltip/index.svelte +37 -0
  469. package/src/routes/[component]/Showcase/TransparentBackground/index.svelte +26 -0
  470. package/src/routes/[component]/Showcase/XFollow/index.svelte +7 -0
  471. package/src/routes/[component]/Showcase/XPost/index.svelte +24 -0
  472. package/src/routes/[component]/Showcase/YoutubeVideo/index.svelte +17 -0
  473. package/src/routes/test/+page.svelte +53 -0
  474. package/static/apple-touch-icon.png +0 -0
  475. package/static/browserconfig.xml +9 -0
  476. package/static/favicon-96x96.png +0 -0
  477. package/static/favicon-inactive.svg +4 -0
  478. package/static/favicon.svg +14 -0
  479. package/static/fonts/ProximaVara.woff2 +0 -0
  480. package/static/fonts/Quicksand-VariableFont.woff2 +0 -0
  481. package/static/fonts/RobotoSerif-VariableFont.woff2 +0 -0
  482. package/static/icon.png +0 -0
  483. package/static/site.webmanifest +21 -0
  484. package/static/web-app-manifest-192x192.png +0 -0
  485. package/static/web-app-manifest-512x512.png +0 -0
  486. package/svelte.config.js +12 -0
  487. package/vite.config.js +6 -0
@@ -0,0 +1,973 @@
1
+ import { create_unique_id, set_closurable, clean_file_name, url_to_file } from "$lib/client/index.js"
2
+ import { create_popover_manager } from "$lib/Components/Popover/index.svelte.js"
3
+ import { create_button_manager } from "$lib/Components/Button/index.svelte.js"
4
+ import { create_text_input_manager } from "$lib/Components/TextInput/index.svelte.js"
5
+ import { create_storage_picker_manager } from "$lib/Components/StoragePicker/index.svelte.js"
6
+ import { create_dropdown_manager } from "$lib/Components/Dropdown/index.svelte.js"
7
+ import { create_audio_manager } from "$lib/Components/Audio/index.svelte.js"
8
+ import alloy_voice_sample from "./samples/alloy-voice-sample.mp3"
9
+ import echo_voice_sample from "./samples/echo-voice-sample.mp3"
10
+ import fable_voice_sample from "./samples/fable-voice-sample.mp3"
11
+ import nova_voice_sample from "./samples/nova-voice-sample.mp3"
12
+ import onyx_voice_sample from "./samples/onyx-voice-sample.mp3"
13
+ import shimmer_voice_sample from "./samples/shimmer-voice-sample.mp3"
14
+
15
+ export function create_audio_editor_manager(config) {
16
+ let id = create_unique_id(null, 20)
17
+
18
+ const voices = [
19
+ {
20
+ id: "alloy",
21
+ name: "Alloy",
22
+ labels: [],
23
+ sample: alloy_voice_sample,
24
+ },
25
+ {
26
+ id: "echo",
27
+ name: "Echo",
28
+ labels: [],
29
+ sample: echo_voice_sample,
30
+ },
31
+ {
32
+ id: "fable",
33
+ name: "Fable",
34
+ labels: [],
35
+ sample: fable_voice_sample,
36
+ },
37
+ {
38
+ id: "nova",
39
+ name: "Nova",
40
+ labels: [],
41
+ sample: nova_voice_sample,
42
+ },
43
+ {
44
+ id: "onyx",
45
+ name: "Onyx",
46
+ labels: [],
47
+ sample: onyx_voice_sample,
48
+ },
49
+ {
50
+ id: "shimmer",
51
+ name: "Shimmer",
52
+ labels: [],
53
+ sample: shimmer_voice_sample,
54
+ },
55
+ ]
56
+
57
+ const audio_tags_input_base = {
58
+ TIT2: null,
59
+ TALB: null,
60
+ TPE1: null,
61
+ APIC: {
62
+ mime: null,
63
+ type: {
64
+ id: 0,
65
+ },
66
+ description: null,
67
+ imageBuffer: null,
68
+ },
69
+ TYER: 2024,
70
+ USLT: {
71
+ language: "eng",
72
+ text: null,
73
+ },
74
+ TLAN: null,
75
+ }
76
+
77
+ const audio_input_tag_defs = {
78
+ TIT2: { display_order: 1, name: "Title", example: "Audio Title" },
79
+ TALB: { display_order: 2, name: "Album Title", example: "Album Title" },
80
+ APIC: {
81
+ display_order: 3,
82
+ name: "Attached Picture",
83
+ example: "{ mime: 'image/jpeg', type: { id: 0 }, description: null, imageBuffer: null }",
84
+ },
85
+ TPE1: {
86
+ display_order: 4,
87
+ name: "Artist",
88
+ example: "Artist",
89
+ },
90
+ USLT: {
91
+ display_order: 5,
92
+ name: "Unsynchronised Lyrics",
93
+ example: "{ text: 'Lyrics of the audio', language: 'eng' }",
94
+ },
95
+ TYER: { display_order: 6, name: "Release Year", example: "2024" },
96
+ TLAN: { display_order: 7, name: "Language", example: "eng" },
97
+ TIT3: { display_order: 8, name: "Subtitle", example: "Audio Subtitle" },
98
+ TPE2: { display_order: 9, name: "Album Artist", example: "Album Artist" },
99
+ TCOM: {
100
+ display_order: 10,
101
+ name: "Composers",
102
+ example: "[ 'Composer 1', 'Composer 2' ]",
103
+ },
104
+ TCON: {
105
+ display_order: 11,
106
+ name: "Genres",
107
+ example: "[ 'Genre 1', 'Genre 2' ]",
108
+ },
109
+ TIT1: {
110
+ display_order: 12,
111
+ name: "Content Group Description",
112
+ example: "Content Description",
113
+ },
114
+ TPE3: {
115
+ display_order: 13,
116
+ name: "Conductor/Performer Refinement",
117
+ example: "Performer Name",
118
+ },
119
+ TPE4: {
120
+ display_order: 14,
121
+ name: "Interpreted, Remixed, or Otherwise Modified By",
122
+ example: "Remixer Name",
123
+ },
124
+ TRCK: { display_order: 15, name: "Track Number", example: "'5' or '5/10'" },
125
+ TPOS: { display_order: 16, name: "Disc Number", example: "'1' or '1/3'" },
126
+ TPUB: {
127
+ display_order: 17,
128
+ name: "Label Name",
129
+ example: "Record Label Name",
130
+ },
131
+ TKEY: { display_order: 18, name: "Initial Key", example: "A#m" },
132
+ TMED: { display_order: 19, name: "Media Type", example: "Digital Media" },
133
+ TDAT: {
134
+ display_order: 20,
135
+ name: "Release Date",
136
+ example: "0101 (for 1st January)",
137
+ },
138
+ TSRC: {
139
+ display_order: 21,
140
+ name: "ISRC",
141
+ example: "International Standard Recording Code",
142
+ },
143
+ TCOP: {
144
+ display_order: 22,
145
+ name: "Copyright Message",
146
+ example: "© 2024 Record Label",
147
+ },
148
+ TEXT: {
149
+ display_order: 23,
150
+ name: "Lyricist/Text Writer",
151
+ example: "Lyricist Name",
152
+ },
153
+ WCOM: {
154
+ display_order: 24,
155
+ name: "Commercial Information",
156
+ example: "http://website.com",
157
+ },
158
+ WCOP: {
159
+ display_order: 25,
160
+ name: "Legal Information",
161
+ example: "http://website.com/legal",
162
+ },
163
+ WOAF: {
164
+ display_order: 26,
165
+ name: "Official Audio File Webpage",
166
+ example: "http://website.com/audio_file",
167
+ },
168
+ WOAR: {
169
+ display_order: 27,
170
+ name: "Official Artist Webpage",
171
+ example: "http://website.com/artist",
172
+ },
173
+ WOAS: {
174
+ display_order: 28,
175
+ name: "Official Audio Source Webpage",
176
+ example: "http://website.com/audiosource",
177
+ },
178
+ WORS: {
179
+ display_order: 29,
180
+ name: "Official Internet Radio Station Homepage",
181
+ example: "http://website.com/radio",
182
+ },
183
+ WPAY: {
184
+ display_order: 30,
185
+ name: "Payment",
186
+ example: "http://website.com/payment",
187
+ },
188
+ WPUB: {
189
+ display_order: 31,
190
+ name: "Publisher’s Official Webpage",
191
+ example: "http://website.com/publisher",
192
+ },
193
+ TLEN: {
194
+ display_order: 32,
195
+ name: "Audio Duration",
196
+ example: "230000 (for 3 minutes and 50 seconds)",
197
+ },
198
+ TBPM: { display_order: 33, name: "BPM", example: "120" },
199
+ COMM: {
200
+ display_order: 34,
201
+ name: "Comments",
202
+ example: "{ description: 'Comment', text: 'This is a comment', language: 'eng' }",
203
+ },
204
+ IPLS: {
205
+ display_order: 35,
206
+ name: "Involved People List",
207
+ example: "[ ['role', 'name'], ['role', 'name'] ]",
208
+ },
209
+ SYLT: {
210
+ display_order: 36,
211
+ name: "Synchronised Lyrics",
212
+ example:
213
+ "{ type: 1, text: [ ['lyrics here', 0], ['lyrics here', 3500] ], timestampFormat: 2, language: 'eng', description: 'description' }",
214
+ },
215
+ TXXX: {
216
+ display_order: 37,
217
+ name: "Additional Defined Text",
218
+ example: "{ description: 'description here', value: 'value here' }",
219
+ },
220
+ PRIV: {
221
+ display_order: 38,
222
+ name: "Private Frame",
223
+ example: "{ id: 'identifier', data: dataArrayBuffer }",
224
+ },
225
+ }
226
+
227
+ const lang_options = [
228
+ { key: "eng", name: "English" },
229
+ { key: "spa", name: "Spanish" },
230
+ { key: "fra", name: "French" },
231
+ { key: "deu", name: "German" },
232
+ { key: "rus", name: "Russian" },
233
+ { key: "ita", name: "Italian" },
234
+ { key: "por", name: "Portuguese" },
235
+ { key: "jpn", name: "Japanese" },
236
+ { key: "zho", name: "Chinese" },
237
+ { key: "ara", name: "Arabic" },
238
+ { key: "hin", name: "Hindi" },
239
+ { key: "kor", name: "Korean" },
240
+ { key: "tur", name: "Turkish" },
241
+ { key: "swe", name: "Swedish" },
242
+ { key: "nld", name: "Dutch" },
243
+ { key: "pol", name: "Polish" },
244
+ { key: "dan", name: "Danish" },
245
+ { key: "fin", name: "Finnish" },
246
+ { key: "nor", name: "Norwegian" },
247
+ { key: "heb", name: "Hebrew" },
248
+ ]
249
+
250
+ let is_loading_generate_audio = $state(false)
251
+ let error_message = $state(null)
252
+ let success_message = $state(null)
253
+ let is_text_to_audio = $state(false)
254
+
255
+ let is_popover = $state(true)
256
+ let popover_manager = $state(null)
257
+ let clear_button_manager = $state(null)
258
+ let is_alt_content_shown = $state(false)
259
+ let seed_from_input_popover_manager = $state(null)
260
+ let seed_from_input_popover_button_manager = $state(null)
261
+ let seed_audio_storage_picker_manager = $state(null)
262
+ let download_audio_file_button_manager = $state(null)
263
+ let generate_audio_changes_button_manager = $state(null)
264
+ let finish_button_manager = $state(null)
265
+ let use_text_to_audio_button_manager = $state(null)
266
+ let select_file_from_storage_button_manager = $state(null)
267
+ let use_mp3_file_button_manager = $state(null)
268
+ let text_to_audio_text_input_manager = $state(null)
269
+ let audio_storage_picker_manager = $state(null)
270
+ let file_name_text_input_manager = $state(null)
271
+ let title_text_input_manager = $state(null)
272
+ let album_title_text_input_manager = $state(null)
273
+ let image_storage_picker_manager = $state(null)
274
+ let image_description_text_input_manager = $state(null)
275
+ let artist_text_input_manager = $state(null)
276
+ let lyrics_text_input_manager = $state(null)
277
+ let release_year_text_input_manager = $state(null)
278
+ let language_dropdown_manager = $state(null)
279
+ let additional_tags_input_prepped = $state(null)
280
+ let generated_audio_file_obj = $state(null)
281
+ let voice_options = $state(null)
282
+ let voice_id = $state(null)
283
+ let edit_voice_popover_manager = $state(null)
284
+ let edit_voice_button_manager = $state(null)
285
+ let audio_manager = $state(null)
286
+ let clear_generated_audio_button_manager = $state(null)
287
+ let additional_metatags_dropdown_manager = $state(null)
288
+
289
+ // actually we'll prob do this server stuff diff like call config?.fetch_audio_read_tags() and handle in parent
290
+ let api_prefix = $derived(set_closurable(config?.api_prefix, "https://www.contibase.com/api/v1"))
291
+ let storage_src = $derived(
292
+ set_closurable(config?.storage_src, "https://www.contibase.com/api/v1/storage/{storage_id}")
293
+ )
294
+ let fetch_path_audio_read_tags = $derived(
295
+ set_closurable(config?.fetch_path_audio_read_tags, `${api_prefix}/audio/read_tags`)
296
+ )
297
+ let fetch_path_audio_post = $derived(set_closurable(config?.fetch_path_audio_post, `${api_prefix}/audio`))
298
+ let file_prefix = $derived(set_closurable(config?.file_prefix, `${api_prefix}/storage/`))
299
+
300
+ let account = $derived(set_closurable(config?.account, null))
301
+ let is_disabled = $derived(set_closurable(config?.is_disabled, false))
302
+ let storage = $derived(set_closurable(config?.storage, null))
303
+ let locally_uploaded_files = $derived(set_closurable(config?.locally_uploaded_files, null))
304
+
305
+ let file_name_derived = $derived(`${clean_file_name(file_name_text_input_manager?.val)}.mp3`)
306
+ let additional_tag_keys_ordered = $derived(
307
+ Object.keys(additional_tags_input_prepped || {})
308
+ .map((key) => ({ key, display_order: audio_input_tag_defs[key]?.display_order }))
309
+ .sort((a, b) => a.display_order - b.display_order)
310
+ .map((item) => item.key)
311
+ )
312
+
313
+ let text_to_audio_time_in_minutes = $derived(calc_time_in_minutes(text_to_audio_text_input_manager?.val))
314
+
315
+ function calc_time_in_minutes(text) {
316
+ if (!text || text.length < 20) {
317
+ return 0
318
+ }
319
+ const average_speed = 155
320
+ const word_count = text.split(" ").length
321
+ return Math.ceil(word_count / average_speed)
322
+ }
323
+
324
+ async function seed(input) {
325
+ if (!input) {
326
+ file_name_text_input_manager.set_val(null)
327
+ text_to_audio_text_input_manager.set_val(null)
328
+ audio_storage_picker_manager.set_val(null)
329
+ title_text_input_manager.set_val(null)
330
+ album_title_text_input_manager.set_val(null)
331
+ image_storage_picker_manager.set_val(null)
332
+ image_description_text_input_manager.set_val(null)
333
+ artist_text_input_manager.set_val(null)
334
+ lyrics_text_input_manager.set_val(null)
335
+ release_year_text_input_manager.set_val(null)
336
+ language_dropdown_manager.set_val(null)
337
+ additional_tags_input_prepped = null
338
+ return
339
+ }
340
+ if (!input?.file && input?.id) {
341
+ let file_src = `${file_prefix}${input?.id}`
342
+ input.file = await url_to_file(file_src, file_name_derived)
343
+ }
344
+ is_text_to_audio = false
345
+ text_to_audio_text_input_manager.set_val(null)
346
+ if (input.hasOwnProperty("is_text_to_audio")) {
347
+ is_text_to_audio = input?.is_text_to_audio
348
+ text_to_audio_text_input_manager.set_val(input?.text_to_audio_input ?? null)
349
+ voice_id = input?.voice_id ?? null
350
+ }
351
+ let cleaned_file_name = clean_file_name(input?.file_name ?? input?.file?.name)
352
+ let audio_metadata = null
353
+ if (input?.file) {
354
+ audio_metadata = await get_audio_metadata(input?.file)
355
+ audio_storage_picker_manager.set_val(input)
356
+ }
357
+ file_name_text_input_manager.set_val(cleaned_file_name)
358
+ title_text_input_manager.set_val(input?.title ?? input?.tags?.TIT2 ?? audio_metadata?.tags?.TIT2 ?? null)
359
+ album_title_text_input_manager.set_val(
360
+ input?.album_title ?? input?.tags?.TALB ?? audio_metadata?.tags?.TALB ?? null
361
+ )
362
+ image_storage_picker_manager.set_val({ file_name: "cover", file: input?.image_file ?? audio_metadata?.image?.file })
363
+ image_description_text_input_manager.set_val(
364
+ input?.image_description ?? input?.tags?.APIC?.description ?? audio_metadata?.tags?.APIC?.description ?? null
365
+ )
366
+ artist_text_input_manager.set_val(input?.artist ?? input?.tags?.TPE1 ?? audio_metadata?.tags?.TPE1 ?? null)
367
+ lyrics_text_input_manager.set_val(
368
+ input?.lyrics ?? input?.tags?.USLT?.text ?? audio_metadata?.tags?.USLT?.text ?? null
369
+ )
370
+ release_year_text_input_manager.set_val(
371
+ input?.release_year ?? input?.tags?.TYER ?? audio_metadata?.tags?.TYER ?? null
372
+ )
373
+ language_dropdown_manager.set_val(input?.language ?? input?.tags?.TLAN ?? audio_metadata?.tags?.TLAN ?? null)
374
+ const tags_input = input?.tags ?? audio_metadata?.tags
375
+ let additonal_tag_keys = []
376
+ if (
377
+ tags_input &&
378
+ typeof tags_input == "object" &&
379
+ !Array.isArray(tags_input) &&
380
+ Object.keys(tags_input).length > 0
381
+ ) {
382
+ for (let key of Object.keys(tags_input)) {
383
+ if (!audio_tags_input_base.hasOwnProperty(key)) {
384
+ additonal_tag_keys.push(key)
385
+ }
386
+ }
387
+ }
388
+ additional_metatags_dropdown_manager.set_val(additonal_tag_keys)
389
+ set_additional_tags_input_prepped(tags_input)
390
+ popover_manager.open()
391
+ seed_from_input_popover_manager.close()
392
+ }
393
+
394
+ function set_additional_tags_input_prepped(tags_input) {
395
+ let additional_tags_input_prepped_loc = {}
396
+ if (
397
+ tags_input &&
398
+ typeof tags_input == "object" &&
399
+ !Array.isArray(tags_input) &&
400
+ Object.keys(tags_input).length > 0
401
+ ) {
402
+ for (let [key, val] of Object.entries(tags_input)) {
403
+ if (!audio_tags_input_base.hasOwnProperty(key)) {
404
+ let tag_input_prepped_loc = {
405
+ key,
406
+ name: audio_input_tag_defs[key]?.name,
407
+ display_order: audio_input_tag_defs[key]?.display_order,
408
+ }
409
+ tag_input_prepped_loc.text_input_manager = create_text_input_manager({
410
+ val: val,
411
+ is_disabled: () => is_loading_generate_audio || is_disabled,
412
+ placeholder: () => audio_input_tag_defs[key]?.example,
413
+ })
414
+ additional_tags_input_prepped_loc[key] = tag_input_prepped_loc
415
+ }
416
+ }
417
+ }
418
+ additional_tags_input_prepped = additional_tags_input_prepped_loc
419
+ }
420
+
421
+ function clear() {
422
+ seed(null)
423
+ }
424
+
425
+ async function get_audio_metadata(audio_file) {
426
+ try {
427
+ let form_data = new FormData()
428
+ form_data.append("file", audio_file)
429
+ let response = await fetch(fetch_path_audio_read_tags, {
430
+ method: "POST",
431
+ body: form_data,
432
+ })
433
+ if (!response.ok) {
434
+ throw new Error(await response.text())
435
+ }
436
+ let resbody = await response.json()
437
+ let res = {
438
+ tags: null,
439
+ image: null,
440
+ }
441
+ if (resbody?.raw) {
442
+ res.tags = { ...audio_tags_input_base, ...resbody?.raw }
443
+ if (resbody?.raw?.["APIC"]?.imageBuffer) {
444
+ let buffer_data = resbody?.raw?.["APIC"]?.imageBuffer.data
445
+ let uint_8_array = new Uint8Array(buffer_data)
446
+ let blob = new Blob([uint_8_array], { type: resbody?.raw?.["APIC"]?.mime })
447
+ res.image = {
448
+ file: blob,
449
+ type: resbody?.raw?.["APIC"]?.mime,
450
+ src: URL.createObjectURL(blob),
451
+ size_kb: Math.ceil(blob.size / 1024),
452
+ description: resbody?.raw?.["APIC"]?.description,
453
+ }
454
+ }
455
+ }
456
+ return res
457
+ } catch (err) {
458
+ console.error(err)
459
+ }
460
+ }
461
+
462
+ function set_text_to_audio_input(val) {
463
+ text_to_audio_text_input_manager.set_val(val)
464
+ }
465
+
466
+ function set_is_text_to_audio(is_text_to_audio_input) {
467
+ is_text_to_audio = is_text_to_audio_input
468
+ }
469
+
470
+ async function resize_and_convert_image(src, max_width, max_height, output_format) {
471
+ return new Promise((resolve, reject) => {
472
+ let img = new Image()
473
+ img.crossOrigin = "anonymous"
474
+ img.onload = () => {
475
+ let canvas = document.createElement("canvas")
476
+ let ctx = canvas.getContext("2d")
477
+ let aspect_ratio = img.width / img.height
478
+ let new_width = max_width
479
+ let new_height = max_height
480
+ if (new_width / new_height > aspect_ratio) new_width = new_height * aspect_ratio
481
+ else new_height = new_width / aspect_ratio
482
+ canvas.width = new_width
483
+ canvas.height = new_height
484
+ ctx.drawImage(img, 0, 0, new_width, new_height)
485
+ resolve(canvas.toDataURL(output_format))
486
+ }
487
+ img.onerror = reject
488
+ img.src = src
489
+ })
490
+ }
491
+
492
+ async function generate_new_audio() {
493
+ try {
494
+ is_loading_generate_audio = true
495
+ error_message = null
496
+ success_message = null
497
+ let form_data = new FormData()
498
+ if (account?.id) {
499
+ form_data.append("account_id", account?.id)
500
+ }
501
+ let tags_input = {
502
+ TIT2: title_text_input_manager?.val ?? null,
503
+ TALB: album_title_text_input_manager?.val ?? null,
504
+ TPE1: artist_text_input_manager?.val ?? null,
505
+ APIC: {
506
+ mime: null,
507
+ type: {
508
+ id: 0,
509
+ },
510
+ description: image_description_text_input_manager?.val ?? null,
511
+ imageBuffer: null,
512
+ },
513
+ TYER: release_year_text_input_manager?.val ?? null,
514
+ USLT: {
515
+ language: language_dropdown_manager?.val ?? null,
516
+ text: lyrics_text_input_manager?.val ?? null,
517
+ },
518
+ TLAN: language_dropdown_manager?.val ?? null,
519
+ }
520
+ if (Object.keys(additional_tags_input_prepped || {}).length > 0) {
521
+ for (let [key, val] of Object.entries(additional_tags_input_prepped || {})) {
522
+ if (audio_input_tag_defs.hasOwnProperty(key)) {
523
+ tags_input[key] = val?.text_input_manager?.val
524
+ }
525
+ }
526
+ }
527
+ form_data.append("tags", JSON.stringify(tags_input))
528
+ form_data.append("file_name", file_name_text_input_manager?.val ?? null)
529
+ form_data.append("is_text_to_audio", is_text_to_audio)
530
+ if (is_text_to_audio) {
531
+ form_data.append("text_to_audio_input", text_to_audio_text_input_manager?.val)
532
+ form_data.append("voice_id", voice_id ?? null)
533
+ } else {
534
+ form_data.append("audio", audio_storage_picker_manager?.val?.file)
535
+ }
536
+ console.log("image_storage_picker_manager?.val", image_storage_picker_manager?.val)
537
+ if (image_storage_picker_manager?.val) {
538
+ let image_src = null
539
+ if (image_storage_picker_manager?.val?.file) {
540
+ image_src = URL.createObjectURL(image_storage_picker_manager?.val?.file)
541
+ } else if (image_storage_picker_manager?.val?.id) {
542
+ image_src = storage_src.replace("{storage_id}", image_storage_picker_manager?.val?.id)
543
+ console.log("image_src_replace", image_src)
544
+ }
545
+ console.log("image_src", image_src)
546
+ const sized_cover_base_64 = await resize_and_convert_image(image_src, 1000, 1000, "image/png")
547
+ console.log("sized_cover_base_64", sized_cover_base_64)
548
+ let sized_cover_file = await url_to_file(sized_cover_base_64, file_name_derived)
549
+ console.log("sized_cover_file", sized_cover_file)
550
+ form_data.append("image", sized_cover_file)
551
+ }
552
+ let response = await fetch(fetch_path_audio_post, {
553
+ method: "POST",
554
+ body: form_data,
555
+ })
556
+ if (!response.ok) {
557
+ let error_mes = await response.text()
558
+ is_loading_generate_audio = false
559
+ error_message = error_mes ?? "Error making audio changes."
560
+ return
561
+ }
562
+ let resbody = await response.json()
563
+ // add to new file to client side temporary_storage data
564
+ let new_audio_src = `${file_prefix}${resbody?.id}`
565
+ let new_audio_file = await url_to_file(new_audio_src, file_name_derived)
566
+ is_loading_generate_audio = false
567
+ is_alt_content_shown = true
568
+ setTimeout(() => {
569
+ is_alt_content_shown = false
570
+ }, 1800)
571
+ generated_audio_file_obj = {
572
+ file: new_audio_file,
573
+ type: new_audio_file?.type,
574
+ src: new_audio_src,
575
+ file_name: new_audio_file?.name,
576
+ size_kb: Math.round(new_audio_file?.size * 0.001),
577
+ }
578
+ seed({ file: new_audio_file })
579
+ // optional: need third-party library to extract cover image from metadata clientside tbd. Already have working with server request but try and avoid that
580
+ audio_manager = create_audio_manager({
581
+ src: new_audio_src,
582
+ })
583
+ } catch (err) {
584
+ is_loading_generate_audio = false
585
+ error_message = err?.message ?? JSON.stringify(err)
586
+ }
587
+ }
588
+
589
+ async function download_audio_file() {
590
+ // file_name_tbd
591
+ let response = await fetch(generated_audio_file_obj?.src)
592
+ let blob = await response.blob()
593
+ let url = URL.createObjectURL(blob)
594
+ let link = document.createElement("a")
595
+ link.href = url
596
+ link.download = file_name_derived
597
+ document.body.appendChild(link)
598
+ link.click()
599
+ document.body.removeChild(link)
600
+ URL.revokeObjectURL(url)
601
+ }
602
+
603
+ function finish() {
604
+ if (typeof config?.on_finish == "function") {
605
+ config?.on_finish(generated_audio_file_obj)
606
+ }
607
+ popover_manager.close()
608
+ }
609
+
610
+ function init(config) {
611
+ popover_manager = create_popover_manager({
612
+ min_width: 320,
613
+ target_width: 900,
614
+ min_height: 320,
615
+ target_height: 700,
616
+ header: "Edit Audio",
617
+ type: "center",
618
+ success_message: "Successfully Generated Audio File",
619
+ is_alt_content_shown: () => is_alt_content_shown,
620
+ })
621
+ clear_button_manager = create_button_manager({
622
+ type: "outlined",
623
+ text: "Clear",
624
+ is_compressed: true,
625
+ on_click: () => seed(),
626
+ })
627
+ download_audio_file_button_manager = create_button_manager({
628
+ type: "outlined",
629
+ is_disabled: () => is_disabled,
630
+ text: "Download",
631
+ support_icon: "download",
632
+ is_compressed: true,
633
+ on_click: () => download_audio_file(),
634
+ })
635
+ generate_audio_changes_button_manager = create_button_manager({
636
+ text: "Generate Audio Changes",
637
+ is_compressed: true,
638
+ is_loading: () => is_loading_generate_audio,
639
+ is_disabled: () =>
640
+ (!is_text_to_audio && !audio_storage_picker_manager?.val) ||
641
+ (is_text_to_audio && !text_to_audio_text_input_manager?.val),
642
+ on_click: () => generate_new_audio(),
643
+ })
644
+ finish_button_manager = create_button_manager({
645
+ type: "outlined",
646
+ text: "Finish",
647
+ support_icon: "check",
648
+ is_compressed: true,
649
+ is_disabled: () => is_disabled,
650
+ on_click: () => finish(),
651
+ })
652
+ use_text_to_audio_button_manager = create_button_manager({
653
+ type: "outlined",
654
+ support_icon: "speech",
655
+ text: "Use Text to Audio",
656
+ mr: 1,
657
+ is_compressed: true,
658
+ is_disabled: () => is_loading_generate_audio,
659
+ on_click: () => set_is_text_to_audio(true),
660
+ })
661
+ audio_storage_picker_manager = create_storage_picker_manager({
662
+ storage: storage,
663
+ default_folder_path: config?.storage_default_folder_path,
664
+ locally_uploaded_files: () => locally_uploaded_files,
665
+ storage_src: () => storage_src,
666
+ accept: ["audio/mpeg"],
667
+ is_show_button: false,
668
+ is_multiselect: false,
669
+ mb: 1,
670
+ is_disabled: () => is_loading_generate_audio || is_disabled,
671
+ })
672
+ file_name_text_input_manager = create_text_input_manager({
673
+ placeholder: "some_file_name",
674
+ is_disabled: () => is_loading_generate_audio || is_disabled,
675
+ })
676
+ title_text_input_manager = create_text_input_manager({
677
+ placeholder: audio_input_tag_defs?.TIT2?.example,
678
+ is_disabled: () => is_loading_generate_audio || is_disabled,
679
+ })
680
+ album_title_text_input_manager = create_text_input_manager({
681
+ placeholder: audio_input_tag_defs?.TALB?.example,
682
+ is_disabled: () => is_loading_generate_audio || is_disabled,
683
+ })
684
+ image_storage_picker_manager = create_storage_picker_manager({
685
+ storage: storage,
686
+ default_folder_path: config?.storage_default_folder_path,
687
+ locally_uploaded_files: () => locally_uploaded_files,
688
+ accept: ["image/png", "image/jpeg", "image/webp", "image/gif"],
689
+ is_multiselect: false,
690
+ mb: 1,
691
+ is_disabled: () => is_loading_generate_audio || is_disabled,
692
+ })
693
+ image_description_text_input_manager = create_text_input_manager({
694
+ placeholder: "Image Description",
695
+ mt: 1,
696
+ is_disabled: () => is_loading_generate_audio || is_disabled,
697
+ })
698
+ artist_text_input_manager = create_text_input_manager({
699
+ placeholder: audio_input_tag_defs?.TPE1?.example,
700
+ is_disabled: () => is_loading_generate_audio || is_disabled,
701
+ })
702
+ lyrics_text_input_manager = create_text_input_manager({
703
+ type: "text_area",
704
+ placeholder: "Lyrics of the audio",
705
+ is_disabled: () => is_loading_generate_audio || is_disabled,
706
+ })
707
+ release_year_text_input_manager = create_text_input_manager({
708
+ val: null,
709
+ type: "number",
710
+ max: 2100,
711
+ placeholder: audio_input_tag_defs?.TYER?.example,
712
+ is_disabled: () => is_loading_generate_audio || is_disabled,
713
+ })
714
+ language_dropdown_manager = create_dropdown_manager({
715
+ button_type: "outlined",
716
+ is_button_compressed: true,
717
+ is_clearable: true,
718
+ options: lang_options,
719
+ is_disabled: () => is_loading_generate_audio || is_disabled,
720
+ })
721
+ select_file_from_storage_button_manager = create_button_manager({
722
+ type: "outlined",
723
+ is_compressed: true,
724
+ text: "Select Audio File",
725
+ is_disabled: () => is_loading_generate_audio || is_disabled,
726
+ popover_target: () => `popover_${audio_storage_picker_manager?.popover_manager?.id}`,
727
+ })
728
+ use_mp3_file_button_manager = create_button_manager({
729
+ type: "outlined",
730
+ support_icon: "file",
731
+ text: "Use mp3 File",
732
+ mb: 0.5,
733
+ is_disabled: () => is_loading_generate_audio || is_disabled,
734
+ is_compressed: true,
735
+ on_click: () => set_is_text_to_audio(false),
736
+ })
737
+ text_to_audio_text_input_manager = create_text_input_manager({
738
+ type: "text_area",
739
+ rows: 7,
740
+ mt: 0.5,
741
+ is_disabled: () => is_loading_generate_audio || is_disabled,
742
+ placeholder: "Text to convert to audio",
743
+ })
744
+ file_name_text_input_manager = create_text_input_manager({
745
+ placeholder: "file_name",
746
+ val: null,
747
+ is_disabled: () => is_loading_generate_audio || is_disabled,
748
+ })
749
+ seed_from_input_popover_manager = create_popover_manager({
750
+ header: "Seed Audio",
751
+ type: "center",
752
+ target_width: 400,
753
+ target_height: 300,
754
+ anchor_id: () => `button_${seed_from_input_popover_button_manager?.id}`,
755
+ })
756
+ seed_from_input_popover_button_manager = create_button_manager({
757
+ type: "outlined",
758
+ text: "Seed from file",
759
+ is_compressed: true,
760
+ is_disabled: () => is_loading_generate_audio || is_disabled,
761
+ popover_target: () => `popover_${seed_from_input_popover_manager?.id}`,
762
+ })
763
+ seed_audio_storage_picker_manager = create_storage_picker_manager({
764
+ storage: storage,
765
+ default_folder_path: config?.storage_default_folder_path,
766
+ locally_uploaded_files: () => locally_uploaded_files,
767
+ accept: ["audio/mpeg"],
768
+ is_multiselect: false,
769
+ is_disabled: () => is_loading_generate_audio || is_disabled,
770
+ on_finish: (input) => {
771
+ seed(input)
772
+ seed_audio_storage_picker_manager.set_val(null)
773
+ },
774
+ })
775
+ audio_manager = null
776
+ clear_generated_audio_button_manager = create_button_manager({
777
+ type: "outlined",
778
+ text: "Clear",
779
+ is_compressed: true,
780
+ on_click: () => (generated_audio_file_obj = null),
781
+ })
782
+ edit_voice_popover_manager = create_popover_manager({
783
+ type: "center",
784
+ header: "Select Voice",
785
+ target_width: 500,
786
+ target_height: 400,
787
+ })
788
+ edit_voice_button_manager = create_button_manager({
789
+ type: "outlined",
790
+ text: "Edit",
791
+ support_icon: "edit",
792
+ is_compressed: true,
793
+ popover_target: () => `popover_${edit_voice_popover_manager?.id}`,
794
+ })
795
+ let voice_options_loc = []
796
+ for (let voice of voices) {
797
+ voice_options_loc.push({
798
+ ...voice,
799
+ audio_manager: create_audio_manager({
800
+ ui_type: "short",
801
+ src: voice?.sample,
802
+ }),
803
+ select_button_manager: create_button_manager({
804
+ type: "outlined",
805
+ text: "Select",
806
+ selected_type: () => (voice?.id == voice_id ? "selected" : null),
807
+ on_click: () => {
808
+ voice_id = voice_id == voice?.id ? null : voice?.id
809
+ edit_voice_popover_manager.close()
810
+ },
811
+ }),
812
+ })
813
+ }
814
+ voice_options = voice_options_loc
815
+ const additional_metatag_options = Object.keys(audio_input_tag_defs || {})
816
+ .map((h) => ({ key: h, name: audio_input_tag_defs?.[h]?.name }))
817
+ .filter((h) => !audio_tags_input_base.hasOwnProperty(h?.key))
818
+ additional_metatags_dropdown_manager = create_dropdown_manager({
819
+ val: [],
820
+ is_clearable: true,
821
+ is_multiselect: true,
822
+ is_button_compressed: true,
823
+ options: additional_metatag_options,
824
+ on_change: (input) => {
825
+ let tags_input = {}
826
+ if (Array.isArray(input) && input.length > 0) {
827
+ for (let key of input) {
828
+ tags_input[key] = additional_tags_input_prepped?.[key]?.text_input_manager?.val ?? null
829
+ }
830
+ }
831
+ set_additional_tags_input_prepped(tags_input)
832
+ },
833
+ })
834
+ }
835
+
836
+ init(config)
837
+
838
+ return {
839
+ id,
840
+ get account() {
841
+ return account
842
+ },
843
+ get is_text_to_audio() {
844
+ return is_text_to_audio
845
+ },
846
+ get error_message() {
847
+ return error_message
848
+ },
849
+ get success_message() {
850
+ return success_message
851
+ },
852
+ get generate_audio_changes_button_manager() {
853
+ return generate_audio_changes_button_manager
854
+ },
855
+ get use_text_to_audio_button_manager() {
856
+ return use_text_to_audio_button_manager
857
+ },
858
+ get select_file_from_storage_button_manager() {
859
+ return select_file_from_storage_button_manager
860
+ },
861
+ get use_mp3_file_button_manager() {
862
+ return use_mp3_file_button_manager
863
+ },
864
+ get text_to_audio_text_input_manager() {
865
+ return text_to_audio_text_input_manager
866
+ },
867
+ get file_name_text_input_manager() {
868
+ return file_name_text_input_manager
869
+ },
870
+ get additional_tags_input_prepped() {
871
+ return additional_tags_input_prepped
872
+ },
873
+ get additional_tag_keys_ordered() {
874
+ return additional_tag_keys_ordered
875
+ },
876
+ get audio_storage_picker_manager() {
877
+ return audio_storage_picker_manager
878
+ },
879
+ get file_name_text_input_manager() {
880
+ return file_name_text_input_manager
881
+ },
882
+ get title_text_input_manager() {
883
+ return title_text_input_manager
884
+ },
885
+ get album_title_text_input_manager() {
886
+ return album_title_text_input_manager
887
+ },
888
+ get image_storage_picker_manager() {
889
+ return image_storage_picker_manager
890
+ },
891
+ get image_description_text_input_manager() {
892
+ return image_description_text_input_manager
893
+ },
894
+ get artist_text_input_manager() {
895
+ return artist_text_input_manager
896
+ },
897
+ get lyrics_text_input_manager() {
898
+ return lyrics_text_input_manager
899
+ },
900
+ get release_year_text_input_manager() {
901
+ return release_year_text_input_manager
902
+ },
903
+ get language_dropdown_manager() {
904
+ return language_dropdown_manager
905
+ },
906
+ get is_popover() {
907
+ return is_popover
908
+ },
909
+ get popover_manager() {
910
+ return popover_manager
911
+ },
912
+ get text_to_audio_time_in_minutes() {
913
+ return text_to_audio_time_in_minutes
914
+ },
915
+ get voice_options() {
916
+ return voice_options
917
+ },
918
+ get voice_id() {
919
+ return voice_id
920
+ },
921
+ get edit_voice_popover_manager() {
922
+ return edit_voice_popover_manager
923
+ },
924
+ get edit_voice_button_manager() {
925
+ return edit_voice_button_manager
926
+ },
927
+ get seed_from_input_popover_manager() {
928
+ return seed_from_input_popover_manager
929
+ },
930
+ get seed_from_input_popover_button_manager() {
931
+ return seed_from_input_popover_button_manager
932
+ },
933
+ get seed_audio_storage_picker_manager() {
934
+ return seed_audio_storage_picker_manager
935
+ },
936
+ get is_loading_generate_audio() {
937
+ return is_loading_generate_audio
938
+ },
939
+ get generated_audio_file_obj() {
940
+ return generated_audio_file_obj
941
+ },
942
+ get audio_manager() {
943
+ return audio_manager
944
+ },
945
+ get clear_generated_audio_button_manager() {
946
+ return clear_generated_audio_button_manager
947
+ },
948
+ get download_audio_file_button_manager() {
949
+ return download_audio_file_button_manager
950
+ },
951
+ get clear_button_manager() {
952
+ return clear_button_manager
953
+ },
954
+ get finish_button_manager() {
955
+ return finish_button_manager
956
+ },
957
+ get additional_metatags_dropdown_manager() {
958
+ return additional_metatags_dropdown_manager
959
+ },
960
+ audio_input_tag_defs,
961
+ lang_options,
962
+ init,
963
+ seed,
964
+ get_audio_metadata,
965
+ resize_and_convert_image,
966
+ set_text_to_audio_input,
967
+ generate_new_audio,
968
+ download_audio_file,
969
+ set_is_text_to_audio,
970
+ clear,
971
+ finish,
972
+ }
973
+ }