@almadar/ui 5.122.14 → 5.124.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 (63) hide show
  1. package/dist/{TraitProvider-YkK6tXDw.d.cts → TraitProvider-Ch79cUcb.d.cts} +6 -1
  2. package/dist/{TraitProvider-YkK6tXDw.d.ts → TraitProvider-Ch79cUcb.d.ts} +6 -1
  3. package/dist/{UserContext-bziZwgFL.d.cts → UserContext-BKckAUv7.d.cts} +5 -5
  4. package/dist/{UserContext-bziZwgFL.d.ts → UserContext-BKckAUv7.d.ts} +5 -5
  5. package/dist/avl/index.cjs +354 -234
  6. package/dist/avl/index.js +356 -236
  7. package/dist/components/index.cjs +273 -198
  8. package/dist/components/index.d.cts +18 -12
  9. package/dist/components/index.d.ts +18 -12
  10. package/dist/components/index.js +273 -198
  11. package/dist/context/index.cjs +34 -66
  12. package/dist/context/index.d.cts +1 -1
  13. package/dist/context/index.d.ts +1 -1
  14. package/dist/context/index.js +34 -66
  15. package/dist/hooks/index.cjs +8 -0
  16. package/dist/hooks/index.js +8 -0
  17. package/dist/lib/drawable/three/index.cjs +6 -0
  18. package/dist/lib/drawable/three/index.js +6 -0
  19. package/dist/marketing/index.cjs +7 -0
  20. package/dist/marketing/index.js +7 -0
  21. package/dist/providers/index.cjs +343 -217
  22. package/dist/providers/index.d.cts +6 -6
  23. package/dist/providers/index.d.ts +6 -6
  24. package/dist/providers/index.js +343 -217
  25. package/dist/runtime/index.cjs +347 -227
  26. package/dist/runtime/index.d.cts +4 -2
  27. package/dist/runtime/index.d.ts +4 -2
  28. package/dist/runtime/index.js +349 -229
  29. package/package.json +8 -7
  30. package/themes/_contract.md +2 -0
  31. package/themes/almadar-website.css +3 -3
  32. package/themes/almadar.css +4 -4
  33. package/themes/bloomberg-dense.css +2 -2
  34. package/themes/clay.css +417 -0
  35. package/themes/corporate.css +411 -0
  36. package/themes/game-adventure.css +3 -3
  37. package/themes/game-rpg.css +2 -2
  38. package/themes/game-sci-fi.css +1 -1
  39. package/themes/game-ui-pack.css +2 -2
  40. package/themes/gazette.css +2 -2
  41. package/themes/glass.css +428 -0
  42. package/themes/index.css +9 -13
  43. package/themes/kiosk.css +5 -5
  44. package/themes/linear-clean.css +1 -1
  45. package/themes/minimalist.css +2 -2
  46. package/themes/neon.css +3 -3
  47. package/themes/notion-editorial.css +1 -1
  48. package/themes/prism.css +3 -3
  49. package/themes/retro.css +410 -0
  50. package/themes/terminal.css +1 -1
  51. package/themes/trait-wars.css +8 -8
  52. package/themes/wireframe.css +2 -2
  53. package/themes/arctic.css +0 -235
  54. package/themes/copper.css +0 -235
  55. package/themes/ember.css +0 -238
  56. package/themes/forest.css +0 -238
  57. package/themes/lavender.css +0 -233
  58. package/themes/midnight.css +0 -234
  59. package/themes/ocean.css +0 -238
  60. package/themes/rose.css +0 -233
  61. package/themes/sand.css +0 -234
  62. package/themes/slate.css +0 -233
  63. package/themes/sunset.css +0 -238
@@ -164,6 +164,14 @@ function useUISlotManager() {
164
164
  [sourceKey]: content
165
165
  };
166
166
  const nextAll = { ...prev, [config.target]: nextSources };
