fullstacked 0.12.1-1330 → 0.12.1-1355

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 (277) hide show
  1. package/fullstacked_modules/{ai/index.js → @fullstacked/ai-agent/ai-agent.js} +4868 -8601
  2. package/fullstacked_modules/@fullstacked/ai-agent/index.ts +5 -3
  3. package/fullstacked_modules/@fullstacked/ai-agent/package.json +26 -23
  4. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/anthropic.ts +11 -7
  5. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/deepseek.ts +11 -7
  6. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/google.ts +11 -7
  7. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/index.ts +10 -12
  8. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/interface.ts +10 -6
  9. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/mistral.ts +11 -7
  10. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/ollama.ts +19 -14
  11. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/openai.ts +11 -7
  12. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/xai.ts +11 -7
  13. package/fullstacked_modules/@fullstacked/ui/index.js +664 -0
  14. package/fullstacked_modules/auto_update/index.ts +66 -0
  15. package/fullstacked_modules/bridge/index.ts +2 -57
  16. package/fullstacked_modules/{esbuild/esbuild.ts → build/build.ts} +31 -28
  17. package/fullstacked_modules/build/index.ts +3 -0
  18. package/fullstacked_modules/build/sass.ts +55 -0
  19. package/fullstacked_modules/components/snackbar.css +54 -1
  20. package/fullstacked_modules/components/snackbar.scss +52 -0
  21. package/fullstacked_modules/sass/index.js +6445 -6464
  22. package/fullstacked_modules/zod/index.cjs +33 -0
  23. package/fullstacked_modules/zod/index.js +4 -0
  24. package/fullstacked_modules/zod/v3/ZodError.cjs +138 -0
  25. package/fullstacked_modules/zod/v3/ZodError.js +133 -0
  26. package/fullstacked_modules/zod/v3/errors.cjs +17 -0
  27. package/fullstacked_modules/zod/v3/errors.js +9 -0
  28. package/fullstacked_modules/zod/v3/external.cjs +22 -0
  29. package/fullstacked_modules/zod/v3/external.js +6 -0
  30. package/fullstacked_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  31. package/fullstacked_modules/zod/v3/helpers/enumUtil.js +1 -0
  32. package/fullstacked_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  33. package/fullstacked_modules/zod/v3/helpers/errorUtil.js +6 -0
  34. package/fullstacked_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  35. package/fullstacked_modules/zod/v3/helpers/parseUtil.js +109 -0
  36. package/fullstacked_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  37. package/fullstacked_modules/zod/v3/helpers/partialUtil.js +1 -0
  38. package/fullstacked_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  39. package/fullstacked_modules/zod/v3/helpers/typeAliases.js +1 -0
  40. package/fullstacked_modules/zod/v3/helpers/util.cjs +137 -0
  41. package/fullstacked_modules/zod/v3/helpers/util.js +133 -0
  42. package/fullstacked_modules/zod/v3/index.cjs +33 -0
  43. package/fullstacked_modules/zod/v3/index.js +4 -0
  44. package/fullstacked_modules/zod/v3/locales/en.cjs +111 -0
  45. package/fullstacked_modules/zod/v3/locales/en.js +109 -0
  46. package/fullstacked_modules/zod/v3/standard-schema.cjs +2 -0
  47. package/fullstacked_modules/zod/v3/standard-schema.js +1 -0
  48. package/fullstacked_modules/zod/v3/types.cjs +3775 -0
  49. package/fullstacked_modules/zod/v3/types.js +3693 -0
  50. package/fullstacked_modules/zod/v4/classic/checks.cjs +32 -0
  51. package/fullstacked_modules/zod/v4/classic/checks.js +1 -0
  52. package/fullstacked_modules/zod/v4/classic/coerce.cjs +47 -0
  53. package/fullstacked_modules/zod/v4/classic/coerce.js +17 -0
  54. package/fullstacked_modules/zod/v4/classic/compat.cjs +57 -0
  55. package/fullstacked_modules/zod/v4/classic/compat.js +27 -0
  56. package/fullstacked_modules/zod/v4/classic/errors.cjs +67 -0
  57. package/fullstacked_modules/zod/v4/classic/errors.js +41 -0
  58. package/fullstacked_modules/zod/v4/classic/external.cjs +70 -0
  59. package/fullstacked_modules/zod/v4/classic/external.js +18 -0
  60. package/fullstacked_modules/zod/v4/classic/index.cjs +33 -0
  61. package/fullstacked_modules/zod/v4/classic/index.js +4 -0
  62. package/fullstacked_modules/zod/v4/classic/iso.cjs +60 -0
  63. package/fullstacked_modules/zod/v4/classic/iso.js +30 -0
  64. package/fullstacked_modules/zod/v4/classic/parse.cjs +32 -0
  65. package/fullstacked_modules/zod/v4/classic/parse.js +6 -0
  66. package/fullstacked_modules/zod/v4/classic/schemas.cjs +1109 -0
  67. package/fullstacked_modules/zod/v4/classic/schemas.js +1006 -0
  68. package/fullstacked_modules/zod/v4/core/api.cjs +1039 -0
  69. package/fullstacked_modules/zod/v4/core/api.js +906 -0
  70. package/fullstacked_modules/zod/v4/core/checks.cjs +591 -0
  71. package/fullstacked_modules/zod/v4/core/checks.js +565 -0
  72. package/fullstacked_modules/zod/v4/core/core.cjs +67 -0
  73. package/fullstacked_modules/zod/v4/core/core.js +61 -0
  74. package/fullstacked_modules/zod/v4/core/doc.cjs +39 -0
  75. package/fullstacked_modules/zod/v4/core/doc.js +35 -0
  76. package/fullstacked_modules/zod/v4/core/errors.cjs +226 -0
  77. package/fullstacked_modules/zod/v4/core/errors.js +195 -0
  78. package/fullstacked_modules/zod/v4/core/function.cjs +102 -0
  79. package/fullstacked_modules/zod/v4/core/function.js +75 -0
  80. package/fullstacked_modules/zod/v4/core/index.cjs +44 -0
  81. package/fullstacked_modules/zod/v4/core/index.js +15 -0
  82. package/fullstacked_modules/zod/v4/core/json-schema.cjs +2 -0
  83. package/fullstacked_modules/zod/v4/core/json-schema.js +1 -0
  84. package/fullstacked_modules/zod/v4/core/parse.cjs +87 -0
  85. package/fullstacked_modules/zod/v4/core/parse.js +57 -0
  86. package/fullstacked_modules/zod/v4/core/regexes.cjs +103 -0
  87. package/fullstacked_modules/zod/v4/core/regexes.js +95 -0
  88. package/fullstacked_modules/zod/v4/core/registries.cjs +56 -0
  89. package/fullstacked_modules/zod/v4/core/registries.js +51 -0
  90. package/fullstacked_modules/zod/v4/core/schemas.cjs +1748 -0
  91. package/fullstacked_modules/zod/v4/core/schemas.js +1717 -0
  92. package/fullstacked_modules/zod/v4/core/standard-schema.cjs +2 -0
  93. package/fullstacked_modules/zod/v4/core/standard-schema.js +1 -0
  94. package/fullstacked_modules/zod/v4/core/to-json-schema.cjs +854 -0
  95. package/fullstacked_modules/zod/v4/core/to-json-schema.js +849 -0
  96. package/fullstacked_modules/zod/v4/core/util.cjs +539 -0
  97. package/fullstacked_modules/zod/v4/core/util.js +493 -0
  98. package/fullstacked_modules/zod/v4/core/versions.cjs +8 -0
  99. package/fullstacked_modules/zod/v4/core/versions.js +5 -0
  100. package/fullstacked_modules/zod/v4/index.cjs +22 -0
  101. package/fullstacked_modules/zod/v4/index.js +3 -0
  102. package/fullstacked_modules/zod/v4/locales/ar.cjs +142 -0
  103. package/fullstacked_modules/zod/v4/locales/ar.js +116 -0
  104. package/fullstacked_modules/zod/v4/locales/az.cjs +141 -0
  105. package/fullstacked_modules/zod/v4/locales/az.js +115 -0
  106. package/fullstacked_modules/zod/v4/locales/be.cjs +190 -0
  107. package/fullstacked_modules/zod/v4/locales/be.js +164 -0
  108. package/fullstacked_modules/zod/v4/locales/ca.cjs +144 -0
  109. package/fullstacked_modules/zod/v4/locales/ca.js +118 -0
  110. package/fullstacked_modules/zod/v4/locales/cs.cjs +161 -0
  111. package/fullstacked_modules/zod/v4/locales/cs.js +135 -0
  112. package/fullstacked_modules/zod/v4/locales/de.cjs +142 -0
  113. package/fullstacked_modules/zod/v4/locales/de.js +116 -0
  114. package/fullstacked_modules/zod/v4/locales/en.cjs +145 -0
  115. package/fullstacked_modules/zod/v4/locales/en.js +117 -0
  116. package/fullstacked_modules/zod/v4/locales/eo.cjs +144 -0
  117. package/fullstacked_modules/zod/v4/locales/eo.js +116 -0
  118. package/fullstacked_modules/zod/v4/locales/es.cjs +143 -0
  119. package/fullstacked_modules/zod/v4/locales/es.js +117 -0
  120. package/fullstacked_modules/zod/v4/locales/fa.cjs +148 -0
  121. package/fullstacked_modules/zod/v4/locales/fa.js +122 -0
  122. package/fullstacked_modules/zod/v4/locales/fi.cjs +148 -0
  123. package/fullstacked_modules/zod/v4/locales/fi.js +122 -0
  124. package/fullstacked_modules/zod/v4/locales/fr-CA.cjs +143 -0
  125. package/fullstacked_modules/zod/v4/locales/fr-CA.js +117 -0
  126. package/fullstacked_modules/zod/v4/locales/fr.cjs +142 -0
  127. package/fullstacked_modules/zod/v4/locales/fr.js +116 -0
  128. package/fullstacked_modules/zod/v4/locales/he.cjs +143 -0
  129. package/fullstacked_modules/zod/v4/locales/he.js +117 -0
  130. package/fullstacked_modules/zod/v4/locales/hu.cjs +143 -0
  131. package/fullstacked_modules/zod/v4/locales/hu.js +117 -0
  132. package/fullstacked_modules/zod/v4/locales/id.cjs +142 -0
  133. package/fullstacked_modules/zod/v4/locales/id.js +116 -0
  134. package/fullstacked_modules/zod/v4/locales/index.cjs +84 -0
  135. package/fullstacked_modules/zod/v4/locales/index.js +39 -0
  136. package/fullstacked_modules/zod/v4/locales/it.cjs +143 -0
  137. package/fullstacked_modules/zod/v4/locales/it.js +117 -0
  138. package/fullstacked_modules/zod/v4/locales/ja.cjs +141 -0
  139. package/fullstacked_modules/zod/v4/locales/ja.js +115 -0
  140. package/fullstacked_modules/zod/v4/locales/kh.cjs +143 -0
  141. package/fullstacked_modules/zod/v4/locales/kh.js +117 -0
  142. package/fullstacked_modules/zod/v4/locales/ko.cjs +147 -0
  143. package/fullstacked_modules/zod/v4/locales/ko.js +121 -0
  144. package/fullstacked_modules/zod/v4/locales/mk.cjs +144 -0
  145. package/fullstacked_modules/zod/v4/locales/mk.js +118 -0
  146. package/fullstacked_modules/zod/v4/locales/ms.cjs +142 -0
  147. package/fullstacked_modules/zod/v4/locales/ms.js +116 -0
  148. package/fullstacked_modules/zod/v4/locales/nl.cjs +143 -0
  149. package/fullstacked_modules/zod/v4/locales/nl.js +117 -0
  150. package/fullstacked_modules/zod/v4/locales/no.cjs +142 -0
  151. package/fullstacked_modules/zod/v4/locales/no.js +116 -0
  152. package/fullstacked_modules/zod/v4/locales/ota.cjs +143 -0
  153. package/fullstacked_modules/zod/v4/locales/ota.js +117 -0
  154. package/fullstacked_modules/zod/v4/locales/pl.cjs +143 -0
  155. package/fullstacked_modules/zod/v4/locales/pl.js +117 -0
  156. package/fullstacked_modules/zod/v4/locales/ps.cjs +148 -0
  157. package/fullstacked_modules/zod/v4/locales/ps.js +122 -0
  158. package/fullstacked_modules/zod/v4/locales/pt.cjs +142 -0
  159. package/fullstacked_modules/zod/v4/locales/pt.js +116 -0
  160. package/fullstacked_modules/zod/v4/locales/ru.cjs +190 -0
  161. package/fullstacked_modules/zod/v4/locales/ru.js +164 -0
  162. package/fullstacked_modules/zod/v4/locales/sl.cjs +143 -0
  163. package/fullstacked_modules/zod/v4/locales/sl.js +117 -0
  164. package/fullstacked_modules/zod/v4/locales/sv.cjs +144 -0
  165. package/fullstacked_modules/zod/v4/locales/sv.js +118 -0
  166. package/fullstacked_modules/zod/v4/locales/ta.cjs +143 -0
  167. package/fullstacked_modules/zod/v4/locales/ta.js +117 -0
  168. package/fullstacked_modules/zod/v4/locales/th.cjs +143 -0
  169. package/fullstacked_modules/zod/v4/locales/th.js +117 -0
  170. package/fullstacked_modules/zod/v4/locales/tr.cjs +143 -0
  171. package/fullstacked_modules/zod/v4/locales/tr.js +115 -0
  172. package/fullstacked_modules/zod/v4/locales/ua.cjs +143 -0
  173. package/fullstacked_modules/zod/v4/locales/ua.js +117 -0
  174. package/fullstacked_modules/zod/v4/locales/ur.cjs +143 -0
  175. package/fullstacked_modules/zod/v4/locales/ur.js +117 -0
  176. package/fullstacked_modules/zod/v4/locales/vi.cjs +142 -0
  177. package/fullstacked_modules/zod/v4/locales/vi.js +116 -0
  178. package/fullstacked_modules/zod/v4/locales/zh-CN.cjs +142 -0
  179. package/fullstacked_modules/zod/v4/locales/zh-CN.js +116 -0
  180. package/fullstacked_modules/zod/v4/locales/zh-TW.cjs +143 -0
  181. package/fullstacked_modules/zod/v4/locales/zh-TW.js +117 -0
  182. package/fullstacked_modules/zod/v4/mini/checks.cjs +34 -0
  183. package/fullstacked_modules/zod/v4/mini/checks.js +1 -0
  184. package/fullstacked_modules/zod/v4/mini/coerce.cjs +47 -0
  185. package/fullstacked_modules/zod/v4/mini/coerce.js +17 -0
  186. package/fullstacked_modules/zod/v4/mini/external.cjs +62 -0
  187. package/fullstacked_modules/zod/v4/mini/external.js +13 -0
  188. package/fullstacked_modules/zod/v4/mini/index.cjs +32 -0
  189. package/fullstacked_modules/zod/v4/mini/index.js +3 -0
  190. package/fullstacked_modules/zod/v4/mini/iso.cjs +60 -0
  191. package/fullstacked_modules/zod/v4/mini/iso.js +30 -0
  192. package/fullstacked_modules/zod/v4/mini/parse.cjs +8 -0
  193. package/fullstacked_modules/zod/v4/mini/parse.js +1 -0
  194. package/fullstacked_modules/zod/v4/mini/schemas.cjs +839 -0
  195. package/fullstacked_modules/zod/v4/mini/schemas.js +732 -0
  196. package/fullstacked_modules/zod/v4-mini/index.cjs +17 -0
  197. package/fullstacked_modules/zod/v4-mini/index.js +1 -0
  198. package/index.js +121 -186
  199. package/package.json +4 -4
  200. package/fullstacked_modules/@fullstacked/ui/README.md +0 -3
  201. package/fullstacked_modules/@fullstacked/ui/components/button-group/button-group.scss +0 -28
  202. package/fullstacked_modules/@fullstacked/ui/components/button-group/index.ts +0 -8
  203. package/fullstacked_modules/@fullstacked/ui/components/dialog/dialog.scss +0 -39
  204. package/fullstacked_modules/@fullstacked/ui/components/dialog/index.ts +0 -17
  205. package/fullstacked_modules/@fullstacked/ui/components/list-item/index.ts +0 -37
  206. package/fullstacked_modules/@fullstacked/ui/components/list-item/list-item.scss +0 -19
  207. package/fullstacked_modules/@fullstacked/ui/components/loader/index.ts +0 -14
  208. package/fullstacked_modules/@fullstacked/ui/components/loader/loader.scss +0 -25
  209. package/fullstacked_modules/@fullstacked/ui/components/message/index.ts +0 -26
  210. package/fullstacked_modules/@fullstacked/ui/components/message/message.scss +0 -20
  211. package/fullstacked_modules/@fullstacked/ui/components/popover/index.ts +0 -114
  212. package/fullstacked_modules/@fullstacked/ui/components/popover/popover.scss +0 -44
  213. package/fullstacked_modules/@fullstacked/ui/globals.scss +0 -66
  214. package/fullstacked_modules/@fullstacked/ui/icons/Archive.svg +0 -3
  215. package/fullstacked_modules/@fullstacked/ui/icons/Arrow 2.svg +0 -3
  216. package/fullstacked_modules/@fullstacked/ui/icons/Arrow Corner.svg +0 -3
  217. package/fullstacked_modules/@fullstacked/ui/icons/Arrow.svg +0 -3
  218. package/fullstacked_modules/@fullstacked/ui/icons/Caret.svg +0 -3
  219. package/fullstacked_modules/@fullstacked/ui/icons/Check.svg +0 -3
  220. package/fullstacked_modules/@fullstacked/ui/icons/Clipboard.svg +0 -12
  221. package/fullstacked_modules/@fullstacked/ui/icons/Clock.svg +0 -12
  222. package/fullstacked_modules/@fullstacked/ui/icons/Close.svg +0 -10
  223. package/fullstacked_modules/@fullstacked/ui/icons/Copy.svg +0 -3
  224. package/fullstacked_modules/@fullstacked/ui/icons/Directory Add.svg +0 -3
  225. package/fullstacked_modules/@fullstacked/ui/icons/Edit.svg +0 -3
  226. package/fullstacked_modules/@fullstacked/ui/icons/Export.svg +0 -3
  227. package/fullstacked_modules/@fullstacked/ui/icons/External Link.svg +0 -3
  228. package/fullstacked_modules/@fullstacked/ui/icons/File Add.svg +0 -3
  229. package/fullstacked_modules/@fullstacked/ui/icons/File.svg +0 -3
  230. package/fullstacked_modules/@fullstacked/ui/icons/Git Branch.svg +0 -3
  231. package/fullstacked_modules/@fullstacked/ui/icons/Git.svg +0 -3
  232. package/fullstacked_modules/@fullstacked/ui/icons/Glitter.svg +0 -3
  233. package/fullstacked_modules/@fullstacked/ui/icons/Info.svg +0 -3
  234. package/fullstacked_modules/@fullstacked/ui/icons/Link.svg +0 -10
  235. package/fullstacked_modules/@fullstacked/ui/icons/Loader.svg +0 -4
  236. package/fullstacked_modules/@fullstacked/ui/icons/Lock.svg +0 -3
  237. package/fullstacked_modules/@fullstacked/ui/icons/Options.svg +0 -3
  238. package/fullstacked_modules/@fullstacked/ui/icons/Package.svg +0 -3
  239. package/fullstacked_modules/@fullstacked/ui/icons/Peers.svg +0 -3
  240. package/fullstacked_modules/@fullstacked/ui/icons/Play.svg +0 -3
  241. package/fullstacked_modules/@fullstacked/ui/icons/Plus.svg +0 -3
  242. package/fullstacked_modules/@fullstacked/ui/icons/Revert.svg +0 -3
  243. package/fullstacked_modules/@fullstacked/ui/icons/Settings.svg +0 -3
  244. package/fullstacked_modules/@fullstacked/ui/icons/Side Panel.svg +0 -3
  245. package/fullstacked_modules/@fullstacked/ui/icons/Terminal.svg +0 -3
  246. package/fullstacked_modules/@fullstacked/ui/icons/Trash.svg +0 -3
  247. package/fullstacked_modules/@fullstacked/ui/icons/TypeScript.svg +0 -3
  248. package/fullstacked_modules/@fullstacked/ui/icons/Upload.svg +0 -3
  249. package/fullstacked_modules/@fullstacked/ui/icons/User.svg +0 -3
  250. package/fullstacked_modules/@fullstacked/ui/icons/Warning.svg +0 -3
  251. package/fullstacked_modules/@fullstacked/ui/inputs/checkbox/index.ts +0 -28
  252. package/fullstacked_modules/@fullstacked/ui/inputs/file/index.ts +0 -48
  253. package/fullstacked_modules/@fullstacked/ui/inputs/inputs.scss +0 -224
  254. package/fullstacked_modules/@fullstacked/ui/inputs/observer.ts +0 -36
  255. package/fullstacked_modules/@fullstacked/ui/inputs/predictive/index.ts +0 -195
  256. package/fullstacked_modules/@fullstacked/ui/inputs/radio/index.ts +0 -28
  257. package/fullstacked_modules/@fullstacked/ui/inputs/select/index.ts +0 -125
  258. package/fullstacked_modules/@fullstacked/ui/inputs/switch/index.ts +0 -37
  259. package/fullstacked_modules/@fullstacked/ui/inputs/text/index.ts +0 -53
  260. package/fullstacked_modules/@fullstacked/ui/package.json +0 -8
  261. package/fullstacked_modules/@fullstacked/ui/primitives/badge/badge.scss +0 -35
  262. package/fullstacked_modules/@fullstacked/ui/primitives/badge/index.ts +0 -23
  263. package/fullstacked_modules/@fullstacked/ui/primitives/button/button.scss +0 -97
  264. package/fullstacked_modules/@fullstacked/ui/primitives/button/index.ts +0 -41
  265. package/fullstacked_modules/@fullstacked/ui/primitives/icon/icon.scss +0 -13
  266. package/fullstacked_modules/@fullstacked/ui/primitives/icon/index.ts +0 -30
  267. package/fullstacked_modules/@fullstacked/ui/ui.scss +0 -15
  268. package/fullstacked_modules/@fullstacked/ui/ui.ts +0 -18
  269. package/fullstacked_modules/@fullstacked/ui/values/breakpoints.scss +0 -7
  270. package/fullstacked_modules/@fullstacked/ui/values/colors.scss +0 -26
  271. package/fullstacked_modules/@fullstacked/ui/values/spacing.scss +0 -10
  272. package/fullstacked_modules/@fullstacked/ui/values/typography.scss +0 -23
  273. package/fullstacked_modules/esbuild/index.d.ts +0 -0
  274. package/fullstacked_modules/esbuild/index.ts +0 -3
  275. package/fullstacked_modules/esbuild/sass.ts +0 -100
  276. package/fullstacked_modules/sass/index.d.ts +0 -0
  277. /package/fullstacked_modules/{@fullstacked → build}/index.d.ts +0 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../v4/mini/index.cjs"), exports);
