@dmitriikapustin/ui 0.2.9 → 0.2.11

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/index.cjs CHANGED
@@ -3722,21 +3722,21 @@ function Footer({
3722
3722
  brand == null ? void 0 : brand.logo,
3723
3723
  (brand == null ? void 0 : brand.tagline) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: __default43.tagline, children: brand.tagline })
3724
3724
  ] }),
3725
- columns == null ? void 0 : columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3725
+ columns == null ? void 0 : columns.map((col, ci) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3726
3726
  /* @__PURE__ */ jsxRuntime.jsx("h4", { className: __default43.columnTitle, children: col.title }),
3727
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: __default43.linkList, children: col.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: link.href, className: __default43.link, children: link.label }) }, link.label)) })
3728
- ] }, col.title))
3727
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: __default43.linkList, children: col.links.map((link, li) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: link.href, className: __default43.link, children: link.label }) }, `${ci}-${li}-${link.label}`)) })
3728
+ ] }, `${ci}-${col.title}`))
3729
3729
  ] }),
3730
3730
  hasBottom && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: __default43.bottom, children: [
3731
3731
  copyright && /* @__PURE__ */ jsxRuntime.jsx("p", { className: __default43.copyright, children: copyright }),
3732
- socials && socials.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: __default43.socials, children: socials.map((social) => /* @__PURE__ */ jsxRuntime.jsx(
3732
+ socials && socials.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: __default43.socials, children: socials.map((social, si) => /* @__PURE__ */ jsxRuntime.jsx(
3733
3733
  "a",
3734
3734
  {
3735
3735
  href: social.href,
3736
3736
  className: __default43.socialLink,
3737
3737
  children: social.label
3738
3738
  },
3739
- social.label
3739
+ `${si}-${social.label}`
3740
3740
  )) })
3741
3741
  ] })
3742
3742
  ] }) });