167
+ const priorWriters = Object.keys(slotSources);
168
+ if (priorWriters.length === 1 && priorWriters[0] !== sourceKey) {
169
+ log.warn("slot:contention", {
170
+ slot: config.target,
171
+ writers: [priorWriters[0], sourceKey],
172
+ patternTypes: [slotSources[priorWriters[0]].pattern, content.pattern]
173
+ });
174
+ }
167
175
  if (content.sourceTrait) {
168
176
  indexTraitRender(content.sourceTrait, content);
169
177
  notifyTraitSubscribers(content.sourceTrait, content);
@@ -422,78 +430,12 @@ var BUILT_IN_THEMES = [
422
430
  hasDarkMode: true
423
431
  },
424
432
  // Extended themes
425
- {
426
- name: "ocean",
427
- displayName: "Ocean",
428
- hasLightMode: true,
429
- hasDarkMode: true
430
- },
431
- {
432
- name: "forest",
433
- displayName: "Forest",
434
- hasLightMode: true,
435
- hasDarkMode: true
436
- },
437
- {
438
- name: "sunset",
439
- displayName: "Sunset",
440
- hasLightMode: true,
441
- hasDarkMode: true
442
- },
443
- {
444
- name: "lavender",
445
- displayName: "Lavender",
446
- hasLightMode: true,
447
- hasDarkMode: true
448
- },
449
- {
450
- name: "rose",
451
- displayName: "Rose",
452
- hasLightMode: true,
453
- hasDarkMode: true
454
- },
455
- {
456
- name: "slate",
457
- displayName: "Slate",
458
- hasLightMode: true,
459
- hasDarkMode: true
460
- },
461
- {
462
- name: "ember",
463
- displayName: "Ember",
464
- hasLightMode: true,
465
- hasDarkMode: true
466
- },
467
- {
468
- name: "midnight",
469
- displayName: "Midnight",
470
- hasLightMode: true,
471
- hasDarkMode: true
472
- },
473
- {
474
- name: "sand",
475
- displayName: "Sand",
476
- hasLightMode: true,
477
- hasDarkMode: true
478
- },
479
433
  {
480
434
  name: "neon",
481
435
  displayName: "Neon",
482
436
  hasLightMode: true,
483
437
  hasDarkMode: true
484
438
  },
485
- {
486
- name: "arctic",
487
- displayName: "Arctic",
488
- hasLightMode: true,
489
- hasDarkMode: true
490
- },
491
- {
492
- name: "copper",
493
- displayName: "Copper",
494
- hasLightMode: true,
495
- hasDarkMode: true
496
- },
497
439
  // Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
498
440
  {
499
441
  name: "prism",
@@ -542,6 +484,31 @@ var BUILT_IN_THEMES = [
542
484
  displayName: "Bloomberg Dense",
543
485
  hasLightMode: true,
544
486
  hasDarkMode: true
487
+ },
488
+ // Personality themes — high-demand web styles (glassmorphism / claymorphism / retro / enterprise)
489
+ {
490
+ name: "glass",
491
+ displayName: "Glass",
492
+ hasLightMode: true,
493
+ hasDarkMode: true
494
+ },
495
+ {
496
+ name: "clay",
497
+ displayName: "Clay",
498
+ hasLightMode: true,
499
+ hasDarkMode: true
500
+ },
501
+ {
502
+ name: "retro",
503
+ displayName: "Retro",
504
+ hasLightMode: true,
505
+ hasDarkMode: true
506
+ },
507
+ {
508
+ name: "corporate",
509
+ displayName: "Corporate",
510
+ hasLightMode: true,
511
+ hasDarkMode: true
545
512
  }
546
513
  ];
547
514
  var ThemeContext = react.createContext(void 0);
@@ -622,6 +589,7 @@ var ThemeProvider = ({
622
589
  }
623
590
  const root = document.documentElement;
624
591
  root.setAttribute("data-theme", appliedTheme);
592
+ root.style.colorScheme = resolvedMode;
625
593
  root.classList.remove("light", "dark");
626
594
  root.classList.add(resolvedMode);
627
595
  }, [appliedTheme, resolvedMode, targetRef, isScoped]);
@@ -1,5 +1,5 @@
1
1
  export { U as UISlotContext, a as UISlotProvider, u as useSlotContent, b as useSlotHasContent, c as useUISlots } from '../UISlotContext-D8_SoDsD.cjs';
2
- export { A as ANONYMOUS_USER, B as BUILT_IN_THEMES, C as ColorMode, a as CurrentPagePathContext, b as CurrentPagePathProvider, c as CurrentPagePathProviderProps, D as DesignTheme, d as DesignThemeProvider, O as OrbitalThemeProvider, e as OrbitalThemeProviderProps, R as ResolvedMode, T as ThemeContext, f as ThemeProvider, g as ThemeProviderProps, U as UIThemeDefinition, h as UserContext, i as UserContextValue, j as UserData, k as UserProvider, l as UserProviderProps, u as useCurrentPagePath, m as useDesignTheme, n as useHasPermission, o as useHasRole, p as useTheme, q as useUser, r as useUserForEvaluation } from '../UserContext-bziZwgFL.cjs';
2
+ export { A as ANONYMOUS_USER, B as BUILT_IN_THEMES, C as ColorMode, a as CurrentPagePathContext, b as CurrentPagePathProvider, c as CurrentPagePathProviderProps, D as DesignTheme, d as DesignThemeProvider, O as OrbitalThemeProvider, e as OrbitalThemeProviderProps, R as ResolvedMode, T as ThemeContext, f as ThemeProvider, g as ThemeProviderProps, U as UIThemeDefinition, h as UserContext, i as UserContextValue, j as UserData, k as UserProvider, l as UserProviderProps, u as useCurrentPagePath, m as useDesignTheme, n as useHasPermission, o as useHasRole, p as useTheme, q as useUser, r as useUserForEvaluation } from '../UserContext-BKckAUv7.cjs';
3
3
  import { ThemeRef, ThemeDefinition, ThemeTokens, ThemeVariant } from '@almadar/core';
