@phillips/seldon 1.173.0 → 1.175.0

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 (26) hide show
  1. package/dist/components/DescriptiveRadioButton/DescriptiveRadioButton.d.ts +34 -0
  2. package/dist/components/DescriptiveRadioButton/DescriptiveRadioButton.js +45 -0
  3. package/dist/components/DescriptiveRadioButton/DescriptiveRadioButton.stories.d.ts +10 -0
  4. package/dist/components/DescriptiveRadioButton/DescriptiveRadioButton.test.d.ts +1 -0
  5. package/dist/components/DescriptiveRadioButton/index.d.ts +1 -0
  6. package/dist/components/DescriptiveRadioButtonGroup/DescriptiveRadioButtonGroup.d.ts +42 -0
  7. package/dist/components/DescriptiveRadioButtonGroup/DescriptiveRadioButtonGroup.js +42 -0
  8. package/dist/components/DescriptiveRadioButtonGroup/DescriptiveRadioButtonGroup.stories.d.ts +21 -0
  9. package/dist/components/DescriptiveRadioButtonGroup/DescriptiveRadioButtonGroup.test.d.ts +1 -0
  10. package/dist/components/DescriptiveRadioButtonGroup/index.d.ts +1 -0
  11. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +43 -0
  12. package/dist/components/ProgressIndicator/ProgressIndicator.js +62 -0
  13. package/dist/components/ProgressIndicator/ProgressIndicator.stories.d.ts +52 -0
  14. package/dist/components/ProgressIndicator/ProgressIndicator.test.d.ts +1 -0
  15. package/dist/components/ProgressIndicator/index.d.ts +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.js +95 -89
  18. package/dist/node_modules/@radix-ui/react-progress/dist/index.js +84 -0
  19. package/dist/node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  20. package/dist/node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  21. package/dist/scss/componentStyles.scss +3 -0
  22. package/dist/scss/components/DescriptiveRadioButton/_descriptiveRadioButton.scss +52 -0
  23. package/dist/scss/components/DescriptiveRadioButtonGroup/_descriptiveRadioButtonGroup.scss +27 -0
  24. package/dist/scss/components/Input/_input.scss +0 -3
  25. package/dist/scss/components/ProgressIndicator/_progressIndicator.scss +59 -0
  26. package/package.json +2 -1
