ds-one 0.2.0-alpha.3 → 0.2.5-alpha.10
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/DS1/0-face/{2025-04-23-device.ts → device.ts} +10 -6
- package/DS1/{utils/language.ts → 0-face/i18n.ts} +236 -92
- package/DS1/0-face/preferences.ts +23 -0
- package/DS1/0-face/pricing.ts +57 -0
- package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
- package/DS1/1-root/one.css +76 -107
- package/DS1/2-core/ds-banner.ts +3 -0
- package/DS1/2-core/ds-button.ts +13 -16
- package/DS1/2-core/ds-cycle.ts +84 -39
- package/DS1/2-core/{ds-year.ts → ds-date.ts} +5 -6
- package/DS1/2-core/ds-icon.ts +4 -4
- package/DS1/2-core/ds-input.ts +1 -0
- package/DS1/2-core/ds-text.ts +27 -3
- package/DS1/2-core/ds-tooltip.ts +9 -14
- package/DS1/3-unit/ds-list.ts +7 -0
- package/DS1/3-unit/ds-row.ts +4 -5
- package/DS1/3-unit/ds-table.ts +5 -6
- package/DS1/4-page/ds-grid.ts +9 -59
- package/DS1/4-page/ds-layout.ts +123 -18
- package/DS1/index.ts +39 -37
- package/LICENSE +1 -1
- package/README.md +43 -133
- package/dist/0-face/{2025-04-23-device.d.ts → device.d.ts} +1 -1
- package/dist/0-face/device.d.ts.map +1 -0
- package/dist/0-face/{2025-04-23-device.js → device.js} +7 -3
- package/dist/{utils/language.d.ts → 0-face/i18n.d.ts} +1 -3
- package/dist/0-face/i18n.d.ts.map +1 -0
- package/dist/{utils/language.js → 0-face/i18n.js} +178 -76
- package/dist/0-face/preferences.d.ts +9 -0
- package/dist/0-face/preferences.d.ts.map +1 -0
- package/dist/0-face/preferences.js +14 -0
- package/dist/0-face/pricing.d.ts +15 -0
- package/dist/0-face/pricing.d.ts.map +1 -0
- package/dist/0-face/pricing.js +46 -0
- package/dist/0-face/theme.d.ts.map +1 -0
- package/dist/2-core/ds-banner.d.ts +1 -0
- package/dist/2-core/ds-banner.d.ts.map +1 -0
- package/dist/2-core/ds-banner.js +2 -0
- package/dist/2-core/ds-button.d.ts +2 -7
- package/dist/2-core/ds-button.d.ts.map +1 -1
- package/dist/2-core/ds-button.js +12 -14
- package/dist/2-core/ds-cycle.d.ts +2 -0
- package/dist/2-core/ds-cycle.d.ts.map +1 -1
- package/dist/2-core/ds-cycle.js +80 -34
- package/dist/2-core/{ds-year.d.ts → ds-date.d.ts} +4 -4
- package/dist/2-core/ds-date.d.ts.map +1 -0
- package/dist/2-core/{ds-year.js → ds-date.js} +5 -5
- package/dist/2-core/ds-icon.js +4 -4
- package/dist/2-core/ds-input.d.ts +1 -0
- package/dist/2-core/ds-input.d.ts.map +1 -0
- package/dist/2-core/ds-input.js +1 -0
- package/dist/2-core/ds-text.d.ts +2 -0
- package/dist/2-core/ds-text.d.ts.map +1 -1
- package/dist/2-core/ds-text.js +26 -3
- package/dist/2-core/ds-tooltip.d.ts +1 -1
- package/dist/2-core/ds-tooltip.d.ts.map +1 -1
- package/dist/2-core/ds-tooltip.js +9 -13
- package/dist/3-unit/ds-list.d.ts.map +1 -1
- package/dist/3-unit/ds-list.js +3 -0
- package/dist/3-unit/{ds-doublenav.d.ts → ds-portfolio-doublenav.d.ts} +4 -4
- package/dist/3-unit/ds-portfolio-doublenav.d.ts.map +1 -0
- package/dist/3-unit/{ds-doublenav.js → ds-portfolio-doublenav.js} +4 -4
- package/dist/3-unit/{ds-panel.d.ts → ds-portfolio-panel.d.ts} +3 -3
- package/dist/3-unit/ds-portfolio-panel.d.ts.map +1 -0
- package/dist/3-unit/{ds-panel.js → ds-portfolio-panel.js} +3 -3
- package/dist/3-unit/{ds-singlenav.d.ts → ds-portfolio-singlenav.d.ts} +4 -4
- package/dist/3-unit/ds-portfolio-singlenav.d.ts.map +1 -0
- package/dist/3-unit/{ds-singlenav.js → ds-portfolio-singlenav.js} +7 -7
- package/dist/3-unit/ds-row.js +4 -4
- package/dist/3-unit/ds-table.d.ts.map +1 -1
- package/dist/3-unit/ds-table.js +5 -6
- package/dist/4-page/ds-grid.d.ts +0 -7
- package/dist/4-page/ds-grid.d.ts.map +1 -1
- package/dist/4-page/ds-grid.js +9 -54
- package/dist/4-page/ds-layout.d.ts +1 -1
- package/dist/4-page/ds-layout.d.ts.map +1 -1
- package/dist/4-page/ds-layout.js +126 -17
- package/dist/ds-one.bundle.js +2515 -4132
- package/dist/ds-one.bundle.js.map +4 -4
- package/dist/ds-one.bundle.min.js +245 -787
- package/dist/ds-one.bundle.min.js.map +4 -4
- package/dist/index.d.ts +16 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -34
- package/package.json +8 -9
- package/DS1/0-face/2025-04-23-language.ts +0 -4
- package/DS1/2-core/ds-article.ts +0 -454
- package/DS1/2-core/ds-attributes.ts +0 -155
- package/DS1/2-core/ds-downloadcv.ts +0 -146
- package/DS1/2-core/ds-header.ts +0 -82
- package/DS1/2-core/ds-home.ts +0 -168
- package/DS1/2-core/ds-link.ts +0 -121
- package/DS1/2-core/ds-markdown.ts +0 -252
- package/DS1/2-core/ds-price.ts +0 -108
- package/DS1/2-core/ds-squarecircle.ts +0 -155
- package/DS1/2-core/ds-title.ts +0 -139
- package/DS1/2-core/ds-viewtoggle.ts +0 -83
- package/DS1/3-unit/ds-doublenav.ts +0 -106
- package/DS1/3-unit/ds-panel.ts +0 -27
- package/DS1/3-unit/ds-singlenav.ts +0 -79
- package/DS1/utils/cdn-loader.ts +0 -208
- package/DS1/utils/keys.json +0 -41
- package/DS1/utils/pricing.ts +0 -24
- package/DS1/utils/scroll.ts +0 -184
- package/DS1/utils/settings.ts +0 -23
- package/DS1/utils/viewMode.ts +0 -55
- package/dist/0-face/2025-04-23-device.d.ts.map +0 -1
- package/dist/0-face/2025-04-23-language.d.ts +0 -1
- package/dist/0-face/2025-04-23-language.d.ts.map +0 -1
- package/dist/0-face/2025-04-23-language.js +0 -3
- package/dist/2-core/article-v1.d.ts +0 -129
- package/dist/2-core/article-v1.d.ts.map +0 -1
- package/dist/2-core/article-v1.js +0 -361
- package/dist/2-core/attributes-v1.d.ts +0 -47
- package/dist/2-core/attributes-v1.d.ts.map +0 -1
- package/dist/2-core/attributes-v1.js +0 -128
- package/dist/2-core/cycle-v1.d.ts +0 -66
- package/dist/2-core/cycle-v1.d.ts.map +0 -1
- package/dist/2-core/cycle-v1.js +0 -586
- package/dist/2-core/downloadcv-v1.d.ts +0 -58
- package/dist/2-core/downloadcv-v1.d.ts.map +0 -1
- package/dist/2-core/downloadcv-v1.js +0 -119
- package/dist/2-core/ds-article.d.ts +0 -129
- package/dist/2-core/ds-article.d.ts.map +0 -1
- package/dist/2-core/ds-article.js +0 -361
- package/dist/2-core/ds-attributes.d.ts +0 -47
- package/dist/2-core/ds-attributes.d.ts.map +0 -1
- package/dist/2-core/ds-attributes.js +0 -128
- package/dist/2-core/ds-button.figma.d.ts +0 -2
- package/dist/2-core/ds-button.figma.d.ts.map +0 -1
- package/dist/2-core/ds-button.figma.js +0 -6
- package/dist/2-core/ds-downloadcv.d.ts +0 -58
- package/dist/2-core/ds-downloadcv.d.ts.map +0 -1
- package/dist/2-core/ds-downloadcv.js +0 -119
- package/dist/2-core/ds-header.d.ts +0 -28
- package/dist/2-core/ds-header.d.ts.map +0 -1
- package/dist/2-core/ds-header.js +0 -66
- package/dist/2-core/ds-home.d.ts +0 -26
- package/dist/2-core/ds-home.d.ts.map +0 -1
- package/dist/2-core/ds-home.js +0 -148
- package/dist/2-core/ds-link.d.ts +0 -35
- package/dist/2-core/ds-link.d.ts.map +0 -1
- package/dist/2-core/ds-link.js +0 -85
- package/dist/2-core/ds-markdown.d.ts +0 -7
- package/dist/2-core/ds-markdown.d.ts.map +0 -1
- package/dist/2-core/ds-markdown.js +0 -240
- package/dist/2-core/ds-price.d.ts +0 -46
- package/dist/2-core/ds-price.d.ts.map +0 -1
- package/dist/2-core/ds-price.js +0 -72
- package/dist/2-core/ds-squarecircle.d.ts +0 -50
- package/dist/2-core/ds-squarecircle.d.ts.map +0 -1
- package/dist/2-core/ds-squarecircle.js +0 -133
- package/dist/2-core/ds-title.d.ts +0 -50
- package/dist/2-core/ds-title.d.ts.map +0 -1
- package/dist/2-core/ds-title.js +0 -103
- package/dist/2-core/ds-viewtoggle.d.ts +0 -27
- package/dist/2-core/ds-viewtoggle.d.ts.map +0 -1
- package/dist/2-core/ds-viewtoggle.js +0 -49
- package/dist/2-core/ds-year.d.ts.map +0 -1
- package/dist/2-core/header-v1.d.ts +0 -28
- package/dist/2-core/header-v1.d.ts.map +0 -1
- package/dist/2-core/header-v1.js +0 -66
- package/dist/2-core/home-v1.d.ts +0 -26
- package/dist/2-core/home-v1.d.ts.map +0 -1
- package/dist/2-core/home-v1.js +0 -148
- package/dist/2-core/icon-v1.d.ts +0 -28
- package/dist/2-core/icon-v1.d.ts.map +0 -1
- package/dist/2-core/icon-v1.js +0 -297
- package/dist/2-core/link-v1.d.ts +0 -35
- package/dist/2-core/link-v1.d.ts.map +0 -1
- package/dist/2-core/link-v1.js +0 -85
- package/dist/2-core/markdown-v1.d.ts +0 -7
- package/dist/2-core/markdown-v1.d.ts.map +0 -1
- package/dist/2-core/markdown-v1.js +0 -240
- package/dist/2-core/price-v1.d.ts +0 -46
- package/dist/2-core/price-v1.d.ts.map +0 -1
- package/dist/2-core/price-v1.js +0 -72
- package/dist/2-core/squarecircle-v1.d.ts +0 -50
- package/dist/2-core/squarecircle-v1.d.ts.map +0 -1
- package/dist/2-core/squarecircle-v1.js +0 -133
- package/dist/2-core/text-v1.d.ts +0 -48
- package/dist/2-core/text-v1.d.ts.map +0 -1
- package/dist/2-core/text-v1.js +0 -83
- package/dist/2-core/title-v1.d.ts +0 -50
- package/dist/2-core/title-v1.d.ts.map +0 -1
- package/dist/2-core/title-v1.js +0 -103
- package/dist/2-core/tooltip-v1.d.ts +0 -39
- package/dist/2-core/tooltip-v1.d.ts.map +0 -1
- package/dist/2-core/tooltip-v1.js +0 -145
- package/dist/2-core/viewtoggle-v1.d.ts +0 -27
- package/dist/2-core/viewtoggle-v1.d.ts.map +0 -1
- package/dist/2-core/viewtoggle-v1.js +0 -49
- package/dist/2-core/year-v1.d.ts +0 -16
- package/dist/2-core/year-v1.d.ts.map +0 -1
- package/dist/2-core/year-v1.js +0 -21
- package/dist/3-unit/ds-doublenav.d.ts.map +0 -1
- package/dist/3-unit/ds-panel.d.ts.map +0 -1
- package/dist/3-unit/ds-singlenav.d.ts.map +0 -1
- package/dist/utils/cdn-loader.d.ts +0 -19
- package/dist/utils/cdn-loader.d.ts.map +0 -1
- package/dist/utils/cdn-loader.js +0 -142
- package/dist/utils/keys.json +0 -41
- package/dist/utils/language.d.ts.map +0 -1
- package/dist/utils/pricing.d.ts +0 -8
- package/dist/utils/pricing.d.ts.map +0 -1
- package/dist/utils/pricing.js +0 -14
- package/dist/utils/scroll.d.ts +0 -34
- package/dist/utils/scroll.d.ts.map +0 -1
- package/dist/utils/scroll.js +0 -140
- package/dist/utils/settings.d.ts +0 -9
- package/dist/utils/settings.d.ts.map +0 -1
- package/dist/utils/settings.js +0 -14
- package/dist/utils/theme.d.ts.map +0 -1
- package/dist/utils/viewMode.d.ts +0 -14
- package/dist/utils/viewMode.d.ts.map +0 -1
- package/dist/utils/viewMode.js +0 -46
- /package/DS1/{utils → 0-face}/theme.ts +0 -0
- /package/DS1/{x Icon → x-icon}/1x.svg +0 -0
- /package/DS1/{x Icon → x-icon}/1xdots.svg +0 -0
- /package/DS1/{x Icon → x-icon}/1xgrid.svg +0 -0
- /package/DS1/{x Icon → x-icon}/1xlines.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2x.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2xdots.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2xgrid.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2xlines.svg +0 -0
- /package/DS1/{x Icon → x-icon}/big.svg +0 -0
- /package/DS1/{x Icon → x-icon}/blank.svg +0 -0
- /package/DS1/{x Icon → x-icon}/check.svg +0 -0
- /package/DS1/{x Icon → x-icon}/close.svg +0 -0
- /package/DS1/{x Icon → x-icon}/collapse.svg +0 -0
- /package/DS1/{x Icon → x-icon}/color.svg +0 -0
- /package/DS1/{x Icon → x-icon}/column.svg +0 -0
- /package/DS1/{x Icon → x-icon}/default.svg +0 -0
- /package/DS1/{x Icon → x-icon}/delete.svg +0 -0
- /package/DS1/{x Icon → x-icon}/do.svg +0 -0
- /package/DS1/{x Icon → x-icon}/down.svg +0 -0
- /package/DS1/{x Icon → x-icon}/duplicate.svg +0 -0
- /package/DS1/{x Icon → x-icon}/email.svg +0 -0
- /package/DS1/{x Icon → x-icon}/expand.svg +0 -0
- /package/DS1/{x Icon → x-icon}/gallery.svg +0 -0
- /package/DS1/{x Icon → x-icon}/group.svg +0 -0
- /package/DS1/{x Icon → x-icon}/head.svg +0 -0
- /package/DS1/{x Icon → x-icon}/icon.svg +0 -0
- /package/DS1/{x Icon → x-icon}/left.svg +0 -0
- /package/DS1/{x Icon → x-icon}/lock.svg +0 -0
- /package/DS1/{x Icon → x-icon}/mic.svg +0 -0
- /package/DS1/{x Icon → x-icon}/minimize.svg +0 -0
- /package/DS1/{x Icon → x-icon}/more.svg +0 -0
- /package/DS1/{x Icon → x-icon}/note.svg +0 -0
- /package/DS1/{x Icon → x-icon}/open.svg +0 -0
- /package/DS1/{x Icon → x-icon}/page.svg +0 -0
- /package/DS1/{x Icon → x-icon}/plus.svg +0 -0
- /package/DS1/{x Icon → x-icon}/rewind.svg +0 -0
- /package/DS1/{x Icon → x-icon}/right.svg +0 -0
- /package/DS1/{x Icon/row..svg → x-icon/row.svg} +0 -0
- /package/DS1/{x Icon → x-icon}/search.svg +0 -0
- /package/DS1/{x Icon → x-icon}/see.svg +0 -0
- /package/DS1/{x Icon → x-icon}/star.svg +0 -0
- /package/DS1/{x Icon → x-icon}/title.svg +0 -0
- /package/DS1/{x Icon → x-icon}/undo.svg +0 -0
- /package/DS1/{x Icon → x-icon}/ungroup.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unhead.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unicon.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unlock.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unmic.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unsee.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unstar.svg +0 -0
- /package/DS1/{x Icon → x-icon}/untitle.svg +0 -0
- /package/DS1/{x Icon → x-icon}/up.svg +0 -0
- /package/dist/{utils → 0-face}/theme.d.ts +0 -0
- /package/dist/{utils → 0-face}/theme.js +0 -0
|
@@ -1,47 +1,173 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// Bundled translations (keys.json may not exist - will use external translations if not available)
|
|
2
|
+
// This is a fallback for when external translations aren't loaded
|
|
3
|
+
let translationKeys = {};
|
|
3
4
|
// Primary language list – prioritise the 10 requested languages when cycling
|
|
4
5
|
const LANGUAGE_PRIORITY_ORDER = [
|
|
5
6
|
"da",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"pt",
|
|
7
|
+
"de",
|
|
8
|
+
"en",
|
|
9
9
|
"es",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"fr",
|
|
11
|
+
"it",
|
|
12
12
|
"ja",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
13
|
+
"pt",
|
|
14
|
+
"sv",
|
|
15
|
+
"zh",
|
|
15
16
|
];
|
|
16
17
|
const LANGUAGE_PRIORITY_LOOKUP = new Map(LANGUAGE_PRIORITY_ORDER.map((code, index) => [code, index]));
|
|
17
18
|
// Fallback language names if Intl.DisplayNames is not available
|
|
18
19
|
const FALLBACK_LANGUAGE_NAMES = {
|
|
19
20
|
da: "Danish",
|
|
20
21
|
"da-dk": "Danish",
|
|
21
|
-
nb: "Norwegian",
|
|
22
|
-
"nb-no": "Norwegian",
|
|
23
|
-
sv: "Swedish",
|
|
24
|
-
"sv-se": "Swedish",
|
|
25
22
|
de: "German",
|
|
26
23
|
"de-de": "German",
|
|
27
24
|
en: "English",
|
|
28
25
|
"en-us": "English",
|
|
29
|
-
pt: "Portuguese",
|
|
30
|
-
"pt-pt": "Portuguese",
|
|
31
|
-
"pt-br": "Portuguese (Brazil)",
|
|
32
26
|
es: "Spanish",
|
|
33
27
|
"es-es": "Spanish",
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
28
|
+
fr: "French",
|
|
29
|
+
"fr-fr": "French",
|
|
30
|
+
it: "Italian",
|
|
31
|
+
"it-it": "Italian",
|
|
38
32
|
ja: "Japanese",
|
|
39
33
|
"ja-jp": "Japanese",
|
|
40
|
-
|
|
41
|
-
"
|
|
34
|
+
pt: "Portuguese",
|
|
35
|
+
"pt-pt": "Portuguese",
|
|
36
|
+
sv: "Swedish",
|
|
37
|
+
"sv-se": "Swedish",
|
|
38
|
+
zh: "Chinese",
|
|
39
|
+
"zh-cn": "Chinese",
|
|
40
|
+
"zh-tw": "Chinese",
|
|
41
|
+
"zh-hans": "Chinese",
|
|
42
|
+
"zh-hant": "Chinese",
|
|
42
43
|
};
|
|
43
44
|
const DISPLAY_NAME_CACHE = new Map();
|
|
44
45
|
let displayNameFallbackWarningShown = false;
|
|
46
|
+
// CDN Loader: Automatically detects and loads translation JSON files
|
|
47
|
+
// for CDN users who want to use external translations
|
|
48
|
+
const DEFAULT_TRANSLATION_FILE = "./translations.json";
|
|
49
|
+
let loadAttempted = false;
|
|
50
|
+
function normalizeCandidate(path) {
|
|
51
|
+
if (!path) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const trimmed = path.trim();
|
|
55
|
+
if (!trimmed) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (trimmed.startsWith("./") ||
|
|
59
|
+
trimmed.startsWith("../") ||
|
|
60
|
+
trimmed.startsWith("/") ||
|
|
61
|
+
/^https?:\/\//i.test(trimmed)) {
|
|
62
|
+
return trimmed;
|
|
63
|
+
}
|
|
64
|
+
return `./${trimmed}`;
|
|
65
|
+
}
|
|
66
|
+
function findAttributeCandidate() {
|
|
67
|
+
if (typeof document === "undefined") {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const scriptWithAttribute = document.querySelector("script[data-ds-one-translations]");
|
|
71
|
+
const scriptCandidate = scriptWithAttribute?.getAttribute("data-ds-one-translations");
|
|
72
|
+
if (scriptCandidate) {
|
|
73
|
+
return scriptCandidate;
|
|
74
|
+
}
|
|
75
|
+
const metaCandidate = document
|
|
76
|
+
.querySelector('meta[name="ds-one:translations"]')
|
|
77
|
+
?.getAttribute("content");
|
|
78
|
+
if (metaCandidate) {
|
|
79
|
+
return metaCandidate;
|
|
80
|
+
}
|
|
81
|
+
const linkCandidate = document
|
|
82
|
+
.querySelector('link[rel="ds-one-translations"]')
|
|
83
|
+
?.getAttribute("href");
|
|
84
|
+
if (linkCandidate) {
|
|
85
|
+
return linkCandidate;
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
function resolveTranslationSources() {
|
|
90
|
+
const candidates = [];
|
|
91
|
+
const windowCandidate = typeof window !== "undefined" ? window.DS_ONE_TRANSLATIONS_FILE : null;
|
|
92
|
+
const attributeCandidate = findAttributeCandidate();
|
|
93
|
+
// Only use explicitly configured paths, or the single default
|
|
94
|
+
const windowNormalized = normalizeCandidate(windowCandidate ?? "");
|
|
95
|
+
if (windowNormalized) {
|
|
96
|
+
candidates.push(windowNormalized);
|
|
97
|
+
}
|
|
98
|
+
const attrNormalized = normalizeCandidate(attributeCandidate ?? "");
|
|
99
|
+
if (attrNormalized && !candidates.includes(attrNormalized)) {
|
|
100
|
+
candidates.push(attrNormalized);
|
|
101
|
+
}
|
|
102
|
+
// Only try default if no explicit path was configured
|
|
103
|
+
if (candidates.length === 0) {
|
|
104
|
+
candidates.push(DEFAULT_TRANSLATION_FILE);
|
|
105
|
+
}
|
|
106
|
+
return candidates;
|
|
107
|
+
}
|
|
108
|
+
function validateTranslationMap(candidate) {
|
|
109
|
+
if (!candidate || typeof candidate !== "object") {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
return Object.values(candidate).every((entry) => entry && typeof entry === "object");
|
|
113
|
+
}
|
|
114
|
+
async function fetchTranslationFile(source) {
|
|
115
|
+
try {
|
|
116
|
+
const response = await fetch(source);
|
|
117
|
+
if (!response.ok) {
|
|
118
|
+
// 404 is expected if no translations file exists - don't log as error
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
const translations = await response.json();
|
|
122
|
+
if (!validateTranslationMap(translations)) {
|
|
123
|
+
console.warn(`[DS one] Invalid translation format in ${source}. Expected object with language codes as keys.`);
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const languages = Object.keys(translations);
|
|
127
|
+
if (languages.length === 0) {
|
|
128
|
+
console.warn(`[DS one] No languages found in ${source}`);
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return translations;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Silently fail - file likely doesn't exist or isn't valid JSON
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Attempts to load translations from a JSON file in the same directory
|
|
140
|
+
*/
|
|
141
|
+
async function loadExternalTranslations() {
|
|
142
|
+
// Only attempt once
|
|
143
|
+
if (loadAttempted) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
loadAttempted = true;
|
|
147
|
+
if (typeof window === "undefined") {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
// Check if translations are already loaded (e.g., by the application)
|
|
151
|
+
if (window.DS_ONE_TRANSLATIONS &&
|
|
152
|
+
Object.keys(window.DS_ONE_TRANSLATIONS).length > 0) {
|
|
153
|
+
console.log(`[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`);
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
const sources = resolveTranslationSources();
|
|
157
|
+
for (const source of sources) {
|
|
158
|
+
const translations = await fetchTranslationFile(source);
|
|
159
|
+
if (!translations) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
window.DS_ONE_TRANSLATIONS = translations;
|
|
163
|
+
const languages = Object.keys(translations);
|
|
164
|
+
console.log(`[DS one] External translations loaded from ${source}: ${languages.length} language(s) – ${languages.join(", ")}`);
|
|
165
|
+
window.dispatchEvent(new CustomEvent("translations-ready"));
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
console.info(`[DS one] No external translations found at ${sources[0] ?? DEFAULT_TRANSLATION_FILE}. Using bundled translations.`);
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
45
171
|
// Get translation data - prioritize external, fall back to bundled
|
|
46
172
|
function getTranslationData() {
|
|
47
173
|
// Check for externally loaded translations first (CDN usage)
|
|
@@ -53,7 +179,6 @@ function getTranslationData() {
|
|
|
53
179
|
}
|
|
54
180
|
// Cached translation data - use getter to always get fresh data
|
|
55
181
|
let translationData = getTranslationData();
|
|
56
|
-
const notionStore = new Map();
|
|
57
182
|
const defaultLanguage = "en";
|
|
58
183
|
function extractPrimarySubtag(code) {
|
|
59
184
|
if (!code) {
|
|
@@ -162,33 +287,30 @@ export function getLanguageDisplayName(code, options = {}) {
|
|
|
162
287
|
const BROWSER_LANGUAGE_PREFERENCES = {
|
|
163
288
|
da: "da",
|
|
164
289
|
"da-dk": "da",
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
"
|
|
170
|
-
sv: "sv",
|
|
171
|
-
"sv-se": "sv",
|
|
172
|
-
pt: "pt",
|
|
173
|
-
"pt-pt": "pt",
|
|
174
|
-
"pt-br": "pt",
|
|
290
|
+
de: "de",
|
|
291
|
+
"de-de": "de",
|
|
292
|
+
en: "en",
|
|
293
|
+
"en-us": "en",
|
|
294
|
+
"en-gb": "en",
|
|
175
295
|
es: "es",
|
|
176
296
|
"es-es": "es",
|
|
177
297
|
"es-mx": "es",
|
|
298
|
+
fr: "fr",
|
|
299
|
+
"fr-fr": "fr",
|
|
300
|
+
it: "it",
|
|
301
|
+
"it-it": "it",
|
|
302
|
+
ja: "ja",
|
|
303
|
+
"ja-jp": "ja",
|
|
304
|
+
pt: "pt",
|
|
305
|
+
"pt-pt": "pt",
|
|
306
|
+
"pt-br": "pt",
|
|
307
|
+
sv: "sv",
|
|
308
|
+
"sv-se": "sv",
|
|
178
309
|
zh: "zh",
|
|
179
310
|
"zh-cn": "zh",
|
|
180
311
|
"zh-hans": "zh",
|
|
181
312
|
"zh-tw": "zh",
|
|
182
313
|
"zh-hant": "zh",
|
|
183
|
-
ko: "ko",
|
|
184
|
-
"ko-kr": "ko",
|
|
185
|
-
ja: "ja",
|
|
186
|
-
"ja-jp": "ja",
|
|
187
|
-
en: "en",
|
|
188
|
-
"en-us": "en",
|
|
189
|
-
"en-gb": "en",
|
|
190
|
-
de: "de",
|
|
191
|
-
"de-de": "de",
|
|
192
314
|
};
|
|
193
315
|
function resolvePreferredLanguage(languageTag) {
|
|
194
316
|
if (!languageTag) {
|
|
@@ -245,6 +367,19 @@ export const currentLanguage = {
|
|
|
245
367
|
}));
|
|
246
368
|
},
|
|
247
369
|
};
|
|
370
|
+
// Auto-load translations when this module is imported (for CDN bundle)
|
|
371
|
+
if (typeof window !== "undefined") {
|
|
372
|
+
// Wait a bit to ensure the DOM is ready
|
|
373
|
+
if (document.readyState === "loading") {
|
|
374
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
375
|
+
loadExternalTranslations();
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
// DOM is already ready
|
|
380
|
+
loadExternalTranslations();
|
|
381
|
+
}
|
|
382
|
+
}
|
|
248
383
|
// Listen for external translations being loaded
|
|
249
384
|
if (typeof window !== "undefined") {
|
|
250
385
|
window.addEventListener("translations-ready", () => {
|
|
@@ -252,7 +387,6 @@ if (typeof window !== "undefined") {
|
|
|
252
387
|
translationData = getTranslationData();
|
|
253
388
|
// Dispatch that translations are loaded
|
|
254
389
|
window.dispatchEvent(new CustomEvent("translations-loaded"));
|
|
255
|
-
window.notionDataLoaded = true;
|
|
256
390
|
// Dispatch language-changed to update all components
|
|
257
391
|
const currentLang = currentLanguage.value;
|
|
258
392
|
window.dispatchEvent(new CustomEvent("language-changed", {
|
|
@@ -267,7 +401,6 @@ if (typeof window !== "undefined") {
|
|
|
267
401
|
setTimeout(() => {
|
|
268
402
|
// Since we directly imported the data, just dispatch the events
|
|
269
403
|
window.dispatchEvent(new CustomEvent("translations-loaded"));
|
|
270
|
-
window.notionDataLoaded = true;
|
|
271
404
|
// Also dispatch language-changed with the current language
|
|
272
405
|
const currentLang = currentLanguage.value;
|
|
273
406
|
window.dispatchEvent(new CustomEvent("language-changed", {
|
|
@@ -287,7 +420,7 @@ export function translate(key) {
|
|
|
287
420
|
if (lang !== defaultLanguage && translationData?.[defaultLanguage]?.[key]) {
|
|
288
421
|
return translationData[defaultLanguage][key];
|
|
289
422
|
}
|
|
290
|
-
console.warn(`[
|
|
423
|
+
console.warn(`[DS one (Internationalization)] No translation found for key "${key}"`);
|
|
291
424
|
return key;
|
|
292
425
|
}
|
|
293
426
|
export function hasTranslation(key, language = currentLanguage.value) {
|
|
@@ -309,37 +442,6 @@ export function hasTranslation(key, language = currentLanguage.value) {
|
|
|
309
442
|
export function getText(key) {
|
|
310
443
|
return translate(key);
|
|
311
444
|
}
|
|
312
|
-
// Get text from translation data (async for compatibility)
|
|
313
|
-
export async function getNotionText(key, language = currentLanguage.value) {
|
|
314
|
-
if (!key) {
|
|
315
|
-
return null;
|
|
316
|
-
}
|
|
317
|
-
if (!translationData || !translationData[language]) {
|
|
318
|
-
return null;
|
|
319
|
-
}
|
|
320
|
-
const text = translationData[language][key];
|
|
321
|
-
if (text) {
|
|
322
|
-
return text;
|
|
323
|
-
}
|
|
324
|
-
// Fallback to English
|
|
325
|
-
if (language !== defaultLanguage && translationData[defaultLanguage]?.[key]) {
|
|
326
|
-
return translationData[defaultLanguage][key];
|
|
327
|
-
}
|
|
328
|
-
return null;
|
|
329
|
-
}
|
|
330
|
-
// Store Notion text (for dynamic updates)
|
|
331
|
-
export function setNotionText(key, value, language = currentLanguage.value) {
|
|
332
|
-
if (!key)
|
|
333
|
-
return;
|
|
334
|
-
const bucket = getLanguageBucket(language);
|
|
335
|
-
bucket.set(key, value);
|
|
336
|
-
}
|
|
337
|
-
function getLanguageBucket(language) {
|
|
338
|
-
if (!notionStore.has(language)) {
|
|
339
|
-
notionStore.set(language, new Map());
|
|
340
|
-
}
|
|
341
|
-
return notionStore.get(language);
|
|
342
|
-
}
|
|
343
445
|
// Get available languages - dynamically detect from loaded data
|
|
344
446
|
export function getAvailableLanguages() {
|
|
345
447
|
// Always get fresh translation data
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LanguageCode } from "./i18n";
|
|
2
|
+
import type { ThemeType } from "./theme";
|
|
3
|
+
export type Preferences = {
|
|
4
|
+
language?: LanguageCode;
|
|
5
|
+
theme?: ThemeType;
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
};
|
|
8
|
+
export declare function savePreferences(preferences: Preferences): void;
|
|
9
|
+
//# sourceMappingURL=preferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../DS1/0-face/preferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAa9D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function savePreferences(preferences) {
|
|
2
|
+
if (typeof window === "undefined") {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
try {
|
|
6
|
+
const raw = window.localStorage?.getItem("ds-one:preferences");
|
|
7
|
+
const existing = raw ? JSON.parse(raw) : {};
|
|
8
|
+
const next = { ...existing, ...preferences };
|
|
9
|
+
window.localStorage?.setItem("ds-one:preferences", JSON.stringify(next));
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
console.warn("ds-one: unable to persist preferences", error);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Currency label utilities for regional price display
|
|
3
|
+
*
|
|
4
|
+
* Note: This module provides currency symbols/labels based on language and region.
|
|
5
|
+
* Consider moving this functionality into i18n.ts as it's region/locale-related.
|
|
6
|
+
* Actual price values will be stored in a database or managed via Stripe.
|
|
7
|
+
*/
|
|
8
|
+
import type { LanguageCode } from "./i18n";
|
|
9
|
+
type PriceLabelOptions = {
|
|
10
|
+
language: LanguageCode;
|
|
11
|
+
country?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function getPriceLabel(options: PriceLabelOptions): string;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=pricing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../DS1/0-face/pricing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAgBF,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA2BhE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Currency label utilities for regional price display
|
|
3
|
+
*
|
|
4
|
+
* Note: This module provides currency symbols/labels based on language and region.
|
|
5
|
+
* Consider moving this functionality into i18n.ts as it's region/locale-related.
|
|
6
|
+
* Actual price values will be stored in a database or managed via Stripe.
|
|
7
|
+
*/
|
|
8
|
+
// Simple price label mapping based on language/country
|
|
9
|
+
const PRICE_LABELS = {
|
|
10
|
+
da: "kr.",
|
|
11
|
+
nb: "kr.",
|
|
12
|
+
sv: "kr.",
|
|
13
|
+
de: "€",
|
|
14
|
+
en: "$",
|
|
15
|
+
pt: "€",
|
|
16
|
+
es: "€",
|
|
17
|
+
zh: "¥",
|
|
18
|
+
ja: "¥",
|
|
19
|
+
ko: "₩",
|
|
20
|
+
};
|
|
21
|
+
export function getPriceLabel(options) {
|
|
22
|
+
const { language, country } = options;
|
|
23
|
+
// If country is provided, try to map it to a currency
|
|
24
|
+
if (country) {
|
|
25
|
+
const countryUpper = country.toUpperCase();
|
|
26
|
+
// Add country-specific mappings if needed
|
|
27
|
+
if (countryUpper === "US" || countryUpper === "USA") {
|
|
28
|
+
return "$";
|
|
29
|
+
}
|
|
30
|
+
if (countryUpper === "GB" || countryUpper === "UK") {
|
|
31
|
+
return "£";
|
|
32
|
+
}
|
|
33
|
+
if (countryUpper === "JP" || countryUpper === "JPN") {
|
|
34
|
+
return "¥";
|
|
35
|
+
}
|
|
36
|
+
if (countryUpper === "CN" || countryUpper === "CHN") {
|
|
37
|
+
return "¥";
|
|
38
|
+
}
|
|
39
|
+
if (countryUpper === "KR" || countryUpper === "KOR") {
|
|
40
|
+
return "₩";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Fall back to language-based mapping
|
|
44
|
+
const primaryLang = language.toLowerCase().split(/[-_]/)[0];
|
|
45
|
+
return PRICE_LABELS[primaryLang] || "$";
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../DS1/0-face/theme.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAiBzC,eAAO,MAAM,YAAY,qDAAuC,CAAC;AAEjE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAwB/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=ds-banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-banner.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-banner.ts"],"names":[],"mappings":""}
|
|
@@ -22,10 +22,6 @@ export declare class Button extends LitElement {
|
|
|
22
22
|
type: BooleanConstructor;
|
|
23
23
|
reflect: boolean;
|
|
24
24
|
};
|
|
25
|
-
notionKey: {
|
|
26
|
-
type: StringConstructor;
|
|
27
|
-
attribute: string;
|
|
28
|
-
};
|
|
29
25
|
key: {
|
|
30
26
|
type: StringConstructor;
|
|
31
27
|
};
|
|
@@ -46,7 +42,7 @@ export declare class Button extends LitElement {
|
|
|
46
42
|
type: BooleanConstructor;
|
|
47
43
|
state: boolean;
|
|
48
44
|
};
|
|
49
|
-
|
|
45
|
+
_text: {
|
|
50
46
|
type: StringConstructor;
|
|
51
47
|
state: boolean;
|
|
52
48
|
};
|
|
@@ -56,14 +52,13 @@ export declare class Button extends LitElement {
|
|
|
56
52
|
bold: boolean;
|
|
57
53
|
"no-background": boolean;
|
|
58
54
|
blank: boolean;
|
|
59
|
-
notionKey: string | null;
|
|
60
55
|
key: string;
|
|
61
56
|
fallback: string;
|
|
62
57
|
language: string;
|
|
63
58
|
defaultText: string;
|
|
64
59
|
href: string;
|
|
65
60
|
_loading: boolean;
|
|
66
|
-
|
|
61
|
+
_text: string | null;
|
|
67
62
|
constructor();
|
|
68
63
|
static styles: import("lit").CSSResult;
|
|
69
64
|
connectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-button.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-button.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGjE,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU
|
|
1
|
+
{"version":3,"file":"ds-button.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-button.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGjE,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiBf;IAGM,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;;IAkB7B,MAAM,CAAC,MAAM,0BAkDX;IAEF,iBAAiB;IAQjB,oBAAoB;IAKpB,qBAAqB,aAEnB;IAEF,OAAO,CAAC,YAAY,EAAE,cAAc;IAQpC;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB,MAAM;IAcN,OAAO,CAAC,YAAY;CAwBrB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB;CACF"}
|
package/dist/2-core/ds-button.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ds-button.ts
|
|
2
2
|
// Core button component
|
|
3
3
|
import { LitElement, html, css } from "lit";
|
|
4
|
-
import { getText } from "../
|
|
4
|
+
import { getText } from "../0-face/i18n";
|
|
5
5
|
export class Button extends LitElement {
|
|
6
6
|
constructor() {
|
|
7
7
|
super();
|
|
@@ -13,14 +13,13 @@ export class Button extends LitElement {
|
|
|
13
13
|
this.bold = false;
|
|
14
14
|
this["no-background"] = false;
|
|
15
15
|
this.blank = false;
|
|
16
|
-
this.notionKey = null;
|
|
17
16
|
this.key = "";
|
|
18
17
|
this.fallback = "";
|
|
19
18
|
this.language = "en-US";
|
|
20
19
|
this.defaultText = "";
|
|
21
20
|
this.href = "";
|
|
22
21
|
this._loading = false;
|
|
23
|
-
this.
|
|
22
|
+
this._text = null;
|
|
24
23
|
}
|
|
25
24
|
connectedCallback() {
|
|
26
25
|
super.connectedCallback();
|
|
@@ -43,10 +42,10 @@ export class Button extends LitElement {
|
|
|
43
42
|
*/
|
|
44
43
|
_updateText() {
|
|
45
44
|
if (this.key) {
|
|
46
|
-
this.
|
|
45
|
+
this._text = getText(this.key);
|
|
47
46
|
}
|
|
48
47
|
else {
|
|
49
|
-
this.
|
|
48
|
+
this._text = this.defaultText || this.fallback || null;
|
|
50
49
|
}
|
|
51
50
|
this.requestUpdate();
|
|
52
51
|
}
|
|
@@ -59,7 +58,7 @@ export class Button extends LitElement {
|
|
|
59
58
|
?no-background=${this["no-background"]}
|
|
60
59
|
@click=${this._handleClick}
|
|
61
60
|
>
|
|
62
|
-
${this.
|
|
61
|
+
${this._text ? this._text : html `<slot></slot>`}
|
|
63
62
|
</button>
|
|
64
63
|
`;
|
|
65
64
|
}
|
|
@@ -97,24 +96,23 @@ Button.properties = {
|
|
|
97
96
|
attribute: "no-background",
|
|
98
97
|
},
|
|
99
98
|
blank: { type: Boolean, reflect: true },
|
|
100
|
-
notionKey: { type: String, attribute: "notion-key" },
|
|
101
99
|
key: { type: String },
|
|
102
100
|
fallback: { type: String },
|
|
103
101
|
language: { type: String },
|
|
104
102
|
defaultText: { type: String, attribute: "default-text" },
|
|
105
103
|
href: { type: String },
|
|
106
104
|
_loading: { type: Boolean, state: true },
|
|
107
|
-
|
|
105
|
+
_text: { type: String, state: true },
|
|
108
106
|
};
|
|
109
107
|
Button.styles = css `
|
|
110
108
|
button {
|
|
111
|
-
max-height: calc(var(--08) * var(--
|
|
109
|
+
max-height: calc(var(--08) * var(--sf));
|
|
112
110
|
border: none;
|
|
113
111
|
cursor: pointer;
|
|
114
|
-
font-size: calc(var(--type-size-default) * var(--
|
|
115
|
-
padding: 0 calc(1px * var(--
|
|
112
|
+
font-size: calc(var(--type-size-default) * var(--sf));
|
|
113
|
+
padding: 0 calc(1px * var(--sf));
|
|
116
114
|
color: var(--button-text-color);
|
|
117
|
-
font-family: var(--typeface);
|
|
115
|
+
font-family: var(--typeface-regular);
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
button.title {
|
|
@@ -126,13 +124,13 @@ Button.styles = css `
|
|
|
126
124
|
background-color: var(--accent-color);
|
|
127
125
|
color: var(--button-text-color);
|
|
128
126
|
text-decoration-line: none;
|
|
129
|
-
font-family: var(--typeface);
|
|
127
|
+
font-family: var(--typeface-regular);
|
|
130
128
|
}
|
|
131
129
|
|
|
132
130
|
button.secondary {
|
|
133
131
|
background-color: var(--button-background-color-secondary);
|
|
134
132
|
color: var(--button-text-color);
|
|
135
|
-
font-family: var(--typeface);
|
|
133
|
+
font-family: var(--typeface-regular);
|
|
136
134
|
}
|
|
137
135
|
|
|
138
136
|
button[bold] {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
import "./ds-button";
|
|
3
3
|
import "./ds-icon";
|
|
4
|
+
import "./ds-text";
|
|
4
5
|
export declare class Cycle extends LitElement {
|
|
5
6
|
static get properties(): {
|
|
6
7
|
type: {
|
|
@@ -47,6 +48,7 @@ export declare class Cycle extends LitElement {
|
|
|
47
48
|
disconnectedCallback(): void;
|
|
48
49
|
handleButtonClick(e: Event): void;
|
|
49
50
|
getValueDisplay(value: string): string | any;
|
|
51
|
+
getColorKey(colorVar: string): string;
|
|
50
52
|
getColorName(colorVar: string): string;
|
|
51
53
|
getNotesStyleIcon(style: string): import("lit-html").TemplateResult<1>;
|
|
52
54
|
getLabel(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-cycle.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAY5C,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AAqCnB,qBAAa,KAAM,SAAQ,UAAU;IAEnC,MAAM,KAAK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;MAUpB;IAED,MAAM,CAAC,MAAM,0BAWX;IAIM,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,aAAa,CAOnB;;IAyBF,iBAAiB;IA6BX,gBAAgB;
|
|
1
|
+
{"version":3,"file":"ds-cycle.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAY5C,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AACnB,OAAO,WAAW,CAAC;AAqCnB,qBAAa,KAAM,SAAQ,UAAU;IAEnC,MAAM,KAAK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;MAUpB;IAED,MAAM,CAAC,MAAM,0BAWX;IAIM,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,aAAa,CAOnB;;IAyBF,iBAAiB;IA6BX,gBAAgB;IA6EtB,sBAAsB;IAatB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IASnE,iBAAiB;IAoDvB,qBAAqB;IAKrB,oBAAoB;IA0BpB,iBAAiB,CAAC,CAAC,EAAE,KAAK;IAuJ1B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG;IA+C5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAgBrC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAyBtC,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAe/B,QAAQ,IAAI,MAAM;IAgElB,MAAM;YA0EQ,mBAAmB;IAwBjC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,yBAAyB;CAGlC;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,KAAK,CAAC;KACnB;CACF"}
|