4
4
  export { UISlot } from '@almadar/core';
5
5
  export { S as SlotAnimation, a as SlotChangeCallback, b as SlotContent, c as SlotRenderConfig, U as UISlotManager } from '../useUISlots-BesZYMks.cjs';
@@ -1,5 +1,5 @@
1
1
  export { U as UISlotContext, a as UISlotProvider, u as useSlotContent, b as useSlotHasContent, c as useUISlots } from '../UISlotContext-C1FsU9GB.js';
2
- export { A as ANONYMOUS_USER, B as BUILT_IN_THEMES, C as ColorMode, a as CurrentPagePathContext, b as CurrentPagePathProvider, c as CurrentPagePathProviderProps, D as DesignTheme, d as DesignThemeProvider, O as OrbitalThemeProvider, e as OrbitalThemeProviderProps, R as ResolvedMode, T as ThemeContext, f as ThemeProvider, g as ThemeProviderProps, U as UIThemeDefinition, h as UserContext, i as UserContextValue, j as UserData, k as UserProvider, l as UserProviderProps, u as useCurrentPagePath, m as useDesignTheme, n as useHasPermission, o as useHasRole, p as useTheme, q as useUser, r as useUserForEvaluation } from '../UserContext-bziZwgFL.js';
2
+ export { A as ANONYMOUS_USER, B as BUILT_IN_THEMES, C as ColorMode, a as CurrentPagePathContext, b as CurrentPagePathProvider, c as CurrentPagePathProviderProps, D as DesignTheme, d as DesignThemeProvider, O as OrbitalThemeProvider, e as OrbitalThemeProviderProps, R as ResolvedMode, T as ThemeContext, f as ThemeProvider, g as ThemeProviderProps, U as UIThemeDefinition, h as UserContext, i as UserContextValue, j as UserData, k as UserProvider, l as UserProviderProps, u as useCurrentPagePath, m as useDesignTheme, n as useHasPermission, o as useHasRole, p as useTheme, q as useUser, r as useUserForEvaluation } from '../UserContext-BKckAUv7.js';
3
3
  import { ThemeRef, ThemeDefinition, ThemeTokens, ThemeVariant } from '@almadar/core';
4
4
  export { UISlot } from '@almadar/core';
5
5
  export { S as SlotAnimation, a as SlotChangeCallback, b as SlotContent, c as SlotRenderConfig, U as UISlotManager } from '../useUISlots-BesZYMks.js';
@@ -162,6 +162,14 @@ function useUISlotManager() {
162
162
  [sourceKey]: content
163
163
  };
164
164
  const nextAll = { ...prev, [config.target]: nextSources };
