@design.estate/dees-catalog 3.40.0 → 3.41.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.
@@ -147622,7 +147622,7 @@ init_group_runtime();
147622
147622
  // ts_web/00_commitinfo_data.ts
147623
147623
  var commitinfo = {
147624
147624
  name: "@design.estate/dees-catalog",
147625
- version: "3.40.0",
147625
+ version: "3.41.0",
147626
147626
  description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
147627
147627
  };
147628
147628
  export {
@@ -147867,4 +147867,4 @@ ibantools/jsnext/ibantools.js:
147867
147867
  * @preferred
147868
147868
  *)
147869
147869
  */
147870
- //# sourceMappingURL=bundle-1769513795796.js.map
147870
+ //# sourceMappingURL=bundle-1769517417860.js.map
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '3.40.0',
6
+ version: '3.41.0',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-catalog",
3
- "version": "3.40.0",
3
+ "version": "3.41.0",
4
4
  "private": false,
5
5
  "description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
6
6
  "main": "dist_ts_web/index.js",
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @design.estate/dees-catalog
2
2
 
3
- A comprehensive web components library built with TypeScript and LitElement, providing **70+ production-ready UI components** for building modern web applications with consistent design and behavior. 🚀
3
+ A comprehensive web components library built with TypeScript and LitElement, providing **90+ production-ready UI components** for building modern web applications with consistent design and behavior. 🚀
4
4
 
