@ugurdemirel/landcraft 0.1.22 → 0.1.24

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 (121) hide show
  1. package/README.md +13 -8
  2. package/dist/cjs/components/Button.cjs +1 -1
  3. package/dist/cjs/components/Button.cjs.map +1 -1
  4. package/dist/cjs/components/CTA/CTA.cjs +1 -1
  5. package/dist/cjs/components/CTA/CTA.cjs.map +1 -1
  6. package/dist/cjs/components/CTA/parts.cjs +1 -1
  7. package/dist/cjs/components/CTA/parts.cjs.map +1 -1
  8. package/dist/cjs/components/CTA/variants/Panel.cjs +1 -1
  9. package/dist/cjs/components/CTA/variants/Panel.cjs.map +1 -1
  10. package/dist/cjs/components/CTA/variants/Surface.cjs +1 -1
  11. package/dist/cjs/components/CTA/variants/Surface.cjs.map +1 -1
  12. package/dist/cjs/components/Footer/Footer.cjs +1 -1
  13. package/dist/cjs/components/Footer/Footer.cjs.map +1 -1
  14. package/dist/cjs/components/Footer/parts.cjs +1 -1
  15. package/dist/cjs/components/Footer/parts.cjs.map +1 -1
  16. package/dist/cjs/components/Footer/variants/Columns.cjs +2 -0
  17. package/dist/cjs/components/Footer/variants/Columns.cjs.map +1 -0
  18. package/dist/cjs/components/Footer/variants/Editorial.cjs +1 -1
  19. package/dist/cjs/components/Footer/variants/Editorial.cjs.map +1 -1
  20. package/dist/cjs/components/Footer/variants/Minimal.cjs +1 -1
  21. package/dist/cjs/components/Footer/variants/Minimal.cjs.map +1 -1
  22. package/dist/cjs/components/Hero/parts.cjs +1 -1
  23. package/dist/cjs/components/Hero/parts.cjs.map +1 -1
  24. package/dist/cjs/components/Hero/variants/Centered.cjs +1 -1
  25. package/dist/cjs/components/Hero/variants/Centered.cjs.map +1 -1
  26. package/dist/cjs/components/Hero/variants/Parallax.cjs +1 -1
  27. package/dist/cjs/components/Hero/variants/Parallax.cjs.map +1 -1
  28. package/dist/cjs/components/Hero/variants/Split.cjs +1 -1
  29. package/dist/cjs/components/Hero/variants/Split.cjs.map +1 -1
  30. package/dist/cjs/components/Hero/variants/Statement.cjs +1 -1
  31. package/dist/cjs/components/Hero/variants/Statement.cjs.map +1 -1
  32. package/dist/cjs/components/LanguageSwitcher/parts.cjs +1 -1
  33. package/dist/cjs/components/LanguageSwitcher/parts.cjs.map +1 -1
  34. package/dist/cjs/components/MegaMenu/MegaMenu.cjs +1 -1
  35. package/dist/cjs/components/MegaMenu/MegaMenu.cjs.map +1 -1
  36. package/dist/cjs/components/Navbar/Navbar.cjs +1 -1
  37. package/dist/cjs/components/Navbar/Navbar.cjs.map +1 -1
  38. package/dist/cjs/components/Stats/Stats.cjs +1 -1
  39. package/dist/cjs/components/Stats/Stats.cjs.map +1 -1
  40. package/dist/cjs/components/Stats/parts.cjs +1 -1
  41. package/dist/cjs/components/Stats/parts.cjs.map +1 -1
  42. package/dist/cjs/components/Stats/variants/Cells.cjs +1 -1
  43. package/dist/cjs/components/Stats/variants/Cells.cjs.map +1 -1
  44. package/dist/cjs/components/Stats/variants/Divided.cjs +2 -0
  45. package/dist/cjs/components/Stats/variants/Divided.cjs.map +1 -0
  46. package/dist/cjs/components/Stats/variants/Stacked.cjs +2 -0
  47. package/dist/cjs/components/Stats/variants/Stacked.cjs.map +1 -0
  48. package/dist/cjs/components/Stats/variants/Ticker.cjs +1 -1
  49. package/dist/cjs/components/Stats/variants/Ticker.cjs.map +1 -1
  50. package/dist/cjs/utils/surface.cjs +2 -0
  51. package/dist/cjs/utils/surface.cjs.map +1 -0
  52. package/dist/es/components/Button.js +41 -31
  53. package/dist/es/components/Button.js.map +1 -1
  54. package/dist/es/components/CTA/CTA.js +5 -6
  55. package/dist/es/components/CTA/CTA.js.map +1 -1
  56. package/dist/es/components/CTA/parts.js +19 -14
  57. package/dist/es/components/CTA/parts.js.map +1 -1
  58. package/dist/es/components/CTA/variants/Panel.js +15 -17
  59. package/dist/es/components/CTA/variants/Panel.js.map +1 -1
  60. package/dist/es/components/CTA/variants/Surface.js +21 -11
  61. package/dist/es/components/CTA/variants/Surface.js.map +1 -1
  62. package/dist/es/components/Footer/Footer.js +5 -5
  63. package/dist/es/components/Footer/Footer.js.map +1 -1
  64. package/dist/es/components/Footer/parts.js +21 -20
  65. package/dist/es/components/Footer/parts.js.map +1 -1
  66. package/dist/es/components/Footer/variants/Columns.js +76 -0
  67. package/dist/es/components/Footer/variants/Columns.js.map +1 -0
  68. package/dist/es/components/Footer/variants/Editorial.js +68 -35
  69. package/dist/es/components/Footer/variants/Editorial.js.map +1 -1
  70. package/dist/es/components/Footer/variants/Minimal.js +50 -16
  71. package/dist/es/components/Footer/variants/Minimal.js.map +1 -1
  72. package/dist/es/components/Hero/parts.js +13 -11
  73. package/dist/es/components/Hero/parts.js.map +1 -1
  74. package/dist/es/components/Hero/variants/Centered.js +29 -17
  75. package/dist/es/components/Hero/variants/Centered.js.map +1 -1
  76. package/dist/es/components/Hero/variants/Parallax.js +23 -23
  77. package/dist/es/components/Hero/variants/Parallax.js.map +1 -1
  78. package/dist/es/components/Hero/variants/Split.js +35 -23
  79. package/dist/es/components/Hero/variants/Split.js.map +1 -1
  80. package/dist/es/components/Hero/variants/Statement.js +28 -23
  81. package/dist/es/components/Hero/variants/Statement.js.map +1 -1
  82. package/dist/es/components/LanguageSwitcher/parts.js +44 -44
  83. package/dist/es/components/LanguageSwitcher/parts.js.map +1 -1
  84. package/dist/es/components/MegaMenu/MegaMenu.js +131 -126
  85. package/dist/es/components/MegaMenu/MegaMenu.js.map +1 -1
  86. package/dist/es/components/Navbar/Navbar.js +110 -92
  87. package/dist/es/components/Navbar/Navbar.js.map +1 -1
  88. package/dist/es/components/Stats/Stats.js +8 -8
  89. package/dist/es/components/Stats/Stats.js.map +1 -1
  90. package/dist/es/components/Stats/parts.js +37 -17
  91. package/dist/es/components/Stats/parts.js.map +1 -1
  92. package/dist/es/components/Stats/variants/Cells.js +46 -18
  93. package/dist/es/components/Stats/variants/Cells.js.map +1 -1
  94. package/dist/es/components/Stats/variants/Divided.js +45 -0
  95. package/dist/es/components/Stats/variants/Divided.js.map +1 -0
  96. package/dist/es/components/Stats/variants/Stacked.js +40 -0
  97. package/dist/es/components/Stats/variants/Stacked.js.map +1 -0
  98. package/dist/es/components/Stats/variants/Ticker.js +44 -23
  99. package/dist/es/components/Stats/variants/Ticker.js.map +1 -1
  100. package/dist/es/utils/surface.js +16 -0
  101. package/dist/es/utils/surface.js.map +1 -0
  102. package/dist/index.d.ts +49 -10
  103. package/dist/styles.css +169 -114
  104. package/dist/theme.css +27 -0
  105. package/package.json +1 -1
  106. package/dist/cjs/components/CTA/variants/Inverse.cjs +0 -2
  107. package/dist/cjs/components/CTA/variants/Inverse.cjs.map +0 -1
  108. package/dist/cjs/components/Footer/variants/Classic.cjs +0 -2
  109. package/dist/cjs/components/Footer/variants/Classic.cjs.map +0 -1
  110. package/dist/cjs/components/Stats/variants/Editorial.cjs +0 -2
  111. package/dist/cjs/components/Stats/variants/Editorial.cjs.map +0 -1
  112. package/dist/cjs/components/Stats/variants/Hairline.cjs +0 -2
  113. package/dist/cjs/components/Stats/variants/Hairline.cjs.map +0 -1
  114. package/dist/es/components/CTA/variants/Inverse.js +0 -42
  115. package/dist/es/components/CTA/variants/Inverse.js.map +0 -1
  116. package/dist/es/components/Footer/variants/Classic.js +0 -43
  117. package/dist/es/components/Footer/variants/Classic.js.map +0 -1
  118. package/dist/es/components/Stats/variants/Editorial.js +0 -32
  119. package/dist/es/components/Stats/variants/Editorial.js.map +0 -1
  120. package/dist/es/components/Stats/variants/Hairline.js +0 -25
  121. package/dist/es/components/Stats/variants/Hairline.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stacked.js","sources":["../../../../../src/components/Stats/variants/Stacked.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { valueBase, suffixBase, gridCols, DeltaMark } from \"../parts\";\nimport type { Stat } from \"../types\";\n\ninterface StackedProps extends HTMLAttributes<HTMLDListElement> {\n stats: Stat[];\n columns?: 2 | 3 | 4;\n}\n\n/** stacked — a ruled ledger: label on the rule, oversized numeral, typed meta. */\nexport const StatsStacked = forwardRef<HTMLDListElement, StackedProps>(\n ({ className, stats, columns = 4, ...props }, ref) => (\n <dl\n ref={ref}\n className={cn(\"grid grid-cols-1 gap-x-10 gap-y-10\", gridCols[columns], className)}\n {...props}\n >\n {stats.map((stat) => (\n <div key={stat.label} className=\"border-t border-border pt-5\">\n <dt className=\"text-sm leading-5 text-muted-foreground\">{stat.label}</dt>\n <dd\n className={cn(\n valueBase,\n \"mt-3 text-5xl sm:text-6xl\",\n stat.accent ? \"text-primary\" : undefined,\n )}\n >\n {stat.value}\n {stat.suffix ? <span className={suffixBase}>{stat.suffix}</span> : null}\n </dd>\n {typeof stat.delta === \"number\" || stat.sub ? (\n <div className=\"mt-4 flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n {typeof stat.delta === \"number\" ? <DeltaMark delta={stat.delta} /> : null}\n {stat.sub ? (\n <p className=\"text-[13px] leading-5 text-muted-foreground\">{stat.sub}</p>\n ) : null}\n </div>\n ) : null}\n </div>\n ))}\n </dl>\n ),\n);\nStatsStacked.displayName = \"StatsStacked\";\n"],"names":["StatsStacked","forwardRef","className","stats","columns","props","ref","jsx","cn","gridCols","stat","jsxs","valueBase","suffixBase","DeltaMark"],"mappings":";;;;AAWO,MAAMA,IAAeC;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,OAAAC,GAAO,SAAAC,IAAU,GAAG,GAAGC,EAAA,GAASC,MAC5C,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE,EAAG,sCAAsCC,EAASL,CAAO,GAAGF,CAAS;AAAA,MAC/E,GAAGG;AAAA,MAEH,YAAM,IAAI,CAACK,MACV,gBAAAC,EAAC,OAAA,EAAqB,WAAU,+BAC9B,UAAA;AAAA,QAAA,gBAAAJ,EAAC,MAAA,EAAG,WAAU,2CAA2C,UAAAG,EAAK,OAAM;AAAA,QACpE,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWH;AAAA,cACTI;AAAA,cACA;AAAA,cACAF,EAAK,SAAS,iBAAiB;AAAA,YAAA;AAAA,YAGhC,UAAA;AAAA,cAAAA,EAAK;AAAA,cACLA,EAAK,SAAS,gBAAAH,EAAC,QAAA,EAAK,WAAWM,GAAa,UAAAH,EAAK,QAAO,IAAU;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEpE,OAAOA,EAAK,SAAU,YAAYA,EAAK,MACtC,gBAAAC,EAAC,OAAA,EAAI,WAAU,sDACZ,UAAA;AAAA,UAAA,OAAOD,EAAK,SAAU,WAAW,gBAAAH,EAACO,KAAU,OAAOJ,EAAK,OAAO,IAAK;AAAA,UACpEA,EAAK,MACJ,gBAAAH,EAAC,KAAA,EAAE,WAAU,+CAA+C,UAAAG,EAAK,KAAI,IACnE;AAAA,QAAA,EAAA,CACN,IACE;AAAA,MAAA,EAAA,GAnBIA,EAAK,KAoBf,CACD;AAAA,IAAA;AAAA,EAAA;AAGP;AACAV,EAAa,cAAc;"}
