highsoft-ui 1.0.156 → 1.0.158

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 (139) hide show
  1. package/CLAUDE.md +85 -0
  2. package/dist/{BrowserFrame-z7X66igu.js → BrowserFrame-BUneieY7.js} +3 -3
  3. package/dist/{Button-CSYKfiMM.js → Button-CjxX21gW.js} +1 -1
  4. package/dist/{ButtonGroup-CRCpF1mq.js → ButtonGroup-DanFXfXA.js} +29 -18
  5. package/dist/{Checkbox-Ve_qaCW-.js → Checkbox-BkxibNey.js} +1 -1
  6. package/dist/ClientLogo-Dj7K48YL.js +104 -0
  7. package/dist/{CodeBlock-D5HGMQXp.js → CodeBlock-Ds79AzEX.js} +5 -5
  8. package/dist/{CookiePolicyModal-Jajmg0gS.js → CookiePolicyModal-9p_OGcpB.js} +2 -2
  9. package/dist/{CopyCode-B5XYKD2s.js → CopyCode-90z6BfV0.js} +3 -3
  10. package/dist/{Dropdown-C7cw9SiY.js → Dropdown-D3AnhPYO.js} +1 -1
  11. package/dist/{Footer-Bjccchkp.js → Footer-DDj7XStD.js} +8 -8
  12. package/dist/{FooterBottom-B4_6jDJ2.js → FooterBottom-BV9xJbRt.js} +1 -1
  13. package/dist/{FooterHelp-BODC1jYl.js → FooterHelp-CnoweyYC.js} +1 -1
  14. package/dist/{FooterLinks-0FQT6GGH.js → FooterLinks-BCr9brR3.js} +2 -2
  15. package/dist/{Header-BIEG3fWi.js → Header-Dsji2l2m.js} +27 -27
  16. package/dist/{InputGrouped-Iz23ILtZ.js → InputGrouped-BUJKBG0D.js} +3 -3
  17. package/dist/{Label-arNNMKJi.js → Label-DgPVoDMR.js} +1 -1
  18. package/dist/LogoCarousel-DEvwvCfr.js +131 -0
  19. package/dist/{NewsletterSignup-BwSHFFxv.js → NewsletterSignup-Bk0SU1NB.js} +2 -2
  20. package/dist/{Notification-Coii3TQE.js → Notification-D0ow_x0-.js} +3 -3
  21. package/dist/{PrefPanel-DHotymro.js → PrefPanel-B4MyeLGu.js} +11 -11
  22. package/dist/{RoadmapDetails-CtyefwR6.js → RoadmapDetails-CATh63TE.js} +6 -6
  23. package/dist/{Search-Dd2PjPua.js → Search-T4R860vH.js} +11 -11
  24. package/dist/{SearchDropdown-FVBycbSo.js → SearchDropdown-BetSrTgQ.js} +1 -1
  25. package/dist/{VideoCover-bWmOXfeg.js → VideoCover-B59ykzJi.js} +1 -1
  26. package/dist/{VideoPlayer-cCv7zyDb.js → VideoPlayer-ChyiZ0sK.js} +7 -7
  27. package/dist/{VideoPlayerModal-DXKK98WG.js → VideoPlayerModal-D6ze_Evt.js} +2 -2
  28. package/dist/{YoutubeModal-B-D2bQLx.js → YoutubeModal-CXwczXZa.js} +2 -2
  29. package/dist/components/BrowserFrame/index.js +1 -1
  30. package/dist/components/Button/index.js +1 -1
  31. package/dist/components/ButtonGroup/index.js +1 -1
  32. package/dist/components/Checkbox/index.js +1 -1
  33. package/dist/components/ClientLogo/dimensions.js +133 -0
  34. package/dist/components/ClientLogo/icons/mono/Alteryx.js +18 -0
  35. package/dist/components/ClientLogo/icons/mono/BankOfAmerica.js +18 -0
  36. package/dist/components/ClientLogo/icons/mono/BnpParibas.js +21 -0
  37. package/dist/components/ClientLogo/icons/mono/BoldBi.js +34 -0
  38. package/dist/components/ClientLogo/icons/mono/Citi.js +21 -0
  39. package/dist/components/ClientLogo/icons/mono/Crowdstrike.js +44 -0
  40. package/dist/components/ClientLogo/icons/mono/Cvs.js +16 -0
  41. package/dist/components/ClientLogo/icons/mono/Drivetrain.js +30 -0
  42. package/dist/components/ClientLogo/icons/mono/Epa.js +16 -0
  43. package/dist/components/ClientLogo/icons/mono/Fnz.js +16 -0
  44. package/dist/components/ClientLogo/icons/mono/Gainsight.js +16 -0
  45. package/dist/components/ClientLogo/icons/mono/GiGavenVidere.js +26 -0
  46. package/dist/components/ClientLogo/icons/mono/Github.js +21 -0
  47. package/dist/components/ClientLogo/icons/mono/Google.js +16 -0
  48. package/dist/components/ClientLogo/icons/mono/Horus.js +19 -0
  49. package/dist/components/ClientLogo/icons/mono/Icbc.js +23 -0
  50. package/dist/components/ClientLogo/icons/mono/JohnsonJohnson.js +16 -0
  51. package/dist/components/ClientLogo/icons/mono/Medtronic.js +16 -0
  52. package/dist/components/ClientLogo/icons/mono/Morningstar.js +19 -0
  53. package/dist/components/ClientLogo/icons/mono/Mufg.js +16 -0
  54. package/dist/components/ClientLogo/icons/mono/Netflix.js +16 -0
  55. package/dist/components/ClientLogo/icons/mono/Paypal.js +30 -0
  56. package/dist/components/ClientLogo/icons/mono/Pfizer.js +19 -0
  57. package/dist/components/ClientLogo/icons/mono/Salesforce.js +21 -0
  58. package/dist/components/ClientLogo/icons/mono/Samsung.js +16 -0
  59. package/dist/components/ClientLogo/icons/mono/Sap.js +16 -0
  60. package/dist/components/ClientLogo/icons/mono/Testmo.js +54 -0
  61. package/dist/components/ClientLogo/icons/mono/ThomsonReuters.js +16 -0
  62. package/dist/components/ClientLogo/icons/mono/Verizon.js +16 -0
  63. package/dist/components/ClientLogo/icons/mono/Visa.js +16 -0
  64. package/dist/components/ClientLogo/icons/mono/Who.js +26 -0
  65. package/dist/components/ClientLogo/icons/mono/X.js +16 -0
  66. package/dist/components/ClientLogo/icons/mono/index.js +70 -0
  67. package/dist/components/ClientLogo/index.js +2 -0
  68. package/dist/components/CodeBlock/index.js +1 -1
  69. package/dist/components/CopyCode/index.js +1 -1
  70. package/dist/components/Dropdown/index.js +1 -1
  71. package/dist/components/Footer/CookiePolicyModal.js +1 -1
  72. package/dist/components/Footer/FooterBottom.js +1 -1
  73. package/dist/components/Footer/FooterHelp.js +1 -1
  74. package/dist/components/Footer/FooterLinks.js +1 -1
  75. package/dist/components/Footer/YoutubeModal.js +1 -1
  76. package/dist/components/Footer/index.js +1 -1
  77. package/dist/components/Header/index.js +1 -1
  78. package/dist/components/InputGrouped/index.js +1 -1
  79. package/dist/components/Label/index.js +1 -1
  80. package/dist/components/LogoCarousel/index.js +2 -0
  81. package/dist/components/Modal/ModalContactFooter.js +2 -2
  82. package/dist/components/Modal/index.js +2 -2
  83. package/dist/components/NewsletterSignup/index.js +1 -1
  84. package/dist/components/Notification/index.js +1 -1
  85. package/dist/components/PrefPanel/index.js +1 -1
  86. package/dist/components/RoadmapDetails/index.js +1 -1
  87. package/dist/components/Search/index.js +1 -1
  88. package/dist/components/SearchDropdown/index.js +1 -1
  89. package/dist/components/Sidebar/NavDisclosure.js +1 -1
  90. package/dist/components/Sidebar/NavGroup.js +1 -1
  91. package/dist/components/Sidebar/Sidebar.js +2 -2
  92. package/dist/components/Sidebar/SidebarLayout.js +1 -1
  93. package/dist/components/VideoCover/index.js +1 -1
  94. package/dist/components/VideoPlayer/VideoPlayerModal.js +1 -1
  95. package/dist/components/VideoPlayer/index.js +1 -1
  96. package/dist/{create-element-E8WYUYfK.js → create-element-Bftz4UxU.js} +1 -1
  97. package/dist/{esm-bFdwg2E8.js → esm-LCYnNVvi.js} +57 -23
  98. package/dist/highsoft-ui.css +1 -1
  99. package/dist/lib/components/ButtonGroup/index.d.ts +24 -6
  100. package/dist/lib/components/ClientLogo/dimensions.d.ts +131 -0
  101. package/dist/lib/components/ClientLogo/icons/mono/Alteryx.d.ts +2 -0
  102. package/dist/lib/components/ClientLogo/icons/mono/BankOfAmerica.d.ts +2 -0
  103. package/dist/lib/components/ClientLogo/icons/mono/BnpParibas.d.ts +2 -0
  104. package/dist/lib/components/ClientLogo/icons/mono/BoldBi.d.ts +2 -0
  105. package/dist/lib/components/ClientLogo/icons/mono/Citi.d.ts +2 -0
  106. package/dist/lib/components/ClientLogo/icons/mono/Crowdstrike.d.ts +2 -0
  107. package/dist/lib/components/ClientLogo/icons/mono/Cvs.d.ts +2 -0
  108. package/dist/lib/components/ClientLogo/icons/mono/Drivetrain.d.ts +2 -0
  109. package/dist/lib/components/ClientLogo/icons/mono/Epa.d.ts +2 -0
  110. package/dist/lib/components/ClientLogo/icons/mono/Fnz.d.ts +2 -0
  111. package/dist/lib/components/ClientLogo/icons/mono/Gainsight.d.ts +2 -0
  112. package/dist/lib/components/ClientLogo/icons/mono/GiGavenVidere.d.ts +2 -0
  113. package/dist/lib/components/ClientLogo/icons/mono/Github.d.ts +2 -0
  114. package/dist/lib/components/ClientLogo/icons/mono/Google.d.ts +2 -0
  115. package/dist/lib/components/ClientLogo/icons/mono/Horus.d.ts +2 -0
  116. package/dist/lib/components/ClientLogo/icons/mono/Icbc.d.ts +2 -0
  117. package/dist/lib/components/ClientLogo/icons/mono/JohnsonJohnson.d.ts +2 -0
  118. package/dist/lib/components/ClientLogo/icons/mono/Medtronic.d.ts +2 -0
  119. package/dist/lib/components/ClientLogo/icons/mono/Morningstar.d.ts +2 -0
  120. package/dist/lib/components/ClientLogo/icons/mono/Mufg.d.ts +2 -0
  121. package/dist/lib/components/ClientLogo/icons/mono/Netflix.d.ts +2 -0
  122. package/dist/lib/components/ClientLogo/icons/mono/Paypal.d.ts +2 -0
  123. package/dist/lib/components/ClientLogo/icons/mono/Pfizer.d.ts +2 -0
  124. package/dist/lib/components/ClientLogo/icons/mono/Salesforce.d.ts +2 -0
  125. package/dist/lib/components/ClientLogo/icons/mono/Samsung.d.ts +2 -0
  126. package/dist/lib/components/ClientLogo/icons/mono/Sap.d.ts +2 -0
  127. package/dist/lib/components/ClientLogo/icons/mono/Testmo.d.ts +2 -0
  128. package/dist/lib/components/ClientLogo/icons/mono/ThomsonReuters.d.ts +2 -0
  129. package/dist/lib/components/ClientLogo/icons/mono/Verizon.d.ts +2 -0
  130. package/dist/lib/components/ClientLogo/icons/mono/Visa.d.ts +2 -0
  131. package/dist/lib/components/ClientLogo/icons/mono/Who.d.ts +2 -0
  132. package/dist/lib/components/ClientLogo/icons/mono/X.d.ts +2 -0
  133. package/dist/lib/components/ClientLogo/icons/mono/index.d.ts +32 -0
  134. package/dist/lib/components/ClientLogo/index.d.ts +54 -0
  135. package/dist/lib/components/LogoCarousel/index.d.ts +60 -0
  136. package/dist/lib/main.d.ts +4 -0
  137. package/dist/main.js +44 -42
  138. package/dist/{prism-light-BTlrcsMq.js → prism-light-CqF2CLQS.js} +1 -1
  139. package/package.json +2 -1
