@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.
Files changed (162) hide show
  1. package/dist-cjs/packages/lab/src/banner/Banner.css.js +1 -1
  2. package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.css.js +1 -1
  3. package/dist-cjs/packages/lab/src/carousel/Carousel.js +7 -6
  4. package/dist-cjs/packages/lab/src/carousel/Carousel.js.map +1 -1
  5. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.css.js +1 -1
  6. package/dist-cjs/packages/lab/src/checkbox/CheckboxIcon.css.js +1 -1
  7. package/dist-cjs/packages/lab/src/color-chooser/Color.js +9 -0
  8. package/dist-cjs/packages/lab/src/color-chooser/Color.js.map +1 -1
  9. package/dist-cjs/packages/lab/src/color-chooser/ColorChooser.css.js +1 -1
  10. package/dist-cjs/packages/lab/src/color-chooser/ColorHelpers.js +2 -2
  11. package/dist-cjs/packages/lab/src/color-chooser/ColorHelpers.js.map +1 -1
  12. package/dist-cjs/packages/lab/src/color-chooser/Swatch.css.js +1 -1
  13. package/dist-cjs/packages/lab/src/color-chooser/color-utils.js +1 -1
  14. package/dist-cjs/packages/lab/src/color-chooser/color-utils.js.map +1 -1
  15. package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js +2 -3
  16. package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
  17. package/dist-cjs/packages/lab/src/contact-details/ContactDetails.css.js +1 -1
  18. package/dist-cjs/packages/lab/src/content-status/ContentStatus.css.js +1 -1
  19. package/dist-cjs/packages/lab/src/dialog/DialogContent.js +0 -1
  20. package/dist-cjs/packages/lab/src/dialog/DialogContent.js.map +1 -1
  21. package/dist-cjs/packages/lab/src/dropdown/DropdownButton.css.js +1 -1
  22. package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.css.js +1 -1
  23. package/dist-cjs/packages/lab/src/index.js +0 -5
  24. package/dist-cjs/packages/lab/src/index.js.map +1 -1
  25. package/dist-cjs/packages/lab/src/list/Highlighter.css.js +1 -1
  26. package/dist-cjs/packages/lab/src/list/ListItem.css.js +1 -1
  27. package/dist-cjs/packages/lab/src/list-deprecated/internal/scrollIntoView.js +1 -5
  28. package/dist-cjs/packages/lab/src/list-deprecated/internal/scrollIntoView.js.map +1 -1
  29. package/dist-cjs/packages/lab/src/logo/Logo.css.js +1 -1
  30. package/dist-cjs/packages/lab/src/metric/MetricContent.css.js +1 -1
  31. package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js +9 -5
  32. package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
  33. package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js +1 -1
  34. package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
  35. package/dist-cjs/packages/lab/src/pill/Pill.css.js +1 -1
  36. package/dist-cjs/packages/lab/src/progress/CircularProgress/CircularProgress.css.js +1 -1
  37. package/dist-cjs/packages/lab/src/progress/LinearProgress/LinearProgress.css.js +1 -1
  38. package/dist-cjs/packages/lab/src/radio-button/RadioButton.css.js +1 -1
  39. package/dist-cjs/packages/lab/src/radio-button/RadioButton.js +44 -25
  40. package/dist-cjs/packages/lab/src/radio-button/RadioButton.js.map +1 -1
  41. package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.css.js +1 -1
  42. package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js +20 -66
  43. package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
  44. package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.css.js +1 -1
  45. package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js +9 -5
  46. package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
  47. package/dist-cjs/packages/lab/src/radio-button/internal/RadioGroupContext.js.map +1 -1
  48. package/dist-cjs/packages/lab/src/skip-link/SkipLink.css.js +1 -1
  49. package/dist-cjs/packages/lab/src/slider/Slider.css.js +1 -1
  50. package/dist-cjs/packages/lab/src/stepper-input/useStepperInput.js +1 -0
  51. package/dist-cjs/packages/lab/src/stepper-input/useStepperInput.js.map +1 -1
  52. package/dist-cjs/packages/lab/src/tabs/Tabstrip.css.js +1 -1
  53. package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.css.js +1 -1
  54. package/dist-cjs/packages/lab/src/toolbar/Tooltray.css.js +1 -1
  55. package/dist-es/packages/lab/src/banner/Banner.css.js +1 -1
  56. package/dist-es/packages/lab/src/calendar/internal/CalendarCarousel.js +2 -2
  57. package/dist-es/packages/lab/src/calendar/internal/CalendarDay.css.js +1 -1
  58. package/dist-es/packages/lab/src/calendar/internal/utils.js +1 -1
  59. package/dist-es/packages/lab/src/calendar/useCalendar.js +1 -1
  60. package/dist-es/packages/lab/src/carousel/Carousel.js +7 -6
  61. package/dist-es/packages/lab/src/carousel/Carousel.js.map +1 -1
  62. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.css.js +1 -1
  63. package/dist-es/packages/lab/src/cascading-menu/internal/useRefsManager.js +1 -1
  64. package/dist-es/packages/lab/src/checkbox/CheckboxIcon.css.js +1 -1
  65. package/dist-es/packages/lab/src/color-chooser/Color.js +9 -0
  66. package/dist-es/packages/lab/src/color-chooser/Color.js.map +1 -1
  67. package/dist-es/packages/lab/src/color-chooser/ColorChooser.css.js +1 -1
  68. package/dist-es/packages/lab/src/color-chooser/ColorHelpers.js +2 -2
  69. package/dist-es/packages/lab/src/color-chooser/ColorHelpers.js.map +1 -1
  70. package/dist-es/packages/lab/src/color-chooser/Swatch.css.js +1 -1
  71. package/dist-es/packages/lab/src/color-chooser/color-utils.js +1 -1
  72. package/dist-es/packages/lab/src/color-chooser/color-utils.js.map +1 -1
  73. package/dist-es/packages/lab/src/contact-details/ContactAvatar.js +2 -3
  74. package/dist-es/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
  75. package/dist-es/packages/lab/src/contact-details/ContactDetails.css.js +1 -1
  76. package/dist-es/packages/lab/src/content-status/ContentStatus.css.js +1 -1
  77. package/dist-es/packages/lab/src/dialog/DialogContent.js +0 -1
  78. package/dist-es/packages/lab/src/dialog/DialogContent.js.map +1 -1
  79. package/dist-es/packages/lab/src/dropdown/DropdownButton.css.js +1 -1
  80. package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.css.js +1 -1
  81. package/dist-es/packages/lab/src/index.js +1 -3
  82. package/dist-es/packages/lab/src/index.js.map +1 -1
  83. package/dist-es/packages/lab/src/list/Highlighter.css.js +1 -1
  84. package/dist-es/packages/lab/src/list/ListItem.css.js +1 -1
  85. package/dist-es/packages/lab/src/list-deprecated/internal/scrollIntoView.js +2 -2
  86. package/dist-es/packages/lab/src/list-deprecated/internal/scrollIntoView.js.map +1 -1
  87. package/dist-es/packages/lab/src/list-deprecated/useList.js +1 -1
  88. package/dist-es/packages/lab/src/logo/Logo.css.js +1 -1
  89. package/dist-es/packages/lab/src/metric/MetricContent.css.js +1 -1
  90. package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js +9 -5
  91. package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
  92. package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js +1 -1
  93. package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
  94. package/dist-es/packages/lab/src/pill/Pill.css.js +1 -1
  95. package/dist-es/packages/lab/src/progress/CircularProgress/CircularProgress.css.js +1 -1
  96. package/dist-es/packages/lab/src/progress/LinearProgress/LinearProgress.css.js +1 -1
  97. package/dist-es/packages/lab/src/radio-button/RadioButton.css.js +1 -1
  98. package/dist-es/packages/lab/src/radio-button/RadioButton.js +46 -27
  99. package/dist-es/packages/lab/src/radio-button/RadioButton.js.map +1 -1
  100. package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.css.js +1 -1
  101. package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js +23 -69
  102. package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
  103. package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.css.js +1 -1
  104. package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js +10 -5
  105. package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
  106. package/dist-es/packages/lab/src/radio-button/internal/RadioGroupContext.js.map +1 -1
  107. package/dist-es/packages/lab/src/responsive/useDynamicCollapse.js +1 -1
  108. package/dist-es/packages/lab/src/skip-link/SkipLink.css.js +1 -1
  109. package/dist-es/packages/lab/src/skip-link/internal/useManageFocusOnTarget.js +1 -1
  110. package/dist-es/packages/lab/src/slider/Slider.css.js +1 -1
  111. package/dist-es/packages/lab/src/slider/internal/useSliderMouseDown.js +1 -1
  112. package/dist-es/packages/lab/src/stepper-input/useStepperInput.js +1 -0
  113. package/dist-es/packages/lab/src/stepper-input/useStepperInput.js.map +1 -1
  114. package/dist-es/packages/lab/src/tabs/Tabstrip.css.js +1 -1
  115. package/dist-es/packages/lab/src/toggle-button/ToggleButton.css.js +1 -1
  116. package/dist-es/packages/lab/src/toolbar/Tooltray.css.js +1 -1
  117. package/dist-es/packages/lab/src/toolbar/toolbar-field/useToolbarField.js +1 -1
  118. package/dist-es/packages/lab/src/utils/useEventCallback.js +1 -1
  119. package/dist-types/color-chooser/Color.d.ts +2 -0
  120. package/dist-types/color-chooser/ColorHelpers.d.ts +3 -1
  121. package/dist-types/contact-details/ContactAvatar.d.ts +3 -4
  122. package/dist-types/index.d.ts +0 -1
  123. package/dist-types/radio-button/RadioButton.d.ts +33 -10
  124. package/dist-types/radio-button/RadioButtonGroup.d.ts +22 -12
  125. package/dist-types/radio-button/RadioButtonIcon.d.ts +4 -6
  126. package/dist-types/radio-button/index.d.ts +0 -1
  127. package/dist-types/stepper-input/useStepperInput.d.ts +1 -0
  128. package/package.json +4 -4
  129. package/dist-cjs/packages/lab/src/avatar/Avatar.css.js +0 -9
  130. package/dist-cjs/packages/lab/src/avatar/Avatar.css.js.map +0 -1
  131. package/dist-cjs/packages/lab/src/avatar/Avatar.js +0 -62
  132. package/dist-cjs/packages/lab/src/avatar/Avatar.js.map +0 -1
  133. package/dist-cjs/packages/lab/src/avatar/internal/DefaultAvatar.js +0 -45
  134. package/dist-cjs/packages/lab/src/avatar/internal/DefaultAvatar.js.map +0 -1
  135. package/dist-cjs/packages/lab/src/avatar/internal/constants.js +0 -8
  136. package/dist-cjs/packages/lab/src/avatar/internal/constants.js.map +0 -1
  137. package/dist-cjs/packages/lab/src/avatar/internal/useLoaded.js +0 -47
  138. package/dist-cjs/packages/lab/src/avatar/internal/useLoaded.js.map +0 -1
  139. package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.css.js +0 -9
  140. package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.css.js.map +0 -1
  141. package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js +0 -142
  142. package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js.map +0 -1
  143. package/dist-es/packages/lab/src/avatar/Avatar.css.js +0 -7
  144. package/dist-es/packages/lab/src/avatar/Avatar.css.js.map +0 -1
  145. package/dist-es/packages/lab/src/avatar/Avatar.js +0 -58
  146. package/dist-es/packages/lab/src/avatar/Avatar.js.map +0 -1
  147. package/dist-es/packages/lab/src/avatar/internal/DefaultAvatar.js +0 -41
  148. package/dist-es/packages/lab/src/avatar/internal/DefaultAvatar.js.map +0 -1
  149. package/dist-es/packages/lab/src/avatar/internal/constants.js +0 -4
  150. package/dist-es/packages/lab/src/avatar/internal/constants.js.map +0 -1
  151. package/dist-es/packages/lab/src/avatar/internal/useLoaded.js +0 -43
  152. package/dist-es/packages/lab/src/avatar/internal/useLoaded.js.map +0 -1
  153. package/dist-es/packages/lab/src/radio-button/RadioButtonBase.css.js +0 -7
  154. package/dist-es/packages/lab/src/radio-button/RadioButtonBase.css.js.map +0 -1
  155. package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js +0 -138
  156. package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js.map +0 -1
  157. package/dist-types/avatar/Avatar.d.ts +0 -13
  158. package/dist-types/avatar/index.d.ts +0 -1
  159. package/dist-types/avatar/internal/DefaultAvatar.d.ts +0 -2
  160. package/dist-types/avatar/internal/constants.d.ts +0 -1
  161. package/dist-types/avatar/internal/useLoaded.d.ts +0 -2
  162. package/dist-types/radio-button/RadioButtonBase.d.ts +0 -22