@@ -1,29 +1,50 @@
1
- import { jsx as r, jsxs as l } from "react/jsx-runtime";
2
- import { forwardRef as c } from "react";
1
+ import { jsx as l, jsxs as r } from "react/jsx-runtime";
2
+ import { forwardRef as x } from "react";
3
3
  import { cn as d } from "../../../utils/cn.js";
4
- import { DeltaBadge as f, suffixBase as n, valueBase as t } from "../parts.js";
5
- const x = c(
6
- ({ className: a, stats: o, ...i }, s) => /* @__PURE__ */ r("dl", { ref: s, className: d("flex w-full items-stretch overflow-x-auto rounded-2xl border border-border bg-surface", a), ...i, children: o.map((e, m) => /* @__PURE__ */ l(
7
- "div",
4
+ import { suffixBase as f, valueBase as o, DeltaMark as c } from "../parts.js";
5
+ const n = x(
6
+ ({ className: i, stats: a, ...m }, s) => /* @__PURE__ */ l(
7
+ "dl",
8
8
  {
9
- className: d("flex min-w-[11rem] flex-1 flex-col gap-3 p-6", m > 0 && "border-l border-border"),
10
- children: [
11
- /* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-3", children: [
12
- /* @__PURE__ */ r("dt", { className: "text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground", children: e.label }),
13
- typeof e.delta == "number" ? /* @__PURE__ */ r(f, { delta: e.delta }) : null
14
- ] }),
15
- /* @__PURE__ */ l("dd", { className: d(t, "text-3xl", e.accent ? "text-primary" : void 0), children: [
16
- e.value,
17
- e.suffix ? /* @__PURE__ */ r("span", { className: n, children: e.suffix }) : null
18
- ] }),
19
- e.sub ? /* @__PURE__ */ r("p", { className: "text-[13px] leading-5 text-muted-foreground", children: e.sub }) : null
20
- ]
21
- },
22
- e.label
23
- )) })
9
+ ref: s,
10
+ className: d(
11
+ "flex flex-col divide-y divide-border border-y border-border sm:flex-row sm:divide-x sm:divide-y-0",
12
+ i
13
+ ),
14
+ ...m,
15
+ children: a.map((e) => /* @__PURE__ */ r(
16
+ "div",
17
+ {
18
+ className: "flex min-w-0 flex-1 flex-col gap-2.5 py-5 sm:px-6 sm:first:pl-0 sm:last:pr-0",
19
+ children: [
20
+ /* @__PURE__ */ l("dt", { className: "text-sm leading-5 text-muted-foreground", children: e.label }),
21
+ /* @__PURE__ */ r("div", { className: "flex flex-wrap items-baseline gap-x-3 gap-y-1", children: [
22
+ /* @__PURE__ */ r(
23
+ "dd",
24
+ {
25
+ className: d(
26
+ o,
27
+ "text-3xl",
28
+ e.accent ? "text-primary" : void 0
29
+ ),
30
+ children: [
31
+ e.value,
32
+ e.suffix ? /* @__PURE__ */ l("span", { className: f, children: e.suffix }) : null
33
+ ]
34
+ }
35
+ ),
36
+ typeof e.delta == "number" ? /* @__PURE__ */ l(c, { delta: e.delta }) : null
37
+ ] }),
38
+ e.sub ? /* @__PURE__ */ l("p", { className: "max-w-[32ch] text-[13px] leading-5 text-muted-foreground", children: e.sub }) : null
39
+ ]
40
+ },
41
+ e.label
42
+ ))
43
+ }
44
+ )
24
45
  );