@@ -0,0 +1,34 @@
1
+ import { ComponentProps } from 'react';
2
+ export interface DescriptiveRadioButtonProps extends Omit<ComponentProps<'input'>, 'type'> {
3
+ /**
4
+ * Label for the radio button
5
+ */
6
+ labelText: string;
7
+ /**
8
+ * Optional description text for the radio button
9
+ */
10
+ description?: string;
11
+ /**
12
+ * Custom class name for the radio button input
13
+ */
14
+ className?: string;
15
+ /**
16
+ * Custom class name for the container element
17
+ */
18
+ containerClassName?: string;
19
+ /**
20
+ * Unique identifier for the radio button
21
+ */
22
+ id: string;
23
+ }
24
+ /**
25
+ * ## Overview
26
+ *
27
+ * Renders a styled radio button with a label and an optional description.
28
+ *
29
+ * [Figma Link](https://www.figma.com/design/kSxOhnqIhilZ9hIJd3bPgP/RW-Registration?node-id=2774-111402&m=dev)
30
+ *
31
+ * [Storybook Link](https://phillips-seldon.netlify.app/?path=/docs/components-descriptiveradiobutton--overview)
32
+ */
33
+ declare const DescriptiveRadioButton: import('react').ForwardRefExoticComponent<Omit<DescriptiveRadioButtonProps, "ref"> & import('react').RefAttributes<HTMLInputElement>>;
34
+ export default DescriptiveRadioButton;
@@ -0,0 +1,45 @@
1
+ import { jsxs as o, jsx as i } from "react/jsx-runtime";
2
+ import { forwardRef as u } from "react";
3
+ import { getCommonProps as N } from "../../utils/index.js";
4
+ import r from "../../node_modules/classnames/index.js";
5
+ import c from "../Text/Text.js";
6
+ import { TextVariants as n } from "../Text/types.js";
7
+ const $ = u(
8
+ ({ labelText: m, description: a, className: d, containerClassName: l, id: _, ...t }, p) => {
9
+ const { className: e, ...f } = N(
10
+ t,
11
+ "descriptive-radio-button"
12
+ ), s = _, h = a ? `${s}-desc` : void 0;
13
+ return /* @__PURE__ */ o(
14
+ "label",
15
+ {
16
+ htmlFor: s,
17
+ className: r(`${e}__container`, l, {
18
+ [`${e}__container--selected`]: t.checked
19
+ }),
20
+ children: [
21
+ /* @__PURE__ */ i(
22
+ "input",
23
+ {
24
+ ...f,
25
+ ...t,
26
+ ref: p,
27
+ id: s,
28
+ type: "radio",
29
+ className: r(`${e}__input`, d),
30
+ checked: t.checked
31
+ }
32
+ ),
33
+ /* @__PURE__ */ o("span", { className: `${e}__label-content`, children: [
34
+ /* @__PURE__ */ i(c, { variant: n.string1, className: `${e}__label-text`, children: m }),
35
+ a && /* @__PURE__ */ i(c, { variant: n.string2, id: h, className: `${e}__description`, children: a })
36
+ ] })
37
+ ]
38
+ }
39
+ );
40
+ }
41
+ );
42
+ $.displayName = "DescriptiveRadioButton";
43
+ export {
44
+ $ as default
45
+ };
@@ -0,0 +1,10 @@
1
+ declare const meta: {
2
+ title: string;
3
+ component: import('react').ForwardRefExoticComponent<Omit<import('./DescriptiveRadioButton').DescriptiveRadioButtonProps, "ref"> & import('react').RefAttributes<HTMLInputElement>>;
4
+ };
5
+ export default meta;
6
+ export declare const Playground: {
7
+ (): import("react/jsx-runtime").JSX.Element;
8
+ args: {};
9
+ argTypes: {};
10
+ };
@@ -0,0 +1 @@
1
+ export { default as DescriptiveRadioButton, type DescriptiveRadioButtonProps } from './DescriptiveRadioButton';
@@ -0,0 +1,42 @@
1
+ import { ComponentProps } from 'react';
2
+ import { DescriptiveRadioButtonProps } from '../DescriptiveRadioButton/DescriptiveRadioButton';
3
+ export interface DescriptiveRadioButtonGroupProps extends ComponentProps<'fieldset'> {
4
+ /**
5
+ * Legend for the fieldset
6
+ */
7
+ legendText: string;
8
+ /**
9
+ * Hide the legend visually
10
+ */
11
+ hideLegend?: boolean;
12
+ /**
13
+ * Array of options to render as DescriptiveRadioButton components
14
+ * Each option should include label, value, and optionally description and id
15
+ */
16
+ options: Array<Omit<DescriptiveRadioButtonProps, 'ref'>>;
17
+ /**
18
+ * Name attribute for the radio buttons
19
+ */
20
+ name: string;
21
+ /**
22
+ * Currently selected value
23
+ */
24
+ value: string;
25
+ /**
26
+ * Callback function when the selected value changes
27
+ */
28
+ onValueChange: (value: string) => void;
29
+ /**
30
+ * Custom class name for the fieldset
31
+ */
32
+ className?: string;
33
+ }
34
+ /**
35
+ * ## Overview
36
+ *
37
+ * [Figma Link](https://www.figma.com/design/kSxOhnqIhilZ9hIJd3bPgP/RW-Registration?node-id=2774-111402&m=dev)
38
+ *
39
+ * Renders a group of DescriptiveRadioButton components wrapped in a semantic fieldset.
40
+ */
41
+ declare const DescriptiveRadioButtonGroup: import('react').ForwardRefExoticComponent<Omit<DescriptiveRadioButtonGroupProps, "ref"> & import('react').RefAttributes<HTMLFieldSetElement>>;
42
+ export default DescriptiveRadioButtonGroup;
@@ -0,0 +1,42 @@
1
+ import { jsxs as f, jsx as i } from "react/jsx-runtime";
2
+ import { forwardRef as g } from "react";
3
+ import { getCommonProps as v } from "../../utils/index.js";
4
+ import b from "../../node_modules/classnames/index.js";
5
+ import h from "../DescriptiveRadioButton/DescriptiveRadioButton.js";
6
+ const N = g(
7
+ ({ legendText: t, hideLegend: d = !0, options: e, name: o, value: l, onValueChange: m, className: u, ...c }, n) => {
8
+ const { className: a, ...p } = v(c, "descriptive-radio-button-group");
9
+ if (!e || e.length === 0)
10
+ return null;
11
+ const s = `${o}_radio-button-group`;
12
+ return /* @__PURE__ */ f(
13
+ "fieldset",
14
+ {
15
+ ...p,
16
+ className: b(a, u),
17
+ ref: n,
18
+ name: o,
19
+ role: "radiogroup",
20
+ "aria-labelledby": s,
21
+ children: [
22
+ /* @__PURE__ */ i("legend", { id: s, className: d ? `${a}__sr-only` : void 0, children: t }),
23
+ e.map((r) => /* @__PURE__ */ i(
24
+ h,
25
+ {
26
+ ...r,
27
+ name: o,
28
+ checked: l === r.value,
29
+ onChange: () => m(String(r.value ?? "")),
30
+ id: r.id
31
+ },
32
+ r.id
33
+ ))
34
+ ]
35
+ }
36
+ );
37
+ }
38
+ );
39
+ N.displayName = "DescriptiveRadioButtonGroup";
40
+ export {
41
+ N as default
42
+ };
@@ -0,0 +1,21 @@
1
+ import { DescriptiveRadioButtonGroupProps } from './DescriptiveRadioButtonGroup';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import('react').ForwardRefExoticComponent<Omit<DescriptiveRadioButtonGroupProps, "ref"> & import('react').RefAttributes<HTMLFieldSetElement>>;
5
+ };
6
+ export default meta;
7
+ export declare const Playground: {
8
+ (props: DescriptiveRadioButtonGroupProps): import("react/jsx-runtime").JSX.Element;
9
+ args: {
10
+ legendText: string;
11
+ name: string;
12
+ value: string;
13
+ options: {
14
+ value: string;
15
+ labelText: string;
16
+ description: string;
17
+ id: string;
18
+ }[];
19
+ };
20
+ argTypes: {};
21
+ };
@@ -0,0 +1 @@
1
+ export { default as DescriptiveRadioButtonGroup, type DescriptiveRadioButtonGroupProps, } from './DescriptiveRadioButtonGroup';
@@ -0,0 +1,43 @@
1
+ import { ComponentProps } from 'react';
2
+ import * as Progress from '@radix-ui/react-progress';
3
+ export interface ProgressIndicatorProps extends Progress.ProgressProps, ComponentProps<'div'> {
4
+ /**
5
+ * Total number of steps in the progress indicator.
6
+ */
7
+ totalSteps: number;
8
+ /**
9
+ * Current step number in the progress indicator.
10
+ */
11
+ currentStep: number;
12
+ /**
13
+ * Optional labels for each step in the progress indicator.
14
+ * If supplied, only visible on desktop breakpoints.
15
+ *
16
+ */
17
+ labels?: string[];
18
+ /**
19
+ * Optional class name for additional styling.
20
+ */
21
+ className?: string;
22
+ /**
23
+ * Aria label for the progress indicator.
24
+ */
25
+ progressIndicatorAriaLabel?: string;
26
+ /**
27
+ * Aria label for the completed icon.
28
+ */
29
+ completedIconAriaLabel?: string;
30
+ }
31
+ /**
32
+ * ## Overview
33
+ *
34
+ * This component provides a visual representation of a multi-step process.
35
+ *
36
+ *
37
+ * [Figma Link](https://www.figma.com/design/kSxOhnqIhilZ9hIJd3bPgP/RW-Registration?node-id=2996-50543&m=dev)
38
+ * [Figma Link 2](https://www.figma.com/design/kSxOhnqIhilZ9hIJd3bPgP/RW-Registration?node-id=2529-23889&m=dev)
39
+ *
40
+ * [Storybook Link](https://phillips-seldon.netlify.app/?path=/docs/components-progressindicator--overview)
41
+ */
42
+ declare const ProgressIndicator: import('react').ForwardRefExoticComponent<Omit<ProgressIndicatorProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
43
+ export default ProgressIndicator;
@@ -0,0 +1,62 @@
1
+ import { jsx as r, jsxs as m } from "react/jsx-runtime";
2
+ import { Root as v } from "../../node_modules/@radix-ui/react-progress/dist/index.js";
3
+ import { forwardRef as M, Fragment as P } from "react";
4
+ import { getCommonProps as $ } from "../../utils/index.js";
5
+ import d from "../../node_modules/classnames/index.js";
6
+ import C from "../Icon/Icon.js";
7
+ import { TextVariants as h } from "../Text/types.js";
8
+ import _ from "../Text/Text.js";
9
+ const I = M(
10
+ ({
11
+ totalSteps: c,
12
+ currentStep: f,
13
+ className: u,
14
+ progressIndicatorAriaLabel: p = "Progress Indicator",
15
+ completedIconAriaLabel: b = "Completed Icon",
16
+ ...e
17
+ }, g) => {
18
+ const { className: a, ...N } = $(e, "ProgressIndicator");
19
+ if (c <= 0) return null;
20
+ const s = Math.max(1, Math.min(10, Math.floor(c))), l = Math.max(1, Math.min(s, Math.floor(f)));
21
+ return /* @__PURE__ */ r("div", { ...N, className: d(a, u), ...e, ref: g, children: /* @__PURE__ */ r(v, { value: l, max: s, "aria-label": p, children: /* @__PURE__ */ r("div", { className: `${a}__steps`, children: Array.from({ length: s }).map((T, t) => {
22
+ const o = t + 1, i = l > o, n = l === o;
23
+ return /* @__PURE__ */ m(P, { children: [
24
+ /* @__PURE__ */ m(
25
+ "div",
26
+ {
27
+ className: `${a}__item`,
28
+ "aria-current": n ? "step" : void 0,
29
+ "data-testid": `progress-step-${o}`,
30
+ children: [
31
+ /* @__PURE__ */ r(
32
+ "span",
33
+ {
34
+ className: d(`${a}__circle`, {
35
+ [`${a}__circle--active`]: i,
36
+ [`${a}__circle--current`]: n
37
+ }),
38
+ children: i ? /* @__PURE__ */ r(
39
+ C,
40
+ {
41
+ icon: "Success",
42
+ "aria-label": b,
43
+ color: "currentColor",
44
+ width: 20,
45
+ height: 20
46
+ }
47
+ ) : /* @__PURE__ */ r(_, { variant: h.badge, children: o })
48
+ }
49
+ ),
50
+ e.labels && e.labels[t] && /* @__PURE__ */ r("span", { className: `${a}__label`, children: /* @__PURE__ */ r(_, { variant: h.string2, children: e.labels[t] }) })
51
+ ]
52
+ }
53
+ ),
54
+ t < s - 1 ? /* @__PURE__ */ r("div", { className: `${a}__connector`, "aria-hidden": "true" }) : null
55
+ ] }, e.labels ? e.labels[t] : t);
56
+ }) }) }) });
57
+ }
58
+ );
59
+ I.displayName = "ProgressIndicator";
60
+ export {
61
+ I as default
62
+ };
@@ -0,0 +1,52 @@
1
+ import { ProgressIndicatorProps } from './ProgressIndicator';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import('react').ForwardRefExoticComponent<Omit<ProgressIndicatorProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
5
+ };
6
+ export default meta;
7
+ export declare const Playground: {
8
+ (props: ProgressIndicatorProps): import("react/jsx-runtime").JSX.Element;
9
+ args: {
10
+ totalSteps: number;
11
+ currentStep: number;
12
+ };
13
+ argTypes: {
14
+ totalSteps: {
15
+ control: {
16
+ type: string;
17
+ min: number;
18
+ max: number;
19
+ };
20
+ };
21
+ currentStep: {
22
+ control: {
23
+ type: string;
24
+ min: number;
25
+ max: number;
26
+ };
27
+ };
28
+ };
29
+ };
30
+ export declare const WithLabels: {
31
+ (props: ProgressIndicatorProps): import("react/jsx-runtime").JSX.Element;
32
+ args: {
33
+ totalSteps: number;
34
+ currentStep: number;
35
+ };
36
+ argTypes: {
37
+ totalSteps: {
38
+ control: {
39
+ type: string;
40
+ min: number;
41
+ max: number;
42
+ };
43
+ };
44
+ currentStep: {
45
+ control: {
46
+ type: string;
47
+ min: number;
48
+ max: number;
49
+ };
50
+ };
51
+ };
52
+ };
@@ -0,0 +1 @@
1
+ export { default as ProgressIndicator, type ProgressIndicatorProps } from './ProgressIndicator';
package/dist/index.d.ts CHANGED
@@ -70,6 +70,7 @@ export * from './patterns/FiltersInline';
70
70
  export * from './patterns/SaleCard';
