@vkzstudio/muza-ui 1.0.46 → 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 (91) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +112 -18
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js +219 -113
  4. package/dist/components/Accordion/Accordion.stories.d.ts +3 -0
  5. package/dist/components/Accordion/Accordion.stories.d.ts.map +1 -1
  6. package/dist/components/Alert/Alert.js +4 -4
  7. package/dist/components/ButtonArrow/ButtonArrow.stories.d.ts.map +1 -1
  8. package/dist/components/CardCheckboxAmount/CardCheckboxAmount.d.ts +111 -0
  9. package/dist/components/CardCheckboxAmount/CardCheckboxAmount.d.ts.map +1 -0
  10. package/dist/components/CardCheckboxAmount/CardCheckboxAmount.js +115 -0
  11. package/dist/components/CardCheckboxAmount/CardCheckboxAmount.stories.d.ts +13 -0
  12. package/dist/components/CardCheckboxAmount/CardCheckboxAmount.stories.d.ts.map +1 -0
  13. package/dist/components/CardCheckboxAmount/index.d.ts +2 -0
  14. package/dist/components/CardCheckboxAmount/index.d.ts.map +1 -0
  15. package/dist/components/Chip/Chip.d.ts.map +1 -1
  16. package/dist/components/Chip/Chip.js +6 -2
  17. package/dist/components/Chip/Chip.stories.d.ts.map +1 -1
  18. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  19. package/dist/components/DatePicker/DatePicker.js +10 -2
  20. package/dist/components/DatePicker/DatePicker.stories.d.ts.map +1 -1
  21. package/dist/components/DatePickerButton/DatePickerButton.d.ts +97 -0
  22. package/dist/components/DatePickerButton/DatePickerButton.d.ts.map +1 -0
  23. package/dist/components/DatePickerButton/DatePickerButton.js +329 -0
  24. package/dist/components/DatePickerButton/DatePickerButton.stories.d.ts +15 -0
  25. package/dist/components/DatePickerButton/DatePickerButton.stories.d.ts.map +1 -0
  26. package/dist/components/DatePickerButton/index.d.ts +2 -0
  27. package/dist/components/DatePickerButton/index.d.ts.map +1 -0
  28. package/dist/components/Dialog/Dialog.js +1 -1
  29. package/dist/components/Icons/CustomLogos.d.ts +18 -2
  30. package/dist/components/Icons/CustomLogos.d.ts.map +1 -1
  31. package/dist/components/Icons/CustomLogos.js +103 -97
  32. package/dist/components/Icons/LogosAndBadges.stories.d.ts +1 -0
  33. package/dist/components/Icons/LogosAndBadges.stories.d.ts.map +1 -1
  34. package/dist/components/LanguageSwitcher/LanguageSwitcher.d.ts +26 -1
  35. package/dist/components/LanguageSwitcher/LanguageSwitcher.d.ts.map +1 -1
  36. package/dist/components/LanguageSwitcher/LanguageSwitcher.js +86 -44
  37. package/dist/components/LanguageSwitcher/LanguageSwitcher.stories.d.ts +1 -0
  38. package/dist/components/LanguageSwitcher/LanguageSwitcher.stories.d.ts.map +1 -1
  39. package/dist/components/Popover/Popover.d.ts +8 -1
  40. package/dist/components/Popover/Popover.d.ts.map +1 -1
  41. package/dist/components/Popover/Popover.js +7 -6
  42. package/dist/components/SegmentedControl/SegmentedControl.stories.d.ts.map +1 -1
  43. package/dist/components/SegmentedIconControl/SegmentedIconControl.stories.d.ts.map +1 -1
  44. package/dist/components/TextEditor/TextEditor.d.ts.map +1 -1
  45. package/dist/components/TextEditor/TextEditor.js +12 -9
  46. package/dist/components/TextEditor/TextEditor.stories.d.ts.map +1 -1
  47. package/dist/components/Toggle/Toggle.stories.d.ts.map +1 -1
  48. package/dist/components/ToggleCheckButton/ToggleCheckButton.stories.d.ts.map +1 -1
  49. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts.map +1 -1
  50. package/dist/components/Typography/Typography.d.ts +10 -1
  51. package/dist/components/Typography/Typography.d.ts.map +1 -1
  52. package/dist/components/Typography/Typography.js +82 -67
  53. package/dist/components/Typography/Typography.stories.d.ts +1 -0
  54. package/dist/components/Typography/Typography.stories.d.ts.map +1 -1
  55. package/dist/components/TypographyLink/TypographyLink.d.ts +72 -0
  56. package/dist/components/TypographyLink/TypographyLink.d.ts.map +1 -0
  57. package/dist/components/TypographyLink/TypographyLink.js +103 -0
  58. package/dist/components/TypographyLink/TypographyLink.stories.d.ts +12 -0
  59. package/dist/components/TypographyLink/TypographyLink.stories.d.ts.map +1 -0
  60. package/dist/components/TypographyLink/index.d.ts +2 -0
  61. package/dist/components/TypographyLink/index.d.ts.map +1 -0
  62. package/dist/components/UniversalFooter/UniversalFooter.d.ts +198 -0
  63. package/dist/components/UniversalFooter/UniversalFooter.d.ts.map +1 -0
  64. package/dist/components/UniversalFooter/UniversalFooter.js +401 -0
  65. package/dist/components/UniversalFooter/UniversalFooter.stories.d.ts +19 -0
  66. package/dist/components/UniversalFooter/UniversalFooter.stories.d.ts.map +1 -0
  67. package/dist/components/UniversalFooter/index.d.ts +2 -0
  68. package/dist/components/UniversalFooter/index.d.ts.map +1 -0
  69. package/dist/components/index.d.ts +4 -0
  70. package/dist/components/index.d.ts.map +1 -1
  71. package/dist/globals.css +0 -1
  72. package/dist/index.js +353 -322
  73. package/dist/muza-ui.css +1 -1
  74. package/dist/styles/primitives.css +2 -0
  75. package/dist/styles/token-colors.css +51 -43
  76. package/dist/styles/token-sizes.css +52 -4
  77. package/dist/translations/index.d.ts +1 -1
  78. package/dist/translations/index.d.ts.map +1 -1
  79. package/dist/translations/locales/cs.d.ts.map +1 -1
  80. package/dist/translations/locales/cs.js +6 -1
  81. package/dist/translations/locales/en.d.ts.map +1 -1
  82. package/dist/translations/locales/en.js +6 -1
  83. package/dist/translations/locales/sk.d.ts.map +1 -1
  84. package/dist/translations/locales/sk.js +6 -1
  85. package/dist/translations/types.d.ts +12 -0
  86. package/dist/translations/types.d.ts.map +1 -1
  87. package/dist/utils/cn.d.ts.map +1 -1
  88. package/dist/utils/cn.js +17 -9
  89. package/llms-full.md +38 -35
  90. package/llms.txt +10 -9
  91. package/package.json +171 -169
