@llms-sdk/representation-ui
Version:
Multi-view representation-driven development UI prototype
55 lines (46 loc) • 1.57 kB
text/typescript
import { LitElement, html, css } from 'lit';
import { customElement } from 'lit/decorators.js';
// Import Shoelace components
import '@shoelace-style/shoelace/dist/components/button/button.js';
import '@shoelace-style/shoelace/dist/components/select/select.js';
import '@shoelace-style/shoelace/dist/components/option/option.js';
import '@shoelace-style/shoelace/dist/components/range/range.js';
import '@shoelace-style/shoelace/dist/components/checkbox/checkbox.js';
// Import our components
import './components/core/view-orchestrator.js';
/**
* Main Application Component
*
* Features:
* - Initializes Shoelace theme
* - Sets up application-wide styles
* - Hosts the ViewOrchestrator
*/
('representation-ui-app')
export class RepresentationUIApp extends LitElement {
static styles = css`
:host {
display: block;
height: 100vh;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
/* Shoelace CSS custom properties */
:host {
--sl-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--sl-border-radius-medium: 6px;
--sl-border-radius-large: 8px;
}
`;
connectedCallback() {
super.connectedCallback();
// Set Shoelace base path for icons and assets
import('@shoelace-style/shoelace/dist/utilities/base-path.js').then(({ setBasePath }) => {
setBasePath('/node_modules/@shoelace-style/shoelace/dist/');
});
}
render() {
return html`
<view-orchestrator></view-orchestrator>
`;
}
}