@oneonefour/rkui 0.0.0-stage → 0.0.3

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 (1068) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -2
  3. package/THIRD_PARTY_NOTICES.md +60 -0
  4. package/astro/index.d.ts +14 -0
  5. package/astro/index.js +153 -0
  6. package/dist/colors.d.ts +74 -0
  7. package/dist/colors.js +263 -0
  8. package/dist/fonts/jetbrains-mono/OFL.txt +93 -0
  9. package/dist/fonts/jetbrains-mono/jetbrains-mono-greek.woff2 +0 -0
  10. package/dist/fonts/jetbrains-mono/jetbrains-mono-italic-greek.woff2 +0 -0
  11. package/dist/fonts/jetbrains-mono/jetbrains-mono-italic-latin.woff2 +0 -0
  12. package/dist/fonts/jetbrains-mono/jetbrains-mono-italic-symbols.woff2 +0 -0
  13. package/dist/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
  14. package/dist/fonts/jetbrains-mono/jetbrains-mono-symbols.woff2 +0 -0
  15. package/dist/fonts/roboto-slab/LICENSE.txt +202 -0
  16. package/dist/fonts/roboto-slab/roboto-slab-greek.woff2 +0 -0
  17. package/dist/fonts/roboto-slab/roboto-slab-latin.woff2 +0 -0
  18. package/dist/fonts/roboto-slab/roboto-slab-symbols.woff2 +0 -0
  19. package/dist/fonts/xmind/OFL.txt +93 -0
  20. package/dist/fonts/xmind/xmind-greek.woff2 +0 -0
  21. package/dist/fonts/xmind/xmind-italic-greek.woff2 +0 -0
  22. package/dist/fonts/xmind/xmind-italic-latin.woff2 +0 -0
  23. package/dist/fonts/xmind/xmind-italic-symbols.woff2 +0 -0
  24. package/dist/fonts/xmind/xmind-latin.woff2 +0 -0
  25. package/dist/fonts/xmind/xmind-symbols.woff2 +0 -0
  26. package/dist/icons/LICENSE-phosphor.txt +21 -0
  27. package/dist/icons/LICENSE-tabler.txt +21 -0
  28. package/dist/icons/acorn.svg +1 -0
  29. package/dist/icons/acorn.vue +1 -0
  30. package/dist/icons/air-traffic-control.svg +1 -0
  31. package/dist/icons/air-traffic-control.vue +1 -0
  32. package/dist/icons/airplane-in-flight.svg +1 -0
  33. package/dist/icons/airplane-in-flight.vue +1 -0
  34. package/dist/icons/airplane-landing.svg +1 -0
  35. package/dist/icons/airplane-landing.vue +1 -0
  36. package/dist/icons/airplane-takeoff.svg +1 -0
  37. package/dist/icons/airplane-takeoff.vue +1 -0
  38. package/dist/icons/airplane-taxiing.svg +1 -0
  39. package/dist/icons/airplane-taxiing.vue +1 -0
  40. package/dist/icons/airplane-tilt.svg +1 -0
  41. package/dist/icons/airplane-tilt.vue +1 -0
  42. package/dist/icons/airplane.svg +1 -0
  43. package/dist/icons/airplane.vue +1 -0
  44. package/dist/icons/ambulance.svg +1 -0
  45. package/dist/icons/ambulance.vue +1 -0
  46. package/dist/icons/anchor-simple.svg +1 -0
  47. package/dist/icons/anchor-simple.vue +1 -0
  48. package/dist/icons/anchor.svg +1 -0
  49. package/dist/icons/anchor.vue +1 -0
  50. package/dist/icons/angle.svg +1 -0
  51. package/dist/icons/angle.vue +1 -0
  52. package/dist/icons/aperture.svg +1 -0
  53. package/dist/icons/aperture.vue +1 -0
  54. package/dist/icons/app-window.svg +1 -0
  55. package/dist/icons/app-window.vue +1 -0
  56. package/dist/icons/approximate-equals.svg +1 -0
  57. package/dist/icons/approximate-equals.vue +1 -0
  58. package/dist/icons/arrow-counter-clockwise.svg +1 -0
  59. package/dist/icons/arrow-counter-clockwise.vue +1 -0
  60. package/dist/icons/arrow-left.svg +1 -0
  61. package/dist/icons/arrow-left.vue +1 -0
  62. package/dist/icons/arrow-right.svg +1 -0
  63. package/dist/icons/arrow-right.vue +1 -0
  64. package/dist/icons/arrow-square-out.svg +1 -0
  65. package/dist/icons/arrow-square-out.vue +1 -0
  66. package/dist/icons/arrow-up.svg +1 -0
  67. package/dist/icons/arrow-up.vue +1 -0
  68. package/dist/icons/arrows-out.svg +1 -0
  69. package/dist/icons/arrows-out.vue +1 -0
  70. package/dist/icons/atom.svg +1 -0
  71. package/dist/icons/atom.vue +1 -0
  72. package/dist/icons/bank.svg +1 -0
  73. package/dist/icons/bank.vue +1 -0
  74. package/dist/icons/barn.svg +1 -0
  75. package/dist/icons/barn.vue +1 -0
  76. package/dist/icons/barricade.svg +1 -0
  77. package/dist/icons/barricade.vue +1 -0
  78. package/dist/icons/battery-charging.svg +1 -0
  79. package/dist/icons/battery-charging.vue +1 -0
  80. package/dist/icons/bezier-curve.svg +1 -0
  81. package/dist/icons/bezier-curve.vue +1 -0
  82. package/dist/icons/bicycle.svg +1 -0
  83. package/dist/icons/bicycle.vue +1 -0
  84. package/dist/icons/binary.svg +1 -0
  85. package/dist/icons/binary.vue +1 -0
  86. package/dist/icons/binoculars.svg +1 -0
  87. package/dist/icons/binoculars.vue +1 -0
  88. package/dist/icons/biohazard.svg +1 -0
  89. package/dist/icons/biohazard.vue +1 -0
  90. package/dist/icons/bird.svg +1 -0
  91. package/dist/icons/bird.vue +1 -0
  92. package/dist/icons/blueprint.svg +1 -0
  93. package/dist/icons/blueprint.vue +1 -0
  94. package/dist/icons/boat.svg +1 -0
  95. package/dist/icons/boat.vue +1 -0
  96. package/dist/icons/book-open-text.svg +1 -0
  97. package/dist/icons/book-open-text.vue +1 -0
  98. package/dist/icons/bounding-box.svg +1 -0
  99. package/dist/icons/bounding-box.vue +1 -0
  100. package/dist/icons/brackets-angle.svg +1 -0
  101. package/dist/icons/brackets-angle.vue +1 -0
  102. package/dist/icons/brackets-curly.svg +1 -0
  103. package/dist/icons/brackets-curly.vue +1 -0
  104. package/dist/icons/brackets-round.svg +1 -0
  105. package/dist/icons/brackets-round.vue +1 -0
  106. package/dist/icons/brackets-square.svg +1 -0
  107. package/dist/icons/brackets-square.vue +1 -0
  108. package/dist/icons/brain.svg +1 -0
  109. package/dist/icons/brain.vue +1 -0
  110. package/dist/icons/bridge.svg +1 -0
  111. package/dist/icons/bridge.vue +1 -0
  112. package/dist/icons/briefcase.svg +1 -0
  113. package/dist/icons/briefcase.vue +1 -0
  114. package/dist/icons/browser.svg +1 -0
  115. package/dist/icons/browser.vue +1 -0
  116. package/dist/icons/bug-beetle.svg +1 -0
  117. package/dist/icons/bug-beetle.vue +1 -0
  118. package/dist/icons/bug.svg +1 -0
  119. package/dist/icons/bug.vue +1 -0
  120. package/dist/icons/building-apartment.svg +1 -0
  121. package/dist/icons/building-apartment.vue +1 -0
  122. package/dist/icons/building-office.svg +1 -0
  123. package/dist/icons/building-office.vue +1 -0
  124. package/dist/icons/building.svg +1 -0
  125. package/dist/icons/building.vue +1 -0
  126. package/dist/icons/buildings.svg +1 -0
  127. package/dist/icons/buildings.vue +1 -0
  128. package/dist/icons/bulldozer.svg +1 -0
  129. package/dist/icons/bulldozer.vue +1 -0
  130. package/dist/icons/bus.svg +1 -0
  131. package/dist/icons/bus.vue +1 -0
  132. package/dist/icons/butterfly.svg +1 -0
  133. package/dist/icons/butterfly.vue +1 -0
  134. package/dist/icons/cable-car.svg +1 -0
  135. package/dist/icons/cable-car.vue +1 -0
  136. package/dist/icons/cactus.svg +1 -0
  137. package/dist/icons/cactus.vue +1 -0
  138. package/dist/icons/calculator.svg +1 -0
  139. package/dist/icons/calculator.vue +1 -0
  140. package/dist/icons/calendar-blank.svg +1 -0
  141. package/dist/icons/calendar-blank.vue +1 -0
  142. package/dist/icons/camera.svg +1 -0
  143. package/dist/icons/camera.vue +1 -0
  144. package/dist/icons/campfire.svg +1 -0
  145. package/dist/icons/campfire.vue +1 -0
  146. package/dist/icons/car-battery.svg +1 -0
  147. package/dist/icons/car-battery.vue +1 -0
  148. package/dist/icons/car-profile.svg +1 -0
  149. package/dist/icons/car-profile.vue +1 -0
  150. package/dist/icons/car-simple.svg +1 -0
  151. package/dist/icons/car-simple.vue +1 -0
  152. package/dist/icons/car.svg +1 -0
  153. package/dist/icons/car.vue +1 -0
  154. package/dist/icons/caret-down.svg +1 -0
  155. package/dist/icons/caret-down.vue +1 -0
  156. package/dist/icons/caret-left.svg +1 -0
  157. package/dist/icons/caret-left.vue +1 -0
  158. package/dist/icons/caret-right.svg +1 -0
  159. package/dist/icons/caret-right.vue +1 -0
  160. package/dist/icons/caret-up.svg +1 -0
  161. package/dist/icons/caret-up.vue +1 -0
  162. package/dist/icons/cell-tower.svg +1 -0
  163. package/dist/icons/cell-tower.vue +1 -0
  164. package/dist/icons/chalkboard-teacher.svg +1 -0
  165. package/dist/icons/chalkboard-teacher.vue +1 -0
  166. package/dist/icons/charging-station.svg +1 -0
  167. package/dist/icons/charging-station.vue +1 -0
  168. package/dist/icons/chart-bar-horizontal.svg +1 -0
  169. package/dist/icons/chart-bar-horizontal.vue +1 -0
  170. package/dist/icons/chart-bar.svg +1 -0
  171. package/dist/icons/chart-bar.vue +1 -0
  172. package/dist/icons/chart-donut.svg +1 -0
  173. package/dist/icons/chart-donut.vue +1 -0
  174. package/dist/icons/chart-line-down.svg +1 -0
  175. package/dist/icons/chart-line-down.vue +1 -0
  176. package/dist/icons/chart-line-up.svg +1 -0
  177. package/dist/icons/chart-line-up.vue +1 -0
  178. package/dist/icons/chart-line.svg +1 -0
  179. package/dist/icons/chart-line.vue +1 -0
  180. package/dist/icons/chart-pie-slice.svg +1 -0
  181. package/dist/icons/chart-pie-slice.vue +1 -0
  182. package/dist/icons/chart-pie.svg +1 -0
  183. package/dist/icons/chart-pie.vue +1 -0
  184. package/dist/icons/chart-polar.svg +1 -0
  185. package/dist/icons/chart-polar.vue +1 -0
  186. package/dist/icons/chart-scatter.svg +1 -0
  187. package/dist/icons/chart-scatter.vue +1 -0
  188. package/dist/icons/check-circle.svg +1 -0
  189. package/dist/icons/check-circle.vue +1 -0
  190. package/dist/icons/check.svg +1 -0
  191. package/dist/icons/check.vue +1 -0
  192. package/dist/icons/circle-half.svg +1 -0
  193. package/dist/icons/circle-half.vue +1 -0
  194. package/dist/icons/circle-notch.svg +1 -0
  195. package/dist/icons/circle-notch.vue +1 -0
  196. package/dist/icons/circuitry.svg +1 -0
  197. package/dist/icons/circuitry.vue +1 -0
  198. package/dist/icons/city.svg +1 -0
  199. package/dist/icons/city.vue +1 -0
  200. package/dist/icons/clock.svg +1 -0
  201. package/dist/icons/clock.vue +1 -0
  202. package/dist/icons/closed-captioning.svg +1 -0
  203. package/dist/icons/closed-captioning.vue +1 -0
  204. package/dist/icons/cloud-arrow-down.svg +1 -0
  205. package/dist/icons/cloud-arrow-down.vue +1 -0
  206. package/dist/icons/cloud-arrow-up.svg +1 -0
  207. package/dist/icons/cloud-arrow-up.vue +1 -0
  208. package/dist/icons/cloud-check.svg +1 -0
  209. package/dist/icons/cloud-check.vue +1 -0
  210. package/dist/icons/cloud-fog.svg +1 -0
  211. package/dist/icons/cloud-fog.vue +1 -0
  212. package/dist/icons/cloud-lightning.svg +1 -0
  213. package/dist/icons/cloud-lightning.vue +1 -0
  214. package/dist/icons/cloud-moon.svg +1 -0
  215. package/dist/icons/cloud-moon.vue +1 -0
  216. package/dist/icons/cloud-rain.svg +1 -0
  217. package/dist/icons/cloud-rain.vue +1 -0
  218. package/dist/icons/cloud-slash.svg +1 -0
  219. package/dist/icons/cloud-slash.vue +1 -0
  220. package/dist/icons/cloud-snow.svg +1 -0
  221. package/dist/icons/cloud-snow.vue +1 -0
  222. package/dist/icons/cloud-sun.svg +1 -0
  223. package/dist/icons/cloud-sun.vue +1 -0
  224. package/dist/icons/cloud-warning.svg +1 -0
  225. package/dist/icons/cloud-warning.vue +1 -0
  226. package/dist/icons/cloud-x.svg +1 -0
  227. package/dist/icons/cloud-x.vue +1 -0
  228. package/dist/icons/cloud.svg +1 -0
  229. package/dist/icons/cloud.vue +1 -0
  230. package/dist/icons/clover.svg +1 -0
  231. package/dist/icons/clover.vue +1 -0
  232. package/dist/icons/code-block.svg +1 -0
  233. package/dist/icons/code-block.vue +1 -0
  234. package/dist/icons/code-simple.svg +1 -0
  235. package/dist/icons/code-simple.vue +1 -0
  236. package/dist/icons/code.svg +1 -0
  237. package/dist/icons/code.vue +1 -0
  238. package/dist/icons/columns.svg +1 -0
  239. package/dist/icons/columns.vue +1 -0
  240. package/dist/icons/command.svg +1 -0
  241. package/dist/icons/command.vue +1 -0
  242. package/dist/icons/compass-rose.svg +1 -0
  243. package/dist/icons/compass-rose.vue +1 -0
  244. package/dist/icons/compass-tool.svg +1 -0
  245. package/dist/icons/compass-tool.vue +1 -0
  246. package/dist/icons/compass.svg +1 -0
  247. package/dist/icons/compass.vue +1 -0
  248. package/dist/icons/computer-tower.svg +1 -0
  249. package/dist/icons/computer-tower.vue +1 -0
  250. package/dist/icons/copy.svg +1 -0
  251. package/dist/icons/copy.vue +1 -0
  252. package/dist/icons/cow.svg +1 -0
  253. package/dist/icons/cow.vue +1 -0
  254. package/dist/icons/cpu.svg +1 -0
  255. package/dist/icons/cpu.vue +1 -0
  256. package/dist/icons/crane-tower.svg +1 -0
  257. package/dist/icons/crane-tower.vue +1 -0
  258. package/dist/icons/crane.svg +1 -0
  259. package/dist/icons/crane.vue +1 -0
  260. package/dist/icons/cube-focus.svg +1 -0
  261. package/dist/icons/cube-focus.vue +1 -0
  262. package/dist/icons/cube-transparent.svg +1 -0
  263. package/dist/icons/cube-transparent.vue +1 -0
  264. package/dist/icons/cube.svg +1 -0
  265. package/dist/icons/cube.vue +1 -0
  266. package/dist/icons/cylinder.svg +1 -0
  267. package/dist/icons/cylinder.vue +1 -0
  268. package/dist/icons/database.svg +1 -0
  269. package/dist/icons/database.vue +1 -0
  270. package/dist/icons/desktop-tower.svg +1 -0
  271. package/dist/icons/desktop-tower.vue +1 -0
  272. package/dist/icons/desktop.svg +1 -0
  273. package/dist/icons/desktop.vue +1 -0
  274. package/dist/icons/dice-five.svg +1 -0
  275. package/dist/icons/dice-five.vue +1 -0
  276. package/dist/icons/divide.svg +1 -0
  277. package/dist/icons/divide.vue +1 -0
  278. package/dist/icons/dna.svg +1 -0
  279. package/dist/icons/dna.vue +1 -0
  280. package/dist/icons/download-simple.svg +1 -0
  281. package/dist/icons/download-simple.vue +1 -0
  282. package/dist/icons/drone.svg +1 -0
  283. package/dist/icons/drone.vue +1 -0
  284. package/dist/icons/drop-half-bottom.svg +1 -0
  285. package/dist/icons/drop-half-bottom.vue +1 -0
  286. package/dist/icons/drop-half.svg +1 -0
  287. package/dist/icons/drop-half.vue +1 -0
  288. package/dist/icons/drop-simple.svg +1 -0
  289. package/dist/icons/drop-simple.vue +1 -0
  290. package/dist/icons/drop-slash.svg +1 -0
  291. package/dist/icons/drop-slash.vue +1 -0
  292. package/dist/icons/drop.svg +1 -0
  293. package/dist/icons/drop.vue +1 -0
  294. package/dist/icons/engine.svg +1 -0
  295. package/dist/icons/engine.vue +1 -0
  296. package/dist/icons/envelope-simple.svg +1 -0
  297. package/dist/icons/envelope-simple.vue +1 -0
  298. package/dist/icons/equals.svg +1 -0
  299. package/dist/icons/equals.vue +1 -0
  300. package/dist/icons/eye-slash.svg +1 -0
  301. package/dist/icons/eye-slash.vue +1 -0
  302. package/dist/icons/eye.svg +1 -0
  303. package/dist/icons/eye.vue +1 -0
  304. package/dist/icons/face-mask.svg +1 -0
  305. package/dist/icons/face-mask.vue +1 -0
  306. package/dist/icons/factory.svg +1 -0
  307. package/dist/icons/factory.vue +1 -0
  308. package/dist/icons/farm.svg +1 -0
  309. package/dist/icons/farm.vue +1 -0
  310. package/dist/icons/file-archive.svg +1 -0
  311. package/dist/icons/file-archive.vue +1 -0
  312. package/dist/icons/file-arrow-down.svg +1 -0
  313. package/dist/icons/file-arrow-down.vue +1 -0
  314. package/dist/icons/file-c-sharp.svg +1 -0
  315. package/dist/icons/file-c-sharp.vue +1 -0
  316. package/dist/icons/file-c.svg +1 -0
  317. package/dist/icons/file-c.vue +1 -0
  318. package/dist/icons/file-cloud.svg +1 -0
  319. package/dist/icons/file-cloud.vue +1 -0
  320. package/dist/icons/file-code.svg +1 -0
  321. package/dist/icons/file-code.vue +1 -0
  322. package/dist/icons/file-cpp.svg +1 -0
  323. package/dist/icons/file-cpp.vue +1 -0
  324. package/dist/icons/file-css.svg +1 -0
  325. package/dist/icons/file-css.vue +1 -0
  326. package/dist/icons/file-csv.svg +1 -0
  327. package/dist/icons/file-csv.vue +1 -0
  328. package/dist/icons/file-html.svg +1 -0
  329. package/dist/icons/file-html.vue +1 -0
  330. package/dist/icons/file-image.svg +1 -0
  331. package/dist/icons/file-image.vue +1 -0
  332. package/dist/icons/file-ini.svg +1 -0
  333. package/dist/icons/file-ini.vue +1 -0
  334. package/dist/icons/file-js.svg +1 -0
  335. package/dist/icons/file-js.vue +1 -0
  336. package/dist/icons/file-jsx.svg +1 -0
  337. package/dist/icons/file-jsx.vue +1 -0
  338. package/dist/icons/file-md.svg +1 -0
  339. package/dist/icons/file-md.vue +1 -0
  340. package/dist/icons/file-pdf.svg +1 -0
  341. package/dist/icons/file-pdf.vue +1 -0
  342. package/dist/icons/file-py.svg +1 -0
  343. package/dist/icons/file-py.vue +1 -0
  344. package/dist/icons/file-rs.svg +1 -0
  345. package/dist/icons/file-rs.vue +1 -0
  346. package/dist/icons/file-sql.svg +1 -0
  347. package/dist/icons/file-sql.vue +1 -0
  348. package/dist/icons/file-svg.svg +1 -0
  349. package/dist/icons/file-svg.vue +1 -0
  350. package/dist/icons/file-text.svg +1 -0
  351. package/dist/icons/file-text.vue +1 -0
  352. package/dist/icons/file-ts.svg +1 -0
  353. package/dist/icons/file-ts.vue +1 -0
  354. package/dist/icons/file-tsx.svg +1 -0
  355. package/dist/icons/file-tsx.vue +1 -0
  356. package/dist/icons/file-txt.svg +1 -0
  357. package/dist/icons/file-txt.vue +1 -0
  358. package/dist/icons/file-vue.svg +1 -0
  359. package/dist/icons/file-vue.vue +1 -0
  360. package/dist/icons/file-xls.svg +1 -0
  361. package/dist/icons/file-xls.vue +1 -0
  362. package/dist/icons/file-zip.svg +1 -0
  363. package/dist/icons/file-zip.vue +1 -0
  364. package/dist/icons/fire-simple.svg +1 -0
  365. package/dist/icons/fire-simple.vue +1 -0
  366. package/dist/icons/fire-truck.svg +1 -0
  367. package/dist/icons/fire-truck.vue +1 -0
  368. package/dist/icons/fire.svg +1 -0
  369. package/dist/icons/fire.vue +1 -0
  370. package/dist/icons/fish-simple.svg +1 -0
  371. package/dist/icons/fish-simple.vue +1 -0
  372. package/dist/icons/fish.svg +1 -0
  373. package/dist/icons/fish.vue +1 -0
  374. package/dist/icons/flame.svg +1 -0
  375. package/dist/icons/flame.vue +1 -0
  376. package/dist/icons/flask.svg +1 -0
  377. package/dist/icons/flask.vue +1 -0
  378. package/dist/icons/flow-arrow.svg +1 -0
  379. package/dist/icons/flow-arrow.vue +1 -0
  380. package/dist/icons/flower-lotus.svg +1 -0
  381. package/dist/icons/flower-lotus.vue +1 -0
  382. package/dist/icons/flower-tulip.svg +1 -0
  383. package/dist/icons/flower-tulip.vue +1 -0
  384. package/dist/icons/flower.svg +1 -0
  385. package/dist/icons/flower.vue +1 -0
  386. package/dist/icons/footprints.svg +1 -0
  387. package/dist/icons/footprints.vue +1 -0
  388. package/dist/icons/function.svg +1 -0
  389. package/dist/icons/function.vue +1 -0
  390. package/dist/icons/funnel.svg +1 -0
  391. package/dist/icons/funnel.vue +1 -0
  392. package/dist/icons/garage.svg +1 -0
  393. package/dist/icons/garage.vue +1 -0
  394. package/dist/icons/gas-can.svg +1 -0
  395. package/dist/icons/gas-can.vue +1 -0
  396. package/dist/icons/gas-pump.svg +1 -0
  397. package/dist/icons/gas-pump.vue +1 -0
  398. package/dist/icons/gauge.svg +1 -0
  399. package/dist/icons/gauge.vue +1 -0
  400. package/dist/icons/gear-fine.svg +1 -0
  401. package/dist/icons/gear-fine.vue +1 -0
  402. package/dist/icons/gear-six.svg +1 -0
  403. package/dist/icons/gear-six.vue +1 -0
  404. package/dist/icons/gear.svg +1 -0
  405. package/dist/icons/gear.vue +1 -0
  406. package/dist/icons/git-branch.svg +1 -0
  407. package/dist/icons/git-branch.vue +1 -0
  408. package/dist/icons/git-commit.svg +1 -0
  409. package/dist/icons/git-commit.vue +1 -0
  410. package/dist/icons/git-diff.svg +1 -0
  411. package/dist/icons/git-diff.vue +1 -0
  412. package/dist/icons/git-fork.svg +1 -0
  413. package/dist/icons/git-fork.vue +1 -0
  414. package/dist/icons/git-merge.svg +1 -0
  415. package/dist/icons/git-merge.vue +1 -0
  416. package/dist/icons/git-pull-request.svg +1 -0
  417. package/dist/icons/git-pull-request.vue +1 -0
  418. package/dist/icons/globe-hemisphere-east.svg +1 -0
  419. package/dist/icons/globe-hemisphere-east.vue +1 -0
  420. package/dist/icons/globe-hemisphere-west.svg +1 -0
  421. package/dist/icons/globe-hemisphere-west.vue +1 -0
  422. package/dist/icons/globe-simple.svg +1 -0
  423. package/dist/icons/globe-simple.vue +1 -0
  424. package/dist/icons/globe-stand.svg +1 -0
  425. package/dist/icons/globe-stand.vue +1 -0
  426. package/dist/icons/globe.svg +1 -0
  427. package/dist/icons/globe.vue +1 -0
  428. package/dist/icons/gps-fix.svg +1 -0
  429. package/dist/icons/gps-fix.vue +1 -0
  430. package/dist/icons/gps.svg +1 -0
  431. package/dist/icons/gps.vue +1 -0
  432. package/dist/icons/gradient.svg +1 -0
  433. package/dist/icons/gradient.vue +1 -0
  434. package/dist/icons/graduation-cap.svg +1 -0
  435. package/dist/icons/graduation-cap.vue +1 -0
  436. package/dist/icons/grains-slash.svg +1 -0
  437. package/dist/icons/grains-slash.vue +1 -0
  438. package/dist/icons/grains.svg +1 -0
  439. package/dist/icons/grains.vue +1 -0
  440. package/dist/icons/graph.svg +1 -0
  441. package/dist/icons/graph.vue +1 -0
  442. package/dist/icons/graphics-card.svg +1 -0
  443. package/dist/icons/graphics-card.vue +1 -0
  444. package/dist/icons/greater-than-or-equal.svg +1 -0
  445. package/dist/icons/greater-than-or-equal.vue +1 -0
  446. package/dist/icons/greater-than.svg +1 -0
  447. package/dist/icons/greater-than.vue +1 -0
  448. package/dist/icons/grid-four.svg +1 -0
  449. package/dist/icons/grid-four.vue +1 -0
  450. package/dist/icons/grid-nine.svg +1 -0
  451. package/dist/icons/grid-nine.vue +1 -0
  452. package/dist/icons/hammer.svg +1 -0
  453. package/dist/icons/hammer.vue +1 -0
  454. package/dist/icons/hand-waving.svg +1 -0
  455. package/dist/icons/hand-waving.vue +1 -0
  456. package/dist/icons/hard-drive.svg +1 -0
  457. package/dist/icons/hard-drive.vue +1 -0
  458. package/dist/icons/hard-drives.svg +1 -0
  459. package/dist/icons/hard-drives.vue +1 -0
  460. package/dist/icons/hard-hat.svg +1 -0
  461. package/dist/icons/hard-hat.vue +1 -0
  462. package/dist/icons/head-circuit.svg +1 -0
  463. package/dist/icons/head-circuit.vue +1 -0
  464. package/dist/icons/hospital.svg +1 -0
  465. package/dist/icons/hospital.vue +1 -0
  466. package/dist/icons/house-line.svg +1 -0
  467. package/dist/icons/house-line.vue +1 -0
  468. package/dist/icons/house-simple.svg +1 -0
  469. package/dist/icons/house-simple.vue +1 -0
  470. package/dist/icons/house.svg +1 -0
  471. package/dist/icons/house.vue +1 -0
  472. package/dist/icons/hurricane.svg +1 -0
  473. package/dist/icons/hurricane.vue +1 -0
  474. package/dist/icons/identification-card.svg +1 -0
  475. package/dist/icons/identification-card.vue +1 -0
  476. package/dist/icons/image.svg +1 -0
  477. package/dist/icons/image.vue +1 -0
  478. package/dist/icons/images.svg +1 -0
  479. package/dist/icons/images.vue +1 -0
  480. package/dist/icons/infinity.svg +1 -0
  481. package/dist/icons/infinity.vue +1 -0
  482. package/dist/icons/info.svg +1 -0
  483. package/dist/icons/info.vue +1 -0
  484. package/dist/icons/intersect-three.svg +1 -0
  485. package/dist/icons/intersect-three.vue +1 -0
  486. package/dist/icons/intersection.svg +1 -0
  487. package/dist/icons/intersection.vue +1 -0
  488. package/dist/icons/island.svg +1 -0
  489. package/dist/icons/island.vue +1 -0
  490. package/dist/icons/jeep.svg +1 -0
  491. package/dist/icons/jeep.vue +1 -0
  492. package/dist/icons/kanban.svg +1 -0
  493. package/dist/icons/kanban.vue +1 -0
  494. package/dist/icons/keyboard.svg +1 -0
  495. package/dist/icons/keyboard.vue +1 -0
  496. package/dist/icons/laptop.svg +1 -0
  497. package/dist/icons/laptop.vue +1 -0
  498. package/dist/icons/leaf.svg +1 -0
  499. package/dist/icons/leaf.vue +1 -0
  500. package/dist/icons/less-than-or-equal.svg +1 -0
  501. package/dist/icons/less-than-or-equal.vue +1 -0
  502. package/dist/icons/less-than.svg +1 -0
  503. package/dist/icons/less-than.vue +1 -0
  504. package/dist/icons/lightbulb.svg +1 -0
  505. package/dist/icons/lightbulb.vue +1 -0
  506. package/dist/icons/lighthouse.svg +1 -0
  507. package/dist/icons/lighthouse.vue +1 -0
  508. package/dist/icons/lightning-slash.svg +1 -0
  509. package/dist/icons/lightning-slash.vue +1 -0
  510. package/dist/icons/lightning.svg +1 -0
  511. package/dist/icons/lightning.vue +1 -0
  512. package/dist/icons/line-segment.svg +1 -0
  513. package/dist/icons/line-segment.vue +1 -0
  514. package/dist/icons/line-segments.svg +1 -0
  515. package/dist/icons/line-segments.vue +1 -0
  516. package/dist/icons/link.svg +1 -0
  517. package/dist/icons/link.vue +1 -0
  518. package/dist/icons/list-bullets.svg +1 -0
  519. package/dist/icons/list-bullets.vue +1 -0
  520. package/dist/icons/list.svg +1 -0
  521. package/dist/icons/list.vue +1 -0
  522. package/dist/icons/magic-wand.svg +1 -0
  523. package/dist/icons/magic-wand.vue +1 -0
  524. package/dist/icons/magnet-straight.svg +1 -0
  525. package/dist/icons/magnet-straight.vue +1 -0
  526. package/dist/icons/magnet.svg +1 -0
  527. package/dist/icons/magnet.vue +1 -0
  528. package/dist/icons/magnifying-glass-minus.svg +1 -0
  529. package/dist/icons/magnifying-glass-minus.vue +1 -0
  530. package/dist/icons/magnifying-glass-plus.svg +1 -0
  531. package/dist/icons/magnifying-glass-plus.vue +1 -0
  532. package/dist/icons/magnifying-glass.svg +1 -0
  533. package/dist/icons/magnifying-glass.vue +1 -0
  534. package/dist/icons/map-pin-area.svg +1 -0
  535. package/dist/icons/map-pin-area.vue +1 -0
  536. package/dist/icons/map-pin-line.svg +1 -0
  537. package/dist/icons/map-pin-line.vue +1 -0
  538. package/dist/icons/map-pin-simple-area.svg +1 -0
  539. package/dist/icons/map-pin-simple-area.vue +1 -0
  540. package/dist/icons/map-pin-simple-line.svg +1 -0
  541. package/dist/icons/map-pin-simple-line.vue +1 -0
  542. package/dist/icons/map-pin-simple.svg +1 -0
  543. package/dist/icons/map-pin-simple.vue +1 -0
  544. package/dist/icons/map-pin.svg +1 -0
  545. package/dist/icons/map-pin.vue +1 -0
  546. package/dist/icons/map-trifold.svg +1 -0
  547. package/dist/icons/map-trifold.vue +1 -0
  548. package/dist/icons/math-operations.svg +1 -0
  549. package/dist/icons/math-operations.vue +1 -0
  550. package/dist/icons/member-of.svg +1 -0
  551. package/dist/icons/member-of.vue +1 -0
  552. package/dist/icons/memory.svg +1 -0
  553. package/dist/icons/memory.vue +1 -0
  554. package/dist/icons/meteor.svg +1 -0
  555. package/dist/icons/meteor.vue +1 -0
  556. package/dist/icons/microscope.svg +1 -0
  557. package/dist/icons/microscope.vue +1 -0
  558. package/dist/icons/minus.svg +1 -0
  559. package/dist/icons/minus.vue +1 -0
  560. package/dist/icons/monitor.svg +1 -0
  561. package/dist/icons/monitor.vue +1 -0
  562. package/dist/icons/moon-stars.svg +1 -0
  563. package/dist/icons/moon-stars.vue +1 -0
  564. package/dist/icons/moon.svg +1 -0
  565. package/dist/icons/moon.vue +1 -0
  566. package/dist/icons/moped-front.svg +1 -0
  567. package/dist/icons/moped-front.vue +1 -0
  568. package/dist/icons/moped.svg +1 -0
  569. package/dist/icons/moped.vue +1 -0
  570. package/dist/icons/motorcycle.svg +1 -0
  571. package/dist/icons/motorcycle.vue +1 -0
  572. package/dist/icons/mountains.svg +1 -0
  573. package/dist/icons/mountains.vue +1 -0
  574. package/dist/icons/navigation-arrow.svg +1 -0
  575. package/dist/icons/navigation-arrow.vue +1 -0
  576. package/dist/icons/network.svg +1 -0
  577. package/dist/icons/network.vue +1 -0
  578. package/dist/icons/newspaper-clipping.svg +1 -0
  579. package/dist/icons/newspaper-clipping.vue +1 -0
  580. package/dist/icons/not-equals.svg +1 -0
  581. package/dist/icons/not-equals.vue +1 -0
  582. package/dist/icons/not-member-of.svg +1 -0
  583. package/dist/icons/not-member-of.vue +1 -0
  584. package/dist/icons/not-subset-of.svg +1 -0
  585. package/dist/icons/not-subset-of.vue +1 -0
  586. package/dist/icons/not-superset-of.svg +1 -0
  587. package/dist/icons/not-superset-of.vue +1 -0
  588. package/dist/icons/notebook.svg +1 -0
  589. package/dist/icons/notebook.vue +1 -0
  590. package/dist/icons/nuclear-plant.svg +1 -0
  591. package/dist/icons/nuclear-plant.vue +1 -0
  592. package/dist/icons/package.svg +1 -0
  593. package/dist/icons/package.vue +1 -0
  594. package/dist/icons/paint-brush.svg +1 -0
  595. package/dist/icons/paint-brush.vue +1 -0
  596. package/dist/icons/palette.svg +1 -0
  597. package/dist/icons/palette.vue +1 -0
  598. package/dist/icons/park.svg +1 -0
  599. package/dist/icons/park.vue +1 -0
  600. package/dist/icons/path.svg +1 -0
  601. package/dist/icons/path.vue +1 -0
  602. package/dist/icons/pause.svg +1 -0
  603. package/dist/icons/pause.vue +1 -0
  604. package/dist/icons/pen-nib.svg +1 -0
  605. package/dist/icons/pen-nib.vue +1 -0
  606. package/dist/icons/percent.svg +1 -0
  607. package/dist/icons/percent.vue +1 -0
  608. package/dist/icons/person-simple-bike.svg +1 -0
  609. package/dist/icons/person-simple-bike.vue +1 -0
  610. package/dist/icons/person-simple-circle.svg +1 -0
  611. package/dist/icons/person-simple-circle.vue +1 -0
  612. package/dist/icons/person-simple-hike.svg +1 -0
  613. package/dist/icons/person-simple-hike.vue +1 -0
  614. package/dist/icons/person-simple-walk.svg +1 -0
  615. package/dist/icons/person-simple-walk.vue +1 -0
  616. package/dist/icons/pi.svg +1 -0
  617. package/dist/icons/pi.vue +1 -0
  618. package/dist/icons/picnic-table.svg +1 -0
  619. package/dist/icons/picnic-table.vue +1 -0
  620. package/dist/icons/planet.svg +1 -0
  621. package/dist/icons/planet.vue +1 -0
  622. package/dist/icons/plant.svg +1 -0
  623. package/dist/icons/plant.vue +1 -0
  624. package/dist/icons/play.svg +1 -0
  625. package/dist/icons/play.vue +1 -0
  626. package/dist/icons/plug-charging.svg +1 -0
  627. package/dist/icons/plug-charging.vue +1 -0
  628. package/dist/icons/plug.svg +1 -0
  629. package/dist/icons/plug.vue +1 -0
  630. package/dist/icons/plus-minus.svg +1 -0
  631. package/dist/icons/plus-minus.vue +1 -0
  632. package/dist/icons/plus.svg +1 -0
  633. package/dist/icons/plus.vue +1 -0
  634. package/dist/icons/police-car.svg +1 -0
  635. package/dist/icons/police-car.vue +1 -0
  636. package/dist/icons/potted-plant.svg +1 -0
  637. package/dist/icons/potted-plant.vue +1 -0
  638. package/dist/icons/presentation-chart.svg +1 -0
  639. package/dist/icons/presentation-chart.vue +1 -0
  640. package/dist/icons/printer.svg +1 -0
  641. package/dist/icons/printer.vue +1 -0
  642. package/dist/icons/pulse.svg +1 -0
  643. package/dist/icons/pulse.vue +1 -0
  644. package/dist/icons/puzzle-piece.svg +1 -0
  645. package/dist/icons/puzzle-piece.vue +1 -0
  646. package/dist/icons/question.svg +1 -0
  647. package/dist/icons/question.vue +1 -0
  648. package/dist/icons/quotes.svg +1 -0
  649. package/dist/icons/quotes.vue +1 -0
  650. package/dist/icons/radical.svg +1 -0
  651. package/dist/icons/radical.vue +1 -0
  652. package/dist/icons/radioactive.svg +1 -0
  653. package/dist/icons/radioactive.vue +1 -0
  654. package/dist/icons/rainbow-cloud.svg +1 -0
  655. package/dist/icons/rainbow-cloud.vue +1 -0
  656. package/dist/icons/rainbow.svg +1 -0
  657. package/dist/icons/rainbow.vue +1 -0
  658. package/dist/icons/recycle.svg +1 -0
  659. package/dist/icons/recycle.vue +1 -0
  660. package/dist/icons/road-horizon.svg +1 -0
  661. package/dist/icons/road-horizon.vue +1 -0
  662. package/dist/icons/robot.svg +1 -0
  663. package/dist/icons/robot.vue +1 -0
  664. package/dist/icons/rocket-launch.svg +1 -0
  665. package/dist/icons/rocket-launch.vue +1 -0
  666. package/dist/icons/rocket.svg +1 -0
  667. package/dist/icons/rocket.vue +1 -0
  668. package/dist/icons/rows.svg +1 -0
  669. package/dist/icons/rows.vue +1 -0
  670. package/dist/icons/rss.svg +1 -0
  671. package/dist/icons/rss.vue +1 -0
  672. package/dist/icons/ruler.svg +1 -0
  673. package/dist/icons/ruler.vue +1 -0
  674. package/dist/icons/sailboat.svg +1 -0
  675. package/dist/icons/sailboat.vue +1 -0
  676. package/dist/icons/satellite.svg +1 -0
  677. package/dist/icons/satellite.vue +1 -0
  678. package/dist/icons/scales.svg +1 -0
  679. package/dist/icons/scales.vue +1 -0
  680. package/dist/icons/scooter.svg +1 -0
  681. package/dist/icons/scooter.vue +1 -0
  682. package/dist/icons/screwdriver.svg +1 -0
  683. package/dist/icons/screwdriver.vue +1 -0
  684. package/dist/icons/seal-check.svg +1 -0
  685. package/dist/icons/seal-check.vue +1 -0
  686. package/dist/icons/share-network.svg +1 -0
  687. package/dist/icons/share-network.vue +1 -0
  688. package/dist/icons/shipping-container.svg +1 -0
  689. package/dist/icons/shipping-container.vue +1 -0
  690. package/dist/icons/shooting-star.svg +1 -0
  691. package/dist/icons/shooting-star.vue +1 -0
  692. package/dist/icons/shovel.svg +1 -0
  693. package/dist/icons/shovel.vue +1 -0
  694. package/dist/icons/shuffle.svg +1 -0
  695. package/dist/icons/shuffle.vue +1 -0
  696. package/dist/icons/sigma.svg +1 -0
  697. package/dist/icons/sigma.vue +1 -0
  698. package/dist/icons/signpost.svg +1 -0
  699. package/dist/icons/signpost.vue +1 -0
  700. package/dist/icons/sliders-horizontal.svg +1 -0
  701. package/dist/icons/sliders-horizontal.vue +1 -0
  702. package/dist/icons/snowflake.svg +1 -0
  703. package/dist/icons/snowflake.vue +1 -0
  704. package/dist/icons/solar-panel.svg +1 -0
  705. package/dist/icons/solar-panel.vue +1 -0
  706. package/dist/icons/solar-roof.svg +1 -0
  707. package/dist/icons/solar-roof.vue +1 -0
  708. package/dist/icons/sparkle.svg +1 -0
  709. package/dist/icons/sparkle.vue +1 -0
  710. package/dist/icons/speaker-high.svg +1 -0
  711. package/dist/icons/speaker-high.vue +1 -0
  712. package/dist/icons/speaker-slash.svg +1 -0
  713. package/dist/icons/speaker-slash.vue +1 -0
  714. package/dist/icons/speedometer.svg +1 -0
  715. package/dist/icons/speedometer.vue +1 -0
  716. package/dist/icons/sphere.svg +1 -0
  717. package/dist/icons/sphere.vue +1 -0
  718. package/dist/icons/sprite.svg +418 -0
  719. package/dist/icons/stack-simple.svg +1 -0
  720. package/dist/icons/stack-simple.vue +1 -0
  721. package/dist/icons/stack.svg +1 -0
  722. package/dist/icons/stack.vue +1 -0
  723. package/dist/icons/star-four.svg +1 -0
  724. package/dist/icons/star-four.vue +1 -0
  725. package/dist/icons/star.svg +1 -0
  726. package/dist/icons/star.vue +1 -0
  727. package/dist/icons/steering-wheel.svg +1 -0
  728. package/dist/icons/steering-wheel.vue +1 -0
  729. package/dist/icons/stop.svg +1 -0
  730. package/dist/icons/stop.vue +1 -0
  731. package/dist/icons/storefront.svg +1 -0
  732. package/dist/icons/storefront.vue +1 -0
  733. package/dist/icons/subset-of.svg +1 -0
  734. package/dist/icons/subset-of.vue +1 -0
  735. package/dist/icons/subset-proper-of.svg +1 -0
  736. package/dist/icons/subset-proper-of.vue +1 -0
  737. package/dist/icons/subway.svg +1 -0
  738. package/dist/icons/subway.vue +1 -0
  739. package/dist/icons/sun-dim.svg +1 -0
  740. package/dist/icons/sun-dim.vue +1 -0
  741. package/dist/icons/sun-horizon.svg +1 -0
  742. package/dist/icons/sun-horizon.vue +1 -0
  743. package/dist/icons/sun.svg +1 -0
  744. package/dist/icons/sun.vue +1 -0
  745. package/dist/icons/superset-of.svg +1 -0
  746. package/dist/icons/superset-of.vue +1 -0
  747. package/dist/icons/superset-proper-of.svg +1 -0
  748. package/dist/icons/superset-proper-of.vue +1 -0
  749. package/dist/icons/table.svg +1 -0
  750. package/dist/icons/table.vue +1 -0
  751. package/dist/icons/tag.svg +1 -0
  752. package/dist/icons/tag.vue +1 -0
  753. package/dist/icons/taxi.svg +1 -0
  754. package/dist/icons/taxi.vue +1 -0
  755. package/dist/icons/tent.svg +1 -0
  756. package/dist/icons/tent.vue +1 -0
  757. package/dist/icons/terminal-window.svg +1 -0
  758. package/dist/icons/terminal-window.vue +1 -0
  759. package/dist/icons/terminal.svg +1 -0
  760. package/dist/icons/terminal.vue +1 -0
  761. package/dist/icons/test-tube.svg +1 -0
  762. package/dist/icons/test-tube.vue +1 -0
  763. package/dist/icons/thermometer-cold.svg +1 -0
  764. package/dist/icons/thermometer-cold.vue +1 -0
  765. package/dist/icons/thermometer-hot.svg +1 -0
  766. package/dist/icons/thermometer-hot.vue +1 -0
  767. package/dist/icons/thermometer-simple.svg +1 -0
  768. package/dist/icons/thermometer-simple.vue +1 -0
  769. package/dist/icons/thermometer.svg +1 -0
  770. package/dist/icons/thermometer.vue +1 -0
  771. package/dist/icons/tire.svg +1 -0
  772. package/dist/icons/tire.vue +1 -0
  773. package/dist/icons/toolbox.svg +1 -0
  774. package/dist/icons/toolbox.vue +1 -0
  775. package/dist/icons/tornado.svg +1 -0
  776. package/dist/icons/tornado.vue +1 -0
  777. package/dist/icons/tractor.svg +1 -0
  778. package/dist/icons/tractor.vue +1 -0
  779. package/dist/icons/traffic-cone.svg +1 -0
  780. package/dist/icons/traffic-cone.vue +1 -0
  781. package/dist/icons/traffic-sign.svg +1 -0
  782. package/dist/icons/traffic-sign.vue +1 -0
  783. package/dist/icons/traffic-signal.svg +1 -0
  784. package/dist/icons/traffic-signal.vue +1 -0
  785. package/dist/icons/train-regional.svg +1 -0
  786. package/dist/icons/train-regional.vue +1 -0
  787. package/dist/icons/train-simple.svg +1 -0
  788. package/dist/icons/train-simple.vue +1 -0
  789. package/dist/icons/train.svg +1 -0
  790. package/dist/icons/train.vue +1 -0
  791. package/dist/icons/tram.svg +1 -0
  792. package/dist/icons/tram.vue +1 -0
  793. package/dist/icons/translate.svg +1 -0
  794. package/dist/icons/translate.vue +1 -0
  795. package/dist/icons/tree-evergreen.svg +1 -0
  796. package/dist/icons/tree-evergreen.vue +1 -0
  797. package/dist/icons/tree-palm.svg +1 -0
  798. package/dist/icons/tree-palm.vue +1 -0
  799. package/dist/icons/tree-structure.svg +1 -0
  800. package/dist/icons/tree-structure.vue +1 -0
  801. package/dist/icons/tree-view.svg +1 -0
  802. package/dist/icons/tree-view.vue +1 -0
  803. package/dist/icons/tree.svg +1 -0
  804. package/dist/icons/tree.vue +1 -0
  805. package/dist/icons/trend-down.svg +1 -0
  806. package/dist/icons/trend-down.vue +1 -0
  807. package/dist/icons/trend-up.svg +1 -0
  808. package/dist/icons/trend-up.vue +1 -0
  809. package/dist/icons/trophy.svg +1 -0
  810. package/dist/icons/trophy.vue +1 -0
  811. package/dist/icons/truck-trailer.svg +1 -0
  812. package/dist/icons/truck-trailer.vue +1 -0
  813. package/dist/icons/truck.svg +1 -0
  814. package/dist/icons/truck.vue +1 -0
  815. package/dist/icons/umbrella-simple.svg +1 -0
  816. package/dist/icons/umbrella-simple.vue +1 -0
  817. package/dist/icons/umbrella.svg +1 -0
  818. package/dist/icons/umbrella.vue +1 -0
  819. package/dist/icons/union.svg +1 -0
  820. package/dist/icons/union.vue +1 -0
  821. package/dist/icons/upload-simple.svg +1 -0
  822. package/dist/icons/upload-simple.vue +1 -0
  823. package/dist/icons/users.svg +1 -0
  824. package/dist/icons/users.vue +1 -0
  825. package/dist/icons/van.svg +1 -0
  826. package/dist/icons/van.vue +1 -0
  827. package/dist/icons/vector-three.svg +1 -0
  828. package/dist/icons/vector-three.vue +1 -0
  829. package/dist/icons/vector-two.svg +1 -0
  830. package/dist/icons/vector-two.vue +1 -0
  831. package/dist/icons/video.svg +1 -0
  832. package/dist/icons/video.vue +1 -0
  833. package/dist/icons/virus.svg +1 -0
  834. package/dist/icons/virus.vue +1 -0
  835. package/dist/icons/warehouse.svg +1 -0
  836. package/dist/icons/warehouse.vue +1 -0
  837. package/dist/icons/warning.svg +1 -0
  838. package/dist/icons/warning.vue +1 -0
  839. package/dist/icons/wave-sawtooth.svg +1 -0
  840. package/dist/icons/wave-sawtooth.vue +1 -0
  841. package/dist/icons/wave-sine.svg +1 -0
  842. package/dist/icons/wave-sine.vue +1 -0
  843. package/dist/icons/wave-square.svg +1 -0
  844. package/dist/icons/wave-square.vue +1 -0
  845. package/dist/icons/wave-triangle.svg +1 -0
  846. package/dist/icons/wave-triangle.vue +1 -0
  847. package/dist/icons/waveform.svg +1 -0
  848. package/dist/icons/waveform.vue +1 -0
  849. package/dist/icons/waves.svg +1 -0
  850. package/dist/icons/waves.vue +1 -0
  851. package/dist/icons/wind.svg +1 -0
  852. package/dist/icons/wind.vue +1 -0
  853. package/dist/icons/windmill.svg +1 -0
  854. package/dist/icons/windmill.vue +1 -0
  855. package/dist/icons/wrench.svg +1 -0
  856. package/dist/icons/wrench.vue +1 -0
  857. package/dist/icons/x-circle.svg +1 -0
  858. package/dist/icons/x-circle.vue +1 -0
  859. package/dist/icons/x.svg +1 -0
  860. package/dist/icons/x.vue +1 -0
  861. package/dist/rkui.css +1 -0
  862. package/dist/rkui.js +41 -0
  863. package/dist/types/components/alert/alert-enhance.d.ts +0 -0
  864. package/dist/types/components/code/highlight.d.ts +9 -0
  865. package/dist/types/components/drawer/drawer-enhance.d.ts +21 -0
  866. package/dist/types/components/file/file-enhance.d.ts +6 -0
  867. package/dist/types/components/folder/folder-enhance.d.ts +1 -0
  868. package/dist/types/components/overflow/overflow-enhance.d.ts +1 -0
  869. package/dist/types/components/quote/quote-enhance.d.ts +1 -0
  870. package/dist/types/components/sidebar/sidebar-enhance.d.ts +1 -0
  871. package/dist/types/components/table/table-enhance.d.ts +1 -0
  872. package/dist/types/components/tooltip/tooltip-enhance.d.ts +7 -0
  873. package/dist/types/shared/after-slide.d.ts +10 -0
  874. package/dist/types/shared/clock-face.d.ts +93 -0
  875. package/dist/types/shared/dial-face.d.ts +58 -0
  876. package/dist/types/shared/dial-geometry.d.ts +66 -0
  877. package/dist/types/shared/each-element.d.ts +9 -0
  878. package/dist/types/shared/light-angle.d.ts +22 -0
  879. package/package.json +100 -4
  880. package/src/base/base.css +144 -0
  881. package/src/base/fonts.css +158 -0
  882. package/src/base/type.css +17 -0
  883. package/src/components/alert/Alert.vue +66 -0
  884. package/src/components/alert/alert-enhance.js +43 -0
  885. package/src/components/alert/alert.css +125 -0
  886. package/src/components/badge/Badge.vue +74 -0
  887. package/src/components/badge/BadgeHost.vue +24 -0
  888. package/src/components/badge/badge.css +142 -0
  889. package/src/components/ballot/Ballot.vue +71 -0
  890. package/src/components/ballot/BallotOption.vue +83 -0
  891. package/src/components/ballot/ballot.css +208 -0
  892. package/src/components/breadcrumbs/Breadcrumbs.vue +47 -0
  893. package/src/components/breadcrumbs/breadcrumbs.css +104 -0
  894. package/src/components/button/Button.vue +130 -0
  895. package/src/components/button/button.css +93 -0
  896. package/src/components/callout/Callout.vue +31 -0
  897. package/src/components/callout/callout.css +39 -0
  898. package/src/components/card/Card.vue +59 -0
  899. package/src/components/card/card.css +117 -0
  900. package/src/components/checkbox/Checkbox.vue +50 -0
  901. package/src/components/checkbox/Radio.vue +51 -0
  902. package/src/components/checkbox/checkbox.css +82 -0
  903. package/src/components/chip/Chip.vue +60 -0
  904. package/src/components/chip/ChipGroup.vue +59 -0
  905. package/src/components/chip/chip.css +73 -0
  906. package/src/components/clock/Clock.vue +200 -0
  907. package/src/components/clock/clock-element.ts +6 -0
  908. package/src/components/clock/clock.css +258 -0
  909. package/src/components/code/CodeBlock.vue +210 -0
  910. package/src/components/code/code.css +185 -0
  911. package/src/components/code/highlight.js +46 -0
  912. package/src/components/color-picker/ColorInput.vue +54 -0
  913. package/src/components/color-picker/ColorPicker.vue +110 -0
  914. package/src/components/color-picker/ColorTile.vue +28 -0
  915. package/src/components/color-picker/color-picker-element.ts +7 -0
  916. package/src/components/color-picker/color-picker.css +219 -0
  917. package/src/components/date-time/date-time.css +53 -0
  918. package/src/components/dial/Dial.vue +247 -0
  919. package/src/components/dial/dial-element.ts +6 -0
  920. package/src/components/dial/dial.css +299 -0
  921. package/src/components/drawer/Cabinet.vue +67 -0
  922. package/src/components/drawer/Drawer.vue +155 -0
  923. package/src/components/drawer/drawer-enhance.js +123 -0
  924. package/src/components/drawer/drawer.css +889 -0
  925. package/src/components/field/Field.vue +49 -0
  926. package/src/components/field/field.css +31 -0
  927. package/src/components/figure/figure.css +30 -0
  928. package/src/components/file/File.vue +73 -0
  929. package/src/components/file/file-enhance.js +35 -0
  930. package/src/components/file/file.css +130 -0
  931. package/src/components/folder/Folder.vue +241 -0
  932. package/src/components/folder/Tab.vue +25 -0
  933. package/src/components/folder/folder-enhance.js +231 -0
  934. package/src/components/folder/folder.css +582 -0
  935. package/src/components/folder/tab-items.ts +67 -0
  936. package/src/components/folder/tab-slot.ts +80 -0
  937. package/src/components/header-band/HeaderBand.vue +52 -0
  938. package/src/components/header-band/header-band.css +54 -0
  939. package/src/components/icon/icon.css +20 -0
  940. package/src/components/input/Input.vue +69 -0
  941. package/src/components/input/Textarea.vue +68 -0
  942. package/src/components/input/input.css +66 -0
  943. package/src/components/light-direction/LightDirection.vue +64 -0
  944. package/src/components/light-direction/light-direction-element.ts +6 -0
  945. package/src/components/loader/Loader.vue +39 -0
  946. package/src/components/loader/loader.css +132 -0
  947. package/src/components/logo/Logo.vue +128 -0
  948. package/src/components/logo/logo.css +233 -0
  949. package/src/components/maths/Equation.vue +64 -0
  950. package/src/components/maths/EquationReference.vue +31 -0
  951. package/src/components/maths/Maths.vue +32 -0
  952. package/src/components/maths/maths.css +220 -0
  953. package/src/components/maths/render-maths.ts +45 -0
  954. package/src/components/motion/Motion.vue +23 -0
  955. package/src/components/motion/motion.css +19 -0
  956. package/src/components/number/Stepper.vue +138 -0
  957. package/src/components/number/number.css +116 -0
  958. package/src/components/number/stepper-element.ts +6 -0
  959. package/src/components/overflow/Scroll.vue +43 -0
  960. package/src/components/overflow/overflow-enhance.js +45 -0
  961. package/src/components/overflow/overflow.css +397 -0
  962. package/src/components/pagination/Pagination.vue +254 -0
  963. package/src/components/pagination/pagination.css +87 -0
  964. package/src/components/popup/Popup.vue +26 -0
  965. package/src/components/popup/popup.css +53 -0
  966. package/src/components/progress/Progress.vue +47 -0
  967. package/src/components/progress/progress.css +170 -0
  968. package/src/components/quote/Quote.vue +48 -0
  969. package/src/components/quote/quote-enhance.js +70 -0
  970. package/src/components/quote/quote.css +73 -0
  971. package/src/components/range/Range.vue +169 -0
  972. package/src/components/range/range-element.ts +8 -0
  973. package/src/components/range/range.css +315 -0
  974. package/src/components/range-ticks/range-ticks.css +29 -0
  975. package/src/components/search/Search.vue +113 -0
  976. package/src/components/search/search.css +138 -0
  977. package/src/components/segmented/Segmented.vue +46 -0
  978. package/src/components/segmented/SegmentedOption.vue +61 -0
  979. package/src/components/segmented/segmented.css +181 -0
  980. package/src/components/select/Select.vue +181 -0
  981. package/src/components/select/select.css +93 -0
  982. package/src/components/sidebar/Sidebar.vue +79 -0
  983. package/src/components/sidebar/SidebarGroup.vue +29 -0
  984. package/src/components/sidebar/SidebarLink.vue +46 -0
  985. package/src/components/sidebar/sidebar-enhance.js +26 -0
  986. package/src/components/sidebar/sidebar.css +543 -0
  987. package/src/components/spinner/Spinner.vue +36 -0
  988. package/src/components/spinner/spinner.css +147 -0
  989. package/src/components/spinner-dots/Dots.vue +48 -0
  990. package/src/components/spinner-dots/spinner-dots.css +167 -0
  991. package/src/components/sticky-note/StickyNote.vue +104 -0
  992. package/src/components/sticky-note/sticky-note.css +206 -0
  993. package/src/components/switch/Switch.vue +52 -0
  994. package/src/components/switch/switch.css +73 -0
  995. package/src/components/table/Table.vue +142 -0
  996. package/src/components/table/table-enhance.js +58 -0
  997. package/src/components/table/table.css +622 -0
  998. package/src/components/theme-toggle/ThemeToggle.vue +114 -0
  999. package/src/components/theme-toggle/theme-toggle-element.ts +6 -0
  1000. package/src/components/theme-toggle/theme-toggle.css +7 -0
  1001. package/src/components/tiles/Tile.vue +90 -0
  1002. package/src/components/tiles/Tiles.vue +45 -0
  1003. package/src/components/tiles/tiles.css +93 -0
  1004. package/src/components/tooltip/Tooltip.vue +31 -0
  1005. package/src/components/tooltip/tooltip-enhance.js +42 -0
  1006. package/src/components/tooltip/tooltip.css +118 -0
  1007. package/src/components/topbar/BackToTop.vue +18 -0
  1008. package/src/components/topbar/TopBar.vue +25 -0
  1009. package/src/components/topbar/topbar.css +127 -0
  1010. package/src/components/water/Flask.vue +44 -0
  1011. package/src/components/water/Pending.vue +32 -0
  1012. package/src/components/water/water.css +262 -0
  1013. package/src/components/widget-frame/WidgetFrame.vue +31 -0
  1014. package/src/components/widget-frame/widget-frame.css +46 -0
  1015. package/src/enhance.js +13 -0
  1016. package/src/fonts/jetbrains-mono/OFL.txt +93 -0
  1017. package/src/fonts/jetbrains-mono/jetbrains-mono-greek.woff2 +0 -0
  1018. package/src/fonts/jetbrains-mono/jetbrains-mono-italic-greek.woff2 +0 -0
  1019. package/src/fonts/jetbrains-mono/jetbrains-mono-italic-latin.woff2 +0 -0
  1020. package/src/fonts/jetbrains-mono/jetbrains-mono-italic-symbols.woff2 +0 -0
  1021. package/src/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
  1022. package/src/fonts/jetbrains-mono/jetbrains-mono-symbols.woff2 +0 -0
  1023. package/src/fonts/roboto-slab/LICENSE.txt +202 -0
  1024. package/src/fonts/roboto-slab/roboto-slab-greek.woff2 +0 -0
  1025. package/src/fonts/roboto-slab/roboto-slab-latin.woff2 +0 -0
  1026. package/src/fonts/roboto-slab/roboto-slab-symbols.woff2 +0 -0
  1027. package/src/fonts/xmind/OFL.txt +93 -0
  1028. package/src/fonts/xmind/xmind-greek.woff2 +0 -0
  1029. package/src/fonts/xmind/xmind-italic-greek.woff2 +0 -0
  1030. package/src/fonts/xmind/xmind-italic-latin.woff2 +0 -0
  1031. package/src/fonts/xmind/xmind-italic-symbols.woff2 +0 -0
  1032. package/src/fonts/xmind/xmind-latin.woff2 +0 -0
  1033. package/src/fonts/xmind/xmind-symbols.woff2 +0 -0
  1034. package/src/head-scripts/table-init.js +9 -0
  1035. package/src/head-scripts/theme-init.js +10 -0
  1036. package/src/icons/LICENSE-phosphor.txt +21 -0
  1037. package/src/icons/LICENSE-tabler.txt +21 -0
  1038. package/src/icons/icon-set.js +715 -0
  1039. package/src/icons/sources/satellite-duotone.svg +2 -0
  1040. package/src/index.css +64 -0
  1041. package/src/interactive-enhance.js +22 -0
  1042. package/src/interactive.css +239 -0
  1043. package/src/shared/after-slide.js +14 -0
  1044. package/src/shared/astro-attributes.d.ts +58 -0
  1045. package/src/shared/clock-face.js +148 -0
  1046. package/src/shared/component-id.ts +17 -0
  1047. package/src/shared/define-element.ts +51 -0
  1048. package/src/shared/dial-face.js +111 -0
  1049. package/src/shared/dial-geometry.js +96 -0
  1050. package/src/shared/each-element.js +38 -0
  1051. package/src/shared/field-attrs.ts +32 -0
  1052. package/src/shared/hues.ts +111 -0
  1053. package/src/shared/light-angle.js +49 -0
  1054. package/src/shared/live-value.ts +142 -0
  1055. package/src/shared/model-start.ts +23 -0
  1056. package/src/shared/option-group.ts +19 -0
  1057. package/src/shared/option-slot.ts +97 -0
  1058. package/src/shared/slot-html.ts +53 -0
  1059. package/src/shared/split-attrs.ts +64 -0
  1060. package/src/shared/starting-option.ts +14 -0
  1061. package/src/tokens/colors.css +122 -0
  1062. package/src/tokens/fallback.css +67 -0
  1063. package/src/tokens/motion.css +31 -0
  1064. package/src/tokens/palettes.css +36 -0
  1065. package/src/tokens/shadow-color.css +178 -0
  1066. package/src/tokens/shadows.css +127 -0
  1067. package/src/tokens/space.css +20 -0
  1068. package/src/tsconfig.json +19 -0
