sveltekit-ui 1.1.74 → 1.1.75

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 (532) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/LICENSE +21 -0
  3. package/README.md +45 -18
  4. package/dist/Components/Alert/index.svelte +8 -1
  5. package/dist/Components/Alert/index.svelte.d.ts +15 -0
  6. package/dist/Components/Alert/index.svelte.js +29 -4
  7. package/dist/Components/ArrowToggle/index.svelte.d.ts +15 -0
  8. package/dist/Components/Attachment/index.svelte +18 -8
  9. package/dist/Components/Attachment/index.svelte.d.ts +11 -0
  10. package/dist/Components/Attachment/index.svelte.js +122 -17
  11. package/dist/Components/Audio/index.svelte +20 -16
  12. package/dist/Components/Audio/index.svelte.d.ts +11 -0
  13. package/dist/Components/Audio/index.svelte.js +222 -63
  14. package/dist/Components/AudioEditor/index.svelte +6 -3
  15. package/dist/Components/AudioEditor/index.svelte.d.ts +13 -0
  16. package/dist/Components/AudioEditor/index.svelte.js +243 -151
  17. package/dist/Components/AuthCodeInput/index.svelte +2 -0
  18. package/dist/Components/AuthCodeInput/index.svelte.d.ts +11 -0
  19. package/dist/Components/AuthCodeInput/index.svelte.js +16 -6
  20. package/dist/Components/Breadcrumbs/index.svelte +2 -2
  21. package/dist/Components/Breadcrumbs/index.svelte.d.ts +11 -0
  22. package/dist/Components/Breadcrumbs/index.svelte.js +10 -2
  23. package/dist/Components/Button/index.svelte +2 -0
  24. package/dist/Components/Button/index.svelte.d.ts +13 -0
  25. package/dist/Components/Button/index.svelte.js +29 -9
  26. package/dist/Components/Chart/Klines/index.svelte.d.ts +11 -0
  27. package/dist/Components/Chart/index.svelte.d.ts +11 -0
  28. package/dist/Components/Chart/index.svelte.js +37 -46
  29. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte.d.ts +21 -0
  30. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte.d.ts +19 -0
  31. package/dist/Components/ChartInput/DisplayNav/index.svelte.d.ts +11 -0
  32. package/dist/Components/ChartInput/EditPanel/index.svelte.d.ts +11 -0
  33. package/dist/Components/ChartInput/index.svelte.d.ts +11 -0
  34. package/dist/Components/ChartInput/index.svelte.js +5 -14
  35. package/dist/Components/Checkbox/index.svelte +7 -9
  36. package/dist/Components/Checkbox/index.svelte.d.ts +11 -0
  37. package/dist/Components/Checkbox/index.svelte.js +9 -3
  38. package/dist/Components/Code/index.svelte +2 -1
  39. package/dist/Components/Code/index.svelte.d.ts +11 -0
  40. package/dist/Components/Code/index.svelte.js +5 -0
  41. package/dist/Components/Color/index.svelte +29 -24
  42. package/dist/Components/Color/index.svelte.d.ts +11 -0
  43. package/dist/Components/Color/index.svelte.js +10 -2
  44. package/dist/Components/ColorInput/ChromaPicker/index.svelte +13 -8
  45. package/dist/Components/ColorInput/ChromaPicker/index.svelte.d.ts +11 -0
  46. package/dist/Components/ColorInput/ColorPalette/index.svelte +17 -10
  47. package/dist/Components/ColorInput/ColorPalette/index.svelte.d.ts +11 -0
  48. package/dist/Components/ColorInput/OpacityPicker/index.svelte +14 -9
  49. package/dist/Components/ColorInput/OpacityPicker/index.svelte.d.ts +11 -0
  50. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +18 -10
  51. package/dist/Components/ColorInput/ShowcasePicker/index.svelte.d.ts +11 -0
  52. package/dist/Components/ColorInput/index.svelte.d.ts +11 -0
  53. package/dist/Components/ColorInput/index.svelte.js +35 -13
  54. package/dist/Components/ConditionsInput/index.svelte.d.ts +11 -0
  55. package/dist/Components/ConditionsInput/index.svelte.js +0 -3
  56. package/dist/Components/Confetti/index.svelte +15 -1
  57. package/dist/Components/Confetti/index.svelte.d.ts +11 -0
  58. package/dist/Components/Confetti/index.svelte.js +22 -5
  59. package/dist/Components/Content/index.svelte +92 -23
  60. package/dist/Components/Content/index.svelte.d.ts +11 -0
  61. package/dist/Components/Content/index.svelte.js +2 -6
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.d.ts +11 -0
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -1
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.d.ts +11 -0
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -1
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.d.ts +11 -0
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.d.ts +11 -0
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -1
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +1 -5
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.d.ts +11 -0
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +7 -0
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.d.ts +11 -0
  73. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.d.ts +11 -0
  74. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.d.ts +11 -0
  75. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -2
  76. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.d.ts +11 -0
  77. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -2
  78. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.d.ts +11 -0
  79. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.d.ts +11 -0
  80. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.d.ts +13 -0
  81. package/dist/Components/ContentInput/AttributesInput/index.svelte +2 -0
  82. package/dist/Components/ContentInput/AttributesInput/index.svelte.d.ts +11 -0
  83. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +6 -2
  84. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.d.ts +11 -0
  85. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +4 -6
  86. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte.d.ts +13 -0
  87. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +1 -1
  88. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte.d.ts +11 -0
  89. package/dist/Components/ContentInput/index.svelte +1 -1
  90. package/dist/Components/ContentInput/index.svelte.d.ts +13 -0
  91. package/dist/Components/ContentInput/index.svelte.js +1 -1
  92. package/dist/Components/CronInput/index.svelte +2 -2
  93. package/dist/Components/CronInput/index.svelte.d.ts +11 -0
  94. package/dist/Components/CronInput/index.svelte.js +3 -1
  95. package/dist/Components/DataTypeInput/index.svelte +3 -3
  96. package/dist/Components/DataTypeInput/index.svelte.d.ts +11 -0
  97. package/dist/Components/DataTypeInput/index.svelte.js +6 -7
  98. package/dist/Components/Dropdown/index.svelte.d.ts +11 -0
  99. package/dist/Components/Dropdown/index.svelte.js +35 -15
  100. package/dist/Components/EmailAddress/index.svelte.d.ts +11 -0
  101. package/dist/Components/EmailAddress/index.svelte.js +19 -12
  102. package/dist/Components/ErrorX/index.svelte +2 -0
  103. package/dist/Components/ErrorX/index.svelte.d.ts +15 -0
  104. package/dist/Components/Eye/index.svelte.d.ts +19 -0
  105. package/dist/Components/FileInput/index.svelte +6 -3
  106. package/dist/Components/FileInput/index.svelte.d.ts +11 -0
  107. package/dist/Components/FileInput/index.svelte.js +20 -11
  108. package/dist/Components/Hamburger/index.svelte.d.ts +19 -0
  109. package/dist/Components/HorizScrollBox/index.svelte +71 -30
  110. package/dist/Components/HorizScrollBox/index.svelte.d.ts +13 -0
  111. package/dist/Components/Icon/index.svelte +2 -2
  112. package/dist/Components/Icon/index.svelte.d.ts +11 -0
  113. package/dist/Components/IconInput/index.svelte.d.ts +11 -0
  114. package/dist/Components/Image/index.svelte.d.ts +11 -0
  115. package/dist/Components/Image/index.svelte.js +17 -5
  116. package/dist/Components/ImageEditor/Image/CropBox/index.svelte.d.ts +11 -0
  117. package/dist/Components/ImageEditor/Image/index.svelte +6 -1
  118. package/dist/Components/ImageEditor/Image/index.svelte.d.ts +11 -0
  119. package/dist/Components/ImageEditor/Panels/AI/index.svelte.d.ts +11 -0
  120. package/dist/Components/ImageEditor/Panels/Crop/index.svelte.d.ts +11 -0
  121. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte.d.ts +11 -0
  122. package/dist/Components/ImageEditor/Panels/File/index.svelte.d.ts +11 -0
  123. package/dist/Components/ImageEditor/Panels/Filters/index.svelte.d.ts +11 -0
  124. package/dist/Components/ImageEditor/Panels/Resize/index.svelte.d.ts +11 -0
  125. package/dist/Components/ImageEditor/index.svelte.d.ts +11 -0
  126. package/dist/Components/ImageEditor/index.svelte.js +252 -125
  127. package/dist/Components/ImageSlider/index.svelte.d.ts +11 -0
  128. package/dist/Components/ImageSlider/index.svelte.js +2 -2
  129. package/dist/Components/InfoBox/index.svelte +8 -3
  130. package/dist/Components/InfoBox/index.svelte.d.ts +29 -0
  131. package/dist/Components/Json/Nested/index.svelte.d.ts +13 -0
  132. package/dist/Components/Json/index.svelte.d.ts +11 -0
  133. package/dist/Components/Json/index.svelte.js +13 -16
  134. package/dist/Components/LabeledItem/index.svelte.d.ts +41 -0
  135. package/dist/Components/Layout/NavBar/FullNav/index.svelte.d.ts +13 -0
  136. package/dist/Components/Layout/NavBar/NavGuts/index.svelte.d.ts +15 -0
  137. package/dist/Components/Layout/NavBar/index.svelte +2 -2
  138. package/dist/Components/Layout/NavBar/index.svelte.d.ts +19 -0
  139. package/dist/Components/Layout/index.svelte +13 -7
  140. package/dist/Components/Layout/index.svelte.d.ts +23 -0
  141. package/dist/Components/Layout/index.svelte.js +7 -4
  142. package/dist/Components/Link/index.svelte +30 -20
  143. package/dist/Components/Link/index.svelte.d.ts +13 -0
  144. package/dist/Components/Link/index.svelte.js +19 -5
  145. package/dist/Components/LoadingSuccessDiv/index.svelte +3 -0
  146. package/dist/Components/LoadingSuccessDiv/index.svelte.d.ts +25 -0
  147. package/dist/Components/LoadingWheel/index.svelte +8 -2
  148. package/dist/Components/LoadingWheel/index.svelte.d.ts +19 -0
  149. package/dist/Components/Location/index.svelte +31 -6
  150. package/dist/Components/Location/index.svelte.d.ts +11 -0
  151. package/dist/Components/Location/index.svelte.js +170 -155
  152. package/dist/Components/LocationInput/index.svelte +23 -5
  153. package/dist/Components/LocationInput/index.svelte.d.ts +11 -0
  154. package/dist/Components/LocationInput/index.svelte.js +54 -49
  155. package/dist/Components/Number/index.svelte.d.ts +11 -0
  156. package/dist/Components/Number/index.svelte.js +97 -116
  157. package/dist/Components/PhoneCountryCode/index.svelte +3 -1
  158. package/dist/Components/PhoneCountryCode/index.svelte.d.ts +11 -0
  159. package/dist/Components/PhoneCountryCode/index.svelte.js +3 -2
  160. package/dist/Components/PhoneNumber/index.svelte.d.ts +11 -0
  161. package/dist/Components/PhoneNumber/index.svelte.js +24 -14
  162. package/dist/Components/Popover/index.svelte +46 -6
  163. package/dist/Components/Popover/index.svelte.d.ts +19 -0
  164. package/dist/Components/Popover/index.svelte.js +25 -12
  165. package/dist/Components/Qr/index.svelte +7 -4
  166. package/dist/Components/Qr/index.svelte.d.ts +11 -0
  167. package/dist/Components/Qr/index.svelte.js +105 -52
  168. package/dist/Components/QrInput/index.svelte.d.ts +11 -0
  169. package/dist/Components/QrInput/index.svelte.js +5 -2
  170. package/dist/Components/Slider/index.svelte +16 -8
  171. package/dist/Components/Slider/index.svelte.d.ts +11 -0
  172. package/dist/Components/Slider/index.svelte.js +33 -11
  173. package/dist/Components/Spacer/index.svelte.d.ts +25 -0
  174. package/dist/Components/StoragePicker/DisplayFile/index.svelte.d.ts +11 -0
  175. package/dist/Components/StoragePicker/index.svelte +6 -0
  176. package/dist/Components/StoragePicker/index.svelte.d.ts +11 -0
  177. package/dist/Components/StoragePicker/index.svelte.js +226 -130
  178. package/dist/Components/SuccessCheck/index.svelte +2 -0
  179. package/dist/Components/SuccessCheck/index.svelte.d.ts +15 -0
  180. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.d.ts +11 -0
  181. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -2
  182. package/dist/Components/TableAdvanced/FilterInput/index.svelte.d.ts +11 -0
  183. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -2
  184. package/dist/Components/TableAdvanced/Pagination/index.svelte.d.ts +11 -0
  185. package/dist/Components/TableAdvanced/SortByInput/index.svelte.d.ts +11 -0
  186. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -1
  187. package/dist/Components/TableAdvanced/index.svelte.d.ts +13 -0
  188. package/dist/Components/TableAdvanced/index.svelte.js +10 -19
  189. package/dist/Components/Tag/index.svelte +3 -3
  190. package/dist/Components/Tag/index.svelte.d.ts +11 -0
  191. package/dist/Components/Tag/index.svelte.js +43 -1
  192. package/dist/Components/TextArrayInput/index.svelte.d.ts +11 -0
  193. package/dist/Components/TextArrayInput/index.svelte.js +7 -0
  194. package/dist/Components/TextInput/PasswordTooltip/index.svelte.d.ts +21 -0
  195. package/dist/Components/TextInput/index.svelte +3 -3
  196. package/dist/Components/TextInput/index.svelte.d.ts +11 -0
  197. package/dist/Components/TextInput/index.svelte.js +42 -19
  198. package/dist/Components/Time/index.svelte.d.ts +11 -0
  199. package/dist/Components/Time/index.svelte.js +22 -16
  200. package/dist/Components/TimeInput/NumberToggler/index.svelte.d.ts +11 -0
  201. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +2 -0
  202. package/dist/Components/TimeInput/index.d.ts +193 -0
  203. package/dist/Components/TimeInput/index.js +36 -12
  204. package/dist/Components/TimeInput/index.svelte +8 -4
  205. package/dist/Components/TimeInput/index.svelte.d.ts +11 -0
  206. package/dist/Components/TimeInput/index.svelte.js +21 -8
  207. package/dist/Components/Tooltip/index.svelte +13 -5
  208. package/dist/Components/Tooltip/index.svelte.d.ts +15 -0
  209. package/dist/Components/TransparentBackground/index.svelte.d.ts +17 -0
  210. package/dist/Components/TypingDots/index.svelte.d.ts +11 -0
  211. package/dist/Components/VariablePathInput/index.svelte.d.ts +11 -0
  212. package/dist/Components/VariablePathInput/index.svelte.js +3 -3
  213. package/dist/Components/VideoTBD/index.svelte.d.ts +6 -0
  214. package/dist/Components/XFollow/index.svelte +34 -6
  215. package/dist/Components/XFollow/index.svelte.d.ts +13 -0
  216. package/dist/Components/XPost/index.svelte +12 -4
  217. package/dist/Components/XPost/index.svelte.d.ts +11 -0
  218. package/dist/Components/XPost/index.svelte.js +141 -32
  219. package/dist/Components/YoutubeChannelButton/index.svelte +23 -5
  220. package/dist/Components/YoutubeChannelButton/index.svelte.d.ts +13 -0
  221. package/dist/Components/YoutubeVideo/index.svelte +14 -6
  222. package/dist/Components/YoutubeVideo/index.svelte.d.ts +11 -0
  223. package/dist/Components/YoutubeVideo/index.svelte.js +78 -25
  224. package/dist/actions/draggable.d.ts +3 -0
  225. package/dist/actions/draggable.js +16 -8
  226. package/dist/actions/index.d.ts +3 -0
  227. package/dist/actions/no_spaces.d.ts +4 -0
  228. package/dist/actions/no_spaces.js +1 -1
  229. package/dist/actions/numbers_only.d.ts +3 -0
  230. package/dist/actions/numbers_only.js +1 -1
  231. package/dist/actions/scroll_y.d.ts +3 -0
  232. package/dist/actions/scroll_y.js +6 -2
  233. package/dist/actions/stop_scroll_propagation_y.d.ts +3 -0
  234. package/dist/actions/stop_scroll_propagation_y.js +20 -12
  235. package/dist/actions/swipe_handler.d.ts +3 -0
  236. package/dist/actions/swipe_handler.js +26 -9
  237. package/dist/client/astc_formatting/index.d.ts +25 -0
  238. package/dist/client/astc_formatting/index.js +113 -60
  239. package/dist/client/index.d.ts +61 -0
  240. package/dist/client/index.js +221 -89
  241. package/dist/client/links.d.ts +7 -0
  242. package/dist/client/links.js +68 -0
  243. package/dist/client/mapkit.d.ts +3 -0
  244. package/dist/client/mapkit.js +80 -0
  245. package/dist/client/types/index.d.ts +5678 -0
  246. package/dist/client/types/index.js +1 -21
  247. package/dist/index.d.ts +69 -0
  248. package/dist/index.js +11 -0
  249. package/package.json +44 -7
  250. package/dist/client/docs/index.js +0 -7670
  251. package/jsconfig.json +0 -9
  252. package/scripts/clean-dist.js +0 -11
  253. package/scripts/use-next-npm-version.js +0 -80
  254. package/src/app.html +0 -17
  255. package/src/hooks.server.js +0 -7
  256. package/src/lib/Components/Alert/index.svelte +0 -88
  257. package/src/lib/Components/Alert/index.svelte.js +0 -101
  258. package/src/lib/Components/ArrowToggle/index.svelte +0 -62
  259. package/src/lib/Components/Attachment/index.svelte +0 -77
  260. package/src/lib/Components/Attachment/index.svelte.js +0 -119
  261. package/src/lib/Components/Audio/index.svelte +0 -199
  262. package/src/lib/Components/Audio/index.svelte.js +0 -543
  263. package/src/lib/Components/AudioEditor/index.svelte +0 -252
  264. package/src/lib/Components/AudioEditor/index.svelte.js +0 -977
  265. package/src/lib/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  266. package/src/lib/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  267. package/src/lib/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  268. package/src/lib/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  269. package/src/lib/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  270. package/src/lib/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  271. package/src/lib/Components/AuthCodeInput/index.svelte +0 -85
  272. package/src/lib/Components/AuthCodeInput/index.svelte.js +0 -95
  273. package/src/lib/Components/Breadcrumbs/index.svelte +0 -27
  274. package/src/lib/Components/Breadcrumbs/index.svelte.js +0 -88
  275. package/src/lib/Components/Button/index.svelte +0 -735
  276. package/src/lib/Components/Button/index.svelte.js +0 -408
  277. package/src/lib/Components/Chart/Klines/index.svelte +0 -87
  278. package/src/lib/Components/Chart/index.svelte +0 -279
  279. package/src/lib/Components/Chart/index.svelte.js +0 -1917
  280. package/src/lib/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -157
  281. package/src/lib/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -55
  282. package/src/lib/Components/ChartInput/DisplayNav/index.svelte +0 -297
  283. package/src/lib/Components/ChartInput/EditPanel/index.svelte +0 -155
  284. package/src/lib/Components/ChartInput/index.svelte +0 -21
  285. package/src/lib/Components/ChartInput/index.svelte.js +0 -671
  286. package/src/lib/Components/Checkbox/index.svelte +0 -410
  287. package/src/lib/Components/Checkbox/index.svelte.js +0 -178
  288. package/src/lib/Components/Code/index.svelte +0 -23
  289. package/src/lib/Components/Code/index.svelte.js +0 -33
  290. package/src/lib/Components/Color/index.svelte +0 -51
  291. package/src/lib/Components/Color/index.svelte.js +0 -31
  292. package/src/lib/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  293. package/src/lib/Components/ColorInput/ColorPalette/index.svelte +0 -62
  294. package/src/lib/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  295. package/src/lib/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  296. package/src/lib/Components/ColorInput/index.svelte +0 -70
  297. package/src/lib/Components/ColorInput/index.svelte.js +0 -386
  298. package/src/lib/Components/ConditionsInput/index.svelte +0 -46
  299. package/src/lib/Components/ConditionsInput/index.svelte.js +0 -201
  300. package/src/lib/Components/Confetti/index.svelte +0 -98
  301. package/src/lib/Components/Confetti/index.svelte.js +0 -94
  302. package/src/lib/Components/Content/index.svelte +0 -500
  303. package/src/lib/Components/Content/index.svelte.js +0 -910
  304. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  305. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  306. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  307. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  308. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  309. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  310. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  311. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  312. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  313. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  314. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  315. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  316. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  317. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  318. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  319. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  320. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  321. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  322. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  323. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  324. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  325. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  326. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  327. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  328. package/src/lib/Components/ContentInput/AttributesInput/index.svelte +0 -352
  329. package/src/lib/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  330. package/src/lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  331. package/src/lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  332. package/src/lib/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  333. package/src/lib/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  334. package/src/lib/Components/ContentInput/index.svelte +0 -78
  335. package/src/lib/Components/ContentInput/index.svelte.js +0 -1197
  336. package/src/lib/Components/CronInput/index.svelte +0 -78
  337. package/src/lib/Components/CronInput/index.svelte.js +0 -198
  338. package/src/lib/Components/DataTypeInput/index.svelte +0 -174
  339. package/src/lib/Components/DataTypeInput/index.svelte.js +0 -565
  340. package/src/lib/Components/Dropdown/index.svelte +0 -116
  341. package/src/lib/Components/Dropdown/index.svelte.js +0 -403
  342. package/src/lib/Components/EmailAddress/index.svelte +0 -22
  343. package/src/lib/Components/EmailAddress/index.svelte.js +0 -45
  344. package/src/lib/Components/ErrorX/index.svelte +0 -58
  345. package/src/lib/Components/Eye/index.svelte +0 -57
  346. package/src/lib/Components/FileInput/index.svelte +0 -146
  347. package/src/lib/Components/FileInput/index.svelte.js +0 -249
  348. package/src/lib/Components/Hamburger/index.svelte +0 -99
  349. package/src/lib/Components/HorizScrollBox/index.svelte +0 -145
  350. package/src/lib/Components/Icon/index.svelte +0 -412
  351. package/src/lib/Components/Icon/index.svelte.js +0 -116
  352. package/src/lib/Components/IconInput/index.svelte +0 -77
  353. package/src/lib/Components/IconInput/index.svelte.js +0 -259
  354. package/src/lib/Components/Image/index.svelte +0 -128
  355. package/src/lib/Components/Image/index.svelte.js +0 -116
  356. package/src/lib/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  357. package/src/lib/Components/ImageEditor/Image/index.svelte +0 -104
  358. package/src/lib/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  359. package/src/lib/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  360. package/src/lib/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  361. package/src/lib/Components/ImageEditor/Panels/File/index.svelte +0 -74
  362. package/src/lib/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  363. package/src/lib/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  364. package/src/lib/Components/ImageEditor/index.svelte +0 -93
  365. package/src/lib/Components/ImageEditor/index.svelte.js +0 -1961
  366. package/src/lib/Components/ImageSlider/index.svelte +0 -124
  367. package/src/lib/Components/ImageSlider/index.svelte.js +0 -99
  368. package/src/lib/Components/InfoBox/index.svelte +0 -89
  369. package/src/lib/Components/Json/Nested/index.svelte +0 -157
  370. package/src/lib/Components/Json/index.svelte +0 -60
  371. package/src/lib/Components/Json/index.svelte.js +0 -594
  372. package/src/lib/Components/LabeledItem/index.svelte +0 -102
  373. package/src/lib/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  374. package/src/lib/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  375. package/src/lib/Components/Layout/NavBar/index.svelte +0 -72
  376. package/src/lib/Components/Layout/index.svelte +0 -149
  377. package/src/lib/Components/Layout/index.svelte.js +0 -363
  378. package/src/lib/Components/Link/index.svelte +0 -47
  379. package/src/lib/Components/Link/index.svelte.js +0 -133
  380. package/src/lib/Components/LoadingSuccessDiv/index.svelte +0 -51
  381. package/src/lib/Components/LoadingWheel/index.svelte +0 -38
  382. package/src/lib/Components/Location/index.svelte +0 -79
  383. package/src/lib/Components/Location/index.svelte.js +0 -288
  384. package/src/lib/Components/LocationInput/index.svelte +0 -197
  385. package/src/lib/Components/LocationInput/index.svelte.js +0 -965
  386. package/src/lib/Components/Number/index.svelte +0 -47
  387. package/src/lib/Components/Number/index.svelte.js +0 -151
  388. package/src/lib/Components/PhoneCountryCode/index.svelte +0 -7
  389. package/src/lib/Components/PhoneCountryCode/index.svelte.js +0 -260
  390. package/src/lib/Components/PhoneNumber/index.svelte +0 -22
  391. package/src/lib/Components/PhoneNumber/index.svelte.js +0 -41
  392. package/src/lib/Components/Popover/index.svelte +0 -396
  393. package/src/lib/Components/Popover/index.svelte.js +0 -319
  394. package/src/lib/Components/Qr/index.svelte +0 -85
  395. package/src/lib/Components/Qr/index.svelte.js +0 -301
  396. package/src/lib/Components/QrInput/index.svelte +0 -47
  397. package/src/lib/Components/QrInput/index.svelte.js +0 -218
  398. package/src/lib/Components/Slider/index.svelte +0 -239
  399. package/src/lib/Components/Slider/index.svelte.js +0 -469
  400. package/src/lib/Components/Spacer/index.svelte +0 -41
  401. package/src/lib/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  402. package/src/lib/Components/StoragePicker/index.svelte +0 -187
  403. package/src/lib/Components/StoragePicker/index.svelte.js +0 -592
  404. package/src/lib/Components/SuccessCheck/index.svelte +0 -56
  405. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  406. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  407. package/src/lib/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  408. package/src/lib/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  409. package/src/lib/Components/TableAdvanced/Pagination/index.svelte +0 -43
  410. package/src/lib/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  411. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  412. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  413. package/src/lib/Components/TableAdvanced/index.svelte +0 -275
  414. package/src/lib/Components/TableAdvanced/index.svelte.js +0 -1565
  415. package/src/lib/Components/Tag/index.svelte +0 -45
  416. package/src/lib/Components/Tag/index.svelte.js +0 -76
  417. package/src/lib/Components/TextArrayInput/index.svelte +0 -108
  418. package/src/lib/Components/TextArrayInput/index.svelte.js +0 -239
  419. package/src/lib/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  420. package/src/lib/Components/TextInput/index.svelte +0 -223
  421. package/src/lib/Components/TextInput/index.svelte.js +0 -424
  422. package/src/lib/Components/Time/index.svelte +0 -7
  423. package/src/lib/Components/Time/index.svelte.js +0 -38
  424. package/src/lib/Components/TimeInput/NumberToggler/index.svelte +0 -34
  425. package/src/lib/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  426. package/src/lib/Components/TimeInput/index.js +0 -702
  427. package/src/lib/Components/TimeInput/index.svelte +0 -211
  428. package/src/lib/Components/TimeInput/index.svelte.js +0 -638
  429. package/src/lib/Components/Tooltip/index.svelte +0 -143
  430. package/src/lib/Components/TransparentBackground/index.svelte +0 -153
  431. package/src/lib/Components/TypingDots/index.svelte +0 -84
  432. package/src/lib/Components/VariablePathInput/index.svelte +0 -63
  433. package/src/lib/Components/VariablePathInput/index.svelte.js +0 -273
  434. package/src/lib/Components/VideoTBD/index.svelte +0 -100
  435. package/src/lib/Components/XFollow/index.svelte +0 -42
  436. package/src/lib/Components/XPost/index.svelte +0 -52
  437. package/src/lib/Components/XPost/index.svelte.js +0 -64
  438. package/src/lib/Components/YoutubeChannelButton/index.svelte +0 -82
  439. package/src/lib/Components/YoutubeVideo/index.svelte +0 -164
  440. package/src/lib/Components/YoutubeVideo/index.svelte.js +0 -133
  441. package/src/lib/actions/draggable.js +0 -49
  442. package/src/lib/actions/index.js +0 -24
  443. package/src/lib/actions/no_spaces.js +0 -33
  444. package/src/lib/actions/numbers_only.js +0 -26
  445. package/src/lib/actions/scroll_y.js +0 -28
  446. package/src/lib/actions/stop_scroll_propagation_y.js +0 -42
  447. package/src/lib/actions/swipe_handler.js +0 -295
  448. package/src/lib/client/astc_formatting/index.js +0 -1128
  449. package/src/lib/client/docs/index.js +0 -7670
  450. package/src/lib/client/index.js +0 -735
  451. package/src/lib/client/types/index.js +0 -2815
  452. package/src/lib/index.js +0 -181
  453. package/src/lib/style.css +0 -682
  454. package/src/routes/+layout.js +0 -8
  455. package/src/routes/+layout.svelte +0 -241
  456. package/src/routes/+page.svelte +0 -369
  457. package/src/routes/components/[component]/+page.svelte +0 -174
  458. package/src/routes/components/[component]/Showcase/Alert/index.svelte +0 -26
  459. package/src/routes/components/[component]/Showcase/Audio/index.svelte +0 -87
  460. package/src/routes/components/[component]/Showcase/AudioEditor/index.svelte +0 -93
  461. package/src/routes/components/[component]/Showcase/AuthCodeInput/index.svelte +0 -13
  462. package/src/routes/components/[component]/Showcase/Breadcrumbs/index.svelte +0 -44
  463. package/src/routes/components/[component]/Showcase/Button/index.svelte +0 -350
  464. package/src/routes/components/[component]/Showcase/Chart/index.svelte +0 -11117
  465. package/src/routes/components/[component]/Showcase/Checkbox/index.svelte +0 -52
  466. package/src/routes/components/[component]/Showcase/Code/index.svelte +0 -13
  467. package/src/routes/components/[component]/Showcase/Color/index.svelte +0 -28
  468. package/src/routes/components/[component]/Showcase/ColorInput/index.svelte +0 -35
  469. package/src/routes/components/[component]/Showcase/ConditionsInput/index.svelte +0 -18
  470. package/src/routes/components/[component]/Showcase/Confetti/index.svelte +0 -22
  471. package/src/routes/components/[component]/Showcase/Content/index.svelte +0 -110
  472. package/src/routes/components/[component]/Showcase/ContentInput/index.svelte +0 -1943
  473. package/src/routes/components/[component]/Showcase/CronInput/index.svelte +0 -30
  474. package/src/routes/components/[component]/Showcase/DocsDefinition/index.svelte +0 -155
  475. package/src/routes/components/[component]/Showcase/Dropdown/index.svelte +0 -88
  476. package/src/routes/components/[component]/Showcase/FileInput/index.svelte +0 -40
  477. package/src/routes/components/[component]/Showcase/Icon/index.svelte +0 -120
  478. package/src/routes/components/[component]/Showcase/IconInput/index.svelte +0 -15
  479. package/src/routes/components/[component]/Showcase/Image/index.svelte +0 -167
  480. package/src/routes/components/[component]/Showcase/ImageEditor/index.svelte +0 -90
  481. package/src/routes/components/[component]/Showcase/ImageSlider/index.svelte +0 -26
  482. package/src/routes/components/[component]/Showcase/InfoBox/index.svelte +0 -44
  483. package/src/routes/components/[component]/Showcase/Json/index.svelte +0 -80
  484. package/src/routes/components/[component]/Showcase/LabeledItem/index.svelte +0 -18
  485. package/src/routes/components/[component]/Showcase/Link/index.svelte +0 -15
  486. package/src/routes/components/[component]/Showcase/LoadingWheel/index.svelte +0 -10
  487. package/src/routes/components/[component]/Showcase/Location/index.svelte +0 -681
  488. package/src/routes/components/[component]/Showcase/LocationInput/index.svelte +0 -121
  489. package/src/routes/components/[component]/Showcase/Number/index.svelte +0 -55
  490. package/src/routes/components/[component]/Showcase/Popover/index.svelte +0 -225
  491. package/src/routes/components/[component]/Showcase/Qr/index.svelte +0 -77
  492. package/src/routes/components/[component]/Showcase/QrInput/index.svelte +0 -34
  493. package/src/routes/components/[component]/Showcase/Slider/index.svelte +0 -92
  494. package/src/routes/components/[component]/Showcase/Spacer/index.svelte +0 -27
  495. package/src/routes/components/[component]/Showcase/StoragePicker/index.svelte +0 -139
  496. package/src/routes/components/[component]/Showcase/TableAdvanced/index.svelte +0 -1568
  497. package/src/routes/components/[component]/Showcase/Tag/index.svelte +0 -27
  498. package/src/routes/components/[component]/Showcase/TextArrayInput/index.svelte +0 -23
  499. package/src/routes/components/[component]/Showcase/TextInput/index.svelte +0 -95
  500. package/src/routes/components/[component]/Showcase/Time/index.svelte +0 -43
  501. package/src/routes/components/[component]/Showcase/TimeInput/index.svelte +0 -100
  502. package/src/routes/components/[component]/Showcase/Tooltip/index.svelte +0 -37
  503. package/src/routes/components/[component]/Showcase/TransparentBackground/index.svelte +0 -26
  504. package/src/routes/components/[component]/Showcase/XFollow/index.svelte +0 -7
  505. package/src/routes/components/[component]/Showcase/XPost/index.svelte +0 -24
  506. package/src/routes/components/[component]/Showcase/YoutubeChannelButton/index.svelte +0 -7
  507. package/src/routes/components/[component]/Showcase/YoutubeVideo/index.svelte +0 -15
  508. package/src/routes/sitemap.xml/+server.js +0 -80
  509. package/src/routes/test/+page.svelte +0 -53
  510. package/src/routes/test2/+page.svelte +0 -10908
  511. package/src/routes/test3/+page.server.js +0 -9469
  512. package/src/routes/test3/+page.svelte +0 -109
  513. package/static/android-chrome-192x192.png +0 -0
  514. package/static/android-chrome-512x512.png +0 -0
  515. package/static/apple-touch-icon.png +0 -0
  516. package/static/favicon-inactive.svg +0 -4
  517. package/static/favicon-themed.svg +0 -11
  518. package/static/favicon-transparent-bg.webp +0 -0
  519. package/static/favicon-transparent.webp +0 -0
  520. package/static/favicon.png +0 -0
  521. package/static/favicon.svg +0 -3
  522. package/static/favicon.webp +0 -0
  523. package/static/fonts/ProximaVara.woff2 +0 -0
  524. package/static/fonts/Quicksand-VariableFont.woff2 +0 -0
  525. package/static/fonts/RobotoSerif-VariableFont.woff2 +0 -0
  526. package/static/full_logo.webp +0 -0
  527. package/static/icon.png +0 -0
  528. package/static/site.webmanifest +0 -21
  529. package/static/thumbnail.png +0 -0
  530. package/static/thumbnail.webp +0 -0
  531. package/svelte.config.js +0 -12
  532. package/vite.config.js +0 -6