@@ -0,0 +1 @@
1
+ export * from "../v4/mini/index.js";
package/index.js CHANGED
@@ -7,19 +7,30 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/index.ts
10
- import path4 from "node:path";
10
+ import path5 from "node:path";
11
11
  import os3 from "node:os";
12
12
  import url from "node:url";
13
13
 
14
14
  // src/call.ts
15
15
  import os from "node:os";
16
16
  import path from "node:path";
17
+ import fs from "node:fs";
17
18
  var core;
19
+ var CoreCallbackListeners = /* @__PURE__ */ new Set();
20
+ function callback(projectId, messageType, message) {
21
+ CoreCallbackListeners.forEach((cb2) => cb2(projectId, messageType, message));
22
+ }
18
23
  function load(libPath, bindingDir) {
19
24
  const bindingFileName = `${os.platform()}-${os.arch()}.node`;
20
- const p = bindingDir ? path.resolve(bindingDir, bindingFileName) : `./${bindingFileName}`;
25
+ const p = path.resolve(bindingDir, bindingFileName);
26
+ if (!fs.existsSync(p)) {
27
+ throw `Cannot find core library binding file at ${p}`;
28
+ }
21
29
  core = __require(p);
22
30
  core.load(libPath);
31
+ core.callback((id) => {
32
+ core.callbackValue(id, callback);
33
+ });
23
34
  }
