@lindle/linoardo 1.0.47 → 1.0.48

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 (99) hide show
  1. package/dist/alert.cjs +3 -3
  2. package/dist/alert.cjs.map +1 -1
  3. package/dist/alert.js +1 -1
  4. package/dist/badge.cjs +10 -10
  5. package/dist/badge.cjs.map +1 -1
  6. package/dist/badge.js +1 -1
  7. package/dist/button.cjs +45 -45
  8. package/dist/button.cjs.map +1 -1
  9. package/dist/button.js +1 -1
  10. package/dist/chip.cjs +47 -47
  11. package/dist/chip.cjs.map +1 -1
  12. package/dist/chip.js +2 -2
  13. package/dist/{chunk-UWNDN4XL.js → chunk-7TQUULYB.js} +23 -23
  14. package/dist/chunk-7TQUULYB.js.map +1 -0
  15. package/dist/{chunk-NJU7XT54.js → chunk-DMI64Z53.js} +4 -4
  16. package/dist/chunk-DMI64Z53.js.map +1 -0
  17. package/dist/{chunk-5LWU5T2C.js → chunk-GKZFVQW6.js} +16 -16
  18. package/dist/chunk-GKZFVQW6.js.map +1 -0
  19. package/dist/{chunk-4VHGXXZE.js → chunk-H4742H2N.js} +4 -4
  20. package/dist/{chunk-4VHGXXZE.js.map → chunk-H4742H2N.js.map} +1 -1
  21. package/dist/{chunk-4CYM2UM3.js → chunk-HGECC2JH.js} +48 -48
  22. package/dist/chunk-HGECC2JH.js.map +1 -0
  23. package/dist/{chunk-RUOU46YI.js → chunk-HVGCLUW2.js} +47 -47
  24. package/dist/chunk-HVGCLUW2.js.map +1 -0
  25. package/dist/{chunk-GMDNSU26.js → chunk-KK33I72F.js} +5 -5
  26. package/dist/{chunk-GMDNSU26.js.map → chunk-KK33I72F.js.map} +1 -1
  27. package/dist/{chunk-57CCAWFX.js → chunk-KVXZEMAH.js} +4 -4
  28. package/dist/{chunk-57CCAWFX.js.map → chunk-KVXZEMAH.js.map} +1 -1
  29. package/dist/{chunk-7HOQSHPQ.js → chunk-LRWM4ZWZ.js} +3 -3
  30. package/dist/{chunk-7HOQSHPQ.js.map → chunk-LRWM4ZWZ.js.map} +1 -1
  31. package/dist/{chunk-XA74HBMH.js → chunk-LSIAP7ZZ.js} +8 -8
  32. package/dist/chunk-LSIAP7ZZ.js.map +1 -0
  33. package/dist/{chunk-HEXJCQRO.js → chunk-LWCRKQEV.js} +10 -10
  34. package/dist/chunk-LWCRKQEV.js.map +1 -0
  35. package/dist/{chunk-JFIFVLWE.js → chunk-LZYVTGJD.js} +3 -3
  36. package/dist/{chunk-JFIFVLWE.js.map → chunk-LZYVTGJD.js.map} +1 -1
  37. package/dist/{chunk-U2AL7XFY.js → chunk-O3VFEMJ7.js} +4 -4
  38. package/dist/chunk-O3VFEMJ7.js.map +1 -0
  39. package/dist/{chunk-HIRPMCQJ.js → chunk-OQYPWJDA.js} +12 -12
  40. package/dist/{chunk-HIRPMCQJ.js.map → chunk-OQYPWJDA.js.map} +1 -1
  41. package/dist/{chunk-AUVYU7M5.js → chunk-Q7VTD6NY.js} +20 -20
  42. package/dist/chunk-Q7VTD6NY.js.map +1 -0
  43. package/dist/{chunk-HAXGOTZO.js → chunk-UK6RSS4J.js} +3 -3
  44. package/dist/chunk-UK6RSS4J.js.map +1 -0
  45. package/dist/{chunk-KQOR3C7E.js → chunk-ZLBGPLM3.js} +5 -5
  46. package/dist/chunk-ZLBGPLM3.js.map +1 -0
  47. package/dist/dialog.cjs +2 -2
  48. package/dist/dialog.cjs.map +1 -1
  49. package/dist/dialog.js +1 -1
  50. package/dist/expansion-panel/item.cjs +18 -18
  51. package/dist/expansion-panel/item.cjs.map +1 -1
  52. package/dist/expansion-panel/item.js +1 -1
  53. package/dist/expansion-panel.cjs +23 -23
  54. package/dist/expansion-panel.cjs.map +1 -1
  55. package/dist/expansion-panel.js +2 -2
  56. package/dist/hero.cjs +21 -21
  57. package/dist/hero.cjs.map +1 -1
  58. package/dist/hero.js +1 -1
  59. package/dist/icon.cjs +8 -8
  60. package/dist/icon.cjs.map +1 -1
  61. package/dist/icon.js +1 -1
  62. package/dist/index.cjs +227 -227
  63. package/dist/index.cjs.map +1 -1
  64. package/dist/index.js +63 -63
  65. package/dist/index.js.map +1 -1
  66. package/dist/masonry.cjs +1 -1
  67. package/dist/masonry.cjs.map +1 -1
  68. package/dist/masonry.js +1 -1
  69. package/dist/menu.cjs +2 -2
  70. package/dist/menu.cjs.map +1 -1
  71. package/dist/menu.js +1 -1
  72. package/dist/profileCard.cjs +45 -45
  73. package/dist/profileCard.cjs.map +1 -1
  74. package/dist/profileCard.js +2 -2
  75. package/dist/slider.cjs +3 -3
  76. package/dist/slider.cjs.map +1 -1
  77. package/dist/slider.js +1 -1
  78. package/dist/styles.css +863 -14
  79. package/dist/switch.cjs +14 -14
  80. package/dist/switch.cjs.map +1 -1
  81. package/dist/switch.js +1 -1
  82. package/dist/timeline.cjs.map +1 -1
  83. package/dist/timeline.js +2 -2
  84. package/dist/tooltip.cjs +2 -2
  85. package/dist/tooltip.cjs.map +1 -1
  86. package/dist/tooltip.js +1 -1
  87. package/package.json +1 -1
  88. package/readme.md +21 -1
  89. package/dist/chunk-4CYM2UM3.js.map +0 -1
  90. package/dist/chunk-5LWU5T2C.js.map +0 -1
  91. package/dist/chunk-AUVYU7M5.js.map +0 -1
  92. package/dist/chunk-HAXGOTZO.js.map +0 -1
  93. package/dist/chunk-HEXJCQRO.js.map +0 -1
  94. package/dist/chunk-KQOR3C7E.js.map +0 -1
  95. package/dist/chunk-NJU7XT54.js.map +0 -1
  96. package/dist/chunk-RUOU46YI.js.map +0 -1
  97. package/dist/chunk-U2AL7XFY.js.map +0 -1
  98. package/dist/chunk-UWNDN4XL.js.map +0 -1
  99. package/dist/chunk-XA74HBMH.js.map +0 -1
