sveltekit-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/README.md +23 -0
  2. package/dist/Components/Alert/index.svelte +88 -0
  3. package/dist/Components/Alert/index.svelte.js +101 -0
  4. package/dist/Components/ArrowToggle/index.svelte +62 -0
  5. package/dist/Components/Attachment/index.svelte +69 -0
  6. package/dist/Components/Attachment/index.svelte.js +119 -0
  7. package/dist/Components/Audio/index.svelte +193 -0
  8. package/dist/Components/Audio/index.svelte.js +463 -0
  9. package/dist/Components/AudioEditor/index.svelte +253 -0
  10. package/dist/Components/AudioEditor/index.svelte.js +973 -0
  11. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  12. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  17. package/dist/Components/AuthCodeInput/index.svelte +85 -0
  18. package/dist/Components/AuthCodeInput/index.svelte.js +95 -0
  19. package/dist/Components/Breadcrumbs/index.svelte +27 -0
  20. package/dist/Components/Breadcrumbs/index.svelte.js +88 -0
  21. package/dist/Components/Button/index.svelte +721 -0
  22. package/dist/Components/Button/index.svelte.js +375 -0
  23. package/dist/Components/Chart/Klines/index.svelte +87 -0
  24. package/dist/Components/Chart/index.svelte +226 -0
  25. package/dist/Components/Chart/index.svelte.js +1084 -0
  26. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +150 -0
  27. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +45 -0
  28. package/dist/Components/ChartInput/DisplayNav/index.svelte +297 -0
  29. package/dist/Components/ChartInput/EditPanel/index.svelte +155 -0
  30. package/dist/Components/ChartInput/index.svelte +21 -0
  31. package/dist/Components/ChartInput/index.svelte.js +671 -0
  32. package/dist/Components/Checkbox/index.svelte +411 -0
  33. package/dist/Components/Checkbox/index.svelte.js +178 -0
  34. package/dist/Components/Code/index.svelte +23 -0
  35. package/dist/Components/Code/index.svelte.js +34 -0
  36. package/dist/Components/Color/index.svelte +51 -0
  37. package/dist/Components/Color/index.svelte.js +31 -0
  38. package/dist/Components/ColorInput/ChromaPicker/index.svelte +50 -0
  39. package/dist/Components/ColorInput/ColorPalette/index.svelte +62 -0
  40. package/dist/Components/ColorInput/OpacityPicker/index.svelte +68 -0
  41. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +136 -0
  42. package/dist/Components/ColorInput/index.svelte +70 -0
  43. package/dist/Components/ColorInput/index.svelte.js +383 -0
  44. package/dist/Components/ConditionsInput/index.svelte +46 -0
  45. package/dist/Components/ConditionsInput/index.svelte.js +201 -0
  46. package/dist/Components/Confetti/index.svelte +98 -0
  47. package/dist/Components/Confetti/index.svelte.js +94 -0
  48. package/dist/Components/Content/index.svelte +471 -0
  49. package/dist/Components/Content/index.svelte.js +903 -0
  50. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +31 -0
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +258 -0
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +31 -0
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +258 -0
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +58 -0
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +210 -0
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +28 -0
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +224 -0
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +44 -0
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +273 -0
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +41 -0
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +203 -0
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +19 -0
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +119 -0
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +60 -0
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +546 -0
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +47 -0
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +185 -0
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +35 -0
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +224 -0
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +20 -0
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +87 -0
  72. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +25 -0
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +101 -0
  74. package/dist/Components/ContentInput/AttributesInput/index.svelte +338 -0
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +1446 -0
  76. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +64 -0
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +97 -0
  78. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +122 -0
  79. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +41 -0
  80. package/dist/Components/ContentInput/index.svelte +50 -0
  81. package/dist/Components/ContentInput/index.svelte.js +1066 -0
  82. package/dist/Components/CronInput/index.svelte +78 -0
  83. package/dist/Components/CronInput/index.svelte.js +199 -0
  84. package/dist/Components/DataTypeInput/index.svelte +174 -0
  85. package/dist/Components/DataTypeInput/index.svelte.js +568 -0
  86. package/dist/Components/Dropdown/index.svelte +116 -0
  87. package/dist/Components/Dropdown/index.svelte.js +403 -0
  88. package/dist/Components/EmailAddress/index.svelte +22 -0
  89. package/dist/Components/EmailAddress/index.svelte.js +45 -0
  90. package/dist/Components/ErrorX/index.svelte +58 -0
  91. package/dist/Components/Eye/index.svelte +57 -0
  92. package/dist/Components/FileInput/index.svelte +146 -0
  93. package/dist/Components/FileInput/index.svelte.js +226 -0
  94. package/dist/Components/FunctionInput/Node/helpers/DefinedTargetInput/index.svelte +110 -0
  95. package/dist/Components/FunctionInput/Node/helpers/Field/index.svelte +109 -0
  96. package/dist/Components/FunctionInput/Node/helpers/Field/index.svelte.js +208 -0
  97. package/dist/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte +97 -0
  98. package/dist/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte.js +105 -0
  99. package/dist/Components/FunctionInput/Node/helpers/ObjectInput/index.svelte +198 -0
  100. package/dist/Components/FunctionInput/Node/helpers/StackArea/index.svelte +169 -0
  101. package/dist/Components/FunctionInput/Node/helpers/StackArea/index.svelte.js +152 -0
  102. package/dist/Components/FunctionInput/Node/index.svelte +144 -0
  103. package/dist/Components/FunctionInput/Node/index.svelte.js +130 -0
  104. package/dist/Components/FunctionInput/index.svelte +356 -0
  105. package/dist/Components/FunctionInput/index.svelte.js +1215 -0
  106. package/dist/Components/Hamburger/index.svelte +99 -0
  107. package/dist/Components/HorizScrollBox/index.svelte +145 -0
  108. package/dist/Components/Icon/index.svelte +412 -0
  109. package/dist/Components/Icon/index.svelte.js +117 -0
  110. package/dist/Components/IconInput/index.svelte +77 -0
  111. package/dist/Components/IconInput/index.svelte.js +260 -0
  112. package/dist/Components/Image/index.svelte +121 -0
  113. package/dist/Components/Image/index.svelte.js +114 -0
  114. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +165 -0
  115. package/dist/Components/ImageEditor/Image/index.svelte +104 -0
  116. package/dist/Components/ImageEditor/Panels/AI/index.svelte +36 -0
  117. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +96 -0
  118. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +124 -0
  119. package/dist/Components/ImageEditor/Panels/File/index.svelte +74 -0
  120. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +46 -0
  121. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +58 -0
  122. package/dist/Components/ImageEditor/index.svelte +91 -0
  123. package/dist/Components/ImageEditor/index.svelte.js +1907 -0
  124. package/dist/Components/ImageSlider/index.svelte +124 -0
  125. package/dist/Components/ImageSlider/index.svelte.js +99 -0
  126. package/dist/Components/InfoBox/index.svelte +89 -0
  127. package/dist/Components/Json/Nested/index.svelte +157 -0
  128. package/dist/Components/Json/index.svelte +60 -0
  129. package/dist/Components/Json/index.svelte.js +594 -0
  130. package/dist/Components/LabeledItem/index.svelte +102 -0
  131. package/dist/Components/Layout/NavBar/FullNav/index.svelte +53 -0
  132. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +87 -0
  133. package/dist/Components/Layout/NavBar/index.svelte +72 -0
  134. package/dist/Components/Layout/index.svelte +149 -0
  135. package/dist/Components/Layout/index.svelte.js +362 -0
  136. package/dist/Components/Link/index.svelte +46 -0
  137. package/dist/Components/Link/index.svelte.js +126 -0
  138. package/dist/Components/LoadingSuccessDiv/index.svelte +51 -0
  139. package/dist/Components/LoadingWheel/index.svelte +38 -0
  140. package/dist/Components/Location/index.svelte +85 -0
  141. package/dist/Components/Location/index.svelte.js +292 -0
  142. package/dist/Components/LocationInput/index.svelte +200 -0
  143. package/dist/Components/LocationInput/index.svelte.js +950 -0
  144. package/dist/Components/Number/index.svelte +47 -0
  145. package/dist/Components/Number/index.svelte.js +151 -0
  146. package/dist/Components/PhoneCountryCode/index.svelte +7 -0
  147. package/dist/Components/PhoneCountryCode/index.svelte.js +260 -0
  148. package/dist/Components/PhoneNumber/index.svelte +22 -0
  149. package/dist/Components/PhoneNumber/index.svelte.js +41 -0
  150. package/dist/Components/Popover/index.svelte +396 -0
  151. package/dist/Components/Popover/index.svelte.js +319 -0
  152. package/dist/Components/Qr/index.svelte +60 -0
  153. package/dist/Components/Qr/index.svelte.js +295 -0
  154. package/dist/Components/Slider/index.svelte +231 -0
  155. package/dist/Components/Slider/index.svelte.js +468 -0
  156. package/dist/Components/Spacer/index.svelte +41 -0
  157. package/dist/Components/StoragePicker/DisplayFile/index.svelte +15 -0
  158. package/dist/Components/StoragePicker/index.svelte +192 -0
  159. package/dist/Components/StoragePicker/index.svelte.js +593 -0
  160. package/dist/Components/SuccessCheck/index.svelte +56 -0
  161. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +110 -0
  162. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +494 -0
  163. package/dist/Components/TableAdvanced/FilterInput/index.svelte +54 -0
  164. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +247 -0
  165. package/dist/Components/TableAdvanced/Pagination/index.svelte +43 -0
  166. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +97 -0
  167. package/dist/Components/TableAdvanced/SortByInput/index.svelte +79 -0
  168. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +191 -0
  169. package/dist/Components/TableAdvanced/index.svelte +268 -0
  170. package/dist/Components/TableAdvanced/index.svelte.js +1422 -0
  171. package/dist/Components/Tag/index.svelte +45 -0
  172. package/dist/Components/Tag/index.svelte.js +76 -0
  173. package/dist/Components/TextArrayInput/index.svelte +108 -0
  174. package/dist/Components/TextArrayInput/index.svelte.js +239 -0
  175. package/dist/Components/TextInput/PasswordTooltip/index.svelte +89 -0
  176. package/dist/Components/TextInput/index.svelte +223 -0
  177. package/dist/Components/TextInput/index.svelte.js +434 -0
  178. package/dist/Components/Time/index.svelte +7 -0
  179. package/dist/Components/Time/index.svelte.js +38 -0
  180. package/dist/Components/TimeInput/NumberToggler/index.svelte +34 -0
  181. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +79 -0
  182. package/dist/Components/TimeInput/index.js +699 -0
  183. package/dist/Components/TimeInput/index.svelte +211 -0
  184. package/dist/Components/TimeInput/index.svelte.js +638 -0
  185. package/dist/Components/Tooltip/index.svelte +143 -0
  186. package/dist/Components/TransparentBackground/index.svelte +153 -0
  187. package/dist/Components/TypingDots/index.svelte +84 -0
  188. package/dist/Components/VariablePathInput/index.svelte +109 -0
  189. package/dist/Components/VariablePathInput/index.svelte.js +250 -0
  190. package/dist/Components/VideoTBD/index.svelte +100 -0
  191. package/dist/Components/XFollow/index.svelte +42 -0
  192. package/dist/Components/XPost/index.svelte +52 -0
  193. package/dist/Components/XPost/index.svelte.js +64 -0
  194. package/dist/Components/YoutubeVideo/index.svelte +73 -0
  195. package/dist/Components/YoutubeVideo/index.svelte.js +54 -0
  196. package/dist/actions/draggable.js +49 -0
  197. package/dist/actions/intersection_observer.js +24 -0
  198. package/dist/actions/no_spaces.js +33 -0
  199. package/dist/actions/numbers_only.js +26 -0
  200. package/dist/actions/scroll_y.js +28 -0
  201. package/dist/actions/stop_scroll_propagation_y.js +42 -0
  202. package/dist/actions/swipe_handler.js +295 -0
  203. package/dist/client/astc_formatting/index.js +1167 -0
  204. package/dist/client/docs/index.js +7612 -0
  205. package/dist/client/index.js +729 -0
  206. package/dist/client/types/index.js +4681 -0
  207. package/dist/index.js +161 -0
  208. package/dist/style.css +682 -0
  209. package/package.json +44 -0
  210. package/src/app.html +17 -0
  211. package/src/hooks.server.js +7 -0
  212. package/src/lib/Components/Alert/index.svelte +88 -0
  213. package/src/lib/Components/Alert/index.svelte.js +101 -0
  214. package/src/lib/Components/ArrowToggle/index.svelte +62 -0
  215. package/src/lib/Components/Attachment/index.svelte +69 -0
  216. package/src/lib/Components/Attachment/index.svelte.js +119 -0
  217. package/src/lib/Components/Audio/index.svelte +193 -0
  218. package/src/lib/Components/Audio/index.svelte.js +463 -0
  219. package/src/lib/Components/AudioEditor/index.svelte +253 -0
  220. package/src/lib/Components/AudioEditor/index.svelte.js +973 -0
  221. package/src/lib/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  222. package/src/lib/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  223. package/src/lib/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  224. package/src/lib/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  225. package/src/lib/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  226. package/src/lib/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  227. package/src/lib/Components/AuthCodeInput/index.svelte +85 -0
  228. package/src/lib/Components/AuthCodeInput/index.svelte.js +95 -0
  229. package/src/lib/Components/Breadcrumbs/index.svelte +27 -0
  230. package/src/lib/Components/Breadcrumbs/index.svelte.js +88 -0
  231. package/src/lib/Components/Button/index.svelte +721 -0
  232. package/src/lib/Components/Button/index.svelte.js +375 -0
  233. package/src/lib/Components/Chart/Klines/index.svelte +87 -0
  234. package/src/lib/Components/Chart/index.svelte +226 -0
  235. package/src/lib/Components/Chart/index.svelte.js +1084 -0
  236. package/src/lib/Components/ChartInput/DisplayNav/Klines/index.svelte +150 -0
  237. package/src/lib/Components/ChartInput/DisplayNav/Lines/index.svelte +45 -0
  238. package/src/lib/Components/ChartInput/DisplayNav/index.svelte +297 -0
  239. package/src/lib/Components/ChartInput/EditPanel/index.svelte +155 -0
  240. package/src/lib/Components/ChartInput/index.svelte +21 -0
  241. package/src/lib/Components/ChartInput/index.svelte.js +671 -0
  242. package/src/lib/Components/Checkbox/index.svelte +411 -0
  243. package/src/lib/Components/Checkbox/index.svelte.js +178 -0
  244. package/src/lib/Components/Code/index.svelte +23 -0
  245. package/src/lib/Components/Code/index.svelte.js +34 -0
  246. package/src/lib/Components/Color/index.svelte +51 -0
  247. package/src/lib/Components/Color/index.svelte.js +31 -0
  248. package/src/lib/Components/ColorInput/ChromaPicker/index.svelte +50 -0
  249. package/src/lib/Components/ColorInput/ColorPalette/index.svelte +62 -0
  250. package/src/lib/Components/ColorInput/OpacityPicker/index.svelte +68 -0
  251. package/src/lib/Components/ColorInput/ShowcasePicker/index.svelte +136 -0
  252. package/src/lib/Components/ColorInput/index.svelte +70 -0
  253. package/src/lib/Components/ColorInput/index.svelte.js +383 -0
  254. package/src/lib/Components/ConditionsInput/index.svelte +46 -0
  255. package/src/lib/Components/ConditionsInput/index.svelte.js +201 -0
  256. package/src/lib/Components/Confetti/index.svelte +98 -0
  257. package/src/lib/Components/Confetti/index.svelte.js +94 -0
  258. package/src/lib/Components/Content/index.svelte +471 -0
  259. package/src/lib/Components/Content/index.svelte.js +903 -0
  260. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +31 -0
  261. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +258 -0
  262. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +31 -0
  263. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +258 -0
  264. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +58 -0
  265. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +210 -0
  266. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +28 -0
  267. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +224 -0
  268. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +44 -0
  269. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +273 -0
  270. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +41 -0
  271. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +203 -0
  272. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +19 -0
  273. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +119 -0
  274. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +60 -0
  275. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +546 -0
  276. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +47 -0
  277. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +185 -0
  278. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +35 -0
  279. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +224 -0
  280. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +20 -0
  281. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +87 -0
  282. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +25 -0
  283. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +101 -0
  284. package/src/lib/Components/ContentInput/AttributesInput/index.svelte +338 -0
  285. package/src/lib/Components/ContentInput/AttributesInput/index.svelte.js +1446 -0
  286. package/src/lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +64 -0
  287. package/src/lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +97 -0
  288. package/src/lib/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +122 -0
  289. package/src/lib/Components/ContentInput/ContentPanelBuilder/index.svelte +41 -0
  290. package/src/lib/Components/ContentInput/index.svelte +50 -0
  291. package/src/lib/Components/ContentInput/index.svelte.js +1066 -0
  292. package/src/lib/Components/CronInput/index.svelte +78 -0
  293. package/src/lib/Components/CronInput/index.svelte.js +199 -0
  294. package/src/lib/Components/DataTypeInput/index.svelte +174 -0
  295. package/src/lib/Components/DataTypeInput/index.svelte.js +568 -0
  296. package/src/lib/Components/Dropdown/index.svelte +116 -0
  297. package/src/lib/Components/Dropdown/index.svelte.js +403 -0
  298. package/src/lib/Components/EmailAddress/index.svelte +22 -0
  299. package/src/lib/Components/EmailAddress/index.svelte.js +45 -0
  300. package/src/lib/Components/ErrorX/index.svelte +58 -0
  301. package/src/lib/Components/Eye/index.svelte +57 -0
  302. package/src/lib/Components/FileInput/index.svelte +146 -0
  303. package/src/lib/Components/FileInput/index.svelte.js +226 -0
  304. package/src/lib/Components/FunctionInput/Node/helpers/DefinedTargetInput/index.svelte +110 -0
  305. package/src/lib/Components/FunctionInput/Node/helpers/Field/index.svelte +109 -0
  306. package/src/lib/Components/FunctionInput/Node/helpers/Field/index.svelte.js +208 -0
  307. package/src/lib/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte +97 -0
  308. package/src/lib/Components/FunctionInput/Node/helpers/InlineDropArea/index.svelte.js +105 -0
  309. package/src/lib/Components/FunctionInput/Node/helpers/ObjectInput/index.svelte +198 -0
  310. package/src/lib/Components/FunctionInput/Node/helpers/StackArea/index.svelte +169 -0
  311. package/src/lib/Components/FunctionInput/Node/helpers/StackArea/index.svelte.js +152 -0
  312. package/src/lib/Components/FunctionInput/Node/index.svelte +144 -0
  313. package/src/lib/Components/FunctionInput/Node/index.svelte.js +130 -0
  314. package/src/lib/Components/FunctionInput/index.svelte +356 -0
  315. package/src/lib/Components/FunctionInput/index.svelte.js +1215 -0
  316. package/src/lib/Components/Hamburger/index.svelte +99 -0
  317. package/src/lib/Components/HorizScrollBox/index.svelte +145 -0
  318. package/src/lib/Components/Icon/index.svelte +412 -0
  319. package/src/lib/Components/Icon/index.svelte.js +117 -0
  320. package/src/lib/Components/IconInput/index.svelte +77 -0
  321. package/src/lib/Components/IconInput/index.svelte.js +260 -0
  322. package/src/lib/Components/Image/index.svelte +121 -0
  323. package/src/lib/Components/Image/index.svelte.js +114 -0
  324. package/src/lib/Components/ImageEditor/Image/CropBox/index.svelte +165 -0
  325. package/src/lib/Components/ImageEditor/Image/index.svelte +104 -0
  326. package/src/lib/Components/ImageEditor/Panels/AI/index.svelte +36 -0
  327. package/src/lib/Components/ImageEditor/Panels/Crop/index.svelte +96 -0
  328. package/src/lib/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +124 -0
  329. package/src/lib/Components/ImageEditor/Panels/File/index.svelte +74 -0
  330. package/src/lib/Components/ImageEditor/Panels/Filters/index.svelte +46 -0
  331. package/src/lib/Components/ImageEditor/Panels/Resize/index.svelte +58 -0
  332. package/src/lib/Components/ImageEditor/index.svelte +91 -0
  333. package/src/lib/Components/ImageEditor/index.svelte.js +1907 -0
  334. package/src/lib/Components/ImageSlider/index.svelte +124 -0
  335. package/src/lib/Components/ImageSlider/index.svelte.js +99 -0
  336. package/src/lib/Components/InfoBox/index.svelte +89 -0
  337. package/src/lib/Components/Json/Nested/index.svelte +157 -0
  338. package/src/lib/Components/Json/index.svelte +60 -0
  339. package/src/lib/Components/Json/index.svelte.js +594 -0
  340. package/src/lib/Components/LabeledItem/index.svelte +102 -0
  341. package/src/lib/Components/Layout/NavBar/FullNav/index.svelte +53 -0
  342. package/src/lib/Components/Layout/NavBar/NavGuts/index.svelte +87 -0
  343. package/src/lib/Components/Layout/NavBar/index.svelte +72 -0
  344. package/src/lib/Components/Layout/index.svelte +149 -0
  345. package/src/lib/Components/Layout/index.svelte.js +362 -0
  346. package/src/lib/Components/Link/index.svelte +46 -0
  347. package/src/lib/Components/Link/index.svelte.js +126 -0
  348. package/src/lib/Components/LoadingSuccessDiv/index.svelte +51 -0
  349. package/src/lib/Components/LoadingWheel/index.svelte +38 -0
  350. package/src/lib/Components/Location/index.svelte +85 -0
  351. package/src/lib/Components/Location/index.svelte.js +292 -0
  352. package/src/lib/Components/LocationInput/index.svelte +200 -0
  353. package/src/lib/Components/LocationInput/index.svelte.js +950 -0
  354. package/src/lib/Components/Number/index.svelte +47 -0
  355. package/src/lib/Components/Number/index.svelte.js +151 -0
  356. package/src/lib/Components/PhoneCountryCode/index.svelte +7 -0
  357. package/src/lib/Components/PhoneCountryCode/index.svelte.js +260 -0
  358. package/src/lib/Components/PhoneNumber/index.svelte +22 -0
  359. package/src/lib/Components/PhoneNumber/index.svelte.js +41 -0
  360. package/src/lib/Components/Popover/index.svelte +396 -0
  361. package/src/lib/Components/Popover/index.svelte.js +319 -0
  362. package/src/lib/Components/Qr/index.svelte +60 -0
  363. package/src/lib/Components/Qr/index.svelte.js +295 -0
  364. package/src/lib/Components/Slider/index.svelte +231 -0
  365. package/src/lib/Components/Slider/index.svelte.js +468 -0
  366. package/src/lib/Components/Spacer/index.svelte +41 -0
  367. package/src/lib/Components/StoragePicker/DisplayFile/index.svelte +15 -0
  368. package/src/lib/Components/StoragePicker/index.svelte +192 -0
  369. package/src/lib/Components/StoragePicker/index.svelte.js +593 -0
  370. package/src/lib/Components/SuccessCheck/index.svelte +56 -0
  371. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte +110 -0
  372. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte.js +494 -0
  373. package/src/lib/Components/TableAdvanced/FilterInput/index.svelte +54 -0
  374. package/src/lib/Components/TableAdvanced/FilterInput/index.svelte.js +247 -0
  375. package/src/lib/Components/TableAdvanced/Pagination/index.svelte +43 -0
  376. package/src/lib/Components/TableAdvanced/Pagination/index.svelte.js +97 -0
  377. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte +79 -0
  378. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte.js +191 -0
  379. package/src/lib/Components/TableAdvanced/index.svelte +268 -0
  380. package/src/lib/Components/TableAdvanced/index.svelte.js +1422 -0
  381. package/src/lib/Components/Tag/index.svelte +45 -0
  382. package/src/lib/Components/Tag/index.svelte.js +76 -0
  383. package/src/lib/Components/TextArrayInput/index.svelte +108 -0
  384. package/src/lib/Components/TextArrayInput/index.svelte.js +239 -0
  385. package/src/lib/Components/TextInput/PasswordTooltip/index.svelte +89 -0
  386. package/src/lib/Components/TextInput/index.svelte +223 -0
  387. package/src/lib/Components/TextInput/index.svelte.js +434 -0
  388. package/src/lib/Components/Time/index.svelte +7 -0
  389. package/src/lib/Components/Time/index.svelte.js +38 -0
  390. package/src/lib/Components/TimeInput/NumberToggler/index.svelte +34 -0
  391. package/src/lib/Components/TimeInput/NumberToggler/index.svelte.js +79 -0
  392. package/src/lib/Components/TimeInput/index.js +699 -0
  393. package/src/lib/Components/TimeInput/index.svelte +211 -0
  394. package/src/lib/Components/TimeInput/index.svelte.js +638 -0
  395. package/src/lib/Components/Tooltip/index.svelte +143 -0
  396. package/src/lib/Components/TransparentBackground/index.svelte +153 -0
  397. package/src/lib/Components/TypingDots/index.svelte +84 -0
  398. package/src/lib/Components/VariablePathInput/index.svelte +109 -0
  399. package/src/lib/Components/VariablePathInput/index.svelte.js +250 -0
  400. package/src/lib/Components/VideoTBD/index.svelte +100 -0
  401. package/src/lib/Components/XFollow/index.svelte +42 -0
  402. package/src/lib/Components/XPost/index.svelte +52 -0
  403. package/src/lib/Components/XPost/index.svelte.js +64 -0
  404. package/src/lib/Components/YoutubeVideo/index.svelte +73 -0
  405. package/src/lib/Components/YoutubeVideo/index.svelte.js +54 -0
  406. package/src/lib/actions/draggable.js +49 -0
  407. package/src/lib/actions/intersection_observer.js +24 -0
  408. package/src/lib/actions/no_spaces.js +33 -0
  409. package/src/lib/actions/numbers_only.js +26 -0
  410. package/src/lib/actions/scroll_y.js +28 -0
  411. package/src/lib/actions/stop_scroll_propagation_y.js +42 -0
  412. package/src/lib/actions/swipe_handler.js +295 -0
  413. package/src/lib/client/astc_formatting/index.js +1167 -0
  414. package/src/lib/client/docs/index.js +7612 -0
  415. package/src/lib/client/index.js +729 -0
  416. package/src/lib/client/types/index.js +4681 -0
  417. package/src/lib/index.js +161 -0
  418. package/src/lib/style.css +682 -0
  419. package/src/notlib/assets/static/Logo/index.svelte +27 -0
  420. package/src/routes/+layout.js +8 -0
  421. package/src/routes/+layout.svelte +176 -0
  422. package/src/routes/+page.svelte +83 -0
  423. package/src/routes/[component]/+page.svelte +167 -0
  424. package/src/routes/[component]/Showcase/Alert/index.svelte +26 -0
  425. package/src/routes/[component]/Showcase/Audio/index.svelte +86 -0
  426. package/src/routes/[component]/Showcase/AudioEditor/index.svelte +93 -0
  427. package/src/routes/[component]/Showcase/AuthCodeInput/index.svelte +13 -0
  428. package/src/routes/[component]/Showcase/Breadcrumbs/index.svelte +44 -0
  429. package/src/routes/[component]/Showcase/Button/index.svelte +350 -0
  430. package/src/routes/[component]/Showcase/Chart/index.svelte +11117 -0
  431. package/src/routes/[component]/Showcase/Checkbox/index.svelte +52 -0
  432. package/src/routes/[component]/Showcase/Code/index.svelte +13 -0
  433. package/src/routes/[component]/Showcase/Color/index.svelte +28 -0
  434. package/src/routes/[component]/Showcase/ColorInput/index.svelte +35 -0
  435. package/src/routes/[component]/Showcase/ConditionsInput/index.svelte +18 -0
  436. package/src/routes/[component]/Showcase/Confetti/index.svelte +22 -0
  437. package/src/routes/[component]/Showcase/Content/index.svelte +144 -0
  438. package/src/routes/[component]/Showcase/ContentInput/index.svelte +358 -0
  439. package/src/routes/[component]/Showcase/CronInput/index.svelte +30 -0
  440. package/src/routes/[component]/Showcase/DocsDefinition/index.svelte +155 -0
  441. package/src/routes/[component]/Showcase/Dropdown/index.svelte +88 -0
  442. package/src/routes/[component]/Showcase/FileInput/index.svelte +40 -0
  443. package/src/routes/[component]/Showcase/FunctionInput/index.svelte +77 -0
  444. package/src/routes/[component]/Showcase/Icon/index.svelte +120 -0
  445. package/src/routes/[component]/Showcase/IconInput/index.svelte +15 -0
  446. package/src/routes/[component]/Showcase/Image/index.svelte +119 -0
  447. package/src/routes/[component]/Showcase/ImageEditor/index.svelte +89 -0
  448. package/src/routes/[component]/Showcase/ImageSlider/index.svelte +26 -0
  449. package/src/routes/[component]/Showcase/InfoBox/index.svelte +44 -0
  450. package/src/routes/[component]/Showcase/Json/index.svelte +80 -0
  451. package/src/routes/[component]/Showcase/LabeledItem/index.svelte +18 -0
  452. package/src/routes/[component]/Showcase/Link/index.svelte +15 -0
  453. package/src/routes/[component]/Showcase/LoadingWheel/index.svelte +10 -0
  454. package/src/routes/[component]/Showcase/Location/index.svelte +422 -0
  455. package/src/routes/[component]/Showcase/LocationInput/index.svelte +121 -0
  456. package/src/routes/[component]/Showcase/Number/index.svelte +55 -0
  457. package/src/routes/[component]/Showcase/Popover/index.svelte +225 -0
  458. package/src/routes/[component]/Showcase/Qr/index.svelte +77 -0
  459. package/src/routes/[component]/Showcase/Slider/index.svelte +92 -0
  460. package/src/routes/[component]/Showcase/Spacer/index.svelte +27 -0
  461. package/src/routes/[component]/Showcase/StoragePicker/index.svelte +139 -0
  462. package/src/routes/[component]/Showcase/TableAdvanced/index.svelte +888 -0
  463. package/src/routes/[component]/Showcase/Tag/index.svelte +27 -0
  464. package/src/routes/[component]/Showcase/TextArrayInput/index.svelte +23 -0
  465. package/src/routes/[component]/Showcase/TextInput/index.svelte +95 -0
  466. package/src/routes/[component]/Showcase/Time/index.svelte +43 -0
  467. package/src/routes/[component]/Showcase/TimeInput/index.svelte +100 -0
  468. package/src/routes/[component]/Showcase/Tooltip/index.svelte +37 -0
  469. package/src/routes/[component]/Showcase/TransparentBackground/index.svelte +26 -0
  470. package/src/routes/[component]/Showcase/XFollow/index.svelte +7 -0
  471. package/src/routes/[component]/Showcase/XPost/index.svelte +24 -0
  472. package/src/routes/[component]/Showcase/YoutubeVideo/index.svelte +17 -0
  473. package/src/routes/test/+page.svelte +53 -0
  474. package/static/apple-touch-icon.png +0 -0
  475. package/static/browserconfig.xml +9 -0
  476. package/static/favicon-96x96.png +0 -0
  477. package/static/favicon-inactive.svg +4 -0
  478. package/static/favicon.svg +14 -0
  479. package/static/fonts/ProximaVara.woff2 +0 -0
  480. package/static/fonts/Quicksand-VariableFont.woff2 +0 -0
  481. package/static/fonts/RobotoSerif-VariableFont.woff2 +0 -0
  482. package/static/icon.png +0 -0
  483. package/static/site.webmanifest +21 -0
  484. package/static/web-app-manifest-192x192.png +0 -0
  485. package/static/web-app-manifest-512x512.png +0 -0
  486. package/svelte.config.js +12 -0
  487. package/vite.config.js +6 -0