@@ -6302,25 +6302,33 @@ __styleInject(`.PromoTestimonials-module_root {
6302
6302
  font-size: 0.875rem;
6303
6303
  color: var(--fg-secondary);
6304
6304
  line-height: 1.625;
6305
- flex: 1;
6305
+ margin: 0;
6306
6306
  }
6307
6307
 
6308
6308
  .PromoTestimonials-module_author {
6309
6309
  display: flex;
6310
6310
  align-items: center;
6311
6311
  gap: 0.75rem;
6312
- padding-top: 0.25rem;
6312
+ margin-top: auto;
6313
+ }
6314
+
6315
+ .PromoTestimonials-module_authorInfo {
6316
+ display: flex;
6317
+ flex-direction: column;
6318
+ gap: 4px;
6313
6319
  }
6314
6320
 
6315
6321
  .PromoTestimonials-module_authorName {
6316
6322
  font-size: 0.875rem;
6317
6323
  font-weight: 500;
6318
6324
  color: var(--fg);
6325
+ margin: 0;
6319
6326
  }
6320
6327
 
6321
6328
  .PromoTestimonials-module_authorRole {
6322
6329
  font-size: 0.75rem;
6323
6330
  color: var(--fg-muted);
6331
+ margin: 0;
6324
6332
  }
6325
6333
 
6326
6334
  .PromoTestimonials-module_mediaSection {
@@ -6337,7 +6345,7 @@ __styleInject(`.PromoTestimonials-module_root {
6337
6345
  background: var(--bg-secondary);
6338
6346
  overflow: hidden;
6339
6347
  }`);
6340
- var __default63 = { "root": "PromoTestimonials-module_root", "wrapper": "PromoTestimonials-module_wrapper", "avatarSection": "PromoTestimonials-module_avatarSection", "avatarStack": "PromoTestimonials-module_avatarStack", "avatarRing": "PromoTestimonials-module_avatarRing", "overflowBadge": "PromoTestimonials-module_overflowBadge", "overflowCircle": "PromoTestimonials-module_overflowCircle", "headingSection": "PromoTestimonials-module_headingSection", "heading": "PromoTestimonials-module_heading", "subtitle": "PromoTestimonials-module_subtitle", "cardsSection": "PromoTestimonials-module_cardsSection", "cardsGrid": "PromoTestimonials-module_cardsGrid", "card": "PromoTestimonials-module_card", "quote": "PromoTestimonials-module_quote", "author": "PromoTestimonials-module_author", "authorName": "PromoTestimonials-module_authorName", "authorRole": "PromoTestimonials-module_authorRole", "mediaSection": "PromoTestimonials-module_mediaSection", "mediaBox": "PromoTestimonials-module_mediaBox" };
6348
+ var __default63 = { "root": "PromoTestimonials-module_root", "wrapper": "PromoTestimonials-module_wrapper", "avatarSection": "PromoTestimonials-module_avatarSection", "avatarStack": "PromoTestimonials-module_avatarStack", "avatarRing": "PromoTestimonials-module_avatarRing", "overflowBadge": "PromoTestimonials-module_overflowBadge", "overflowCircle": "PromoTestimonials-module_overflowCircle", "headingSection": "PromoTestimonials-module_headingSection", "heading": "PromoTestimonials-module_heading", "subtitle": "PromoTestimonials-module_subtitle", "cardsSection": "PromoTestimonials-module_cardsSection", "cardsGrid": "PromoTestimonials-module_cardsGrid", "card": "PromoTestimonials-module_card", "quote": "PromoTestimonials-module_quote", "author": "PromoTestimonials-module_author", "authorInfo": "PromoTestimonials-module_authorInfo", "authorName": "PromoTestimonials-module_authorName", "authorRole": "PromoTestimonials-module_authorRole", "mediaSection": "PromoTestimonials-module_mediaSection", "mediaBox": "PromoTestimonials-module_mediaBox" };
6341
6349
  function PromoTestimonials({
6342
6350
  heading,
6343
6351
  subtitle,
@@ -6389,7 +6397,7 @@ function PromoTestimonials({
6389
6397
  ] }),
6390
6398
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: __default63.author, children: [
6391
6399
  /* @__PURE__ */ jsxRuntime.jsx(Avatar, { size: "sm", src: t.avatarSrc, initials }),
6392
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
6400
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: __default63.authorInfo, children: [
6393
6401
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: __default63.authorName, children: t.name }),
6394
6402
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: __default63.authorRole, children: t.role })
6395
6403
  ] })
@@ -8519,18 +8527,23 @@ var __default80 = { "headerMode": "LandingLayout-module_headerMode", "headerMain
8519
8527
  function LandingLayout({
8520
8528
  mode = "header",
8521
8529
  nav,
8530
+ footer,
8522
8531
  children,
8523
8532
  className = ""
8524
8533
  }) {
8525
8534
  if (mode === "sidebar") {
8526
8535
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${__default80.sidebarMode}${className ? ` ${className}` : ""}`, children: [
8527
8536
  nav && /* @__PURE__ */ jsxRuntime.jsx("div", { className: __default80.sidebarNav, children: nav }),
8528
- /* @__PURE__ */ jsxRuntime.jsx("main", { className: __default80.sidebarMain, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: __default80.sidebarContent, children }) })
8537
+ /* @__PURE__ */ jsxRuntime.jsxs("main", { className: __default80.sidebarMain, children: [
8538
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: __default80.sidebarContent, children }),
8539
+ footer
8540
+ ] })
8529
8541
  ] });
8530
8542
  }
