ziko 0.0.17 → 0.0.19

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 (267) hide show
  1. package/README.md +91 -200
  2. package/package.json +17 -46
  3. package/src/__helpers__/index.js +61 -61
  4. package/src/app/json-style-sheet.js +64 -64
  5. package/src/app/spa-file-based-routing.js +0 -1
  6. package/src/app/ziko-app.js +38 -38
  7. package/src/data/api/fetchdom.js +13 -13
  8. package/src/data/api/index.js +3 -3
  9. package/src/data/api/preload.js +10 -10
  10. package/src/data/converter/adoc.js +130 -130
  11. package/src/data/converter/array.js +42 -42
  12. package/src/data/converter/canvas.js +24 -24
  13. package/src/data/converter/css.js +36 -36
  14. package/src/data/converter/csv.js +32 -32
  15. package/src/data/converter/idea.txt +9 -9
  16. package/src/data/converter/index.js +36 -36
  17. package/src/data/converter/json.js +80 -80
  18. package/src/data/converter/markdown.js +95 -95
  19. package/src/data/converter/object.js +69 -69
  20. package/src/data/converter/svg.js +10 -10
  21. package/src/data/datatypes/color.js +11 -0
  22. package/src/data/index.js +16 -16
  23. package/src/data/parser/xml.js +46 -46
  24. package/src/data/string/patterns.js +11 -11
  25. package/src/data/string/string.js +169 -169
  26. package/src/global/{themes → _themes}/dark.js +884 -884
  27. package/src/global/{themes → _themes}/index.js +10 -10
  28. package/src/global/{themes → _themes}/light.js +254 -254
  29. package/src/global/app/index.js +45 -45
  30. package/src/global/component/index.js +38 -38
  31. package/src/global/globals/index.js +20 -20
  32. package/src/global/index.js +3 -11
  33. package/src/global/params/index.js +39 -39
  34. package/src/global/router/index.js +66 -66
  35. package/src/global/seo/index.js +42 -42
  36. package/src/graphics/canvas/canvas.js +176 -189
  37. package/src/graphics/canvas/elements/Basic/arc.js +42 -42
  38. package/src/graphics/canvas/elements/Basic/line.js +25 -25
  39. package/src/graphics/canvas/elements/Basic/points.js +47 -47
  40. package/src/graphics/canvas/elements/Basic/polygon.js +6 -6
  41. package/src/graphics/canvas/elements/Basic/rect.js +45 -45
  42. package/src/graphics/canvas/elements/Chart/scatter.js +2 -2
  43. package/src/graphics/canvas/elements/Element.js +114 -114
  44. package/src/graphics/canvas/elements/index.js +13 -13
  45. package/src/graphics/canvas/index.js +2 -15
  46. package/src/graphics/canvas/utils/color.js +7 -7
  47. package/src/graphics/canvas/utils/floodFill.js +57 -57
  48. package/src/graphics/index.js +10 -69
  49. package/src/graphics/svg/Elements/Basic/circle.js +29 -26
  50. package/src/graphics/svg/Elements/Basic/ellipse.js +24 -21
  51. package/src/graphics/svg/Elements/Basic/{foreignObject.js → foreign-object.js} +36 -33
  52. package/src/graphics/svg/Elements/Basic/groupe.js +32 -29
  53. package/src/graphics/svg/Elements/Basic/image.js +36 -33
  54. package/src/graphics/svg/Elements/Basic/index.js +11 -0
  55. package/src/graphics/svg/Elements/Basic/line.js +32 -29
  56. package/src/graphics/svg/Elements/Basic/link.js +33 -30
  57. package/src/graphics/svg/Elements/Basic/path.js +62 -59
  58. package/src/graphics/svg/Elements/Basic/polygon.js +31 -31
  59. package/src/graphics/svg/Elements/Basic/polyline.js +7 -4
  60. package/src/graphics/svg/Elements/Basic/rect.js +46 -43
  61. package/src/graphics/svg/Elements/Basic/text.js +29 -26
  62. package/src/graphics/svg/Elements/Derived/grid.js +8 -8
  63. package/src/graphics/svg/Elements/Derived/index.js +1 -0
  64. package/src/graphics/svg/Elements/index.js +2 -14
  65. package/src/graphics/svg/Elements/{ZikoSvgElement.js → ziko-svg-element.js} +48 -46
  66. package/src/graphics/svg/index.js +2 -2
  67. package/src/graphics/svg/svg.js +68 -114
  68. package/src/index.js +85 -84
  69. package/src/math/calculus/index.js +2 -2
  70. package/src/math/calculus/special-functions/bessel.js +30 -30
  71. package/src/math/calculus/special-functions/beta.js +37 -37
  72. package/src/math/calculus/special-functions/gamma.js +29 -29
  73. package/src/math/calculus/special-functions/index.js +4 -4
  74. package/src/math/complex/index.js +202 -202
  75. package/src/math/const.js +2 -2
  76. package/src/math/discret/Combinaison/index.js +33 -33
  77. package/src/math/discret/Conversion/index.js +85 -85
  78. package/src/math/discret/Logic/index.js +45 -45
  79. package/src/math/discret/Permutation/index.js +30 -30
  80. package/src/math/discret/Set/index.js +1 -1
  81. package/src/math/discret/Set/power-set.js +14 -14
  82. package/src/math/discret/Set/sub-set.js +10 -10
  83. package/src/math/discret/index.js +11 -11
  84. package/src/math/functions/index.js +161 -161
  85. package/src/math/index.js +32 -32
  86. package/src/math/matrix/Decomposition.js +90 -90
  87. package/src/math/matrix/LinearSystem.js +9 -9
  88. package/src/math/matrix/Matrix.js +716 -716
  89. package/src/math/matrix/index.js +2 -2
  90. package/src/math/random/index.js +172 -172
  91. package/src/math/signal/__np.py.txt +39 -39
  92. package/src/math/signal/conv.js +174 -174
  93. package/src/math/signal/fft.js +54 -54
  94. package/src/math/signal/filter.js +38 -38
  95. package/src/math/signal/functions.js +145 -145
  96. package/src/math/signal/index.js +109 -109
  97. package/src/math/statistics/Functions/index.js +99 -99
  98. package/src/math/statistics/index.js +15 -15
  99. package/src/math/utils/arithmetic.js +138 -138
  100. package/src/math/utils/checkers.js +29 -29
  101. package/src/math/utils/conversions.js +19 -19
  102. package/src/math/utils/discret.js +51 -51
  103. package/src/math/utils/index.js +101 -101
  104. package/src/math/utils/mapfun.js +49 -49
  105. package/src/reactivity/events/Input.js +61 -61
  106. package/src/reactivity/events/Pointer.js +231 -231
  107. package/src/reactivity/events/ZikoEvent.js +90 -90
  108. package/src/reactivity/events/click.js +59 -59
  109. package/src/reactivity/events/clipboard.js +87 -87
  110. package/src/reactivity/events/custom-event.js +56 -56
  111. package/src/reactivity/events/drag.js +136 -136
  112. package/src/reactivity/events/focus.js +58 -58
  113. package/src/reactivity/events/hash.js +46 -46
  114. package/src/reactivity/events/index.js +12 -63
  115. package/src/reactivity/events/key.js +101 -101
  116. package/src/reactivity/events/mouse.js +232 -232
  117. package/src/reactivity/events/swipe.js +149 -149
  118. package/src/reactivity/events/wheel.js +46 -46
  119. package/src/reactivity/hooks/{contexte → Contexte}/useSuccesifKeys.js +13 -13
  120. package/src/reactivity/hooks/{decorators → Decorators}/index.js +6 -6
  121. package/src/reactivity/hooks/{decorators → Decorators}/time.js +16 -16
  122. package/src/reactivity/hooks/{decorators → Decorators}/type.js +87 -87
  123. package/src/reactivity/hooks/{head/useCssText.js → Head/_useCssText.js} +20 -20
  124. package/src/reactivity/hooks/{head → Head}/index.js +5 -5
  125. package/src/reactivity/hooks/{head → Head}/useFavIcon.js +37 -37
  126. package/src/reactivity/hooks/{head → Head}/useHead.js +27 -27
  127. package/src/reactivity/hooks/{head → Head}/useMeta.js +52 -52
  128. package/src/reactivity/hooks/{head → Head}/useTitle.js +29 -29
  129. package/src/reactivity/hooks/{interactions/useBluetooth.js → Interactions/_useBluetooth.js} +47 -47
  130. package/src/reactivity/hooks/{interactions → Interactions}/index.js +4 -4
  131. package/src/reactivity/hooks/{interactions → Interactions}/useChannel.js +49 -49
  132. package/src/reactivity/hooks/{interactions → Interactions}/useEventEmmiter.js +63 -63
  133. package/src/reactivity/hooks/{interactions → Interactions}/useThread.js +43 -43
  134. package/src/reactivity/hooks/Sensors/index.js +2 -0
  135. package/src/reactivity/hooks/{sensors → Sensors}/useBattery.js +35 -35
  136. package/src/reactivity/hooks/{sensors → Sensors}/useGeolocation.js +16 -16
  137. package/src/reactivity/hooks/{storage → Storage}/useStorage.js +72 -72
  138. package/src/reactivity/hooks/{ui → UI}/index.js +6 -5
  139. package/src/reactivity/hooks/{ui → UI}/useMediaQuery.js +43 -43
  140. package/src/reactivity/hooks/UI/useRoot.js +39 -0
  141. package/src/reactivity/hooks/{ui → UI}/useStyle.js +79 -79
  142. package/src/reactivity/hooks/{ui → UI}/useTheme.js +61 -61
  143. package/src/reactivity/hooks/index.js +8 -91
  144. package/src/reactivity/hooks/todo.md +26 -26
  145. package/src/reactivity/idea +1 -1
  146. package/src/reactivity/index.js +11 -11
  147. package/src/reactivity/observer/attributes.js +28 -28
  148. package/src/reactivity/observer/children.js +36 -36
  149. package/src/reactivity/observer/index.js +6 -6
  150. package/src/reactivity/observer/intersection.js +43 -43
  151. package/src/reactivity/observer/mutation.js +112 -112
  152. package/src/reactivity/observer/resize.js +46 -46
  153. package/src/reactivity/observer/screen.js +44 -44
  154. package/src/reactivity/observer/screen.js.txt +83 -83
  155. package/src/reactivity/observer/screen.txt +12 -12
  156. package/src/time/animation.js +75 -75
  157. package/src/time/index.js +11 -11
  158. package/src/time/loop.js +87 -87
  159. package/src/time/utils/decorators.js +16 -16
  160. package/src/time/utils/ease.js +143 -143
  161. package/src/time/utils/index.js +17 -17
  162. package/src/time/utils/performance.js +15 -15
  163. package/src/time/utils/ui.js +25 -25
  164. package/src/types.js +73 -73
  165. package/src/ui/elements/derived/accordion/accordion.js +42 -42
  166. package/src/ui/elements/derived/accordion/collapsible.js +82 -82
  167. package/src/ui/elements/derived/accordion/index.js +1 -1
  168. package/src/ui/elements/derived/alert/alert.js +80 -80
  169. package/src/ui/elements/derived/alert/palette.js +51 -51
  170. package/src/ui/elements/derived/carousel/index.js +50 -50
  171. package/src/ui/elements/derived/code-note/SubElements.js.txt +104 -104
  172. package/src/ui/elements/derived/code-note/code-cell.js +194 -194
  173. package/src/ui/elements/derived/code-note/code-note.js +71 -71
  174. package/src/ui/elements/derived/code-note/index.js +1 -1
  175. package/src/ui/elements/derived/code-note/sub-elements.js +66 -66
  176. package/src/ui/elements/derived/elements/Swipper.js +3 -3
  177. package/src/ui/elements/derived/elements/index.js +9 -9
  178. package/src/ui/elements/derived/flex/index.js +102 -102
  179. package/src/ui/elements/derived/grid/index.js +32 -32
  180. package/src/ui/elements/derived/index.js +11 -11
  181. package/src/ui/elements/derived/menu/menu3d.js +259 -259
  182. package/src/ui/elements/derived/modal/index.js +91 -91
  183. package/src/ui/elements/derived/pagination/breadcrumbs.js +53 -53
  184. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +111 -111
  185. package/src/ui/elements/derived/slider/hSlider.js +33 -33
  186. package/src/ui/elements/derived/slider/index.js +11 -11
  187. package/src/ui/elements/derived/slider/vSlider.js +26 -26
  188. package/src/ui/elements/derived/splitter/__ZikoUISplitter__.js +61 -61
  189. package/src/ui/elements/derived/splitter/hsplitter.js +39 -39
  190. package/src/ui/elements/derived/splitter/index.js +11 -11
  191. package/src/ui/elements/derived/splitter/vsplitter.js +39 -39
  192. package/src/ui/elements/derived/tabs/index.js +179 -179
  193. package/src/ui/elements/primitives/ZikoUIContainerElement.js +163 -126
  194. package/src/ui/elements/primitives/ZikoUIElement.js +492 -492
  195. package/src/ui/elements/primitives/embaded/html.js +19 -19
  196. package/src/ui/elements/primitives/embaded/index.js +3 -3
  197. package/src/ui/elements/primitives/embaded/pdf.js +16 -16
  198. package/src/ui/elements/primitives/embaded/youtube.js +23 -23
  199. package/src/ui/elements/primitives/index.js +7 -7
  200. package/src/ui/elements/primitives/io/Form/index.js +41 -41
  201. package/src/ui/elements/primitives/io/Form/index.js.txt +104 -104
  202. package/src/ui/elements/primitives/io/Inputs/__helpers__.js +51 -51
  203. package/src/ui/elements/primitives/io/Inputs/index.js +12 -12
  204. package/src/ui/elements/primitives/io/Inputs/input/index.js +98 -98
  205. package/src/ui/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  206. package/src/ui/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  207. package/src/ui/elements/primitives/io/Inputs/input-color/index.js +15 -15
  208. package/src/ui/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  209. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  210. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  211. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  212. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +1 -1
  213. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  214. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  215. package/src/ui/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  216. package/src/ui/elements/primitives/io/Inputs/input-number/index.js +36 -36
  217. package/src/ui/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  218. package/src/ui/elements/primitives/io/Inputs/input-search/index.js +45 -45
  219. package/src/ui/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  220. package/src/ui/elements/primitives/io/Select/index.js +19 -19
  221. package/src/ui/elements/primitives/io/Textarea/index.js +17 -17
  222. package/src/ui/elements/primitives/io/index.js +3 -3
  223. package/src/ui/elements/primitives/list/index.js +138 -138
  224. package/src/ui/elements/primitives/media/Audio/index.js +16 -16
  225. package/src/ui/elements/primitives/media/Image/figure.js +18 -18
  226. package/src/ui/elements/primitives/media/Image/image.js +36 -36
  227. package/src/ui/elements/primitives/media/Image/index.js +1 -1
  228. package/src/ui/elements/primitives/media/Video/index.js +26 -26
  229. package/src/ui/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  230. package/src/ui/elements/primitives/media/index.js +2 -2
  231. package/src/ui/elements/primitives/misc/index.js +101 -101
  232. package/src/ui/elements/primitives/misc/xml-wrapper.js +3 -2
  233. package/src/ui/elements/primitives/semantic/index.js +81 -81
  234. package/src/ui/elements/primitives/table/elements.js +93 -93
  235. package/src/ui/elements/primitives/table/index.js +2 -2
  236. package/src/ui/elements/primitives/table/table.js +115 -115
  237. package/src/ui/elements/primitives/table/utils.js +11 -11
  238. package/src/ui/elements/primitives/text/__ZikoUIText__.js +71 -71
  239. package/src/ui/elements/primitives/text/heading.js +35 -35
  240. package/src/ui/elements/primitives/text/index.js +2 -2
  241. package/src/ui/elements/primitives/text/p.js +26 -26
  242. package/src/ui/elements/primitives/text/text.js +80 -80
  243. package/src/ui/index.js +37 -37
  244. package/src/ui/style/index.js +504 -515
  245. package/src/ui/utils/index.js +69 -69
  246. package/starter/bin/index.js +11 -11
  247. package/dist/ziko.cjs +0 -14018
  248. package/dist/ziko.js +0 -14028
  249. package/dist/ziko.min.js +0 -9
  250. package/dist/ziko.mjs +0 -13688
  251. package/src/graphics/canvas/elements/Groupe.js +0 -0
  252. package/src/graphics/canvas/elements/grid.js +0 -0
  253. package/src/graphics/canvas/filter/index.js +0 -0
  254. package/src/graphics/canvas/paint/index.js +0 -0
  255. package/src/reactivity/hooks/sensors/index.js +0 -2
  256. /package/src/reactivity/hooks/{contexte → Contexte}/index.js +0 -0
  257. /package/src/reactivity/hooks/{interactions → Interactions}/useSerial.js +0 -0
  258. /package/src/reactivity/hooks/{interactions → Interactions}/useUsb.js +0 -0
  259. /package/src/reactivity/hooks/{sensors → Sensors}/useCamera.js +0 -0
  260. /package/src/reactivity/hooks/{sensors → Sensors}/useMicro.js +0 -0
  261. /package/src/reactivity/hooks/{sensors → Sensors}/useOrientation.js +0 -0
  262. /package/src/reactivity/hooks/{storage → Storage}/index.js +0 -0
  263. /package/src/reactivity/hooks/{storage → Storage}/useCookie.js +0 -0
  264. /package/src/reactivity/hooks/{storage → Storage}/useIndexedDb.js +0 -0
  265. /package/src/reactivity/hooks/{ui → UI}/useCssLink.js +0 -0
  266. /package/src/reactivity/hooks/{ui → UI}/useLinearGradient.js +0 -0
  267. /package/src/reactivity/hooks/{ui → UI}/useRadialGradient.js +0 -0
