ds-one 0.2.5-alpha.3 → 0.2.5-alpha.5
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/device.ts +10 -6
- package/DS1/0-face/i18n.ts +3 -1
- package/DS1/1-root/one.css +48 -46
- package/DS1/2-core/ds-cycle.ts +14 -1
- package/DS1/2-core/ds-icon.ts +4 -4
- package/DS1/2-core/ds-text.ts +10 -4
- package/DS1/2-core/ds-tooltip.ts +3 -3
- package/DS1/3-unit/ds-portfolio-singlenav.ts +3 -4
- package/DS1/3-unit/ds-row.ts +4 -5
- package/DS1/4-page/ds-grid.ts +9 -59
- package/DS1/4-page/ds-layout.ts +122 -17
- package/dist/0-face/device.d.ts.map +1 -1
- package/dist/0-face/device.js +7 -3
- package/dist/0-face/i18n.d.ts.map +1 -1
- package/dist/0-face/i18n.js +1 -1
- package/dist/2-core/ds-cycle.d.ts +1 -0
- package/dist/2-core/ds-cycle.d.ts.map +1 -1
- package/dist/2-core/ds-cycle.js +14 -1
- package/dist/2-core/ds-icon.js +4 -4
- package/dist/2-core/ds-text.d.ts.map +1 -1
- package/dist/2-core/ds-text.js +10 -4
- package/dist/2-core/ds-tooltip.js +3 -3
- package/dist/3-unit/ds-portfolio-singlenav.js +3 -3
- package/dist/3-unit/ds-row.js +4 -4
- 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 +125 -16
- package/dist/ds-one.bundle.js +232 -147
- package/dist/ds-one.bundle.js.map +4 -4
- package/dist/ds-one.bundle.min.js +171 -63
- package/dist/ds-one.bundle.min.js.map +4 -4
- package/package.json +2 -2
package/dist/ds-one.bundle.js
CHANGED
|
@@ -38,11 +38,13 @@ function initDeviceDetection() {
|
|
|
38
38
|
const designWidth = 280;
|
|
39
39
|
const actualWidth = deviceInfo.screenWidth;
|
|
40
40
|
const scalingFactor = actualWidth / designWidth;
|
|
41
|
-
document.documentElement.style.setProperty("--
|
|
41
|
+
document.documentElement.style.setProperty("--sf", scalingFactor.toFixed(3));
|
|
42
|
+
document.documentElement.style.setProperty("--sf", scalingFactor.toFixed(3));
|
|
42
43
|
console.log(`[DS one] Mobile device detected - ${deviceInfo.deviceType} (${deviceInfo.screenWidth}x${deviceInfo.screenHeight}), scaling factor: ${scalingFactor.toFixed(2)}`);
|
|
43
44
|
} else {
|
|
44
45
|
if (typeof document !== "undefined") {
|
|
45
|
-
document.documentElement.style.setProperty("--
|
|
46
|
+
document.documentElement.style.setProperty("--sf", "1");
|
|
47
|
+
document.documentElement.style.setProperty("--sf", "1");
|
|
46
48
|
}
|
|
47
49
|
console.log(`[DS one] Desktop device detected (${deviceInfo.screenWidth}x${deviceInfo.screenHeight})`);
|
|
48
50
|
}
|
|
@@ -452,7 +454,7 @@ function translate(key) {
|
|
|
452
454
|
if (lang !== defaultLanguage && translationData?.[defaultLanguage]?.[key]) {
|
|
453
455
|
return translationData[defaultLanguage][key];
|
|
454
456
|
}
|
|
455
|
-
console.warn(`[
|
|
457
|
+
console.warn(`[DS one (Internationalization)] No translation found for key "${key}"`);
|
|
456
458
|
return key;
|
|
457
459
|
}
|
|
458
460
|
function hasTranslation(key, language = currentLanguage.value) {
|
|
@@ -2247,8 +2249,8 @@ Icon.styles = i4`
|
|
|
2247
2249
|
display: inline-flex;
|
|
2248
2250
|
justify-content: center;
|
|
2249
2251
|
align-items: center;
|
|
2250
|
-
width: calc(16px * var(--
|
|
2251
|
-
height: calc(16px * var(--
|
|
2252
|
+
width: calc(16px * var(--sf));
|
|
2253
|
+
height: calc(16px * var(--sf));
|
|
2252
2254
|
}
|
|
2253
2255
|
|
|
2254
2256
|
svg {
|
|
@@ -2265,8 +2267,8 @@ Icon.styles = i4`
|
|
|
2265
2267
|
display: flex;
|
|
2266
2268
|
justify-content: center;
|
|
2267
2269
|
align-items: center;
|
|
2268
|
-
width: calc(16px * var(--
|
|
2269
|
-
height: calc(16px * var(--
|
|
2270
|
+
width: calc(16px * var(--sf));
|
|
2271
|
+
height: calc(16px * var(--sf));
|
|
2270
2272
|
}
|
|
2271
2273
|
|
|
2272
2274
|
/* Notes style color variable for future implementation */
|
|
@@ -2297,6 +2299,82 @@ Icon.iconNameToSvgMap = (() => {
|
|
|
2297
2299
|
customElements.define("ds-icon", Icon);
|
|
2298
2300
|
console.log("Icon component registered with custom elements registry");
|
|
2299
2301
|
|
|
2302
|
+
// dist/2-core/ds-text.js
|
|
2303
|
+
var Text = class extends i6 {
|
|
2304
|
+
static get properties() {
|
|
2305
|
+
return {
|
|
2306
|
+
key: { type: String, reflect: true },
|
|
2307
|
+
defaultValue: { type: String, reflect: true, attribute: "default-value" },
|
|
2308
|
+
fallback: { type: String, reflect: true },
|
|
2309
|
+
// Kept for backward compatibility
|
|
2310
|
+
_text: { type: String, state: true }
|
|
2311
|
+
};
|
|
2312
|
+
}
|
|
2313
|
+
constructor() {
|
|
2314
|
+
super();
|
|
2315
|
+
this.key = "";
|
|
2316
|
+
this.defaultValue = "";
|
|
2317
|
+
this.fallback = "";
|
|
2318
|
+
this._text = "";
|
|
2319
|
+
this.boundHandlers = {
|
|
2320
|
+
languageChanged: (() => {
|
|
2321
|
+
console.log("Language changed event received in ds-text");
|
|
2322
|
+
this._loadText();
|
|
2323
|
+
})
|
|
2324
|
+
};
|
|
2325
|
+
}
|
|
2326
|
+
connectedCallback() {
|
|
2327
|
+
super.connectedCallback();
|
|
2328
|
+
this._loadText();
|
|
2329
|
+
window.addEventListener("language-changed", this.boundHandlers.languageChanged);
|
|
2330
|
+
window.addEventListener("translations-loaded", this.boundHandlers.languageChanged);
|
|
2331
|
+
}
|
|
2332
|
+
disconnectedCallback() {
|
|
2333
|
+
super.disconnectedCallback();
|
|
2334
|
+
window.removeEventListener("language-changed", this.boundHandlers.languageChanged);
|
|
2335
|
+
window.removeEventListener("translations-loaded", this.boundHandlers.languageChanged);
|
|
2336
|
+
}
|
|
2337
|
+
updated(changedProperties) {
|
|
2338
|
+
super.updated(changedProperties);
|
|
2339
|
+
if (changedProperties.has("key") || changedProperties.has("defaultValue")) {
|
|
2340
|
+
this._loadText();
|
|
2341
|
+
}
|
|
2342
|
+
}
|
|
2343
|
+
_loadText() {
|
|
2344
|
+
if (!this.key) {
|
|
2345
|
+
this._text = this.defaultValue || this.fallback || "";
|
|
2346
|
+
return;
|
|
2347
|
+
}
|
|
2348
|
+
try {
|
|
2349
|
+
const text = getText(this.key);
|
|
2350
|
+
this._text = text || this.defaultValue || this.fallback || this.key;
|
|
2351
|
+
} catch (error) {
|
|
2352
|
+
console.error("Error loading text for key:", this.key, error);
|
|
2353
|
+
this._text = this.defaultValue || this.fallback || this.key;
|
|
2354
|
+
}
|
|
2355
|
+
this.requestUpdate();
|
|
2356
|
+
}
|
|
2357
|
+
render() {
|
|
2358
|
+
return x`<span>${this._text || this.defaultValue || this.key}</span>`;
|
|
2359
|
+
}
|
|
2360
|
+
};
|
|
2361
|
+
Text.styles = i4`
|
|
2362
|
+
:host {
|
|
2363
|
+
display: inline;
|
|
2364
|
+
font-family: var(--typeface);
|
|
2365
|
+
font-size: calc(var(--type-size-default) * var(--scaling-factor));
|
|
2366
|
+
font-weight: var(--type-weight-default);
|
|
2367
|
+
line-height: calc(var(--type-lineheight-default) * var(--scaling-factor));
|
|
2368
|
+
letter-spacing: calc(
|
|
2369
|
+
var(--type-letterspacing-default) * var(--scaling-factor)
|
|
2370
|
+
);
|
|
2371
|
+
text-align: var(--text-align-default);
|
|
2372
|
+
text-transform: var(--text-transform-default);
|
|
2373
|
+
text-decoration: var(--text-decoration-default);
|
|
2374
|
+
}
|
|
2375
|
+
`;
|
|
2376
|
+
customElements.define("ds-text", Text);
|
|
2377
|
+
|
|
2300
2378
|
// dist/2-core/ds-cycle.js
|
|
2301
2379
|
var saveAccentColor = (color) => {
|
|
2302
2380
|
localStorage.setItem("accentColor", color);
|
|
@@ -2657,7 +2735,15 @@ var Cycle = class extends i6 {
|
|
|
2657
2735
|
render() {
|
|
2658
2736
|
return x`
|
|
2659
2737
|
<div class="cycle-container">
|
|
2660
|
-
${this.type !== "icon-only" ? x
|
|
2738
|
+
${this.type !== "icon-only" ? x`${this.type === "language" ? x`<ds-text
|
|
2739
|
+
key="language"
|
|
2740
|
+
default-value="Language"
|
|
2741
|
+
class="cycle-label"
|
|
2742
|
+
></ds-text>` : this.type === "theme" ? x`<ds-text
|
|
2743
|
+
key="theme"
|
|
2744
|
+
default-value="Theme"
|
|
2745
|
+
class="cycle-label"
|
|
2746
|
+
></ds-text>` : x`<span class="cycle-label">${this.label}</span>`}` : ""}
|
|
2661
2747
|
<div
|
|
2662
2748
|
style="display: flex; align-items: center; ${this.type === "icon-only" ? "justify-content: center;" : ""}"
|
|
2663
2749
|
>
|
|
@@ -2735,76 +2821,6 @@ Cycle.styles = i4`
|
|
|
2735
2821
|
`;
|
|
2736
2822
|
customElements.define("ds-cycle", Cycle);
|
|
2737
2823
|
|
|
2738
|
-
// dist/2-core/ds-text.js
|
|
2739
|
-
var Text = class extends i6 {
|
|
2740
|
-
static get properties() {
|
|
2741
|
-
return {
|
|
2742
|
-
key: { type: String, reflect: true },
|
|
2743
|
-
defaultValue: { type: String, reflect: true, attribute: "default-value" },
|
|
2744
|
-
fallback: { type: String, reflect: true },
|
|
2745
|
-
// Kept for backward compatibility
|
|
2746
|
-
_text: { type: String, state: true }
|
|
2747
|
-
};
|
|
2748
|
-
}
|
|
2749
|
-
constructor() {
|
|
2750
|
-
super();
|
|
2751
|
-
this.key = "";
|
|
2752
|
-
this.defaultValue = "";
|
|
2753
|
-
this.fallback = "";
|
|
2754
|
-
this._text = "";
|
|
2755
|
-
this.boundHandlers = {
|
|
2756
|
-
languageChanged: (() => {
|
|
2757
|
-
console.log("Language changed event received in ds-text");
|
|
2758
|
-
this._loadText();
|
|
2759
|
-
})
|
|
2760
|
-
};
|
|
2761
|
-
}
|
|
2762
|
-
connectedCallback() {
|
|
2763
|
-
super.connectedCallback();
|
|
2764
|
-
this._loadText();
|
|
2765
|
-
window.addEventListener("language-changed", this.boundHandlers.languageChanged);
|
|
2766
|
-
window.addEventListener("translations-loaded", this.boundHandlers.languageChanged);
|
|
2767
|
-
}
|
|
2768
|
-
disconnectedCallback() {
|
|
2769
|
-
super.disconnectedCallback();
|
|
2770
|
-
window.removeEventListener("language-changed", this.boundHandlers.languageChanged);
|
|
2771
|
-
window.removeEventListener("translations-loaded", this.boundHandlers.languageChanged);
|
|
2772
|
-
}
|
|
2773
|
-
updated(changedProperties) {
|
|
2774
|
-
super.updated(changedProperties);
|
|
2775
|
-
if (changedProperties.has("key") || changedProperties.has("defaultValue")) {
|
|
2776
|
-
this._loadText();
|
|
2777
|
-
}
|
|
2778
|
-
}
|
|
2779
|
-
_loadText() {
|
|
2780
|
-
if (!this.key) {
|
|
2781
|
-
this._text = this.defaultValue || this.fallback || "";
|
|
2782
|
-
return;
|
|
2783
|
-
}
|
|
2784
|
-
try {
|
|
2785
|
-
const text = getText(this.key);
|
|
2786
|
-
this._text = text || this.defaultValue || this.fallback || this.key;
|
|
2787
|
-
} catch (error) {
|
|
2788
|
-
console.error("Error loading text for key:", this.key, error);
|
|
2789
|
-
this._text = this.defaultValue || this.fallback || this.key;
|
|
2790
|
-
}
|
|
2791
|
-
this.requestUpdate();
|
|
2792
|
-
}
|
|
2793
|
-
render() {
|
|
2794
|
-
return x`<span>${this._text || this.defaultValue || this.key}</span>`;
|
|
2795
|
-
}
|
|
2796
|
-
};
|
|
2797
|
-
Text.styles = i4`
|
|
2798
|
-
:host {
|
|
2799
|
-
display: inline;
|
|
2800
|
-
}
|
|
2801
|
-
|
|
2802
|
-
.loading {
|
|
2803
|
-
opacity: 0.6;
|
|
2804
|
-
}
|
|
2805
|
-
`;
|
|
2806
|
-
customElements.define("ds-text", Text);
|
|
2807
|
-
|
|
2808
2824
|
// dist/2-core/ds-tooltip.js
|
|
2809
2825
|
var Tooltip = class extends i6 {
|
|
2810
2826
|
constructor() {
|
|
@@ -2917,10 +2933,10 @@ Tooltip.styles = i4`
|
|
|
2917
2933
|
position: absolute;
|
|
2918
2934
|
left: 50%;
|
|
2919
2935
|
bottom: 100%;
|
|
2920
|
-
transform: translate(-50%, calc(-2px * var(--
|
|
2936
|
+
transform: translate(-50%, calc(-2px * var(--sf)));
|
|
2921
2937
|
z-index: 1000;
|
|
2922
2938
|
pointer-events: none;
|
|
2923
|
-
height: calc(var(--08) * var(--
|
|
2939
|
+
height: calc(var(--08) * var(--sf));
|
|
2924
2940
|
opacity: 0;
|
|
2925
2941
|
transition:
|
|
2926
2942
|
opacity 120ms ease,
|
|
@@ -2929,7 +2945,7 @@ Tooltip.styles = i4`
|
|
|
2929
2945
|
color: light-dark(var(--white), var(--black));
|
|
2930
2946
|
border-radius: 0;
|
|
2931
2947
|
font-size: var(--type-size-default);
|
|
2932
|
-
padding: 0px calc(1px * var(--
|
|
2948
|
+
padding: 0px calc(1px * var(--sf));
|
|
2933
2949
|
font-family: var(
|
|
2934
2950
|
--typeface,
|
|
2935
2951
|
-apple-system,
|
|
@@ -2999,18 +3015,18 @@ Row.styles = i4`
|
|
|
2999
3015
|
:host {
|
|
3000
3016
|
display: flex;
|
|
3001
3017
|
align-items: end;
|
|
3002
|
-
width: calc(240px * var(--
|
|
3018
|
+
width: calc(240px * var(--sf));
|
|
3003
3019
|
}
|
|
3004
3020
|
|
|
3005
3021
|
:host([type="fill"]) {
|
|
3006
3022
|
justify-content: space-between;
|
|
3007
|
-
height: calc(var(--1) * var(--
|
|
3023
|
+
height: calc(var(--1) * var(--sf));
|
|
3008
3024
|
}
|
|
3009
3025
|
|
|
3010
3026
|
:host([type="centered"]) {
|
|
3011
3027
|
justify-content: center;
|
|
3012
|
-
height: calc(var(--1) * var(--
|
|
3013
|
-
gap: calc(var(--025) * var(--
|
|
3028
|
+
height: calc(var(--1) * var(--sf));
|
|
3029
|
+
gap: calc(var(--025) * var(--sf));
|
|
3014
3030
|
}
|
|
3015
3031
|
`;
|
|
3016
3032
|
customElements.define("ds-row", Row);
|
|
@@ -3140,43 +3156,12 @@ customElements.define("ds-table", DsTable);
|
|
|
3140
3156
|
|
|
3141
3157
|
// dist/4-page/ds-grid.js
|
|
3142
3158
|
var Grid = class extends i6 {
|
|
3143
|
-
constructor() {
|
|
3144
|
-
super(...arguments);
|
|
3145
|
-
this._isMobile = false;
|
|
3146
|
-
}
|
|
3147
|
-
connectedCallback() {
|
|
3148
|
-
super.connectedCallback();
|
|
3149
|
-
this._isMobile = detectMobileDevice();
|
|
3150
|
-
console.log(`[ds-grid] Mobile device: ${this._isMobile}`);
|
|
3151
|
-
if (this._isMobile) {
|
|
3152
|
-
this.classList.add("mobile");
|
|
3153
|
-
console.log(`[ds-grid] Mobile class added`);
|
|
3154
|
-
}
|
|
3155
|
-
if (this._isMobile && typeof window !== "undefined") {
|
|
3156
|
-
const screenWidth = window.innerWidth;
|
|
3157
|
-
const columns = 14;
|
|
3158
|
-
const gap = 0.5;
|
|
3159
|
-
const totalGapWidth = (columns - 1) * gap;
|
|
3160
|
-
const columnSize = (screenWidth - totalGapWidth) / columns;
|
|
3161
|
-
console.log(`[ds-grid] Mobile grid: ${columns} columns \xD7 ${columnSize.toFixed(2)}px + ${totalGapWidth}px gaps = ${screenWidth}px`);
|
|
3162
|
-
this.style.setProperty("--mobile-column-size", `${columnSize}px`);
|
|
3163
|
-
this.style.setProperty("--mobile-gap", `${gap}px`);
|
|
3164
|
-
}
|
|
3165
|
-
}
|
|
3166
|
-
updated() {
|
|
3167
|
-
if (this._isMobile) {
|
|
3168
|
-
this.classList.add("mobile");
|
|
3169
|
-
} else {
|
|
3170
|
-
this.classList.remove("mobile");
|
|
3171
|
-
}
|
|
3172
|
-
}
|
|
3173
3159
|
render() {
|
|
3174
3160
|
return x``;
|
|
3175
3161
|
}
|
|
3176
3162
|
};
|
|
3177
3163
|
Grid.properties = {
|
|
3178
|
-
align: { type: String }
|
|
3179
|
-
_isMobile: { type: Boolean, state: true }
|
|
3164
|
+
align: { type: String }
|
|
3180
3165
|
};
|
|
3181
3166
|
Grid.styles = i4`
|
|
3182
3167
|
:host {
|
|
@@ -3184,17 +3169,13 @@ Grid.styles = i4`
|
|
|
3184
3169
|
margin-left: 0.5px !important;
|
|
3185
3170
|
display: grid;
|
|
3186
3171
|
width: 1440px;
|
|
3187
|
-
height:
|
|
3172
|
+
height: 360px;
|
|
3188
3173
|
grid-template-columns: repeat(auto-fill, 19px);
|
|
3189
3174
|
grid-template-rows: repeat(auto-fill, 19px);
|
|
3190
3175
|
gap: 1px;
|
|
3191
|
-
row-rule: calc(1px * var(--
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
light-dark(rgb(147, 147, 147), rgb(147, 147, 147));
|
|
3195
|
-
outline:
|
|
3196
|
-
1px solid light-dark(rgb(147, 147, 147)),
|
|
3197
|
-
rgb(147, 147, 147);
|
|
3176
|
+
row-rule: calc(1px * var(--sf)) solid var(--grid-color);
|
|
3177
|
+
column-rule: calc(1px * var(--sf)) solid var(--grid-color);
|
|
3178
|
+
outline: 1px solid black;
|
|
3198
3179
|
position: fixed;
|
|
3199
3180
|
top: 0;
|
|
3200
3181
|
left: 50%;
|
|
@@ -3205,21 +3186,20 @@ Grid.styles = i4`
|
|
|
3205
3186
|
|
|
3206
3187
|
/* DO NOT CHANGE THIS GRID CODE FOR MOBILE. ITS PERFECT FOR MOBILE. */
|
|
3207
3188
|
:host(.mobile) {
|
|
3208
|
-
|
|
3209
|
-
width: calc(100% - calc(1px * var(--scaling-factor)));
|
|
3189
|
+
width: calc(100% - calc(1px * var(--sf)));
|
|
3210
3190
|
max-width: 100vw;
|
|
3211
3191
|
margin-left: 0 !important;
|
|
3212
3192
|
margin-top: 0 !important;
|
|
3213
3193
|
box-sizing: border-box;
|
|
3214
3194
|
position: fixed;
|
|
3215
|
-
top: calc(0.5px * var(--
|
|
3195
|
+
top: calc(0.5px * var(--sf));
|
|
3216
3196
|
left: 50%;
|
|
3217
3197
|
transform: translateX(-50%);
|
|
3218
3198
|
pointer-events: none;
|
|
3219
3199
|
z-index: 300;
|
|
3220
|
-
gap: calc(1px * var(--
|
|
3221
|
-
grid-template-columns: repeat(14, calc(19px * var(--
|
|
3222
|
-
grid-template-rows: repeat(auto-fill, calc(19px * var(--
|
|
3200
|
+
gap: calc(1px * var(--sf));
|
|
3201
|
+
grid-template-columns: repeat(14, calc(19px * var(--sf)));
|
|
3202
|
+
grid-template-rows: repeat(auto-fill, calc(19px * var(--sf)));
|
|
3223
3203
|
}
|
|
3224
3204
|
|
|
3225
3205
|
:host([align="left"]) {
|
|
@@ -3242,26 +3222,66 @@ customElements.define("ds-grid", Grid);
|
|
|
3242
3222
|
|
|
3243
3223
|
// dist/4-page/ds-layout.js
|
|
3244
3224
|
var Layout = class extends i6 {
|
|
3225
|
+
constructor() {
|
|
3226
|
+
super(...arguments);
|
|
3227
|
+
this.mode = "portfolio";
|
|
3228
|
+
}
|
|
3245
3229
|
render() {
|
|
3246
3230
|
const isDebug = this.debug || this.mode === "debug";
|
|
3231
|
+
const isPortfolio = this.mode === "portfolio";
|
|
3247
3232
|
const isCompany = this.mode === "company";
|
|
3233
|
+
const isApp = this.mode === "app";
|
|
3248
3234
|
return x`
|
|
3249
3235
|
<slot></slot>
|
|
3250
3236
|
${isDebug ? x`
|
|
3251
3237
|
<div class="debug-overlay">
|
|
3252
|
-
${
|
|
3253
|
-
<div class="debug-area debug-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
<div class="debug-area debug-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
<div class="debug-area debug-footer">
|
|
3264
|
-
|
|
3238
|
+
${isApp ? x`
|
|
3239
|
+
<div class="debug-area debug-banner">
|
|
3240
|
+
<ds-text key="banner">banner</ds-text>
|
|
3241
|
+
</div>
|
|
3242
|
+
<div class="debug-area debug-header">
|
|
3243
|
+
<ds-text key="header">header</ds-text>
|
|
3244
|
+
</div>
|
|
3245
|
+
|
|
3246
|
+
<div class="debug-area debug-main">
|
|
3247
|
+
<ds-text key="main">main</ds-text>
|
|
3248
|
+
</div>
|
|
3249
|
+
<div class="debug-area debug-footer-app">
|
|
3250
|
+
<ds-text key="footer">footer</ds-text>
|
|
3251
|
+
</div>
|
|
3252
|
+
` : isCompany ? x`
|
|
3253
|
+
<div class="debug-area debug-header">
|
|
3254
|
+
<ds-text key="header">header</ds-text>
|
|
3255
|
+
</div>
|
|
3256
|
+
<div class="debug-area debug-content">
|
|
3257
|
+
<ds-text key="content">content</ds-text>
|
|
3258
|
+
</div>
|
|
3259
|
+
<div class="debug-area debug-footer">
|
|
3260
|
+
<ds-text key="footer">footer</ds-text>
|
|
3261
|
+
</div>
|
|
3262
|
+
` : isPortfolio ? x`
|
|
3263
|
+
<div class="debug-area debug-square">
|
|
3264
|
+
<ds-text key="square">square</ds-text>
|
|
3265
|
+
</div>
|
|
3266
|
+
<div class="debug-area debug-title">
|
|
3267
|
+
<ds-text key="title">title</ds-text>
|
|
3268
|
+
</div>
|
|
3269
|
+
<div class="debug-area debug-header">
|
|
3270
|
+
<ds-text key="header">header</ds-text>
|
|
3271
|
+
</div>
|
|
3272
|
+
<div class="debug-area debug-projects">
|
|
3273
|
+
<ds-text key="projects">projects</ds-text>
|
|
3274
|
+
</div>
|
|
3275
|
+
<div class="debug-area debug-bio">
|
|
3276
|
+
<ds-text key="bio">bio</ds-text>
|
|
3277
|
+
</div>
|
|
3278
|
+
<div class="debug-area debug-nav">
|
|
3279
|
+
<ds-text key="nav">nav</ds-text>
|
|
3280
|
+
</div>
|
|
3281
|
+
<div class="debug-area debug-footer">
|
|
3282
|
+
<ds-text key="footer">footer</ds-text>
|
|
3283
|
+
</div>
|
|
3284
|
+
` : ""}
|
|
3265
3285
|
</div>
|
|
3266
3286
|
` : ""}
|
|
3267
3287
|
`;
|
|
@@ -3275,6 +3295,11 @@ Layout.properties = {
|
|
|
3275
3295
|
Layout.styles = i4`
|
|
3276
3296
|
:host {
|
|
3277
3297
|
display: grid;
|
|
3298
|
+
position: relative;
|
|
3299
|
+
width: 100%;
|
|
3300
|
+
}
|
|
3301
|
+
|
|
3302
|
+
:host([mode="portfolio"]) {
|
|
3278
3303
|
grid-template-columns: 120px 480px 40px;
|
|
3279
3304
|
grid-template-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px 120px;
|
|
3280
3305
|
grid-template-areas:
|
|
@@ -3291,8 +3316,6 @@ Layout.styles = i4`
|
|
|
3291
3316
|
". . .";
|
|
3292
3317
|
min-height: 600px;
|
|
3293
3318
|
background-color: rgba(165, 165, 165, 0.03);
|
|
3294
|
-
position: relative;
|
|
3295
|
-
width: 100%;
|
|
3296
3319
|
max-width: 640px;
|
|
3297
3320
|
margin: 0 auto;
|
|
3298
3321
|
}
|
|
@@ -3326,6 +3349,29 @@ Layout.styles = i4`
|
|
|
3326
3349
|
justify-self: end;
|
|
3327
3350
|
}
|
|
3328
3351
|
|
|
3352
|
+
/* App mode - Base */
|
|
3353
|
+
:host([mode="app"]) {
|
|
3354
|
+
grid-template-columns: 1fr;
|
|
3355
|
+
grid-template-rows: calc(var(--1) * var(--sf)) 20px 1fr auto;
|
|
3356
|
+
grid-template-areas:
|
|
3357
|
+
"banner"
|
|
3358
|
+
"main"
|
|
3359
|
+
"footer";
|
|
3360
|
+
min-height: 100vh;
|
|
3361
|
+
background-color: transparent;
|
|
3362
|
+
width: 100%;
|
|
3363
|
+
margin: 0 auto;
|
|
3364
|
+
gap: 0;
|
|
3365
|
+
}
|
|
3366
|
+
|
|
3367
|
+
/* App mode - with scaling factor */
|
|
3368
|
+
:host([mode="app"]) {
|
|
3369
|
+
max-width: calc(400px * var(--sf, 1));
|
|
3370
|
+
padding: calc(60px * var(--sf, 1)) calc(28px * var(--sf, 1))
|
|
3371
|
+
calc(9.751px * var(--sf, 1));
|
|
3372
|
+
gap: calc(28px * var(--sf, 1));
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3329
3375
|
.debug-overlay {
|
|
3330
3376
|
position: absolute;
|
|
3331
3377
|
margin-left: -1px;
|
|
@@ -3338,6 +3384,9 @@ Layout.styles = i4`
|
|
|
3338
3384
|
display: grid;
|
|
3339
3385
|
font-size: 18px;
|
|
3340
3386
|
font-weight: bold;
|
|
3387
|
+
}
|
|
3388
|
+
|
|
3389
|
+
:host([mode="portfolio"]) .debug-overlay {
|
|
3341
3390
|
grid-template-columns: 120px 480px;
|
|
3342
3391
|
grid-template-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px 120px;
|
|
3343
3392
|
grid-template-areas:
|
|
@@ -3409,13 +3458,49 @@ Layout.styles = i4`
|
|
|
3409
3458
|
|
|
3410
3459
|
.debug-footer {
|
|
3411
3460
|
grid-area: footer;
|
|
3412
|
-
border-color:
|
|
3461
|
+
border-color: rgb(24, 147, 73);
|
|
3462
|
+
background-color: rgba(127, 123, 11, 0.1);
|
|
3413
3463
|
}
|
|
3414
3464
|
|
|
3415
3465
|
.debug-content {
|
|
3416
3466
|
grid-area: content;
|
|
3417
3467
|
border-color: rgba(71, 231, 71, 0.63);
|
|
3418
3468
|
}
|
|
3469
|
+
|
|
3470
|
+
:host([mode="app"]) .debug-overlay {
|
|
3471
|
+
grid-template-columns: 1fr;
|
|
3472
|
+
grid-template-rows:
|
|
3473
|
+
calc(var(--1) * var(--sf))
|
|
3474
|
+
calc(var(--2) * var(--sf))
|
|
3475
|
+
calc(var(--4) * var(--sf))
|
|
3476
|
+
calc(var(--1) * var(--sf));
|
|
3477
|
+
grid-template-areas:
|
|
3478
|
+
"banner"
|
|
3479
|
+
"header"
|
|
3480
|
+
"main"
|
|
3481
|
+
"footer";
|
|
3482
|
+
}
|
|
3483
|
+
|
|
3484
|
+
.debug-banner {
|
|
3485
|
+
grid-area: banner;
|
|
3486
|
+
border-color: #daed09;
|
|
3487
|
+
}
|
|
3488
|
+
|
|
3489
|
+
.debug-header {
|
|
3490
|
+
grid-area: header;
|
|
3491
|
+
border-color: #0000ff;
|
|
3492
|
+
background-color: rgba(127, 123, 11, 0.5);
|
|
3493
|
+
}
|
|
3494
|
+
|
|
3495
|
+
.debug-main {
|
|
3496
|
+
grid-area: main;
|
|
3497
|
+
border-color: #0000ff;
|
|
3498
|
+
}
|
|
3499
|
+
|
|
3500
|
+
.debug-footer-app {
|
|
3501
|
+
grid-area: footer;
|
|
3502
|
+
border-color: #ffa500;
|
|
3503
|
+
}
|
|
3419
3504
|
`;
|
|
3420
3505
|
customElements.define("ds-layout", Layout);
|
|
3421
3506
|
export {
|