25
- x.displayName = "StatsTicker";
46
+ n.displayName = "StatsTicker";
26
47
  export {
27
- x as StatsTicker
48
+ n as StatsTicker
28
49
  };
29
50
  //# sourceMappingURL=Ticker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ticker.js","sources":["../../../../../src/components/Stats/variants/Ticker.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { valueBase, suffixBase, DeltaBadge } from \"../parts\";\nimport type { Stat } from \"../types\";\n\ninterface TickerProps extends HTMLAttributes<HTMLDListElement> {\n stats: Stat[];\n}\n\nexport const StatsTicker = forwardRef<HTMLDListElement, TickerProps>(\n ({ className, stats, ...props }, ref) => (\n <dl ref={ref} className={cn(\"flex w-full items-stretch overflow-x-auto rounded-2xl border border-border bg-surface\", className)} {...props}>\n {stats.map((stat, i) => (\n <div\n key={stat.label}\n className={cn(\"flex min-w-[11rem] flex-1 flex-col gap-3 p-6\", i > 0 && \"border-l border-border\")}\n >\n <div className=\"flex items-center justify-between gap-3\">\n <dt className=\"text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground\">\n {stat.label}\n </dt>\n {typeof stat.delta === \"number\" ? <DeltaBadge delta={stat.delta} /> : null}\n </div>\n <dd className={cn(valueBase, \"text-3xl\", stat.accent ? \"text-primary\" : undefined)}>\n {stat.value}\n {stat.suffix ? <span className={suffixBase}>{stat.suffix}</span> : null}\n </dd>\n {stat.sub ? (\n <p className=\"text-[13px] leading-5 text-muted-foreground\">{stat.sub}</p>\n ) : null}\n </div>\n ))}\n </dl>\n ),\n);\nStatsTicker.displayName = \"StatsTicker\";"],"names":["StatsTicker","forwardRef","className","stats","props","ref","jsx","cn","stat","i","jsxs","DeltaBadge","valueBase","suffixBase"],"mappings":";;;;AASO,MAAMA,IAAcC;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,OAAAC,GAAO,GAAGC,EAAA,GAASC,MAC/B,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWE,EAAG,yFAAyFL,CAAS,GAAI,GAAGE,GAClI,UAAAD,EAAM,IAAI,CAACK,GAAMC,MAChB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAWH,EAAG,gDAAgDE,IAAI,KAAK,wBAAwB;AAAA,MAE/F,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,UAAA,gBAAAJ,EAAC,MAAA,EAAG,WAAU,2EACX,UAAAE,EAAK,OACR;AAAA,UACC,OAAOA,EAAK,SAAU,6BAAYG,GAAA,EAAW,OAAOH,EAAK,MAAA,CAAO,IAAK;AAAA,QAAA,GACxE;AAAA,QACA,gBAAAE,EAAC,MAAA,EAAG,WAAWH,EAAGK,GAAW,YAAYJ,EAAK,SAAS,iBAAiB,MAAS,GAC9E,UAAA;AAAA,UAAAA,EAAK;AAAA,UACLA,EAAK,SAAS,gBAAAF,EAAC,QAAA,EAAK,WAAWO,GAAa,UAAAL,EAAK,QAAO,IAAU;AAAA,QAAA,GACrE;AAAA,QACCA,EAAK,MACJ,gBAAAF,EAAC,KAAA,EAAE,WAAU,+CAA+C,UAAAE,EAAK,KAAI,IACnE;AAAA,MAAA;AAAA,IAAA;AAAA,IAfCA,EAAK;AAAA,EAAA,CAiBb,EAAA,CACH;AAEJ;AACAR,EAAY,cAAc;"}