71
71
  export * from './patterns/SaleHeaderBanner';
72
72
  export * from './patterns/ViewingDetails';
73
+ export * from './components/ProgressIndicator';
73
74
  export { default as Footer, type FooterProps } from './site-furniture/Footer/Footer';
74
75
  export { default as Header, type HeaderProps } from './site-furniture/Header/Header';
75
76
  export * from './types/commonTypes';
@@ -89,3 +90,5 @@ export * from './patterns/BidSnapshot';
89
90
  export * from './patterns/FilterMenu';
90
91
  export * from './patterns/ObjectTile';
91
92
  export * from './utils/hooks';
93
+ export * from './components/DescriptiveRadioButton';
94
+ export * from './components/DescriptiveRadioButtonGroup';
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { PaddingTokens as a, SpacingTokens as f, defaultYear as s, emailValidation as l, encodeURLSearchParams as d, findChildrenExcludingTypes as m, findChildrenOfType as p, focusElementById as u, generatePaddingClassName as i, getCommonProps as x, noOp as n, px as g, useNormalizedInputProps as c } from "./utils/index.js";
2
2
  import { default as C } from "./pages/Page.js";
3
- import { SSRMediaQuery as P, ssrMediaQueryStyle as B } from "./providers/SeldonProvider/utils.js";
4
- import { usePendingState as I } from "./utils/hooks.js";
5
- import { AuctionStatus as V, LotStatus as b, SupportedLanguages as y } from "./types/commonTypes.js";
6
- import { default as k } from "./components/Button/Button.js";
7
- import { ButtonVariants as F } from "./components/Button/types.js";
8
- import { default as D } from "./components/IconButton/IconButton.js";
3
+ import { SSRMediaQuery as B, ssrMediaQueryStyle as P } from "./providers/SeldonProvider/utils.js";
4
+ import { usePendingState as A } from "./utils/hooks.js";
5
+ import { AuctionStatus as V, LotStatus as b, SupportedLanguages as v } from "./types/commonTypes.js";
6
+ import { default as h } from "./components/Button/Button.js";
7
+ import { ButtonVariants as w } from "./components/Button/types.js";
8
+ import { default as F } from "./components/IconButton/IconButton.js";
9
9
  import { default as M } from "./components/Accordion/Accordion.js";
