ds-one 0.2.5-alpha.18 → 0.2.5-alpha.19

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.
Files changed (199) hide show
  1. package/DS1/0-face/device.ts +130 -0
  2. package/DS1/0-face/scaling.ts +152 -0
  3. package/DS1/1-root/one.css +48 -18
  4. package/DS1/2-core/ds-banner.ts +3 -77
  5. package/DS1/2-core/ds-button.ts +3 -67
  6. package/DS1/2-core/ds-card.ts +137 -0
  7. package/DS1/2-core/ds-cycle.ts +3 -22
  8. package/DS1/2-core/ds-date.ts +3 -9
  9. package/DS1/2-core/ds-gap.ts +3 -75
  10. package/DS1/2-core/ds-icon.ts +3 -33
  11. package/DS1/2-core/ds-input.ts +306 -1
  12. package/DS1/2-core/ds-pagedots.ts +52 -0
  13. package/DS1/2-core/ds-text.ts +3 -29
  14. package/DS1/2-core/ds-tooltip.ts +3 -49
  15. package/DS1/2-core/styles/ds-banner.css +77 -0
  16. package/DS1/2-core/styles/ds-button.css +67 -0
  17. package/DS1/2-core/styles/ds-cycle.css +21 -0
  18. package/DS1/2-core/styles/ds-date.css +9 -0
  19. package/DS1/2-core/styles/ds-gap.css +93 -0
  20. package/DS1/2-core/styles/ds-icon.css +30 -0
  21. package/DS1/2-core/styles/ds-input.css +46 -0
  22. package/DS1/2-core/styles/ds-pagedots.css +27 -0
  23. package/DS1/2-core/styles/ds-text.css +29 -0
  24. package/DS1/2-core/styles/ds-tooltip.css +49 -0
  25. package/DS1/3-unit/ds-accordion.ts +3 -46
  26. package/DS1/3-unit/ds-form.ts +304 -0
  27. package/DS1/3-unit/ds-list.ts +5 -14
  28. package/DS1/3-unit/ds-row.ts +3 -19
  29. package/DS1/3-unit/ds-table.ts +3 -85
  30. package/DS1/3-unit/styles/ds-accordion.css +46 -0
  31. package/DS1/3-unit/styles/ds-list.css +9 -0
  32. package/DS1/3-unit/styles/ds-row.css +19 -0
  33. package/DS1/3-unit/styles/ds-table.css +80 -0
  34. package/DS1/4-page/ds-container.ts +3 -35
  35. package/DS1/4-page/ds-grid.ts +3 -56
  36. package/DS1/4-page/ds-layout.ts +528 -50
  37. package/DS1/4-page/styles/ds-container.css +35 -0
  38. package/DS1/4-page/styles/ds-grid.css +56 -0
  39. package/DS1/4-page/styles/ds-layout.css +251 -0
  40. package/DS1/index.ts +7 -3
  41. package/DS1/vite-env.d.ts +9 -0
  42. package/DS1/x-icon/2x.svg +4 -0
  43. package/DS1/x-icon/2xdots.svg +18 -0
  44. package/DS1/x-icon/2xgrid.svg +6 -0
  45. package/DS1/x-icon/2xlines.svg +6 -0
  46. package/DS1/x-icon/4x4.svg +18 -0
  47. package/DS1/x-icon/apple.svg +4 -0
  48. package/DS1/x-icon/avatar.svg +4 -0
  49. package/DS1/x-icon/big.svg +4 -0
  50. package/DS1/x-icon/blank.svg +3 -0
  51. package/DS1/x-icon/check.svg +3 -0
  52. package/DS1/x-icon/close.svg +3 -0
  53. package/DS1/x-icon/collapse.svg +3 -0
  54. package/DS1/x-icon/color.svg +4 -0
  55. package/DS1/x-icon/column.svg +5 -0
  56. package/DS1/x-icon/default.svg +3 -0
  57. package/DS1/x-icon/delete.svg +5 -0
  58. package/DS1/x-icon/dictate.svg +6 -0
  59. package/DS1/x-icon/do.svg +3 -0
  60. package/DS1/x-icon/down.svg +3 -0
  61. package/DS1/x-icon/duplicate.svg +4 -0
  62. package/DS1/x-icon/gallery.svg +5 -0
  63. package/DS1/x-icon/google.svg +6 -0
  64. package/DS1/x-icon/head.svg +5 -0
  65. package/DS1/x-icon/home.svg +3 -0
  66. package/DS1/x-icon/icon.svg +4 -0
  67. package/DS1/x-icon/in.svg +4 -0
  68. package/DS1/x-icon/lock.svg +5 -0
  69. package/DS1/x-icon/loop.svg +5 -0
  70. package/DS1/x-icon/mic.svg +5 -0
  71. package/DS1/x-icon/minimize.svg +3 -0
  72. package/DS1/x-icon/more.svg +5 -0
  73. package/DS1/x-icon/neutral.svg +6 -0
  74. package/DS1/x-icon/note.svg +6 -0
  75. package/DS1/x-icon/page.svg +4 -0
  76. package/DS1/x-icon/plus.svg +3 -0
  77. package/DS1/x-icon/rewind.svg +4 -0
  78. package/DS1/x-icon/row.svg +5 -0
  79. package/DS1/x-icon/sdown.svg +3 -0
  80. package/DS1/x-icon/search.svg +4 -0
  81. package/DS1/x-icon/see.svg +4 -0
  82. package/DS1/x-icon/ship.svg +5 -0
  83. package/DS1/x-icon/star.svg +3 -0
  84. package/DS1/x-icon/status.svg +4 -0
  85. package/DS1/x-icon/sup.svg +3 -0
  86. package/DS1/x-icon/title.svg +3 -0
  87. package/DS1/x-icon/undo.svg +3 -0
  88. package/DS1/x-icon/ungroup.svg +4 -0
  89. package/DS1/x-icon/unhead.svg +3 -0
  90. package/DS1/x-icon/unicon.svg +3 -0
  91. package/DS1/x-icon/unlock.svg +5 -0
  92. package/DS1/x-icon/unmic.svg +6 -0
  93. package/DS1/x-icon/unsee.svg +5 -0
  94. package/DS1/x-icon/unstar.svg +3 -0
  95. package/DS1/x-icon/untitle.svg +3 -0
  96. package/DS1/x-icon/up.svg +3 -0
  97. package/README.md +2 -2
  98. package/dist/0-face/device.d.ts +5 -0
  99. package/dist/0-face/device.d.ts.map +1 -1
  100. package/dist/0-face/device.js +105 -0
  101. package/dist/0-face/scaling.d.ts +48 -0
  102. package/dist/0-face/scaling.d.ts.map +1 -0
  103. package/dist/0-face/scaling.js +114 -0
  104. package/dist/2-core/ds-banner.d.ts.map +1 -1
  105. package/dist/2-core/ds-banner.js +3 -77
  106. package/dist/2-core/ds-button.d.ts.map +1 -1
  107. package/dist/2-core/ds-button.js +3 -67
  108. package/dist/2-core/ds-card.d.ts +39 -0
  109. package/dist/2-core/ds-card.d.ts.map +1 -0
  110. package/dist/2-core/ds-card.js +119 -0
  111. package/dist/2-core/ds-cycle.d.ts.map +1 -1
  112. package/dist/2-core/ds-cycle.js +3 -22
  113. package/dist/2-core/ds-date.d.ts.map +1 -1
  114. package/dist/2-core/ds-date.js +3 -9
  115. package/dist/2-core/ds-gap.d.ts.map +1 -1
  116. package/dist/2-core/ds-gap.js +3 -75
  117. package/dist/2-core/ds-icon.d.ts.map +1 -1
  118. package/dist/2-core/ds-icon.js +3 -33
  119. package/dist/2-core/ds-input.d.ts +127 -0
  120. package/dist/2-core/ds-input.d.ts.map +1 -1
  121. package/dist/2-core/ds-input.js +252 -1
  122. package/dist/2-core/ds-pagedots.d.ts +32 -0
  123. package/dist/2-core/ds-pagedots.d.ts.map +1 -0
  124. package/dist/2-core/ds-pagedots.js +36 -0
  125. package/dist/2-core/ds-text.d.ts.map +1 -1
  126. package/dist/2-core/ds-text.js +3 -29
  127. package/dist/2-core/ds-tooltip.d.ts.map +1 -1
  128. package/dist/2-core/ds-tooltip.js +3 -49
  129. package/dist/2-core/styles/ds-banner.css +77 -0
  130. package/dist/2-core/styles/ds-button.css +67 -0
  131. package/dist/2-core/styles/ds-cycle.css +21 -0
  132. package/dist/2-core/styles/ds-date.css +9 -0
  133. package/dist/2-core/styles/ds-gap.css +93 -0
  134. package/dist/2-core/styles/ds-icon.css +30 -0
  135. package/dist/2-core/styles/ds-input.css +46 -0
  136. package/dist/2-core/styles/ds-pagedots.css +26 -0
  137. package/dist/2-core/styles/ds-text.css +29 -0
  138. package/dist/2-core/styles/ds-tooltip.css +49 -0
  139. package/dist/3-unit/ds-accordion.d.ts.map +1 -1
  140. package/dist/3-unit/ds-accordion.js +3 -46
  141. package/dist/3-unit/ds-form.d.ts +70 -0
  142. package/dist/3-unit/ds-form.d.ts.map +1 -0
  143. package/dist/3-unit/ds-form.js +232 -0
  144. package/dist/3-unit/ds-list.d.ts.map +1 -1
  145. package/dist/3-unit/ds-list.js +5 -11
  146. package/dist/3-unit/ds-row.d.ts.map +1 -1
  147. package/dist/3-unit/ds-row.js +3 -19
  148. package/dist/3-unit/ds-table.d.ts.map +1 -1
  149. package/dist/3-unit/ds-table.js +3 -85
  150. package/dist/3-unit/styles/ds-accordion.css +46 -0
  151. package/dist/3-unit/styles/ds-list.css +9 -0
  152. package/dist/3-unit/styles/ds-row.css +19 -0
  153. package/dist/3-unit/styles/ds-table.css +80 -0
  154. package/dist/4-page/ds-container.d.ts.map +1 -1
  155. package/dist/4-page/ds-container.js +3 -35
  156. package/dist/4-page/ds-grid.d.ts.map +1 -1
  157. package/dist/4-page/ds-grid.js +3 -56
  158. package/dist/4-page/ds-layout.d.ts +1 -1
  159. package/dist/4-page/ds-layout.d.ts.map +1 -1
  160. package/dist/4-page/ds-layout.js +528 -50
  161. package/dist/4-page/styles/ds-container.css +35 -0
  162. package/dist/4-page/styles/ds-grid.css +56 -0
  163. package/dist/4-page/styles/ds-layout.css +251 -0
  164. package/dist/ds-one.bundle.css +700 -0
  165. package/dist/ds-one.bundle.css.map +7 -0
  166. package/dist/ds-one.bundle.js +1285 -607
  167. package/dist/ds-one.bundle.js.map +4 -4
  168. package/dist/ds-one.bundle.min.css +2 -0
  169. package/dist/ds-one.bundle.min.css.map +7 -0
  170. package/dist/ds-one.bundle.min.js +766 -599
  171. package/dist/ds-one.bundle.min.js.map +4 -4
  172. package/dist/index.d.ts +7 -3
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +7 -3
  175. package/package.json +1 -1
  176. package/dist/3-unit/doublenav-v1.d.ts +0 -51
  177. package/dist/3-unit/doublenav-v1.d.ts.map +0 -1
  178. package/dist/3-unit/doublenav-v1.js +0 -88
  179. package/dist/3-unit/ds-portfolio-doublenav.d.ts +0 -51
  180. package/dist/3-unit/ds-portfolio-doublenav.d.ts.map +0 -1
  181. package/dist/3-unit/ds-portfolio-doublenav.js +0 -88
  182. package/dist/3-unit/ds-portfolio-panel.d.ts +0 -11
  183. package/dist/3-unit/ds-portfolio-panel.d.ts.map +0 -1
  184. package/dist/3-unit/ds-portfolio-panel.js +0 -16
  185. package/dist/3-unit/ds-portfolio-singlenav.d.ts +0 -32
  186. package/dist/3-unit/ds-portfolio-singlenav.d.ts.map +0 -1
  187. package/dist/3-unit/ds-portfolio-singlenav.js +0 -62
  188. package/dist/3-unit/list-v1.d.ts +0 -11
  189. package/dist/3-unit/list-v1.d.ts.map +0 -1
  190. package/dist/3-unit/list-v1.js +0 -15
  191. package/dist/3-unit/panel-v1.d.ts +0 -11
  192. package/dist/3-unit/panel-v1.d.ts.map +0 -1
  193. package/dist/3-unit/panel-v1.js +0 -16
  194. package/dist/3-unit/row-v1.d.ts +0 -25
  195. package/dist/3-unit/row-v1.d.ts.map +0 -1
  196. package/dist/3-unit/row-v1.js +0 -32
  197. package/dist/3-unit/singlenav-v1.d.ts +0 -32
  198. package/dist/3-unit/singlenav-v1.d.ts.map +0 -1
  199. package/dist/3-unit/singlenav-v1.js +0 -62