1
+ {"version":3,"file":"Ticker.js","sources":["../../../../../src/components/Stats/variants/Ticker.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { valueBase, suffixBase, DeltaMark } from \"../parts\";\nimport type { Stat } from \"../types\";\n\ninterface TickerProps extends HTMLAttributes<HTMLDListElement> {\n stats: Stat[];\n}\n\n/**\n * ticker — one horizontal readout band. Edge-to-edge top and bottom rules with\n * hairline dividers between entries; stacks into a ruled list on small screens.\n */\nexport const StatsTicker = forwardRef<HTMLDListElement, TickerProps>(\n ({ className, stats, ...props }, ref) => (\n <dl\n ref={ref}\n className={cn(\n \"flex flex-col divide-y divide-border border-y border-border sm:flex-row sm:divide-x sm:divide-y-0\",\n className,\n )}\n {...props}\n >\n {stats.map((stat) => (\n <div\n key={stat.label}\n className=\"flex min-w-0 flex-1 flex-col gap-2.5 py-5 sm:px-6 sm:first:pl-0 sm:last:pr-0\"\n >\n <dt className=\"text-sm leading-5 text-muted-foreground\">{stat.label}</dt>\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <dd\n className={cn(\n valueBase,\n \"text-3xl\",\n stat.accent ? \"text-primary\" : undefined,\n )}\n >\n {stat.value}\n {stat.suffix ? <span className={suffixBase}>{stat.suffix}</span> : null}\n </dd>\n {typeof stat.delta === \"number\" ? <DeltaMark delta={stat.delta} /> : null}\n </div>\n {stat.sub ? (\n <p className=\"max-w-[32ch] text-[13px] leading-5 text-muted-foreground\">{stat.sub}</p>\n ) : null}\n </div>\n ))}\n </dl>\n ),\n);\nStatsTicker.displayName = \"StatsTicker\";\n"],"names":["StatsTicker","forwardRef","className","stats","props","ref","jsx","cn","stat","jsxs","valueBase","suffixBase","DeltaMark"],"mappings":";;;;AAaO,MAAMA,IAAcC;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,OAAAC,GAAO,GAAGC,EAAA,GAASC,MAC/B,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAAD,EAAM,IAAI,CAACK,MACV,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,2CAA2C,UAAAE,EAAK,OAAM;AAAA,YACpE,gBAAAC,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,cAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWF;AAAA,oBACTG;AAAA,oBACA;AAAA,oBACAF,EAAK,SAAS,iBAAiB;AAAA,kBAAA;AAAA,kBAGhC,UAAA;AAAA,oBAAAA,EAAK;AAAA,oBACLA,EAAK,SAAS,gBAAAF,EAAC,QAAA,EAAK,WAAWK,GAAa,UAAAH,EAAK,QAAO,IAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEpE,OAAOA,EAAK,SAAU,6BAAYI,GAAA,EAAU,OAAOJ,EAAK,MAAA,CAAO,IAAK;AAAA,YAAA,GACvE;AAAA,YACCA,EAAK,MACJ,gBAAAF,EAAC,KAAA,EAAE,WAAU,4DAA4D,UAAAE,EAAK,KAAI,IAChF;AAAA,UAAA;AAAA,QAAA;AAAA,QAnBCA,EAAK;AAAA,MAAA,CAqBb;AAAA,IAAA;AAAA,EAAA;AAGP;AACAR,EAAY,cAAc;"}
@@ -0,0 +1,16 @@
1
+ const o = "radial-gradient(120% 160% at 0% 0%, rgb(var(--color-primary)), rgb(var(--color-primary-hover)) 55%, rgb(var(--color-primary) / 0.85))";
2
+ function a(r) {
3
+ return r ? {
4
+ "--lc-bg": r,
5
+ backgroundColor: "var(--lc-bg)",
6
+ color: "contrast-color(var(--lc-bg))"
7
+ } : {
8
+ background: o,
9
+ color: "contrast-color(rgb(var(--color-primary)))"
10
+ };
11
+ }
12
+ export {
13
+ o as emphasisGradient,
14
+ a as emphasisSurfaceStyle
15
+ };
16
+ //# sourceMappingURL=surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.js","sources":["../../../src/utils/surface.ts"],"sourcesContent":["import type { CSSProperties } from \"react\";\n\n/**\n * Default brand fill for \"emphasis\" (bold) sections. Defined once so every\n * emphasis surface — CTA panels, Hero statements, and any future band — paints\n * the exact same gradient and reads as one design language.\n */\nexport const emphasisGradient =\n \"radial-gradient(120% 160% at 0% 0%, rgb(var(--color-primary)), rgb(var(--color-primary-hover)) 55%, rgb(var(--color-primary) / 0.85))\";\n\n/**\n * Inline style for an emphasis surface.\n *\n * - Without a `background`, the surface is painted with the brand gradient and\n * the text color is derived from `--color-primary` via CSS `contrast-color()`.\n * - With a `background` (any CSS color), it binds `--lc-bg` so the background\n * and its text color share one source; `contrast-color(var(--lc-bg))` picks\n * white/black and re-evaluates automatically when the value changes.\n *\n * This is the CSS-only contrast path mandated by AGENTS.md — no JS luminance\n * helpers.\n */\nexport function emphasisSurfaceStyle(background?: string): CSSProperties {\n if (background) {\n return {\n \"--lc-bg\": background,\n backgroundColor: \"var(--lc-bg)\",\n color: \"contrast-color(var(--lc-bg))\",\n } as CSSProperties;\n }\n\n return {\n background: emphasisGradient,\n color: \"contrast-color(rgb(var(--color-primary)))\",\n };\n}\n"],"names":["emphasisGradient","emphasisSurfaceStyle","background"],"mappings":"AAOO,MAAMA,IACX;AAcK,SAASC,EAAqBC,GAAoC;AACvE,SAAIA,IACK;AAAA,IACL,WAAWA;AAAA,IACX,iBAAiB;AAAA,IACjB,OAAO;AAAA,EAAA,IAIJ;AAAA,IACL,YAAYF;AAAA,IACZ,OAAO;AAAA,EAAA;AAEX;"}
package/dist/index.d.ts CHANGED
@@ -186,7 +186,7 @@ export declare interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElem
186
186
 
