@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
@@ -257,6 +257,8 @@ export class DeesSimpleLogin extends DeesElement {
257
257
  cssManager.defaultStyles,
258
258
  css`
259
259
  :host {
260
+ position: relative;
261
+ container-type: inline-size;
260
262
  color: var(--dees-color-text-primary);
261
263
  user-select: none;
262
264
  display: block;
@@ -295,7 +297,15 @@ export class DeesSimpleLogin extends DeesElement {
295
297
 
296
298
  .login {
297
299
  width: 100%;
298
- max-width: 360px;
300
+ max-width: 424px;
301
+ box-sizing: border-box;
302
+ padding: 32px;
303
+ margin: auto;
304
+ border: 1px solid var(--dees-color-border-subtle);
305
+ border-radius: var(--dees-radius-2xl);
306
+ corner-shape: var(--dees-corner-shape);
307
+ background: var(--dees-color-bg-primary);
308
+ --dees-input-control-height: 40px;
299
309
  display: flex;
300
310
  flex-direction: column;
301
311
  gap: var(--dees-spacing-xl);
@@ -308,8 +318,20 @@ export class DeesSimpleLogin extends DeesElement {
308
318
  text-align: center;
309
319
  }
310
320
 
321
+ .identity {
322
+ display: grid;
323
+ place-items: center;
324
+ width: 48px;
325
+ height: 48px;
326
+ margin: 0 auto 12px;
327
+ border-radius: var(--dees-radius-xl);
328
+ background: var(--dees-color-fill-secondary);
329
+ color: var(--dees-color-text-primary);
330
+ }
331
+
311
332
  .header {
312
333
  font-size: var(--dees-font-title2-size);
334
+ line-height: 1.2;
313
335
  font-weight: 600;
314
336
  letter-spacing: -0.025em;
315
337
  color: var(--dees-color-text-primary);
@@ -320,12 +342,13 @@ export class DeesSimpleLogin extends DeesElement {
320
342
  /* secondary rather than muted: the tertiary label token is a 0.30 alpha and drops
321
343
  under 2:1 against both backgrounds */
322
344
  color: var(--dees-color-text-secondary);
345
+ line-height: 1.5;
323
346
  }
324
347
 
325
348
  .methods {
326
349
  display: flex;
327
350
  flex-direction: column;
328
- gap: var(--dees-spacing-lg);
351
+ gap: var(--dees-spacing-sm);
329
352
  }
330
353
 
331
354
  .method {
@@ -369,6 +392,7 @@ export class DeesSimpleLogin extends DeesElement {
369
392
  }
370
393
 
371
394
  .divider {
395
+ margin: 12px 0;
372
396
  display: flex;
373
397
  align-items: center;
374
398
  gap: var(--dees-spacing-md);
@@ -382,7 +406,7 @@ export class DeesSimpleLogin extends DeesElement {
382
406
  content: '';
383
407
  flex: 1;
384
408
  height: 1px;
385
- background: var(--dees-color-border-subtle);
409
+ background: var(--dees-color-border-default);
386
410
  }
387
411
 
388
412
  .methodError {
@@ -393,6 +417,9 @@ export class DeesSimpleLogin extends DeesElement {
393
417
  line-height: 1.4;
394
418
  color: var(--dees-color-text-error);
395
419
  user-select: text;
420
+ padding: 10px 12px;
421
+ border-radius: var(--dees-radius-md);
422
+ background: var(--dees-color-badge-error-bg);
396
423
  }
397
424
 
398
425
  .methodError dees-icon {
@@ -434,9 +461,23 @@ export class DeesSimpleLogin extends DeesElement {
434
461
  }
435
462
 
436
463
  dees-tile::part(content) {
437
- padding: var(--dees-spacing-xl);
464
+ padding: 0;
465
+ border: 0;
466
+ overflow: visible;
438
467
  }
439
468
 
469
+ dees-tile::part(outer) {
470
+ border: 0;
471
+ border-radius: 0;
472
+ background: transparent;
473
+ overflow: visible;
474
+ }
475
+
476
+ dees-tile::part(header) {
477
+ padding-bottom: 16px;
478
+ }
479
+ .credentials-title { color: var(--dees-color-text-secondary); font-size: 12px; font-weight: 500; }
480
+
440
481
  dees-tile dees-form {
441
482
  display: flex;
442
483
  flex-direction: column;
@@ -451,6 +492,18 @@ export class DeesSimpleLogin extends DeesElement {
451
492
  margin-top: var(--dees-spacing-sm);
452
493
  width: 100%;
453
494
  }
495
+
496
+ .loginContainer { background: var(--dees-color-bg-canvas); align-items: safe center; }
497
+ .loginContainer dees-button::part(button) { min-height: 40px; font-size: var(--dees-font-control-size); padding-inline: 16px; }
498
+ .credentials dees-form { display: grid; gap: 18px; }
499
+ .credentials dees-form-submit, dees-tile dees-form-submit { margin-top: 4px; }
500
+ @container (max-width: 480px) {
501
+ .loginContainer { padding: 20px; }
502
+ .login { padding: 24px; }
503
+ }
504
+ @media (prefers-reduced-motion: reduce) {
505
+ .login, .slotContainer { transition: none; }
506
+ }
454
507
  `,
455
508
  ];