8531
8543
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${__default80.headerMode}${className ? ` ${className}` : ""}`, children: [
8532
8544
  nav,
8533
- /* @__PURE__ */ jsxRuntime.jsx("main", { className: __default80.headerMain, children })
8545
+ /* @__PURE__ */ jsxRuntime.jsx("main", { className: __default80.headerMain, children }),
8546
+ footer
8534
8547
  ] });
8535
8548
  }
8536
8549
 
package/dist/index.d.cts CHANGED
@@ -1041,9 +1041,11 @@ interface LandingLayoutProps {
1041
1041
  mode?: 'header' | 'sidebar';
1042
1042
  /** Navigation element — Header for header mode, Sidebar for sidebar mode */
1043
1043
  nav?: ReactNode;
1044
+ /** Footer element. Rendered sibling to `<main>` (full viewport width, без max-width-обёртки). */
1045
+ footer?: ReactNode;
1044
1046
  children: ReactNode;
1045
1047
  className?: string;
1046
1048
  }
1047
- declare function LandingLayout({ mode, nav, children, className, }: LandingLayoutProps): react_jsx_runtime.JSX.Element;
1049
+ declare function LandingLayout({ mode, nav, footer, children, className, }: LandingLayoutProps): react_jsx_runtime.JSX.Element;
1048
1050
 
1049
1051
  export { Alert, AppCard, AppTopLine, ArticleBarChart, type ArticleBarChartProps, ArticleBody, type ArticleBodyProps, ArticleChatBlock, type ArticleChatBlockProps, ArticleFigure, type ArticleFigureProps, ArticleFooter, type ArticleFooterProps, ArticleHeading, type ArticleHeadingProps, ArticleHero, type ArticleHeroProps, ArticleLayout, type ArticleLayoutProps, ArticleLineChart, type ArticleLineChartProps, ArticleLinkButton, type ArticleLinkButtonProps, ArticleList, type ArticleListProps, ArticleNarrow, ArticleNote, type ArticleNoteProps, ArticleScatterChart, type ArticleScatterChartProps, ArticleTable, type ArticleTableColumn, type ArticleTableProps, type ArticleTableRow, ArticleWide, Avatar, Badge, BentoGrid, Breadcrumbs, Button, CTASection, Card, type ChartSeries, ChatInput, ChatMessage, Checkbox, CodeInput, ComparisonTable, Divider, DropdownMenu, EmptyState, FAQSection, FeatureGrid, Footer, FormField, Gallery, Header, HeroSection, IconBadge, IconButton, IconWithText, IconlyActivity, IconlyAttach, IconlyBook, IconlyCheck, IconlyChevronDown, IconlyChevronLeft, IconlyChevronRight, IconlyClock, IconlyClose, IconlyError, IconlyEye, IconlyEyeOff, IconlyHeart, IconlyInfo, IconlyInfoCircle, IconlyLink, IconlyLock, IconlyMail, IconlyMenu, IconlyMoon, IconlyQuote, IconlyRoadmap, IconlySandbox, IconlySearch, IconlySend, IconlyShield, IconlySmile, IconlyStar, IconlySuccess, IconlySun, IconlyWarning, Input, LandingLayout, Logo, LogoCloud, MenuItem, Modal, Pagination, PasswordInput, PricingCard, ProfileNav, PromoActionCards, PromoBento, PromoDevicesCTA, PromoHero, PromoHeroForm, PromoPricing, PromoShowcase, PromoSplit, PromoTestimonials, PromoTrustGrid, Radio, type ScatterPoint, SearchBar, Select, Sidebar, type SidebarItem, Skeleton, Spinner, StampCard, Stat, StatBadge, StatsBar, Link as StyledLink, Tabs, Tag, TestimonialCard, Textarea, TicketButton, Toast, Toggle, Tooltip, TopPromo };
package/dist/index.d.ts CHANGED
@@ -1041,9 +1041,11 @@ interface LandingLayoutProps {
1041
1041
  mode?: 'header' | 'sidebar';
1042
1042
  /** Navigation element — Header for header mode, Sidebar for sidebar mode */
1043
1043
  nav?: ReactNode;
1044
+ /** Footer element. Rendered sibling to `<main>` (full viewport width, без max-width-обёртки). */
1045
+ footer?: ReactNode;
1044
1046
  children: ReactNode;
1045
1047
  className?: string;
1046
1048
  }
1047
- declare function LandingLayout({ mode, nav, children, className, }: LandingLayoutProps): react_jsx_runtime.JSX.Element;
1049
+ declare function LandingLayout({ mode, nav, footer, children, className, }: LandingLayoutProps): react_jsx_runtime.JSX.Element;
1048
1050
 
1049
1051
  export { Alert, AppCard, AppTopLine, ArticleBarChart, type ArticleBarChartProps, ArticleBody, type ArticleBodyProps, ArticleChatBlock, type ArticleChatBlockProps, ArticleFigure, type ArticleFigureProps, ArticleFooter, type ArticleFooterProps, ArticleHeading, type ArticleHeadingProps, ArticleHero, type ArticleHeroProps, ArticleLayout, type ArticleLayoutProps, ArticleLineChart, type ArticleLineChartProps, ArticleLinkButton, type ArticleLinkButtonProps, ArticleList, type ArticleListProps, ArticleNarrow, ArticleNote, type ArticleNoteProps, ArticleScatterChart, type ArticleScatterChartProps, ArticleTable, type ArticleTableColumn, type ArticleTableProps, type ArticleTableRow, ArticleWide, Avatar, Badge, BentoGrid, Breadcrumbs, Button, CTASection, Card, type ChartSeries, ChatInput, ChatMessage, Checkbox, CodeInput, ComparisonTable, Divider, DropdownMenu, EmptyState, FAQSection, FeatureGrid, Footer, FormField, Gallery, Header, HeroSection, IconBadge, IconButton, IconWithText, IconlyActivity, IconlyAttach, IconlyBook, IconlyCheck, IconlyChevronDown, IconlyChevronLeft, IconlyChevronRight, IconlyClock, IconlyClose, IconlyError, IconlyEye, IconlyEyeOff, IconlyHeart, IconlyInfo, IconlyInfoCircle, IconlyLink, IconlyLock, IconlyMail, IconlyMenu, IconlyMoon, IconlyQuote, IconlyRoadmap, IconlySandbox, IconlySearch, IconlySend, IconlyShield, IconlySmile, IconlyStar, IconlySuccess, IconlySun, IconlyWarning, Input, LandingLayout, Logo, LogoCloud, MenuItem, Modal, Pagination, PasswordInput, PricingCard, ProfileNav, PromoActionCards, PromoBento, PromoDevicesCTA, PromoHero, PromoHeroForm, PromoPricing, PromoShowcase, PromoSplit, PromoTestimonials, PromoTrustGrid, Radio, type ScatterPoint, SearchBar, Select, Sidebar, type SidebarItem, Skeleton, Spinner, StampCard, Stat, StatBadge, StatsBar, Link as StyledLink, Tabs, Tag, TestimonialCard, Textarea, TicketButton, Toast, Toggle, Tooltip, TopPromo };
package/dist/index.js CHANGED
@@ -3716,21 +3716,21 @@ function Footer({
3716
3716
  brand == null ? void 0 : brand.logo,
3717
3717
  (brand == null ? void 0 : brand.tagline) && /* @__PURE__ */ jsx("p", { className: __default43.tagline, children: brand.tagline })
3718
3718
  ] }),
3719
- columns == null ? void 0 : columns.map((col) => /* @__PURE__ */ jsxs("div", { children: [
3719
+ columns == null ? void 0 : columns.map((col, ci) => /* @__PURE__ */ jsxs("div", { children: [
3720
3720
  /* @__PURE__ */ jsx("h4", { className: __default43.columnTitle, children: col.title }),
3721
- /* @__PURE__ */ jsx("ul", { className: __default43.linkList, children: col.links.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: link.href, className: __default43.link, children: link.label }) }, link.label)) })
3722
- ] }, col.title))
3721
+ /* @__PURE__ */ jsx("ul", { className: __default43.linkList, children: col.links.map((link, li) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: link.href, className: __default43.link, children: link.label }) }, `${ci}-${li}-${link.label}`)) })
3722
+ ] }, `${ci}-${col.title}`))
3723
3723
  ] }),
3724
3724
  hasBottom && /* @__PURE__ */ jsxs("div", { className: __default43.bottom, children: [
3725
3725
  copyright && /* @__PURE__ */ jsx("p", { className: __default43.copyright, children: copyright }),
3726
- socials && socials.length > 0 && /* @__PURE__ */ jsx("div", { className: __default43.socials, children: socials.map((social) => /* @__PURE__ */ jsx(
3726
+ socials && socials.length > 0 && /* @__PURE__ */ jsx("div", { className: __default43.socials, children: socials.map((social, si) => /* @__PURE__ */ jsx(
3727
3727
  "a",
3728
3728
  {
3729
3729
  href: social.href,
3730
3730
  className: __default43.socialLink,
3731
3731
  children: social.label
3732
3732
  },
3733
- social.label
3733
+ `${si}-${social.label}`
3734
3734
  )) })
3735
3735
  ] })
3736
3736
  ] }) });
@@ -6296,25 +6296,33 @@ __styleInject(`.PromoTestimonials-module_root {
6296
6296
  font-size: 0.875rem;
6297
6297
  color: var(--fg-secondary);
6298
6298
  line-height: 1.625;
6299
- flex: 1;
6299
+ margin: 0;
6300
6300
  }