187
187
  export declare type ButtonSize = "sm" | "md" | "lg";
188
188
 
189
- export declare type ButtonVariant = "primary" | "dark" | "outline" | "ghost" | "link";
189
+ export declare type ButtonVariant = "primary" | "outline" | "ghost" | "link";
190
190
 
191
191
  export declare const Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>;
192
192
 
@@ -251,7 +251,8 @@ export declare const Cpu: (props: IconProps) => JSX_2.Element;
251
251
 
252
252
  export declare const CTA: ForwardRefExoticComponent<CTAProps & RefAttributes<HTMLElement>>;
253
253
 
254
- declare type CTAOption = "panel" | "surface" | "inverse";
254
+ /** Layout options — arrangement only. Emphasis tone is the `background` prop. */
255
+ declare type CTAOption = "panel" | "surface";
255
256
 
256
257
  export declare interface CTAProps extends Omit<HTMLAttributes<HTMLElement>, "title"> {
257
258
  title: ReactNode;
@@ -260,6 +261,12 @@ export declare interface CTAProps extends Omit<HTMLAttributes<HTMLElement>, "tit
260
261
  secondaryAction?: ReactNode;
261
262
  option?: CTAOption;
262
263
  align?: "left" | "center";
264
+ /**
265
+ * Overrides the emphasis (`panel`) surface with any CSS color; the text color
266
+ * is derived for contrast via CSS `contrast-color()`. Ignored by `surface`,
267
+ * which sits on the page background.
268
+ */
269
+ background?: string;
263
270
  }
