@morphemecms/cms 0.1.0 → 0.2.0-next-20261104150211

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 (908) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -21
  3. package/README.md +51 -51
  4. package/astro.mjs +162 -162
  5. package/bin/morpheme.mjs +38 -38
  6. package/client.d.ts +10 -10
  7. package/defaults/blockTexts.ts +33 -33
  8. package/defaults/collections.ts +774 -774
  9. package/defaults/colors.ts +125 -125
  10. package/defaults/company.ts +20 -20
  11. package/defaults/editor.ts +178 -178
  12. package/defaults/internalLinks.ts +30 -30
  13. package/defaults/opens.ts +18 -18
  14. package/defaults/popup.tsx +93 -93
  15. package/defaults/privacy.ts +79 -79
  16. package/defaults/rules.ts +450 -450
  17. package/defaults/schema.ts +16 -16
  18. package/defaults/sitedata.ts +129 -129
  19. package/defaults/standard.ts +106 -106
  20. package/defaults/standardPages.ts +87 -87
  21. package/defaults/texts.ts +481 -481
  22. package/demo/README.md +26 -26
  23. package/demo/src/content/blog/build-a-page-from-blocks.md +19 -19
  24. package/demo/src/content/blog/colors-everyone-can-read.md +19 -19
  25. package/demo/src/content/blog/edit-your-website-from-your-phone.md +21 -21
  26. package/demo/src/content/blog/every-save-is-a-version.md +21 -21
  27. package/demo/src/content/blog/schedule-a-post.md +17 -17
  28. package/demo/src/content/blog/secure-from-day-one.md +17 -17
  29. package/demo/src/content/blog/seo-without-the-guesswork.md +23 -23
  30. package/demo/src/content/blog/switch-themes-without-losing-anything.md +23 -23
  31. package/demo/src/content/blog/the-app-store.md +21 -21
  32. package/demo/src/content/pages/about.md +22 -22
  33. package/demo/src/content/pages/app-store.md +30 -30
  34. package/demo/src/content/pages/blocks.md +98 -98
  35. package/demo/src/content/pages/blog-page.md +11 -11
  36. package/demo/src/content/pages/contact.md +16 -16
  37. package/demo/src/content/pages/get-started.md +20 -20
  38. package/demo/src/content/pages/home.md +26 -26
  39. package/demo/src/content/pages/page-not-found.md +11 -11
  40. package/demo/src/content/pages/privacy-policy.md +24 -24
  41. package/demo/src/data/blocks.json +25 -25
  42. package/demo/src/data/booking.json +6 -6
  43. package/demo/src/data/categories/apps.json +6 -6
  44. package/demo/src/data/categories/design.json +6 -6
  45. package/demo/src/data/categories/editing.json +6 -6
  46. package/demo/src/data/categories/security.json +6 -6
  47. package/demo/src/data/categories/seo.json +6 -6
  48. package/demo/src/data/colors.json +75 -75
  49. package/demo/src/data/contact.json +8 -8
  50. package/demo/src/data/cookies.json +21 -21
  51. package/demo/src/data/footer.json +27 -27
  52. package/demo/src/data/menu.json +35 -35
  53. package/demo/src/data/mobile-menu.json +25 -25
  54. package/demo/src/data/popups/booking-bar.json +13 -13
  55. package/demo/src/data/popups/try-the-editor.json +16 -16
  56. package/demo/src/data/standard-pages.json +8 -8
  57. package/demo/src/data/testimonials/sample-bakery.json +10 -10
  58. package/demo/src/data/testimonials/sample-clinic.json +10 -10
  59. package/demo/src/data/testimonials/sample-studio.json +10 -10
  60. package/demo/src/site/colors.ts +11 -11
  61. package/demo/src/site/config.ts +19 -19
  62. package/icons/lucide/LICENSE +43 -43
  63. package/icons/lucide/address-book.svg +1 -1
  64. package/icons/lucide/app-window.svg +1 -1
  65. package/icons/lucide/arrow-counter-clockwise.svg +1 -1
  66. package/icons/lucide/arrow-down.svg +1 -1
  67. package/icons/lucide/arrow-left.svg +1 -1
  68. package/icons/lucide/arrow-right.svg +1 -1
  69. package/icons/lucide/arrow-square-out.svg +1 -1
  70. package/icons/lucide/arrow-u-up-left.svg +1 -1
  71. package/icons/lucide/arrow-u-up-right.svg +1 -1
  72. package/icons/lucide/arrow-up-right.svg +1 -1
  73. package/icons/lucide/arrow-up.svg +1 -1
  74. package/icons/lucide/arrows-down-up.svg +1 -1
  75. package/icons/lucide/arrows-in-line-horizontal.svg +1 -1
  76. package/icons/lucide/arrows-out-line-horizontal.svg +1 -1
  77. package/icons/lucide/article.svg +1 -1
  78. package/icons/lucide/bank.svg +1 -1
  79. package/icons/lucide/bell.svg +1 -1
  80. package/icons/lucide/bicycle.svg +1 -1
  81. package/icons/lucide/binoculars.svg +1 -1
  82. package/icons/lucide/book-open-text.svg +1 -1
  83. package/icons/lucide/book-open.svg +1 -1
  84. package/icons/lucide/browser.svg +1 -1
  85. package/icons/lucide/buildings.svg +1 -1
  86. package/icons/lucide/bus.svg +1 -1
  87. package/icons/lucide/calendar-blank.svg +1 -1
  88. package/icons/lucide/calendar-check.svg +1 -1
  89. package/icons/lucide/car.svg +1 -1
  90. package/icons/lucide/cards.svg +1 -1
  91. package/icons/lucide/caret-down.svg +1 -1
  92. package/icons/lucide/caret-left.svg +1 -1
  93. package/icons/lucide/caret-right.svg +1 -1
  94. package/icons/lucide/caret-up.svg +1 -1
  95. package/icons/lucide/certificate.svg +1 -1
  96. package/icons/lucide/chart-line-up.svg +1 -1
  97. package/icons/lucide/chats.svg +1 -1
  98. package/icons/lucide/check-circle.svg +1 -1
  99. package/icons/lucide/check.svg +1 -1
  100. package/icons/lucide/circle-half.svg +1 -1
  101. package/icons/lucide/circle.svg +1 -1
  102. package/icons/lucide/clock-counter-clockwise.svg +1 -1
  103. package/icons/lucide/clock.svg +1 -1
  104. package/icons/lucide/code.svg +1 -1
  105. package/icons/lucide/coffee.svg +1 -1
  106. package/icons/lucide/columns.svg +1 -1
  107. package/icons/lucide/cookie.svg +1 -1
  108. package/icons/lucide/copy.svg +1 -1
  109. package/icons/lucide/credit-card.svg +1 -1
  110. package/icons/lucide/currency-circle-dollar.svg +1 -1
  111. package/icons/lucide/cursor-click.svg +1 -1
  112. package/icons/lucide/database.svg +1 -1
  113. package/icons/lucide/desktop.svg +1 -1
  114. package/icons/lucide/device-mobile.svg +1 -1
  115. package/icons/lucide/door-open.svg +1 -1
  116. package/icons/lucide/download-simple.svg +1 -1
  117. package/icons/lucide/envelope-simple.svg +1 -1
  118. package/icons/lucide/eye-slash.svg +1 -1
  119. package/icons/lucide/eye.svg +1 -1
  120. package/icons/lucide/file-pdf.svg +1 -1
  121. package/icons/lucide/file-text.svg +1 -1
  122. package/icons/lucide/file-video.svg +1 -1
  123. package/icons/lucide/file-zip.svg +1 -1
  124. package/icons/lucide/flower-lotus.svg +1 -1
  125. package/icons/lucide/folder-simple.svg +1 -1
  126. package/icons/lucide/funnel.svg +1 -1
  127. package/icons/lucide/gauge.svg +1 -1
  128. package/icons/lucide/gear.svg +1 -1
  129. package/icons/lucide/github-logo.svg +1 -1
  130. package/icons/lucide/globe.svg +1 -1
  131. package/icons/lucide/google-logo.svg +1 -1
  132. package/icons/lucide/graduation-cap.svg +1 -1
  133. package/icons/lucide/hammer.svg +1 -1
  134. package/icons/lucide/hand-heart.svg +1 -1
  135. package/icons/lucide/handshake.svg +1 -1
  136. package/icons/lucide/hard-drives.svg +1 -1
  137. package/icons/lucide/heart.svg +1 -1
  138. package/icons/lucide/house.svg +1 -1
  139. package/icons/lucide/image-square.svg +1 -1
  140. package/icons/lucide/image.svg +1 -1
  141. package/icons/lucide/info.svg +1 -1
  142. package/icons/lucide/keyboard.svg +1 -1
  143. package/icons/lucide/leaf.svg +1 -1
  144. package/icons/lucide/lifebuoy.svg +1 -1
  145. package/icons/lucide/lightbulb.svg +1 -1
  146. package/icons/lucide/link-break.svg +1 -1
  147. package/icons/lucide/link-simple.svg +1 -1
  148. package/icons/lucide/list-bullets.svg +1 -1
  149. package/icons/lucide/list-checks.svg +1 -1
  150. package/icons/lucide/list-numbers.svg +1 -1
  151. package/icons/lucide/list.svg +1 -1
  152. package/icons/lucide/lock-simple-open.svg +1 -1
  153. package/icons/lucide/lock-simple.svg +1 -1
  154. package/icons/lucide/magnifying-glass.svg +1 -1
  155. package/icons/lucide/map-pin.svg +1 -1
  156. package/icons/lucide/map-trifold.svg +1 -1
  157. package/icons/lucide/medal.svg +1 -1
  158. package/icons/lucide/megaphone.svg +1 -1
  159. package/icons/lucide/minus.svg +1 -1
  160. package/icons/lucide/moon.svg +1 -1
  161. package/icons/lucide/newspaper.svg +1 -1
  162. package/icons/lucide/pack.json +23 -23
  163. package/icons/lucide/paint-brush-broad.svg +1 -1
  164. package/icons/lucide/palette.svg +1 -1
  165. package/icons/lucide/paper-plane-tilt.svg +1 -1
  166. package/icons/lucide/pencil-simple.svg +1 -1
  167. package/icons/lucide/phone.svg +1 -1
  168. package/icons/lucide/play-fill.svg +1 -1
  169. package/icons/lucide/plus.svg +1 -1
  170. package/icons/lucide/prohibit.svg +1 -1
  171. package/icons/lucide/puzzle-piece.svg +1 -1
  172. package/icons/lucide/question.svg +1 -1
  173. package/icons/lucide/quotes.svg +1 -1
  174. package/icons/lucide/rows.svg +1 -1
  175. package/icons/lucide/ruler.svg +1 -1
  176. package/icons/lucide/scan.svg +1 -1
  177. package/icons/lucide/shapes.svg +1 -1
  178. package/icons/lucide/share-network.svg +1 -1
  179. package/icons/lucide/shield-check.svg +1 -1
  180. package/icons/lucide/sidebar-simple.svg +1 -1
  181. package/icons/lucide/sign-out.svg +1 -1
  182. package/icons/lucide/signpost.svg +1 -1
  183. package/icons/lucide/sliders-horizontal.svg +1 -1
  184. package/icons/lucide/smiley.svg +1 -1
  185. package/icons/lucide/sparkle.svg +1 -1
  186. package/icons/lucide/square-half-bottom.svg +1 -1
  187. package/icons/lucide/square.svg +1 -1
  188. package/icons/lucide/squares-four.svg +1 -1
  189. package/icons/lucide/sticker.svg +1 -1
  190. package/icons/lucide/storefront.svg +1 -1
  191. package/icons/lucide/sun.svg +1 -1
  192. package/icons/lucide/swatches.svg +1 -1
  193. package/icons/lucide/tag.svg +1 -1
  194. package/icons/lucide/text-aa.svg +1 -1
  195. package/icons/lucide/text-align-left.svg +1 -1
  196. package/icons/lucide/text-b.svg +1 -1
  197. package/icons/lucide/text-h-one.svg +1 -1
  198. package/icons/lucide/text-h-three.svg +1 -1
  199. package/icons/lucide/text-h-two.svg +1 -1
  200. package/icons/lucide/text-italic.svg +1 -1
  201. package/icons/lucide/text-t.svg +1 -1
  202. package/icons/lucide/ticket.svg +1 -1
  203. package/icons/lucide/toggle-right.svg +1 -1
  204. package/icons/lucide/train.svg +1 -1
  205. package/icons/lucide/trash.svg +1 -1
  206. package/icons/lucide/upload-simple.svg +1 -1
  207. package/icons/lucide/user-circle.svg +1 -1
  208. package/icons/lucide/user.svg +1 -1
  209. package/icons/lucide/users-three.svg +1 -1
  210. package/icons/lucide/users.svg +1 -1
  211. package/icons/lucide/video-camera.svg +1 -1
  212. package/icons/lucide/warning-circle.svg +1 -1
  213. package/icons/lucide/warning.svg +1 -1
  214. package/icons/lucide/wave-sine.svg +1 -1
  215. package/icons/lucide/wheelchair.svg +1 -1
  216. package/icons/lucide/wrench.svg +1 -1
  217. package/icons/lucide/x.svg +1 -1
  218. package/icons/material-symbols/LICENSE +201 -201
  219. package/icons/material-symbols/address-book.svg +1 -1
  220. package/icons/material-symbols/app-window.svg +1 -1
  221. package/icons/material-symbols/arrow-counter-clockwise.svg +1 -1
  222. package/icons/material-symbols/arrow-down.svg +1 -1
  223. package/icons/material-symbols/arrow-left.svg +1 -1
  224. package/icons/material-symbols/arrow-right.svg +1 -1
  225. package/icons/material-symbols/arrow-square-out.svg +1 -1
  226. package/icons/material-symbols/arrow-u-up-left.svg +1 -1
  227. package/icons/material-symbols/arrow-u-up-right.svg +1 -1
  228. package/icons/material-symbols/arrow-up-right.svg +1 -1
  229. package/icons/material-symbols/arrow-up.svg +1 -1
  230. package/icons/material-symbols/arrows-down-up.svg +1 -1
  231. package/icons/material-symbols/arrows-in-line-horizontal.svg +1 -1
  232. package/icons/material-symbols/arrows-out-line-horizontal.svg +1 -1
  233. package/icons/material-symbols/article.svg +1 -1
  234. package/icons/material-symbols/bank.svg +1 -1
  235. package/icons/material-symbols/bell.svg +1 -1
  236. package/icons/material-symbols/bicycle.svg +1 -1
  237. package/icons/material-symbols/binoculars.svg +1 -1
  238. package/icons/material-symbols/book-open-text.svg +1 -1
  239. package/icons/material-symbols/book-open.svg +1 -1
  240. package/icons/material-symbols/browser.svg +1 -1
  241. package/icons/material-symbols/buildings.svg +1 -1
  242. package/icons/material-symbols/bus.svg +1 -1
  243. package/icons/material-symbols/calendar-blank.svg +1 -1
  244. package/icons/material-symbols/calendar-check.svg +1 -1
  245. package/icons/material-symbols/car.svg +1 -1
  246. package/icons/material-symbols/cards.svg +1 -1
  247. package/icons/material-symbols/caret-down.svg +1 -1
  248. package/icons/material-symbols/caret-left.svg +1 -1
  249. package/icons/material-symbols/caret-right.svg +1 -1
  250. package/icons/material-symbols/caret-up.svg +1 -1
  251. package/icons/material-symbols/certificate.svg +1 -1
  252. package/icons/material-symbols/chart-line-up.svg +1 -1
  253. package/icons/material-symbols/chats.svg +1 -1
  254. package/icons/material-symbols/check-circle.svg +1 -1
  255. package/icons/material-symbols/check.svg +1 -1
  256. package/icons/material-symbols/circle-half.svg +1 -1
  257. package/icons/material-symbols/circle.svg +1 -1
  258. package/icons/material-symbols/clock-counter-clockwise.svg +1 -1
  259. package/icons/material-symbols/clock.svg +1 -1
  260. package/icons/material-symbols/code.svg +1 -1
  261. package/icons/material-symbols/coffee.svg +1 -1
  262. package/icons/material-symbols/columns.svg +1 -1
  263. package/icons/material-symbols/cookie.svg +1 -1
  264. package/icons/material-symbols/copy.svg +1 -1
  265. package/icons/material-symbols/credit-card.svg +1 -1
  266. package/icons/material-symbols/currency-circle-dollar.svg +1 -1
  267. package/icons/material-symbols/cursor-click.svg +1 -1
  268. package/icons/material-symbols/database.svg +1 -1
  269. package/icons/material-symbols/desktop.svg +1 -1
  270. package/icons/material-symbols/device-mobile.svg +1 -1
  271. package/icons/material-symbols/door-open.svg +1 -1
  272. package/icons/material-symbols/download-simple.svg +1 -1
  273. package/icons/material-symbols/envelope-simple.svg +1 -1
  274. package/icons/material-symbols/eye-slash.svg +1 -1
  275. package/icons/material-symbols/eye.svg +1 -1
  276. package/icons/material-symbols/file-pdf.svg +1 -1
  277. package/icons/material-symbols/file-text.svg +1 -1
  278. package/icons/material-symbols/file-video.svg +1 -1
  279. package/icons/material-symbols/file-zip.svg +1 -1
  280. package/icons/material-symbols/flower-lotus.svg +1 -1
  281. package/icons/material-symbols/folder-simple.svg +1 -1
  282. package/icons/material-symbols/funnel.svg +1 -1
  283. package/icons/material-symbols/gauge.svg +1 -1
  284. package/icons/material-symbols/gear.svg +1 -1
  285. package/icons/material-symbols/github-logo.svg +1 -1
  286. package/icons/material-symbols/globe.svg +1 -1
  287. package/icons/material-symbols/google-logo.svg +1 -1
  288. package/icons/material-symbols/graduation-cap.svg +1 -1
  289. package/icons/material-symbols/hammer.svg +1 -1
  290. package/icons/material-symbols/hand-heart.svg +1 -1
  291. package/icons/material-symbols/handshake.svg +1 -1
  292. package/icons/material-symbols/hard-drives.svg +1 -1
  293. package/icons/material-symbols/heart.svg +1 -1
  294. package/icons/material-symbols/house.svg +1 -1
  295. package/icons/material-symbols/image-square.svg +1 -1
  296. package/icons/material-symbols/image.svg +1 -1
  297. package/icons/material-symbols/info.svg +1 -1
  298. package/icons/material-symbols/keyboard.svg +1 -1
  299. package/icons/material-symbols/leaf.svg +1 -1
  300. package/icons/material-symbols/lifebuoy.svg +1 -1
  301. package/icons/material-symbols/lightbulb.svg +1 -1
  302. package/icons/material-symbols/link-break.svg +1 -1
  303. package/icons/material-symbols/link-simple.svg +1 -1
  304. package/icons/material-symbols/list-bullets.svg +1 -1
  305. package/icons/material-symbols/list-checks.svg +1 -1
  306. package/icons/material-symbols/list-numbers.svg +1 -1
  307. package/icons/material-symbols/list.svg +1 -1
  308. package/icons/material-symbols/lock-simple-open.svg +1 -1
  309. package/icons/material-symbols/lock-simple.svg +1 -1
  310. package/icons/material-symbols/magnifying-glass.svg +1 -1
  311. package/icons/material-symbols/map-pin.svg +1 -1
  312. package/icons/material-symbols/map-trifold.svg +1 -1
  313. package/icons/material-symbols/medal.svg +1 -1
  314. package/icons/material-symbols/megaphone.svg +1 -1
  315. package/icons/material-symbols/minus.svg +1 -1
  316. package/icons/material-symbols/moon.svg +1 -1
  317. package/icons/material-symbols/newspaper.svg +1 -1
  318. package/icons/material-symbols/pack.json +29 -29
  319. package/icons/material-symbols/paint-brush-broad.svg +1 -1
  320. package/icons/material-symbols/palette.svg +1 -1
  321. package/icons/material-symbols/paper-plane-tilt.svg +1 -1
  322. package/icons/material-symbols/pencil-simple.svg +1 -1
  323. package/icons/material-symbols/phone.svg +1 -1
  324. package/icons/material-symbols/play-fill.svg +1 -1
  325. package/icons/material-symbols/plus.svg +1 -1
  326. package/icons/material-symbols/prohibit.svg +1 -1
  327. package/icons/material-symbols/puzzle-piece.svg +1 -1
  328. package/icons/material-symbols/question.svg +1 -1
  329. package/icons/material-symbols/quotes.svg +1 -1
  330. package/icons/material-symbols/rows.svg +1 -1
  331. package/icons/material-symbols/ruler.svg +1 -1
  332. package/icons/material-symbols/scan.svg +1 -1
  333. package/icons/material-symbols/shapes.svg +1 -1
  334. package/icons/material-symbols/share-network.svg +1 -1
  335. package/icons/material-symbols/shield-check.svg +1 -1
  336. package/icons/material-symbols/sidebar-simple.svg +1 -1
  337. package/icons/material-symbols/sign-out.svg +1 -1
  338. package/icons/material-symbols/signpost.svg +1 -1
  339. package/icons/material-symbols/sliders-horizontal.svg +1 -1
  340. package/icons/material-symbols/smiley.svg +1 -1
  341. package/icons/material-symbols/sparkle.svg +1 -1
  342. package/icons/material-symbols/square-half-bottom.svg +1 -1
  343. package/icons/material-symbols/square.svg +1 -1
  344. package/icons/material-symbols/squares-four.svg +1 -1
  345. package/icons/material-symbols/sticker.svg +1 -1
  346. package/icons/material-symbols/storefront.svg +1 -1
  347. package/icons/material-symbols/sun.svg +1 -1
  348. package/icons/material-symbols/swatches.svg +1 -1
  349. package/icons/material-symbols/tag.svg +1 -1
  350. package/icons/material-symbols/text-aa.svg +1 -1
  351. package/icons/material-symbols/text-align-left.svg +1 -1
  352. package/icons/material-symbols/text-b.svg +1 -1
  353. package/icons/material-symbols/text-h-one.svg +1 -1
  354. package/icons/material-symbols/text-h-three.svg +1 -1
  355. package/icons/material-symbols/text-h-two.svg +1 -1
  356. package/icons/material-symbols/text-italic.svg +1 -1
  357. package/icons/material-symbols/text-t.svg +1 -1
  358. package/icons/material-symbols/ticket.svg +1 -1
  359. package/icons/material-symbols/toggle-right.svg +1 -1
  360. package/icons/material-symbols/train.svg +1 -1
  361. package/icons/material-symbols/trash.svg +1 -1
  362. package/icons/material-symbols/upload-simple.svg +1 -1
  363. package/icons/material-symbols/user-circle.svg +1 -1
  364. package/icons/material-symbols/user.svg +1 -1
  365. package/icons/material-symbols/users-three.svg +1 -1
  366. package/icons/material-symbols/users.svg +1 -1
  367. package/icons/material-symbols/video-camera.svg +1 -1
  368. package/icons/material-symbols/warning-circle.svg +1 -1
  369. package/icons/material-symbols/warning.svg +1 -1
  370. package/icons/material-symbols/wave-sine.svg +1 -1
  371. package/icons/material-symbols/wheelchair.svg +1 -1
  372. package/icons/material-symbols/wrench.svg +1 -1
  373. package/icons/material-symbols/x.svg +1 -1
  374. package/icons/phosphor/pack.json +8 -8
  375. package/lib/apps.mjs +142 -139
  376. package/lib/apps.test.d.mts +1 -0
  377. package/lib/apps.test.mjs +50 -0
  378. package/lib/blocks.mjs +90 -90
  379. package/lib/caseCollisions.d.mts +4 -0
  380. package/lib/caseCollisions.mjs +62 -0
  381. package/lib/caseCollisions.test.d.mts +1 -0
  382. package/lib/caseCollisions.test.mjs +74 -0
  383. package/lib/colors.ts +86 -86
  384. package/lib/contactBar.ts +18 -18
  385. package/lib/contracts.d.mts +15 -0
  386. package/lib/contracts.mjs +17 -0
  387. package/lib/cookieCategories.mjs +28 -28
  388. package/lib/crop.mjs +83 -83
  389. package/lib/csp.mjs +130 -130
  390. package/lib/cspSources.mjs +60 -60
  391. package/lib/dynamic-colors.ts +426 -426
  392. package/lib/git.mjs +64 -64
  393. package/lib/hooks.ts +51 -51
  394. package/lib/inline.ts +20 -20
  395. package/lib/license-texts/Apache-2.0.txt +190 -190
  396. package/lib/license-texts/BSD-2-Clause.txt +24 -24
  397. package/lib/license-texts/BSD-3-Clause.txt +28 -28
  398. package/lib/license-texts/ISC.txt +15 -15
  399. package/lib/license-texts/MIT.txt +21 -21
  400. package/lib/licenses.d.mts +1 -1
  401. package/lib/licenses.mjs +683 -683
  402. package/lib/markdown.ts +42 -42
  403. package/lib/motion-schemes.mjs +5 -5
  404. package/lib/motion.ts +131 -131
  405. package/lib/notice.mjs +34 -34
  406. package/lib/scheduled.mjs +37 -37
  407. package/lib/snackbar.ts +149 -149
  408. package/lib/status.mjs +18 -18
  409. package/lib/storeEntries.d.mts +18 -0
  410. package/lib/storeEntries.mjs +64 -0
  411. package/lib/storeEntries.test.d.mts +1 -0
  412. package/lib/storeEntries.test.mjs +71 -0
  413. package/lib/svg.mjs +231 -231
  414. package/lib/text-colors.mjs +43 -43
  415. package/lib/video-id.mjs +72 -72
  416. package/lib/video.mjs +91 -91
  417. package/package.json +136 -131
  418. package/pages/404.astro +10 -10
  419. package/pages/[...slug].astro +51 -51
  420. package/pages/_headers.txt +31 -31
  421. package/pages/blog/index.astro +10 -10
  422. package/pages/blog/kategori/[category].astro +18 -18
  423. package/pages/editor/code-images.json.js +25 -25
  424. package/pages/editor/index.astro +75 -75
  425. package/pages/editor/manifest.webmanifest.js +23 -23
  426. package/pages/editor/sw.js +33 -33
  427. package/pages/editor/sw.js.js +4 -4
  428. package/pages/editor/thumbnails.json.js +21 -21
  429. package/pages/editor/version.json.js +22 -22
  430. package/pages/headers.js +4 -4
  431. package/pages/index.astro +10 -10
  432. package/pages/ny.astro +6 -6
  433. package/pages/robots.txt.js +3 -3
  434. package/pages/rss.xml.js +20 -20
  435. package/scripts/app-screenshots.mjs +164 -164
  436. package/scripts/app-workers.mjs +6 -6
  437. package/scripts/bin.mjs +12 -12
  438. package/scripts/built-site.mjs +134 -99
  439. package/scripts/check-consent.mjs +113 -113
  440. package/scripts/check-content.mjs +151 -149
  441. package/scripts/check-demo.mjs +24 -24
  442. package/scripts/check-store.mjs +160 -0
  443. package/scripts/check-themes.mjs +45 -45
  444. package/scripts/check-worker.mjs +569 -569
  445. package/scripts/compare-html.mjs +81 -81
  446. package/scripts/declarations.mjs +10 -0
  447. package/scripts/declarations.test.mjs +32 -0
  448. package/scripts/demo-site.mjs +42 -42
  449. package/scripts/editor-icons.mjs +56 -56
  450. package/scripts/editor-roundtrip.mjs +134 -134
  451. package/scripts/editor-screens.mjs +101 -101
  452. package/scripts/git-env.mjs +9 -9
  453. package/scripts/icon-packs.mjs +151 -151
  454. package/scripts/link-counts.mjs +22 -22
  455. package/scripts/page-colors.mjs +42 -42
  456. package/scripts/releases.mjs +80 -80
  457. package/scripts/responsive-images.mjs +94 -94
  458. package/scripts/scheduled-list.mjs +15 -15
  459. package/scripts/theme-screenshots.mjs +88 -88
  460. package/scripts/types.mjs +17 -21
  461. package/scripts/video-thumbnails.mjs +89 -89
  462. package/scripts/worker-modules.mjs +34 -34
  463. package/site/appCookies.mjs +74 -74
  464. package/site/apps.ts +21 -21
  465. package/site/autolinks.mjs +200 -200
  466. package/site/blockScripts.ts +31 -31
  467. package/site/categories.ts +16 -16
  468. package/site/consent.ts +26 -26
  469. package/site/content.config.ts +84 -84
  470. package/site/content.ts +104 -104
  471. package/site/cookieList.ts +17 -17
  472. package/site/defineSite.d.mts +2 -14
  473. package/site/defineSite.mjs +131 -136
  474. package/site/directives/interact.mjs +31 -31
  475. package/site/editor-version.mjs +26 -26
  476. package/site/fill.ts +13 -13
  477. package/site/format.ts +11 -11
  478. package/site/home.ts +66 -66
  479. package/site/iconPacks.mjs +43 -43
  480. package/site/icons.mjs +605 -605
  481. package/site/images.mjs +157 -157
  482. package/site/motion.ts +13 -13
  483. package/site/noindex.mjs +21 -21
  484. package/site/pageColors.ts +110 -110
  485. package/site/popups.ts +98 -98
  486. package/site/schema.ts +189 -189
  487. package/site/sections.ts +3 -3
  488. package/site/seo.ts +28 -28
  489. package/site/site.ts +76 -76
  490. package/site/siteConfig.mjs +8 -8
  491. package/site/siteCsp.mjs +75 -75
  492. package/site/siteModules.mjs +27 -27
  493. package/site/standardPages.ts +59 -59
  494. package/site/storeTheme.d.mts +6 -0
  495. package/site/storeTheme.mjs +29 -0
  496. package/site/storeTheme.test.d.mts +1 -0
  497. package/site/storeTheme.test.mjs +53 -0
  498. package/site/testimonials.ts +48 -48
  499. package/site/text.ts +43 -43
  500. package/site/theme.mjs +483 -472
  501. package/site/tracking.client.ts +225 -225
  502. package/site/tracking.ts +9 -9
  503. package/src/ActionParts.tsx +205 -205
  504. package/src/Advanced.tsx +152 -152
  505. package/src/App.tsx +901 -904
  506. package/src/AppList.tsx +1362 -1345
  507. package/src/BlockDialog.tsx +360 -360
  508. package/src/BlockParts.tsx +652 -652
  509. package/src/BlockSettings.tsx +533 -533
  510. package/src/BrandForm.tsx +164 -164
  511. package/src/Colors.tsx +476 -476
  512. package/src/CommunicationParts.tsx +199 -199
  513. package/src/CompanyForm.tsx +209 -209
  514. package/src/Consents.tsx +175 -175
  515. package/src/ContainmentParts.tsx +185 -185
  516. package/src/Crop.tsx +152 -152
  517. package/src/DataForm.tsx +434 -434
  518. package/src/Deleted.tsx +177 -177
  519. package/src/EntryForm.tsx +740 -740
  520. package/src/FileView.tsx +30 -30
  521. package/src/FormFrame.tsx +237 -237
  522. package/src/Keywords.tsx +225 -225
  523. package/src/Library.tsx +1563 -1563
  524. package/src/Licenses.tsx +336 -336
  525. package/src/LinkSheet.tsx +138 -138
  526. package/src/MarkdownEditor.tsx +1075 -1075
  527. package/src/Media.tsx +677 -677
  528. package/src/NavigationParts.tsx +350 -350
  529. package/src/NavigationRestParts.tsx +247 -247
  530. package/src/Notifications.tsx +59 -59
  531. package/src/PagePicker.tsx +136 -136
  532. package/src/Parts.tsx +991 -991
  533. package/src/PartsShown.tsx +168 -168
  534. package/src/PickerParts.tsx +183 -183
  535. package/src/Redirects.tsx +450 -450
  536. package/src/Screen.tsx +184 -184
  537. package/src/SectionsField.tsx +65 -65
  538. package/src/SelectionParts.tsx +134 -134
  539. package/src/SeoScores.tsx +184 -184
  540. package/src/Sheet.tsx +35 -35
  541. package/src/ThemeStore.tsx +376 -376
  542. package/src/Tokens.tsx +346 -346
  543. package/src/Versions.tsx +214 -214
  544. package/src/addresses.ts +75 -75
  545. package/src/allIcons.ts +7 -7
  546. package/src/appFiles.ts +29 -29
  547. package/src/apps.ts +281 -281
  548. package/src/ask.tsx +123 -123
  549. package/src/blocks.ts +251 -251
  550. package/src/brand.ts +153 -153
  551. package/src/cache.ts +42 -42
  552. package/src/check.ts +285 -285
  553. package/src/checkSite.ts +256 -256
  554. package/src/{consents.ts → consentData.ts} +26 -26
  555. package/src/cookieList.ts +70 -70
  556. package/src/countries.ts +59 -59
  557. package/src/deploy.ts +155 -155
  558. package/src/editor.css +602 -602
  559. package/src/examples.ts +85 -85
  560. package/src/fields.tsx +942 -942
  561. package/src/frontmatter.mjs +42 -42
  562. package/src/github.ts +376 -376
  563. package/src/i18n/da-DK/advanced.ts +28 -28
  564. package/src/i18n/da-DK/app.ts +71 -71
  565. package/src/i18n/da-DK/apps.ts +90 -90
  566. package/src/i18n/da-DK/blockSettings.ts +38 -38
  567. package/src/i18n/da-DK/blocks.ts +408 -408
  568. package/src/i18n/da-DK/check.ts +25 -25
  569. package/src/i18n/da-DK/colors.ts +64 -64
  570. package/src/i18n/da-DK/common.ts +118 -118
  571. package/src/i18n/da-DK/company.ts +24 -24
  572. package/src/i18n/da-DK/consents.ts +23 -23
  573. package/src/i18n/da-DK/forms.ts +116 -116
  574. package/src/i18n/da-DK/history.ts +35 -35
  575. package/src/i18n/da-DK/index.ts +49 -49
  576. package/src/i18n/da-DK/keywords.ts +19 -19
  577. package/src/i18n/da-DK/library.ts +135 -135
  578. package/src/i18n/da-DK/licenses.ts +25 -25
  579. package/src/i18n/da-DK/media.ts +79 -79
  580. package/src/i18n/da-DK/parts.ts +696 -696
  581. package/src/i18n/da-DK/preview.ts +13 -13
  582. package/src/i18n/da-DK/redirects.ts +51 -51
  583. package/src/i18n/da-DK/seo.ts +20 -20
  584. package/src/i18n/da-DK/text.ts +35 -35
  585. package/src/i18n/da-DK/theme.ts +41 -41
  586. package/src/i18n/en-US/advanced.ts +32 -32
  587. package/src/i18n/en-US/app.ts +84 -84
  588. package/src/i18n/en-US/apps.ts +134 -134
  589. package/src/i18n/en-US/blockSettings.ts +48 -48
  590. package/src/i18n/en-US/blocks.ts +441 -441
  591. package/src/i18n/en-US/check.ts +31 -31
  592. package/src/i18n/en-US/colors.ts +82 -82
  593. package/src/i18n/en-US/common.ts +144 -144
  594. package/src/i18n/en-US/company.ts +25 -25
  595. package/src/i18n/en-US/consents.ts +25 -25
  596. package/src/i18n/en-US/forms.ts +145 -145
  597. package/src/i18n/en-US/history.ts +43 -43
  598. package/src/i18n/en-US/index.ts +51 -51
  599. package/src/i18n/en-US/keywords.ts +24 -24
  600. package/src/i18n/en-US/library.ts +176 -176
  601. package/src/i18n/en-US/licenses.ts +36 -36
  602. package/src/i18n/en-US/media.ts +80 -80
  603. package/src/i18n/en-US/parts.ts +718 -718
  604. package/src/i18n/en-US/preview.ts +15 -15
  605. package/src/i18n/en-US/redirects.ts +66 -66
  606. package/src/i18n/en-US/seo.ts +26 -26
  607. package/src/i18n/en-US/text.ts +41 -41
  608. package/src/i18n/en-US/theme.ts +41 -41
  609. package/src/i18n/index.ts +124 -124
  610. package/src/icon.tsx +160 -160
  611. package/src/iconPacks.ts +89 -89
  612. package/src/images.ts +163 -163
  613. package/src/{licenses.ts → licenseData.ts} +79 -79
  614. package/src/markdown.mjs +204 -204
  615. package/src/nav.ts +68 -68
  616. package/src/notFound.ts +28 -28
  617. package/src/{notifications.ts → notificationData.ts} +223 -223
  618. package/src/pagePreview.tsx +204 -204
  619. package/src/r2Caching.ts +55 -55
  620. package/src/{redirects.ts → redirectData.ts} +149 -149
  621. package/src/registry.tsx +188 -188
  622. package/src/schema.ts +417 -417
  623. package/src/sections.mjs +303 -303
  624. package/src/seo.ts +333 -333
  625. package/src/shared.ts +44 -44
  626. package/src/sidebar.ts +31 -31
  627. package/src/site.ts +317 -317
  628. package/src/standard/Block.astro +19 -19
  629. package/src/standard/BlockSite.astro +18 -18
  630. package/src/standard/accordion/index.tsx +47 -47
  631. package/src/standard/accordion/load.ts +23 -23
  632. package/src/standard/accordion/shared.ts +15 -15
  633. package/src/standard/accordion/view.ts +32 -32
  634. package/src/standard/buttons/fields.ts +98 -98
  635. package/src/standard/buttons/index.tsx +23 -23
  636. package/src/standard/buttons/load.ts +34 -34
  637. package/src/standard/buttons/shared.ts +12 -12
  638. package/src/standard/buttons/view.ts +30 -30
  639. package/src/standard/cards/index.tsx +71 -71
  640. package/src/standard/cards/load.ts +17 -17
  641. package/src/standard/cards/shared.ts +27 -27
  642. package/src/standard/cards/view.ts +29 -29
  643. package/src/standard/checklist/index.tsx +27 -27
  644. package/src/standard/checklist/load.ts +5 -5
  645. package/src/standard/checklist/view.ts +13 -13
  646. package/src/standard/cookies/index.tsx +17 -17
  647. package/src/standard/cookies/list.ts +56 -56
  648. package/src/standard/cookies/load.ts +11 -11
  649. package/src/standard/cookies/shared.ts +20 -20
  650. package/src/standard/cookies/view.ts +28 -28
  651. package/src/standard/faq/index.tsx +29 -29
  652. package/src/standard/faq/load.ts +14 -14
  653. package/src/standard/faq/view.ts +21 -21
  654. package/src/standard/head.ts +23 -23
  655. package/src/standard/hero/fields.ts +48 -48
  656. package/src/standard/hero/index.tsx +57 -57
  657. package/src/standard/hero/load.ts +23 -23
  658. package/src/standard/hero/view.ts +38 -38
  659. package/src/standard/links/index.tsx +41 -41
  660. package/src/standard/links/load.ts +17 -17
  661. package/src/standard/links/view.ts +25 -25
  662. package/src/standard/list/index.tsx +50 -50
  663. package/src/standard/list/load.ts +5 -5
  664. package/src/standard/list/view.ts +18 -18
  665. package/src/standard/load.ts +7 -7
  666. package/src/standard/notice/index.tsx +30 -30
  667. package/src/standard/notice/load.ts +16 -16
  668. package/src/standard/notice/view.ts +10 -10
  669. package/src/standard/points/index.tsx +42 -42
  670. package/src/standard/points/load.ts +5 -5
  671. package/src/standard/points/view.ts +12 -12
  672. package/src/standard/posts/index.tsx +132 -132
  673. package/src/standard/posts/load.ts +36 -36
  674. package/src/standard/posts/shared.ts +21 -21
  675. package/src/standard/posts/view.ts +63 -63
  676. package/src/standard/pricecards/index.tsx +57 -57
  677. package/src/standard/pricecards/load.ts +11 -11
  678. package/src/standard/pricecards/view.ts +50 -50
  679. package/src/standard/sharedTexts.ts +6 -6
  680. package/src/standard/site.ts +124 -124
  681. package/src/standard/siteLooks.ts +19 -19
  682. package/src/standard/sites.ts +13 -13
  683. package/src/standard/steps/index.tsx +28 -28
  684. package/src/standard/steps/load.ts +5 -5
  685. package/src/standard/steps/view.ts +11 -11
  686. package/src/standard/testimonials/index.tsx +87 -87
  687. package/src/standard/testimonials/list.ts +43 -43
  688. package/src/standard/testimonials/load.ts +58 -58
  689. package/src/standard/testimonials/shared.ts +13 -13
  690. package/src/standard/testimonials/view.ts +76 -76
  691. package/src/standard/themeBlocks.ts +13 -13
  692. package/src/standard/video/index.tsx +23 -23
  693. package/src/standard/video/load.ts +10 -10
  694. package/src/standard/video/view.ts +42 -42
  695. package/src/standard/view.tsx +105 -105
  696. package/src/standard/views.ts +37 -37
  697. package/src/store.ts +479 -499
  698. package/src/theme.ts +90 -90
  699. package/src/themeUi.ts +97 -97
  700. package/src/themes.ts +91 -91
  701. package/src/ui.tsx +3402 -3402
  702. package/src/virtual.d.ts +5 -5
  703. package/src/when.ts +22 -22
  704. package/starter/.githooks/pre-push +4 -4
  705. package/starter/.nvmrc +1 -1
  706. package/starter/.prettierignore +11 -11
  707. package/starter/.prettierrc.json +7 -7
  708. package/starter/README.md +27 -26
  709. package/starter/astro.config.mjs +5 -5
  710. package/starter/package.json +67 -67
  711. package/starter/public/_redirects +1 -1
  712. package/starter/public/favicon.svg +1 -1
  713. package/starter/public/logo.svg +1 -1
  714. package/starter/src/content/pages/blog.md +8 -8
  715. package/starter/src/content/pages/forside.md +9 -9
  716. package/starter/src/content/pages/kontakt.md +7 -7
  717. package/starter/src/content/pages/privatlivspolitik.md +9 -9
  718. package/starter/src/content/pages/siden-findes-ikke.md +7 -7
  719. package/starter/src/content.config.ts +2 -2
  720. package/starter/src/data/apps.json +1 -1
  721. package/starter/src/data/block-settings.json +3 -3
  722. package/starter/src/data/blocks.json +1 -1
  723. package/starter/src/data/booking.json +6 -6
  724. package/starter/src/data/colors.json +70 -70
  725. package/starter/src/data/contact.json +8 -8
  726. package/starter/src/data/cookies.json +21 -21
  727. package/starter/src/data/csp.json +1 -1
  728. package/starter/src/data/footer.json +15 -15
  729. package/starter/src/data/internal-links.json +4 -4
  730. package/starter/src/data/menu.json +4 -4
  731. package/starter/src/data/mobile-menu.json +4 -4
  732. package/starter/src/data/old-addresses.json +1 -1
  733. package/starter/src/data/redirects.json +1 -1
  734. package/starter/src/data/standard-pages.json +8 -8
  735. package/starter/src/data/theme.json +1 -1
  736. package/starter/src/env.d.ts +2 -2
  737. package/starter/src/site/config.ts +13 -13
  738. package/starter/src/site/worker.js +14 -14
  739. package/starter/tsconfig.json +17 -17
  740. package/starter/worker/apps.js +6 -6
  741. package/starter/wrangler.jsonc +39 -39
  742. package/theme/LICENSE +21 -21
  743. package/theme/blocks/ArrowLink.tsx +14 -14
  744. package/theme/blocks/BlockHead.tsx +26 -26
  745. package/theme/blocks/Panel.tsx +32 -32
  746. package/theme/blocks/Person.tsx +26 -26
  747. package/theme/blocks/accordion/PageRow.tsx +25 -25
  748. package/theme/blocks/accordion/View.tsx +17 -17
  749. package/theme/blocks/buttons/Buttons.tsx +28 -28
  750. package/theme/blocks/buttons/View.tsx +12 -12
  751. package/theme/blocks/cards/LinkCards.tsx +72 -72
  752. package/theme/blocks/cards/View.tsx +20 -20
  753. package/theme/blocks/checklist/Checks.tsx +15 -15
  754. package/theme/blocks/checklist/View.tsx +14 -14
  755. package/theme/blocks/cookies/View.tsx +36 -36
  756. package/theme/blocks/faq/Accordion.tsx +34 -34
  757. package/theme/blocks/faq/View.tsx +16 -16
  758. package/theme/blocks/faq/script.ts +56 -56
  759. package/theme/blocks/hero/View.tsx +44 -44
  760. package/theme/blocks/links/LinkGroups.tsx +24 -24
  761. package/theme/blocks/links/View.tsx +17 -17
  762. package/theme/blocks/list/Rows.tsx +24 -24
  763. package/theme/blocks/list/View.tsx +14 -14
  764. package/theme/blocks/notice/View.tsx +13 -13
  765. package/theme/blocks/points/PointList.tsx +34 -34
  766. package/theme/blocks/points/View.tsx +14 -14
  767. package/theme/blocks/posts/View.tsx +26 -26
  768. package/theme/blocks/pricecards/View.tsx +40 -40
  769. package/theme/blocks/steps/StepList.tsx +23 -23
  770. package/theme/blocks/steps/View.tsx +14 -14
  771. package/theme/blocks/testimonials/List.tsx +46 -46
  772. package/theme/blocks/testimonials/Slider.tsx +44 -44
  773. package/theme/blocks/testimonials/Testimonial.tsx +124 -124
  774. package/theme/blocks/testimonials/View.tsx +21 -21
  775. package/theme/blocks/testimonials/script.ts +52 -52
  776. package/theme/blocks/video/View.tsx +41 -41
  777. package/theme/components/ActionBar.astro +63 -63
  778. package/theme/components/AppSlot.astro +21 -21
  779. package/theme/components/ArrowLink.tsx +21 -21
  780. package/theme/components/BlogIndex.astro +48 -48
  781. package/theme/components/BlogPosts.astro +18 -18
  782. package/theme/components/BlogPosts.tsx +45 -45
  783. package/theme/components/BookButton.tsx +22 -22
  784. package/theme/components/Container.astro +11 -11
  785. package/theme/components/CookieConsent.astro +121 -121
  786. package/theme/components/EndBlock.astro +21 -21
  787. package/theme/components/FontPreload.astro +6 -6
  788. package/theme/components/Footer.astro +85 -85
  789. package/theme/components/Header.astro +186 -186
  790. package/theme/components/Icon.astro +16 -16
  791. package/theme/components/Img.astro +29 -29
  792. package/theme/components/Img.tsx +33 -33
  793. package/theme/components/Inline.astro +11 -11
  794. package/theme/components/Logo.astro +23 -23
  795. package/theme/components/LogoMark.astro +10 -10
  796. package/theme/components/Markdown.astro +17 -17
  797. package/theme/components/MobileMenu.tsx +224 -224
  798. package/theme/components/MobileNav.astro +33 -33
  799. package/theme/components/PageHeader.astro +22 -22
  800. package/theme/components/PageSection.astro +24 -24
  801. package/theme/components/PhoneButton.tsx +11 -11
  802. package/theme/components/Popup.astro +145 -145
  803. package/theme/components/PopupButton.tsx +24 -24
  804. package/theme/components/PopupView.tsx +48 -48
  805. package/theme/components/PostList.tsx +58 -58
  806. package/theme/components/PostMeta.tsx +17 -17
  807. package/theme/components/RichText.astro +28 -28
  808. package/theme/components/Section.astro +29 -29
  809. package/theme/components/SectionHeading.tsx +8 -8
  810. package/theme/components/TextSection.astro +16 -16
  811. package/theme/components/home/PageBlock.astro +19 -19
  812. package/theme/components/home/Text.astro +13 -13
  813. package/theme/components/loadPopup.ts +22 -22
  814. package/theme/components/loadPosts.ts +16 -16
  815. package/theme/components/posts.ts +15 -15
  816. package/theme/editor/looks.mjs +7 -7
  817. package/theme/editor/previews.tsx +56 -56
  818. package/theme/layouts/Base.astro +273 -273
  819. package/theme/layouts/PageLayout.astro +126 -126
  820. package/theme/layouts/PostLayout.astro +137 -137
  821. package/theme/scripts/motion.ts +29 -29
  822. package/theme/styles/base.css +320 -320
  823. package/theme/styles/blocks.css +1808 -1808
  824. package/theme/styles/components.css +206 -206
  825. package/theme/styles/global.css +1302 -1302
  826. package/theme/styles/ui.css +6544 -6544
  827. package/theme/templates/Blog.astro +38 -38
  828. package/theme/templates/Category.astro +19 -19
  829. package/theme/templates/Home.astro +36 -36
  830. package/theme/templates/New.astro +68 -68
  831. package/theme/templates/NotFound.astro +117 -117
  832. package/theme/theme.json +28 -28
  833. package/theme/ui/Badge.tsx +45 -45
  834. package/theme/ui/BottomSheet.tsx +148 -148
  835. package/theme/ui/Button.tsx +79 -79
  836. package/theme/ui/ButtonGroup.tsx +31 -31
  837. package/theme/ui/Card.tsx +45 -45
  838. package/theme/ui/Carousel.tsx +124 -124
  839. package/theme/ui/Checkbox.tsx +59 -59
  840. package/theme/ui/Chip.tsx +101 -101
  841. package/theme/ui/ChipSet.tsx +27 -27
  842. package/theme/ui/DatePicker.tsx +149 -149
  843. package/theme/ui/DatePickerContainer.tsx +316 -316
  844. package/theme/ui/Dialog.tsx +100 -100
  845. package/theme/ui/Divider.tsx +27 -27
  846. package/theme/ui/ExposedDropdownMenu.tsx +77 -77
  847. package/theme/ui/Fab.tsx +88 -88
  848. package/theme/ui/FabMenu.tsx +67 -67
  849. package/theme/ui/IconButton.tsx +78 -78
  850. package/theme/ui/List.tsx +287 -287
  851. package/theme/ui/LoadingIndicator.tsx +29 -29
  852. package/theme/ui/Menu.tsx +278 -278
  853. package/theme/ui/NavigationBar.tsx +62 -62
  854. package/theme/ui/NavigationDrawer.tsx +80 -80
  855. package/theme/ui/NavigationRail.tsx +154 -154
  856. package/theme/ui/ProgressIndicator.tsx +162 -162
  857. package/theme/ui/RadioButton.tsx +50 -50
  858. package/theme/ui/Search.tsx +129 -129
  859. package/theme/ui/SegmentedButton.tsx +49 -49
  860. package/theme/ui/SideSheet.tsx +54 -54
  861. package/theme/ui/Slider.tsx +155 -155
  862. package/theme/ui/Snackbar.tsx +67 -67
  863. package/theme/ui/SplitButton.tsx +67 -67
  864. package/theme/ui/Switch.tsx +60 -60
  865. package/theme/ui/Tabs.tsx +114 -114
  866. package/theme/ui/TextField.tsx +278 -278
  867. package/theme/ui/TimePicker.tsx +128 -128
  868. package/theme/ui/TimePickerContainer.tsx +234 -234
  869. package/theme/ui/Toolbar.tsx +67 -67
  870. package/theme/ui/Tooltip.tsx +58 -58
  871. package/theme/ui/TopAppBar.tsx +77 -77
  872. package/theme/ui/bottomSheet.script.ts +8 -8
  873. package/theme/ui/{bottomSheet.ts → bottomSheetControl.ts} +211 -211
  874. package/theme/ui/carousel.script.ts +28 -28
  875. package/theme/ui/carouselLayout.ts +229 -229
  876. package/theme/ui/checkbox.script.ts +8 -8
  877. package/theme/ui/datePicker.script.ts +302 -302
  878. package/theme/ui/dates.ts +185 -185
  879. package/theme/ui/{dialog.ts → dialogControl.ts} +48 -48
  880. package/theme/ui/dropdownMenu.script.ts +166 -166
  881. package/theme/ui/fabMenu.script.ts +57 -57
  882. package/theme/ui/navigationRail.script.ts +47 -47
  883. package/theme/ui/ripple.script.ts +159 -159
  884. package/theme/ui/search.script.ts +92 -92
  885. package/theme/ui/{sideSheet.ts → sideSheetControl.ts} +48 -48
  886. package/theme/ui/slider.script.ts +12 -12
  887. package/theme/ui/sliderUpdate.ts +52 -52
  888. package/theme/ui/snackbar.script.ts +16 -16
  889. package/theme/ui/splitButton.script.ts +63 -63
  890. package/theme/ui/tabs.script.ts +48 -48
  891. package/theme/ui/textField.script.ts +17 -17
  892. package/theme/ui/textFieldUpdate.ts +44 -44
  893. package/theme/ui/timePicker.script.ts +248 -248
  894. package/theme/ui/toolbar.script.ts +43 -43
  895. package/theme/ui/tooltip.script.ts +68 -68
  896. package/worker/consent.js +141 -141
  897. package/worker/editor-github.js +167 -167
  898. package/worker/editor-host.js +74 -74
  899. package/worker/files.js +401 -401
  900. package/worker/github.js +36 -36
  901. package/worker/index.js +188 -184
  902. package/worker/not-found.js +97 -97
  903. package/worker/oauth.js +95 -95
  904. package/worker/publish.js +52 -52
  905. package/worker/push.js +270 -270
  906. package/worker/r2-status.js +50 -50
  907. package/worker/session.js +58 -58
  908. package/worker/store.js +46 -0