@@ -4,6 +4,8 @@ import { create_popover_manager } from "../Popover/index.svelte.js"
4
4
  import { create_slider_manager } from "../Slider/index.svelte.js"
5
5
  import { create_unique_id, set_closurable, deep_copy } from "../../client/index.js"
6
6
 
7
+ let active_media_session_owner_id = null
8
+
7
9
  export function create_audio_manager(config) {
8
10
  let id = create_unique_id(null, 20)
9
11
  let src = $state(null)
@@ -31,6 +33,12 @@ export function create_audio_manager(config) {
31
33
  let download_audio_button_manager = $state(null)
32
34
  let download_is_loading = $state(false)
33
35
  let download_error_message = $state(null)
36
+ let playback_error_message = $state(null)
37
+ let is_destroyed = false
38
+ let lifecycle_version = 0
39
+ let download_abort_controller = null
40
+ const object_urls = new Set()
41
+ const revoke_timeout_ids = new Set()
34
42
 
35
43
  let time_loaded_until = $state(0)
36
44
  let time_highlight_range_start_percent = $derived((100 * time_slider_manager?.val) / time_slider_manager?.max)
@@ -55,6 +63,8 @@ export function create_audio_manager(config) {
55
63
  if (!browser) {
56
64
  return
57
65
  }
66
+ is_destroyed = false
67
+ lifecycle_version += 1
58
68
  let audio_el = document?.querySelector(`#audio_${id}`)
59
69
  if (audio_el) {
60
70
  if (audio_el.readyState >= 3) {
@@ -69,10 +79,12 @@ export function create_audio_manager(config) {
69
79
  // tbd on this
70
80
  return
71
81
  }
82
+ const normalized_volume = Number(volume)
72
83
  let audio_el = document?.querySelector(`#audio_${id}`)
73
- if (audio_el && volume) {
74
- audio_el.volume = volume
75
- volume_slider_manager.set_val(deep_copy(volume))
84
+ if (audio_el && Number.isFinite(normalized_volume)) {
85
+ const clamped_volume = Math.min(Math.max(normalized_volume, 0), 1)
86
+ audio_el.volume = clamped_volume
87
+ volume_slider_manager.set_val(deep_copy(clamped_volume))
76
88
  }
77
89
  }
78
90
 
@@ -81,15 +93,17 @@ export function create_audio_manager(config) {
81
93
  // tbd on this
82
94
  return
83
95
  }
96
+ const normalized_rate = Number(rate)
84
97
  let audio_el = document?.querySelector(`#audio_${id}`)
85
- if (audio_el && rate) {
86
- audio_el.playbackRate = rate
87
- rate_slider_manager.set_val(rate)
98
+ if (audio_el && Number.isFinite(normalized_rate) && normalized_rate > 0) {
99
+ audio_el.playbackRate = normalized_rate
100
+ rate_slider_manager.set_val(normalized_rate)
88
101
  update_position_state()
89
102
  }
90
103
  }
91
104
 
92
105
  function format_time(seconds) {
106
+ if (!Number.isFinite(Number(seconds)) || Number(seconds) < 0) return "00:00"
93
107
  const mins = Math.floor(seconds / 60)
94
108
  .toString()
95
109
  .padStart(2, "0")
@@ -156,8 +170,12 @@ export function create_audio_manager(config) {
156
170
  }
157
171
 
158
172
  function resize_image(src, callback) {
173
+ if (!browser || !src) {
174
+ callback(null)
175
+ return
176
+ }
159
177
  let img = new Image()
160
- img.crossOrigin = "anonymous" // Request CORS permissions
178
+ img.crossOrigin = "anonymous"
161
179
  img.onload = function () {
162
180
  let width = img.width
163
181
  let height = img.height
@@ -174,69 +192,107 @@ export function create_audio_manager(config) {
174
192
  }
175
193
  let canvas = document.createElement("canvas")
176
194
  let ctx = canvas.getContext("2d")
195
+ if (!ctx) {
196
+ callback(null)
197
+ return
198
+ }
177
199
  canvas.width = width
178
200
  canvas.height = height
179
- ctx.drawImage(img, 0, 0, width, height)
180
- callback(canvas.toDataURL())
201
+ try {
202
+ ctx.drawImage(img, 0, 0, width, height)
203
+ callback(canvas.toDataURL())
204
+ } catch {
205
+ callback(null)
206
+ }
181
207
  }
208
+ img.onerror = () => callback(null)
182
209
  img.src = src
183
210
  }
184
211
 
185
212
  let has_setup_media_session = $state(false)
213
+ function get_media_session() {
214
+ return browser && typeof navigator !== "undefined" && "mediaSession" in navigator ? navigator.mediaSession : null
215
+ }
216
+
217
+ function set_media_session_metadata(artwork = []) {
218
+ const media_session = get_media_session()
219
+ if (!media_session || typeof MediaMetadata === "undefined" || active_media_session_owner_id !== id) return
220
+
221
+ try {
222
+ media_session.metadata = new MediaMetadata({
223
+ title: title || "Audio",
224
+ artist: artist || "",
225
+ album: album || "",
226
+ artwork,
227
+ })
228
+ } catch {
229
+ // Media Session metadata is optional and inconsistently implemented.
230
+ }
231
+ }
232
+
186
233
  function setup_media_session() {
187
- let metadata = {
188
- title: title,
189
- artist: artist || "",
190
- album: album,
191
- artwork: [],
234
+ const media_session = get_media_session()
235
+ if (!media_session) return
236
+
237
+ active_media_session_owner_id = id
238
+ has_setup_media_session = true
239
+ const current_lifecycle_version = lifecycle_version
240
+ set_media_session_metadata()
241
+
242
+ const action_handlers = {
243
+ play: play_audio,
244
+ pause: pause_audio,
245
+ seekto: (details) => seek_to_audio(details.seekTime),
246
+ seekbackward: nav_seek_backward,
247
+ seekforward: nav_seek_forward,
192
248
  }
249
+ Object.entries(action_handlers).forEach(([action, handler]) => {
250
+ try {
251
+ media_session.setActionHandler(action, handler)
252
+ } catch {
253
+ // Ignore Media Session actions unsupported by the current browser.
254
+ }
255
+ })
256
+
193
257
  if (image_src) {
194
- //temp fix since ios mobile is trash and not working with sizes over 128x128 even though it did on ios idk 16.4 or something
195
258
  resize_image(image_src, function (resized_image_src) {
196
- metadata.artwork = [
259
+ if (is_destroyed || current_lifecycle_version !== lifecycle_version || !resized_image_src) return
260
+ set_media_session_metadata([
197
261
  {
198
262
  src: resized_image_src,
199
- sizes: "128x128", // maximum size is now 128x128
200
- type: image_type,
263
+ sizes: "128x128",
264
+ type: image_type || "image/png",
201
265
  },
202
- // {
203
- // src: image_src,
204
- // sizes: "1000x1000", // seems as though need this even if not correct and max size of a size can be 1000px
205
- // type: image_type,
206
- // },
207
- // {
208
- // src: "https://dummyimage.com/1000x500",
209
- // sizes: "1000x500",
210
- // type: "image/png",
211
- // },
212
- ]
213
- navigator.mediaSession.metadata = new MediaMetadata(metadata)
214
- navigator.mediaSession.setActionHandler("play", play_audio)
215
- navigator.mediaSession.setActionHandler("pause", pause_audio)
216
- navigator.mediaSession.setActionHandler("seekto", (details) => seek_to_audio(details.seekTime))
217
- navigator.mediaSession.setActionHandler("seekbackward", (details) => nav_seek_backward(details))
218
- navigator.mediaSession.setActionHandler("seekforward", (details) => nav_seek_forward(details))
266
+ ])
219
267
  })
220
268
  }
221
269
  }
222
270
 
223
271
  function update_position_state() {
224
- if ("setPositionState" in navigator.mediaSession) {
225
- navigator.mediaSession.setPositionState({
226
- duration: time_slider_manager?.max,
227
- playback_rate: rate_slider_manager?.val,
228
- position: time_slider_manager?.val,
272
+ const media_session = get_media_session()
273
+ const duration = Number(time_slider_manager?.max)
274
+ const playback_rate = Number(rate_slider_manager?.val)
275
+ const position = Number(time_slider_manager?.val)
276
+ if (!media_session?.setPositionState || !Number.isFinite(duration) || duration <= 0) return
277
+
278
+ try {
279
+ media_session.setPositionState({
280
+ duration,
281
+ playbackRate: Number.isFinite(playback_rate) && playback_rate > 0 ? playback_rate : 1,
282
+ position: Math.min(Math.max(Number.isFinite(position) ? position : 0, 0), duration),
229
283
  })
284
+ } catch {
285
+ // Position state may reject transient or unsupported media values.
230
286
  }
231
287
  }
232
288
 
233
289
  function nav_seek_backward(details) {
234
- const skip_time = details.seekOffset || default_skip_time
290
+ const skip_time = details?.seekOffset ?? default_skip_time
235
291
  seek_to_audio(Math.max(time_slider_manager?.val - skip_time, 0))
236
292
  }
237
293
 
238
294
  function nav_seek_forward(details) {
239
- const skip_time = details.seekOffset || default_skip_time
295
+ const skip_time = details?.seekOffset ?? default_skip_time
240
296
  seek_to_audio(Math.min(time_slider_manager?.val + skip_time, time_slider_manager?.max))
241
297
  }
242
298
 
@@ -261,14 +317,17 @@ export function create_audio_manager(config) {
261
317
  }
262
318
  let audio_el = document?.querySelector(`#audio_${id}`)
263
319
  const is_playing = !audio_el ? false : !audio_el.paused && !audio_el.ended && audio_el.currentTime > 0
264
- play_pause_support_icon = "pause"
265
- if (audio_el && !is_playing) {
266
- if (!has_setup_media_session) {
267
- setup_media_session()
268
- }
269
- await audio_el.play()
270
- navigator.mediaSession.playbackState = "playing"
271
- update_position_state()
320
+ if (!audio_el) return
321
+
322
+ playback_error_message = null
323
+ if (!has_setup_media_session || active_media_session_owner_id !== id) setup_media_session()
324
+
325
+ try {
326
+ if (!is_playing) await audio_el.play()
327
+ if (!is_destroyed) handle_playing()
328
+ } catch {
329
+ play_pause_support_icon = "play"
330
+ playback_error_message = "Audio playback could not start."
272
331
  }
273
332
  }
274
333
 
@@ -278,14 +337,53 @@ export function create_audio_manager(config) {
278
337
  return
279
338
  }
280
339
  let audio_el = document?.querySelector(`#audio_${id}`)
281
- const is_playing = !audio_el ? false : !audio_el.paused && !audio_el.ended && audio_el.currentTime > 0
282
340
  play_pause_support_icon = "play"
283
- if (audio_el && is_playing) {
284
- audio_el.pause()
285
- navigator.mediaSession.playbackState = "paused"
341
+ if (audio_el && !audio_el.paused) audio_el.pause()
342
+
343
+ const media_session = get_media_session()
344
+ if (media_session && active_media_session_owner_id === id) {
345
+ try {
346
+ media_session.playbackState = "paused"
347
+ } catch {
348
+ // Playback state is not implemented consistently across browsers.
349
+ }
350
+ }
351
+ }
352
+
353
+ function handle_playing() {
354
+ if (is_destroyed) return
355
+ play_pause_support_icon = "pause"
356
+ playback_error_message = null
357
+ if (!has_setup_media_session || active_media_session_owner_id !== id) setup_media_session()
358
+ const media_session = get_media_session()
359
+ if (media_session && active_media_session_owner_id === id) {
360
+ try {
361
+ media_session.playbackState = "playing"
362
+ } catch {
363
+ // Playback state is not implemented consistently across browsers.
364
+ }
365
+ }
366
+ update_position_state()
367
+ }
368
+
369
+ function handle_ended() {
370
+ play_pause_support_icon = "play"
371
+ const media_session = get_media_session()
372
+ if (media_session && active_media_session_owner_id === id) {
373
+ try {
374
+ media_session.playbackState = "none"
375
+ } catch {
376
+ // Playback state is not implemented consistently across browsers.
377
+ }
286
378
  }
287
379
  }
288
380
 
381
+ function handle_audio_error() {
382
+ is_loading = false
383
+ play_pause_support_icon = "play"
384
+ playback_error_message = "Audio could not be loaded."
385
+ }
386
+
289
387
  function set_is_loading(input) {
290
388
  is_loading = !!input
291
389
  }
@@ -327,15 +425,16 @@ export function create_audio_manager(config) {
327
425
  if (!browser) return
328
426
  download_error_message = null
329
427
  if (!src) {
330
- download_error_message = "missing src"
428
+ download_error_message = "Missing audio source."
331
429
  return
332
430
  }
333
431
  try {
334
432
  download_is_loading = true
335
- const res = await fetch(src)
433
+ download_abort_controller?.abort()
434
+ download_abort_controller = new AbortController()
435
+ const res = await fetch(src, { signal: download_abort_controller.signal })
336
436
  if (!res.ok) {
337
- const t = await res.text().catch(() => null)
338
- download_error_message = t || `download failed (${res.status})`
437
+ download_error_message = `Download failed (${res.status}).`
339
438
  return
340
439
  }
341
440
  const content_type = res.headers.get("content-type") || type || "audio/mpeg"
@@ -344,6 +443,7 @@ export function create_audio_manager(config) {
344
443
  const base = safe_file_base(title || album || artist || "recording")
345
444
  const file_name = `${base}.${ext}`
346
445
  const object_url = URL.createObjectURL(blob)
446
+ object_urls.add(object_url)
347
447
  const a = document.createElement("a")
348
448
  a.href = object_url
349
449
  a.download = file_name
@@ -351,10 +451,16 @@ export function create_audio_manager(config) {
351
451
  document.body.appendChild(a)
352
452
  a.click()
353
453
  a.remove()
354
- setTimeout(() => URL.revokeObjectURL(object_url), 1000)
454
+ const timeout_id = window.setTimeout(() => {
455
+ URL.revokeObjectURL(object_url)
456
+ object_urls.delete(object_url)
457
+ revoke_timeout_ids.delete(timeout_id)
458
+ }, 1000)
459
+ revoke_timeout_ids.add(timeout_id)
355
460
  } catch (e) {
356
- download_error_message = e?.message || "download failed"
461
+ if (e?.name !== "AbortError") download_error_message = "Download failed."
357
462
  } finally {
463
+ download_abort_controller = null
358
464
  download_is_loading = false
359
465
  }
360
466
  }
@@ -368,13 +474,13 @@ export function create_audio_manager(config) {
368
474
  album = config?.album ?? null
369
475
  image_src = get_src(config?.image_src, config?.image_storage_id)
370
476
  image_type = config?.image_type ?? null
371
- default_skip_time = config?.default_skip_time ?? null
477
+ default_skip_time = config?.default_skip_time ?? 10
372
478
  ui_type = config?.ui_type ?? "standard"
373
479
  play_pause_button_manager = create_button_manager({
374
480
  type: "soft",
375
481
  is_uniform: true,
376
482
  is_icon_bg_tint: false,
377
- aria_label: "play_pause",
483
+ aria_label: "Play or pause audio",
378
484
  is_loading: () => is_loading,
379
485
  support_icon: () => play_pause_support_icon ?? "play",
380
486
  on_click: () => toggle_play_pause(),
@@ -407,7 +513,7 @@ export function create_audio_manager(config) {
407
513
  icon_sw: 60,
408
514
  is_icon_bg_tint: false,
409
515
  is_uniform: true,
410
- aria_label: "settings",
516
+ aria_label: "Audio settings",
411
517
  popover_target: () => `popover_${settings_popover_manager?.id}`,
412
518
  })
413
519
  volume_slider_manager = create_slider_manager({
@@ -436,10 +542,48 @@ export function create_audio_manager(config) {
436
542
  text: "Download",
437
543
  support_icon: "download",
438
544
  is_loading: () => download_is_loading,
545
+ is_disabled: () => !src,
546
+ aria_label: "Download audio",
439
547
  on_click: () => download_audio(),
440
548
  })
441
549
  }
442
550
 
551
+ function destroy() {
552
+ is_destroyed = true
553
+ lifecycle_version += 1
554
+ download_abort_controller?.abort()
555
+ download_abort_controller = null
556
+
557
+ const audio_el = browser ? document?.querySelector(`#audio_${id}`) : null
558
+ if (audio_el && !audio_el.paused) audio_el.pause()
559
+
560
+ if (browser) {
561
+ revoke_timeout_ids.forEach((timeout_id) => window.clearTimeout(timeout_id))
562
+ object_urls.forEach((object_url) => URL.revokeObjectURL(object_url))
563
+ }
564
+ revoke_timeout_ids.clear()
565
+ object_urls.clear()
566
+
567
+ const media_session = get_media_session()
568
+ if (media_session && active_media_session_owner_id === id) {
569
+ ;["play", "pause", "seekto", "seekbackward", "seekforward"].forEach((action) => {
570
+ try {
571
+ media_session.setActionHandler(action, null)
572
+ } catch {
573
+ // Ignore unsupported Media Session actions.
574
+ }
575
+ })
576
+ try {
577
+ media_session.playbackState = "none"
578
+ media_session.metadata = null
579
+ } catch {
580
+ // Playback state is not implemented consistently across browsers.
581
+ }
582
+ active_media_session_owner_id = null
583
+ }
584
+ has_setup_media_session = false
585
+ }
586
+
443
587
  init(config)
444
588
 
445
589
  return {
@@ -522,10 +666,20 @@ export function create_audio_manager(config) {
522
666
  get is_show_download_button() {
523
667
  return is_show_download_button
524
668
  },
669
+ get download_is_loading() {
670
+ return download_is_loading
671
+ },
672
+ get download_error_message() {
673
+ return download_error_message
674
+ },
675
+ get playback_error_message() {
676
+ return playback_error_message
677
+ },
525
678
  handle_mount,
526
679
  handle_loaded_metadata,
527
680
  handle_progress,
528
681
  handle_time_update,
682
+ handle_volume_change,
529
683
  handle_rate_change,
530
684
  handle_seeking,
531
685
  handle_can_play,
@@ -538,6 +692,11 @@ export function create_audio_manager(config) {
538
692
  toggle_play_pause,
539
693
  play_audio,
540
694
  pause_audio,
695
+ handle_playing,
696
+ handle_ended,
697
+ handle_audio_error,
698
+ download_audio,
541
699
  set_is_loading,
700
+ destroy,
542
701
  }
543
702
  }
@@ -10,8 +10,11 @@
10
10
  import TextInput from "../TextInput/index.svelte"
11
11
  import Dropdown from "../Dropdown/index.svelte"
12
12
  import StoragePicker from "../StoragePicker/index.svelte"
13
+ import { onDestroy } from "svelte"
13
14
 
14
15
  let { manager, extra_buttons } = $props()
16
+
17
+ onDestroy(() => manager?.on_destroy?.())
15
18
  </script>
16
19
 
17
20
  {#snippet audio_input()}
@@ -38,7 +41,7 @@
38
41
  {/if}
39
42
  <Button manager={manager?.generate_audio_changes_button_manager} />
40
43
  </div>
41
- {#if manager?.is_loading_generate_audio && manager?.is_text_to_audio && manager?.text_to_audio_text_input_manager && manager?.text_to_audio_text_input_manager.length > 10}
44
+ {#if manager?.is_loading_generate_audio && manager?.is_text_to_audio && manager?.text_to_audio_text_input_manager?.val?.length > 10}
42
45
  <p>
43
46
  This should take around {manager?.text_to_audio_time_in_minutes} minutes.
44
47
  </p>
@@ -67,14 +70,14 @@
67
70
  <Spacer mt={1} mb={1} />
68
71
  <LabeledItem
69
72
  is_disabled={manager?.is_loading_generate_audio || manager?.is_disabled}
70
- label={!manager?.audio_file_obj?.src && manager?.is_text_to_audio ? "Audio Generation" : "Audio File"}
73
+ label={manager?.is_text_to_audio ? "Audio Generation" : "Audio File"}
71
74
  mt={1}
72
75
  content_min_width={35}
73
76
  content_max_width={60}
74
77
  >
75
78
  {#if !manager?.is_text_to_audio}
76
79
  <div style="display: flex; margin-bottom: 1rem;">
77
- {#if !manager?.audio_file_obj?.src}
80
+ {#if !manager?.audio_storage_picker_manager?.val}
78
81
  <Button manager={manager?.use_text_to_audio_button_manager} />
79
82
  <Button manager={manager?.select_file_from_storage_button_manager} />
80
83
  {/if}
@@ -0,0 +1,13 @@
1
+ export default Index;
2
+ type Index = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<$$ComponentProps>): void;
5
+ };
6
+ declare const Index: import("svelte").Component<{
7
+ manager: any;
8
+ extra_buttons: any;
9
+ }, {}, "">;
10
+ type $$ComponentProps = {
11
+ manager: any;
12
+ extra_buttons: any;
13
+ };