diff --git a/ts_web/elements/dees-dataview-codebox.demo.ts b/ts_web/elements/dees-dataview-codebox.demo.ts index dcabe58..4f4c28d 100644 --- a/ts_web/elements/dees-dataview-codebox.demo.ts +++ b/ts_web/elements/dees-dataview-codebox.demo.ts @@ -1,18 +1,176 @@ -import { html } from '@design.estate/dees-element'; +import { html, cssManager } from '@design.estate/dees-element'; -export const demoFunc = () => html` +
+
+
TypeScript Code Example
+
A comprehensive TypeScript code example with various syntax highlighting.
+ +interface User { + id: number; + name: string; + email: string; + isActive: boolean; } - -
- - import * as text from './hello'; const hiThere = 'nice'; const myFunction = async () => { - console.log('nice one'); } - -
` \ No newline at end of file + +class UserService { + private users: User[] = []; + + constructor(private apiUrl: string) { + console.log('UserService initialized'); + } + + async getUsers(): Promise { + try { + const response = await fetch(this.apiUrl); + const data = await response.json(); + return data.users; + } catch (error) { + console.error('Failed to fetch users:', error); + return []; + } + } + + addUser(user: User): void { + this.users.push(user); + } +} + +// Usage example +const service = new UserService('https://api.example.com/users'); +const users = await service.getUsers(); +console.log('Found users:', users.length); +
+
+ +
+
JavaScript Example
+
Modern JavaScript with ES6+ features.
+ +// Array manipulation examples +const numbers = [1, 2, 3, 4, 5]; +const doubled = numbers.map(n => n * 2); +const filtered = numbers.filter(n => n > 3); + +// Object destructuring +const user = { name: 'John', age: 30, city: 'New York' }; +const { name, age } = user; + +// Promise handling +const fetchData = async (url) => { + const response = await fetch(url); + return response.json(); +}; + +// Modern syntax +const greet = (name = 'World') => \`Hello, \${name}!\`; +console.log(greet('ShadCN')); + +
+ +
+
Python Example
+
Python code with classes and type hints.
+ +from typing import List, Optional +import asyncio + +class DataProcessor: + """A simple data processor class""" + + def __init__(self, name: str): + self.name = name + self.data: List[dict] = [] + + async def process_data(self, items: List[dict]) -> List[dict]: + """Process data items asynchronously""" + results = [] + for item in items: + # Simulate async processing + await asyncio.sleep(0.1) + results.append({ + 'id': item.get('id'), + 'processed': True, + 'processor': self.name + }) + return results + + def get_summary(self) -> dict: + return { + 'processor': self.name, + 'items_processed': len(self.data) + } + +# Usage +processor = DataProcessor("Main") +data = await processor.process_data([{'id': 1}, {'id': 2}]) + +
+ +
+
CSS Example
+
Modern CSS with custom properties and animations.
+ +/* Modern CSS with custom properties */ +:root { + --primary-color: #3b82f6; + --secondary-color: #10b981; + --background: #ffffff; + --text-color: #09090b; + --border-radius: 6px; +} + +.card { + background: var(--background); + border: 1px solid #e5e7eb; + border-radius: var(--border-radius); + padding: 24px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + transition: all 0.2s ease; +} + +.card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } +} + +
+
+` \ No newline at end of file diff --git a/ts_web/elements/dees-dataview-codebox.ts b/ts_web/elements/dees-dataview-codebox.ts index 9a5865e..93331a8 100644 --- a/ts_web/elements/dees-dataview-codebox.ts +++ b/ts_web/elements/dees-dataview-codebox.ts @@ -53,23 +53,23 @@ export class DeesDataviewCodebox extends DeesElement { } .mainbox { position: relative; - color: ${this.goBright ? '#333333' : '#ffffff'}; - border-top: 1px solid ${this.goBright ? '#ffffff' : '#333333'}; - box-shadow: 0px 0px 5px ${this.goBright ? 'rgba(0,0,0,0.1)' : 'rgba(0,0,0,0.5)'}; - background: ${this.goBright ? '#ffffff' : '#191919'}; - border-radius: 16px; + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')}; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06); + background: ${cssManager.bdTheme('#ffffff', '#09090b')}; + border-radius: 6px; overflow: hidden; } .appbar { position: relative; - color: ${cssManager.bdTheme('#333', '#ccc')}; - background: ${cssManager.bdTheme('#ffffff', '#161616')}; - border-bottom: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')}; - height: 24px; + color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; + background: ${cssManager.bdTheme('#f9fafb', '#18181b')}; + border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')}; + height: 32px; display: flex; - font-size: 12px; - line-height: 24px; + font-size: 13px; + line-height: 32px; justify-content: center; align-items: center; } @@ -82,31 +82,32 @@ export class DeesDataviewCodebox extends DeesElement { } .bottomBar { - color: ${cssManager.bdTheme('#333', '#ccc')}; - background: ${cssManager.bdTheme('#ffffff', '#161616')}; - border-top: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')}; - height: 24px; + color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; + background: ${cssManager.bdTheme('#f9fafb', '#18181b')}; + border-top: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')}; + height: 28px; font-size: 12px; - line-height: 24px; + line-height: 28px; text-align: right; padding-right: 100px; } .languageLabel { - color: ${cssManager.bdTheme('#333', '#ccc')}; + color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')}; font-size: 12px; - line-height: 24px; + line-height: 28px; z-index: 10; - background: #6596ff20; + background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')}; display: inline-block; position: absolute; bottom: 0px; right: 0px; padding: 0px 16px 0px 8px; + font-weight: 500; } .hljs-keyword { - color: #ff65ec; + color: ${cssManager.bdTheme('#dc2626', '#f87171')}; } .codegrid { @@ -116,10 +117,10 @@ export class DeesDataviewCodebox extends DeesElement { } .lineNumbers { - color: ${this.goBright ? '#acacac' : '#666666'}; - padding: 30px 16px 0px 0px; + color: ${cssManager.bdTheme('#71717a', '#52525b')}; + padding: 24px 16px 0px 0px; text-align: right; - border-right: 1px solid ${this.goBright ? '#eaeaea' : '#222222'}; + border-right: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')}; } .lineCounter:last-child { @@ -129,11 +130,11 @@ export class DeesDataviewCodebox extends DeesElement { pre { overflow-x: auto; margin: 0px; - padding: 30px 40px; + padding: 24px 24px; } code { - font-weight: ${this.goBright ? '400' : '300'}; + font-weight: 400; padding: 0px; margin: 0px; } @@ -147,23 +148,39 @@ export class DeesDataviewCodebox extends DeesElement { } .hljs-string { - color: #ffa465; + color: ${cssManager.bdTheme('#059669', '#10b981')}; } .hljs-built_in { - color: #65ff6a; + color: ${cssManager.bdTheme('#8b5cf6', '#a78bfa')}; } .hljs-function { - color: ${this.goBright ? '#2765DF' : '#6596ff'}; + color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; } .hljs-params { - color: ${this.goBright ? '#3DB420' : '#65d5ff'}; + color: ${cssManager.bdTheme('#0891b2', '#06b6d4')}; } .hljs-comment { - color: ${this.goBright ? '#EF9300' : '#ffd765'}; + color: ${cssManager.bdTheme('#71717a', '#71717a')}; + } + + .hljs-number { + color: ${cssManager.bdTheme('#ea580c', '#fb923c')}; + } + + .hljs-literal { + color: ${cssManager.bdTheme('#dc2626', '#f87171')}; + } + + .hljs-attr { + color: ${cssManager.bdTheme('#8b5cf6', '#a78bfa')}; + } + + .hljs-variable { + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; }