@nil-/doc 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/{components → .svelte-kit/__package__/components}/Base.svelte +6 -3
  3. package/.svelte-kit/__package__/components/Base.svelte.d.ts +9 -0
  4. package/{components → .svelte-kit/__package__/components}/block/Block.svelte +5 -3
  5. package/.svelte-kit/__package__/components/block/Block.svelte.d.ts +11 -0
  6. package/{components → .svelte-kit/__package__/components}/block/Controls.svelte +6 -5
  7. package/.svelte-kit/__package__/components/block/Controls.svelte.d.ts +9 -0
  8. package/{components → .svelte-kit/__package__/components}/block/Instance.svelte +48 -33
  9. package/.svelte-kit/__package__/components/block/Instance.svelte.d.ts +27 -0
  10. package/.svelte-kit/__package__/components/block/Params.svelte +31 -0
  11. package/.svelte-kit/__package__/components/block/Params.svelte.d.ts +9 -0
  12. package/.svelte-kit/__package__/components/block/Template.svelte +52 -0
  13. package/.svelte-kit/__package__/components/block/Template.svelte.d.ts +30 -0
  14. package/{components → .svelte-kit/__package__/components}/block/controls/Controls.svelte +15 -10
  15. package/.svelte-kit/__package__/components/block/controls/Controls.svelte.d.ts +7 -0
  16. package/{components → .svelte-kit/__package__/components}/block/controls/Styler.svelte +5 -2
  17. package/.svelte-kit/__package__/components/block/controls/Styler.svelte.d.ts +8 -0
  18. package/{components → .svelte-kit/__package__/components}/block/controls/events/Events.svelte +4 -2
  19. package/.svelte-kit/__package__/components/block/controls/events/Events.svelte.d.ts +11 -0
  20. package/.svelte-kit/__package__/components/block/controls/props/Button.svelte +19 -0
  21. package/.svelte-kit/__package__/components/block/controls/props/Button.svelte.d.ts +8 -0
  22. package/{components → .svelte-kit/__package__/components}/block/controls/props/Color.svelte +15 -12
  23. package/.svelte-kit/__package__/components/block/controls/props/Color.svelte.d.ts +11 -0
  24. package/{components → .svelte-kit/__package__/components}/block/controls/props/Component.svelte +13 -11
  25. package/.svelte-kit/__package__/components/block/controls/props/Component.svelte.d.ts +11 -0
  26. package/{components → .svelte-kit/__package__/components}/block/controls/props/Number.svelte +14 -10
  27. package/.svelte-kit/__package__/components/block/controls/props/Number.svelte.d.ts +11 -0
  28. package/.svelte-kit/__package__/components/block/controls/props/Props.svelte +17 -0
  29. package/.svelte-kit/__package__/components/block/controls/props/Props.svelte.d.ts +11 -0
  30. package/{components → .svelte-kit/__package__/components}/block/controls/props/Range.svelte +23 -20
  31. package/.svelte-kit/__package__/components/block/controls/props/Range.svelte.d.ts +11 -0
  32. package/{components → .svelte-kit/__package__/components}/block/controls/props/Select.svelte +14 -10
  33. package/.svelte-kit/__package__/components/block/controls/props/Select.svelte.d.ts +11 -0
  34. package/{components/block/controls/props/Object.svelte → .svelte-kit/__package__/components/block/controls/props/Table.svelte} +15 -11
  35. package/.svelte-kit/__package__/components/block/controls/props/Table.svelte.d.ts +12 -0
  36. package/{components → .svelte-kit/__package__/components}/block/controls/props/Text.svelte +14 -10
  37. package/.svelte-kit/__package__/components/block/controls/props/Text.svelte.d.ts +11 -0
  38. package/{components → .svelte-kit/__package__/components}/block/controls/props/Toggle.svelte +14 -10
  39. package/.svelte-kit/__package__/components/block/controls/props/Toggle.svelte.d.ts +12 -0
  40. package/{components → .svelte-kit/__package__/components}/block/controls/props/Tuple.svelte +15 -11
  41. package/.svelte-kit/__package__/components/block/controls/props/Tuple.svelte.d.ts +12 -0
  42. package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/GroupHeader.svelte +12 -11
  43. package/.svelte-kit/__package__/components/block/controls/props/misc/GroupHeader.svelte.d.ts +11 -0
  44. package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/Name.svelte +5 -3
  45. package/.svelte-kit/__package__/components/block/controls/props/misc/Name.svelte.d.ts +8 -0
  46. package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/Toggle.svelte +10 -6
  47. package/.svelte-kit/__package__/components/block/controls/props/misc/Toggle.svelte.d.ts +8 -0
  48. package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/defaulter.d.ts +1 -1
  49. package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/defaulter.js +1 -1
  50. package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/utils.d.ts +3 -3
  51. package/{components → .svelte-kit/__package__/components}/block/controls/types.d.ts +6 -6
  52. package/{components → .svelte-kit/__package__/components}/block/icons/Button.svelte +9 -5
  53. package/.svelte-kit/__package__/components/block/icons/Button.svelte.d.ts +11 -0
  54. package/{components → .svelte-kit/__package__/components}/block/icons/ControlView.svelte +3 -1
  55. package/.svelte-kit/__package__/components/block/icons/ControlView.svelte.d.ts +6 -0
  56. package/{components → .svelte-kit/__package__/components}/block/icons/Position.svelte +8 -6
  57. package/.svelte-kit/__package__/components/block/icons/Position.svelte.d.ts +6 -0
  58. package/{components → .svelte-kit/__package__/components}/layout/Container.svelte +28 -25
  59. package/.svelte-kit/__package__/components/layout/Container.svelte.d.ts +12 -0
  60. package/{components → .svelte-kit/__package__/components}/layout/Content.svelte +4 -1
  61. package/.svelte-kit/__package__/components/layout/Content.svelte.d.ts +7 -0
  62. package/.svelte-kit/__package__/components/layout/DocLayout.svelte +28 -0
  63. package/.svelte-kit/__package__/components/layout/DocLayout.svelte.d.ts +24 -0
  64. package/{components → .svelte-kit/__package__/components}/layout/Layout.svelte +42 -32
  65. package/.svelte-kit/__package__/components/layout/Layout.svelte.d.ts +22 -0
  66. package/{components → .svelte-kit/__package__/components}/layout/Scrollable.svelte +4 -1
  67. package/.svelte-kit/__package__/components/layout/Scrollable.svelte.d.ts +7 -0
  68. package/{components → .svelte-kit/__package__/components}/layout/ThemeToggle.svelte +5 -3
  69. package/.svelte-kit/__package__/components/layout/ThemeToggle.svelte.d.ts +7 -0
  70. package/{components → .svelte-kit/__package__/components}/layout/VerticalPanel.svelte +4 -1
  71. package/.svelte-kit/__package__/components/layout/VerticalPanel.svelte.d.ts +7 -0
  72. package/{components → .svelte-kit/__package__/components}/layout/icons/Icon.svelte +8 -3
  73. package/.svelte-kit/__package__/components/layout/icons/Icon.svelte.d.ts +10 -0
  74. package/.svelte-kit/__package__/components/layout/icons/Nil.svelte +43 -0
  75. package/.svelte-kit/__package__/components/layout/icons/Nil.svelte.d.ts +3 -0
  76. package/{components → .svelte-kit/__package__/components}/layout/icons/Theme.svelte +2 -2
  77. package/.svelte-kit/__package__/components/layout/icons/Theme.svelte.d.ts +6 -0
  78. package/{components → .svelte-kit/__package__/components}/navigation/Nav.svelte +14 -12
  79. package/.svelte-kit/__package__/components/navigation/Nav.svelte.d.ts +13 -0
  80. package/{components → .svelte-kit/__package__/components}/navigation/Node.svelte +22 -22
  81. package/.svelte-kit/__package__/components/navigation/Node.svelte.d.ts +18 -0
  82. package/{components → .svelte-kit/__package__/components}/navigation/Tree.svelte +11 -8
  83. package/.svelte-kit/__package__/components/navigation/Tree.svelte.d.ts +15 -0
  84. package/.svelte-kit/ambient.d.ts +275 -0
  85. package/.svelte-kit/generated/client/app.js +102 -0
  86. package/.svelte-kit/generated/client/matchers.js +1 -0
  87. package/.svelte-kit/generated/client/nodes/0.js +1 -0
  88. package/.svelte-kit/generated/client/nodes/1.js +1 -0
  89. package/.svelte-kit/generated/client/nodes/10.js +1 -0
  90. package/.svelte-kit/generated/client/nodes/11.js +1 -0
  91. package/.svelte-kit/generated/client/nodes/12.js +1 -0
  92. package/.svelte-kit/generated/client/nodes/13.js +1 -0
  93. package/.svelte-kit/generated/client/nodes/14.js +1 -0
  94. package/.svelte-kit/generated/client/nodes/15.js +1 -0
  95. package/.svelte-kit/generated/client/nodes/16.js +1 -0
  96. package/.svelte-kit/generated/client/nodes/17.js +1 -0
  97. package/.svelte-kit/generated/client/nodes/18.js +1 -0
  98. package/.svelte-kit/generated/client/nodes/19.js +1 -0
  99. package/.svelte-kit/generated/client/nodes/2.js +1 -0
  100. package/.svelte-kit/generated/client/nodes/20.js +1 -0
  101. package/.svelte-kit/generated/client/nodes/21.js +1 -0
  102. package/.svelte-kit/generated/client/nodes/22.js +1 -0
  103. package/.svelte-kit/generated/client/nodes/23.js +1 -0
  104. package/.svelte-kit/generated/client/nodes/24.js +1 -0
  105. package/.svelte-kit/generated/client/nodes/25.js +1 -0
  106. package/.svelte-kit/generated/client/nodes/26.js +1 -0
  107. package/.svelte-kit/generated/client/nodes/27.js +1 -0
  108. package/.svelte-kit/generated/client/nodes/28.js +1 -0
  109. package/.svelte-kit/generated/client/nodes/29.js +1 -0
  110. package/.svelte-kit/generated/client/nodes/3.js +1 -0
  111. package/.svelte-kit/generated/client/nodes/30.js +1 -0
  112. package/.svelte-kit/generated/client/nodes/31.js +1 -0
  113. package/.svelte-kit/generated/client/nodes/32.js +1 -0
  114. package/.svelte-kit/generated/client/nodes/33.js +1 -0
  115. package/.svelte-kit/generated/client/nodes/34.js +1 -0
  116. package/.svelte-kit/generated/client/nodes/35.js +1 -0
  117. package/.svelte-kit/generated/client/nodes/36.js +1 -0
  118. package/.svelte-kit/generated/client/nodes/37.js +1 -0
  119. package/.svelte-kit/generated/client/nodes/38.js +1 -0
  120. package/.svelte-kit/generated/client/nodes/39.js +2 -0
  121. package/.svelte-kit/generated/client/nodes/4.js +1 -0
  122. package/.svelte-kit/generated/client/nodes/40.js +2 -0
  123. package/.svelte-kit/generated/client/nodes/5.js +1 -0
  124. package/.svelte-kit/generated/client/nodes/6.js +1 -0
  125. package/.svelte-kit/generated/client/nodes/7.js +1 -0
  126. package/.svelte-kit/generated/client/nodes/8.js +1 -0
  127. package/.svelte-kit/generated/client/nodes/9.js +1 -0
  128. package/.svelte-kit/generated/root.js +3 -0
  129. package/.svelte-kit/generated/root.svelte +66 -0
  130. package/.svelte-kit/generated/server/internal.js +48 -0
  131. package/.svelte-kit/non-ambient.d.ts +25 -0
  132. package/.svelte-kit/tsconfig.json +49 -0
  133. package/.svelte-kit/types/route_meta_data.json +120 -0
  134. package/.svelte-kit/types/src/routes/$types.d.ts +24 -0
  135. package/.svelte-kit/types/src/routes/1-Motivation/$types.d.ts +18 -0
  136. package/.svelte-kit/types/src/routes/2-Overview/$types.d.ts +18 -0
  137. package/.svelte-kit/types/src/routes/3-Components/1-Layout/$types.d.ts +18 -0
  138. package/.svelte-kit/types/src/routes/3-Components/1-Layout/1-Sorting/$types.d.ts +18 -0
  139. package/.svelte-kit/types/src/routes/3-Components/1-Layout/2-Renaming/$types.d.ts +18 -0
  140. package/.svelte-kit/types/src/routes/3-Components/1-Layout/3-Title/1-Icon/$types.d.ts +18 -0
  141. package/.svelte-kit/types/src/routes/3-Components/1-Layout/3-Title/2-title/$types.d.ts +18 -0
  142. package/.svelte-kit/types/src/routes/3-Components/1-Layout/3-Title/3-title-misc/$types.d.ts +18 -0
  143. package/.svelte-kit/types/src/routes/3-Components/2-DocLayout/$types.d.ts +18 -0
  144. package/.svelte-kit/types/src/routes/3-Components/3-Block/$types.d.ts +18 -0
  145. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/1-Instance/$types.d.ts +18 -0
  146. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/2-Template/$types.d.ts +18 -0
  147. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/2-Template/1-Params/$types.d.ts +18 -0
  148. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/2-Template/2-columns/$types.d.ts +18 -0
  149. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/3-props/1-noreset/$types.d.ts +18 -0
  150. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/3-props/2-let:key/$types.d.ts +18 -0
  151. package/.svelte-kit/types/src/routes/3-Components/3-Block/1-Content/3-props/3-let:props/$types.d.ts +18 -0
  152. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/$types.d.ts +18 -0
  153. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/$types.d.ts +18 -0
  154. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/1-Text/$types.d.ts +18 -0
  155. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/2-Number/$types.d.ts +18 -0
  156. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/3-Range/$types.d.ts +18 -0
  157. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/4-Toggle/$types.d.ts +18 -0
  158. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/5-Select/$types.d.ts +18 -0
  159. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/6-Tuple/$types.d.ts +18 -0
  160. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/7-Object/$types.d.ts +18 -0
  161. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/8-Color/$types.d.ts +18 -0
  162. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/3-props/9-Button/$types.d.ts +18 -0
  163. package/.svelte-kit/types/src/routes/3-Components/3-Block/2-Controls/4-events/$types.d.ts +18 -0
  164. package/.svelte-kit/types/src/routes/3-Components/4-Theme/$types.d.ts +18 -0
  165. package/.svelte-kit/types/src/routes/3-Components/4-Theme/1-Custom CSS/$types.d.ts +18 -0
  166. package/.svelte-kit/types/src/routes/4-Internals/$types.d.ts +18 -0
  167. package/.svelte-kit/types/src/routes/4-Internals/1-Container/$types.d.ts +18 -0
  168. package/.svelte-kit/types/src/routes/4-Internals/2-Icons/1-Nil/$types.d.ts +18 -0
  169. package/.svelte-kit/types/src/routes/4-Internals/2-Icons/2-Theme/$types.d.ts +18 -0
  170. package/.svelte-kit/types/src/routes/4-Internals/2-Icons/3-Position/$types.d.ts +18 -0
  171. package/.svelte-kit/types/src/routes/4-Internals/2-Icons/4-ControlView/$types.d.ts +18 -0
  172. package/.svelte-kit/types/src/routes/4-Internals/3-Fuzzy Match/$types.d.ts +18 -0
  173. package/.svelte-kit/types/src/routes/[...rest]/$types.d.ts +21 -0
  174. package/.turbo/turbo-dev.log +1657 -0
  175. package/.turbo/turbo-package.log +14 -0
  176. package/.turbo/turbo-sync.log +4 -0
  177. package/CHANGELOG.md +432 -0
  178. package/package/LICENSE +7 -0
  179. package/package/README.md +5 -0
  180. package/package/components/Base.svelte +70 -0
  181. package/package/components/Base.svelte.d.ts +9 -0
  182. package/package/components/block/Block.svelte +78 -0
  183. package/package/components/block/Block.svelte.d.ts +11 -0
  184. package/package/components/block/Controls.svelte +13 -0
  185. package/package/components/block/Controls.svelte.d.ts +9 -0
  186. package/package/components/block/Instance.svelte +141 -0
  187. package/package/components/block/Instance.svelte.d.ts +27 -0
  188. package/package/components/block/Params.svelte +31 -0
  189. package/package/components/block/Params.svelte.d.ts +9 -0
  190. package/package/components/block/Template.svelte +52 -0
  191. package/package/components/block/Template.svelte.d.ts +30 -0
  192. package/package/components/block/action.d.ts +12 -0
  193. package/package/components/block/action.js +26 -0
  194. package/package/components/block/context.d.ts +26 -0
  195. package/package/components/block/context.js +20 -0
  196. package/package/components/block/controls/Controls.svelte +84 -0
  197. package/package/components/block/controls/Controls.svelte.d.ts +7 -0
  198. package/package/components/block/controls/Styler.svelte +79 -0
  199. package/package/components/block/controls/Styler.svelte.d.ts +8 -0
  200. package/package/components/block/controls/events/Events.svelte +39 -0
  201. package/package/components/block/controls/events/Events.svelte.d.ts +11 -0
  202. package/package/components/block/controls/props/Button.svelte +19 -0
  203. package/package/components/block/controls/props/Button.svelte.d.ts +8 -0
  204. package/package/components/block/controls/props/Color.svelte +120 -0
  205. package/package/components/block/controls/props/Color.svelte.d.ts +11 -0
  206. package/package/components/block/controls/props/Component.svelte +57 -0
  207. package/package/components/block/controls/props/Component.svelte.d.ts +11 -0
  208. package/package/components/block/controls/props/Number.svelte +33 -0
  209. package/package/components/block/controls/props/Number.svelte.d.ts +11 -0
  210. package/package/components/block/controls/props/Props.svelte +17 -0
  211. package/package/components/block/controls/props/Props.svelte.d.ts +11 -0
  212. package/package/components/block/controls/props/Range.svelte +82 -0
  213. package/package/components/block/controls/props/Range.svelte.d.ts +11 -0
  214. package/package/components/block/controls/props/Select.svelte +38 -0
  215. package/package/components/block/controls/props/Select.svelte.d.ts +11 -0
  216. package/package/components/block/controls/props/Table.svelte +31 -0
  217. package/package/components/block/controls/props/Table.svelte.d.ts +12 -0
  218. package/package/components/block/controls/props/Text.svelte +33 -0
  219. package/package/components/block/controls/props/Text.svelte.d.ts +11 -0
  220. package/package/components/block/controls/props/Toggle.svelte +26 -0
  221. package/package/components/block/controls/props/Toggle.svelte.d.ts +12 -0
  222. package/package/components/block/controls/props/Tuple.svelte +31 -0
  223. package/package/components/block/controls/props/Tuple.svelte.d.ts +12 -0
  224. package/package/components/block/controls/props/misc/GroupHeader.svelte +35 -0
  225. package/package/components/block/controls/props/misc/GroupHeader.svelte.d.ts +11 -0
  226. package/package/components/block/controls/props/misc/Name.svelte +45 -0
  227. package/package/components/block/controls/props/misc/Name.svelte.d.ts +8 -0
  228. package/package/components/block/controls/props/misc/Toggle.svelte +90 -0
  229. package/package/components/block/controls/props/misc/Toggle.svelte.d.ts +8 -0
  230. package/package/components/block/controls/props/misc/defaulter.d.ts +11 -0
  231. package/package/components/block/controls/props/misc/defaulter.js +50 -0
  232. package/package/components/block/controls/props/misc/nformat.d.ts +1 -0
  233. package/package/components/block/controls/props/misc/nformat.js +16 -0
  234. package/package/components/block/controls/props/misc/utils.d.ts +13 -0
  235. package/package/components/block/controls/props/misc/utils.js +22 -0
  236. package/package/components/block/controls/types.d.ts +105 -0
  237. package/package/components/block/icons/Button.svelte +34 -0
  238. package/package/components/block/icons/Button.svelte.d.ts +11 -0
  239. package/package/components/block/icons/ControlView.svelte +25 -0
  240. package/package/components/block/icons/ControlView.svelte.d.ts +6 -0
  241. package/package/components/block/icons/Position.svelte +32 -0
  242. package/package/components/block/icons/Position.svelte.d.ts +6 -0
  243. package/package/components/block/types.d.ts +9 -0
  244. package/package/components/block/utils.d.ts +4 -0
  245. package/package/components/block/utils.js +34 -0
  246. package/package/components/context.d.ts +4 -0
  247. package/package/components/context.js +5 -0
  248. package/package/components/layout/Container.svelte +189 -0
  249. package/package/components/layout/Container.svelte.d.ts +12 -0
  250. package/package/components/layout/Content.svelte +26 -0
  251. package/package/components/layout/Content.svelte.d.ts +7 -0
  252. package/package/components/layout/DocLayout.svelte +28 -0
  253. package/package/components/layout/DocLayout.svelte.d.ts +24 -0
  254. package/package/components/layout/Layout.svelte +160 -0
  255. package/package/components/layout/Layout.svelte.d.ts +22 -0
  256. package/package/components/layout/Scrollable.svelte +22 -0
  257. package/package/components/layout/Scrollable.svelte.d.ts +7 -0
  258. package/package/components/layout/ThemeToggle.svelte +19 -0
  259. package/package/components/layout/ThemeToggle.svelte.d.ts +7 -0
  260. package/package/components/layout/VerticalPanel.svelte +15 -0
  261. package/package/components/layout/VerticalPanel.svelte.d.ts +7 -0
  262. package/package/components/layout/action.d.ts +16 -0
  263. package/package/components/layout/action.js +54 -0
  264. package/package/components/layout/icons/Icon.svelte +24 -0
  265. package/package/components/layout/icons/Icon.svelte.d.ts +10 -0
  266. package/package/components/layout/icons/Nil.svelte +43 -0
  267. package/package/components/layout/icons/Nil.svelte.d.ts +3 -0
  268. package/package/components/layout/icons/Theme.svelte +63 -0
  269. package/package/components/layout/icons/Theme.svelte.d.ts +6 -0
  270. package/package/components/navigation/Nav.svelte +113 -0
  271. package/package/components/navigation/Nav.svelte.d.ts +13 -0
  272. package/package/components/navigation/Node.svelte +113 -0
  273. package/package/components/navigation/Node.svelte.d.ts +18 -0
  274. package/package/components/navigation/Tree.svelte +26 -0
  275. package/package/components/navigation/Tree.svelte.d.ts +15 -0
  276. package/package/components/navigation/types.d.ts +12 -0
  277. package/package/components/navigation/utils/fuzz.d.ts +2 -0
  278. package/package/components/navigation/utils/fuzz.js +122 -0
  279. package/package/components/navigation/utils/renamer.d.ts +5 -0
  280. package/package/components/navigation/utils/renamer.js +12 -0
  281. package/package/components/navigation/utils/sort.d.ts +2 -0
  282. package/package/components/navigation/utils/sort.js +3 -0
  283. package/package/components/navigation/utils/sorter.d.ts +12 -0
  284. package/package/components/navigation/utils/sorter.js +35 -0
  285. package/package/index.d.ts +13 -0
  286. package/package/index.js +12 -0
  287. package/package/package.json +29 -0
  288. package/package.json +56 -27
  289. package/src/app.d.ts +10 -0
  290. package/src/app.html +33 -0
  291. package/src/lib/components/Base.svelte +77 -0
  292. package/src/lib/components/block/Block.svelte +84 -0
  293. package/src/lib/components/block/Controls.svelte +20 -0
  294. package/src/lib/components/block/Instance.svelte +172 -0
  295. package/src/lib/components/block/Params.svelte +35 -0
  296. package/src/lib/components/block/Template.svelte +78 -0
  297. package/src/lib/components/block/action.ts +32 -0
  298. package/src/lib/components/block/context.ts +43 -0
  299. package/src/lib/components/block/controls/Controls.svelte +96 -0
  300. package/src/lib/components/block/controls/Styler.svelte +84 -0
  301. package/src/lib/components/block/controls/events/Events.svelte +43 -0
  302. package/src/lib/components/block/controls/props/Button.svelte +26 -0
  303. package/src/lib/components/block/controls/props/Color.svelte +140 -0
  304. package/src/lib/components/block/controls/props/Component.svelte +70 -0
  305. package/src/lib/components/block/controls/props/Number.svelte +44 -0
  306. package/src/lib/components/block/controls/props/Props.svelte +28 -0
  307. package/src/lib/components/block/controls/props/Range.svelte +97 -0
  308. package/src/lib/components/block/controls/props/Select.svelte +49 -0
  309. package/src/lib/components/block/controls/props/Table.svelte +42 -0
  310. package/src/lib/components/block/controls/props/Text.svelte +44 -0
  311. package/src/lib/components/block/controls/props/Toggle.svelte +37 -0
  312. package/src/lib/components/block/controls/props/Tuple.svelte +43 -0
  313. package/src/lib/components/block/controls/props/misc/GroupHeader.svelte +45 -0
  314. package/src/lib/components/block/controls/props/misc/Name.svelte +50 -0
  315. package/src/lib/components/block/controls/props/misc/Toggle.svelte +98 -0
  316. package/src/lib/components/block/controls/props/misc/defaulter.test.ts +137 -0
  317. package/src/lib/components/block/controls/props/misc/defaulter.ts +63 -0
  318. package/src/lib/components/block/controls/props/misc/nformat.test.ts +204 -0
  319. package/src/lib/components/block/controls/props/misc/nformat.ts +16 -0
  320. package/src/lib/components/block/controls/props/misc/utils.ts +38 -0
  321. package/src/lib/components/block/controls/types.d.ts +105 -0
  322. package/src/lib/components/block/icons/Button.svelte +42 -0
  323. package/src/lib/components/block/icons/ControlView.svelte +28 -0
  324. package/src/lib/components/block/icons/Position.svelte +36 -0
  325. package/src/lib/components/block/types.d.ts +9 -0
  326. package/src/lib/components/block/utils.test.ts +82 -0
  327. package/src/lib/components/block/utils.ts +40 -0
  328. package/src/lib/components/context.ts +10 -0
  329. package/src/lib/components/layout/Container.svelte +210 -0
  330. package/src/lib/components/layout/Content.svelte +29 -0
  331. package/src/lib/components/layout/DocLayout.svelte +51 -0
  332. package/src/lib/components/layout/Layout.svelte +187 -0
  333. package/src/lib/components/layout/Scrollable.svelte +25 -0
  334. package/src/lib/components/layout/ThemeToggle.svelte +25 -0
  335. package/src/lib/components/layout/VerticalPanel.svelte +18 -0
  336. package/src/lib/components/layout/action.ts +80 -0
  337. package/src/lib/components/layout/icons/Icon.svelte +32 -0
  338. package/src/lib/components/layout/icons/Nil.svelte +44 -0
  339. package/src/lib/components/layout/icons/Theme.svelte +66 -0
  340. package/src/lib/components/navigation/Nav.svelte +144 -0
  341. package/src/lib/components/navigation/Node.svelte +129 -0
  342. package/src/lib/components/navigation/Tree.svelte +37 -0
  343. package/src/lib/components/navigation/types.d.ts +12 -0
  344. package/src/lib/components/navigation/utils/fuzz.ts +175 -0
  345. package/src/lib/components/navigation/utils/renamer.test.ts +18 -0
  346. package/src/lib/components/navigation/utils/renamer.ts +15 -0
  347. package/src/lib/components/navigation/utils/sort.test.ts +37 -0
  348. package/src/lib/components/navigation/utils/sort.ts +5 -0
  349. package/src/lib/components/navigation/utils/sorter.test.ts +24 -0
  350. package/src/lib/components/navigation/utils/sorter.ts +43 -0
  351. package/src/lib/index.ts +23 -0
  352. package/src/routes/+layout.server.ts +1 -0
  353. package/src/routes/+layout.svelte +63 -0
  354. package/src/routes/1-Motivation/+page.svx +37 -0
  355. package/src/routes/2-Overview/+page.svx +96 -0
  356. package/src/routes/3-Components/1-Layout/+page.svelte +46 -0
  357. package/src/routes/3-Components/1-Layout/1-Sorting/+page.svelte +48 -0
  358. package/src/routes/3-Components/1-Layout/1-Sorting/MD.svx +32 -0
  359. package/src/routes/3-Components/1-Layout/2-Renaming/+page.svelte +50 -0
  360. package/src/routes/3-Components/1-Layout/2-Renaming/MD.svx +26 -0
  361. package/src/routes/3-Components/1-Layout/3-Title/1-Icon/+page.svelte +50 -0
  362. package/src/routes/3-Components/1-Layout/3-Title/1-Icon/MD.svx +34 -0
  363. package/src/routes/3-Components/1-Layout/3-Title/2-title/+page.svelte +41 -0
  364. package/src/routes/3-Components/1-Layout/3-Title/2-title/MD.svx +14 -0
  365. package/src/routes/3-Components/1-Layout/3-Title/3-title-misc/+page.svelte +49 -0
  366. package/src/routes/3-Components/1-Layout/3-Title/3-title-misc/MD.svx +26 -0
  367. package/src/routes/3-Components/1-Layout/MD.svx +49 -0
  368. package/src/routes/3-Components/2-DocLayout/+page.svelte +50 -0
  369. package/src/routes/3-Components/2-DocLayout/MD.svx +27 -0
  370. package/src/routes/3-Components/3-Block/+page.svx +65 -0
  371. package/src/routes/3-Components/3-Block/1-Content/1-Instance/+page.svx +60 -0
  372. package/src/routes/3-Components/3-Block/1-Content/2-Template/+page.svx +74 -0
  373. package/src/routes/3-Components/3-Block/1-Content/2-Template/1-Params/+page.svx +55 -0
  374. package/src/routes/3-Components/3-Block/1-Content/2-Template/2-columns/+page.svx +62 -0
  375. package/src/routes/3-Components/3-Block/1-Content/3-props/1-noreset/+page.svx +68 -0
  376. package/src/routes/3-Components/3-Block/1-Content/3-props/2-let:key/+page.svx +72 -0
  377. package/src/routes/3-Components/3-Block/1-Content/3-props/3-let:props/+page.svx +151 -0
  378. package/src/routes/3-Components/3-Block/2-Controls/+page.svx +26 -0
  379. package/src/routes/3-Components/3-Block/2-Controls/3-props/+page.svelte +73 -0
  380. package/src/routes/3-Components/3-Block/2-Controls/3-props/1-Text/+page.svx +40 -0
  381. package/src/routes/3-Components/3-Block/2-Controls/3-props/2-Number/+page.svx +40 -0
  382. package/src/routes/3-Components/3-Block/2-Controls/3-props/3-Range/+page.svx +52 -0
  383. package/src/routes/3-Components/3-Block/2-Controls/3-props/4-Toggle/+page.svx +40 -0
  384. package/src/routes/3-Components/3-Block/2-Controls/3-props/5-Select/+page.svx +46 -0
  385. package/src/routes/3-Components/3-Block/2-Controls/3-props/6-Tuple/+page.svx +60 -0
  386. package/src/routes/3-Components/3-Block/2-Controls/3-props/7-Object/+page.svx +61 -0
  387. package/src/routes/3-Components/3-Block/2-Controls/3-props/8-Color/+page.svx +49 -0
  388. package/src/routes/3-Components/3-Block/2-Controls/3-props/9-Button/+page.svx +56 -0
  389. package/src/routes/3-Components/3-Block/2-Controls/3-props/Detail.svelte +20 -0
  390. package/src/routes/3-Components/3-Block/2-Controls/3-props/Layout.svelte +86 -0
  391. package/src/routes/3-Components/3-Block/2-Controls/3-props/MD.svx +150 -0
  392. package/src/routes/3-Components/3-Block/2-Controls/4-events/+page.svelte +49 -0
  393. package/src/routes/3-Components/3-Block/Component.svelte +87 -0
  394. package/src/routes/3-Components/4-Theme/+page.svelte +71 -0
  395. package/src/routes/3-Components/4-Theme/1-Custom CSS/+page.svelte +102 -0
  396. package/src/routes/3-Components/4-Theme/MD.svx +41 -0
  397. package/src/routes/4-Internals/+page.mdsvelte +12 -0
  398. package/src/routes/4-Internals/1-Container/+page.svelte +50 -0
  399. package/src/routes/4-Internals/1-Container/Content.svelte +39 -0
  400. package/src/routes/4-Internals/1-Container/MD.svx +13 -0
  401. package/src/routes/4-Internals/2-Icons/1-Nil/+page.svelte +14 -0
  402. package/src/routes/4-Internals/2-Icons/2-Theme/+page.svelte +29 -0
  403. package/src/routes/4-Internals/2-Icons/3-Position/+page.svelte +23 -0
  404. package/src/routes/4-Internals/2-Icons/4-ControlView/+page.svelte +23 -0
  405. package/src/routes/4-Internals/3-Fuzzy Match/+page.svelte +86 -0
  406. package/src/routes/4-Internals/3-Fuzzy Match/eval.ts +40 -0
  407. package/src/routes/[...rest]/+page.ts +5 -0
  408. package/src/static/assets/admonitions.css +113 -0
  409. package/src/static/assets/favicon.svg +15 -0
  410. package/src/static/assets/icon.png +0 -0
  411. package/src/static/assets/markdown.css +1054 -0
  412. package/svelte.config.js +23 -0
  413. package/tsconfig.json +14 -0
  414. package/vite.config.ts +11 -0
  415. package/components/Base.svelte.d.ts +0 -19
  416. package/components/block/Block.svelte.d.ts +0 -20
  417. package/components/block/Controls.svelte.d.ts +0 -19
  418. package/components/block/Instance.svelte.d.ts +0 -24
  419. package/components/block/Params.svelte +0 -21
  420. package/components/block/Params.svelte.d.ts +0 -19
  421. package/components/block/Template.svelte +0 -35
  422. package/components/block/Template.svelte.d.ts +0 -27
  423. package/components/block/controls/Controls.svelte.d.ts +0 -17
  424. package/components/block/controls/Styler.svelte.d.ts +0 -18
  425. package/components/block/controls/events/Events.svelte.d.ts +0 -21
  426. package/components/block/controls/props/Button.svelte +0 -18
  427. package/components/block/controls/props/Button.svelte.d.ts +0 -18
  428. package/components/block/controls/props/Color.svelte.d.ts +0 -21
  429. package/components/block/controls/props/Component.svelte.d.ts +0 -21
  430. package/components/block/controls/props/Number.svelte.d.ts +0 -21
  431. package/components/block/controls/props/Object.svelte.d.ts +0 -22
  432. package/components/block/controls/props/Props.svelte +0 -10
  433. package/components/block/controls/props/Props.svelte.d.ts +0 -20
  434. package/components/block/controls/props/Range.svelte.d.ts +0 -21
  435. package/components/block/controls/props/Select.svelte.d.ts +0 -21
  436. package/components/block/controls/props/Text.svelte.d.ts +0 -21
  437. package/components/block/controls/props/Toggle.svelte.d.ts +0 -21
  438. package/components/block/controls/props/Tuple.svelte.d.ts +0 -22
  439. package/components/block/controls/props/misc/GroupHeader.svelte.d.ts +0 -21
  440. package/components/block/controls/props/misc/Name.svelte.d.ts +0 -18
  441. package/components/block/controls/props/misc/Toggle.svelte.d.ts +0 -19
  442. package/components/block/icons/Button.svelte.d.ts +0 -35
  443. package/components/block/icons/ControlView.svelte.d.ts +0 -16
  444. package/components/block/icons/Position.svelte.d.ts +0 -16
  445. package/components/layout/Container.svelte.d.ts +0 -22
  446. package/components/layout/Content.svelte.d.ts +0 -27
  447. package/components/layout/DocLayout.svelte +0 -34
  448. package/components/layout/DocLayout.svelte.d.ts +0 -38
  449. package/components/layout/Layout.svelte.d.ts +0 -31
  450. package/components/layout/Scrollable.svelte.d.ts +0 -27
  451. package/components/layout/ThemeToggle.svelte.d.ts +0 -17
  452. package/components/layout/VerticalPanel.svelte.d.ts +0 -27
  453. package/components/layout/icons/Icon.svelte.d.ts +0 -21
  454. package/components/layout/icons/Nil.svelte +0 -40
  455. package/components/layout/icons/Nil.svelte.d.ts +0 -14
  456. package/components/layout/icons/Theme.svelte.d.ts +0 -16
  457. package/components/navigation/Nav.svelte.d.ts +0 -22
  458. package/components/navigation/Node.svelte.d.ts +0 -26
  459. package/components/navigation/Tree.svelte.d.ts +0 -24
  460. /package/{components → .svelte-kit/__package__/components}/block/action.d.ts +0 -0
  461. /package/{components → .svelte-kit/__package__/components}/block/action.js +0 -0
  462. /package/{components → .svelte-kit/__package__/components}/block/context.d.ts +0 -0
  463. /package/{components → .svelte-kit/__package__/components}/block/context.js +0 -0
  464. /package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/nformat.d.ts +0 -0
  465. /package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/nformat.js +0 -0
  466. /package/{components → .svelte-kit/__package__/components}/block/controls/props/misc/utils.js +0 -0
  467. /package/{components → .svelte-kit/__package__/components}/block/types.d.ts +0 -0
  468. /package/{components → .svelte-kit/__package__/components}/block/utils.d.ts +0 -0
  469. /package/{components → .svelte-kit/__package__/components}/block/utils.js +0 -0
  470. /package/{components → .svelte-kit/__package__/components}/context.d.ts +0 -0
  471. /package/{components → .svelte-kit/__package__/components}/context.js +0 -0
  472. /package/{components → .svelte-kit/__package__/components}/layout/action.d.ts +0 -0
  473. /package/{components → .svelte-kit/__package__/components}/layout/action.js +0 -0
  474. /package/{components → .svelte-kit/__package__/components}/navigation/types.d.ts +0 -0
  475. /package/{components → .svelte-kit/__package__/components}/navigation/utils/fuzz.d.ts +0 -0
  476. /package/{components → .svelte-kit/__package__/components}/navigation/utils/fuzz.js +0 -0
  477. /package/{components → .svelte-kit/__package__/components}/navigation/utils/renamer.d.ts +0 -0
  478. /package/{components → .svelte-kit/__package__/components}/navigation/utils/renamer.js +0 -0
  479. /package/{components → .svelte-kit/__package__/components}/navigation/utils/sort.d.ts +0 -0
  480. /package/{components → .svelte-kit/__package__/components}/navigation/utils/sort.js +0 -0
  481. /package/{components → .svelte-kit/__package__/components}/navigation/utils/sorter.d.ts +0 -0
  482. /package/{components → .svelte-kit/__package__/components}/navigation/utils/sorter.js +0 -0
  483. /package/{index.d.ts → .svelte-kit/__package__/index.d.ts} +0 -0
  484. /package/{index.js → .svelte-kit/__package__/index.js} +0 -0
