ziko 0.0.14 → 0.0.16

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 (291) hide show
  1. package/dist/ziko.cjs +13435 -11825
  2. package/dist/ziko.js +13958 -12406
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +13401 -11859
  5. package/package.json +2 -1
  6. package/src/__helpers__/index.js +61 -41
  7. package/src/app/index.js +21 -12
  8. package/src/app/json-style-sheet.js +64 -0
  9. package/src/app/params.js +40 -0
  10. package/src/app/routes.js +58 -0
  11. package/src/app/spa-file-based-routing.js +74 -0
  12. package/src/app/spa.js +55 -0
  13. package/src/app/ziko-app.js +39 -0
  14. package/src/data/api/fetchdom.js +13 -13
  15. package/src/data/api/index.js +3 -3
  16. package/src/data/api/preload.js +10 -10
  17. package/src/data/converter/adoc.js +130 -130
  18. package/src/data/converter/array.js +42 -42
  19. package/src/data/converter/canvas.js +24 -24
  20. package/src/data/converter/css.js +37 -0
  21. package/src/data/converter/csv.js +32 -32
  22. package/src/data/converter/idea.txt +9 -9
  23. package/src/data/converter/index.js +37 -34
  24. package/src/data/converter/json.js +80 -80
  25. package/src/data/converter/markdown.js +95 -95
  26. package/src/data/converter/object.js +69 -69
  27. package/src/data/converter/svg.js +10 -10
  28. package/src/data/index.js +16 -73
  29. package/src/data/parser/index.js +1 -0
  30. package/src/data/parser/xml.js +46 -46
  31. package/src/data/string/patterns.js +11 -11
  32. package/src/data/string/string.js +169 -169
  33. package/src/{app/app.js → global/app/index.js} +45 -45
  34. package/src/{app → global}/component/index.js +38 -38
  35. package/src/global/globals/index.js +20 -0
  36. package/src/global/index.js +12 -0
  37. package/src/{app → global}/params/index.js +39 -39
  38. package/src/{app → global}/router/index.js +66 -66
  39. package/src/{app → global}/seo/index.js +42 -42
  40. package/src/global/style/index.js +1 -0
  41. package/src/{app → global}/themes/dark.js +884 -884
  42. package/src/{app → global}/themes/index.js +10 -10
  43. package/src/{app → global}/themes/light.js +254 -254
  44. package/src/graphics/canvas/canvas.js +188 -188
  45. package/src/graphics/canvas/elements/Basic/arc.js +42 -42
  46. package/src/graphics/canvas/elements/Basic/line.js +25 -25
  47. package/src/graphics/canvas/elements/Basic/points.js +47 -47
  48. package/src/graphics/canvas/elements/Basic/polygon.js +6 -6
  49. package/src/graphics/canvas/elements/Basic/rect.js +45 -45
  50. package/src/graphics/canvas/elements/Chart/scatter.js +2 -2
  51. package/src/graphics/canvas/elements/Element.js +114 -114
  52. package/src/graphics/canvas/elements/index.js +12 -12
  53. package/src/graphics/canvas/index.js +14 -14
  54. package/src/graphics/canvas/utils/color.js +7 -7
  55. package/src/graphics/canvas/utils/floodFill.js +57 -57
  56. package/src/graphics/index.js +68 -68
  57. package/src/graphics/svg/Elements/Basic/circle.js +25 -25
  58. package/src/graphics/svg/Elements/Basic/ellipse.js +20 -20
  59. package/src/graphics/svg/Elements/Basic/foreignObject.js +32 -32
  60. package/src/graphics/svg/Elements/Basic/groupe.js +29 -29
  61. package/src/graphics/svg/Elements/Basic/image.js +32 -32
  62. package/src/graphics/svg/Elements/Basic/line.js +28 -28
  63. package/src/graphics/svg/Elements/Basic/link.js +30 -30
  64. package/src/graphics/svg/Elements/Basic/path.js +58 -58
  65. package/src/graphics/svg/Elements/Basic/polygon.js +31 -31
  66. package/src/graphics/svg/Elements/Basic/polyline.js +3 -3
  67. package/src/graphics/svg/Elements/Basic/rect.js +42 -42
  68. package/src/graphics/svg/Elements/Basic/text.js +25 -25
  69. package/src/graphics/svg/Elements/Derived/grid.js +8 -8
  70. package/src/graphics/svg/Elements/ZikoSvgElement.js +46 -46
  71. package/src/graphics/svg/Elements/index.js +14 -14
  72. package/src/graphics/svg/index.js +1 -1
  73. package/src/graphics/svg/svg.js +114 -114
  74. package/src/index.js +84 -88
  75. package/src/math/calculus/derivation/index.js +7 -0
  76. package/src/math/calculus/index.js +2 -1
  77. package/src/math/calculus/special-functions/bessel.js +30 -30
  78. package/src/math/calculus/special-functions/beta.js +37 -37
  79. package/src/math/calculus/special-functions/gamma.js +29 -29
  80. package/src/math/calculus/special-functions/index.js +4 -4
  81. package/src/math/complex/index.js +202 -202
  82. package/src/math/const.js +2 -2
  83. package/src/math/discret/Combinaison/index.js +33 -33
  84. package/src/math/discret/Conversion/index.js +85 -85
  85. package/src/math/discret/Logic/index.js +45 -45
  86. package/src/math/discret/Permutation/index.js +30 -30
  87. package/src/math/discret/Set/index.js +1 -1
  88. package/src/math/discret/Set/power-set.js +14 -14
  89. package/src/math/discret/Set/sub-set.js +10 -10
  90. package/src/math/discret/index.js +12 -23
  91. package/src/math/functions/helper.js +20 -0
  92. package/src/math/functions/index.js +161 -181
  93. package/src/math/index.js +32 -189
  94. package/src/math/matrix/Decomposition.js +90 -90
  95. package/src/math/matrix/LinearSystem.js +9 -9
  96. package/src/math/matrix/Matrix.js +716 -716
  97. package/src/math/matrix/index.js +2 -2
  98. package/src/math/random/index.js +172 -172
  99. package/src/math/signal/__np.py.txt +39 -39
  100. package/src/math/signal/conv.js +174 -174
  101. package/src/math/signal/fft.js +54 -54
  102. package/src/math/signal/filter.js +38 -38
  103. package/src/math/signal/functions.js +145 -145
  104. package/src/math/signal/index.js +109 -109
  105. package/src/math/statistics/Functions/index.js +99 -99
  106. package/src/math/statistics/index.js +15 -15
  107. package/src/math/utils/arithmetic.js +138 -138
  108. package/src/math/utils/checkers.js +29 -29
  109. package/src/math/utils/conversions.js +19 -19
  110. package/src/math/utils/discret.js +51 -51
  111. package/src/math/utils/index.js +101 -101
  112. package/src/math/utils/mapfun.js +49 -49
  113. package/src/reactivity/events/{Partiel/Input.js → Input.js} +62 -59
  114. package/src/reactivity/events/{Global/Pointer.js → Pointer.js} +232 -234
  115. package/src/reactivity/events/ZikoEvent.js +90 -90
  116. package/src/reactivity/events/{Global/Click.js → click.js} +60 -56
  117. package/src/reactivity/events/{Global/Clipboard.js → clipboard.js} +88 -84
  118. package/src/reactivity/events/{Global/CustomEvent.js → custom-event.js} +57 -53
  119. package/src/reactivity/events/{Global/Drag.js → drag.js} +136 -136
  120. package/src/reactivity/events/{Global/Focus.js → focus.js} +59 -56
  121. package/src/reactivity/events/{Partiel/Hash.js → hash.js} +47 -44
  122. package/src/reactivity/events/index.js +62 -62
  123. package/src/reactivity/events/{Global/Key.js → key.js} +102 -104
  124. package/src/reactivity/events/{Global/Mouse.js → mouse.js} +233 -230
  125. package/src/reactivity/events/{Global/Swipe.js → swipe.js} +149 -147
  126. package/src/reactivity/events/{Global/Wheel.js → wheel.js} +47 -44
  127. package/src/reactivity/hooks/{Contexte → contexte}/useSuccesifKeys.js +13 -13
  128. package/src/reactivity/hooks/{Decorators → decorators}/index.js +6 -6
  129. package/src/reactivity/hooks/{Decorators → decorators}/time.js +16 -16
  130. package/src/reactivity/hooks/{Decorators → decorators}/type.js +87 -87
  131. package/src/reactivity/hooks/head/index.js +5 -0
  132. package/src/reactivity/hooks/{UI → head}/useCssText.js +21 -21
  133. package/src/reactivity/hooks/{UI → head}/useFavIcon.js +37 -37
  134. package/src/reactivity/hooks/head/useHead.js +28 -0
  135. package/src/reactivity/hooks/head/useMeta.js +52 -0
  136. package/src/reactivity/hooks/{UI → head}/useTitle.js +29 -29
  137. package/src/reactivity/hooks/index.js +91 -85
  138. package/src/reactivity/hooks/{Interactions → interactions}/index.js +3 -3
  139. package/src/reactivity/hooks/{Interactions → interactions}/useBluetooth.js +47 -47
  140. package/src/reactivity/hooks/{Interactions → interactions}/useChannel.js +49 -49
  141. package/src/reactivity/hooks/{Interactions → interactions}/useEventEmmiter.js +63 -63
  142. package/src/reactivity/hooks/{Interactions → interactions}/useThread.js +43 -43
  143. package/src/reactivity/hooks/sensors/index.js +2 -0
  144. package/src/reactivity/hooks/{Sensors → sensors}/useBattery.js +35 -35
  145. package/src/reactivity/hooks/{Sensors → sensors}/useGeolocation.js +16 -16
  146. package/src/reactivity/hooks/{Storage → storage}/useStorage.js +72 -72
  147. package/src/reactivity/hooks/todo.md +26 -26
  148. package/src/reactivity/hooks/ui/index.js +5 -0
  149. package/src/reactivity/hooks/{UI → ui}/useMediaQuery.js +43 -43
  150. package/src/reactivity/hooks/{UI → ui}/useStyle.js +79 -79
  151. package/src/reactivity/hooks/{UI → ui}/useTheme.js +61 -61
  152. package/src/reactivity/idea +1 -1
  153. package/src/reactivity/index.js +11 -21
  154. package/src/reactivity/observer/attributes.js +28 -28
  155. package/src/reactivity/observer/children.js +36 -36
  156. package/src/reactivity/observer/index.js +6 -44
  157. package/src/reactivity/observer/intersection.js +43 -43
  158. package/src/reactivity/observer/mutation.js +112 -112
  159. package/src/reactivity/observer/resize.js +46 -46
  160. package/src/reactivity/observer/screen.js +44 -44
  161. package/src/reactivity/observer/screen.js.txt +83 -83
  162. package/src/reactivity/observer/screen.txt +12 -12
  163. package/src/time/animation.js +75 -75
  164. package/src/time/index.js +12 -54
  165. package/src/time/loop.js +87 -87
  166. package/src/time/utils/decorators.js +16 -16
  167. package/src/time/utils/ease.js +143 -143
  168. package/src/time/utils/index.js +17 -17
  169. package/src/time/utils/performance.js +15 -15
  170. package/src/time/utils/ui.js +25 -25
  171. package/src/types.js +73 -71
  172. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/accordion/accordion.js +42 -45
  173. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/accordion/collapsible.js +82 -82
  174. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/accordion/index.js +1 -1
  175. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/alert.js +80 -80
  176. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/palette.js +51 -51
  177. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/carousel/index.js +50 -50
  178. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/SubElements.js.txt +104 -104
  179. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/code-cell.js +194 -194
  180. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/code-note.js +71 -71
  181. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/index.js +1 -1
  182. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/sub-elements.js +66 -66
  183. package/src/{user-interface → ui}/elements/derived/elements/Swipper.js +3 -3
  184. package/src/{user-interface → ui}/elements/derived/elements/index.js +9 -9
  185. package/src/{user-interface/elements/derived/Flex.js → ui/elements/derived/flex/index.js} +102 -102
  186. package/src/{user-interface/elements/derived/Grid.js → ui/elements/derived/grid/index.js} +32 -32
  187. package/src/ui/elements/derived/index.js +12 -0
  188. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/menu/menu3d.js +259 -259
  189. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/modal/index.js +91 -91
  190. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/pagination/breadcrumbs.js +53 -53
  191. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +112 -0
  192. package/src/ui/elements/derived/slider/hSlider.js +34 -0
  193. package/src/ui/elements/derived/slider/index.js +12 -0
  194. package/src/ui/elements/derived/slider/vSlider.js +27 -0
  195. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/splitter/__ZikoUISplitter__.js +61 -61
  196. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/splitter/hsplitter.js +39 -39
  197. package/src/ui/elements/derived/splitter/index.js +12 -0
  198. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/splitter/vsplitter.js +39 -39
  199. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/tabs/index.js +179 -179
  200. package/src/{user-interface → ui}/elements/primitives/ZikoUIContainerElement.js +126 -126
  201. package/src/{user-interface → ui}/elements/primitives/ZikoUIElement.js +492 -480
  202. package/src/{user-interface → ui}/elements/primitives/embaded/html.js +19 -20
  203. package/src/{user-interface → ui}/elements/primitives/embaded/index.js +3 -3
  204. package/src/{user-interface → ui}/elements/primitives/embaded/pdf.js +16 -17
  205. package/src/{user-interface → ui}/elements/primitives/embaded/youtube.js +23 -25
  206. package/src/{user-interface → ui}/elements/primitives/index.js +7 -7
  207. package/src/{user-interface → ui}/elements/primitives/io/Form/index.js +41 -41
  208. package/src/{user-interface → ui}/elements/primitives/io/Form/index.js.txt +104 -104
  209. package/src/{user-interface → ui}/elements/primitives/io/Inputs/__helpers__.js +51 -51
  210. package/src/{user-interface → ui}/elements/primitives/io/Inputs/index.js +12 -12
  211. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input/index.js +98 -98
  212. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  213. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  214. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-color/index.js +15 -15
  215. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  216. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  217. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  218. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  219. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +2 -0
  220. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  221. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  222. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  223. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-number/index.js +36 -36
  224. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  225. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-search/index.js +45 -45
  226. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  227. package/src/{user-interface → ui}/elements/primitives/io/Select/index.js +19 -19
  228. package/src/{user-interface → ui}/elements/primitives/io/Textarea/index.js +17 -17
  229. package/src/{user-interface → ui}/elements/primitives/io/index.js +3 -3
  230. package/src/{user-interface → ui}/elements/primitives/list/index.js +138 -138
  231. package/src/{user-interface → ui}/elements/primitives/media/Audio/index.js +16 -16
  232. package/src/{user-interface → ui}/elements/primitives/media/Image/figure.js +18 -18
  233. package/src/{user-interface → ui}/elements/primitives/media/Image/image.js +36 -36
  234. package/src/ui/elements/primitives/media/Image/index.js +2 -0
  235. package/src/{user-interface → ui}/elements/primitives/media/Video/index.js +26 -26
  236. package/src/{user-interface → ui}/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  237. package/src/{user-interface → ui}/elements/primitives/media/index.js +2 -2
  238. package/src/{user-interface → ui}/elements/primitives/misc/index.js +101 -100
  239. package/src/ui/elements/primitives/misc/xml-wrapper.js +37 -0
  240. package/src/{user-interface → ui}/elements/primitives/semantic/index.js +81 -81
  241. package/src/{user-interface → ui}/elements/primitives/table/elements.js +93 -93
  242. package/src/ui/elements/primitives/table/index.js +3 -0
  243. package/src/{user-interface → ui}/elements/primitives/table/table.js +115 -115
  244. package/src/{user-interface → ui}/elements/primitives/table/utils.js +11 -11
  245. package/src/{user-interface → ui}/elements/primitives/text/__ZikoUIText__.js +71 -71
  246. package/src/{user-interface → ui}/elements/primitives/text/heading.js +35 -35
  247. package/src/{user-interface → ui}/elements/primitives/text/index.js +2 -2
  248. package/src/{user-interface → ui}/elements/primitives/text/p.js +26 -26
  249. package/src/{user-interface → ui}/elements/primitives/text/text.js +80 -80
  250. package/src/ui/index.js +29 -0
  251. package/src/{user-interface → ui}/style/index.js +515 -509
  252. package/src/{user-interface → ui}/utils/index.js +69 -69
  253. package/src/reactivity/events/Global/Touch.js +0 -0
  254. package/src/reactivity/hooks/Sensors/index.js +0 -2
  255. package/src/reactivity/hooks/UI/index.js +0 -5
  256. package/src/user-interface/elements/derived/elements/splitter/index.js +0 -2
  257. package/src/user-interface/elements/derived/index.js +0 -3
  258. package/src/user-interface/elements/primitives/io/Inputs/input-email-password/index.js +0 -2
  259. package/src/user-interface/elements/primitives/media/Image/index.js +0 -2
  260. package/src/user-interface/elements/primitives/table/index.js +0 -3
  261. package/src/user-interface/index.js +0 -190
  262. /package/src/app/{globals/index.js → globals.js} +0 -0
  263. /package/src/reactivity/events/{Partiel/Media.js → media.js} +0 -0
  264. /package/src/{app/accessibility/index.js → reactivity/events/touch.js} +0 -0
  265. /package/src/reactivity/hooks/{Contexte → contexte}/index.js +0 -0
  266. /package/src/reactivity/hooks/{Interactions → interactions}/useSerial.js +0 -0
  267. /package/src/reactivity/hooks/{Interactions → interactions}/useUsb.js +0 -0
  268. /package/src/reactivity/hooks/{Sensors → sensors}/useCamera.js +0 -0
  269. /package/src/reactivity/hooks/{Sensors → sensors}/useMicro.js +0 -0
  270. /package/src/reactivity/hooks/{Sensors → sensors}/useOrientation.js +0 -0
  271. /package/src/reactivity/hooks/{Storage → storage}/index.js +0 -0
  272. /package/src/reactivity/hooks/{Storage → storage}/useCookie.js +0 -0
  273. /package/src/reactivity/hooks/{Storage → storage}/useIndexedDb.js +0 -0
  274. /package/src/reactivity/hooks/{UI → ui}/useCssLink.js +0 -0
  275. /package/src/reactivity/hooks/{UI → ui}/useLinearGradient.js +0 -0
  276. /package/src/reactivity/hooks/{UI → ui}/useRadialGradient.js +0 -0
  277. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/index.js +0 -0
  278. /package/src/{user-interface → ui}/elements/derived/elements/Notification.js +0 -0
  279. /package/src/{user-interface → ui}/elements/derived/elements/Popover.js +0 -0
  280. /package/src/{user-interface → ui}/elements/derived/elements/Popup.js +0 -0
  281. /package/src/{user-interface → ui}/elements/derived/elements/Timeline.js +0 -0
  282. /package/src/{user-interface → ui}/elements/derived/elements/Toast.js +0 -0
  283. /package/src/{user-interface → ui}/elements/derived/elements/Treeview.js +0 -0
  284. /package/src/{user-interface → ui}/elements/derived/elements/columns.js +0 -0
  285. /package/src/{user-interface → ui}/elements/derived/elements/fab.js +0 -0
  286. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/menu/index.js +0 -0
  287. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/pagination/index.js +0 -0
  288. /package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/index.js +0 -0
  289. /package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/input-file.js +0 -0
  290. /package/src/{user-interface → ui}/elements/primitives/list/elements.js +0 -0
  291. /package/src/{user-interface → ui}/elements/primitives/text/pre.js +0 -0
