@salt-ds/lab 1.0.0-alpha.2 → 1.0.0-alpha.4
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/dist-cjs/packages/lab/src/banner/Banner.css.js +1 -1
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-cjs/packages/lab/src/carousel/Carousel.js +7 -6
- package/dist-cjs/packages/lab/src/carousel/Carousel.js.map +1 -1
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.css.js +1 -1
- package/dist-cjs/packages/lab/src/checkbox/CheckboxIcon.css.js +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/Color.js +9 -0
- package/dist-cjs/packages/lab/src/color-chooser/Color.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/ColorChooser.css.js +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/ColorHelpers.js +2 -2
- package/dist-cjs/packages/lab/src/color-chooser/ColorHelpers.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/Swatch.css.js +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/color-utils.js +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/color-utils.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js +2 -3
- package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactDetails.css.js +1 -1
- package/dist-cjs/packages/lab/src/content-status/ContentStatus.css.js +1 -1
- package/dist-cjs/packages/lab/src/dialog/DialogContent.js +0 -1
- package/dist-cjs/packages/lab/src/dialog/DialogContent.js.map +1 -1
- package/dist-cjs/packages/lab/src/dropdown/DropdownButton.css.js +1 -1
- package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.css.js +1 -1
- package/dist-cjs/packages/lab/src/index.js +0 -5
- package/dist-cjs/packages/lab/src/index.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/Highlighter.css.js +1 -1
- package/dist-cjs/packages/lab/src/list/ListItem.css.js +1 -1
- package/dist-cjs/packages/lab/src/list-deprecated/internal/scrollIntoView.js +1 -5
- package/dist-cjs/packages/lab/src/list-deprecated/internal/scrollIntoView.js.map +1 -1
- package/dist-cjs/packages/lab/src/logo/Logo.css.js +1 -1
- package/dist-cjs/packages/lab/src/metric/MetricContent.css.js +1 -1
- package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js +9 -5
- package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
- package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js +1 -1
- package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
- package/dist-cjs/packages/lab/src/pill/Pill.css.js +1 -1
- package/dist-cjs/packages/lab/src/progress/CircularProgress/CircularProgress.css.js +1 -1
- package/dist-cjs/packages/lab/src/progress/LinearProgress/LinearProgress.css.js +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButton.css.js +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButton.js +44 -25
- package/dist-cjs/packages/lab/src/radio-button/RadioButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.css.js +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js +20 -66
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.css.js +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js +9 -5
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/internal/RadioGroupContext.js.map +1 -1
- package/dist-cjs/packages/lab/src/skip-link/SkipLink.css.js +1 -1
- package/dist-cjs/packages/lab/src/slider/Slider.css.js +1 -1
- package/dist-cjs/packages/lab/src/stepper-input/useStepperInput.js +1 -0
- package/dist-cjs/packages/lab/src/stepper-input/useStepperInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/Tabstrip.css.js +1 -1
- package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.css.js +1 -1
- package/dist-cjs/packages/lab/src/toolbar/Tooltray.css.js +1 -1
- package/dist-es/packages/lab/src/banner/Banner.css.js +1 -1
- package/dist-es/packages/lab/src/calendar/internal/CalendarCarousel.js +2 -2
- package/dist-es/packages/lab/src/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-es/packages/lab/src/calendar/internal/utils.js +1 -1
- package/dist-es/packages/lab/src/calendar/useCalendar.js +1 -1
- package/dist-es/packages/lab/src/carousel/Carousel.js +7 -6
- package/dist-es/packages/lab/src/carousel/Carousel.js.map +1 -1
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.css.js +1 -1
- package/dist-es/packages/lab/src/cascading-menu/internal/useRefsManager.js +1 -1
- package/dist-es/packages/lab/src/checkbox/CheckboxIcon.css.js +1 -1
- package/dist-es/packages/lab/src/color-chooser/Color.js +9 -0
- package/dist-es/packages/lab/src/color-chooser/Color.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/ColorChooser.css.js +1 -1
- package/dist-es/packages/lab/src/color-chooser/ColorHelpers.js +2 -2
- package/dist-es/packages/lab/src/color-chooser/ColorHelpers.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/Swatch.css.js +1 -1
- package/dist-es/packages/lab/src/color-chooser/color-utils.js +1 -1
- package/dist-es/packages/lab/src/color-chooser/color-utils.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactAvatar.js +2 -3
- package/dist-es/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactDetails.css.js +1 -1
- package/dist-es/packages/lab/src/content-status/ContentStatus.css.js +1 -1
- package/dist-es/packages/lab/src/dialog/DialogContent.js +0 -1
- package/dist-es/packages/lab/src/dialog/DialogContent.js.map +1 -1
- package/dist-es/packages/lab/src/dropdown/DropdownButton.css.js +1 -1
- package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.css.js +1 -1
- package/dist-es/packages/lab/src/index.js +1 -3
- package/dist-es/packages/lab/src/index.js.map +1 -1
- package/dist-es/packages/lab/src/list/Highlighter.css.js +1 -1
- package/dist-es/packages/lab/src/list/ListItem.css.js +1 -1
- package/dist-es/packages/lab/src/list-deprecated/internal/scrollIntoView.js +2 -2
- package/dist-es/packages/lab/src/list-deprecated/internal/scrollIntoView.js.map +1 -1
- package/dist-es/packages/lab/src/list-deprecated/useList.js +1 -1
- package/dist-es/packages/lab/src/logo/Logo.css.js +1 -1
- package/dist-es/packages/lab/src/metric/MetricContent.css.js +1 -1
- package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js +9 -5
- package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
- package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js +1 -1
- package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
- package/dist-es/packages/lab/src/pill/Pill.css.js +1 -1
- package/dist-es/packages/lab/src/progress/CircularProgress/CircularProgress.css.js +1 -1
- package/dist-es/packages/lab/src/progress/LinearProgress/LinearProgress.css.js +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButton.css.js +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButton.js +46 -27
- package/dist-es/packages/lab/src/radio-button/RadioButton.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.css.js +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js +23 -69
- package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.css.js +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js +10 -5
- package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/internal/RadioGroupContext.js.map +1 -1
- package/dist-es/packages/lab/src/responsive/useDynamicCollapse.js +1 -1
- package/dist-es/packages/lab/src/skip-link/SkipLink.css.js +1 -1
- package/dist-es/packages/lab/src/skip-link/internal/useManageFocusOnTarget.js +1 -1
- package/dist-es/packages/lab/src/slider/Slider.css.js +1 -1
- package/dist-es/packages/lab/src/slider/internal/useSliderMouseDown.js +1 -1
- package/dist-es/packages/lab/src/stepper-input/useStepperInput.js +1 -0
- package/dist-es/packages/lab/src/stepper-input/useStepperInput.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/Tabstrip.css.js +1 -1
- package/dist-es/packages/lab/src/toggle-button/ToggleButton.css.js +1 -1
- package/dist-es/packages/lab/src/toolbar/Tooltray.css.js +1 -1
- package/dist-es/packages/lab/src/toolbar/toolbar-field/useToolbarField.js +1 -1
- package/dist-es/packages/lab/src/utils/useEventCallback.js +1 -1
- package/dist-types/color-chooser/Color.d.ts +2 -0
- package/dist-types/color-chooser/ColorHelpers.d.ts +3 -1
- package/dist-types/contact-details/ContactAvatar.d.ts +3 -4
- package/dist-types/index.d.ts +0 -1
- package/dist-types/radio-button/RadioButton.d.ts +33 -10
- package/dist-types/radio-button/RadioButtonGroup.d.ts +22 -12
- package/dist-types/radio-button/RadioButtonIcon.d.ts +4 -6
- package/dist-types/radio-button/index.d.ts +0 -1
- package/dist-types/stepper-input/useStepperInput.d.ts +1 -0
- package/package.json +4 -4
- package/dist-cjs/packages/lab/src/avatar/Avatar.css.js +0 -9
- package/dist-cjs/packages/lab/src/avatar/Avatar.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/avatar/Avatar.js +0 -62
- package/dist-cjs/packages/lab/src/avatar/Avatar.js.map +0 -1
- package/dist-cjs/packages/lab/src/avatar/internal/DefaultAvatar.js +0 -45
- package/dist-cjs/packages/lab/src/avatar/internal/DefaultAvatar.js.map +0 -1
- package/dist-cjs/packages/lab/src/avatar/internal/constants.js +0 -8
- package/dist-cjs/packages/lab/src/avatar/internal/constants.js.map +0 -1
- package/dist-cjs/packages/lab/src/avatar/internal/useLoaded.js +0 -47
- package/dist-cjs/packages/lab/src/avatar/internal/useLoaded.js.map +0 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.css.js +0 -9
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js +0 -142
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js.map +0 -1
- package/dist-es/packages/lab/src/avatar/Avatar.css.js +0 -7
- package/dist-es/packages/lab/src/avatar/Avatar.css.js.map +0 -1
- package/dist-es/packages/lab/src/avatar/Avatar.js +0 -58
- package/dist-es/packages/lab/src/avatar/Avatar.js.map +0 -1
- package/dist-es/packages/lab/src/avatar/internal/DefaultAvatar.js +0 -41
- package/dist-es/packages/lab/src/avatar/internal/DefaultAvatar.js.map +0 -1
- package/dist-es/packages/lab/src/avatar/internal/constants.js +0 -4
- package/dist-es/packages/lab/src/avatar/internal/constants.js.map +0 -1
- package/dist-es/packages/lab/src/avatar/internal/useLoaded.js +0 -43
- package/dist-es/packages/lab/src/avatar/internal/useLoaded.js.map +0 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonBase.css.js +0 -7
- package/dist-es/packages/lab/src/radio-button/RadioButtonBase.css.js.map +0 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js +0 -138
- package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js.map +0 -1
- package/dist-types/avatar/Avatar.d.ts +0 -13
- package/dist-types/avatar/index.d.ts +0 -1
- package/dist-types/avatar/internal/DefaultAvatar.d.ts +0 -2
- package/dist-types/avatar/internal/constants.d.ts +0 -1
- package/dist-types/avatar/internal/useLoaded.d.ts +0 -2
- package/dist-types/radio-button/RadioButtonBase.d.ts +0 -22
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { AvatarProps } from "
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
export declare const ContactAvatar: import("react").ForwardRefExoticComponent<ContactAvatarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
2
|
+
import { AvatarProps } from "@salt-ds/core";
|
|
3
|
+
export declare type ContactAvatarProps = AvatarProps;
|
|
4
|
+
export declare const ContactAvatar: import("react").ForwardRefExoticComponent<AvatarProps & import("react").RefAttributes<HTMLDivElement>>;
|
package/dist-types/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export type { ListChangeHandler as ListChangeHandlerDeprecated, ListSelectHandle
|
|
|
3
3
|
export { ListItemBase as ListItemBaseDeprecated, useListItem as useListItemDeprecated, } from "./list-deprecated";
|
|
4
4
|
export * from "./accordion";
|
|
5
5
|
export * from "./app-header";
|
|
6
|
-
export * from "./avatar";
|
|
7
6
|
export * from "./badge";
|
|
8
7
|
export * from "./banner";
|
|
9
8
|
export * from "./breadcrumbs";
|
|
@@ -1,22 +1,45 @@
|
|
|
1
|
-
import { ChangeEventHandler, HTMLAttributes,
|
|
2
|
-
import { ControlLabelProps } from "../control-label";
|
|
3
|
-
import { RadioButtonIconProps } from "./RadioButtonIcon";
|
|
1
|
+
import { ChangeEventHandler, FocusEventHandler, HTMLAttributes, InputHTMLAttributes, ReactNode } from "react";
|
|
4
2
|
import "./RadioButton.css";
|
|
5
|
-
export interface RadioButtonProps extends Omit<HTMLAttributes<
|
|
3
|
+
export interface RadioButtonProps extends Omit<HTMLAttributes<HTMLLabelElement>, "onChange" | "onBlur" | "onFocus"> {
|
|
4
|
+
/**
|
|
5
|
+
* Set the default selected radio button in the group
|
|
6
|
+
*/
|
|
6
7
|
checked?: boolean;
|
|
7
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Set the disabled state
|
|
10
|
+
*/
|
|
8
11
|
disabled?: boolean;
|
|
9
12
|
/**
|
|
10
|
-
*
|
|
13
|
+
* Set the error state
|
|
14
|
+
*/
|
|
15
|
+
error?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Props to be passed to the radio input
|
|
18
|
+
*/
|
|
19
|
+
inputProps?: Partial<InputHTMLAttributes<HTMLInputElement>>;
|
|
20
|
+
/**
|
|
21
|
+
* The label to be shown next to the radio icon
|
|
11
22
|
*/
|
|
12
|
-
|
|
23
|
+
label?: ReactNode;
|
|
13
24
|
/**
|
|
14
|
-
*
|
|
25
|
+
* Name of the radio group
|
|
15
26
|
*/
|
|
16
|
-
label?: ControlLabelProps["label"];
|
|
17
|
-
LabelProps?: Partial<ControlLabelProps>;
|
|
18
27
|
name?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Callback for blur event
|
|
30
|
+
*/
|
|
31
|
+
onBlur?: FocusEventHandler<HTMLInputElement>;
|
|
32
|
+
/**
|
|
33
|
+
* Callback for change event
|
|
34
|
+
*/
|
|
19
35
|
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
36
|
+
/**
|
|
37
|
+
* Callback for focus event
|
|
38
|
+
*/
|
|
39
|
+
onFocus?: FocusEventHandler<HTMLInputElement>;
|
|
40
|
+
/**
|
|
41
|
+
* Value of radio button
|
|
42
|
+
*/
|
|
20
43
|
value?: string;
|
|
21
44
|
}
|
|
22
45
|
export declare const RadioButton: import("react").ForwardRefExoticComponent<RadioButtonProps & import("react").RefAttributes<HTMLLabelElement>>;
|
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
import { ChangeEventHandler,
|
|
2
|
-
import { RadioButtonIconProps } from "./RadioButtonIcon";
|
|
1
|
+
import { ChangeEventHandler, ComponentPropsWithoutRef } from "react";
|
|
3
2
|
import "./RadioButtonGroup.css";
|
|
4
|
-
export interface RadioButtonGroupProps extends
|
|
5
|
-
|
|
3
|
+
export interface RadioButtonGroupProps extends Omit<ComponentPropsWithoutRef<"fieldset">, "onChange"> {
|
|
4
|
+
/**
|
|
5
|
+
* Set the selected value when initialized.
|
|
6
|
+
*/
|
|
6
7
|
defaultValue?: string;
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Set the group direction.
|
|
10
|
+
*/
|
|
11
|
+
direction?: "horizontal" | "vertical";
|
|
12
|
+
/**
|
|
13
|
+
* Only for horizontal direction. When `true` the text in radio button label will wrap to fit within the container. Otherwise the radio buttons will wrap onto the next line.
|
|
14
|
+
*/
|
|
15
|
+
wrap?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The name to be set on each radio button within the group. If not set, then one will be generated for you.
|
|
18
|
+
*/
|
|
9
19
|
name?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Callback for change event.
|
|
22
|
+
*/
|
|
10
23
|
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
value?: string;
|
|
15
|
-
}[];
|
|
16
|
-
row?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The value of the radio group, required for a controlled component.
|
|
26
|
+
*/
|
|
17
27
|
value?: string;
|
|
18
28
|
}
|
|
19
29
|
export declare const RadioButtonGroup: import("react").ForwardRefExoticComponent<RadioButtonGroupProps & import("react").RefAttributes<HTMLFieldSetElement>>;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import "./RadioButtonIcon.css";
|
|
3
3
|
export interface RadioButtonIconProps {
|
|
4
4
|
checked?: boolean;
|
|
5
|
+
error?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
5
7
|
}
|
|
6
8
|
/**
|
|
7
9
|
* Default radio icon
|
|
8
10
|
*/
|
|
9
|
-
export declare const RadioButtonIcon: ({ checked }: RadioButtonIconProps) => JSX.Element;
|
|
10
|
-
/**
|
|
11
|
-
* Creates a component that can be given to Radio or RadioButton as the 'icon'
|
|
12
|
-
*/
|
|
13
|
-
export declare const makeRadioIcon: (iconChecked: ReactElement | null, iconUnchecked: ReactElement | null) => ComponentType<RadioButtonIconProps>;
|
|
11
|
+
export declare const RadioButtonIcon: ({ checked, error, disabled, }: RadioButtonIconProps) => JSX.Element;
|
|
@@ -280,6 +280,7 @@ export declare const useStepperInput: (props: StepperInputProps, inputRef: Mutab
|
|
|
280
280
|
formNoValidate?: boolean | undefined;
|
|
281
281
|
formTarget?: string | undefined;
|
|
282
282
|
value?: string | number | readonly string[] | undefined;
|
|
283
|
+
"data-testid": string;
|
|
283
284
|
};
|
|
284
285
|
getInputProps: (inputProps?: InputProps) => InputProps | undefined;
|
|
285
286
|
incrementButtonDown: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salt-ds/lab",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.4",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "dist-cjs/packages/lab/src/index.js",
|
|
6
6
|
"sideEffects": [
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
"module": "dist-es/packages/lab/src/index.js",
|
|
24
24
|
"typings": "dist-types/index.d.ts",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@salt-ds/core": "1.
|
|
26
|
+
"@salt-ds/core": "1.4.0",
|
|
27
27
|
"clsx": "^1.2.1",
|
|
28
28
|
"react-window": "^1.8.6",
|
|
29
|
-
"compute-scroll-into-view": "^
|
|
30
|
-
"@floating-ui/react": "^0.
|
|
29
|
+
"compute-scroll-into-view": "^3.0.0",
|
|
30
|
+
"@floating-ui/react": "^0.20.0",
|
|
31
31
|
"@salt-ds/icons": "1.1.0",
|
|
32
32
|
"@internationalized/date": "^3.0.0",
|
|
33
33
|
"tinycolor2": "^1.4.2",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
|
|
4
|
-
|
|
5
|
-
var css_248z = "/* Default variables applied to the root element */\n.saltAvatar {\n --avatar-background: var(--saltAvatar-background, var(--salt-accent-background));\n --avatar-foreground: var(--saltAvatar-foreground, var(--salt-accent-foreground));\n}\n\n/* Style applied to the root element */\n.saltAvatar {\n background: var(--avatar-background);\n color: var(--avatar-foreground);\n font-size: var(--avatar-fontSize);\n line-height: var(--avatar-container-size);\n width: var(--avatar-container-size);\n height: var(--avatar-container-size);\n letter-spacing: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n user-select: none;\n border-radius: 50%;\n}\n\n/* Style applied to the image element */\n.saltAvatar-image {\n width: 100%;\n height: 100%;\n text-align: center;\n object-fit: cover;\n color: transparent;\n text-indent: 10000px;\n}\n\n/* Style applied to the svg element */\n.saltAvatar > svg {\n width: var(--avatar-container-size);\n height: var(--avatar-container-size);\n}\n\n.saltAvatar-svgDisc {\n fill: var(--avatar-background);\n}\n\n.saltAvatar-svgHead {\n fill: var(--avatar-foreground);\n}\n\n/* Style applied when size is small */\n.saltAvatar-small {\n --avatar-fontSize: 8px;\n --avatar-container-size: var(--salt-size-graphic-small);\n}\n\n/* Style applied when size is medium */\n.saltAvatar-medium {\n --avatar-fontSize: 11px;\n --avatar-container-size: var(--salt-size-graphic-medium);\n}\n\n/* Style applied when size is large */\n.saltAvatar-large {\n --avatar-fontSize: 14px;\n --avatar-container-size: var(--salt-size-graphic-large);\n}\n";
|
|
6
|
-
styleInject_es(css_248z);
|
|
7
|
-
|
|
8
|
-
module.exports = css_248z;
|
|
9
|
-
//# sourceMappingURL=Avatar.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var core = require('@salt-ds/core');
|
|
7
|
-
var clsx = require('clsx');
|
|
8
|
-
var React = require('react');
|
|
9
|
-
var constants = require('./internal/constants.js');
|
|
10
|
-
var DefaultAvatar = require('./internal/DefaultAvatar.js');
|
|
11
|
-
var useLoaded = require('./internal/useLoaded.js');
|
|
12
|
-
require('./Avatar.css.js');
|
|
13
|
-
|
|
14
|
-
const withBaseName = core.makePrefixer(constants.classBase);
|
|
15
|
-
const Avatar = React.forwardRef(function Avatar2({
|
|
16
|
-
alt = "",
|
|
17
|
-
className,
|
|
18
|
-
children: childrenProp,
|
|
19
|
-
id: idProp,
|
|
20
|
-
size = "medium",
|
|
21
|
-
src,
|
|
22
|
-
srcSet,
|
|
23
|
-
title = "user",
|
|
24
|
-
imgProps,
|
|
25
|
-
sizes,
|
|
26
|
-
...rest
|
|
27
|
-
}, ref) {
|
|
28
|
-
let children;
|
|
29
|
-
const id = core.useId(idProp);
|
|
30
|
-
const loaded = useLoaded.useLoaded({ ...imgProps, src, srcSet });
|
|
31
|
-
const hasImg = src || srcSet;
|
|
32
|
-
const hasImgNotFailing = hasImg && loaded !== "error";
|
|
33
|
-
if (hasImgNotFailing) {
|
|
34
|
-
children = /* @__PURE__ */ jsxRuntime.jsx("img", {
|
|
35
|
-
className: withBaseName("image"),
|
|
36
|
-
alt,
|
|
37
|
-
src,
|
|
38
|
-
srcSet,
|
|
39
|
-
sizes,
|
|
40
|
-
...imgProps
|
|
41
|
-
});
|
|
42
|
-
} else if (childrenProp != null) {
|
|
43
|
-
children = childrenProp;
|
|
44
|
-
} else if (hasImg && alt) {
|
|
45
|
-
children = alt[0];
|
|
46
|
-
} else {
|
|
47
|
-
children = /* @__PURE__ */ jsxRuntime.jsx(DefaultAvatar.DefaultAvatar, {
|
|
48
|
-
id,
|
|
49
|
-
title,
|
|
50
|
-
...rest
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
54
|
-
ref,
|
|
55
|
-
className: clsx.clsx(withBaseName(), withBaseName(size), className),
|
|
56
|
-
...rest,
|
|
57
|
-
children
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
exports.Avatar = Avatar;
|
|
62
|
-
//# sourceMappingURL=Avatar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../src/avatar/Avatar.tsx"],"sourcesContent":["import { makePrefixer, useId } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, HTMLAttributes, ImgHTMLAttributes } from \"react\";\nimport { classBase } from \"./internal/constants\";\nimport { DefaultAvatar } from \"./internal/DefaultAvatar\";\nimport { useLoaded } from \"./internal/useLoaded\";\n\nimport \"./Avatar.css\";\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n alt?: string;\n id?: string;\n imgProps?: ImgHTMLAttributes<HTMLImageElement>;\n size?: \"small\" | \"medium\" | \"large\";\n sizes?: string;\n src?: string;\n srcSet?: string;\n title?: string;\n}\n\nconst withBaseName = makePrefixer(classBase);\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n alt = \"\",\n className,\n children: childrenProp,\n id: idProp,\n size = \"medium\",\n src,\n srcSet,\n title = \"user\",\n imgProps,\n sizes,\n ...rest\n },\n ref\n) {\n let children;\n const id = useId(idProp);\n\n const loaded = useLoaded({ ...imgProps, src, srcSet });\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== \"error\";\n\n if (hasImgNotFailing) {\n children = (\n <img\n className={withBaseName(\"image\")}\n alt={alt}\n src={src}\n srcSet={srcSet}\n sizes={sizes}\n {...imgProps}\n />\n );\n } else if (childrenProp != null) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = <DefaultAvatar id={id} title={title} {...rest} />;\n }\n\n return (\n <div\n ref={ref}\n className={clsx(withBaseName(), withBaseName(size), className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n"],"names":["makePrefixer","classBase","forwardRef","Avatar","useId","useLoaded","jsx","DefaultAvatar","clsx"],"mappings":";;;;;;;;;;;;;AAoBA,MAAM,YAAA,GAAeA,kBAAaC,mBAAS,CAAA,CAAA;AAE9B,MAAA,MAAA,GAASC,gBAAwC,CAAA,SAASC,OACrE,CAAA;AAAA,EACE,GAAM,GAAA,EAAA;AAAA,EACN,SAAA;AAAA,EACA,QAAU,EAAA,YAAA;AAAA,EACV,EAAI,EAAA,MAAA;AAAA,EACJ,IAAO,GAAA,QAAA;AAAA,EACP,GAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAQ,GAAA,MAAA;AAAA,EACR,QAAA;AAAA,EACA,KAAA;AAAA,EACG,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAI,IAAA,QAAA,CAAA;AACJ,EAAM,MAAA,EAAA,GAAKC,WAAM,MAAM,CAAA,CAAA;AAEvB,EAAA,MAAM,SAASC,mBAAU,CAAA,EAAE,GAAG,QAAU,EAAA,GAAA,EAAK,QAAQ,CAAA,CAAA;AACrD,EAAA,MAAM,SAAS,GAAO,IAAA,MAAA,CAAA;AACtB,EAAM,MAAA,gBAAA,GAAmB,UAAU,MAAW,KAAA,OAAA,CAAA;AAE9C,EAAA,IAAI,gBAAkB,EAAA;AACpB,IAAA,QAAA,mBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,MAC/B,GAAA;AAAA,MACA,GAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,QAAA;AAAA,KACN,CAAA,CAAA;AAAA,GAEJ,MAAA,IAAW,gBAAgB,IAAM,EAAA;AAC/B,IAAW,QAAA,GAAA,YAAA,CAAA;AAAA,GACb,MAAA,IAAW,UAAU,GAAK,EAAA;AACxB,IAAA,QAAA,GAAW,GAAI,CAAA,CAAA,CAAA,CAAA;AAAA,GACV,MAAA;AACL,IAAA,QAAA,mBAAYA,cAAA,CAAAC,2BAAA,EAAA;AAAA,MAAc,EAAA;AAAA,MAAQ,KAAA;AAAA,MAAe,GAAG,IAAA;AAAA,KAAM,CAAA,CAAA;AAAA,GAC5D;AAEA,EAAA,uBACGD,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAWE,SAAK,CAAA,YAAA,IAAgB,YAAa,CAAA,IAAI,GAAG,SAAS,CAAA;AAAA,IAC5D,GAAG,IAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var core = require('@salt-ds/core');
|
|
7
|
-
var constants = require('./constants.js');
|
|
8
|
-
|
|
9
|
-
const withBaseName = core.makePrefixer(constants.classBase);
|
|
10
|
-
function DefaultAvatar({ id, title }) {
|
|
11
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("svg", {
|
|
12
|
-
"aria-labelledby": id,
|
|
13
|
-
height: "64px",
|
|
14
|
-
role: "img",
|
|
15
|
-
viewBox: "0 0 64 64",
|
|
16
|
-
width: "64px",
|
|
17
|
-
children: [
|
|
18
|
-
/* @__PURE__ */ jsxRuntime.jsx("title", {
|
|
19
|
-
id,
|
|
20
|
-
children: title
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ jsxRuntime.jsx("g", {
|
|
23
|
-
className: withBaseName("svgRoot"),
|
|
24
|
-
fill: "none",
|
|
25
|
-
fillRule: "evenodd",
|
|
26
|
-
stroke: "none",
|
|
27
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("g", {
|
|
28
|
-
children: [
|
|
29
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", {
|
|
30
|
-
className: withBaseName("svgDisc"),
|
|
31
|
-
d: "M0,32 C0,49.6769231 14.3230769,64 32,64 C49.6769231,64 64,49.6769231 64,32 C64,14.3230769 49.6769231,0 32,0 C14.3230769,0 0,14.3230769 0,32 Z"
|
|
32
|
-
}),
|
|
33
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", {
|
|
34
|
-
className: withBaseName("svgHead"),
|
|
35
|
-
d: "M31.9995627,62.8538462 C22.4716151,62.8538462 13.9354845,58.5287108 8.24473082,51.7487468 C11.1388856,50.496781 18.3580131,47.8952936 22.9268753,46.5620313 C23.2845799,46.4482162 23.349617,46.4319569 23.349617,44.8222866 C23.349617,43.0988012 23.1545055,41.879354 22.7317638,40.9850927 C22.1626884,39.7656455 21.479798,37.7007148 21.2359085,35.8469925 C20.5530181,35.0504496 19.6262382,33.4893945 19.0246442,30.4978466 C18.5043468,27.8638406 18.7482362,26.9045421 19.0896814,26.0102808 C19.1222,25.9127251 19.1709779,25.8151693 19.1872372,25.7176135 C19.3173116,25.1160195 19.1384593,21.8966789 18.683199,19.4090065 C18.3742724,17.7017804 18.7644955,14.0759574 21.1220935,11.0679876 C22.6016894,9.16564991 25.4470663,6.84057054 30.5524853,6.51538462 L33.3978621,6.51538462 C38.5845776,6.84057054 41.4299545,9.16564991 42.9095504,11.0679876 C45.2671484,14.0759574 45.6573715,17.7017804 45.3321856,19.4090065 C44.8769253,21.8966789 44.698073,25.0997602 44.8281474,25.7176135 C44.8444067,25.8151693 44.8931846,25.9127251 44.9257032,25.9940215 C45.2671484,26.8882828 45.5272971,27.8475813 44.9907404,30.4815873 C44.3891464,33.4732978 43.4623665,35.0340277 42.7794761,35.8308958 C42.5355866,37.6844555 41.8526962,39.7331269 41.2836208,40.9686708 C40.747064,42.0907248 40.2105073,43.4239871 40.2105073,44.7572494 C40.2105073,46.3669197 40.2755445,46.383179 40.6495083,46.4968315 C44.9907404,47.7814785 52.4700167,50.3667066 55.7706538,51.7162282 C50.0799001,58.5126141 41.5437696,62.8538462 31.9995627,62.8538462"
|
|
36
|
-
})
|
|
37
|
-
]
|
|
38
|
-
})
|
|
39
|
-
})
|
|
40
|
-
]
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
exports.DefaultAvatar = DefaultAvatar;
|
|
45
|
-
//# sourceMappingURL=DefaultAvatar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultAvatar.js","sources":["../src/avatar/internal/DefaultAvatar.tsx"],"sourcesContent":["import { HTMLAttributes } from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { classBase } from \"./constants\";\n\nconst withBaseName = makePrefixer(classBase);\n\nexport function DefaultAvatar({ id, title }: HTMLAttributes<HTMLElement>) {\n return (\n <svg\n aria-labelledby={id}\n height=\"64px\"\n role=\"img\"\n viewBox=\"0 0 64 64\"\n width=\"64px\"\n >\n <title id={id}>{title}</title>\n <g\n className={withBaseName(\"svgRoot\")}\n fill=\"none\"\n fillRule=\"evenodd\"\n stroke=\"none\"\n >\n <g>\n <path\n className={withBaseName(\"svgDisc\")}\n d=\"M0,32 C0,49.6769231 14.3230769,64 32,64 C49.6769231,64 64,49.6769231 64,32 C64,14.3230769 49.6769231,0 32,0 C14.3230769,0 0,14.3230769 0,32 Z\"\n />\n <path\n className={withBaseName(\"svgHead\")}\n d=\"M31.9995627,62.8538462 C22.4716151,62.8538462 13.9354845,58.5287108 8.24473082,51.7487468 C11.1388856,50.496781 18.3580131,47.8952936 22.9268753,46.5620313 C23.2845799,46.4482162 23.349617,46.4319569 23.349617,44.8222866 C23.349617,43.0988012 23.1545055,41.879354 22.7317638,40.9850927 C22.1626884,39.7656455 21.479798,37.7007148 21.2359085,35.8469925 C20.5530181,35.0504496 19.6262382,33.4893945 19.0246442,30.4978466 C18.5043468,27.8638406 18.7482362,26.9045421 19.0896814,26.0102808 C19.1222,25.9127251 19.1709779,25.8151693 19.1872372,25.7176135 C19.3173116,25.1160195 19.1384593,21.8966789 18.683199,19.4090065 C18.3742724,17.7017804 18.7644955,14.0759574 21.1220935,11.0679876 C22.6016894,9.16564991 25.4470663,6.84057054 30.5524853,6.51538462 L33.3978621,6.51538462 C38.5845776,6.84057054 41.4299545,9.16564991 42.9095504,11.0679876 C45.2671484,14.0759574 45.6573715,17.7017804 45.3321856,19.4090065 C44.8769253,21.8966789 44.698073,25.0997602 44.8281474,25.7176135 C44.8444067,25.8151693 44.8931846,25.9127251 44.9257032,25.9940215 C45.2671484,26.8882828 45.5272971,27.8475813 44.9907404,30.4815873 C44.3891464,33.4732978 43.4623665,35.0340277 42.7794761,35.8308958 C42.5355866,37.6844555 41.8526962,39.7331269 41.2836208,40.9686708 C40.747064,42.0907248 40.2105073,43.4239871 40.2105073,44.7572494 C40.2105073,46.3669197 40.2755445,46.383179 40.6495083,46.4968315 C44.9907404,47.7814785 52.4700167,50.3667066 55.7706538,51.7162282 C50.0799001,58.5126141 41.5437696,62.8538462 31.9995627,62.8538462\"\n />\n </g>\n </g>\n </svg>\n );\n}\n"],"names":["makePrefixer","classBase","jsxs","jsx"],"mappings":";;;;;;;;AAIA,MAAM,YAAA,GAAeA,kBAAaC,mBAAS,CAAA,CAAA;AAEpC,SAAS,aAAc,CAAA,EAAE,EAAI,EAAA,KAAA,EAAsC,EAAA;AACxE,EAAA,uBACGC,eAAA,CAAA,KAAA,EAAA;AAAA,IACC,iBAAiB,EAAA,EAAA;AAAA,IACjB,MAAO,EAAA,MAAA;AAAA,IACP,IAAK,EAAA,KAAA;AAAA,IACL,OAAQ,EAAA,WAAA;AAAA,IACR,KAAM,EAAA,MAAA;AAAA,IAEN,QAAA,EAAA;AAAA,sBAACC,cAAA,CAAA,OAAA,EAAA;AAAA,QAAM,EAAA;AAAA,QAAS,QAAA,EAAA,KAAA;AAAA,OAAM,CAAA;AAAA,sBACrBA,cAAA,CAAA,GAAA,EAAA;AAAA,QACC,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,QACjC,IAAK,EAAA,MAAA;AAAA,QACL,QAAS,EAAA,SAAA;AAAA,QACT,MAAO,EAAA,MAAA;AAAA,QAEP,QAAC,kBAAAD,eAAA,CAAA,GAAA,EAAA;AAAA,UACC,QAAA,EAAA;AAAA,4BAACC,cAAA,CAAA,MAAA,EAAA;AAAA,cACC,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,cACjC,CAAE,EAAA,+IAAA;AAAA,aACJ,CAAA;AAAA,4BACCA,cAAA,CAAA,MAAA,EAAA;AAAA,cACC,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,cACjC,CAAE,EAAA,o+CAAA;AAAA,aACJ,CAAA;AAAA,WAAA;AAAA,SACF,CAAA;AAAA,OACF,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../src/avatar/internal/constants.ts"],"sourcesContent":["export const classBase = \"saltAvatar\";\n"],"names":[],"mappings":";;;;AAAO,MAAM,SAAY,GAAA;;;;"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var React = require('react');
|
|
6
|
-
|
|
7
|
-
function useLoaded({
|
|
8
|
-
crossOrigin,
|
|
9
|
-
referrerPolicy,
|
|
10
|
-
src,
|
|
11
|
-
srcSet
|
|
12
|
-
}) {
|
|
13
|
-
const [loaded, setLoaded] = React.useState(false);
|
|
14
|
-
React.useEffect(() => {
|
|
15
|
-
if (!src && !srcSet) {
|
|
16
|
-
return void 0;
|
|
17
|
-
}
|
|
18
|
-
setLoaded(false);
|
|
19
|
-
let active = true;
|
|
20
|
-
const image = new Image();
|
|
21
|
-
image.onload = () => {
|
|
22
|
-
if (!active) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
setLoaded("loaded");
|
|
26
|
-
};
|
|
27
|
-
image.onerror = () => {
|
|
28
|
-
if (!active) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
setLoaded("error");
|
|
32
|
-
};
|
|
33
|
-
image.crossOrigin = crossOrigin;
|
|
34
|
-
image.referrerPolicy = referrerPolicy;
|
|
35
|
-
image.src = src;
|
|
36
|
-
if (srcSet) {
|
|
37
|
-
image.srcset = srcSet;
|
|
38
|
-
}
|
|
39
|
-
return () => {
|
|
40
|
-
active = false;
|
|
41
|
-
};
|
|
42
|
-
}, [crossOrigin, referrerPolicy, src, srcSet]);
|
|
43
|
-
return loaded;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
exports.useLoaded = useLoaded;
|
|
47
|
-
//# sourceMappingURL=useLoaded.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLoaded.js","sources":["../src/avatar/internal/useLoaded.ts"],"sourcesContent":["import { ImgHTMLAttributes, useEffect, useState } from \"react\";\n\nexport function useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet,\n}: ImgHTMLAttributes<HTMLImageElement>) {\n const [loaded, setLoaded] = useState<false | \"loaded\" | \"error\">(false);\n\n useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n\n setLoaded(false);\n\n let active = true;\n const image = new Image();\n image.onload = () => {\n if (!active) {\n return;\n }\n setLoaded(\"loaded\");\n };\n image.onerror = () => {\n if (!active) {\n return;\n }\n setLoaded(\"error\");\n };\n image.crossOrigin = crossOrigin as HTMLImageElement[\"crossOrigin\"];\n image.referrerPolicy = referrerPolicy as HTMLImageElement[\"referrerPolicy\"];\n image.src = src as HTMLImageElement[\"src\"];\n if (srcSet) {\n image.srcset = srcSet;\n }\n\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n\n return loaded;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;;;AAEO,SAAS,SAAU,CAAA;AAAA,EACxB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AACF,CAAwC,EAAA;AACtC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAqC,KAAK,CAAA,CAAA;AAEtE,EAAAC,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,GAAO,IAAA,CAAC,MAAQ,EAAA;AACnB,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACT;AAEA,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAEf,IAAA,IAAI,MAAS,GAAA,IAAA,CAAA;AACb,IAAM,MAAA,KAAA,GAAQ,IAAI,KAAM,EAAA,CAAA;AACxB,IAAA,KAAA,CAAM,SAAS,MAAM;AACnB,MAAA,IAAI,CAAC,MAAQ,EAAA;AACX,QAAA,OAAA;AAAA,OACF;AACA,MAAA,SAAA,CAAU,QAAQ,CAAA,CAAA;AAAA,KACpB,CAAA;AACA,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,IAAI,CAAC,MAAQ,EAAA;AACX,QAAA,OAAA;AAAA,OACF;AACA,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB,CAAA;AACA,IAAA,KAAA,CAAM,WAAc,GAAA,WAAA,CAAA;AACpB,IAAA,KAAA,CAAM,cAAiB,GAAA,cAAA,CAAA;AACvB,IAAA,KAAA,CAAM,GAAM,GAAA,GAAA,CAAA;AACZ,IAAA,IAAI,MAAQ,EAAA;AACV,MAAA,KAAA,CAAM,MAAS,GAAA,MAAA,CAAA;AAAA,KACjB;AAEA,IAAA,OAAO,MAAM;AACX,MAAS,MAAA,GAAA,KAAA,CAAA;AAAA,KACX,CAAA;AAAA,KACC,CAAC,WAAA,EAAa,cAAgB,EAAA,GAAA,EAAK,MAAM,CAAC,CAAA,CAAA;AAE7C,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
|
|
4
|
-
|
|
5
|
-
var css_248z = "/* Styles applied to root component */\n.saltRadioButtonBase {\n color: var(--salt-text-secondary-foreground);\n padding: 1px 0;\n flex: 0 0 auto;\n overflow: visible;\n text-align: center;\n border-radius: 50%;\n border: 0;\n margin: 0;\n display: inline-flex;\n outline: 0;\n position: relative;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n text-decoration: none;\n background-color: transparent;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n/* Styles applied to container of Radio input and icon */\n.saltRadioButtonBase-radioContainer {\n width: 100%;\n display: flex;\n align-items: inherit;\n justify-content: inherit;\n}\n\n/* Styles applied to input component */\n.saltRadioButtonBase-input {\n cursor: inherit;\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n margin: 0;\n padding: 0;\n z-index: var(--salt-zIndex-default);\n}\n\n/* Styles applied to root component when state `focusVisible={true}` */\n.saltRadioButtonBase-focusVisible,\n.saltRadioButtonBase:focus {\n outline: var(--salt-focused-outline);\n outline-offset: var(--salt-focused-outlineOffset);\n}\n";
|
|
6
|
-
styleInject_es(css_248z);
|
|
7
|
-
|
|
8
|
-
module.exports = css_248z;
|
|
9
|
-
//# sourceMappingURL=RadioButtonBase.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButtonBase.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var clsx = require('clsx');
|
|
7
|
-
var React = require('react');
|
|
8
|
-
require('../form-field-context/FormFieldContext.js');
|
|
9
|
-
var useFormFieldProps = require('../form-field-context/useFormFieldProps.js');
|
|
10
|
-
var core = require('@salt-ds/core');
|
|
11
|
-
var useRadioGroup = require('./internal/useRadioGroup.js');
|
|
12
|
-
var RadioButtonIcon = require('./RadioButtonIcon.js');
|
|
13
|
-
require('./RadioButtonBase.css.js');
|
|
14
|
-
|
|
15
|
-
const withBaseName = core.makePrefixer("saltRadioButtonBase");
|
|
16
|
-
const RadioButtonBase = React.forwardRef(function RadioBase(props, ref) {
|
|
17
|
-
var _a;
|
|
18
|
-
const {
|
|
19
|
-
checked: checkedProp,
|
|
20
|
-
defaultChecked,
|
|
21
|
-
name: nameProp,
|
|
22
|
-
className,
|
|
23
|
-
disabled: disabledProp,
|
|
24
|
-
icon: iconProp,
|
|
25
|
-
value,
|
|
26
|
-
onFocus,
|
|
27
|
-
onBlur,
|
|
28
|
-
onChange,
|
|
29
|
-
id,
|
|
30
|
-
tabIndex,
|
|
31
|
-
...rest
|
|
32
|
-
} = props;
|
|
33
|
-
useFormFieldProps.useFormFieldProps();
|
|
34
|
-
const radioGroup = useRadioGroup.useRadioGroup();
|
|
35
|
-
let radioGroupChecked = checkedProp;
|
|
36
|
-
let name = nameProp;
|
|
37
|
-
if (radioGroup) {
|
|
38
|
-
if (typeof radioGroupChecked === "undefined") {
|
|
39
|
-
radioGroupChecked = radioGroup.value === props.value;
|
|
40
|
-
}
|
|
41
|
-
if (typeof name === "undefined") {
|
|
42
|
-
name = radioGroup.name;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const [checked, setCheckedState] = core.useControlled({
|
|
46
|
-
controlled: radioGroupChecked,
|
|
47
|
-
default: Boolean(defaultChecked),
|
|
48
|
-
name: "RadioBase",
|
|
49
|
-
state: "checked"
|
|
50
|
-
});
|
|
51
|
-
const formFieldProps = useFormFieldProps.useFormFieldProps();
|
|
52
|
-
let disabled = disabledProp;
|
|
53
|
-
if (formFieldProps) {
|
|
54
|
-
if (typeof disabled === "undefined") {
|
|
55
|
-
disabled = (_a = formFieldProps.a11yProps) == null ? void 0 : _a.disabled;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const [focusVisible, setFocusVisible] = React.useState(false);
|
|
59
|
-
if (disabled && focusVisible) {
|
|
60
|
-
setFocusVisible(false);
|
|
61
|
-
}
|
|
62
|
-
const {
|
|
63
|
-
isFocusVisibleRef,
|
|
64
|
-
onFocus: handleFocusVisible,
|
|
65
|
-
onBlur: handleBlurVisible,
|
|
66
|
-
ref: focusVisibleRef
|
|
67
|
-
} = core.useIsFocusVisible();
|
|
68
|
-
const handleRef = core.useForkRef(
|
|
69
|
-
ref,
|
|
70
|
-
focusVisibleRef
|
|
71
|
-
);
|
|
72
|
-
const handleFocus = (event) => {
|
|
73
|
-
if (formFieldProps && formFieldProps.onFocus) {
|
|
74
|
-
formFieldProps.onFocus(event);
|
|
75
|
-
}
|
|
76
|
-
handleFocusVisible(event);
|
|
77
|
-
if (isFocusVisibleRef.current) {
|
|
78
|
-
setFocusVisible(true);
|
|
79
|
-
}
|
|
80
|
-
if (onFocus) {
|
|
81
|
-
onFocus(event);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
const handleBlur = (event) => {
|
|
85
|
-
if (formFieldProps && formFieldProps.onBlur) {
|
|
86
|
-
formFieldProps.onBlur(event);
|
|
87
|
-
}
|
|
88
|
-
handleBlurVisible();
|
|
89
|
-
setFocusVisible(false);
|
|
90
|
-
if (onBlur) {
|
|
91
|
-
onBlur(event);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
const handleInputChange = (event) => {
|
|
95
|
-
const newChecked = event.target.checked;
|
|
96
|
-
setCheckedState(newChecked);
|
|
97
|
-
if (onChange) {
|
|
98
|
-
onChange(event);
|
|
99
|
-
}
|
|
100
|
-
if (radioGroup && radioGroup.onChange) {
|
|
101
|
-
radioGroup.onChange(event);
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
const RadioIcon = iconProp || RadioButtonIcon.RadioButtonIcon;
|
|
105
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
106
|
-
className: clsx.clsx(
|
|
107
|
-
withBaseName(),
|
|
108
|
-
{
|
|
109
|
-
[withBaseName("disabled")]: disabled,
|
|
110
|
-
[withBaseName("focusVisible")]: focusVisible
|
|
111
|
-
},
|
|
112
|
-
className
|
|
113
|
-
),
|
|
114
|
-
ref: handleRef,
|
|
115
|
-
onBlur: handleBlur,
|
|
116
|
-
onFocus: handleFocus,
|
|
117
|
-
...rest,
|
|
118
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("span", {
|
|
119
|
-
className: withBaseName("radioContainer"),
|
|
120
|
-
children: [
|
|
121
|
-
/* @__PURE__ */ jsxRuntime.jsx("input", {
|
|
122
|
-
className: withBaseName("input"),
|
|
123
|
-
checked: radioGroupChecked,
|
|
124
|
-
defaultChecked,
|
|
125
|
-
disabled,
|
|
126
|
-
id,
|
|
127
|
-
name,
|
|
128
|
-
onChange: handleInputChange,
|
|
129
|
-
type: "radio",
|
|
130
|
-
value,
|
|
131
|
-
tabIndex
|
|
132
|
-
}),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsx(RadioIcon, {
|
|
134
|
-
checked
|
|
135
|
-
})
|
|
136
|
-
]
|
|
137
|
-
})
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
exports.RadioButtonBase = RadioButtonBase;
|
|
142
|
-
//# sourceMappingURL=RadioButtonBase.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButtonBase.js","sources":["../src/radio-button/RadioButtonBase.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEventHandler,\n ComponentType,\n FocusEventHandler,\n forwardRef,\n Ref,\n useState,\n} from \"react\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport {\n makePrefixer,\n useControlled,\n useForkRef,\n useIsFocusVisible,\n} from \"@salt-ds/core\";\nimport { useRadioGroup } from \"./internal/useRadioGroup\";\nimport {\n RadioButtonIcon as DefaultRadioIcon,\n RadioButtonIconProps,\n} from \"./RadioButtonIcon\";\n\nimport \"./RadioButtonBase.css\";\n\nconst withBaseName = makePrefixer(\"saltRadioButtonBase\");\n\nexport interface RadioButtonBaseProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n /**\n * custom icon component\n */\n icon?: ComponentType<RadioButtonIconProps>;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n name?: string;\n defaultChecked?: boolean;\n onFocus?: FocusEventHandler<HTMLSpanElement>;\n onBlur?: FocusEventHandler<HTMLSpanElement>;\n required?: boolean;\n id?: string;\n tabIndex?: number;\n value?: string;\n}\n\nexport const RadioButtonBase = forwardRef<\n HTMLSpanElement,\n RadioButtonBaseProps\n>(function RadioBase(props, ref) {\n const {\n checked: checkedProp,\n defaultChecked,\n name: nameProp,\n className,\n disabled: disabledProp,\n icon: iconProp,\n value,\n onFocus,\n onBlur,\n onChange,\n id,\n tabIndex,\n ...rest\n } = props;\n\n useFormFieldProps();\n\n const radioGroup = useRadioGroup();\n\n let radioGroupChecked = checkedProp;\n let name = nameProp;\n if (radioGroup) {\n if (typeof radioGroupChecked === \"undefined\") {\n radioGroupChecked = radioGroup.value === props.value;\n }\n if (typeof name === \"undefined\") {\n name = radioGroup.name;\n }\n }\n\n const [checked, setCheckedState] = useControlled({\n controlled: radioGroupChecked,\n default: Boolean(defaultChecked),\n name: \"RadioBase\",\n state: \"checked\",\n });\n\n const formFieldProps = useFormFieldProps();\n\n let disabled = disabledProp;\n if (formFieldProps) {\n if (typeof disabled === \"undefined\") {\n disabled = formFieldProps.a11yProps?.disabled;\n }\n }\n\n const [focusVisible, setFocusVisible] = useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef,\n } = useIsFocusVisible();\n\n const handleRef = useForkRef<HTMLSpanElement>(\n ref,\n focusVisibleRef as Ref<HTMLSpanElement>\n );\n\n const handleFocus: FocusEventHandler<HTMLElement> = (event) => {\n if (formFieldProps && formFieldProps.onFocus) {\n formFieldProps.onFocus(event);\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current) {\n setFocusVisible(true);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur: FocusEventHandler<HTMLElement> = (event) => {\n if (formFieldProps && formFieldProps.onBlur) {\n formFieldProps.onBlur(event);\n }\n handleBlurVisible();\n setFocusVisible(false);\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n onChange(event);\n }\n if (radioGroup && radioGroup.onChange) {\n radioGroup.onChange(event);\n }\n };\n\n const RadioIcon = iconProp || DefaultRadioIcon;\n\n return (\n <span\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"focusVisible\")]: focusVisible,\n },\n className\n )}\n ref={handleRef}\n onBlur={handleBlur}\n onFocus={handleFocus}\n {...rest}\n >\n <span className={withBaseName(\"radioContainer\")}>\n <input\n className={withBaseName(\"input\")}\n checked={radioGroupChecked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n id={id}\n name={name}\n onChange={handleInputChange}\n type=\"radio\"\n value={value}\n tabIndex={tabIndex}\n />\n <RadioIcon checked={checked} />\n </span>\n </span>\n );\n});\n"],"names":["makePrefixer","forwardRef","useFormFieldProps","useRadioGroup","useControlled","useState","useIsFocusVisible","useForkRef","DefaultRadioIcon","jsx","clsx","jsxs"],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
-
|
|
3
|
-
var css_248z = "/* Default variables applied to the root element */\n.saltAvatar {\n --avatar-background: var(--saltAvatar-background, var(--salt-accent-background));\n --avatar-foreground: var(--saltAvatar-foreground, var(--salt-accent-foreground));\n}\n\n/* Style applied to the root element */\n.saltAvatar {\n background: var(--avatar-background);\n color: var(--avatar-foreground);\n font-size: var(--avatar-fontSize);\n line-height: var(--avatar-container-size);\n width: var(--avatar-container-size);\n height: var(--avatar-container-size);\n letter-spacing: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n user-select: none;\n border-radius: 50%;\n}\n\n/* Style applied to the image element */\n.saltAvatar-image {\n width: 100%;\n height: 100%;\n text-align: center;\n object-fit: cover;\n color: transparent;\n text-indent: 10000px;\n}\n\n/* Style applied to the svg element */\n.saltAvatar > svg {\n width: var(--avatar-container-size);\n height: var(--avatar-container-size);\n}\n\n.saltAvatar-svgDisc {\n fill: var(--avatar-background);\n}\n\n.saltAvatar-svgHead {\n fill: var(--avatar-foreground);\n}\n\n/* Style applied when size is small */\n.saltAvatar-small {\n --avatar-fontSize: 8px;\n --avatar-container-size: var(--salt-size-graphic-small);\n}\n\n/* Style applied when size is medium */\n.saltAvatar-medium {\n --avatar-fontSize: 11px;\n --avatar-container-size: var(--salt-size-graphic-medium);\n}\n\n/* Style applied when size is large */\n.saltAvatar-large {\n --avatar-fontSize: 14px;\n --avatar-container-size: var(--salt-size-graphic-large);\n}\n";
|
|
4
|
-
styleInject(css_248z);
|
|
5
|
-
|
|
6
|
-
export { css_248z as default };
|
|
7
|
-
//# sourceMappingURL=Avatar.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { makePrefixer, useId } from '@salt-ds/core';
|
|
3
|
-
import { clsx } from 'clsx';
|
|
4
|
-
import { forwardRef } from 'react';
|
|
5
|
-
import { classBase } from './internal/constants.js';
|
|
6
|
-
import { DefaultAvatar } from './internal/DefaultAvatar.js';
|
|
7
|
-
import { useLoaded } from './internal/useLoaded.js';
|
|
8
|
-
import './Avatar.css.js';
|
|
9
|
-
|
|
10
|
-
const withBaseName = makePrefixer(classBase);
|
|
11
|
-
const Avatar = forwardRef(function Avatar2({
|
|
12
|
-
alt = "",
|
|
13
|
-
className,
|
|
14
|
-
children: childrenProp,
|
|
15
|
-
id: idProp,
|
|
16
|
-
size = "medium",
|
|
17
|
-
src,
|
|
18
|
-
srcSet,
|
|
19
|
-
title = "user",
|
|
20
|
-
imgProps,
|
|
21
|
-
sizes,
|
|
22
|
-
...rest
|
|
23
|
-
}, ref) {
|
|
24
|
-
let children;
|
|
25
|
-
const id = useId(idProp);
|
|
26
|
-
const loaded = useLoaded({ ...imgProps, src, srcSet });
|
|
27
|
-
const hasImg = src || srcSet;
|
|
28
|
-
const hasImgNotFailing = hasImg && loaded !== "error";
|
|
29
|
-
if (hasImgNotFailing) {
|
|
30
|
-
children = /* @__PURE__ */ jsx("img", {
|
|
31
|
-
className: withBaseName("image"),
|
|
32
|
-
alt,
|
|
33
|
-
src,
|
|
34
|
-
srcSet,
|
|
35
|
-
sizes,
|
|
36
|
-
...imgProps
|
|
37
|
-
});
|
|
38
|
-
} else if (childrenProp != null) {
|
|
39
|
-
children = childrenProp;
|
|
40
|
-
} else if (hasImg && alt) {
|
|
41
|
-
children = alt[0];
|
|
42
|
-
} else {
|
|
43
|
-
children = /* @__PURE__ */ jsx(DefaultAvatar, {
|
|
44
|
-
id,
|
|
45
|
-
title,
|
|
46
|
-
...rest
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return /* @__PURE__ */ jsx("div", {
|
|
50
|
-
ref,
|
|
51
|
-
className: clsx(withBaseName(), withBaseName(size), className),
|
|
52
|
-
...rest,
|
|
53
|
-
children
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
export { Avatar };
|
|
58
|
-
//# sourceMappingURL=Avatar.js.map
|