@design.estate/dees-catalog 9.3.0 → 9.4.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.
Files changed (29) hide show
  1. package/dist_bundle/bundle.js +1372 -2727
  2. package/dist_bundle/bundle.js.map +1 -1
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +2 -1
  5. package/dist_ts_web/elements/00group-input/dees-input-quantityselector/dees-input-quantityselector.js +4 -2
  6. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.d.ts +11 -9
  7. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.d.ts +2 -2
  8. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.js +148 -319
  9. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.js +60 -279
  10. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.d.ts +25 -10
  11. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.d.ts +3 -4
  12. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.js +229 -388
  13. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +253 -813
  14. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.d.ts +2 -0
  15. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.js +150 -389
  16. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.js +67 -11
  17. package/package.json +1 -1
  18. package/readme.hints.md +26 -0
  19. package/readme.md +76 -15
  20. package/scripts/bdtheme-baseline.json +0 -2
  21. package/ts_web/00_commitinfo_data.ts +1 -1
  22. package/ts_web/elements/00group-button/dees-button/dees-button.ts +1 -0
  23. package/ts_web/elements/00group-input/dees-input-quantityselector/dees-input-quantityselector.ts +3 -1
  24. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts +67 -332
  25. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.ts +65 -322
  26. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.ts +136 -382
  27. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +224 -872
  28. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.ts +116 -421
  29. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts +66 -10
