ds-one 0.2.5-alpha.1 → 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/device.ts +10 -6
- package/DS1/0-face/i18n.ts +39 -90
- 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 +12 -15
- package/DS1/2-core/ds-cycle.ts +67 -21
- package/DS1/2-core/ds-date.ts +1 -2
- package/DS1/2-core/ds-icon.ts +4 -4
- package/DS1/2-core/ds-text.ts +27 -3
- package/DS1/2-core/ds-tooltip.ts +6 -12
- 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/LICENSE +1 -1
- package/README.md +43 -133
- 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 +0 -2
- package/dist/0-face/i18n.d.ts.map +1 -1
- package/dist/0-face/i18n.js +37 -74
- 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 +11 -13
- 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 +65 -19
- package/dist/2-core/ds-date.js +1 -1
- package/dist/2-core/ds-icon.js +4 -4
- 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 +6 -12
- 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-portfolio-panel.d.ts.map +1 -1
- package/dist/3-unit/ds-portfolio-singlenav.js +3 -3
- 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 +347 -265
- package/dist/ds-one.bundle.js.map +4 -4
- package/dist/ds-one.bundle.min.js +204 -80
- package/dist/ds-one.bundle.min.js.map +4 -4
- package/package.json +7 -8
- package/DS1/3-unit/doublenav-v1.ts +0 -105
- package/DS1/3-unit/ds-portfolio-doublenav.ts +0 -105
- package/DS1/3-unit/ds-portfolio-panel.ts +0 -27
- package/DS1/3-unit/ds-portfolio-singlenav.ts +0 -79
- package/DS1/3-unit/list-v1.ts +0 -24
- package/DS1/3-unit/panel-v1.ts +0 -26
- package/DS1/3-unit/row-v1.ts +0 -52
- package/DS1/3-unit/singlenav-v1.ts +0 -78
- /package/DS1/x-icon/{row..svg → row.svg} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LitElement, html, css } from "lit";
|
|
2
|
-
import { translate
|
|
2
|
+
import { translate } from "../0-face/i18n";
|
|
3
3
|
export class Tooltip extends LitElement {
|
|
4
4
|
constructor() {
|
|
5
5
|
super();
|
|
@@ -58,19 +58,13 @@ export class Tooltip extends LitElement {
|
|
|
58
58
|
this._loadText();
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
_loadText() {
|
|
62
62
|
if (!this.key) {
|
|
63
63
|
this._text = this.defaultValue || "";
|
|
64
64
|
this.requestUpdate();
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
try {
|
|
68
|
-
const notionText = await getNotionText(this.key);
|
|
69
|
-
if (notionText) {
|
|
70
|
-
this._text = notionText;
|
|
71
|
-
this.requestUpdate();
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
68
|
const t = translate(this.key);
|
|
75
69
|
this._text = t && t !== this.key ? t : this.defaultValue || this.key;
|
|
76
70
|
}
|
|
@@ -114,10 +108,10 @@ Tooltip.styles = css `
|
|
|
114
108
|
position: absolute;
|
|
115
109
|
left: 50%;
|
|
116
110
|
bottom: 100%;
|
|
117
|
-
transform: translate(-50%, calc(-2px * var(--
|
|
111
|
+
transform: translate(-50%, calc(-2px * var(--sf)));
|
|
118
112
|
z-index: 1000;
|
|
119
113
|
pointer-events: none;
|
|
120
|
-
height: calc(var(--08) * var(--
|
|
114
|
+
height: calc(var(--08) * var(--sf));
|
|
121
115
|
opacity: 0;
|
|
122
116
|
transition:
|
|
123
117
|
opacity 120ms ease,
|
|
@@ -126,9 +120,9 @@ Tooltip.styles = css `
|
|
|
126
120
|
color: light-dark(var(--white), var(--black));
|
|
127
121
|
border-radius: 0;
|
|
128
122
|
font-size: var(--type-size-default);
|
|
129
|
-
padding: 0px calc(1px * var(--
|
|
123
|
+
padding: 0px calc(1px * var(--sf));
|
|
130
124
|
font-family: var(
|
|
131
|
-
--typeface,
|
|
125
|
+
--typeface-regular,
|
|
132
126
|
-apple-system,
|
|
133
127
|
BlinkMacSystemFont,
|
|
134
128
|
"Segoe UI",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-list.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-list.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-list.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,MAAM,0BAOX;IAEF,MAAM;CAGP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
|
package/dist/3-unit/ds-list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-portfolio-panel.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-portfolio-panel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-portfolio-panel.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-portfolio-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,MAAM,0BAQX;IAEF,MAAM;CAGP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
|
|
@@ -46,15 +46,15 @@ PortfolioSingleNav.styles = css `
|
|
|
46
46
|
:host {
|
|
47
47
|
display: flex;
|
|
48
48
|
justify-content: end;
|
|
49
|
-
gap: calc(5px * var(--
|
|
50
|
-
padding: calc(2px * var(--
|
|
49
|
+
gap: calc(5px * var(--sf));
|
|
50
|
+
padding: calc(2px * var(--sf));
|
|
51
51
|
align-items: center;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
a {
|
|
55
55
|
display: inline-flex;
|
|
56
56
|
align-items: center;
|
|
57
|
-
gap: calc(5px * var(--
|
|
57
|
+
gap: calc(5px * var(--sf));
|
|
58
58
|
text-decoration: none;
|
|
59
59
|
color: inherit;
|
|
60
60
|
}
|
package/dist/3-unit/ds-row.js
CHANGED
|
@@ -15,18 +15,18 @@ Row.styles = css `
|
|
|
15
15
|
:host {
|
|
16
16
|
display: flex;
|
|
17
17
|
align-items: end;
|
|
18
|
-
width: calc(240px * var(--
|
|
18
|
+
width: calc(240px * var(--sf));
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
:host([type="fill"]) {
|
|
22
22
|
justify-content: space-between;
|
|
23
|
-
height: calc(var(--1) * var(--
|
|
23
|
+
height: calc(var(--1) * var(--sf));
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
:host([type="centered"]) {
|
|
27
27
|
justify-content: center;
|
|
28
|
-
height: calc(var(--1) * var(--
|
|
29
|
-
gap: calc(var(--025) * var(--
|
|
28
|
+
height: calc(var(--1) * var(--sf));
|
|
29
|
+
gap: calc(var(--025) * var(--sf));
|
|
30
30
|
}
|
|
31
31
|
`;
|
|
32
32
|
customElements.define("ds-row", Row);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-table.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-table.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,UAAU;;;;;;;;;;;MAIf;IAEM,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;;IAS5B,MAAM,CAAC,MAAM,0BAmFX;IAEF,MAAM;
|
|
1
|
+
{"version":3,"file":"ds-table.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-table.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,UAAU;;;;;;;;;;;MAIf;IAEM,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;;IAS5B,MAAM,CAAC,MAAM,0BAmFX;IAEF,MAAM;CA0BP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
|
package/dist/3-unit/ds-table.js
CHANGED
|
@@ -12,7 +12,6 @@ export class DsTable extends LitElement {
|
|
|
12
12
|
return html `
|
|
13
13
|
<div class="table-container">
|
|
14
14
|
<div class="table-header">
|
|
15
|
-
|
|
16
15
|
<div class="header-cell product-cell">Product</div>
|
|
17
16
|
<div class="header-cell users-cell">Users</div>
|
|
18
17
|
<div class="header-cell retention-cell">Retention</div>
|
|
@@ -70,8 +69,8 @@ DsTable.styles = css `
|
|
|
70
69
|
display: flex;
|
|
71
70
|
align-items: center;
|
|
72
71
|
justify-content: left;
|
|
73
|
-
padding:
|
|
74
|
-
font-family: var(--typeface);
|
|
72
|
+
padding: 0 2px;
|
|
73
|
+
font-family: var(--typeface-regular);
|
|
75
74
|
font-size: var(--type-size-default);
|
|
76
75
|
font-weight: var(--type-weight-default);
|
|
77
76
|
line-height: var(--type-lineheight-default);
|
|
@@ -85,10 +84,10 @@ DsTable.styles = css `
|
|
|
85
84
|
display: flex;
|
|
86
85
|
align-items: center;
|
|
87
86
|
justify-content: left;
|
|
88
|
-
|
|
87
|
+
|
|
89
88
|
outline: 1px solid var(--black);
|
|
90
89
|
|
|
91
|
-
font-family: var(--typeface);
|
|
90
|
+
font-family: var(--typeface-regular);
|
|
92
91
|
font-size: var(--type-size-default);
|
|
93
92
|
font-weight: var(--type-weight-default);
|
|
94
93
|
line-height: var(--type-lineheight-default);
|
|
@@ -97,7 +96,7 @@ DsTable.styles = css `
|
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
.status-cell {
|
|
100
|
-
background-color: var(--
|
|
99
|
+
background-color: var(--apple-green);
|
|
101
100
|
}
|
|
102
101
|
|
|
103
102
|
.product-cell {
|
package/dist/4-page/ds-grid.d.ts
CHANGED
|
@@ -10,16 +10,9 @@ export declare class Grid extends LitElement {
|
|
|
10
10
|
align: {
|
|
11
11
|
type: StringConstructor;
|
|
12
12
|
};
|
|
13
|
-
_isMobile: {
|
|
14
|
-
type: BooleanConstructor;
|
|
15
|
-
state: boolean;
|
|
16
|
-
};
|
|
17
13
|
};
|
|
18
14
|
align?: string;
|
|
19
|
-
_isMobile: boolean;
|
|
20
|
-
connectedCallback(): void;
|
|
21
15
|
static styles: import("lit").CSSResult;
|
|
22
|
-
updated(): void;
|
|
23
16
|
render(): import("lit-html").TemplateResult<1>;
|
|
24
17
|
}
|
|
25
18
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-grid.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-grid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ds-grid.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-grid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,UAAU,GAAG,IAAI,CAAC;KAC5D;IACD,IAAI,cAAc,EAAE,qBAAqB,CAAC;CAC3C;AAED,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;MAEf;IAEF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,MAAM,0BAsDX;IAEF,MAAM;CAGP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
|
package/dist/4-page/ds-grid.js
CHANGED
|
@@ -1,53 +1,13 @@
|
|
|
1
1
|
// ds-grid.ts
|
|
2
2
|
// Simple grid layout component
|
|
3
3
|
import { LitElement, html, css } from "lit";
|
|
4
|
-
import { detectMobileDevice } from "../0-face/device";
|
|
5
4
|
export class Grid extends LitElement {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this._isMobile = false;
|
|
9
|
-
}
|
|
10
|
-
connectedCallback() {
|
|
11
|
-
super.connectedCallback();
|
|
12
|
-
this._isMobile = detectMobileDevice();
|
|
13
|
-
console.log(`[ds-grid] Mobile device: ${this._isMobile}`);
|
|
14
|
-
// Apply mobile class immediately
|
|
15
|
-
if (this._isMobile) {
|
|
16
|
-
this.classList.add("mobile");
|
|
17
|
-
console.log(`[ds-grid] Mobile class added`);
|
|
18
|
-
}
|
|
19
|
-
// Calculate mobile grid dimensions to fit screen
|
|
20
|
-
if (this._isMobile && typeof window !== "undefined") {
|
|
21
|
-
const screenWidth = window.innerWidth;
|
|
22
|
-
const columns = 14;
|
|
23
|
-
const gap = 0.5;
|
|
24
|
-
// Calculate column size accounting for gaps between columns
|
|
25
|
-
// Total width = (columns * columnSize) + ((columns - 1) * gap)
|
|
26
|
-
// Therefore: columnSize = (screenWidth - ((columns - 1) * gap)) / columns
|
|
27
|
-
const totalGapWidth = (columns - 1) * gap;
|
|
28
|
-
const columnSize = (screenWidth - totalGapWidth) / columns;
|
|
29
|
-
console.log(`[ds-grid] Mobile grid: ${columns} columns × ${columnSize.toFixed(2)}px + ${totalGapWidth}px gaps = ${screenWidth}px`);
|
|
30
|
-
// Set custom property for this grid instance
|
|
31
|
-
this.style.setProperty("--mobile-column-size", `${columnSize}px`);
|
|
32
|
-
this.style.setProperty("--mobile-gap", `${gap}px`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
updated() {
|
|
36
|
-
// Apply mobile class if detected as mobile device
|
|
37
|
-
if (this._isMobile) {
|
|
38
|
-
this.classList.add("mobile");
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.classList.remove("mobile");
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
5
|
render() {
|
|
45
6
|
return html ``;
|
|
46
7
|
}
|
|
47
8
|
}
|
|
48
9
|
Grid.properties = {
|
|
49
10
|
align: { type: String },
|
|
50
|
-
_isMobile: { type: Boolean, state: true },
|
|
51
11
|
};
|
|
52
12
|
Grid.styles = css `
|
|
53
13
|
:host {
|
|
@@ -55,17 +15,13 @@ Grid.styles = css `
|
|
|
55
15
|
margin-left: 0.5px !important;
|
|
56
16
|
display: grid;
|
|
57
17
|
width: 1440px;
|
|
58
|
-
height:
|
|
18
|
+
height: 360px;
|
|
59
19
|
grid-template-columns: repeat(auto-fill, 19px);
|
|
60
20
|
grid-template-rows: repeat(auto-fill, 19px);
|
|
61
21
|
gap: 1px;
|
|
62
|
-
row-rule: calc(1px * var(--
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
light-dark(rgb(147, 147, 147), rgb(147, 147, 147));
|
|
66
|
-
outline:
|
|
67
|
-
1px solid light-dark(rgb(147, 147, 147)),
|
|
68
|
-
rgb(147, 147, 147);
|
|
22
|
+
row-rule: calc(1px * var(--sf)) solid var(--grid-color);
|
|
23
|
+
column-rule: calc(1px * var(--sf)) solid var(--grid-color);
|
|
24
|
+
outline: 1px solid black;
|
|
69
25
|
position: fixed;
|
|
70
26
|
top: 0;
|
|
71
27
|
left: 50%;
|
|
@@ -76,21 +32,20 @@ Grid.styles = css `
|
|
|
76
32
|
|
|
77
33
|
/* DO NOT CHANGE THIS GRID CODE FOR MOBILE. ITS PERFECT FOR MOBILE. */
|
|
78
34
|
:host(.mobile) {
|
|
79
|
-
|
|
80
|
-
width: calc(100% - calc(1px * var(--scaling-factor)));
|
|
35
|
+
width: calc(100% - calc(1px * var(--sf)));
|
|
81
36
|
max-width: 100vw;
|
|
82
37
|
margin-left: 0 !important;
|
|
83
38
|
margin-top: 0 !important;
|
|
84
39
|
box-sizing: border-box;
|
|
85
40
|
position: fixed;
|
|
86
|
-
top: calc(0.5px * var(--
|
|
41
|
+
top: calc(0.5px * var(--sf));
|
|
87
42
|
left: 50%;
|
|
88
43
|
transform: translateX(-50%);
|
|
89
44
|
pointer-events: none;
|
|
90
45
|
z-index: 300;
|
|
91
|
-
gap: calc(1px * var(--
|
|
92
|
-
grid-template-columns: repeat(14, calc(19px * var(--
|
|
93
|
-
grid-template-rows: repeat(auto-fill, calc(19px * var(--
|
|
46
|
+
gap: calc(1px * var(--sf));
|
|
47
|
+
grid-template-columns: repeat(14, calc(19px * var(--sf)));
|
|
48
|
+
grid-template-rows: repeat(auto-fill, calc(19px * var(--sf)));
|
|
94
49
|
}
|
|
95
50
|
|
|
96
51
|
:host([align="left"]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-layout.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-layout.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,UAAU,GAAG,IAAI,CAAC;KAC5D;IACD,IAAI,cAAc,EAAE,qBAAqB,CAAC;CAC3C;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;MAIf;IAEF,IAAI,
|
|
1
|
+
{"version":3,"file":"ds-layout.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-layout.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,UAAU,GAAG,IAAI,CAAC;KAC5D;IACD,IAAI,cAAc,EAAE,qBAAqB,CAAC;CAC3C;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;MAIf;IAEF,IAAI,EAAE,MAAM,CAAe;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,MAAM,CAAC,MAAM,0BAiNX;IAEF,MAAM;CAqEP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB;CACF"}
|
package/dist/4-page/ds-layout.js
CHANGED
|
@@ -2,29 +2,73 @@
|
|
|
2
2
|
// Simple grid layout component with debug mode
|
|
3
3
|
import { LitElement, html, css } from "lit";
|
|
4
4
|
export class Layout extends LitElement {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.mode = "portfolio";
|
|
8
|
+
}
|
|
5
9
|
render() {
|
|
6
10
|
const isDebug = this.debug || this.mode === "debug";
|
|
11
|
+
const isPortfolio = this.mode === "portfolio";
|
|
7
12
|
const isCompany = this.mode === "company";
|
|
13
|
+
const isApp = this.mode === "app";
|
|
8
14
|
return html `
|
|
9
15
|
<slot></slot>
|
|
10
16
|
${isDebug
|
|
11
17
|
? html `
|
|
12
18
|
<div class="debug-overlay">
|
|
13
|
-
${
|
|
19
|
+
${isApp
|
|
14
20
|
? html `
|
|
15
|
-
<div class="debug-area debug-
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
<div class="debug-area debug-banner">
|
|
22
|
+
<ds-text key="banner">banner</ds-text>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="debug-area debug-header">
|
|
25
|
+
<ds-text key="header">header</ds-text>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div class="debug-area debug-main">
|
|
29
|
+
<ds-text key="main">main</ds-text>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="debug-area debug-footer-app">
|
|
32
|
+
<ds-text key="footer">footer</ds-text>
|
|
33
|
+
</div>
|
|
18
34
|
`
|
|
19
|
-
:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
: isCompany
|
|
36
|
+
? html `
|
|
37
|
+
<div class="debug-area debug-header">
|
|
38
|
+
<ds-text key="header">header</ds-text>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="debug-area debug-content">
|
|
41
|
+
<ds-text key="content">content</ds-text>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="debug-area debug-footer">
|
|
44
|
+
<ds-text key="footer">footer</ds-text>
|
|
45
|
+
</div>
|
|
46
|
+
`
|
|
47
|
+
: isPortfolio
|
|
48
|
+
? html `
|
|
49
|
+
<div class="debug-area debug-square">
|
|
50
|
+
<ds-text key="square">square</ds-text>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="debug-area debug-title">
|
|
53
|
+
<ds-text key="title">title</ds-text>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="debug-area debug-header">
|
|
56
|
+
<ds-text key="header">header</ds-text>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="debug-area debug-projects">
|
|
59
|
+
<ds-text key="projects">projects</ds-text>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="debug-area debug-bio">
|
|
62
|
+
<ds-text key="bio">bio</ds-text>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="debug-area debug-nav">
|
|
65
|
+
<ds-text key="nav">nav</ds-text>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="debug-area debug-footer">
|
|
68
|
+
<ds-text key="footer">footer</ds-text>
|
|
69
|
+
</div>
|
|
70
|
+
`
|
|
71
|
+
: ""}
|
|
28
72
|
</div>
|
|
29
73
|
`
|
|
30
74
|
: ""}
|
|
@@ -39,6 +83,11 @@ Layout.properties = {
|
|
|
39
83
|
Layout.styles = css `
|
|
40
84
|
:host {
|
|
41
85
|
display: grid;
|
|
86
|
+
position: relative;
|
|
87
|
+
width: 100%;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
:host([mode="portfolio"]) {
|
|
42
91
|
grid-template-columns: 120px 480px 40px;
|
|
43
92
|
grid-template-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px 120px;
|
|
44
93
|
grid-template-areas:
|
|
@@ -55,8 +104,6 @@ Layout.styles = css `
|
|
|
55
104
|
". . .";
|
|
56
105
|
min-height: 600px;
|
|
57
106
|
background-color: rgba(165, 165, 165, 0.03);
|
|
58
|
-
position: relative;
|
|
59
|
-
width: 100%;
|
|
60
107
|
max-width: 640px;
|
|
61
108
|
margin: 0 auto;
|
|
62
109
|
}
|
|
@@ -90,6 +137,29 @@ Layout.styles = css `
|
|
|
90
137
|
justify-self: end;
|
|
91
138
|
}
|
|
92
139
|
|
|
140
|
+
/* App mode - Base */
|
|
141
|
+
:host([mode="app"]) {
|
|
142
|
+
grid-template-columns: 1fr;
|
|
143
|
+
grid-template-rows: calc(var(--1) * var(--sf)) 20px 1fr auto;
|
|
144
|
+
grid-template-areas:
|
|
145
|
+
"banner"
|
|
146
|
+
"main"
|
|
147
|
+
"footer";
|
|
148
|
+
min-height: 100vh;
|
|
149
|
+
background-color: transparent;
|
|
150
|
+
width: 100%;
|
|
151
|
+
margin: 0 auto;
|
|
152
|
+
gap: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* App mode - with scaling factor */
|
|
156
|
+
:host([mode="app"]) {
|
|
157
|
+
max-width: calc(400px * var(--sf, 1));
|
|
158
|
+
padding: calc(60px * var(--sf, 1)) calc(28px * var(--sf, 1))
|
|
159
|
+
calc(9.751px * var(--sf, 1));
|
|
160
|
+
gap: calc(28px * var(--sf, 1));
|
|
161
|
+
}
|
|
162
|
+
|
|
93
163
|
.debug-overlay {
|
|
94
164
|
position: absolute;
|
|
95
165
|
margin-left: -1px;
|
|
@@ -102,6 +172,9 @@ Layout.styles = css `
|
|
|
102
172
|
display: grid;
|
|
103
173
|
font-size: 18px;
|
|
104
174
|
font-weight: bold;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:host([mode="portfolio"]) .debug-overlay {
|
|
105
178
|
grid-template-columns: 120px 480px;
|
|
106
179
|
grid-template-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px 120px;
|
|
107
180
|
grid-template-areas:
|
|
@@ -137,7 +210,7 @@ Layout.styles = css `
|
|
|
137
210
|
justify-content: center;
|
|
138
211
|
font-size: 10px;
|
|
139
212
|
font-weight: var(--type-weight-default);
|
|
140
|
-
font-family: var(--typeface);
|
|
213
|
+
font-family: var(--typeface-regular);
|
|
141
214
|
color: var(--black);
|
|
142
215
|
border: 1px solid red;
|
|
143
216
|
opacity: 1;
|
|
@@ -173,12 +246,48 @@ Layout.styles = css `
|
|
|
173
246
|
|
|
174
247
|
.debug-footer {
|
|
175
248
|
grid-area: footer;
|
|
176
|
-
border-color:
|
|
249
|
+
border-color: rgb(24, 147, 73);
|
|
250
|
+
background-color: rgba(127, 123, 11, 0.1);
|
|
177
251
|
}
|
|
178
252
|
|
|
179
253
|
.debug-content {
|
|
180
254
|
grid-area: content;
|
|
181
255
|
border-color: rgba(71, 231, 71, 0.63);
|
|
182
256
|
}
|
|
257
|
+
|
|
258
|
+
:host([mode="app"]) .debug-overlay {
|
|
259
|
+
grid-template-columns: 1fr;
|
|
260
|
+
grid-template-rows:
|
|
261
|
+
calc(var(--1) * var(--sf))
|
|
262
|
+
calc(var(--2) * var(--sf))
|
|
263
|
+
calc(var(--4) * var(--sf))
|
|
264
|
+
calc(var(--1) * var(--sf));
|
|
265
|
+
grid-template-areas:
|
|
266
|
+
"banner"
|
|
267
|
+
"header"
|
|
268
|
+
"main"
|
|
269
|
+
"footer";
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.debug-banner {
|
|
273
|
+
grid-area: banner;
|
|
274
|
+
border-color: #daed09;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.debug-header {
|
|
278
|
+
grid-area: header;
|
|
279
|
+
border-color: #0000ff;
|
|
280
|
+
background-color: rgba(127, 123, 11, 0.5);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.debug-main {
|
|
284
|
+
grid-area: main;
|
|
285
|
+
border-color: #0000ff;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.debug-footer-app {
|
|
289
|
+
grid-area: footer;
|
|
290
|
+
border-color: #ffa500;
|
|
291
|
+
}
|
|
183
292
|
`;
|
|
184
293
|
customElements.define("ds-layout", Layout);
|