264
271
 
265
272
  export declare const Database: (props: IconProps) => JSX_2.Element;
@@ -382,8 +389,15 @@ export declare interface FooterProps extends Omit<HTMLAttributes<HTMLElement>, "
382
389
  bottom?: ReactNode;
383
390
  /** Optional language switcher rendered in the footer's bottom bar. */
384
391
  languageSwitcher?: ReactNode;
385
- option?: "classic" | "minimal" | "editorial";
392
+ /** Layout options — arrangement only. Tone is the `background` prop. */
393
+ option?: "columns" | "minimal" | "editorial";
386
394
  badge?: ReactNode;
395
+ /**
396
+ * Overrides the footer surface with any CSS color; text colors are derived for
397
+ * contrast via CSS `contrast-color()`. Use it to tint the footer to a brand or
398
+ * dark color.
399
+ */
400
+ background?: string;
387
401
  /** Component used to render footer links. Defaults to `<a>`. Pass your router's `<Link>` (Next.js, Remix, React Router…) for framework-aware navigation. */
388
402
  LinkComponent?: ElementType;
389
403
  }
@@ -427,6 +441,12 @@ export declare interface HeroProps extends Omit<HTMLAttributes<HTMLElement>, "ti
427
441
  meta?: HeroMeta[];
428
442
  /** Floating logo tiles with a mouse parallax effect (`parallax` variant). */