@@ -1,5 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { AvatarProps } from "../avatar";
3
- export interface ContactAvatarProps extends AvatarProps {
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>>;
@@ -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, ComponentType } from "react";
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<HTMLDivElement>, "onChange"> {
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
- className?: string;
8
+ /**
9
+ * Set the disabled state
10
+ */
8
11
  disabled?: boolean;
9
12
  /**
10
- * Custom icon component
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
- icon?: ComponentType<RadioButtonIconProps>;
23
+ label?: ReactNode;
13
24
  /**
14
- * The label to be shown next to the radio
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, ComponentType, HTMLAttributes } from "react";
2
- import { RadioButtonIconProps } from "./RadioButtonIcon";
1
+ import { ChangeEventHandler, ComponentPropsWithoutRef } from "react";
3
2
  import "./RadioButtonGroup.css";
4
- export interface RadioButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
5
- className?: string;
3
+ export interface RadioButtonGroupProps extends Omit<ComponentPropsWithoutRef<"fieldset">, "onChange"> {
4
+ /**
5
+ * Set the selected value when initialized.
6
+ */
6
7
  defaultValue?: string;
7
- icon?: ComponentType<RadioButtonIconProps>;
8
- legend?: string;
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
- radios?: {
12
- disabled?: boolean;
13
- label?: string;
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
- import { ComponentType, ReactElement } from "react";
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;
@@ -1,4 +1,3 @@
1
1
  export * from "./RadioButton";
2
2
  export * from "./RadioButtonGroup";
3
- export * from "./RadioButtonBase";
4
3
  export * from "./RadioButtonIcon";
@@ -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.2",
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.2.0",
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": "^2.0.0",
30
- "@floating-ui/react": "^0.19.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,8 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const classBase = "saltAvatar";
6
-
7
- exports.classBase = classBase;
8
- //# sourceMappingURL=constants.js.map
@@ -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