@@ -0,0 +1,43 @@
1
+ import type { Sorter } from "../types";
2
+
3
+ const match = /(\d+)-(.+)/;
4
+
5
+ const sorterT = <T extends string | number>(l: T, r: T) => {
6
+ if (l < r) {
7
+ return -1;
8
+ }
9
+ if (l > r) {
10
+ return +1;
11
+ }
12
+ return 0;
13
+ };
14
+
15
+ /**
16
+ * Compares two texts for sorting.
17
+ *
18
+ * If the texts follows `<I>-<Name>` format,
19
+ * sorting is done by comparing the numbers in the prefix.
20
+ *
21
+ * If only one of the texts follows `<I>-<Name>` format,
22
+ * the text that follows the format is considered as higher in order.
23
+ *
24
+ * Else comparison is done using built-in `string` comparison.
25
+ */
26
+ export const sorter = ((l: string, r: string): -1 | 0 | 1 => {
27
+ const lmatch = match.exec(l);
28
+ const rmatch = match.exec(r);
29
+
30
+ if (null == lmatch && null == rmatch) {
31
+ return sorterT(l, r);
32
+ }
33
+
34
+ if (null == lmatch) {
35
+ return 1;
36
+ }
37
+
38
+ if (null == rmatch) {
39
+ return -1;
40
+ }
41
+
42
+ return sorterT(parseInt(lmatch[1]), parseInt(rmatch[1])) || sorterT(lmatch[2], rmatch[2]);
43
+ }) satisfies Sorter;
@@ -0,0 +1,23 @@
1
+ export { renamer } from "./components/navigation/utils/renamer";
2
+ export { sorter } from "./components/navigation/utils/sorter";
3
+
4
+ export type {
5
+ Prop,
6
+ Event,
7
+ PropType,
8
+ Detailed,
9
+ Flattened,
10
+ Unionized
11
+ } from "./components/block/controls/types";
12
+
13
+ export { default as Layout } from "./components/layout/Layout.svelte";
14
+ export { default as DocLayout } from "./components/layout/DocLayout.svelte";
15
+ export { default as Instance } from "./components/block/Instance.svelte";
16
+ export { default as Block } from "./components/block/Block.svelte";
17
+ export { default as Template } from "./components/block/Template.svelte";
18
+ export { default as Controls } from "./components/block/Controls.svelte";
19
+ export { default as Params } from "./components/block/Params.svelte";
20
+
21
+ export { default as Icon } from "./components/layout/icons/Icon.svelte";
22
+ export { default as Nil } from "./components/layout/icons/Nil.svelte";
23
+ export { default as Theme } from "./components/layout/icons/Theme.svelte";
@@ -0,0 +1 @@
1
+ export const ssr = false;
@@ -0,0 +1,63 @@
1
+ <script lang="ts" module>
2
+ declare const __VERSION__: string;
3
+ </script>
4
+
5
+ <script lang="ts">
6
+ import { DocLayout, renamer, sorter } from "$lib";
7
+ import { build } from "@nil-/doc-kit";
8
+ import Icon from "$lib/components/layout/icons/Icon.svelte";
9
+ import Nil from "$lib/components/layout/icons/Nil.svelte";
10
+ import { setContext, type Snippet } from "svelte";
11
+
12
+ const settings = build(import.meta.glob(["./**/+page.svelte", "./**/+page.svx"]));
13
+ setContext("urls", settings.data);
14
+
15
+ let { children }: { children?: Snippet } = $props();
16
+ </script>
17
+
18
+ <svelte:head>
19
+ <title>@nil-/doc</title>
20
+ <link
21
+ href="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-solarizedlight.min.css"
22
+ rel="stylesheet"
23
+ />
24
+ <link rel="stylesheet" href="/assets/markdown.css" />
25
+ <link rel="stylesheet" href="/assets/admonitions.css" />
26
+ </svelte:head>
27
+
28
+ <DocLayout {settings} {renamer} {sorter}>
29
+ {#snippet title()}
30
+ <Icon
31
+ title="Open @nil-/mono repo: https://github.com/njaldea/mono"
32
+ onclick={() => window.open("https://github.com/njaldea/mono", "_blank")}
33
+ >
34
+ <Nil />
35
+ </Icon>
36
+ <span>@nil-/doc {__VERSION__}</span>
37
+ {/snippet}
38
+ <div class="markdown-body">
39
+ {@render children?.()}
40
+ </div>
41
+ </DocLayout>
42
+
43
+ <style>
44
+ .markdown-body {
45
+ min-width: 600px;
46
+ max-width: 1000px;
47
+ width: 100%;
48
+ margin-top: 0.7rem;
49
+ margin-left: auto;
50
+ margin-right: auto;
51
+ box-sizing: border-box;
52
+ transition: background-color 350ms;
53
+ background-color: transparent !important;
54
+ }
55
+
56
+ .markdown-body :global(pre) {
57
+ transition: background-color 350ms;
58
+ }
59
+
60
+ .markdown-body :global(table) {
61
+ margin: 0;
62
+ }
63
+ </style>
@@ -0,0 +1,37 @@
1
+ # Motivation
2
+
3
+ `@nil-/doc` is my experimentation for personal learning experience.
4
+
5
+ Personally, it would be ideal to use existing tools to do a specific task. Unfortunately, I have the heart of a C++ programmer where in I feel excitement implementing things on my own.
6
+
7
+ Joking aside, this library (not a framework) is intended to ease documentation by providing components that can be used independently.
8
+
9
+ This is inspired by <a href="https://storybook.js.org" target="_blank" rel="noopener noreferrer">storybook</a> and <a href="https://bookit.leveluptutorials.com" target="_blank" rel="noopener noreferrer">bookit</a>.
10
+
11
+ As great as they are, especially on the part that I lack expertise which is styling, I feel hindered in using them because of the following:
12
+
13
+ Storybook:
14
+
15
+ - setup is too heavy to my liking
16
+ - a little bit slow spawning up
17
+ - stories structure does not easily sit well with my brain
18
+
19
+ Bookit:
20
+
21
+ - its development is a bit slow and I would like to use something asap
22
+ - documentation and setup is not that easy to do
23
+ - follows similar folder structure (story search) with storybook
24
+
25
+ As such, `@nil-/doc` is my flavor of doing documentation for sveltekit-based projects.
26
+
27
+ SvelteKit for library projects is actually a very easy setup regardless if the library is composed of Svelte components, or pure vanilla JS.
28
+
29
+ With this in mind, SvelteKit's routing feature is wasted since it is not really used for the library.
30
+
31
+ Thus I decided to use everything that SvelteKit provides:
32
+ - lib folder + `svelte-package` for the actual library
33
+ - routes folder + `vite dev` for the documentation
34
+
35
+ :::important Note!!!
36
+ Instead of searching for story files, `@nil-/doc` uses the routes to define the pages of the documentation
37
+ :::
@@ -0,0 +1,96 @@
1
+ # Overview
2
+
3
+ ## Installation
4
+
5
+ > pnpm install -D @nil-/doc
6
+
7
+ ## Usage
8
+
9
+ The examples below showcases how `@nil-/doc` is used with SvelteKit.
10
+
11
+ All svelte components coming from this library are framework agnostic.
12
+
13
+ ---
14
+
15
+ ### +layout.server.js
16
+
17
+ ssr would most likely be required to be disabled
18
+
19
+ ```js
20
+ export const ssr = false;
21
+ ```
22
+
23
+ ### +layout.svelte
24
+
25
+ `+layout.svelte` serves as the glue layer between the library and SvelteKit.
26
+
27
+ [`Layout`](/3-Components/1-Layout) component is provided for the user.
28
+
29
+ ```svelte
30
+ <script>
31
+ import { type Snippet } from "svelte";
32
+ import { Layout } from "@nil-/doc";
33
+ import { build } from "@nil-/doc-kit";
34
+
35
+ // see more details in next section
36
+ const { data, current, navigate, theme, offset, panel } =
37
+ build(import.meta.glob("./**/+page.svelte"));
38
+
39
+ /* @type{{ children:? import("svelte").Snippet }} */
40
+ let { children } = $props();
41
+ </script>
42
+
43
+ <Layout
44
+ {data}
45
+ current={$current}
46
+ on:navigate={navigate}
47
+ bind:theme={$theme}
48
+ bind:offset={$offset}
49
+ bind:panel={$panel}
50
+ >
51
+ <svelte:fragment slot="title">@nil-/doc</svelte:fragment>
52
+ {@render children.?()}
53
+ </Layout>
54
+ ```
55
+
56
+ ---
57
+
58
+ ### @nil-/doc-kit
59
+
60
+ `@nil-/doc-kit` provides a utility method for sveltekit use as demonstrated by the example above.
61
+
62
+ Expected arguments:
63
+
64
+ <div>
65
+
66
+ | argument | type | | purpose |
67
+ | -------- | ------------------------ | -------- | -------------------------------------------- |
68
+ | detail | `Record<string, string>` | | information from `import.meta.glob` |
69
+ | prefix | `string` | optional | use when layout is not in the root directory |
70
+
71
+ </div>
72
+
73
+ Currently returns an object with the following properties:
74
+
75
+ <div>
76
+
77
+ | property | type | purpose |
78
+ | --------- | ------------------------------------------- | ----------------------------------------------------------------------------- |
79
+ | data | `string[]` | an array of string representing each routes |
80
+ | current | `Readable<string &#124; null>` | a store representing the current route post processed to remove group layout |
81
+ | theme | `Writable<"light" &#124; "dark">` | a store responsible in keeping the theme state through localStorage |
82
+ | offset | `Writable<number>` | a store responsible in keeping the offset (nav width) through localStorage |
83
+ | panel | `Writable<"bottom" &#124; "right">` | a store responsible in keeping the panel position through localStorage |
84
+ | navigate | `(e: { detail: string }) => Promise<void>` | a callback responsible in changing the page |
85
+
86
+ </div>
87
+
88
+ ---
89
+
90
+ <style>
91
+ div {
92
+ display: flex;
93
+ flex-direction: column;
94
+ align-items: center;
95
+ }
96
+ </style>
@@ -0,0 +1,46 @@
1
+ <script lang="ts">
2
+ import { Layout, Block, Instance } from "$lib";
3
+
4
+ import MD from "./MD.svx";
5
+
6
+ const routes = ["/group1", "/group2", "/group1/subgroup/group1"];
7
+ let current = $state(routes[0]);
8
+ </script>
9
+
10
+ <MD></MD>
11
+
12
+ <Block>
13
+ <Instance noreset>
14
+ <div class="layout">
15
+ <Layout
16
+ data={routes}
17
+ current={current}
18
+ onnavigate={e => current = e.detail}
19
+ >
20
+ {#snippet title()}
21
+ <div>Layout Component</div>
22
+ {/snippet}
23
+ <div class="content">content {current}</div>
24
+ </Layout>
25
+ </div>
26
+ </Instance>
27
+ </Block>
28
+
29
+ <style>
30
+ .layout {
31
+ height: 500px;
32
+ }
33
+
34
+ .content {
35
+ width: 100%;
36
+ height: 100%;
37
+ padding: 10px;
38
+ box-sizing: border-box;
39
+ }
40
+
41
+ .center {
42
+ display: flex;
43
+ flex-direction: column;
44
+ align-items: center;
45
+ }
46
+ </style>
@@ -0,0 +1,48 @@
1
+ <script lang="ts">
2
+ import { Layout, sorter, Block, Instance, Controls } from "$lib";
3
+
4
+ import MD from "./MD.svx";
5
+
6
+ const routes = [ "/02-zephyr", "/banana", "/apple", "/1-random" ];
7
+ let current = $state(routes[0]);
8
+ </script>
9
+
10
+ <MD></MD>
11
+
12
+ <Block>
13
+ <Instance defaults={{ override: false }} >
14
+ {#snippet children({ values: { override } })}
15
+ <div class="layout">
16
+ <Layout
17
+ data={routes}
18
+ {current}
19
+ onnavigate={e => current = e.detail}
20
+ sorter={override ? sorter : undefined}
21
+ >
22
+ {#snippet title()}
23
+ <div>Sorting</div>
24
+ {/snippet}
25
+ <div class="content">
26
+ <p>Current: {current}</p>
27
+ <p>Using {override ? "custom" : "default"} sorter</p>
28
+ </div>
29
+ </Layout>
30
+ </div>
31
+ {/snippet}
32
+ </Instance>
33
+ <Controls props={[[ "override", "toggle" ]]} />
34
+ </Block>
35
+
36
+ <style>
37
+ .layout {
38
+ height: 500px;
39
+ }
40
+
41
+ .content {
42
+ width: 100%;
43
+ height: 100%;
44
+ padding: 10px;
45
+ outline: solid white 1px;
46
+ box-sizing: border-box;
47
+ }
48
+ </style>
@@ -0,0 +1,32 @@
1
+ # Sorting
2
+
3
+ Since we are using directory-like structure for navigation, there is a need to be able to control the order of items to be listed in the tree and how it will be presented to the tree.
4
+
5
+ **By default**, <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare" target="_blank" rel="noopener noreferrer">default string ordering</a> is used.
6
+
7
+ `sorter` prop is the callback used to override how to order the directories in the tree.
8
+
9
+ For ease of use, `@nil-/doc` provides a `sorter` method where:
10
+ - directories that matches `/(\d+)-(.+)/` `[number]-[text]`
11
+ - considered higher in the sorting order
12
+ - when compared with other directories that matches the same format, the number prefix is used for ordering
13
+
14
+
15
+ ```svelte
16
+ <script>
17
+ import { sorter } from "$nil-/doc";
18
+ </script>
19
+
20
+ <Layout
21
+ data={[ "/02-zephyr", "/banana", "/apple", "/1-random" ]}
22
+ current={"/02-zephyr"}
23
+ on:navigate
24
+ sorter={override ? sorter : undefined}
25
+ >
26
+ <div slot="title">Sorting</div>
27
+ <div>
28
+ <p>Current: {current}</p>
29
+ <p>Using {override ? "custom" : "default"} sorter</p>
30
+ </div>
31
+ </Layout>
32
+ ```
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import { Layout, renamer, Block, Instance, Controls } from "$lib";
3
+
4
+ import MD from "./MD.svx";
5
+
6
+ const routes = [ "/02-zephyr", "/banana", "/apple", "/1-random" ];
7
+ let current = $state(routes[0]);
8
+ </script>
9
+
10
+ <MD></MD>
11
+
12
+ <Block>
13
+ <Instance defaults={{ override_renamer: false }} >
14
+ {#snippet children({ values: { override_renamer } })}
15
+ <div class="layout">
16
+ <Layout
17
+ data={routes}
18
+ {current}
19
+ onnavigate={e => current = e.detail}
20
+ renamer={override_renamer ? renamer : undefined}
21
+ >
22
+ {#snippet title()}
23
+ <div>Renaming</div>
24
+ {/snippet}
25
+ <div class="content">
26
+ <p>Current: {current}</p>
27
+ <p>Using {override_renamer ? "custom" : "default"} renamer</p>
28
+ </div>
29
+ </Layout>
30
+ </div>
31
+ {/snippet}
32
+ </Instance>
33
+ <Controls
34
+ props={[[ "override_renamer", "toggle" ]]}
35
+ />
36
+ </Block>
37
+
38
+ <style>
39
+ .layout {
40
+ height: 500px;
41
+ }
42
+
43
+ .content {
44
+ width: 100%;
45
+ height: 100%;
46
+ padding: 10px;
47
+ outline: solid white 1px;
48
+ box-sizing: border-box;
49
+ }
50
+ </style>
@@ -0,0 +1,26 @@
1
+ # Renaming
2
+
3
+ In cases where the directory name can't be used as it when listed in the tree, `renamer` prop provides a way to rename the directory displayed.
4
+
5
+ This is most useful when using a `sorter` where parts of the directory name is used to indicate sorting order.
6
+
7
+ For ease of use, `@nil-/doc` provides a `renamer` method which works hand in hand with the [`sorter`](/3-Components/1-Layout/1-Sorting) method where:
8
+
9
+ ```svelte
10
+ <script>
11
+ import { renamer } from "$nil-/doc";
12
+ </script>
13
+
14
+ <Layout
15
+ data={[ "/02-zephyr", "/banana", "/apple", "/1-random" ]}
16
+ current={"/02-zephyr"}
17
+ on:navigate
18
+ renamer={override_renamer ? renamer : undefined}
19
+ >
20
+ <div slot="title">Renaming</div>
21
+ <div>
22
+ <p>Current: {current}</p>
23
+ <p>Using {override_renamer ? "custom" : "default"} renamer</p>
24
+ </div>
25
+ </Layout>
26
+ ```
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import { Layout, Block, Instance, Icon, Theme, Nil } from "$lib";
3
+
4
+ import MD from "./MD.svx";
5
+
6
+ const routes = ["/group1", "/group2", "/group1/subgroup/group1"];
7
+ let current = $state(routes[0]);
8
+ </script>
9
+
10
+ <MD></MD>
11
+
12
+ <Block>
13
+ <Instance noreset>
14
+ <div class="layout">
15
+ <Layout
16
+ data={routes}
17
+ current={current}
18
+ onnavigate={e => current = e.detail}
19
+ >
20
+ {#snippet title()}
21
+ <Icon><Nil/></Icon>
22
+ <Icon><Theme/></Icon>
23
+ <div>Layout Component - Icons</div>
24
+ <Icon><Theme/></Icon>
25
+ <Icon><Nil/></Icon>
26
+ {/snippet}
27
+ {#snippet title_misc()}
28
+ <Icon><Nil/></Icon>
29
+ <Icon><Theme/></Icon>
30
+ <Icon><Nil/></Icon>
31
+ {/snippet}
32
+ <div class="content">content {current}</div>
33
+ </Layout>
34
+ </div>
35
+ </Instance>
36
+ </Block>
37
+
38
+ <style>
39
+ .layout {
40
+ height: 500px;
41
+ }
42
+
43
+ .content {
44
+ width: 100%;
45
+ height: 100%;
46
+ padding: 10px;
47
+ outline: solid white 1px;
48
+ box-sizing: border-box;
49
+ }
50
+ </style>
@@ -0,0 +1,34 @@
1
+ # Icon component
2
+
3
+ Icon component is a component intended to match the title bar's sizing.
4
+
5
+ Intended to be used by Icons provided by @nil-/doc:
6
+
7
+ - [Nil](/4-Internals/2-Icons/1-Nil)
8
+ - [Theme](/4-Internals/2-Icons/2-Theme)
9
+
10
+ ```svelte
11
+ <script>
12
+ import { Layout, Icon, Theme, Nil } from "@nil-/doc";
13
+ </script>
14
+
15
+ <Layout
16
+ data={[ "/group1", "/group2", "/group1/subgroup/group1" ]}
17
+ current={"/group1"}
18
+ on:navigate
19
+ >
20
+ <svelte:fragment slot="title">
21
+ <Icon><Nil/></Icon>
22
+ <Icon><Theme/></Icon>
23
+ <div>Layout Component - Icons</div>
24
+ <Icon><Theme/></Icon>
25
+ <Icon><Nil/></Icon>
26
+ </svelte:fragment>
27
+ <svelte:fragment slot="title-misc">
28
+ <Icon><Nil/></Icon>
29
+ <Icon><Theme/></Icon>
30
+ <Icon><Nil/></Icon>
31
+ </svelte:fragment>
32
+ <div>content {current}</div>
33
+ </Layout>
34
+ ```
@@ -0,0 +1,41 @@
1
+ <script lang="ts">
2
+ import { Layout, Block, Instance } from "$lib";
3
+
4
+ import MD from "./MD.svx";
5
+
6
+ const routes = ["/group1", "/group2", "/group1/subgroup/group1"];
7
+ let current = $state(routes[0]);
8
+ </script>
9
+
10
+ <MD></MD>
11
+
12
+ <Block>
13
+ <Instance noreset>
14
+ <div class="layout">
15
+ <Layout
16
+ data={routes}
17
+ current={current}
18
+ onnavigate={e => current = e.detail}
19
+ >
20
+ {#snippet title()}
21
+ <div style="outline: red solid 1px;">Layout Component - title</div>
22
+ {/snippet}
23
+ <div class="content">content {current}</div>
24
+ </Layout>
25
+ </div>
26
+ </Instance>
27
+ </Block>
28
+
29
+ <style>
30
+ .layout {
31
+ height: 500px;
32
+ }
33
+
34
+ .content {
35
+ width: 100%;
36
+ height: 100%;
37
+ padding: 10px;
38
+ outline: solid white 1px;
39
+ box-sizing: border-box;
40
+ }
41
+ </style>
@@ -0,0 +1,14 @@
1
+ # title
2
+
3
+ title slot allows injection of any markup to fill the whole title bar.
4
+
5
+ ```svelte
6
+ <Layout
7
+ data={[ "/group1", "/group2", "/group1/subgroup/group1" ]}
8
+ current={"/group1"}
9
+ on:navigate
10
+ >
11
+ <div slot="title" style="outline: red solid 1px;">Layout Component - title</div>
12
+ <div>content {current}</div>
13
+ </Layout>
14
+ ```
@@ -0,0 +1,49 @@
1
+ <script lang="ts">
2
+ import { Layout, Block, Instance, Icon, Theme } from "$lib";
3
+
4
+ import MD from "./MD.svx";
5
+
6
+ const routes = ["/group1", "/group2", "/group1/subgroup/group1"];
7
+ let current = $state(routes[0]);
8
+
9
+ let dark = $state(true);
10
+ </script>
11
+
12
+ <MD></MD>
13
+
14
+ <Block>
15
+ <Instance noreset>
16
+ <div class="layout">
17
+ <Layout
18
+ data={routes}
19
+ theme={dark ? "dark" : "light"}
20
+ current={current}
21
+ onnavigate={e => current = e.detail}
22
+ >
23
+ {#snippet title()}
24
+ <div>Layout Component - title-misc</div>
25
+ {/snippet}
26
+ {#snippet title_misc()}
27
+ <div style="outline: solid 1px red; text-align: center;">A</div>
28
+ <Icon onclick={() => dark = !dark}><Theme {dark} /></Icon>
29
+ <div style="outline: solid 1px red; text-align: center;">B</div>
30
+ {/snippet}
31
+ <div class="content">content {current}</div>
32
+ </Layout>
33
+ </div>
34
+ </Instance>
35
+ </Block>
36
+
37
+ <style>
38
+ .layout {
39
+ height: 500px;
40
+ }
41
+
42
+ .content {
43
+ width: 100%;
44
+ height: 100%;
45
+ padding: 10px;
46
+ outline: solid white 1px;
47
+ box-sizing: border-box;
48
+ }
49
+ </style>