Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d1471a363 | |||
| 6db2e3ff4f |
@@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2026-03-19 - 2.9.0 - feat(app-store-view)
|
||||||
|
add app details action to store cards
|
||||||
|
|
||||||
|
- adds a new "View Details" button alongside the existing deploy action
|
||||||
|
- dispatches a bubbling "view-app" event with the selected app payload for parent handlers
|
||||||
|
- updates card action layout and button styling to support multiple actions
|
||||||
|
|
||||||
## 2026-03-18 - 2.8.0 - feat(elements)
|
## 2026-03-18 - 2.8.0 - feat(elements)
|
||||||
add app store view component for browsing and deploying app templates
|
add app store view component for browsing and deploying app templates
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@serve.zone/catalog",
|
"name": "@serve.zone/catalog",
|
||||||
"version": "2.8.0",
|
"version": "2.9.0",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "UI component catalog for serve.zone",
|
"description": "UI component catalog for serve.zone",
|
||||||
"main": "dist_ts_web/index.js",
|
"main": "dist_ts_web/index.js",
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/catalog',
|
name: '@serve.zone/catalog',
|
||||||
version: '2.8.0',
|
version: '2.9.0',
|
||||||
description: 'UI component catalog for serve.zone'
|
description: 'UI component catalog for serve.zone'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -396,6 +396,34 @@ export class SzAppStoreView extends DeesElement {
|
|||||||
height: 14px;
|
height: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.details-button {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
padding: 7px 12px;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 200ms ease;
|
||||||
|
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
|
||||||
|
background: transparent;
|
||||||
|
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
||||||
|
white-space: nowrap;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.details-button:hover {
|
||||||
|
border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
|
||||||
|
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.empty-state {
|
.empty-state {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
padding: 64px 24px;
|
padding: 64px 24px;
|
||||||
@@ -524,16 +552,21 @@ export class SzAppStoreView extends DeesElement {
|
|||||||
<div class="app-description">${app.description}</div>
|
<div class="app-description">${app.description}</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<span class="image-tag" title="${app.image}">${app.image}</span>
|
<span class="image-tag" title="${app.image}">${app.image}</span>
|
||||||
<button class="deploy-button" @click=${() => this.handleDeploy(app)}>
|
<div class="card-actions">
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<button class="details-button" @click=${() => this.handleViewDetails(app)}>
|
||||||
<polyline points="20 12 20 22 4 22 4 12"></polyline>
|
View Details
|
||||||
<rect x="2" y="7" width="20" height="5"></rect>
|
</button>
|
||||||
<line x1="12" y1="22" x2="12" y2="7"></line>
|
<button class="deploy-button" @click=${() => this.handleDeploy(app)}>
|
||||||
<path d="M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z"></path>
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||||
<path d="M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"></path>
|
<polyline points="20 12 20 22 4 22 4 12"></polyline>
|
||||||
</svg>
|
<rect x="2" y="7" width="20" height="5"></rect>
|
||||||
Deploy
|
<line x1="12" y1="22" x2="12" y2="7"></line>
|
||||||
</button>
|
<path d="M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z"></path>
|
||||||
|
<path d="M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"></path>
|
||||||
|
</svg>
|
||||||
|
Deploy
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
@@ -556,6 +589,16 @@ export class SzAppStoreView extends DeesElement {
|
|||||||
return icons[name] || html`<span class="letter-fallback">?</span>`;
|
return icons[name] || html`<span class="letter-fallback">?</span>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private handleViewDetails(app: IAppTemplate) {
|
||||||
|
this.dispatchEvent(
|
||||||
|
new CustomEvent('view-app', {
|
||||||
|
detail: { app },
|
||||||
|
bubbles: true,
|
||||||
|
composed: true,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
private handleDeploy(app: IAppTemplate) {
|
private handleDeploy(app: IAppTemplate) {
|
||||||
this.dispatchEvent(
|
this.dispatchEvent(
|
||||||
new CustomEvent('deploy-app', {
|
new CustomEvent('deploy-app', {
|
||||||
|
|||||||
Reference in New Issue
Block a user