package/dist/hero.cjs CHANGED
@@ -5,13 +5,13 @@ var jsxRuntime = require('react/jsx-runtime');
5
5
 
6
6
  // src/Blocks/Hero/index.tsx
7
7
  var containerVariants = {
8
- solid: "bg-gradient-to-br from-primary via-primary/90 to-indigo-600 text-white shadow-2xl shadow-primary/30",
9
- outline: "border border-gray-200 bg-white text-gray-900",
10
- text: "bg-transparent text-gray-900",
11
- ghost: "bg-primary/5 text-gray-900 border border-primary/10",
12
- filled: "bg-slate-900 text-white shadow-2xl shadow-slate-900/40",
13
- underlined: "border-b-4 border-primary/70 bg-white text-gray-900",
14
- sharp: "rounded-none border border-gray-200 bg-white text-gray-900 shadow"
8
+ solid: "bg-gradient-to-br from-primary via-primary/90 to-indigo-600 text-white shadow-2xl shadow-primary/30 dark:from-primary dark:via-primary/90 dark:to-indigo-700",
9
+ outline: "border border-gray-200 bg-white text-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100",
10
+ text: "bg-transparent text-gray-900 dark:text-gray-100",
11
+ ghost: "bg-primary/5 text-gray-900 border border-primary/10 dark:bg-primary/15 dark:text-gray-100 dark:border-primary/25",
12
+ filled: "bg-slate-900 text-white shadow-2xl shadow-slate-900/40 dark:bg-slate-950",
13
+ underlined: "border-b-4 border-primary/70 bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100 dark:border-primary/60",
14
+ sharp: "rounded-none border border-gray-200 bg-white text-gray-900 shadow dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100"
15
15
  };
