diff --git a/changelog.md b/changelog.md index 6f94fd8..49fd2db 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,15 @@ # Changelog +## 2025-12-27 - 1.3.0 - feat(admin-ui) +introduce view layer and refactor admin UI to use view components, consolidate demos, and update interfaces + +- Added a new views/ layer with view components: upladmin-dashboard-view, upladmin-monitors-view, upladmin-incidents-view, upladmin-config-view and exported them from ts_web/views/index.ts +- Refactored upladmin-app to use the new view components (updated menu routes/content to view tags) +- Removed multiple demo page files under ts_web/pages (consolidated demo surface into the view-based app) +- Updated upladmin-statuspage-config: changed activeSection to a property, removed the side navigation markup/CSS and simplified layout to be view-driven +- Reworked ts_web/interfaces to re-export core types from @uptime.link/interfaces and added UI-specific interfaces and form types +- Bumped dependency @uptime.link/interfaces to ^2.1.0 in package.json + ## 2025-12-26 - 1.2.0 - feat(elements) add upladmin-option-card component and migrate option/status UIs to use it; refactor monitor form multitoggle subscriptions and event handling; improve theme color handling and dark-mode styles; add demos, Playwright snapshots, and migration plan diff --git a/package.json b/package.json index a1bfb07..2d4cde1 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@design.estate/dees-domtools": "^2.3.6", "@design.estate/dees-element": "^2.1.3", "@design.estate/dees-wcctools": "^3.2.0", - "@uptime.link/interfaces": "^2.0.21" + "@uptime.link/interfaces": "^2.1.0" }, "devDependencies": { "@git.zone/tsbuild": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a2ed32..434fa2b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^3.2.0 version: 3.2.0 '@uptime.link/interfaces': - specifier: ^2.0.21 - version: 2.0.21 + specifier: ^2.1.0 + version: 2.1.0 devDependencies: '@git.zone/tsbuild': specifier: ^4.0.2 @@ -65,9 +65,6 @@ packages: peerDependencies: '@push.rocks/smartserve': '>=1.1.0' - '@apiglobal/typedrequest-interfaces@2.0.1': - resolution: {integrity: sha512-Oi7pNU4vKo5UvcCJmqkH43Us237Ws/Pp/WDYnwnonRnTmIMd+6QjNfN/gXcPnP6tbamk8r8Xzcz9mgnSDM2ysw==} - '@aws-crypto/crc32@5.2.0': resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} engines: {node: '>=16.0.0'} @@ -1512,8 +1509,8 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@uptime.link/interfaces@2.0.21': - resolution: {integrity: sha512-sy7WBzHOxU7Kt0BGofK0R3CS8D8QtbTXB00i75QKYXkEesdLd91SbFL80wTupKfjzeldE0ejUVSgvtlZEr8XlQ==} + '@uptime.link/interfaces@2.1.0': + resolution: {integrity: sha512-KlsAUp4Vvb4TeFNBDq4MZ9v4RaeLPr1GRlj4mkNmGLSfEiSasj1FWGLEj8iRdfeUuxMu0WRpAvWe2Ol0MRzoqg==} '@webcontainer/api@1.2.0': resolution: {integrity: sha512-tzoKBd4lLdhHy5GHFpUkl+ndoSba8JqmB7x0ZQFnWfjbcbQOvKQfxA8MEMUYhgqjWHnbrWdAfnBEHz5f5lYG5A==} @@ -2976,8 +2973,6 @@ snapshots: '@push.rocks/smartstring': 4.1.0 '@push.rocks/smarturl': 3.1.0 - '@apiglobal/typedrequest-interfaces@2.0.1': {} - '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 @@ -5254,10 +5249,10 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@uptime.link/interfaces@2.0.21': + '@uptime.link/interfaces@2.1.0': dependencies: - '@apiglobal/typedrequest-interfaces': 2.0.1 - '@tsclass/tsclass': 4.4.4 + '@api.global/typedrequest-interfaces': 3.0.19 + '@tsclass/tsclass': 9.3.0 '@webcontainer/api@1.2.0': {} diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index e9b3e06..eccbd12 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@uptime.link/statuspage-admin', - version: '1.2.0', + version: '1.3.0', description: 'Admin components for managing UptimeLink status pages, monitors, and incidents.' } diff --git a/ts_web/elements/upladmin-statuspage-config/upladmin-statuspage-config.ts b/ts_web/elements/upladmin-statuspage-config/upladmin-statuspage-config.ts index 5e24c85..99429ba 100644 --- a/ts_web/elements/upladmin-statuspage-config/upladmin-statuspage-config.ts +++ b/ts_web/elements/upladmin-statuspage-config/upladmin-statuspage-config.ts @@ -33,7 +33,7 @@ export class UpladminStatuspageConfig extends DeesElement { @state() accessor formData: IStatusPageConfig = {}; - @state() + @property({ type: String }) accessor activeSection: string = 'branding'; @state() @@ -49,67 +49,10 @@ export class UpladminStatuspageConfig extends DeesElement { } .config-container { - display: grid; - grid-template-columns: 220px 1fr; - gap: ${unsafeCSS(sharedStyles.spacing.lg)}; + display: block; min-height: 500px; } - @media (max-width: 768px) { - .config-container { - grid-template-columns: 1fr; - } - } - - .config-nav { - background: ${sharedStyles.colors.background.secondary}; - border: 1px solid ${sharedStyles.colors.border.default}; - border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)}; - padding: ${unsafeCSS(sharedStyles.spacing.sm)}; - height: fit-content; - } - - .nav-item { - display: flex; - align-items: center; - gap: 12px; - width: 100%; - padding: 14px 16px; - font-size: 14px; - font-weight: 500; - font-family: ${unsafeCSS(sharedStyles.fonts.base)}; - color: ${sharedStyles.colors.text.secondary}; - background: transparent; - border: none; - border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)}; - cursor: pointer; - text-align: left; - transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)}; - } - - .nav-item:hover { - background: ${sharedStyles.colors.background.muted}; - color: ${sharedStyles.colors.text.primary}; - } - - .nav-item.active { - background: ${sharedStyles.colors.accent.primary}; - color: white; - } - - .nav-item.active dees-icon { - --icon-color: white; - } - - .nav-item dees-icon { - --icon-color: ${sharedStyles.colors.text.muted}; - transition: color ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)}; - } - - .nav-item:hover dees-icon { - --icon-color: ${sharedStyles.colors.text.primary}; - } - .config-content { background: ${sharedStyles.colors.background.secondary}; border: 1px solid ${sharedStyles.colors.border.default}; @@ -343,18 +286,6 @@ export class UpladminStatuspageConfig extends DeesElement { return html`