24
35
  function setDirectories(directories) {
25
36
  core.directories(
@@ -29,11 +40,6 @@ function setDirectories(directories) {
29
40
  directories.tmp
30
41
  );
31
42
  }
32
- function setCallback(cb2) {
33
- core.callback((id) => {
34
- core.callbackValue(id, cb2);
35
- });
36
- }
37
43
  function callLib(payload) {
38
44
  return core.call(payload);
39
45
  }
@@ -356,193 +362,127 @@ function createPayloadHeader(opts) {
356
362
  ]);
357
363
  }
358
364
 
359
- // src/build.ts
360
- import { promises } from "node:fs";
361
-
362
- // ../../fullstacked_modules/base64.ts
363
- var lookup = [];
364
- var revLookup = [];
365
- var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
366
- for (let i = 0, len = code.length; i < len; ++i) {
367
- lookup[i] = code[i];
368
- revLookup[code.charCodeAt(i)] = i;
369
- }
370
- revLookup["-".charCodeAt(0)] = 62;
371
- revLookup["_".charCodeAt(0)] = 63;
372
- function getLens(b64) {
373
- var len = b64.length;
374
- var validLen = b64.indexOf("=");
375
- if (validLen === -1) validLen = len;
376
- var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;
377
- return [validLen, placeHoldersLen];
378
- }
379
- function _byteLength(b64, validLen, placeHoldersLen) {
380
- return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
381
- }
382
- function toByteArray(b64) {
383
- let tmp;
384
- const lens = getLens(b64);
385
- const validLen = lens[0];
386
- const placeHoldersLen = lens[1];
387
- const arr = new Uint8Array(_byteLength(b64, validLen, placeHoldersLen));
388
- let curByte = 0;
389
- const len = placeHoldersLen > 0 ? validLen - 4 : validLen;
390
- let i;
391
- for (i = 0; i < len; i += 4) {
392
- tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
393
- arr[curByte++] = tmp >> 16 & 255;
394
- arr[curByte++] = tmp >> 8 & 255;
395
- arr[curByte++] = tmp & 255;
396
- }
397
- if (placeHoldersLen === 2) {
398
- tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
399
- arr[curByte++] = tmp & 255;
400
- }
401
- if (placeHoldersLen === 1) {
402
- tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
403
- arr[curByte++] = tmp >> 8 & 255;
404
- arr[curByte++] = tmp & 255;
405
- }
406
- return arr;
407
- }
408
-
409
- // ../../fullstacked_modules/esbuild/sass.ts
365
+ // ../../fullstacked_modules/build/sass.ts
410
366
  import * as sass from "sass";