429
443
  logos?: HeroLogo[];
444
+ /**
445
+ * Overrides the emphasis (`statement`) band with any CSS color; the text color
446
+ * is derived for contrast via CSS `contrast-color()`. Layouts on the page
447
+ * background are unaffected.
448
+ */
449
+ background?: string;
430
450
  }
431
451
 
432
452
  declare type HeroVariant = "split" | "centered" | "statement" | "parallax";
@@ -473,7 +493,11 @@ export declare interface LanguageSwitcherProps extends Omit<HTMLAttributes<HTMLD
473
493
  modalTitle?: ReactNode;
474
494
  /** Replace the globe icon with the selected language's flag emoji (and show flags in options). */
475
495
  showFlag?: boolean;
476
- /** Adapts colors for dark surfaces (inverse Navbar, classic Footer). */
496
+ /**
497
+ * Adapts the trigger to a custom/emphasis surface (Navbar `background`,
498
+ * Footer `background`): the trigger inherits `currentColor` instead of the
499
+ * page tokens. Dropdown options keep paper-surface colors.
500
+ */
477
501
  inverse?: boolean;
478
502
  }
479
503
 
@@ -502,7 +526,7 @@ export declare interface LogoItem {
502
526
  export declare const Mail: (props: IconProps) => JSX_2.Element;
503
527
 
504
528
  export declare const MegaMenu: {
505
- ({ className, variant, brand, logo, logoSrc, logoAlt, logoClassName, brandHref, items, actions, cta, languageSwitcher, sticky, LinkComponent, onKeyDown, ...props }: MegaMenuProps): JSX_2.Element;
529
+ ({ className, variant, brand, logo, logoSrc, logoAlt, logoClassName, brandHref, items, actions, cta, languageSwitcher, sticky, background, LinkComponent, onKeyDown, style, ...props }: MegaMenuProps): JSX_2.Element;
506
530
  displayName: string;
507
531
  };
508
532
 
@@ -561,11 +585,18 @@ export declare interface MegaMenuProps extends Omit<HTMLAttributes<HTMLElement>,
561
585
  /** Optional language switcher rendered on the right (desktop) and beside the menu button (mobile). */
562
586
  languageSwitcher?: ReactNode;
563
587
  sticky?: boolean;
588
+ /**
589
+ * Overrides the bar's surface with any CSS color; the text color (and the
590
+ * text/border of outline/ghost buttons inside it) is derived for contrast via
591
+ * CSS `contrast-color()`. Use it to tint the bar to a brand or dark color.
592
+ */
593
+ background?: string;
564
594
  /** Component used to render brand, trigger and panel links. Defaults to `<a>`. Pass your router's `<Link>` (Next.js, Remix, React Router…) for framework-aware navigation. */
565
595
  LinkComponent?: ElementType;
566
596
  }