@@ -1,39 +1,39 @@
1
- import { ZikoHead , useHead} from "../reactivity/hooks/Head";
2
- class ZikoApp {
3
- constructor({head = null, wrapper = null, target = null}){
4
- this.head = head;
5
- this.wrapper = wrapper;
6
- this.target = target;
7
- this.init()
8
- }
9
- get isZikoApp(){
10
- return true;
11
- }
12
- init(){
13
- this.head && this.setHead(this.head);
14
- this.wrapper && this.setWrapper(this.wrapper);
15
- this.target && this.setTarget(this.target);
16
- if(this.wrapper && this.target)this.wrapper.render(this.target);
17
- }
18
- setTarget(target){
19
- if(target instanceof HTMLElement) this.target = target;
20
- else if (typeof target === "string") this.target = globalThis?.document?.querySelector(target);
21
- return this;
22
- }
23
- setWrapper(wrapper){
24
- if(wrapper?.isZikoUIElement) this.wrapper = wrapper;
25
- else if(typeof wrapper === "function") this.wrapper = wrapper();
26
- return this;
27
- }
28
- setHead(head){
29
- if(head instanceof ZikoHead) this.head = head;
30
- else this.head = useHead(head);
31
- return this;
32
- }
33
-
34
- }
35
- const App = ({head, wrapper, target}) => new ZikoApp({head, wrapper, target})
36
- export{
37
- ZikoApp,
38
- App
1
+ import { ZikoHead , useHead} from "../reactivity/hooks/Head";
2
+ class ZikoApp {
3
+ constructor({head = null, wrapper = null, target = null}){
4
+ this.head = head;
5
+ this.wrapper = wrapper;
6
+ this.target = target;
7
+ this.init()
8
+ }
9
+ get isZikoApp(){
10
+ return true;
11
+ }
12
+ init(){
13
+ this.head && this.setHead(this.head);
14
+ this.wrapper && this.setWrapper(this.wrapper);
15
+ this.target && this.setTarget(this.target);
16
+ if(this.wrapper && this.target)this.wrapper.render(this.target);
17
+ }
18
+ setTarget(target){
19
+ if(target instanceof HTMLElement) this.target = target;
20
+ else if (typeof target === "string") this.target = globalThis?.document?.querySelector(target);
21
+ return this;
22
+ }
23
+ setWrapper(wrapper){
24
+ if(wrapper?.isZikoUIElement) this.wrapper = wrapper;
25
+ else if(typeof wrapper === "function") this.wrapper = wrapper();
26
+ return this;
27
+ }
28
+ setHead(head){
29
+ if(head instanceof ZikoHead) this.head = head;
30
+ else this.head = useHead(head);
31
+ return this;
32
+ }
33
+
34
+ }
35
+ const App = ({head, wrapper, target}) => new ZikoApp({head, wrapper, target})
36
+ export{
37
+ ZikoApp,
38
+ App
39
39
  }
@@ -1,14 +1,14 @@
1
- import { preload } from "./preload"
2
-
3
- async function fetchdom(url='https://github.com/zakarialaoui10'){
4
- const data=await fetch(url)
5
- const html=await data.text()
6
- const dom= new DOMParser().parseFromString(html,'text/xml')
7
- return dom.documentElement
8
- }
9
- function fetchdomSync(url='https://github.com/zakarialaoui10'){
10
- const data=preload(url);
11
- const dom= new DOMParser().parseFromString(data,'text/xml')
12
- return dom.documentElement;
13
- }
1
+ import { preload } from "./preload"
2
+
3
+ async function fetchdom(url='https://github.com/zakarialaoui10'){
4
+ const data=await fetch(url)
5
+ const html=await data.text()
6
+ const dom= new DOMParser().parseFromString(html,'text/xml')
7
+ return dom.documentElement
8
+ }
9
+ function fetchdomSync(url='https://github.com/zakarialaoui10'){
10
+ const data=preload(url);
11
+ const dom= new DOMParser().parseFromString(data,'text/xml')
12
+ return dom.documentElement;
13
+ }
14
14
  export {fetchdom,fetchdomSync}
@@ -1,4 +1,4 @@
1
- export { preload } from "./preload";
2
- import { fetchdom ,fetchdomSync } from "./fetchdom";
3
- globalThis.fetchdom=fetchdom
1
+ export { preload } from "./preload";
2
+ import { fetchdom ,fetchdomSync } from "./fetchdom";
3
+ globalThis.fetchdom=fetchdom
4
4
  globalThis.fetchdomSync=fetchdomSync
@@ -1,11 +1,11 @@
1
- const preload=(url)=>{
2
- const xhr = new XMLHttpRequest();
3
- xhr.open("GET", url, false);
4
- xhr.send();
5
- if (xhr.status === 200) {
6
- return xhr.responseText;
7
- } else {
8
- throw new Error(`Failed to fetch data from ${url}. Status: ${xhr.status}`);
9
- }
10
- }
1
+ const preload=(url)=>{
2
+ const xhr = new XMLHttpRequest();
3
+ xhr.open("GET", url, false);
4
+ xhr.send();
5
+ if (xhr.status === 200) {
6
+ return xhr.responseText;
7
+ } else {
8
+ throw new Error(`Failed to fetch data from ${url}. Status: ${xhr.status}`);
9
+ }
10
+ }
11
11
  export {preload}
@@ -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)
@@ -1,37 +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
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
37
  }