16
16
  var frameRadii = {
17
17
  solid: "rounded-3xl",
@@ -24,12 +24,12 @@ var frameRadii = {
24
24
  };
25
25
  var badgeVariants = {
26
26
  solid: "bg-white/10 text-white border border-white/20",
27
- outline: "bg-primary/10 text-primary border border-primary/20",
28
- text: "bg-primary/10 text-primary border border-primary/20",
29
- ghost: "bg-primary/15 text-primary border border-primary/25",
27
+ outline: "bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35",
28
+ text: "bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35",
29
+ ghost: "bg-primary/15 text-primary border border-primary/25 dark:bg-primary/20 dark:border-primary/35",
30
30
  filled: "bg-white/10 text-white border border-white/20",
31
- underlined: "bg-primary/10 text-primary border border-primary/20",
32
- sharp: "bg-primary/10 text-primary border border-primary/20"
31
+ underlined: "bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35",
32
+ sharp: "bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35"
33
33
  };
34
34
  var Hero = ({
35
35
  title,
@@ -53,12 +53,12 @@ var Hero = ({
53
53
  badgeVariants[variant] ?? badgeVariants.solid
54
54
  );
55
55
  const isDark = variant === "solid" || variant === "filled";
56
- const subdued = isDark ? "text-white/80" : "text-gray-600";
57
- const statMuted = isDark ? "text-white/70" : "text-gray-500";
58
- const actionPrimary = isDark ? "bg-white text-gray-900 hover:bg-white/90 focus-visible:outline-white/70" : "bg-primary text-white hover:bg-primary/90 focus-visible:outline-primary/50";
59
- const actionSecondary = isDark ? "border border-white/40 text-white hover:bg-white/10 focus-visible:outline-white/60" : "border border-gray-300 text-gray-900 hover:border-primary/60 hover:text-primary focus-visible:outline-primary/50";
56
+ const subdued = isDark ? "text-white/80" : "text-gray-600 dark:text-gray-300";
57
+ const statMuted = isDark ? "text-white/70" : "text-gray-500 dark:text-gray-400";
58
+ const actionPrimary = isDark ? "bg-white text-gray-900 hover:bg-white/90 focus-visible:outline-white/70" : "bg-primary text-white hover:bg-primary/90 focus-visible:outline-primary/50 dark:bg-primary/90 dark:hover:bg-primary";
59
+ const actionSecondary = isDark ? "border border-white/40 text-white hover:bg-white/10 focus-visible:outline-white/60" : "border border-gray-300 text-gray-900 hover:border-primary/60 hover:text-primary focus-visible:outline-primary/50 dark:border-gray-600 dark:text-gray-100 dark:hover:border-primary/60 dark:hover:text-primary";
60
60
  const frameRadius = frameRadii[variant] ?? "rounded-2xl";
61
- const frameDecoration = isDark ? "border-white/10 bg-white/10 shadow-2xl shadow-black/20" : "border-gray-200 bg-white shadow-2xl shadow-gray-200/60";
61
+ const frameDecoration = isDark ? "border-white/10 bg-white/10 shadow-2xl shadow-black/20" : "border-gray-200 bg-white shadow-2xl shadow-gray-200/60 dark:border-gray-700 dark:bg-gray-900 dark:shadow-black/30";
62
62
  const renderAction = (action, index) => {
63
63
  const { href, label, onClick, variant: actionVariant = "primary" } = action;
64
64
  const Component = href ? "a" : "button";
@@ -79,8 +79,8 @@ var Hero = ({
79
79
  };
80
80
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { ...rest, className: containerClass, children: [
81
81
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pointer-events-none absolute inset-0 overflow-hidden", children: [
82
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-24 top-10 h-64 w-64 rounded-full bg-primary/15 blur-3xl" }),
83
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -right-16 -bottom-10 h-80 w-80 rounded-full bg-primary/20 blur-3xl" })
82
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-24 top-10 h-64 w-64 rounded-full bg-primary/15 dark:bg-primary/25 blur-3xl" }),
83
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -right-16 -bottom-10 h-80 w-80 rounded-full bg-primary/20 dark:bg-primary/30 blur-3xl" })
84
84
  ] }),
85
85
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto flex max-w-6xl flex-col gap-12 px-6 py-16 lg:px-10 lg:py-24", children: [
86
86
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2", children: [
@@ -91,7 +91,7 @@ var Hero = ({
91
91
  {
92
92
  className: tailwindMerge.twMerge(
93
93
  "text-4xl font-semibold leading-tight sm:text-5xl",
94
- isDark ? "text-white" : "text-gray-900"
94
+ isDark ? "text-white" : "text-gray-900 dark:text-gray-100"
95
95
  ),
96
96
  children: title
97
97
  }
@@ -99,7 +99,7 @@ var Hero = ({
99
99
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: tailwindMerge.twMerge("text-lg leading-relaxed", subdued), children: description }),
100
100
  actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-3", children: actions.map(renderAction) }),
101
101
  stats.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("dl", { className: "grid gap-6 sm:grid-cols-3", children: stats.map((stat) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
102
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: tailwindMerge.twMerge("text-3xl font-semibold", isDark ? "text-white" : "text-gray-900"), children: stat.value }),
102
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: tailwindMerge.twMerge("text-3xl font-semibold", isDark ? "text-white" : "text-gray-900 dark:text-gray-100"), children: stat.value }),
103
103
  /* @__PURE__ */ jsxRuntime.jsx("dt", { className: tailwindMerge.twMerge("text-sm font-medium", statMuted), children: stat.label })
104
104
  ] }, stat.label)) })
105
105
  ] }),