10
10
  import { default as E } from "./components/Accordion/AccordionItem.js";
11
- import { AccordionItemVariant as U, AccordionVariants as O } from "./components/Accordion/types.js";
11
+ import { AccordionItemVariant as R, AccordionVariants as U } from "./components/Accordion/types.js";
12
12
  import { default as Q } from "./components/Breadcrumb/Breadcrumb.js";
13
13
  import "react/jsx-runtime";
14
14
  import "./node_modules/classnames/index.js";
@@ -27,17 +27,17 @@ import { default as ie } from "./components/Detail/Detail.js";
27
27
  import { default as ne } from "./components/Drawer/Drawer.js";
28
28
  import { default as ce } from "./components/Dropdown/Dropdown.js";
29
29
  import { default as Ce } from "./components/ErrorBoundary/ErrorBoundary.js";
30
- import { default as Pe } from "./components/Grid/Grid.js";
31
- import { default as Ae } from "./components/GridItem/GridItem.js";
30
+ import { default as Be } from "./components/Grid/Grid.js";
31
+ import { default as Ie } from "./components/GridItem/GridItem.js";
32
32
  import { GridItemAlign as Le } from "./components/GridItem/types.js";
33
33
  import { default as be } from "./components/Input/Input.js";
34
- import { default as he } from "./components/Link/Link.js";
35
- import { LinkVariants as we } from "./components/Link/types.js";
36
- import { default as ve } from "./components/LinkBlock/LinkBlock.js";
34
+ import { default as ye } from "./components/Link/Link.js";
35
+ import { LinkVariants as ke } from "./components/Link/types.js";
36
+ import { default as De } from "./components/LinkBlock/LinkBlock.js";
37
37
  import { default as He } from "./components/LinkList/LinkList.js";
38
38
  import { default as Ne } from "./components/Modal/Modal.js";
39
39
  import { default as Ge } from "./components/Navigation/Navigation.js";
40
- import { default as Oe } from "./components/Navigation/NavigationItem/NavigationItem.js";
40
+ import { default as Ue } from "./components/Navigation/NavigationItem/NavigationItem.js";
41
41
  import { default as Qe } from "./components/Navigation/NavigationItemTrigger/NavigationItemTrigger.js";
42
42
  import { default as ze } from "./components/Navigation/NavigationList/NavigationList.js";
43
43
  import { default as Ye } from "./components/Pagination/Pagination.js";
@@ -53,17 +53,17 @@ import { default as pt } from "./components/Tabs/TabsContent.js";
53
53
  import { Tag as it, default as xt } from "./components/Tags/Tags.js";
54
54
  import { TextAlignments as gt, TextVariants as ct } from "./components/Text/types.js";
55
55
  import { default as Ct } from "./components/Text/Text.js";
56
- import { TextSymbolVariants as Pt } from "./components/TextSymbol/types.js";
57
- import { default as At } from "./components/TextSymbol/TextSymbol.js";
56
+ import { TextSymbolVariants as Bt } from "./components/TextSymbol/types.js";
57
+ import { default as It } from "./components/TextSymbol/TextSymbol.js";
58
58
  import { default as Lt } from "./components/Video/Video.js";
59
59
  import { default as bt } from "./patterns/DetailList/DetailList.js";
60
- import { DetailListAlignment as ht } from "./patterns/DetailList/types.js";
61
- import { default as wt } from "./patterns/FavoritesCollectionTile/FavoritesCollectionTile.js";
62
- import { default as vt } from "./patterns/HeroBanner/HeroBanner.js";
60
+ import { DetailListAlignment as yt } from "./patterns/DetailList/types.js";
61
+ import { default as kt } from "./patterns/FavoritesCollectionTile/FavoritesCollectionTile.js";
62
+ import { default as Dt } from "./patterns/HeroBanner/HeroBanner.js";
63
63
  import { default as Ht } from "./patterns/LanguageSelector/LanguageSelector.js";
64
64
  import { default as Nt } from "./patterns/SaleHeaderBanner/SaleHeaderBanner.js";
65
65
  import { default as Gt } from "./patterns/SaleHeaderBanner/SaleHeaderBrowseAuctions.js";
