@almadar/ui 4.57.5 → 5.1.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.
- package/dist/avl/index.cjs +2499 -1903
- package/dist/avl/index.js +1111 -518
- package/dist/components/atoms/Icon.d.ts +7 -4
- package/dist/components/index.cjs +2064 -1636
- package/dist/components/index.js +905 -480
- package/dist/components/molecules/Breadcrumb.d.ts +4 -4
- package/dist/components/molecules/EmptyState.d.ts +1 -1
- package/dist/components/templates/DashboardLayout.d.ts +1 -1
- package/dist/context/index.cjs +199 -0
- package/dist/context/index.js +199 -0
- package/dist/context/themeTokens.d.ts +1 -1
- package/dist/docs/index.cjs +456 -98
- package/dist/docs/index.d.cts +7 -4
- package/dist/docs/index.js +429 -74
- package/dist/lib/iconFamily.d.ts +41 -0
- package/dist/marketing/index.cjs +480 -124
- package/dist/marketing/index.d.cts +7 -4
- package/dist/marketing/index.js +446 -93
- package/dist/providers/index.cjs +1933 -1505
- package/dist/providers/index.js +909 -484
- package/dist/runtime/index.cjs +2130 -1534
- package/dist/runtime/index.js +1071 -478
- package/package.json +5 -2
- package/tailwind-preset.cjs +118 -3
- package/themes/_contract.md +198 -0
- package/themes/almadar-website.css +212 -0
- package/themes/almadar.css +210 -0
- package/themes/arctic.css +210 -0
- package/themes/atelier.css +427 -0
- package/themes/copper.css +210 -0
- package/themes/ember.css +210 -0
- package/themes/forest.css +210 -0
- package/themes/gazette.css +411 -0
- package/themes/index.css +12 -0
- package/themes/kiosk.css +412 -0
- package/themes/lavender.css +210 -0
- package/themes/midnight.css +210 -0
- package/themes/minimalist.css +210 -0
- package/themes/neon.css +210 -0
- package/themes/ocean.css +210 -0
- package/themes/prism.css +406 -0
- package/themes/rose.css +210 -0
- package/themes/sand.css +210 -0
- package/themes/slate.css +210 -0
- package/themes/sunset.css +210 -0
- package/themes/terminal.css +422 -0
- package/themes/trait-wars.css +210 -0
- package/themes/wireframe.css +216 -0
|
@@ -20,9 +20,9 @@ export interface BreadcrumbItem {
|
|
|
20
20
|
*/
|
|
21
21
|
path?: string;
|
|
22
22
|
/**
|
|
23
|
-
* Item icon
|
|
23
|
+
* Item icon (canonical kebab-case name or LucideIcon component)
|
|
24
24
|
*/
|
|
25
|
-
icon?: LucideIcon;
|
|
25
|
+
icon?: LucideIcon | string;
|
|
26
26
|
/**
|
|
27
27
|
* Click handler (if href not provided)
|
|
28
28
|
*/
|
|
@@ -40,9 +40,9 @@ export interface BreadcrumbProps {
|
|
|
40
40
|
*/
|
|
41
41
|
items: BreadcrumbItem[];
|
|
42
42
|
/**
|
|
43
|
-
* Separator icon
|
|
43
|
+
* Separator icon (canonical kebab-case name or LucideIcon component)
|
|
44
44
|
*/
|
|
45
|
-
separator?: LucideIcon;
|
|
45
|
+
separator?: LucideIcon | string;
|
|
46
46
|
/**
|
|
47
47
|
* Maximum items to show (truncates with ellipsis)
|
|
48
48
|
*/
|
package/dist/context/index.cjs
CHANGED
|
@@ -467,6 +467,37 @@ var BUILT_IN_THEMES = [
|
|
|
467
467
|
displayName: "Copper",
|
|
468
468
|
hasLightMode: true,
|
|
469
469
|
hasDarkMode: true
|
|
470
|
+
},
|
|
471
|
+
// Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
|
|
472
|
+
{
|
|
473
|
+
name: "prism",
|
|
474
|
+
displayName: "Prism",
|
|
475
|
+
hasLightMode: true,
|
|
476
|
+
hasDarkMode: true
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
name: "gazette",
|
|
480
|
+
displayName: "Gazette",
|
|
481
|
+
hasLightMode: true,
|
|
482
|
+
hasDarkMode: true
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
name: "terminal",
|
|
486
|
+
displayName: "Terminal",
|
|
487
|
+
hasLightMode: true,
|
|
488
|
+
hasDarkMode: true
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
name: "atelier",
|
|
492
|
+
displayName: "Atelier",
|
|
493
|
+
hasLightMode: true,
|
|
494
|
+
hasDarkMode: true
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
name: "kiosk",
|
|
498
|
+
displayName: "Kiosk",
|
|
499
|
+
hasLightMode: true,
|
|
500
|
+
hasDarkMode: true
|
|
470
501
|
}
|
|
471
502
|
];
|
|
472
503
|
var ThemeContext = react.createContext(void 0);
|
|
@@ -662,8 +693,176 @@ function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
|
|
|
662
693
|
vars[`--shadow-${key}`] = value;
|
|
663
694
|
}
|
|
664
695
|
}
|
|
696
|
+
const pickDensity = isDark && darkVariant?.density ? darkVariant.density : tokens.density;
|
|
697
|
+
emitDensity(pickDensity, vars);
|
|
698
|
+
const pickTypeScale = isDark && darkVariant?.typeScale ? darkVariant.typeScale : tokens.typeScale;
|
|
699
|
+
emitTypeScale(pickTypeScale, vars);
|
|
700
|
+
const pickMotion = isDark && darkVariant?.motion ? darkVariant.motion : tokens.motion;
|
|
701
|
+
emitMotion(pickMotion, vars);
|
|
702
|
+
const pickIconography = isDark && darkVariant?.iconography ? darkVariant.iconography : tokens.iconography;
|
|
703
|
+
emitIconography(pickIconography, vars);
|
|
704
|
+
const pickElevation = isDark && darkVariant?.elevation ? darkVariant.elevation : tokens.elevation;
|
|
705
|
+
emitElevation(pickElevation, vars);
|
|
706
|
+
const pickGeometry = isDark && darkVariant?.geometry ? darkVariant.geometry : tokens.geometry;
|
|
707
|
+
emitGeometry(pickGeometry, vars);
|
|
665
708
|
return vars;
|
|
666
709
|
}
|
|
710
|
+
function emitDensity(density, vars) {
|
|
711
|
+
if (!density) return;
|
|
712
|
+
if (density.spacing) {
|
|
713
|
+
const s = density.spacing;
|
|
714
|
+
const pairs2 = [
|
|
715
|
+
["0", s.space0],
|
|
716
|
+
["1", s.space1],
|
|
717
|
+
["2", s.space2],
|
|
718
|
+
["3", s.space3],
|
|
719
|
+
["4", s.space4],
|
|
720
|
+
["5", s.space5],
|
|
721
|
+
["6", s.space6],
|
|
722
|
+
["7", s.space7],
|
|
723
|
+
["8", s.space8],
|
|
724
|
+
["9", s.space9],
|
|
725
|
+
["10", s.space10],
|
|
726
|
+
["11", s.space11],
|
|
727
|
+
["12", s.space12]
|
|
728
|
+
];
|
|
729
|
+
for (const [k, v] of pairs2) {
|
|
730
|
+
if (v !== void 0) vars[`--space-${k}`] = v;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
const pairs = [
|
|
734
|
+
["button-height-sm", density.buttonHeightSm],
|
|
735
|
+
["button-height-md", density.buttonHeightMd],
|
|
736
|
+
["button-height-lg", density.buttonHeightLg],
|
|
737
|
+
["input-height-sm", density.inputHeightSm],
|
|
738
|
+
["input-height-md", density.inputHeightMd],
|
|
739
|
+
["input-height-lg", density.inputHeightLg],
|
|
740
|
+
["row-height-compact", density.rowHeightCompact],
|
|
741
|
+
["row-height-normal", density.rowHeightNormal],
|
|
742
|
+
["row-height-spacious", density.rowHeightSpacious],
|
|
743
|
+
["card-padding-sm", density.cardPaddingSm],
|
|
744
|
+
["card-padding-md", density.cardPaddingMd],
|
|
745
|
+
["card-padding-lg", density.cardPaddingLg],
|
|
746
|
+
["dialog-padding", density.dialogPadding],
|
|
747
|
+
["section-gap", density.sectionGap]
|
|
748
|
+
];
|
|
749
|
+
for (const [k, v] of pairs) {
|
|
750
|
+
if (v !== void 0) vars[`--${k}`] = v;
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
function typeSizeKeyStr(k) {
|
|
754
|
+
return k;
|
|
755
|
+
}
|
|
756
|
+
function typeWeightStr(w) {
|
|
757
|
+
return w;
|
|
758
|
+
}
|
|
759
|
+
function emitTypeIntent(name, intent, vars) {
|
|
760
|
+
const sizeKey = typeSizeKeyStr(intent.size);
|
|
761
|
+
const weight = typeWeightStr(intent.weight);
|
|
762
|
+
vars[`--intent-${name}-size`] = `var(--text-${sizeKey})`;
|
|
763
|
+
vars[`--intent-${name}-weight`] = `var(--font-weight-${weight})`;
|
|
764
|
+
vars[`--intent-${name}-leading`] = `var(--leading-${sizeKey})`;
|
|
765
|
+
}
|
|
766
|
+
function emitTypeScale(ts, vars) {
|
|
767
|
+
if (!ts) return;
|
|
768
|
+
if (ts.displayFamily !== void 0) vars["--font-family-display"] = ts.displayFamily;
|
|
769
|
+
if (ts.bodyFamily !== void 0) vars["--font-family-body"] = ts.bodyFamily;
|
|
770
|
+
if (ts.monoFamily !== void 0) vars["--font-family-mono"] = ts.monoFamily;
|
|
771
|
+
if (ts.scale) {
|
|
772
|
+
const s = ts.scale;
|
|
773
|
+
const pairs = [
|
|
774
|
+
["xs", s.xs],
|
|
775
|
+
["sm", s.sm],
|
|
776
|
+
["base", s.base],
|
|
777
|
+
["lg", s.lg],
|
|
778
|
+
["xl", s.xl],
|
|
779
|
+
["2xl", s["2xl"]],
|
|
780
|
+
["3xl", s["3xl"]],
|
|
781
|
+
["4xl", s["4xl"]],
|
|
782
|
+
["display-1", s["display-1"]],
|
|
783
|
+
["display-2", s["display-2"]]
|
|
784
|
+
];
|
|
785
|
+
for (const [k, entry] of pairs) {
|
|
786
|
+
if (entry !== void 0) {
|
|
787
|
+
vars[`--text-${k}`] = entry.size;
|
|
788
|
+
vars[`--leading-${k}`] = entry.lineHeight;
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
if (ts.intents) {
|
|
793
|
+
const i = ts.intents;
|
|
794
|
+
if (i.headingMajor) emitTypeIntent("heading-major", i.headingMajor, vars);
|
|
795
|
+
if (i.headingMinor) emitTypeIntent("heading-minor", i.headingMinor, vars);
|
|
796
|
+
if (i.bodyEmphasis) emitTypeIntent("body-emphasis", i.bodyEmphasis, vars);
|
|
797
|
+
if (i.bodyDefault) emitTypeIntent("body-default", i.bodyDefault, vars);
|
|
798
|
+
if (i.bodyQuiet) emitTypeIntent("body-quiet", i.bodyQuiet, vars);
|
|
799
|
+
if (i.caption) emitTypeIntent("caption", i.caption, vars);
|
|
800
|
+
if (i.numeric) emitTypeIntent("numeric", i.numeric, vars);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
function emitMotionIntent(name, intent, vars) {
|
|
804
|
+
vars[`--intent-${name}-duration`] = `var(--duration-${intent.duration})`;
|
|
805
|
+
vars[`--intent-${name}-easing`] = `var(--easing-${intent.easing})`;
|
|
806
|
+
}
|
|
807
|
+
function emitMotion(m, vars) {
|
|
808
|
+
if (!m) return;
|
|
809
|
+
if (m.durations) {
|
|
810
|
+
const d = m.durations;
|
|
811
|
+
const pairs = [
|
|
812
|
+
["instant", d.instant],
|
|
813
|
+
["fast", d.fast],
|
|
814
|
+
["normal", d.normal],
|
|
815
|
+
["slow", d.slow],
|
|
816
|
+
["dramatic", d.dramatic]
|
|
817
|
+
];
|
|
818
|
+
for (const [k, v] of pairs) {
|
|
819
|
+
if (v !== void 0) vars[`--duration-${k}`] = v;
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
if (m.easings) {
|
|
823
|
+
const e = m.easings;
|
|
824
|
+
const pairs = [
|
|
825
|
+
["linear", e.linear],
|
|
826
|
+
["standard", e.standard],
|
|
827
|
+
["emphasized", e.emphasized],
|
|
828
|
+
["spring", e.spring]
|
|
829
|
+
];
|
|
830
|
+
for (const [k, v] of pairs) {
|
|
831
|
+
if (v !== void 0) vars[`--easing-${k}`] = v;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
if (m.intents) {
|
|
835
|
+
const i = m.intents;
|
|
836
|
+
if (i.enter) emitMotionIntent("enter", i.enter, vars);
|
|
837
|
+
if (i.exit) emitMotionIntent("exit", i.exit, vars);
|
|
838
|
+
if (i.hover) emitMotionIntent("hover", i.hover, vars);
|
|
839
|
+
if (i.press) emitMotionIntent("press", i.press, vars);
|
|
840
|
+
if (i.expand) emitMotionIntent("expand", i.expand, vars);
|
|
841
|
+
if (i.transition) emitMotionIntent("transition", i.transition, vars);
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
function emitIconography(i, vars) {
|
|
845
|
+
if (!i) return;
|
|
846
|
+
if (i.family !== void 0) vars["--icon-family"] = i.family;
|
|
847
|
+
if (i.strokeWidth !== void 0) vars["--icon-stroke-width"] = i.strokeWidth;
|
|
848
|
+
if (i.defaultSize !== void 0) vars["--icon-default-size"] = i.defaultSize;
|
|
849
|
+
}
|
|
850
|
+
function emitElevation(e, vars) {
|
|
851
|
+
if (!e) return;
|
|
852
|
+
if (e.cardElevation !== void 0) vars["--elevation-card"] = e.cardElevation;
|
|
853
|
+
if (e.popoverElevation !== void 0) vars["--elevation-popover"] = e.popoverElevation;
|
|
854
|
+
if (e.dialogElevation !== void 0) vars["--elevation-dialog"] = e.dialogElevation;
|
|
855
|
+
if (e.toastElevation !== void 0) vars["--elevation-toast"] = e.toastElevation;
|
|
856
|
+
}
|
|
857
|
+
function emitGeometry(g, vars) {
|
|
858
|
+
if (!g) return;
|
|
859
|
+
if (g.radiusContainer !== void 0) vars["--radius-container"] = g.radiusContainer;
|
|
860
|
+
if (g.radiusInteractive !== void 0) vars["--radius-interactive"] = g.radiusInteractive;
|
|
861
|
+
if (g.radiusPill !== void 0) vars["--radius-pill"] = g.radiusPill;
|
|
862
|
+
if (g.borderHairline !== void 0) vars["--border-hairline"] = g.borderHairline;
|
|
863
|
+
if (g.borderStandard !== void 0) vars["--border-standard"] = g.borderStandard;
|
|
864
|
+
if (g.borderHeavy !== void 0) vars["--border-heavy"] = g.borderHeavy;
|
|
865
|
+
}
|
|
667
866
|
function resolveThemeForRuntime(theme) {
|
|
668
867
|
if (theme === void 0) return void 0;
|
|
669
868
|
if (typeof theme === "string") return void 0;
|
package/dist/context/index.js
CHANGED
|
@@ -465,6 +465,37 @@ var BUILT_IN_THEMES = [
|
|
|
465
465
|
displayName: "Copper",
|
|
466
466
|
hasLightMode: true,
|
|
467
467
|
hasDarkMode: true
|
|
468
|
+
},
|
|
469
|
+
// Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
|
|
470
|
+
{
|
|
471
|
+
name: "prism",
|
|
472
|
+
displayName: "Prism",
|
|
473
|
+
hasLightMode: true,
|
|
474
|
+
hasDarkMode: true
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
name: "gazette",
|
|
478
|
+
displayName: "Gazette",
|
|
479
|
+
hasLightMode: true,
|
|
480
|
+
hasDarkMode: true
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
name: "terminal",
|
|
484
|
+
displayName: "Terminal",
|
|
485
|
+
hasLightMode: true,
|
|
486
|
+
hasDarkMode: true
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
name: "atelier",
|
|
490
|
+
displayName: "Atelier",
|
|
491
|
+
hasLightMode: true,
|
|
492
|
+
hasDarkMode: true
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
name: "kiosk",
|
|
496
|
+
displayName: "Kiosk",
|
|
497
|
+
hasLightMode: true,
|
|
498
|
+
hasDarkMode: true
|
|
468
499
|
}
|
|
469
500
|
];
|
|
470
501
|
var ThemeContext = createContext(void 0);
|
|
@@ -660,8 +691,176 @@ function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
|
|
|
660
691
|
vars[`--shadow-${key}`] = value;
|
|
661
692
|
}
|
|
662
693
|
}
|
|
694
|
+
const pickDensity = isDark && darkVariant?.density ? darkVariant.density : tokens.density;
|
|
695
|
+
emitDensity(pickDensity, vars);
|
|
696
|
+
const pickTypeScale = isDark && darkVariant?.typeScale ? darkVariant.typeScale : tokens.typeScale;
|
|
697
|
+
emitTypeScale(pickTypeScale, vars);
|
|
698
|
+
const pickMotion = isDark && darkVariant?.motion ? darkVariant.motion : tokens.motion;
|
|
699
|
+
emitMotion(pickMotion, vars);
|
|
700
|
+
const pickIconography = isDark && darkVariant?.iconography ? darkVariant.iconography : tokens.iconography;
|
|
701
|
+
emitIconography(pickIconography, vars);
|
|
702
|
+
const pickElevation = isDark && darkVariant?.elevation ? darkVariant.elevation : tokens.elevation;
|
|
703
|
+
emitElevation(pickElevation, vars);
|
|
704
|
+
const pickGeometry = isDark && darkVariant?.geometry ? darkVariant.geometry : tokens.geometry;
|
|
705
|
+
emitGeometry(pickGeometry, vars);
|
|
663
706
|
return vars;
|
|
664
707
|
}
|
|
708
|
+
function emitDensity(density, vars) {
|
|
709
|
+
if (!density) return;
|
|
710
|
+
if (density.spacing) {
|
|
711
|
+
const s = density.spacing;
|
|
712
|
+
const pairs2 = [
|
|
713
|
+
["0", s.space0],
|
|
714
|
+
["1", s.space1],
|
|
715
|
+
["2", s.space2],
|
|
716
|
+
["3", s.space3],
|
|
717
|
+
["4", s.space4],
|
|
718
|
+
["5", s.space5],
|
|
719
|
+
["6", s.space6],
|
|
720
|
+
["7", s.space7],
|
|
721
|
+
["8", s.space8],
|
|
722
|
+
["9", s.space9],
|
|
723
|
+
["10", s.space10],
|
|
724
|
+
["11", s.space11],
|
|
725
|
+
["12", s.space12]
|
|
726
|
+
];
|
|
727
|
+
for (const [k, v] of pairs2) {
|
|
728
|
+
if (v !== void 0) vars[`--space-${k}`] = v;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
const pairs = [
|
|
732
|
+
["button-height-sm", density.buttonHeightSm],
|
|
733
|
+
["button-height-md", density.buttonHeightMd],
|
|
734
|
+
["button-height-lg", density.buttonHeightLg],
|
|
735
|
+
["input-height-sm", density.inputHeightSm],
|
|
736
|
+
["input-height-md", density.inputHeightMd],
|
|
737
|
+
["input-height-lg", density.inputHeightLg],
|
|
738
|
+
["row-height-compact", density.rowHeightCompact],
|
|
739
|
+
["row-height-normal", density.rowHeightNormal],
|
|
740
|
+
["row-height-spacious", density.rowHeightSpacious],
|
|
741
|
+
["card-padding-sm", density.cardPaddingSm],
|
|
742
|
+
["card-padding-md", density.cardPaddingMd],
|
|
743
|
+
["card-padding-lg", density.cardPaddingLg],
|
|
744
|
+
["dialog-padding", density.dialogPadding],
|
|
745
|
+
["section-gap", density.sectionGap]
|
|
746
|
+
];
|
|
747
|
+
for (const [k, v] of pairs) {
|
|
748
|
+
if (v !== void 0) vars[`--${k}`] = v;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
function typeSizeKeyStr(k) {
|
|
752
|
+
return k;
|
|
753
|
+
}
|
|
754
|
+
function typeWeightStr(w) {
|
|
755
|
+
return w;
|
|
756
|
+
}
|
|
757
|
+
function emitTypeIntent(name, intent, vars) {
|
|
758
|
+
const sizeKey = typeSizeKeyStr(intent.size);
|
|
759
|
+
const weight = typeWeightStr(intent.weight);
|
|
760
|
+
vars[`--intent-${name}-size`] = `var(--text-${sizeKey})`;
|
|
761
|
+
vars[`--intent-${name}-weight`] = `var(--font-weight-${weight})`;
|
|
762
|
+
vars[`--intent-${name}-leading`] = `var(--leading-${sizeKey})`;
|
|
763
|
+
}
|
|
764
|
+
function emitTypeScale(ts, vars) {
|
|
765
|
+
if (!ts) return;
|
|
766
|
+
if (ts.displayFamily !== void 0) vars["--font-family-display"] = ts.displayFamily;
|
|
767
|
+
if (ts.bodyFamily !== void 0) vars["--font-family-body"] = ts.bodyFamily;
|
|
768
|
+
if (ts.monoFamily !== void 0) vars["--font-family-mono"] = ts.monoFamily;
|
|
769
|
+
if (ts.scale) {
|
|
770
|
+
const s = ts.scale;
|
|
771
|
+
const pairs = [
|
|
772
|
+
["xs", s.xs],
|
|
773
|
+
["sm", s.sm],
|
|
774
|
+
["base", s.base],
|
|
775
|
+
["lg", s.lg],
|
|
776
|
+
["xl", s.xl],
|
|
777
|
+
["2xl", s["2xl"]],
|
|
778
|
+
["3xl", s["3xl"]],
|
|
779
|
+
["4xl", s["4xl"]],
|
|
780
|
+
["display-1", s["display-1"]],
|
|
781
|
+
["display-2", s["display-2"]]
|
|
782
|
+
];
|
|
783
|
+
for (const [k, entry] of pairs) {
|
|
784
|
+
if (entry !== void 0) {
|
|
785
|
+
vars[`--text-${k}`] = entry.size;
|
|
786
|
+
vars[`--leading-${k}`] = entry.lineHeight;
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
if (ts.intents) {
|
|
791
|
+
const i = ts.intents;
|
|
792
|
+
if (i.headingMajor) emitTypeIntent("heading-major", i.headingMajor, vars);
|
|
793
|
+
if (i.headingMinor) emitTypeIntent("heading-minor", i.headingMinor, vars);
|
|
794
|
+
if (i.bodyEmphasis) emitTypeIntent("body-emphasis", i.bodyEmphasis, vars);
|
|
795
|
+
if (i.bodyDefault) emitTypeIntent("body-default", i.bodyDefault, vars);
|
|
796
|
+
if (i.bodyQuiet) emitTypeIntent("body-quiet", i.bodyQuiet, vars);
|
|
797
|
+
if (i.caption) emitTypeIntent("caption", i.caption, vars);
|
|
798
|
+
if (i.numeric) emitTypeIntent("numeric", i.numeric, vars);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
function emitMotionIntent(name, intent, vars) {
|
|
802
|
+
vars[`--intent-${name}-duration`] = `var(--duration-${intent.duration})`;
|
|
803
|
+
vars[`--intent-${name}-easing`] = `var(--easing-${intent.easing})`;
|
|
804
|
+
}
|
|
805
|
+
function emitMotion(m, vars) {
|
|
806
|
+
if (!m) return;
|
|
807
|
+
if (m.durations) {
|
|
808
|
+
const d = m.durations;
|
|
809
|
+
const pairs = [
|
|
810
|
+
["instant", d.instant],
|
|
811
|
+
["fast", d.fast],
|
|
812
|
+
["normal", d.normal],
|
|
813
|
+
["slow", d.slow],
|
|
814
|
+
["dramatic", d.dramatic]
|
|
815
|
+
];
|
|
816
|
+
for (const [k, v] of pairs) {
|
|
817
|
+
if (v !== void 0) vars[`--duration-${k}`] = v;
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
if (m.easings) {
|
|
821
|
+
const e = m.easings;
|
|
822
|
+
const pairs = [
|
|
823
|
+
["linear", e.linear],
|
|
824
|
+
["standard", e.standard],
|
|
825
|
+
["emphasized", e.emphasized],
|
|
826
|
+
["spring", e.spring]
|
|
827
|
+
];
|
|
828
|
+
for (const [k, v] of pairs) {
|
|
829
|
+
if (v !== void 0) vars[`--easing-${k}`] = v;
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
if (m.intents) {
|
|
833
|
+
const i = m.intents;
|
|
834
|
+
if (i.enter) emitMotionIntent("enter", i.enter, vars);
|
|
835
|
+
if (i.exit) emitMotionIntent("exit", i.exit, vars);
|
|
836
|
+
if (i.hover) emitMotionIntent("hover", i.hover, vars);
|
|
837
|
+
if (i.press) emitMotionIntent("press", i.press, vars);
|
|
838
|
+
if (i.expand) emitMotionIntent("expand", i.expand, vars);
|
|
839
|
+
if (i.transition) emitMotionIntent("transition", i.transition, vars);
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
function emitIconography(i, vars) {
|
|
843
|
+
if (!i) return;
|
|
844
|
+
if (i.family !== void 0) vars["--icon-family"] = i.family;
|
|
845
|
+
if (i.strokeWidth !== void 0) vars["--icon-stroke-width"] = i.strokeWidth;
|
|
846
|
+
if (i.defaultSize !== void 0) vars["--icon-default-size"] = i.defaultSize;
|
|
847
|
+
}
|
|
848
|
+
function emitElevation(e, vars) {
|
|
849
|
+
if (!e) return;
|
|
850
|
+
if (e.cardElevation !== void 0) vars["--elevation-card"] = e.cardElevation;
|
|
851
|
+
if (e.popoverElevation !== void 0) vars["--elevation-popover"] = e.popoverElevation;
|
|
852
|
+
if (e.dialogElevation !== void 0) vars["--elevation-dialog"] = e.dialogElevation;
|
|
853
|
+
if (e.toastElevation !== void 0) vars["--elevation-toast"] = e.toastElevation;
|
|
854
|
+
}
|
|
855
|
+
function emitGeometry(g, vars) {
|
|
856
|
+
if (!g) return;
|
|
857
|
+
if (g.radiusContainer !== void 0) vars["--radius-container"] = g.radiusContainer;
|
|
858
|
+
if (g.radiusInteractive !== void 0) vars["--radius-interactive"] = g.radiusInteractive;
|
|
859
|
+
if (g.radiusPill !== void 0) vars["--radius-pill"] = g.radiusPill;
|
|
860
|
+
if (g.borderHairline !== void 0) vars["--border-hairline"] = g.borderHairline;
|
|
861
|
+
if (g.borderStandard !== void 0) vars["--border-standard"] = g.borderStandard;
|
|
862
|
+
if (g.borderHeavy !== void 0) vars["--border-heavy"] = g.borderHeavy;
|
|
863
|
+
}
|
|
665
864
|
function resolveThemeForRuntime(theme) {
|
|
666
865
|
if (theme === void 0) return void 0;
|
|
667
866
|
if (typeof theme === "string") return void 0;
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*
|
|
25
25
|
* @packageDocumentation
|
|
26
26
|
*/
|
|
27
|
-
import type { ThemeDefinition, ThemeTokens, ThemeVariant
|
|
27
|
+
import type { ThemeDefinition, ThemeRef, ThemeTokens, ThemeVariant } from '@almadar/core';
|
|
28
28
|
/** Resolved color mode. Mirrors `ThemeContext.resolvedMode`. */
|
|
29
29
|
export type ThemeMode = 'light' | 'dark';
|
|
30
30
|
/**
|