@@ -1,130 +1,130 @@
1
- const parseInlineElements = text => {
2
- return text
3
- .replace(/\*(.*?)\*/g, '_$1_') // Emphasis
4
- .replace(/\*\*(.*?)\*\*/g, '*$1*') // Strong
5
- .replace(/\[(.*?)\]\((.*?)\)/g, 'link:$2[$1]') // Links
6
- .replace(/!\[(.*?)\]\((.*?)\)/g, 'image::$2[$1]') // Images
7
- .replace(/`([^`]+)`/g, '``$1``') // Inline Code
8
- .replace(/^\*\s/, ''); // Remove list item marker at the beginning of the line
9
- };
10
-
11
- const parseTable = line => {
12
- const cells = line.split('|').map(cell => cell.trim()).filter(cell => cell !== '');
13
- const tableRow = cells.map(cell => `<td>${parseInlineElements(cell)}</td>`).join('');
14
- return `<tr>${tableRow}</tr>\n`;
15
- };
16
-
17
- const parseCodeBlock = (lines, language) => {
18
- const codeContent = lines.join('\n'); // No need to exclude the triple backticks
19
- const highlightedCode = language ? `<pre><code data-language="${language}">${codeContent}</code></pre>` : `<pre><code>${codeContent}</code></pre>`;
20
- return `${highlightedCode}\n`;
21
- };
22
-
23
- const parseList = line => {
24
- const OL_PATTERN = /^(\d+)\.\s/;
25
- const OL_PATTERN_WITHOUT_START = /^[.]\s/;
26
- const UL_PATTERN = /^[*]\s/;
27
-
28
- if (line.match(OL_PATTERN)) {
29
- const start = line.match(OL_PATTERN)[1];
30
- return `<ol start="${start}"><li>${parseInlineElements(line.replace(OL_PATTERN, ''))}</li></ol>\n`;
31
- }
32
- if (line.match(OL_PATTERN_WITHOUT_START)) {
33
- return `<ol><li>${parseInlineElements(line.replace(OL_PATTERN_WITHOUT_START, ''))}</li></ol>\n`;
34
- }
35
- if (line.match(UL_PATTERN)) {
36
- return `<ul><li>${parseInlineElements(line.replace(UL_PATTERN, ''))}</li></ul>\n`;
37
- }
38
-
39
- // If neither ordered nor unordered list pattern matches, treat it as a paragraph
40
- return `<p>${parseInlineElements(line)}</p>\n`;
41
- };
42
-
43
-
44
-
45
-
46
- const parseBlockquote = line => {
47
- return `<blockquote>${parseInlineElements(line.slice(2))}</blockquote>\n`;
48
- };
49
-
50
- const parseHorizontalRule = () => {
51
- return '<hr>\n';
52
- };
53
-
54
- const parseAttributes = line => {
55
- const attrs = line.match(/\[(.*?)\]/);
56
- return attrs ? attrs[1].split(',').map(attr => `[${attr.trim()}]`).join('') : '';
57
- };
58
-
59
- const adoc2html = adocText => {
60
- const lines = adocText.split('\n');
61
- let htmlOutput = '';
62
- let inTable = false;
63
- let inCodeBlock = false;
64
- let codeBlockLines = [];
65
- let codeBlockLanguage = '';
66
- for (let i = 0; i < lines.length; i++) {
67
- let line = lines[i];
68
- // Table
69
- if (line.startsWith('|')) {
70
- if (!inTable) {
71
- inTable = true;
72
- htmlOutput += '<table>\n';
73
- }
74
- htmlOutput += parseTable(line);
75
- continue;
76
- } else if (inTable) {
77
- inTable = false;
78
- htmlOutput += '</table>\n';
79
- }
80
- // Code block
81
- if (line.startsWith('```')) {
82
- if (!inCodeBlock) {
83
- inCodeBlock = true;
84
- codeBlockLines = [];
85
- codeBlockLanguage = line.slice(3).trim();
86
- } else {
87
- inCodeBlock = false;
88
- htmlOutput += parseCodeBlock(codeBlockLines, codeBlockLanguage);
89
- }
90
- continue;
91
- } else if (inCodeBlock) {
92
- codeBlockLines.push(line);
93
- continue;
94
- }
95
- // Headings
96
- if (line.startsWith('=')) {
97
- const headingLevel = (line.match(/=/g) || []).length;
98
- const headingText = line.replace(/=/g, '').trim();
99
- htmlOutput += `<h${headingLevel}>${parseInlineElements(headingText)}</h${headingLevel}>\n`;
100
- continue;
101
- }
102
- // Lists
103
- if (line.match(/^(\d+)\.\s/) || line.match(/^[*\.]\s/)) {
104
- htmlOutput += parseList(line);
105
- continue;
106
- }
107
- // Blockquote
108
- if (line.startsWith('> ')) {
109
- htmlOutput += parseBlockquote(line);
110
- continue;
111
- }
112
- // Horizontal Rule
113
- if (line.trim() === '---') {
114
- htmlOutput += parseHorizontalRule();
115
- continue;
116
- }
117
- // Attributes
118
- if (line.startsWith('[')) {
119
- htmlOutput += parseAttributes(line);
120
- continue;
121
- }
122
- // Other paragraphs
123
- if (line.trim() !== '') { // Exclude empty lines
124
- htmlOutput += `<p>${parseInlineElements(line)}</p>\n`;
125
- }
126
- }
127
- return htmlOutput;
128
- };
129
-
130
- export { adoc2html };
1
+ const parseInlineElements = text => {
2
+ return text
3
+ .replace(/\*(.*?)\*/g, '_$1_') // Emphasis
4
+ .replace(/\*\*(.*?)\*\*/g, '*$1*') // Strong
5
+ .replace(/\[(.*?)\]\((.*?)\)/g, 'link:$2[$1]') // Links
6
+ .replace(/!\[(.*?)\]\((.*?)\)/g, 'image::$2[$1]') // Images
7
+ .replace(/`([^`]+)`/g, '``$1``') // Inline Code
8
+ .replace(/^\*\s/, ''); // Remove list item marker at the beginning of the line
9
+ };
10
+
11
+ const parseTable = line => {
12
+ const cells = line.split('|').map(cell => cell.trim()).filter(cell => cell !== '');
13
+ const tableRow = cells.map(cell => `<td>${parseInlineElements(cell)}</td>`).join('');
14
+ return `<tr>${tableRow}</tr>\n`;
15
+ };
16
+
17
+ const parseCodeBlock = (lines, language) => {
18
+ const codeContent = lines.join('\n'); // No need to exclude the triple backticks
19
+ const highlightedCode = language ? `<pre><code data-language="${language}">${codeContent}</code></pre>` : `<pre><code>${codeContent}</code></pre>`;
20
+ return `${highlightedCode}\n`;
21
+ };
22
+
23
+ const parseList = line => {
24
+ const OL_PATTERN = /^(\d+)\.\s/;
25
+ const OL_PATTERN_WITHOUT_START = /^[.]\s/;
26
+ const UL_PATTERN = /^[*]\s/;
27
+
28
+ if (line.match(OL_PATTERN)) {
29
+ const start = line.match(OL_PATTERN)[1];
30
+ return `<ol start="${start}"><li>${parseInlineElements(line.replace(OL_PATTERN, ''))}</li></ol>\n`;
31
+ }
32
+ if (line.match(OL_PATTERN_WITHOUT_START)) {
33
+ return `<ol><li>${parseInlineElements(line.replace(OL_PATTERN_WITHOUT_START, ''))}</li></ol>\n`;
34
+ }
35
+ if (line.match(UL_PATTERN)) {
36
+ return `<ul><li>${parseInlineElements(line.replace(UL_PATTERN, ''))}</li></ul>\n`;
37
+ }
38
+
39
+ // If neither ordered nor unordered list pattern matches, treat it as a paragraph
40
+ return `<p>${parseInlineElements(line)}</p>\n`;
41
+ };
42
+
43
+
44
+
45
+
46
+ const parseBlockquote = line => {
47
+ return `<blockquote>${parseInlineElements(line.slice(2))}</blockquote>\n`;
48
+ };
49
+
50
+ const parseHorizontalRule = () => {
51
+ return '<hr>\n';
52
+ };
53
+
54
+ const parseAttributes = line => {
55
+ const attrs = line.match(/\[(.*?)\]/);
56
+ return attrs ? attrs[1].split(',').map(attr => `[${attr.trim()}]`).join('') : '';
57
+ };
58
+
59
+ const adoc2html = adocText => {
60
+ const lines = adocText.split('\n');
61
+ let htmlOutput = '';
62
+ let inTable = false;
63
+ let inCodeBlock = false;
64
+ let codeBlockLines = [];
65
+ let codeBlockLanguage = '';
66
+ for (let i = 0; i < lines.length; i++) {
67
+ let line = lines[i];
68
+ // Table
69
+ if (line.startsWith('|')) {
70
+ if (!inTable) {
71
+ inTable = true;
72
+ htmlOutput += '<table>\n';
73
+ }
74
+ htmlOutput += parseTable(line);
75
+ continue;
76
+ } else if (inTable) {
77
+ inTable = false;
78
+ htmlOutput += '</table>\n';
79
+ }
80
+ // Code block
81
+ if (line.startsWith('```')) {
82
+ if (!inCodeBlock) {
83
+ inCodeBlock = true;
84
+ codeBlockLines = [];
85
+ codeBlockLanguage = line.slice(3).trim();
86
+ } else {
87
+ inCodeBlock = false;
88
+ htmlOutput += parseCodeBlock(codeBlockLines, codeBlockLanguage);
89
+ }
90
+ continue;
91
+ } else if (inCodeBlock) {
92
+ codeBlockLines.push(line);
93
+ continue;
94
+ }
95
+ // Headings
96
+ if (line.startsWith('=')) {
97
+ const headingLevel = (line.match(/=/g) || []).length;
98
+ const headingText = line.replace(/=/g, '').trim();
99
+ htmlOutput += `<h${headingLevel}>${parseInlineElements(headingText)}</h${headingLevel}>\n`;
100
+ continue;
101
+ }
102
+ // Lists
103
+ if (line.match(/^(\d+)\.\s/) || line.match(/^[*\.]\s/)) {
104
+ htmlOutput += parseList(line);
105
+ continue;
106
+ }
107
+ // Blockquote
108
+ if (line.startsWith('> ')) {
109
+ htmlOutput += parseBlockquote(line);
110
+ continue;
111
+ }
112
+ // Horizontal Rule
113
+ if (line.trim() === '---') {
114
+ htmlOutput += parseHorizontalRule();
115
+ continue;
116
+ }
117
+ // Attributes
118
+ if (line.startsWith('[')) {
119
+ htmlOutput += parseAttributes(line);
120
+ continue;
121
+ }
122
+ // Other paragraphs
123
+ if (line.trim() !== '') { // Exclude empty lines
124
+ htmlOutput += `<p>${parseInlineElements(line)}</p>\n`;
125
+ }
126
+ }
127
+ return htmlOutput;
128
+ };
129
+
130
+ export { adoc2html };
@@ -1,43 +1,43 @@
1
- import { obj2str } from "./object.js";
2
- import { Complex } from "../../math/complex/index.js";
3
- const getMaxDepth = arr=> {
4
- if (!Array.isArray(arr)) return 0;
5
- let maxDepth = 1;
6
- for (const element of arr) {
7
- if (Array.isArray(element)) {
8
- const depth = getMaxDepth(element);
9
- if (depth + 1 > maxDepth) {
10
- maxDepth = depth + 1;
11
- }
12
- }
13
- }
14
- return maxDepth;
15
- }
16
- const arr2str = (arr) => {
17
- let level = 0;
18
- function arrStringify(arr) {
19
- let max = getMaxDepth(arr);
20
- let useIdentation = 0;
21
- if (arr.some((n) => Array.isArray(n))) {
22
- level++;
23
- useIdentation = 1;
24
- }
25
- return (
26
- "[" +
27
- arr.map((n, i) => {
28
- if (["number", "string", "boolean", "bigint"].includes(typeof n))
29
- return String(n);
30
- if (n instanceof Complex) return n.toString();
31
- if (n instanceof Array) {
32
- return `\n${" ".repeat(level)}${arrStringify(n)}${i === arr.length - 1 ? "\n" : ""}`;
33
- }
34
- if( n instanceof Object) return obj2str(n);
35
- })
36
- + `${" ".repeat((max+level+1) * useIdentation)}]`
37
- );
38
- }
39
- return arrStringify(arr);
40
- };
41
- export{
42
- arr2str
1
+ import { obj2str } from "./object.js";
2
+ import { Complex } from "../../math/complex/index.js";
3
+ const getMaxDepth = arr=> {
4
+ if (!Array.isArray(arr)) return 0;
5
+ let maxDepth = 1;
6
+ for (const element of arr) {
7
+ if (Array.isArray(element)) {
8
+ const depth = getMaxDepth(element);
9
+ if (depth + 1 > maxDepth) {
10
+ maxDepth = depth + 1;
11
+ }
12
+ }
13
+ }
14
+ return maxDepth;
15
+ }
16
+ const arr2str = (arr) => {
17
+ let level = 0;
18
+ function arrStringify(arr) {
19
+ let max = getMaxDepth(arr);
20
+ let useIdentation = 0;
21
+ if (arr.some((n) => Array.isArray(n))) {
22
+ level++;
23
+ useIdentation = 1;
24
+ }
25
+ return (
26
+ "[" +
27
+ arr.map((n, i) => {
28
+ if (["number", "string", "boolean", "bigint"].includes(typeof n))
29
+ return String(n);
30
+ if (n instanceof Complex) return n.toString();
31
+ if (n instanceof Array) {
32
+ return `\n${" ".repeat(level)}${arrStringify(n)}${i === arr.length - 1 ? "\n" : ""}`;
33
+ }
34
+ if( n instanceof Object) return obj2str(n);
35
+ })
36
+ + `${" ".repeat((max+level+1) * useIdentation)}]`
37
+ );
38
+ }
39
+ return arrStringify(arr);
40
+ };
41
+ export{
42
+ arr2str
43
43
  }
@@ -1,25 +1,25 @@
1
- const canvas2image = (canvas,format) => {}
2
- class Canvas2Video {
3
- constructor(canvas,mimeType="video/webm") {
4
- this.canvas = canvas;
5
- this.videoSrc=null;
6
- this.mediaRecorder = new MediaRecorder(this.canvas.captureStream(), { mimeType: mimeType });
7
- this.chunks = [];
8
- this.mediaRecorder.ondataavailable = (e) => {
9
- this.chunks.push(e.data);
10
- };
11
- this.mediaRecorder.onstop = (e) => {
12
- const blob = new Blob(this.chunks, { type: mimeType });
13
- this.videoSrc = URL.createObjectURL(blob);
14
- };
15
- }
16
- start() {
17
- this.mediaRecorder.start();
18
- return this;
19
- }
20
- stop() {
21
- this.mediaRecorder.stop();
22
- return this;
23
- }
24
- }
1
+ const canvas2image = (canvas,format) => {}
2
+ class Canvas2Video {
3
+ constructor(canvas,mimeType="video/webm") {
4
+ this.canvas = canvas;
5
+ this.videoSrc=null;
6
+ this.mediaRecorder = new MediaRecorder(this.canvas.captureStream(), { mimeType: mimeType });
7
+ this.chunks = [];
8
+ this.mediaRecorder.ondataavailable = (e) => {
9
+ this.chunks.push(e.data);
10
+ };
11
+ this.mediaRecorder.onstop = (e) => {
12
+ const blob = new Blob(this.chunks, { type: mimeType });
13
+ this.videoSrc = URL.createObjectURL(blob);
14
+ };
15
+ }
16
+ start() {
17
+ this.mediaRecorder.start();
18
+ return this;
19
+ }
20
+ stop() {
21
+ this.mediaRecorder.stop();
22
+ return this;
23
+ }
24
+ }
25
25
  const canvas2video=(canvas)=>new Canvas2Video(canvas)
@@ -0,0 +1,37 @@
1
+ const json2css=(json, indentLevel = 0)=>{
2
+ json = trimKeys(json);
3
+ let cssText = '';
4
+ const indent = ' '.repeat(indentLevel);
5
+
6
+ for (let selector in json) {
7
+ if (typeof json[selector] === 'object') {
8
+ cssText += `${indent}${selector} {\n`;
9
+ const properties = json[selector];
10
+ for (let property in properties) {
11
+ if (typeof properties[property] === 'object') {
12
+ cssText += json2css({ [property]: properties[property] }, indentLevel + 1);
13
+ } else {
14
+ cssText += `${indent} ${property.replace(/[A-Z]/g, match => '-' + match.toLowerCase())}: ${properties[property]};\n`;
15
+ }
16
+ }
17
+
18
+ cssText += `${indent}}\n`;
19
+ }
20
+ }
21
+
22
+ return cssText;
23
+ }
24
+ function trimKeys(obj) {
25
+ if (typeof obj !== 'object' || obj === null) {
26
+ return obj;
27
+ }
28
+
29
+ return Object.keys(obj).reduce((acc, key) => {
30
+ const trimmedKey = key.trim();
31
+ acc[trimmedKey] = trimKeys(obj[key]);
32
+ return acc;
33
+ }, Array.isArray(obj) ? [] : {});
34
+ }
35
+ export{
36
+ json2css
37
+ }
@@ -1,33 +1,33 @@
1
- import { Matrix } from "../../math/matrix/Matrix.js"
2
- const csv2arr = (csv, delimiter = ",")=>csv.trim().trimEnd().split("\n").map(n=>n.split(delimiter));
3
- const csv2matrix = (csv, delimiter = ",")=>new Matrix(csv2arr(csv,delimiter));
4
- const csv2object = (csv, delimiter = ",") => {
5
- const [header, ...rows] = csv2arr(csv,delimiter);
6
- const result = rows.map(row => {
7
- const obj = {};
8
- header.forEach((key, index) => {
9
- obj[key] = row[index];
10
- });
11
- return obj;
12
- });
13
- return result;
14
- };
15
- const csv2json = (csv, delimiter = ",") => JSON.stringify(csv2object(csv,delimiter));
16
- const csv2sql=(csv, Table)=>{
17
- const lines = csv.trim().trimEnd().split('\n').filter(n=>n);
18
- const columns = lines[0].split(',');
19
- let sqlQuery = `INSERT INTO ${Table} (${columns.join(', ')}) Values `
20
- let sqlValues = []
21
- for (let i = 1; i < lines.length; i++) {
22
- const values = lines[i].split(',');
23
- sqlValues.push(`(${values})`)
24
- }
25
- return sqlQuery+sqlValues.join(",\n");
26
- }
27
- export{
28
- csv2arr,
29
- csv2matrix,
30
- csv2object,
31
- csv2json,
32
- csv2sql
1
+ import { Matrix } from "../../math/matrix/Matrix.js"
2
+ const csv2arr = (csv, delimiter = ",")=>csv.trim().trimEnd().split("\n").map(n=>n.split(delimiter));
3
+ const csv2matrix = (csv, delimiter = ",")=>new Matrix(csv2arr(csv,delimiter));
4
+ const csv2object = (csv, delimiter = ",") => {
5
+ const [header, ...rows] = csv2arr(csv,delimiter);
6
+ const result = rows.map(row => {
7
+ const obj = {};
8
+ header.forEach((key, index) => {
9
+ obj[key] = row[index];
10
+ });
11
+ return obj;
12
+ });
13
+ return result;
14
+ };
15
+ const csv2json = (csv, delimiter = ",") => JSON.stringify(csv2object(csv,delimiter));
16
+ const csv2sql=(csv, Table)=>{
17
+ const lines = csv.trim().trimEnd().split('\n').filter(n=>n);
18
+ const columns = lines[0].split(',');
19
+ let sqlQuery = `INSERT INTO ${Table} (${columns.join(', ')}) Values `
20
+ let sqlValues = []
21
+ for (let i = 1; i < lines.length; i++) {
22
+ const values = lines[i].split(',');
23
+ sqlValues.push(`(${values})`)
24
+ }
25
+ return sqlQuery+sqlValues.join(",\n");
26
+ }
27
+ export{
28
+ csv2arr,
29
+ csv2matrix,
30
+ csv2object,
31
+ csv2json,
32
+ csv2sql
33
33
  }
@@ -1,10 +1,10 @@
1
- a={
2
- a:complex(1,1),
3
- b:complex(2,2),
4
- c:{
5
- d:complex(1,2)
6
- }
7
- }
8
- d=mapfun(a=>a.toString(),a)
9
- t=JSON.stringify(d,""," ").replace(/"([^"]+)":/g, '$1:')
1
+ a={
2
+ a:complex(1,1),
3
+ b:complex(2,2),
4
+ c:{
5
+ d:complex(1,2)
6
+ }
7
+ }
8
+ d=mapfun(a=>a.toString(),a)
9
+ t=JSON.stringify(d,""," ").replace(/"([^"]+)":/g, '$1:')
10
10
  text(t)