165
+ const priorWriters = Object.keys(slotSources);
166
+ if (priorWriters.length === 1 && priorWriters[0] !== sourceKey) {
167
+ log.warn("slot:contention", {
168
+ slot: config.target,
169
+ writers: [priorWriters[0], sourceKey],
170
+ patternTypes: [slotSources[priorWriters[0]].pattern, content.pattern]
171
+ });
172
+ }
165
173
  if (content.sourceTrait) {
166
174
  indexTraitRender(content.sourceTrait, content);
167
175
  notifyTraitSubscribers(content.sourceTrait, content);
@@ -420,78 +428,12 @@ var BUILT_IN_THEMES = [
420
428
  hasDarkMode: true
421
429
  },
422
430
  // Extended themes
423
- {
424
- name: "ocean",
425
- displayName: "Ocean",
426
- hasLightMode: true,
427
- hasDarkMode: true
428
- },
429
- {
430
- name: "forest",
431
- displayName: "Forest",
432
- hasLightMode: true,
433
- hasDarkMode: true
434
- },
435
- {
436
- name: "sunset",
437
- displayName: "Sunset",
438
- hasLightMode: true,
439
- hasDarkMode: true
440
- },
441
- {
442
- name: "lavender",
443
- displayName: "Lavender",
444
- hasLightMode: true,
445
- hasDarkMode: true
446
- },
447
- {
448
- name: "rose",
449
- displayName: "Rose",
450
- hasLightMode: true,
451
- hasDarkMode: true
452
- },
453
- {
454
- name: "slate",
455
- displayName: "Slate",
456
- hasLightMode: true,
457
- hasDarkMode: true
458
- },
459
- {
460
- name: "ember",
461
- displayName: "Ember",
462
- hasLightMode: true,
463
- hasDarkMode: true
464
- },
465
- {
466
- name: "midnight",
467
- displayName: "Midnight",
468
- hasLightMode: true,
469
- hasDarkMode: true
470
- },
471
- {
472
- name: "sand",
473
- displayName: "Sand",
474
- hasLightMode: true,
475
- hasDarkMode: true
476
- },
477
431
  {
478
432
  name: "neon",
479
433
  displayName: "Neon",
480
434
  hasLightMode: true,
481
435
  hasDarkMode: true
482
436
  },
483
- {
484
- name: "arctic",
485
- displayName: "Arctic",
486
- hasLightMode: true,
487
- hasDarkMode: true
488
- },
489
- {
490
- name: "copper",
491
- displayName: "Copper",
492
- hasLightMode: true,
493
- hasDarkMode: true
494
- },
495
437
  // Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
496
438
  {
497
439
  name: "prism",
@@ -540,6 +482,31 @@ var BUILT_IN_THEMES = [
540
482
  displayName: "Bloomberg Dense",
541
483
  hasLightMode: true,
542
484
  hasDarkMode: true
485
+ },
486
+ // Personality themes — high-demand web styles (glassmorphism / claymorphism / retro / enterprise)
487
+ {
488
+ name: "glass",
489
+ displayName: "Glass",
490
+ hasLightMode: true,
491
+ hasDarkMode: true
492
+ },
493
+ {
494
+ name: "clay",
495
+ displayName: "Clay",
496
+ hasLightMode: true,
497
+ hasDarkMode: true
498
+ },
499
+ {
500
+ name: "retro",
501
+ displayName: "Retro",
502
+ hasLightMode: true,
503
+ hasDarkMode: true
504
+ },
505
+ {
506
+ name: "corporate",
507
+ displayName: "Corporate",
508
+ hasLightMode: true,
509
+ hasDarkMode: true
543
510
  }
544
511
  ];
545
512
  var ThemeContext = createContext(void 0);
@@ -620,6 +587,7 @@ var ThemeProvider = ({
620
587
  }
621
588
  const root = document.documentElement;
622
589
  root.setAttribute("data-theme", appliedTheme);
590
+ root.style.colorScheme = resolvedMode;
623
591
  root.classList.remove("light", "dark");
624
592
  root.classList.add(resolvedMode);
625
593
  }, [appliedTheme, resolvedMode, targetRef, isScoped]);
@@ -1177,6 +1177,14 @@ function useUISlotManager() {
1177
1177
  [sourceKey]: content
1178
1178
  };
1179
1179
  const nextAll = { ...prev, [config.target]: nextSources };