456
509
 
@@ -613,6 +666,7 @@ export class DeesSimpleLogin extends DeesElement {
613
666
  <div class="loginContainer">
614
667
  <div class="login">
615
668
  <div class="login-header">
669
+ <div class="identity"><slot name="brand"><dees-icon icon="lucide:logIn" iconSize="24"></dees-icon></slot></div>
616
670
  <div class="header">${this.copy('heading', 'Sign in')}</div>
617
671
  <div class="subheader">
618
672
  ${this.copy('subheading', `Enter your credentials to access ${this.name}`)}
@@ -642,7 +696,7 @@ export class DeesSimpleLogin extends DeesElement {
642
696
  <div class="methods">
643
697
  ${methods.map(
644
698
  (methodArg, index) => html`
645
- ${index === 0
699
+ ${index === 0 || (methodArg !== 'password' && methods[index - 1] !== 'password')
646
700
  ? ''
647
701
  : html`<div class="divider">${this.copy('divider', 'or')}</div>`}
648
702
  ${this.renderMethod(methodArg)}
@@ -680,6 +734,7 @@ export class DeesSimpleLogin extends DeesElement {
680
734
  return html`
681
735
  <dees-button
682
736
  full-width
737
+ size="lg"
683
738
  .type=${isRegister ? 'outline' : 'accent'}
684
739
  .icon=${busy ? '' : isRegister ? 'lucide:keyRound' : 'lucide:fingerprint'}
685
740
  .text=${isRegister
@@ -720,7 +775,8 @@ export class DeesSimpleLogin extends DeesElement {
720
775
  return html`
721
776
  <dees-button
722
777
  full-width
723
- title=${dense ? providerArg.label : ''}
778
+ size="lg"
779
+ title=${providerArg.label}
724
780
  .type=${'secondary'}
725
781
  .icon=${busy ? '' : providerArg.icon || ''}
726
782
  .text=${prefix ? `${prefix} ${providerArg.label}` : providerArg.label}
@@ -764,17 +820,17 @@ export class DeesSimpleLogin extends DeesElement {
764
820
  isPasswordBool
765
821
  required
766
822
  ></dees-input-text>
767
- <dees-form-submit full-width>${this.copy('passwordSubmit', 'Sign in')}</dees-form-submit>
823
+ <dees-form-submit full-width size="lg" .type=${this.resolvedMethods.length === 1 ? 'accent' : 'default'}>${this.copy('passwordSubmit', 'Sign in')}</dees-form-submit>
768
824
  </dees-form>
769
825
  `;
770
- // The tile is what gives a lone credentials form its card. Once the column holds other
771
- // methods the column *is* the card, and a second frame around only the fields reads as
772
- // a stray box — so the form joins the column bare and keeps the same 360px edge.
826
+ // Keep the password-only tile handle and configurable heading. Its parts are flat
827
+ // inside the shared login frame, so every method follows the same content edge.
773
828
  return html`
774
829
  <div class="method">
775
830
  ${this.resolvedMethods.length === 1
776
831
  ? html`
777
832
  <dees-tile .heading=${this.copy('credentialsHeading', 'Credentials')}>
833
+ <div slot="header" class="credentials-title">${this.copy('credentialsHeading', 'Credentials')}</div>
778
834
  ${form}
779
835
  </dees-tile>
780
836
  `