5
5
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)
6
6
  [![LitElement](https://img.shields.io/badge/LitElement-4.0+-orange.svg)](https://lit.dev/)
@@ -18,6 +18,8 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
18
18
  - 🔧 **TypeScript-First** — Fully typed APIs with excellent IDE support
19
19
  - 🧩 **Modular** — Use only what you need, tree-shakeable architecture
20
20
  - 🏗️ **Full App Shell** — `dees-appui` provides a complete application framework with menus, routing, activity log, and bottom bar
21
+ - 🎬 **Media Components** — Rich tile-based previews for PDFs, images, audio, video, notes, and folders
22
+ - 💻 **IDE Workspace** — Full workspace component with Monaco editor, file tree, terminal, and diff viewer
21
23
 
22
24
  ## 📦 Installation
23
25
 
@@ -55,12 +57,13 @@ For developers working on this library, please refer to the [UI Components Playb
55
57
  |----------|------------|
56
58
  | **Core UI** | [`DeesButton`](#deesbutton), [`DeesButtonExit`](#deesbuttonexit), [`DeesButtonGroup`](#deesbuttongroup), [`DeesBadge`](#deesbadge), [`DeesChips`](#deeschips), [`DeesHeading`](#deesheading), [`DeesHint`](#deeshint), [`DeesIcon`](#deesicon), [`DeesLabel`](#deeslabel), [`DeesPanel`](#deespanel), [`DeesSearchbar`](#deessearchbar), [`DeesSpinner`](#deesspinner), [`DeesToast`](#deestoast), [`DeesWindowcontrols`](#deeswindowcontrols), [`DeesActionbar`](#deesactionbar) |
57
59
  | **Forms** | [`DeesForm`](#deesform), [`DeesInputText`](#deesinputtext), [`DeesInputCheckbox`](#deesinputcheckbox), [`DeesInputDropdown`](#deesinputdropdown), [`DeesInputRadiogroup`](#deesinputradiogroup), [`DeesInputFileupload`](#deesinputfileupload), [`DeesInputIban`](#deesinputiban), [`DeesInputPhone`](#deesinputphone), [`DeesInputQuantitySelector`](#deesinputquantityselector), [`DeesInputMultitoggle`](#deesinputmultitoggle), [`DeesInputToggle`](#deesinputtoggle), [`DeesInputTags`](#deesinputtags), [`DeesInputTypelist`](#deesinputtypelist), [`DeesInputList`](#deesinputlist), [`DeesInputProfilepicture`](#deesinputprofilepicture), [`DeesInputRichtext`](#deesinputrichtext), [`DeesInputWysiwyg`](#deesinputwysiwyg), [`DeesInputDatepicker`](#deesinputdatepicker), [`DeesInputSearchselect`](#deesinputsearchselect), [`DeesInputCode`](#deesinputcode), [`DeesFormSubmit`](#deesformsubmit) |
58
- | **App Shell (Layout)** | [`DeesAppui`](#deesappui-), [`DeesAppuiMainmenu`](#deesappuimainmenu), [`DeesAppuiSecondarymenu`](#deesappuisecondarymenu), [`DeesAppuiMaincontent`](#deesappuimaincontent), [`DeesAppuiAppbar`](#deesappuiappbar), [`DeesAppuiActivitylog`](#deesappuiactivitylog), [`DeesAppuiBottombar`](#deesappuibottombar), [`DeesAppuiProfiledropdown`](#deesappuiprofiledropdown), [`DeesAppuiTabs`](#deesappuitabs), [`DeesMobileNavigation`](#deesmobilenavigation), [`DeesDashboardGrid`](#deesdashboardgrid) |
60
+ | **App Shell (Layout)** | [`DeesAppui`](#deesappui-️), [`DeesAppuiMainmenu`](#deesappuimainmenu), [`DeesAppuiSecondarymenu`](#deesappuisecondarymenu), [`DeesAppuiMaincontent`](#deesappuimaincontent), [`DeesAppuiAppbar`](#deesappuiappbar), [`DeesAppuiActivitylog`](#deesappuiactivitylog), [`DeesAppuiBottombar`](#deesappuibottombar), [`DeesAppuiProfiledropdown`](#deesappuiprofiledropdown), [`DeesAppuiTabs`](#deesappuitabs), [`DeesMobileNavigation`](#deesmobilenavigation), [`DeesDashboardGrid`](#deesdashboardgrid) |
59
61
  | **Data Display** | [`DeesTable`](#deestable), [`DeesDataviewCodebox`](#deesdataviewcodebox), [`DeesDataviewStatusobject`](#deesdataviewstatusobject), [`DeesPdf`](#deespdf), [`DeesStatsGrid`](#deesstatsgrid), [`DeesPagination`](#deespagination) |
62
+ | **Media & Tiles** | [`DeesTilePdf`](#deestilepdf), [`DeesTileImage`](#deestileimage), [`DeesTileAudio`](#deestileaudio), [`DeesTileVideo`](#deestilevideo), [`DeesTileNote`](#deestilenote), [`DeesTileFolder`](#deestilefolder), [`DeesPreview`](#deespreview), [`DeesPdfViewer`](#deespdfviewer), [`DeesPdfPreview`](#deespdfpreview), [`DeesImageViewer`](#deesimageviewer), [`DeesAudioViewer`](#deesaudioviewer), [`DeesVideoViewer`](#deesvideoviewer) |
60
63
  | **Visualization** | [`DeesChartArea`](#deeschartarea), [`DeesChartLog`](#deeschartlog) |
61
64
  | **Dialogs & Overlays** | [`DeesModal`](#deesmodal), [`DeesContextmenu`](#deescontextmenu), [`DeesSpeechbubble`](#deesspeechbubble), [`DeesWindowlayer`](#deeswindowlayer) |
62
65
  | **Navigation** | [`DeesStepper`](#deesstepper), [`DeesProgressbar`](#deesprogressbar) |
63
- | **Workspace / IDE** | [`DeesEditor`](#deeseditor), [`DeesTerminal`](#deesterminal), [`DeesUpdater`](#deesupdater) |
66
+ | **Workspace / IDE** | [`DeesWorkspace`](#deesworkspace), [`DeesWorkspaceMonaco`](#deesworkspacemonaco), [`DeesWorkspaceDiffEditor`](#deesworkspacediffeditor), [`DeesWorkspaceFiletree`](#deesworkspacefiletree), [`DeesWorkspaceTerminal`](#deesworkspaceterminal), [`DeesWorkspaceTerminalPreview`](#deesworkspaceterminalpreview), [`DeesWorkspaceMarkdown`](#deesworkspacemarkdown), [`DeesWorkspaceMarkdownoutlet`](#deesworkspacemarkdownoutlet), [`DeesWorkspaceBottombar`](#deesworkspacebottombar) |
64
67
  | **Theming** | [`DeesTheme`](#deestheme) |
65
68
  | **Pre-built Templates** | [`DeesSimpleAppdash`](#deessimpleappdash), [`DeesSimpleLogin`](#deessimplelogin) |
66
69
  | **Shopping** | [`DeesShoppingProductcard`](#deesshoppingproductcard) |
@@ -1234,6 +1237,146 @@ Pagination component for navigating through large datasets.
1234
1237
 
1235
1238
  ---
1236
1239
 
1240
+ ### Media & Tile Components 🎬
1241
+
1242
+ A rich collection of tile-based preview components for displaying media files in grids. All tiles share a consistent base class (`DeesTileBase`) with lazy loading via `IntersectionObserver`, hover interactions, click events, context menus, and three size variants (`small`, `default`, `large`).
1243
+
1244
+ All tile badges use a unified styling system with label-awareness — when a `label` is set, bottom badges automatically shift up to avoid overlapping.
1245
+
1246
+ #### `DeesTilePdf`
1247
+ PDF document tile with live page preview on hover.
1248
+
1249
+ ```typescript
1250
+ <dees-tile-pdf
1251
+ pdfUrl="/documents/report.pdf"
1252
+ label="Annual Report"
1253
+ clickable
1254
+ @tile-click=${handleClick}
1255
+ ></dees-tile-pdf>
1256
+ ```
1257
+
1258
+ **Key Features:**
1259
+ - Renders first page as canvas preview
1260
+ - Hover to scrub through pages (mouse X position maps to page number)
1261
+ - Shows page count badge, hover page indicator
1262
+ - Detects A4/Letter vs non-standard aspect ratios
1263
+
1264
+ #### `DeesTileImage`
1265
+ Image tile with lazy loading and dimension display.
1266
+
1267
+ ```typescript
1268
+ <dees-tile-image
1269
+ src="/photos/landscape.jpg"
1270
+ alt="Mountain landscape"
1271
+ label="landscape.jpg"
1272
+ clickable
1273
+ @tile-click=${handleClick}
1274
+ ></dees-tile-image>
1275
+ ```
1276
+
1277
+ **Key Features:**
1278
+ - Lazy loads image on scroll into view
1279
+ - Shows image dimensions on hover (e.g. "1920 × 1080")
1280
+ - Checkerboard background for transparent images
1281
+
1282
+ #### `DeesTileAudio`
1283
+ Audio file tile with waveform visualization.
1284
+
1285
+ ```typescript
1286
+ <dees-tile-audio
1287
+ src="/music/track.mp3"
1288
+ title="Summer Vibes"
1289
+ artist="DJ Example"
1290
+ clickable
1291
+ @tile-click=${handleClick}
1292
+ ></dees-tile-audio>
1293
+ ```
1294
+
1295
+ **Key Features:**
1296
+ - Generates waveform visualization from audio data
1297
+ - Shows duration badge (e.g. "3:42")
1298
+ - Displays title and artist metadata
1299
+ - Play overlay on hover
1300
+
1301
+ #### `DeesTileVideo`
1302
+ Video tile with thumbnail capture and hover preview.
1303
+
1304
+ ```typescript
1305
+ <dees-tile-video
1306
+ src="/videos/intro.mp4"
1307
+ poster="/thumbs/intro.jpg"
1308
+ label="Introduction"
1309
+ clickable
1310
+ @tile-click=${handleClick}
1311
+ ></dees-tile-video>
1312
+ ```
1313
+
1314
+ **Key Features:**
1315
+ - Auto-captures first frame as thumbnail (or uses provided `poster`)
1316
+ - Plays video preview on hover
1317
+ - Shows duration badge
1318
+ - Play button overlay
1319
+
1320
+ #### `DeesTileNote`
1321
+ Code/text snippet tile with syntax-aware display.
1322
+
1323
+ ```typescript
1324
+ <dees-tile-note
1325
+ title="config.ts"
1326
+ language="TypeScript"
1327
+ .content=${codeString}
1328
+ clickable
1329
+ @tile-click=${handleClick}
1330
+ ></dees-tile-note>
1331
+ ```
1332
+
1333
+ **Key Features:**
1334
+ - Monospace font with line numbers
1335
+ - Language badge (top-right)
1336
+ - Scrollable content on hover (mouse X position controls scroll)
1337
+ - Line indicator badge while scrolling
1338
+ - Gradient fade at bottom
1339
+
1340
+ #### `DeesTileFolder`
1341
+ Folder tile with 2×2 content preview grid.
1342
+
1343
+ ```typescript
1344
+ <dees-tile-folder
1345
+ name="Project Assets"
1346
+ .items=${[
1347
+ { type: 'image', name: 'logo.png', thumbnailSrc: '/thumbs/logo.png' },
1348
+ { type: 'pdf', name: 'spec.pdf' },
1349
+ { type: 'audio', name: 'jingle.mp3' },
1350
+ { type: 'video', name: 'demo.mp4' },
1351
+ ]}
1352
+ clickable
1353
+ @tile-click=${handleClick}
1354
+ ></dees-tile-folder>
1355
+ ```
1356
+
1357
+ **Key Features:**
1358
+ - 2×2 preview grid showing first 4 items (thumbnails or type icons)
1359
+ - Item count badge (e.g. "12 items")
1360
+ - Folder icon header with name
1361
+ - Supports: `pdf`, `image`, `audio`, `video`, `note`, `folder`, `unknown` types
1362
+
1363
+ #### `DeesPreview`
1364
+ Unified preview component that auto-selects the right tile type based on content.
1365
+
1366
+ #### `DeesPdfViewer` / `DeesPdfPreview`
1367
+ Full PDF viewing components with navigation controls.
1368
+
1369
+ #### `DeesImageViewer`
1370
+ Full-screen image viewer with zoom and pan.
1371
+
1372
+ #### `DeesAudioViewer`
1373
+ Audio playback component with waveform and controls.
1374
+
1375
+ #### `DeesVideoViewer`
1376
+ Video playback component with standard controls.
1377
+
1378
+ ---
1379
+
1237
1380
  ### Visualization Components
1238
1381
 
1239
1382
  #### `DeesChartArea`
@@ -1294,16 +1437,41 @@ DeesModal.createAndShow({
1294
1437
  ```
1295
1438
 
1296
1439
  #### `DeesContextmenu`
1297
- Context menu component for right-click actions.
1440
+ Context menu component for right-click actions with nested submenu support.
1298
1441
 
1299
1442
  ```typescript
1300
- <dees-contextmenu
1301
- .items=${[
1302
- { label: 'Edit', icon: 'edit', action: () => handleEdit() },
1303
- { label: 'Delete', icon: 'trash', action: () => handleDelete() }
1304
- ]}
1305
- position="right"
1306
- ></dees-contextmenu>
1443
+ // Programmatic usage
1444
+ DeesContextmenu.openContextMenuWithOptions(mouseEvent, [
1445
+ {
1446
+ name: 'Edit',
1447
+ iconName: 'lucide:edit',
1448
+ action: async () => handleEdit()
1449
+ },
1450
+ { divider: true },
1451
+ {
1452
+ name: 'More Options',
1453
+ iconName: 'lucide:moreHorizontal',
1454
+ submenu: [
1455
+ { name: 'Duplicate', iconName: 'lucide:copy', action: async () => handleDuplicate() },
1456
+ { name: 'Archive', iconName: 'lucide:archive', action: async () => handleArchive() },
1457
+ ]
1458
+ },
1459
+ {
1460
+ name: 'Delete',
1461
+ iconName: 'lucide:trash2',
1462
+ action: async () => handleDelete()
1463
+ }
1464
+ ]);
1465
+
1466
+ // Component-based (implement getContextMenuItems on any element)
1467
+ class MyComponent extends DeesElement {
1468
+ getContextMenuItems() {
1469
+ return [
1470
+ { name: 'View Details', iconName: 'lucide:eye', action: async () => { ... } },
1471
+ { name: 'Edit', iconName: 'lucide:edit', action: async () => { ... } },
1472
+ ];
1473
+ }
1474
+ }
1307
1475
  ```
1308
1476
 
1309
1477
  #### `DeesSpeechbubble`
@@ -1395,51 +1563,68 @@ Theme provider component that wraps children and provides CSS custom properties
1395
1563
 
1396
1564
  ---
1397
1565
 
1398
- ### Workspace / IDE Components
1566
+ ### Workspace / IDE Components 💻
1567
+
1568
+ A full-featured IDE workspace component suite for building browser-based code editors, terminal interfaces, and documentation viewers.
1399
1569
 
1400
- #### `DeesEditor`
1401
- Code editor component with syntax highlighting and code completion, powered by Monaco Editor.
1570
+ #### `DeesWorkspace`
1571
+ Top-level workspace shell that composes editor, file tree, terminal, and bottom bar into an IDE-like layout.
1402
1572
 
1403
1573
  ```typescript
1404
- <dees-editor
1574
+ <dees-workspace></dees-workspace>
1575
+ ```
1576
+
1577
+ #### `DeesWorkspaceMonaco`
1578
+ Monaco Editor integration for code editing with full IntelliSense, syntax highlighting, and language support.
1579
+
1580
+ ```typescript
1581
+ <dees-workspace-monaco
1405
1582
  .value=${code}
1583
+ .language=${'typescript'}
1406
1584
  @change=${handleCodeChange}
1585
+ ></dees-workspace-monaco>
1586
+ ```
1587
+
1588
+ #### `DeesWorkspaceDiffEditor`
1589
+ Side-by-side diff editor powered by Monaco for comparing file versions.
1590
+
1591
+ ```typescript
1592
+ <dees-workspace-diff-editor
1593
+ .originalValue=${originalCode}
1594
+ .modifiedValue=${modifiedCode}
1407
1595
  .language=${'typescript'}
1408
- .theme=${'vs-dark'}
1409
- .options=${{
1410
- lineNumbers: true,
1411
- minimap: { enabled: true },
1412
- autoClosingBrackets: 'always'
1413
- }}
1414
- ></dees-editor>
1596
+ ></dees-workspace-diff-editor>
1415
1597
  ```
1416
1598
 
1417
- #### `DeesTerminal`
1418
- Terminal emulator component for command-line interface.
1599
+ #### `DeesWorkspaceFiletree`
1600
+ File tree navigation component with expand/collapse, file icons, and selection.
1419
1601
 
1420
1602
  ```typescript
1421
- <dees-terminal
1422
- .commands=${{
1423
- 'echo': (args) => `Echo: ${args.join(' ')}`,
1424
- 'help': () => 'Available commands: echo, help'
1425
- }}
1426
- .prompt=${'$'}
1427
- .welcomeMessage=${'Welcome! Type "help" for available commands.'}
1428
- ></dees-terminal>
1603
+ <dees-workspace-filetree
1604
+ .files=${fileTreeData}
1605
+ @file-select=${handleFileSelect}
1606
+ ></dees-workspace-filetree>
1429
1607
  ```
1430
1608
 
1431
- #### `DeesUpdater`
1432
- Component for managing application updates and version control.
1609
+ #### `DeesWorkspaceTerminal`
1610
+ Terminal emulator component powered by xterm.js.
1433
1611
 
1434
1612
  ```typescript
1435
- <dees-updater
1436
- .currentVersion=${'1.5.2'}
1437
- .checkInterval=${3600000}
1438
- .autoUpdate=${false}
1439
- @update-available=${handleUpdateAvailable}
1440
- ></dees-updater>
1613
+ <dees-workspace-terminal></dees-workspace-terminal>
1441
1614
  ```
1442
1615
 
1616
+ #### `DeesWorkspaceTerminalPreview`
1617
+ Terminal with integrated preview pane for output visualization.
1618
+
1619
+ #### `DeesWorkspaceMarkdown`
1620
+ Markdown editor with live preview.
1621
+
1622
+ #### `DeesWorkspaceMarkdownoutlet`
1623
+ Read-only markdown renderer for documentation display.
1624
+
1625
+ #### `DeesWorkspaceBottombar`
1626
+ IDE-style bottom status bar for the workspace.
1627
+
1443
1628
  ---
1444
1629
 
1445
1630
  ### Pre-built Templates
@@ -1582,6 +1767,13 @@ interface IViewActivationContext {
1582
1767
  viewId: string;
1583
1768
  params?: Record<string, string>;
1584
1769
  }
1770
+
1771
+ // Tile folder item (for DeesTileFolder)
1772
+ interface ITileFolderItem {
1773
+ type: 'pdf' | 'image' | 'audio' | 'video' | 'note' | 'folder' | 'unknown';
1774
+ thumbnailSrc?: string;
1775
+ name: string;
1776
+ }
1585
1777
  ```
1586
1778
 
1587
1779
  ---
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '3.40.0',
6
+ version: '3.41.0',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  }