411
- async function buildSASS(fs3, project) {
412
- const baseDirectory = project?.id || ".";
413
- const writeOutputCSS = async (css) => {
414
- const buildDirectory = baseDirectory ? `${baseDirectory}/.build` : ".build";
415
- await fs3.mkdir(buildDirectory);
416
- await fs3.writeFile(buildDirectory + "/index.css", css);
417
- };
418
- const contents = await fs3.readdir(baseDirectory);
419
- const entryPointSASS = contents.find(
420
- (item) => item === "index.sass" || item === "index.scss"
421
- );
422
- if (!entryPointSASS) {
423
- const entryPointCSS = contents.find((item) => item === "index.css");
424
- if (entryPointCSS) {
425
- const filePath2 = baseDirectory ? `${baseDirectory}/${entryPointCSS}` : entryPointCSS;
426
- await writeOutputCSS(
427
- await fs3.readFile(filePath2, {
428
- encoding: "utf8"
429
- })
430
- );
431
- } else {
432
- await writeOutputCSS("");
433
- }
434
- return;
435
- }
436
- const filePath = baseDirectory ? `${baseDirectory}/${entryPointSASS}` : entryPointSASS;
437
- const entryData = await fs3.readFile(filePath, {
438
- encoding: "utf8"
439
- });
440
- let result;
367
+ async function buildSASS(entryPoint, opts) {
441
368
  try {
442
- result = await sass.compileStringAsync(entryData, {
369
+ const { css } = await sass.compileStringAsync(await opts.load(await opts.canonicalize(entryPoint)), {
370
+ syntax: entryPoint.endsWith(".sass") ? "indented" : entryPoint.endsWith(".scss") ? "scss" : "css",
443
371
  importer: {
444
- load: async (url2) => {
445
- const filePath2 = `${baseDirectory}${url2.pathname}`;
446
- const contents2 = await fs3.readFile(filePath2, {
447
- encoding: "utf8"
448
- });
449
- return {
450
- syntax: filePath2.endsWith(".sass") ? "indented" : filePath2.endsWith(".scss") ? "scss" : "css",
451
- contents: contents2
452
- };
453
- },
454
- canonicalize: (path5) => new URL(path5, "http://localhost")
372
+ load: async (url2) => ({
373
+ syntax: url2.pathname.endsWith(".sass") ? "indented" : url2.pathname.endsWith(".scss") ? "scss" : "css",
374
+ contents: await opts.load(url2)
375
+ }),
376
+ canonicalize: opts.canonicalize
455
377
  }
456
378
  });
379
+ return {
380
+ css,
381
+ errors: []
382
+ };
457
383
  } catch (e) {
458
- const error = e;
459
- const file = baseDirectory + (error.span.url?.pathname || "/" + entryPointSASS);
460
- const line = error.span.start.line + 1;
461
- const column = error.span.start.column;
462
- const length = error.span.text.length;
384
+ console.log(e);
385
+ const File = e.span.url?.pathname;
386
+ const Line = e.span.start.line + 1;
387
+ const Column = e.span.start.column;
388
+ const Length = e.span.text.length;
463
389
  return {
464
- text: error.message,
465
- location: {
466
- file,
467
- line,
468
- column,
469
- length,
470
- namespace: "SASS",
471
- lineText: error.message,
472
- suggestion: ""
473
- }
390
+ css: "",
391
+ errors: [
392
+ {
393
+ Location: {
394
+ File,
395
+ Line,
396
+ Column,
397
+ Length,
398
+ Namespace: "SASS"
399
+ },
400
+ Text: e.message
401
+ }
402
+ ]
474
403
  };
475
404
  }
476
- await writeOutputCSS(result.css);
477
- return null;
478
405
  }
479
406
 
480
407
  // src/build.ts
481
- function quickInstallPacakge(editorHeader) {
408
+ import fs2 from "node:fs";
409
+ import path2 from "node:path";
410
+ function quickInstallPackage(editorHeader, directory) {
482
411
  return new Promise((resolve) => {
483
412
  const cb2 = (_, messageType, message) => {
484
413
  if (messageType === "packages-installation") {
485
414
  const { duration } = JSON.parse(message);
486
415
  if (typeof duration !== "undefined") {
487
- cbListener.delete(cb2);
416
+ CoreCallbackListeners.delete(cb2);
488
417
  resolve();
489
418
  }
490
419
  }
491
420
  };
492
- cbListener.add(cb2);
421
+ CoreCallbackListeners.add(cb2);
493
422
  callLib(
494
- new Uint8Array([...editorHeader, 61, ...serializeArgs([".", 0])])
423
+ new Uint8Array([
424
+ ...editorHeader,
425
+ 61,
426
+ ...serializeArgs([directory, 0])
427
+ ])
495
428
  );
496
429
  });
497
430
  }
498
- async function buildLocalProject() {
431
+ async function buildLocalProject(directory) {
499
432
  const editorHeader = createPayloadHeader({
500
433
  id: "",
501
434
  isEditor: true
502
435
  });
503
- await quickInstallPacakge(editorHeader);
504
- return new Promise(async (resolve) => {
505
- const cb2 = (_, messageType, message) => {
506
- if (messageType === "build") {
507
- cbListener.delete(cb2);
508
- const data = toByteArray(message);
509
- const [_2, errorsStr] = deserializeArgs(data);
510
- let buildErrors;
511
- try {
512
- buildErrors = JSON.parse(errorsStr);
513
- if (buildErrors === null) {
514
- resolve();
515
- return;
516
- }
517
- } catch (e) {
436
+ await quickInstallPackage(editorHeader, directory);
437
+ return new Promise(async (resolve, reject) => {
438
+ const cb2 = async (_, messageType, message) => {
439
+ if (messageType === "build-style") {
440
+ const { id, entryPoint, projectId } = JSON.parse(message);
441
+ const result = await buildSASS(entryPoint, {
442
+ canonicalize: (filePath) => filePath.startsWith("file://") ? new URL(filePath) : new URL(
443
+ "file://" + path2.resolve(
444
+ process.cwd(),
445
+ projectId,
446
+ filePath
447
+ ).replace(/\\/g, "/")
448
+ ),
449
+ load: (url2) => fs2.readFileSync(url2, { encoding: "utf8" })
450
+ });
451
+ callLib(
452
+ new Uint8Array([
453
+ ...editorHeader,
454
+ 58,
455
+ ...serializeArgs([id, JSON.stringify(result)])
456
+ ])
457
+ );
458
+ } else if (messageType === "build") {
459
+ const { errors } = JSON.parse(message);
460
+ if (errors.length) {
461
+ errors.forEach((e) => {
462
+ console.log(`${e.Location.File}#${e.Location.Line}`);
463
+ console.log(e.Text + "\n");
464
+ });
465
+ reject();
466
+ } else {
467
+ resolve();
518
468
  }
519
- console.log(buildErrors || errorsStr);
520
- process.exit(1);
521
469
  }
522
470
  };
523
- cbListener.add(cb2);
524
- await buildSASS({
525
- mkdir: async (p) => {
526
- await promises.mkdir(p, { recursive: true });
527
- return true;
528
- },
529
- readdir: promises.readdir,
530
- writeFile: async (p, d) => {
531
- await promises.writeFile(p, d);
532
- return true;
533
- },
534
- readFile: promises.readFile
535
- });
471
+ CoreCallbackListeners.add(cb2);
536
472
  callLib(
537
- new Uint8Array([...editorHeader, 56, ...serializeArgs([".", 0])])
473
+ new Uint8Array([
474
+ ...editorHeader,
475
+ 56,
476
+ ...serializeArgs([directory, 0])
477
+ ])
538
478
  );
539
479
  });
540
480
  }
541
481
 
542
482
  // src/lib.ts
543
- import path2 from "node:path";
483
+ import path3 from "node:path";
544
484
  import os2 from "node:os";
545
- import fs from "node:fs";
485
+ import fs3 from "node:fs";
546
486
  import zlib from "node:zlib";
547
487
  import cliProgress from "cli-progress";
548
488
  import prettyBytes from "pretty-bytes";
@@ -551,13 +491,13 @@ var platform2 = os2.platform();
551
491
  var arch = os2.arch();
552
492
  var libBinary = platform2 + "-" + arch + "." + (platform2 === "win32" ? "dll" : "so");
553
493
  async function getLibPath(directory) {
554
- const libPath = path2.resolve(directory, libBinary);
555
- if (fs.existsSync(libPath)) {
494
+ const libPath = path3.resolve(directory, libBinary);
495
+ if (fs3.existsSync(libPath)) {
556
496
  return libPath;
557
497
  }
558
- const packageJsonFilePath = path2.resolve(directory, "package.json");
498
+ const packageJsonFilePath = path3.resolve(directory, "package.json");
559
499
  const packageJson = JSON.parse(
560
- fs.readFileSync(packageJsonFilePath, { encoding: "utf8" })
500
+ fs3.readFileSync(packageJsonFilePath, { encoding: "utf8" })
561
501
  );
562
502
  const [version] = packageJson.version.split("-");
563
503
  const fileName = `${platform2}-${arch}-${packageJson.version}.tgz`;
@@ -581,8 +521,8 @@ async function getLibPath(directory) {
581
521
  downloadProgress.start(size, 0);
582
522
  let downloaded = 0;
583
523
  const reader = response.body.getReader();
584
- const outPath = path2.resolve(directory, fileName);
585
- const writeStream = fs.createWriteStream(outPath, "binary");
524
+ const outPath = path3.resolve(directory, fileName);
525
+ const writeStream = fs3.createWriteStream(outPath, "binary");
586
526
  while (true) {
587
527
  const { value, done } = await reader.read();
588
528
  if (done) break;
@@ -594,26 +534,23 @@ async function getLibPath(directory) {
594
534
  await new Promise((res) => writeStream.close(res));
595
535
  const extract = tar.extract();
596
536
  extract.on("entry", (header, stream, next) => {
597
- const filePath = path2.resolve(directory, header.name);
598
- const writeStream2 = fs.createWriteStream(filePath);
537
+ const filePath = path3.resolve(directory, header.name);
538
+ const writeStream2 = fs3.createWriteStream(filePath);
599
539
  stream.pipe(writeStream2);
600
540
  writeStream2.on("close", next);
601
541
  });
602
- const readStream = fs.createReadStream(outPath);
542
+ const readStream = fs3.createReadStream(outPath);
603
543
  const gunzip = zlib.createGunzip();
604
544
  await new Promise((res) => {
605
545
  readStream.pipe(gunzip).pipe(extract).on("close", res);
606
546
  });
607
- fs.rmSync(outPath);
547
+ fs3.rmSync(outPath);
608
548
  return libPath;
609
549
  }
610
550
 
611
- // src/index.ts
612
- import { createRequire } from "node:module";
613
-
614
551
  // src/dev-files.ts
615
- import path3 from "node:path";
616
- import fs2 from "node:fs";
552
+ import path4 from "node:path";
553
+ import fs4 from "node:fs";
617
554
 
618
555
  // ../../editor/views/project/workspace/tsconfig.ts
619
556
  var compilerOptions = {
@@ -646,19 +583,20 @@ data
646
583
  tsconfig.json
647
584
  .fullstacked_modules`;
648
585
  function setupDevFiles() {
649
- const tsConfigFile = path3.resolve(process.cwd(), "tsconfig.json");
650
- if (!fs2.existsSync(tsConfigFile)) {
651
- fs2.writeFileSync(tsConfigFile, JSON.stringify(tsConfig, null, 4));
586
+ const tsConfigFile = path4.resolve(process.cwd(), "tsconfig.json");
587
+ if (!fs4.existsSync(tsConfigFile)) {
588
+ fs4.writeFileSync(tsConfigFile, JSON.stringify(tsConfig, null, 4));
652
589
  }
653
- const gitignoreFile = path3.resolve(process.cwd(), ".gitignore");
654
- if (!fs2.existsSync(gitignoreFile)) {
655
- fs2.writeFileSync(gitignoreFile, defaultGitignore);
590
+ const gitignoreFile = path4.resolve(process.cwd(), ".gitignore");
591
+ if (!fs4.existsSync(gitignoreFile)) {
592
+ fs4.writeFileSync(gitignoreFile, defaultGitignore);
656
593
  }
657
594
  }
658
595
 
659
596
  // src/index.ts
597
+ import { createRequire } from "node:module";
660
598
  globalThis.require = createRequire(import.meta.url);
661
- var currentDirectory = path4.dirname(url.fileURLToPath(import.meta.url));
599
+ var currentDirectory = path5.dirname(url.fileURLToPath(import.meta.url));
662
600
  var libDirectory = currentDirectory;
663
601
  var libArgIndex = process.argv.indexOf("--lib");
664
602
  if (libArgIndex !== -1) {
@@ -666,7 +604,7 @@ if (libArgIndex !== -1) {
666
604
  } else if (typeof process.env.FULLSTACKED_LIB === "string") {
667
605
  libDirectory = process.env.FULLSTACKED_LIB;
668
606
  }
669
- load(await getLibPath(libDirectory));
607
+ load(await getLibPath(libDirectory), currentDirectory);
670
608
  var deeplink = null;
671
609
  var deeplinkMessaged = false;
672
610
  if (process.argv.at(-1).startsWith("http")) {
@@ -687,15 +625,13 @@ function parseArgsForPath(arg, fallback = process.cwd()) {
687
625
  return fallback;
688
626
  }
689
627
  if (definedPath.startsWith("~/")) {
690
- return path4.resolve(os3.homedir(), definedPath.slice(2));
628
+ return path5.resolve(os3.homedir(), definedPath.slice(2));
691
629
  } else if (definedPath.startsWith("/")) {
692
630
  return definedPath;
693
631
  }
694
- return path4.resolve(process.cwd(), definedPath);
632
+ return path5.resolve(process.cwd(), definedPath);
695
633
  }
696
- var cbListener = /* @__PURE__ */ new Set();
697
634
  var cb = (projectId, messageType, message) => {
698
- cbListener.forEach((c) => c(projectId, messageType, message));
699
635
  if (projectId === "*") {
700
636
  for (const w of webViews.values()) {
701
637
  w.message(messageType, message);
@@ -708,13 +644,13 @@ var cb = (projectId, messageType, message) => {
708
644
  const webview = webViews.get(projectId);
709
645
  webview?.message(messageType, message);
710
646
  };
711
- setCallback(cb);
647
+ CoreCallbackListeners.add(cb);
712
648
  var root = parseArgsForPath("root", process.cwd());
713
649
  setDirectories({
714
650
  root,
715
651
  config: parseArgsForPath("config", currentDirectory),
716
652
  editor: parseArgsForPath("editor", currentDirectory),
717
- tmp: process.argv.includes("--root") || typeof process.env["FULLSTACKED_ROOT"] === "string" ? path4.resolve(root, ".tmp") : path4.resolve(currentDirectory, ".tmp")
653
+ tmp: process.argv.includes("--root") || typeof process.env["FULLSTACKED_ROOT"] === "string" ? path5.resolve(root, ".tmp") : path5.resolve(currentDirectory, ".tmp")
718
654
  });
719
655
  var platform = new TextEncoder().encode("node");
720
656
  var webViews = /* @__PURE__ */ new Map();
@@ -729,7 +665,7 @@ async function openProject(id) {
729
665
  }
730
666
  var mainInstanceId = process.argv.includes("--editor") || typeof process.env.FULLSTACKED_EDITOR === "string" ? process.argv.includes("--kiosk") ? process.argv.at(process.argv.indexOf("--kiosk") + 1) : "" : ".";
731
667
  if (mainInstanceId === ".") {
732
- await buildLocalProject();
668
+ await buildLocalProject(mainInstanceId);
733
669
  setupDevFiles();
734
670
  }
735
671
  var mainInstance = createInstance(mainInstanceId, mainInstanceId === "");
@@ -743,7 +679,6 @@ webViews.set(mainInstanceId, mainInstanceWebView);
743
679
  (signal) => process.on(signal, () => process.exit())
744
680
  );
745
681
  export {
746
- cbListener,
747
682
  getEnvVar,
748
683
  platform
749
684
  };
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "fullstacked",
3
- "version": "0.12.1-1330",
3
+ "version": "0.12.1-1355",
4
4
  "scripts": {
5
5
  "build": "node build.js",
6
- "start": "npm run build && node index.js --lib ../../core/bin --root ~/FullStacked --config ~/.config/fullstacked --editor ../../out/editor",
7
- "prepack": "npm run build"
6
+ "postbuild": "node build.js --binding",
7
+ "start": "npm run build && node index.js --lib ../../core/bin --root ~/FullStacked --config ~/.config/fullstacked --editor ../../out/build",
8
+ "prepack": "node build.js"
8
9
  },
9
10
  "bin": {
10
11
  "fullstacked": "index.js"
@@ -12,7 +13,6 @@
12
13
  "type": "module",
13
14
  "dependencies": {
14
15
  "cli-progress": "^3.12.0",
15
- "fast-querystring": "^1.1.2",
16
16
  "open": "^10.2.0",
17
17
  "pretty-bytes": "^7.1.0",
18
18
  "sass": "^1.93.2",
@@ -1,3 +0,0 @@
1
- # ui
2
-
3
- [![Open in FullStacked](https://share.fullstacked.org/open-in-fullstacked.svg)](https://share.fullstacked.org?git=https://github.com/fullstackedorg/ui.git)
@@ -1,28 +0,0 @@
1
- @use "../../values/colors.scss";
2
- @use "../../values/spacing.scss";
3
-
4
- .button-group {
5
- display: inline-flex;
6
- flex-direction: column;
7
- background-color: colors.$dark;
8
- border-radius: spacing.$x-small;
9
- overflow: hidden;
10
-
11
- button {
12
- background-color: transparent;
13
- border-radius: 0;
14
- justify-content: flex-start;
15
-
16
- &:not(:last-child) {
17
- border-bottom: 1px solid colors.$gray;
18
- }
19
-
20
- &.red {
21
- color: colors.$red;
22
- }
23
-
24
- &:active {
25
- background-color: colors.$gray-dark;
26
- }
27
- }
28
- }
@@ -1,8 +0,0 @@
1
- import { Button } from "../../primitives/button";
2
-
3
- export function ButtonGroup(buttons: ReturnType<typeof Button>[]) {
4
- const container = document.createElement("div");
5
- container.classList.add("button-group");
6
- container.append(...buttons);
7
- return container;
8
- }
@@ -1,39 +0,0 @@
1
- @use "../../values/colors.scss";
2
- @use "../../values/spacing.scss";
3
-
4
- .dialog-overlay {
5
- position: fixed;
6
- top: 0;
7
- left: 0;
8
- background-color: colors.$overlay;
9
- height: 100%;
10
- width: 100%;
11
- display: flex;
12
- justify-content: center;
13
- align-items: flex-start;
14
- padding: spacing.$large spacing.$medium;
15
- overflow: auto;
16
- z-index: 10;
17
-
18
- .dialog {
19
- background-color: colors.$blue-dark;
20
- width: 100%;
21
- max-width: spacing.$max-width;
22
- padding: spacing.$medium;
23
- border-radius: spacing.$medium;
24
-
25
- .confirm {
26
- p {
27
- text-align: center;
28
- padding-bottom: spacing.$medium;
29
- }
30
-
31
- > div:last-child {
32
- display: flex;
33
- justify-content: space-between;
34
- align-items: center;
35
- }
36
- }
37
- }
38
- }
39
-
@@ -1,17 +0,0 @@
1
- export function Dialog(content: HTMLElement) {
2
- const container = document.createElement("div");
3
- container.classList.add("dialog");
4
-
5
- const overlay = document.createElement("div");
6
- overlay.classList.add("dialog-overlay");
7
-
8
- container.append(content);
9
-
10
- overlay.append(container);
11
-
12
- document.body.append(overlay);
13
-
14
- return {
15
- remove: () => overlay.remove(),
16
- };
17
- }
@@ -1,37 +0,0 @@
1
- type ListItemOpts = {
2
- content: HTMLElement | string;
3
- withProgress: boolean;
4
- };
5
-
6
- export function ListItem(
7
- opts: Partial<ListItemOpts> & { withProgress: true },
8
- ): {
9
- container: HTMLDivElement;
10
- setProgress: (progress: number) => void; // 0 - 1
11
- };
12
- export function ListItem(opts: Partial<ListItemOpts>): HTMLDivElement;
13
- export function ListItem(opts: Partial<ListItemOpts>) {
14
- const container = document.createElement("div");
15
- container.classList.add("list-item");
16
-
17
- const inner = document.createElement("div");
18
- inner.classList.add("inner");
19
- container.append(inner);
20
-
21
- if (opts?.content) {
22
- inner.append(opts.content);
23
- }
24
-
25
- if (opts?.withProgress) {
26
- const progressBar = document.createElement("div");
27
- progressBar.classList.add("progress");
28
- container.append(progressBar);
29
-
30
- const setProgress = (p: number) => {
31
- progressBar.style.width = p * 100 + "%";
32
- };
33
- return { container, setProgress };
34
- }
35
-
36
- return container;
37
- }
@@ -1,19 +0,0 @@
1
- @use "../../values/colors.scss";
2
- @use "../../values/spacing.scss";
3
-
4
- .list-item {
5
- background-color: colors.$gray-dark;
6
- border: 1px solid colors.$gray;
7
- border-radius: spacing.$x-small;
8
- overflow: hidden;
9
-
10
- > .inner {
11
- padding: spacing.$small;
12
- }
13
- > .progress {
14
- height: spacing.$x-small;
15
- background-color: colors.$blue;
16
- width: 0;
17
- margin-top: 0 - spacing.$x-small;
18
- }
19
- }