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,1167 @@
1
+ import { create_unique_id, deep_copy, time_zone_options, language_options } from "$lib/client/index.js"
2
+
3
+ export function astc_element(type_id, children = [], attrs = {}) {
4
+ return {
5
+ type_id: type_id,
6
+ selector_id: create_unique_id(null, 8),
7
+ children: children,
8
+ attributes: attrs,
9
+ }
10
+ }
11
+
12
+ function process_line(match_groups, interline_astc_children, previous_base_text) {
13
+ const { strong, em, strong_em, code_inline, link, image, base_text } = match_groups
14
+ if (strong_em || strong || em || code_inline || link || image) {
15
+ if (previous_base_text) {
16
+ interline_astc_children.push(astc_element("base_text", [], { content: previous_base_text }))
17
+ previous_base_text = ""
18
+ }
19
+ }
20
+ if (strong_em) {
21
+ interline_astc_children.push(astc_element("strong_em", [], { content: strong_em.slice(3, -3) }))
22
+ } else if (strong) {
23
+ interline_astc_children.push(astc_element("strong", [], { content: strong.slice(2, -2) }))
24
+ } else if (em) {
25
+ interline_astc_children.push(astc_element("em", [], { content: em.slice(1, -1) }))
26
+ } else if (code_inline) {
27
+ interline_astc_children.push(astc_element("code_inline", [], { content: code_inline.slice(1, -1) }))
28
+ } else if (link) {
29
+ const name_match = link.match(/^\[(.*?)\]/)
30
+ const href_match = link.match(/\((.*?)\)$/)
31
+ const name = name_match ? name_match[1] : ""
32
+ const href = href_match ? href_match[1] : ""
33
+ interline_astc_children.push(astc_element("a", [], { content: name, href: href }))
34
+ } else if (image) {
35
+ const alt_match = image.match(/^!\[(.*?)\]/)
36
+ const src_match = image.match(/\((.*?)\)$/)
37
+ const alt = alt_match ? alt_match[1] : ""
38
+ const src = src_match ? src_match[1] : ""
39
+ interline_astc_children.push(astc_element("img", [], { alt: alt, src: src }))
40
+ } else if (base_text) {
41
+ previous_base_text += base_text
42
+ } else {
43
+ previous_base_text += " "
44
+ }
45
+ return previous_base_text
46
+ }
47
+
48
+ function sub_list_to_astc_children(assembled_lines) {
49
+ let lists_astc = []
50
+ let list_type = assembled_lines?.[0]?.type
51
+ let list_astc_children = []
52
+ let subgroup = []
53
+ let assembled_lines_to_use = [...assembled_lines, { type: "END", level: -1, val: null }]
54
+ for (let assem_line of assembled_lines_to_use) {
55
+ if (assem_line?.level < 1) {
56
+ if (subgroup.length > 0) {
57
+ const sublist_astc_children = sub_list_to_astc_children(subgroup)
58
+ list_astc_children.push(...sublist_astc_children)
59
+ subgroup = []
60
+ }
61
+ if (list_type != assem_line?.type) {
62
+ lists_astc.push(astc_element(list_type, list_astc_children))
63
+ list_astc_children = []
64
+ list_type = assem_line?.type
65
+ }
66
+ list_astc_children.push(astc_element("li", markdown_to_astc_children(assem_line?.val)))
67
+ } else {
68
+ subgroup.push({
69
+ type: assem_line?.type,
70
+ level: assem_line?.level - 1,
71
+ val: assem_line?.val,
72
+ })
73
+ }
74
+ }
75
+ return lists_astc
76
+ }
77
+
78
+ function markdown_to_astc_children(markdown, base_text_wrapper_type = null) {
79
+ let astc_children = []
80
+ let assembled_lines = []
81
+ let currently_in_type = null
82
+ markdown += "\nEND00END"
83
+ for (let line of markdown.split(/[\n]+/)) {
84
+ if (currently_in_type) {
85
+ if (currently_in_type == "code" && line.trim().startsWith("```")) {
86
+ //end of code
87
+ let language
88
+ let code_lines = []
89
+ for (let assem_line of assembled_lines) {
90
+ if (assem_line?.type == "language") {
91
+ language = assem_line?.val
92
+ } else {
93
+ code_lines.push(assem_line?.val)
94
+ }
95
+ }
96
+ const code_markdown = code_lines.join("\n")
97
+ astc_children.push(astc_element("code", [], { content: code_markdown, language: language }))
98
+ assembled_lines = []
99
+ currently_in_type = null
100
+ line = line.trim().slice(3)
101
+ } else if (currently_in_type == "table" && !line.trim().startsWith("|")) {
102
+ // end of table
103
+ let thead_children = []
104
+ let tbody_children = []
105
+ for (let row of assembled_lines) {
106
+ if (["thead", "tbody"].includes(row?.type)) {
107
+ let tr_children = []
108
+ const regex = /\|\s*([^|]*?)(?=\s*\||$)/g
109
+ const matches = Array.from(row?.val.matchAll(regex))
110
+ const columns = matches ? matches.map((match) => match[1].trim()).filter((column) => column !== "") : []
111
+ if (row.type == "thead") {
112
+ for (let column of columns) {
113
+ tr_children.push(astc_element("th", markdown_to_astc_children(column)))
114
+ }
115
+ thead_children.push(astc_element("tr", tr_children))
116
+ } else if (row.type == "tbody") {
117
+ for (let column of columns) {
118
+ tr_children.push(astc_element("td", markdown_to_astc_children(column)))
119
+ }
120
+ tbody_children.push(astc_element("tr", tr_children))
121
+ }
122
+ }
123
+ }
124
+ const astc_thead = astc_element("thead", thead_children)
125
+ const astc_tbody = astc_element("tbody", tbody_children)
126
+ const astc_table = astc_element("table", [astc_thead, astc_tbody])
127
+ astc_children.push(astc_table)
128
+ assembled_lines = []
129
+ currently_in_type = null
130
+ } else if (
131
+ currently_in_type == "list" &&
132
+ !(line.match(/^\s*\d+\./) || line.trim().startsWith("- ") || line.trim().startsWith("* "))
133
+ ) {
134
+ //end of list
135
+ let level_options = []
136
+ for (let assembled_line of assembled_lines) {
137
+ if (!level_options.includes(assembled_line?.level)) {
138
+ level_options.push(assembled_line?.level)
139
+ }
140
+ }
141
+ const sorted_levels = level_options.sort((a, b) => a - b)
142
+ let clean_level_assembled_lines = []
143
+ for (let assembled_line of assembled_lines) {
144
+ const simple_level = sorted_levels.findIndex((h) => h == assembled_line?.level)
145
+ clean_level_assembled_lines.push({
146
+ type: assembled_line?.type,
147
+ level: simple_level,
148
+ val: assembled_line?.val,
149
+ })
150
+ }
151
+ const list_astc_children = sub_list_to_astc_children(clean_level_assembled_lines)
152
+ astc_children.push(...list_astc_children)
153
+ assembled_lines = []
154
+ currently_in_type = null
155
+ }
156
+ }
157
+ if (currently_in_type == "code" || line.trim().startsWith("```")) {
158
+ //start of code
159
+ if (currently_in_type != "code" && line.trim().startsWith("```")) {
160
+ const intro_row = line.trim().slice(3)
161
+ if (intro_row.length > 0) {
162
+ assembled_lines.push({ type: "language", val: intro_row })
163
+ }
164
+ currently_in_type = "code"
165
+ } else {
166
+ assembled_lines.push({ type: "code", val: line })
167
+ }
168
+ } else if (line.startsWith(">")) {
169
+ //line is blockquote
170
+ const blockquote_astc_children = markdown_to_astc_children(line.trim().slice(1).trim())
171
+ astc_children.push(
172
+ astc_element("figure", [astc_element("blockquote", blockquote_astc_children, { cite: null })], {
173
+ caption: null,
174
+ })
175
+ )
176
+ } else if (line.trim().startsWith("|")) {
177
+ //start of table
178
+ currently_in_type = "table"
179
+ if (/^\|\s?(:?-{2})/.test(line.trim())) {
180
+ assembled_lines.push({ type: "divider" })
181
+ } else {
182
+ const type = assembled_lines.some((h) => h.type == "divider") ? "tbody" : "thead"
183
+ assembled_lines.push({ type: type, val: line })
184
+ }
185
+ } else if (line.match(/^\s*\d+\./) || line.trim().startsWith("- ") || line.trim().startsWith("* ")) {
186
+ //start of list
187
+ currently_in_type = "list"
188
+ let is_ul = line.trim().startsWith("- ") || line.trim().startsWith("* ")
189
+ const level = line.match(/^ */)[0].length
190
+ if (is_ul) {
191
+ assembled_lines.push({
192
+ type: "ul",
193
+ level: level,
194
+ val: line.trim().slice(2),
195
+ })
196
+ } else {
197
+ assembled_lines.push({
198
+ type: "ol",
199
+ level: level,
200
+ val: line.match(/^\s*\d+\.\s*(.*)/)[1],
201
+ })
202
+ }
203
+ } else if (line.match(/^#+/)) {
204
+ // heading
205
+ const heading_match = line.match(/^#+/)
206
+ const heading_level = heading_match[0].length
207
+ const markdown_remaining = line.slice(heading_level).trimStart()
208
+ let heading_astc = astc_element(`h${heading_level}`, markdown_to_astc_children(markdown_remaining))
209
+ astc_children.push(heading_astc)
210
+ } else if (line.startsWith("---")) {
211
+ // horiz rule
212
+ astc_children.push(astc_element("hr"))
213
+ } else if (!line.startsWith("END00END")) {
214
+ let interline_astc_children = []
215
+ const regex =
216
+ /(?<strong_em>\*\*\*[^*]+\*\*\*|___[^_]+___)|(?<strong>\*\*[^*]+\*\*|__[^_]+__)|(?<em>\*[^*]+\*|_[^_]+_)|(?<code_inline>`[^`]+`)|(?<link>\[.*?\]\(.*?\))|(?<img>!\[.*?\]\(.*?\))|(?<base_text>[^\s*_`[\]]+)|\s+/g
217
+ const matches = Array.from(line.matchAll(regex))
218
+ let previous_base_text = ""
219
+ for (let match of matches) {
220
+ previous_base_text = process_line(match.groups, interline_astc_children, previous_base_text)
221
+ }
222
+ process_base_text()
223
+ function process_base_text() {
224
+ if (previous_base_text) {
225
+ interline_astc_children.push(astc_element("base_text", [], { content: previous_base_text }))
226
+ previous_base_text = ""
227
+ }
228
+ }
229
+ if (base_text_wrapper_type) {
230
+ astc_children.push(astc_element(base_text_wrapper_type, interline_astc_children))
231
+ } else {
232
+ astc_children.push(...interline_astc_children)
233
+ }
234
+ }
235
+ }
236
+ return astc_children
237
+ }
238
+
239
+ export function markdown_to_astc(markdown) {
240
+ const astc_children = markdown_to_astc_children(markdown, "p")
241
+ return {
242
+ type_id: "div",
243
+ children: astc_children,
244
+ attributes: {},
245
+ selector_id: create_unique_id(null, 8),
246
+ }
247
+ }
248
+
249
+ export function astc_to_markdown(astc) {
250
+ function process_children(children, parent, level = 0) {
251
+ return children.map((child, index) => astc_element_to_markdown(child, parent, level, index)).join("")
252
+ }
253
+
254
+ function get_table_divider_row(thead_children) {
255
+ const divider_cells = thead_children[0].children.map((th) => {
256
+ const content_length = th.children.map((child) => child.attributes.content.length).reduce((a, b) => a + b, 0)
257
+ return "-".repeat(content_length)
258
+ })
259
+ return "| " + divider_cells.join(" | ") + " |"
260
+ }
261
+
262
+ function astc_element_to_markdown(element, parent = null, level = 0, index = 0) {
263
+ const { type_id, children, attributes } = element
264
+ switch (type_id) {
265
+ case "h1":
266
+ case "h2":
267
+ case "h3":
268
+ case "h4":
269
+ case "h5":
270
+ case "h6":
271
+ const heading_level = parseInt(type_id.slice(1))
272
+ return `${"#".repeat(heading_level)} ${process_children(children)}\n`
273
+ case "section":
274
+ case "div":
275
+ case "p":
276
+ case "footer":
277
+ return `${process_children(children)}\n`
278
+ case "strong":
279
+ return `**${attributes.content}**`
280
+ case "em":
281
+ return `*${attributes.content}*`
282
+ case "strong_em":
283
+ return `***${attributes.content}***`
284
+ case "code_inline":
285
+ return `\`${attributes.content}\``
286
+ case "a":
287
+ case "ref":
288
+ return `[${attributes.content ?? attributes.href}](${attributes.href})`
289
+ case "img":
290
+ return `![${attributes.alt}](${attributes.src})\n`
291
+ case "ul":
292
+ case "ol":
293
+ return children.map((child, index) => astc_element_to_markdown(child, element, level + 1, index)).join("\n")
294
+ case "li":
295
+ const list_item_prefix = parent && parent.type_id === "ol" ? `${index + 1}. ` : "- "
296
+ const indent = " ".repeat(Math.max(0, level - 1))
297
+ return `${indent}${list_item_prefix}${process_children(children, element, level)}`
298
+ case "figure":
299
+ if (attributes.caption) {
300
+ return `> ${process_children(children)}\n> —${attributes.caption}\n`
301
+ } else {
302
+ return `> ${process_children(children)}\n`
303
+ }
304
+ case "code":
305
+ const language = attributes.language ? attributes.language : ""
306
+ return `\`\`\`${language}\n${attributes.content}\n\`\`\`\n`
307
+ case "hr":
308
+ return "---\n"
309
+ case "table":
310
+ const table_rows = children.map((child) => astc_element_to_markdown(child))
311
+ return table_rows.join("\n") + "\n"
312
+ case "thead":
313
+ const header_rows = children.map((child) => astc_element_to_markdown(child))
314
+ const divider_row = get_table_divider_row(children)
315
+ return header_rows.join("\n") + "\n" + divider_row
316
+ case "tbody":
317
+ const rows = children.map((child) => astc_element_to_markdown(child))
318
+ return rows.join("\n")
319
+ case "tr":
320
+ const cells = children.map((child) => astc_element_to_markdown(child))
321
+ return `| ${cells.join(" | ")} |`
322
+ case "th":
323
+ case "td":
324
+ return process_children(children)
325
+ case "base_text":
326
+ return attributes.content
327
+ default:
328
+ return ""
329
+ }
330
+ }
331
+ return astc_element_to_markdown(astc)
332
+ }
333
+
334
+ export function get_variable_from_path(path, variables, loops) {
335
+ if (Array.isArray(path)) {
336
+ let combined_variables_loc = deep_copy({
337
+ variables: variables,
338
+ loops: loops,
339
+ })
340
+ for (let path_item of path) {
341
+ if (Array.isArray(path_item)) {
342
+ let sub_val_from_path = get_variable_from_path(path_item)
343
+ combined_variables_loc = combined_variables_loc?.[sub_val_from_path]
344
+ } else {
345
+ combined_variables_loc = combined_variables_loc?.[path_item]
346
+ }
347
+ }
348
+ return combined_variables_loc
349
+ }
350
+ return null
351
+ }
352
+
353
+ export function clean_variable_path(path, variables, loops) {
354
+ // eg. ['variables','dddd',['loops',0]] to ['variables','dddd',3]
355
+ if (Array.isArray(path)) {
356
+ let cleaned_path = []
357
+ for (let path_item of path) {
358
+ if (Array.isArray(path_item)) {
359
+ let sub_val_from_path = get_variable_from_path(path_item, variables, loops)
360
+ cleaned_path.push(sub_val_from_path)
361
+ } else {
362
+ cleaned_path.push(path_item)
363
+ }
364
+ }
365
+ return cleaned_path
366
+ }
367
+ return null
368
+ }
369
+
370
+ export function clean_attributes_from_variable_path(attributes, variables, loops) {
371
+ let cleaned_attributes = attributes
372
+ if (Object.keys(attributes || {}).length) {
373
+ for (let [att_key, att_val] of Object.entries(attributes)) {
374
+ if (att_key.endsWith("_from_variable_path") && att_val != null) {
375
+ const clean_path = clean_variable_path(att_val, variables, loops)
376
+ const att_key_to_set = att_key.split("_from_variable_path")?.[0]
377
+ cleaned_attributes[att_key_to_set] = get_variable_from_path(clean_path, variables, loops)
378
+ delete cleaned_attributes[att_key]
379
+ }
380
+ }
381
+ }
382
+ return cleaned_attributes
383
+ }
384
+
385
+ export function astc_to_static_attributes(astc, variables, loops) {
386
+ if ([undefined, null].includes(astc)) {
387
+ return null
388
+ }
389
+ let astc_loc = deep_copy(astc)
390
+ if (Object.keys(astc_loc?.attributes || {}).length > 0) {
391
+ astc_loc.attributes = clean_attributes_from_variable_path(astc_loc?.attributes, variables, loops)
392
+ }
393
+ if (Array.isArray(astc_loc?.children)) {
394
+ let cleaned_children = []
395
+ for (let child of astc_loc.children) {
396
+ cleaned_children.push(astc_to_static_attributes(child, variables, loops))
397
+ }
398
+ astc_loc.children = cleaned_children
399
+ }
400
+ return astc_loc
401
+ }
402
+
403
+ export function astc_to_embedding_text(astc) {
404
+ // this needs work tbd
405
+ let embedding_text = ""
406
+ if (astc?.attributes?.content) {
407
+ embedding_text += astc.attributes.content
408
+ } else if (astc?.attributes?.val) {
409
+ embedding_text += astc.attributes.val // tbd like maybe time types get converted to good display content
410
+ }
411
+ if (astc?.children) {
412
+ for (let child of astc.children) {
413
+ let child_text = astc_to_embedding_text(child)
414
+ embedding_text += child_text ? " " + child_text.trim() : ""
415
+ }
416
+ }
417
+ embedding_text = embedding_text.replace(/\n/g, "")
418
+ embedding_text = embedding_text.replace(/\s{2,}/g, " ")
419
+ embedding_text = embedding_text.trim()
420
+ if (embedding_text.length > 0) {
421
+ if (["th", "td"].includes(astc?.type_id)) {
422
+ if (![".", "?", "!"].includes(embedding_text.slice(-1))) {
423
+ embedding_text += "."
424
+ } else {
425
+ embedding_text += " "
426
+ }
427
+ } else {
428
+ console.log("tbd_astc_to_emb", astc)
429
+ }
430
+ }
431
+ embedding_text = embedding_text.replace(/[^\x00-\x7F]/g, "")
432
+ embedding_text = embedding_text.replace(/"/g, "")
433
+ return embedding_text
434
+ }
435
+
436
+ function hue_to_rgb(p, q, t) {
437
+ if (t < 0) t += 1
438
+ if (t > 1) t -= 1
439
+ if (t < 1 / 6) return p + (q - p) * 6 * t
440
+ if (t < 1 / 2) return q
441
+ if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6
442
+ return p
443
+ }
444
+
445
+ export function hcl_to_hex(h, c, l) {
446
+ const hues = [
447
+ 345, 360, 10, 20, 30, 45, 55, 70, 85, 100, 120, 140, 155, 170, 185, 200, 215, 230, 245, 260, 275, 290, 305, 320,
448
+ 335,
449
+ ]
450
+ h = hues[h]
451
+ c = (100 * c) / 24
452
+ l = (100 * l) / 24
453
+ h /= 360
454
+ c /= 100
455
+ l /= 100
456
+ let r, g, b
457
+ if (c === 0) {
458
+ r = g = b = l
459
+ } else {
460
+ const q = l < 0.5 ? l * (1 + c) : l + c - l * c
461
+ const p = 2 * l - q
462
+ r = hue_to_rgb(p, q, h + 1 / 3)
463
+ g = hue_to_rgb(p, q, h)
464
+ b = hue_to_rgb(p, q, h - 1 / 3)
465
+ }
466
+ r = Math.floor(r * 255)
467
+ .toString(16)
468
+ .padStart(2, "0")
469
+ g = Math.floor(g * 255)
470
+ .toString(16)
471
+ .padStart(2, "0")
472
+ b = Math.floor(b * 255)
473
+ .toString(16)
474
+ .padStart(2, "0")
475
+ return `#${r}${g}${b}`
476
+ }
477
+
478
+ function attribute_to_string(attr_obj) {
479
+ return attr_obj
480
+ ? Object.entries(attr_obj || {})
481
+ .filter(([key, value]) => value !== null)
482
+ .map(([key, value]) => `${key}="${value}"`)
483
+ .join(" ")
484
+ : ""
485
+ }
486
+
487
+ export function astc_to_email_html(astc, options, slots_html_and_text_body) {
488
+ function get_src(src, storage_id) {
489
+ let storage_path = options?.storage_path ?? "/api/v1/storage/{storage_id}"
490
+ if (src) {
491
+ return src
492
+ } else if (storage_id && storage_path) {
493
+ return storage_path.replace("{storage_id}", storage_id)
494
+ } else {
495
+ return null
496
+ }
497
+ }
498
+ let font_family = options?.font_family
499
+ let text_color_hex = options?.text_color_hex
500
+ if (["h1", "h2", "h3", "h4", "h5", "h6"].includes(astc?.type_id)) {
501
+ font_family = options?.font_family_serif
502
+ text_color_hex = options?.header_color_hex
503
+ }
504
+ let style_attributes = `font-family: ${font_family}; color: ${text_color_hex};`
505
+ if (astc?.type_id === "table") {
506
+ style_attributes += `border: 1px solid ${text_color_hex}; border-collapse: collapse;`
507
+ } else if (["th", "td"].includes(astc?.type_id)) {
508
+ style_attributes += `border: 1px solid ${text_color_hex}; text-align: left; padding: 8px;`
509
+ } else if (["div"].includes(astc?.type_id)) {
510
+ if (astc?.attributes?.background_color) {
511
+ style_attributes += `background-color: ${astc?.attributes.background_color};`
512
+ }
513
+ if (astc?.attributes?.border_color) {
514
+ style_attributes += `border: 1px solid ${astc?.attributes.border_color};`
515
+ }
516
+ if (astc?.attributes?.border_radius) {
517
+ style_attributes += `border-radius: ${astc?.attributes?.border_radius}rem;`
518
+ }
519
+ if (astc?.attributes?.padding) {
520
+ style_attributes += `padding: ${astc?.attributes?.padding}rem;`
521
+ }
522
+ if (astc?.attributes?.align_content || astc?.attributes?.justify_content) {
523
+ style_attributes += `display: grid; place-content: ${astc?.attributes?.align_content ?? "stretch"} ${
524
+ astc?.attributes?.justify_content ?? "stretch"
525
+ };`
526
+ }
527
+ }
528
+ style_attributes = `style="${style_attributes}"`
529
+ switch (astc?.type_id) {
530
+ case "slot":
531
+ console.log("slot_case", astc, slots_html_and_text_body)
532
+ if (Object.keys(slots_html_and_text_body || {}).includes(astc?.attributes?.val)) {
533
+ console.log("return_slot_html", slots_html_and_text_body?.[astc?.attributes?.val]?.html_body)
534
+ return slots_html_and_text_body?.[astc?.attributes?.val]?.html_body
535
+ }
536
+ case "link": {
537
+ const text = astc.attributes.display_text
538
+ ? astc.attributes.display_text
539
+ : (astc.children || []).map((child) => astc_to_email_html(child, options, slots_html_and_text_body)).join("") ||
540
+ astc.attributes.href
541
+ return `<a ${attribute_to_string(astc.attributes)}>
542
+ ${text}
543
+ </a>`
544
+ }
545
+ case "h1":
546
+ case "h2":
547
+ case "h3":
548
+ case "h4":
549
+ case "h5":
550
+ case "h6":
551
+ case "section":
552
+ case "div":
553
+ case "p":
554
+ case "footer":
555
+ case "ul":
556
+ case "ol":
557
+ case "li":
558
+ case "table":
559
+ case "thead":
560
+ case "tbody":
561
+ case "tr":
562
+ case "th":
563
+ case "td":
564
+ return `<${astc?.type_id} ${style_attributes} ${attribute_to_string(astc?.attributes)}>${astc?.children
565
+ .map((child) => astc_to_email_html(child, options, slots_html_and_text_body))
566
+ .join("")}</${astc?.type_id}>`
567
+ case "strong":
568
+ return `<strong>${astc?.attributes.content}</strong>`
569
+ case "em":
570
+ return `<em>${astc?.attributes.content}</em>`
571
+ case "strong_em":
572
+ return `<strong><em>${astc?.attributes.content}</em></strong>`
573
+ case "code_inline":
574
+ return `<code>${astc?.attributes.content}</code>`
575
+ case "a":
576
+ return `<a href="${astc?.attributes.href}">${astc?.attributes.content || astc?.attributes.href}</a>`
577
+ case "image": // img tbd
578
+ return `<img style="border-radius: 10px;" width="100%" height="auto" src="${get_src(
579
+ astc?.attributes?.src,
580
+ astc?.attributes?.storage_id
581
+ )}" alt="${astc?.attributes.alt}" ${attribute_to_string(astc?.attributes)} />`
582
+ case "code":
583
+ return `<pre><code ${astc?.attributes?.language ? `class="${astc?.attributes?.language}"` : ""}>${
584
+ astc?.attributes?.content
585
+ }</code></pre>`
586
+ case "figure":
587
+ const caption = astc?.attributes?.caption ? `<figcaption>${astc?.attributes?.caption}</figcaption>` : ""
588
+ return `<figure ${style_attributes} ${attribute_to_string(astc?.attributes)}>${astc?.children
589
+ .map((child) => astc_to_email_html(child, options, slots_html_and_text_body))
590
+ .join("")}${caption}</figure>`
591
+ case "blockquote":
592
+ return `<blockquote cite="${astc?.attributes.cite}">${astc?.children
593
+ .map((child) => astc_to_email_html(child, options, slots_html_and_text_body))
594
+ .join("")}</blockquote>`
595
+ case "hr":
596
+ return `<hr ${attribute_to_string(astc?.attributes)} />`
597
+ case "base_text":
598
+ return astc?.attributes.content
599
+ default:
600
+ return ""
601
+ }
602
+ }
603
+
604
+ function increase_loops_on_path(path) {
605
+ let cleaned_path = null
606
+ if (Array.isArray(path)) {
607
+ cleaned_path = []
608
+ for (let path_item of path) {
609
+ if (Array.isArray(path_item)) {
610
+ if (path_item?.[0] == "loops" && typeof path_item?.[1] == "number") {
611
+ cleaned_path.push(["loops", path_item?.[1] + 1])
612
+ } else {
613
+ cleaned_path.push(increase_loops_on_path(path_item))
614
+ }
615
+ } else {
616
+ cleaned_path.push(path_item)
617
+ }
618
+ }
619
+ }
620
+ return cleaned_path
621
+ }
622
+
623
+ export function variables_data_type_remaining_to_astc(
624
+ variables_data_type_remaining,
625
+ preferred_content_use = "display",
626
+ leading_variable_path = []
627
+ ) {
628
+ // consider passing in options / attributes like label, min, max, is_nullable, etc
629
+ // dropdown input tbd
630
+ // tag display
631
+ // link
632
+ // file input/display
633
+ // image input/display
634
+ // audio input/display
635
+ // table advanced input/display
636
+ // qr input/display
637
+ // x_post input/display
638
+ // youtube_video input/display
639
+ // video input/display
640
+ if (!variables_data_type_remaining?.type) {
641
+ return null
642
+ } else if (variables_data_type_remaining?.type == "color_literal") {
643
+ if (preferred_content_use == "input") {
644
+ return astc_element("color_input", [], {
645
+ val_from_variable_path: leading_variable_path,
646
+ ...(variables_data_type_remaining?.attributes ?? {}),
647
+ })
648
+ }
649
+ return astc_element("color", [], {
650
+ val_from_variable_path: leading_variable_path,
651
+ size: 10,
652
+ ...(variables_data_type_remaining?.attributes ?? {}),
653
+ })
654
+ } else if (variables_data_type_remaining?.type == "text_literal") {
655
+ if (preferred_content_use == "input") {
656
+ return astc_element("text_input", [], {
657
+ val_from_variable_path: leading_variable_path,
658
+ ...(variables_data_type_remaining?.attributes ?? {}),
659
+ })
660
+ }
661
+ return astc_element("base_text", [], {
662
+ content_from_variable_path: leading_variable_path,
663
+ size: 10,
664
+ ...(variables_data_type_remaining?.attributes ?? {}),
665
+ })
666
+ } else if (["int_literal", "float_literal", "bigint_literal"].includes(variables_data_type_remaining?.type)) {
667
+ if (preferred_content_use == "input") {
668
+ return astc_element("text_input", [], {
669
+ type: "number",
670
+ val_from_variable_path: leading_variable_path,
671
+ ...(variables_data_type_remaining?.attributes ?? {}),
672
+ })
673
+ }
674
+ return astc_element("number", [], {
675
+ val_from_variable_path: leading_variable_path,
676
+ ...(variables_data_type_remaining?.attributes ?? {}),
677
+ })
678
+ } else if (variables_data_type_remaining?.type == "location_literal") {
679
+ if (preferred_content_use == "input") {
680
+ return astc_element("location_input", [], {
681
+ is_popover_button: true,
682
+ is_popover: true,
683
+ val_from_variable_path: leading_variable_path,
684
+ ...(variables_data_type_remaining?.attributes ?? {}),
685
+ })
686
+ }
687
+ return astc_element("location", [], {
688
+ val_from_variable_path: leading_variable_path,
689
+ ...(variables_data_type_remaining?.attributes ?? {}),
690
+ })
691
+ } else if (variables_data_type_remaining?.type == "time_zone_literal") {
692
+ if (preferred_content_use == "input") {
693
+ return astc_element("dropdown", [], {
694
+ options: time_zone_options,
695
+ is_compressed: true,
696
+ val_from_variable_path: leading_variable_path,
697
+ ...(variables_data_type_remaining?.attributes ?? {}),
698
+ })
699
+ }
700
+ return astc_element("base_text", [], {
701
+ content_from_variable_path: leading_variable_path,
702
+ ...(variables_data_type_remaining?.attributes ?? {}),
703
+ })
704
+ } else if (variables_data_type_remaining?.type == "language_literal") {
705
+ if (preferred_content_use == "input") {
706
+ return astc_element("dropdown", [], {
707
+ options: language_options,
708
+ is_compressed: true,
709
+ val_from_variable_path: leading_variable_path,
710
+ ...(variables_data_type_remaining?.attributes ?? {}),
711
+ })
712
+ }
713
+ return astc_element("base_text", [], {
714
+ content_from_variable_path: leading_variable_path,
715
+ ...(variables_data_type_remaining?.attributes ?? {}),
716
+ })
717
+ } else if (variables_data_type_remaining?.type == "json_literal") {
718
+ if (preferred_content_use == "input") {
719
+ return astc_element("json", [], {
720
+ val_from_variable_path: leading_variable_path,
721
+ ...(variables_data_type_remaining?.attributes ?? {}),
722
+ is_edit_mode: true,
723
+ })
724
+ }
725
+ return astc_element("json", [], {
726
+ content_from_variable_path: leading_variable_path,
727
+ ...(variables_data_type_remaining?.attributes ?? {}),
728
+ })
729
+ } else if (variables_data_type_remaining?.type == "boolean_literal") {
730
+ if (preferred_content_use == "input") {
731
+ return astc_element("checkbox", [], {
732
+ type: "toggle",
733
+ val_from_variable_path: leading_variable_path,
734
+ ...(variables_data_type_remaining?.attributes ?? {}),
735
+ })
736
+ }
737
+ return astc_element("base_text", [], {
738
+ content_from_variable_path: leading_variable_path,
739
+ ...(variables_data_type_remaining?.attributes ?? {}),
740
+ })
741
+ } else if (variables_data_type_remaining?.type == "email_address_literal") {
742
+ if (preferred_content_use == "input") {
743
+ return astc_element("text_input", [], {
744
+ type: "email",
745
+ val_from_variable_path: leading_variable_path,
746
+ ...(variables_data_type_remaining?.attributes ?? {}),
747
+ })
748
+ }
749
+ return astc_element("email", [], {
750
+ val_from_variable_path: leading_variable_path,
751
+ })
752
+ } else if (variables_data_type_remaining?.type == "time_literal") {
753
+ if (preferred_content_use == "input") {
754
+ return astc_element("time_input", [], {
755
+ val_from_variable_path: leading_variable_path,
756
+ ...(variables_data_type_remaining?.attributes ?? {}),
757
+ })
758
+ }
759
+ return astc_element("time", [], {
760
+ val_from_variable_path: leading_variable_path,
761
+ })
762
+ } else if (variables_data_type_remaining?.type == "epoch_literal") {
763
+ if (preferred_content_use == "input") {
764
+ return astc_element("time_input", [], {
765
+ format: "epoch",
766
+ val_from_variable_path: leading_variable_path,
767
+ ...(variables_data_type_remaining?.attributes ?? {}),
768
+ })
769
+ }
770
+ return astc_element("time", [], {
771
+ format: "epoch",
772
+ val_from_variable_path: leading_variable_path,
773
+ ...(variables_data_type_remaining?.attributes ?? {}),
774
+ })
775
+ } else if (variables_data_type_remaining?.type == "cron_literal") {
776
+ if (preferred_content_use == "input") {
777
+ return astc_element("cron_input", [], {
778
+ val_from_variable_path: leading_variable_path,
779
+ ...(variables_data_type_remaining?.attributes ?? {}),
780
+ })
781
+ }
782
+ return astc_element("cron", [], {
783
+ val_from_variable_path: leading_variable_path,
784
+ })
785
+ } else if (variables_data_type_remaining?.type == "phone_literal") {
786
+ if (preferred_content_use == "input") {
787
+ return astc_element("phone_input", [], {
788
+ val_from_variable_path: leading_variable_path,
789
+ ...(variables_data_type_remaining?.attributes ?? {}),
790
+ })
791
+ }
792
+ return astc_element("phone_number", [], {
793
+ val_from_variable_path: leading_variable_path,
794
+ ...(variables_data_type_remaining?.attributes ?? {}),
795
+ })
796
+ } else if (variables_data_type_remaining?.type == "array_uniform_literal") {
797
+ if (preferred_content_use == "input") {
798
+ let leading_variable_path_children = increase_loops_on_path(leading_variable_path)
799
+ leading_variable_path_children = [
800
+ ...(Array.isArray(leading_variable_path_children) ? leading_variable_path_children : []),
801
+ ["loops", 0],
802
+ ]
803
+ const child_astc = variables_data_type_remaining_to_astc(
804
+ variables_data_type_remaining?.items,
805
+ preferred_content_use,
806
+ leading_variable_path_children
807
+ )
808
+ return astc_element("array_uniform_input", [child_astc], {
809
+ val_from_variable_path: leading_variable_path,
810
+ ...(variables_data_type_remaining?.attributes ?? {}),
811
+ })
812
+ }
813
+ // if (preferred_content_type == "object") {
814
+ // // maybe infer as table
815
+ // }
816
+ let leading_variable_path_children = increase_loops_on_path(leading_variable_path)
817
+ leading_variable_path_children = [
818
+ ...(Array.isArray(leading_variable_path_children) ? leading_variable_path_children : []),
819
+ ["loops", 0],
820
+ ]
821
+ const child_astc = variables_data_type_remaining_to_astc(
822
+ variables_data_type_remaining?.items,
823
+ preferred_content_use,
824
+ leading_variable_path_children
825
+ )
826
+ return astc_element("loop", [child_astc], {
827
+ val_from_variable_path: leading_variable_path,
828
+ ...(variables_data_type_remaining?.attributes ?? {}),
829
+ font_size: 1.2,
830
+ })
831
+ // } else if (variables_data_type_remaining?.type == "list") {
832
+ // list input tbd just content input i guess
833
+ // but im thinking loops are for same children repeated but lists can be different so basically a div with no div tag
834
+ // let children = []
835
+ // if (Array.isArray(variables_data_type_remaining?.items)) {
836
+ // for (let item of variables_data_type_remaining?.items) {
837
+ // children.push(variables_data_type_remaining_to_astc(item?.type, preferred_content_use, leading_variable_path))
838
+ // }
839
+ // }
840
+ // return astc_element("list", children)
841
+ } else if (variables_data_type_remaining?.type == "object_uniform_literal") {
842
+ if (preferred_content_use == "input") {
843
+ let leading_variable_path_children = increase_loops_on_path(leading_variable_path)
844
+ leading_variable_path_children = [
845
+ ...(Array.isArray(leading_variable_path_children) ? leading_variable_path_children : []),
846
+ ["loops", 0],
847
+ ]
848
+ const child_astc = variables_data_type_remaining_to_astc(
849
+ variables_data_type_remaining?.items,
850
+ preferred_content_use,
851
+ leading_variable_path_children
852
+ )
853
+ return astc_element("object_uniform_input", [child_astc], {
854
+ val_from_variable_path: leading_variable_path,
855
+ ...(variables_data_type_remaining?.attributes ?? {}),
856
+ })
857
+ }
858
+ let leading_variable_path_children = increase_loops_on_path(leading_variable_path)
859
+ leading_variable_path_children = [
860
+ ...(Array.isArray(leading_variable_path_children) ? leading_variable_path_children : []),
861
+ ["loops", 0],
862
+ ]
863
+ const child_astc = variables_data_type_remaining_to_astc(
864
+ variables_data_type_remaining?.items,
865
+ preferred_content_use,
866
+ leading_variable_path_children
867
+ )
868
+ return astc_element("object_uniform", [child_astc], {
869
+ val_from_variable_path: leading_variable_path,
870
+ ...(variables_data_type_remaining?.attributes ?? {}),
871
+ })
872
+ } else if (variables_data_type_remaining?.type == "object_literal") {
873
+ const label = variables_data_type_remaining?.attributes
874
+ ? astc_element("base_text", [], {
875
+ content: variables_data_type_remaining?.attributes?.label,
876
+ ...(variables_data_type_remaining?.attributes ?? {}),
877
+ font_size: 1.2,
878
+ })
879
+ : null
880
+ if (preferred_content_use == "input") {
881
+ let children = label ? [label] : []
882
+ for (let [key, val] of Object.entries(variables_data_type_remaining?.properties || {})) {
883
+ let property_children = []
884
+ property_children.push(
885
+ astc_element("base_text", [], {
886
+ content: `${key ?? "NULL"}:`,
887
+ ...(variables_data_type_remaining?.attributes ?? {}),
888
+ font_size: 1.2,
889
+ })
890
+ )
891
+ if (val?.type != null) {
892
+ const property_astc = variables_data_type_remaining_to_astc(val, preferred_content_use, [
893
+ ...(Array.isArray(leading_variable_path) ? leading_variable_path : []),
894
+ key,
895
+ ])
896
+ property_children.push(property_astc)
897
+ } else {
898
+ property_children.push(astc_element("em", [], { content: "Data Type Not Set", font_size: 1.2 }))
899
+ }
900
+ children.push(astc_element("div", property_children))
901
+ }
902
+ return astc_element("div", children, { ...(variables_data_type_remaining?.attributes ?? {}) })
903
+ }
904
+ let children = label ? [label] : []
905
+ for (let [key, val] of Object.entries(variables_data_type_remaining?.properties || {})) {
906
+ let property_children = []
907
+ property_children.push(
908
+ astc_element("base_text", [], {
909
+ content: `${key ?? "NULL"}:`,
910
+ ...(variables_data_type_remaining?.attributes ?? {}),
911
+ font_size: 1.2,
912
+ })
913
+ )
914
+ if (val?.type != null) {
915
+ const property_astc = variables_data_type_remaining_to_astc(val, preferred_content_use, [
916
+ ...(Array.isArray(leading_variable_path) ? leading_variable_path : []),
917
+ key,
918
+ ])
919
+ property_children.push(property_astc)
920
+ } else {
921
+ property_children.push(astc_element("em", [], { content: "Data Type Not Set", font_size: 1.2 }))
922
+ }
923
+ children.push(astc_element("div", property_children))
924
+ }
925
+ return astc_element("div", children, { ...(variables_data_type_remaining?.attributes ?? {}) })
926
+ } else if (variables_data_type_remaining?.type == "table_id_for_foreign_row_literal") {
927
+ if (preferred_content_use == "input") {
928
+ return astc_element("table_row_id_input", [], {
929
+ table_id: variables_data_type_remaining?.attributes?.table_id,
930
+ val_from_variable_path: leading_variable_path,
931
+ ...(variables_data_type_remaining?.attributes ?? {}),
932
+ })
933
+ }
934
+ return astc_element("base_text", [], {
935
+ content_from_variable_path: leading_variable_path,
936
+ size: 10,
937
+ ...(variables_data_type_remaining?.attributes ?? {}),
938
+ })
939
+ }
940
+
941
+ // let preferred_content_type = (
942
+ // preferred_content_use == "display"
943
+ // ? node_types?.[variables_data_type_remaining?.type]?.display_options
944
+ // : node_types?.[variables_data_type_remaining?.type]?.input_options
945
+ // )?.[0]
946
+ // if (preferred_content_type) {
947
+ // // let attributes = {}
948
+ // // if (Object.keys(node_types?.[preferred_content_type]?.attributes || {}).length > 0) {
949
+ // // for (let [key, value] of Object.entries(node_types?.[preferred_content_type]?.attributes || {})) {
950
+ // // if (["val_from_variable_path", "val"].includes(key)) {
951
+ // // attributes["val_from_variable_path"] = leading_variable_path
952
+ // // } else if (["content_from_variable_path", "content"].includes(key)) {
953
+ // // attributes["content_from_variable_path"] = leading_variable_path
954
+ // // } else {
955
+ // // attributes[key] = value?.default_value ?? null
956
+ // // }
957
+ // // }
958
+ // // }
959
+ // // astc_loc.attributes = attributes
960
+ // return astc_element(preferred_content_type, [], attributes)
961
+ // }
962
+ return null
963
+ }
964
+
965
+ export function json_to_data_type(data, type = null, is_list_child = false) {
966
+ let structure = {
967
+ type: null,
968
+ attributes: {},
969
+ }
970
+ if (type == "number" || (!type && typeof data === "number")) {
971
+ if (data > 1000000000 && data < 2500000000) {
972
+ structure = {
973
+ ...structure,
974
+ type: "epoch_literal",
975
+ attributes: {
976
+ min: null,
977
+ max: null,
978
+ },
979
+ }
980
+ } else {
981
+ structure = {
982
+ ...structure,
983
+ type: "float_literal",
984
+ attributes: {
985
+ min: null,
986
+ max: null,
987
+ },
988
+ }
989
+ }
990
+ } else if (type == "slider") {
991
+ structure = {
992
+ ...structure,
993
+ type: "slider_literal",
994
+ attributes: {
995
+ min: null,
996
+ max: null,
997
+ step: null,
998
+ },
999
+ }
1000
+ } else if (type == "boolean" || (!type && typeof data === "boolean")) {
1001
+ structure = {
1002
+ ...structure,
1003
+ type: "boolean_literal",
1004
+ attributes: {
1005
+ on_val: null,
1006
+ off_val: null,
1007
+ },
1008
+ }
1009
+ } else if (type == "text" || (!type && typeof data === "string")) {
1010
+ structure = {
1011
+ ...structure,
1012
+ type: "text_literal",
1013
+ }
1014
+ } else if (type == "time") {
1015
+ structure = {
1016
+ ...structure,
1017
+ type: "time_literal",
1018
+ }
1019
+ } else if (type == "email") {
1020
+ structure = {
1021
+ ...structure,
1022
+ type: "email_literal",
1023
+ }
1024
+ } else if (type == "phone_literal") {
1025
+ structure = {
1026
+ ...structure,
1027
+ type: "phone_literal",
1028
+ }
1029
+ } else if (type == "cron_literal") {
1030
+ structure = {
1031
+ ...structure,
1032
+ type: "cron_literal",
1033
+ }
1034
+ } else if (type == "dropdown") {
1035
+ structure = {
1036
+ ...structure,
1037
+ type: "dropdown_literal",
1038
+ attributes: {
1039
+ options: [],
1040
+ },
1041
+ }
1042
+ } else if (type == "color_literal") {
1043
+ structure = {
1044
+ ...structure,
1045
+ type: "color_literal",
1046
+ }
1047
+ } else if (type == "image") {
1048
+ structure = {
1049
+ ...structure,
1050
+ type: "image_literal",
1051
+ }
1052
+ } else if (type == "audio") {
1053
+ structure = {
1054
+ ...structure,
1055
+ type: "audio_literal",
1056
+ }
1057
+ } else if (type == "location") {
1058
+ structure = {
1059
+ ...structure,
1060
+ type: "location_literal",
1061
+ }
1062
+ } else if (type == "id") {
1063
+ structure = {
1064
+ ...structure,
1065
+ type: "id_literal",
1066
+ attributes: {
1067
+ type: "lowercase_chars",
1068
+ random_char_length: 20,
1069
+ },
1070
+ }
1071
+ } else if (type == "loop" || (!type && Array.isArray(data))) {
1072
+ let fattened_data_sample = data?.[0] // try and iterate over all the rows in case the first one has some null vals that later rows have good sample of
1073
+ if (Array.isArray(data)) {
1074
+ for (let i = 0; i < data.length; i++) {
1075
+ if (typeof data?.[i] == "object" && !Array.isArray(data?.[i])) {
1076
+ for (let [key, val] of Object.entries(data?.[i])) {
1077
+ if (fattened_data_sample?.[key] == null) {
1078
+ fattened_data_sample[key] = val
1079
+ }
1080
+ }
1081
+ }
1082
+ }
1083
+ }
1084
+ structure = {
1085
+ ...structure,
1086
+ type: "loop",
1087
+ items: json_to_data_type(fattened_data_sample, null, true),
1088
+ attributes: {},
1089
+ }
1090
+ } else if (type == "list" || (!type && Array.isArray(data))) {
1091
+ // tbd loop vs list
1092
+ structure = {
1093
+ ...structure,
1094
+ type: "list_literal",
1095
+ items: json_to_data_type(data?.[0], null, true),
1096
+ attributes: {},
1097
+ }
1098
+ } else if (type == "object" || (!type && typeof data === "object" && !Array.isArray(data) && data !== null)) {
1099
+ // prob match on expected atttributes to give better match like c l h is_dark_theme might bet color_literal not object
1100
+ // let node_type_best_match = null
1101
+ // let node_type_best_match_attr_count = 1
1102
+ // for (let [node_type_key, node_type_val] of Object.entries(node_types || {})) {
1103
+ // if (Object.keys(node_type_val?.attributes || {}).length > 0) {
1104
+ // let keys_that_are_an_attribute_match = 0
1105
+ // for (let property_key of Object.keys(data || {})) {
1106
+ // if (Object.keys(node_type_val?.attributes || {}).includes(property_key)) {
1107
+ // keys_that_are_an_attribute_match++
1108
+ // }
1109
+ // }
1110
+ // if (keys_that_are_an_attribute_match > node_type_best_match_attr_count) {
1111
+ // console.log("good", { keys_that_are_an_attribute_match, node_type_key, node_type_val })
1112
+ // node_type_best_match = node_type_key
1113
+ // node_type_best_match_attr_count = keys_that_are_an_attribute_match
1114
+ // }
1115
+ // }
1116
+ // // console.log("node_type_best_match", node_type_best_match)
1117
+ // }
1118
+
1119
+ // if (node_type_best_match) {
1120
+ // structure = json_to_data_type(data, node_type_best_match)
1121
+ // console.log("str", { node_type_best_match, structure })
1122
+ let keys = Object.keys(data || {})
1123
+ if (keys.includes("l") && keys.includes("c") && keys.includes("h")) {
1124
+ structure = json_to_data_type(data, "color_literal")
1125
+ } else if (keys.includes("epoch") && keys.includes("hour") && keys.includes("year")) {
1126
+ structure = json_to_data_type(data, "time_literal")
1127
+ } else if (keys.includes("cron")) {
1128
+ structure = json_to_data_type(data, "cron_literal")
1129
+ console.log("cronnnnn", structure)
1130
+ } else if (keys.includes("main_number") && keys.includes("country_code")) {
1131
+ structure = json_to_data_type(data, "phone_literal")
1132
+ console.log("phonnnnn", structure)
1133
+ } else {
1134
+ let properties = {}
1135
+ for (let key of Object.keys(data || {})) {
1136
+ const guessed_structure = json_to_data_type(data[key])
1137
+ properties[key] = {
1138
+ ...guessed_structure,
1139
+ attributes: {
1140
+ ...guessed_structure.attributes,
1141
+ ...(is_list_child
1142
+ ? {
1143
+ is_sortable: true,
1144
+ is_searchable: true,
1145
+ column_min_width: 5,
1146
+ column_max_width: 10,
1147
+ display_order: null,
1148
+ is_shown: true,
1149
+ filter_in_min: null,
1150
+ filter_in_max: null,
1151
+ }
1152
+ : {}),
1153
+ },
1154
+ }
1155
+ }
1156
+ structure = {
1157
+ ...structure,
1158
+ type: "object_literal",
1159
+ properties: properties,
1160
+ attributes: {
1161
+ search_val: null,
1162
+ },
1163
+ }
1164
+ }
1165
+ }
1166
+ return structure
1167
+ }