@delightui/components 0.1.121 → 0.1.123

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 (35) hide show
  1. package/dist/cjs/components/atoms/Input/Input.presenter.d.ts +2 -2
  2. package/dist/cjs/components/atoms/Password/Password.presenter.d.ts +6 -6
  3. package/dist/cjs/components/atoms/Spinner/Spinner.d.ts +1 -1
  4. package/dist/cjs/components/atoms/Spinner/Spinner.types.d.ts +4 -0
  5. package/dist/cjs/components/atoms/TextArea/TextArea.presenter.d.ts +1 -1
  6. package/dist/cjs/components/examples/PopoverContextMenuExample.d.ts +2 -0
  7. package/dist/cjs/components/molecules/ChipInput/ChipInput.d.ts +3 -4
  8. package/dist/cjs/components/molecules/ChipInput/ChipInput.presenter.d.ts +10 -24
  9. package/dist/cjs/components/molecules/ChipInput/ChipInput.types.d.ts +122 -10
  10. package/dist/cjs/components/molecules/ChipInput/ChipInput.utils.d.ts +63 -2
  11. package/dist/cjs/components/molecules/ContextMenu/ContextMenu.types.d.ts +6 -1
  12. package/dist/cjs/components/molecules/Search/Search.presenter.d.ts +4 -4
  13. package/dist/cjs/components/molecules/Select/Select.presenter.d.ts +1 -1
  14. package/dist/cjs/library.css +33 -16
  15. package/dist/cjs/library.js +3 -3
  16. package/dist/cjs/library.js.map +1 -1
  17. package/dist/esm/components/atoms/Input/Input.presenter.d.ts +2 -2
  18. package/dist/esm/components/atoms/Password/Password.presenter.d.ts +6 -6
  19. package/dist/esm/components/atoms/Spinner/Spinner.d.ts +1 -1
  20. package/dist/esm/components/atoms/Spinner/Spinner.types.d.ts +4 -0
  21. package/dist/esm/components/atoms/TextArea/TextArea.presenter.d.ts +1 -1
  22. package/dist/esm/components/examples/PopoverContextMenuExample.d.ts +2 -0
  23. package/dist/esm/components/molecules/ChipInput/ChipInput.d.ts +3 -4
  24. package/dist/esm/components/molecules/ChipInput/ChipInput.presenter.d.ts +10 -24
  25. package/dist/esm/components/molecules/ChipInput/ChipInput.types.d.ts +122 -10
  26. package/dist/esm/components/molecules/ChipInput/ChipInput.utils.d.ts +63 -2
  27. package/dist/esm/components/molecules/ContextMenu/ContextMenu.types.d.ts +6 -1
  28. package/dist/esm/components/molecules/Search/Search.presenter.d.ts +4 -4
  29. package/dist/esm/components/molecules/Select/Select.presenter.d.ts +1 -1
  30. package/dist/esm/library.css +33 -16
  31. package/dist/esm/library.js +3 -3
  32. package/dist/esm/library.js.map +1 -1
  33. package/dist/index.d.ts +136 -13
  34. package/docs/components/molecules/ChipInput.md +200 -9
  35. package/package.json +1 -1
@@ -5,9 +5,11 @@ declare const usePresenter: (props: InputProps, ref: React.ForwardedRef<HTMLInpu
5
5
  };
6
6
  onInputChanged: (event: React.ChangeEvent<HTMLInputElement>) => void;
