mirror of
git://f0xx.org/android_cast
synced 2026-07-29 01:38:41 +03:00
font struggling
This commit is contained in:
57
build.config.yml
Normal file
57
build.config.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
# Android Cast build pipeline (CircleCI-compatible shape)
|
||||
version: 2.1
|
||||
|
||||
parameters:
|
||||
git_ref:
|
||||
type: string
|
||||
default: next
|
||||
gradle_task:
|
||||
type: string
|
||||
default: assembleDebug
|
||||
run_tests:
|
||||
type: boolean
|
||||
default: true
|
||||
run_native:
|
||||
type: boolean
|
||||
default: true
|
||||
run_apk:
|
||||
type: boolean
|
||||
default: true
|
||||
auto_ota:
|
||||
type: boolean
|
||||
default: false
|
||||
ota_channel:
|
||||
type: string
|
||||
default: staging
|
||||
|
||||
jobs:
|
||||
android-build:
|
||||
docker:
|
||||
- image: androidcast-ci:00.01.00.1000
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Native codecs
|
||||
command: |
|
||||
if [ "<< pipeline.parameters.run_native >>" = "true" ]; then
|
||||
./scripts/ci-build-and-publish-ota.sh
|
||||
fi
|
||||
- run:
|
||||
name: Gradle + tests
|
||||
command: |
|
||||
export GRADLE_TASK="<< pipeline.parameters.gradle_task >>"
|
||||
export RUN_UNIT_TESTS="<< pipeline.parameters.run_tests >>"
|
||||
export RUN_APK="<< pipeline.parameters.run_apk >>"
|
||||
export AUTO_OTA="<< pipeline.parameters.auto_ota >>"
|
||||
export OTA_CHANNEL="<< pipeline.parameters.ota_channel >>"
|
||||
./scripts/ci-build-and-publish-ota.sh
|
||||
- store_artifacts:
|
||||
path: out/builds
|
||||
|
||||
workflows:
|
||||
build:
|
||||
jobs:
|
||||
- android-build:
|
||||
filters:
|
||||
branches:
|
||||
only: [next, master]
|
||||
196
examples/app_hub/assets/build_ttf_lcd_alphabet.py
Normal file
196
examples/app_hub/assets/build_ttf_lcd_alphabet.py
Normal file
@@ -0,0 +1,196 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Vectorize LCD TTF fonts into SVG symbol sets for the hub clock widget."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import re
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from fontTools.pens.boundsPen import BoundsPen
|
||||
from fontTools.pens.svgPathPen import SVGPathPen
|
||||
from fontTools.ttLib import TTFont
|
||||
|
||||
CHARS = (
|
||||
[" "]
|
||||
+ [str(d) for d in range(10)]
|
||||
+ [chr(c) for c in range(ord("A"), ord("Z") + 1)]
|
||||
+ [":", "+", "-", "/", "."]
|
||||
)
|
||||
|
||||
TARGET_HEIGHT = 32.0
|
||||
PADDING_X = 1.5
|
||||
PADDING_Y = 1.0
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class FontSpec:
|
||||
ttf: str
|
||||
prefix: str
|
||||
outfile: str
|
||||
comment: str
|
||||
|
||||
|
||||
FONTS: dict[str, FontSpec] = {
|
||||
"dseg14-classic": FontSpec(
|
||||
ttf="DSEG14Classic-Regular.ttf",
|
||||
prefix="d14c",
|
||||
outfile="dseg14-classic-alphabet.svg",
|
||||
comment="DSEG14 Classic (OFL) — vectorized for hub clock",
|
||||
),
|
||||
"dseg14-modern": FontSpec(
|
||||
ttf="DSEG14Modern-Regular.ttf",
|
||||
prefix="d14m",
|
||||
outfile="dseg14-modern-alphabet.svg",
|
||||
comment="DSEG14 Modern (OFL) — vectorized for hub clock",
|
||||
),
|
||||
"ds-digital": FontSpec(
|
||||
ttf="DS-Digital.ttf",
|
||||
prefix="dsd",
|
||||
outfile="ds-digital-alphabet.svg",
|
||||
comment="DS-Digital by Dusit Supasawat (shareware) — vectorized for hub clock",
|
||||
),
|
||||
"digital-7-mono-italic": FontSpec(
|
||||
ttf="digital-7-mono-italic.ttf",
|
||||
prefix="d7mi",
|
||||
outfile="digital-7-mono-italic-alphabet.svg",
|
||||
comment="Digital-7 Mono Italic by Style-7 (personal use) — vectorized for hub clock",
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def symbol_id(prefix: str, ch: str) -> str:
|
||||
if ch == " ":
|
||||
return f"{prefix}-space"
|
||||
if ch == ":":
|
||||
return f"{prefix}-colon"
|
||||
if ch == "+":
|
||||
return f"{prefix}-plus"
|
||||
if ch == "-":
|
||||
return f"{prefix}-minus"
|
||||
if ch == "/":
|
||||
return f"{prefix}-slash"
|
||||
if ch == ".":
|
||||
return f"{prefix}-dot"
|
||||
if len(ch) == 1 and "0" <= ch <= "9":
|
||||
return f"{prefix}-{ch}"
|
||||
if len(ch) == 1 and "A" <= ch <= "Z":
|
||||
return f"{prefix}-{ch}"
|
||||
return f"{prefix}-u{ord(ch):04x}"
|
||||
|
||||
|
||||
def glyph_path(font: TTFont, ch: str) -> tuple[str, float, float, float, float] | None:
|
||||
cmap = font.getBestCmap()
|
||||
code = ord(ch)
|
||||
if code not in cmap:
|
||||
return None
|
||||
glyph_name = cmap[code]
|
||||
glyph_set = font.getGlyphSet()
|
||||
if glyph_name not in glyph_set:
|
||||
return None
|
||||
glyph = glyph_set[glyph_name]
|
||||
|
||||
pen = SVGPathPen(glyph_set)
|
||||
bounds_pen = BoundsPen(glyph_set)
|
||||
glyph.draw(bounds_pen)
|
||||
if bounds_pen.bounds is None:
|
||||
return None
|
||||
x_min, y_min, x_max, y_max = bounds_pen.bounds
|
||||
glyph.draw(pen)
|
||||
path = pen.getCommands()
|
||||
if not path.strip():
|
||||
return None
|
||||
return path, x_min, y_min, x_max, y_max
|
||||
|
||||
|
||||
def char_width(font: TTFont, ch: str, fallback: float) -> float:
|
||||
cmap = font.getBestCmap()
|
||||
code = ord(ch)
|
||||
if code not in cmap:
|
||||
return fallback
|
||||
glyph_name = cmap[code]
|
||||
if glyph_name in font["hmtx"].metrics:
|
||||
adv, _ = font["hmtx"].metrics[glyph_name]
|
||||
return float(adv)
|
||||
return fallback
|
||||
|
||||
|
||||
def build_alphabet(spec: FontSpec, fonts_dir: Path, out_dir: Path) -> None:
|
||||
ttf_path = fonts_dir / spec.ttf
|
||||
font = TTFont(ttf_path)
|
||||
units_per_em = float(font["head"].unitsPerEm or 1000)
|
||||
|
||||
lines = [
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" '
|
||||
'style="position:absolute;width:0;height:0;overflow:hidden">',
|
||||
f" <!-- {spec.comment} -->",
|
||||
" <defs>",
|
||||
]
|
||||
|
||||
for ch in CHARS:
|
||||
sid = symbol_id(spec.prefix, ch)
|
||||
if ch == " ":
|
||||
width = max(8.0, TARGET_HEIGHT * 0.35)
|
||||
lines.append(
|
||||
f' <symbol id="{sid}" viewBox="0 0 {width:.2f} {TARGET_HEIGHT:.2f}"></symbol>'
|
||||
)
|
||||
continue
|
||||
|
||||
parsed = glyph_path(font, ch)
|
||||
if parsed is None and ch.isalpha():
|
||||
parsed = glyph_path(font, ch.lower())
|
||||
if parsed is None:
|
||||
width = char_width(font, "0", 20.0) * (TARGET_HEIGHT / units_per_em)
|
||||
lines.append(
|
||||
f' <symbol id="{sid}" viewBox="0 0 {width:.2f} {TARGET_HEIGHT:.2f}"></symbol>'
|
||||
)
|
||||
continue
|
||||
|
||||
path, x_min, y_min, x_max, y_max = parsed
|
||||
glyph_w = max(x_max - x_min, 1.0)
|
||||
glyph_h = max(y_max - y_min, 1.0)
|
||||
scale = (TARGET_HEIGHT - PADDING_Y * 2) / glyph_h
|
||||
tx = PADDING_X - x_min * scale
|
||||
ty = TARGET_HEIGHT - PADDING_Y - y_max * scale
|
||||
width = max(glyph_w * scale + PADDING_X * 2, char_width(font, ch, glyph_w) * scale * 0.55)
|
||||
|
||||
# Flip Y: font coords are bottom-up; SVG is top-down.
|
||||
transform = f"translate({tx:.3f} {ty:.3f}) scale({scale:.6f} {scale:.6f})"
|
||||
lines.append(f' <symbol id="{sid}" viewBox="0 0 {width:.2f} {TARGET_HEIGHT:.2f}">')
|
||||
lines.append(f' <path class="lcd-active" d="{path}" transform="{transform}" />')
|
||||
lines.append(" </symbol>")
|
||||
|
||||
lines.extend([" </defs>", "</svg>", ""])
|
||||
out_path = out_dir / spec.outfile
|
||||
out_path.write_text("\n".join(lines), encoding="utf-8")
|
||||
print(f"Wrote {out_path}")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument(
|
||||
"--fonts-dir",
|
||||
type=Path,
|
||||
default=Path(__file__).resolve().parent / "fonts",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--out-dir",
|
||||
type=Path,
|
||||
default=Path(__file__).resolve().parent,
|
||||
)
|
||||
parser.add_argument(
|
||||
"--only",
|
||||
choices=sorted(FONTS.keys()),
|
||||
action="append",
|
||||
help="Build one font (repeatable). Default: all.",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
selected = args.only or sorted(FONTS.keys())
|
||||
for key in selected:
|
||||
build_alphabet(FONTS[key], args.fonts_dir, args.out_dir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
129
examples/app_hub/assets/digital-7-mono-italic-alphabet.svg
Normal file
129
examples/app_hub/assets/digital-7-mono-italic-alphabet.svg
Normal file
@@ -0,0 +1,129 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden">
|
||||
<!-- Digital-7 Mono Italic by Style-7 (personal use) — vectorized for hub clock -->
|
||||
<defs>
|
||||
<symbol id="d7mi-space" viewBox="0 0 11.20 32.00"></symbol>
|
||||
<symbol id="d7mi-0" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-1" viewBox="0 0 11.92 32.00">
|
||||
<path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(-13.458 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-2" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM391 0H61Q22 10 16 50L99 80H369ZM18 70 45 330 67 350 121 290 101 100ZM398 640H159L82 670Q96 710 137 720H436ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-3" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM398 640H159L82 670Q96 710 137 720H436ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-4" viewBox="0 0 21.71 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM159 650 136 430 69 370 52 390 82 680ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(-0.667 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-5" viewBox="0 0 21.75 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-6" viewBox="0 0 21.75 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-7" viewBox="0 0 21.71 32.00">
|
||||
<path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(-0.667 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-8" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-9" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-A" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-B" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM18 70 45 330 67 350 121 290 101 100ZM398 640H158L81 670L86 720H406L442 680ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 451 670 496 620 472 390 449 370ZM447 350 465 330 441 100 386 50 359 80 381 290ZM374 40 330 0H11L16 50L99 80H338Z" transform="translate(1.042 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-C" viewBox="0 0 21.75 32.00">
|
||||
<path class="lcd-active" d="M391 0H61Q22 10 16 50L99 80H369ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-D" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M18 70 45 330 67 350 121 290 101 100ZM398 640H158L81 670L86 720H406L442 680ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 451 670 496 620 472 390 449 370ZM447 350 465 330 441 100 386 50 359 80 381 290ZM374 40 330 0H11L16 50L99 80H338Z" transform="translate(1.042 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-E" viewBox="0 0 21.75 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM391 0H61Q22 10 16 50L99 80H369ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-F" viewBox="0 0 21.75 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-G" viewBox="0 0 21.75 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H294L258 360L303 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-H" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM68 360 51 380 80 660Q94 700 135 710L157 630L135 420Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-I" viewBox="0 0 12.08 32.00">
|
||||
<path class="lcd-active" d="M216 430 238 640 276 720Q315 710 321 670L291 390L269 370ZM268 360 286 340 257 60Q242 20 201 10L180 90L202 300Z" transform="translate(-6.106 0.577) scale(0.042254 0.042254)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-J" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-K" viewBox="0 0 23.25 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM161 480 426 720Q486 720 502 680L215 420H155ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM69 370 52 390 81 670Q95 710 136 720L158 640L136 430Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-L" viewBox="0 0 20.50 32.00">
|
||||
<path class="lcd-active" d="M121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM119 80H359L436 50Q422 10 381 0H81ZM69 370 52 390 81 670Q95 710 136 720L158 640L136 430Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-M" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M302 390 257 350 222 390 246 620H326ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-N" viewBox="0 0 23.45 32.00">
|
||||
<path class="lcd-active" d="M121 290 99 80 61 0Q22 10 16 50L46 330L68 350ZM375 420H305L171 570L177 630H237L380 470ZM448 350 466 330 436 50Q422 10 381 0L359 80L381 290ZM395 420 417 630 455 710Q494 700 500 660L471 380L449 360ZM69 360 51 380 80 660Q94 700 135 710L157 630L135 420Z" transform="translate(0.824 1.000) scale(0.042254 0.042254)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-O" viewBox="0 0 22.79 32.00">
|
||||
<path class="lcd-active" d="M398 640H178L142 680L186 720H406L442 680ZM396 430 418 640 451 670 496 620 472 390 449 370ZM447 350 465 330 441 100 386 50 359 80 381 290ZM69 370 52 390 76 620 131 670 158 640 136 430ZM375 40 331 0H111L75 40L119 80H339ZM121 290 99 80 66 50 21 100 45 330 67 350Z" transform="translate(0.625 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-P" viewBox="0 0 23.00 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM398 640H158L81 670L86 720H406L442 680ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 451 670 496 620 472 390 449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-Q" viewBox="0 0 22.93 32.00">
|
||||
<path class="lcd-active" d="M448 350 466 330 440 90 369 170 381 290ZM341 0H61Q22 10 16 50L99 80H269ZM18 70 46 330 68 350 121 290 101 100ZM398 640H159L82 670Q96 710 138 720H437ZM156 620 136 430 70 370 52 390 79 650ZM396 430 418 640 457 720Q495 710 501 670L472 390L450 370ZM270 180H330L446 50L440 -10H380L263 120Z" transform="translate(0.842 1.411) scale(0.041096 0.041096)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-R" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM142 300H202L435 40Q411 0 351 0L136 240ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM398 640H159L82 670Q96 710 137 720H436ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-S" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM156 620 136 430 69 370 52 390 79 650ZM159 640 82 670Q96 710 137 720H456Q495 710 501 670L418 640Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-T" viewBox="0 0 20.46 32.00">
|
||||
<path class="lcd-active" d="M257 350 293 310 266 50Q252 10 211 0L189 80L213 310ZM224 410 246 620H326L304 410L259 370ZM159 640 82 670Q96 710 137 720H456Q495 710 501 670L418 640Z" transform="translate(-1.917 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-U" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM68 360 51 380 80 660Q94 700 135 710L157 630L135 420Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-V" viewBox="0 0 22.52 32.00">
|
||||
<path class="lcd-active" d="M69 360 51 380 80 660Q94 700 135 710L157 630L135 420ZM395 420 417 630 455 710Q494 700 500 660L471 380L449 360ZM223 120 211 0 38 260 44 320 67 340 120 280ZM380 280 447 340 464 320 458 260 231 0 243 120Z" transform="translate(-0.106 1.000) scale(0.042254 0.042254)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-W" viewBox="0 0 23.17 32.00">
|
||||
<path class="lcd-active" d="M271 100H191L215 330L259 370L295 330ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM361 0H62Q23 10 17 50L100 80H339ZM18 70 45 330 67 350 121 290 101 100ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM69 370 52 390 81 670Q95 710 136 720L158 640L136 430Z" transform="translate(0.792 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-X" viewBox="0 0 23.29 32.00">
|
||||
<path class="lcd-active" d="M267 350H312L434 40Q410 0 350 0L256 242ZM282 478 426 720Q486 720 502 680L315 370H270ZM235 242 91 0Q31 0 15 40L201 350H246ZM249 370H204L83 680Q107 720 167 720L261 477Z" transform="translate(0.875 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-Y" viewBox="0 0 23.21 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM159 650 136 430 69 370 52 390 82 680ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-Z" viewBox="0 0 23.29 32.00">
|
||||
<path class="lcd-active" d="M391 0H111L159 80H369ZM358 640H159L82 670Q96 710 137 720H406ZM266 430 426 720Q486 720 502 680L319 370H259ZM261 290 91 0Q31 0 15 40L207 350H267Z" transform="translate(0.875 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-colon" viewBox="0 0 21.45 32.00">
|
||||
<path class="lcd-active" d="M277 160H197L206 240H286ZM311 480H231L239 560H319Z" transform="translate(-13.275 -11.000) scale(0.075000 0.075000)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-plus" viewBox="0 0 33.00 32.00">
|
||||
<path class="lcd-active" d="M223 400 232 490 276 530 312 490 303 400H393L428 360L384 320H294L285 230L241 190L205 230L214 320H124L88 360L133 400Z" transform="translate(-6.265 -15.765) scale(0.088235 0.088235)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-minus" viewBox="0 0 130.50 32.00">
|
||||
<path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400Z" transform="translate(-31.500 -119.000) scale(0.375000 0.375000)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-slash" viewBox="0 0 23.29 32.00">
|
||||
<path class="lcd-active" d="M282 478 426 720Q486 720 502 680L315 370H270ZM235 242 91 0Q31 0 15 40L201 350H246Z" transform="translate(0.875 1.000) scale(0.041667 0.041667)" />
|
||||
</symbol>
|
||||
<symbol id="d7mi-dot" viewBox="0 0 107.25 32.00">
|
||||
<path class="lcd-active" d="M277 0H197L206 80H286Z" transform="translate(-72.375 1.000) scale(0.375000 0.375000)" />
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
129
examples/app_hub/assets/ds-digital-alphabet.svg
Normal file
129
examples/app_hub/assets/ds-digital-alphabet.svg
Normal file
@@ -0,0 +1,129 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden">
|
||||
<!-- DS-Digital by Dusit Supasawat (shareware) — vectorized for hub clock -->
|
||||
<defs>
|
||||
<symbol id="dsd-space" viewBox="0 0 11.20 32.00"></symbol>
|
||||
<symbol id="dsd-0" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V611L479 686ZM465 700 391 625H148L74 700ZM135 411 88 364 60 392V686L135 611ZM479 14 405 89V289L452 336L479 307ZM465 0H74L148 75H391ZM135 89 60 14V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-1" viewBox="0 0 7.05 32.00">
|
||||
<path class="lcd-active" d="M181 307V14L106 89V289L153 336ZM106 411V611L181 686V392L153 364Z" transform="translate(-3.232 0.375) scale(0.044643 0.044643)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-2" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM135 289V89L60 14V307L88 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-3" viewBox="0 0 20.36 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.671 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-4" viewBox="0 0 21.71 32.00">
|
||||
<path class="lcd-active" d="M60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.179 0.375) scale(0.044643 0.044643)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-5" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-6" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-7" viewBox="0 0 20.71 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364Z" transform="translate(-1.736 0.388) scale(0.043732 0.043732)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-8" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-9" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-A" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM135 289V75L60 0V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-B" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 89 442 51 405 89V289L452 336L479 307ZM479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM428 37 391 0H74L148 75H391ZM135 411 88 364 60 392V686L135 611ZM135 89 60 14V307L88 336L135 289ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-C" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 700 405 625H148L111 663L148 700ZM135 411 88 364 60 392V611L97 649L135 611ZM479 0H148L111 37L148 75H405ZM135 89 97 51 60 89V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-D" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 89 442 51 405 89V289L452 336L479 307ZM479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM428 37 391 0H74L148 75H391ZM135 411 88 364 60 392V686L135 611ZM135 89 60 14V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-E" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 700 405 625H148L74 700ZM479 0H74L148 75H405ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-F" viewBox="0 0 21.32 32.00">
|
||||
<path class="lcd-active" d="M479 700 405 625H148L74 700ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.124 0.388) scale(0.043732 0.043732)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-G" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L111 663L148 700ZM438 350 400 313H316L279 350L316 387H400ZM135 411 88 364 60 392V611L97 649L135 611ZM135 89 97 51 60 89V307L88 336L135 289ZM391 0 428 37 391 75H148L111 37L148 0ZM479 89 442 51 405 89V289L452 336L479 307Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-H" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M135 289V75L60 0V307L88 336ZM60 392V700L135 625V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V625L479 700V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-I" viewBox="0 0 6.77 32.00">
|
||||
<path class="lcd-active" d="M181 392 153 364 106 411V663L143 700L181 663ZM181 37 143 0 106 37V289L153 336L181 307Z" transform="translate(-3.043 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-J" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 0H74L148 75H391ZM135 196V89L60 14V215L88 242ZM479 307V14L405 89V289L452 336ZM405 411V625L479 700V392L452 364Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-K" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M135 289V75L60 0V307L88 336ZM60 392V700L135 625V411L88 364ZM479 307V0L405 75V289L452 336ZM391 697H444V644L206 409H153V462ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-L" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 0H74L148 75H405ZM135 289V89L60 14V307L88 336ZM60 392V700L135 625V411L88 364Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-M" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M465 700 391 625H148L74 700ZM135 289V75L60 0V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V611L479 686V392L452 364ZM232 569 269 606 307 569V402L269 364L232 402Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-N" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M135 289V75L60 0V307L88 336ZM60 392V700L135 625V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V625L479 700V392L452 364ZM152 571V625H205L387 443V390H334Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-O" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L111 663L148 700H391ZM479 89 442 51 405 89V289L452 336L479 307ZM135 411 88 364 60 392V611L97 649L135 611ZM60 89 97 51 135 89V289L88 336L60 307ZM148 0 111 37 148 75H391L428 37L391 0Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-P" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM135 411 88 364 60 392V686L135 611ZM135 75 60 0V307L88 336L135 289ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-Q" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L111 663L148 700H391ZM479 155 442 118 405 155V289L452 336L479 307ZM135 411 88 364 60 392V611L97 649L135 611ZM60 89 97 51 135 89V289L88 336L60 307ZM148 0 111 37 148 75H324L361 37L324 0ZM338 89V142H391L479 53V0H426Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-R" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM135 411 88 364 60 392V686L135 611ZM135 75 60 0V307L88 336L135 289ZM186 241V294H239L479 53V0H426ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-S" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 663 442 625H148L111 663L148 700H442ZM479 89 442 51 405 89V289L452 336L479 307ZM135 411 88 364 60 392V611L97 649L135 611ZM97 0 60 37 97 75H391L428 37L391 0ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-T" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 700 405 625H135L60 700ZM307 37 269 0 232 37V252L279 299L307 271ZM307 354 279 327 232 373V574L269 611L307 574Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-U" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 89 442 51 405 89V289L452 336L479 307ZM60 89 97 51 135 89V289L88 336L60 307ZM148 0 111 37 148 75H391L428 37L391 0ZM60 392V700L135 625V411L88 364ZM405 411V625L479 700V392L452 364Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-V" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V625L479 700ZM446 282 201 37H148V90L393 336L452 337ZM135 411 88 364 60 392V700L135 625ZM60 37 97 0 135 37V289L88 336L60 307Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-W" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V625L479 700ZM135 411 88 364 60 392V700L135 625ZM479 14 405 89V289L452 336L479 307ZM307 130 269 93 232 130V298L269 336L307 298ZM465 0H74L148 75H391ZM135 89 60 14V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-X" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M284 364V446L436 700H479V627L322 364ZM218 364 60 627V700H103L255 446V364ZM255 336V254L103 0H60V73L218 336ZM321 336 479 73V0H436L284 254V336Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-Y" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 392 452 364 405 411V625L479 700ZM60 392 88 364 135 411V625L60 700ZM148 0 111 37 148 75H391L428 37L391 0ZM479 89 442 51 405 89V289L452 336L479 307ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-Z" viewBox="0 0 20.96 32.00">
|
||||
<path class="lcd-active" d="M479 663 442 625H135L60 700H442ZM465 0H97L60 37L97 75H391ZM334 369 268 361 265 401 427 606H479V551ZM211 336 251 340 260 274 115 93H60V145Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-colon" viewBox="0 0 6.86 32.00">
|
||||
<path class="lcd-active" d="M83 0V75H158V0ZM83 508V583H158V508Z" transform="translate(-2.771 1.000) scale(0.051458 0.051458)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-plus" viewBox="0 0 32.91 32.00">
|
||||
<path class="lcd-active" d="M265 401 228 364 190 401V480L228 518L265 480ZM395 350 358 313H279L241 350L279 387H358ZM214 350 176 313H97L60 350L97 387H176ZM265 219 228 182 190 219V299L228 336L265 299Z" transform="translate(-3.857 -15.250) scale(0.089286 0.089286)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-minus" viewBox="0 0 138.81 32.00">
|
||||
<path class="lcd-active" d="M358 387 395 350 358 313H97L60 350L97 387Z" transform="translate(-22.824 -125.892) scale(0.405405 0.405405)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-slash" viewBox="0 0 21.52 32.00">
|
||||
<path class="lcd-active" d="M246 320 64 4 36 106 172 340 235 358ZM232 446 367 680 470 707 287 393 249 382Z" transform="translate(-0.036 0.829) scale(0.042674 0.042674)" />
|
||||
</symbol>
|
||||
<symbol id="dsd-dot" viewBox="0 0 42.68 32.00">
|
||||
<path class="lcd-active" d="M60 0V75H135V0Z" transform="translate(-22.500 1.000) scale(0.400000 0.400000)" />
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
129
examples/app_hub/assets/dseg14-classic-alphabet.svg
Normal file
129
examples/app_hub/assets/dseg14-classic-alphabet.svg
Normal file
@@ -0,0 +1,129 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden">
|
||||
<!-- DSEG14 Classic (OFL) — vectorized for hub clock -->
|
||||
<defs>
|
||||
<symbol id="d14c-space" viewBox="0 0 11.20 32.00"></symbol>
|
||||
<symbol id="d14c-0" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-1" viewBox="0 0 14.80 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424Z" transform="translate(-19.071 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-2" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-3" viewBox="0 0 20.19 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-4" viewBox="0 0 23.37 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-5" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-6" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-7" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-8" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-9" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-A" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-B" viewBox="0 0 20.19 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-C" viewBox="0 0 20.19 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-D" viewBox="0 0 20.19 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-E" viewBox="0 0 20.19 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-F" viewBox="0 0 21.00 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-G" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-H" viewBox="0 0 23.37 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-I" viewBox="0 0 18.84 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-J" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107Z" transform="translate(-1.610 1.000) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-K" viewBox="0 0 19.65 32.00">
|
||||
<path class="lcd-active" d="M130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM578 887H604V746L500 567H475V709ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-L" viewBox="0 0 21.00 32.00">
|
||||
<path class="lcd-active" d="M672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.610 1.000) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-M" viewBox="0 0 23.37 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM341 567H316L212 746V887H238L341 709ZM578 887H604V746L500 567H475V709Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-N" viewBox="0 0 23.37 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM341 567H316L212 746V887H238L341 709ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-O" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-P" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-Q" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-R" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-S" viewBox="0 0 20.19 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM341 567H316L212 746V887H238L341 709Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-T" viewBox="0 0 20.86 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-3.370 -2.822) scale(0.033822 0.033822)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-U" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.610 1.000) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-V" viewBox="0 0 19.65 32.00">
|
||||
<path class="lcd-active" d="M130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-W" viewBox="0 0 23.37 32.00">
|
||||
<path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM341 291 238 113H212V254L316 433H341ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-X" viewBox="0 0 18.19 32.00">
|
||||
<path class="lcd-active" d="M341 567H316L212 746V887H238L341 709ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-Y" viewBox="0 0 18.19 32.00">
|
||||
<path class="lcd-active" d="M341 567H316L212 746V887H238L341 709ZM578 887H604V746L500 567H475V709ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-Z" viewBox="0 0 18.84 32.00">
|
||||
<path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-colon" viewBox="0 0 9.95 32.00">
|
||||
<path class="lcd-active" d="M43 717Q48 728 56 736Q66 746 76 750Q85 754 100.0 754.0Q115 754 124 750Q135 745 144 736Q152 728 157 717Q162 705 162.0 693.0Q162 681 157.0 669.0Q152 657 144.0 649.0Q136 641 124.0 636.0Q112 631 100.0 631.0Q88 631 76.0 636.0Q64 641 56.0 649.0Q48 657 43.0 669.0Q38 681 38.0 693.0Q38 705 43 717ZM43 305Q48 316 56 324Q66 334 76 338Q85 342 100.0 342.0Q115 342 124 338Q134 334 144 324Q152 316 157 305Q162 293 162.0 281.0Q162 269 157.0 257.0Q152 245 144.0 237.0Q136 229 124.0 224.0Q112 219 100.0 219.0Q88 219 76.0 224.0Q64 229 56.0 237.0Q48 245 43.0 257.0Q38 269 38.0 281.0Q38 293 43 305Z" transform="translate(-0.631 -11.280) scale(0.056075 0.056075)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-plus" viewBox="0 0 23.43 32.00">
|
||||
<path class="lcd-active" d="M144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-4.081 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-minus" viewBox="0 0 171.19 32.00">
|
||||
<path class="lcd-active" d="M144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-44.457 -143.574) scale(0.319149 0.319149)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-slash" viewBox="0 0 18.19 32.00">
|
||||
<path class="lcd-active" d="M578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14c-dot" viewBox="0 0 33.00 32.00">
|
||||
<path class="lcd-active" d="M57.0 86.0Q62 74 62.0 62.0Q62 50 57.0 38.0Q52 26 44.0 18.0Q36 10 24.0 5.0Q12 0 0.0 0.0Q-12 0 -24.0 5.0Q-36 10 -44.0 18.0Q-52 26 -57.0 38.0Q-62 50 -62.0 62.0Q-62 74 -57.0 86.0Q-52 98 -44.0 106.0Q-36 114 -24.0 119.0Q-12 124 0.0 124.0Q12 124 24.0 119.0Q36 114 44.0 106.0Q52 98 57.0 86.0Z" transform="translate(16.500 1.000) scale(0.241935 0.241935)" />
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
129
examples/app_hub/assets/dseg14-modern-alphabet.svg
Normal file
129
examples/app_hub/assets/dseg14-modern-alphabet.svg
Normal file
@@ -0,0 +1,129 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden">
|
||||
<!-- DSEG14 Modern (OFL) — vectorized for hub clock -->
|
||||
<defs>
|
||||
<symbol id="d14m-space" viewBox="0 0 11.20 32.00"></symbol>
|
||||
<symbol id="d14m-0" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-1" viewBox="0 0 14.10 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454Z" transform="translate(-18.102 -0.225) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-2" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-3" viewBox="0 0 21.36 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-4" viewBox="0 0 22.41 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.610 -0.225) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-5" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-6" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-7" viewBox="0 0 22.29 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.591 -0.217) scale(0.031217 0.031217)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-8" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-9" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-A" viewBox="0 0 21.65 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-B" viewBox="0 0 21.36 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM624 546 647 533 601 454H509L429 500L509 546ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-C" viewBox="0 0 21.36 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-D" viewBox="0 0 21.36 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-E" viewBox="0 0 21.36 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-F" viewBox="0 0 20.47 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-G" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-H" viewBox="0 0 21.77 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-I" viewBox="0 0 21.18 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-J" viewBox="0 0 21.65 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430Z" transform="translate(-1.488 1.000) scale(0.030181 0.030181)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-K" viewBox="0 0 18.86 32.00">
|
||||
<path class="lcd-active" d="M192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM474 707 578 887H604V746L499 564L424 521ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.610 0.812) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-L" viewBox="0 0 22.11 32.00">
|
||||
<path class="lcd-active" d="M583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.591 1.000) scale(0.031217 0.031217)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-M" viewBox="0 0 21.77 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM212 746V887H238L342 707L392 521L317 564ZM474 707 578 887H604V746L499 564L424 521Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-N" viewBox="0 0 21.77 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM212 746V887H238L342 707L392 521L317 564ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-O" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-P" viewBox="0 0 21.65 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-Q" viewBox="0 0 21.54 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-R" viewBox="0 0 21.65 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-S" viewBox="0 0 21.36 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM624 546 647 533 601 454H509L429 500L509 546ZM212 746V887H238L342 707L392 521L317 564Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-T" viewBox="0 0 22.38 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-2.051 -2.822) scale(0.033822 0.033822)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-U" viewBox="0 0 21.65 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.488 1.000) scale(0.030181 0.030181)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-V" viewBox="0 0 18.86 32.00">
|
||||
<path class="lcd-active" d="M192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-1.610 0.812) scale(0.031414 0.031414)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-W" viewBox="0 0 21.77 32.00">
|
||||
<path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM342 293 238 113H212V254L317 436L392 479ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-X" viewBox="0 0 18.19 32.00">
|
||||
<path class="lcd-active" d="M212 746V887H238L342 707L392 521L317 564ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-Y" viewBox="0 0 18.19 32.00">
|
||||
<path class="lcd-active" d="M212 746V887H238L342 707L392 521L317 564ZM474 707 578 887H604V746L499 564L424 521ZM454 287V113H362V287L408 460Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-Z" viewBox="0 0 21.18 32.00">
|
||||
<path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-colon" viewBox="0 0 9.95 32.00">
|
||||
<path class="lcd-active" d="M43 717Q48 728 56 736Q66 746 76 750Q85 754 100.0 754.0Q115 754 124 750Q135 745 144 736Q152 728 157 717Q162 705 162.0 693.0Q162 681 157.0 669.0Q152 657 144.0 649.0Q136 641 124.0 636.0Q112 631 100.0 631.0Q88 631 76.0 636.0Q64 641 56.0 649.0Q48 657 43.0 669.0Q38 681 38.0 693.0Q38 705 43 717ZM43 305Q48 316 56 324Q66 334 76 338Q85 342 100.0 342.0Q115 342 124 338Q134 334 144 324Q152 316 157 305Q162 293 162.0 281.0Q162 269 157.0 257.0Q152 245 144.0 237.0Q136 229 124.0 224.0Q112 219 100.0 219.0Q88 219 76.0 224.0Q64 229 56.0 237.0Q48 245 43.0 257.0Q38 269 38.0 281.0Q38 293 43 305Z" transform="translate(-0.631 -11.280) scale(0.056075 0.056075)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-plus" viewBox="0 0 21.53 32.00">
|
||||
<path class="lcd-active" d="M387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-5.050 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-minus" viewBox="0 0 158.87 32.00">
|
||||
<path class="lcd-active" d="M387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-53.609 -147.043) scale(0.326087 0.326087)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-slash" viewBox="0 0 18.19 32.00">
|
||||
<path class="lcd-active" d="M474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" />
|
||||
</symbol>
|
||||
<symbol id="d14m-dot" viewBox="0 0 33.00 32.00">
|
||||
<path class="lcd-active" d="M57.0 86.0Q62 74 62.0 62.0Q62 50 57.0 38.0Q52 26 44.0 18.0Q36 10 24.0 5.0Q12 0 0.0 0.0Q-12 0 -24.0 5.0Q-36 10 -44.0 18.0Q-52 26 -57.0 38.0Q-62 50 -62.0 62.0Q-62 74 -57.0 86.0Q-52 98 -44.0 106.0Q-36 114 -24.0 119.0Q-12 124 0.0 124.0Q12 124 24.0 119.0Q36 114 44.0 106.0Q52 98 57.0 86.0Z" transform="translate(16.500 1.000) scale(0.241935 0.241935)" />
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
BIN
examples/app_hub/assets/fonts/DS-Digital.ttf
Normal file
BIN
examples/app_hub/assets/fonts/DS-Digital.ttf
Normal file
Binary file not shown.
BIN
examples/app_hub/assets/fonts/DSEG14Classic-Regular.ttf
Normal file
BIN
examples/app_hub/assets/fonts/DSEG14Classic-Regular.ttf
Normal file
Binary file not shown.
BIN
examples/app_hub/assets/fonts/DSEG14Modern-Regular.ttf
Normal file
BIN
examples/app_hub/assets/fonts/DSEG14Modern-Regular.ttf
Normal file
Binary file not shown.
BIN
examples/app_hub/assets/fonts/digital-7-mono-italic.ttf
Normal file
BIN
examples/app_hub/assets/fonts/digital-7-mono-italic.ttf
Normal file
Binary file not shown.
@@ -8,6 +8,38 @@
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "DSEG14 Classic";
|
||||
src: url("assets/fonts/DSEG14Classic-Regular.ttf") format("truetype");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "DSEG14 Modern";
|
||||
src: url("assets/fonts/DSEG14Modern-Regular.ttf") format("truetype");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "DS-Digital";
|
||||
src: url("assets/fonts/DS-Digital.ttf") format("truetype");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Digital-7 Mono Italic";
|
||||
src: url("assets/fonts/digital-7-mono-italic.ttf") format("truetype");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
.hub-page {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
@@ -315,7 +347,7 @@
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-family: "Clockopia", "DS-Digital", "Consolas", monospace;
|
||||
font-family: "DSEG14 Classic", "Consolas", monospace;
|
||||
}
|
||||
|
||||
.cw-clock-inner {
|
||||
@@ -404,7 +436,7 @@
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
font-family: "Clockopia", "DS-Digital", "Consolas", monospace;
|
||||
font-family: "DSEG14 Classic", "Consolas", monospace;
|
||||
font-variant-numeric: tabular-nums;
|
||||
color: #d8f6b8;
|
||||
text-shadow: 0 0 10px rgba(190, 240, 150, 0.42);
|
||||
@@ -496,6 +528,11 @@
|
||||
filter: drop-shadow(0 0 5px rgba(190, 240, 150, 0.38));
|
||||
}
|
||||
|
||||
.ot-glyph .lcd-active,
|
||||
.ot-glyph path {
|
||||
fill: #d8f6b8;
|
||||
}
|
||||
|
||||
.ot-fallback-char {
|
||||
display: inline-flex;
|
||||
align-items: flex-end;
|
||||
@@ -532,7 +569,7 @@
|
||||
letter-spacing: 0.16em;
|
||||
font-weight: 400;
|
||||
text-transform: uppercase;
|
||||
font-family: "Clockopia", "Consolas", monospace;
|
||||
font-family: "DSEG14 Classic", "Consolas", monospace;
|
||||
}
|
||||
|
||||
.cw-line-date {
|
||||
@@ -541,7 +578,7 @@
|
||||
letter-spacing: 0.12em;
|
||||
font-weight: 400;
|
||||
text-transform: uppercase;
|
||||
font-family: "Clockopia", "Consolas", monospace;
|
||||
font-family: "DSEG14 Classic", "Consolas", monospace;
|
||||
}
|
||||
|
||||
.cw-separator {
|
||||
@@ -591,7 +628,7 @@
|
||||
letter-spacing: 0.12em;
|
||||
margin-top: 0;
|
||||
margin-bottom: 8px;
|
||||
font-family: "Clockopia", "Consolas", monospace;
|
||||
font-family: "DSEG14 Classic", "Consolas", monospace;
|
||||
}
|
||||
|
||||
.cw-dial {
|
||||
@@ -632,6 +669,26 @@
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
html[data-clock-font="dseg14-modern"] .hub-clock-widget,
|
||||
html[data-clock-font="dseg14-modern"] .cw-lcd-text {
|
||||
font-family: "DSEG14 Modern", "Consolas", monospace;
|
||||
}
|
||||
|
||||
html[data-clock-font="ds-digital"] .hub-clock-widget,
|
||||
html[data-clock-font="ds-digital"] .cw-lcd-text {
|
||||
font-family: "DS-Digital", "Consolas", monospace;
|
||||
}
|
||||
|
||||
html[data-clock-font="digital-7-mono-italic"] .hub-clock-widget,
|
||||
html[data-clock-font="digital-7-mono-italic"] .cw-lcd-text {
|
||||
font-family: "Digital-7 Mono Italic", "Consolas", monospace;
|
||||
}
|
||||
|
||||
.cw-lcd-text {
|
||||
font-family: "DSEG14 Classic", "Consolas", monospace;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.cw-resize-handle {
|
||||
position: absolute;
|
||||
width: 50px;
|
||||
@@ -645,7 +702,7 @@
|
||||
color: rgba(220, 236, 255, 0.9);
|
||||
filter: drop-shadow(0 0 4px rgba(150, 200, 255, 0.35));
|
||||
pointer-events: auto;
|
||||
background: rgba(226, 34, 34, 0.5);
|
||||
background: transparent;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="dark">
|
||||
<html lang="en" data-theme="dark" data-clock-font="dseg14-classic">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
@@ -11,12 +11,13 @@
|
||||
})();
|
||||
</script>
|
||||
<link rel="stylesheet" href="/app/androidcast_project/crashes/assets/css/app.css">
|
||||
<link rel="stylesheet" href="hub.css?v=20260530i">
|
||||
<link rel="stylesheet" href="hub.css?v=20260530k">
|
||||
<link rel="stylesheet" href="hub-logo-layers.css">
|
||||
<script src="assets/analytics.config.js"></script>
|
||||
<script src="/app/androidcast_project/crashes/assets/js/analytics.js" defer></script>
|
||||
</head>
|
||||
<body class="hub-page">
|
||||
<div id="lcd-alphabet-host" hidden aria-hidden="true"></div>
|
||||
<div id="overtime-alphabet-host" hidden aria-hidden="true"></div>
|
||||
<div id="quartz-alphabet-host" hidden aria-hidden="true"></div>
|
||||
<div id="hub-logo-stage" class="hub-logo-stage" hidden aria-hidden="true"></div>
|
||||
@@ -151,14 +152,52 @@
|
||||
}
|
||||
|
||||
var stage = document.getElementById('hub-logo-stage');
|
||||
if (!stage) return;
|
||||
|
||||
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||
var supportsSvg = !!(svg && svg.createSVGRect);
|
||||
var supportsLayout = !!(window.CSS && CSS.supports && CSS.supports('object-fit', 'cover'));
|
||||
if (!supportsSvg || !supportsLayout) return;
|
||||
var logoEnabled = !!(stage && supportsSvg && supportsLayout);
|
||||
|
||||
var logoBuild = '20260530i';
|
||||
var logoBuild = '20260530k';
|
||||
|
||||
function hubAsset(rel) {
|
||||
var link = document.querySelector('link[href*="hub.css"]');
|
||||
if (link) {
|
||||
var href = link.getAttribute('href') || '';
|
||||
return href.replace(/[^/]*$/, '') + rel;
|
||||
}
|
||||
return rel;
|
||||
}
|
||||
|
||||
var LCD_FONT_CATALOG = {
|
||||
'dseg14-classic': {
|
||||
url: 'assets/dseg14-classic-alphabet.svg',
|
||||
prefix: 'd14c',
|
||||
css: '"DSEG14 Classic", "Consolas", monospace'
|
||||
},
|
||||
'dseg14-modern': {
|
||||
url: 'assets/dseg14-modern-alphabet.svg',
|
||||
prefix: 'd14m',
|
||||
css: '"DSEG14 Modern", "Consolas", monospace'
|
||||
},
|
||||
'ds-digital': {
|
||||
url: 'assets/ds-digital-alphabet.svg',
|
||||
prefix: 'dsd',
|
||||
css: '"DS-Digital", "Consolas", monospace'
|
||||
},
|
||||
'digital-7-mono-italic': {
|
||||
url: 'assets/digital-7-mono-italic-alphabet.svg',
|
||||
prefix: 'd7mi',
|
||||
css: '"Digital-7 Mono Italic", "Consolas", monospace'
|
||||
}
|
||||
};
|
||||
|
||||
var clockFontParams = new URLSearchParams(window.location.search);
|
||||
var clockFontKey = (clockFontParams.get('clockFont') || 'dseg14-classic').toLowerCase();
|
||||
if (!LCD_FONT_CATALOG[clockFontKey]) clockFontKey = 'dseg14-classic';
|
||||
var lcdFontReady = false;
|
||||
var lcdSymbolIds = {};
|
||||
var lcdFontPrefix = LCD_FONT_CATALOG[clockFontKey].prefix;
|
||||
var fragments = {
|
||||
space: 'assets/hub-logo-fragment-space.svg',
|
||||
globe: 'assets/hub-logo-fragment-globe.svg',
|
||||
@@ -185,6 +224,7 @@
|
||||
return base + '?v=' + logoBuild;
|
||||
}
|
||||
|
||||
if (logoEnabled) {
|
||||
list.forEach(function (name) {
|
||||
var img = document.createElement('img');
|
||||
img.className = 'hub-logo-layer hub-logo-layer--' + name;
|
||||
@@ -208,6 +248,7 @@
|
||||
|
||||
stage.hidden = false;
|
||||
stage.setAttribute('aria-hidden', 'true');
|
||||
}
|
||||
|
||||
/* Nav dock overlaps globe left hemisphere; stack top → bottom. */
|
||||
var GLOBE_VIEW = { imgW: 1920, imgH: 1080, cx: 720, cy: 560, r: 330 };
|
||||
@@ -443,7 +484,7 @@
|
||||
}
|
||||
|
||||
function bindCompassOpen() {
|
||||
if (!compassLayer) return;
|
||||
if (!logoEnabled || !compassLayer) return;
|
||||
var open = function () { openDeploymentModel(); };
|
||||
compassLayer.addEventListener('click', open);
|
||||
compassLayer.addEventListener('keydown', function (ev) {
|
||||
@@ -586,6 +627,113 @@
|
||||
return null;
|
||||
}
|
||||
|
||||
function lcdSymbolId(ch) {
|
||||
var p = lcdFontPrefix;
|
||||
if (ch >= '0' && ch <= '9') return p + '-' + ch;
|
||||
if (ch === ':') return p + '-colon';
|
||||
if (ch === '+') return p + '-plus';
|
||||
if (ch === '-') return p + '-minus';
|
||||
if (ch === '/') return p + '-slash';
|
||||
if (ch === '.') return p + '-dot';
|
||||
if (ch === ' ') return p + '-space';
|
||||
if (ch >= 'A' && ch <= 'Z') return p + '-' + ch;
|
||||
if (ch >= 'a' && ch <= 'z') return p + '-' + ch.toUpperCase();
|
||||
return null;
|
||||
}
|
||||
|
||||
function loadLcdAlphabet(done) {
|
||||
var host = document.getElementById('lcd-alphabet-host');
|
||||
var spec = LCD_FONT_CATALOG[clockFontKey];
|
||||
if (!host || !spec) { done(false); return; }
|
||||
fetch(hubAsset(spec.url) + '?v=' + logoBuild)
|
||||
.then(function (res) {
|
||||
if (!res.ok) throw new Error('alphabet fetch failed');
|
||||
return res.text();
|
||||
})
|
||||
.then(function (svgText) {
|
||||
host.replaceChildren();
|
||||
var parser = new DOMParser();
|
||||
var doc = parser.parseFromString(svgText, 'image/svg+xml');
|
||||
var sprite = doc.documentElement;
|
||||
if (sprite.querySelector('parsererror')) throw new Error('alphabet parse failed');
|
||||
sprite.setAttribute('aria-hidden', 'true');
|
||||
sprite.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden;pointer-events:none';
|
||||
host.appendChild(sprite);
|
||||
lcdSymbolIds = {};
|
||||
sprite.querySelectorAll('symbol').forEach(function (sym) {
|
||||
if (sym.id) lcdSymbolIds[sym.id] = sym;
|
||||
});
|
||||
lcdFontReady = Object.keys(lcdSymbolIds).length > 0;
|
||||
document.documentElement.setAttribute('data-clock-font', clockFontKey);
|
||||
var widget = document.getElementById('hub-clock-widget');
|
||||
if (widget) widget.setAttribute('data-lcd-mode', lcdFontReady ? 'svg' : 'text');
|
||||
done(lcdFontReady);
|
||||
})
|
||||
.catch(function () {
|
||||
lcdFontReady = false;
|
||||
var widget = document.getElementById('hub-clock-widget');
|
||||
if (widget) widget.setAttribute('data-lcd-mode', 'text');
|
||||
done(false);
|
||||
});
|
||||
}
|
||||
|
||||
function cloneLcdSymbolContent(svg, sym) {
|
||||
sym.childNodes.forEach(function (node) {
|
||||
if (node.nodeType !== 1) return;
|
||||
svg.appendChild(node.cloneNode(true));
|
||||
});
|
||||
}
|
||||
|
||||
function renderLcdText(el, text, opts) {
|
||||
opts = opts || {};
|
||||
if (!el) return;
|
||||
el.innerHTML = '';
|
||||
el.classList.add('cw-lcd-text');
|
||||
var fontCss = LCD_FONT_CATALOG[clockFontKey].css;
|
||||
if (!lcdFontReady) {
|
||||
el.textContent = text;
|
||||
el.style.fontFamily = fontCss;
|
||||
return;
|
||||
}
|
||||
var renderedSvg = false;
|
||||
String(text).split('').forEach(function (ch) {
|
||||
var up = ch.toUpperCase();
|
||||
var sid = lcdSymbolId(up === ch ? ch : up);
|
||||
if (!sid || !lcdSymbolIds[sid]) {
|
||||
var fb = document.createElement('span');
|
||||
fb.className = 'ot-fallback-char' + (opts.bold ? ' ot-fallback-char--bold' : '');
|
||||
fb.style.fontFamily = fontCss;
|
||||
fb.textContent = ch === ' ' ? '\u00A0' : ch;
|
||||
el.appendChild(fb);
|
||||
return;
|
||||
}
|
||||
var sym = lcdSymbolIds[sid];
|
||||
if (!sym.childNodes.length) {
|
||||
var emptyFb = document.createElement('span');
|
||||
emptyFb.className = 'ot-fallback-char';
|
||||
emptyFb.style.fontFamily = fontCss;
|
||||
emptyFb.textContent = ch === ' ' ? '\u00A0' : ch;
|
||||
el.appendChild(emptyFb);
|
||||
return;
|
||||
}
|
||||
renderedSvg = true;
|
||||
var wrap = document.createElement('span');
|
||||
wrap.className = 'ot-glyph-wrap' + (opts.bold ? ' ot-glyph-wrap--bold' : '');
|
||||
if (opts.blinkColon && ch === ':') wrap.className += ' ot-colon-blink';
|
||||
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||
svg.setAttribute('viewBox', sym.getAttribute('viewBox') || '0 0 20 32');
|
||||
svg.setAttribute('class', 'ot-glyph');
|
||||
svg.setAttribute('aria-hidden', 'true');
|
||||
cloneLcdSymbolContent(svg, sym);
|
||||
wrap.appendChild(svg);
|
||||
el.appendChild(wrap);
|
||||
});
|
||||
if (!renderedSvg) {
|
||||
el.textContent = text;
|
||||
el.style.fontFamily = fontCss;
|
||||
}
|
||||
}
|
||||
|
||||
function loadQuartzAlphabet(done) {
|
||||
var host = document.getElementById('quartz-alphabet-host');
|
||||
if (!host) { done(false); return; }
|
||||
@@ -817,19 +965,18 @@
|
||||
});
|
||||
|
||||
function setClockopiaText(el, text) {
|
||||
if (!el) return;
|
||||
el.textContent = text;
|
||||
renderLcdText(el, text, {});
|
||||
}
|
||||
|
||||
function updateClockWidget() {
|
||||
var now = new Date();
|
||||
var p = timeParts(now, primaryTz);
|
||||
setClockopiaText(document.getElementById('cw-hm-lcd'), p.hh + ':' + p.mm);
|
||||
setClockopiaText(document.getElementById('cw-colon-lcd'), ':');
|
||||
setClockopiaText(document.getElementById('cw-ss-lcd'), p.ss);
|
||||
setClockopiaText(document.getElementById('cw-tz-text'), gmtOffsetLabel(now, primaryTz));
|
||||
setClockopiaText(document.getElementById('cw-region'), regionLabel(primaryTz));
|
||||
setClockopiaText(document.getElementById('cw-date-line'), formatDateLine(now, primaryTz));
|
||||
renderLcdText(document.getElementById('cw-hm-lcd'), p.hh + ':' + p.mm, { bold: true });
|
||||
renderLcdText(document.getElementById('cw-colon-lcd'), ':', { blinkColon: true });
|
||||
renderLcdText(document.getElementById('cw-ss-lcd'), p.ss, {});
|
||||
renderLcdText(document.getElementById('cw-tz-text'), gmtOffsetLabel(now, primaryTz), {});
|
||||
renderLcdText(document.getElementById('cw-region'), regionLabel(primaryTz), {});
|
||||
renderLcdText(document.getElementById('cw-date-line'), formatDateLine(now, primaryTz), {});
|
||||
|
||||
secondary.forEach(function (clock) {
|
||||
var t = timeParts(now, clock.tz);
|
||||
@@ -920,8 +1067,10 @@
|
||||
widget.releasePointerCapture(ev.pointerId);
|
||||
});
|
||||
})();
|
||||
updateClockWidget();
|
||||
setInterval(updateClockWidget, 1000);
|
||||
loadLcdAlphabet(function () {
|
||||
updateClockWidget();
|
||||
setInterval(updateClockWidget, 1000);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user