@@ -1,34 +1,37 @@
1
- export {
2
- markdown2html
3
- } from "./markdown.js";
4
- export {
5
- adoc2html
6
- } from "./adoc.js";
7
- export {
8
- csv2arr,
9
- csv2matrix,
10
- csv2object,
11
- csv2json,
12
- csv2sql
13
- } from "./csv.js";
14
- export {
15
- json2arr,
16
- json2csv,
17
- json2csvFile,
18
- json2yml,
19
- json2ymlFile,
20
- json2xml,
21
- json2xmlFile
22
- } from "./json.js";
23
- export {
24
- svg2str,
25
- svg2ascii,
26
- svg2imgUrl,
27
- svg2img
28
- } from "./svg.js";
29
- export{
30
- obj2str
31
- } from "./object.js"
32
- export{
33
- arr2str
34
- } from "./array.js"
1
+ export {
2
+ markdown2html
3
+ } from "./markdown.js";
4
+ export {
5
+ adoc2html
6
+ } from "./adoc.js";
7
+ export {
8
+ csv2arr,
9
+ csv2matrix,
10
+ csv2object,
11
+ csv2json,
12
+ csv2sql
13
+ } from "./csv.js";
14
+ export {
15
+ json2arr,
16
+ json2csv,
17
+ json2csvFile,
18
+ json2yml,
19
+ json2ymlFile,
20
+ json2xml,
21
+ json2xmlFile
22
+ } from "./json.js";
23
+ export {
24
+ svg2str,
25
+ svg2ascii,
26
+ svg2imgUrl,
27
+ svg2img
28
+ } from "./svg.js";
29
+ export{
30
+ obj2str
31
+ } from "./object.js"
32
+ export{
33
+ arr2str
34
+ } from "./array.js"
35
+ export{
36
+ json2css
37
+ } from "./css.js"