1180
+ const priorWriters = Object.keys(slotSources);
1181
+ if (priorWriters.length === 1 && priorWriters[0] !== sourceKey) {
1182
+ log11.warn("slot:contention", {
1183
+ slot: config.target,
1184
+ writers: [priorWriters[0], sourceKey],
1185
+ patternTypes: [slotSources[priorWriters[0]].pattern, content.pattern]
1186
+ });
1187
+ }
1180
1188
  if (content.sourceTrait) {
1181
1189
  indexTraitRender(content.sourceTrait, content);
1182
1190
  notifyTraitSubscribers(content.sourceTrait, content);
@@ -1175,6 +1175,14 @@ function useUISlotManager() {
1175
1175
  [sourceKey]: content
1176
1176
  };
1177
1177
  const nextAll = { ...prev, [config.target]: nextSources };
1178
+ const priorWriters = Object.keys(slotSources);
1179
+ if (priorWriters.length === 1 && priorWriters[0] !== sourceKey) {
1180
+ log11.warn("slot:contention", {
1181
+ slot: config.target,
1182
+ writers: [priorWriters[0], sourceKey],
1183
+ patternTypes: [slotSources[priorWriters[0]].pattern, content.pattern]
1184
+ });
1185
+ }
1178
1186
  if (content.sourceTrait) {
1179
1187
  indexTraitRender(content.sourceTrait, content);
1180
1188
  notifyTraitSubscribers(content.sourceTrait, content);
@@ -2823,6 +2823,11 @@ var colorStyles = {
2823
2823
  inherit: "text-inherit"
2824
2824
  };
2825
2825
  var weightStyles = {
2826
+ // Neutral: an atom default of "none" must not override the variant's baked
2827
+ // weight (C-PATTERN-ENUM-BLOCKS-NEUTRAL-OVERRIDE — `variant={h2}` rendered
2828
+ // tiny because the ui-typography atom's `weight: light`/`size: xs` defaults
2829
+ // clobbered every variant).
2830
+ none: "",
2826
2831
  light: "font-light",
2827
2832
  normal: "font-normal",
2828
2833
  medium: "font-medium",
@@ -2848,6 +2853,7 @@ var defaultElements = {
2848
2853
  label: "span"
2849
2854
  };
2850
2855
  var typographySizeStyles = {
2856
+ none: "",
2851
2857
  xs: "text-xs",
2852
2858
  sm: "text-sm",
2853
2859
  md: "text-base",
@@ -2799,6 +2799,11 @@ var colorStyles = {
2799
2799
  inherit: "text-inherit"
2800
2800
  };
2801
2801
  var weightStyles = {
2802
+ // Neutral: an atom default of "none" must not override the variant's baked
2803
+ // weight (C-PATTERN-ENUM-BLOCKS-NEUTRAL-OVERRIDE — `variant={h2}` rendered
2804
+ // tiny because the ui-typography atom's `weight: light`/`size: xs` defaults
2805
+ // clobbered every variant).
2806
+ none: "",
2802
2807
  light: "font-light",
2803
2808
  normal: "font-normal",
2804
2809
  medium: "font-medium",
@@ -2824,6 +2829,7 @@ var defaultElements = {
2824
2829
  label: "span"
2825
2830
  };
2826
2831
  var typographySizeStyles = {
2832
+ none: "",
2827
2833
  xs: "text-xs",
2828
2834
  sm: "text-sm",
2829
2835
  md: "text-base",
@@ -2986,6 +2986,11 @@ var colorStyles = {
2986
2986
  inherit: "text-inherit"
2987
2987
  };
2988
2988
  var weightStyles = {
2989
+ // Neutral: an atom default of "none" must not override the variant's baked
2990
+ // weight (C-PATTERN-ENUM-BLOCKS-NEUTRAL-OVERRIDE — `variant={h2}` rendered
2991
+ // tiny because the ui-typography atom's `weight: light`/`size: xs` defaults
2992
+ // clobbered every variant).
2993
+ none: "",
2989
2994
  light: "font-light",
2990
2995
  normal: "font-normal",
2991
2996
  medium: "font-medium",
@@ -3011,6 +3016,7 @@ var defaultElements = {
3011
3016
  label: "span"
3012
3017
  };
3013
3018
  var typographySizeStyles = {
3019
+ none: "",
3014
3020
  xs: "text-xs",
3015
3021
  sm: "text-sm",
3016
3022
  md: "text-base",
@@ -3533,6 +3539,7 @@ var Button = React12__namespace.default.forwardRef(
3533
3539
  "button",
3534
3540
  {
3535
3541
  ref,
3542
+ type: "button",
3536
3543
  disabled: disabled || isLoading,
3537
3544
  className: cn(
3538
3545
  "relative inline-flex items-center justify-center gap-2",
@@ -2965,6 +2965,11 @@ var colorStyles = {
2965
2965
  inherit: "text-inherit"
2966
2966
  };
2967
2967
  var weightStyles = {
2968
+ // Neutral: an atom default of "none" must not override the variant's baked
2969
+ // weight (C-PATTERN-ENUM-BLOCKS-NEUTRAL-OVERRIDE — `variant={h2}` rendered
2970
+ // tiny because the ui-typography atom's `weight: light`/`size: xs` defaults
2971
+ // clobbered every variant).
2972
+ none: "",
2968
2973
  light: "font-light",
2969
2974
  normal: "font-normal",
2970
2975
  medium: "font-medium",
@@ -2990,6 +2995,7 @@ var defaultElements = {
2990
2995
  label: "span"
2991
2996
  };
2992
2997
  var typographySizeStyles = {
2998
+ none: "",
2993
2999
  xs: "text-xs",
2994
3000
  sm: "text-sm",
2995
3001
  md: "text-base",
@@ -3512,6 +3518,7 @@ var Button = React12__default.forwardRef(
3512
3518
  "button",
3513
3519
  {
3514
3520
  ref,
3521
+ type: "button",
3515
3522
  disabled: disabled || isLoading,
3516
3523
  className: cn(
3517
3524
  "relative inline-flex items-center justify-center gap-2",