7
7
  otherInputProps: {
8
+ checked?: boolean | undefined;
8
9
  className?: string | undefined;
9
10
  form?: string | undefined;
10
11
  list?: string | undefined;
12
+ children?: import("react").ReactNode | undefined;
11
13
  role?: import("react").AriaRole | undefined;
12
14
  src?: string | undefined;
13
15
  onLoad?: import("react").ReactEventHandler<HTMLInputElement> | undefined;
@@ -114,7 +116,6 @@ declare const usePresenter: (props: InputProps, ref: React.ForwardedRef<HTMLInpu
114
116
  "aria-valuemin"?: number | undefined;
115
117
  "aria-valuenow"?: number | undefined;
116
118
  "aria-valuetext"?: string | undefined;
117
- children?: import("react").ReactNode | undefined;
118
119
  dangerouslySetInnerHTML?: {
119
120
  __html: string | TrustedHTML;
120
121
  } | undefined;
@@ -277,7 +278,6 @@ declare const usePresenter: (props: InputProps, ref: React.ForwardedRef<HTMLInpu
277
278
  onTransitionEnd?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
278
279
  onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
279
280
  pattern?: string | undefined;
280
- checked?: boolean | undefined;
281
281
  size?: number | undefined;
282
282
  step?: number | string | undefined;
283
283
  autoComplete?: import("react").HTMLInputAutoCompleteAttribute | undefined;
@@ -7,8 +7,14 @@ declare const usePresenter: (props: PasswordProps) => {
7
7
  };
8
8
  hideTrailingIcon: boolean | undefined;
9
9
  otherPasswordProps: {
10
+ disabled?: boolean | undefined;
11
+ required?: boolean | undefined;
12
+ checked?: boolean | undefined;
13
+ value?: string | undefined;
14
+ 'component-variant'?: string;
10
15
  form?: string | undefined;
11
16
  list?: string | undefined;
17
+ children?: import("react").ReactNode | undefined;
12
18
  role?: import("react").AriaRole | undefined;
13
19
  src?: string | undefined;
14
20
  onLoad?: import("react").ReactEventHandler<HTMLInputElement> | undefined;
@@ -115,7 +121,6 @@ declare const usePresenter: (props: PasswordProps) => {
115
121
  "aria-valuemin"?: number | undefined;
116
122
  "aria-valuenow"?: number | undefined;
117
123
  "aria-valuetext"?: string | undefined;
118
- children?: import("react").ReactNode | undefined;
119
124
  dangerouslySetInnerHTML?: {
120
125
  __html: string | TrustedHTML;
121
126
  } | undefined;
@@ -277,11 +282,7 @@ declare const usePresenter: (props: PasswordProps) => {
277
282
  onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLInputElement> | undefined;
278
283
  onTransitionEnd?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
279
284
  onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
280
- disabled?: boolean | undefined;
281
285
  pattern?: string | undefined;
282
- required?: boolean | undefined;
283
- checked?: boolean | undefined;
284
- value?: string | undefined;
285
286
  invalid?: boolean;
286
287
  size?: number | undefined;
287
288
  leadingIcon?: React.ReactNode;
@@ -305,7 +306,6 @@ declare const usePresenter: (props: PasswordProps) => {
305
306
  readOnly?: boolean | undefined;
306
307
  onValueChange?: ((value: string) => void) | undefined;
307
308
  preProcessInput?: (text: string) => string;
308
- 'component-variant'?: string;
309
309
  initialValue?: string | undefined;
310
310
  };
311
311
  };
@@ -1,3 +1,3 @@
1
1
  import { SpinnerProps } from './Spinner.types';
2
- declare const Spinner: ({ className }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Spinner: ({ className, "component-variant": componentVariant }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default Spinner;
@@ -1,3 +1,7 @@
1
1
  export type SpinnerProps = {
2
2
  className?: string;
3
+ /**
4
+ * Component variant for theming
5
+ */
6
+ 'component-variant'?: string;
3
7
  };
@@ -8,6 +8,7 @@ declare const usePresenter: (props: TextAreaProps) => {
8
8
  otherTextAreaProps: {
9
9
  className?: string | undefined;
10
10
  form?: string | undefined;
11
+ children?: import("react").ReactNode | undefined;
11
12
  role?: import("react").AriaRole | undefined;
12
13
  onLoad?: import("react").ReactEventHandler<HTMLTextAreaElement> | undefined;
13
14
  onError?: import("react").ReactEventHandler<HTMLTextAreaElement> | undefined;
@@ -110,7 +111,6 @@ declare const usePresenter: (props: TextAreaProps) => {
110
111
  "aria-valuemin"?: number | undefined;
111
112
  "aria-valuenow"?: number | undefined;
112
113
  "aria-valuetext"?: string | undefined;
113
- children?: import("react").ReactNode | undefined;
114
114
  dangerouslySetInnerHTML?: {
115
115
  __html: string | TrustedHTML;
116
116
  } | undefined;
@@ -0,0 +1,2 @@
1
+ declare const PopoverContextMenuExample: () => import("react/jsx-runtime").JSX.Element;
2
+ export default PopoverContextMenuExample;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
- import { ChipInputProps } from "./ChipInput.types";
3
- declare const _default: React.NamedExoticComponent<ChipInputProps>;
4
- export default _default;
1
+ import { ChipInputProps, OptionLike } from "./ChipInput.types";
2
+ declare const ChipInput: <T extends string[] | OptionLike[]>(props: ChipInputProps<T>) => import("react/jsx-runtime").JSX.Element;
3
+ export default ChipInput;
@@ -1,28 +1,14 @@
1
- import { ChipInputProps, ChipListItemProps } from './ChipInput.types';
2
- declare const usePresenter: (props: ChipInputProps) => {
1
+ import { ChipInputProps } from './ChipInput.types';
2
+ import { ChipProps } from '../../atoms/Chip/Chip.types';
3
+ import { OptionLike } from './ChipInput.types';
4
+ declare const usePresenter: <T extends string[] | OptionLike[]>(props: ChipInputProps<T>) => {
3
5
  handleChipInputAreaClick: () => void;
4
- chips: (ChipListItemProps | {
5
- type: string;
6
- props: {
7
- onKeyUp: (event: React.KeyboardEvent<HTMLInputElement>) => void;
8
- value: string;
9
- onValueChange: (value: string) => void;
10
- placeholder: string;
11
- className: string;
12
- disabled: boolean;
13
- id: string | undefined;
14
- };
15
- inputRef: import("react").RefObject<HTMLInputElement>;
16
- })[];
17
- optionList: {
18
- id: string;
19
- children: string;
20
- className: string;
21
- onValueChange: () => void;
22
- checked: boolean;
23
- value: boolean;
24
- labelAlignment: string;
25
- }[];
6
+ handleKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
7
+ inputValue: string;
8
+ onValueChange: (value: string) => void;
9
+ chips: ChipProps[];
10
+ inputRef: import("react").RefObject<HTMLInputElement>;
11
+ optionList: import("../..").CheckboxItemProps[];
26
12
  variantProps: {
27
13
  'component-variant': string;
28
14
  };
@@ -1,17 +1,129 @@
1
- import { RefObject } from 'react';
2
- import type { ChipProps, InputProps } from "../../atoms";
3
1
  import { ControlledFormComponentProps } from '../FormField/FormField.types';
4
- export type ChipListItemTypeEnum = 'chip' | 'input';
5
- export type ChipListItemProps = {
6
- type: ChipListItemTypeEnum;
7
- props: ChipProps | InputProps;
8
- inputRef?: RefObject<HTMLInputElement>;
2
+ /**
3
+ * Represents an option that can be selected in the ChipInput component.
4
+ * This is the normalized format used internally to handle both string arrays and object arrays.
5
+ */
6
+ export type OptionLike = {
7
+ /** Unique identifier for the option. Can be string or number. */
8
+ key: string | number;
9
+ /** Display text shown to the user for this option. */
10
+ label: string;
9
11
  };
10
- export type ChipInputProps = ControlledFormComponentProps<string[]> & {
12
+ /**
13
+ * Type alias for the key property of OptionLike.
14
+ * Used for type safety when working with selected values.
15
+ */
16
+ export type OptionLikeKey = OptionLike['key'];
17
+ /**
18
+ * Props for the ChipInput component.
19
+ *
20
+ * @template T - The type of the value array. Can be string[] or OptionLike[].
21
+ * This generic ensures type consistency between input and output.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // String array usage
26
+ * const [fruits, setFruits] = useState<string[]>(['apple']);
27
+ * <ChipInput
28
+ * value={fruits}
29
+ * onValueChange={setFruits}
30
+ * options={['apple', 'banana', 'cherry']}
31
+ * />
32
+ *
33
+ * // OptionLike array usage
34
+ * const [items, setItems] = useState<OptionLike[]>([{key: 1, label: 'Apple'}]);
35
+ * <ChipInput
36
+ * value={items}
37
+ * onValueChange={setItems}
38
+ * options={[{key: 1, label: 'Apple'}, {key: 2, label: 'Banana'}]}
39
+ * />
40
+ * ```
41
+ */
42
+ export type ChipInputProps<T = string[] | OptionLike[]> = Omit<ControlledFormComponentProps<OptionLikeKey[]>, 'value' | 'onValueChange'> & {
43
+ /**
44
+ * Current selected values. Type matches the generic T parameter.
45
+ * For string arrays: ['apple', 'banana']
46
+ * For OptionLike arrays: [{key: 1, label: 'Apple'}, {key: 2, label: 'Banana'}]
47
+ */
48
+ value?: T;
49
+ /**
50
+ * Callback fired when the selected values change.
51
+ * Returns the same type as the input value for type consistency.
52
+ *
53
+ * @param value - The new array of selected values in the same format as input
54
+ */
55
+ onValueChange?: (value: T) => void;
56
+ /**
57
+ * Current value of the text input field.
58
+ * Used for controlled input behavior and filtering.
59
+ */
11
60
  inputValue?: string;
61
+ /**
62
+ * Callback fired when the input field value changes.
63
+ *
64
+ * @param value - The new input field value
65
+ */
12
66
  onInputChange?: (value: string) => void;
13
- options?: string[];
67
+ /**
68
+ * Available options for selection. Can be either:
69
+ * - string[]: Simple array of strings like ['apple', 'banana']
70
+ * - OptionLike[]: Array of objects like [{key: 1, label: 'Apple'}]
71
+ *
72
+ * Options are automatically filtered as the user types in the input field.
73
+ */
74
+ options?: string[] | OptionLike[];
75
+ /**
76
+ * Placeholder text shown in the input field when it's empty.
77
+ *
78
+ * @default undefined
79
+ */
14
80
  placeholder?: string;
81
+ /**
82
+ * Additional CSS class name applied to the root element.
83
+ */
15
84
  className?: string;
16
- onAddNewOption?: (value: string) => void;
85
+ /**
86
+ * Optional callback for creating new items when they don't exist in options.
87
+ * Can be synchronous or asynchronous for API integration.
88
+ *
89
+ * When this prop is provided:
90
+ * - Optimistic UI updates are applied immediately
91
+ * - If async, the UI shows loading states and handles errors
92
+ * - Failed operations are automatically reverted
93
+ *
94
+ * @param newItemValue - The text value entered by the user
95
+ * @returns Promise<OptionLike> for async operations, OptionLike for sync operations
96
+ *
97
+ * @example
98
+ * ```tsx
99
+ * // Sync operation
100
+ * onAddItem={(value) => ({ key: value, label: value })}
101
+ *
102
+ * // Async operation
103
+ * onAddItem={async (value) => {
104
+ * const newItem = await api.createItem(value);
105
+ * return { key: newItem.id, label: newItem.name };
106
+ * }}
107
+ * ```
108
+ */
109
+ onAddItem?: (newItemValue: string) => Promise<OptionLike> | OptionLike;
110
+ /**
111
+ * Optional callback for deleting items.
112
+ * Typically used for API integration to sync deletions with backend.
113
+ *
114
+ * When provided, this callback is called when a chip is removed.
115
+ * The component handles UI updates automatically.
116
+ *
117
+ * @param keyToDelete - The key of the item being deleted
118
+ * @returns Promise<void> for the deletion operation
119
+ *
120
+ * @example
121
+ * ```tsx
122
+ * onDeleteItem={async (key) => {
123
+ * await api.deleteItem(key);
124
+ * // Component automatically updates UI
125
+ * }}
126
+ * ```
127
+ */
128
+ onDeleteItem?: (keyToDelete: OptionLikeKey) => Promise<void>;
17
129
  };
@@ -1,2 +1,63 @@
1
- import React from 'react';
2
- export declare const onEnterKeyPreventFormSubmit: (onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>) => (e: React.KeyboardEvent<HTMLInputElement>) => void;
1
+ import { ChipProps } from '../../atoms/Chip/Chip.types';
2
+ import { CheckboxItemProps } from '../../atoms/CheckboxItem/CheckboxItem.types';
3
+ import { OptionLike, OptionLikeKey } from './ChipInput.types';
4
+ /**
5
+ * Normalizes string array or OptionLike array to OptionLike array
6
+ */
7
+ export declare const normalizeToOptionLike: (options: string[] | OptionLike[]) => OptionLike[];
8
+ /**
9
+ * Normalizes string array or OptionLike array to OptionLikeKey array
10
+ */
11
+ export declare const normalizeToOptionLikeKey: (options: string[] | OptionLike[]) => OptionLikeKey[];
12
+ /**
13
+ * Creates chip props for a selected value using OptionLike
14
+ */
15
+ export declare const createChipProps: (option: OptionLike, onRemove: (key: OptionLikeKey) => void, className?: string) => ChipProps;
16
+ /**
17
+ * Creates checkbox item props for context menu options using OptionLike
18
+ */
19
+ export declare const createCheckboxItemProps: (option: OptionLike, isChecked: boolean, onSelect: (key: OptionLikeKey) => void, className?: string) => CheckboxItemProps;
20
+ /**
21
+ * Toggles an option key in the selected keys array
22
+ */
23
+ export declare const toggleOptionInArray: (selectedKeys: OptionLikeKey[], optionKey: OptionLikeKey) => OptionLikeKey[];
24
+ /**
25
+ * Adds a new OptionLike to available options if it doesn't exist
26
+ */
27
+ export declare const addUniqueOption: (availableOptions: OptionLike[], newOption: OptionLike) => OptionLike[];
28
+ /**
29
+ * Handles Enter key press for adding new chips
30
+ */
31
+ export declare const handleEnterKeyForChip: (event: React.KeyboardEvent<HTMLInputElement>, inputValue: string, onAddChip: (value: string) => void, onClearInput: () => void) => void;
32
+ /**
33
+ * Finds an OptionLike by its key
34
+ */
35
+ export declare const findOptionByKey: (options: OptionLike[], key: OptionLikeKey) => OptionLike | undefined;
36
+ /**
37
+ * Converts OptionLikeKey array back to original format (string[] or OptionLike[])
38
+ */
39
+ export declare const convertKeysToOriginalFormat: <T extends string[] | OptionLike[]>(keys: OptionLikeKey[], originalValue: T | undefined, availableOptions: OptionLike[]) => T;
40
+ /**
41
+ * Filters options by input value for search functionality
42
+ */
43
+ export declare const filterOptionsByInput: (options: OptionLike[], inputValue: string) => OptionLike[];
44
+ /**
45
+ * Creates an optimistic item for async operations
46
+ */
47
+ export declare const createOptimisticItem: (value: string) => OptionLike;
48
+ /**
49
+ * Adds a key to selected keys array
50
+ */
51
+ export declare const addKeyToSelection: (selectedKeys: OptionLikeKey[], keyToAdd: OptionLikeKey) => OptionLikeKey[];
52
+ /**
53
+ * Removes a key from selected keys array
54
+ */
55
+ export declare const removeKeyFromSelection: (selectedKeys: OptionLikeKey[], keyToRemove: OptionLikeKey) => OptionLikeKey[];
56
+ /**
57
+ * Replaces a temporary key with a real key in selected keys array
58
+ */
59
+ export declare const replaceKeyInSelection: (selectedKeys: OptionLikeKey[], oldKey: OptionLikeKey, newKey: OptionLikeKey) => OptionLikeKey[];
60
+ /**
61
+ * Handles async add item operation with optimistic updates
62
+ */
63
+ export declare const handleAsyncAddItem: (inputValue: string, onAddItem: (value: string) => Promise<OptionLike>, currentOptions: OptionLike[], currentSelectedKeys: OptionLikeKey[], setOptions: (options: OptionLike[]) => void, setSelectedKeys: (keys: OptionLikeKey[]) => void) => Promise<void>;
@@ -1,3 +1,8 @@
1
1
  import { ListProps } from "../List";
2
2
  import { ListItemType } from "../List/List.types";
3
- export type ContextMenuProps<T extends ListItemType> = ListProps<T>;
3
+ export type ContextMenuProps<T extends ListItemType> = ListProps<T> & {
4
+ /**
5
+ * Component variant for theming
6
+ */
7
+ 'component-variant'?: string;
8
+ };
@@ -19,9 +19,13 @@ declare const useSearchPresenter: (props: SearchProps) => {
19
19
  'component-variant': string;
20
20
  };
21
21
  restProps: {
22
+ disabled?: boolean | undefined;
23
+ required?: boolean | undefined;
24
+ checked?: boolean | undefined;
22
25
  className?: string | undefined;
23
26
  form?: string | undefined;
24
27
  list?: string | undefined;
28
+ children?: import("react").ReactNode | undefined;
25
29
  role?: import("react").AriaRole | undefined;
26
30
  src?: string | undefined;
27
31
  onLoad?: import("react").ReactEventHandler<HTMLInputElement> | undefined;
@@ -127,7 +131,6 @@ declare const useSearchPresenter: (props: SearchProps) => {
127
131
  "aria-valuemin"?: number | undefined;
128
132
  "aria-valuenow"?: number | undefined;
129
133
  "aria-valuetext"?: string | undefined;
130
- children?: import("react").ReactNode | undefined;
131
134
  dangerouslySetInnerHTML?: {
132
135
  __html: string | TrustedHTML;
133
136
  } | undefined;
@@ -289,10 +292,7 @@ declare const useSearchPresenter: (props: SearchProps) => {
289
292
  onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLInputElement> | undefined;
290
293
  onTransitionEnd?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
291
294
  onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
292
- disabled?: boolean | undefined;
293
295
  pattern?: string | undefined;
294
- required?: boolean | undefined;
295
- checked?: boolean | undefined;
296
296
  size?: number | undefined;
297
297
  step?: number | string | undefined;
298
298
  autoComplete?: import("react").HTMLInputAutoCompleteAttribute | undefined;
@@ -15,11 +15,11 @@ declare const usePresenter: (props: SelectProps) => {
15
15
  selectedValue: import("../..").FieldValue;
16
16
  resetSelectedValue: () => void;
17
17
  triggerProps: {
18
- id?: string;
19
18
  disabled?: boolean;
20
19
  required?: boolean;
21
20
  checked?: boolean;
22
21
  value?: import("../..").FieldValue | undefined;
22
+ id?: string;
23
23
  invalid?: boolean;
24
24
  onValueChange?: ((value: import("../..").FieldValue) => void) | undefined;
25
25
  initialValue?: import("../..").FieldValue | undefined;
@@ -48,28 +48,32 @@
48
48
  background-color: var(--actionImage-background-color--disabled);
49
49
  }
50
50
  .Spinner-module_spinner__CfJfU {
51
- --spinner-height: 14px;
52
- --spinner-width: 14px;
53
- --spinner-border-width: 2px;
54
- --spinner-border-style: solid;
55
- --spinner-border-color: currentcolor;
51
+ width: 16px;
52
+ width: var(--spinner-width, 16px);
53
+ height: 16px;
54
+ height: var(--spinner-height, 16px);
55
+ display: inline-block;
56
+ position: relative;
57
+ }
58
+ .Spinner-module_spinner__CfJfU .Spinner-module_inner__o2YHF {
59
+ --spinner-inner-border-width: 2px;
60
+ --spinner-inner-border-style: solid;
56
61
  width: 14px;
57
- width: var(--spinner-width);
62
+ width: var(--spinner-inner-width, 14px);
58
63
  height: 14px;
59
- height: var(--spinner-height);
64
+ height: var(--spinner-inner-height, 14px);
60
65
  border-width: 2px;
61
- border-width: var(--spinner-border-width);
66
+ border-width: var(--spinner-inner-border-width);
62
67
  border-style: solid;
63
- border-style: var(--spinner-border-style);
68
+ border-style: var(--spinner-inner-border-style);
64
69
  border-color: currentcolor;
65
- border-color: var(--spinner-border-color);
70
+ border-color: var(--spinner-inner-color, currentcolor);
66
71
  border-top: 2px solid transparent;
67
- border-top: var(--spinner-border-width) solid transparent;
72
+ border-top: var(--spinner-inner-border-width) solid transparent;
68
73
  border-radius: 50%;
69
74
  animation: Spinner-module_spin__136Ue 1s linear infinite;
70
75
  box-sizing: border-box;
71
76
  }
72
-
73
77
  @keyframes Spinner-module_spin__136Ue {
74
78
  0% {
75
79
  transform: rotate(0deg);
@@ -489,8 +493,8 @@
489
493
  .ListItem-module_listItem__jYwlh .ListItem-module_content__I-1o- {
490
494
  flex: 1;
491
495
  display: flex;
492
- justify-content: center;
493
- justify-content: var(--list-item-content-justify-content, center);
496
+ justify-content: flex-start;
497
+ justify-content: var(--list-item-content-justify-content, flex-start);
494
498
  }
495
499
  .ListItem-module_listItem__jYwlh .ListItem-module_content__I-1o- > *,
496
500
  .ListItem-module_listItem__jYwlh .ListItem-module_leadingIcon__BvSjG > *,
@@ -542,8 +546,8 @@
542
546
  .SelectListItem-module_listItem__alhXN .SelectListItem-module_content__IU02L {
543
547
  flex: 1;
544
548
  display: flex;
545
- justify-content: center;
546
- justify-content: var(--list-item-content-justify-content, center);
549
+ justify-content: flex-start;
550
+ justify-content: var(--list-item-content-justify-content, flex-start);
547
551
  }
548
552
  .SelectListItem-module_listItem__alhXN .SelectListItem-module_content__IU02L > *,
549
553
  .SelectListItem-module_listItem__alhXN .SelectListItem-module_leadingIcon__wMycl > *,
@@ -3704,6 +3708,9 @@ span.flatpickr-weekday {
3704
3708
  }
3705
3709
 
3706
3710
  .ChipInput-module_chipInput__tCCgW .ChipInput-module_trigger__KLvR4 {
3711
+ display: flex;
3712
+ flex-wrap: wrap;
3713
+ align-items: center;
3707
3714
  padding-top: calc(var(--chip-input-padding-top) - var(--chip-input-border-top-width));
3708
3715
  padding-bottom: calc(var(--chip-input-padding-bottom) - var(--chip-input-border-bottom-width));
3709
3716
  padding-left: calc(var(--chip-input-padding-left) - var(--chip-input-border-left-width));
@@ -29326,6 +29333,16 @@ span.flatpickr-weekday {
29326
29333
  --spinner-paragraph-spacing: 0px;
29327
29334
  --spinner-paragraph-indent: 0px
29328
29335
  }
29336
+ [data-theme='dark'] [component-variant="spinner-default"], [data-theme='light'] [component-variant="spinner-default"] {
29337
+ --spinner-inner-height: 14px;
29338
+ --spinner-inner-width: 14px;
29339
+ --spinner-inner-color: var(--colours-grey-50);
29340
+ --spinner-inner-font-family: sans-sarif;
29341
+ --spinner-inner-font-size: initial;
29342
+ --spinner-inner-font-weight: regular;
29343
+ --spinner-inner-paragraph-spacing: 0px;
29344
+ --spinner-inner-paragraph-indent: 0px
29345
+ }
29329
29346
  [data-theme='dark'] [component-variant^="modal-header-"], [data-theme='light'] [component-variant^="modal-header-"] {
29330
29347
  --modal-header-opacity: 1;
29331
29348
  --modal-header-height: auto;