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
package/CHANGELOG.md ADDED
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ ## 1.1.75 - 2026-07-25
4
+
5
+ ### Security and resilience
6
+
7
+ - Reject executable or malformed link targets in `Link`, `Button`, `InfoBox`, and rendered content.
8
+ - Escape generated email HTML and restrict emitted attributes, URLs, and inline style values.
9
+ - Generate identifiers with cryptographically secure randomness when available, and harden theme cookies.
10
+ - Make browser-dependent utilities safe to import and call during server rendering.
11
+ - Harden CSV parsing against malformed input and prototype-key mutation.
12
+
13
+ ### Component fixes
14
+
15
+ - Correct manager/view contracts across content, table, number, tag, cron, code, icon, location, media, and input components.
16
+ - Fix stale Svelte 5 state, disabled input behavior, keyboard interaction, labels, popovers, tooltips, and horizontal scrolling.
17
+ - Prevent invalid paragraph nesting and hydration mismatches when rich content contains interactive or block elements.
18
+ - Add accessible names and document landmarks to icon-only controls, theme toggles, navigation, and documentation pages.
19
+ - Improve MapKit loading and failure states, embedded media URL handling, and object URL cleanup.
20
+ - Restore missing public exports and aliases, including `Alert`, `Confetti`, `PhoneCountryCode`, and `YouTubeVideo`.
21
+
22
+ ### Packaging and quality
23
+
24
+ - Publish generated type declarations and a restricted package file set.
25
+ - Move Svelte to peer dependencies and add explicit Svelte 5 / SvelteKit 2 compatibility metadata.
26
+ - Add automated component, manager, utility, action, security, public API, and package-content checks.
27
+ - Load documentation showcases on demand and replace the oversized home-page documentation dump with a lightweight summary.
28
+ - Update development dependencies and resolve known dependency audit findings.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 SvelteKit UI contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,35 +1,62 @@
1
- ## Setup
1
+ # SvelteKit UI
2
2
 
3
- Refer to https://www.sveltekit-ui.com. for documentation
3
+ SvelteKit UI is a Svelte 5 component library built around paired components and reactive manager functions. It is intended for SvelteKit 2 applications.
4
4
 
