@phillips/seldon 1.172.0 → 1.174.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.
@@ -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';
@@ -4,6 +4,14 @@ export interface InputProps extends Omit<React.ComponentProps<'input'>, 'size'>
4
4
  * Optional className to be applied to the `<input>` node
5
5
  */
6
6
  className?: string;
7
+ /**
8
+ * Optional adornment to be displayed before the input value
9
+ */
10
+ inputAdornment?: string | React.ReactNode;
11
+ /**
12
+ * Optional position to place the adornment. Defaults to 'start'
13
+ */
14
+ adornmentPosition?: 'start' | 'end';
7
15
  /**
8
16
  * Optionally provide the default value of the `<input>`. Should not be passed into controlled input!
9
17
  */
@@ -1,85 +1,99 @@
1
- import { jsxs as P, jsx as d } from "react/jsx-runtime";
2
- import * as R from "react";
3
- import n from "../../node_modules/classnames/index.js";
4
- import { px as t, useNormalizedInputProps as k } from "../../utils/index.js";
5
- const z = R.forwardRef(
1
+ import { jsxs as c, jsx as n } from "react/jsx-runtime";
2
+ import * as z from "react";
3
+ import p from "../../node_modules/classnames/index.js";
4
+ import { px as t, useNormalizedInputProps as F } from "../../utils/index.js";
5
+ const q = z.forwardRef(
6
6
  ({
7
- className: p,
8
- defaultValue: o,
9
- disabled: u,
10
- hideLabel: $,
11
- id: a,
12
- inline: m,
13
- invalid: c,
14
- invalidText: _,
15
- labelText: b,
16
- onChange: h,
17
- onClick: f,
18
- placeholder: v,
19
- readOnly: e,
20
- size: x = "md",
21
- type: s = "text",
22
- value: w,
23
- warn: N,
24
- warnText: y,
25
- isSkeletonLoading: l,
26
- ...r
27
- }, I) => {
28
- const i = k({
29
- disabled: u,
30
- id: a,
31
- invalid: c,
32
- invalidText: _,
33
- readOnly: e,
34
- type: s,
35
- warn: N,
36
- warnText: y
37
- }), j = n(`${t}-${s}-input`, `${t}-input`, `${t}-input--${x}`, {
38
- [`${t}-input--inline`]: m,
39
- [`${t}-input--readonly`]: e,
40
- [`${t}-input--disabled`]: i.disabled,
41
- [`${t}-input--invalid`]: i.invalid,
42
- [`${t}-input--warn`]: i.warn,
43
- [`${p}__wrapper`]: p,
44
- [`${t}-input--hidden`]: r.hidden
45
- });
46
- return /* @__PURE__ */ P("div", { className: j, children: [
47
- /* @__PURE__ */ d(
7
+ className: s,
8
+ inputAdornment: i,
9
+ adornmentPosition: l = "start",
10
+ defaultValue: _,
11
+ disabled: h,
12
+ hideLabel: w,
13
+ id: e,
14
+ inline: b,
15
+ invalid: N,
16
+ invalidText: f,
17
+ labelText: v,
18
+ onChange: x,
19
+ onClick: y,
20
+ placeholder: I,
21
+ readOnly: d,
22
+ size: T = "md",
23
+ type: u = "text",
24
+ value: C,
25
+ warn: P,
26
+ warnText: j,
27
+ isSkeletonLoading: r,
28
+ ...o
29
+ }, k) => {
30
+ const a = F({
31
+ disabled: h,
32
+ id: e,
33
+ invalid: N,
34
+ invalidText: f,
35
+ readOnly: d,
36
+ type: u,
37
+ warn: P,
38
+ warnText: j
39
+ }), R = p(`${t}-${u}-input`, `${t}-input`, `${t}-input--${T}`, {
40
+ [`${t}-input--inline`]: b,
41
+ [`${t}-input--readonly`]: d,
42
+ [`${t}-input--disabled`]: a.disabled,
43
+ [`${t}-input--invalid`]: a.invalid,
44
+ [`${t}-input--warn`]: a.warn,
45
+ [`${s}__wrapper`]: s,
46
+ [`${t}-input--hidden`]: o.hidden
47
+ }), m = [
48
+ "text",
49
+ "number",
50
+ "password",
51
+ "email",
52
+ "tel",
53
+ "url",
54
+ "search",
55
+ "date",
56
+ "datetime-local",
57
+ "month",
58
+ "time",
59
+ "week"
60
+ ].includes(a.type ?? ""), $ = {
61
+ className: i && m ? p(`${t}-input__wrapper__input`, s, { [`${t}-skeleton`]: r }) : p(`${t}-input__input`, s, { [`${t}-skeleton`]: r }),
62
+ "data-testid": e,
63
+ disabled: a.disabled,
64
+ id: e,
65
+ onChange: x,
66
+ onClick: y,
67
+ placeholder: r ? "" : I,
68
+ readOnly: d,
69
+ ref: k,
70
+ type: a.type,
71
+ ...a.type !== "checkbox" && a.type !== "radio" ? { value: C, defaultValue: _ } : {},
72
+ ...o
73
+ };
74
+ return /* @__PURE__ */ c("div", { className: R, children: [
75
+ /* @__PURE__ */ n(
48
76
  "label",
49
77
  {
50
- "data-testid": `label-${a}`,
51
- htmlFor: a,
52
- className: n(`${t}-input__label`, {
53
- [`${t}-input__label--hidden`]: $,
54
- [`${t}-skeleton`]: l
78
+ "data-testid": `label-${e}`,
79
+ htmlFor: e,
80
+ className: p(`${t}-input__label`, {
81
+ [`${t}-input__label--hidden`]: w,
82
+ [`${t}-skeleton`]: r
55
83
  }),
56
- children: b
84
+ children: v
57
85
  }
58
86
  ),
59
- /* @__PURE__ */ d(
60
- "input",
61
- {
62
- className: n(`${t}-input__input`, p, {
63
- [`${t}-skeleton`]: l
64
- }),
65
- "data-testid": a,
66
- disabled: i.disabled,
67
- id: a,
68
- onChange: h,
69
- onClick: f,
70
- placeholder: l ? "" : v,
71
- readOnly: e,
72
- ref: I,
73
- type: i.type,
74
- ...i.type !== "checkbox" && i.type !== "radio" ? { value: w, defaultValue: o } : {},
75
- ...r
76
- }
77
- ),
78
- i.validation ? i.validation : /* @__PURE__ */ d("p", { className: n(`${t}-input__validation`), children: " " })
87
+ i && m ? /* @__PURE__ */ c("div", { className: `${t}-input__wrapper`, "data-testid": `wrapper-${e}`, children: [
88
+ l === "start" && /* @__PURE__ */ n("span", { className: `${t}-input__wrapper__adornment`, id: "adornment", "data-testid": `adornment-${e}`, children: i }),
89
+ /* @__PURE__ */ n("input", { ...$ }),
90
+ l === "end" && /* @__PURE__ */ n("span", { className: `${t}-input__wrapper__adornment`, id: "adornment", "data-testid": `adornment-${e}`, children: i })
91
+ ] }) : /* @__PURE__ */ n("input", { ...$ }),
92
+ a.validation ? a.validation : /* @__PURE__ */ n("p", { className: p(`${t}-input__validation`), children: " " })
79
93
  ] });
80
94
  }
81
95
  );
82
- z.displayName = "Input";
96
+ q.displayName = "Input";
83
97
  export {
84
- z as default
98
+ q as default
85
99
  };
@@ -80,6 +80,17 @@ export declare const CheckboxInput: {
80
80
  type: string;
81
81
  };
82
82
  };
83
+ inputAdornment: {
84
+ control: {
85
+ type: string;
86
+ };
87
+ };
88
+ adornmentPosition: {
89
+ options: string[];
90
+ control: {
91
+ type: string;
92
+ };
93
+ };
83
94
  labelText: {
84
95
  control: {
85
96
  type: string;
@@ -177,6 +188,17 @@ export declare const RangeInput: {
177
188
  type: string;
178
189
  };
179
190
  };
191
+ inputAdornment: {
192
+ control: {
193
+ type: string;
194
+ };
195
+ };
196
+ adornmentPosition: {
197
+ options: string[];
198
+ control: {
199
+ type: string;
200
+ };
201
+ };
180
202
  labelText: {
181
203
  control: {
182
204
  type: string;
@@ -270,6 +292,17 @@ export declare const ControlledInput: {
270
292
  type: string;
271
293
  };
272
294
  };
295
+ inputAdornment: {
296
+ control: {
297
+ type: string;
298
+ };
299
+ };
300
+ adornmentPosition: {
301
+ options: string[];
302
+ control: {
303
+ type: string;
304
+ };
305
+ };
273
306
  labelText: {
274
307
  control: {
275
308
  type: string;
@@ -329,6 +362,104 @@ export declare const CustomLabel: {
329
362
  };
330
363
  argTypes: {};
331
364
  };
365
+ export declare const InputWithAdornment: {
366
+ ({ playgroundWidth, ...args }: StoryProps): import("react/jsx-runtime").JSX.Element;
367
+ args: {
368
+ labelText: string;
369
+ playgroundWidth: number;
370
+ size: string;
371
+ inputAdornment: import("react/jsx-runtime").JSX.Element;
372
+ adornmentPosition: string;
373
+ };
374
+ argTypes: {
375
+ className: {
376
+ control: {
377
+ type: string;
378
+ };
379
+ };
380
+ defaultValue: {
381
+ control: {
382
+ type: string;
383
+ };
384
+ };
385
+ disabled: {
386
+ control: {
387
+ type: string;
388
+ };
389
+ };
390
+ invalid: {
391
+ control: {
392
+ type: string;
393
+ };
394
+ };
395
+ invalidText: {
396
+ control: {
397
+ type: string;
398
+ };
399
+ };
400
+ inputAdornment: {
401
+ control: {
402
+ type: string;
403
+ };
404
+ };
405
+ adornmentPosition: {
406
+ options: string[];
407
+ control: {
408
+ type: string;
409
+ };
410
+ };
411
+ labelText: {
412
+ control: {
413
+ type: string;
414
+ };
415
+ };
416
+ onChange: {
417
+ action: string;
418
+ };
419
+ onClick: {
420
+ action: string;
421
+ };
422
+ placeholder: {
423
+ control: {
424
+ type: string;
425
+ };
426
+ };
427
+ playgroundWidth: {
428
+ control: {
429
+ type: string;
430
+ min: number;
431
+ max: number;
432
+ step: number;
433
+ };
434
+ };
435
+ size: {
436
+ options: string[];
437
+ control: {
438
+ type: string;
439
+ };
440
+ };
441
+ type: {
442
+ control: {
443
+ type: string;
444
+ };
445
+ };
446
+ value: {
447
+ control: {
448
+ type: string;
449
+ };
450
+ };
451
+ warn: {
452
+ control: {
453
+ type: string;
454
+ };
455
+ };
456
+ warnText: {
457
+ control: {
458
+ type: string;
459
+ };
460
+ };
461
+ };
462
+ };
332
463
  export declare const Playground: {
333
464
  ({ playgroundWidth, ...args }: StoryProps): import("react/jsx-runtime").JSX.Element;
334
465
  args: {
@@ -369,6 +500,17 @@ export declare const Playground: {
369
500
  type: string;
370
501
  };
371
502
  };
503
+ inputAdornment: {
504
+ control: {
505
+ type: string;
506
+ };
507
+ };
508
+ adornmentPosition: {
509
+ options: string[];
510
+ control: {
511
+ type: string;
512
+ };
513
+ };
372
514
  labelText: {
373
515
  control: {
374
516
  type: string;
package/dist/index.d.ts CHANGED
@@ -89,3 +89,5 @@ export * from './patterns/BidSnapshot';
89
89
  export * from './patterns/FilterMenu';
90
90
  export * from './patterns/ObjectTile';
91
91
  export * from './utils/hooks';
92
+ export * from './components/DescriptiveRadioButton';
93
+ 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";
3
+ import { SSRMediaQuery as B, ssrMediaQueryStyle as P } from "./providers/SeldonProvider/utils.js";
4
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";
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";
30
+ import { default as Be } from "./components/Grid/Grid.js";
31
31
  import { default as Ae } 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";
56
+ import { TextSymbolVariants as Bt } from "./components/TextSymbol/types.js";
57
57
  import { default as At } 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,17 +79,17 @@ 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";
82
+ import { default as Bo } from "./patterns/SaleCard/SaleCard.js";
83
83
  import { SaleCardActions as Ao } 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";
86
+ import { default as yo } from "./site-furniture/Footer/Footer.js";
87
+ import { default as ko } from "./site-furniture/Header/Header.js";
88
+ import { default as Do } from "./components/AddToCalendar/AddToCalendar.js";
89
89
  import { default as Ho } from "./components/Article/Article.js";
90
90
  import { default as No } from "./components/Countdown/Countdown.js";
91
91
  import { CountdownVariants as Go } from "./components/Countdown/types.js";
92
- import { default as Oo } from "./components/Divider/Divider.js";
92
+ import { default as Uo } from "./components/Divider/Divider.js";
93
93
  import { default as Qo } from "./components/FavoritingTileButton/FavoritingTileButton.js";
94
94
  import { default as zo } from "./components/Filter/Filter.js";
95
95
  import { default as Yo } from "./components/Filter/FilterInput.js";
@@ -105,13 +105,15 @@ import { default as pr } from "./patterns/BidSnapshot/BidMessage.js";
105
105
  import { BidMessageVariants as ir, BidStatusEnum as xr } from "./patterns/BidSnapshot/types.js";
106
106
  import { default as gr } from "./patterns/FilterMenu/FilterMenu.js";
107
107
  import { default as Sr } from "./patterns/ObjectTile/ObjectTile.js";
108
+ import { default as Tr } from "./components/DescriptiveRadioButton/DescriptiveRadioButton.js";
109
+ import { default as Pr } from "./components/DescriptiveRadioButtonGroup/DescriptiveRadioButtonGroup.js";
108
110
  export {
109
111
  M as Accordion,
110
112
  E as AccordionItem,
111
- U as AccordionItemVariant,
112
- O as AccordionVariants,
113
+ R as AccordionItemVariant,
114
+ U as AccordionVariants,
113
115
  sr as AccountPageHeader,
114
- vo as AddToCalendar,
116
+ Do as AddToCalendar,
115
117
  Ho as Article,
116
118
  V as AuctionStatus,
117
119
  Yt as AuthState,
@@ -120,8 +122,8 @@ export {
120
122
  dr as BidSnapshot,
121
123
  xr as BidStatusEnum,
122
124
  Q as Breadcrumb,
123
- k as Button,
124
- F as ButtonVariants,
125
+ h as Button,
126
+ w as ButtonVariants,
125
127
  Y as Carousel,
126
128
  q as CarouselArrows,
127
129
  K as CarouselContent,
@@ -136,15 +138,17 @@ export {
136
138
  pe as ContentPeekHeightUnits,
137
139
  No as Countdown,
138
140
  Go as CountdownVariants,
141
+ Tr as DescriptiveRadioButton,
142
+ Pr as DescriptiveRadioButtonGroup,
139
143
  ie as Detail,
140
144
  bt as DetailList,
141
- ht as DetailListAlignment,
142
- Oo as Divider,
145
+ yt as DetailListAlignment,
146
+ Uo as Divider,
143
147
  ne as Drawer,
144
148
  ce as Dropdown,
145
149
  Ce as ErrorBoundary,
146
150
  so as ExitGateCard,
147
- wt as FavoritesCollectionTile,
151
+ kt as FavoritesCollectionTile,
148
152
  Qo as FavoritingTileButton,
149
153
  zo as Filter,
150
154
  So as FilterButtonIconType,
@@ -153,25 +157,25 @@ export {
153
157
  Yo as FilterInput,
154
158
  gr as FilterMenu,
155
159
  go as FiltersInline,
156
- ho as Footer,
157
- Pe as Grid,
160
+ yo as Footer,
161
+ Be as Grid,
158
162
  Ae as GridItem,
159
163
  Le as GridItemAlign,
160
- wo as Header,
161
- vt as HeroBanner,
164
+ ko as Header,
165
+ Dt as HeroBanner,
162
166
  z as Icon,
163
- D as IconButton,
167
+ F as IconButton,
164
168
  be as Input,
165
169
  Ht as LanguageSelector,
166
- he as Link,
167
- ve as LinkBlock,
170
+ ye as Link,
171
+ De as LinkBlock,
168
172
  He as LinkList,
169
- we as LinkVariants,
173
+ ke as LinkVariants,
170
174
  mo as Loader,
171
175
  b as LotStatus,
172
176
  Ne as Modal,
173
177
  Ge as Navigation,
174
- Oe as NavigationItem,
178
+ Ue as NavigationItem,
175
179
  Qe as NavigationItemTrigger,
176
180
  ze as NavigationList,
177
181
  Sr as ObjectTile,
@@ -183,8 +187,8 @@ export {
183
187
  Ko as Pictogram,
184
188
  qe as PinchZoom,
185
189
  Ke as Row,
186
- P as SSRMediaQuery,
187
- Po as SaleCard,
190
+ B as SSRMediaQuery,
191
+ Bo as SaleCard,
188
192
  Ao as SaleCardActions,
189
193
  Lo as SaleCardVariants,
190
194
  Nt as SaleHeaderBanner,
@@ -194,13 +198,13 @@ export {
194
198
  eo as SeldonProvider,
195
199
  ot as Select,
196
200
  at as SelectVariants,
197
- Ot as Social,
201
+ Ut as Social,
198
202
  f as SpacingTokens,
199
203
  st as SplitPanel,
200
204
  Kt as StatefulViewingsList,
201
205
  Qt as Subscribe,
202
206
  zt as SubscriptionState,
203
- y as SupportedLanguages,
207
+ v as SupportedLanguages,
204
208
  dt as TabsContainer,
205
209
  pt as TabsContent,
206
210
  it as Tag,
@@ -208,7 +212,7 @@ export {
208
212
  Ct as Text,
209
213
  gt as TextAlignments,
210
214
  _o as TextArea,
211
- Pt as TextSymbolVariants,
215
+ Bt as TextSymbolVariants,
212
216
  At as TextSymbols,
213
217
  ct as TextVariants,
214
218
  er as Toast,
@@ -227,7 +231,7 @@ export {
227
231
  x as getCommonProps,
228
232
  n as noOp,
229
233
  g as px,
230
- B as ssrMediaQueryStyle,
234
+ P as ssrMediaQueryStyle,
231
235
  c as useNormalizedInputProps,
232
236
  I as usePendingState,
233
237
  ar as useToast
@@ -53,6 +53,8 @@
53
53
  @use 'components/Toast/toast';
54
54
  @use 'components/ExitGateCard/exitGateCard';
55
55
  @use 'components/ComposedModal/composedModal';
56
+ @use 'components/DescriptiveRadioButton/descriptiveRadioButton';
57
+ @use 'components/DescriptiveRadioButtonGroup/descriptiveRadioButtonGroup';
56
58
 
57
59
  // Patterns
58
60
  @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
+ }
@@ -27,6 +27,53 @@ $lg: #{$px}-input--lg;
27
27
  }
28
28
  }
29
29
 
30
+ &__wrapper {
31
+ @include text($string2);
32
+
33
+ accent-color: $soft-black;
34
+ align-items: center;
35
+ border: 1px solid $keyline-gray;
36
+ border-radius: 0.1875rem;
37
+ display: inline-flex;
38
+ font-variation-settings: 'wght' 600;
39
+ justify-content: space-between;
40
+ margin-bottom: 0.25rem;
41
+ padding: $padding-xsm;
42
+ position: relative;
43
+
44
+ &::placeholder {
45
+ font-variation-settings: 'wght' 400;
46
+ }
47
+
48
+ &:focus-visible,
49
+ &:focus-within {
50
+ outline: 1px solid $pure-black;
51
+ }
52
+
53
+ .#{$px}-input__wrapper__input,
54
+ .#{$px}-input__input {
55
+ border: none;
56
+ margin: 0;
57
+ padding: 0;
58
+ width: 100%;
59
+
60
+ &:focus-visible {
61
+ outline: none;
62
+ }
63
+ }
64
+
65
+ &__adornment {
66
+ align-items: center;
67
+ display: flex;
68
+ margin-right: 0.25rem;
69
+ user-select: none;
70
+ user-select: none;
71
+ user-select: none;
72
+ user-select: none;
73
+ white-space: nowrap;
74
+ }
75
+ }
76
+
30
77
  &__input {
31
78
  @include text($string2);
32
79
 
@@ -60,7 +107,8 @@ $lg: #{$px}-input--lg;
60
107
  flex-flow: row wrap;
61
108
  gap: 1rem;
62
109
 
63
- .#{$px}-input__input {
110
+ .#{$px}-input__input,
111
+ .#{$px}-input__wrapper {
64
112
  align-self: center;
65
113
  width: unset;
66
114
  }
@@ -72,7 +120,8 @@ $lg: #{$px}-input--lg;
72
120
  cursor: default;
73
121
 
74
122
  .#{$px}-input__label,
75
- .#{$px}-input__input {
123
+ .#{$px}-input__input,
124
+ .#{$px}-input__wrapper {
76
125
  color: inherit;
77
126
  }
78
127
  .#{$px}-input__label:hover,
@@ -86,7 +135,8 @@ $lg: #{$px}-input--lg;
86
135
  pointer-events: none;
87
136
 
88
137
  .#{$px}-input__label,
89
- .#{$px}-input__input {
138
+ .#{$px}-input__input,
139
+ .#{$px}-input__wrapper {
90
140
  cursor: default;
91
141
  }
92
142
 
@@ -109,7 +159,8 @@ $lg: #{$px}-input--lg;
109
159
  color: $pure-black;
110
160
  }
111
161
 
112
- .#{$px}-input__input {
162
+ .#{$px}-input__input,
163
+ .#{$px}-input__wrapper {
113
164
  border: 1px solid $error-red;
114
165
  box-shadow: inset 0 0 3px 3px $error-pink;
115
166
 
@@ -117,6 +168,12 @@ $lg: #{$px}-input--lg;
117
168
  outline: 1px solid $error-red;
118
169
  }
119
170
  }
171
+
172
+ .#{$px}-input__wrapper .#{$px}-input__input {
173
+ border: none;
174
+ box-shadow: none;
175
+ outline: none;
176
+ }
120
177
  }
121
178
 
122
179
  // warn
@@ -77,7 +77,8 @@ $lg: #{$px}-input--lg;
77
77
  }
78
78
 
79
79
  // Hide actual checkbox input
80
- .#{$px}-input__input {
80
+ .#{$px}-input__input,
81
+ .#{$px}-input__wrapper {
81
82
  @include hidden;
82
83
 
83
84
  margin-bottom: 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phillips/seldon",
3
- "version": "1.172.0",
3
+ "version": "1.174.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/PhillipsAuctionHouse/seldon"