package/dist/hero.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Blocks/Hero/index.tsx"],"names":["twMerge","jsx","jsxs"],"mappings":"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","file":"hero.cjs","sourcesContent":["import type { GlobalVariant } from '@lindle/linoardo/global.types';\nimport * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\ntype HeroAction = {\n label: string;\n href?: string;\n variant?: 'primary' | 'secondary';\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n};\n\ntype HeroStat = {\n value: string;\n label: string;\n};\n\ntype HeroLogo = {\n src: string;\n alt?: string;\n};\n\ntype HeroImage = {\n src: string;\n alt?: string;\n};\n\nexport type HeroProps = React.HTMLAttributes<HTMLElement> & {\n title: React.ReactNode;\n description?: React.ReactNode;\n eyebrow?: string;\n actions?: HeroAction[];\n stats?: HeroStat[];\n logos?: HeroLogo[];\n image?: HeroImage;\n variant?: GlobalVariant;\n};\n\nconst containerVariants: Record<GlobalVariant, string> = {\n solid: 'bg-gradient-to-br from-primary via-primary/90 to-indigo-600 text-white shadow-2xl shadow-primary/30',\n outline: 'border border-gray-200 bg-white text-gray-900',\n text: 'bg-transparent text-gray-900',\n ghost: 'bg-primary/5 text-gray-900 border border-primary/10',\n filled: 'bg-slate-900 text-white shadow-2xl shadow-slate-900/40',\n underlined: 'border-b-4 border-primary/70 bg-white text-gray-900',\n sharp: 'rounded-none border border-gray-200 bg-white text-gray-900 shadow'\n};\n\nconst frameRadii: Record<GlobalVariant, string> = {\n solid: 'rounded-3xl',\n outline: 'rounded-2xl',\n text: 'rounded-2xl',\n ghost: 'rounded-2xl',\n filled: 'rounded-3xl',\n underlined: 'rounded-2xl',\n sharp: 'rounded-none'\n};\n\nconst badgeVariants: Record<GlobalVariant, string> = {\n solid: 'bg-white/10 text-white border border-white/20',\n outline: 'bg-primary/10 text-primary border border-primary/20',\n text: 'bg-primary/10 text-primary border border-primary/20',\n ghost: 'bg-primary/15 text-primary border border-primary/25',\n filled: 'bg-white/10 text-white border border-white/20',\n underlined: 'bg-primary/10 text-primary border border-primary/20',\n sharp: 'bg-primary/10 text-primary border border-primary/20'\n};\n\nconst Hero: React.FC<HeroProps> = ({\n title,\n description,\n eyebrow,\n actions = [],\n stats = [],\n logos = [],\n image,\n variant = 'solid',\n className,\n ...rest\n}) => {\n const containerClass = twMerge(\n 'hero-block relative isolate overflow-hidden',\n containerVariants[variant] ?? containerVariants.solid,\n className\n );\n const badgeClass = twMerge(\n 'inline-flex items-center gap-2 rounded-full px-3 py-1 text-xs font-semibold uppercase tracking-wide',\n badgeVariants[variant] ?? badgeVariants.solid\n );\n const isDark = variant === 'solid' || variant === 'filled';\n const subdued = isDark ? 'text-white/80' : 'text-gray-600';\n const statMuted = isDark ? 'text-white/70' : 'text-gray-500';\n const actionPrimary = isDark\n ? 'bg-white text-gray-900 hover:bg-white/90 focus-visible:outline-white/70'\n : 'bg-primary text-white hover:bg-primary/90 focus-visible:outline-primary/50';\n const actionSecondary = isDark\n ? 'border border-white/40 text-white hover:bg-white/10 focus-visible:outline-white/60'\n : 'border border-gray-300 text-gray-900 hover:border-primary/60 hover:text-primary focus-visible:outline-primary/50';\n const frameRadius = frameRadii[variant] ?? 'rounded-2xl';\n const frameDecoration = isDark\n ? 'border-white/10 bg-white/10 shadow-2xl shadow-black/20'\n : 'border-gray-200 bg-white shadow-2xl shadow-gray-200/60';\n\n const renderAction = (action: HeroAction, index: number) => {\n const { href, label, onClick, variant: actionVariant = 'primary' } = action;\n const Component = href ? 'a' : 'button';\n const resolvedClass =\n actionVariant === 'secondary'\n ? twMerge('bg-white/70', actionSecondary)\n : twMerge('shadow-lg shadow-primary/25', actionPrimary);\n\n return (\n <Component\n key={`${label}-${index}`}\n href={href}\n onClick={onClick as never}\n className={twMerge(\n 'inline-flex items-center gap-2 rounded-xl px-4 py-3 text-sm font-semibold transition focus-visible:outline focus-visible:outline-offset-2',\n resolvedClass\n )}\n >\n {label}\n </Component>\n );\n };\n\n return (\n <section {...rest} className={containerClass}>\n <div className='pointer-events-none absolute inset-0 overflow-hidden'>\n <div className='absolute left-24 top-10 h-64 w-64 rounded-full bg-primary/15 blur-3xl' />\n <div className='absolute -right-16 -bottom-10 h-80 w-80 rounded-full bg-primary/20 blur-3xl' />\n </div>\n <div className='mx-auto flex max-w-6xl flex-col gap-12 px-6 py-16 lg:px-10 lg:py-24'>\n <div className='grid items-center gap-12 lg:grid-cols-2'>\n <div className='space-y-6'>\n {eyebrow && <span className={badgeClass}>{eyebrow}</span>}\n <h1\n className={twMerge(\n 'text-4xl font-semibold leading-tight sm:text-5xl',\n isDark ? 'text-white' : 'text-gray-900'\n )}\n >\n {title}\n </h1>\n {description && <p className={twMerge('text-lg leading-relaxed', subdued)}>{description}</p>}\n {actions.length > 0 && <div className='flex flex-wrap gap-3'>{actions.map(renderAction)}</div>}\n {stats.length > 0 && (\n <dl className='grid gap-6 sm:grid-cols-3'>\n {stats.map(stat => (\n <div key={stat.label} className='space-y-1'>\n <dd className={twMerge('text-3xl font-semibold', isDark ? 'text-white' : 'text-gray-900')}>\n {stat.value}\n </dd>\n <dt className={twMerge('text-sm font-medium', statMuted)}>{stat.label}</dt>\n </div>\n ))}\n </dl>\n )}\n </div>\n {image && (\n <div className='relative'>\n <div className={twMerge('relative overflow-hidden backdrop-blur', frameDecoration, frameRadius)}>\n <img\n src={image.src}\n alt={image.alt ?? ''}\n className={twMerge('h-full w-full object-cover', frameRadius)}\n loading='lazy'\n />\n <div className='pointer-events-none absolute inset-0 bg-linear-to-t from-black/30 via-transparent to-transparent' />\n </div>\n </div>\n )}\n </div>\n {logos.length > 0 && (\n <div className='flex flex-wrap items-center gap-6 lg:items-center lg:gap-10'>\n <span className={twMerge('text-sm font-semibold tracking-wide', subdued)}>Duveruji nam</span>\n <div className='flex flex-wrap items-center gap-4 opacity-80'>\n {logos.map(logo => (\n <img\n key={logo.src}\n src={logo.src}\n alt={logo.alt ?? ''}\n className='h-8 w-auto grayscale transition hover:grayscale-0'\n loading='lazy'\n />\n ))}\n </div>\n </div>\n )}\n </div>\n </section>\n );\n};\n\nHero.displayName = 'Hero';\n\nexport default Hero;\n"]}
1
+ {"version":3,"sources":["../src/Blocks/Hero/index.tsx"],"names":["twMerge","jsx","jsxs"],"mappings":"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","file":"hero.cjs","sourcesContent":["import type { GlobalVariant } from '@lindle/linoardo/global.types';\nimport * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\ntype HeroAction = {\n label: string;\n href?: string;\n variant?: 'primary' | 'secondary';\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n};\n\ntype HeroStat = {\n value: string;\n label: string;\n};\n\ntype HeroLogo = {\n src: string;\n alt?: string;\n};\n\ntype HeroImage = {\n src: string;\n alt?: string;\n};\n\nexport type HeroProps = React.HTMLAttributes<HTMLElement> & {\n title: React.ReactNode;\n description?: React.ReactNode;\n eyebrow?: string;\n actions?: HeroAction[];\n stats?: HeroStat[];\n logos?: HeroLogo[];\n image?: HeroImage;\n variant?: GlobalVariant;\n};\n\nconst containerVariants: Record<GlobalVariant, string> = {\n solid: 'bg-gradient-to-br from-primary via-primary/90 to-indigo-600 text-white shadow-2xl shadow-primary/30 dark:from-primary dark:via-primary/90 dark:to-indigo-700',\n outline: 'border border-gray-200 bg-white text-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100',\n text: 'bg-transparent text-gray-900 dark:text-gray-100',\n ghost: 'bg-primary/5 text-gray-900 border border-primary/10 dark:bg-primary/15 dark:text-gray-100 dark:border-primary/25',\n filled: 'bg-slate-900 text-white shadow-2xl shadow-slate-900/40 dark:bg-slate-950',\n underlined: 'border-b-4 border-primary/70 bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100 dark:border-primary/60',\n sharp: 'rounded-none border border-gray-200 bg-white text-gray-900 shadow dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100'\n};\n\nconst frameRadii: Record<GlobalVariant, string> = {\n solid: 'rounded-3xl',\n outline: 'rounded-2xl',\n text: 'rounded-2xl',\n ghost: 'rounded-2xl',\n filled: 'rounded-3xl',\n underlined: 'rounded-2xl',\n sharp: 'rounded-none'\n};\n\nconst badgeVariants: Record<GlobalVariant, string> = {\n solid: 'bg-white/10 text-white border border-white/20',\n outline: 'bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35',\n text: 'bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35',\n ghost: 'bg-primary/15 text-primary border border-primary/25 dark:bg-primary/20 dark:border-primary/35',\n filled: 'bg-white/10 text-white border border-white/20',\n underlined: 'bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35',\n sharp: 'bg-primary/10 text-primary border border-primary/20 dark:bg-primary/20 dark:border-primary/35'\n};\n\nconst Hero: React.FC<HeroProps> = ({\n title,\n description,\n eyebrow,\n actions = [],\n stats = [],\n logos = [],\n image,\n variant = 'solid',\n className,\n ...rest\n}) => {\n const containerClass = twMerge(\n 'hero-block relative isolate overflow-hidden',\n containerVariants[variant] ?? containerVariants.solid,\n className\n );\n const badgeClass = twMerge(\n 'inline-flex items-center gap-2 rounded-full px-3 py-1 text-xs font-semibold uppercase tracking-wide',\n badgeVariants[variant] ?? badgeVariants.solid\n );\n const isDark = variant === 'solid' || variant === 'filled';\n const subdued = isDark ? 'text-white/80' : 'text-gray-600 dark:text-gray-300';\n const statMuted = isDark ? 'text-white/70' : 'text-gray-500 dark:text-gray-400';\n const actionPrimary = isDark\n ? 'bg-white text-gray-900 hover:bg-white/90 focus-visible:outline-white/70'\n : 'bg-primary text-white hover:bg-primary/90 focus-visible:outline-primary/50 dark:bg-primary/90 dark:hover:bg-primary';\n const actionSecondary = isDark\n ? 'border border-white/40 text-white hover:bg-white/10 focus-visible:outline-white/60'\n : 'border border-gray-300 text-gray-900 hover:border-primary/60 hover:text-primary focus-visible:outline-primary/50 dark:border-gray-600 dark:text-gray-100 dark:hover:border-primary/60 dark:hover:text-primary';\n const frameRadius = frameRadii[variant] ?? 'rounded-2xl';\n const frameDecoration = isDark\n ? 'border-white/10 bg-white/10 shadow-2xl shadow-black/20'\n : 'border-gray-200 bg-white shadow-2xl shadow-gray-200/60 dark:border-gray-700 dark:bg-gray-900 dark:shadow-black/30';\n\n const renderAction = (action: HeroAction, index: number) => {\n const { href, label, onClick, variant: actionVariant = 'primary' } = action;\n const Component = href ? 'a' : 'button';\n const resolvedClass =\n actionVariant === 'secondary'\n ? twMerge('bg-white/70', actionSecondary)\n : twMerge('shadow-lg shadow-primary/25', actionPrimary);\n\n return (\n <Component\n key={`${label}-${index}`}\n href={href}\n onClick={onClick as never}\n className={twMerge(\n 'inline-flex items-center gap-2 rounded-xl px-4 py-3 text-sm font-semibold transition focus-visible:outline focus-visible:outline-offset-2',\n resolvedClass\n )}\n >\n {label}\n </Component>\n );\n };\n\n return (\n <section {...rest} className={containerClass}>\n <div className='pointer-events-none absolute inset-0 overflow-hidden'>\n <div className='absolute left-24 top-10 h-64 w-64 rounded-full bg-primary/15 dark:bg-primary/25 blur-3xl' />\n <div className='absolute -right-16 -bottom-10 h-80 w-80 rounded-full bg-primary/20 dark:bg-primary/30 blur-3xl' />\n </div>\n <div className='mx-auto flex max-w-6xl flex-col gap-12 px-6 py-16 lg:px-10 lg:py-24'>\n <div className='grid items-center gap-12 lg:grid-cols-2'>\n <div className='space-y-6'>\n {eyebrow && <span className={badgeClass}>{eyebrow}</span>}\n <h1\n className={twMerge(\n 'text-4xl font-semibold leading-tight sm:text-5xl',\n isDark ? 'text-white' : 'text-gray-900 dark:text-gray-100'\n )}\n >\n {title}\n </h1>\n {description && <p className={twMerge('text-lg leading-relaxed', subdued)}>{description}</p>}\n {actions.length > 0 && <div className='flex flex-wrap gap-3'>{actions.map(renderAction)}</div>}\n {stats.length > 0 && (\n <dl className='grid gap-6 sm:grid-cols-3'>\n {stats.map(stat => (\n <div key={stat.label} className='space-y-1'>\n <dd className={twMerge('text-3xl font-semibold', isDark ? 'text-white' : 'text-gray-900 dark:text-gray-100')}>\n {stat.value}\n </dd>\n <dt className={twMerge('text-sm font-medium', statMuted)}>{stat.label}</dt>\n </div>\n ))}\n </dl>\n )}\n </div>\n {image && (\n <div className='relative'>\n <div className={twMerge('relative overflow-hidden backdrop-blur', frameDecoration, frameRadius)}>\n <img\n src={image.src}\n alt={image.alt ?? ''}\n className={twMerge('h-full w-full object-cover', frameRadius)}\n loading='lazy'\n />\n <div className='pointer-events-none absolute inset-0 bg-linear-to-t from-black/30 via-transparent to-transparent' />\n </div>\n </div>\n )}\n </div>\n {logos.length > 0 && (\n <div className='flex flex-wrap items-center gap-6 lg:items-center lg:gap-10'>\n <span className={twMerge('text-sm font-semibold tracking-wide', subdued)}>Duveruji nam</span>\n <div className='flex flex-wrap items-center gap-4 opacity-80'>\n {logos.map(logo => (\n <img\n key={logo.src}\n src={logo.src}\n alt={logo.alt ?? ''}\n className='h-8 w-auto grayscale transition hover:grayscale-0'\n loading='lazy'\n />\n ))}\n </div>\n </div>\n )}\n </div>\n </section>\n );\n};\n\nHero.displayName = 'Hero';\n\nexport default Hero;\n"]}
package/dist/hero.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Hero_default as default } from './chunk-UWNDN4XL.js';
1
+ export { Hero_default as default } from './chunk-7TQUULYB.js';
2
2
  //# sourceMappingURL=hero.js.map