@@ -3,14 +3,19 @@ import { ButtonProps, ButtonSize } from '../Button';
3
3
  export interface ButtonGroupItem {
4
4
  /** Stable item value */
5
5
  value: string;
6
- /** Visible label */
7
- label: ReactNode;
6
+ /**
7
+ * Visible label. Optional for icon-only items (e.g. prev/next pagers) —
8
+ * give those an accessible name via `buttonProps['aria-label']`.
9
+ */
10
+ label?: ReactNode;
8
11
  /** Optional leading icon, following the same usage pattern as Button */
9
12
  iconLeft?: ReactNode;
13
+ /** Optional trailing icon, following the same usage pattern as Button */
14
+ iconRight?: ReactNode;
10
15
  /** Disable a single item */
11
16
  disabled?: boolean;
12
17
  /** Extra button props, for example href/target */
13
- buttonProps?: Omit<ButtonProps, 'children' | 'iconLeft' | 'variant' | 'size' | 'aria-pressed'>;
18
+ buttonProps?: Omit<ButtonProps, 'children' | 'iconLeft' | 'iconRight' | 'variant' | 'size' | 'aria-pressed'>;
14
19
  }
15
20
  export interface ButtonGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onChange'> {
16
21
  /** Button items */
@@ -19,8 +24,18 @@ export interface ButtonGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, '
19
24
  value?: string;