66
- import { default as Ot } from "./patterns/Social/Social.js";
66
+ import { default as Ut } from "./patterns/Social/Social.js";
67
67
  import { default as Qt } from "./patterns/Subscribe/Subscribe.js";
68
68
  import { SubscriptionState as zt } from "./patterns/Subscribe/types.js";
69
69
  import { AuthState as Yt } from "./patterns/UserManagement/types.js";
@@ -79,49 +79,52 @@ import { default as uo } from "./components/PageContentWrapper/PageContentWrappe
79
79
  import { default as xo } from "./components/PhoneNumberPicker/PhoneNumberPicker.js";
80
80
  import { default as go } from "./patterns/FiltersInline/FiltersInline.js";
81
81
  import { FilterButtonIconType as So, FilterButtonType as Co } from "./patterns/FiltersInline/types.js";
82
- import { default as Po } from "./patterns/SaleCard/SaleCard.js";
83
- import { SaleCardActions as Ao } from "./patterns/SaleCard/SaleCardActions.js";
82
+ import { default as Bo } from "./patterns/SaleCard/SaleCard.js";
83
+ import { SaleCardActions as Io } from "./patterns/SaleCard/SaleCardActions.js";
84
84
  import { SaleCardVariants as Lo } from "./patterns/SaleCard/types.js";
85
85
  import { default as bo } from "./patterns/ViewingDetails/ViewingDetails.js";