5
- You can use an existing sveltekit project and install this package in your project with
6
- `npm install sveltekit-ui`
5
+ The component documentation and interactive examples live at [sveltekit-ui.com](https://www.sveltekit-ui.com).
7
6
 
8
- or to start a new project with a starter template (recommended). In your terminal cd into a folder you want to put your project files in such as /projects/my-project-all to use as the parent folder for stuff related to your project (but replace "my-project" with your own project name)
7
+ ## Install
9
8
 
10
- `npx create-sveltekit-ui-site my-project`
9
+ ```sh
10
+ npm install sveltekit-ui
11
+ ```
12
+
13
+ Import the shared styles once in your root layout:
14
+
15
+ ```svelte
16
+ <script>
17
+ import "sveltekit-ui/style.css"
18
+ import { Button, create_button_manager } from "sveltekit-ui"
11
19
 
12
- ## Open Code Editor
20
+ const button = create_button_manager({
21
+ text: "Save",
22
+ on_click: () => console.log("saved"),
23
+ })
24
+ </script>
25
+
26
+ <Button manager={button} />
27
+ ```
13
28
 
14
- `code .` should open the project in your code editor such as vscode
29
+ Most interactive components expose a `create_*_manager` function. The manager owns state and behavior; the Svelte component renders that manager. Components that depend on browser APIs should be initialized or used in the browser, while imports remain safe during SvelteKit server rendering.
15
30
 
16
- ## Update Package
31
+ ## Starter project
17
32
 
18
- It's possible the starter template is a few updates behind. Check for updates by running `ncu -u`. You should run that periodically to keep the latest version of your npm packges
33
+ To create a new site using the library:
19
34
 
20
- ## Developing
35
+ ```sh
36
+ npx create-sveltekit-ui-site my-project
37
+ ```
21
38
 
22
- Once you've created a project and installed dependencies start a development server:
39
+ ## Development
23
40
 
24
- ```bash
25
- npm i
41
+ ```sh
42
+ npm install
26
43
  npm run dev
27
44
  ```
28
45
 
29
- ## Browser
46
+ Copy `.env.example` to `.env` and provide `PUBLIC_APPLE_MAPKIT_JS_API_KEY` if you want to run the MapKit showcases locally.
47
+
48
+ Before publishing, run the complete verification suite:
49
+
50
+ ```sh
51
+ npm run verify
52
+ ```
53
+
54
+ This checks the Svelte source, runs tests, generates the distributable package and type declarations, and builds the documentation site.
30
55
 
31
- That should spit out a url like http://localhost:5173/ where you should see your starting website.
56
+ ## Compatibility and releases
32
57
 
33
- ## Code Generator
58
+ - Svelte 5 is required.
59
+ - SvelteKit 2 is required because some components use SvelteKit navigation and environment modules.
60
+ - Public API changes are documented with package releases. Consumers should review release notes before adopting a new minor version.
34
61
 
35
- This is experimental but you can check out https://www.contibase.com/code_generator for component building help
62
+ The experimental Contibase code generator is available at [contibase.com/code_generator](https://www.contibase.com/code_generator).
@@ -6,13 +6,20 @@
6
6
  import { fly } from "svelte/transition"
7
7
 
8
8
  let { manager = null, options = null, on_alert_added } = $props()
9
+
10
+ $effect(() => {
11
+ const current_manager = manager
12
+ current_manager?.run_auto_delete?.()
13
+ return () => current_manager?.destroy?.()
14
+ })
9
15
  </script>
10
16
 
11
- <div class="alerts_container">
17
+ <div class="alerts_container" role="region" aria-label="Notifications" aria-live="polite">
12
18
  {#if Array.isArray(manager?.alerts) && manager?.alerts.length > 0}
13
19
  {#each manager?.alerts as alert, i (alert)}
14
20
  <div
15
21
  class="card alert_box"
22
+ role="status"
16
23
  class:alert_container={!manager?.is_small_screen}
17
24
  class:small_alert_container={manager?.is_small_screen}
18
25
  style="--br: {manager?.border_radius}rem;"
@@ -0,0 +1,15 @@
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
+ options?: any;
9
+ on_alert_added: any;
10
+ }, {}, "">;
11
+ type $$ComponentProps = {
12
+ manager?: any;
13
+ options?: any;
14
+ on_alert_added: any;
15
+ };
@@ -1,5 +1,6 @@
1
1
  import { create_unique_id } from "../../client/index.js"
2
2
  import { create_button_manager } from "../Button/index.svelte.js"
3
+ import { browser } from "$app/environment"
3
4
 
4
5
  export function create_alert_manager(config) {
5
6
  let alerts = $state([])
@@ -15,7 +16,7 @@ export function create_alert_manager(config) {
15
16
  clearInterval(interval)
16
17
  interval = null
17
18
  }
18
- if (Array.isArray(alerts) && alerts.length > 0) {
19
+ if (browser && Array.isArray(alerts) && alerts.length > 0) {
19
20
  interval = setInterval(function () {
20
21
  if (Array.isArray(alerts) && alerts.length > 0) {
21
22
  alerts.sort((a, b) => a?.epoch - b?.epoch)
@@ -50,6 +51,7 @@ export function create_alert_manager(config) {
50
51
  type: "soft",
51
52
  support_icon: "x",
52
53
  is_uniform: true,
54
+ aria_label: "Dismiss notification",
53
55
  on_click: () => delete_alert(id),
54
56
  }),
55
57
  }
@@ -63,13 +65,34 @@ export function create_alert_manager(config) {
63
65
  }
64
66
 
65
67
  function init(config) {
66
- alerts = config?.alerts ?? []
68
+ alerts = Array.isArray(config?.alerts)
69
+ ? config.alerts.map((alert) => {
70
+ const id = alert?.id ?? create_unique_id(null, 20)
71
+ return {
72
+ ...alert,
73
+ id,
74
+ epoch: alert?.epoch ?? Math.floor(Date.now() / 1000),
75
+ x_button_manager:
76
+ alert?.x_button_manager ??
77
+ create_button_manager({
78
+ type: "soft",
79
+ support_icon: "x",
80
+ is_uniform: true,
81
+ aria_label: "Dismiss notification",
82
+ on_click: () => delete_alert(id),
83
+ }),
84
+ }
85
+ })
86
+ : []
67
87
  is_small_screen = config?.is_small_screen ?? false
68
88
  x_color = config?.x_color ?? "var(--g7-t)"
69
89
  border_radius = config?.border_radius ?? 1
70
90
  success_icon_color = config?.success_icon_color ?? "var(--success-t)"
71
- error_icon_color = config?.alerts ?? "var(--error-t)"
72
- run_auto_delete()
91
+ error_icon_color = config?.error_icon_color ?? "var(--error-t)"
92
+ }
93
+ function destroy() {
94
+ if (interval) clearInterval(interval)
95
+ interval = null
73
96
  }
74
97
  init(config)
75
98
 
@@ -97,5 +120,7 @@ export function create_alert_manager(config) {
97
120
  },
98
121
  add_alert,
99
122
  delete_alert,
123
+ run_auto_delete,
124
+ destroy,
100
125
  }
101
126
  }
@@ -0,0 +1,15 @@
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
+ direction?: string;
8
+ is_open?: boolean;
9
+ color_one?: string;
10
+ }, {}, "">;
11
+ type $$ComponentProps = {
12
+ direction?: string;
13
+ is_open?: boolean;
14
+ color_one?: string;
15
+ };
@@ -7,14 +7,19 @@
7
7
  import Icon from "../Icon/index.svelte"
8
8
 
9
9
  let { manager } = $props()
10
+
11
+ $effect(() => {
12
+ const current_manager = manager
13
+ return () => current_manager?.destroy?.()
14
+ })
10
15
  </script>
11
16
 
12
17
  {#snippet display_content()}
13
- {#if ["image/webp", "image/jpeg", "image/png", "image/gif"].includes(manager?.val_prepped?.content_type)}
18
+ {#if ["image/webp", "image/jpeg", "image/png", "image/gif"].includes(manager?.val_prepped?.content_type) && manager?.val_prepped?.image_manager}
14
19
  <Image manager={manager?.val_prepped?.image_manager} />
15
- {:else if ["audio/mpeg", "audio/wav", "audio/ogg", "audio/aac"].includes(manager?.val_prepped?.content_type)}
20
+ {:else if ["audio/mpeg", "audio/wav", "audio/ogg", "audio/aac"].includes(manager?.val_prepped?.content_type) && manager?.val_prepped?.audio_manager}
16
21
  <Audio manager={manager?.val_prepped?.audio_manager} />
17
- {:else if ["application/json"].includes(manager?.val_prepped?.content_type)}
22
+ {:else if ["application/json"].includes(manager?.val_prepped?.content_type) && manager?.val_prepped?.json_manager}
18
23
  <Json manager={manager?.val_prepped?.json_manager} />
19
24
  {/if}
20
25
  {/snippet}
@@ -27,11 +32,9 @@
27
32
  <p class="file_name">{manager?.val_prepped?.name}</p>
28
33
  <p style="margin-top: 0; line-height: 1.4rem; color: var(--g10-t); font-size: 1.2rem;">
29
34
  {manager?.val_prepped?.content_type}
30
- <span style="color: var(--g6-t); font-size: 1.2rem; margin-left: 1rem;"
31
- >{manager?.val_prepped?.content
32
- ? `${Math.round(((manager?.val_prepped?.content.length * 3) / 4) * 0.001)}KB`
33
- : ""}</span
34
- >
35
+ <span style="color: var(--g6-t); font-size: 1.2rem; margin-left: 1rem;">
36
+ {manager?.val_prepped?.size_label ?? ""}
37
+ </span>
35
38
  </p>
36
39
  </div>
37
40
  </div>
@@ -42,6 +45,9 @@
42
45
  {/if}
43
46
  </div>
44
47
  </div>
48
+ {#if manager?.error_message}
49
+ <p class="error_message" role="alert">{manager.error_message}</p>
50
+ {/if}
45
51
  {#if manager?.is_show_content}
46
52
  {@render display_content()}
47
53
  {/if}
@@ -74,4 +80,8 @@
74
80
  overflow: hidden;
75
81
  min-width: 0;
76
82
  }
83
+ .error_message {
84
+ color: oklch(var(--l3-t) var(--c16) var(--h3));
85
+ margin: 0.5rem 0;
86
+ }
77
87
  </style>
@@ -0,0 +1,11 @@
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
+ }, {}, "">;
9
+ type $$ComponentProps = {
10
+ manager: any;
11
+ };
@@ -11,15 +11,53 @@ export function create_attachment_manager(config) {
11
11
  let show_content_popover_manager = $state(null)
12
12
  let show_content_button_manager = $state(null)
13
13
  let download_button_manager = $state(null)
14
+ let content_error_message = $state("")
15
+ let download_error_message = $state("")
16
+ let error_message = $derived(content_error_message || download_error_message)
17
+ let download_is_loading = $state(false)
14
18
  let is_show_content = $derived(set_closurable(config?.is_show_content, false))
19
+ const object_urls = new Set()
20
+ const revoke_timeout_ids = new Set()
21
+
22
+ function destroy_embedded_content(input) {
23
+ input?.image_manager?.destroy?.()
24
+ input?.audio_manager?.destroy?.()
25
+ input?.json_manager?.destroy?.()
26
+ }
27
+
28
+ function decode_json_content(content) {
29
+ const binary_content = atob(String(content ?? ""))
30
+ const bytes = Uint8Array.from(binary_content, (character) => character.charCodeAt(0))
31
+ return JSON.parse(new TextDecoder().decode(bytes))
32
+ }
33
+
34
+ function get_content_size(content) {
35
+ const normalized_content = String(content ?? "").replace(/\s/g, "")
36
+ if (!normalized_content) return 0
37
+ const padding = normalized_content.endsWith("==") ? 2 : normalized_content.endsWith("=") ? 1 : 0
38
+ return Math.max(0, Math.floor((normalized_content.length * 3) / 4) - padding)
39
+ }
40
+
41
+ function format_file_size(size) {
42
+ if (!size) return ""
43
+ if (size < 1000) return `${size} B`
44
+ if (size < 1000000) return `${Math.round(size / 1000)} KB`
45
+ return `${(size / 1000000).toFixed(1)} MB`
46
+ }
15
47
 
16
48
  function set_val_prepped(input) {
49
+ destroy_embedded_content(val_prepped)
50
+ content_error_message = ""
51
+ download_error_message = ""
52
+
17
53
  if (!input || typeof input != "object" || Array.isArray(input)) {
18
54
  val_prepped = null
55
+ content_error_message = "Attachment data is missing or invalid."
19
56
  return
20
57
  }
21
58
  let val_prepped_loc = {
22
59
  ...input,
60
+ size_label: format_file_size(get_content_size(input?.content)),
23
61
  }
24
62
  if (["image/webp", "image/jpeg", "image/png", "image/gif"].includes(input?.content_type)) {
25
63
  val_prepped_loc.image_manager = create_image_manager({
@@ -45,14 +83,17 @@ export function create_attachment_manager(config) {
45
83
  sw: 30,
46
84
  })
47
85
  } else if (["application/json"].includes(input?.content_type)) {
48
- const decoded_content = atob(input.content)
49
- const extracted_json = JSON.parse(decoded_content)
50
- val_prepped_loc.json_manager = create_json_manager({
51
- is_edit_mode: false,
52
- is_popover: false,
53
- is_show_buttons: true,
54
- val: extracted_json,
55
- })
86
+ try {
87
+ const extracted_json = decode_json_content(input.content)
88
+ val_prepped_loc.json_manager = create_json_manager({
89
+ is_edit_mode: false,
90
+ is_popover: false,
91
+ is_show_buttons: true,
92
+ val: extracted_json,
93
+ })
94
+ } catch {
95
+ content_error_message = "This attachment does not contain valid JSON."
96
+ }
56
97
  val_prepped_loc.icon_manager = create_icon_manager({
57
98
  icon_id: "file", // tbd
58
99
  sw: 30,
@@ -66,14 +107,48 @@ export function create_attachment_manager(config) {
66
107
  val_prepped = val_prepped_loc
67
108
  }
68
109
 
69
- function download_attachment(input) {
70
- const data_url = `data:${input.content_type};base64,${input.content}`
71
- const link = document.createElement("a")
72
- link.href = data_url
73
- link.download = input.name
74
- document.body.appendChild(link)
75
- link.click()
76
- document.body.removeChild(link)
110
+ function sanitize_file_name(input) {
111
+ return String(input ?? "attachment")
112
+ .replace(/[\\/:*?"<>|\u0000-\u001f]/g, "_")
113
+ .trim()
114
+ .slice(0, 180) || "attachment"
115
+ }
116
+
117
+ function create_attachment_blob(input) {
118
+ const binary_content = atob(String(input?.content ?? "").replace(/\s/g, ""))
119
+ const bytes = Uint8Array.from(binary_content, (character) => character.charCodeAt(0))
120
+ return new Blob([bytes], { type: input?.content_type || "application/octet-stream" })
121
+ }
122
+
123
+ async function download_attachment(input = val_prepped) {
124
+ download_error_message = ""
125
+ if (typeof document === "undefined" || !input?.content) {
126
+ download_error_message = "This attachment has no downloadable content."
127
+ return
128
+ }
129
+
130
+ download_is_loading = true
131
+ try {
132
+ const object_url = URL.createObjectURL(create_attachment_blob(input))
133
+ object_urls.add(object_url)
134
+ const link = document.createElement("a")
135
+ link.href = object_url
136
+ link.download = sanitize_file_name(input?.name)
137
+ document.body.appendChild(link)
138
+ link.click()
139
+ link.remove()
140
+
141
+ const timeout_id = window.setTimeout(() => {
142
+ URL.revokeObjectURL(object_url)
143
+ object_urls.delete(object_url)
144
+ revoke_timeout_ids.delete(timeout_id)
145
+ }, 1000)
146
+ revoke_timeout_ids.add(timeout_id)
147
+ } catch {
148
+ download_error_message = "The attachment could not be downloaded."
149
+ } finally {
150
+ download_is_loading = false
151
+ }
77
152
  }
78
153
 
79
154
  function init(config) {
@@ -87,16 +162,31 @@ export function create_attachment_manager(config) {
87
162
  type: "outlined",
88
163
  is_uniform: true,
89
164
  support_icon: "download",
90
- on_click: () => download_attachment(config?.attachment),
165
+ aria_label: "Download attachment",
166
+ is_loading: () => download_is_loading,
167
+ is_disabled: () => !val_prepped?.content,
168
+ on_click: () => download_attachment(),
91
169
  })
92
170
  show_content_button_manager = create_button_manager({
93
171
  type: "outlined",
94
172
  text: "View",
95
173
  is_compressed: true,
174
+ aria_label: "View attachment contents",
175
+ is_disabled: () => !!content_error_message,
96
176
  popover_target: () => `popover_${show_content_popover_manager?.id}`,
97
177
  })
98
178
  }
99
179
 
180
+ function destroy() {
181
+ destroy_embedded_content(val_prepped)
182
+ if (typeof window !== "undefined") {
183
+ revoke_timeout_ids.forEach((timeout_id) => window.clearTimeout(timeout_id))
184
+ object_urls.forEach((object_url) => URL.revokeObjectURL(object_url))
185
+ }
186
+ revoke_timeout_ids.clear()
187
+ object_urls.clear()
188
+ }
189
+
100
190
  init(config)
101
191
 
102
192
  return {
@@ -115,5 +205,20 @@ export function create_attachment_manager(config) {
115
205
  get is_show_content() {
116
206
  return is_show_content
117
207
  },
208
+ get error_message() {
209
+ return error_message
210
+ },
211
+ get download_is_loading() {
212
+ return download_is_loading
213
+ },
214
+ get content_error_message() {
215
+ return content_error_message
216
+ },
217
+ get download_error_message() {
218
+ return download_error_message
219
+ },
220
+ download_attachment,
221
+ set_val_prepped,
222
+ destroy,
118
223
  }
119
224
  }
@@ -3,14 +3,16 @@
3
3
  import Popover from "../Popover/index.svelte"
4
4
  import LoadingWheel from "../LoadingWheel/index.svelte"
5
5
  import Slider from "../Slider/index.svelte"
6
- import { onMount } from "svelte"
7
6
 
8
7
  let { manager } = $props()
9
8
 
10
- onMount(() => {
11
- if (typeof manager?.handle_mount == "function") {
12
- manager?.handle_mount()
9
+ $effect(() => {
10
+ const current_manager = manager
11
+ if (typeof current_manager?.handle_mount == "function") {
12
+ current_manager.handle_mount()
13
13
  }
14
+
15
+ return () => current_manager?.destroy?.()
14
16
  })
15
17
  </script>
16
18
 
@@ -24,26 +26,20 @@
24
26
  {#if manager?.is_show_download_button}
25
27
  <Button manager={manager?.download_audio_button_manager} />
26
28
  {/if}
29
+ {#if manager?.download_error_message}
30
+ <p class="error_message" role="alert">{manager.download_error_message}</p>
31
+ {/if}
27
32
  </div>
28
33
  {/snippet}
29
34
  </Popover>
30
35
  {/snippet}
31
36
 
32
- <!-- onloadstart={() => console.log('Load start')}
33
- onwaiting={() => console.log('Waiting')}
34
- onstalled={() => console.log('Stalled')}
35
- onseeked={() => console.log('seeked')}
36
- onseeking={() => console.log('seeking')}
37
- ondurationchange={(e) => console.log('durationchange',e)}
38
- onloadeddata={(e) => console.log('onloadeddata',e)}
39
- oncanplaythrough={() => console.log('can_play_through')}
40
- onerror={(e) => console.log('error',e)}
41
- onabort={(e) => console.log('abort',e)} -->
42
37
  <div class="container">
43
38
  <audio
44
39
  id={`audio_${manager?.id}`}
45
- onplaying={() => manager?.play_audio()}
46
- onended={() => manager?.pause_audio()}
40
+ onplaying={() => manager?.handle_playing()}
41
+ onended={() => manager?.handle_ended()}
42
+ onerror={() => manager?.handle_audio_error()}
47
43
  ontimeupdate={() => manager?.handle_time_update()}
48
44
  oncanplay={() => manager?.handle_can_play()}
49
45
  onloadedmetadata={(e) => manager?.handle_loaded_metadata(e)}
@@ -140,12 +136,16 @@ onabort={(e) => console.log('abort',e)} -->
140
136
  {/if}
141
137
  </div>
142
138
  {/if}
139
+ {#if manager?.playback_error_message}
140
+ <p class="error_message" role="alert">{manager.playback_error_message}</p>
141
+ {/if}
143
142
  </div>
144
143
 
145
144
  <style>
146
145
  .container {
147
146
  display: flex;
148
147
  flex: 0;
148
+ flex-direction: column;
149
149
  }
150
150
  .container_line {
151
151
  display: flex;
@@ -196,4 +196,8 @@ onabort={(e) => console.log('abort',e)} -->
196
196
  .is_short {
197
197
  flex: 0;
198
198
  }
199
+ .error_message {
200
+ color: oklch(var(--l3-t) var(--c16) var(--h3));
201
+ margin: 0.5rem 0 0;
202
+ }
199
203
  </style>
@@ -0,0 +1,11 @@
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
+ }, {}, "">;
9
+ type $$ComponentProps = {
10
+ manager: any;
11
+ };