@@ -1,176 +1,176 @@
1
- // The start screen, the lists and the account (Library.tsx), the top bar (Screen.tsx) and the sheets
2
- // with choices (Sheet.tsx).
3
- export const library = {
4
- siteUpdated: (when: string) => `Updated ${when}`,
5
- githubAccount: (login: string) => `GitHub account: ${login}`,
6
- logOut: 'Log out',
7
- /** The bell in the top bar and its screen (#notifikationer, Notifications.tsx): the messages shown at the bottom. */
8
- notifications: 'Notifications',
9
- /** The bell's name while some are not seen yet. */
10
- notificationsNew: (count: number) => `Notifications, ${count} new`,
11
- noNotifications: 'No notifications',
12
- clearNotifications: 'Clear notifications',
13
- /** On "Konto" › "Notifikationer" (Library.tsx NotificationChoices, notifications.ts). */
14
- /** The sliders on "Notifikationer": to "Konto", where they are turned on or off. */
15
- notificationChoices: 'Choose notifications',
16
- onDevice: 'On the phone',
17
- onDeviceHint: 'Also when the editor is closed.',
18
- deviceBlocked: 'The phone or browser doesn’t allow notifications from the editor. Turn them on in its settings.',
19
- notificationTypes: { site: 'Website updated', saved: 'Saved and deleted', failed: 'Couldn’t save', updates: 'Apps updated' },
20
- on: 'On',
21
- off: 'Off',
22
- /** Under a theme's name under "Temaer" and on its page: its version and who made it. */
23
- themeByline: (version: string, author: string) => `Version ${version} · ${author}`,
24
- /** By the theme the site is built with, under "Temaer" and on its page. */
25
- themeInUse: 'In use',
26
- /** By the theme it is changed to, until the site is built with it: under "Temaer", and on its page. */
27
- themeNext: 'Changing to it',
28
- themeChanging: (name: string) => `Changing to ${name} in a few minutes`,
29
- /** On a theme's page: the pictures of the site in it (packages/editor/scripts/theme-screenshots.mjs), each by what it shows. */
30
- themeLooks: 'What your website looks like',
31
- themeShots: {
32
- front: 'The front page',
33
- 'front-dark': 'The front page in dark mode',
34
- blog: 'The blog page',
35
- contact: 'The contact page',
36
- } as Record<string, string>,
37
- /** Its description, what it gives the site (its highlights) and what stays when it is used. */
38
- themeAbout: 'About the theme',
39
- themeHighlights: 'What you get',
40
- themeKept: 'What stays as it is',
41
- themeKeptContent: 'Pages and posts',
42
- themeKeptBrand: 'Colors and logo',
43
- themeKeptBlocks: "All blocks, in the theme's look",
44
- /** The button on a theme's page that swaps the theme the site is built with to it. */
45
- useTheme: 'Use the theme',
46
- /** The question's button before the theme is changed. */
47
- changeTheme: 'Change theme',
48
- /** Asked before the theme is changed. */
49
- changeThemeAsk: (name: string) => `The website gets the theme ${name}. It is updated in a few minutes.`,
50
- /** The commit, in the site's language (siteT). */
51
- themeCommit: (name: string) => `Editor: change theme to ${name}`,
52
- /** A theme from the store (ThemeStore.tsx): installed, updated or uninstalled, asked before it is uninstalled, why
53
- * one in use cannot be, and under "Afinstaller" when it can; a theme the store does not have; how many a developer
54
- * has made; and the commits, in the site's language (siteT). */
55
- themeInstalled: (name: string) => `${name} is installed and can be chosen once the website is built`,
56
- themeUpdated: (name: string, version: string) => `${name} is updated to ${version} and looks that way once the website is built`,
57
- themeUninstalled: (name: string) => `${name} is uninstalled`,
58
- askUninstallTheme: (name: string) => `Uninstall ${name}? The theme is removed from the website.`,
59
- themeStuck: 'The theme is in use and can’t be uninstalled. Choose another theme first.',
60
- themeUninstallHint: 'Can be uninstalled, as the website doesn’t use the theme.',
61
- themePendingHint: 'The theme can be chosen once the website is built.',
62
- themeNotInStore: 'The theme isn’t in the Appstore',
63
- themeCount: (n: number) => (n === 1 ? '1 theme' : `${n} themes`),
64
- searchThemes: 'Search for themes',
65
- themeCommits: {
66
- install: (name: string) => `Editor: install the theme ${name}`,
67
- uninstall: (name: string) => `Editor: uninstall the theme ${name}`,
68
- update: (name: string, version: string) => `Editor: update the theme ${name} to ${version}`,
69
- },
70
- /** Under "Ikonpakker" (IconPacks in Library.tsx): under a pack's name who made it, its licence and, for one a theme
71
- * brings, the theme; a few of its icons, for screen readers; by the one the site is built with, and by the one chosen
72
- * until the site is built with it; asked before it is chosen, the question's button, what is said after it is saved,
73
- * and the commit, in the site's language (siteT). */
74
- iconPackByline: (author: string, license: string) => `${author} · ${license}`,
75
- iconPackFrom: (theme: string) => `From the theme ${theme}`,
76
- iconPackSamples: (name: string) => `Icons from ${name}`,
77
- iconPackInUse: 'In use',
78
- iconPackNext: 'Changing to it once the website is built',
79
- changeIconPackAsk: (name: string) => `The website and the editor get the icons from ${name} once the website is built in a few minutes`,
80
- changeIconPack: 'Change icon pack',
81
- iconPackSaved: (change: string) => `${change}. The website and the editor get the new icons once the website is built.`,
82
- iconPackCommit: (name: string) => `Editor: change icon pack to ${name}`,
83
- /** Under "Bevægelse" (MotionSchemes in Library.tsx): each motion scheme's name and how it moves (lib/motion.ts); by the
84
- * theme's own; asked before one is chosen, the question's button, what is said after it is saved, and the commit, in
85
- * the site's language (siteT). */
86
- motionSchemes: { expressive: 'Expressive', standard: 'Standard', calm: 'Calm' },
87
- motionHints: {
88
- expressive: 'What moves overshoots a little and settles',
89
- standard: 'What moves glides into place',
90
- calm: 'What moves does so briefly, and sections are shown right away',
91
- },
92
- motionOfTheme: 'The theme’s choice',
93
- changeMotionAsk: (name: string) => `The website gets the ${name} motion once it’s built in a few minutes. The editor gets it right away.`,
94
- changeMotion: 'Change motion',
95
- motionSaved: (change: string) => `${change}. The website gets the new motion once it’s built.`,
96
- motionCommit: (name: string) => `Editor: change motion to ${name}`,
97
- /** A theme whose icon pack is chosen cannot be uninstalled, nor updated to a version without it (ThemeStore.tsx). */
98
- themeIconPackStuck: "The theme's icon pack is in use, so the theme can’t be uninstalled. Choose another icon pack first.",
99
- themeDropsIconPack: (name: string, pack: string) =>
100
- `The new version of ${name} doesn’t have the icon pack ${pack}, which is in use. Choose another icon pack first.`,
101
- theme: 'Appearance',
102
- themes: { light: 'Light', auto: 'Auto', dark: 'Dark' },
103
- language: 'Language',
104
- /** The browser's language, else the site's, with the one it is now. */
105
- languageAuto: (name: string) => `Automatic: ${name}`,
106
- /** The search over the languages, for screen readers. */
107
- languageSearch: 'Search the languages',
108
- savingOrder: 'Saving the new order…',
109
- orderNotSaved: (error: string) => `Couldn’t save the order: ${error}`,
110
- status: {
111
- draft: 'Draft',
112
- unlisted: 'Hidden',
113
- scheduled: 'Scheduled',
114
- /** "Planlagt 1. nov. kl. 8.00" (`when`, when.ts). */
115
- scheduledAt: (when: string) => `Scheduled ${when}`,
116
- },
117
- /** The filter over the pages and posts that shows only those with one status. */
118
- statusFilter: 'Status',
119
- /** Its choices: all, and each status there is. */
120
- statusShown: { all: 'All', published: 'Published', draft: 'Draft', unlisted: 'Hidden', scheduled: 'Scheduled' },
121
- sort: 'Sort',
122
- sorts: {
123
- nyeste: 'Newest first',
124
- aeldste: 'Oldest first',
125
- az: 'A–Z',
126
- za: 'Z–A',
127
- /** The pages, by when they were last saved. */
128
- savedNewest: 'Most recently changed first',
129
- savedOldest: 'Least recently changed first',
130
- /** A list of kinds (Promovering), under a heading for each kind. */
131
- type: 'By type',
132
- /** "Standardblokke" (#blokke), in the groups by where the blocks come from. */
133
- group: 'By group',
134
- },
135
- /** The funnel over a list of what is shown on pages (Promovering), with its filters in one sheet. */
136
- filter: 'Filter',
137
- /** The filter that shows only those on one page, and its first choice: those on all pages. */
138
- pageFilter: 'Page',
139
- allPages: 'All pages',
140
- /** The first choice of a filter by what pages or posts pick, by the field's name: "Alle tags". */
141
- allOf: (field: string) => `All ${field.toLocaleLowerCase('en')}`,
142
- /** Its headings, when there are both pages and tags to pick. */
143
- pagesGroup: 'Pages',
144
- tagsGroup: 'Tags',
145
- /** The filter by the kind of entry, and its first choice. */
146
- kindFilter: 'Type',
147
- allKinds: 'All types',
148
- /** The filter by whether an entry is turned on, and its first choice. */
149
- onOffFilter: 'Status',
150
- allOnOff: 'All',
151
- /** The filters over "Standardblokke" (#blokke): by the group (where the block comes from) and by whether
152
- * the block is on a page, each with its first choice. */
153
- groupFilter: 'Group',
154
- allGroups: 'All groups',
155
- useFilter: 'Use',
156
- allUses: 'All',
157
- inUse: 'In use',
158
- /** A filter picked, as a chip under the list's choices, for screen readers. */
159
- removeFilter: (label: string) => `Remove the filter ${label}`,
160
- showAsList: 'Show as a list',
161
- showAsMenu: 'Show as menu',
162
- /** The Google icon over the pages and posts: their SEO score at the start of each row. */
163
- showSeo: 'Show SEO rating',
164
- hideSeo: 'Hide SEO rating',
165
- menu: 'The menu',
166
- notInMenu: 'Not in the menu',
167
- pageGone: 'The page doesn’t exist',
168
- showSubpages: 'Show subpages',
169
- hideSubpages: 'Hide subpages',
170
- showSubpagesOf: (title: string) => `Show subpages of ${title}`,
171
- hideSubpagesOf: (title: string) => `Hide subpages of ${title}`,
172
- openSidebar: 'Open the sidebar',
173
- closeSidebar: 'Close the sidebar',
174
- sidebar: 'The sidebar',
175
- breadcrumbs: 'Breadcrumbs',
176
- };
1
+ // The start screen, the lists and the account (Library.tsx), the top bar (Screen.tsx) and the sheets
2
+ // with choices (Sheet.tsx).
3
+ export const library = {
4
+ siteUpdated: (when: string) => `Updated ${when}`,
5
+ githubAccount: (login: string) => `GitHub account: ${login}`,
6
+ logOut: 'Log out',
7
+ /** The bell in the top bar and its screen (#notifikationer, Notifications.tsx): the messages shown at the bottom. */
8
+ notifications: 'Notifications',
9
+ /** The bell's name while some are not seen yet. */
10
+ notificationsNew: (count: number) => `Notifications, ${count} new`,
11
+ noNotifications: 'No notifications',
12
+ clearNotifications: 'Clear notifications',
13
+ /** On "Konto" › "Notifikationer" (Library.tsx NotificationChoices, notificationData.ts). */
14
+ /** The sliders on "Notifikationer": to "Konto", where they are turned on or off. */
15
+ notificationChoices: 'Choose notifications',
16
+ onDevice: 'On the phone',
17
+ onDeviceHint: 'Also when the editor is closed.',
18
+ deviceBlocked: 'The phone or browser doesn’t allow notifications from the editor. Turn them on in its settings.',
19
+ notificationTypes: { site: 'Website updated', saved: 'Saved and deleted', failed: 'Couldn’t save', updates: 'Apps updated' },
20
+ on: 'On',
21
+ off: 'Off',
22
+ /** Under a theme's name under "Temaer" and on its page: its version and who made it. */
23
+ themeByline: (version: string, author: string) => `Version ${version} · ${author}`,
24
+ /** By the theme the site is built with, under "Temaer" and on its page. */
25
+ themeInUse: 'In use',
26
+ /** By the theme it is changed to, until the site is built with it: under "Temaer", and on its page. */
27
+ themeNext: 'Changing to it',
28
+ themeChanging: (name: string) => `Changing to ${name} in a few minutes`,
29
+ /** On a theme's page: the pictures of the site in it (packages/editor/scripts/theme-screenshots.mjs), each by what it shows. */
30
+ themeLooks: 'What your website looks like',
31
+ themeShots: {
32
+ front: 'The front page',
33
+ 'front-dark': 'The front page in dark mode',
34
+ blog: 'The blog page',
35
+ contact: 'The contact page',
36
+ } as Record<string, string>,
37
+ /** Its description, what it gives the site (its highlights) and what stays when it is used. */
38
+ themeAbout: 'About the theme',
39
+ themeHighlights: 'What you get',
40
+ themeKept: 'What stays as it is',
41
+ themeKeptContent: 'Pages and posts',
42
+ themeKeptBrand: 'Colors and logo',
43
+ themeKeptBlocks: "All blocks, in the theme's look",
44
+ /** The button on a theme's page that swaps the theme the site is built with to it. */
45
+ useTheme: 'Use the theme',
46
+ /** The question's button before the theme is changed. */
47
+ changeTheme: 'Change theme',
48
+ /** Asked before the theme is changed. */
49
+ changeThemeAsk: (name: string) => `The website gets the theme ${name}. It is updated in a few minutes.`,
50
+ /** The commit, in the site's language (siteT). */
51
+ themeCommit: (name: string) => `Editor: change theme to ${name}`,
52
+ /** A theme from the store (ThemeStore.tsx): installed, updated or uninstalled, asked before it is uninstalled, why
53
+ * one in use cannot be, and under "Afinstaller" when it can; a theme the store does not have; how many a developer
54
+ * has made; and the commits, in the site's language (siteT). */
55
+ themeInstalled: (name: string) => `${name} is installed and can be chosen once the website is built`,
56
+ themeUpdated: (name: string, version: string) => `${name} is updated to ${version} and looks that way once the website is built`,
57
+ themeUninstalled: (name: string) => `${name} is uninstalled`,
58
+ askUninstallTheme: (name: string) => `Uninstall ${name}? The theme is removed from the website.`,
59
+ themeStuck: 'The theme is in use and can’t be uninstalled. Choose another theme first.',
60
+ themeUninstallHint: 'Can be uninstalled, as the website doesn’t use the theme.',
61
+ themePendingHint: 'The theme can be chosen once the website is built.',
62
+ themeNotInStore: 'The theme isn’t in the Appstore',
63
+ themeCount: (n: number) => (n === 1 ? '1 theme' : `${n} themes`),
64
+ searchThemes: 'Search for themes',
65
+ themeCommits: {
66
+ install: (name: string) => `Editor: install the theme ${name}`,
67
+ uninstall: (name: string) => `Editor: uninstall the theme ${name}`,
68
+ update: (name: string, version: string) => `Editor: update the theme ${name} to ${version}`,
69
+ },
70
+ /** Under "Ikonpakker" (IconPacks in Library.tsx): under a pack's name who made it, its licence and, for one a theme
71
+ * brings, the theme; a few of its icons, for screen readers; by the one the site is built with, and by the one chosen
72
+ * until the site is built with it; asked before it is chosen, the question's button, what is said after it is saved,
73
+ * and the commit, in the site's language (siteT). */
74
+ iconPackByline: (author: string, license: string) => `${author} · ${license}`,
75
+ iconPackFrom: (theme: string) => `From the theme ${theme}`,
76
+ iconPackSamples: (name: string) => `Icons from ${name}`,
77
+ iconPackInUse: 'In use',
78
+ iconPackNext: 'Changing to it once the website is built',
79
+ changeIconPackAsk: (name: string) => `The website and the editor get the icons from ${name} once the website is built in a few minutes`,
80
+ changeIconPack: 'Change icon pack',
81
+ iconPackSaved: (change: string) => `${change}. The website and the editor get the new icons once the website is built.`,
82
+ iconPackCommit: (name: string) => `Editor: change icon pack to ${name}`,
83
+ /** Under "Bevægelse" (MotionSchemes in Library.tsx): each motion scheme's name and how it moves (lib/motion.ts); by the
84
+ * theme's own; asked before one is chosen, the question's button, what is said after it is saved, and the commit, in
85
+ * the site's language (siteT). */
86
+ motionSchemes: { expressive: 'Expressive', standard: 'Standard', calm: 'Calm' },
87
+ motionHints: {
88
+ expressive: 'What moves overshoots a little and settles',
89
+ standard: 'What moves glides into place',
90
+ calm: 'What moves does so briefly, and sections are shown right away',
91
+ },
92
+ motionOfTheme: 'The theme’s choice',
93
+ changeMotionAsk: (name: string) => `The website gets the ${name} motion once it’s built in a few minutes. The editor gets it right away.`,
94
+ changeMotion: 'Change motion',
95
+ motionSaved: (change: string) => `${change}. The website gets the new motion once it’s built.`,
96
+ motionCommit: (name: string) => `Editor: change motion to ${name}`,
97
+ /** A theme whose icon pack is chosen cannot be uninstalled, nor updated to a version without it (ThemeStore.tsx). */
98
+ themeIconPackStuck: "The theme's icon pack is in use, so the theme can’t be uninstalled. Choose another icon pack first.",
99
+ themeDropsIconPack: (name: string, pack: string) =>
100
+ `The new version of ${name} doesn’t have the icon pack ${pack}, which is in use. Choose another icon pack first.`,
101
+ theme: 'Appearance',
102
+ themes: { light: 'Light', auto: 'Auto', dark: 'Dark' },
103
+ language: 'Language',
104
+ /** The browser's language, else the site's, with the one it is now. */
105
+ languageAuto: (name: string) => `Automatic: ${name}`,
106
+ /** The search over the languages, for screen readers. */
107
+ languageSearch: 'Search the languages',
108
+ savingOrder: 'Saving the new order…',
109
+ orderNotSaved: (error: string) => `Couldn’t save the order: ${error}`,
110
+ status: {
111
+ draft: 'Draft',
112
+ unlisted: 'Hidden',
113
+ scheduled: 'Scheduled',
114
+ /** "Planlagt 1. nov. kl. 8.00" (`when`, when.ts). */
115
+ scheduledAt: (when: string) => `Scheduled ${when}`,
116
+ },
117
+ /** The filter over the pages and posts that shows only those with one status. */
118
+ statusFilter: 'Status',
119
+ /** Its choices: all, and each status there is. */
120
+ statusShown: { all: 'All', published: 'Published', draft: 'Draft', unlisted: 'Hidden', scheduled: 'Scheduled' },
121
+ sort: 'Sort',
122
+ sorts: {
123
+ nyeste: 'Newest first',
124
+ aeldste: 'Oldest first',
125
+ az: 'A–Z',
126
+ za: 'Z–A',
127
+ /** The pages, by when they were last saved. */
128
+ savedNewest: 'Most recently changed first',
129
+ savedOldest: 'Least recently changed first',
130
+ /** A list of kinds (Promovering), under a heading for each kind. */
131
+ type: 'By type',
132
+ /** "Standardblokke" (#blokke), in the groups by where the blocks come from. */
133
+ group: 'By group',
134
+ },
135
+ /** The funnel over a list of what is shown on pages (Promovering), with its filters in one sheet. */
136
+ filter: 'Filter',
137
+ /** The filter that shows only those on one page, and its first choice: those on all pages. */
138
+ pageFilter: 'Page',
139
+ allPages: 'All pages',
140
+ /** The first choice of a filter by what pages or posts pick, by the field's name: "Alle tags". */
141
+ allOf: (field: string) => `All ${field.toLocaleLowerCase('en')}`,
142
+ /** Its headings, when there are both pages and tags to pick. */
143
+ pagesGroup: 'Pages',
144
+ tagsGroup: 'Tags',
145
+ /** The filter by the kind of entry, and its first choice. */
146
+ kindFilter: 'Type',
147
+ allKinds: 'All types',
148
+ /** The filter by whether an entry is turned on, and its first choice. */
149
+ onOffFilter: 'Status',
150
+ allOnOff: 'All',
151
+ /** The filters over "Standardblokke" (#blokke): by the group (where the block comes from) and by whether
152
+ * the block is on a page, each with its first choice. */
153
+ groupFilter: 'Group',
154
+ allGroups: 'All groups',
155
+ useFilter: 'Use',
156
+ allUses: 'All',
157
+ inUse: 'In use',
158
+ /** A filter picked, as a chip under the list's choices, for screen readers. */
159
+ removeFilter: (label: string) => `Remove the filter ${label}`,
160
+ showAsList: 'Show as a list',
161
+ showAsMenu: 'Show as menu',
162
+ /** The Google icon over the pages and posts: their SEO score at the start of each row. */
163
+ showSeo: 'Show SEO rating',
164
+ hideSeo: 'Hide SEO rating',
165
+ menu: 'The menu',
166
+ notInMenu: 'Not in the menu',
167
+ pageGone: 'The page doesn’t exist',
168
+ showSubpages: 'Show subpages',
169
+ hideSubpages: 'Hide subpages',
170
+ showSubpagesOf: (title: string) => `Show subpages of ${title}`,
171
+ hideSubpagesOf: (title: string) => `Hide subpages of ${title}`,
172
+ openSidebar: 'Open the sidebar',
173
+ closeSidebar: 'Close the sidebar',
174
+ sidebar: 'The sidebar',
175
+ breadcrumbs: 'Breadcrumbs',
176
+ };
@@ -1,36 +1,36 @@
1
- // "Licenser" under "Indstillinger" (Licenses.tsx): the third-party work the site and the editor are made with, and the
2
- // licences on an app's and a theme's page.
3
- import type { LicenseKind } from '../../licenses';
4
-
5
- export const licenses = {
6
- /** The groups: the icon packs, what the editor and the site's own code bring, and each app and theme in use. */
7
- icons: 'Icon packs',
8
- system: 'The editor and the site',
9
- app: (name: string) => `The app ${name}`,
10
- theme: (name: string) => `The theme ${name}`,
11
- /** A licence that gives no rights ("UNLICENSED"), as its name. */
12
- unlicensed: 'All rights reserved',
13
- kinds: { font: 'Font', icons: 'Icons', library: 'Code', image: 'Pictures' },
14
- /** Who brings it, after what it is: "Kode i editoren og på sitet". */
15
- inEditor: 'in the editor',
16
- onSite: 'on the site',
17
- inApp: (name: string) => `in the app ${name}`,
18
- inTheme: (name: string) => `in the theme ${name}`,
19
- /** Through which packages, when the site does not use it itself. */
20
- via: (names: string) => `through ${names}`,
21
- /** Brought by an app or a theme the site is built with, but not downloaded (the Worker's, the build's). */
22
- notShipped: 'not downloaded from the site',
23
- /** An icon pack the site does not draw with, which can be chosen. */
24
- offered: 'can be chosen',
25
- version: (version: string) => `Version ${version}`,
26
- /** The app's or the theme's own work, first in its group. */
27
- own: (name: string) => `${name} itself`,
28
- loading: 'Fetching the licenses',
29
- /** The site has not been built since they came, or the editor is offline. */
30
- missing: 'The licenses come once the site is updated',
31
- /** One licence's page. */
32
- text: 'License text',
33
- noText: 'There’s no license text, as all rights are reserved',
34
- standardText: (license: string) => `The package has no license file, so this is the standard text of ${license}.`,
35
- notFound: 'The license doesn’t exist',
36
- };
1
+ // "Licenser" under "Indstillinger" (Licenses.tsx): the third-party work the site and the editor are made with, and the
2
+ // licences on an app's and a theme's page.
3
+ import type { LicenseKind } from '../../licenseData';
4
+
5
+ export const licenses = {
6
+ /** The groups: the icon packs, what the editor and the site's own code bring, and each app and theme in use. */
7
+ icons: 'Icon packs',
8
+ system: 'The editor and the site',
9
+ app: (name: string) => `The app ${name}`,
10
+ theme: (name: string) => `The theme ${name}`,
11
+ /** A licence that gives no rights ("UNLICENSED"), as its name. */
12
+ unlicensed: 'All rights reserved',
13
+ kinds: { font: 'Font', icons: 'Icons', library: 'Code', image: 'Pictures' },
14
+ /** Who brings it, after what it is: "Kode i editoren og på sitet". */
15
+ inEditor: 'in the editor',
16
+ onSite: 'on the site',
17
+ inApp: (name: string) => `in the app ${name}`,
18
+ inTheme: (name: string) => `in the theme ${name}`,
19
+ /** Through which packages, when the site does not use it itself. */
20
+ via: (names: string) => `through ${names}`,
21
+ /** Brought by an app or a theme the site is built with, but not downloaded (the Worker's, the build's). */
22
+ notShipped: 'not downloaded from the site',
23
+ /** An icon pack the site does not draw with, which can be chosen. */
24
+ offered: 'can be chosen',
25
+ version: (version: string) => `Version ${version}`,
26
+ /** The app's or the theme's own work, first in its group. */
27
+ own: (name: string) => `${name} itself`,
28
+ loading: 'Fetching the licenses',
29
+ /** The site has not been built since they came, or the editor is offline. */
30
+ missing: 'The licenses come once the site is updated',
31
+ /** One licence's page. */
32
+ text: 'License text',
33
+ noText: 'There’s no license text, as all rights are reserved',
34
+ standardText: (license: string) => `The package has no license file, so this is the standard text of ${license}.`,
35
+ notFound: 'The license doesn’t exist',
36
+ };
@@ -1,80 +1,80 @@
1
- // The pictures, PDFs, videos and zip files (Filer, Media.tsx) and cutting a picture to a format (Crop.tsx).
2
- export const media = {
3
- sorts: { new: 'Newest first', old: 'Oldest first', name: 'Name (A–Z)' },
4
- sort: 'Sort',
5
- searchLabel: 'Search the pictures',
6
- searchAll: 'Search the files',
7
- date: 'Date',
8
- allDates: 'All dates',
9
- wholeYear: (year: string) => `All of ${year}`,
10
- use: 'Use',
11
- filter: 'Filter',
12
- all: 'All',
13
- kind: 'Type',
14
- allKinds: 'All types',
15
- /** The kinds of files in Filer: the filter, the buttons in the sheet, and (siteT) in the commits. */
16
- kinds: {
17
- picture: {
18
- plural: 'Pictures',
19
- word: 'picture',
20
- rename: 'Rename the picture',
21
- delete: 'Delete picture',
22
- deleteAsk: 'Delete the picture? It can be restored under Deleted files.',
23
- },
24
- pdf: {
25
- plural: 'PDFs',
26
- word: 'PDF',
27
- rename: 'Rename the PDF',
28
- delete: 'Delete PDF',
29
- deleteAsk: 'Delete the PDF? It can be restored under Deleted files.',
30
- },
31
- video: {
32
- plural: 'Videos',
33
- word: 'video',
34
- rename: 'Rename the video',
35
- delete: 'Delete video',
36
- deleteAsk: 'Delete the video? It can be restored under Deleted files.',
37
- },
38
- zip: {
39
- plural: 'Zip files',
40
- word: 'zip file',
41
- rename: 'Rename the zip file',
42
- delete: 'Delete zip file',
43
- deleteAsk: 'Delete the zip file? It can be restored under Deleted files.',
44
- },
45
- },
46
- inUse: 'In use',
47
- removeFilter: (label: string) => `Remove the filter ${label}`,
48
- noPictures: 'No pictures',
49
- noFiles: 'No files',
50
- pick: 'Choose a picture',
51
- uploadNew: 'Upload a new picture',
52
- add: 'Add a file',
53
- preparing: 'Preparing the picture…',
54
- notDeleted: (error: string) => `Couldn’t delete: ${error}`,
55
- nameTaken: 'There’s already a file with that name.',
56
- tooBig: (mb: number) => `The file is too big. It can be at most ${mb} MB.`,
57
- notAFile: 'The file can’t be used. Choose a picture, a PDF, a video, or a zip file.',
58
- name: 'Name',
59
- saveName: 'Save name',
60
- openPdf: 'Open PDF',
61
- download: 'Download',
62
- savedAs: (name: string) => `Will be saved as ${name}`,
63
- usedOn: 'Used on',
64
- siteDesign: "The website's design",
65
- noPages: 'No pages',
66
- /** The commits, in the site's language (siteT); what: a kind's word ("billede", "PDF"). */
67
- commit: {
68
- add: (what: string, name: string) => `Editor: add ${what} "${name}"`,
69
- delete: (what: string, name: string) => `Editor: delete ${what} "${name}"`,
70
- rename: (what: string, from: string, to: string) => `Editor: rename ${what} "${from}" to "${to}"`,
71
- },
72
- crop: {
73
- format: 'Format',
74
- formatHint: 'Choose a format to crop the picture.',
75
- original: 'Original',
76
- frame: 'Cropping. Drag the picture, or use the arrow keys, to move it.',
77
- drag: 'Drag the picture to choose the crop.',
78
- zoom: 'Zoom',
79
- },
80
- };
1
+ // The pictures, PDFs, videos and zip files (Filer, Media.tsx) and cutting a picture to a format (Crop.tsx).
2
+ export const media = {
3
+ sorts: { new: 'Newest first', old: 'Oldest first', name: 'Name (A–Z)' },
4
+ sort: 'Sort',
5
+ searchLabel: 'Search the pictures',
6
+ searchAll: 'Search the files',
7
+ date: 'Date',
8
+ allDates: 'All dates',
9
+ wholeYear: (year: string) => `All of ${year}`,
10
+ use: 'Use',
11
+ filter: 'Filter',
12
+ all: 'All',
13
+ kind: 'Type',
14
+ allKinds: 'All types',
15
+ /** The kinds of files in Filer: the filter, the buttons in the sheet, and (siteT) in the commits. */
16
+ kinds: {
17
+ picture: {
18
+ plural: 'Pictures',
19
+ word: 'picture',
20
+ rename: 'Rename the picture',
21
+ delete: 'Delete picture',
22
+ deleteAsk: 'Delete the picture? It can be restored under Deleted files.',
23
+ },
24
+ pdf: {
25
+ plural: 'PDFs',
26
+ word: 'PDF',
27
+ rename: 'Rename the PDF',
28
+ delete: 'Delete PDF',
29
+ deleteAsk: 'Delete the PDF? It can be restored under Deleted files.',
30
+ },
31
+ video: {
32
+ plural: 'Videos',
33
+ word: 'video',
34
+ rename: 'Rename the video',
35
+ delete: 'Delete video',
36
+ deleteAsk: 'Delete the video? It can be restored under Deleted files.',
37
+ },
38
+ zip: {
39
+ plural: 'Zip files',
40
+ word: 'zip file',
41
+ rename: 'Rename the zip file',
42
+ delete: 'Delete zip file',
43
+ deleteAsk: 'Delete the zip file? It can be restored under Deleted files.',
44
+ },
45
+ },
46
+ inUse: 'In use',
47
+ removeFilter: (label: string) => `Remove the filter ${label}`,
48
+ noPictures: 'No pictures',
49
+ noFiles: 'No files',
50
+ pick: 'Choose a picture',
51
+ uploadNew: 'Upload a new picture',
52
+ add: 'Add a file',
53
+ preparing: 'Preparing the picture…',
54
+ notDeleted: (error: string) => `Couldn’t delete: ${error}`,
55
+ nameTaken: 'There’s already a file with that name.',
56
+ tooBig: (mb: number) => `The file is too big. It can be at most ${mb} MB.`,
57
+ notAFile: 'The file can’t be used. Choose a picture, a PDF, a video, or a zip file.',
58
+ name: 'Name',
59
+ saveName: 'Save name',
60
+ openPdf: 'Open PDF',
61
+ download: 'Download',
62
+ savedAs: (name: string) => `Will be saved as ${name}`,
63
+ usedOn: 'Used on',
64
+ siteDesign: "The website's design",
65
+ noPages: 'No pages',
66
+ /** The commits, in the site's language (siteT); what: a kind's word ("billede", "PDF"). */
67
+ commit: {
68
+ add: (what: string, name: string) => `Editor: add ${what} "${name}"`,
69
+ delete: (what: string, name: string) => `Editor: delete ${what} "${name}"`,
70
+ rename: (what: string, from: string, to: string) => `Editor: rename ${what} "${from}" to "${to}"`,
71
+ },
72
+ crop: {
73
+ format: 'Format',
74
+ formatHint: 'Choose a format to crop the picture.',
75
+ original: 'Original',
76
+ frame: 'Cropping. Drag the picture, or use the arrow keys, to move it.',
77
+ drag: 'Drag the picture to choose the crop.',
78
+ zoom: 'Zoom',
79
+ },
80
+ };