@@ -1,6 +1,7 @@
1
1
  // ds-layout.ts
2
2
  // Simple grid layout component with view mode
3
- import { LitElement, html, css } from "lit";
3
+ import { LitElement, html, css, unsafeCSS } from "lit";
4
+ import styles from "./styles/ds-layout.css?inline";
4
5
  export class Layout extends LitElement {
5
6
  constructor() {
6
7
  super(...arguments);
@@ -11,64 +12,195 @@ export class Layout extends LitElement {
11
12
  const isPortfolio = this.mode === "portfolio";
12
13
  const isCompany = this.mode === "company";
13
14
  const isApp = this.mode === "app";
15
+ const isList = this.mode === "list";
16
+ const isHome = this.mode === "home";
14
17
  return html `
15
18
  <slot></slot>
16
19
  ${isView
17
20
  ? html `
18
21
  <div class="view-overlay">
19
- ${isApp
22
+ ${isHome
20
23
  ? html `
21
24
  <div class="view-area view-banner">
22
- <ds-text key="banner">banner</ds-text>
25
+ <div class="grid-area-label">
26
+ <ds-text key="banner" default-value="banner"></ds-text>
27
+ </div>
23
28
  </div>
24
29
  <div class="view-area view-header">
25
- <ds-text key="header">header</ds-text>
30
+ <div class="grid-area-label">
31
+ <ds-text key="header" default-value="header"></ds-text>
32
+ </div>
26
33
  </div>
27
-
28
- <div class="view-area view-main">
29
- <ds-text key="main">main</ds-text>
34
+ <div class="view-area view-message">
35
+ <div class="grid-area-label">
36
+ <ds-text
37
+ key="message"
38
+ default-value="message"
39
+ ></ds-text>
40
+ </div>
41
+ </div>
42
+ <div class="view-area view-lists">
43
+ <div class="grid-area-label">
44
+ <ds-text key="lists" default-value="lists"></ds-text>
45
+ </div>
30
46
  </div>
31
47
  <div class="view-area view-footer">
32
- <ds-text key="footer">footer</ds-text>
48
+ <div class="grid-area-label">
49
+ <ds-text key="footer" default-value="footer"></ds-text>
50
+ </div>
33
51
  </div>
34
52
  `
35
- : isCompany
53
+ : isList
36
54
  ? html `
37
- <div class="view-area view-header">
38
- <ds-text key="header">header</ds-text>
55
+ <div class="view-area view-banner">
56
+ <div class="grid-area-label">
57
+ <ds-text
58
+ key="banner"
59
+ default-value="banner"
60
+ ></ds-text>
61
+ </div>
39
62
  </div>
40
- <div class="view-area view-content">
41
- <ds-text key="content">content</ds-text>
63
+ <div class="view-area view-header">
64
+ <div class="grid-area-label">
65
+ <ds-text
66
+ key="header"
67
+ default-value="header"
68
+ ></ds-text>
69
+ </div>
42
70
  </div>
43
- <div class="view-area view-footer">
44
- <ds-text key="footer">footer</ds-text>
71
+ <div class="view-area view-board">
72
+ <div class="grid-area-label">
73
+ <ds-text key="board" default-value="board"></ds-text>
74
+ </div>
45
75
  </div>
46
76
  `
47
- : isPortfolio
77
+ : isApp
48
78
  ? html `
49
- <div class="view-area view-square">
50
- <ds-text key="square">square</ds-text>
51
- </div>
52
- <div class="view-area view-title">
53
- <ds-text key="title">title</ds-text>
79
+ <div class="view-area view-banner">
80
+ <div class="grid-area-label">
81
+ <ds-text
82
+ key="banner"
83
+ default-value="banner"
84
+ ></ds-text>
85
+ </div>
54
86
  </div>
55
87
  <div class="view-area view-header">
56
- <ds-text key="header">header</ds-text>
57
- </div>
58
- <div class="view-area view-projects">
59
- <ds-text key="projects">projects</ds-text>
88
+ <div class="grid-area-label">
89
+ <ds-text
90
+ key="header"
91
+ default-value="header"
92
+ ></ds-text>
93
+ </div>
60
94
  </div>
61
- <div class="view-area view-bio">
62
- <ds-text key="bio">bio</ds-text>
95
+ <div class="view-area view-main">
96
+ <div class="grid-area-label">
97
+ <ds-text key="main" default-value="main"></ds-text>
98
+ </div>
63
99
  </div>
64
- <div class="view-area view-nav">
65
- <ds-text key="nav">nav</ds-text>
100
+ <div class="view-area view-page-dots">
101
+ <div class="grid-area-label">
102
+ <ds-text
103
+ key="pageDots"
104
+ default-value="page-dots"
105
+ ></ds-text>
106
+ </div>
66
107
  </div>
67
108
  <div class="view-area view-footer">
68
- <ds-text key="footer">footer</ds-text>
109
+ <div class="grid-area-label">
110
+ <ds-text
111
+ key="footer"
112
+ default-value="footer"
113
+ ></ds-text>
114
+ </div>
69
115
  </div>
70
116
  `
71
- : ""}
117
+ : isCompany
118
+ ? html `
119
+ <div class="view-area view-header">
120
+ <div class="grid-area-label">
121
+ <ds-text
122
+ key="header"
123
+ default-value="header"
124
+ ></ds-text>
125
+ </div>
126
+ </div>
127
+ <div class="view-area view-content">
128
+ <div class="grid-area-label">
129
+ <ds-text
130
+ key="content"
131
+ default-value="content"
132
+ ></ds-text>
133
+ </div>
134
+ </div>
135
+ <div class="view-area view-footer">
136
+ <div class="grid-area-label">
137
+ <ds-text
138
+ key="footer"
139
+ default-value="footer"
140
+ ></ds-text>
141
+ </div>
142
+ </div>
143
+ `
144
+ : isPortfolio
145
+ ? html `
146
+ <div class="view-area view-square">
147
+ <div class="grid-area-label">
148
+ <ds-text
149
+ key="square"
150
+ default-value="square"
151
+ ></ds-text>
152
+ </div>
153
+ </div>
154
+ <div class="view-area view-title">
155
+ <div class="grid-area-label">
156
+ <ds-text
157
+ key="title"
158
+ default-value="title"
159
+ ></ds-text>
160
+ </div>
161
+ </div>
162
+ <div class="view-area view-header">
163
+ <div class="grid-area-label">
164
+ <ds-text
165
+ key="header"
166
+ default-value="header"
167
+ ></ds-text>
168
+ </div>
169
+ </div>
170
+ <div class="view-area view-projects">
171
+ <div class="grid-area-label">
172
+ <ds-text
173
+ key="projects"
174
+ default-value="projects"
175
+ ></ds-text>
176
+ </div>
177
+ </div>
178
+ <div class="view-area view-bio">
179
+ <div class="grid-area-label">
180
+ <ds-text
181
+ key="bio"
182
+ default-value="bio"
183
+ ></ds-text>
184
+ </div>
185
+ </div>
186
+ <div class="view-area view-nav">
187
+ <div class="grid-area-label">
188
+ <ds-text
189
+ key="nav"
190
+ default-value="nav"
191
+ ></ds-text>
192
+ </div>
193
+ </div>
194
+ <div class="view-area view-footer">
195
+ <div class="grid-area-label">
196
+ <ds-text
197
+ key="footer"
198
+ default-value="footer"
199
+ ></ds-text>
200
+ </div>
201
+ </div>
202
+ `
203
+ : ""}
72
204
  </div>
73
205
  `
74
206
  : ""}
@@ -80,7 +212,9 @@ Layout.properties = {
80
212
  align: { type: String },
81
213
  view: { type: Boolean },
82
214
  };
83
- Layout.styles = css `
215
+ Layout.styles = [
216
+ unsafeCSS(styles),
217
+ css `
84
218
  :host {
85
219
  display: grid;
86
220
  position: relative;
@@ -136,7 +270,9 @@ Layout.styles = css `
136
270
  :host([align="left"]),
137
271
  :host([mode="portfolio"][align="left"]),
138
272
  :host([mode="company"][align="left"]),
139
- :host([mode="app"][align="left"]) {
273
+ :host([mode="app"][align="left"]),
274
+ :host([mode="list"][align="left"]),
275
+ :host([mode="home"][align="left"]) {
140
276
  margin: 0;
141
277
  justify-self: start;
142
278
  }
@@ -144,7 +280,9 @@ Layout.styles = css `
144
280
  :host([align="center"]),
145
281
  :host([mode="portfolio"][align="center"]),
146
282
  :host([mode="company"][align="center"]),
147
- :host([mode="app"][align="center"]) {
283
+ :host([mode="app"][align="center"]),
284
+ :host([mode="list"][align="center"]),
285
+ :host([mode="home"][align="center"]) {
148
286
  margin: 0 auto;
149
287
  justify-self: center;
150
288
  }
@@ -152,7 +290,9 @@ Layout.styles = css `
152
290
  :host([align="right"]),
153
291
  :host([mode="portfolio"][align="right"]),
154
292
  :host([mode="company"][align="right"]),
155
- :host([mode="app"][align="right"]) {
293
+ :host([mode="app"][align="right"]),
294
+ :host([mode="list"][align="right"]),
295
+ :host([mode="home"][align="right"]) {
156
296
  margin: 0 0 0 auto;
157
297
  justify-self: end;
158
298
  }
@@ -160,20 +300,10 @@ Layout.styles = css `
160
300
  /* App mode - Base */
161
301
  :host([mode="app"]) {
162
302
  --app-cols: 100%;
163
- --app-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
164
- calc(var(--unit) * var(--sf)) calc(var(--double) * var(--sf))
165
- calc(var(--dozen) * var(--sf)) calc(var(--quad) * var(--sf))
166
- calc(var(--unit) * var(--sf));
167
- --app-areas: "banner" "." "header" "." "main" "." "footer";
168
303
  --app-overlay-cols: 100%;
169
- --app-overlay-rows: calc(var(--unit) * var(--sf))
170
- calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
171
- calc(var(--double) * var(--sf)) calc(var(--dozen) * var(--sf))
172
- calc(var(--quad) * var(--sf)) calc(var(--unit) * var(--sf));
173
- --app-overlay-areas: "banner" "." "header" "." "main" "." "footer";
174
304
  grid-template-columns: var(--app-cols);
175
- grid-template-rows: var(--app-rows);
176
- grid-template-areas: var(--app-areas);
305
+ grid-template-rows: var(--app-layout);
306
+ grid-template-areas: var(--app-layout-areas);
177
307
  min-height: 100vh;
178
308
  background-color: transparent;
179
309
  width: calc(240px * var(--sf, 1));
@@ -183,8 +313,58 @@ Layout.styles = css `
183
313
 
184
314
  :host([mode="app"]) .view-overlay {
185
315
  grid-template-columns: var(--app-overlay-cols);
186
- grid-template-rows: var(--app-overlay-rows);
187
- grid-template-areas: var(--app-overlay-areas);
316
+ grid-template-rows: var(--app-layout);
317
+ grid-template-areas: var(--app-layout-areas);
318
+ }
319
+
320
+ /* List mode - Base */
321
+ :host([mode="list"]) {
322
+ --list-cols: 100%;
323
+ --list-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
324
+ calc(var(--unit) * var(--sf)) calc(var(--twenty) * var(--sf));
325
+ --list-areas: "banner" "." "header" "board";
326
+ --list-overlay-cols: 100%;
327
+ --list-overlay-rows: calc(var(--unit) * var(--sf))
328
+ calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
329
+ calc(var(--twenty) * var(--sf));
330
+ --list-overlay-areas: "banner" "." "header" "board";
331
+ grid-template-columns: var(--list-cols);
332
+ grid-template-rows: var(--list-rows);
333
+ grid-template-areas: var(--list-areas);
334
+ min-height: 100vh;
335
+ background-color: transparent;
336
+ width: calc(240px * var(--sf, 1));
337
+ max-width: calc(240px * var(--sf, 1));
338
+ margin: 0 auto;
339
+ }
340
+
341
+ :host([mode="list"]) .view-overlay {
342
+ grid-template-columns: var(--list-overlay-cols);
343
+ grid-template-rows: var(--list-overlay-rows);
344
+ grid-template-areas: var(--list-overlay-areas);
345
+ }
346
+
347
+ /* Home mode - Base */
348
+ :host([mode="home"]) {
349
+ --home-cols: 100%;
350
+ --home-areas: "banner" "." "header" "." "message" "lists" "." "footer";
351
+ --home-overlay-cols: 100%;
352
+ --home-overlay-areas: "banner" "." "header" "." "message" "lists" "."
353
+ "footer";
354
+ grid-template-columns: var(--home-cols);
355
+ grid-template-rows: var(--home-layout);
356
+ grid-template-areas: var(--home-areas);
357
+ min-height: 100vh;
358
+ background-color: transparent;
359
+ width: calc(240px * var(--sf, 1));
360
+ max-width: calc(240px * var(--sf, 1));
361
+ margin: 0 auto;
362
+ }
363
+
364
+ :host([mode="home"]) .view-overlay {
365
+ grid-template-columns: var(--home-overlay-cols);
366
+ grid-template-rows: var(--home-layout);
367
+ grid-template-areas: var(--home-overlay-areas);
188
368
  }
189
369
 
190
370
  .view-overlay {
@@ -214,52 +394,333 @@ Layout.styles = css `
214
394
  transparent
215
395
  );
216
396
  opacity: 1;
397
+ position: relative;
398
+ }
399
+
400
+ .grid-area-label {
401
+ position: absolute;
402
+ top: calc(-20px * var(--sf, 1));
403
+ left: 0;
404
+ height: calc(20px * var(--sf, 1));
405
+ width: fit-content;
406
+ display: inline-flex;
407
+ align-items: center;
408
+ justify-content: center;
409
+ padding: 0 calc(4px * var(--sf, 1));
410
+ border-radius: calc(2px * var(--sf, 1));
411
+ z-index: 10000;
412
+ pointer-events: none;
413
+ white-space: nowrap;
414
+ }
415
+
416
+ /* Banner label stays inside the area (first item) */
417
+ :host([mode="app"]) .view-area.view-banner .grid-area-label,
418
+ :host([mode="list"]) .view-area.view-banner .grid-area-label,
419
+ :host([mode="home"]) .view-area.view-banner .grid-area-label,
420
+ :host([mode="company"]) .view-area.view-header .grid-area-label,
421
+ :host([mode="portfolio"]) .view-area.view-square .grid-area-label {
422
+ top: 0;
423
+ }
424
+
425
+ .grid-area-label ds-text {
426
+ font-size: calc(11px * var(--sf, 1));
427
+ line-height: 1;
428
+ color: white;
429
+ text-transform: lowercase;
217
430
  }
218
431
 
219
432
  :host([mode="portfolio"]) .view-area:nth-of-type(1) {
220
433
  background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
221
434
  }
435
+ :host([mode="portfolio"]) .view-area:nth-of-type(1) .grid-area-label {
436
+ background-image:
437
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
438
+ linear-gradient(
439
+ 90deg,
440
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
441
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
442
+ );
443
+ }
222
444
  :host([mode="portfolio"]) .view-area:nth-of-type(2) {
223
445
  border-color: var(--sharp-blue);
224
446
  }
447
+ :host([mode="portfolio"]) .view-area:nth-of-type(2) .grid-area-label {
448
+ background-image:
449
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
450
+ linear-gradient(
451
+ 90deg,
452
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
453
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
454
+ );
455
+ }
225
456
  :host([mode="portfolio"]) .view-area:nth-of-type(3) {
226
457
  border-color: var(--yellow);
227
458
  }
459
+ :host([mode="portfolio"]) .view-area:nth-of-type(3) .grid-area-label {
460
+ background-image:
461
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
462
+ linear-gradient(
463
+ 90deg,
464
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
465
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
466
+ );
467
+ }
228
468
  :host([mode="portfolio"]) .view-area:nth-of-type(4) {
229
469
  border-color: var(--apple-green);
230
470
  }
471
+ :host([mode="portfolio"]) .view-area:nth-of-type(4) .grid-area-label {
472
+ background-image:
473
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
474
+ linear-gradient(
475
+ 90deg,
476
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
477
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
478
+ );
479
+ }
231
480
  :host([mode="portfolio"]) .view-area:nth-of-type(5) {
232
481
  border-color: var(--pink);
233
482
  }
483
+ :host([mode="portfolio"]) .view-area:nth-of-type(5) .grid-area-label {
484
+ background-image:
485
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
486
+ linear-gradient(
487
+ 90deg,
488
+ color-mix(in srgb, var(--pink) 70%, black) 0%,
489
+ color-mix(in srgb, var(--pink) 70%, black) 100%
490
+ );
491
+ }
234
492
  :host([mode="portfolio"]) .view-area:nth-of-type(6) {
235
493
  border-color: var(--orange);
236
494
  }
495
+ :host([mode="portfolio"]) .view-area:nth-of-type(6) .grid-area-label {
496
+ background-image:
497
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
498
+ linear-gradient(
499
+ 90deg,
500
+ color-mix(in srgb, var(--orange) 70%, black) 0%,
501
+ color-mix(in srgb, var(--orange) 70%, black) 100%
502
+ );
503
+ }
237
504
  :host([mode="portfolio"]) .view-area:nth-of-type(7) {
238
505
  border-color: var(--zenith-blue);
239
506
  }
507
+ :host([mode="portfolio"]) .view-area:nth-of-type(7) .grid-area-label {
508
+ background-image:
509
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
510
+ linear-gradient(
511
+ 90deg,
512
+ color-mix(in srgb, var(--zenith-blue) 70%, black) 0%,
513
+ color-mix(in srgb, var(--zenith-blue) 70%, black) 100%
514
+ );
515
+ }
240
516
 
241
517
  :host([mode="company"]) .view-area:nth-of-type(1) {
242
518
  border-color: var(--tuned-red);
243
519
  }
520
+ :host([mode="company"]) .view-area:nth-of-type(1) .grid-area-label {
521
+ background-image:
522
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
523
+ linear-gradient(
524
+ 90deg,
525
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
526
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
527
+ );
528
+ }
244
529
  :host([mode="company"]) .view-area:nth-of-type(2) {
245
530
  border-color: var(--sharp-blue);
246
531
  }
532
+ :host([mode="company"]) .view-area:nth-of-type(2) .grid-area-label {
533
+ background-image:
534
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
535
+ linear-gradient(
536
+ 90deg,
537
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
538
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
539
+ );
540
+ }
247
541
  :host([mode="company"]) .view-area:nth-of-type(3) {
248
542
  border-color: var(--yellow);
249
543
  }
544
+ :host([mode="company"]) .view-area:nth-of-type(3) .grid-area-label {
545
+ background-image:
546
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
547
+ linear-gradient(
548
+ 90deg,
549
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
550
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
551
+ );
552
+ }
250
553
 
251
554
  :host([mode="app"]) .view-area:nth-of-type(1) {
252
555
  background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
253
556
  }
557
+ :host([mode="app"]) .view-area:nth-of-type(1) .grid-area-label {
558
+ background-image:
559
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
560
+ linear-gradient(
561
+ 90deg,
562
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
563
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
564
+ );
565
+ }
254
566
  :host([mode="app"]) .view-area:nth-of-type(2) {
255
567
  background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);
256
568
  }
569
+ :host([mode="app"]) .view-area:nth-of-type(2) .grid-area-label {
570
+ background-image:
571
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
572
+ linear-gradient(
573
+ 90deg,
574
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
575
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
576
+ );
577
+ }
257
578
  :host([mode="app"]) .view-area:nth-of-type(3) {
258
579
  background-color: color-mix(in srgb, var(--yellow) 25%, transparent);
259
580
  }
581
+ :host([mode="app"]) .view-area:nth-of-type(3) .grid-area-label {
582
+ background-image:
583
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
584
+ linear-gradient(
585
+ 90deg,
586
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
587
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
588
+ );
589
+ }
260
590
  :host([mode="app"]) .view-area:nth-of-type(4) {
261
591
  background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);
262
592
  }
593
+ :host([mode="app"]) .view-area:nth-of-type(4) .grid-area-label {
594
+ background-image:
595
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
596
+ linear-gradient(
597
+ 90deg,
598
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
599
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
600
+ );
601
+ }
602
+ :host([mode="app"]) .view-area:nth-of-type(5) {
603
+ background-color: color-mix(in srgb, var(--pink) 25%, transparent);
604
+ }
605
+ :host([mode="app"]) .view-area:nth-of-type(5) .grid-area-label {
606
+ background-image:
607
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
608
+ linear-gradient(
609
+ 90deg,
610
+ color-mix(in srgb, var(--pink) 70%, black) 0%,
611
+ color-mix(in srgb, var(--pink) 70%, black) 100%
612
+ );
613
+ }
614
+
615
+ :host([mode="list"]) .view-area:nth-of-type(1) {
616
+ background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
617
+ }
618
+ :host([mode="list"]) .view-area:nth-of-type(1) .grid-area-label {
619
+ background-image:
620
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
621
+ linear-gradient(
622
+ 90deg,
623
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
624
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
625
+ );
626
+ }
627
+ :host([mode="list"]) .view-area:nth-of-type(2) {
628
+ background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);
629
+ }
630
+ :host([mode="list"]) .view-area:nth-of-type(2) .grid-area-label {
631
+ background-image:
632
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
633
+ linear-gradient(
634
+ 90deg,
635
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
636
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
637
+ );
638
+ }
639
+ :host([mode="list"]) .view-area:nth-of-type(3) {
640
+ background-color: color-mix(in srgb, var(--yellow) 25%, transparent);
641
+ }
642
+ :host([mode="list"]) .view-area:nth-of-type(3) .grid-area-label {
643
+ background-image:
644
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
645
+ linear-gradient(
646
+ 90deg,
647
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
648
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
649
+ );
650
+ }
651
+ :host([mode="list"]) .view-area:nth-of-type(4) {
652
+ background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);
653
+ }
654
+ :host([mode="list"]) .view-area:nth-of-type(4) .grid-area-label {
655
+ background-image:
656
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
657
+ linear-gradient(
658
+ 90deg,
659
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
660
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
661
+ );
662
+ }
663
+
664
+ :host([mode="home"]) .view-area:nth-of-type(1) {
665
+ background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
666
+ }
667
+ :host([mode="home"]) .view-area:nth-of-type(1) .grid-area-label {
668
+ background-image:
669
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
670
+ linear-gradient(
671
+ 90deg,
672
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
673
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
674
+ );
675
+ }
676
+ :host([mode="home"]) .view-area:nth-of-type(2) {
677
+ background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);
678
+ }
679
+ :host([mode="home"]) .view-area:nth-of-type(2) .grid-area-label {
680
+ background-image:
681
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
682
+ linear-gradient(
683
+ 90deg,
684
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
685
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
686
+ );
687
+ }
688
+ :host([mode="home"]) .view-area:nth-of-type(3) {
689
+ background-color: color-mix(in srgb, var(--yellow) 25%, transparent);
690
+ }
691
+ :host([mode="home"]) .view-area:nth-of-type(3) .grid-area-label {
692
+ background-image:
693
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
694
+ linear-gradient(
695
+ 90deg,
696
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
697
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
698
+ );
699
+ }
700
+ :host([mode="home"]) .view-area:nth-of-type(4) {
701
+ background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);
702
+ }
703
+ :host([mode="home"]) .view-area:nth-of-type(4) .grid-area-label {
704
+ background-image:
705
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
706
+ linear-gradient(
707
+ 90deg,
708
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
709
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
710
+ );
711
+ }
712
+ :host([mode="home"]) .view-area:nth-of-type(5) {
713
+ background-color: color-mix(in srgb, var(--pink) 25%, transparent);
714
+ }
715
+ :host([mode="home"]) .view-area:nth-of-type(5) .grid-area-label {
716
+ background-image:
717
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
718
+ linear-gradient(
719
+ 90deg,
720
+ color-mix(in srgb, var(--pink) 70%, black) 0%,
721
+ color-mix(in srgb, var(--pink) 70%, black) 100%
722
+ );
723
+ }
263
724
 
264
725
  .view-square {
265
726
  grid-area: square;
@@ -300,5 +761,22 @@ Layout.styles = css `
300
761
  .view-main {
301
762
  grid-area: main;
302
763
  }
303
- `;
764
+
765
+ .view-page-dots {
766
+ grid-area: page-dots;
767
+ }
768
+
769
+ .view-board {
770
+ grid-area: board;
771
+ }
772
+
773
+ .view-message {
774
+ grid-area: message;
775
+ }
776
+
777
+ .view-lists {
778
+ grid-area: lists;
779
+ }
780
+ `
781
+ ];
304
782
  customElements.define("ds-layout", Layout);