20
25
  /** Initial selected value for uncontrolled usage */
21
26
  defaultValue?: string;
22
- /** Called when selection changes. Returns the selected value and item. */
27
+ /**
28
+ * Called when selection changes. Returns the selected value and item.
29
+ * With `selectable={false}` there is no selection, so it fires on every
30
+ * enabled item click instead.
31
+ */
23
32
  onChange?: (value: string, item: ButtonGroupItem) => void;
33
+ /**
34
+ * Set to `false` for an action group — e.g. a prev/next pager — where no
35
+ * item is the current choice: nothing renders selected, `aria-pressed` is
36
+ * omitted, and `onChange` fires on every enabled item click.
37
+ */
38
+ selectable?: boolean;
24
39
  /** Shared button size */
25
40
  size?: ButtonSize;
26
41
  /**
@@ -29,9 +44,12 @@ export interface ButtonGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, '
29
44
  * - `default` — on cards and panels (`--HS-surface-ui-background-0`).
30
45
  * - `alt` — a darker surface, on the page (`--HS-common-background`), where the
31
46
  * default surface would blend in (in dark mode it matches the page exactly).
47
+ * - `transparent` — no fill, just the transparent Button's hairline border.
48
+ * Use it when the group sits next to `variant="transparent"` buttons so the
49
+ * two read as siblings.
32
50
  */