@@ -259,6 +259,8 @@ let DeesSimpleLogin = (() => {
259
259
  cssManager.defaultStyles,
260
260
  css `
261
261
  :host {
262
+ position: relative;
263
+ container-type: inline-size;
262
264
  color: var(--dees-color-text-primary);
263
265
  user-select: none;
264
266
  display: block;
@@ -297,7 +299,15 @@ let DeesSimpleLogin = (() => {
297
299
 
298
300
  .login {
299
301
  width: 100%;
300
- max-width: 360px;
302
+ max-width: 424px;
303
+ box-sizing: border-box;
304
+ padding: 32px;
305
+ margin: auto;
306
+ border: 1px solid var(--dees-color-border-subtle);
307
+ border-radius: var(--dees-radius-2xl);
308
+ corner-shape: var(--dees-corner-shape);
309
+ background: var(--dees-color-bg-primary);
310
+ --dees-input-control-height: 40px;
301
311
  display: flex;
302
312
  flex-direction: column;
303
313
  gap: var(--dees-spacing-xl);
@@ -310,8 +320,20 @@ let DeesSimpleLogin = (() => {
310
320
  text-align: center;
311
321
  }
312
322
 
323
+ .identity {
324
+ display: grid;
325
+ place-items: center;
326
+ width: 48px;
327
+ height: 48px;
328
+ margin: 0 auto 12px;
329
+ border-radius: var(--dees-radius-xl);
330
+ background: var(--dees-color-fill-secondary);
331
+ color: var(--dees-color-text-primary);
332
+ }
333
+
313
334
  .header {
314
335
  font-size: var(--dees-font-title2-size);
336
+ line-height: 1.2;
315
337
  font-weight: 600;
316
338
  letter-spacing: -0.025em;
317
339
  color: var(--dees-color-text-primary);
@@ -322,12 +344,13 @@ let DeesSimpleLogin = (() => {
322
344
  /* secondary rather than muted: the tertiary label token is a 0.30 alpha and drops
323
345
  under 2:1 against both backgrounds */
324
346
  color: var(--dees-color-text-secondary);
347
+ line-height: 1.5;
325
348
  }
326
349
 
327
350
  .methods {
328
351
  display: flex;
329
352
  flex-direction: column;
330
- gap: var(--dees-spacing-lg);
353
+ gap: var(--dees-spacing-sm);
331
354
  }
332
355
 
333
356
  .method {
@@ -371,6 +394,7 @@ let DeesSimpleLogin = (() => {
371
394
  }
372
395
 
373
396
  .divider {
397
+ margin: 12px 0;
374
398
  display: flex;
375
399
  align-items: center;
376
400
  gap: var(--dees-spacing-md);
@@ -384,7 +408,7 @@ let DeesSimpleLogin = (() => {
384
408
  content: '';
385
409
  flex: 1;
386
410
  height: 1px;
387
- background: var(--dees-color-border-subtle);
411
+ background: var(--dees-color-border-default);
388
412
  }
389
413
 
390
414
  .methodError {
@@ -395,6 +419,9 @@ let DeesSimpleLogin = (() => {
395
419
  line-height: 1.4;
396
420
  color: var(--dees-color-text-error);
397
421
  user-select: text;
422
+ padding: 10px 12px;
423
+ border-radius: var(--dees-radius-md);
424
+ background: var(--dees-color-badge-error-bg);
398
425
  }
399
426
 
400
427
  .methodError dees-icon {
@@ -436,9 +463,23 @@ let DeesSimpleLogin = (() => {
436
463
  }
437
464
 
438
465
  dees-tile::part(content) {
439
- padding: var(--dees-spacing-xl);
466
+ padding: 0;
467
+ border: 0;
468
+ overflow: visible;
440
469
  }
441
470
 
471
+ dees-tile::part(outer) {
472
+ border: 0;
473
+ border-radius: 0;
474
+ background: transparent;
475
+ overflow: visible;
476
+ }
477
+
478
+ dees-tile::part(header) {
479
+ padding-bottom: 16px;
480
+ }
481
+ .credentials-title { color: var(--dees-color-text-secondary); font-size: 12px; font-weight: 500; }
482
+
442
483
  dees-tile dees-form {
443
484
  display: flex;
444
485
  flex-direction: column;
@@ -453,6 +494,18 @@ let DeesSimpleLogin = (() => {
453
494
  margin-top: var(--dees-spacing-sm);
454
495
  width: 100%;
455
496
  }
497
+
498
+ .loginContainer { background: var(--dees-color-bg-canvas); align-items: safe center; }
499
+ .loginContainer dees-button::part(button) { min-height: 40px; font-size: var(--dees-font-control-size); padding-inline: 16px; }
500
+ .credentials dees-form { display: grid; gap: 18px; }
501
+ .credentials dees-form-submit, dees-tile dees-form-submit { margin-top: 4px; }
502
+ @container (max-width: 480px) {
503
+ .loginContainer { padding: 20px; }
504
+ .login { padding: 24px; }
505
+ }
506
+ @media (prefers-reduced-motion: reduce) {
507
+ .login, .slotContainer { transition: none; }
508
+ }
456
509
  `,
457
510
  ];
458
511
  // ------------------------------------------------------------------------------------
@@ -592,6 +645,7 @@ let DeesSimpleLogin = (() => {
592
645
  <div class="loginContainer">
593
646
  <div class="login">
594
647
  <div class="login-header">
648
+ <div class="identity"><slot name="brand"><dees-icon icon="lucide:logIn" iconSize="24"></dees-icon></slot></div>
595
649
  <div class="header">${this.copy('heading', 'Sign in')}</div>
596
650
  <div class="subheader">
597
651
  ${this.copy('subheading', `Enter your credentials to access ${this.name}`)}
@@ -619,7 +673,7 @@ let DeesSimpleLogin = (() => {
619
673
  return html `
620
674
  <div class="methods">
621
675
  ${methods.map((methodArg, index) => html `
622
- ${index === 0
676
+ ${index === 0 || (methodArg !== 'password' && methods[index - 1] !== 'password')
623
677
  ? ''
624
678
  : html `<div class="divider">${this.copy('divider', 'or')}</div>`}
625
679
  ${this.renderMethod(methodArg)}
@@ -652,6 +706,7 @@ let DeesSimpleLogin = (() => {
652
706
  return html `
653
707
  <dees-button
654
708
  full-width
709
+ size="lg"
655
710
  .type=${isRegister ? 'outline' : 'accent'}
656
711
  .icon=${busy ? '' : isRegister ? 'lucide:keyRound' : 'lucide:fingerprint'}
657
712
  .text=${isRegister
@@ -688,7 +743,8 @@ let DeesSimpleLogin = (() => {
688
743
  return html `
689
744
  <dees-button
690
745
  full-width
691
- title=${dense ? providerArg.label : ''}
746
+ size="lg"
747
+ title=${providerArg.label}
692
748
  .type=${'secondary'}
693
749
  .icon=${busy ? '' : providerArg.icon || ''}
694
750
  .text=${prefix ? `${prefix} ${providerArg.label}` : providerArg.label}
@@ -729,17 +785,17 @@ let DeesSimpleLogin = (() => {
729
785
  isPasswordBool
730
786
  required
731
787
  ></dees-input-text>
732
- <dees-form-submit full-width>${this.copy('passwordSubmit', 'Sign in')}</dees-form-submit>
788
+ <dees-form-submit full-width size="lg" .type=${this.resolvedMethods.length === 1 ? 'accent' : 'default'}>${this.copy('passwordSubmit', 'Sign in')}</dees-form-submit>
733
789
  </dees-form>
734
790
  `;
735
- // The tile is what gives a lone credentials form its card. Once the column holds other
736
- // methods the column *is* the card, and a second frame around only the fields reads as
737
- // a stray box — so the form joins the column bare and keeps the same 360px edge.
791
+ // Keep the password-only tile handle and configurable heading. Its parts are flat
792
+ // inside the shared login frame, so every method follows the same content edge.
738
793
  return html `
739
794
  <div class="method">
740
795
  ${this.resolvedMethods.length === 1
741
796
  ? html `
742
797
  <dees-tile .heading=${this.copy('credentialsHeading', 'Credentials')}>
798
+ <div slot="header" class="credentials-title">${this.copy('credentialsHeading', 'Credentials')}</div>
743
799
  ${form}
744
800
  </dees-tile>
745
801
  `
@@ -1047,4 +1103,4 @@ let DeesSimpleLogin = (() => {
1047
1103
  return DeesSimpleLogin = _classThis;
1048
1104
  })();
1049
1105
  export { DeesSimpleLogin };
1050
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zaW1wbGUtbG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1zaW1wbGUvZGVlcy1zaW1wbGUtbG9naW4vZGVlcy1zaW1wbGUtbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFFTCxVQUFVLEVBQ1YsR0FBRyxHQUNKLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHdEQUF3RCxDQUFDO0FBQ2hFLE9BQU8sOENBQThDLENBQUM7QUErR3RELE1BQU0sb0JBQW9CLEdBQXVCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVyRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0lBRVUsZUFBZTs0QkFEM0IsYUFBYSxDQUFDLG1CQUFtQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OztnQ0FRN0MsUUFBUSxFQUFFO21DQVFWLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzswQ0FJM0IsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDOzRDQU85QixRQUFRLENBQUMsRUFBRSxT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
1106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zaW1wbGUtbG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1zaW1wbGUvZGVlcy1zaW1wbGUtbG9naW4vZGVlcy1zaW1wbGUtbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFFTCxVQUFVLEVBQ1YsR0FBRyxHQUNKLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHdEQUF3RCxDQUFDO0FBQ2hFLE9BQU8sOENBQThDLENBQUM7QUErR3RELE1BQU0sb0JBQW9CLEdBQXVCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVyRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0lBRVUsZUFBZTs0QkFEM0IsYUFBYSxDQUFDLG1CQUFtQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OztnQ0FRN0MsUUFBUSxFQUFFO21DQVFWLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzswQ0FJM0IsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDOzRDQU85QixRQUFRLENBQUMsRUFBRSxT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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-catalog",
3
- "version": "9.3.0",
3
+ "version": "9.4.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.hints.md CHANGED
@@ -1197,3 +1197,29 @@ Both halves of `dees-simple-login` live in the DOM permanently, stacked and cros
1197
1197
  - App UI caches inactive views with `display:none`; scope browser locators to
1198
1198
  the active view. Chart startup can wait until the component enters the viewport.
1199
1199
  After watch rebuilds, verify the new behavior before capturing screenshots.
1200
+
1201
+ ## Simple family composition and motion
1202
+
1203
+ - The Simple catalog group contains `dees-simple-login`, `dees-simple-appdash`
1204
+ and `dees-shopping-productcard`. Their demos use shared theme wrappers and
1205
+ actual input/button/table primitives; see the README task chooser first.
1206
+ - Login's `.loginContainer`, `.login`, `.slotContainer`, password form keys and
1207
+ externally managed submit status are shipped consumer contracts. Keep the
1208
+ password-only tile handle even when flattening its visual parts. The brand
1209
+ slot is separate from authenticated content. Move focus through public input
1210
+ and button `focus()` methods; a dees-button face currently has `role=button`
1211
+ on a div, so querying a native `button` silently misses it.
1212
+ - `changeSubject` is an RxJS subject, not a DOM event. Quantity controls emit
1213
+ `newValue` for user increments/decrements; product cards translate it to
1214
+ `quantityChange`. Their checkbox independently emits `selectionChange`.
1215
+ - Dashboard notices live in normal flow above the content. The terminal mounts
1216
+ in the content wrapper, forwards a consumer-owned runtime, and uses a request
1217
+ counter to cancel pending creation during rapid toggles or disconnect.
1218
+ - Preserve the subtle sidebar motion: submenu grid reveal, chevron rotation,
1219
+ hover fades, and transform/opacity on rail contents. Resizing the main grid
1220
+ every animation frame causes unnecessary content reflow. Closed submenus
1221
+ become inert immediately; reduced-motion disables the visual transitions.
1222
+ - `test.dees-simple-components.chromium.ts` covers navigation, dynamic views,
1223
+ notice synchronization, narrow layout, terminal cancellation and independent
1224
+ selection/quantity events. Existing login and button tests cover the retained
1225
+ authentication and keyboard contracts.
package/readme.md CHANGED
@@ -27,6 +27,8 @@ switcher**, **view-toggle**, and **single-selection toggle** all lead to
27
27
  | Build an application shell with views and menus | [`dees-appui`](#deesappui) | Main/secondary navigation, content tabs, bars and view lifecycle. |
28
28
  | Show, paste or share a link to the current app screen; address/location bar | [`dees-appui-location`](#deesappuilocation) | Clickable ancestors, URL editing and copy feedback. Enable it in App UI; route state belongs to the shell. |
29
29
  | Build a simpler grouped dashboard | [`dees-simple-appdash`](#deessimpleappdash) | Grouped dashboard navigation without configuring the full App UI shell. |
30
+ | Offer sign-in methods and reveal an authenticated app | [`dees-simple-login`](#deessimplelogin) | Passkeys, providers and password form; the application owns authentication. |
31
+ | Show products with quantities or select a kit | [`dees-shopping-productcard`](#deesshoppingproductcard) | Independent quantity and selection events; the application owns the cart and inventory. |
30
32
  | See components composed into one working application | [Integrated App UI demo](#integrated-app-ui-demo) | Shared state, layout presets, navigation, service tabs, charts, files, settings and activity. Start here before assembling a shell. |
31
33
  | Collect and submit form values | [`dees-form`](#deesform), [`dees-form-submit`](#deesformsubmit) | Give each input a stable `key`; use the form's collection and validation flow. |
32
34
  | Search, filter, sort, edit and act on records | [`dees-table`](#deestable) | Use its columns, selection and data actions before building a table toolbar or row-action layer. |
@@ -645,6 +647,10 @@ Non-negative integer input with native increment/decrement buttons. Decrement st
645
647
  ></dees-input-quantityselector>
646
648
  ```
647
649
 
650
+ User increments/decrements emit `newValue` with the numeric `event.detail`, bubbling
651
+ across shadow boundaries. The existing `changeSubject` subscription remains available
652
+ for form collection. Assigning `.value` or calling `setValue()` does not emit a user event.
653
+
648
654
  #### `DeesInputMultitoggle`
649
655
  The catalog's **segmented control** for view switchers, modes, time periods and
650
656
  short setting choices. Despite the name and the default `type="multi"`, it selects
@@ -2546,22 +2552,52 @@ Search covers resource ID, kind, title, and preview. A matching attached resourc
2546
2552
 
2547
2553
  ### Pre-built Templates
2548
2554
 
2549
- #### `DeesSimpleAppdash`
2550
- Simple application dashboard component for quick prototyping.
2555
+ #### `DeesSimpleAppDash`
2556
+
2557
+ Compact application shell with grouped navigation, global notices, a content scroller
2558
+ and an optional terminal. Use this for a small collection of views; choose
2559
+ [`dees-appui`](#deesappui) for screen URLs, window menus, secondary navigation and inspectors.
2551
2560
 
2552
2561
  ```typescript
2553
2562
  <dees-simple-appdash
2554
- .appTitle=${'My Application'}
2555
- .menuItems=${[
2556
- { name: 'Dashboard', icon: 'home', route: '/dashboard' },
2557
- { name: 'Settings', icon: 'settings', route: '/settings' }
2563
+ name="Studio"
2564
+ .viewTabs=${[
2565
+ { name: 'Overview', iconName: 'lucide:layoutGrid', element: StudioOverview },
2566
+ { name: 'Settings', iconName: 'lucide:settings', subViews: [
2567
+ { name: 'Profile', iconName: 'lucide:contact', element: StudioProfile }
2568
+ ] }
2558
2569
  ]}
2559
- .user=${{ name: 'John Doe', role: 'Administrator' }}
2560
- @menu-select=${handleMenuSelect}
2561
- >
2562
- <!-- Dashboard content -->
2563
- </dees-simple-appdash>
2564
- ```
2570
+ @view-select=${(event) => showViewState(event.detail.view)}
2571
+ @logout=${signOut}
2572
+ ></dees-simple-appdash>
2573
+ ```
2574
+
2575
+ Each `element` is a registered `DeesElement` constructor. Give the shell a bounded
2576
+ height. A group without its own element opens its first navigable child. `loadView(view)`
2577
+ opens a view; selecting the current view preserves its instance and unsaved edits.
2578
+ Switching to another view creates that view anew, so keep shared application state outside
2579
+ the view instances, as the Studio demo does. Replacing `viewTabs` removes a selected view
2580
+ that no longer belongs to the collection.
2581
+
2582
+ Navigation supports Tab, Enter/Space and Up/Down/Home/End. `collapsed` selects an icon rail
2583
+ with speechbubble labels. Containers below 640px use the rail automatically.
2584
+
2585
+ Supply `globalMessages: IGlobalMessage[]`, or call `addMessage({ id?, type, message,
2586
+ dismissible?, icon?, actions? })`. Types are `info`, `success`, `warning`, and `error`;
2587
+ actions have `{ name, iconName?, action }`. `addMessage` returns the ID and replaces an
2588
+ existing message with the same ID. Property updates synchronize their messages while
2589
+ preserving API-added notices. `removeMessage(id)` emits `message-dismiss` with `{ id }`
2590
+ once; `clearMessages()` clears the stack. Notices wrap and scroll independently instead
2591
+ of covering the content.
2592
+
2593
+ `launchTerminal()` toggles the embedded terminal. Pass a consumer-owned
2594
+ `executionEnvironment: IExecutionEnvironment` and optional `terminalSetupCommand`.
2595
+ The shell forwards the environment and removes its terminal on disconnect; it does not
2596
+ destroy a shared runtime. `WebContainerEnvironment` requires a secure, cross-origin
2597
+ isolated browser context. The Studio demo supplies it without booting until Terminal opens.
2598
+
2599
+ The interactive Studio demo connects project archiving, overview counts, activity,
2600
+ workspace name, notification preferences, notices, and sign-out in one sample app.
2565
2601
 
2566
2602
  #### `DeesSimpleLogin`
2567
2603
 
@@ -2627,12 +2663,24 @@ one; `reset()` takes no arguments and clears all busy and error state plus the p
2627
2663
  Provider icons are always consumer-supplied Lucide names — the catalog ships no third-party
2628
2664
  brand assets.
2629
2665
 
2666
+ The optional `brand` slot accepts an application mark; without it a neutral sign-in glyph
2667
+ is shown. All methods share one framed surface, with a divider between button methods
2668
+ and credentials. The password-only tile remains available through the existing shadow
2669
+ DOM handles. `.loginContainer`, `.login`, `.slotContainer`, the password form, its keys,
2670
+ and externally managed submit status retain their existing contracts.
2671
+
2672
+ The sign-in demo offers method configurations, success/error responses and a sign-out
2673
+ round trip. Real consumers should move focus into the authenticated view after awaiting
2674
+ `switchToSlottedContent()` and back into the login after signing out.
2675
+
2630
2676
  ---
2631
2677
 
2632
2678
  ### Shopping Components
2633
2679
 
2634
2680
  #### `DeesShoppingProductcard`
2635
- Product card component for e-commerce applications.
2681
+ Product image, title, description, stock label and price in one surface, with optional
2682
+ quantity and selection controls. Reuse this component before assembling a custom product
2683
+ tile. `imageUrl` is contained without cropping; `iconName` supplies the fallback artwork.
2636
2684
 
2637
2685
  ```typescript
2638
2686
  <dees-shopping-productcard
@@ -2646,12 +2694,25 @@ Product card component for e-commerce applications.
2646
2694
  inStock: true,
2647
2695
  imageUrl: '/images/headphones.jpg'
2648
2696
  }}
2649
- quantity={1}
2650
- showQuantitySelector={true}
2697
+ .quantity=${1}
2698
+ .showQuantitySelector=${true}
2699
+ .selectable=${true}
2700
+ .selected=${false}
2651
2701
  @quantityChange=${handleQuantityChange}
2702
+ @selectionChange=${handleSelectionChange}
2652
2703
  ></dees-shopping-productcard>
2653
2704
  ```
2654
2705
 
2706
+ `quantityChange` carries `{ quantity, productData }`; `selectionChange` carries
2707
+ `{ selected, productData }`. Both bubble across shadow roots. The checkbox is keyboard
2708
+ accessible and clicking the rest of a selectable card toggles it; using the quantity
2709
+ buttons never changes selection. External property assignments do not emit user events.
2710
+
2711
+ `inStock` and `stockText` describe availability. Cart totals, inventory limits and purchase
2712
+ policy belong to the consumer; omit the selector with `showQuantitySelector=false` for
2713
+ unavailable products. The work-kit demo demonstrates this, restocking, shared bag totals,
2714
+ and selecting a kit with `dees-input-multitoggle`. Its Review bag action places no order.
2715
+
2655
2716
  ---
2656
2717
 
2657
2718
  ## TypeScript Interfaces
@@ -29,7 +29,5 @@
29
29
  "ts_web/elements/00group-media/dees-preview/dees-preview.demo.ts": 3,
30
30
  "ts_web/elements/00group-media/dees-thumbnail-pdf/demo.ts": 3,
31
31
  "ts_web/elements/00group-media/dees-video-viewer/demo.ts": 3,
32
- "ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts": 8,
33
- "ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.ts": 11,
34
32
  "ts_web/elements/00group-utility/dees-theme/dees-theme.demo.ts": 13
35
33
  }
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '9.3.0',
6
+ version: '9.4.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
  }
@@ -166,6 +166,7 @@ export class DeesButton extends DeesElement {
166
166
  }
167
167
 
168
168
  :host([full-width]) .textbox {
169
+ display: block;
169
170
  min-width: 0;
170
171
  overflow: hidden;
171
172
  text-overflow: ellipsis;
@@ -76,7 +76,7 @@ export class DeesInputQuantitySelector extends DeesInputBase<DeesInputQuantitySe
76
76
  font-weight: 500;
77
77
  cursor: pointer;
78
78
  transition: all 0.15s ease;
79
- color: var(--dees-color-text-muted);
79
+ color: var(--dees-color-text-secondary);
80
80
  position: relative;
81
81
  }
82
82
 
@@ -158,6 +158,7 @@ export class DeesInputQuantitySelector extends DeesInputBase<DeesInputQuantitySe
158
158
  if (!this.disabled) {
159
159
  this.value++;
160
160
  this.changeSubject.next(this);
161
+ this.dispatchEvent(new CustomEvent('newValue', { detail: this.value, bubbles: true, composed: true }));
161
162
  }
162
163
  }
163
164
 
@@ -165,6 +166,7 @@ export class DeesInputQuantitySelector extends DeesInputBase<DeesInputQuantitySe
165
166
  if (!this.disabled && this.value > 0) {
166
167
  this.value--;
167
168
  this.changeSubject.next(this);
169
+ this.dispatchEvent(new CustomEvent('newValue', { detail: this.value, bubbles: true, composed: true }));
168
170
  }
169
171
  }
170
172