@@ -0,0 +1,111 @@
1
+ import { arcPath, polarToCartesian, percentOfFace, radialLine } from './dial-geometry.js'
2
+
3
+ /** Degrees of travel, centred on 12 o'clock, leaving a gap at the bottom. */
4
+ const SWEEP = 270
5
+ export const START_ANGLE = -SWEEP / 2
6
+ export const END_ANGLE = SWEEP / 2
7
+
8
+ const TICK_COUNT = 11
9
+ const TICK_INNER_RADIUS = 84
10
+ const TICK_OUTER_RADIUS = 94
11
+ export const TRACK_RADIUS = 84
12
+ const LIMIT_RADIUS = 86
13
+ const LIMIT_ANGLE = 158
14
+ const RAMP_BLOCK_COUNT = 18
15
+ /** Degrees left empty between neighbouring ramp blocks */
16
+ const RAMP_BLOCK_GAP = 3
17
+ const RAMP_INNER_RADIUS = 74
18
+ const RAMP_OUTER_RADIUS = 94
19
+
20
+ /**
21
+ * @param {number} value
22
+ * @param {number} min
23
+ * @param {number} max
24
+ * @returns {number} the angle that shows `value` on the dial
25
+ */
26
+ export function valueToAngle(value, min, max) {
27
+ return START_ANGLE + ((value - min) / (max - min)) * SWEEP
28
+ }
29
+
30
+ /**
31
+ * @param {number} angle an angle within the dial's travel
32
+ * @param {number} min
33
+ * @param {number} max
34
+ * @returns {number} the value at `angle`, not yet snapped to a step
35
+ */
36
+ export function angleToValue(angle, min, max) {
37
+ return min + ((angle - START_ANGLE) / SWEEP) * (max - min)
38
+ }
39
+
40
+ /**
41
+ * @param {number} index which ramp block, from 0
42
+ * @param {number} fraction how far round the dial the value is, from 0 to 1
43
+ * @returns {boolean} whether the block is lit: once the value reaches its middle
44
+ */
45
+ export function isBlockLit(index, fraction) {
46
+ return (index + 0.5) / RAMP_BLOCK_COUNT <= fraction
47
+ }
48
+
49
+ /**
50
+ * @param {number} angle where the dial points
51
+ * @returns {string} inline CSS for the face element: the knob's angle, and the point of the track
52
+ * where the arc's thumb sits
53
+ */
54
+ export function faceStyle(angle) {
55
+ const { x, y } = percentOfFace(TRACK_RADIUS, angle)
56
+ return `--rkui-dial-angle: ${angle}deg; --rkui-dial-thumb-x: ${x}%; --rkui-dial-thumb-y: ${y}%`
57
+ }
58
+
59
+ /** Where the min label sits, in SVG units, left of the gap at the bottom. */
60
+ export const MIN_LABEL = polarToCartesian(LIMIT_RADIUS, -LIMIT_ANGLE)
61
+ /** Where the max label sits, in SVG units, right of the gap at the bottom. */
62
+ export const MAX_LABEL = polarToCartesian(LIMIT_RADIUS, LIMIT_ANGLE)
63
+
64
+ /** Evenly spaced tick marks around the dial's travel, as the ends of SVG lines. */
65
+ export const TICKS = Array.from({ length: TICK_COUNT }, (_, index) =>
66
+ radialLine(
67
+ TICK_INNER_RADIUS,
68
+ TICK_OUTER_RADIUS,
69
+ START_ANGLE + (index * SWEEP) / (TICK_COUNT - 1),
70
+ ),
71
+ )
72
+
73
+ /** SVG path data for the arc's track, round the whole of the dial's travel. */
74
+ export const TRACK = arcPath(TRACK_RADIUS, START_ANGLE, END_ANGLE)
75
+
76
+ /**
77
+ * @param {number} fromAngle
78
+ * @param {number} toAngle
79
+ * @returns {string} SVG path data for a block of the ramp's ring, between the two angles
80
+ */
81
+ function blockPath(fromAngle, toAngle) {
82
+ const outerStart = polarToCartesian(RAMP_OUTER_RADIUS, fromAngle)
83
+ const outerEnd = polarToCartesian(RAMP_OUTER_RADIUS, toAngle)
84
+ const innerEnd = polarToCartesian(RAMP_INNER_RADIUS, toAngle)
85
+ const innerStart = polarToCartesian(RAMP_INNER_RADIUS, fromAngle)
86
+ return [
87
+ `M ${outerStart.x} ${outerStart.y}`,
88
+ `A ${RAMP_OUTER_RADIUS} ${RAMP_OUTER_RADIUS} 0 0 1 ${outerEnd.x} ${outerEnd.y}`,
89
+ `L ${innerEnd.x} ${innerEnd.y}`,
90
+ `A ${RAMP_INNER_RADIUS} ${RAMP_INNER_RADIUS} 0 0 0 ${innerStart.x} ${innerStart.y}`,
91
+ 'Z',
92
+ ].join(' ')
93
+ }
94
+
95
+ /**
96
+ * @param {number} stepCount how many colours the ramp has
97
+ * @returns {{ d: string, fill: string }[]} the ramp's blocks around the dial's travel: each one's
98
+ * SVG path data, and its colour, `--rkui-dial-ramp-1` to `--rkui-dial-ramp-<stepCount>` in
99
+ * equal runs
100
+ */
101
+ export function rampBlocks(stepCount) {
102
+ const width = SWEEP / RAMP_BLOCK_COUNT
103
+ return Array.from({ length: RAMP_BLOCK_COUNT }, (_, index) => {
104
+ const from = START_ANGLE + index * width + RAMP_BLOCK_GAP / 2
105
+ const step = Math.floor((index * stepCount) / RAMP_BLOCK_COUNT) + 1
106
+ return {
107
+ d: blockPath(from, from + width - RAMP_BLOCK_GAP),
108
+ fill: `var(--rkui-dial-ramp-${step})`,
109
+ }
110
+ })
111
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Geometry shared by the clock and dial faces, which Clock.vue and Dial.vue draw. No DOM: every
3
+ * function takes numbers and returns numbers, strings or plain objects. Angles are degrees
4
+ * clockwise from 12 o'clock.
5
+ */
6
+
7
+ /** A face's SVG is drawn in a square of this many units, centred on (CENTRE, CENTRE). */
8
+ export const VIEWBOX = 200
9
+ export const CENTRE = VIEWBOX / 2
10
+
11
+ /**
12
+ * @param {number} value
13
+ * @param {number} divisor
14
+ * @returns {number} `value` modulo `divisor`, never negative
15
+ */
16
+ export function wrap(value, divisor) {
17
+ return ((value % divisor) + divisor) % divisor
18
+ }
19
+
20
+ /**
21
+ * @param {number} previous the angle a hand points at now, which may be past 360 or below 0
22
+ * @param {number} angle the way it should point next, from 0 to 360
23
+ * @returns {number} the angle nearest `previous` that points the same way as `angle`, so the
24
+ * hand takes the short way round instead of spinning back past 12
25
+ */
26
+ export function nearestTurn(previous, angle) {
27
+ return previous + wrap(angle - previous + 180, 360) - 180
28
+ }
29
+
30
+ /**
31
+ * @param {number} value
32
+ * @returns {number} the value to a thousandth of an SVG unit. The server and the browser can
33
+ * differ in a sine's last digit; rounded, they write the same markup.
34
+ */
35
+ function round(value) {
36
+ return Math.round(value * 1000) / 1000
37
+ }
38
+
39
+ /**
40
+ * @param {number} radius
41
+ * @param {number} angle
42
+ * @returns {{ x: number, y: number }} the point in the SVG at `radius` and `angle` from the centre
43
+ */
44
+ export function polarToCartesian(radius, angle) {
45
+ const radians = (angle * Math.PI) / 180
46
+ return {
47
+ x: round(CENTRE + radius * Math.sin(radians)),
48
+ y: round(CENTRE - radius * Math.cos(radians)),
49
+ }
50
+ }
51
+
52
+ /**
53
+ * @param {number} radius
54
+ * @param {number} angle
55
+ * @returns {{ x: number, y: number }} the same point as a percentage of the face's width and
56
+ * height, for CSS to centre an element on it
57
+ */
58
+ export function percentOfFace(radius, angle) {
59
+ const { x, y } = polarToCartesian(radius, angle)
60
+ return { x: (x * 100) / VIEWBOX, y: (y * 100) / VIEWBOX }
61
+ }
62
+
63
+ /**
64
+ * @param {number} radius
65
+ * @param {number} fromAngle
66
+ * @param {number} toAngle
67
+ * @returns {string} SVG path data for a clockwise arc
68
+ */
69
+ export function arcPath(radius, fromAngle, toAngle) {
70
+ const start = polarToCartesian(radius, fromAngle)
71
+ const end = polarToCartesian(radius, toAngle)
72
+ const largeArc = toAngle - fromAngle > 180 ? 1 : 0
73
+ return `M ${start.x} ${start.y} A ${radius} ${radius} 0 ${largeArc} 1 ${end.x} ${end.y}`
74
+ }
75
+
76
+ /**
77
+ * @param {number} innerRadius
78
+ * @param {number} outerRadius
79
+ * @param {number} angle
80
+ * @returns {{ x1: number, y1: number, x2: number, y2: number }} the ends of an SVG `<line>`
81
+ * pointing out from the centre, between the two radii
82
+ */
83
+ export function radialLine(innerRadius, outerRadius, angle) {
84
+ const inner = polarToCartesian(innerRadius, angle)
85
+ const outer = polarToCartesian(outerRadius, angle)
86
+ return { x1: inner.x, y1: inner.y, x2: outer.x, y2: outer.y }
87
+ }
88
+
89
+ /**
90
+ * @param {number} dx distance right of the centre
91
+ * @param {number} dy distance below the centre
92
+ * @returns {number} the angle of that point, from -180 to 180
93
+ */
94
+ export function pointToAngle(dx, dy) {
95
+ return (Math.atan2(dx, -dy) * 180) / Math.PI
96
+ }
@@ -0,0 +1,38 @@
1
+ // Finds elements for the enhance scripts, including ones a Vue app or a page script adds after the
2
+ // scripts have run. One MutationObserver serves every script.
3
+
4
+ /** @type {((root: Element) => void)[]} */
5
+ const watchers = []
6
+ /** @type {MutationObserver | undefined} */
7
+ let observer
8
+
9
+ /**
10
+ * Calls `setUp` once for each element that matches `selector`, now and whenever one is added to
11
+ * the page later. Each element it sets up gets the attribute `mark`, so none is set up twice, even
12
+ * by a second copy of the script.
13
+ * @param {string} selector
14
+ * @param {string} mark an attribute name, e.g. 'data-rkui-bar'
15
+ * @param {(element: HTMLElement) => void} setUp
16
+ */
17
+ export function eachElement(selector, mark, setUp) {
18
+ /** @param {Element} root */
19
+ const watch = (root) => {
20
+ const found = [...(root.matches(selector) ? [root] : []), ...root.querySelectorAll(selector)]
21
+ for (const element of found) {
22
+ if (element.hasAttribute(mark)) continue
23
+ element.setAttribute(mark, '')
24
+ setUp(/** @type {HTMLElement} */ (element))
25
+ }
26
+ }
27
+ watch(document.documentElement)
28
+ watchers.push(watch)
29
+ if (observer) return
30
+ observer = new MutationObserver((records) => {
31
+ for (const { addedNodes } of records) {
32
+ for (const node of addedNodes) {
33
+ if (node instanceof Element) for (const each of watchers) each(node)
34
+ }
35
+ }
36
+ })
37
+ observer.observe(document.documentElement, { childList: true, subtree: true })
38
+ }
@@ -0,0 +1,32 @@
1
+ /** The props every control shares for its Field's message. */
2
+ interface FieldProps {
3
+ hint?: string
4
+ error?: string
5
+ }
6
+
7
+ /** The attributes a page may already have set that a Field also writes. */
8
+ interface LinkedAttrs {
9
+ 'aria-describedby'?: string | null
10
+ 'aria-invalid'?: string | boolean | null
11
+ }
12
+
13
+ /**
14
+ * Returns the control's attributes with its `id` and the link to its Field's message: the message's
15
+ * id (`${id}-message`) is joined onto any `aria-describedby` the page set, and `aria-invalid` is
16
+ * `true` while there is an error.
17
+ */
18
+ export function fieldAttrs<T extends LinkedAttrs>(
19
+ id: string,
20
+ { hint, error }: FieldProps,
21
+ attrs: T,
22
+ ) {
23
+ const message = hint || error ? `${id}-message` : undefined
24
+ const describedby = [attrs['aria-describedby'], message].filter(Boolean).join(' ')
25
+ return {
26
+ ...attrs,
27
+ id,
28
+ 'aria-describedby': describedby || undefined,
29
+ // `as const` keeps the literal type the HTML attribute types ask for.
30
+ 'aria-invalid': error ? ('true' as const) : attrs['aria-invalid'],
31
+ }
32
+ }
@@ -0,0 +1,111 @@
1
+ import { colors } from '../../dist/colors.js'
2
+
3
+ /**
4
+ * The palette's hues, for every component's `hue` prop: the core hues, then the auxiliary ones.
5
+ * Each has a `--rkui-<hue>` fill token and `-deep` and `-tint` steps in src/tokens/colors.css. A
6
+ * component that supports fewer hues picks from this list.
7
+ */
8
+ export const HUES = [
9
+ 'navy',
10
+ 'teal',
11
+ 'coral',
12
+ 'yellow',
13
+ 'green',
14
+ 'sky',
15
+ 'grape',
16
+ 'tangerine',
17
+ 'lilac',
18
+ 'apricot',
19
+ ] as const
20
+
21
+ /** One of the palette's hues, e.g. 'teal'. (Read from the list above, so the two can't drift.) */
22
+ export type Hue = (typeof HUES)[number]
23
+
24
+ /** A component's `hue`: a palette hue, e.g. 'teal', or a hex code, e.g. '#ff8800'. */
25
+ export type HueOrHex = Hue | `#${string}`
26
+
27
+ /** The hues whose fill carries its own text colour (`--rkui-on-<hue>`); the rest take ink. */
28
+ const HUES_WITH_OWN_TEXT: Hue[] = ['navy', 'coral', 'grape']
29
+
30
+ /** The text token for text on a `hue` fill, e.g. `--rkui-on-navy`, or `--rkui-on-fill` (ink). */
31
+ export function onHue(hue: Hue): string {
32
+ return HUES_WITH_OWN_TEXT.includes(hue) ? `--rkui-on-${hue}` : '--rkui-on-fill'
33
+ }
34
+
35
+ /** Whether `hue` is a hex code rather than a palette hue. */
36
+ export function isHex(hue: string | undefined): hue is `#${string}` {
37
+ return hue?.startsWith('#') ?? false
38
+ }
39
+
40
+ /** The custom properties a component paints with, each set from its `hue`. */
41
+ export interface HueProperties {
42
+ /** Takes the fill. */
43
+ fill?: string
44
+ /** Takes the colour of text and icons on the fill. */
45
+ text?: string
46
+ /** Takes the tint: a pale panel that carries `--rkui-fg` text. */
47
+ tint?: string
48
+ /** The fill carries small text, so coral takes `--rkui-coral-solid`. */
49
+ solid?: boolean
50
+ }
51
+
52
+ /**
53
+ * The style that paints a component in `hue`, for its `vars`: each of `properties` set to the
54
+ * hue's token, or for a hex code to the code and the colours worked out from it (DESIGN.md,
55
+ * "Shading"). Empty when `hue` is left out.
56
+ */
57
+ export function hueVars(
58
+ hue: HueOrHex | undefined,
59
+ properties: HueProperties,
60
+ ): Record<string, string> {
61
+ if (!hue) return {}
62
+ const { fill, text, tint, solid } = properties
63
+ const style: Record<string, string> = {}
64
+ if (isHex(hue)) {
65
+ if (fill) style[fill] = hue
66
+ if (text) style[text] = `var(${textOn(hue)})`
67
+ if (tint) style[tint] = tintOf(hue)
68
+ } else {
69
+ if (fill) style[fill] = `var(--rkui-${solid && hue === 'coral' ? 'coral-solid' : hue})`
70
+ if (text) style[text] = `var(${onHue(hue)})`
71
+ if (tint) style[tint] = `var(--rkui-${hue}-tint)`
72
+ }
73
+ return style
74
+ }
75
+
76
+ /** A hex code's tint: 35% of it over `--rkui-raised` in light mode, 25% in dark mode. */
77
+ function tintOf(hex: string): string {
78
+ const mix = (share: string) => `color-mix(in srgb, ${hex} ${share}, var(--rkui-raised))`
79
+ return `light-dark(${mix('35%')}, ${mix('25%')})`
80
+ }
81
+
82
+ /**
83
+ * The text token for a hex fill: ink (`--rkui-on-fill`), unless `--rkui-on-ink` has more contrast
84
+ * on it in both themes.
85
+ */
86
+ function textOn(hex: string): string {
87
+ const fill = luminance(hex)
88
+ const ink = contrast(fill, luminance(colors.onFill.light))
89
+ const light = Math.min(
90
+ contrast(fill, luminance(colors.onInk.light)),
91
+ contrast(fill, luminance(colors.onInk.dark)),
92
+ )
93
+ return light > ink ? '--rkui-on-ink' : '--rkui-on-fill'
94
+ }
95
+
96
+ /** The WCAG contrast ratio of two relative luminances. */
97
+ function contrast(a: number, b: number): number {
98
+ return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05)
99
+ }
100
+
101
+ /** The WCAG relative luminance of a hex code (#rgb, #rgba, #rrggbb or #rrggbbaa); alpha is ignored. */
102
+ function luminance(hex: string): number {
103
+ const digits = hex.slice(1)
104
+ const short = digits.length <= 4
105
+ const channels = [0, 1, 2].map((i) => {
106
+ const pair = short ? digits[i] + digits[i] : digits.slice(i * 2, i * 2 + 2)
107
+ const value = parseInt(pair, 16) / 255
108
+ return value <= 0.04045 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4
109
+ })
110
+ return 0.2126 * channels[0] + 0.7152 * channels[1] + 0.0722 * channels[2]
111
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The maths behind LightDirection. No DOM. Angles are in degrees, clockwise from 12 o'clock, and
3
+ * name where the light comes from.
4
+ */
5
+
6
+ /** Where the light comes from by default: the top left. */
7
+ export const DEFAULT_ANGLE = 315
8
+
9
+ /** At the default angle this gives --rkui-shadow-dx and --rkui-shadow-dy of exactly 1. */
10
+ const SHADOW_LENGTH = Math.SQRT2
11
+
12
+ const SUNRISE_HOUR = 6
13
+ const SUNSET_HOUR = 18
14
+ /** The sun rises on the left, at 9 o'clock. */
15
+ const SUNRISE_ANGLE = 270
16
+
17
+ /**
18
+ * @param {number} value
19
+ * @returns {string} `value` rounded to three decimals, so the default angle gives exactly 1
20
+ */
21
+ function toToken(value) {
22
+ return String(Math.round(value * 1000) / 1000)
23
+ }
24
+
25
+ /**
26
+ * The shadow direction that points away from a light at `angle`.
27
+ * @param {number} angle where the light comes from
28
+ * @returns {{ dx: string, dy: string }} the values for --rkui-shadow-dx and --rkui-shadow-dy
29
+ */
30
+ export function shadowOffsets(angle) {
31
+ const radians = (angle * Math.PI) / 180
32
+ return {
33
+ dx: toToken(-SHADOW_LENGTH * Math.sin(radians)),
34
+ dy: toToken(SHADOW_LENGTH * Math.cos(radians)),
35
+ }
36
+ }
37
+
38
+ /**
39
+ * The sun rises on the left at 6:00, is overhead at noon and sets on the right at 18:00, so 9:00
40
+ * gives the default angle. At night the light goes back to the default.
41
+ * @param {Date} time
42
+ * @returns {number} the light angle at `time`
43
+ */
44
+ export function sunAngle(time) {
45
+ const hour = time.getHours() + time.getMinutes() / 60
46
+ const dayFraction = (hour - SUNRISE_HOUR) / (SUNSET_HOUR - SUNRISE_HOUR)
47
+ if (dayFraction < 0 || dayFraction > 1) return DEFAULT_ANGLE
48
+ return (SUNRISE_ANGLE + 180 * dayFraction) % 360
49
+ }
@@ -0,0 +1,142 @@
1
+ // A form control's value as the browser has it when its component starts, for every form control
2
+ // with a `v-model` (inputs, textareas and selects), and a radio or checkbox's checked state. Each
3
+ // directive goes on the control before its `v-model`: the first read must come before Vue's
4
+ // v-model writes to it, which for a radio is as soon as it is created.
5
+
6
+ import { startingIndex } from './starting-option'
7
+
8
+ /** A form control that holds a value: an input, a textarea or a select. */
9
+ type ValueControl = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement
10
+
11
+ /**
12
+ * What each control held before Vue's `v-model` first wrote to it, when the reader or the browser
13
+ * had changed it: its value, or a select's chosen options.
14
+ */
15
+ const changedValues = new WeakMap<ValueControl, string | HTMLOptionElement[]>()
16
+
17
+ /**
18
+ * The value an input's markup alone gives it, as the browser cleans it up: a colour in lower case,
19
+ * a range's value kept within its `min`, `max` and `step`.
20
+ */
21
+ function markupValue(input: HTMLInputElement): string {
22
+ const fresh = document.createElement('input')
23
+ for (const { name, value } of input.attributes) fresh.setAttribute(name, value)
24
+ return fresh.value
25
+ }
26
+
27
+ /** The options a select's markup alone chooses. */
28
+ function markupOptions(select: HTMLSelectElement): HTMLOptionElement[] {
29
+ const options = [...select.options]
30
+ if (select.multiple) return options.filter((option) => option.defaultSelected)
31
+ const marks = options.map((option) => ({
32
+ selected: option.defaultSelected,
33
+ disabled: option.disabled,
34
+ }))
35
+ const start = options[startingIndex(marks)]
36
+ return start ? [start] : []
37
+ }
38
+
39
+ /** What the control holds now, if the reader or the browser changed it from its markup. */
40
+ function changedInBrowser(control: ValueControl): string | HTMLOptionElement[] | undefined {
41
+ if (control instanceof HTMLSelectElement) {
42
+ const chosen = [...control.selectedOptions]
43
+ const start = markupOptions(control)
44
+ const same = chosen.length === start.length && chosen.every((option, i) => option === start[i])
45
+ return same ? undefined : chosen
46
+ }
47
+ const start = control instanceof HTMLInputElement ? markupValue(control) : control.defaultValue
48
+ return control.value === start ? undefined : control.value
49
+ }
50
+
51
+ /** Puts back what the control held before `v-model` wrote over it. */
52
+ function restore(control: ValueControl, changed: string | HTMLOptionElement[]) {
53
+ if (typeof changed === 'string') {
54
+ control.value = changed
55
+ return
56
+ }
57
+ // A list of options comes only from a select. Choosing one unchooses the others, unless it is
58
+ // a multiple select.
59
+ const select = control as HTMLSelectElement
60
+ for (const option of select.options) {
61
+ if (changed.includes(option)) option.selected = true
62
+ else if (select.multiple) option.selected = false
63
+ }
64
+ }
65
+
66
+ /**
67
+ * A directive that keeps what the browser holds in an input, a textarea or a select over the
68
+ * model's starting value: what was typed or chosen before the component woke up
69
+ * (`client:visible`), or a form the browser restored on going back. A range's model also follows
70
+ * a starting value the browser kept within its `min`, `max` and `step`. Otherwise the model stays
71
+ * exactly as the parent gave it. `const vLiveValue = useLiveValue(model)`, then
72
+ * `<input v-live-value v-model="model">`. It hands the value on with the event `v-model` listens
73
+ * for, as typing would, so `v-model` casts it as usual (a number for `type="number"`).
74
+ */
75
+ export function useLiveValue(model: { value: unknown }) {
76
+ return {
77
+ // Before v-model writes the model's value over it. A control already on the page came from
78
+ // the server; if it differs from its markup, it was changed in the browser.
79
+ beforeMount(control: ValueControl) {
80
+ if (!control.isConnected) return
81
+ const changed = changedInBrowser(control)
82
+ if (changed !== undefined) changedValues.set(control, changed)
83
+ },
84
+ // Once the mount is over, after v-model and the parent's starting value have had their say.
85
+ mounted(control: ValueControl) {
86
+ queueMicrotask(() => {
87
+ const changed = changedValues.get(control)
88
+ if (changed !== undefined) restore(control, changed)
89
+ const clamped = control.type === 'range' && control.value !== String(model.value)
90
+ if (changed === undefined && !clamped) return
91
+ const event = control instanceof HTMLSelectElement ? 'change' : 'input'
92
+ control.dispatchEvent(new Event(event, { bubbles: true }))
93
+ })
94
+ },
95
+ }
96
+ }
97
+
98
+ /** The radios and checkboxes changed in the browser before their component woke up: checked or not. */
99
+ const changedChecks = new WeakMap<HTMLInputElement, boolean>()
100
+
101
+ /**
102
+ * The radios that share `input`'s name on its page, as one group, or just `input` when it is a
103
+ * checkbox or has no name.
104
+ */
105
+ function radioGroup(input: HTMLInputElement): HTMLInputElement[] {
106
+ if (input.type !== 'radio' || !input.name) return [input]
107
+ const root = input.getRootNode() as Document | ShadowRoot
108
+ return [...root.querySelectorAll<HTMLInputElement>(`input[type="radio"]`)].filter(
109
+ (radio) => radio.name === input.name,
110
+ )
111
+ }
112
+
113
+ /**
114
+ * A directive that keeps a radio's or checkbox's checked state from the browser: what was clicked
115
+ * before the component woke up (`client:visible`), or a form the browser restored on going back.
116
+ * Write `v-live-checked` on the input before its `v-model`. It hands the state to the `v-model` with a `change` event, so
117
+ * any model works: a radio group's value, a checkbox's boolean, a list of values.
118
+ */
119
+ export const vLiveChecked = {
120
+ // Before any v-model in the group writes to it. A whole radio group is read at once, since the
121
+ // first radio's v-model unchecks the one the reader chose.
122
+ created(input: HTMLInputElement) {
123
+ if (!input.isConnected) return
124
+ for (const box of radioGroup(input)) {
125
+ if (box.checked !== box.defaultChecked && !changedChecks.has(box)) {
126
+ changedChecks.set(box, box.checked)
127
+ }
128
+ }
129
+ },
130
+ // Once the mount is over, after v-model has its list and the parent its starting value.
131
+ mounted(input: HTMLInputElement) {
132
+ const checked = changedChecks.get(input)
133
+ if (checked === undefined) return
134
+ queueMicrotask(() => {
135
+ input.checked = checked
136
+ // An unchecked radio says nothing: the radio checked in its place tells the model.
137
+ if (checked || input.type === 'checkbox') {
138
+ input.dispatchEvent(new Event('change', { bubbles: true }))
139
+ }
140
+ })
141
+ },
142
+ }
@@ -0,0 +1,23 @@
1
+ import { computed, onMounted, type Ref, type WritableComputedRef } from 'vue'
2
+
3
+ /**
4
+ * A component's `v-model` that, while the model is unset, follows `start()`, a value read from its
5
+ * slot. On mount the starting value is handed to the parent's `v-model`. The slot is read when the
6
+ * template reads the model, in render. Read in setup, Vue warns that the slot is invoked outside
7
+ * the render function.
8
+ */
9
+ export function modelWithStart<T>(
10
+ model: Ref<T | undefined>,
11
+ start: () => T,
12
+ ): WritableComputedRef<T> {
13
+ const selection = computed({
14
+ get: () => model.value ?? start(),
15
+ set: (value) => {
16
+ model.value = value
17
+ },
18
+ })
19
+ onMounted(() => {
20
+ if (model.value === undefined) model.value = selection.value
21
+ })
22
+ return selection
23
+ }
@@ -0,0 +1,19 @@
1
+ /** What an option renders as its input's `name` when the page gives it none. */
2
+ export const NAME_PLACEHOLDER = 'rkui-option-name'
3
+
4
+ /**
5
+ * Fills a group's `name` (and radio or checkbox type) into the options it has rendered, so the page
6
+ * writes them once. An option with no `name` of its own renders `NAME_PLACEHOLDER`, and an input
7
+ * with that name is a checkbox until the group says otherwise. An option given its own `name` is
8
+ * left as it is.
9
+ */
10
+ export function fillOptions(html: string, name: string, multiple: boolean): string {
11
+ const type = multiple ? 'checkbox' : 'radio'
12
+ const safeName = name.replaceAll('"', '&quot;')
13
+ return html
14
+ .replaceAll(
15
+ `type="checkbox" name="${NAME_PLACEHOLDER}"`,
16
+ () => `type="${type}" name="${safeName}"`,
17
+ )
18
+ .replaceAll(`name="${NAME_PLACEHOLDER}"`, () => `name="${safeName}"`)
19
+ }