33
- variant?: 'default' | 'alt';
51
+ variant?: 'default' | 'alt' | 'transparent';
34
52
  /** Stretch items to fill the available width */
35
53
  fullWidth?: boolean;
36
54
  }
37
- export declare function ButtonGroup({ items, value, defaultValue, onChange, size, variant, fullWidth, className, ...props }: ButtonGroupProps): import("react").JSX.Element;
55
+ export declare function ButtonGroup({ items, value, defaultValue, onChange, selectable, size, variant, fullWidth, className, ...props }: ButtonGroupProps): import("react").JSX.Element;
@@ -0,0 +1,131 @@
1
+ export declare const clientLogoBaseHeight = 109;
2
+ export declare const clientLogoDimensions: {
3
+ readonly alteryx: {
4
+ readonly width: 358;
5
+ readonly height: 109;
6
+ };
7
+ readonly 'bank-of-america': {
8
+ readonly width: 1085;
9
+ readonly height: 109;
10
+ };
11
+ readonly 'bnp-paribas': {
12
+ readonly width: 524;
13
+ readonly height: 109;
14
+ };
15
+ readonly 'bold-bi': {
16
+ readonly width: 400;
17
+ readonly height: 134;
18
+ };
19
+ readonly citi: {
20
+ readonly width: 169;
21
+ readonly height: 109;
22
+ };
23
+ readonly crowdstrike: {
24
+ readonly width: 614;
25
+ readonly height: 109;
26
+ };
27
+ readonly cvs: {
28
+ readonly width: 838;
29
+ readonly height: 109;
30
+ };
31
+ readonly drivetrain: {
32
+ readonly width: 526;
33
+ readonly height: 109;
34
+ };
35
+ readonly epa: {
36
+ readonly width: 458;
37
+ readonly height: 109;
38
+ };
39
+ readonly fnz: {
40
+ readonly width: 317;
41
+ readonly height: 109;
42
+ };
43
+ readonly gainsight: {
44
+ readonly width: 400;
45
+ readonly height: 109;
46
+ };
47
+ readonly 'gi-gaven-videre': {
48
+ readonly width: 302;
49
+ readonly height: 118;
50
+ };
51
+ readonly github: {
52
+ readonly width: 439;
53
+ readonly height: 109;
54
+ };
55
+ readonly google: {
56
+ readonly width: 331;
57
+ readonly height: 109;
58
+ };
59
+ readonly horus: {
60
+ readonly width: 459;
61
+ readonly height: 134;
62
+ };
63
+ readonly icbc: {
64
+ readonly width: 330;
65
+ readonly height: 109;
66
+ };
67
+ readonly 'johnson-johnson': {
68
+ readonly width: 1166;
69
+ readonly height: 109;
70
+ };
71
+ readonly medtronic: {
72
+ readonly width: 661;
73
+ readonly height: 109;
74
+ };
75
+ readonly morningstar: {
76
+ readonly width: 478;
77
+ readonly height: 109;
78
+ };
79
+ readonly mufg: {
80
+ readonly width: 463;
81
+ readonly height: 109;
82
+ };
83
+ readonly netflix: {
84
+ readonly width: 400;
85
+ readonly height: 109;
86
+ };
87
+ readonly paypal: {
88
+ readonly width: 445;
89
+ readonly height: 109;
90
+ };
91
+ readonly pfizer: {
92
+ readonly width: 267;
93
+ readonly height: 109;
94
+ };
95
+ readonly salesforce: {
96
+ readonly width: 155;
97
+ readonly height: 109;
98
+ };
99
+ readonly samsung: {
100
+ readonly width: 400;
101
+ readonly height: 109;
102
+ };
103
+ readonly sap: {
104
+ readonly width: 220;
105
+ readonly height: 109;
106
+ };
107
+ readonly testmo: {
108
+ readonly width: 400;
109
+ readonly height: 118;
110
+ };
111
+ readonly 'thomson-reuters': {
112
+ readonly width: 736;
113
+ readonly height: 109;
114
+ };
115
+ readonly verizon: {
116
+ readonly width: 488;
117
+ readonly height: 109;
118
+ };
119
+ readonly visa: {
120
+ readonly width: 336;
121
+ readonly height: 109;
122
+ };
123
+ readonly who: {
124
+ readonly width: 355;
125
+ readonly height: 109;
126
+ };
127
+ readonly x: {
128
+ readonly width: 109;
129
+ readonly height: 109;
130
+ };
131
+ };
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Alteryx(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function BankOfAmerica(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function BnpParibas(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function BoldBi(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Citi(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Crowdstrike(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Cvs(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Drivetrain(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Epa(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Fnz(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Gainsight(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function GiGavenVidere(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Github(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Google(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Horus(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Icbc(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function JohnsonJohnson(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Medtronic(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Morningstar(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Mufg(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Netflix(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Paypal(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Pfizer(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Salesforce(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Samsung(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Sap(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Testmo(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function ThomsonReuters(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Verizon(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Visa(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function Who(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export default function X(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,32 @@
1
+ export { default as Alteryx } from './Alteryx';
2
+ export { default as BankOfAmerica } from './BankOfAmerica';
3
+ export { default as BnpParibas } from './BnpParibas';
4
+ export { default as BoldBi } from './BoldBi';
5
+ export { default as Citi } from './Citi';
6
+ export { default as Crowdstrike } from './Crowdstrike';
7
+ export { default as Cvs } from './Cvs';
8
+ export { default as Drivetrain } from './Drivetrain';
9
+ export { default as Epa } from './Epa';
10
+ export { default as Fnz } from './Fnz';
11
+ export { default as Gainsight } from './Gainsight';
12
+ export { default as GiGavenVidere } from './GiGavenVidere';
13
+ export { default as Github } from './Github';
14
+ export { default as Google } from './Google';
15
+ export { default as Horus } from './Horus';
16
+ export { default as Icbc } from './Icbc';
17
+ export { default as JohnsonJohnson } from './JohnsonJohnson';
18
+ export { default as Medtronic } from './Medtronic';
19
+ export { default as Morningstar } from './Morningstar';
20
+ export { default as Mufg } from './Mufg';
21
+ export { default as Netflix } from './Netflix';
22
+ export { default as Paypal } from './Paypal';
23
+ export { default as Pfizer } from './Pfizer';
24
+ export { default as Salesforce } from './Salesforce';
25
+ export { default as Samsung } from './Samsung';
26
+ export { default as Sap } from './Sap';
27
+ export { default as Testmo } from './Testmo';
28
+ export { default as ThomsonReuters } from './ThomsonReuters';
29
+ export { default as Verizon } from './Verizon';
30
+ export { default as Visa } from './Visa';
31
+ export { default as Who } from './Who';
32
+ export { default as X } from './X';
@@ -0,0 +1,54 @@
1
+ import { SVGProps } from 'react';
2
+ /**
3
+ * Available client logos.
4
+ *
5
+ * The Figma exports share a baseline height (with deliberate per-logo
6
+ * exceptions), so rendering a set of them with one `size` produces a wall
7
+ * where every logo keeps its Figma-tuned relative size.
8
+ *
9
+ * @see ClientLogo.stories.tsx for visual examples
10
+ */
11
+ export type ClientLogoName = 'netflix' | 'samsung' | 'sap' | 'thomson-reuters' | 'verizon' | 'x' | 'visa' | 'github' | 'google' | 'bank-of-america' | 'fnz' | 'bnp-paribas' | 'mufg' | 'icbc' | 'citi' | 'johnson-johnson' | 'medtronic' | 'cvs' | 'pfizer' | 'who' | 'paypal' | 'salesforce' | 'crowdstrike' | 'alteryx' | 'gainsight' | 'bold-bi' | 'horus' | 'morningstar' | 'epa' | 'testmo' | 'gi-gaven-videre' | 'drivetrain';
12
+ export interface ClientLogoProps extends Omit<SVGProps<SVGSVGElement>, 'width' | 'height'> {
13
+ /** Company name */
14
+ logo: ClientLogoName;
15
+ /**
16
+ * Visual size in px — the rendered height of a baseline logo. Every logo
17
+ * is scaled by the same factor, so a wall keeps the relative sizes tuned
18
+ * in Figma (a logo exported taller than the baseline renders bigger on
19
+ * purpose). Default `32`.
20
+ */
21
+ size?: number;
22
+ /**
23
+ * Explicit width — number (px) or any CSS length. Height follows the
24
+ * logo's aspect ratio. Overrides `size`.
25
+ */
26
+ width?: number | string;
27
+ /**
28
+ * Explicit height — number (px) or any CSS length. When set without
29
+ * `width`, width follows the aspect ratio instead. Overrides `size`.
30
+ */
31
+ height?: number | string;
32
+ /** Additional class name */
33
+ className?: string;
34
+ }
35
+ /**
36
+ * Human-readable company names, keyed by logo name — for accessible labels
37
+ * (e.g. the screen-reader list in LogoCarousel) and captions.
38
+ */
39
+ export declare const clientLogoLabels: Record<ClientLogoName, string>;
40
+ /**
41
+ * ClientLogo displays customer/client brand logos in the semantic text
42
+ * tokens — `--HS-text-primary-default` for the mark, with
43
+ * `--HS-text-tertiary-default` as the secondary tone in duotone marks
44
+ * (PayPal) — so logos match the text hierarchy and remap in dark mode
45
+ * automatically. Color variants land once the Figma color exports are
46
+ * finished; the mono set is complete.
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * <ClientLogo logo="netflix" />
51
+ * <ClientLogo logo="visa" size={40} />
52
+ * ```
53
+ */
54
+ export declare function ClientLogo({ logo, size, width, height, className, style, ...props }: ClientLogoProps): import("react").JSX.Element | null;
@@ -0,0 +1,60 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { ClientLogoName } from '../ClientLogo';
3
+ export interface LogoCarouselProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
4
+ /** Logos to show, in order. Default: the full set. */
5
+ logos?: ClientLogoName[];
6
+ /** Visual logo size — forwarded to each `ClientLogo`. Default `28`. */
7
+ size?: number;
8
+ /** Gap between logos in px. Default `64`. */
9
+ gap?: number;
10
+ /**
11
+ * Scroll speed in px/s. The animation duration is derived from the
12
+ * measured content width, so the perceived speed stays the same
13
+ * regardless of how many logos are shown. Default `40`.
14
+ */
15
+ speed?: number;
16
+ /** Scroll direction. Default `'left'`. */
17
+ direction?: 'left' | 'right';
18
+ /**
19
+ * Ramp the animation down to a third of the speed while the pointer
20
+ * hovers the strip, and ramp back up on leave — full pausing belongs to
21
+ * the pause button. Default `false`.
22
+ */
23
+ slowOnHover?: boolean;
24
+ /** Width of the fade-out mask at each edge in px. Default `64`. */
25
+ fade?: number;
26
+ /** Accessible name for the region. Default `'Client logos'`. */
27
+ label?: string;
28
+ /** Visible label on the pause toggle while playing. Default `'Pause'`. */
29
+ pauseLabel?: string;
30
+ /** Visible label on the pause toggle while paused. Default `'Resume'`. */
31
+ resumeLabel?: string;
32
+ /**
33
+ * Reduced-motion mode: the strip renders static and horizontally
34
+ * scrollable instead of animating, and the pause control disappears.
35
+ * Defaults to the user's `prefers-reduced-motion` setting; pass a
36
+ * boolean to force either mode.
37
+ */
38
+ reducedMotion?: boolean;
39
+ }
40
+ /**
41
+ * LogoCarousel — an auto-scrolling "trusted by" strip of client logos with
42
+ * seamless looping, edge fades, and a pause toggle (WCAG 2.2.2).
43
+ *
44
+ * - The moving strip is purely decorative (`aria-hidden`); screen readers
45
+ * get a static list of company names instead, so nothing announces
46
+ * mid-motion and every company is always reachable.
47
+ * - Speed is specified in px/s and the duration derived from the measured
48
+ * content width — consistent pace at any logo count or viewport size.
49
+ * - The content is repeated only as many times as the viewport requires.
50
+ * - Scrolling pauses automatically while the strip is off-screen.
51
+ * - Under `prefers-reduced-motion` the strip renders static and
52
+ * horizontally scrollable — every logo stays reachable, nothing moves.
53
+ *
54
+ * @example
55
+ * ```tsx
56
+ * <LogoCarousel />
57
+ * <LogoCarousel logos={['netflix', 'visa', 'google']} speed={60} pauseOnHover />
58
+ * ```
59
+ */
60
+ export declare function LogoCarousel({ logos, size, gap, speed, direction, slowOnHover, fade, label, pauseLabel, resumeLabel, reducedMotion, className, style, ...props }: LogoCarouselProps): import("react").JSX.Element;
@@ -21,6 +21,10 @@ export { CopyCode } from './components/CopyCode';
21
21
  export type { CopyCodeProps } from './components/CopyCode';
22
22
  export { CodeBlock } from './components/CodeBlock';
23
23
  export type { CodeBlockProps } from './components/CodeBlock';
24
+ export { ClientLogo, clientLogoLabels } from './components/ClientLogo';
25
+ export type { ClientLogoProps, ClientLogoName } from './components/ClientLogo';
26
+ export { LogoCarousel } from './components/LogoCarousel';
27
+ export type { LogoCarouselProps } from './components/LogoCarousel';
24
28
  export { Icon } from './components/Icon';
25
29
  export { Link } from './components/Link';
26
30
  export { ProductIcon } from './components/ProductIcon';
package/dist/main.js CHANGED
@@ -1,46 +1,48 @@
1
1
  import { c as e, d as t, r as n, s as r, u as i } from "./utils-K9S_6_Eq.js";
2
2
  import { t as a } from "./Box-BZgeSeCV.js";
3
- import { t as o } from "./Button-CSYKfiMM.js";
4
- import { t as s } from "./BrowserFrame-z7X66igu.js";
5
- import { t as c } from "./CopyCode-B5XYKD2s.js";
3
+ import { t as o } from "./Button-CjxX21gW.js";
4
+ import { t as s } from "./BrowserFrame-BUneieY7.js";
5
+ import { t as c } from "./CopyCode-90z6BfV0.js";
6
6
  import { t as l } from "./FrameworkIcon-D7N3PjYr.js";
7
- import { t as u } from "./CodeBlock-D5HGMQXp.js";
8
- import { t as d } from "./Icon-VeXJMj8Q.js";
9
- import { t as f } from "./Link-CYR92_U0.js";
10
- import { t as p } from "./ProductIcon-CKtF7AWy.js";
11
- import { t as m } from "./ButtonGroup-CRCpF1mq.js";
12
- import { t as h } from "./InputSolo-DUdKtZjX.js";
13
- import { t as g } from "./SearchDropdown-FVBycbSo.js";
14
- import { i as _, n as v, r as y, t as b } from "./InputGrouped-Iz23ILtZ.js";
15
- import { t as x } from "./Container-BDssaLig.js";
16
- import { t as S } from "./DiscordInvite-CLYxexdH.js";
17
- import { t as C } from "./Heading-DNDHqYWO.js";
18
- import { t as w } from "./Typography-AvvBRu-u.js";
19
- import { t as T } from "./Logo-Bz0G2G-k.js";
20
- import { t as E } from "./NewsletterSignup-BwSHFFxv.js";
21
- import { n as D, r as O, t as k } from "./Dropdown-C7cw9SiY.js";
22
- import { t as A } from "./PrefPanel-DHotymro.js";
23
- import { n as j, t as M } from "./Label-arNNMKJi.js";
24
- import { t as N } from "./VideoCover-bWmOXfeg.js";
25
- import { t as P } from "./VideoPlayer-cCv7zyDb.js";
26
- import { t as F } from "./VideoPlayerModal-DXKK98WG.js";
27
- import { t as I } from "./Footer-Bjccchkp.js";
28
- import { n as L } from "./GPTInput-C0YG1990.js";
29
- import { t as R } from "./Notification-Coii3TQE.js";
30
- import { n as z, t as B } from "./Header-BIEG3fWi.js";
31
- import { t as V } from "./Tabs-BuDaPqdN.js";
32
- import { n as H, t as U } from "./RadioBox-o1Ssyj0s.js";
33
- import { n as W, t as G } from "./Checkbox-Ve_qaCW-.js";
34
- import { Modal as K } from "./components/Modal/index.js";
35
- import { t as q } from "./RoadmapDetails-CtyefwR6.js";
36
- import { ModalContactFooter as J } from "./components/Modal/ModalContactFooter.js";
37
- import { useOptionalSidebarLayout as Y, useSidebarLayout as X } from "./components/Sidebar/context.js";
38
- import { SidebarLayout as Z, SidebarMain as Q } from "./components/Sidebar/SidebarLayout.js";
39
- import { SidebarResizer as $ } from "./components/Sidebar/SidebarResizer.js";
40
- import { Sidebar as ee, SidebarBody as te, SidebarHeader as ne, SidebarSection as re } from "./components/Sidebar/Sidebar.js";
41
- import { NavItem as ie } from "./components/Sidebar/NavItem.js";
42
- import { NavGroup as ae } from "./components/Sidebar/NavGroup.js";
43
- import { NavDisclosure as oe } from "./components/Sidebar/NavDisclosure.js";
7
+ import { t as u } from "./CodeBlock-Ds79AzEX.js";
8
+ import { n as d, t as f } from "./ClientLogo-Dj7K48YL.js";
9
+ import { t as p } from "./LogoCarousel-DEvwvCfr.js";
10
+ import { t as m } from "./Icon-VeXJMj8Q.js";
11
+ import { t as h } from "./Link-CYR92_U0.js";
12
+ import { t as g } from "./ProductIcon-CKtF7AWy.js";
13
+ import { t as _ } from "./ButtonGroup-DanFXfXA.js";
14
+ import { t as v } from "./InputSolo-DUdKtZjX.js";
15
+ import { t as y } from "./SearchDropdown-BetSrTgQ.js";
16
+ import { i as b, n as x, r as S, t as C } from "./InputGrouped-BUJKBG0D.js";
17
+ import { t as w } from "./Container-BDssaLig.js";
18
+ import { t as T } from "./DiscordInvite-CLYxexdH.js";
19
+ import { t as E } from "./Heading-DNDHqYWO.js";
20
+ import { t as D } from "./Typography-AvvBRu-u.js";
21
+ import { t as O } from "./Logo-Bz0G2G-k.js";
22
+ import { t as k } from "./NewsletterSignup-Bk0SU1NB.js";
23
+ import { n as A, r as j, t as M } from "./Dropdown-D3AnhPYO.js";
24
+ import { t as N } from "./PrefPanel-B4MyeLGu.js";
25
+ import { n as P, t as F } from "./Label-DgPVoDMR.js";
26
+ import { t as I } from "./VideoCover-B59ykzJi.js";
27
+ import { t as L } from "./VideoPlayer-ChyiZ0sK.js";
28
+ import { t as R } from "./VideoPlayerModal-D6ze_Evt.js";
29
+ import { t as z } from "./Footer-DDj7XStD.js";
30
+ import { n as B } from "./GPTInput-C0YG1990.js";
31
+ import { t as V } from "./Notification-D0ow_x0-.js";
32
+ import { n as H, t as U } from "./Header-Dsji2l2m.js";
33
+ import { t as W } from "./Tabs-BuDaPqdN.js";
34
+ import { n as G, t as K } from "./RadioBox-o1Ssyj0s.js";
35
+ import { n as q, t as J } from "./Checkbox-BkxibNey.js";
36
+ import { Modal as Y } from "./components/Modal/index.js";
37
+ import { t as X } from "./RoadmapDetails-CATh63TE.js";
38
+ import { ModalContactFooter as Z } from "./components/Modal/ModalContactFooter.js";
39
+ import { useOptionalSidebarLayout as Q, useSidebarLayout as $ } from "./components/Sidebar/context.js";
40
+ import { SidebarLayout as ee, SidebarMain as te } from "./components/Sidebar/SidebarLayout.js";
41
+ import { SidebarResizer as ne } from "./components/Sidebar/SidebarResizer.js";
42
+ import { Sidebar as re, SidebarBody as ie, SidebarHeader as ae, SidebarSection as oe } from "./components/Sidebar/Sidebar.js";
43
+ import { NavItem as se } from "./components/Sidebar/NavItem.js";
44
+ import { NavGroup as ce } from "./components/Sidebar/NavGroup.js";
45
+ import { NavDisclosure as le } from "./components/Sidebar/NavDisclosure.js";
44
46
  import "./components/Sidebar/index.js";
45
- import { ThemeLoader as se, themeLoaderScript as ce } from "./components/ThemeLoader/index.js";
46
- export { a as Box, s as BrowserFrame, o as Button, m as ButtonGroup, G as Checkbox, W as CheckboxGroup, u as CodeBlock, x as Container, c as CopyCode, S as DiscordInvite, k as Dropdown, D as DropdownItem, O as DropdownSeparator, I as Footer, b as FormGroup, v as FormRow, l as FrameworkIcon, L as GPTInput, B as Header, C as Heading, d as Icon, y as InputGrouped, h as InputSolo, M as Label, f as Link, T as Logo, K as Modal, J as ModalContactFooter, oe as NavDisclosure, ae as NavGroup, ie as NavItem, j as NewTag, E as NewsletterSignup, R as Notification, A as PrefPanel, p as ProductIcon, U as RadioBox, H as RadioBoxGroup, q as RoadmapDetails, g as SearchDropdown, _ as SelectGrouped, ee as Sidebar, te as SidebarBody, ne as SidebarHeader, Z as SidebarLayout, Q as SidebarMain, $ as SidebarResizer, re as SidebarSection, z as SubHeader, V as Tabs, se as ThemeLoader, i as ThemeProvider, w as Typography, N as VideoCover, P as VideoPlayer, F as VideoPlayerModal, ce as themeLoaderScript, n as useClipboard, t as useNextTheme, Y as useOptionalSidebarLayout, X as useSidebarLayout, r as useSuccessFlash, e as useTheme };
47
+ import { ThemeLoader as ue, themeLoaderScript as de } from "./components/ThemeLoader/index.js";
48
+ export { a as Box, s as BrowserFrame, o as Button, _ as ButtonGroup, J as Checkbox, q as CheckboxGroup, f as ClientLogo, u as CodeBlock, w as Container, c as CopyCode, T as DiscordInvite, M as Dropdown, A as DropdownItem, j as DropdownSeparator, z as Footer, C as FormGroup, x as FormRow, l as FrameworkIcon, B as GPTInput, U as Header, E as Heading, m as Icon, S as InputGrouped, v as InputSolo, F as Label, h as Link, O as Logo, p as LogoCarousel, Y as Modal, Z as ModalContactFooter, le as NavDisclosure, ce as NavGroup, se as NavItem, P as NewTag, k as NewsletterSignup, V as Notification, N as PrefPanel, g as ProductIcon, K as RadioBox, G as RadioBoxGroup, X as RoadmapDetails, y as SearchDropdown, b as SelectGrouped, re as Sidebar, ie as SidebarBody, ae as SidebarHeader, ee as SidebarLayout, te as SidebarMain, ne as SidebarResizer, oe as SidebarSection, H as SubHeader, W as Tabs, ue as ThemeLoader, i as ThemeProvider, D as Typography, I as VideoCover, L as VideoPlayer, R as VideoPlayerModal, d as clientLogoLabels, de as themeLoaderScript, n as useClipboard, t as useNextTheme, Q as useOptionalSidebarLayout, $ as useSidebarLayout, r as useSuccessFlash, e as useTheme };
@@ -1,5 +1,5 @@
1
1
  import { r as e } from "./chunk-jwUa06l-.js";
2
- import { r as t, t as n } from "./create-element-E8WYUYfK.js";
2
+ import { r as t, t as n } from "./create-element-Bftz4UxU.js";
3
3
  import r from "react";
4
4
  //#region node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
5
5
  function i(e, t) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "highsoft-ui",
3
- "version": "1.0.156",
3
+ "version": "1.0.158",
4
4
  "description": "Highsoft UI",
5
5
  "type": "module",
6
6
  "repository": {
@@ -52,6 +52,7 @@
52
52
  "prebuild:app": "node scripts/extract-component-api.mjs",
53
53
  "icons": "node scripts/convert-product-icons.cjs",
54
54
  "icons:frameworks": "node scripts/convert-framework-icons.cjs",
55
+ "icons:clients": "node scripts/convert-client-logos.cjs",
55
56
  "stylelint": "npx stylelint '**/*.css'",
56
57
  "prepare": "husky && husky install"
57
58
  },