@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.
- package/dist/alert.cjs +3 -3
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.js +1 -1
- package/dist/badge.cjs +10 -10
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.js +1 -1
- package/dist/button.cjs +45 -45
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +1 -1
- package/dist/chip.cjs +47 -47
- package/dist/chip.cjs.map +1 -1
- package/dist/chip.js +2 -2
- package/dist/{chunk-UWNDN4XL.js → chunk-7TQUULYB.js} +23 -23
- package/dist/chunk-7TQUULYB.js.map +1 -0
- package/dist/{chunk-NJU7XT54.js → chunk-DMI64Z53.js} +4 -4
- package/dist/chunk-DMI64Z53.js.map +1 -0
- package/dist/{chunk-5LWU5T2C.js → chunk-GKZFVQW6.js} +16 -16
- package/dist/chunk-GKZFVQW6.js.map +1 -0
- package/dist/{chunk-4VHGXXZE.js → chunk-H4742H2N.js} +4 -4
- package/dist/{chunk-4VHGXXZE.js.map → chunk-H4742H2N.js.map} +1 -1
- package/dist/{chunk-4CYM2UM3.js → chunk-HGECC2JH.js} +48 -48
- package/dist/chunk-HGECC2JH.js.map +1 -0
- package/dist/{chunk-RUOU46YI.js → chunk-HVGCLUW2.js} +47 -47
- package/dist/chunk-HVGCLUW2.js.map +1 -0
- package/dist/{chunk-GMDNSU26.js → chunk-KK33I72F.js} +5 -5
- package/dist/{chunk-GMDNSU26.js.map → chunk-KK33I72F.js.map} +1 -1
- package/dist/{chunk-57CCAWFX.js → chunk-KVXZEMAH.js} +4 -4
- package/dist/{chunk-57CCAWFX.js.map → chunk-KVXZEMAH.js.map} +1 -1
- package/dist/{chunk-7HOQSHPQ.js → chunk-LRWM4ZWZ.js} +3 -3
- package/dist/{chunk-7HOQSHPQ.js.map → chunk-LRWM4ZWZ.js.map} +1 -1
- package/dist/{chunk-XA74HBMH.js → chunk-LSIAP7ZZ.js} +8 -8
- package/dist/chunk-LSIAP7ZZ.js.map +1 -0
- package/dist/{chunk-HEXJCQRO.js → chunk-LWCRKQEV.js} +10 -10
- package/dist/chunk-LWCRKQEV.js.map +1 -0
- package/dist/{chunk-JFIFVLWE.js → chunk-LZYVTGJD.js} +3 -3
- package/dist/{chunk-JFIFVLWE.js.map → chunk-LZYVTGJD.js.map} +1 -1
- package/dist/{chunk-U2AL7XFY.js → chunk-O3VFEMJ7.js} +4 -4
- package/dist/chunk-O3VFEMJ7.js.map +1 -0
- package/dist/{chunk-HIRPMCQJ.js → chunk-OQYPWJDA.js} +12 -12
- package/dist/{chunk-HIRPMCQJ.js.map → chunk-OQYPWJDA.js.map} +1 -1
- package/dist/{chunk-AUVYU7M5.js → chunk-Q7VTD6NY.js} +20 -20
- package/dist/chunk-Q7VTD6NY.js.map +1 -0
- package/dist/{chunk-HAXGOTZO.js → chunk-UK6RSS4J.js} +3 -3
- package/dist/chunk-UK6RSS4J.js.map +1 -0
- package/dist/{chunk-KQOR3C7E.js → chunk-ZLBGPLM3.js} +5 -5
- package/dist/chunk-ZLBGPLM3.js.map +1 -0
- package/dist/dialog.cjs +2 -2
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +1 -1
- package/dist/expansion-panel/item.cjs +18 -18
- package/dist/expansion-panel/item.cjs.map +1 -1
- package/dist/expansion-panel/item.js +1 -1
- package/dist/expansion-panel.cjs +23 -23
- package/dist/expansion-panel.cjs.map +1 -1
- package/dist/expansion-panel.js +2 -2
- package/dist/hero.cjs +21 -21
- package/dist/hero.cjs.map +1 -1
- package/dist/hero.js +1 -1
- package/dist/icon.cjs +8 -8
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.js +1 -1
- package/dist/index.cjs +227 -227
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +63 -63
- package/dist/index.js.map +1 -1
- package/dist/masonry.cjs +1 -1
- package/dist/masonry.cjs.map +1 -1
- package/dist/masonry.js +1 -1
- package/dist/menu.cjs +2 -2
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/profileCard.cjs +45 -45
- package/dist/profileCard.cjs.map +1 -1
- package/dist/profileCard.js +2 -2
- package/dist/slider.cjs +3 -3
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +1 -1
- package/dist/styles.css +863 -14
- package/dist/switch.cjs +14 -14
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/timeline.cjs.map +1 -1
- package/dist/timeline.js +2 -2
- package/dist/tooltip.cjs +2 -2
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +1 -1
- package/package.json +1 -1
- package/readme.md +21 -1
- package/dist/chunk-4CYM2UM3.js.map +0 -1
- package/dist/chunk-5LWU5T2C.js.map +0 -1
- package/dist/chunk-AUVYU7M5.js.map +0 -1
- package/dist/chunk-HAXGOTZO.js.map +0 -1
- package/dist/chunk-HEXJCQRO.js.map +0 -1
- package/dist/chunk-KQOR3C7E.js.map +0 -1
- package/dist/chunk-NJU7XT54.js.map +0 -1
- package/dist/chunk-RUOU46YI.js.map +0 -1
- package/dist/chunk-U2AL7XFY.js.map +0 -1
- package/dist/chunk-UWNDN4XL.js.map +0 -1
- 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
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,
|
|
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