@@ -0,0 +1,729 @@
1
+ export * from "./types/index.js"
2
+ export * from "./astc_formatting/index.js"
3
+ export * from "../Components/TimeInput/index.js"
4
+
5
+ export function format_date(date, is_add_zero = false) {
6
+ if (date) {
7
+ const d = new Date(date * 1000) // convert seconds to milliseconds
8
+ const year = d.getFullYear()
9
+ const month = ((is_add_zero ? "0" : "") + (d.getMonth() + 1)).slice(-2)
10
+ const day = ((is_add_zero ? "0" : "") + d.getDate()).slice(-2)
11
+ return [month, day, year].join("/")
12
+ } else {
13
+ return "mm/dd/yyyy"
14
+ }
15
+ }
16
+
17
+ export function truncate(str, n) {
18
+ return str.length > n ? str.substr(0, n - 1) + "..." : str
19
+ }
20
+
21
+ export function get_obj_from_path(obj, path) {
22
+ let current = obj
23
+ for (let i = 0; i < path.length; i++) {
24
+ if (!(path[i] in current)) return false
25
+ current = current[path[i]]
26
+ }
27
+ return current
28
+ }
29
+
30
+ export function copy_to_clipboard(text) {
31
+ if (navigator && navigator.clipboard && navigator.clipboard.writeText) {
32
+ return navigator.clipboard.writeText(text)
33
+ }
34
+ return Promise.reject("The Clipboard API is not available.")
35
+ }
36
+
37
+ export function get_user_interface() {
38
+ const ua = navigator.userAgent
39
+ let browser_name = "unknown"
40
+ if (ua.indexOf("Firefox") > -1) {
41
+ browser_name = "Mozilla Firefox"
42
+ } else if (ua.indexOf("SamsungBrowser") > -1) {
43
+ browser_name = "Samsung Internet"
44
+ } else if (ua.indexOf("Opera") > -1 || ua.indexOf("OPR") > -1) {
45
+ browser_name = "Opera"
46
+ } else if (ua.indexOf("Trident") > -1) {
47
+ browser_name = "Microsoft Internet Explorer"
48
+ } else if (ua.indexOf("Edge") > -1) {
49
+ browser_name = "Microsoft Edge (Legacy)"
50
+ } else if (ua.indexOf("Edg") > -1) {
51
+ browser_name = "Microsoft Edge (Chromium)"
52
+ } else if (ua.indexOf("Chrome") > -1) {
53
+ browser_name = "Google Chrome or Chromium"
54
+ } else if (ua.indexOf("Safari") > -1) {
55
+ browser_name = "Apple Safari"
56
+ }
57
+ let device_type = "desktop"
58
+ if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {
59
+ device_type = "tablet"
60
+ }
61
+ if (/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(ua)) {
62
+ device_type = "mobile"
63
+ }
64
+ const interface_data = {
65
+ language: navigator.language,
66
+ languages: navigator.languages,
67
+ platform: navigator.platform,
68
+ // 'platform': navigator.userAgentData.platform, navigator.platform dep but no userAgentData on safari
69
+ vendor: navigator.vendor,
70
+ device_type: device_type,
71
+ browser_name: browser_name,
72
+ used_width: innerWidth,
73
+ used_height: innerHeight,
74
+ avail_height: screen.availHeight,
75
+ avail_width: screen.availWidth,
76
+ window_left: screenLeft,
77
+ window_top: screenTop,
78
+ }
79
+ return interface_data
80
+ }
81
+
82
+ export function color_var(l, c, h, o = 16, is_dark_theme_invert = true) {
83
+ let safe_o = Math.min(Math.max(o, 0), 24)
84
+ let safe_l = Math.min(Math.max(l, 0), 24)
85
+ let safe_c = Math.min(Math.max(c, 0), 24)
86
+ let safe_h = Math.min(Math.max(h, 0), 24)
87
+ return is_dark_theme_invert
88
+ ? `oklch(var(--l${safe_l}-t) var(--c${safe_c}) var(--h${safe_h}) / var(--o${safe_o}))`
89
+ : `oklch(var(--l${safe_l}) var(--c${safe_c}) var(--h${safe_h}) / var(--o${safe_o}))`
90
+ }
91
+
92
+ export function deep_copy(val) {
93
+ return JSON.parse(JSON.stringify(set_closurable(val, null)))
94
+ // return structuredClone(val ?? null)
95
+ }
96
+
97
+ export function is_deep_equal(obj1, obj2) {
98
+ if (obj1 === obj2) return true
99
+ if (typeof obj1 === "object" && obj1 !== null && typeof obj2 === "object" && obj2 !== null) {
100
+ const keys1 = Object.keys(obj1)
101
+ const keys2 = Object.keys(obj2)
102
+ if (keys1.length !== keys2.length) return false
103
+ for (const key of keys1) {
104
+ if (!obj2.hasOwnProperty(key)) return false
105
+ if (!is_deep_equal(obj1[key], obj2[key])) return false
106
+ }
107
+ return true
108
+ } else {
109
+ return obj1 === obj2
110
+ }
111
+ }
112
+
113
+ export function create_unique_id(prefix = null, len = 5) {
114
+ const characters = "abcdefghijklmnopqrstuvwxyz"
115
+ let randstr = ""
116
+ for (let i = 0; i < len; i++) {
117
+ randstr += characters.charAt(Math.floor(Math.random() * characters.length))
118
+ }
119
+ const unique_id = prefix ? `${prefix}_${randstr}` : randstr
120
+ return unique_id
121
+ }
122
+
123
+ export function is_20_char_az_format(id_input) {
124
+ const id_regex = /^[a-z]{20}$/
125
+ return id_regex.test(id_input)
126
+ }
127
+
128
+ export function create_file_name() {
129
+ const now = new Date()
130
+ const start_of_year = new Date(now.getFullYear(), 0, 0)
131
+ const diff = now - start_of_year
132
+ const one_day = 1000 * 60 * 60 * 24
133
+ const day_of_year = Math.floor(diff / one_day)
134
+ const current_year = now.getFullYear().toString()
135
+ const hour = now.getHours().toString().padStart(2, "0")
136
+ const minute = now.getMinutes().toString().padStart(2, "0")
137
+ const seconds = now.getSeconds().toString().padStart(2, "0")
138
+ const random_val = create_unique_id(null, 6)
139
+ return `${current_year}_${day_of_year}_${hour}_${minute}_${seconds}_${random_val}`
140
+ }
141
+
142
+ export function clean_file_name(file_name) {
143
+ if (!file_name) {
144
+ return create_file_name()
145
+ } else {
146
+ const parts = file_name.split(".")
147
+ const base_name = parts.length > 1 ? parts.slice(0, -1).join(".") : file_name
148
+ let cleaned_file_name = base_name
149
+ .replace(/[^a-zA-Z0-9-_\s]/g, "")
150
+ .replace(/[ -]+/g, " ")
151
+ .replace(/(^[ -]+|[ -]+$)/g, "")
152
+ .replace(/-/g, "_")
153
+ .replace(/\s+/g, "_")
154
+ .toLowerCase()
155
+ if (cleaned_file_name.length > 200) {
156
+ cleaned_file_name = cleaned_file_name.substring(0, 200)
157
+ }
158
+ return cleaned_file_name
159
+ }
160
+ }
161
+
162
+ export function clean_custom_identifier(identifier, maximum_length = 100) {
163
+ if ([undefined, null].includes(identifier)) {
164
+ return null
165
+ }
166
+ if (typeof identifier !== "string") {
167
+ identifier = String(identifier)
168
+ }
169
+ if (identifier.length < 1) {
170
+ return null
171
+ }
172
+ let cleaned_identifier = identifier
173
+ .toLowerCase()
174
+ .replace(/[^a-z0-9]/g, "_")
175
+ .replace(/_+/g, "_")
176
+ .replace(/^_+|_+$/g, "")
177
+ if (cleaned_identifier.length > maximum_length) {
178
+ cleaned_identifier = cleaned_identifier.substring(0, maximum_length)
179
+ cleaned_identifier = cleaned_identifier.replace(/_+$/, "")
180
+ }
181
+ return cleaned_identifier
182
+ }
183
+
184
+ export async function url_to_file(src, file_name, mime_type) {
185
+ const response = await fetch(src)
186
+ const data = await response.blob()
187
+ const metadata = {
188
+ type: mime_type || data.type,
189
+ }
190
+ const file = new File([data], file_name, metadata)
191
+ return file
192
+ }
193
+
194
+ export function get_ordinal_suffix(input) {
195
+ if (input % 10 === 1 && input !== 11) {
196
+ return "st"
197
+ } else if (input % 10 === 2 && input !== 12) {
198
+ return "nd"
199
+ } else if (input % 10 === 3 && input !== 13) {
200
+ return "rd"
201
+ } else {
202
+ return "th"
203
+ }
204
+ }
205
+
206
+ export function download_json(data, file_name) {
207
+ const json_string = JSON.stringify(data)
208
+ const data_blob = new Blob([json_string], { type: "application/json" })
209
+ const url = URL.createObjectURL(data_blob)
210
+ const link = document.createElement("a")
211
+ link.href = url
212
+ link.download = file_name ?? "data.json"
213
+ link.click()
214
+ URL.revokeObjectURL(url)
215
+ }
216
+
217
+ export function download_csv(data) {
218
+ const json_string = JSON.stringify(data)
219
+ const csv = json_to_csv(json_string)
220
+ const data_blob = new Blob([csv], { type: "text/csv;charset=utf-8;" })
221
+ const url = URL.createObjectURL(data_blob)
222
+ const link = document.createElement("a")
223
+ link.href = url
224
+ const filename = "data.csv"
225
+ link.download = filename
226
+ link.click()
227
+ URL.revokeObjectURL(url)
228
+ }
229
+
230
+ export function json_to_csv(obj_array) {
231
+ let array = typeof obj_array != "object" ? JSON.parse(obj_array) : obj_array
232
+ let str = ""
233
+ let headers = get_headers(array)
234
+ str += headers.join(",") + "\r\n"
235
+ for (let i = 0; i < array.length; i++) {
236
+ let line = ""
237
+ for (let header_index in headers) {
238
+ let header = headers[header_index]
239
+ let value = get_value_by_path(array?.[i], header.split("__"))
240
+ if (line != "") line += ","
241
+ if (typeof value === "string") {
242
+ value = value.replace(/"/g, '""')
243
+ }
244
+ line += `"${value}"`
245
+ }
246
+ str += line + "\r\n"
247
+ }
248
+ return str
249
+ }
250
+
251
+ export function csv_to_json(csv_text) {
252
+ let rows = []
253
+ let current_row = []
254
+ let current_field = ""
255
+ let in_quotes = false
256
+ csv_text = csv_text.replace(/\\\""/g, "__ESCAPED_QUOTE__")
257
+ for (let i = 0; i < csv_text.length; i++) {
258
+ const char = csv_text[i]
259
+ if (char === '"') {
260
+ if (in_quotes && i + 1 < csv_text.length && csv_text[i + 1] === '"') {
261
+ current_field += '"'
262
+ i++
263
+ } else {
264
+ in_quotes = !in_quotes
265
+ }
266
+ } else if (char === "," && !in_quotes) {
267
+ current_row.push(current_field)
268
+ current_field = ""
269
+ } else if ((char === "\n" || char === "\r") && !in_quotes) {
270
+ if (char === "\r" && i + 1 < csv_text.length && csv_text[i + 1] === "\n") {
271
+ i++
272
+ }
273
+ current_row.push(current_field)
274
+ rows.push(current_row)
275
+ current_row = []
276
+ current_field = ""
277
+ } else {
278
+ current_field += char
279
+ }
280
+ }
281
+ if (current_field !== "" || current_row.length > 0) {
282
+ current_row.push(current_field)
283
+ rows.push(current_row)
284
+ }
285
+ if (rows.length < 2) {
286
+ return []
287
+ }
288
+ const headers = rows[0]
289
+ let data_rows = rows.slice(1)
290
+ const final_result = data_rows.map((row) => {
291
+ const obj = {}
292
+ headers.forEach((header, index) => {
293
+ let val = row[index] === undefined ? "" : row[index].trim()
294
+ if (val.startsWith("{") && val.endsWith("}")) {
295
+ try {
296
+ val = val.replace(/__ESCAPED_QUOTE__/g, '\\"')
297
+ val = JSON.parse(val)
298
+ } catch (e) {
299
+ console.warn("JSON parse error for field:", header, val)
300
+ }
301
+ } else if (val.startsWith("[") && val.endsWith("]")) {
302
+ try {
303
+ val = val.replace(/__ESCAPED_QUOTE__/g, '\\"')
304
+ val = JSON.parse(val)
305
+ } catch (e) {
306
+ console.warn("JSON parse error for field:", header, val)
307
+ }
308
+ } else if (!isNaN(val)) {
309
+ val = Number(val)
310
+ } else if (val.toLowerCase() === "true" || val.toLowerCase() === "false") {
311
+ val = val.toLowerCase() === "true"
312
+ }
313
+ obj[header] = val
314
+ })
315
+ return obj
316
+ })
317
+ return final_result
318
+ }
319
+
320
+ function get_headers(array) {
321
+ let header_set = new Set()
322
+ for (let i = 0; i < array.length; i++) {
323
+ add_keys_to_set(array[i], header_set, "")
324
+ }
325
+ return Array.from(header_set)
326
+ }
327
+
328
+ function add_keys_to_set(obj, set, prefix) {
329
+ for (let key in obj) {
330
+ if (typeof obj[key] === "object" && obj[key] !== null) {
331
+ add_keys_to_set(obj[key], set, prefix + key + "__")
332
+ } else {
333
+ set.add(prefix + key)
334
+ }
335
+ }
336
+ }
337
+
338
+ function get_value_by_path(obj, path) {
339
+ console.log("get_value_by_path000", { obj, path })
340
+ if (Array.isArray(path)) {
341
+ for (let i = 0; i < path.length; i++) {
342
+ if (obj && typeof obj == "object" && obj.hasOwnProperty(path?.[i])) {
343
+ obj = obj?.[path?.[i]]
344
+ if (i === path.length - 1 && typeof obj === "object" && obj !== null) {
345
+ return ""
346
+ }
347
+ } else {
348
+ return ""
349
+ }
350
+ }
351
+ }
352
+ return obj
353
+ }
354
+
355
+ export function cron_to_english(input) {
356
+ if (!input) {
357
+ return
358
+ }
359
+ const [minute = "*", hour = "*", day_of_month = "*", month = "*", day_of_week = "*"] = (input || "")
360
+ .split(" ")
361
+ .map((part) => part || "*")
362
+ function get_ordinal_suffix(num) {
363
+ const j = num % 10,
364
+ k = num % 100
365
+ if (j === 1 && k !== 11) return `${num}st`
366
+ if (j === 2 && k !== 12) return `${num}nd`
367
+ if (j === 3 && k !== 13) return `${num}rd`
368
+ return `${num}th`
369
+ }
370
+ const translate = (field, type, special_cases = {}) => {
371
+ if (field === "*" && type == "minute") return "every minute"
372
+ if (field === "*") return ""
373
+ if (field.includes(",")) {
374
+ return `on ${field
375
+ .split(",")
376
+ .map((f) => special_cases[f] || get_ordinal_suffix(f))
377
+ .join(", ")} ${type}`
378
+ }
379
+ if (field.includes("/")) {
380
+ const [start, step] = field.split("/")
381
+ return `every ${type === "day of the week" ? step : get_ordinal_suffix(step)} ${type}${
382
+ start === "*" ? "" : " starting from " + type + " " + start
383
+ }`
384
+ }
385
+ if (field.endsWith("L")) return `on the last ${type}`
386
+ if (field.includes("#")) {
387
+ const [dow, nth] = field.split("#")
388
+ return `on every ${get_ordinal_suffix(nth)} ${special_cases[dow] || dow}`
389
+ }
390
+ if (field.includes("W")) return `nearest weekday to ${field.replace("W", "")} of the month`
391
+ return `on ${
392
+ type === "day of the week" ? special_cases[field] || field : "every " + get_ordinal_suffix(field) + " " + type
393
+ }`
394
+ }
395
+ const day_names = {
396
+ 0: "Sunday",
397
+ 1: "Monday",
398
+ 2: "Tuesday",
399
+ 3: "Wednesday",
400
+ 4: "Thursday",
401
+ 5: "Friday",
402
+ 6: "Saturday",
403
+ }
404
+ const minute_text = translate(minute, "minute")
405
+ const hour_text = translate(hour, "hour")
406
+ const day_of_month_text = translate(day_of_month, "day of the month")
407
+ const month_text = translate(month, "month")
408
+ const day_of_week_text = translate(day_of_week, "day of the week", day_names)
409
+ const parts = [minute_text, hour_text, day_of_week_text, day_of_month_text, month_text].filter(Boolean)
410
+ let description = `Run ${parts.join(", ")}`
411
+ return description
412
+ }
413
+
414
+ export function set_closurable(input, default_value = null) {
415
+ return typeof input === "function" ? input() ?? default_value : input ?? default_value
416
+ }
417
+
418
+ export function set_closurable_color(input, default_value = null, is_css = false) {
419
+ let color = set_closurable(input, default_value)
420
+ if (typeof color == "object" && color != null) {
421
+ color = color
422
+ ? is_css
423
+ ? color_to_css(color)
424
+ : color_var(color?.l, color?.c, color?.h, color?.o, color?.is_dark_theme_invert)
425
+ : "transparent"
426
+ }
427
+ return color ?? default_value
428
+ }
429
+
430
+ export function color_to_css(input) {
431
+ return typeof input == "object" && !Array.isArray(input)
432
+ ? color_var(input?.l, input?.c, input?.h, input?.o, input?.is_dark_theme_invert)
433
+ : input ?? "transparent"
434
+ }
435
+
436
+ export function clean_folder_path(folder_path) {
437
+ let warnings = []
438
+ if (!Array.isArray(folder_path)) {
439
+ warnings.push("Folder path must be an array.")
440
+ return { cleaned_folder_path: [], warnings }
441
+ }
442
+ let cleaned_folder_path = folder_path.map((part) => {
443
+ let cleaned_part = clean_custom_identifier(part)
444
+ if (cleaned_part !== part) {
445
+ warnings.push(`"${part}" cleaned to "${cleaned_part}".`)
446
+ }
447
+ return cleaned_part
448
+ })
449
+ cleaned_folder_path = cleaned_folder_path.filter((part) => {
450
+ const is_valid = part.length <= 100 && !/^_|_$|__/.test(part)
451
+ if (!is_valid) {
452
+ warnings.push(`"${part}" is not a valid folder name.`)
453
+ }
454
+ return is_valid
455
+ })
456
+ return { cleaned_folder_path, warnings }
457
+ }
458
+
459
+ export async function get_image_dimensions_from_src(src) {
460
+ return new Promise((resolve, reject) => {
461
+ const img = new Image()
462
+ img.src = src
463
+ img.onload = () =>
464
+ resolve({
465
+ width: img.width,
466
+ height: img.height,
467
+ aspect_ratio: img.width && img.height ? Number((img.width / img.height).toFixed(5)) : null,
468
+ })
469
+ img.onerror = (error) => reject(error)
470
+ })
471
+ }
472
+
473
+ export function time_ago(epoch) {
474
+ const seconds = Math.floor((new Date() - new Date(epoch * 1000)) / 1000)
475
+ let interval = Math.floor(seconds / 31536000)
476
+ if (interval >= 1) {
477
+ return format_date(epoch, true)
478
+ }
479
+ interval = Math.floor(seconds / 2592000)
480
+ if (interval >= 1) {
481
+ return format_date(epoch, true)
482
+ }
483
+ interval = Math.floor(seconds / 604800)
484
+ if (interval >= 1) {
485
+ return interval + "w ago"
486
+ }
487
+ interval = Math.floor(seconds / 86400)
488
+ if (interval >= 1) {
489
+ return interval + "d ago"
490
+ }
491
+ interval = Math.floor(seconds / 3600)
492
+ if (interval >= 1) {
493
+ return interval + "h ago"
494
+ }
495
+ interval = Math.floor(seconds / 60)
496
+ if (interval >= 1) {
497
+ return interval + "m ago"
498
+ }
499
+ return "just now"
500
+ }
501
+
502
+ export function format_full_date(epoch) {
503
+ if (epoch == null) {
504
+ return null
505
+ }
506
+ const days_of_week = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]
507
+ const months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]
508
+ const current_time = new Date()
509
+ const target_time = new Date(epoch * 1000)
510
+ const day_name = days_of_week[target_time.getDay()]
511
+ const month_name = months[target_time.getMonth()]
512
+ const day = target_time.getDate()
513
+ let hour = target_time.getHours()
514
+ const minute = target_time.getMinutes()
515
+ const am_pm = hour >= 12 ? "pm" : "am"
516
+ hour = hour % 12
517
+ hour = hour ? hour : 12
518
+ const time_diff_ms = current_time - target_time
519
+ const time_diff_s = time_diff_ms / 1000
520
+ const time_diff_m = time_diff_s / 60
521
+ const time_diff_h = time_diff_m / 60
522
+ const time_diff_d = time_diff_h / 24
523
+ let time_ago = ""
524
+ if (time_diff_d >= 1) {
525
+ time_ago = `${Math.floor(time_diff_d)} day${Math.floor(time_diff_d) > 1 ? "s" : ""} ago`
526
+ } else if (time_diff_h >= 1) {
527
+ time_ago = `${Math.floor(time_diff_h)} hour${Math.floor(time_diff_h) > 1 ? "s" : ""} ago`
528
+ } else {
529
+ time_ago = `${Math.floor(time_diff_m)} minute${Math.floor(time_diff_m) > 1 ? "s" : ""} ago`
530
+ }
531
+ const human_readable = `${day_name}, ${month_name} ${day}, ${hour}:${
532
+ minute < 10 ? "0" : ""
533
+ }${minute} ${am_pm} (${time_ago})`
534
+ return human_readable
535
+ }
536
+
537
+ export function get_data_type_at_path(path, full_data_type) {
538
+ let data_type_at_path_loc = deep_copy(full_data_type)
539
+ if (Array.isArray(path)) {
540
+ for (let item of path) {
541
+ if (Array.isArray(item)) {
542
+ item = get_data_type_at_path(item)
543
+ }
544
+ if (typeof item == "number" || data_type_at_path_loc?.hasOwnProperty("items")) {
545
+ data_type_at_path_loc = data_type_at_path_loc?.items
546
+ } else if (typeof item == "string") {
547
+ data_type_at_path_loc = data_type_at_path_loc?.properties?.[item]
548
+ }
549
+ }
550
+ }
551
+ return data_type_at_path_loc
552
+ }
553
+
554
+ export function set_content_variables(input, variables_combined, pass_event_down) {
555
+ console.log("set_content_variables000", deep_copy({ input, variables_combined, pass_event_down }))
556
+ if (!Array.isArray(input?.variable_path_to_target)) {
557
+ throw new Error("Path must be an array")
558
+ }
559
+ let content_variables_loc = deep_copy(variables_combined)
560
+ let temp = content_variables_loc
561
+ const path = input.variable_path_to_target
562
+ const last_key = path[path.length - 1]
563
+ for (let i = 0; i < path.length - 1; i++) {
564
+ const key = path[i]
565
+ if (!(key in temp) || typeof temp[key] !== "object" || temp[key] === null) {
566
+ if (Number.isInteger(last_key)) {
567
+ temp[key] = Array(last_key).fill(null)
568
+ } else {
569
+ temp[key] = {}
570
+ }
571
+ }
572
+ temp = temp[key]
573
+ }
574
+ if (input?.type == "set_variables_insert") {
575
+ if (Array.isArray(temp[last_key])) {
576
+ if (
577
+ typeof input?.index_to_insert_at === "number" &&
578
+ input?.index_to_insert_at >= 0 &&
579
+ input?.index_to_insert_at <= temp?.[last_key].length
580
+ ) {
581
+ temp[last_key].splice(input.index_to_insert_at, 0, input.value)
582
+ } else {
583
+ temp[last_key].push(input.value)
584
+ }
585
+ } else {
586
+ temp[last_key] = [input.value]
587
+ }
588
+ } else if (input?.type == "set_variables_delete") {
589
+ console.log("set_variables_delete", deep_copy({ temp, last_key }))
590
+ if (Array.isArray(temp)) {
591
+ if (typeof last_key === "number" && last_key > -1 && last_key < temp.length) {
592
+ temp.splice(last_key, 1)
593
+ }
594
+ } else if (typeof temp === "object" && temp?.hasOwnProperty(last_key)) {
595
+ delete temp[last_key]
596
+ }
597
+ } else if (input?.type == "set_variables_key") {
598
+ console.log("set_variables_key", deep_copy({ temp, last_key }))
599
+ if (Array.isArray(temp)) {
600
+ throw new Error("Cannot change key in array")
601
+ } else if (typeof temp === "object" && temp?.hasOwnProperty(last_key)) {
602
+ temp[input.value] = temp[last_key]
603
+ delete temp[last_key]
604
+ } else {
605
+ throw new Error("Key not found in object")
606
+ }
607
+ } else {
608
+ temp[last_key] = input?.value
609
+ }
610
+ console.log("vars_fin", content_variables_loc?.variables)
611
+ if (typeof pass_event_down === "function") {
612
+ pass_event_down({
613
+ value: input.value,
614
+ variables: content_variables_loc?.variables,
615
+ set_from_content_id: input.set_from_content_id,
616
+ variable_path_to_target: input.variable_path_to_target,
617
+ })
618
+ }
619
+ return {
620
+ is_success: true,
621
+ variables: content_variables_loc?.variables,
622
+ }
623
+ }
624
+
625
+ // export function set_content_variables(input, variables_combined, pass_event_down) {
626
+ // console.log("set_content_variables000", input)
627
+ // if (!Array.isArray(input?.variable_path_to_target)) {
628
+ // throw new Error("Path must be an array")
629
+ // }
630
+ // let content_variables_loc = deep_copy(variables_combined)
631
+ // let temp = content_variables_loc
632
+ // const path = input.variable_path_to_target
633
+ // const last_key = path[path.length - 1]
634
+ // for (let i = 0; i < path.length - 1; i++) {
635
+ // const key = path[i]
636
+ // const nextKey = path[i + 1]
637
+
638
+ // if (!(key in temp) || typeof temp[key] !== "object" || temp[key] === null) {
639
+ // if (typeof nextKey === "number") {
640
+ // temp[key] = []
641
+ // } else {
642
+ // temp[key] = {}
643
+ // }
644
+ // }
645
+ // temp = temp[key]
646
+ // }
647
+ // if (input?.type == "set_variables_insert") {
648
+ // if (Array.isArray(temp[last_key])) {
649
+ // if (
650
+ // typeof input?.index_to_insert_at === "number" &&
651
+ // input?.index_to_insert_at >= 0 &&
652
+ // input?.index_to_insert_at <= temp?.[last_key].length
653
+ // ) {
654
+ // temp[last_key].splice(input.index_to_insert_at, 0, input.value)
655
+ // } else {
656
+ // temp[last_key].push(input.value)
657
+ // }
658
+ // } else {
659
+ // temp[last_key] = [input.value]
660
+ // }
661
+ // } else if (input?.type == "set_variables_delete") {
662
+ // if (Array.isArray(temp)) {
663
+ // if (typeof last_key === "number" && last_key > -1 && last_key < temp.length) {
664
+ // temp.splice(last_key, 1)
665
+ // }
666
+ // } else if (typeof temp === "object" && temp?.hasOwnProperty(last_key)) {
667
+ // delete temp[last_key]
668
+ // }
669
+ // } else if (input?.type == "set_variables_key") {
670
+ // if (Array.isArray(temp)) {
671
+ // throw new Error("Cannot change key in array")
672
+ // } else if (typeof temp === "object" && temp?.hasOwnProperty(last_key)) {
673
+ // temp[input.value] = temp[last_key]
674
+ // delete temp[last_key]
675
+ // } else {
676
+ // throw new Error("Key not found in object")
677
+ // }
678
+ // } else {
679
+ // temp[last_key] = input?.value
680
+ // }
681
+ // if (typeof pass_event_down === "function") {
682
+ // pass_event_down({
683
+ // value: input.value,
684
+ // variables: content_variables_loc,
685
+ // set_from_content_id: input.set_from_content_id,
686
+ // variable_path_to_target: input.variable_path_to_target,
687
+ // })
688
+ // }
689
+ // return {
690
+ // is_success: true,
691
+ // variables: content_variables_loc,
692
+ // }
693
+ // }
694
+
695
+ // tbd could also turn into a typed thing with arrays of v or objects, color, etc
696
+ export function v(config) {
697
+ let val = $state(null)
698
+
699
+ function on_change(from_id = null) {
700
+ if (typeof config?.on_change == "function") {
701
+ config?.on_change({ val, from_id: from_id })
702
+ }
703
+ }
704
+
705
+ function init(config) {
706
+ val = config?.val
707
+ }
708
+
709
+ init(config)
710
+
711
+ return {
712
+ get val() {
713
+ return val
714
+ },
715
+ set val(input) {
716
+ val = input
717
+ on_change()
718
+ },
719
+ set_val(input) {
720
+ if (typeof input == "object" && input?.from_id) {
721
+ val = input?.val
722
+ on_change(input?.from_id)
723
+ } else {
724
+ val = input
725
+ on_change()
726
+ }
727
+ },
728
+ }
729
+ }