@@ -1,62 +1,75 @@
1
1
  import * as t from "react";
2
- import { cva as d } from "class-variance-authority";
3
- import { cn as p } from "../../utils/cn.js";
4
- const f = d(["text-inherit"], {
5
- variants: {
6
- size: {
7
- "7xl": "text-7xl leading-[120%] tracking-[-0.0347em]",
8
- "6xl": "text-6xl leading-[120%] tracking-[-0.03906em]",
9
- "5xl": "text-5xl leading-[120%] tracking-[-0.04464em]",
10
- "4xl": "text-4xl leading-[120%] tracking-[-0.03125em]",
11
- "3xl": "text-3xl leading-[120%] tracking-[-0.0375em]",
12
- "2xl": "text-2xl leading-[130%] tracking-[-0.03125em]",
13
- xl: "text-xl leading-[130%] tracking-[-0.02083em]",
14
- lg: "text-lg leading-[140%] tracking-[-0.0125em]",
15
- md: "text-md leading-[140%] tracking-[-0.01389em]",
16
- base: "text-sm leading-[140%] tracking-[-0.01562em]",
17
- sm: "text-xs leading-[140%] tracking-normal",
18
- caption: "text-2xs leading-[140%] tracking-normal",
19
- input: "text-input leading-[140%] tracking-normal"
20
- },
21
- weight: {
22
- light: "font-light",
23
- regular: "font-regular",
24
- medium: "font-medium",
25
- bold: "font-bold"
26
- },
27
- variant: {
28
- title: "font-heading",
29
- // Future proofing
30
- body: "font-text",
31
- // Future proofing
32
- paragraph: "font-text leading-[180%]",
33
- cta: "font-cta leading-[120%]"
34
- },
35
- uppercase: {
36
- true: "tracking-normal uppercase",
37
- false: ""
2
+ import { cva as p } from "class-variance-authority";
3
+ import { cn as f } from "../../utils/cn.js";
4
+ const u = p(
5
+ ["text-inherit", "decoration-solid decoration-1"],
6
+ {
7
+ variants: {
8
+ size: {
9
+ "7xl": "text-7xl leading-[120%] tracking-[-0.0347em]",
10
+ "6xl": "text-6xl leading-[120%] tracking-[-0.03906em]",
11
+ "5xl": "text-5xl leading-[120%] tracking-[-0.04464em]",
12
+ "4xl": "text-4xl leading-[120%] tracking-[-0.03125em]",
13
+ "3xl": "text-3xl leading-[120%] tracking-[-0.0375em]",
14
+ "2xl": "text-2xl leading-[130%] tracking-[-0.03125em]",
15
+ xl: "text-xl leading-[130%] tracking-[-0.02083em]",
16
+ lg: "text-lg leading-[140%] tracking-[-0.0125em]",
17
+ md: "text-md leading-[140%] tracking-[-0.01389em]",
18
+ base: "text-sm leading-[140%] tracking-[-0.01562em]",
19
+ sm: "text-xs leading-[140%] tracking-normal",
20
+ caption: "text-2xs leading-[140%] tracking-normal",
21
+ input: "text-input leading-[140%] tracking-normal"
22
+ },
23
+ weight: {
24
+ light: "font-light",
25
+ regular: "font-regular",
26
+ medium: "font-medium",
27
+ bold: "font-bold"
28
+ },
29
+ variant: {
30
+ title: "font-heading",
31
+ // Future proofing
32
+ body: "font-text",
33
+ // Future proofing
34
+ paragraph: "font-text leading-[180%]",
35
+ cta: "font-cta leading-[120%]"
36
+ },
37
+ uppercase: {
38
+ true: "tracking-normal uppercase",
39
+ false: ""
40
+ },
41
+ fixY: {
42
+ true: "fix-y-text",
43
+ false: ""
44
+ },
45
+ // The underline rendering spec (offset, skip-ink, position from-font)
46
+ // is underline-specific per the CSS spec but visibly shifts
47
+ // `line-through` in some browsers. We apply it by default so it takes
48
+ // effect whenever `text-decoration-line` adds an underline, and turn
49
+ // it off when the consumer opts into `line-through` rendering.
50
+ lineThrough: {
51
+ true: "line-through",
52
+ false: "underline-offset-[16%] [text-decoration-skip-ink:auto] [text-underline-position:from-font]"
53
+ }
38
54
  },
39
- fixY: {
40
- true: "fix-y-text",
41
- false: ""
42
- }
43
- },
44
- compoundVariants: [
45
- {
46
- variant: ["cta", "body"],
47
- size: ["sm", "caption", "input"],
48
- fixY: !0,
49
- class: "fix-y-text-1"
55
+ compoundVariants: [
56
+ {
57
+ variant: ["cta", "body"],
58
+ size: ["sm", "caption", "input"],
59
+ fixY: !0,
60
+ class: "fix-y-text-1"
61
+ }
62
+ ],
63
+ defaultVariants: {
64
+ variant: "body",
65
+ size: "base",
66
+ weight: "regular",
67
+ uppercase: !1,
68
+ fixY: !1,
69
+ lineThrough: !1
50
70
  }
51
- ],
52
- defaultVariants: {
53
- variant: "body",
54
- size: "base",
55
- weight: "regular",
56
- uppercase: !1,
57
- fixY: !1
58
71
  }
59
- }), u = t.forwardRef(
72
+ ), h = t.forwardRef(
60
73
  ({
61
74
  component: e,
62
75
  size: a,
@@ -64,35 +77,37 @@ const f = d(["text-inherit"], {
64
77
  weight: i,
65
78
  uppercase: r,
66
79
  fixY: l,
80
+ lineThrough: o,
67
81
  className: g,
68
82
  children: x,
69
- ...o
70
- }, m) => {
71
- const c = e ?? "p", s = {
72
- className: p(
73
- f({
83
+ ...s
84
+ }, c) => {
85
+ const m = e ?? "p", d = {
86
+ className: f(
87
+ u({
74
88
  size: a,
75
89
  variant: n,
76
90
  weight: i,
77
91
  uppercase: r,
78
92
  fixY: l,
93
+ lineThrough: o,
79
94
  className: g
80
95
  })
81
96
  ),
82
- ...o
97
+ ...s
83
98
  };
84
99
  return t.createElement(
85
- c,
100
+ m,
86
101
  {
87
- ...s,
88
- ref: m
102
+ ...d,
103
+ ref: c
89
104
  },
90
105
  x
91
106
  );
92
107
  }
93
108
  );
94
- u.displayName = "Typography";
109
+ h.displayName = "Typography";
95
110
  export {
96
- u as Typography,
97
- f as typographyVariants
111
+ h as Typography,
112
+ u as typographyVariants
98
113
  };
@@ -13,5 +13,6 @@ export declare const WeightVariations: Story;
13
13
  export declare const UppercaseExample: Story;
14
14
  export declare const VariantComparison: Story;
15
15
  export declare const RealWorldExample: Story;
16
+ export declare const Decorations: Story;
16
17
  export declare const Playground: Story;
17
18
  //# sourceMappingURL=Typography.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/Typography.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAA;AAgC/D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAgFjC,CAAA;AAED,eAAe,IAAI,CAAA;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAA;AAuCxC,eAAO,MAAM,OAAO,EAAE,KAkBrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAwEtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAsEtB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAuE3B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAsErB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAgC5B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAuC9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAyC9B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAwD/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KA4H9B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAkBxB,CAAA"}
1
+ {"version":3,"file":"Typography.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/Typography.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAA;AAgC/D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAwDjC,CAAA;AAED,eAAe,IAAI,CAAA;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAA;AAuCxC,eAAO,MAAM,OAAO,EAAE,KAkBrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAwEtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAsEtB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAuE3B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAsErB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAgC5B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAuC9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAyC9B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAwD/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KA4H9B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAsIzB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAkBxB,CAAA"}
@@ -0,0 +1,72 @@
1
+ import { AnchorHTMLAttributes } from 'react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { TypographyProps } from '../Typography';
4
+ export declare const typographyLinkVariants: (props?: ({
5
+ variant?: "default" | "danger" | "invertPrimary" | "invertSecondary" | null | undefined;
6
+ underline?: boolean | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ type InheritedTypographyProps = Pick<TypographyProps, 'size' | 'weight' | 'uppercase' | 'fixY'>;
9
+ /** Props for the TypographyLink component. */
10
+ export interface TypographyLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, keyof InheritedTypographyProps> {
11
+ /**
12
+ * Renders the single child as the root element via Radix `Slot`, merging
13
+ * TypographyLink's props, className, ref, and event handlers onto it. Use
14
+ * for polymorphic rendering — e.g. a Next.js `Link`, a react-router `Link`,
15
+ * or any anchor-like component — while keeping full TypographyLink styling.
16
+ *
17
+ * @default false
18
+ * @example
19
+ * <TypographyLink asChild>
20
+ * <Link href="/dashboard">Go to dashboard</Link>
21
+ * </TypographyLink>
22
+ */
23
+ asChild?: boolean;
24
+ /**
25
+ * Color treatment of the link. `default` uses brand tokens; `danger`
26
+ * uses destructive/error tokens; `invertPrimary` and `invertSecondary`
27
+ * are intended for use on dark or branded surfaces.
28
+ *
29
+ * @default 'default'
30
+ */
31
+ variant?: NonNullable<VariantProps<typeof typographyLinkVariants>['variant']>;
32
+ /**
33
+ * Shows the underline beneath the text. Uses native CSS `text-decoration`
34
+ * so the underline wraps correctly across multiple lines. When `false`,
35
+ * the underline fades in on hover and keyboard focus so the interactive
36
+ * affordance stays discoverable.
37
+ *
38
+ * @default true
39
+ */
40
+ underline?: boolean;
41
+ /**
42
+ * Marks the link as disabled. Sets `aria-disabled="true"` and disables
43
+ * pointer events; the `href` is preserved on the DOM for assistive tech.
44
+ * Use instead of removing `href` so the element stays a link semantically.
45
+ *
46
+ * @default false
47
+ */
48
+ disabled?: boolean;
49
+ /**
50
+ * Typography size scale applied to the link text.
51
+ * @see TypographyProps
52
+ */
53
+ size?: InheritedTypographyProps['size'];
54
+ /**
55
+ * Typography font weight applied to the link text.
56
+ * @see TypographyProps
57
+ */
58
+ weight?: InheritedTypographyProps['weight'];
59
+ /**
60
+ * Renders the link text in uppercase.
61
+ * @see TypographyProps
62
+ */
63
+ uppercase?: InheritedTypographyProps['uppercase'];
64
+ /**
65
+ * Applies the vertical-trim fix used by Typography for tighter alignment.
66
+ * @see TypographyProps
67
+ */
68
+ fixY?: InheritedTypographyProps['fixY'];
69
+ }
70
+ declare const TypographyLink: import('react').ForwardRefExoticComponent<TypographyLinkProps & import('react').RefAttributes<HTMLAnchorElement>>;
71
+ export { TypographyLink };
72
+ //# sourceMappingURL=TypographyLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypographyLink.d.ts","sourceRoot":"","sources":["../../../src/components/TypographyLink/TypographyLink.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EAK1B,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,KAAK,YAAY,EAAO,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAEhE,eAAO,MAAM,sBAAsB;;;8EAsDlC,CAAA;AAED,KAAK,wBAAwB,GAAG,IAAI,CAClC,eAAe,EACf,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CACzC,CAAA;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,MAAM,wBAAwB,CAC/B;IACD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7E;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;IAC3C;;;OAGG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAA;IACjD;;;OAGG;IACH,IAAI,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAA;CACxC;AAED,QAAA,MAAM,cAAc,mHAiDnB,CAAA;AAGD,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,103 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as h, isValidElement as b, cloneElement as g } from "react";
3
+ import { Slot as k } from "@radix-ui/react-slot";
4
+ import { cva as x } from "class-variance-authority";
5
+ import { cn as w } from "../../utils/cn.js";
6
+ import { Typography as L } from "../Typography/Typography.js";
7
+ const T = x(
8
+ [
9
+ "cursor-pointer transition-colors duration-200 ease-out",
10
+ // Underline spec from Figma — applied as base utilities so they take
11
+ // effect whenever the `underline` variant adds `text-decoration-line`.
12
+ // The 16% offset scales with the current font size.
13
+ "decoration-solid decoration-1 underline-offset-[16%]",
14
+ "[text-decoration-skip-ink:auto] [text-underline-position:from-font]",
15
+ "focus-visible:outline-none",
16
+ "aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed"
17
+ ],
18
+ {
19
+ variants: {
20
+ variant: {
21
+ default: [
22
+ "text-comp-typography-link-brand-def",
23
+ "hover:text-comp-typography-link-brand-hover",
24
+ "focus-visible-default focus-visible:text-comp-typography-link-brand-focused",
25
+ "aria-disabled:text-comp-typography-link-brand-disabled"
26
+ ],
27
+ danger: [
28
+ "text-comp-typography-link-danger-def",
29
+ "hover:text-comp-typography-link-danger-hover",
30
+ "focus-visible-default focus-visible:text-comp-typography-link-danger-focused",
31
+ "aria-disabled:text-comp-typography-link-danger-disabled"
32
+ ],
33
+ invertPrimary: [
34
+ "text-comp-typography-link-invert-primary-def",
35
+ "hover:text-comp-typography-link-invert-primary-hover",
36
+ "focus-visible-default focus-visible:text-comp-typography-link-invert-primary-focused",
37
+ "aria-disabled:text-comp-typography-link-invert-primary-disabled"
38
+ ],
39
+ invertSecondary: [
40
+ "text-comp-typography-link-invert-secondary-def",
41
+ "hover:text-comp-typography-link-invert-secondary-hover",
42
+ "focus-visible-default focus-visible:text-comp-typography-link-invert-secondary-focused",
43
+ "aria-disabled:text-comp-typography-link-invert-secondary-disabled"
44
+ ]
45
+ },
46
+ underline: {
47
+ true: "underline",
48
+ // The underline is always declared but starts transparent and
49
+ // fades in on hover / keyboard focus. We animate
50
+ // text-decoration-color (which `transition-colors` covers)
51
+ // because text-decoration-line itself is not animatable.
52
+ false: "underline decoration-transparent hover:decoration-current focus-visible:decoration-current"
53
+ }
54
+ },
55
+ defaultVariants: {
56
+ variant: "default",
57
+ underline: !0
58
+ }
59
+ }
60
+ ), V = h(
61
+ ({
62
+ className: i,
63
+ asChild: r = !1,
64
+ variant: a,
65
+ underline: n,
66
+ disabled: p = !1,
67
+ size: d,
68
+ weight: s,
69
+ uppercase: l,
70
+ fixY: c,
71
+ children: e,
72
+ ...y
73
+ }, f) => {
74
+ const m = r ? k : "a", o = (v) => /* @__PURE__ */ t(
75
+ L,
76
+ {
77
+ component: "span",
78
+ size: d,
79
+ weight: s,
80
+ uppercase: l,
81
+ fixY: c,
82
+ children: v
83
+ }
84
+ ), u = r && b(e) ? g(e, void 0, o(e.props.children)) : o(e);
85
+ return /* @__PURE__ */ t(
86
+ m,
87
+ {
88
+ ref: f,
89
+ "aria-disabled": p || void 0,
90
+ className: w(
91
+ T({ variant: a, underline: n, className: i })
92
+ ),
93
+ ...y,
94
+ children: u
95
+ }
96
+ );
97
+ }
98
+ );
99
+ V.displayName = "TypographyLink";
100
+ export {
101
+ V as TypographyLink,
102
+ T as typographyLinkVariants
103
+ };
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { TypographyLink } from './TypographyLink';
3
+ declare const meta: Meta<typeof TypographyLink>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof TypographyLink>;
6
+ export declare const Default: Story;
7
+ export declare const AllStates: Story;
8
+ export declare const Sizes: Story;
9
+ export declare const MultilineUnderline: Story;
10
+ export declare const Disabled: Story;
11
+ export declare const AsChildExample: Story;
12
+ //# sourceMappingURL=TypographyLink.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypographyLink.stories.d.ts","sourceRoot":"","sources":["../../../src/components/TypographyLink/TypographyLink.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,cAAc,EAA4B,MAAM,kBAAkB,CAAA;AAyB3E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAsErC,CAAA;AAED,eAAe,IAAI,CAAA;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAA;AAI5C,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAA;AAgDD,eAAO,MAAM,SAAS,EAAE,KA8BvB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KA6BnB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAoDhC,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAuB5B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './TypographyLink';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TypographyLink/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,198 @@
1
+ import { TypographyLinkProps } from '../TypographyLink';
2
+ import * as React from 'react';
3
+ /**
4
+ * Props for the UniversalFooter root component.
5
+ *
6
+ * Renders a `<footer>` landmark with the dark surface background and an
7
+ * inner content container whose width steps with the breakpoint scale
8
+ * (matching the project-wide `Container` pattern). Children compose the
9
+ * footer's vertical sections — typically a [[UniversalFooterTop]] row, a
10
+ * [[UniversalFooterSections]] block, a [[UniversalFooterBottom]] row, and
11
+ * a [[UniversalFooterCopyright]] line, each separated by
12
+ * [[UniversalFooterSeparator]] rules.
13
+ */
14
+ export interface UniversalFooterProps extends React.ComponentProps<'footer'> {
15
+ /**
16
+ * Classes appended to the inner content container that controls the
17
+ * stepped responsive width and centering. Use to override or extend
18
+ * the defaults — for example to pin the footer content to a different
19
+ * max width than the rest of the page. Whatever you pass wins via
20
+ * Tailwind's source-order merge.
21
+ */
22
+ contentClassName?: string;
23
+ }
24
+ declare const UniversalFooter: React.ForwardRefExoticComponent<Omit<UniversalFooterProps, "ref"> & React.RefAttributes<HTMLElement>>;
25
+ /** Props for the [[UniversalFooterBody]] wrapper around top/sections/bottom. */
26
+ export type UniversalFooterBodyProps = React.ComponentProps<'div'>;
27
+ declare const UniversalFooterBody: {
28
+ ({ className, ...props }: UniversalFooterBodyProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ };
31
+ /** Props for the [[UniversalFooterTop]] row that pairs the brand logo with social links. */
32
+ export type UniversalFooterTopProps = React.ComponentProps<'div'>;
33
+ declare const UniversalFooterTop: {
34
+ ({ className, ...props }: UniversalFooterTopProps): import("react/jsx-runtime").JSX.Element;
35
+ displayName: string;
36
+ };
37
+ /**
38
+ * Props for [[UniversalFooterLogo]] — a sized container for a consumer-
39
+ * supplied logo (a Next.js `Image`, an SVG component, or any other React
40
+ * node). Size the wrapper via token-backed Tailwind utilities on
41
+ * `className` (e.g. `className="h-7 w-auto"`) so dimensions stay in sync
42
+ * with the design system instead of inline styles.
43
+ */
44
+ export type UniversalFooterLogoProps = React.ComponentProps<'div'>;
45
+ declare const UniversalFooterLogo: {
46
+ ({ className, ...props }: UniversalFooterLogoProps): import("react/jsx-runtime").JSX.Element;
47
+ displayName: string;
48
+ };
49
+ /** Props for the [[UniversalFooterSocialList]] container of social-link buttons. */
50
+ export type UniversalFooterSocialListProps = React.ComponentProps<'ul'>;
51
+ declare const UniversalFooterSocialList: {
52
+ ({ className, ...props }: UniversalFooterSocialListProps): import("react/jsx-runtime").JSX.Element;
53
+ displayName: string;
54
+ };
55
+ /**
56
+ * Props for [[UniversalFooterSocialLink]] — a circular brand-filled icon
57
+ * button rendered inside a list item for use in [[UniversalFooterSocialList]].
58
+ * Pass the brand icon (e.g. `<Facebook />`, `<Linkedin />`) as children;
59
+ * sizing is handled internally.
60
+ */
61
+ export interface UniversalFooterSocialLinkProps extends React.ComponentProps<'a'> {
62
+ /**
63
+ * Accessible label for the icon-only link. Required — screen readers
64
+ * have no other text to read for these buttons.
65
+ */
66
+ 'aria-label': string;
67
+ }
68
+ declare const UniversalFooterSocialLink: React.ForwardRefExoticComponent<Omit<UniversalFooterSocialLinkProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
69
+ /**
70
+ * Props for the [[UniversalFooterSeparator]] horizontal rule. Thin divider
71
+ * painted with the secondary stroke token on the dark surface — used between
72
+ * the top row and the sections, and between the sections and the bottom row.
73
+ */
74
+ export type UniversalFooterSeparatorProps = React.ComponentProps<'hr'>;
75
+ declare const UniversalFooterSeparator: {
76
+ ({ className, ...props }: UniversalFooterSeparatorProps): import("react/jsx-runtime").JSX.Element;
77
+ displayName: string;
78
+ };
79
+ /** Props for the [[UniversalFooterSections]] responsive container. */
80
+ export type UniversalFooterSectionsProps = React.ComponentProps<'div'>;
81
+ /**
82
+ * Lays out section children responsively:
83
+ * - `lg` (≥1024px): horizontal row, sections justified between.
84
+ * - `md` (≥768px): 2-column grid; the **first** section spans both rows
85
+ * (left column) while the remaining sections stack in the right column.
86
+ * This matches the design-system tablet pattern where the primary section
87
+ * (typically the long category list) occupies the full left column.
88
+ * - mobile (<768px): single column, sections stacked.
89
+ *
90
+ * Kept as a plain `<div>` because the responsive layout flips between
91
+ * `display: flex` and `display: grid` — Flex can't represent grid mode.
92
+ */
93
+ declare const UniversalFooterSections: {
94
+ ({ className, ...props }: UniversalFooterSectionsProps): import("react/jsx-runtime").JSX.Element;
95
+ displayName: string;
96
+ };
97
+ /**
98
+ * Props for [[UniversalFooterSection]] — wraps a heading with a vertical
99
+ * list of links (or other content). Pass link content as children, usually
100
+ * [[UniversalFooterLink]] items but any node is accepted (e.g. an inline
101
+ * modal trigger, an [[UniversalFooterAppBadges]] group).
102
+ */
103
+ export interface UniversalFooterSectionProps extends React.ComponentProps<'div'> {
104
+ /**
105
+ * Heading text rendered above the section's content. Wrapped in
106
+ * `Typography` with medium weight on the invert (white) color.
107
+ */
108
+ heading: React.ReactNode;
109
+ /**
110
+ * Splits child items into N visual columns at `lg` (desktop). Below `lg`
111
+ * the items collapse into a single vertical list. The split is done by
112
+ * dividing children evenly in source order — pass items in the order you
113
+ * want them to read top-to-bottom, left-to-right.
114
+ *
115
+ * @default 1
116
+ */
117
+ columns?: 1 | 2 | 3;
118
+ }
119
+ declare const UniversalFooterSection: {
120
+ ({ className, heading, columns, children, ...props }: UniversalFooterSectionProps): import("react/jsx-runtime").JSX.Element;
121
+ displayName: string;
122
+ };
123
+ /**
124
+ * Props for [[UniversalFooterLink]] — wraps [[TypographyLink]] with footer
125
+ * defaults: `invertSecondary` color for dark-surface body links, no resting
126
+ * underline, and `size="base"`. Override any of those via the underlying
127
+ * `TypographyLink` props.
128
+ */
129
+ export type UniversalFooterLinkProps = TypographyLinkProps;
130
+ declare const UniversalFooterLink: React.ForwardRefExoticComponent<TypographyLinkProps & React.RefAttributes<HTMLAnchorElement>>;
131
+ /**
132
+ * Props for [[UniversalFooterContactList]] — tighter vertical rhythm than
133
+ * the standard section list, matching the design `gap-md` (12px) spacing
134
+ * used for phone + email contact rows.
135
+ */
136
+ export type UniversalFooterContactListProps = React.ComponentProps<'div'>;
137
+ declare const UniversalFooterContactList: {
138
+ ({ className, ...props }: UniversalFooterContactListProps): import("react/jsx-runtime").JSX.Element;
139
+ displayName: string;
140
+ };
141
+ /**
142
+ * Props for [[UniversalFooterAppBadges]] — horizontal row of app-store /
143
+ * google-play badge links. The consumer supplies the actual badge artwork;
144
+ * wrap each badge in an `<a>` with `href` and an `aria-label` so screen-
145
+ * reader users get a destination cue.
146
+ */
147
+ export type UniversalFooterAppBadgesProps = React.ComponentProps<'div'>;
148
+ declare const UniversalFooterAppBadges: {
149
+ ({ className, ...props }: UniversalFooterAppBadgesProps): import("react/jsx-runtime").JSX.Element;
150
+ displayName: string;
151
+ };
152
+ /** Props for the [[UniversalFooterBottom]] row that pairs meta blocks like the language switcher and an employer link. */
153
+ export type UniversalFooterBottomProps = React.ComponentProps<'div'>;
154
+ declare const UniversalFooterBottom: {
155
+ ({ className, ...props }: UniversalFooterBottomProps): import("react/jsx-runtime").JSX.Element;
156
+ displayName: string;
157
+ };
158
+ /**
159
+ * Props for [[UniversalFooterBottomGroup]] — two-row stack with a small
160
+ * muted label above the content. Used for the language-switcher block on
161
+ * the left and the employer / portal link on the right of the bottom row.
162
+ */
163
+ export interface UniversalFooterBottomGroupProps extends React.ComponentProps<'div'> {
164
+ /** Muted label rendered above the content (e.g. "Language", "Are you an employer?"). */
165
+ label?: React.ReactNode;
166
+ /**
167
+ * Horizontal alignment of the group within the bottom row at `md`+.
168
+ * Below `md` both groups stack and align to the start regardless.
169
+ *
170
+ * @default 'start'
171
+ */
172
+ align?: 'start' | 'end';
173
+ /**
174
+ * Typography size of the label. Defaults to `sm` (14px from `text/xs`)
175
+ * for the language label and should be set to `base` (16px) for the
176
+ * employer label per Figma.
177
+ *
178
+ * @default 'sm'
179
+ */
180
+ labelSize?: 'sm' | 'base';
181
+ }
182
+ declare const UniversalFooterBottomGroup: {
183
+ ({ className, label, align, labelSize, children, ...props }: UniversalFooterBottomGroupProps): import("react/jsx-runtime").JSX.Element;
184
+ displayName: string;
185
+ };
186
+ /**
187
+ * Props for [[UniversalFooterCopyright]] — centered, muted (40% opacity)
188
+ * small text rendered as the last item of the footer. Wrap any
189
+ * copyright / company text; the consumer supplies the year and legal
190
+ * identifiers.
191
+ */
192
+ export type UniversalFooterCopyrightProps = React.ComponentProps<'p'>;
193
+ declare const UniversalFooterCopyright: {
194
+ ({ className, ...props }: UniversalFooterCopyrightProps): import("react/jsx-runtime").JSX.Element;
195
+ displayName: string;
196
+ };
197
+ export { UniversalFooter, UniversalFooterBody, UniversalFooterTop, UniversalFooterLogo, UniversalFooterSocialList, UniversalFooterSocialLink, UniversalFooterSeparator, UniversalFooterSections, UniversalFooterSection, UniversalFooterLink, UniversalFooterContactList, UniversalFooterAppBadges, UniversalFooterBottom, UniversalFooterBottomGroup, UniversalFooterCopyright, };
198
+ //# sourceMappingURL=UniversalFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniversalFooter.d.ts","sourceRoot":"","sources":["../../../src/components/UniversalFooter/UniversalFooter.tsx"],"names":[],"mappings":"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"}