86
- import { default as ho } from "./site-furniture/Footer/Footer.js";
87
- import { default as wo } from "./site-furniture/Header/Header.js";
88
- import { default as vo } from "./components/AddToCalendar/AddToCalendar.js";
89
- import { default as Ho } from "./components/Article/Article.js";
90
- import { default as No } from "./components/Countdown/Countdown.js";
91
- import { CountdownVariants as Go } from "./components/Countdown/types.js";
92
- import { default as Oo } from "./components/Divider/Divider.js";
93
- import { default as Qo } from "./components/FavoritingTileButton/FavoritingTileButton.js";
94
- import { default as zo } from "./components/Filter/Filter.js";
95
- import { default as Yo } from "./components/Filter/FilterInput.js";
96
- import { default as qo } from "./components/Filter/FilterHeader.js";
97
- import { default as Ko } from "./components/Pictogram/Pictogram.js";
98
- import { default as _o } from "./components/TextArea/TextArea.js";
99
- import { default as er } from "./components/Toast/Toast.js";
100
- import { ToastProvider as or } from "./components/Toast/ToastContextProvider.js";
101
- import { useToast as ar } from "./components/Toast/useToast.js";
102
- import { default as sr } from "./patterns/AccountPageHeader/AccountPageHeader.js";
103
- import { default as dr } from "./patterns/BidSnapshot/BidSnapshot.js";
104
- import { default as pr } from "./patterns/BidSnapshot/BidMessage.js";
105
- import { BidMessageVariants as ir, BidStatusEnum as xr } from "./patterns/BidSnapshot/types.js";
106
- import { default as gr } from "./patterns/FilterMenu/FilterMenu.js";
107
- import { default as Sr } from "./patterns/ObjectTile/ObjectTile.js";
86
+ import { default as yo } from "./components/ProgressIndicator/ProgressIndicator.js";
87
+ import { default as ko } from "./site-furniture/Footer/Footer.js";
88
+ import { default as Do } from "./site-furniture/Header/Header.js";
89
+ import { default as Ho } from "./components/AddToCalendar/AddToCalendar.js";
90
+ import { default as No } from "./components/Article/Article.js";
91
+ import { default as Go } from "./components/Countdown/Countdown.js";
92
+ import { CountdownVariants as Uo } from "./components/Countdown/types.js";
93
+ import { default as Qo } from "./components/Divider/Divider.js";
94
+ import { default as zo } from "./components/FavoritingTileButton/FavoritingTileButton.js";
95
+ import { default as Yo } from "./components/Filter/Filter.js";
96
+ import { default as qo } from "./components/Filter/FilterInput.js";
97
+ import { default as Ko } from "./components/Filter/FilterHeader.js";
98
+ import { default as _o } from "./components/Pictogram/Pictogram.js";
99
+ import { default as er } from "./components/TextArea/TextArea.js";
100
+ import { default as or } from "./components/Toast/Toast.js";
101
+ import { ToastProvider as ar } from "./components/Toast/ToastContextProvider.js";
102
+ import { useToast as sr } from "./components/Toast/useToast.js";
103
+ import { default as dr } from "./patterns/AccountPageHeader/AccountPageHeader.js";
104
+ import { default as pr } from "./patterns/BidSnapshot/BidSnapshot.js";
105
+ import { default as ir } from "./patterns/BidSnapshot/BidMessage.js";
106
+ import { BidMessageVariants as nr, BidStatusEnum as gr } from "./patterns/BidSnapshot/types.js";
107
+ import { default as Sr } from "./patterns/FilterMenu/FilterMenu.js";
108
+ import { default as Tr } from "./patterns/ObjectTile/ObjectTile.js";
109
+ import { default as Pr } from "./components/DescriptiveRadioButton/DescriptiveRadioButton.js";
110
+ import { default as Ar } from "./components/DescriptiveRadioButtonGroup/DescriptiveRadioButtonGroup.js";
108
111
  export {
109
112
  M as Accordion,
110
113
  E as AccordionItem,
111
- U as AccordionItemVariant,
112
- O as AccordionVariants,
113
- sr as AccountPageHeader,
114
- vo as AddToCalendar,
115
- Ho as Article,
114
+ R as AccordionItemVariant,
115
+ U as AccordionVariants,
116
+ dr as AccountPageHeader,
117
+ Ho as AddToCalendar,
118
+ No as Article,
116
119
  V as AuctionStatus,
117
120
  Yt as AuthState,
118
- pr as BidMessage,
119
- ir as BidMessageVariants,
120
- dr as BidSnapshot,
121
- xr as BidStatusEnum,
121
+ ir as BidMessage,
122
+ nr as BidMessageVariants,
123
+ pr as BidSnapshot,
124
+ gr as BidStatusEnum,
122
125
  Q as Breadcrumb,
123
- k as Button,
124
- F as ButtonVariants,
126
+ h as Button,
127
+ w as ButtonVariants,
125
128
  Y as Carousel,
126
129
  q as CarouselArrows,
127
130
  K as CarouselContent,
@@ -134,58 +137,61 @@ export {
134
137
  ao as ComposedModal,
135
138
  de as ContentPeek,
136
139
  pe as ContentPeekHeightUnits,
137
- No as Countdown,
138
- Go as CountdownVariants,
140
+ Go as Countdown,
141
+ Uo as CountdownVariants,
142
+ Pr as DescriptiveRadioButton,
143
+ Ar as DescriptiveRadioButtonGroup,
139
144
  ie as Detail,
140
145
  bt as DetailList,
141
- ht as DetailListAlignment,
142
- Oo as Divider,
146
+ yt as DetailListAlignment,
147
+ Qo as Divider,
143
148
  ne as Drawer,
144
149
  ce as Dropdown,
145
150
  Ce as ErrorBoundary,
146
151
  so as ExitGateCard,
147
- wt as FavoritesCollectionTile,
148
- Qo as FavoritingTileButton,
149
- zo as Filter,
152
+ kt as FavoritesCollectionTile,
153
+ zo as FavoritingTileButton,
154
+ Yo as Filter,
150
155
  So as FilterButtonIconType,
151
156
  Co as FilterButtonType,
152
- qo as FilterHeader,
153
- Yo as FilterInput,
154
- gr as FilterMenu,
157
+ Ko as FilterHeader,
158
+ qo as FilterInput,
159
+ Sr as FilterMenu,
155
160
  go as FiltersInline,
156
- ho as Footer,
157
- Pe as Grid,
158
- Ae as GridItem,
161
+ ko as Footer,
162
+ Be as Grid,
163
+ Ie as GridItem,
159
164
  Le as GridItemAlign,
160
- wo as Header,
161
- vt as HeroBanner,
165
+ Do as Header,
166
+ Dt as HeroBanner,
162
167
  z as Icon,
163
- D as IconButton,
168
+ F as IconButton,
164
169
  be as Input,
165
170
  Ht as LanguageSelector,
166
- he as Link,
167
- ve as LinkBlock,
171
+ ye as Link,
172
+ De as LinkBlock,
168
173
  He as LinkList,
169
- we as LinkVariants,
174
+ ke as LinkVariants,
170
175
  mo as Loader,
171
176
  b as LotStatus,
172
177
  Ne as Modal,
173
178
  Ge as Navigation,
174
- Oe as NavigationItem,
179
+ Ue as NavigationItem,
175
180
  Qe as NavigationItemTrigger,
176
181
  ze as NavigationList,
177
- Sr as ObjectTile,
182
+ Tr as ObjectTile,
178
183
  a as PaddingTokens,
179
184
  C as Page,
180
185
  uo as PageContentWrapper,
181
186
  Ye as Pagination,
182
187
  xo as PhoneNumberPicker,
183
- Ko as Pictogram,
188
+ _o as Pictogram,
184
189
  qe as PinchZoom,
190
+ yo as ProgressIndicator,
185
191
  Ke as Row,
186
- P as SSRMediaQuery,
187
- Po as SaleCard,
188
- Ao as SaleCardActions,
192
+ B as SSRMediaQuery,
193
+ Bo as SaleCard,
194
+ Io as SaleCardActions,
189
195
  Lo as SaleCardVariants,
190
196
  Nt as SaleHeaderBanner,
191
197
  Gt as SaleHeaderBrowseAuctions,
@@ -194,25 +200,25 @@ export {
194
200
  eo as SeldonProvider,
195
201
  ot as Select,
196
202
  at as SelectVariants,
197
- Ot as Social,
203
+ Ut as Social,
198
204
  f as SpacingTokens,
199
205
  st as SplitPanel,
200
206
  Kt as StatefulViewingsList,
201
207
  Qt as Subscribe,
202
208
  zt as SubscriptionState,
203
- y as SupportedLanguages,
209
+ v as SupportedLanguages,
204
210
  dt as TabsContainer,
205
211
  pt as TabsContent,
206
212
  it as Tag,
207
213
  xt as TagsList,
208
214
  Ct as Text,
209
215
  gt as TextAlignments,
210
- _o as TextArea,
211
- Pt as TextSymbolVariants,
212
- At as TextSymbols,
216
+ er as TextArea,
217
+ Bt as TextSymbolVariants,
218
+ It as TextSymbols,
213
219
  ct as TextVariants,
214
- er as Toast,
215
- or as ToastProvider,
220
+ or as Toast,
221
+ ar as ToastProvider,
216
222
  qt as UserManagement,
217
223
  Lt as Video,
218
224
  bo as ViewingDetails,
@@ -227,8 +233,8 @@ export {
227
233
  x as getCommonProps,
228
234
  n as noOp,
229
235
  g as px,
230
- B as ssrMediaQueryStyle,
236
+ P as ssrMediaQueryStyle,
231
237
  c as useNormalizedInputProps,
232
- I as usePendingState,
233
- ar as useToast
238
+ A as usePendingState,
239
+ sr as useToast
234
240
  };
@@ -0,0 +1,84 @@
1
+ import * as m from "react";
2
+ import { createContextScope as $ } from "../../react-context/dist/index.js";
3
+ import { Primitive as c } from "../node_modules/@radix-ui/react-primitive/dist/index.js";
4
+ import { jsx as l } from "react/jsx-runtime";
5
+ var u = "Progress", d = 100, [I, C] = $(u), [h, R] = I(u), f = m.forwardRef(
6
+ (r, e) => {
7
+ const {
8
+ __scopeProgress: i,
9
+ value: o = null,
10
+ max: a,
11
+ getValueLabel: x = E,
12
+ ...N
13
+ } = r;
14
+ (a || a === 0) && !v(a) && console.error(M(`${a}`, "Progress"));
15
+ const t = v(a) ? a : d;
16
+ o !== null && !p(o, t) && console.error(V(`${o}`, "Progress"));
17
+ const s = p(o, t) ? o : null, b = n(s) ? x(s, t) : void 0;
18
+ return /* @__PURE__ */ l(h, { scope: i, value: s, max: t, children: /* @__PURE__ */ l(
19
+ c.div,
20
+ {
21
+ "aria-valuemax": t,
22
+ "aria-valuemin": 0,
23
+ "aria-valuenow": n(s) ? s : void 0,
24
+ "aria-valuetext": b,
25
+ role: "progressbar",
26
+ "data-state": P(s, t),
27
+ "data-value": s ?? void 0,
28
+ "data-max": t,
29
+ ...N,
30
+ ref: e
31
+ }
32
+ ) });
33
+ }
34
+ );
35
+ f.displayName = u;
36
+ var g = "ProgressIndicator", _ = m.forwardRef(
37
+ (r, e) => {
38
+ const { __scopeProgress: i, ...o } = r, a = R(g, i);
39
+ return /* @__PURE__ */ l(
40
+ c.div,
41
+ {
42
+ "data-state": P(a.value, a.max),
43
+ "data-value": a.value ?? void 0,
44
+ "data-max": a.max,
45
+ ...o,
46
+ ref: e
47
+ }
48
+ );
49
+ }
50
+ );
51
+ _.displayName = g;
52
+ function E(r, e) {
53
+ return `${Math.round(r / e * 100)}%`;
54
+ }
55
+ function P(r, e) {
56
+ return r == null ? "indeterminate" : r === e ? "complete" : "loading";
57
+ }
58
+ function n(r) {
59
+ return typeof r == "number";
60
+ }
61
+ function v(r) {
62
+ return n(r) && !isNaN(r) && r > 0;
63
+ }
64
+ function p(r, e) {
65
+ return n(r) && !isNaN(r) && r <= e && r >= 0;
66
+ }
67
+ function M(r, e) {
68
+ return `Invalid prop \`max\` of value \`${r}\` supplied to \`${e}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${d}\`.`;
69
+ }
70
+ function V(r, e) {
71
+ return `Invalid prop \`value\` of value \`${r}\` supplied to \`${e}\`. The \`value\` prop must be:
72
+ - a positive number
73
+ - less than the value passed to \`max\` (or ${d} if no \`max\` prop is set)
74
+ - \`null\` or \`undefined\` if the progress is indeterminate.
75
+
76
+ Defaulting to \`null\`.`;
77
+ }
78
+ var D = f;
79
+ export {
80
+ f as Progress,
81
+ _ as ProgressIndicator,
82
+ D as Root,
83
+ C as createProgressScope
84
+ };
@@ -0,0 +1,32 @@
1
+ import * as f from "react";
2
+ import "react-dom";
3
+ import { createSlot as l } from "../../react-slot/dist/index.js";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ var u = [
6
+ "a",
7
+ "button",
8
+ "div",
9
+ "form",
10
+ "h2",
11
+ "h3",
12
+ "img",
13
+ "input",
14
+ "label",
15
+ "li",
16
+ "nav",
17
+ "ol",
18
+ "p",
19
+ "select",
20
+ "span",
21
+ "svg",
22
+ "ul"
23
+ ], w = u.reduce((t, i) => {
24
+ const o = l(`Primitive.${i}`), r = f.forwardRef((e, m) => {
25
+ const { asChild: a, ...p } = e, s = a ? o : i;
26
+ return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ n(s, { ...p, ref: m });
27
+ });
28
+ return r.displayName = `Primitive.${i}`, { ...t, [i]: r };
29
+ }, {});
30
+ export {
31
+ w as Primitive
32
+ };
@@ -0,0 +1,49 @@
1
+ import * as l from "react";
2
+ import { composeRefs as m } from "../../../../../react-compose-refs/dist/index.js";
3
+ import { jsx as u } from "react/jsx-runtime";
4
+ // @__NO_SIDE_EFFECTS__
5
+ function b(e) {
6
+ const r = /* @__PURE__ */ y(e), t = l.forwardRef((o, n) => {
7
+ const { children: i, ...c } = o, s = l.Children.toArray(i), a = s.find(E);
8
+ if (a) {
9
+ const f = a.props.children, d = s.map((p) => p === a ? l.Children.count(f) > 1 ? l.Children.only(null) : l.isValidElement(f) ? f.props.children : null : p);
10
+ return /* @__PURE__ */ u(r, { ...c, ref: n, children: l.isValidElement(f) ? l.cloneElement(f, void 0, d) : null });
11
+ }
12
+ return /* @__PURE__ */ u(r, { ...c, ref: n, children: i });
13
+ });
14
+ return t.displayName = `${e}.Slot`, t;
15
+ }
16
+ // @__NO_SIDE_EFFECTS__
17
+ function y(e) {
18
+ const r = l.forwardRef((t, o) => {
19
+ const { children: n, ...i } = t;
20
+ if (l.isValidElement(n)) {
21
+ const c = S(n), s = C(i, n.props);
22
+ return n.type !== l.Fragment && (s.ref = o ? m(o, c) : c), l.cloneElement(n, s);
23
+ }
24
+ return l.Children.count(n) > 1 ? l.Children.only(null) : null;
25
+ });
26
+ return r.displayName = `${e}.SlotClone`, r;
27
+ }
28
+ var g = Symbol("radix.slottable");
29
+ function E(e) {
30
+ return l.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === g;
31
+ }
32
+ function C(e, r) {
33
+ const t = { ...r };
34
+ for (const o in r) {
35
+ const n = e[o], i = r[o];
36
+ /^on[A-Z]/.test(o) ? n && i ? t[o] = (...s) => {
37
+ const a = i(...s);
38
+ return n(...s), a;
39
+ } : n && (t[o] = n) : o === "style" ? t[o] = { ...n, ...i } : o === "className" && (t[o] = [n, i].filter(Boolean).join(" "));
40
+ }
41
+ return { ...e, ...t };
42
+ }
43
+ function S(e) {
44
+ let r = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, t = r && "isReactWarning" in r && r.isReactWarning;
45
+ return t ? e.ref : (r = Object.getOwnPropertyDescriptor(e, "ref")?.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref);
46
+ }
47
+ export {
48
+ b as createSlot
49
+ };
@@ -53,6 +53,9 @@
53
53
  @use 'components/Toast/toast';
54
54
  @use 'components/ExitGateCard/exitGateCard';
55
55
  @use 'components/ComposedModal/composedModal';
56
+ @use 'components/ProgressIndicator/progressIndicator';
57
+ @use 'components/DescriptiveRadioButton/descriptiveRadioButton';
58
+ @use 'components/DescriptiveRadioButtonGroup/descriptiveRadioButtonGroup';
56
59
 
57
60
  // Patterns
58
61
  @use 'patterns/HeroBanner/heroBanner';
@@ -0,0 +1,52 @@
1
+ @use '../../allPartials' as *;
2
+
3
+ .#{$px}-descriptive-radio-button {
4
+ &__container {
5
+ align-items: flex-start;
6
+ background: $white;
7
+ border: 1px solid $light-gray;
8
+ border-radius: 4px;
9
+ cursor: pointer;
10
+ display: flex;
11
+ padding: $spacing-sm;
12
+
13
+ &--selected,
14
+ &:has(input:focus-visible) {
15
+ border: 1.5px solid $pure-black;
16
+ }
17
+ }
18
+
19
+ &__input {
20
+ accent-color: $light-gray;
21
+ cursor: pointer;
22
+ height: 1rem;
23
+ margin-right: $spacing-sm;
24
+ margin-top: 2px;
25
+ width: 1rem;
26
+
27
+ @media (min-width: $breakpoint-md) {
28
+ margin-top: $spacing-micro;
29
+ }
30
+ }
31
+
32
+ &__input:checked {
33
+ accent-color: $pure-black;
34
+ }
35
+
36
+ &__label-content {
37
+ align-items: flex-start;
38
+ cursor: pointer;
39
+ display: flex;
40
+ flex: 1;
41
+ flex-direction: column;
42
+ gap: $spacing-sm;
43
+ }
44
+
45
+ &__label-text {
46
+ font-variation-settings: 'wght' 600;
47
+ }
48
+
49
+ &__description {
50
+ display: block;
51
+ }
52
+ }
@@ -0,0 +1,27 @@
1
+ @use '../../allPartials' as *;
2
+
3
+ .#{$px}-descriptive-radio-button-group {
4
+ // Hide the fieldset border and padding
5
+ border: none;
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: $spacing-sm;
9
+ margin: 0;
10
+ padding: 0;
11
+
12
+ @media (min-width: $breakpoint-md) {
13
+ gap: $spacing-md;
14
+ }
15
+
16
+ // Visually hide the legend
17
+ &__sr-only {
18
+ border: 0 !important;
19
+ clip: rect(0, 0, 0, 0) !important;
20
+ height: 1px !important;
21
+ margin: -1px !important;
22
+ overflow: hidden !important;
23
+ padding: 0 !important;
24
+ position: absolute !important;
25
+ width: 1px !important;
26
+ }
27
+ }
@@ -67,9 +67,6 @@ $lg: #{$px}-input--lg;
67
67
  display: flex;
68
68
  margin-right: 0.25rem;
69
69
  user-select: none;
70
- user-select: none;
71
- user-select: none;
72
- user-select: none;
73
70
  white-space: nowrap;
74
71
  }
