@morphemecms/cms 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -3
- package/astro.d.mts +2 -0
- package/astro.mjs +162 -0
- package/bin/morpheme.mjs +38 -0
- package/client.d.ts +10 -0
- package/defaults/blockTexts.ts +33 -0
- package/defaults/collections.ts +774 -0
- package/defaults/colors.ts +125 -0
- package/defaults/company.ts +20 -0
- package/defaults/editor.ts +178 -0
- package/defaults/internalLinks.ts +30 -0
- package/defaults/opens.ts +18 -0
- package/defaults/popup.tsx +93 -0
- package/defaults/privacy.ts +79 -0
- package/defaults/rules.ts +450 -0
- package/defaults/schema.ts +16 -0
- package/defaults/sitedata.ts +129 -0
- package/defaults/standard.ts +106 -0
- package/defaults/standardPages.ts +87 -0
- package/defaults/texts.ts +481 -0
- package/demo/README.md +26 -0
- package/demo/public/apple-touch-icon.png +0 -0
- package/demo/public/editor/apple-touch-icon.png +0 -0
- package/demo/public/editor/icon-192.png +0 -0
- package/demo/public/editor/icon-512.png +0 -0
- package/demo/public/editor/icon-maskable-512.png +0 -0
- package/demo/public/favicon.ico +0 -0
- package/demo/public/favicon.svg +1 -0
- package/demo/public/images/uploads/2026/10/andromeda.webp +0 -0
- package/demo/public/images/uploads/2026/10/earth-from-space.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-blog.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-colors.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-home.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-page.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-pages.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-seo.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-start.webp +0 -0
- package/demo/public/images/uploads/2026/10/editor-themes.webp +0 -0
- package/demo/public/images/uploads/2026/10/moon.webp +0 -0
- package/demo/public/images/uploads/2026/10/saturn.webp +0 -0
- package/demo/public/logo.svg +1 -0
- package/demo/src/content/blog/build-a-page-from-blocks.md +19 -0
- package/demo/src/content/blog/colors-everyone-can-read.md +19 -0
- package/demo/src/content/blog/edit-your-website-from-your-phone.md +21 -0
- package/demo/src/content/blog/every-save-is-a-version.md +21 -0
- package/demo/src/content/blog/schedule-a-post.md +17 -0
- package/demo/src/content/blog/secure-from-day-one.md +17 -0
- package/demo/src/content/blog/seo-without-the-guesswork.md +23 -0
- package/demo/src/content/blog/switch-themes-without-losing-anything.md +23 -0
- package/demo/src/content/blog/the-app-store.md +21 -0
- package/demo/src/content/pages/about.md +22 -0
- package/demo/src/content/pages/app-store.md +30 -0
- package/demo/src/content/pages/blocks.md +98 -0
- package/demo/src/content/pages/blog-page.md +11 -0
- package/demo/src/content/pages/contact.md +16 -0
- package/demo/src/content/pages/get-started.md +20 -0
- package/demo/src/content/pages/home.md +26 -0
- package/demo/src/content/pages/page-not-found.md +11 -0
- package/demo/src/content/pages/privacy-policy.md +24 -0
- package/demo/src/data/blocks.json +25 -0
- package/demo/src/data/booking.json +6 -0
- package/demo/src/data/categories/apps.json +6 -0
- package/demo/src/data/categories/design.json +6 -0
- package/demo/src/data/categories/editing.json +6 -0
- package/demo/src/data/categories/security.json +6 -0
- package/demo/src/data/categories/seo.json +6 -0
- package/demo/src/data/colors.json +75 -0
- package/demo/src/data/contact.json +8 -0
- package/demo/src/data/cookies.json +21 -0
- package/demo/src/data/footer.json +27 -0
- package/demo/src/data/menu.json +35 -0
- package/demo/src/data/mobile-menu.json +25 -0
- package/demo/src/data/popups/booking-bar.json +13 -0
- package/demo/src/data/popups/try-the-editor.json +16 -0
- package/demo/src/data/standard-pages.json +8 -0
- package/demo/src/data/testimonials/sample-bakery.json +10 -0
- package/demo/src/data/testimonials/sample-clinic.json +10 -0
- package/demo/src/data/testimonials/sample-studio.json +10 -0
- package/demo/src/site/colors.ts +11 -0
- package/demo/src/site/config.ts +19 -0
- package/icons/lucide/LICENSE +43 -0
- package/icons/lucide/LICENSE-material-design-icons +20 -0
- package/icons/lucide/address-book.svg +1 -0
- package/icons/lucide/app-window.svg +1 -0
- package/icons/lucide/arrow-counter-clockwise.svg +1 -0
- package/icons/lucide/arrow-down.svg +1 -0
- package/icons/lucide/arrow-left.svg +1 -0
- package/icons/lucide/arrow-right.svg +1 -0
- package/icons/lucide/arrow-square-out.svg +1 -0
- package/icons/lucide/arrow-u-up-left.svg +1 -0
- package/icons/lucide/arrow-u-up-right.svg +1 -0
- package/icons/lucide/arrow-up-right.svg +1 -0
- package/icons/lucide/arrow-up.svg +1 -0
- package/icons/lucide/arrows-down-up.svg +1 -0
- package/icons/lucide/arrows-in-line-horizontal.svg +1 -0
- package/icons/lucide/arrows-out-line-horizontal.svg +1 -0
- package/icons/lucide/article.svg +1 -0
- package/icons/lucide/bank.svg +1 -0
- package/icons/lucide/bell.svg +1 -0
- package/icons/lucide/bicycle.svg +1 -0
- package/icons/lucide/binoculars.svg +1 -0
- package/icons/lucide/book-open-text.svg +1 -0
- package/icons/lucide/book-open.svg +1 -0
- package/icons/lucide/browser.svg +1 -0
- package/icons/lucide/buildings.svg +1 -0
- package/icons/lucide/bus.svg +1 -0
- package/icons/lucide/calendar-blank.svg +1 -0
- package/icons/lucide/calendar-check.svg +1 -0
- package/icons/lucide/car.svg +1 -0
- package/icons/lucide/cards.svg +1 -0
- package/icons/lucide/caret-down.svg +1 -0
- package/icons/lucide/caret-left.svg +1 -0
- package/icons/lucide/caret-right.svg +1 -0
- package/icons/lucide/caret-up.svg +1 -0
- package/icons/lucide/certificate.svg +1 -0
- package/icons/lucide/chart-line-up.svg +1 -0
- package/icons/lucide/chats.svg +1 -0
- package/icons/lucide/check-circle.svg +1 -0
- package/icons/lucide/check.svg +1 -0
- package/icons/lucide/circle-half.svg +1 -0
- package/icons/lucide/circle.svg +1 -0
- package/icons/lucide/clock-counter-clockwise.svg +1 -0
- package/icons/lucide/clock.svg +1 -0
- package/icons/lucide/code.svg +1 -0
- package/icons/lucide/coffee.svg +1 -0
- package/icons/lucide/columns.svg +1 -0
- package/icons/lucide/cookie.svg +1 -0
- package/icons/lucide/copy.svg +1 -0
- package/icons/lucide/credit-card.svg +1 -0
- package/icons/lucide/currency-circle-dollar.svg +1 -0
- package/icons/lucide/cursor-click.svg +1 -0
- package/icons/lucide/database.svg +1 -0
- package/icons/lucide/desktop.svg +1 -0
- package/icons/lucide/device-mobile.svg +1 -0
- package/icons/lucide/door-open.svg +1 -0
- package/icons/lucide/download-simple.svg +1 -0
- package/icons/lucide/envelope-simple.svg +1 -0
- package/icons/lucide/eye-slash.svg +1 -0
- package/icons/lucide/eye.svg +1 -0
- package/icons/lucide/file-pdf.svg +1 -0
- package/icons/lucide/file-text.svg +1 -0
- package/icons/lucide/file-video.svg +1 -0
- package/icons/lucide/file-zip.svg +1 -0
- package/icons/lucide/flower-lotus.svg +1 -0
- package/icons/lucide/folder-simple.svg +1 -0
- package/icons/lucide/funnel.svg +1 -0
- package/icons/lucide/gauge.svg +1 -0
- package/icons/lucide/gear.svg +1 -0
- package/icons/lucide/github-logo.svg +1 -0
- package/icons/lucide/globe.svg +1 -0
- package/icons/lucide/google-logo.svg +1 -0
- package/icons/lucide/graduation-cap.svg +1 -0
- package/icons/lucide/hammer.svg +1 -0
- package/icons/lucide/hand-heart.svg +1 -0
- package/icons/lucide/handshake.svg +1 -0
- package/icons/lucide/hard-drives.svg +1 -0
- package/icons/lucide/heart.svg +1 -0
- package/icons/lucide/house.svg +1 -0
- package/icons/lucide/image-square.svg +1 -0
- package/icons/lucide/image.svg +1 -0
- package/icons/lucide/info.svg +1 -0
- package/icons/lucide/keyboard.svg +1 -0
- package/icons/lucide/leaf.svg +1 -0
- package/icons/lucide/lifebuoy.svg +1 -0
- package/icons/lucide/lightbulb.svg +1 -0
- package/icons/lucide/link-break.svg +1 -0
- package/icons/lucide/link-simple.svg +1 -0
- package/icons/lucide/list-bullets.svg +1 -0
- package/icons/lucide/list-checks.svg +1 -0
- package/icons/lucide/list-numbers.svg +1 -0
- package/icons/lucide/list.svg +1 -0
- package/icons/lucide/lock-simple-open.svg +1 -0
- package/icons/lucide/lock-simple.svg +1 -0
- package/icons/lucide/magnifying-glass.svg +1 -0
- package/icons/lucide/map-pin.svg +1 -0
- package/icons/lucide/map-trifold.svg +1 -0
- package/icons/lucide/medal.svg +1 -0
- package/icons/lucide/megaphone.svg +1 -0
- package/icons/lucide/minus.svg +1 -0
- package/icons/lucide/moon.svg +1 -0
- package/icons/lucide/newspaper.svg +1 -0
- package/icons/lucide/pack.json +23 -0
- package/icons/lucide/paint-brush-broad.svg +1 -0
- package/icons/lucide/palette.svg +1 -0
- package/icons/lucide/paper-plane-tilt.svg +1 -0
- package/icons/lucide/pencil-simple.svg +1 -0
- package/icons/lucide/phone.svg +1 -0
- package/icons/lucide/play-fill.svg +1 -0
- package/icons/lucide/plus.svg +1 -0
- package/icons/lucide/prohibit.svg +1 -0
- package/icons/lucide/puzzle-piece.svg +1 -0
- package/icons/lucide/question.svg +1 -0
- package/icons/lucide/quotes.svg +1 -0
- package/icons/lucide/rows.svg +1 -0
- package/icons/lucide/ruler.svg +1 -0
- package/icons/lucide/scan.svg +1 -0
- package/icons/lucide/shapes.svg +1 -0
- package/icons/lucide/share-network.svg +1 -0
- package/icons/lucide/shield-check.svg +1 -0
- package/icons/lucide/sidebar-simple.svg +1 -0
- package/icons/lucide/sign-out.svg +1 -0
- package/icons/lucide/signpost.svg +1 -0
- package/icons/lucide/sliders-horizontal.svg +1 -0
- package/icons/lucide/smiley.svg +1 -0
- package/icons/lucide/sparkle.svg +1 -0
- package/icons/lucide/square-half-bottom.svg +1 -0
- package/icons/lucide/square.svg +1 -0
- package/icons/lucide/squares-four.svg +1 -0
- package/icons/lucide/sticker.svg +1 -0
- package/icons/lucide/storefront.svg +1 -0
- package/icons/lucide/sun.svg +1 -0
- package/icons/lucide/swatches.svg +1 -0
- package/icons/lucide/tag.svg +1 -0
- package/icons/lucide/text-aa.svg +1 -0
- package/icons/lucide/text-align-left.svg +1 -0
- package/icons/lucide/text-b.svg +1 -0
- package/icons/lucide/text-h-one.svg +1 -0
- package/icons/lucide/text-h-three.svg +1 -0
- package/icons/lucide/text-h-two.svg +1 -0
- package/icons/lucide/text-italic.svg +1 -0
- package/icons/lucide/text-t.svg +1 -0
- package/icons/lucide/ticket.svg +1 -0
- package/icons/lucide/toggle-right.svg +1 -0
- package/icons/lucide/train.svg +1 -0
- package/icons/lucide/trash.svg +1 -0
- package/icons/lucide/upload-simple.svg +1 -0
- package/icons/lucide/user-circle.svg +1 -0
- package/icons/lucide/user.svg +1 -0
- package/icons/lucide/users-three.svg +1 -0
- package/icons/lucide/users.svg +1 -0
- package/icons/lucide/video-camera.svg +1 -0
- package/icons/lucide/warning-circle.svg +1 -0
- package/icons/lucide/warning.svg +1 -0
- package/icons/lucide/wave-sine.svg +1 -0
- package/icons/lucide/wheelchair.svg +1 -0
- package/icons/lucide/wrench.svg +1 -0
- package/icons/lucide/x.svg +1 -0
- package/icons/material-symbols/LICENSE +201 -0
- package/icons/material-symbols/LICENSE-material-design-icons +20 -0
- package/icons/material-symbols/address-book.svg +1 -0
- package/icons/material-symbols/app-window.svg +1 -0
- package/icons/material-symbols/arrow-counter-clockwise.svg +1 -0
- package/icons/material-symbols/arrow-down.svg +1 -0
- package/icons/material-symbols/arrow-left.svg +1 -0
- package/icons/material-symbols/arrow-right.svg +1 -0
- package/icons/material-symbols/arrow-square-out.svg +1 -0
- package/icons/material-symbols/arrow-u-up-left.svg +1 -0
- package/icons/material-symbols/arrow-u-up-right.svg +1 -0
- package/icons/material-symbols/arrow-up-right.svg +1 -0
- package/icons/material-symbols/arrow-up.svg +1 -0
- package/icons/material-symbols/arrows-down-up.svg +1 -0
- package/icons/material-symbols/arrows-in-line-horizontal.svg +1 -0
- package/icons/material-symbols/arrows-out-line-horizontal.svg +1 -0
- package/icons/material-symbols/article.svg +1 -0
- package/icons/material-symbols/bank.svg +1 -0
- package/icons/material-symbols/bell.svg +1 -0
- package/icons/material-symbols/bicycle.svg +1 -0
- package/icons/material-symbols/binoculars.svg +1 -0
- package/icons/material-symbols/book-open-text.svg +1 -0
- package/icons/material-symbols/book-open.svg +1 -0
- package/icons/material-symbols/browser.svg +1 -0
- package/icons/material-symbols/buildings.svg +1 -0
- package/icons/material-symbols/bus.svg +1 -0
- package/icons/material-symbols/calendar-blank.svg +1 -0
- package/icons/material-symbols/calendar-check.svg +1 -0
- package/icons/material-symbols/car.svg +1 -0
- package/icons/material-symbols/cards.svg +1 -0
- package/icons/material-symbols/caret-down.svg +1 -0
- package/icons/material-symbols/caret-left.svg +1 -0
- package/icons/material-symbols/caret-right.svg +1 -0
- package/icons/material-symbols/caret-up.svg +1 -0
- package/icons/material-symbols/certificate.svg +1 -0
- package/icons/material-symbols/chart-line-up.svg +1 -0
- package/icons/material-symbols/chats.svg +1 -0
- package/icons/material-symbols/check-circle.svg +1 -0
- package/icons/material-symbols/check.svg +1 -0
- package/icons/material-symbols/circle-half.svg +1 -0
- package/icons/material-symbols/circle.svg +1 -0
- package/icons/material-symbols/clock-counter-clockwise.svg +1 -0
- package/icons/material-symbols/clock.svg +1 -0
- package/icons/material-symbols/code.svg +1 -0
- package/icons/material-symbols/coffee.svg +1 -0
- package/icons/material-symbols/columns.svg +1 -0
- package/icons/material-symbols/cookie.svg +1 -0
- package/icons/material-symbols/copy.svg +1 -0
- package/icons/material-symbols/credit-card.svg +1 -0
- package/icons/material-symbols/currency-circle-dollar.svg +1 -0
- package/icons/material-symbols/cursor-click.svg +1 -0
- package/icons/material-symbols/database.svg +1 -0
- package/icons/material-symbols/desktop.svg +1 -0
- package/icons/material-symbols/device-mobile.svg +1 -0
- package/icons/material-symbols/door-open.svg +1 -0
- package/icons/material-symbols/download-simple.svg +1 -0
- package/icons/material-symbols/envelope-simple.svg +1 -0
- package/icons/material-symbols/eye-slash.svg +1 -0
- package/icons/material-symbols/eye.svg +1 -0
- package/icons/material-symbols/file-pdf.svg +1 -0
- package/icons/material-symbols/file-text.svg +1 -0
- package/icons/material-symbols/file-video.svg +1 -0
- package/icons/material-symbols/file-zip.svg +1 -0
- package/icons/material-symbols/flower-lotus.svg +1 -0
- package/icons/material-symbols/folder-simple.svg +1 -0
- package/icons/material-symbols/funnel.svg +1 -0
- package/icons/material-symbols/gauge.svg +1 -0
- package/icons/material-symbols/gear.svg +1 -0
- package/icons/material-symbols/github-logo.svg +1 -0
- package/icons/material-symbols/globe.svg +1 -0
- package/icons/material-symbols/google-logo.svg +1 -0
- package/icons/material-symbols/graduation-cap.svg +1 -0
- package/icons/material-symbols/hammer.svg +1 -0
- package/icons/material-symbols/hand-heart.svg +1 -0
- package/icons/material-symbols/handshake.svg +1 -0
- package/icons/material-symbols/hard-drives.svg +1 -0
- package/icons/material-symbols/heart.svg +1 -0
- package/icons/material-symbols/house.svg +1 -0
- package/icons/material-symbols/image-square.svg +1 -0
- package/icons/material-symbols/image.svg +1 -0
- package/icons/material-symbols/info.svg +1 -0
- package/icons/material-symbols/keyboard.svg +1 -0
- package/icons/material-symbols/leaf.svg +1 -0
- package/icons/material-symbols/lifebuoy.svg +1 -0
- package/icons/material-symbols/lightbulb.svg +1 -0
- package/icons/material-symbols/link-break.svg +1 -0
- package/icons/material-symbols/link-simple.svg +1 -0
- package/icons/material-symbols/list-bullets.svg +1 -0
- package/icons/material-symbols/list-checks.svg +1 -0
- package/icons/material-symbols/list-numbers.svg +1 -0
- package/icons/material-symbols/list.svg +1 -0
- package/icons/material-symbols/lock-simple-open.svg +1 -0
- package/icons/material-symbols/lock-simple.svg +1 -0
- package/icons/material-symbols/magnifying-glass.svg +1 -0
- package/icons/material-symbols/map-pin.svg +1 -0
- package/icons/material-symbols/map-trifold.svg +1 -0
- package/icons/material-symbols/medal.svg +1 -0
- package/icons/material-symbols/megaphone.svg +1 -0
- package/icons/material-symbols/minus.svg +1 -0
- package/icons/material-symbols/moon.svg +1 -0
- package/icons/material-symbols/newspaper.svg +1 -0
- package/icons/material-symbols/pack.json +29 -0
- package/icons/material-symbols/paint-brush-broad.svg +1 -0
- package/icons/material-symbols/palette.svg +1 -0
- package/icons/material-symbols/paper-plane-tilt.svg +1 -0
- package/icons/material-symbols/pencil-simple.svg +1 -0
- package/icons/material-symbols/phone.svg +1 -0
- package/icons/material-symbols/play-fill.svg +1 -0
- package/icons/material-symbols/plus.svg +1 -0
- package/icons/material-symbols/prohibit.svg +1 -0
- package/icons/material-symbols/puzzle-piece.svg +1 -0
- package/icons/material-symbols/question.svg +1 -0
- package/icons/material-symbols/quotes.svg +1 -0
- package/icons/material-symbols/rows.svg +1 -0
- package/icons/material-symbols/ruler.svg +1 -0
- package/icons/material-symbols/scan.svg +1 -0
- package/icons/material-symbols/shapes.svg +1 -0
- package/icons/material-symbols/share-network.svg +1 -0
- package/icons/material-symbols/shield-check.svg +1 -0
- package/icons/material-symbols/sidebar-simple.svg +1 -0
- package/icons/material-symbols/sign-out.svg +1 -0
- package/icons/material-symbols/signpost.svg +1 -0
- package/icons/material-symbols/sliders-horizontal.svg +1 -0
- package/icons/material-symbols/smiley.svg +1 -0
- package/icons/material-symbols/sparkle.svg +1 -0
- package/icons/material-symbols/square-half-bottom.svg +1 -0
- package/icons/material-symbols/square.svg +1 -0
- package/icons/material-symbols/squares-four.svg +1 -0
- package/icons/material-symbols/sticker.svg +1 -0
- package/icons/material-symbols/storefront.svg +1 -0
- package/icons/material-symbols/sun.svg +1 -0
- package/icons/material-symbols/swatches.svg +1 -0
- package/icons/material-symbols/tag.svg +1 -0
- package/icons/material-symbols/text-aa.svg +1 -0
- package/icons/material-symbols/text-align-left.svg +1 -0
- package/icons/material-symbols/text-b.svg +1 -0
- package/icons/material-symbols/text-h-one.svg +1 -0
- package/icons/material-symbols/text-h-three.svg +1 -0
- package/icons/material-symbols/text-h-two.svg +1 -0
- package/icons/material-symbols/text-italic.svg +1 -0
- package/icons/material-symbols/text-t.svg +1 -0
- package/icons/material-symbols/ticket.svg +1 -0
- package/icons/material-symbols/toggle-right.svg +1 -0
- package/icons/material-symbols/train.svg +1 -0
- package/icons/material-symbols/trash.svg +1 -0
- package/icons/material-symbols/upload-simple.svg +1 -0
- package/icons/material-symbols/user-circle.svg +1 -0
- package/icons/material-symbols/user.svg +1 -0
- package/icons/material-symbols/users-three.svg +1 -0
- package/icons/material-symbols/users.svg +1 -0
- package/icons/material-symbols/video-camera.svg +1 -0
- package/icons/material-symbols/warning-circle.svg +1 -0
- package/icons/material-symbols/warning.svg +1 -0
- package/icons/material-symbols/wave-sine.svg +1 -0
- package/icons/material-symbols/wheelchair.svg +1 -0
- package/icons/material-symbols/wrench.svg +1 -0
- package/icons/material-symbols/x.svg +1 -0
- package/icons/phosphor/LICENSE +21 -0
- package/icons/phosphor/address-book.svg +1 -0
- package/icons/phosphor/app-window.svg +1 -0
- package/icons/phosphor/arrow-counter-clockwise.svg +1 -0
- package/icons/phosphor/arrow-down.svg +1 -0
- package/icons/phosphor/arrow-left.svg +1 -0
- package/icons/phosphor/arrow-right.svg +1 -0
- package/icons/phosphor/arrow-square-out.svg +1 -0
- package/icons/phosphor/arrow-u-up-left.svg +1 -0
- package/icons/phosphor/arrow-u-up-right.svg +1 -0
- package/icons/phosphor/arrow-up-right.svg +1 -0
- package/icons/phosphor/arrow-up.svg +1 -0
- package/icons/phosphor/arrows-down-up.svg +1 -0
- package/icons/phosphor/arrows-in-line-horizontal.svg +1 -0
- package/icons/phosphor/arrows-out-line-horizontal.svg +1 -0
- package/icons/phosphor/article.svg +1 -0
- package/icons/phosphor/bank.svg +1 -0
- package/icons/phosphor/bell.svg +1 -0
- package/icons/phosphor/bicycle.svg +1 -0
- package/icons/phosphor/binoculars.svg +1 -0
- package/icons/phosphor/book-open-text.svg +1 -0
- package/icons/phosphor/book-open.svg +1 -0
- package/icons/phosphor/browser.svg +1 -0
- package/icons/phosphor/buildings.svg +1 -0
- package/icons/phosphor/bus.svg +1 -0
- package/icons/phosphor/calendar-blank.svg +1 -0
- package/icons/phosphor/calendar-check.svg +1 -0
- package/icons/phosphor/car.svg +1 -0
- package/icons/phosphor/cards.svg +1 -0
- package/icons/phosphor/caret-down.svg +1 -0
- package/icons/phosphor/caret-left.svg +1 -0
- package/icons/phosphor/caret-right.svg +1 -0
- package/icons/phosphor/caret-up.svg +1 -0
- package/icons/phosphor/certificate.svg +1 -0
- package/icons/phosphor/chart-line-up.svg +1 -0
- package/icons/phosphor/chats.svg +1 -0
- package/icons/phosphor/check-circle.svg +1 -0
- package/icons/phosphor/check.svg +1 -0
- package/icons/phosphor/circle-half.svg +1 -0
- package/icons/phosphor/circle.svg +1 -0
- package/icons/phosphor/clock-counter-clockwise.svg +1 -0
- package/icons/phosphor/clock.svg +1 -0
- package/icons/phosphor/code.svg +1 -0
- package/icons/phosphor/coffee.svg +1 -0
- package/icons/phosphor/columns.svg +1 -0
- package/icons/phosphor/cookie.svg +1 -0
- package/icons/phosphor/copy.svg +1 -0
- package/icons/phosphor/credit-card.svg +1 -0
- package/icons/phosphor/currency-circle-dollar.svg +1 -0
- package/icons/phosphor/cursor-click.svg +1 -0
- package/icons/phosphor/database.svg +1 -0
- package/icons/phosphor/desktop.svg +1 -0
- package/icons/phosphor/device-mobile.svg +1 -0
- package/icons/phosphor/door-open.svg +1 -0
- package/icons/phosphor/download-simple.svg +1 -0
- package/icons/phosphor/envelope-simple.svg +1 -0
- package/icons/phosphor/eye-slash.svg +1 -0
- package/icons/phosphor/eye.svg +1 -0
- package/icons/phosphor/file-pdf.svg +1 -0
- package/icons/phosphor/file-text.svg +1 -0
- package/icons/phosphor/file-video.svg +1 -0
- package/icons/phosphor/file-zip.svg +1 -0
- package/icons/phosphor/flower-lotus.svg +1 -0
- package/icons/phosphor/folder-simple.svg +1 -0
- package/icons/phosphor/funnel.svg +1 -0
- package/icons/phosphor/gauge.svg +1 -0
- package/icons/phosphor/gear.svg +1 -0
- package/icons/phosphor/github-logo.svg +1 -0
- package/icons/phosphor/globe.svg +1 -0
- package/icons/phosphor/google-logo.svg +1 -0
- package/icons/phosphor/graduation-cap.svg +1 -0
- package/icons/phosphor/hammer.svg +1 -0
- package/icons/phosphor/hand-heart.svg +1 -0
- package/icons/phosphor/handshake.svg +1 -0
- package/icons/phosphor/hard-drives.svg +1 -0
- package/icons/phosphor/heart.svg +1 -0
- package/icons/phosphor/house.svg +1 -0
- package/icons/phosphor/image-square.svg +1 -0
- package/icons/phosphor/image.svg +1 -0
- package/icons/phosphor/info.svg +1 -0
- package/icons/phosphor/keyboard.svg +1 -0
- package/icons/phosphor/leaf.svg +1 -0
- package/icons/phosphor/lifebuoy.svg +1 -0
- package/icons/phosphor/lightbulb.svg +1 -0
- package/icons/phosphor/link-break.svg +1 -0
- package/icons/phosphor/link-simple.svg +1 -0
- package/icons/phosphor/list-bullets.svg +1 -0
- package/icons/phosphor/list-checks.svg +1 -0
- package/icons/phosphor/list-numbers.svg +1 -0
- package/icons/phosphor/list.svg +1 -0
- package/icons/phosphor/lock-simple-open.svg +1 -0
- package/icons/phosphor/lock-simple.svg +1 -0
- package/icons/phosphor/magnifying-glass.svg +1 -0
- package/icons/phosphor/map-pin.svg +1 -0
- package/icons/phosphor/map-trifold.svg +1 -0
- package/icons/phosphor/medal.svg +1 -0
- package/icons/phosphor/megaphone.svg +1 -0
- package/icons/phosphor/minus.svg +1 -0
- package/icons/phosphor/moon.svg +1 -0
- package/icons/phosphor/newspaper.svg +1 -0
- package/icons/phosphor/pack.json +8 -0
- package/icons/phosphor/paint-brush-broad.svg +1 -0
- package/icons/phosphor/palette.svg +1 -0
- package/icons/phosphor/paper-plane-tilt.svg +1 -0
- package/icons/phosphor/pencil-simple.svg +1 -0
- package/icons/phosphor/phone.svg +1 -0
- package/icons/phosphor/play-fill.svg +1 -0
- package/icons/phosphor/plus.svg +1 -0
- package/icons/phosphor/prohibit.svg +1 -0
- package/icons/phosphor/puzzle-piece.svg +1 -0
- package/icons/phosphor/question.svg +1 -0
- package/icons/phosphor/quotes.svg +1 -0
- package/icons/phosphor/rows.svg +1 -0
- package/icons/phosphor/ruler.svg +1 -0
- package/icons/phosphor/scan.svg +1 -0
- package/icons/phosphor/shapes.svg +1 -0
- package/icons/phosphor/share-network.svg +1 -0
- package/icons/phosphor/shield-check.svg +1 -0
- package/icons/phosphor/sidebar-simple.svg +1 -0
- package/icons/phosphor/sign-out.svg +1 -0
- package/icons/phosphor/signpost.svg +1 -0
- package/icons/phosphor/sliders-horizontal.svg +1 -0
- package/icons/phosphor/smiley.svg +1 -0
- package/icons/phosphor/sparkle.svg +1 -0
- package/icons/phosphor/square-half-bottom.svg +1 -0
- package/icons/phosphor/square.svg +1 -0
- package/icons/phosphor/squares-four.svg +1 -0
- package/icons/phosphor/sticker.svg +1 -0
- package/icons/phosphor/storefront.svg +1 -0
- package/icons/phosphor/sun.svg +1 -0
- package/icons/phosphor/swatches.svg +1 -0
- package/icons/phosphor/tag.svg +1 -0
- package/icons/phosphor/text-aa.svg +1 -0
- package/icons/phosphor/text-align-left.svg +1 -0
- package/icons/phosphor/text-b.svg +1 -0
- package/icons/phosphor/text-h-one.svg +1 -0
- package/icons/phosphor/text-h-three.svg +1 -0
- package/icons/phosphor/text-h-two.svg +1 -0
- package/icons/phosphor/text-italic.svg +1 -0
- package/icons/phosphor/text-t.svg +1 -0
- package/icons/phosphor/ticket.svg +1 -0
- package/icons/phosphor/toggle-right.svg +1 -0
- package/icons/phosphor/train.svg +1 -0
- package/icons/phosphor/trash.svg +1 -0
- package/icons/phosphor/upload-simple.svg +1 -0
- package/icons/phosphor/user-circle.svg +1 -0
- package/icons/phosphor/user.svg +1 -0
- package/icons/phosphor/users-three.svg +1 -0
- package/icons/phosphor/users.svg +1 -0
- package/icons/phosphor/video-camera.svg +1 -0
- package/icons/phosphor/warning-circle.svg +1 -0
- package/icons/phosphor/warning.svg +1 -0
- package/icons/phosphor/wave-sine.svg +1 -0
- package/icons/phosphor/wheelchair.svg +1 -0
- package/icons/phosphor/wrench.svg +1 -0
- package/icons/phosphor/x.svg +1 -0
- package/lib/apps.d.mts +28 -0
- package/lib/apps.mjs +139 -0
- package/lib/blocks.d.mts +23 -0
- package/lib/blocks.mjs +90 -0
- package/lib/colors.ts +86 -0
- package/lib/contactBar.ts +18 -0
- package/lib/cookieCategories.d.mts +17 -0
- package/lib/cookieCategories.mjs +28 -0
- package/lib/crop.d.mts +34 -0
- package/lib/crop.mjs +83 -0
- package/lib/csp.d.mts +22 -0
- package/lib/csp.mjs +130 -0
- package/lib/cspSources.d.mts +24 -0
- package/lib/cspSources.mjs +60 -0
- package/lib/dynamic-colors.ts +426 -0
- package/lib/git.d.mts +24 -0
- package/lib/git.mjs +64 -0
- package/lib/hooks.ts +51 -0
- package/lib/inline.ts +20 -0
- package/lib/license-texts/Apache-2.0.txt +191 -0
- package/lib/license-texts/BSD-2-Clause.txt +24 -0
- package/lib/license-texts/BSD-3-Clause.txt +28 -0
- package/lib/license-texts/ISC.txt +15 -0
- package/lib/license-texts/MIT.txt +21 -0
- package/lib/licenses.d.mts +190 -0
- package/lib/licenses.mjs +683 -0
- package/lib/markdown.ts +42 -0
- package/lib/motion-schemes.d.mts +2 -0
- package/lib/motion-schemes.mjs +5 -0
- package/lib/motion.ts +131 -0
- package/lib/notice.d.mts +3 -0
- package/lib/notice.mjs +34 -0
- package/lib/scheduled.d.mts +15 -0
- package/lib/scheduled.mjs +37 -0
- package/lib/snackbar.ts +149 -0
- package/lib/status.d.mts +7 -0
- package/lib/status.mjs +18 -0
- package/lib/svg.d.mts +22 -0
- package/lib/svg.mjs +231 -0
- package/lib/text-colors.d.mts +11 -0
- package/lib/text-colors.mjs +43 -0
- package/lib/video-id.d.mts +14 -0
- package/lib/video-id.mjs +72 -0
- package/lib/video.d.mts +20 -0
- package/lib/video.mjs +91 -0
- package/package.json +131 -6
- package/pages/404.astro +10 -0
- package/pages/[...slug].astro +51 -0
- package/pages/_headers.txt +31 -0
- package/pages/blog/index.astro +10 -0
- package/pages/blog/kategori/[category].astro +18 -0
- package/pages/editor/code-images.json.js +25 -0
- package/pages/editor/index.astro +75 -0
- package/pages/editor/manifest.webmanifest.js +23 -0
- package/pages/editor/sw.js +33 -0
- package/pages/editor/sw.js.js +4 -0
- package/pages/editor/thumbnails.json.js +21 -0
- package/pages/editor/version.json.js +22 -0
- package/pages/headers.js +4 -0
- package/pages/index.astro +10 -0
- package/pages/ny.astro +6 -0
- package/pages/robots.txt.js +3 -0
- package/pages/rss.xml.js +20 -0
- package/scripts/app-screenshots.mjs +164 -0
- package/scripts/app-workers.mjs +6 -0
- package/scripts/bin.mjs +12 -0
- package/scripts/built-site.mjs +99 -0
- package/scripts/check-consent.mjs +113 -0
- package/scripts/check-content.mjs +149 -0
- package/scripts/check-demo.mjs +24 -0
- package/scripts/check-themes.mjs +45 -0
- package/scripts/check-worker.mjs +569 -0
- package/scripts/compare-html.mjs +81 -0
- package/scripts/demo-site.mjs +42 -0
- package/scripts/editor-icons.mjs +56 -0
- package/scripts/editor-roundtrip.mjs +134 -0
- package/scripts/editor-screens.mjs +101 -0
- package/scripts/git-env.mjs +9 -0
- package/scripts/icon-packs.mjs +151 -0
- package/scripts/link-counts.mjs +22 -0
- package/scripts/page-colors.mjs +42 -0
- package/scripts/releases.d.mts +10 -0
- package/scripts/releases.mjs +80 -0
- package/scripts/responsive-images.mjs +94 -0
- package/scripts/scheduled-list.mjs +15 -0
- package/scripts/theme-screenshots.mjs +88 -0
- package/scripts/types.mjs +21 -0
- package/scripts/video-thumbnails.mjs +89 -0
- package/scripts/worker-modules.mjs +34 -0
- package/site/appCookies.d.mts +9 -0
- package/site/appCookies.mjs +74 -0
- package/site/apps.ts +21 -0
- package/site/autolinks.d.mts +11 -0
- package/site/autolinks.mjs +200 -0
- package/site/blockScripts.ts +31 -0
- package/site/categories.ts +16 -0
- package/site/consent.ts +26 -0
- package/site/content.config.ts +84 -0
- package/site/content.ts +104 -0
- package/site/cookieList.ts +17 -0
- package/site/defineSite.d.mts +142 -0
- package/site/defineSite.mjs +136 -0
- package/site/directives/interact.d.mts +2 -0
- package/site/directives/interact.mjs +31 -0
- package/site/editor-version.d.mts +1 -0
- package/site/editor-version.mjs +26 -0
- package/site/fill.ts +13 -0
- package/site/format.ts +11 -0
- package/site/home.ts +66 -0
- package/site/iconPacks.d.mts +20 -0
- package/site/iconPacks.mjs +43 -0
- package/site/icons.d.mts +693 -0
- package/site/icons.mjs +605 -0
- package/site/images.d.mts +43 -0
- package/site/images.mjs +157 -0
- package/site/motion.ts +13 -0
- package/site/noindex.d.mts +6 -0
- package/site/noindex.mjs +21 -0
- package/site/pageColors.ts +110 -0
- package/site/popups.ts +98 -0
- package/site/schema.ts +189 -0
- package/site/sections.ts +3 -0
- package/site/seo.ts +28 -0
- package/site/site.ts +76 -0
- package/site/siteConfig.d.mts +1 -0
- package/site/siteConfig.mjs +8 -0
- package/site/siteCsp.d.mts +10 -0
- package/site/siteCsp.mjs +75 -0
- package/site/siteModules.d.mts +7 -0
- package/site/siteModules.mjs +27 -0
- package/site/standardPages.ts +59 -0
- package/site/testimonials.ts +48 -0
- package/site/text.ts +43 -0
- package/site/theme.d.mts +83 -0
- package/site/theme.mjs +472 -0
- package/site/tracking.client.ts +225 -0
- package/site/tracking.ts +9 -0
- package/src/ActionParts.tsx +205 -0
- package/src/Advanced.tsx +152 -0
- package/src/App.tsx +904 -0
- package/src/AppList.tsx +1345 -0
- package/src/BlockDialog.tsx +360 -0
- package/src/BlockParts.tsx +652 -0
- package/src/BlockSettings.tsx +533 -0
- package/src/BrandForm.tsx +164 -0
- package/src/Colors.tsx +476 -0
- package/src/CommunicationParts.tsx +199 -0
- package/src/CompanyForm.tsx +209 -0
- package/src/Consents.tsx +175 -0
- package/src/ContainmentParts.tsx +185 -0
- package/src/Crop.tsx +152 -0
- package/src/DataForm.tsx +434 -0
- package/src/Deleted.tsx +177 -0
- package/src/EntryForm.tsx +740 -0
- package/src/FileView.tsx +30 -0
- package/src/FormFrame.tsx +237 -0
- package/src/Keywords.tsx +225 -0
- package/src/Library.tsx +1563 -0
- package/src/Licenses.tsx +336 -0
- package/src/LinkSheet.tsx +138 -0
- package/src/MarkdownEditor.tsx +1075 -0
- package/src/Media.tsx +677 -0
- package/src/NavigationParts.tsx +350 -0
- package/src/NavigationRestParts.tsx +247 -0
- package/src/Notifications.tsx +59 -0
- package/src/PagePicker.tsx +136 -0
- package/src/Parts.tsx +991 -0
- package/src/PartsShown.tsx +168 -0
- package/src/PickerParts.tsx +183 -0
- package/src/Redirects.tsx +450 -0
- package/src/Screen.tsx +184 -0
- package/src/SectionsField.tsx +65 -0
- package/src/SelectionParts.tsx +134 -0
- package/src/SeoScores.tsx +184 -0
- package/src/Sheet.tsx +35 -0
- package/src/ThemeStore.tsx +376 -0
- package/src/Tokens.tsx +346 -0
- package/src/Versions.tsx +214 -0
- package/src/addresses.ts +75 -0
- package/src/allIcons.ts +7 -0
- package/src/appFiles.ts +29 -0
- package/src/apps.ts +281 -0
- package/src/ask.tsx +123 -0
- package/src/blocks.ts +251 -0
- package/src/brand.ts +153 -0
- package/src/cache.ts +42 -0
- package/src/check.ts +285 -0
- package/src/checkSite.ts +256 -0
- package/src/consents.ts +26 -0
- package/src/cookieList.ts +70 -0
- package/src/countries.ts +59 -0
- package/src/deploy.ts +155 -0
- package/src/editor.css +602 -0
- package/src/examples.ts +85 -0
- package/src/fields.tsx +942 -0
- package/src/frontmatter.d.mts +6 -0
- package/src/frontmatter.mjs +42 -0
- package/src/github.ts +376 -0
- package/src/i18n/da-DK/advanced.ts +28 -0
- package/src/i18n/da-DK/app.ts +71 -0
- package/src/i18n/da-DK/apps.ts +90 -0
- package/src/i18n/da-DK/blockSettings.ts +38 -0
- package/src/i18n/da-DK/blocks.ts +408 -0
- package/src/i18n/da-DK/check.ts +25 -0
- package/src/i18n/da-DK/colors.ts +64 -0
- package/src/i18n/da-DK/common.ts +118 -0
- package/src/i18n/da-DK/company.ts +24 -0
- package/src/i18n/da-DK/consents.ts +23 -0
- package/src/i18n/da-DK/forms.ts +116 -0
- package/src/i18n/da-DK/history.ts +35 -0
- package/src/i18n/da-DK/index.ts +49 -0
- package/src/i18n/da-DK/keywords.ts +19 -0
- package/src/i18n/da-DK/library.ts +135 -0
- package/src/i18n/da-DK/licenses.ts +25 -0
- package/src/i18n/da-DK/media.ts +79 -0
- package/src/i18n/da-DK/parts.ts +696 -0
- package/src/i18n/da-DK/preview.ts +13 -0
- package/src/i18n/da-DK/redirects.ts +51 -0
- package/src/i18n/da-DK/seo.ts +20 -0
- package/src/i18n/da-DK/text.ts +35 -0
- package/src/i18n/da-DK/theme.ts +41 -0
- package/src/i18n/en-US/advanced.ts +32 -0
- package/src/i18n/en-US/app.ts +84 -0
- package/src/i18n/en-US/apps.ts +134 -0
- package/src/i18n/en-US/blockSettings.ts +48 -0
- package/src/i18n/en-US/blocks.ts +441 -0
- package/src/i18n/en-US/check.ts +31 -0
- package/src/i18n/en-US/colors.ts +82 -0
- package/src/i18n/en-US/common.ts +144 -0
- package/src/i18n/en-US/company.ts +25 -0
- package/src/i18n/en-US/consents.ts +25 -0
- package/src/i18n/en-US/forms.ts +145 -0
- package/src/i18n/en-US/history.ts +43 -0
- package/src/i18n/en-US/index.ts +51 -0
- package/src/i18n/en-US/keywords.ts +24 -0
- package/src/i18n/en-US/library.ts +176 -0
- package/src/i18n/en-US/licenses.ts +36 -0
- package/src/i18n/en-US/media.ts +80 -0
- package/src/i18n/en-US/parts.ts +718 -0
- package/src/i18n/en-US/preview.ts +15 -0
- package/src/i18n/en-US/redirects.ts +66 -0
- package/src/i18n/en-US/seo.ts +26 -0
- package/src/i18n/en-US/text.ts +41 -0
- package/src/i18n/en-US/theme.ts +41 -0
- package/src/i18n/index.ts +124 -0
- package/src/icon.tsx +160 -0
- package/src/iconPacks.ts +89 -0
- package/src/images.ts +163 -0
- package/src/licenses.ts +79 -0
- package/src/markdown.d.mts +12 -0
- package/src/markdown.mjs +204 -0
- package/src/nav.ts +68 -0
- package/src/notFound.ts +28 -0
- package/src/notifications.ts +223 -0
- package/src/pagePreview.tsx +204 -0
- package/src/r2Caching.ts +55 -0
- package/src/redirects.ts +149 -0
- package/src/registry.tsx +188 -0
- package/src/schema.ts +417 -0
- package/src/sections.d.mts +45 -0
- package/src/sections.mjs +303 -0
- package/src/seo.ts +333 -0
- package/src/shared.ts +44 -0
- package/src/sidebar.ts +31 -0
- package/src/site.ts +317 -0
- package/src/standard/Block.astro +19 -0
- package/src/standard/BlockSite.astro +18 -0
- package/src/standard/accordion/index.tsx +47 -0
- package/src/standard/accordion/load.ts +23 -0
- package/src/standard/accordion/shared.ts +15 -0
- package/src/standard/accordion/view.ts +32 -0
- package/src/standard/buttons/fields.ts +98 -0
- package/src/standard/buttons/index.tsx +23 -0
- package/src/standard/buttons/load.ts +34 -0
- package/src/standard/buttons/shared.ts +12 -0
- package/src/standard/buttons/view.ts +30 -0
- package/src/standard/cards/index.tsx +71 -0
- package/src/standard/cards/load.ts +17 -0
- package/src/standard/cards/shared.ts +27 -0
- package/src/standard/cards/view.ts +29 -0
- package/src/standard/checklist/index.tsx +27 -0
- package/src/standard/checklist/load.ts +5 -0
- package/src/standard/checklist/view.ts +13 -0
- package/src/standard/cookies/index.tsx +17 -0
- package/src/standard/cookies/list.ts +56 -0
- package/src/standard/cookies/load.ts +11 -0
- package/src/standard/cookies/shared.ts +20 -0
- package/src/standard/cookies/view.ts +28 -0
- package/src/standard/faq/index.tsx +29 -0
- package/src/standard/faq/load.ts +14 -0
- package/src/standard/faq/view.ts +21 -0
- package/src/standard/head.ts +23 -0
- package/src/standard/hero/fields.ts +48 -0
- package/src/standard/hero/index.tsx +57 -0
- package/src/standard/hero/load.ts +23 -0
- package/src/standard/hero/view.ts +38 -0
- package/src/standard/links/index.tsx +41 -0
- package/src/standard/links/load.ts +17 -0
- package/src/standard/links/view.ts +25 -0
- package/src/standard/list/index.tsx +50 -0
- package/src/standard/list/load.ts +5 -0
- package/src/standard/list/view.ts +18 -0
- package/src/standard/load.ts +7 -0
- package/src/standard/notice/index.tsx +30 -0
- package/src/standard/notice/load.ts +16 -0
- package/src/standard/notice/view.ts +10 -0
- package/src/standard/points/index.tsx +42 -0
- package/src/standard/points/load.ts +5 -0
- package/src/standard/points/view.ts +12 -0
- package/src/standard/posts/index.tsx +132 -0
- package/src/standard/posts/load.ts +36 -0
- package/src/standard/posts/shared.ts +21 -0
- package/src/standard/posts/view.ts +63 -0
- package/src/standard/pricecards/index.tsx +57 -0
- package/src/standard/pricecards/load.ts +11 -0
- package/src/standard/pricecards/view.ts +50 -0
- package/src/standard/sharedTexts.ts +6 -0
- package/src/standard/site.ts +124 -0
- package/src/standard/siteLooks.ts +19 -0
- package/src/standard/sites.ts +13 -0
- package/src/standard/steps/index.tsx +28 -0
- package/src/standard/steps/load.ts +5 -0
- package/src/standard/steps/view.ts +11 -0
- package/src/standard/testimonials/index.tsx +87 -0
- package/src/standard/testimonials/list.ts +43 -0
- package/src/standard/testimonials/load.ts +58 -0
- package/src/standard/testimonials/shared.ts +13 -0
- package/src/standard/testimonials/view.ts +76 -0
- package/src/standard/themeBlocks.ts +13 -0
- package/src/standard/video/index.tsx +23 -0
- package/src/standard/video/load.ts +10 -0
- package/src/standard/video/view.ts +42 -0
- package/src/standard/view.tsx +105 -0
- package/src/standard/views.ts +37 -0
- package/src/store.ts +499 -0
- package/src/theme.ts +90 -0
- package/src/themeUi.ts +97 -0
- package/src/themes.ts +91 -0
- package/src/ui.tsx +3402 -0
- package/src/virtual.d.ts +5 -0
- package/src/when.ts +22 -0
- package/starter/.githooks/pre-push +4 -0
- package/starter/.nvmrc +1 -0
- package/starter/.prettierignore +11 -0
- package/starter/.prettierrc.json +7 -0
- package/starter/README.md +26 -0
- package/starter/astro.config.mjs +5 -0
- package/starter/package.json +67 -0
- package/starter/public/_redirects +1 -0
- package/starter/public/apple-touch-icon.png +0 -0
- package/starter/public/editor/apple-touch-icon.png +0 -0
- package/starter/public/editor/icon-192.png +0 -0
- package/starter/public/editor/icon-512.png +0 -0
- package/starter/public/editor/icon-maskable-512.png +0 -0
- package/starter/public/favicon.ico +0 -0
- package/starter/public/favicon.svg +1 -0
- package/starter/public/logo.svg +1 -0
- package/starter/src/content/pages/blog.md +8 -0
- package/starter/src/content/pages/forside.md +9 -0
- package/starter/src/content/pages/kontakt.md +7 -0
- package/starter/src/content/pages/privatlivspolitik.md +9 -0
- package/starter/src/content/pages/siden-findes-ikke.md +7 -0
- package/starter/src/content.config.ts +2 -0
- package/starter/src/data/apps.json +1 -0
- package/starter/src/data/block-settings.json +3 -0
- package/starter/src/data/blocks.json +1 -0
- package/starter/src/data/booking.json +6 -0
- package/starter/src/data/colors.json +70 -0
- package/starter/src/data/contact.json +8 -0
- package/starter/src/data/cookies.json +21 -0
- package/starter/src/data/csp.json +1 -0
- package/starter/src/data/footer.json +15 -0
- package/starter/src/data/internal-links.json +4 -0
- package/starter/src/data/menu.json +4 -0
- package/starter/src/data/mobile-menu.json +4 -0
- package/starter/src/data/old-addresses.json +1 -0
- package/starter/src/data/redirects.json +1 -0
- package/starter/src/data/standard-pages.json +8 -0
- package/starter/src/data/theme.json +1 -0
- package/starter/src/env.d.ts +2 -0
- package/starter/src/site/config.ts +13 -0
- package/starter/src/site/worker.js +14 -0
- package/starter/tsconfig.json +17 -0
- package/starter/worker/apps.js +6 -0
- package/starter/wrangler.jsonc +39 -0
- package/theme/LICENSE +21 -0
- package/theme/blocks/ArrowLink.tsx +14 -0
- package/theme/blocks/BlockHead.tsx +26 -0
- package/theme/blocks/Panel.tsx +32 -0
- package/theme/blocks/Person.tsx +26 -0
- package/theme/blocks/accordion/PageRow.tsx +25 -0
- package/theme/blocks/accordion/View.tsx +17 -0
- package/theme/blocks/buttons/Buttons.tsx +28 -0
- package/theme/blocks/buttons/View.tsx +12 -0
- package/theme/blocks/cards/LinkCards.tsx +72 -0
- package/theme/blocks/cards/View.tsx +20 -0
- package/theme/blocks/checklist/Checks.tsx +15 -0
- package/theme/blocks/checklist/View.tsx +14 -0
- package/theme/blocks/cookies/View.tsx +36 -0
- package/theme/blocks/faq/Accordion.tsx +34 -0
- package/theme/blocks/faq/View.tsx +16 -0
- package/theme/blocks/faq/script.ts +56 -0
- package/theme/blocks/hero/View.tsx +44 -0
- package/theme/blocks/links/LinkGroups.tsx +24 -0
- package/theme/blocks/links/View.tsx +17 -0
- package/theme/blocks/list/Rows.tsx +24 -0
- package/theme/blocks/list/View.tsx +14 -0
- package/theme/blocks/notice/View.tsx +13 -0
- package/theme/blocks/points/PointList.tsx +34 -0
- package/theme/blocks/points/View.tsx +14 -0
- package/theme/blocks/posts/View.tsx +26 -0
- package/theme/blocks/pricecards/View.tsx +40 -0
- package/theme/blocks/steps/StepList.tsx +23 -0
- package/theme/blocks/steps/View.tsx +14 -0
- package/theme/blocks/testimonials/List.tsx +46 -0
- package/theme/blocks/testimonials/Slider.tsx +44 -0
- package/theme/blocks/testimonials/Testimonial.tsx +124 -0
- package/theme/blocks/testimonials/View.tsx +21 -0
- package/theme/blocks/testimonials/script.ts +52 -0
- package/theme/blocks/video/View.tsx +41 -0
- package/theme/components/ActionBar.astro +63 -0
- package/theme/components/AppSlot.astro +21 -0
- package/theme/components/ArrowLink.tsx +21 -0
- package/theme/components/BlogIndex.astro +48 -0
- package/theme/components/BlogPosts.astro +18 -0
- package/theme/components/BlogPosts.tsx +45 -0
- package/theme/components/BookButton.tsx +22 -0
- package/theme/components/Container.astro +11 -0
- package/theme/components/CookieConsent.astro +121 -0
- package/theme/components/EndBlock.astro +21 -0
- package/theme/components/FontPreload.astro +6 -0
- package/theme/components/Footer.astro +85 -0
- package/theme/components/Header.astro +186 -0
- package/theme/components/Icon.astro +16 -0
- package/theme/components/Img.astro +29 -0
- package/theme/components/Img.tsx +33 -0
- package/theme/components/Inline.astro +11 -0
- package/theme/components/Logo.astro +23 -0
- package/theme/components/LogoMark.astro +10 -0
- package/theme/components/Markdown.astro +17 -0
- package/theme/components/MobileMenu.tsx +224 -0
- package/theme/components/MobileNav.astro +33 -0
- package/theme/components/PageHeader.astro +22 -0
- package/theme/components/PageSection.astro +24 -0
- package/theme/components/PhoneButton.tsx +11 -0
- package/theme/components/Popup.astro +145 -0
- package/theme/components/PopupButton.tsx +24 -0
- package/theme/components/PopupView.tsx +48 -0
- package/theme/components/PostList.tsx +58 -0
- package/theme/components/PostMeta.tsx +17 -0
- package/theme/components/RichText.astro +28 -0
- package/theme/components/Section.astro +29 -0
- package/theme/components/SectionHeading.tsx +8 -0
- package/theme/components/TextSection.astro +16 -0
- package/theme/components/home/PageBlock.astro +19 -0
- package/theme/components/home/Text.astro +13 -0
- package/theme/components/loadPopup.ts +22 -0
- package/theme/components/loadPosts.ts +16 -0
- package/theme/components/posts.ts +15 -0
- package/theme/editor/looks.mjs +7 -0
- package/theme/editor/previews.tsx +56 -0
- package/theme/layouts/Base.astro +273 -0
- package/theme/layouts/PageLayout.astro +126 -0
- package/theme/layouts/PostLayout.astro +137 -0
- package/theme/screenshots/1-front.jpg +0 -0
- package/theme/screenshots/2-front-dark.jpg +0 -0
- package/theme/screenshots/3-blog.jpg +0 -0
- package/theme/screenshots/4-contact.jpg +0 -0
- package/theme/scripts/motion.ts +29 -0
- package/theme/styles/base.css +320 -0
- package/theme/styles/blocks.css +1808 -0
- package/theme/styles/components.css +206 -0
- package/theme/styles/global.css +1302 -0
- package/theme/styles/ui.css +6544 -0
- package/theme/templates/Blog.astro +38 -0
- package/theme/templates/Category.astro +19 -0
- package/theme/templates/Home.astro +36 -0
- package/theme/templates/New.astro +68 -0
- package/theme/templates/NotFound.astro +117 -0
- package/theme/theme.json +28 -0
- package/theme/ui/Badge.tsx +45 -0
- package/theme/ui/BottomSheet.tsx +148 -0
- package/theme/ui/Button.tsx +79 -0
- package/theme/ui/ButtonGroup.tsx +31 -0
- package/theme/ui/Card.tsx +45 -0
- package/theme/ui/Carousel.tsx +124 -0
- package/theme/ui/Checkbox.tsx +59 -0
- package/theme/ui/Chip.tsx +101 -0
- package/theme/ui/ChipSet.tsx +27 -0
- package/theme/ui/DatePicker.tsx +149 -0
- package/theme/ui/DatePickerContainer.tsx +316 -0
- package/theme/ui/Dialog.tsx +100 -0
- package/theme/ui/Divider.tsx +27 -0
- package/theme/ui/ExposedDropdownMenu.tsx +77 -0
- package/theme/ui/Fab.tsx +88 -0
- package/theme/ui/FabMenu.tsx +67 -0
- package/theme/ui/IconButton.tsx +78 -0
- package/theme/ui/List.tsx +287 -0
- package/theme/ui/LoadingIndicator.tsx +29 -0
- package/theme/ui/Menu.tsx +278 -0
- package/theme/ui/NavigationBar.tsx +62 -0
- package/theme/ui/NavigationDrawer.tsx +80 -0
- package/theme/ui/NavigationRail.tsx +154 -0
- package/theme/ui/ProgressIndicator.tsx +162 -0
- package/theme/ui/RadioButton.tsx +50 -0
- package/theme/ui/Search.tsx +129 -0
- package/theme/ui/SegmentedButton.tsx +49 -0
- package/theme/ui/SideSheet.tsx +54 -0
- package/theme/ui/Slider.tsx +155 -0
- package/theme/ui/Snackbar.tsx +67 -0
- package/theme/ui/SplitButton.tsx +67 -0
- package/theme/ui/Switch.tsx +60 -0
- package/theme/ui/Tabs.tsx +114 -0
- package/theme/ui/TextField.tsx +278 -0
- package/theme/ui/TimePicker.tsx +128 -0
- package/theme/ui/TimePickerContainer.tsx +234 -0
- package/theme/ui/Toolbar.tsx +67 -0
- package/theme/ui/Tooltip.tsx +58 -0
- package/theme/ui/TopAppBar.tsx +77 -0
- package/theme/ui/bottomSheet.script.ts +8 -0
- package/theme/ui/bottomSheet.ts +211 -0
- package/theme/ui/carousel.script.ts +28 -0
- package/theme/ui/carouselLayout.ts +229 -0
- package/theme/ui/checkbox.script.ts +8 -0
- package/theme/ui/datePicker.script.ts +302 -0
- package/theme/ui/dates.ts +185 -0
- package/theme/ui/dialog.ts +48 -0
- package/theme/ui/dropdownMenu.script.ts +166 -0
- package/theme/ui/fabMenu.script.ts +57 -0
- package/theme/ui/navigationRail.script.ts +47 -0
- package/theme/ui/ripple.script.ts +159 -0
- package/theme/ui/search.script.ts +92 -0
- package/theme/ui/sideSheet.ts +48 -0
- package/theme/ui/slider.script.ts +12 -0
- package/theme/ui/sliderUpdate.ts +52 -0
- package/theme/ui/snackbar.script.ts +16 -0
- package/theme/ui/splitButton.script.ts +63 -0
- package/theme/ui/tabs.script.ts +48 -0
- package/theme/ui/textField.script.ts +17 -0
- package/theme/ui/textFieldUpdate.ts +44 -0
- package/theme/ui/timePicker.script.ts +248 -0
- package/theme/ui/toolbar.script.ts +43 -0
- package/theme/ui/tooltip.script.ts +68 -0
- package/worker/consent.js +141 -0
- package/worker/editor-github.js +167 -0
- package/worker/editor-host.js +74 -0
- package/worker/files.js +401 -0
- package/worker/github.js +36 -0
- package/worker/index.js +184 -0
- package/worker/not-found.js +97 -0
- package/worker/oauth.js +95 -0
- package/worker/publish.js +52 -0
- package/worker/push.js +270 -0
- package/worker/r2-status.js +50 -0
- package/worker/session.js +58 -0
|
@@ -0,0 +1,718 @@
|
|
|
1
|
+
// "Dele" (#udseende/dele): the editor's parts (Parts.tsx), what each is for and the texts in the examples, and the standard
|
|
2
|
+
// blocks and the apps' (BlockParts.tsx), all with the made-up site of examples.ts.
|
|
3
|
+
export const parts = {
|
|
4
|
+
intro: (file: string) =>
|
|
5
|
+
`The parts only the editor has, looking the way they do everywhere. The parts are in ${file}; change a part there and it changes everywhere. The buttons, fields, lists, sheets, and the other parts the theme has too are the theme’s and are under Theme. Light or dark is picked under Account.`,
|
|
6
|
+
use: {
|
|
7
|
+
emptyNote: 'What a list or a screen says when there is nothing in it, or while something is fetched: gray, in the middle.',
|
|
8
|
+
problemNote: 'What is wrong, in the accent color: why a sheet can’t be saved, or what couldn’t be read.',
|
|
9
|
+
toolbarButton:
|
|
10
|
+
'A tool in the text’s toolbar: a little smaller, so the bar fits on a phone. With an arrow it opens a menu (the kind of text, when the bar is too narrow).',
|
|
11
|
+
fields:
|
|
12
|
+
'The theme’s fields with the name on their edge and an explanation below. A choice opens the sheet, or a page of its own with what each choice gives (the arrow points there).',
|
|
13
|
+
formField: 'A field that says what is wrong with what was typed, and the number of characters out of the most allowed.',
|
|
14
|
+
fieldGroup: 'Fields that belong together, in a frame with their name on it.',
|
|
15
|
+
shownValue: 'What a field holds, shown without being edited here: with its icon, or gray when it is made elsewhere.',
|
|
16
|
+
iconPicker: 'One of many icons: the chosen one with its name, and the button that unfolds them all.',
|
|
17
|
+
imagePick: 'A picture: a small one of it, the button that picks one, and the button that removes it when it may be left out.',
|
|
18
|
+
foldList: 'Items in a frame that each fold out to their fields, with the arrows and Remove beside them.',
|
|
19
|
+
multiChoice:
|
|
20
|
+
'Several picked from a list: the picked ones as chips, and the button that opens the sheet with all the choices. At the bottom of the sheet, a link to make a new one.',
|
|
21
|
+
arrowLink: 'A link to another screen, with an arrow after it: under a field’s name, where it is edited.',
|
|
22
|
+
sheetBody: 'The fields of a sheet, between the title and the buttons. It scrolls when there are many.',
|
|
23
|
+
notice: 'A message at the top of a screen about what it shows, for example, an earlier version, and what you can do.',
|
|
24
|
+
color: 'A color: the swatch opens the sheet where the color is picked, and the color can also be typed.',
|
|
25
|
+
phone: 'A phone number: the country code before it opens the sheet with the countries and a search, and the number is typed after it.',
|
|
26
|
+
searchRow:
|
|
27
|
+
'The search with the buttons beside it, always in the same order: sort, filter, date, Google, and menu or list. Sort is gray while the pages are shown as the menu.',
|
|
28
|
+
choiceTile: 'One of many icons to tap, in a grid.',
|
|
29
|
+
group:
|
|
30
|
+
'Rows in a frame under a small heading: the start screen and the lists. The icon looks the same everywhere: gray, and in the accent color for the open part in the sidebar. A small picture or a sample of one of the theme’s tokens can stand before the name instead. A number may stand at the right. A row can also do something, in the accent color; delete, in the middle; or only be shown, with no color under the mouse and perhaps gray.',
|
|
31
|
+
checkList:
|
|
32
|
+
'Things that were checked: a score from 0 to 100 in a ring, a red triangle by what could be better (which folds out with how), and a green dot by what is fine.',
|
|
33
|
+
scoreRing:
|
|
34
|
+
'A score from 0 to 100 in a small ring at the start of a row, in the colors of the ring of checked things: green from 90, orange from 50, else red.',
|
|
35
|
+
unfold:
|
|
36
|
+
'At the right of a row: how many rows are under it, and the arrow that shows them. The rows under it are indented along a line.',
|
|
37
|
+
sheet:
|
|
38
|
+
'The sheet from the bottom (a dialog on a computer) with choices or fields. An icon or a row, for example, Language, opens it with the choices, and + (NewChoice) with the kinds something new can be, for example, a pop-up. The choices can stand under small headings.',
|
|
39
|
+
preview:
|
|
40
|
+
'The preview of a block in a dashed frame. It can be used as on the site, for example, folded out, but a link in it goes nowhere.',
|
|
41
|
+
colorSwatches: 'A set of colors in small rounds side by side, for example, 4 of the website’s colors.',
|
|
42
|
+
colorTiles:
|
|
43
|
+
'A few colors side by side, each on a tile with its name, its color code, a pen that opens the color sheet, and on the first a lock, for example, the generator’s 3 base colors.',
|
|
44
|
+
colorWheel: 'A color wheel with the colors as dots: the big one is dragged, the others follow, and a locked one shows a lock.',
|
|
45
|
+
choiceRow:
|
|
46
|
+
'One of several choices on a screen of its own, each in a row with what it gives, for example, a few of an icon pack’s icons, the chosen one in the accent color with a check mark.',
|
|
47
|
+
colorsPreview:
|
|
48
|
+
'A little page in a set of the website’s colors: heading, text, link, surface, box, the secondary and tertiary colors, and button, so you can see whether they can be read together.',
|
|
49
|
+
fullScreenSheet:
|
|
50
|
+
'The sheet with a whole page in it (the preview), as tall as the screen. The page is in a frame, as wide as a phone or a computer, and nothing in it runs.',
|
|
51
|
+
foldSection:
|
|
52
|
+
'A section of a long form (a page, a blog post) that folds in and out by its heading. Only the first is open from the start.',
|
|
53
|
+
sharePreview: "A link to a page as it looks when it is shared: the picture, the site's domain, the title, and the description.",
|
|
54
|
+
formColumns:
|
|
55
|
+
'A form on a wide screen: the text at the left, the status and the other fields on cards at the right. On a smaller screen below each other. The heading over the fields is always the same.',
|
|
56
|
+
},
|
|
57
|
+
/** Over the parts: the search, and the groups to show one of (as Material 3 sorts its components). */
|
|
58
|
+
filter: {
|
|
59
|
+
search: 'Search the parts',
|
|
60
|
+
group: {
|
|
61
|
+
buttons: 'Buttons',
|
|
62
|
+
fields: 'Fields',
|
|
63
|
+
choices: 'Choices',
|
|
64
|
+
lists: 'Lists',
|
|
65
|
+
navigation: 'Navigation',
|
|
66
|
+
sheets: 'Sheets and dialogs',
|
|
67
|
+
messages: 'Messages',
|
|
68
|
+
layout: 'Layout',
|
|
69
|
+
fieldTypes: 'Field types',
|
|
70
|
+
},
|
|
71
|
+
none: 'No parts match the search',
|
|
72
|
+
},
|
|
73
|
+
/** The texts in the examples. */
|
|
74
|
+
sample: {
|
|
75
|
+
domain: 'example.com',
|
|
76
|
+
status: 'Status',
|
|
77
|
+
addTag: 'Add tag',
|
|
78
|
+
bold: 'Bold',
|
|
79
|
+
insert: 'Insert',
|
|
80
|
+
cookieBanner: 'The cookie banner',
|
|
81
|
+
address: 'Address',
|
|
82
|
+
addressHint: 'For example, /about/.',
|
|
83
|
+
sendsTo: 'Sends to the page "Second page."',
|
|
84
|
+
color: 'Accent color',
|
|
85
|
+
colorHint: 'Buttons, links, and icons.',
|
|
86
|
+
phone: 'Phone',
|
|
87
|
+
description: 'Short description',
|
|
88
|
+
descriptionText: 'A text over several lines.',
|
|
89
|
+
placement: 'Placement',
|
|
90
|
+
top: 'At the top',
|
|
91
|
+
inList: 'In the list',
|
|
92
|
+
placementOnPage: 'Placement (on a page of its own)',
|
|
93
|
+
icon: 'Icon',
|
|
94
|
+
icons: ['Heart', 'Leaf', 'Sun'],
|
|
95
|
+
group: 'Content',
|
|
96
|
+
media: 'Files',
|
|
97
|
+
pages: 'Pages',
|
|
98
|
+
openSheet: 'Open a sheet',
|
|
99
|
+
sort: 'Sort',
|
|
100
|
+
filter: 'Filter',
|
|
101
|
+
all: 'All',
|
|
102
|
+
newest: 'Newest first',
|
|
103
|
+
oldest: 'Oldest first',
|
|
104
|
+
aSheet: 'A sheet',
|
|
105
|
+
/** NewChoice: the kinds of a new pop-up. */
|
|
106
|
+
newPopup: 'New pop-up',
|
|
107
|
+
standardKind: 'Standard',
|
|
108
|
+
standardKindHint: 'With a picture, text, and a button.',
|
|
109
|
+
appKind: 'From an app',
|
|
110
|
+
appKindHint: 'With what the app adds.',
|
|
111
|
+
openPage: 'Open a page',
|
|
112
|
+
aPage: 'A page',
|
|
113
|
+
pageText: 'A whole page in a frame, as wide as a phone.',
|
|
114
|
+
option: (letter: string) => `Choice ${letter}`,
|
|
115
|
+
foldOut: 'Tap to fold out',
|
|
116
|
+
foldedText: 'The text that folds out. A link here goes nowhere:',
|
|
117
|
+
link: 'link',
|
|
118
|
+
noticeTitle: 'The version from Oct 1 at 1:42 PM',
|
|
119
|
+
noticeText: 'This is how it looked then.',
|
|
120
|
+
noticeAction: 'Show the current version',
|
|
121
|
+
cookieHint: 'Asks the visitors for permission to use cookies.',
|
|
122
|
+
corners: 'Corners',
|
|
123
|
+
showOnFront: 'Show on the front page',
|
|
124
|
+
contact: 'Contact',
|
|
125
|
+
name: 'Name',
|
|
126
|
+
fromTitle: '/made-from-the-title/',
|
|
127
|
+
question: (n: number) => `Question ${n}`,
|
|
128
|
+
answer: 'Answer',
|
|
129
|
+
newTag: 'Create a tag',
|
|
130
|
+
editColors: 'Edit the colors',
|
|
131
|
+
subpage: (n: number) => `Subpage ${n}`,
|
|
132
|
+
openFields: 'Open a sheet with fields',
|
|
133
|
+
withFields: 'A sheet with fields',
|
|
134
|
+
rows: 'Rows',
|
|
135
|
+
versionNow: 'The current version',
|
|
136
|
+
},
|
|
137
|
+
/** The form fields (fields.tsx), one of each type with the settings it can have: what each type is
|
|
138
|
+
* for, and the fields and values in the examples. */
|
|
139
|
+
fields: {
|
|
140
|
+
intro: (file: string) =>
|
|
141
|
+
`The fields of the forms and settings, one of each type with the choices it can have. The fields are in ${file} and are built of the parts above. Nothing here is saved.`,
|
|
142
|
+
use: {
|
|
143
|
+
string:
|
|
144
|
+
'One line of text. It can have to be filled in, have at most a number of characters, have a text that is used when the field is empty, have to have a certain form, be an address, a number in pairs, a phone number, or words as chips (one or more), or have a link to where it is edited.',
|
|
145
|
+
text: 'Text over several lines, with the same choices as one line.',
|
|
146
|
+
markdown: 'Text with formatting, in the same editor as the pages.',
|
|
147
|
+
number: 'A number.',
|
|
148
|
+
date: 'A date, or a date and a time.',
|
|
149
|
+
boolean: 'Yes or no: a checkbox, or a switch that says what it is set to.',
|
|
150
|
+
select:
|
|
151
|
+
'One of several choices: in the sheet from the bottom, side by side, as icons, or only shown. A choice can have its own explanation, and a field can be there only with one of the choices.',
|
|
152
|
+
relation:
|
|
153
|
+
'A page, a post, or a tag from the site’s lists. A page is picked with the page picker, the fixed pages too; several picked are chips.',
|
|
154
|
+
image: 'A picture from Files or a new one.',
|
|
155
|
+
readonly: 'Shown, but not edited here.',
|
|
156
|
+
object: 'A group of fields in a frame.',
|
|
157
|
+
list: 'A list of items that each fold out to their fields, or of single choices.',
|
|
158
|
+
blocks: 'The sections of a fixed page as cards in the text, like a page.',
|
|
159
|
+
check:
|
|
160
|
+
'A form that isn’t filled in right: a message at the front says what is wrong, and the field is scrolled to and flashes until it is put right. Try with an empty field that must be filled in.',
|
|
161
|
+
},
|
|
162
|
+
tryToSave: 'Try to save',
|
|
163
|
+
allRight: 'All the fields are filled in right',
|
|
164
|
+
heading: 'Heading',
|
|
165
|
+
headingHint: 'At most about 60 characters.',
|
|
166
|
+
underName: 'Text (under the name)',
|
|
167
|
+
underNameHint: 'If the field is empty, the site’s name is used.',
|
|
168
|
+
email: 'Email',
|
|
169
|
+
emailForm: 'Write a whole email address',
|
|
170
|
+
cvr: 'CVR number',
|
|
171
|
+
keyword: 'Main keyword',
|
|
172
|
+
keywords: 'Other keywords',
|
|
173
|
+
linkText: 'Link text',
|
|
174
|
+
editColors: 'Edit the colors',
|
|
175
|
+
descriptionHint: 'At most about 160 characters.',
|
|
176
|
+
text: 'Text',
|
|
177
|
+
price: 'Price',
|
|
178
|
+
date: 'Date',
|
|
179
|
+
publish: 'Published',
|
|
180
|
+
frontPage: 'Show on the front page',
|
|
181
|
+
popup: 'The pop-up',
|
|
182
|
+
shown: 'Shown',
|
|
183
|
+
hidden: 'Hidden',
|
|
184
|
+
listText: 'Text (in the list)',
|
|
185
|
+
listTextHint: 'Only there with the placement In the list.',
|
|
186
|
+
publishedHint: 'The page is on the site.',
|
|
187
|
+
draftHint: 'The page isn’t on the site.',
|
|
188
|
+
look: 'Look',
|
|
189
|
+
kind: 'Kind',
|
|
190
|
+
page: 'Page',
|
|
191
|
+
post: 'Post',
|
|
192
|
+
tags: 'Tags',
|
|
193
|
+
tagsHint: 'At most 3.',
|
|
194
|
+
picture: 'Picture',
|
|
195
|
+
contact: 'Contact',
|
|
196
|
+
name: 'Name',
|
|
197
|
+
questions: 'Questions',
|
|
198
|
+
question: 'Question',
|
|
199
|
+
aQuestion: 'question',
|
|
200
|
+
answer: 'Answer',
|
|
201
|
+
pages: 'Pages',
|
|
202
|
+
aPage: 'page',
|
|
203
|
+
aSection: 'section',
|
|
204
|
+
/** What the examples are filled in with. */
|
|
205
|
+
values: {
|
|
206
|
+
email: 'contact@example.com',
|
|
207
|
+
heading: 'A heading',
|
|
208
|
+
text: 'A text with **bold** type and a [link](/).',
|
|
209
|
+
question: 'How long is a session?',
|
|
210
|
+
answer: 'A session lasts 60 minutes.',
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
/** The made-up site the parts and blocks are shown with (examples.ts), never the site's own. */
|
|
214
|
+
examples: {
|
|
215
|
+
pages: ['First page', 'Second page', 'Third page'],
|
|
216
|
+
tags: ['First tag', 'Second tag'],
|
|
217
|
+
posts: ['First post', 'Second post', 'Third post'],
|
|
218
|
+
text: 'A short text that tells a little more.',
|
|
219
|
+
testimonials: [
|
|
220
|
+
{ name: 'Anna', context: 'Client', quote: 'A testimonial about how it was.\n\nAnd one more paragraph.' },
|
|
221
|
+
{ name: 'Bo', context: 'Client', quote: 'A shorter testimonial.' },
|
|
222
|
+
{ name: 'Clara', context: 'Client', quote: 'A third testimonial.' },
|
|
223
|
+
],
|
|
224
|
+
cookies: [
|
|
225
|
+
{
|
|
226
|
+
name: 'session',
|
|
227
|
+
provider: 'First service',
|
|
228
|
+
purpose: 'Remembers the choice on the page',
|
|
229
|
+
lasts: 'until the browser closes',
|
|
230
|
+
category: 'necessary',
|
|
231
|
+
},
|
|
232
|
+
{ name: 'visit_*', provider: 'Second service', purpose: 'Counts the visits', lasts: '1 year', category: 'statistics' },
|
|
233
|
+
],
|
|
234
|
+
contact: {
|
|
235
|
+
name: 'Jane Doe',
|
|
236
|
+
role: 'Title',
|
|
237
|
+
phone: '12 34 56 78',
|
|
238
|
+
email: 'contact@example.com',
|
|
239
|
+
street: 'Main Street 1',
|
|
240
|
+
city: '1234 Town',
|
|
241
|
+
},
|
|
242
|
+
payment: { bank: 'The Bank', reg: '1234', account: '1234567890' },
|
|
243
|
+
booking: { heading: 'Book a time', text: 'A short text about how to book.' },
|
|
244
|
+
labels: { book: 'Book a time', call: 'Call' },
|
|
245
|
+
/** What a kind of entry an app adds (a pop-up) is drawn with. */
|
|
246
|
+
entry: { name: 'An example', heading: 'A heading', text: 'A short text that tells a little more.' },
|
|
247
|
+
},
|
|
248
|
+
/** "Dele" › "Værdier" (#udseende/dele/vaerdier, Tokens.tsx): the theme's design tokens, each with what it is used for. */
|
|
249
|
+
tokens: {
|
|
250
|
+
intro: 'The theme’s values for corners, shadows, typography, and colors, as the theme sets them.',
|
|
251
|
+
groups: { shape: 'Corners', elevation: 'Shadows', type: 'Typography', color: 'Colors' },
|
|
252
|
+
shape: {
|
|
253
|
+
radius: 'Panels',
|
|
254
|
+
radiusSmall: 'What is smaller in a panel',
|
|
255
|
+
blockRadius: 'Blocks',
|
|
256
|
+
blockRadiusSmall: 'What is smaller in a block',
|
|
257
|
+
blockControlRadius: 'Buttons and fields in blocks',
|
|
258
|
+
pictureRadius: 'Large pictures',
|
|
259
|
+
postPictureRadius: 'Pictures in lists',
|
|
260
|
+
logoTileRadius: 'The logo’s tile',
|
|
261
|
+
},
|
|
262
|
+
parts: {
|
|
263
|
+
button: 'Buttons',
|
|
264
|
+
chip: 'Chips',
|
|
265
|
+
textField: 'Fields',
|
|
266
|
+
card: 'Cards',
|
|
267
|
+
menu: 'Menus',
|
|
268
|
+
dialog: 'Dialogs',
|
|
269
|
+
bottomSheet: 'Bottom sheets',
|
|
270
|
+
sideSheet: 'Side sheets',
|
|
271
|
+
fab: 'Floating action buttons',
|
|
272
|
+
snackbar: 'Snackbars',
|
|
273
|
+
searchBar: 'Search',
|
|
274
|
+
},
|
|
275
|
+
/** Material 3's corner radius scale, its steps by name (m3.material.io/styles/shape/corner-radius-scale). */
|
|
276
|
+
steps: {
|
|
277
|
+
none: 'None',
|
|
278
|
+
extraSmall: 'Extra small',
|
|
279
|
+
small: 'Small',
|
|
280
|
+
medium: 'Medium',
|
|
281
|
+
large: 'Large',
|
|
282
|
+
largeIncreased: 'Large increased',
|
|
283
|
+
extraLarge: 'Extra large',
|
|
284
|
+
extraLargeIncreased: 'Extra large increased',
|
|
285
|
+
extraExtraLarge: 'Extra extra large',
|
|
286
|
+
full: 'Full',
|
|
287
|
+
},
|
|
288
|
+
/** A corner's step and its size ("Medium (12px)"). */
|
|
289
|
+
step: (step: string, size: string) => `${step} (${size})`,
|
|
290
|
+
elevation: {
|
|
291
|
+
/** Material 3's elevation levels, 0 (on the page) to 5. */
|
|
292
|
+
level: (n: number) => `Level ${n}`,
|
|
293
|
+
/** A level nothing has (under it, where the list of what has it would be). */
|
|
294
|
+
unused: 'Not used',
|
|
295
|
+
/** A shadow that is none of the levels: the theme's own. */
|
|
296
|
+
own: 'Own shadow',
|
|
297
|
+
shadow: 'Panels',
|
|
298
|
+
blockShadow: 'Blocks',
|
|
299
|
+
},
|
|
300
|
+
/** The UI parts' shadows at rest, by Material 3's names, listed under their level ("Panels, blocks, and …"). */
|
|
301
|
+
partShadows: {
|
|
302
|
+
buttonFilled: 'Filled buttons',
|
|
303
|
+
buttonTonal: 'Tonal buttons',
|
|
304
|
+
buttonElevated: 'Elevated buttons',
|
|
305
|
+
chipElevated: 'Elevated chips',
|
|
306
|
+
cardFilled: 'Filled cards',
|
|
307
|
+
cardOutlined: 'Outlined cards',
|
|
308
|
+
cardElevated: 'Elevated cards',
|
|
309
|
+
switchHandle: 'Switch handles',
|
|
310
|
+
sliderHandle: 'Slider handles',
|
|
311
|
+
menu: 'Menus',
|
|
312
|
+
tooltipRich: 'Rich tooltips',
|
|
313
|
+
dialog: 'Dialogs',
|
|
314
|
+
bottomSheet: 'Bottom sheets',
|
|
315
|
+
bottomSheetLarge: 'Bottom sheets as dialogs',
|
|
316
|
+
sideSheet: 'Modal side sheets',
|
|
317
|
+
navigationDrawer: 'Modal navigation drawer',
|
|
318
|
+
navigationBar: 'Navigation bar',
|
|
319
|
+
navigationRailModal: 'Modal navigation rail',
|
|
320
|
+
topAppBarStuck: 'Top app bar (scrolled)',
|
|
321
|
+
fab: 'Floating action button',
|
|
322
|
+
toolbarFloating: 'Floating toolbar',
|
|
323
|
+
searchBar: 'Search',
|
|
324
|
+
searchView: 'Search view',
|
|
325
|
+
snackbar: 'Snackbars',
|
|
326
|
+
buttonToggleSelected: 'Selected toggle buttons',
|
|
327
|
+
chipSelected: 'Selected filter chips',
|
|
328
|
+
chip: 'Chips',
|
|
329
|
+
/** A part in a state: pointed at with the mouse, or dragged. */
|
|
330
|
+
hovered: (part: string) => `${part} (hovered)`,
|
|
331
|
+
dragged: (part: string) => `${part} (dragged)`,
|
|
332
|
+
},
|
|
333
|
+
/** The typeface and Material 3's type roles (m3.material.io/styles/typography/type-scale-tokens), each with what the
|
|
334
|
+
* theme draws in it, and under it its size, line height, and weight as the theme sets them. */
|
|
335
|
+
type: {
|
|
336
|
+
typeface: 'Typeface',
|
|
337
|
+
/** Material 3's type scale (m3.material.io/styles/typography/type-scale-tokens): its roles and sizes, a step by
|
|
338
|
+
* both ("Title large"), and under it its variables and their values. */
|
|
339
|
+
roles: { display: 'Display', headline: 'Headline', title: 'Title', body: 'Body', label: 'Label' },
|
|
340
|
+
sizes: { large: 'large', medium: 'medium', small: 'small' },
|
|
341
|
+
step: (role: string, size: string) => `${role} ${size}`,
|
|
342
|
+
values: (token: string, size: string, lineHeight: string, weight: string, tracking: string) =>
|
|
343
|
+
`${token}: ${size}, line height ${lineHeight}, weight ${weight}, letter spacing ${tracking}`,
|
|
344
|
+
},
|
|
345
|
+
/** A token's name and its value, under the row's name. */
|
|
346
|
+
value: (token: string, value: string) => `${token}: ${value}`,
|
|
347
|
+
/** A token the theme does not set, with the one it gets instead. */
|
|
348
|
+
from: (token: string, value: string, from: string) => `${token}: ${value} (as ${from})`,
|
|
349
|
+
},
|
|
350
|
+
/** "Dele" (#udseende/dele) and its screens: the editor's parts, the theme's UI components, the blocks (the standard
|
|
351
|
+
* ones and the apps') and the lists of kinds ("Promotion"). */
|
|
352
|
+
screens: {
|
|
353
|
+
editor: 'Editor',
|
|
354
|
+
components: 'UI components',
|
|
355
|
+
blocks: 'Blocks',
|
|
356
|
+
values: 'Values',
|
|
357
|
+
componentsIntro: "The theme's buttons, fields, lists, and other parts in all their kinds and states. The theme gives them their look.",
|
|
358
|
+
blocksIntro: "The standard blocks and the apps' blocks in all their versions. The theme gives them their look.",
|
|
359
|
+
/** A list of kinds ("Promotion"), by the list's name for one. */
|
|
360
|
+
kindsIntro: (one: string) => `Every kind of ${one}, the apps' too, in all its states. The theme gives them their look.`,
|
|
361
|
+
search: 'Search the parts',
|
|
362
|
+
none: 'No parts match the search',
|
|
363
|
+
/** The theme's buttons (packages/editor/theme/ui/), first under "UI components". */
|
|
364
|
+
ui: 'Buttons',
|
|
365
|
+
button:
|
|
366
|
+
"Filled for the main action, tonal, elevated, outlined, and text only, in 5 sizes, round or square, turned off and on, with an icon and gray when it can't be used.",
|
|
367
|
+
iconButton: 'Button with an icon: standard, filled, tonal, and outlined, in 5 sizes and 3 widths, round or square, turned off and on.',
|
|
368
|
+
sizes: { xsmall: 'Extra small', small: 'Small', medium: 'Medium', large: 'Large', xlarge: 'Extra large' },
|
|
369
|
+
shapes: { round: 'Round', square: 'Square' },
|
|
370
|
+
widths: { narrow: 'Narrow', default: 'Default', wide: 'Wide' },
|
|
371
|
+
toggle: { off: 'Off', on: 'On' },
|
|
372
|
+
iconKinds: { standard: 'Standard', filled: 'Filled', tonal: 'Tonal', outlined: 'Outlined' },
|
|
373
|
+
withIcon: 'With icon',
|
|
374
|
+
disabled: "Can't be used",
|
|
375
|
+
/** The theme's form controls (TextField, Checkbox), under "UI components". */
|
|
376
|
+
fields: 'Fields',
|
|
377
|
+
textField:
|
|
378
|
+
"Field to write in, outlined or filled: empty, filled in, with a line under it, with an error, with only a placeholder and gray when it can't be used, and with an icon, a button to clear it, text before and after, the error's icon, a password, a counter, several lines, and only to read.",
|
|
379
|
+
checkbox:
|
|
380
|
+
"Box to check with its name and a line under it: empty, checked, neither (some of the choices under it), wrong and gray when it can't be changed.",
|
|
381
|
+
fieldKinds: { outlined: 'Outlined', filled: 'Filled' },
|
|
382
|
+
fieldLabel: 'Email',
|
|
383
|
+
fieldValue: 'name@example.com',
|
|
384
|
+
fieldSupporting: 'You only get an email when there’s news.',
|
|
385
|
+
fieldError: 'Write an email address.',
|
|
386
|
+
fieldPlaceholder: 'Your email',
|
|
387
|
+
fieldSearch: 'Search the site',
|
|
388
|
+
fieldClear: 'Clear',
|
|
389
|
+
fieldPhone: 'Phone',
|
|
390
|
+
fieldPrefix: '+45',
|
|
391
|
+
fieldPrice: 'Price',
|
|
392
|
+
fieldSuffix: 'kr.',
|
|
393
|
+
fieldPassword: 'Password',
|
|
394
|
+
fieldShowPassword: 'Show password',
|
|
395
|
+
fieldPasswordValue: 'secret',
|
|
396
|
+
fieldName: 'Name',
|
|
397
|
+
fieldNameSupporting: 'At most 30 characters.',
|
|
398
|
+
fieldMessage: 'Message',
|
|
399
|
+
fieldMessageValue: 'I would like to hear more about a session.',
|
|
400
|
+
fieldNote: 'Note',
|
|
401
|
+
fieldReadOnly: 'Customer number',
|
|
402
|
+
fieldReadOnlyValue: '10 482',
|
|
403
|
+
checkboxLabel: 'Statistics',
|
|
404
|
+
checkboxSupporting: 'How the site is used.',
|
|
405
|
+
checkboxParent: 'All cookies',
|
|
406
|
+
checkboxError: 'Check the box to continue.',
|
|
407
|
+
/** The theme's chips (Chip), a group of their own under "UI components". */
|
|
408
|
+
chips: 'Chips',
|
|
409
|
+
chip: "Assist (a link to something related), filter (one of a few choices, the chosen one marked), input and suggestion: elevated (on a picture), selected, with an icon or a picture, with a button that removes it, while it is dragged, only shown, and gray when it can't be used.",
|
|
410
|
+
chipSet: 'Chips side by side in a group: on as many lines as they need, or on one line that scrolls sideways.',
|
|
411
|
+
chipSetLayouts: { wrap: 'Several lines', scroll: 'Scroll sideways' },
|
|
412
|
+
chipKinds: { assist: 'Assist', filter: 'Filter', input: 'Input', suggestion: 'Suggestion' },
|
|
413
|
+
selected: 'Selected',
|
|
414
|
+
plain: 'Only shown',
|
|
415
|
+
elevated: 'Elevated',
|
|
416
|
+
withAvatar: 'With picture',
|
|
417
|
+
dragged: 'Dragged',
|
|
418
|
+
remove: (label: string) => `Remove ${label}`,
|
|
419
|
+
/** The theme's dialog, bottom sheet and carousel (packages/editor/theme/ui/), and what is in the examples. */
|
|
420
|
+
containment: {
|
|
421
|
+
title: 'Dialogs, sheets and carousel',
|
|
422
|
+
dialog:
|
|
423
|
+
'A box over the page with an icon, a heading, a text, and buttons, only the box, for example, a pop-up or the cookie question, or over the whole screen on a phone with the close button and the action at the top.',
|
|
424
|
+
bottomSheet:
|
|
425
|
+
'A sheet from the bottom: modal over the page, on a computer as a dialog in the middle, for example, the booking sheet, or standard at the bottom of the screen, with the page usable behind it, dragged up and down.',
|
|
426
|
+
carousel:
|
|
427
|
+
'Cards or pictures in a row that are swiped sideways, with dots under them: all the same size, in several sizes, one large (from the start or in the middle) and one at a time.',
|
|
428
|
+
dialogKinds: { basic: 'Basic', icon: 'With icon, list, and divider', container: 'Only the box', fullScreen: 'Full screen' },
|
|
429
|
+
sheetKinds: {
|
|
430
|
+
modal: 'Modal',
|
|
431
|
+
collapsed: 'Standard, collapsed',
|
|
432
|
+
halfExpanded: 'Standard, half expanded',
|
|
433
|
+
expanded: 'Standard, expanded',
|
|
434
|
+
},
|
|
435
|
+
layouts: {
|
|
436
|
+
uncontained: 'All the same size',
|
|
437
|
+
multiBrowse: 'Several sizes',
|
|
438
|
+
hero: 'One large',
|
|
439
|
+
heroCenter: 'One large in the middle',
|
|
440
|
+
fullScreen: 'One at a time',
|
|
441
|
+
},
|
|
442
|
+
choices: ['First choice', 'Second choice', 'Third choice'],
|
|
443
|
+
fields: ['Name', 'Email'],
|
|
444
|
+
cancel: 'Cancel',
|
|
445
|
+
accept: 'Accept',
|
|
446
|
+
save: 'Save',
|
|
447
|
+
page: 'The page behind the sheet can still be used.',
|
|
448
|
+
dragHandle: 'Expand or collapse the sheet',
|
|
449
|
+
picture: (n: number) => `Picture ${n}`,
|
|
450
|
+
showPicture: (n: number) => `Show picture ${n}`,
|
|
451
|
+
heading: 'Heading',
|
|
452
|
+
text: 'A short text about what the box is about.',
|
|
453
|
+
sheetText: 'A short text under the heading',
|
|
454
|
+
footer: 'A line at the bottom',
|
|
455
|
+
close: 'Close',
|
|
456
|
+
roleDescription: 'carousel',
|
|
457
|
+
item: 'card',
|
|
458
|
+
card: (n: number) => `Card ${n}`,
|
|
459
|
+
show: (n: number) => `Show card ${n}`,
|
|
460
|
+
},
|
|
461
|
+
/** The theme's navigation parts (NavigationParts.tsx): the header's. */
|
|
462
|
+
navigation: {
|
|
463
|
+
title: 'Navigation',
|
|
464
|
+
topAppBar:
|
|
465
|
+
"The bar at the top of a page: only the surface with the site's own header, or the button at the start, the headline, and the buttons at the end, small, medium, or large, or with the search field. It gets another surface when the page scrolls under it.",
|
|
466
|
+
stuck: 'When the page scrolls',
|
|
467
|
+
/** The top app bar's kinds and what is in them (TopAppBar.tsx). */
|
|
468
|
+
appBar: {
|
|
469
|
+
kinds: { search: 'Search', small: 'Small', 'medium-flexible': 'Medium', 'large-flexible': 'Large' },
|
|
470
|
+
subtitle: 'Subtitle',
|
|
471
|
+
center: 'in the middle',
|
|
472
|
+
long: 'A long headline that may run over several lines',
|
|
473
|
+
collapsed: 'collapsed',
|
|
474
|
+
back: 'Back',
|
|
475
|
+
search: 'Search the site',
|
|
476
|
+
clear: 'Clear',
|
|
477
|
+
empty: 'Nothing fits the search.',
|
|
478
|
+
favourite: 'Save',
|
|
479
|
+
profile: 'Profile',
|
|
480
|
+
},
|
|
481
|
+
menu: 'Choices on a surface: the pages under an item in the bar, or actions with an icon, a shortcut, text under them, a check mark, and a submenu, in groups with a gap or a line between them, on the surface or in the accent.',
|
|
482
|
+
dropdownMenu: 'A menu a button opens: the arrow keys move in it, Escape closes it.',
|
|
483
|
+
exposedDropdownMenu: 'A field that shows the chosen one of a few choices and opens a menu of them: outlined or filled.',
|
|
484
|
+
menus: {
|
|
485
|
+
standard: 'Surface',
|
|
486
|
+
vibrant: 'Accent',
|
|
487
|
+
gap: 'Groups with a gap between them',
|
|
488
|
+
divider: 'Groups with a line between them',
|
|
489
|
+
actions: ['Edit', 'Copy', 'Download', 'Move', 'Delete'],
|
|
490
|
+
shortcuts: ['Ctrl+E', 'Ctrl+C'],
|
|
491
|
+
download: 'PDF, 2 pages',
|
|
492
|
+
view: 'Show',
|
|
493
|
+
checks: ['Weekends', 'Holidays'],
|
|
494
|
+
sort: 'Sort by',
|
|
495
|
+
sorts: ['Date', 'Name'],
|
|
496
|
+
share: 'Share',
|
|
497
|
+
shares: ['Email', 'Phone', 'Copy link'],
|
|
498
|
+
more: 'More actions',
|
|
499
|
+
field: 'Treatment',
|
|
500
|
+
options: ['Advice', 'Workshop', 'Course', 'Online'],
|
|
501
|
+
supporting: 'Can be changed later.',
|
|
502
|
+
error: 'Choose a treatment.',
|
|
503
|
+
kinds: { outlined: 'Outlined', filled: 'Filled' },
|
|
504
|
+
},
|
|
505
|
+
navigationDrawer: 'The menu that opens over the page on a phone: the pages, one with sub-pages unfolded, the open one marked.',
|
|
506
|
+
tabs: 'Tabs in a row: only the text, as under the bar, or primary with an icon and secondary, with a line under the open one. To swipe sideways or across the whole width.',
|
|
507
|
+
/** The tabs' made-up views (Tabs.tsx). */
|
|
508
|
+
views: ['Overview', 'Prices', 'Reviews', 'Contact', 'Map', 'Videos'],
|
|
509
|
+
viewList: 'Views',
|
|
510
|
+
fab: "The screen's main action in a large button: only the icon, or the icon and the text, in 3 sizes and 6 colors.",
|
|
511
|
+
name: 'Name',
|
|
512
|
+
open: 'Open menu',
|
|
513
|
+
pages: ['Home', 'The open page', 'A page with sub-pages', 'Contact'],
|
|
514
|
+
subpages: ['Sub-page', 'The open sub-page'],
|
|
515
|
+
book: 'Book a time',
|
|
516
|
+
kinds: {
|
|
517
|
+
primary: 'Accent color',
|
|
518
|
+
secondary: 'Secondary color',
|
|
519
|
+
tertiary: 'Tertiary color',
|
|
520
|
+
'primary-container': 'Light accent color',
|
|
521
|
+
'secondary-container': 'Light secondary color',
|
|
522
|
+
'tertiary-container': 'Light tertiary color',
|
|
523
|
+
},
|
|
524
|
+
sizes: { fab: 'Regular', medium: 'Medium', large: 'Large' },
|
|
525
|
+
extendedSizes: { small: 'Small', medium: 'Medium', large: 'Large' },
|
|
526
|
+
},
|
|
527
|
+
/** The theme's buttons that do more than one thing (ActionParts.tsx). */
|
|
528
|
+
actions: {
|
|
529
|
+
title: 'Actions',
|
|
530
|
+
buttonGroup:
|
|
531
|
+
'Buttons that belong together, side by side: apart or joined, in all the buttons’ sizes and shapes. A button that is turned on and off stands out while it is on.',
|
|
532
|
+
segmentedButton: 'A few choices side by side in one frame: one or more chosen, the chosen ones with a check.',
|
|
533
|
+
splitButton: 'The main action with an arrow beside it that opens a menu with other ways to do it, in the buttons’ 5 sizes.',
|
|
534
|
+
fabMenu:
|
|
535
|
+
"The screen's main action in a large button of any size that opens a few actions above it and then becomes a cross, in 3 color sets.",
|
|
536
|
+
group: 'View',
|
|
537
|
+
views: ['Day', 'Week', 'Month'],
|
|
538
|
+
actions: ['Book a time', 'Call', 'Write'],
|
|
539
|
+
channel: 'Contact',
|
|
540
|
+
channels: ['Phone', 'Email', 'Chat'],
|
|
541
|
+
mode: 'Mode',
|
|
542
|
+
modes: ['Light', 'Dark'],
|
|
543
|
+
days: 'Days',
|
|
544
|
+
weekdays: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],
|
|
545
|
+
book: 'Book a time',
|
|
546
|
+
more: 'More ways to book',
|
|
547
|
+
ways: ['Call', 'Send an email', 'Book online'],
|
|
548
|
+
disabled: 'Can’t be used',
|
|
549
|
+
kinds: { filled: 'Filled', tonal: 'Tonal', elevated: 'Elevated', outlined: 'Outlined' },
|
|
550
|
+
contact: 'Contact',
|
|
551
|
+
close: 'Close',
|
|
552
|
+
fabKinds: { primary: 'Accent color', secondary: 'Secondary color', tertiary: 'Tertiary color' },
|
|
553
|
+
},
|
|
554
|
+
/** The theme's switches, radio buttons, sliders, dividers and side sheets (SelectionParts.tsx), and what is in the
|
|
555
|
+
* examples. */
|
|
556
|
+
selection: {
|
|
557
|
+
title: 'Switches, choices and side sheets',
|
|
558
|
+
switch: 'Turns something on or off, with its name before it: off, on, with icons in the handle, and gray when it can’t be changed.',
|
|
559
|
+
radioButton: 'One of a few choices in a group under its name, maybe with a line under it: chosen and gray when it can’t be chosen.',
|
|
560
|
+
slider:
|
|
561
|
+
'Chooses a number by dragging: freely, in steps with dots, from the middle, a range with 2 handles and with the number over the handle, in 5 sizes, with an icon and vertical.',
|
|
562
|
+
divider: 'A thin line between parts: full width, inset from the start, inset from both sides, and vertical.',
|
|
563
|
+
sideSheet: 'More about what is on the screen, at its side: beside the page or over it, with a headline, a cross, and buttons.',
|
|
564
|
+
switchLabel: 'Newsletter',
|
|
565
|
+
switchSupporting: 'An email when there is news.',
|
|
566
|
+
groupLabel: 'When suits you?',
|
|
567
|
+
choices: ['Morning', 'Afternoon', 'Evening'],
|
|
568
|
+
choiceSupporting: '9 am–12 pm',
|
|
569
|
+
volume: 'Volume',
|
|
570
|
+
count: 'Number',
|
|
571
|
+
price: 'Price',
|
|
572
|
+
handles: ['From', 'To'] as [string, string],
|
|
573
|
+
balance: 'Balance',
|
|
574
|
+
brightness: 'Brightness',
|
|
575
|
+
sliderSizes: { xsmall: 'Extra small', small: 'Small', medium: 'Medium', large: 'Large', xlarge: 'Extra large' },
|
|
576
|
+
verticalSliders: 'Vertical',
|
|
577
|
+
kinds: { 'full-width': 'Full width', inset: 'Inset', 'middle-inset': 'Inset from both sides', vertical: 'Vertical' },
|
|
578
|
+
sheetKinds: { standard: 'Beside the page', modal: 'Over the page' },
|
|
579
|
+
page: 'The page the sheet belongs to.',
|
|
580
|
+
heading: 'Filters',
|
|
581
|
+
text: 'What the sheet shows.',
|
|
582
|
+
close: 'Close',
|
|
583
|
+
apply: 'Apply',
|
|
584
|
+
cancel: 'Cancel',
|
|
585
|
+
},
|
|
586
|
+
/** The theme's parts that tell the visitor something (CommunicationParts.tsx), and what is in the examples. */
|
|
587
|
+
communication: {
|
|
588
|
+
title: 'Messages and progress',
|
|
589
|
+
badge: 'A small mark on an icon, an icon button or a menu item: a dot for something new, or a number.',
|
|
590
|
+
loadingIndicator: 'A shape that turns and changes while something short is on its way, alone or in its round container.',
|
|
591
|
+
linearProgressIndicator:
|
|
592
|
+
'A line that fills up as far as something has come. Without a value, 2 stretches run along it. Also wavy and thick.',
|
|
593
|
+
circularProgressIndicator: 'The same as a ring, where there is no room for a line. Also wavy and thick.',
|
|
594
|
+
snackbar:
|
|
595
|
+
'A short message at the bottom of the screen, for example, about a new version of a page, with links, an action, or a cross.',
|
|
596
|
+
tooltip: 'A short text by a button while the mouse is over it or it has focus: short, or with a heading and an action.',
|
|
597
|
+
dot: 'Dot',
|
|
598
|
+
number: 'Number',
|
|
599
|
+
many: 'More than 999',
|
|
600
|
+
onIconButton: 'On an icon button',
|
|
601
|
+
new: 'New',
|
|
602
|
+
count: (n: number) => `${n} new`,
|
|
603
|
+
messages: 'Messages',
|
|
604
|
+
home: 'Home',
|
|
605
|
+
alone: 'Alone',
|
|
606
|
+
contained: 'In a container',
|
|
607
|
+
loading: 'Loading…',
|
|
608
|
+
uploading: 'Uploading',
|
|
609
|
+
percent: (v: number) => `${Math.round(v * 100)}%`,
|
|
610
|
+
indeterminate: 'Without a value',
|
|
611
|
+
shapes: { flat: 'Flat', wavy: 'Wavy' },
|
|
612
|
+
thick: 'Thick',
|
|
613
|
+
sent: 'The message has been sent.',
|
|
614
|
+
booked: 'Your time is booked. You’ll get a confirmation by email shortly.',
|
|
615
|
+
undo: 'Undo',
|
|
616
|
+
seeBooking: 'See the booking',
|
|
617
|
+
close: 'Close',
|
|
618
|
+
preview: 'New version for review. Google doesn’t see it.',
|
|
619
|
+
links: ['See the current page', 'All new pages'],
|
|
620
|
+
call: 'Call',
|
|
621
|
+
cancelHeading: 'Cancellation',
|
|
622
|
+
cancelText: 'Cancel at the latest 24 hours before, else the time is paid.',
|
|
623
|
+
readMore: 'Read more',
|
|
624
|
+
},
|
|
625
|
+
/** The rest of the theme's navigation parts (NavigationBar.tsx, NavigationRail.tsx, Search.tsx, Toolbar.tsx in
|
|
626
|
+
* packages/editor/theme/ui/), under "UI components". */
|
|
627
|
+
navigationRest: {
|
|
628
|
+
title: 'Bars and search',
|
|
629
|
+
navigationBar:
|
|
630
|
+
'The main pages at the bottom of a phone: the icon over the name, the open one marked, perhaps with a number or a dot. On a tablet and wider the icon stands beside the name.',
|
|
631
|
+
navigationRail:
|
|
632
|
+
"The same pages down the side of a larger screen, narrow or wide. At the top the button that switches, and the screen's main action. Wide beside the content or over it, and perhaps gone entirely while it is narrow.",
|
|
633
|
+
content: "The page's content stands here.",
|
|
634
|
+
openRail: 'Open navigation',
|
|
635
|
+
search: 'The search field and what it opens: the field with the button back and the results that fit what is typed.',
|
|
636
|
+
toolbar:
|
|
637
|
+
'Actions in a row: the whole width at the bottom, as the bar at the bottom of a phone, or floating, on the surface or in the accent, across or vertical, also with a button beside it and folded into the button.',
|
|
638
|
+
name: 'Navigation',
|
|
639
|
+
destinations: ['Home', 'Search', 'Messages', 'Profile'],
|
|
640
|
+
sections: ['Start', 'You'],
|
|
641
|
+
menu: 'Change width',
|
|
642
|
+
compose: 'Write',
|
|
643
|
+
searchLabel: 'Search the site',
|
|
644
|
+
back: 'Back',
|
|
645
|
+
clear: 'Clear',
|
|
646
|
+
empty: 'Nothing fits the search.',
|
|
647
|
+
query: 'cou',
|
|
648
|
+
results: [
|
|
649
|
+
{ headline: 'Prices', supporting: 'Searched recently' },
|
|
650
|
+
{ headline: 'Opening hours', supporting: 'A page' },
|
|
651
|
+
],
|
|
652
|
+
actions: ['Edit', 'Save', 'Copy', 'Delete'],
|
|
653
|
+
colors: { standard: 'Surface', vibrant: 'Accent' },
|
|
654
|
+
vertical: 'Vertical',
|
|
655
|
+
bar: 'The bar at the bottom',
|
|
656
|
+
withFab: 'With a button',
|
|
657
|
+
collapsed: 'Folded up',
|
|
658
|
+
book: 'Book a time',
|
|
659
|
+
call: 'Call',
|
|
660
|
+
},
|
|
661
|
+
/** The theme's cards and lists (Card.tsx, List.tsx in packages/editor/theme/ui/), under "UI components". */
|
|
662
|
+
cardsAndLists: {
|
|
663
|
+
title: 'Cards and lists',
|
|
664
|
+
card: "A surface with what belongs together: outlined, elevated, or filled, also while it's dragged. The whole card can be a link.",
|
|
665
|
+
list: 'Items under each other on 1, 2, or 3 lines, with an icon, an avatar, a picture, a video, a choice, text, and an arrow, with or without lines between them, or each on its own surface. An item can do something when tapped, have actions beside it, and have its text side by side on a wide screen.',
|
|
666
|
+
kinds: { elevated: 'Elevated', filled: 'Filled', outlined: 'Outlined' },
|
|
667
|
+
link: 'Outlined, a link',
|
|
668
|
+
text: 'What is on the card.',
|
|
669
|
+
items: ['An item', 'An item that is a link', 'An item with an icon'],
|
|
670
|
+
supporting: 'Text under the item',
|
|
671
|
+
lists: {
|
|
672
|
+
lines: 'Lines',
|
|
673
|
+
leading: 'Leading',
|
|
674
|
+
controls: 'Choices',
|
|
675
|
+
states: 'Selected and disabled',
|
|
676
|
+
dividers: { 'full-width': 'Lines', inset: 'Lines from the text', 'middle-inset': 'Lines in the middle', none: 'Without lines' },
|
|
677
|
+
segmented: 'Each on its own surface',
|
|
678
|
+
overline: 'Over the headline',
|
|
679
|
+
long: 'A text under the item that is so long that it takes 2 lines before it is cut short.',
|
|
680
|
+
trailing: '12',
|
|
681
|
+
headlines: ['Icon', 'Avatar', 'Avatar with a picture', 'Image', 'Video'],
|
|
682
|
+
letter: 'S',
|
|
683
|
+
choices: ['Checkbox', 'Radio button', 'Switch', 'Checkbox after the text'],
|
|
684
|
+
selected: 'Selected',
|
|
685
|
+
disabled: 'Disabled',
|
|
686
|
+
more: 'Tapped, with actions and in columns',
|
|
687
|
+
tapped: 'Does something when tapped',
|
|
688
|
+
withActions: 'With an action beside it',
|
|
689
|
+
remove: 'Remove',
|
|
690
|
+
address: '/an-address/',
|
|
691
|
+
sendsTo: 'Beside it on a wide screen',
|
|
692
|
+
},
|
|
693
|
+
},
|
|
694
|
+
/** The theme's date and time pickers (PickerParts.tsx; DatePicker.tsx, TimePicker.tsx in packages/editor/theme/ui/). */
|
|
695
|
+
pickers: {
|
|
696
|
+
title: 'Date and time',
|
|
697
|
+
datePicker:
|
|
698
|
+
'A field for a date with a calendar: under the field, or in the middle of the screen, also for several days and to type the date. Today has a ring, the day picked is filled.',
|
|
699
|
+
timePicker:
|
|
700
|
+
'A field for a time with a clock dial and hours and minutes that can be typed: 24-hour or 12-hour with AM and PM, with the dial under or beside them.',
|
|
701
|
+
fields: 'The fields',
|
|
702
|
+
date: 'Date',
|
|
703
|
+
period: 'Period',
|
|
704
|
+
time: 'Time',
|
|
705
|
+
docked: 'Under the field',
|
|
706
|
+
dockedYears: 'Under the field, the years',
|
|
707
|
+
modal: 'In the middle of the screen',
|
|
708
|
+
modalYears: 'In the middle of the screen, the years',
|
|
709
|
+
range: 'Several days',
|
|
710
|
+
input: 'Typed',
|
|
711
|
+
hours: 'The hours',
|
|
712
|
+
minutes: 'The minutes',
|
|
713
|
+
wrong: 'Typed wrong',
|
|
714
|
+
twelveHours: '12-hour',
|
|
715
|
+
horizontal: 'The dial beside them',
|
|
716
|
+
},
|
|
717
|
+
},
|
|
718
|
+
};
|