567
597
 
568
- declare type MegaMenuVariant = "classic" | "floating" | "inverse";
598
+ /** Layout options — arrangement only. Tone is the `background` prop. */
599
+ declare type MegaMenuVariant = "classic" | "floating";
569
600
 
570
601
  export declare const Menu: (props: IconProps) => JSX_2.Element;
571
602
 
@@ -592,7 +623,7 @@ export declare interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>,
592
623
  }
593
624
 
594
625
  export declare const Navbar: {
595
- ({ className, variant, brand, logo, logoSrc, logoAlt, logoClassName, brandHref, links, actions, cta, languageSwitcher, sticky, LinkComponent, ...props }: NavbarProps): JSX_2.Element;
626
+ ({ className, variant, brand, logo, logoSrc, logoAlt, logoClassName, brandHref, links, actions, cta, languageSwitcher, sticky, background, LinkComponent, style, ...props }: NavbarProps): JSX_2.Element;
596
627
  displayName: string;
597
628
  };
598
629
 
@@ -614,11 +645,18 @@ export declare interface NavbarProps extends Omit<HTMLAttributes<HTMLElement>, "
614
645
  /** Optional language switcher rendered on the right (desktop) and beside the menu button (mobile). */
615
646
  languageSwitcher?: ReactNode;
616
647
  sticky?: boolean;
648
+ /**
649
+ * Overrides the bar's surface with any CSS color; the text color (and the
650
+ * text/border of outline/ghost buttons inside it) is derived for contrast via
651
+ * CSS `contrast-color()`. Use it to tint the bar to a brand or dark color.
652
+ */
653
+ background?: string;
617
654
  /** Component used to render the brand and nav links. Defaults to `<a>`. Pass your router's `<Link>` (Next.js, Remix, React Router…) for framework-aware navigation. */
618
655
  LinkComponent?: ElementType;
619
656
  }
620
657
 
621
- declare type NavbarVariant = "classic" | "floating" | "inverse";
658
+ /** Layout options — arrangement only. Tone is the `background` prop. */
659
+ declare type NavbarVariant = "classic" | "floating";
622
660
 
623
661
  export declare interface NavLink {
624
662
  label: string;
@@ -765,7 +803,7 @@ export declare interface Stat {
765
803
  label: string;
766
804
  /** Small unit rendered inline with the value, e.g. "ms" or "₺". */
767
805
  suffix?: string;
768
- /** Trend change in percent — renders an up/down badge. */
806
+ /** Trend change in percent — renders a directional delta mark. */
769
807
  delta?: number;
770
808
  /** Optional supporting copy. */
771
809
  sub?: string;
@@ -776,7 +814,8 @@ export declare interface Stat {
776
814
 
777
815
  export declare const Stats: ForwardRefExoticComponent<StatsProps & RefAttributes<HTMLDListElement>>;
778
816
 
779
- declare type StatsOption = "editorial" | "hairline" | "cells" | "ticker";
817
+ /** Layout options — arrangement only. */
818
+ declare type StatsOption = "stacked" | "divided" | "cells" | "ticker";
780
819
 
781
820
  export declare interface StatsProps extends HTMLAttributes<HTMLDListElement> {
782
821
  stats: Stat[];