@sankhyatronics/sankhya-cms 0.0.0-stage → 0.1.0
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/README.md +34 -3
- package/custom-elements.json +4008 -0
- package/dist/bento-grid/index.d.ts +27 -0
- package/dist/bento-grid/index.js +10 -0
- package/dist/bento-grid/index.js.map +1 -0
- package/dist/card/index.d.ts +20 -0
- package/dist/card/index.js +9 -0
- package/dist/card/index.js.map +1 -0
- package/dist/carousel/index.d.ts +44 -0
- package/dist/carousel/index.js +10 -0
- package/dist/carousel/index.js.map +1 -0
- package/dist/chunk-23IHTBAB.js +557 -0
- package/dist/chunk-23IHTBAB.js.map +1 -0
- package/dist/chunk-2VZFHTBC.js +203 -0
- package/dist/chunk-2VZFHTBC.js.map +1 -0
- package/dist/chunk-3ERKQNZT.js +155 -0
- package/dist/chunk-3ERKQNZT.js.map +1 -0
- package/dist/chunk-3JU3R22O.js +193 -0
- package/dist/chunk-3JU3R22O.js.map +1 -0
- package/dist/chunk-3TCP25JG.js +347 -0
- package/dist/chunk-3TCP25JG.js.map +1 -0
- package/dist/chunk-3VE6VFJ4.js +87 -0
- package/dist/chunk-3VE6VFJ4.js.map +1 -0
- package/dist/chunk-4HKSA5UT.js +312 -0
- package/dist/chunk-4HKSA5UT.js.map +1 -0
- package/dist/chunk-5REZSZCK.js +266 -0
- package/dist/chunk-5REZSZCK.js.map +1 -0
- package/dist/chunk-5UFRGZWG.js +268 -0
- package/dist/chunk-5UFRGZWG.js.map +1 -0
- package/dist/chunk-74MILER4.js +215 -0
- package/dist/chunk-74MILER4.js.map +1 -0
- package/dist/chunk-7PSYCTEN.js +118 -0
- package/dist/chunk-7PSYCTEN.js.map +1 -0
- package/dist/chunk-CDC4P77V.js +299 -0
- package/dist/chunk-CDC4P77V.js.map +1 -0
- package/dist/chunk-E52WO7R7.js +279 -0
- package/dist/chunk-E52WO7R7.js.map +1 -0
- package/dist/chunk-EUXUH3YW.js +15 -0
- package/dist/chunk-EUXUH3YW.js.map +1 -0
- package/dist/chunk-IMACP7HN.js +156 -0
- package/dist/chunk-IMACP7HN.js.map +1 -0
- package/dist/chunk-LHU23TF6.js +273 -0
- package/dist/chunk-LHU23TF6.js.map +1 -0
- package/dist/chunk-OEX5FDMR.js +250 -0
- package/dist/chunk-OEX5FDMR.js.map +1 -0
- package/dist/chunk-RHAOQ6K4.js +138 -0
- package/dist/chunk-RHAOQ6K4.js.map +1 -0
- package/dist/chunk-RMIJVTFS.js +397 -0
- package/dist/chunk-RMIJVTFS.js.map +1 -0
- package/dist/chunk-U7YKCCJG.js +228 -0
- package/dist/chunk-U7YKCCJG.js.map +1 -0
- package/dist/chunk-USNFT4DU.js +125 -0
- package/dist/chunk-USNFT4DU.js.map +1 -0
- package/dist/chunk-VYON56QO.js +90 -0
- package/dist/chunk-VYON56QO.js.map +1 -0
- package/dist/chunk-WCO7JAIK.js +195 -0
- package/dist/chunk-WCO7JAIK.js.map +1 -0
- package/dist/chunk-XHBC23TV.js +254 -0
- package/dist/chunk-XHBC23TV.js.map +1 -0
- package/dist/chunk-XXPBFHWR.js +70 -0
- package/dist/chunk-XXPBFHWR.js.map +1 -0
- package/dist/cms-theme.css +15 -0
- package/dist/content-block/index.d.ts +25 -0
- package/dist/content-block/index.js +11 -0
- package/dist/content-block/index.js.map +1 -0
- package/dist/cookie-consent/index.d.ts +33 -0
- package/dist/cookie-consent/index.js +9 -0
- package/dist/cookie-consent/index.js.map +1 -0
- package/dist/dropdown/index.d.ts +89 -0
- package/dist/dropdown/index.js +9 -0
- package/dist/dropdown/index.js.map +1 -0
- package/dist/feature-split/index.d.ts +38 -0
- package/dist/feature-split/index.js +11 -0
- package/dist/feature-split/index.js.map +1 -0
- package/dist/features-section/index.d.ts +50 -0
- package/dist/features-section/index.js +14 -0
- package/dist/features-section/index.js.map +1 -0
- package/dist/footer/index.d.ts +64 -0
- package/dist/footer/index.js +9 -0
- package/dist/footer/index.js.map +1 -0
- package/dist/header/index.d.ts +112 -0
- package/dist/header/index.js +10 -0
- package/dist/header/index.js.map +1 -0
- package/dist/hero/index.d.ts +32 -0
- package/dist/hero/index.js +10 -0
- package/dist/hero/index.js.map +1 -0
- package/dist/icon-button/index.d.ts +23 -0
- package/dist/icon-button/index.js +9 -0
- package/dist/icon-button/index.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/items-accordion/index.d.ts +31 -0
- package/dist/items-accordion/index.js +10 -0
- package/dist/items-accordion/index.js.map +1 -0
- package/dist/markdown/index.d.ts +33 -0
- package/dist/markdown/index.js +9 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/menu-grid/index.d.ts +21 -0
- package/dist/menu-grid/index.js +9 -0
- package/dist/menu-grid/index.js.map +1 -0
- package/dist/menu-grid-item/index.d.ts +53 -0
- package/dist/menu-grid-item/index.js +9 -0
- package/dist/menu-grid-item/index.js.map +1 -0
- package/dist/menu-item/index.d.ts +50 -0
- package/dist/menu-item/index.js +9 -0
- package/dist/menu-item/index.js.map +1 -0
- package/dist/promo-banner/index.d.ts +22 -0
- package/dist/promo-banner/index.js +10 -0
- package/dist/promo-banner/index.js.map +1 -0
- package/dist/schema/index.d.ts +72 -0
- package/dist/schema/index.js +75 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/select/index.d.ts +77 -0
- package/dist/select/index.js +10 -0
- package/dist/select/index.js.map +1 -0
- package/dist/shared/icons.d.ts +77 -0
- package/dist/shared/icons.js +64 -0
- package/dist/shared/icons.js.map +1 -0
- package/dist/shared/styles.d.ts +90 -0
- package/dist/shared/styles.js +48 -0
- package/dist/shared/styles.js.map +1 -0
- package/dist/stats/index.d.ts +17 -0
- package/dist/stats/index.js +9 -0
- package/dist/stats/index.js.map +1 -0
- package/dist/testimonials/index.d.ts +25 -0
- package/dist/testimonials/index.js +10 -0
- package/dist/testimonials/index.js.map +1 -0
- package/dist/theme.css +292 -0
- package/dist/themes.css +65 -0
- package/dist/theming/index.d.ts +28 -0
- package/dist/theming/index.js +53 -0
- package/dist/theming/index.js.map +1 -0
- package/package.json +161 -4
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cardTitleStyles,
|
|
3
|
+
iconTileStyles,
|
|
4
|
+
invertedSectionTextStyles,
|
|
5
|
+
reducedMotionStyles,
|
|
6
|
+
sectionHeaderStyles,
|
|
7
|
+
sectionSubtitleStyles,
|
|
8
|
+
sectionTitleStyles
|
|
9
|
+
} from "./chunk-3VE6VFJ4.js";
|
|
10
|
+
import {
|
|
11
|
+
controlBaseStyles,
|
|
12
|
+
fontFamilyStyles
|
|
13
|
+
} from "./chunk-RHAOQ6K4.js";
|
|
14
|
+
import {
|
|
15
|
+
__decorateClass
|
|
16
|
+
} from "./chunk-EUXUH3YW.js";
|
|
17
|
+
|
|
18
|
+
// src/bento-grid/BentoGrid.ts
|
|
19
|
+
import { LitElement, css, html, nothing } from "lit";
|
|
20
|
+
import { customElement, property } from "lit/decorators.js";
|
|
21
|
+
import "iconify-icon";
|
|
22
|
+
var BentoGrid = class extends LitElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.inverted = false;
|
|
26
|
+
this.title = "";
|
|
27
|
+
this.subtitle = "";
|
|
28
|
+
this.items = [];
|
|
29
|
+
}
|
|
30
|
+
renderCard(item) {
|
|
31
|
+
const classes = `card col-${item.colSpan ?? 1} row-${item.rowSpan ?? 1} ${item.imageSrc ? "has-image" : ""}`;
|
|
32
|
+
const body = html`
|
|
33
|
+
${item.imageSrc ? html`<div class="image-wrapper" part="image-wrapper">
|
|
34
|
+
<img class="image" part="image" src=${item.imageSrc} alt=${item.imageAlt ?? item.title} />
|
|
35
|
+
</div>` : nothing}
|
|
36
|
+
<div class="content" part="content">
|
|
37
|
+
${item.icon ? html`<div class="icon" part="icon"><iconify-icon icon=${item.icon}></iconify-icon></div>` : nothing}
|
|
38
|
+
<div class="text">
|
|
39
|
+
<h3 class="card-title" part="card-title">${item.title}</h3>
|
|
40
|
+
${item.description ? html`<p class="card-description" part="card-description">${item.description}</p>` : nothing}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
`;
|
|
44
|
+
return item.href ? html`<a part="card" class=${classes} href=${item.href}>${body}</a>` : html`<div part="card" class=${classes}>${body}</div>`;
|
|
45
|
+
}
|
|
46
|
+
render() {
|
|
47
|
+
return html`
|
|
48
|
+
<div class="container" part="container">
|
|
49
|
+
${this.title || this.subtitle ? html`<div class="header" part="header">
|
|
50
|
+
${this.title ? html`<h2 class="title" part="title">${this.title}</h2>` : nothing}
|
|
51
|
+
${this.subtitle ? html`<p class="subtitle" part="subtitle">${this.subtitle}</p>` : nothing}
|
|
52
|
+
</div>` : nothing}
|
|
53
|
+
<div class="grid" part="grid">${this.items.map((item) => this.renderCard(item))}</div>
|
|
54
|
+
</div>
|
|
55
|
+
`;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
BentoGrid.styles = css`
|
|
59
|
+
${controlBaseStyles}
|
|
60
|
+
|
|
61
|
+
:host {
|
|
62
|
+
display: block;
|
|
63
|
+
padding: var(--st-cms-section-padding) var(--st-space-24);
|
|
64
|
+
background: var(--st-color-page);
|
|
65
|
+
${fontFamilyStyles}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:host([inverted]) {
|
|
69
|
+
background: var(--st-color-text-strong);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.container {
|
|
73
|
+
max-width: var(--st-cms-container-max);
|
|
74
|
+
margin: 0 auto;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.header {
|
|
78
|
+
${sectionHeaderStyles}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.title {
|
|
82
|
+
${sectionTitleStyles}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.subtitle {
|
|
86
|
+
${sectionSubtitleStyles}
|
|
87
|
+
margin-bottom: 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
${invertedSectionTextStyles}
|
|
91
|
+
|
|
92
|
+
.grid {
|
|
93
|
+
display: grid;
|
|
94
|
+
grid-template-columns: repeat(4, 1fr);
|
|
95
|
+
grid-auto-rows: minmax(240px, auto);
|
|
96
|
+
gap: var(--st-space-24);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.card {
|
|
100
|
+
position: relative;
|
|
101
|
+
display: flex;
|
|
102
|
+
flex-direction: column;
|
|
103
|
+
overflow: hidden;
|
|
104
|
+
border: 1px solid var(--st-color-border);
|
|
105
|
+
border-radius: var(--st-space-24);
|
|
106
|
+
background: var(--st-color-surface);
|
|
107
|
+
color: inherit;
|
|
108
|
+
text-decoration: none;
|
|
109
|
+
transition:
|
|
110
|
+
transform 0.3s ease,
|
|
111
|
+
box-shadow 0.3s ease;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
:host([inverted]) .card {
|
|
115
|
+
background: var(--st-color-text-strong);
|
|
116
|
+
border-color: var(--st-color-text);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.card:hover {
|
|
120
|
+
transform: translateY(-4px);
|
|
121
|
+
box-shadow: 0 12px 24px -10px var(--st-shadow-color-lg);
|
|
122
|
+
z-index: 1;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.image-wrapper {
|
|
126
|
+
position: absolute;
|
|
127
|
+
inset: 0;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.image-wrapper::after {
|
|
131
|
+
content: '';
|
|
132
|
+
position: absolute;
|
|
133
|
+
inset: 0;
|
|
134
|
+
background: linear-gradient(to bottom, transparent 0%, var(--st-shadow-color-xl) 100%);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.image {
|
|
138
|
+
width: 100%;
|
|
139
|
+
height: 100%;
|
|
140
|
+
object-fit: cover;
|
|
141
|
+
transition: transform 0.5s ease;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.card:hover .image {
|
|
145
|
+
transform: scale(1.05);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.content {
|
|
149
|
+
position: relative;
|
|
150
|
+
z-index: 1;
|
|
151
|
+
margin-top: auto;
|
|
152
|
+
padding: var(--st-space-24);
|
|
153
|
+
display: flex;
|
|
154
|
+
flex-direction: column;
|
|
155
|
+
gap: var(--st-space-16);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.icon {
|
|
159
|
+
${iconTileStyles}
|
|
160
|
+
width: var(--st-size-40);
|
|
161
|
+
height: var(--st-size-40);
|
|
162
|
+
font-size: 24px;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.text {
|
|
166
|
+
padding: var(--st-space-16);
|
|
167
|
+
border-radius: var(--st-radius-md);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.card-title {
|
|
171
|
+
${cardTitleStyles}
|
|
172
|
+
font-size: var(--st-text-lg);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.card-description {
|
|
176
|
+
margin: 0;
|
|
177
|
+
font-size: var(--st-text-md);
|
|
178
|
+
color: var(--st-color-text-muted);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
:host([inverted]) .card-title {
|
|
182
|
+
color: var(--st-color-on-solid);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
:host([inverted]) .card-description {
|
|
186
|
+
color: var(--st-color-border);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.card.has-image .card-title,
|
|
190
|
+
.card.has-image .card-description {
|
|
191
|
+
color: var(--st-color-on-solid);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.card.has-image .icon {
|
|
195
|
+
background: var(--st-shadow-color-lg);
|
|
196
|
+
color: var(--st-color-on-solid);
|
|
197
|
+
backdrop-filter: blur(4px);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.col-1 { grid-column: span 1; }
|
|
201
|
+
.col-2 { grid-column: span 2; }
|
|
202
|
+
.col-3 { grid-column: span 3; }
|
|
203
|
+
.col-4 { grid-column: span 4; }
|
|
204
|
+
.row-1 { grid-row: span 1; }
|
|
205
|
+
.row-2 { grid-row: span 2; }
|
|
206
|
+
|
|
207
|
+
@media (max-width: 1024px) {
|
|
208
|
+
.grid {
|
|
209
|
+
grid-template-columns: repeat(2, 1fr);
|
|
210
|
+
}
|
|
211
|
+
.col-3,
|
|
212
|
+
.col-4 {
|
|
213
|
+
grid-column: span 2;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
@media (max-width: 640px) {
|
|
218
|
+
.grid {
|
|
219
|
+
grid-template-columns: 1fr;
|
|
220
|
+
}
|
|
221
|
+
.col-1,
|
|
222
|
+
.col-2,
|
|
223
|
+
.col-3,
|
|
224
|
+
.col-4 {
|
|
225
|
+
grid-column: span 1;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
${reducedMotionStyles}
|
|
230
|
+
`;
|
|
231
|
+
__decorateClass([
|
|
232
|
+
property({ type: Boolean, reflect: true })
|
|
233
|
+
], BentoGrid.prototype, "inverted", 2);
|
|
234
|
+
__decorateClass([
|
|
235
|
+
property({ type: String })
|
|
236
|
+
], BentoGrid.prototype, "title", 2);
|
|
237
|
+
__decorateClass([
|
|
238
|
+
property({ type: String })
|
|
239
|
+
], BentoGrid.prototype, "subtitle", 2);
|
|
240
|
+
__decorateClass([
|
|
241
|
+
property({ attribute: false })
|
|
242
|
+
], BentoGrid.prototype, "items", 2);
|
|
243
|
+
BentoGrid = __decorateClass([
|
|
244
|
+
customElement("st-bento-grid")
|
|
245
|
+
], BentoGrid);
|
|
246
|
+
|
|
247
|
+
export {
|
|
248
|
+
BentoGrid
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=chunk-OEX5FDMR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bento-grid/BentoGrid.ts"],"sourcesContent":["import { LitElement, css, html, nothing } from 'lit';\r\nimport { customElement, property } from 'lit/decorators.js';\r\nimport 'iconify-icon';\r\n\r\nimport { controlBaseStyles, fontFamilyStyles } from '../shared/styles';\r\nimport {\r\n cardTitleStyles,\r\n iconTileStyles,\r\n reducedMotionStyles,\r\n sectionHeaderStyles,\r\n sectionSubtitleStyles,\r\n sectionTitleStyles, invertedSectionTextStyles } from '../shared/section-styles';\r\n\r\nexport interface BentoGridItem {\r\n title: string;\r\n description?: string;\r\n /** Iconify icon name, e.g. `mdi:home`. */\r\n icon?: string;\r\n imageSrc?: string;\r\n imageAlt?: string;\r\n colSpan?: 1 | 2 | 3 | 4;\r\n rowSpan?: 1 | 2;\r\n /** Turns the card into a link. */\r\n href?: string;\r\n}\r\n\r\n/** A responsive 4-column bento grid of icon/image cards. Items are set via the `items` property. */\r\n@customElement('st-bento-grid')\r\nexport class BentoGrid extends LitElement {\r\n static styles = css`\r\n ${controlBaseStyles}\r\n\r\n :host {\r\n display: block;\r\n padding: var(--st-cms-section-padding) var(--st-space-24);\r\n background: var(--st-color-page);\r\n ${fontFamilyStyles}\r\n }\r\n\r\n :host([inverted]) {\r\n background: var(--st-color-text-strong);\r\n }\r\n\r\n .container {\r\n max-width: var(--st-cms-container-max);\r\n margin: 0 auto;\r\n }\r\n\r\n .header {\r\n ${sectionHeaderStyles}\r\n }\r\n\r\n .title {\r\n ${sectionTitleStyles}\r\n }\r\n\r\n .subtitle {\r\n ${sectionSubtitleStyles}\r\n margin-bottom: 0;\r\n }\r\n\r\n ${invertedSectionTextStyles}\r\n\r\n .grid {\r\n display: grid;\r\n grid-template-columns: repeat(4, 1fr);\r\n grid-auto-rows: minmax(240px, auto);\r\n gap: var(--st-space-24);\r\n }\r\n\r\n .card {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n border: 1px solid var(--st-color-border);\r\n border-radius: var(--st-space-24);\r\n background: var(--st-color-surface);\r\n color: inherit;\r\n text-decoration: none;\r\n transition:\r\n transform 0.3s ease,\r\n box-shadow 0.3s ease;\r\n }\r\n\r\n :host([inverted]) .card {\r\n background: var(--st-color-text-strong);\r\n border-color: var(--st-color-text);\r\n }\r\n\r\n .card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: 0 12px 24px -10px var(--st-shadow-color-lg);\r\n z-index: 1;\r\n }\r\n\r\n .image-wrapper {\r\n position: absolute;\r\n inset: 0;\r\n }\r\n\r\n .image-wrapper::after {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n background: linear-gradient(to bottom, transparent 0%, var(--st-shadow-color-xl) 100%);\r\n }\r\n\r\n .image {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n transition: transform 0.5s ease;\r\n }\r\n\r\n .card:hover .image {\r\n transform: scale(1.05);\r\n }\r\n\r\n .content {\r\n position: relative;\r\n z-index: 1;\r\n margin-top: auto;\r\n padding: var(--st-space-24);\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--st-space-16);\r\n }\r\n\r\n .icon {\r\n ${iconTileStyles}\r\n width: var(--st-size-40);\r\n height: var(--st-size-40);\r\n font-size: 24px;\r\n }\r\n\r\n .text {\r\n padding: var(--st-space-16);\r\n border-radius: var(--st-radius-md);\r\n }\r\n\r\n .card-title {\r\n ${cardTitleStyles}\r\n font-size: var(--st-text-lg);\r\n }\r\n\r\n .card-description {\r\n margin: 0;\r\n font-size: var(--st-text-md);\r\n color: var(--st-color-text-muted);\r\n }\r\n\r\n :host([inverted]) .card-title {\r\n color: var(--st-color-on-solid);\r\n }\r\n\r\n :host([inverted]) .card-description {\r\n color: var(--st-color-border);\r\n }\r\n\r\n .card.has-image .card-title,\r\n .card.has-image .card-description {\r\n color: var(--st-color-on-solid);\r\n }\r\n\r\n .card.has-image .icon {\r\n background: var(--st-shadow-color-lg);\r\n color: var(--st-color-on-solid);\r\n backdrop-filter: blur(4px);\r\n }\r\n\r\n .col-1 { grid-column: span 1; }\r\n .col-2 { grid-column: span 2; }\r\n .col-3 { grid-column: span 3; }\r\n .col-4 { grid-column: span 4; }\r\n .row-1 { grid-row: span 1; }\r\n .row-2 { grid-row: span 2; }\r\n\r\n @media (max-width: 1024px) {\r\n .grid {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n .col-3,\r\n .col-4 {\r\n grid-column: span 2;\r\n }\r\n }\r\n\r\n @media (max-width: 640px) {\r\n .grid {\r\n grid-template-columns: 1fr;\r\n }\r\n .col-1,\r\n .col-2,\r\n .col-3,\r\n .col-4 {\r\n grid-column: span 1;\r\n }\r\n }\r\n\r\n ${reducedMotionStyles}\r\n `;\r\n\r\n @property({ type: Boolean, reflect: true })\r\n inverted = false;\r\n\r\n @property({ type: String })\r\n title = '';\r\n\r\n @property({ type: String })\r\n subtitle = '';\r\n\r\n @property({ attribute: false })\r\n items: BentoGridItem[] = [];\r\n\r\n private renderCard(item: BentoGridItem) {\r\n const classes = `card col-${item.colSpan ?? 1} row-${item.rowSpan ?? 1} ${item.imageSrc ? 'has-image' : ''}`;\r\n const body = html`\r\n ${item.imageSrc\r\n ? html`<div class=\"image-wrapper\" part=\"image-wrapper\">\r\n <img class=\"image\" part=\"image\" src=${item.imageSrc} alt=${item.imageAlt ?? item.title} />\r\n </div>`\r\n : nothing}\r\n <div class=\"content\" part=\"content\">\r\n ${item.icon ? html`<div class=\"icon\" part=\"icon\"><iconify-icon icon=${item.icon}></iconify-icon></div>` : nothing}\r\n <div class=\"text\">\r\n <h3 class=\"card-title\" part=\"card-title\">${item.title}</h3>\r\n ${item.description ? html`<p class=\"card-description\" part=\"card-description\">${item.description}</p>` : nothing}\r\n </div>\r\n </div>\r\n `;\r\n return item.href\r\n ? html`<a part=\"card\" class=${classes} href=${item.href}>${body}</a>`\r\n : html`<div part=\"card\" class=${classes}>${body}</div>`;\r\n }\r\n\r\n render() {\r\n return html`\r\n <div class=\"container\" part=\"container\">\r\n ${this.title || this.subtitle\r\n ? html`<div class=\"header\" part=\"header\">\r\n ${this.title ? html`<h2 class=\"title\" part=\"title\">${this.title}</h2>` : nothing}\r\n ${this.subtitle ? html`<p class=\"subtitle\" part=\"subtitle\">${this.subtitle}</p>` : nothing}\r\n </div>`\r\n : nothing}\r\n <div class=\"grid\" part=\"grid\">${this.items.map((item) => this.renderCard(item))}</div>\r\n </div>\r\n `;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// src/shared/styles.ts
|
|
2
|
+
import { css } from "lit";
|
|
3
|
+
var truncateStyles = css`
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
text-overflow: ellipsis;
|
|
6
|
+
white-space: nowrap;
|
|
7
|
+
`;
|
|
8
|
+
var buttonResetStyles = css`
|
|
9
|
+
border: 0;
|
|
10
|
+
background: transparent;
|
|
11
|
+
font: inherit;
|
|
12
|
+
cursor: pointer;
|
|
13
|
+
`;
|
|
14
|
+
var ctaButtonStyles = css`
|
|
15
|
+
border: 0;
|
|
16
|
+
border-radius: var(--st-button-radius);
|
|
17
|
+
background: var(--st-button-primary-bg);
|
|
18
|
+
color: var(--st-button-primary-color);
|
|
19
|
+
font-weight: var(--st-button-font-weight);
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
`;
|
|
22
|
+
var ctaButtonDisabledStyles = css`
|
|
23
|
+
background: var(--st-color-subtle);
|
|
24
|
+
cursor: not-allowed;
|
|
25
|
+
`;
|
|
26
|
+
var ctaButtonFillStyles = css`
|
|
27
|
+
background: var(--st-button-primary-bg);
|
|
28
|
+
color: var(--st-button-primary-color);
|
|
29
|
+
`;
|
|
30
|
+
var dropdownPanelStyles = css`
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: 38px;
|
|
33
|
+
right: 0;
|
|
34
|
+
background: var(--st-color-surface);
|
|
35
|
+
border: 1px solid var(--st-color-border);
|
|
36
|
+
border-radius: var(--st-radius-sm);
|
|
37
|
+
box-shadow: 0 4px 16px var(--st-shadow-color-sm);
|
|
38
|
+
z-index: 30;
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
`;
|
|
41
|
+
var emptyStateStyles = css`
|
|
42
|
+
text-align: center;
|
|
43
|
+
color: var(--st-color-text-muted);
|
|
44
|
+
font-size: var(--st-text-base);
|
|
45
|
+
`;
|
|
46
|
+
var tableShellStyles = css`
|
|
47
|
+
background: var(--st-color-surface);
|
|
48
|
+
border: 1px solid var(--st-color-border);
|
|
49
|
+
border-radius: var(--st-radius-md);
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
`;
|
|
52
|
+
var resultRowStyles = css`
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
gap: var(--st-space-12);
|
|
56
|
+
padding: var(--st-space-12) var(--st-space-14);
|
|
57
|
+
border: 1px solid var(--st-color-border);
|
|
58
|
+
border-radius: var(--st-radius-sm);
|
|
59
|
+
`;
|
|
60
|
+
var resultNameStyles = css`
|
|
61
|
+
flex: 1;
|
|
62
|
+
min-width: 120px;
|
|
63
|
+
font-size: var(--st-text-base);
|
|
64
|
+
font-weight: var(--st-font-weight-medium);
|
|
65
|
+
${truncateStyles}
|
|
66
|
+
`;
|
|
67
|
+
var resultLinkStyles = css`
|
|
68
|
+
font-size: var(--st-text-sm);
|
|
69
|
+
font-weight: var(--st-font-weight-semibold);
|
|
70
|
+
color: var(--st-color-accent-text);
|
|
71
|
+
`;
|
|
72
|
+
var eyebrowLabelStyles = css`
|
|
73
|
+
font-weight: var(--st-font-weight-bold);
|
|
74
|
+
color: var(--st-color-text-muted);
|
|
75
|
+
text-transform: uppercase;
|
|
76
|
+
letter-spacing: var(--st-tracking-wide);
|
|
77
|
+
`;
|
|
78
|
+
var rowDividerStyles = css`
|
|
79
|
+
border-top: 1px solid var(--st-color-divider);
|
|
80
|
+
`;
|
|
81
|
+
var cardShellStyles = css`
|
|
82
|
+
background: var(--st-color-surface);
|
|
83
|
+
border: 1px solid var(--st-color-border);
|
|
84
|
+
border-radius: var(--st-radius-md);
|
|
85
|
+
`;
|
|
86
|
+
var itemNameStyles = css`
|
|
87
|
+
font-size: var(--st-text-base);
|
|
88
|
+
font-weight: var(--st-font-weight-semibold);
|
|
89
|
+
color: var(--st-color-text-strong);
|
|
90
|
+
`;
|
|
91
|
+
var itemCaptionStyles = css`
|
|
92
|
+
font-size: var(--st-text-xs);
|
|
93
|
+
color: var(--st-color-text-muted);
|
|
94
|
+
`;
|
|
95
|
+
var controlBaseStyles = css`
|
|
96
|
+
:is(button, a, input, select, textarea, [tabindex]):focus-visible {
|
|
97
|
+
outline: var(--st-focus-ring);
|
|
98
|
+
outline-offset: var(--st-focus-ring-offset);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
input[type='checkbox'],
|
|
102
|
+
input[type='radio'] {
|
|
103
|
+
accent-color: var(--st-checkbox-color);
|
|
104
|
+
}
|
|
105
|
+
`;
|
|
106
|
+
var fontFamilyStyles = css`
|
|
107
|
+
font-family: var(--st-font-family);
|
|
108
|
+
`;
|
|
109
|
+
var rootFontFamilyStyles = css`
|
|
110
|
+
font-family: var(--st-font-family);
|
|
111
|
+
`;
|
|
112
|
+
var BREAKPOINT_TABLET = 900;
|
|
113
|
+
var BREAKPOINT_MOBILE = 500;
|
|
114
|
+
|
|
115
|
+
export {
|
|
116
|
+
truncateStyles,
|
|
117
|
+
buttonResetStyles,
|
|
118
|
+
ctaButtonStyles,
|
|
119
|
+
ctaButtonDisabledStyles,
|
|
120
|
+
ctaButtonFillStyles,
|
|
121
|
+
dropdownPanelStyles,
|
|
122
|
+
emptyStateStyles,
|
|
123
|
+
tableShellStyles,
|
|
124
|
+
resultRowStyles,
|
|
125
|
+
resultNameStyles,
|
|
126
|
+
resultLinkStyles,
|
|
127
|
+
eyebrowLabelStyles,
|
|
128
|
+
rowDividerStyles,
|
|
129
|
+
cardShellStyles,
|
|
130
|
+
itemNameStyles,
|
|
131
|
+
itemCaptionStyles,
|
|
132
|
+
controlBaseStyles,
|
|
133
|
+
fontFamilyStyles,
|
|
134
|
+
rootFontFamilyStyles,
|
|
135
|
+
BREAKPOINT_TABLET,
|
|
136
|
+
BREAKPOINT_MOBILE
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=chunk-RHAOQ6K4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shared/styles.ts"],"sourcesContent":["import { css } from 'lit';\r\n\r\n/**\r\n * Reusable `css` fragments shared across component `static styles` blocks.\r\n *\r\n * Lit's `css` tag allows interpolating another `CSSResult` anywhere inside a\r\n * template, including mid-rule — `${fragment}` below expands to raw CSS\r\n * text, so these compose into a component's own selectors without forcing a\r\n * shared class name or touching `render()`. Each component keeps its own\r\n * selectors; only the duplicated property lists move here. Layout details\r\n * that genuinely vary per component (padding, gap, font-size, ...) stay\r\n * local, declared after a fragment so the cascade lets them override it.\r\n *\r\n * Add a fragment here only once a pattern is byte-identical (or near enough\r\n * that the deltas are better expressed as local overrides) across 3+\r\n * components — see `packages/suite-components/README.md#shared-style-fragments`.\r\n */\r\n\r\n/** Truncates overflowing text to a single line with an ellipsis. */\r\nexport const truncateStyles = css`\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n`;\r\n\r\n/**\r\n * Base for an unstyled, click-through interactive element (icon buttons,\r\n * menu triggers, link-like buttons) before component-specific padding,\r\n * font-size, and color are layered on.\r\n */\r\nexport const buttonResetStyles = css`\r\n border: 0;\r\n background: transparent;\r\n font: inherit;\r\n cursor: pointer;\r\n`;\r\n\r\n/**\r\n * The dark-filled primary-action button look (wizard Next/Generate/Run/Save,\r\n * active toggle buttons, ...). Pair with `ctaButtonDisabledStyles` on the\r\n * same selector's `:disabled` state.\r\n */\r\nexport const ctaButtonStyles = css`\r\n border: 0;\r\n border-radius: var(--st-button-radius);\r\n background: var(--st-button-primary-bg);\r\n color: var(--st-button-primary-color);\r\n font-weight: var(--st-button-font-weight);\r\n cursor: pointer;\r\n`;\r\n\r\nexport const ctaButtonDisabledStyles = css`\r\n background: var(--st-color-subtle);\r\n cursor: not-allowed;\r\n`;\r\n\r\n/**\r\n * Just the fill (background + color) from `ctaButtonStyles`, for selectors\r\n * that only need to swap an already-bordered/sized button into the CTA look\r\n * on an active/pressed/selected state (`[aria-pressed='true']`, `.active`,\r\n * ...) rather than defining the button from scratch.\r\n */\r\nexport const ctaButtonFillStyles = css`\r\n background: var(--st-button-primary-bg);\r\n color: var(--st-button-primary-color);\r\n`;\r\n\r\n/** Floating menu/dropdown panel chrome (user menu, language menu, ...). */\r\nexport const dropdownPanelStyles = css`\r\n position: absolute;\r\n top: 38px;\r\n right: 0;\r\n background: var(--st-color-surface);\r\n border: 1px solid var(--st-color-border);\r\n border-radius: var(--st-radius-sm);\r\n box-shadow: 0 4px 16px var(--st-shadow-color-sm);\r\n z-index: 30;\r\n overflow: hidden;\r\n`;\r\n\r\n/** \"No results\" / \"Nothing here.\" empty-state text. Padding stays local. */\r\nexport const emptyStateStyles = css`\r\n text-align: center;\r\n color: var(--st-color-text-muted);\r\n font-size: var(--st-text-base);\r\n`;\r\n\r\n/** Bordered, rounded shell wrapping a data table (browse/list views). */\r\nexport const tableShellStyles = css`\r\n background: var(--st-color-surface);\r\n border: 1px solid var(--st-color-border);\r\n border-radius: var(--st-radius-md);\r\n overflow: hidden;\r\n`;\r\n\r\n/** A single bordered result row with a name (truncated) + trailing link. */\r\nexport const resultRowStyles = css`\r\n display: flex;\r\n align-items: center;\r\n gap: var(--st-space-12);\r\n padding: var(--st-space-12) var(--st-space-14);\r\n border: 1px solid var(--st-color-border);\r\n border-radius: var(--st-radius-sm);\r\n`;\r\n\r\nexport const resultNameStyles = css`\r\n flex: 1;\r\n min-width: 120px;\r\n font-size: var(--st-text-base);\r\n font-weight: var(--st-font-weight-medium);\r\n ${truncateStyles}\r\n`;\r\n\r\nexport const resultLinkStyles = css`\r\n font-size: var(--st-text-sm);\r\n font-weight: var(--st-font-weight-semibold);\r\n color: var(--st-color-accent-text);\r\n`;\r\n\r\n/**\r\n * Uppercase, letter-spaced section/field \"eyebrow\" label (card headings,\r\n * table headers, field labels, ...). Font-size stays local since it varies\r\n * (11–12px) by context.\r\n */\r\nexport const eyebrowLabelStyles = css`\r\n font-weight: var(--st-font-weight-bold);\r\n color: var(--st-color-text-muted);\r\n text-transform: uppercase;\r\n letter-spacing: var(--st-tracking-wide);\r\n`;\r\n\r\n/** Top border separating stacked rows in a list/table (folder rows, data rows, table rows, ...). */\r\nexport const rowDividerStyles = css`\r\n border-top: 1px solid var(--st-color-divider);\r\n`;\r\n\r\n/**\r\n * Bordered, rounded surface shell for a card/tile/panel (as opposed to\r\n * `tableShellStyles`, which additionally clips overflow for tabular content).\r\n * Padding, gap, and cursor stay local since they vary by component.\r\n */\r\nexport const cardShellStyles = css`\r\n background: var(--st-color-surface);\r\n border: 1px solid var(--st-color-border);\r\n border-radius: var(--st-radius-md);\r\n`;\r\n\r\n/** A card/tile/row's bold primary name line (folder tiles/rows, template cards, ...). */\r\nexport const itemNameStyles = css`\r\n font-size: var(--st-text-base);\r\n font-weight: var(--st-font-weight-semibold);\r\n color: var(--st-color-text-strong);\r\n`;\r\n\r\n/** A card/tile/row's muted secondary caption line, paired with `itemNameStyles`. */\r\nexport const itemCaptionStyles = css`\r\n font-size: var(--st-text-xs);\r\n color: var(--st-color-text-muted);\r\n`;\r\n\r\n/**\r\n * Whole rules (not a property list) every component's stylesheet starts\r\n * with: routes keyboard focus rings and native checkbox/radio tint through\r\n * `--st-focus-ring` / `--st-checkbox-color`, whose defaults (`auto`) keep\r\n * the browser's own look until a host app themes them.\r\n */\r\nexport const controlBaseStyles = css`\r\n :is(button, a, input, select, textarea, [tabindex]):focus-visible {\r\n outline: var(--st-focus-ring);\r\n outline-offset: var(--st-focus-ring-offset);\r\n }\r\n\r\n input[type='checkbox'],\r\n input[type='radio'] {\r\n accent-color: var(--st-checkbox-color);\r\n }\r\n`;\r\n\r\n/** Default font stack, used by nearly every component. */\r\nexport const fontFamilyStyles = css`\r\n font-family: var(--st-font-family);\r\n`;\r\n\r\n/**\r\n * Font stack for page-root/chrome components (`st-template-hub`, the admin\r\n * and configuration pages, `st-app-header`, ...). Identical to\r\n * `fontFamilyStyles` now that `--st-font-family` always resolves via\r\n * `theme.css` (no per-usage fallback) — kept as a separate export so those\r\n * call sites stay semantically distinct if the two ever need to diverge\r\n * again.\r\n */\r\nexport const rootFontFamilyStyles = css`\r\n font-family: var(--st-font-family);\r\n`;\r\n\r\n/** Canonical responsive breakpoints (px). Interpolate as `${BREAKPOINT_TABLET}px`. */\r\nexport const BREAKPOINT_TABLET = 900;\r\nexport const BREAKPOINT_MOBILE = 500;\r\n"],"mappings":";AAAA,SAAS,WAAW;AAmBb,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAWvB,IAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAY1B,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASxB,IAAM,0BAA0B;AAAA;AAAA;AAAA;AAWhC,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAM5B,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa5B,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAOzB,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASxB,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,IAK5B,cAAc;AAAA;AAGX,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAWzB,IAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ3B,IAAM,mBAAmB;AAAA;AAAA;AASzB,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAOxB,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAOvB,IAAM,oBAAoB;AAAA;AAAA;AAAA;AAW1B,IAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa1B,IAAM,mBAAmB;AAAA;AAAA;AAYzB,IAAM,uBAAuB;AAAA;AAAA;AAK7B,IAAM,oBAAoB;AAC1B,IAAM,oBAAoB;","names":[]}
|