75
72
  }
@@ -0,0 +1,59 @@
1
+ @use '../../allPartials' as *;
2
+
3
+ .#{$px}-progress-indicator {
4
+ &__steps {
5
+ align-items: flex-start;
6
+ display: flex;
7
+ gap: 0;
8
+ justify-content: space-between;
9
+ margin: 0;
10
+ padding: 0;
11
+ }
12
+
13
+ &__item {
14
+ align-items: center;
15
+ display: flex;
16
+ gap: $spacing-xsm;
17
+ position: relative;
18
+ }
19
+
20
+ &__circle {
21
+ align-items: center;
22
+ border: 1px solid $pure-black;
23
+ border-radius: 50%;
24
+ display: flex;
25
+ height: 1.5rem;
26
+ justify-content: center;
27
+ padding: 0;
28
+ width: 1.5rem;
29
+
30
+ &--active,
31
+ &--current {
32
+ background-color: $pure-black;
33
+ color: $white;
34
+
35
+ svg {
36
+ color: $white;
37
+ }
38
+ }
39
+ }
40
+
41
+ &__label {
42
+ display: none;
43
+
44
+ @media (min-width: $breakpoint-md) {
45
+ display: inline-block;
46
+ text-align: center;
47
+ white-space: nowrap;
48
+ }
49
+ }
50
+
51
+ &__connector {
52
+ align-self: center;
53
+ background: $pure-black;
54
+ flex: 1 1 0;
55
+ height: 1px;
56
+ margin: 0 $spacing-xsm;
57
+ min-width: 8px;
58
+ }
59
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phillips/seldon",
3
- "version": "1.173.0",
3
+ "version": "1.175.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/PhillipsAuctionHouse/seldon"
@@ -48,6 +48,7 @@
48
48
  "@radix-ui/react-dialog": "^1.1.4",
49
49
  "@radix-ui/react-dropdown-menu": "^2.1.14",
50
50
  "@radix-ui/react-popover": "^1.1.11",
51
+ "@radix-ui/react-progress": "^1.1.7",
51
52
  "@radix-ui/react-select": "^2.1.1",
52
53
  "@radix-ui/react-tabs": "^1.1.1",
53
54
  "@radix-ui/react-toast": "^1.2.11",