6301
6301
 
6302
6302
  .PromoTestimonials-module_author {
6303
6303
  display: flex;
6304
6304
  align-items: center;
6305
6305
  gap: 0.75rem;
6306
- padding-top: 0.25rem;
6306
+ margin-top: auto;
6307
+ }
6308
+
6309
+ .PromoTestimonials-module_authorInfo {
6310
+ display: flex;
6311
+ flex-direction: column;
6312
+ gap: 4px;
6307
6313
  }
6308
6314
 
6309
6315
  .PromoTestimonials-module_authorName {
6310
6316
  font-size: 0.875rem;
6311
6317
  font-weight: 500;
6312
6318
  color: var(--fg);
6319
+ margin: 0;
6313
6320
  }
6314
6321
 
6315
6322
  .PromoTestimonials-module_authorRole {
6316
6323
  font-size: 0.75rem;
6317
6324
  color: var(--fg-muted);
6325
+ margin: 0;
6318
6326
  }
6319
6327
 
6320
6328
  .PromoTestimonials-module_mediaSection {
@@ -6331,7 +6339,7 @@ __styleInject(`.PromoTestimonials-module_root {
6331
6339
  background: var(--bg-secondary);
6332
6340
  overflow: hidden;
6333
6341
  }`);
6334
- var __default63 = { "root": "PromoTestimonials-module_root", "wrapper": "PromoTestimonials-module_wrapper", "avatarSection": "PromoTestimonials-module_avatarSection", "avatarStack": "PromoTestimonials-module_avatarStack", "avatarRing": "PromoTestimonials-module_avatarRing", "overflowBadge": "PromoTestimonials-module_overflowBadge", "overflowCircle": "PromoTestimonials-module_overflowCircle", "headingSection": "PromoTestimonials-module_headingSection", "heading": "PromoTestimonials-module_heading", "subtitle": "PromoTestimonials-module_subtitle", "cardsSection": "PromoTestimonials-module_cardsSection", "cardsGrid": "PromoTestimonials-module_cardsGrid", "card": "PromoTestimonials-module_card", "quote": "PromoTestimonials-module_quote", "author": "PromoTestimonials-module_author", "authorName": "PromoTestimonials-module_authorName", "authorRole": "PromoTestimonials-module_authorRole", "mediaSection": "PromoTestimonials-module_mediaSection", "mediaBox": "PromoTestimonials-module_mediaBox" };
6342
+ var __default63 = { "root": "PromoTestimonials-module_root", "wrapper": "PromoTestimonials-module_wrapper", "avatarSection": "PromoTestimonials-module_avatarSection", "avatarStack": "PromoTestimonials-module_avatarStack", "avatarRing": "PromoTestimonials-module_avatarRing", "overflowBadge": "PromoTestimonials-module_overflowBadge", "overflowCircle": "PromoTestimonials-module_overflowCircle", "headingSection": "PromoTestimonials-module_headingSection", "heading": "PromoTestimonials-module_heading", "subtitle": "PromoTestimonials-module_subtitle", "cardsSection": "PromoTestimonials-module_cardsSection", "cardsGrid": "PromoTestimonials-module_cardsGrid", "card": "PromoTestimonials-module_card", "quote": "PromoTestimonials-module_quote", "author": "PromoTestimonials-module_author", "authorInfo": "PromoTestimonials-module_authorInfo", "authorName": "PromoTestimonials-module_authorName", "authorRole": "PromoTestimonials-module_authorRole", "mediaSection": "PromoTestimonials-module_mediaSection", "mediaBox": "PromoTestimonials-module_mediaBox" };
6335
6343
  function PromoTestimonials({
6336
6344
  heading,
6337
6345
  subtitle,
@@ -6383,7 +6391,7 @@ function PromoTestimonials({
6383
6391
  ] }),
6384
6392
  /* @__PURE__ */ jsxs("div", { className: __default63.author, children: [
6385
6393
  /* @__PURE__ */ jsx(Avatar, { size: "sm", src: t.avatarSrc, initials }),
6386
- /* @__PURE__ */ jsxs("div", { children: [
6394
+ /* @__PURE__ */ jsxs("div", { className: __default63.authorInfo, children: [
6387
6395
  /* @__PURE__ */ jsx("p", { className: __default63.authorName, children: t.name }),
6388
6396
  /* @__PURE__ */ jsx("p", { className: __default63.authorRole, children: t.role })
6389
6397
  ] })
@@ -8513,18 +8521,23 @@ var __default80 = { "headerMode": "LandingLayout-module_headerMode", "headerMain
8513
8521
  function LandingLayout({
8514
8522
  mode = "header",
8515
8523
  nav,
8524
+ footer,
8516
8525
  children,
8517
8526
  className = ""
8518
8527
  }) {
8519
8528
  if (mode === "sidebar") {
8520
8529
  return /* @__PURE__ */ jsxs("div", { className: `${__default80.sidebarMode}${className ? ` ${className}` : ""}`, children: [
8521
8530
  nav && /* @__PURE__ */ jsx("div", { className: __default80.sidebarNav, children: nav }),
8522
- /* @__PURE__ */ jsx("main", { className: __default80.sidebarMain, children: /* @__PURE__ */ jsx("div", { className: __default80.sidebarContent, children }) })
8531
+ /* @__PURE__ */ jsxs("main", { className: __default80.sidebarMain, children: [
8532
+ /* @__PURE__ */ jsx("div", { className: __default80.sidebarContent, children }),
8533
+ footer
8534
+ ] })
8523
8535
  ] });
8524
8536
  }
8525
8537
  return /* @__PURE__ */ jsxs("div", { className: `${__default80.headerMode}${className ? ` ${className}` : ""}`, children: [
8526
8538
  nav,
8527
- /* @__PURE__ */ jsx("main", { className: __default80.headerMain, children })
8539
+ /* @__PURE__ */ jsx("main", { className: __default80.headerMain, children }),
8540
+ footer
8528
8541
  ] });
8529
8542
  }
8530
8543
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dmitriikapustin/ui",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "Universal UI/UX Kit — React 19 component library with Atomic Design, CSS custom properties, and SCSS modules",
5
5
  "author": "Kapustin Team",
6
6
  "license": "MIT",