@supportpages.io/wtfm 0.0.0-stage → 0.3.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 +201 -0
- package/NOTICE +23 -0
- package/README.md +392 -2
- package/dist/actions.d.ts +98 -0
- package/dist/actions.js +86 -0
- package/dist/actions.js.map +1 -0
- package/dist/agent-settings.d.ts +22 -0
- package/dist/agent-settings.js +35 -0
- package/dist/agent-settings.js.map +1 -0
- package/dist/api.d.ts +14 -0
- package/dist/api.js +159 -0
- package/dist/api.js.map +1 -0
- package/dist/article-link.d.ts +16 -0
- package/dist/article-link.js +25 -0
- package/dist/article-link.js.map +1 -0
- package/dist/artifacts.d.ts +45 -0
- package/dist/artifacts.js +144 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/brand.d.ts +4 -0
- package/dist/brand.js +9 -0
- package/dist/brand.js.map +1 -0
- package/dist/bridge.d.ts +2964 -0
- package/dist/bridge.js +1036 -0
- package/dist/bridge.js.map +1 -0
- package/dist/capacity.d.ts +5 -0
- package/dist/capacity.js +11 -0
- package/dist/capacity.js.map +1 -0
- package/dist/credentials.d.ts +13 -0
- package/dist/credentials.js +88 -0
- package/dist/credentials.js.map +1 -0
- package/dist/development-tls.d.ts +8 -0
- package/dist/development-tls.js +38 -0
- package/dist/development-tls.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.js +18 -0
- package/dist/errors.js.map +1 -0
- package/dist/export.d.ts +11 -0
- package/dist/export.js +91 -0
- package/dist/export.js.map +1 -0
- package/dist/hosted-operations.d.ts +108 -0
- package/dist/hosted-operations.js +120 -0
- package/dist/hosted-operations.js.map +1 -0
- package/dist/hosting-benefits.d.ts +66 -0
- package/dist/hosting-benefits.js +67 -0
- package/dist/hosting-benefits.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/local-inventory.d.ts +22 -0
- package/dist/local-inventory.js +59 -0
- package/dist/local-inventory.js.map +1 -0
- package/dist/local-setup.d.ts +208 -0
- package/dist/local-setup.js +140 -0
- package/dist/local-setup.js.map +1 -0
- package/dist/pairing.d.ts +71 -0
- package/dist/pairing.js +235 -0
- package/dist/pairing.js.map +1 -0
- package/dist/preferences.d.ts +18 -0
- package/dist/preferences.js +44 -0
- package/dist/preferences.js.map +1 -0
- package/dist/progress.d.ts +205 -0
- package/dist/progress.js +224 -0
- package/dist/progress.js.map +1 -0
- package/dist/reminders.d.ts +31 -0
- package/dist/reminders.js +73 -0
- package/dist/reminders.js.map +1 -0
- package/dist/replace-connection.d.ts +6 -0
- package/dist/replace-connection.js +77 -0
- package/dist/replace-connection.js.map +1 -0
- package/dist/repository-actions.d.ts +18 -0
- package/dist/repository-actions.js +9 -0
- package/dist/repository-actions.js.map +1 -0
- package/dist/repository-benefits.d.ts +96 -0
- package/dist/repository-benefits.js +64 -0
- package/dist/repository-benefits.js.map +1 -0
- package/dist/run-update.d.ts +17 -0
- package/dist/run-update.js +27 -0
- package/dist/run-update.js.map +1 -0
- package/dist/runs.d.ts +541 -0
- package/dist/runs.js +146 -0
- package/dist/runs.js.map +1 -0
- package/dist/runtime.d.ts +12 -0
- package/dist/runtime.js +58 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema.d.ts +277 -0
- package/dist/schema.js +66 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.js +298 -0
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +1714 -0
- package/dist/session.js +619 -0
- package/dist/session.js.map +1 -0
- package/dist/settings.d.ts +9 -0
- package/dist/settings.js +21 -0
- package/dist/settings.js.map +1 -0
- package/dist/sync.d.ts +495 -0
- package/dist/sync.js +191 -0
- package/dist/sync.js.map +1 -0
- package/dist/telemetry-scrub.d.ts +13 -0
- package/dist/telemetry-scrub.js +51 -0
- package/dist/telemetry-scrub.js.map +1 -0
- package/dist/telemetry.d.ts +73 -0
- package/dist/telemetry.js +173 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/walkthroughs.d.ts +224 -0
- package/dist/walkthroughs.js +109 -0
- package/dist/walkthroughs.js.map +1 -0
- package/dist/workspace.d.ts +14 -0
- package/dist/workspace.js +127 -0
- package/dist/workspace.js.map +1 -0
- package/dist/writer-agent.d.ts +21 -0
- package/dist/writer-agent.js +27 -0
- package/dist/writer-agent.js.map +1 -0
- package/dist/writer-entry.d.ts +171 -0
- package/dist/writer-entry.js +233 -0
- package/dist/writer-entry.js.map +1 -0
- package/dist/writing-style.d.ts +7 -0
- package/dist/writing-style.js +52 -0
- package/dist/writing-style.js.map +1 -0
- package/engine/SYNC.json +4 -0
- package/engine/VERSION +1 -0
- package/engine/detect-project/README.md +141 -0
- package/engine/detect-project/SKILL.md +1421 -0
- package/engine/detect-project/assets/desktop/desktop-frame.css +428 -0
- package/engine/detect-project/assets/game/game-frame.css +132 -0
- package/engine/detect-project/assets/macosui/LICENSE-puppertino.txt +21 -0
- package/engine/detect-project/assets/macosui/VERSIONS.txt +1 -0
- package/engine/detect-project/assets/macosui/fonts.css +15 -0
- package/engine/detect-project/assets/macosui/macos-frame.css +481 -0
- package/engine/detect-project/assets/macosui/puppertino.css +2153 -0
- package/engine/detect-project/assets/mobileui/LICENSE-fonts.txt +13 -0
- package/engine/detect-project/assets/mobileui/LICENSE-framework7.txt +52 -0
- package/engine/detect-project/assets/mobileui/VERSIONS.txt +6 -0
- package/engine/detect-project/assets/mobileui/device-frame.css +316 -0
- package/engine/detect-project/assets/mobileui/f7-color-theme.mjs +1345 -0
- package/engine/detect-project/assets/mobileui/f7-icons-names.json +1254 -0
- package/engine/detect-project/assets/mobileui/fonts.css +16 -0
- package/engine/detect-project/assets/mobileui/framework7-components.css +39 -0
- package/engine/detect-project/assets/mobileui/framework7-core.css +5245 -0
- package/engine/detect-project/assets/mobileui/icons.css +31 -0
- package/engine/detect-project/assets/mobileui/md3-defaults.css +89 -0
- package/engine/detect-project/assets/mobileui/platforms.json +46 -0
- package/engine/detect-project/assets/tailwind-fallback.css +1729 -0
- package/engine/detect-project/assets/webtui/LICENSE-webtui.txt +28 -0
- package/engine/detect-project/assets/webtui/VERSIONS.txt +7 -0
- package/engine/detect-project/assets/webtui/terminal-frame.css +195 -0
- package/engine/detect-project/assets/webtui/theme-catppuccin.css +1 -0
- package/engine/detect-project/assets/webtui/theme-everforest.css +1 -0
- package/engine/detect-project/assets/webtui/theme-gruvbox.css +1 -0
- package/engine/detect-project/assets/webtui/theme-nord.css +1 -0
- package/engine/detect-project/assets/webtui/theme-vitesse.css +1 -0
- package/engine/detect-project/assets/webtui/themes.json +37 -0
- package/engine/detect-project/assets/webtui/webtui-core.css +1 -0
- package/engine/detect-project/assets/win32ui/7css.css +2 -0
- package/engine/detect-project/assets/win32ui/LICENSE-7css.txt +21 -0
- package/engine/detect-project/assets/win32ui/VERSIONS.txt +1 -0
- package/engine/detect-project/assets/win32ui/win32-frame.css +278 -0
- package/engine/detect-project/package-lock.json +12 -0
- package/engine/detect-project/package.json +10 -0
- package/engine/detect-project/scripts/apply_runtime_profiles.js +313 -0
- package/engine/detect-project/scripts/check_css_health.js +412 -0
- package/engine/detect-project/scripts/check_project_map.js +150 -0
- package/engine/detect-project/scripts/check_runtime_coverage.js +311 -0
- package/engine/detect-project/scripts/check_runtime_recipe_quality.js +184 -0
- package/engine/detect-project/scripts/classify_app_type.sh +246 -0
- package/engine/detect-project/scripts/classify_surface.sh +95 -0
- package/engine/detect-project/scripts/classify_workspace.js +39 -0
- package/engine/detect-project/scripts/compile_css.sh +447 -0
- package/engine/detect-project/scripts/detect_static.js +645 -0
- package/engine/detect-project/scripts/detect_structure.js +187 -0
- package/engine/detect-project/scripts/include_census.js +451 -0
- package/engine/detect-project/scripts/json_get.js +142 -0
- package/engine/detect-project/scripts/merge_json.js +52 -0
- package/engine/detect-project/scripts/recommend_model_tier.js +252 -0
- package/engine/detect-project/scripts/resolve_route_chains.js +135 -0
- package/engine/detect-project/scripts/run_css_build.sh +40 -0
- package/engine/detect-project/scripts/sanitize_css.js +83 -0
- package/engine/detect-project/scripts/test_classify_surface.js +108 -0
- package/engine/detect-project/scripts/test_node_helpers.js +142 -0
- package/engine/detect-project/scripts/test_recommend_model_tier.js +119 -0
- package/engine/detect-project/scripts/test_resolve_route_chains.js +182 -0
- package/engine/detect-project/scripts/test_runtime_coverage.js +323 -0
- package/engine/detect-project/scripts/test_runtime_recipe_quality.js +187 -0
- package/engine/detect-project/scripts/theme_overrides.js +169 -0
- package/engine/detect-project/scripts/write_branding.js +129 -0
- package/engine/generate-illustrated-article/SKILL.md +461 -0
- package/engine/generate-illustrated-article/contracts/desktop.md +90 -0
- package/engine/generate-illustrated-article/contracts/game.md +38 -0
- package/engine/generate-illustrated-article/contracts/label-evidence.md +38 -0
- package/engine/generate-illustrated-article/contracts/macos.md +79 -0
- package/engine/generate-illustrated-article/contracts/mobile.md +40 -0
- package/engine/generate-illustrated-article/contracts/terminal.md +29 -0
- package/engine/generate-illustrated-article/contracts/win32.md +43 -0
- package/engine/generate-illustrated-article/package-lock.json +366 -0
- package/engine/generate-illustrated-article/package.json +15 -0
- package/engine/generate-illustrated-article/scripts/article_blocks.js +34 -0
- package/engine/generate-illustrated-article/scripts/check_article_json.js +105 -0
- package/engine/generate-illustrated-article/scripts/emit_walkthrough_signals.js +100 -0
- package/engine/generate-illustrated-article/scripts/extract_images.js +187 -0
- package/engine/generate-illustrated-article/scripts/generate_content_images.js +376 -0
- package/engine/generate-illustrated-article/scripts/include_census.js +451 -0
- package/engine/generate-illustrated-article/scripts/inject_assets.js +1691 -0
- package/engine/generate-illustrated-article/scripts/jit_mockup_css.js +191 -0
- package/engine/generate-illustrated-article/scripts/label_evidence.js +87 -0
- package/engine/generate-illustrated-article/scripts/lint_article_copy.js +252 -0
- package/engine/generate-illustrated-article/scripts/lint_mockup_fidelity.js +2403 -0
- package/engine/generate-illustrated-article/scripts/polish_tickets.js +1148 -0
- package/engine/generate-illustrated-article/scripts/related_repos.sh +52 -0
- package/engine/generate-illustrated-article/scripts/render_all.js +177 -0
- package/engine/generate-illustrated-article/scripts/render_mockup.js +665 -0
- package/engine/generate-illustrated-article/scripts/render_ready.js +164 -0
- package/engine/generate-illustrated-article/scripts/resolve_workspace.sh +86 -0
- package/engine/generate-illustrated-article/scripts/runtime_region_geometry.js +55 -0
- package/engine/generate-illustrated-article/scripts/source_paths.js +49 -0
- package/engine/generate-illustrated-article/scripts/test_control_visibility.js +30 -0
- package/engine/generate-illustrated-article/scripts/test_emit_walkthrough_signals.js +157 -0
- package/engine/generate-illustrated-article/scripts/test_generate_content_images.js +168 -0
- package/engine/generate-illustrated-article/scripts/test_include_census.js +126 -0
- package/engine/generate-illustrated-article/scripts/test_label_evidence.js +49 -0
- package/engine/generate-illustrated-article/scripts/test_lint_article_copy.js +138 -0
- package/engine/generate-illustrated-article/scripts/test_lint_mockup_fidelity.js +653 -0
- package/engine/generate-illustrated-article/scripts/test_node_ports.js +152 -0
- package/engine/generate-illustrated-article/scripts/test_polish_tickets.js +481 -0
- package/engine/generate-illustrated-article/scripts/test_related_repos.js +64 -0
- package/engine/generate-illustrated-article/scripts/test_render_ready.js +85 -0
- package/engine/generate-illustrated-article/scripts/test_source_paths.js +68 -0
- package/engine/generate-illustrated-article/scripts/trace_hook.js +79 -0
- package/engine/generate-illustrated-article/scripts/trace_hook.sh +4 -0
- package/engine/generate-illustrated-article/scripts/validate_html.js +114 -0
- package/engine/generate-illustrated-article/scripts/watermark.js +69 -0
- package/install.sh +14 -0
- package/package.json +57 -4
- package/scripts/auth.mjs +33 -0
- package/scripts/auto-update.mjs +7 -0
- package/scripts/build-plugin.mjs +58 -0
- package/scripts/build-release.mjs +94 -0
- package/scripts/check-release.mjs +40 -0
- package/scripts/check-runtime.mjs +10 -0
- package/scripts/cli.mjs +8 -0
- package/scripts/install.mjs +64 -0
- package/scripts/lib/agent-runner.mjs +181 -0
- package/scripts/lib/agent-settings.mjs +215 -0
- package/scripts/lib/article-skills.mjs +82 -0
- package/scripts/lib/auto-update.mjs +50 -0
- package/scripts/lib/brand.mjs +9 -0
- package/scripts/lib/browser.mjs +12 -0
- package/scripts/lib/claude-connection.mjs +33 -0
- package/scripts/lib/claude-permissions.mjs +47 -0
- package/scripts/lib/claude-plugin.mjs +15 -0
- package/scripts/lib/claude-writer.mjs +10 -0
- package/scripts/lib/cli-main.mjs +85 -0
- package/scripts/lib/cli.mjs +888 -0
- package/scripts/lib/codex-config.mjs +51 -0
- package/scripts/lib/codex-integration.mjs +61 -0
- package/scripts/lib/codex-skill.mjs +34 -0
- package/scripts/lib/harness-models.mjs +109 -0
- package/scripts/lib/install.mjs +269 -0
- package/scripts/lib/managed-writer.mjs +38 -0
- package/scripts/lib/planning.mjs +263 -0
- package/scripts/lib/prepare-update.mjs +85 -0
- package/scripts/lib/refresh-writers.mjs +12 -0
- package/scripts/lib/remove.mjs +167 -0
- package/scripts/lib/renderer.mjs +34 -0
- package/scripts/lib/terminal.mjs +252 -0
- package/scripts/lib/uninit.mjs +72 -0
- package/scripts/lib/update.mjs +55 -0
- package/scripts/lib/writer-recovery.mjs +35 -0
- package/scripts/lib/yolo.mjs +362 -0
- package/scripts/plugin-session.mjs +65 -0
- package/scripts/prepare-update.mjs +12 -0
- package/scripts/publish-release.mjs +92 -0
- package/scripts/skills/supportpages/SKILL.md +120 -0
- package/scripts/smoke-release.mjs +101 -0
- package/server.json +27 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
fonts.css embeds two variable fonts as data URIs:
|
|
2
|
+
|
|
3
|
+
- Inter (registered under the family name 'SF Pro Text' so Framework7's iOS
|
|
4
|
+
font stack resolves it offline) — Copyright The Inter Project Authors,
|
|
5
|
+
licensed under the SIL Open Font License 1.1
|
|
6
|
+
(https://github.com/rsms/inter/blob/master/LICENSE.txt).
|
|
7
|
+
Source: https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2
|
|
8
|
+
- Roboto — Copyright The Roboto Project Authors, licensed under the
|
|
9
|
+
Apache License 2.0 (https://github.com/googlefonts/roboto-classic).
|
|
10
|
+
Source: https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBHMdazQ.woff2
|
|
11
|
+
|
|
12
|
+
'SF Pro Text' is an alias used for font-stack resolution only; no Apple font
|
|
13
|
+
data is included in this bundle.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
framework7-core.css, framework7-components.css, md3-defaults.css and
|
|
2
|
+
f7-color-theme.mjs are built from the framework7 npm package
|
|
3
|
+
(https://github.com/framework7io/framework7), MIT. icons.css embeds the
|
|
4
|
+
framework7-icons font (https://github.com/framework7io/framework7-icons),
|
|
5
|
+
MIT. Upstream LICENSE files follow.
|
|
6
|
+
|
|
7
|
+
── framework7 LICENSE ──
|
|
8
|
+
The MIT License (MIT)
|
|
9
|
+
|
|
10
|
+
Copyright (c) 2014 Vladimir Kharlampidi
|
|
11
|
+
|
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
13
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
14
|
+
the Software without restriction, including without limitation the rights to
|
|
15
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
16
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
17
|
+
subject to the following conditions:
|
|
18
|
+
|
|
19
|
+
The above copyright notice and this permission notice shall be included in all
|
|
20
|
+
copies or substantial portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
24
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
25
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
26
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
27
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
28
|
+
|
|
29
|
+
── framework7-icons LICENSE ──
|
|
30
|
+
The MIT License (MIT)
|
|
31
|
+
|
|
32
|
+
Copyright (c) 2016 Vladimir Kharlampidi
|
|
33
|
+
|
|
34
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
35
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
36
|
+
the Software without restriction, including without limitation the rights to
|
|
37
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
38
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
39
|
+
subject to the following conditions:
|
|
40
|
+
|
|
41
|
+
The above copyright notice and this permission notice shall be included in all
|
|
42
|
+
copies or substantial portions of the Software.
|
|
43
|
+
|
|
44
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
45
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
46
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
47
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
48
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
49
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
50
|
+
|
|
51
|
+
device-frame.css is authored in this repository and is covered by this
|
|
52
|
+
repository's own license.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Built: 2026-07-02T16:14:45Z
|
|
2
|
+
framework7@8.3.4
|
|
3
|
+
framework7-icons@5.0.5
|
|
4
|
+
esbuild@0.21.5 (build-time only)
|
|
5
|
+
Inter: https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2 sha256=c940764593d0fe5d596be327ca7558855e018039fb78509aa21921fd3644c3e4
|
|
6
|
+
Roboto: https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBHMdazQ.woff2 sha256=0a44e0bb6ba5c8537e8814c148ef7755f1bce12112361231f595ecc584a18d7a
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/* device-frame.css — hand-authored phone chrome for mobile-mode mockups.
|
|
2
|
+
* Concatenated AFTER framework7-core/components/md3-defaults/fonts/icons by
|
|
3
|
+
* detect-project's mobile branch (brand-overrides.css comes last of all).
|
|
4
|
+
* Framework7 ships no @layer, so plain source order gives these rules
|
|
5
|
+
* precedence over core on any conflict.
|
|
6
|
+
*
|
|
7
|
+
* These classes ship in branding.css on purpose: the fidelity lint hard-fails
|
|
8
|
+
* classes that a mockup defines in its own <style> block, so the frame must be
|
|
9
|
+
* pre-defined here and mockups may only USE these class names.
|
|
10
|
+
*
|
|
11
|
+
* The load-bearing bits:
|
|
12
|
+
* - .device-stage's 48px padding pairs with the ios/android viewport presets
|
|
13
|
+
* in render_mockup.js (preset width = device outer width + 96) so the
|
|
14
|
+
* content crop yields symmetric 48px margins.
|
|
15
|
+
* - .device--ios/.device--android set --f7-safe-area-top/bottom; Framework7's
|
|
16
|
+
* own navbar/toolbar/page-content offsets consume those vars, so F7 chrome
|
|
17
|
+
* clears the statusbar and home indicator exactly like on a real device.
|
|
18
|
+
* - .device-screen is a fixed-size, overflow:hidden canvas: it satisfies
|
|
19
|
+
* F7's html/body/.framework7-root height:100% chain and does the clipping
|
|
20
|
+
* for screens whose content is realistically taller than one viewport.
|
|
21
|
+
* - Statusbar glyphs (signal/wifi/battery) are pure CSS via currentColor —
|
|
22
|
+
* never emoji (the fidelity lint hard-fails emoji code points).
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/* F7's JS sets --f7-ripple-transform per-tap at runtime; core's .ripple-wave
|
|
26
|
+
* consumes it with no fallback, which trips the CSS-health undefined-var check
|
|
27
|
+
* (check_css_health.js / lint check 8b). Static mockups never contain a live
|
|
28
|
+
* ripple, so a neutral default is both correct and silences the finding. */
|
|
29
|
+
:root {
|
|
30
|
+
--f7-ripple-transform: translate3d(0, 0, 0) scale(1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.device-stage {
|
|
34
|
+
margin: 0;
|
|
35
|
+
/* height:auto overrides F7 core's body{height:100%} so the body hugs the
|
|
36
|
+
* device and the renderer's content crop lands at device bottom + 48px.
|
|
37
|
+
* No bottom padding for the same reason: the crop adds its own 48px, and
|
|
38
|
+
* the body background propagates to the canvas, so the margin paints. */
|
|
39
|
+
height: auto;
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
padding: 48px 48px 0;
|
|
42
|
+
display: flex;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
align-items: flex-start;
|
|
45
|
+
background: #eef0f3;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.device {
|
|
49
|
+
position: relative;
|
|
50
|
+
box-sizing: content-box;
|
|
51
|
+
flex-shrink: 0;
|
|
52
|
+
background: #1a1a1c;
|
|
53
|
+
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(0, 0, 0, 0.06);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.device--ios {
|
|
57
|
+
padding: 12px;
|
|
58
|
+
border-radius: 56px;
|
|
59
|
+
--f7-safe-area-top: 59px;
|
|
60
|
+
--f7-safe-area-bottom: 34px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.device--android {
|
|
64
|
+
padding: 10px;
|
|
65
|
+
border-radius: 34px;
|
|
66
|
+
--f7-safe-area-top: 28px;
|
|
67
|
+
--f7-safe-area-bottom: 24px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.device-screen {
|
|
71
|
+
position: relative;
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
background: var(--f7-page-bg-color, #fff);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.device--ios .device-screen {
|
|
77
|
+
width: 393px;
|
|
78
|
+
height: 852px;
|
|
79
|
+
border-radius: 44px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.device--android .device-screen {
|
|
83
|
+
width: 412px;
|
|
84
|
+
height: 915px;
|
|
85
|
+
border-radius: 24px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Real F7 centers iOS navbar titles by measuring with JS; the static render
|
|
89
|
+
* has no JS, so give the title the full track and center it. MD titles are
|
|
90
|
+
* left-aligned by design and need nothing. */
|
|
91
|
+
.ios .navbar .title {
|
|
92
|
+
flex: 1;
|
|
93
|
+
text-align: var(--f7-navbar-title-text-align, center);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* ── Statusbar (author INSIDE .device-screen, before the app content) ────── */
|
|
97
|
+
|
|
98
|
+
.device-statusbar {
|
|
99
|
+
position: absolute;
|
|
100
|
+
top: 0;
|
|
101
|
+
left: 0;
|
|
102
|
+
right: 0;
|
|
103
|
+
z-index: 20000; /* above F7 modals (~13500) — like a real phone */
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
justify-content: space-between;
|
|
107
|
+
pointer-events: none;
|
|
108
|
+
color: #0a0a0a;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.device--ios .device-statusbar {
|
|
112
|
+
height: 59px;
|
|
113
|
+
padding: 6px 36px 12px;
|
|
114
|
+
font-size: 16px;
|
|
115
|
+
font-weight: 600;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.device--android .device-statusbar {
|
|
119
|
+
height: 28px;
|
|
120
|
+
padding: 0 18px;
|
|
121
|
+
font-size: 14px;
|
|
122
|
+
font-weight: 500;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.device-statusbar-time {
|
|
126
|
+
letter-spacing: -0.01em;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.device-statusbar-icons {
|
|
130
|
+
display: flex;
|
|
131
|
+
align-items: center;
|
|
132
|
+
gap: 6px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Four bottom-aligned bars, drawn with layered currentColor gradients. */
|
|
136
|
+
.device-signal {
|
|
137
|
+
width: 19px;
|
|
138
|
+
height: 12px;
|
|
139
|
+
background-image: linear-gradient(currentColor, currentColor),
|
|
140
|
+
linear-gradient(currentColor, currentColor),
|
|
141
|
+
linear-gradient(currentColor, currentColor),
|
|
142
|
+
linear-gradient(currentColor, currentColor);
|
|
143
|
+
background-repeat: no-repeat;
|
|
144
|
+
background-size: 3px 5px, 3px 7px, 3px 9px, 3px 12px;
|
|
145
|
+
background-position: 0 100%, 5px 100%, 10px 100%, 15px 100%;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* Two concentric top-border arcs + a dot via radial-gradient. */
|
|
149
|
+
.device-wifi {
|
|
150
|
+
position: relative;
|
|
151
|
+
width: 18px;
|
|
152
|
+
height: 13px;
|
|
153
|
+
overflow: hidden;
|
|
154
|
+
background: radial-gradient(circle at 50% 80%, currentColor 1.8px, transparent 2.2px);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.device-wifi::before,
|
|
158
|
+
.device-wifi::after {
|
|
159
|
+
content: '';
|
|
160
|
+
position: absolute;
|
|
161
|
+
left: 50%;
|
|
162
|
+
transform: translateX(-50%);
|
|
163
|
+
border: 2px solid transparent;
|
|
164
|
+
border-top-color: currentColor;
|
|
165
|
+
border-radius: 50%;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.device-wifi::before {
|
|
169
|
+
width: 17px;
|
|
170
|
+
height: 17px;
|
|
171
|
+
top: 0;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.device-wifi::after {
|
|
175
|
+
width: 9px;
|
|
176
|
+
height: 9px;
|
|
177
|
+
top: 4px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* Bordered shell, charge fill (::before), terminal nub (::after). */
|
|
181
|
+
.device-battery {
|
|
182
|
+
position: relative;
|
|
183
|
+
width: 25px;
|
|
184
|
+
height: 12px;
|
|
185
|
+
border: 1px solid;
|
|
186
|
+
border-radius: 4px;
|
|
187
|
+
opacity: 0.95;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.device-battery::before {
|
|
191
|
+
content: '';
|
|
192
|
+
position: absolute;
|
|
193
|
+
inset: 2px;
|
|
194
|
+
width: 65%;
|
|
195
|
+
background: currentColor;
|
|
196
|
+
border-radius: 1.5px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.device-battery::after {
|
|
200
|
+
content: '';
|
|
201
|
+
position: absolute;
|
|
202
|
+
right: -4px;
|
|
203
|
+
top: 50%;
|
|
204
|
+
transform: translateY(-50%);
|
|
205
|
+
width: 2px;
|
|
206
|
+
height: 4px;
|
|
207
|
+
background: currentColor;
|
|
208
|
+
border-radius: 0 1px 1px 0;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* ── Cutouts + indicators (also INSIDE .device-screen) ───────────────────── */
|
|
212
|
+
|
|
213
|
+
.device-dynamic-island {
|
|
214
|
+
position: absolute;
|
|
215
|
+
top: 11px;
|
|
216
|
+
left: 50%;
|
|
217
|
+
transform: translateX(-50%);
|
|
218
|
+
width: 122px;
|
|
219
|
+
height: 36px;
|
|
220
|
+
border-radius: 18px;
|
|
221
|
+
background: #000;
|
|
222
|
+
z-index: 20001;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* Legacy-iOS variant, for completeness. */
|
|
226
|
+
.device-notch {
|
|
227
|
+
position: absolute;
|
|
228
|
+
top: 0;
|
|
229
|
+
left: 50%;
|
|
230
|
+
transform: translateX(-50%);
|
|
231
|
+
width: 210px;
|
|
232
|
+
height: 30px;
|
|
233
|
+
border-radius: 0 0 20px 20px;
|
|
234
|
+
background: #000;
|
|
235
|
+
z-index: 20001;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.device-camera-dot {
|
|
239
|
+
position: absolute;
|
|
240
|
+
top: 8px;
|
|
241
|
+
left: 50%;
|
|
242
|
+
transform: translateX(-50%);
|
|
243
|
+
width: 12px;
|
|
244
|
+
height: 12px;
|
|
245
|
+
border-radius: 50%;
|
|
246
|
+
background: #111;
|
|
247
|
+
z-index: 20001;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.device-home-indicator {
|
|
251
|
+
position: absolute;
|
|
252
|
+
bottom: 8px;
|
|
253
|
+
left: 50%;
|
|
254
|
+
transform: translateX(-50%);
|
|
255
|
+
width: 134px;
|
|
256
|
+
height: 5px;
|
|
257
|
+
border-radius: 3px;
|
|
258
|
+
background: rgba(0, 0, 0, 0.85);
|
|
259
|
+
z-index: 20000;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.device-gesture-pill {
|
|
263
|
+
position: absolute;
|
|
264
|
+
bottom: 8px;
|
|
265
|
+
left: 50%;
|
|
266
|
+
transform: translateX(-50%);
|
|
267
|
+
width: 108px;
|
|
268
|
+
height: 4px;
|
|
269
|
+
border-radius: 2px;
|
|
270
|
+
background: rgba(32, 33, 36, 0.75);
|
|
271
|
+
z-index: 20000;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/* Override-proof top offset with a safe-area floor. Two observed failure
|
|
275
|
+
* modes (Bluesky, LocalSend benchmarks): (1) models write style="padding:16px"
|
|
276
|
+
* on .page-content and the SHORTHAND wipes F7's computed navbar padding-top;
|
|
277
|
+
* (2) on navbar-less pages F7 sets no offset at all, so content renders under
|
|
278
|
+
* the statusbar — a real phone's safe area never allows that. Reassert F7's
|
|
279
|
+
* own calc with a safe-area minimum. Scoped to .page > .page-content so
|
|
280
|
+
* overlay content (sheets/dialogs) is untouched; inline padding-left/right/
|
|
281
|
+
* bottom keep working. */
|
|
282
|
+
.device-screen .page > .page-content {
|
|
283
|
+
padding-top: max(
|
|
284
|
+
calc(
|
|
285
|
+
var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) +
|
|
286
|
+
var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) +
|
|
287
|
+
var(--f7-page-content-extra-padding-top, 0px)
|
|
288
|
+
),
|
|
289
|
+
var(--f7-safe-area-top, 0px)
|
|
290
|
+
) !important;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/* The render viewport (513/528px) is wider than F7's 496px phone breakpoint,
|
|
294
|
+
* which would give action sheets their 480px tablet width — wider than the
|
|
295
|
+
* device screen itself. Re-pin overlays to phone geometry inside the frame
|
|
296
|
+
* (this selector's specificity beats the media-wrapped one, so the vendored
|
|
297
|
+
* files stay verbatim). */
|
|
298
|
+
.device-screen .actions-modal {
|
|
299
|
+
width: 100%;
|
|
300
|
+
left: 0;
|
|
301
|
+
margin-left: 0;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/* Dark-theme staging (pairs with F7's .dark root class; unused while mobile
|
|
305
|
+
* mode is light-only, staged for the dark-theme follow-up). */
|
|
306
|
+
.device--dark .device-statusbar {
|
|
307
|
+
color: #f5f5f7;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.device--dark .device-home-indicator {
|
|
311
|
+
background: rgba(255, 255, 255, 0.85);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.device--dark .device-gesture-pill {
|
|
315
|
+
background: rgba(232, 234, 237, 0.75);
|
|
316
|
+
}
|