3
3
  //# sourceMappingURL=hero.js.map
package/dist/icon.cjs CHANGED
@@ -12,14 +12,14 @@ var sizeClasses = {
12
12
  "x-large": "text-2xl"
13
13
  };
14
14
  var colorClasses = {
15
- primary: "text-primary",
16
- neutral: "text-gray-700",
17
- info: "text-sky-600",
18
- success: "text-emerald-600",
19
- warning: "text-amber-600",
20
- danger: "text-red-600",
21
- surface: "text-gray-900",
22
- bw: "text-black"
15
+ primary: "text-primary dark:text-primary",
16
+ neutral: "text-gray-700 dark:text-gray-300",
17
+ info: "text-sky-600 dark:text-sky-400",
18
+ success: "text-emerald-600 dark:text-emerald-400",
19
+ warning: "text-amber-600 dark:text-amber-400",
20
+ danger: "text-red-600 dark:text-red-400",
21
+ surface: "text-gray-900 dark:text-gray-100",
22
+ bw: "text-black dark:text-white"
23
23
  };
24
24
  var Icon = ({ className, icon, size, color, ...rest }) => {
25
25
  const normalizeMdiName = (value) => {
package/dist/icon.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Miscellaneous/Icon/index.tsx"],"names":["jsx","twMerge"],"mappings":";;;;;;AAaA,IAAM,WAAA,GAA0C;AAAA,EAC9C,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ,WAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;AAEA,IAAM,YAAA,GAAwC;AAAA,EAC5C,OAAA,EAAS,cAAA;AAAA,EACT,OAAA,EAAS,eAAA;AAAA,EACT,IAAA,EAAM,cAAA;AAAA,EACN,OAAA,EAAS,kBAAA;AAAA,EACT,OAAA,EAAS,gBAAA;AAAA,EACT,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS,eAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAKA,IAAM,IAAA,GAA4B,CAAC,EAAE,SAAA,EAAW,MAAM,IAAA,EAAM,KAAA,EAAO,GAAG,IAAA,EAAK,KAAM;AAC/E,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAkB;AAC1C,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACzB,MAAA,OAAO,OAAA;AAAA,IACT;AAEA,IAAA,OAAO,QAAQ,UAAA,CAAW,MAAM,CAAA,GAAI,OAAA,GAAU,OAAO,OAAO,CAAA,CAAA;AAAA,EAC9D,CAAA;AAEA,EAAA,IAAI,SAAA,GAAoB,EAAA;AACxB,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,SAAA,GAAY,iBAAiB,IAAI,CAAA;AAAA,EACnC,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC9B,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,IAAA;AACtB,IAAA,IAAI,UAAU,KAAA,EAAO;AACnB,MAAA,SAAA,GAAY,iBAAiB,IAAI,CAAA;AAAA,IACnC;AAAA,EACF;AACA,EAAA,MAAM,SAAA,GAAY,KAAA;AAClB,EAAA,MAAM,YAAY,IAAA,GAAO,WAAA,CAAY,IAAI,CAAA,IAAK,YAAY,MAAA,GAAS,MAAA;AACnE,EAAA,MAAM,aAAa,KAAA,GAAQ,YAAA,CAAa,KAAK,CAAA,IAAK,aAAa,OAAA,GAAU,MAAA;AAEzE,EAAA,uBACEA,cAAA,CAAC,GAAA,EAAA,EAAG,GAAG,IAAA,EAAM,SAAA,EAAWC,qBAAA,CAAQ,SAAA,EAAW,SAAA,EAAW,SAAA,EAAW,UAAA,EAAY,SAAS,CAAA,EAAG,CAAA;AAE7F,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"icon.cjs","sourcesContent":["import { GlobalSize, Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\n\ntype IconGroup = 'mdi';\n\ntype IconSet = [IconGroup, string];\n\ntype IconProps = {\n icon: string | IconSet;\n size?: GlobalSize;\n color?: Palette;\n} & React.HTMLAttributes<HTMLElement>;\n\nconst sizeClasses: Record<GlobalSize, string> = {\n 'x-small': 'text-xs',\n small: 'text-sm',\n medium: 'text-base',\n large: 'text-lg',\n 'x-large': 'text-2xl'\n};\n\nconst colorClasses: Record<Palette, string> = {\n primary: 'text-primary',\n neutral: 'text-gray-700',\n info: 'text-sky-600',\n success: 'text-emerald-600',\n warning: 'text-amber-600',\n danger: 'text-red-600',\n surface: 'text-gray-900',\n bw: 'text-black'\n};\n\n/**\n * Renders an icon from configured sets (currently MDI) via class-based glyphs.\n */\nconst Icon: React.FC<IconProps> = ({ className, icon, size, color, ...rest }) => {\n const normalizeMdiName = (value: string) => {\n const trimmed = value.trim();\n if (!trimmed) {\n return '';\n }\n\n if (trimmed.includes(' ')) {\n return trimmed;\n }\n\n return trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n };\n\n let iconValue: string = '';\n if (typeof icon === 'string') {\n iconValue = normalizeMdiName(icon);\n } else if (Array.isArray(icon)) {\n const [group, name] = icon;\n if (group === 'mdi') {\n iconValue = normalizeMdiName(name);\n }\n }\n const classBase = 'mdi';\n const sizeClass = size ? sizeClasses[size] ?? sizeClasses.medium : undefined;\n const colorClass = color ? colorClasses[color] ?? colorClasses.primary : undefined;\n\n return (\n <i {...rest} className={twMerge(classBase, iconValue, sizeClass, colorClass, className)}></i>\n );\n};\n\nexport default Icon;\n"]}
1
+ {"version":3,"sources":["../src/Miscellaneous/Icon/index.tsx"],"names":["jsx","twMerge"],"mappings":";;;;;;AAaA,IAAM,WAAA,GAA0C;AAAA,EAC9C,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ,WAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;AAEA,IAAM,YAAA,GAAwC;AAAA,EAC5C,OAAA,EAAS,gCAAA;AAAA,EACT,OAAA,EAAS,kCAAA;AAAA,EACT,IAAA,EAAM,gCAAA;AAAA,EACN,OAAA,EAAS,wCAAA;AAAA,EACT,OAAA,EAAS,oCAAA;AAAA,EACT,MAAA,EAAQ,gCAAA;AAAA,EACR,OAAA,EAAS,kCAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAKA,IAAM,IAAA,GAA4B,CAAC,EAAE,SAAA,EAAW,MAAM,IAAA,EAAM,KAAA,EAAO,GAAG,IAAA,EAAK,KAAM;AAC/E,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAkB;AAC1C,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACzB,MAAA,OAAO,OAAA;AAAA,IACT;AAEA,IAAA,OAAO,QAAQ,UAAA,CAAW,MAAM,CAAA,GAAI,OAAA,GAAU,OAAO,OAAO,CAAA,CAAA;AAAA,EAC9D,CAAA;AAEA,EAAA,IAAI,SAAA,GAAoB,EAAA;AACxB,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,SAAA,GAAY,iBAAiB,IAAI,CAAA;AAAA,EACnC,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC9B,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,IAAA;AACtB,IAAA,IAAI,UAAU,KAAA,EAAO;AACnB,MAAA,SAAA,GAAY,iBAAiB,IAAI,CAAA;AAAA,IACnC;AAAA,EACF;AACA,EAAA,MAAM,SAAA,GAAY,KAAA;AAClB,EAAA,MAAM,YAAY,IAAA,GAAO,WAAA,CAAY,IAAI,CAAA,IAAK,YAAY,MAAA,GAAS,MAAA;AACnE,EAAA,MAAM,aAAa,KAAA,GAAQ,YAAA,CAAa,KAAK,CAAA,IAAK,aAAa,OAAA,GAAU,MAAA;AAEzE,EAAA,uBACEA,cAAA,CAAC,GAAA,EAAA,EAAG,GAAG,IAAA,EAAM,SAAA,EAAWC,qBAAA,CAAQ,SAAA,EAAW,SAAA,EAAW,SAAA,EAAW,UAAA,EAAY,SAAS,CAAA,EAAG,CAAA;AAE7F,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"icon.cjs","sourcesContent":["import { GlobalSize, Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\n\ntype IconGroup = 'mdi';\n\ntype IconSet = [IconGroup, string];\n\ntype IconProps = {\n icon: string | IconSet;\n size?: GlobalSize;\n color?: Palette;\n} & React.HTMLAttributes<HTMLElement>;\n\nconst sizeClasses: Record<GlobalSize, string> = {\n 'x-small': 'text-xs',\n small: 'text-sm',\n medium: 'text-base',\n large: 'text-lg',\n 'x-large': 'text-2xl'\n};\n\nconst colorClasses: Record<Palette, string> = {\n primary: 'text-primary dark:text-primary',\n neutral: 'text-gray-700 dark:text-gray-300',\n info: 'text-sky-600 dark:text-sky-400',\n success: 'text-emerald-600 dark:text-emerald-400',\n warning: 'text-amber-600 dark:text-amber-400',\n danger: 'text-red-600 dark:text-red-400',\n surface: 'text-gray-900 dark:text-gray-100',\n bw: 'text-black dark:text-white'\n};\n\n/**\n * Renders an icon from configured sets (currently MDI) via class-based glyphs.\n */\nconst Icon: React.FC<IconProps> = ({ className, icon, size, color, ...rest }) => {\n const normalizeMdiName = (value: string) => {\n const trimmed = value.trim();\n if (!trimmed) {\n return '';\n }\n\n if (trimmed.includes(' ')) {\n return trimmed;\n }\n\n return trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n };\n\n let iconValue: string = '';\n if (typeof icon === 'string') {\n iconValue = normalizeMdiName(icon);\n } else if (Array.isArray(icon)) {\n const [group, name] = icon;\n if (group === 'mdi') {\n iconValue = normalizeMdiName(name);\n }\n }\n const classBase = 'mdi';\n const sizeClass = size ? sizeClasses[size] ?? sizeClasses.medium : undefined;\n const colorClass = color ? colorClasses[color] ?? colorClasses.primary : undefined;\n\n return (\n <i {...rest} className={twMerge(classBase, iconValue, sizeClass, colorClass, className)}></i>\n );\n};\n\nexport default Icon;\n"]}
package/dist/icon.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Icon_default as default } from './chunk-HEXJCQRO.js';
1
+ export { Icon_default as default } from './chunk-LWCRKQEV.js';
2
2
  //# sourceMappingURL=icon.js.map
3
3
  //# sourceMappingURL=icon.js.map