@clicoh/orion-library 1.1.0 → 1.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/base.css +24 -1
- package/dist/components/01-atoms/Badge/Badge.d.ts +13 -3
- package/dist/components/01-atoms/Badge/Badge.d.ts.map +1 -1
- package/dist/components/01-atoms/Badge/Badge.jsx +21 -4
- package/dist/components/01-atoms/Badge/Badge.jsx.map +1 -1
- package/dist/components/01-atoms/Button/Button.d.ts +4 -1
- package/dist/components/01-atoms/Button/Button.d.ts.map +1 -1
- package/dist/components/01-atoms/Button/Button.jsx +32 -4
- package/dist/components/01-atoms/Button/Button.jsx.map +1 -1
- package/dist/components/01-atoms/Input/Input.d.ts +5 -1
- package/dist/components/01-atoms/Input/Input.d.ts.map +1 -1
- package/dist/components/01-atoms/Input/Input.jsx +10 -5
- package/dist/components/01-atoms/Input/Input.jsx.map +1 -1
- package/dist/components/01-atoms/Input/utils/border.d.ts +2 -1
- package/dist/components/01-atoms/Input/utils/border.d.ts.map +1 -1
- package/dist/components/01-atoms/Input/utils/border.js +2 -2
- package/dist/components/01-atoms/Input/utils/border.js.map +1 -1
- package/dist/components/01-atoms/MultiSelect/MultiSelect.jsx +1 -1
- package/dist/components/01-atoms/MultiSelect/MultiSelect.jsx.map +1 -1
- package/dist/components/01-atoms/ProgressBar/ProgressBar.d.ts +31 -0
- package/dist/components/01-atoms/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/dist/components/01-atoms/ProgressBar/ProgressBar.jsx +36 -0
- package/dist/components/01-atoms/ProgressBar/ProgressBar.jsx.map +1 -0
- package/dist/components/01-atoms/ProgressBar/index.d.ts +2 -0
- package/dist/components/01-atoms/ProgressBar/index.d.ts.map +1 -0
- package/dist/components/01-atoms/ProgressBar/index.js +2 -0
- package/dist/components/01-atoms/ProgressBar/index.js.map +1 -0
- package/dist/components/01-atoms/Radio/Radio.d.ts +19 -2
- package/dist/components/01-atoms/Radio/Radio.d.ts.map +1 -1
- package/dist/components/01-atoms/Radio/Radio.jsx +51 -6
- package/dist/components/01-atoms/Radio/Radio.jsx.map +1 -1
- package/dist/components/01-atoms/Select/Select.d.ts +3 -1
- package/dist/components/01-atoms/Select/Select.d.ts.map +1 -1
- package/dist/components/01-atoms/Select/Select.jsx +8 -4
- package/dist/components/01-atoms/Select/Select.jsx.map +1 -1
- package/dist/components/01-atoms/Skeleton/Skeleton.d.ts +32 -0
- package/dist/components/01-atoms/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/01-atoms/Skeleton/Skeleton.jsx +34 -0
- package/dist/components/01-atoms/Skeleton/Skeleton.jsx.map +1 -0
- package/dist/components/01-atoms/Skeleton/index.d.ts +2 -0
- package/dist/components/01-atoms/Skeleton/index.d.ts.map +1 -0
- package/dist/components/01-atoms/Skeleton/index.js +2 -0
- package/dist/components/01-atoms/Skeleton/index.js.map +1 -0
- package/dist/components/01-atoms/SmallInput/SmallInput.jsx +1 -1
- package/dist/components/01-atoms/SmallInput/SmallInput.jsx.map +1 -1
- package/dist/components/01-atoms/index.d.ts +2 -0
- package/dist/components/01-atoms/index.d.ts.map +1 -1
- package/dist/components/01-atoms/index.js +2 -0
- package/dist/components/01-atoms/index.js.map +1 -1
- package/dist/components/02-molecules/DatePicker/DatePicker.d.ts +79 -0
- package/dist/components/02-molecules/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/components/02-molecules/DatePicker/DatePicker.jsx +229 -0
- package/dist/components/02-molecules/DatePicker/DatePicker.jsx.map +1 -0
- package/dist/components/02-molecules/DatePicker/index.d.ts +2 -0
- package/dist/components/02-molecules/DatePicker/index.d.ts.map +1 -0
- package/dist/components/02-molecules/DatePicker/index.js +2 -0
- package/dist/components/02-molecules/DatePicker/index.js.map +1 -0
- package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts +37 -0
- package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts.map +1 -0
- package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx +59 -0
- package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx.map +1 -0
- package/dist/components/02-molecules/InlineMessage/index.d.ts +2 -0
- package/dist/components/02-molecules/InlineMessage/index.d.ts.map +1 -0
- package/dist/components/02-molecules/InlineMessage/index.js +2 -0
- package/dist/components/02-molecules/InlineMessage/index.js.map +1 -0
- package/dist/components/02-molecules/index.d.ts +2 -0
- package/dist/components/02-molecules/index.d.ts.map +1 -1
- package/dist/components/02-molecules/index.js +2 -0
- package/dist/components/02-molecules/index.js.map +1 -1
- package/dist/components/03-organisms/MapView/MapView.d.ts +65 -0
- package/dist/components/03-organisms/MapView/MapView.d.ts.map +1 -0
- package/dist/components/03-organisms/MapView/MapView.jsx +199 -0
- package/dist/components/03-organisms/MapView/MapView.jsx.map +1 -0
- package/dist/components/03-organisms/MapView/index.d.ts +2 -0
- package/dist/components/03-organisms/MapView/index.d.ts.map +1 -0
- package/dist/components/03-organisms/MapView/index.js +2 -0
- package/dist/components/03-organisms/MapView/index.js.map +1 -0
- package/dist/components/03-organisms/index.d.ts +1 -0
- package/dist/components/03-organisms/index.d.ts.map +1 -1
- package/dist/components/03-organisms/index.js +1 -0
- package/dist/components/03-organisms/index.js.map +1 -1
- package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx +2 -2
- package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx.map +1 -1
- package/package.json +3 -1
- package/tailwind.config.ts +10 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type InputHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
type RadioModifier = 'default' | 'pill';
|
|
2
3
|
type RadioProps = {
|
|
3
4
|
readonly label: string;
|
|
4
5
|
readonly options: Record<string, string>;
|
|
@@ -6,10 +7,16 @@ type RadioProps = {
|
|
|
6
7
|
readonly helperText?: string;
|
|
7
8
|
readonly error?: string;
|
|
8
9
|
readonly orientation?: 'vertical' | 'horizontal';
|
|
10
|
+
readonly modifier?: RadioModifier;
|
|
9
11
|
};
|
|
10
12
|
/**
|
|
11
13
|
* Radio component for rendering a group of radio buttons with labels, helper text, and error message.
|
|
12
14
|
*
|
|
15
|
+
* `pill` turns each option into a selectable chip with its own dot, for short
|
|
16
|
+
* mutually exclusive choices laid out inline (a time window, a size). The
|
|
17
|
+
* native input stays in the DOM for keyboard and assistive technology; only its
|
|
18
|
+
* visual is replaced.
|
|
19
|
+
*
|
|
13
20
|
* @component
|
|
14
21
|
* @example
|
|
15
22
|
* // Example usage of Radio component
|
|
@@ -22,16 +29,26 @@ type RadioProps = {
|
|
|
22
29
|
* orientation="vertical"
|
|
23
30
|
* />
|
|
24
31
|
*
|
|
32
|
+
* @example
|
|
33
|
+
* // Inline pills
|
|
34
|
+
* <Radio
|
|
35
|
+
* modifier="pill"
|
|
36
|
+
* label="Time window"
|
|
37
|
+
* options={{ am: '08:00–12:00', pm: '14:00–18:00' }}
|
|
38
|
+
* radio={{ name: 'window', value: 'am', onChange: handleChange }}
|
|
39
|
+
* />
|
|
40
|
+
*
|
|
25
41
|
* @param {Object} props - The properties of the Radio component.
|
|
26
42
|
* @param {string} props.label - The label text for the radio group.
|
|
27
43
|
* @param {Record<string, string>} props.options - The options for the radio buttons, where the key is the value and the value is the display text.
|
|
28
44
|
* @param {Omit<InputHTMLAttributes<HTMLInputElement>, 'checked'>} props.radio - The properties for the radio input elements.
|
|
29
45
|
* @param {string} [props.helperText] - Optional helper text to be displayed below the radio group.
|
|
30
46
|
* @param {string} [props.error] - Optional error message to be displayed below the radio group.
|
|
31
|
-
* @param {'vertical' | 'horizontal'} [props.orientation='vertical'] - The orientation of the radio buttons.
|
|
47
|
+
* @param {'vertical' | 'horizontal'} [props.orientation='vertical'] - The orientation of the radio buttons. Ignored by `pill`, which always wraps inline.
|
|
48
|
+
* @param {'default' | 'pill'} [props.modifier='default'] - `pill` renders each option as a selectable chip.
|
|
32
49
|
*
|
|
33
50
|
* @returns {ReactNode} The rendered Radio component.
|
|
34
51
|
*/
|
|
35
|
-
export declare function Radio({ label, options, radio, helperText, error, orientation, }: RadioProps): ReactNode;
|
|
52
|
+
export declare function Radio({ label, options, radio, helperText, error, orientation, modifier, }: RadioProps): ReactNode;
|
|
36
53
|
export {};
|
|
37
54
|
//# sourceMappingURL=Radio.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../../src/components/01-atoms/Radio/Radio.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAIxE,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../../src/components/01-atoms/Radio/Radio.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAIxE,KAAK,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAExC,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,OAAO,EACP,KAAK,EACL,UAAU,EACV,KAAK,EACL,WAAwB,EACxB,QAAoB,GACrB,EAAE,UAAU,GAAG,SAAS,CA+IxB"}
|
|
@@ -6,6 +6,11 @@ import { RenderErrorOrHelperText } from '../Input/utils/RenderErrorOrHelperText'
|
|
|
6
6
|
/**
|
|
7
7
|
* Radio component for rendering a group of radio buttons with labels, helper text, and error message.
|
|
8
8
|
*
|
|
9
|
+
* `pill` turns each option into a selectable chip with its own dot, for short
|
|
10
|
+
* mutually exclusive choices laid out inline (a time window, a size). The
|
|
11
|
+
* native input stays in the DOM for keyboard and assistive technology; only its
|
|
12
|
+
* visual is replaced.
|
|
13
|
+
*
|
|
9
14
|
* @component
|
|
10
15
|
* @example
|
|
11
16
|
* // Example usage of Radio component
|
|
@@ -18,22 +23,33 @@ import { RenderErrorOrHelperText } from '../Input/utils/RenderErrorOrHelperText'
|
|
|
18
23
|
* orientation="vertical"
|
|
19
24
|
* />
|
|
20
25
|
*
|
|
26
|
+
* @example
|
|
27
|
+
* // Inline pills
|
|
28
|
+
* <Radio
|
|
29
|
+
* modifier="pill"
|
|
30
|
+
* label="Time window"
|
|
31
|
+
* options={{ am: '08:00–12:00', pm: '14:00–18:00' }}
|
|
32
|
+
* radio={{ name: 'window', value: 'am', onChange: handleChange }}
|
|
33
|
+
* />
|
|
34
|
+
*
|
|
21
35
|
* @param {Object} props - The properties of the Radio component.
|
|
22
36
|
* @param {string} props.label - The label text for the radio group.
|
|
23
37
|
* @param {Record<string, string>} props.options - The options for the radio buttons, where the key is the value and the value is the display text.
|
|
24
38
|
* @param {Omit<InputHTMLAttributes<HTMLInputElement>, 'checked'>} props.radio - The properties for the radio input elements.
|
|
25
39
|
* @param {string} [props.helperText] - Optional helper text to be displayed below the radio group.
|
|
26
40
|
* @param {string} [props.error] - Optional error message to be displayed below the radio group.
|
|
27
|
-
* @param {'vertical' | 'horizontal'} [props.orientation='vertical'] - The orientation of the radio buttons.
|
|
41
|
+
* @param {'vertical' | 'horizontal'} [props.orientation='vertical'] - The orientation of the radio buttons. Ignored by `pill`, which always wraps inline.
|
|
42
|
+
* @param {'default' | 'pill'} [props.modifier='default'] - `pill` renders each option as a selectable chip.
|
|
28
43
|
*
|
|
29
44
|
* @returns {ReactNode} The rendered Radio component.
|
|
30
45
|
*/
|
|
31
|
-
export function Radio({ label, options, radio, helperText, error, orientation = 'vertical', }) {
|
|
46
|
+
export function Radio({ label, options, radio, helperText, error, orientation = 'vertical', modifier = 'default', }) {
|
|
32
47
|
const optionsArr = Object.entries(options);
|
|
33
48
|
const groupId = useId();
|
|
34
49
|
const descriptionId = error || helperText ? `${groupId}-description` : undefined;
|
|
35
50
|
const describedBy = [radio['aria-describedby'], descriptionId].filter(Boolean).join(' ') ||
|
|
36
51
|
undefined;
|
|
52
|
+
const isPill = modifier === 'pill';
|
|
37
53
|
const radioClasses = clsx('disabled:accent-gray-3 dark:disabled:accent-gray-2 relative h-4 w-4 cursor-pointer border-2 outline-hidden disabled:cursor-not-allowed', error && !radio.disabled
|
|
38
54
|
? 'accent-error dark:accent-error-dark'
|
|
39
55
|
: 'accent-black dark:accent-white', !radio.disabled &&
|
|
@@ -43,17 +59,46 @@ export function Radio({ label, options, radio, helperText, error, orientation =
|
|
|
43
59
|
: error
|
|
44
60
|
? 'text-error dark:text-error-dark'
|
|
45
61
|
: 'text-black dark:text-white');
|
|
62
|
+
const pillLabelClasses = (checked) => clsx('inline-flex cursor-pointer items-center gap-2 rounded-full border py-1 pr-3 pl-2 text-xs font-semibold transition-colors', 'peer-focus-visible:ring-lavender/40 peer-focus-visible:ring-2', checked
|
|
63
|
+
? 'border-lavender bg-lavender-3 text-lavender dark:border-lavender-dark dark:bg-lavender-dark-1 dark:text-lavender-dark'
|
|
64
|
+
: 'border-gray-5 dark:border-gray-1 text-black dark:text-white', !checked &&
|
|
65
|
+
!radio.disabled &&
|
|
66
|
+
'hover:border-gray-2 dark:hover:border-gray-2', error &&
|
|
67
|
+
!radio.disabled &&
|
|
68
|
+
'border-error text-error dark:border-error-dark dark:text-error-dark', radio.disabled &&
|
|
69
|
+
'border-gray-3 text-gray-3 dark:border-gray-2 dark:text-gray-2 cursor-not-allowed');
|
|
70
|
+
const pillDotClasses = (checked) => clsx('box-border h-3 w-3 shrink-0 rounded-full transition-all', checked
|
|
71
|
+
? 'border-lavender dark:border-lavender-dark border-4'
|
|
72
|
+
: 'border-gray-3 dark:border-gray-2 border');
|
|
46
73
|
return (<fieldset className="w-full max-w-full border-0 p-0" aria-describedby={descriptionId}>
|
|
47
|
-
<legend className={clsx(
|
|
74
|
+
<legend className={clsx(isPill
|
|
75
|
+
? 'pb-1.5 text-xs font-semibold tracking-wide uppercase'
|
|
76
|
+
: 'pb-1.5 text-sm font-normal', radio.disabled
|
|
48
77
|
? 'text-gray-3 dark:text-gray-2'
|
|
49
|
-
:
|
|
78
|
+
: isPill
|
|
79
|
+
? 'text-gray-1 dark:text-gray-2'
|
|
80
|
+
: 'text-black dark:text-white')}>
|
|
50
81
|
{label}
|
|
51
82
|
</legend>
|
|
52
|
-
<div className={clsx('flex',
|
|
83
|
+
<div className={clsx('flex', isPill
|
|
84
|
+
? 'flex-row flex-wrap gap-2'
|
|
85
|
+
: orientation === 'vertical'
|
|
86
|
+
? 'flex-col'
|
|
87
|
+
: 'flex-row gap-4')}>
|
|
53
88
|
<Each of={optionsArr} render={([value, text], index) => {
|
|
54
89
|
const id = `${groupId}-${index}`;
|
|
90
|
+
const checked = radio.value === value;
|
|
91
|
+
if (isPill) {
|
|
92
|
+
return (<div className="relative" key={value}>
|
|
93
|
+
<input {...radio} id={id} type="radio" className={clsx('peer sr-only', radio.className)} name={radio.name ?? groupId} value={value} checked={checked} aria-invalid={error ? true : radio['aria-invalid']} aria-describedby={describedBy}/>
|
|
94
|
+
<label htmlFor={id} className={pillLabelClasses(checked)}>
|
|
95
|
+
<span aria-hidden="true" className={pillDotClasses(checked)}/>
|
|
96
|
+
{text}
|
|
97
|
+
</label>
|
|
98
|
+
</div>);
|
|
99
|
+
}
|
|
55
100
|
return (<div className="flex items-center" key={value}>
|
|
56
|
-
<input {...radio} id={id} type="radio" className={radioClasses} name={radio.name ?? groupId} value={value} checked={
|
|
101
|
+
<input {...radio} id={id} type="radio" className={radioClasses} name={radio.name ?? groupId} value={value} checked={checked} aria-invalid={error ? true : radio['aria-invalid']} aria-describedby={describedBy}/>
|
|
57
102
|
<label htmlFor={id} className={labelClasses}>
|
|
58
103
|
{text}
|
|
59
104
|
</label>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/Radio/Radio.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAA4C,KAAK,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"Radio.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/Radio/Radio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ type SelectProps = {
|
|
|
7
7
|
readonly helperText?: string;
|
|
8
8
|
readonly error?: string;
|
|
9
9
|
readonly isMutedWhenEmpty?: boolean;
|
|
10
|
+
readonly hideLabel?: boolean;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* Select component for rendering a dropdown with customizable options, labels, helper text, and error messages.
|
|
@@ -31,9 +32,10 @@ type SelectProps = {
|
|
|
31
32
|
* @param {string} [props.helperText] - Optional helper text to be displayed below the select dropdown.
|
|
32
33
|
* @param {string} [props.error] - Optional error message to be displayed below the select dropdown.
|
|
33
34
|
* @param {boolean} [props.isMutedWhenEmpty] - Renders the border and label in gray while no option is selected.
|
|
35
|
+
* @param {boolean} [props.hideLabel] - Keeps the label for assistive technology only and drops the floating label and its border notch. Use it when a heading outside the field already names it; pair it with `placeholder`.
|
|
34
36
|
*
|
|
35
37
|
* @returns {ReactNode} The rendered Select component.
|
|
36
38
|
*/
|
|
37
|
-
export declare function Select({ label, options, select, placeholder, helperText, error, isMutedWhenEmpty, }: SelectProps): ReactNode;
|
|
39
|
+
export declare function Select({ label, options, select, placeholder, helperText, error, isMutedWhenEmpty, hideLabel, }: SelectProps): ReactNode;
|
|
38
40
|
export {};
|
|
39
41
|
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/01-atoms/Select/Select.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAE1B,MAAM,OAAO,CAAC;AAMf,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CACpB,iBAAiB,CACf,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,iBAAiB,CAClB,EACD,UAAU,CACX,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/01-atoms/Select/Select.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAE1B,MAAM,OAAO,CAAC;AAMf,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CACpB,iBAAiB,CACf,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,iBAAiB,CAClB,EACD,UAAU,CACX,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAiB,GAClB,EAAE,WAAW,GAAG,SAAS,CA4FzB"}
|
|
@@ -28,10 +28,11 @@ import { RenderErrorOrHelperText } from '../Input/utils/RenderErrorOrHelperText'
|
|
|
28
28
|
* @param {string} [props.helperText] - Optional helper text to be displayed below the select dropdown.
|
|
29
29
|
* @param {string} [props.error] - Optional error message to be displayed below the select dropdown.
|
|
30
30
|
* @param {boolean} [props.isMutedWhenEmpty] - Renders the border and label in gray while no option is selected.
|
|
31
|
+
* @param {boolean} [props.hideLabel] - Keeps the label for assistive technology only and drops the floating label and its border notch. Use it when a heading outside the field already names it; pair it with `placeholder`.
|
|
31
32
|
*
|
|
32
33
|
* @returns {ReactNode} The rendered Select component.
|
|
33
34
|
*/
|
|
34
|
-
export function Select({ label, options, select, placeholder, helperText, error, isMutedWhenEmpty, }) {
|
|
35
|
+
export function Select({ label, options, select, placeholder, helperText, error, isMutedWhenEmpty, hideLabel = false, }) {
|
|
35
36
|
const generatedId = useId();
|
|
36
37
|
const id = select?.id ?? generatedId;
|
|
37
38
|
const descriptionId = error || helperText ? `${id}-description` : undefined;
|
|
@@ -41,9 +42,10 @@ export function Select({ label, options, select, placeholder, helperText, error,
|
|
|
41
42
|
? { ...select, defaultValue: '' }
|
|
42
43
|
: select;
|
|
43
44
|
const isMuted = Boolean(isMutedWhenEmpty && !selectProps.value && !selectProps.defaultValue);
|
|
44
|
-
const selectClasses = clsx('peer disabled:text-gray-3 dark:disabled:text-gray-2 h-full w-full appearance-none rounded-full border border-none bg-transparent px-5 text-sm font-normal outline-0 transition-all', isMuted ? 'text-gray-2 dark:text-gray-2' : 'text-black dark:text-white', select?.className);
|
|
45
|
+
const selectClasses = clsx('peer disabled:text-gray-3 dark:disabled:text-gray-2 h-full w-full appearance-none rounded-full border border-none bg-transparent px-5 text-sm font-normal outline-0 transition-all dark:bg-black', isMuted ? 'text-gray-2 dark:text-gray-2' : 'text-black dark:text-white', select?.className);
|
|
45
46
|
const { labelProps, legendClasses, fieldsetClasses } = generateBorder(error, {
|
|
46
47
|
isMuted,
|
|
48
|
+
hideLabel,
|
|
47
49
|
});
|
|
48
50
|
labelProps.htmlFor = id;
|
|
49
51
|
return (<div className="w-full max-w-full">
|
|
@@ -56,14 +58,16 @@ export function Select({ label, options, select, placeholder, helperText, error,
|
|
|
56
58
|
{text}
|
|
57
59
|
</option>)}/>
|
|
58
60
|
</select>
|
|
59
|
-
<label {
|
|
61
|
+
{hideLabel ? (<label htmlFor={id} className="sr-only">
|
|
62
|
+
{label}
|
|
63
|
+
</label>) : (<label {...labelProps}>{label}</label>)}
|
|
60
64
|
<FaSortDown aria-hidden="true" className={clsx('peer-disabled:text-gray-3 dark:peer-disabled:text-gray-2 absolute top-2 right-4', error
|
|
61
65
|
? 'text-error dark:text-error-dark'
|
|
62
66
|
: isMuted
|
|
63
67
|
? 'text-gray-2 dark:text-gray-2'
|
|
64
68
|
: 'text-black dark:text-white')}/>
|
|
65
69
|
<fieldset className={fieldsetClasses}>
|
|
66
|
-
<legend className={legendClasses}>{label}</legend>
|
|
70
|
+
{!hideLabel && <legend className={legendClasses}>{label}</legend>}
|
|
67
71
|
</fieldset>
|
|
68
72
|
</div>
|
|
69
73
|
<RenderErrorOrHelperText id={descriptionId} disabled={select?.disabled} helperText={helperText} error={error} className="pl-6"/>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/Select/Select.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAIL,KAAK,GACN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"Select.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/Select/Select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type SkeletonShape = 'text' | 'circle' | 'rect';
|
|
3
|
+
export type SkeletonProps = {
|
|
4
|
+
/** Silhouette of the content being loaded. Defaults to `text`. */
|
|
5
|
+
shape?: SkeletonShape;
|
|
6
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, 'children'>;
|
|
7
|
+
/**
|
|
8
|
+
* Pulsing placeholder that holds the space of content still loading. Size it
|
|
9
|
+
* with width and height utilities through `className`; `text` already sets a
|
|
10
|
+
* line height, `circle` keeps a 1:1 ratio from the width you give it.
|
|
11
|
+
*
|
|
12
|
+
* Hidden from assistive technology on purpose: announce the loading state
|
|
13
|
+
* once on the container (`aria-busy`, a live region or a `ProgressBar`),
|
|
14
|
+
* not on every bone.
|
|
15
|
+
*
|
|
16
|
+
* @component
|
|
17
|
+
* @example
|
|
18
|
+
* <div className="flex items-center gap-3" aria-busy="true">
|
|
19
|
+
* <Skeleton shape="circle" className="w-7" />
|
|
20
|
+
* <div className="flex-1">
|
|
21
|
+
* <Skeleton className="w-3/5" />
|
|
22
|
+
* <Skeleton className="mt-2 w-2/5" />
|
|
23
|
+
* </div>
|
|
24
|
+
* </div>
|
|
25
|
+
*
|
|
26
|
+
* @param {Object} props - The properties of the Skeleton component.
|
|
27
|
+
* @param {'text' | 'circle' | 'rect'} [props.shape='text'] - Silhouette of the placeholder.
|
|
28
|
+
*
|
|
29
|
+
* @returns {ReactNode} The rendered Skeleton component.
|
|
30
|
+
*/
|
|
31
|
+
export declare function Skeleton({ shape, ...restProps }: SkeletonProps): ReactNode;
|
|
32
|
+
//# sourceMappingURL=Skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/01-atoms/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG;IAC1B,kEAAkE;IAClE,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAQrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAc,EACd,GAAG,SAAS,EACb,EAAE,aAAa,GAAG,SAAS,CAY3B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
const shapeMap = {
|
|
3
|
+
text: 'h-2.5 rounded-full',
|
|
4
|
+
circle: 'aspect-square rounded-full',
|
|
5
|
+
rect: 'rounded-lg',
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Pulsing placeholder that holds the space of content still loading. Size it
|
|
9
|
+
* with width and height utilities through `className`; `text` already sets a
|
|
10
|
+
* line height, `circle` keeps a 1:1 ratio from the width you give it.
|
|
11
|
+
*
|
|
12
|
+
* Hidden from assistive technology on purpose: announce the loading state
|
|
13
|
+
* once on the container (`aria-busy`, a live region or a `ProgressBar`),
|
|
14
|
+
* not on every bone.
|
|
15
|
+
*
|
|
16
|
+
* @component
|
|
17
|
+
* @example
|
|
18
|
+
* <div className="flex items-center gap-3" aria-busy="true">
|
|
19
|
+
* <Skeleton shape="circle" className="w-7" />
|
|
20
|
+
* <div className="flex-1">
|
|
21
|
+
* <Skeleton className="w-3/5" />
|
|
22
|
+
* <Skeleton className="mt-2 w-2/5" />
|
|
23
|
+
* </div>
|
|
24
|
+
* </div>
|
|
25
|
+
*
|
|
26
|
+
* @param {Object} props - The properties of the Skeleton component.
|
|
27
|
+
* @param {'text' | 'circle' | 'rect'} [props.shape='text'] - Silhouette of the placeholder.
|
|
28
|
+
*
|
|
29
|
+
* @returns {ReactNode} The rendered Skeleton component.
|
|
30
|
+
*/
|
|
31
|
+
export function Skeleton({ shape = 'text', ...restProps }) {
|
|
32
|
+
return (<div aria-hidden="true" {...restProps} className={clsx('bg-gray-6 dark:bg-gray-dark-1 animate-pulse', shapeMap[shape], restProps.className)}/>);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=Skeleton.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAUxB,MAAM,QAAQ,GAAkC;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,4BAA4B;IACpC,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,GAAG,MAAM,EACd,GAAG,SAAS,EACE;IACd,OAAO,CACL,CAAC,GAAG,CACF,WAAW,CAAC,MAAM,CAClB,IAAI,SAAS,CAAC,CACd,SAAS,CAAC,CAAC,IAAI,CACb,6CAA6C,EAC7C,QAAQ,CAAC,KAAK,CAAC,EACf,SAAS,CAAC,SAAS,CACpB,CAAC,EACF,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/01-atoms/Skeleton/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/01-atoms/Skeleton/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -12,7 +12,7 @@ export function SmallInput({ input, error, classContainer, }) {
|
|
|
12
12
|
}, [input.id]);
|
|
13
13
|
return (<div className={clsx('max-w-full', classContainer ?? 'w-[40%]')}>
|
|
14
14
|
<div className="relative h-8">
|
|
15
|
-
<input {...input} id={id} aria-invalid={error ? true : input['aria-invalid']} className={clsx('peer h-full w-full [appearance:textfield] rounded-full border border-black bg-transparent px-1 text-center text-sm font-normal text-black outline-0 transition-all', 'disabled:border-gray-3 disabled:text-gray-3 focus:text-black', 'dark:disabled:border-gray-2 dark:disabled:text-gray-2 dark:border-white dark:text-white dark:focus:text-white', '[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none', input.className)} placeholder=""/>
|
|
15
|
+
<input {...input} id={id} aria-invalid={error ? true : input['aria-invalid']} className={clsx('peer h-full w-full [appearance:textfield] rounded-full border border-black bg-transparent px-1 text-center text-sm font-normal text-black outline-0 transition-all dark:bg-black', 'disabled:border-gray-3 disabled:text-gray-3 focus:text-black', 'dark:disabled:border-gray-2 dark:disabled:text-gray-2 dark:border-white dark:text-white dark:focus:text-white', '[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none', input.className)} placeholder=""/>
|
|
16
16
|
</div>
|
|
17
17
|
</div>);
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmallInput.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/SmallInput/SmallInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAIL,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAmBlD,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,cAAc,GACE;IAChB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,cAAc,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC,CAC9D;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAC3B;QAAA,CAAC,KAAK,CACJ,IAAI,KAAK,CAAC,CACV,EAAE,CAAC,CAAC,EAAE,CAAC,CACP,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CACnD,SAAS,CAAC,CAAC,IAAI,CACb,
|
|
1
|
+
{"version":3,"file":"SmallInput.jsx","sourceRoot":"","sources":["../../../../src/components/01-atoms/SmallInput/SmallInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAIL,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAmBlD,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,cAAc,GACE;IAChB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,cAAc,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC,CAC9D;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAC3B;QAAA,CAAC,KAAK,CACJ,IAAI,KAAK,CAAC,CACV,EAAE,CAAC,CAAC,EAAE,CAAC,CACP,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CACnD,SAAS,CAAC,CAAC,IAAI,CACb,kLAAkL,EAClL,8DAA8D,EAC9D,+GAA+G,EAC/G,+FAA+F,EAC/F,KAAK,CAAC,SAAS,CAChB,CAAC,CACF,WAAW,CAAC,EAAE,EAElB;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -14,6 +14,8 @@ export * from './Tooltip';
|
|
|
14
14
|
export * from './FileUpload';
|
|
15
15
|
export * from './MultiSelect';
|
|
16
16
|
export * from './RadialProgressBar';
|
|
17
|
+
export * from './ProgressBar';
|
|
18
|
+
export * from './Skeleton';
|
|
17
19
|
export * from './Spinner';
|
|
18
20
|
export * from './OtpInput';
|
|
19
21
|
export * from './ThemeSwitch';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/01-atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/01-atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -14,6 +14,8 @@ export * from './Tooltip';
|
|
|
14
14
|
export * from './FileUpload';
|
|
15
15
|
export * from './MultiSelect';
|
|
16
16
|
export * from './RadialProgressBar';
|
|
17
|
+
export * from './ProgressBar';
|
|
18
|
+
export * from './Skeleton';
|
|
17
19
|
export * from './Spinner';
|
|
18
20
|
export * from './OtpInput';
|
|
19
21
|
export * from './ThemeSwitch';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/01-atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/01-atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export type DatePickerQuickAction = {
|
|
3
|
+
readonly label: string;
|
|
4
|
+
readonly value: string;
|
|
5
|
+
};
|
|
6
|
+
export type DatePickerProps = {
|
|
7
|
+
readonly value?: string;
|
|
8
|
+
readonly onChange?: (iso: string) => void;
|
|
9
|
+
readonly minDate?: string;
|
|
10
|
+
readonly maxDate?: string;
|
|
11
|
+
readonly monthLabels: readonly [
|
|
12
|
+
string,
|
|
13
|
+
string,
|
|
14
|
+
string,
|
|
15
|
+
string,
|
|
16
|
+
string,
|
|
17
|
+
string,
|
|
18
|
+
string,
|
|
19
|
+
string,
|
|
20
|
+
string,
|
|
21
|
+
string,
|
|
22
|
+
string,
|
|
23
|
+
string
|
|
24
|
+
];
|
|
25
|
+
readonly weekdayLabels: readonly [
|
|
26
|
+
string,
|
|
27
|
+
string,
|
|
28
|
+
string,
|
|
29
|
+
string,
|
|
30
|
+
string,
|
|
31
|
+
string,
|
|
32
|
+
string
|
|
33
|
+
];
|
|
34
|
+
readonly prevMonthLabel: string;
|
|
35
|
+
readonly nextMonthLabel: string;
|
|
36
|
+
readonly quickActions?: readonly DatePickerQuickAction[];
|
|
37
|
+
readonly label?: string;
|
|
38
|
+
readonly helperText?: string;
|
|
39
|
+
readonly error?: string;
|
|
40
|
+
readonly disabled?: boolean;
|
|
41
|
+
readonly placeholder?: string;
|
|
42
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;
|
|
43
|
+
/**
|
|
44
|
+
* DatePicker renders a pill-shaped date field with a calendar popover.
|
|
45
|
+
* All visible labels are provided by the consumer.
|
|
46
|
+
*
|
|
47
|
+
* @component
|
|
48
|
+
* @example
|
|
49
|
+
* <DatePicker
|
|
50
|
+
* value="2026-09-20"
|
|
51
|
+
* onChange={(iso) => console.log(iso)}
|
|
52
|
+
* monthLabels={['January','February','March','April','May','June','July','August','September','October','November','December']}
|
|
53
|
+
* weekdayLabels={['S','M','T','W','T','F','S']}
|
|
54
|
+
* prevMonthLabel="Previous month"
|
|
55
|
+
* nextMonthLabel="Next month"
|
|
56
|
+
* placeholder="Pick a date"
|
|
57
|
+
* quickActions={[{ label: 'Today', value: '2026-09-14' }]}
|
|
58
|
+
* />
|
|
59
|
+
*
|
|
60
|
+
* @param {DatePickerProps} props - The properties of the DatePicker component.
|
|
61
|
+
* @param {string} [props.value] - Controlled ISO date `YYYY-MM-DD`.
|
|
62
|
+
* @param {(iso: string) => void} [props.onChange] - Fired when a date is selected.
|
|
63
|
+
* @param {string} [props.minDate] - Minimum selectable ISO date.
|
|
64
|
+
* @param {string} [props.maxDate] - Maximum selectable ISO date.
|
|
65
|
+
* @param {readonly string[]} props.monthLabels - Twelve month names.
|
|
66
|
+
* @param {readonly string[]} props.weekdayLabels - Seven weekday short labels starting on Sunday.
|
|
67
|
+
* @param {string} props.prevMonthLabel - Accessible label for previous month.
|
|
68
|
+
* @param {string} props.nextMonthLabel - Accessible label for next month.
|
|
69
|
+
* @param {readonly DatePickerQuickAction[]} [props.quickActions] - Shortcut buttons above the calendar.
|
|
70
|
+
* @param {string} [props.label] - Floating label text.
|
|
71
|
+
* @param {string} [props.helperText] - Helper text below the field.
|
|
72
|
+
* @param {string} [props.error] - Error message below the field.
|
|
73
|
+
* @param {boolean} [props.disabled] - Disables the control.
|
|
74
|
+
* @param {string} [props.placeholder] - Placeholder when no value is set.
|
|
75
|
+
*
|
|
76
|
+
* @returns {ReactNode} The rendered DatePicker component.
|
|
77
|
+
*/
|
|
78
|
+
export declare function DatePicker({ value, onChange, minDate, maxDate, monthLabels, weekdayLabels, prevMonthLabel, nextMonthLabel, quickActions, label, helperText, error, disabled, placeholder, ...restProps }: DatePickerProps): ReactNode;
|
|
79
|
+
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAMf,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;KACP,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,SAAS;QAC/B,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;KACP,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAiFrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAgB,EAChB,WAAW,EACX,GAAG,SAAS,EACb,EAAE,eAAe,GAAG,SAAS,CA6O7B"}
|