@mantine/core 7.1.1 → 7.1.3

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.
@@ -126,7 +126,8 @@ const MultiSelect = factory.factory((_props, ref) => {
126
126
  id,
127
127
  clearable,
128
128
  clearButtonProps,
129
- hiddenInputProps
129
+ hiddenInputProps,
130
+ placeholder
130
131
  } = _a, others = __objRest(_a, [
131
132
  "classNames",
132
133
  "className",
@@ -191,7 +192,8 @@ const MultiSelect = factory.factory((_props, ref) => {
191
192
  "id",
192
193
  "clearable",
193
194
  "clearButtonProps",
194
- "hiddenInputProps"
195
+ "hiddenInputProps",
196
+ "placeholder"
195
197
  ]);
196
198
  const _id = hooks.useId(id);
197
199
  const parsedData = getParsedComboboxData.getParsedComboboxData(data);
@@ -253,6 +255,11 @@ const MultiSelect = factory.factory((_props, ref) => {
253
255
  ((_a2 = optionsLockup[item]) == null ? void 0 : _a2.label) || item
254
256
  );
255
257
  });
258
+ React.useEffect(() => {
259
+ if (selectFirstOptionOnChange) {
260
+ combobox.selectFirstOption();
261
+ }
262
+ }, [selectFirstOptionOnChange, _value]);
256
263
  const clearButton = clearable && _value.length > 0 && !disabled && !readOnly && /* @__PURE__ */ React__default.createElement(
257
264
  Combobox.Combobox.ClearButton,
258
265
  __spreadProps(__spreadValues({
@@ -264,6 +271,7 @@ const MultiSelect = factory.factory((_props, ref) => {
264
271
  }
265
272
  })
266
273
  );
274
+ const filteredData = filterPickedValues.filterPickedValues({ data: parsedData, value: _value });
267
275
  return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
268
276
  Combobox.Combobox,
269
277
  __spreadValues({
@@ -327,7 +335,9 @@ const MultiSelect = factory.factory((_props, ref) => {
327
335
  PillsInput.PillsInput.Field,
328
336
  __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, rest), {
329
337
  ref,
330
- id: _id
338
+ id: _id,
339
+ placeholder,
340
+ type: !searchable && !placeholder ? "hidden" : "visible"
331
341
  }), getStyles("inputField")), {
332
342
  unstyled,
333
343
  onFocus: (event) => {
@@ -345,6 +355,7 @@ const MultiSelect = factory.factory((_props, ref) => {
345
355
  onChange: (event) => {
346
356
  setSearchValue(event.currentTarget.value);
347
357
  searchable && combobox.openDropdown();
358
+ selectFirstOptionOnChange && combobox.selectFirstOption();
348
359
  },
349
360
  disabled,
350
361
  readOnly: readOnly || !searchable,
@@ -355,12 +366,12 @@ const MultiSelect = factory.factory((_props, ref) => {
355
366
  /* @__PURE__ */ React__default.createElement(
356
367
  OptionsDropdown.OptionsDropdown,
357
368
  {
358
- data: hidePickedOptions ? filterPickedValues.filterPickedValues({ data: parsedData, value: _value }) : parsedData,
369
+ data: hidePickedOptions ? filteredData : parsedData,
359
370
  hidden: readOnly || disabled,
360
371
  filter,
361
372
  search: _searchValue,
362
373
  limit,
363
- hiddenWhenEmpty: hidePickedOptions || !nothingFoundMessage || !searchable && _searchValue.trim().length !== 0,
374
+ hiddenWhenEmpty: !searchable || !nothingFoundMessage || hidePickedOptions && filteredData.length === 0 && _searchValue.trim().length === 0,
364
375
  withScrollArea,
365
376
  maxDropdownHeight,
366
377
  filterOptions: searchable,
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.js","sources":["../../../src/components/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import React from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n extractStyleProps,\n useStyles,\n useResolvedStylesApi,\n} from '../../core';\nimport {\n Combobox,\n OptionsDropdown,\n useCombobox,\n getParsedComboboxData,\n getOptionsLockup,\n ComboboxLikeProps,\n ComboboxLikeStylesNames,\n} from '../Combobox';\nimport { __BaseInputProps, __InputStylesNames } from '../Input';\nimport { PillsInput } from '../PillsInput';\nimport { Pill } from '../Pill';\nimport { InputBase } from '../InputBase';\nimport { __CloseButtonProps } from '../CloseButton';\nimport { filterPickedValues } from './filter-picked-values';\n\nexport type MultiSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport interface MultiSelectProps\n extends BoxProps,\n __BaseInputProps,\n ComboboxLikeProps,\n StylesApiProps<MultiSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Controlled component value */\n value?: string[];\n\n /** Default value for uncontrolled component */\n defaultValue?: string[];\n\n /** Called whe value changes */\n onChange?(value: string[]): void;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?(value: string): void;\n\n /** Maximum number of values, `Infinity` by default */\n maxValues?: number;\n\n /** Determines whether the select should be searchable, `false` by default */\n searchable?: boolean;\n\n /** Message displayed when no option matched current search query, only applicable when `searchable` prop is set */\n nothingFoundMessage?: React.ReactNode;\n\n /** Determines whether check icon should be displayed near the selected option label, `true` by default */\n withCheckIcon?: boolean;\n\n /** Position of the check icon relative to the option label, `'left'` by default */\n checkIconPosition?: 'left' | 'right';\n\n /** Determines whether picked options should be removed from the options list, `false` by default */\n hidePickedOptions?: boolean;\n\n /** Determines whether the clear button should be displayed in the right section when the component has value, `false` by default */\n clearable?: boolean;\n\n /** Props passed down to the clear button */\n clearButtonProps?: __CloseButtonProps & ElementProps<'button'>;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: React.ComponentPropsWithoutRef<'input'>;\n}\n\nexport type MultiSelectFactory = Factory<{\n props: MultiSelectProps;\n ref: HTMLInputElement;\n stylesNames: MultiSelectStylesNames;\n}>;\n\nconst defaultProps: Partial<MultiSelectProps> = {\n maxValues: Infinity,\n withCheckIcon: true,\n checkIconPosition: 'left',\n};\n\nexport const MultiSelect = factory<MultiSelectFactory>((_props, ref) => {\n const props = useProps('MultiSelect', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n variant,\n data,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n selectFirstOptionOnChange,\n onOptionSubmit,\n comboboxProps,\n filter,\n limit,\n withScrollArea,\n maxDropdownHeight,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n readOnly,\n disabled,\n onFocus,\n onBlur,\n onPaste,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n wrapperProps,\n description,\n label,\n error,\n maxValues,\n searchable,\n nothingFoundMessage,\n withCheckIcon,\n checkIconPosition,\n hidePickedOptions,\n withErrorStyles,\n name,\n form,\n id,\n clearable,\n clearButtonProps,\n hiddenInputProps,\n ...others\n } = props;\n\n const _id = useId(id);\n const parsedData = getParsedComboboxData(data);\n const optionsLockup = getOptionsLockup(parsedData);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const {\n styleProps,\n rest: { type, ...rest },\n } = extractStyleProps(others);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [],\n onChange,\n });\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: '',\n onChange: onSearchChange,\n });\n\n const getStyles = useStyles<MultiSelectFactory>({\n name: 'MultiSelect',\n classes: {} as any,\n props,\n classNames,\n styles,\n unstyled,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<MultiSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && _value.length > 0) {\n setValue(_value.slice(0, _value.length - 1));\n }\n };\n\n const values = _value.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => setValue(_value.filter((i) => item !== i))}\n unstyled={unstyled}\n {...getStyles('pill')}\n >\n {optionsLockup[item]?.label || item}\n </Pill>\n ));\n\n const clearButton = clearable && _value.length > 0 && !disabled && !readOnly && (\n <Combobox.ClearButton\n size={size as string}\n {...clearButtonProps}\n onClear={() => {\n setValue([]);\n setSearchValue('');\n }}\n />\n );\n\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"MultiSelect\"\n onOptionSubmit={(val) => {\n onOptionSubmit?.(val);\n setSearchValue('');\n combobox.updateSelectedOptionIndex('selected');\n\n if (_value.includes(optionsLockup[val].value)) {\n setValue(_value.filter((v) => v !== optionsLockup[val].value));\n } else if (_value.length < maxValues!) {\n setValue([..._value, optionsLockup[val].value]);\n }\n }}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"MultiSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n rightSection={\n rightSection ||\n clearButton || <Combobox.Chevron size={size} error={error} unstyled={unstyled} />\n }\n rightSectionPointerEvents={rightSectionPointerEvents || clearButton ? 'all' : 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n multiline\n withErrorStyles={withErrorStyles}\n __stylesApiProps={{ ...props, multiline: true }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n id={_id}\n >\n <Pill.Group disabled={disabled} unstyled={unstyled} {...getStyles('pillsList')}>\n {values}\n <Combobox.EventsTarget>\n <PillsInput.Field\n {...rest}\n ref={ref}\n id={_id}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n searchable && combobox.openDropdown();\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n searchable && combobox.closeDropdown();\n setSearchValue('');\n }}\n onKeyDown={handleInputKeydown}\n value={_searchValue}\n onChange={(event) => {\n setSearchValue(event.currentTarget.value);\n searchable && combobox.openDropdown();\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n\n <OptionsDropdown\n data={\n hidePickedOptions ? filterPickedValues({ data: parsedData, value: _value }) : parsedData\n }\n hidden={readOnly || disabled}\n filter={filter}\n search={_searchValue}\n limit={limit}\n hiddenWhenEmpty={\n hidePickedOptions ||\n !nothingFoundMessage ||\n (!searchable && _searchValue.trim().length !== 0)\n }\n withScrollArea={withScrollArea}\n maxDropdownHeight={maxDropdownHeight}\n filterOptions={searchable}\n value={_value}\n checkIconPosition={checkIconPosition}\n withCheckIcon={withCheckIcon}\n nothingFoundMessage={nothingFoundMessage}\n unstyled={unstyled}\n labelId={`${_id}-label`}\n />\n </Combobox>\n <input\n type=\"hidden\"\n name={name}\n value={_value.join(',')}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nMultiSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nMultiSelect.displayName = '@mantine/core/MultiSelect';\n"],"names":["factory","useProps","useId","getParsedComboboxData","getOptionsLockup","useCombobox","extractStyleProps","useUncontrolled","useStyles","useResolvedStylesApi","React","Pill","Combobox","PillsInput","OptionsDropdown","filterPickedValues","InputBase"],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelect.js","sources":["../../../src/components/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n extractStyleProps,\n useStyles,\n useResolvedStylesApi,\n} from '../../core';\nimport {\n Combobox,\n OptionsDropdown,\n useCombobox,\n getParsedComboboxData,\n getOptionsLockup,\n ComboboxLikeProps,\n ComboboxLikeStylesNames,\n} from '../Combobox';\nimport { __BaseInputProps, __InputStylesNames } from '../Input';\nimport { PillsInput } from '../PillsInput';\nimport { Pill } from '../Pill';\nimport { InputBase } from '../InputBase';\nimport { __CloseButtonProps } from '../CloseButton';\nimport { filterPickedValues } from './filter-picked-values';\n\nexport type MultiSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport interface MultiSelectProps\n extends BoxProps,\n __BaseInputProps,\n ComboboxLikeProps,\n StylesApiProps<MultiSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Controlled component value */\n value?: string[];\n\n /** Default value for uncontrolled component */\n defaultValue?: string[];\n\n /** Called whe value changes */\n onChange?(value: string[]): void;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?(value: string): void;\n\n /** Maximum number of values, `Infinity` by default */\n maxValues?: number;\n\n /** Determines whether the select should be searchable, `false` by default */\n searchable?: boolean;\n\n /** Message displayed when no option matched current search query, only applicable when `searchable` prop is set */\n nothingFoundMessage?: React.ReactNode;\n\n /** Determines whether check icon should be displayed near the selected option label, `true` by default */\n withCheckIcon?: boolean;\n\n /** Position of the check icon relative to the option label, `'left'` by default */\n checkIconPosition?: 'left' | 'right';\n\n /** Determines whether picked options should be removed from the options list, `false` by default */\n hidePickedOptions?: boolean;\n\n /** Determines whether the clear button should be displayed in the right section when the component has value, `false` by default */\n clearable?: boolean;\n\n /** Props passed down to the clear button */\n clearButtonProps?: __CloseButtonProps & ElementProps<'button'>;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: React.ComponentPropsWithoutRef<'input'>;\n}\n\nexport type MultiSelectFactory = Factory<{\n props: MultiSelectProps;\n ref: HTMLInputElement;\n stylesNames: MultiSelectStylesNames;\n}>;\n\nconst defaultProps: Partial<MultiSelectProps> = {\n maxValues: Infinity,\n withCheckIcon: true,\n checkIconPosition: 'left',\n};\n\nexport const MultiSelect = factory<MultiSelectFactory>((_props, ref) => {\n const props = useProps('MultiSelect', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n variant,\n data,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n selectFirstOptionOnChange,\n onOptionSubmit,\n comboboxProps,\n filter,\n limit,\n withScrollArea,\n maxDropdownHeight,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n readOnly,\n disabled,\n onFocus,\n onBlur,\n onPaste,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n wrapperProps,\n description,\n label,\n error,\n maxValues,\n searchable,\n nothingFoundMessage,\n withCheckIcon,\n checkIconPosition,\n hidePickedOptions,\n withErrorStyles,\n name,\n form,\n id,\n clearable,\n clearButtonProps,\n hiddenInputProps,\n placeholder,\n ...others\n } = props;\n\n const _id = useId(id);\n const parsedData = getParsedComboboxData(data);\n const optionsLockup = getOptionsLockup(parsedData);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const {\n styleProps,\n rest: { type, ...rest },\n } = extractStyleProps(others);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [],\n onChange,\n });\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: '',\n onChange: onSearchChange,\n });\n\n const getStyles = useStyles<MultiSelectFactory>({\n name: 'MultiSelect',\n classes: {} as any,\n props,\n classNames,\n styles,\n unstyled,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<MultiSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && _value.length > 0) {\n setValue(_value.slice(0, _value.length - 1));\n }\n };\n\n const values = _value.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => setValue(_value.filter((i) => item !== i))}\n unstyled={unstyled}\n {...getStyles('pill')}\n >\n {optionsLockup[item]?.label || item}\n </Pill>\n ));\n\n useEffect(() => {\n if (selectFirstOptionOnChange) {\n combobox.selectFirstOption();\n }\n }, [selectFirstOptionOnChange, _value]);\n\n const clearButton = clearable && _value.length > 0 && !disabled && !readOnly && (\n <Combobox.ClearButton\n size={size as string}\n {...clearButtonProps}\n onClear={() => {\n setValue([]);\n setSearchValue('');\n }}\n />\n );\n\n const filteredData = filterPickedValues({ data: parsedData, value: _value });\n\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"MultiSelect\"\n onOptionSubmit={(val) => {\n onOptionSubmit?.(val);\n setSearchValue('');\n combobox.updateSelectedOptionIndex('selected');\n\n if (_value.includes(optionsLockup[val].value)) {\n setValue(_value.filter((v) => v !== optionsLockup[val].value));\n } else if (_value.length < maxValues!) {\n setValue([..._value, optionsLockup[val].value]);\n }\n }}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"MultiSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n rightSection={\n rightSection ||\n clearButton || <Combobox.Chevron size={size} error={error} unstyled={unstyled} />\n }\n rightSectionPointerEvents={rightSectionPointerEvents || clearButton ? 'all' : 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n multiline\n withErrorStyles={withErrorStyles}\n __stylesApiProps={{ ...props, multiline: true }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n id={_id}\n >\n <Pill.Group disabled={disabled} unstyled={unstyled} {...getStyles('pillsList')}>\n {values}\n <Combobox.EventsTarget>\n <PillsInput.Field\n {...rest}\n ref={ref}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n searchable && combobox.openDropdown();\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n searchable && combobox.closeDropdown();\n setSearchValue('');\n }}\n onKeyDown={handleInputKeydown}\n value={_searchValue}\n onChange={(event) => {\n setSearchValue(event.currentTarget.value);\n searchable && combobox.openDropdown();\n selectFirstOptionOnChange && combobox.selectFirstOption();\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n\n <OptionsDropdown\n data={hidePickedOptions ? filteredData : parsedData}\n hidden={readOnly || disabled}\n filter={filter}\n search={_searchValue}\n limit={limit}\n hiddenWhenEmpty={\n !searchable ||\n !nothingFoundMessage ||\n (hidePickedOptions && filteredData.length === 0 && _searchValue.trim().length === 0)\n }\n withScrollArea={withScrollArea}\n maxDropdownHeight={maxDropdownHeight}\n filterOptions={searchable}\n value={_value}\n checkIconPosition={checkIconPosition}\n withCheckIcon={withCheckIcon}\n nothingFoundMessage={nothingFoundMessage}\n unstyled={unstyled}\n labelId={`${_id}-label`}\n />\n </Combobox>\n <input\n type=\"hidden\"\n name={name}\n value={_value.join(',')}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nMultiSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nMultiSelect.displayName = '@mantine/core/MultiSelect';\n"],"names":["factory","useProps","useId","getParsedComboboxData","getOptionsLockup","useCombobox","extractStyleProps","useUncontrolled","useStyles","useResolvedStylesApi","React","Pill","useEffect","Combobox","filterPickedValues","PillsInput","OptionsDropdown","InputBase"],"mappings":"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"}
@@ -207,6 +207,7 @@ const NumberInput = factory.factory((_props, ref) => {
207
207
  "aria-hidden": true,
208
208
  disabled: disabled || typeof _value === "number" && max !== void 0 && _value >= max,
209
209
  mod: { direction: "up" },
210
+ onMouseDown: (event) => event.preventDefault(),
210
211
  onPointerDown: increment
211
212
  }),
212
213
  /* @__PURE__ */ React__default.createElement(NumberInputChevron.NumberInputChevron, { direction: "up" })
@@ -217,6 +218,7 @@ const NumberInput = factory.factory((_props, ref) => {
217
218
  "aria-hidden": true,
218
219
  disabled: disabled || typeof _value === "number" && min !== void 0 && _value <= min,
219
220
  mod: { direction: "down" },
221
+ onMouseDown: (event) => event.preventDefault(),
220
222
  onPointerDown: decrement
221
223
  }),
222
224
  /* @__PURE__ */ React__default.createElement(NumberInputChevron.NumberInputChevron, { direction: "down" })
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React from 'react';\nimport { NumericFormat, OnValueChange, NumberFormatValues } from 'react-number-format';\nimport { assignRef, clamp, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n getSize,\n useResolvedStylesApi,\n} from '../../core';\nimport { UnstyledButton } from '../UnstyledButton';\nimport { InputBase } from '../InputBase';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { NumberInputChevron } from './NumberInputChevron';\nimport classes from './NumberInput.module.css';\n\nexport interface NumberInputHandlers {\n increment(): void;\n decrement(): void;\n}\n\nfunction isValidNumber(value: number | undefined): value is number {\n return typeof value === 'number' && !Number.isNaN(value);\n}\n\ninterface GetDecrementedValueInput {\n value: number;\n min: number | undefined;\n step: number | undefined;\n allowNegative: boolean | undefined;\n}\n\nfunction getDecrementedValue({ value, min, step = 1, allowNegative }: GetDecrementedValueInput) {\n const nextValue = value - step;\n\n if (min !== undefined && nextValue < min) {\n return min;\n }\n\n if (!allowNegative && nextValue < 0 && min === undefined) {\n return value;\n }\n\n if (min !== undefined && min >= 0 && nextValue <= min) {\n return nextValue;\n }\n\n return nextValue;\n}\n\nfunction isInRange(value: number | undefined, min: number | undefined, max: number | undefined) {\n if (value === undefined) {\n return true;\n }\n\n const minValid = min === undefined || value >= min;\n const maxValid = max === undefined || value <= max;\n\n return minValid && maxValid;\n}\n\nexport type NumberInputStylesNames = 'controls' | 'control' | __InputStylesNames;\nexport type NumberInputCssVariables = {\n controls: '--ni-chevron-size';\n};\n\nexport interface NumberInputProps\n extends BoxProps,\n __BaseInputProps,\n StylesApiProps<NumberInputFactory>,\n ElementProps<'input', 'size' | 'type' | 'onChange'> {\n /** Controlled component value */\n value?: number | string;\n\n /** Uncontrolled component default value */\n defaultValue?: number | string;\n\n /** Called when value changes */\n onChange?(value: number | string): void;\n\n /** Called when value changes with `react-number-format` payload */\n onValueChange?: OnValueChange;\n\n /** Determines whether leading zeros are allowed. If not set, leading zeros are removed when the input is blurred. `false` by default */\n allowLeadingZeros?: boolean;\n\n /** Determines whether negative values are allowed, `true` by default */\n allowNegative?: boolean;\n\n /** Characters which when pressed result in a decimal separator, `['.']` by default */\n allowedDecimalSeparators?: string[];\n\n /** Limits the number of digits that can be entered after the decimal point */\n decimalScale?: number;\n\n /** Character used as a decimal separator, `'.'` by default */\n decimalSeparator?: string;\n\n /** If set, 0s are added after `decimalSeparator` to match given `decimalScale`. `false` by default */\n fixedDecimalScale?: boolean;\n\n /** Prefix added before the input value */\n prefix?: string;\n\n /** Suffix added after the input value */\n suffix?: string;\n\n /** Defines the thousand grouping style. */\n thousandsGroupStyle?: 'thousand' | 'lakh' | 'wan' | 'none';\n\n /** A function to validate the input value. If this function returns `false`, the `onChange` will not be called and the input value will not change. */\n isAllowed?(values: NumberFormatValues): boolean;\n\n /** If value is passed as string representation of numbers (unformatted) and number is used in any format props like in prefix or suffix in numeric format and format prop in pattern format then this should be passed as `true`. `false` by default. */\n valueIsNumericString?: boolean;\n\n /** Controls input `type` attribute, `'text'` by default */\n type?: 'text' | 'tel' | 'password';\n\n /** A character used to separate thousands */\n thousandSeparator?: string | boolean;\n\n /** Minimum possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with up/down controls and keyboard arrows, `1` by default */\n step?: number;\n\n /** Determines whether the up/down controls should be hidden, `false` by default */\n hideControls?: boolean;\n\n /** Controls how value is clamped, `strict` – user is not allowed to enter values that are not in `[min, max]` range, `blur` – user is allowed to enter any values, but the value is clamped when the input loses focus (default behavior), `none` – lifts all restrictions, `[min, max]` range is applied only for controls and up/down keys */\n clampBehavior?: 'strict' | 'blur' | 'none';\n\n /** Determines whether decimal values are allowed, `true` by default */\n allowDecimal?: boolean;\n\n /** Increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Value set to the input when increment/decrement buttons are clicked or up/down arrows pressed if the input is empty, `0` by default */\n startValue?: number;\n}\n\nexport type NumberInputFactory = Factory<{\n props: NumberInputProps;\n ref: HTMLDivElement;\n stylesNames: NumberInputStylesNames;\n vars: NumberInputCssVariables;\n variant: InputVariant;\n}>;\n\nconst defaultProps: Partial<NumberInputProps> = {\n step: 1,\n clampBehavior: 'blur',\n allowDecimal: true,\n allowNegative: true,\n startValue: 0,\n};\n\nconst varsResolver = createVarsResolver<NumberInputFactory>((_, { size }) => ({\n controls: {\n '--ni-chevron-size': getSize(size, 'ni-chevron-size'),\n },\n}));\n\nexport const NumberInput = factory<NumberInputFactory>((_props, ref) => {\n const props = useProps('NumberInput', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n vars,\n onChange,\n onValueChange,\n value,\n defaultValue,\n max,\n min,\n step,\n hideControls,\n rightSection,\n isAllowed,\n clampBehavior,\n onBlur,\n allowDecimal,\n decimalScale,\n onKeyDown,\n handlersRef,\n startValue,\n disabled,\n rightSectionPointerEvents,\n allowNegative,\n readOnly,\n ...others\n } = props;\n\n const getStyles = useStyles<NumberInputFactory>({\n name: 'NumberInput',\n classes,\n props,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<NumberInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n onChange,\n });\n\n const handleValueChange: OnValueChange = (payload, event) => {\n setValue(\n typeof _value === 'number' && isValidNumber(payload.floatValue)\n ? payload.floatValue\n : payload.value\n );\n onValueChange?.(payload, event);\n };\n\n const increment = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(min ?? clamp(startValue!, min, max));\n } else if (max !== undefined) {\n setValue(_value + step! <= max ? _value + step! : max);\n } else {\n setValue(_value + step!);\n }\n };\n\n const decrement = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(max ?? clamp(startValue!, min, max));\n } else {\n setValue(getDecrementedValue({ value: _value, min, step, allowNegative }));\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (readOnly) {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n increment();\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n decrement();\n }\n };\n\n assignRef(handlersRef, { increment, decrement });\n\n const controls = (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && max !== undefined && _value >= max)}\n mod={{ direction: 'up' }}\n onPointerDown={increment}\n >\n <NumberInputChevron direction=\"up\" />\n </UnstyledButton>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && min !== undefined && _value <= min)}\n mod={{ direction: 'down' }}\n onPointerDown={decrement}\n >\n <NumberInputChevron direction=\"down\" />\n </UnstyledButton>\n </div>\n );\n\n return (\n <InputBase\n component={NumericFormat}\n allowNegative={allowNegative}\n {...others}\n readOnly={readOnly}\n disabled={disabled}\n value={_value}\n getInputRef={ref}\n onValueChange={handleValueChange}\n rightSection={hideControls || readOnly ? rightSection : rightSection || controls}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n __staticSelector=\"NumberInput\"\n decimalScale={allowDecimal ? decimalScale : 0}\n onKeyDown={handleKeyDown}\n rightSectionPointerEvents={rightSectionPointerEvents ?? disabled ? 'none' : undefined}\n onBlur={(event) => {\n onBlur?.(event);\n if (clampBehavior === 'blur' && typeof _value === 'number') {\n setValue(clamp(_value, min, max));\n }\n }}\n isAllowed={(val) => {\n if (clampBehavior === 'strict') {\n if (isAllowed) {\n return isAllowed(val) && isInRange(val.floatValue, min, max);\n }\n\n return isInRange(val.floatValue, min, max);\n }\n\n return isAllowed ? isAllowed(val) : true;\n }}\n />\n );\n});\n\nNumberInput.classes = { ...InputBase.classes, ...classes };\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":["createVarsResolver","getSize","factory","useProps","useStyles","classes","useResolvedStylesApi","useUncontrolled","clamp","assignRef","React","UnstyledButton","NumberInputChevron","InputBase","NumericFormat"],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React from 'react';\nimport { NumericFormat, OnValueChange, NumberFormatValues } from 'react-number-format';\nimport { assignRef, clamp, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n getSize,\n useResolvedStylesApi,\n} from '../../core';\nimport { UnstyledButton } from '../UnstyledButton';\nimport { InputBase } from '../InputBase';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { NumberInputChevron } from './NumberInputChevron';\nimport classes from './NumberInput.module.css';\n\nexport interface NumberInputHandlers {\n increment(): void;\n decrement(): void;\n}\n\nfunction isValidNumber(value: number | undefined): value is number {\n return typeof value === 'number' && !Number.isNaN(value);\n}\n\ninterface GetDecrementedValueInput {\n value: number;\n min: number | undefined;\n step: number | undefined;\n allowNegative: boolean | undefined;\n}\n\nfunction getDecrementedValue({ value, min, step = 1, allowNegative }: GetDecrementedValueInput) {\n const nextValue = value - step;\n\n if (min !== undefined && nextValue < min) {\n return min;\n }\n\n if (!allowNegative && nextValue < 0 && min === undefined) {\n return value;\n }\n\n if (min !== undefined && min >= 0 && nextValue <= min) {\n return nextValue;\n }\n\n return nextValue;\n}\n\nfunction isInRange(value: number | undefined, min: number | undefined, max: number | undefined) {\n if (value === undefined) {\n return true;\n }\n\n const minValid = min === undefined || value >= min;\n const maxValid = max === undefined || value <= max;\n\n return minValid && maxValid;\n}\n\nexport type NumberInputStylesNames = 'controls' | 'control' | __InputStylesNames;\nexport type NumberInputCssVariables = {\n controls: '--ni-chevron-size';\n};\n\nexport interface NumberInputProps\n extends BoxProps,\n __BaseInputProps,\n StylesApiProps<NumberInputFactory>,\n ElementProps<'input', 'size' | 'type' | 'onChange'> {\n /** Controlled component value */\n value?: number | string;\n\n /** Uncontrolled component default value */\n defaultValue?: number | string;\n\n /** Called when value changes */\n onChange?(value: number | string): void;\n\n /** Called when value changes with `react-number-format` payload */\n onValueChange?: OnValueChange;\n\n /** Determines whether leading zeros are allowed. If not set, leading zeros are removed when the input is blurred. `false` by default */\n allowLeadingZeros?: boolean;\n\n /** Determines whether negative values are allowed, `true` by default */\n allowNegative?: boolean;\n\n /** Characters which when pressed result in a decimal separator, `['.']` by default */\n allowedDecimalSeparators?: string[];\n\n /** Limits the number of digits that can be entered after the decimal point */\n decimalScale?: number;\n\n /** Character used as a decimal separator, `'.'` by default */\n decimalSeparator?: string;\n\n /** If set, 0s are added after `decimalSeparator` to match given `decimalScale`. `false` by default */\n fixedDecimalScale?: boolean;\n\n /** Prefix added before the input value */\n prefix?: string;\n\n /** Suffix added after the input value */\n suffix?: string;\n\n /** Defines the thousand grouping style. */\n thousandsGroupStyle?: 'thousand' | 'lakh' | 'wan' | 'none';\n\n /** A function to validate the input value. If this function returns `false`, the `onChange` will not be called and the input value will not change. */\n isAllowed?(values: NumberFormatValues): boolean;\n\n /** If value is passed as string representation of numbers (unformatted) and number is used in any format props like in prefix or suffix in numeric format and format prop in pattern format then this should be passed as `true`. `false` by default. */\n valueIsNumericString?: boolean;\n\n /** Controls input `type` attribute, `'text'` by default */\n type?: 'text' | 'tel' | 'password';\n\n /** A character used to separate thousands */\n thousandSeparator?: string | boolean;\n\n /** Minimum possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with up/down controls and keyboard arrows, `1` by default */\n step?: number;\n\n /** Determines whether the up/down controls should be hidden, `false` by default */\n hideControls?: boolean;\n\n /** Controls how value is clamped, `strict` – user is not allowed to enter values that are not in `[min, max]` range, `blur` – user is allowed to enter any values, but the value is clamped when the input loses focus (default behavior), `none` – lifts all restrictions, `[min, max]` range is applied only for controls and up/down keys */\n clampBehavior?: 'strict' | 'blur' | 'none';\n\n /** Determines whether decimal values are allowed, `true` by default */\n allowDecimal?: boolean;\n\n /** Increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Value set to the input when increment/decrement buttons are clicked or up/down arrows pressed if the input is empty, `0` by default */\n startValue?: number;\n}\n\nexport type NumberInputFactory = Factory<{\n props: NumberInputProps;\n ref: HTMLDivElement;\n stylesNames: NumberInputStylesNames;\n vars: NumberInputCssVariables;\n variant: InputVariant;\n}>;\n\nconst defaultProps: Partial<NumberInputProps> = {\n step: 1,\n clampBehavior: 'blur',\n allowDecimal: true,\n allowNegative: true,\n startValue: 0,\n};\n\nconst varsResolver = createVarsResolver<NumberInputFactory>((_, { size }) => ({\n controls: {\n '--ni-chevron-size': getSize(size, 'ni-chevron-size'),\n },\n}));\n\nexport const NumberInput = factory<NumberInputFactory>((_props, ref) => {\n const props = useProps('NumberInput', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n vars,\n onChange,\n onValueChange,\n value,\n defaultValue,\n max,\n min,\n step,\n hideControls,\n rightSection,\n isAllowed,\n clampBehavior,\n onBlur,\n allowDecimal,\n decimalScale,\n onKeyDown,\n handlersRef,\n startValue,\n disabled,\n rightSectionPointerEvents,\n allowNegative,\n readOnly,\n ...others\n } = props;\n\n const getStyles = useStyles<NumberInputFactory>({\n name: 'NumberInput',\n classes,\n props,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<NumberInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n onChange,\n });\n\n const handleValueChange: OnValueChange = (payload, event) => {\n setValue(\n typeof _value === 'number' && isValidNumber(payload.floatValue)\n ? payload.floatValue\n : payload.value\n );\n onValueChange?.(payload, event);\n };\n\n const increment = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(min ?? clamp(startValue!, min, max));\n } else if (max !== undefined) {\n setValue(_value + step! <= max ? _value + step! : max);\n } else {\n setValue(_value + step!);\n }\n };\n\n const decrement = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(max ?? clamp(startValue!, min, max));\n } else {\n setValue(getDecrementedValue({ value: _value, min, step, allowNegative }));\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (readOnly) {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n increment();\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n decrement();\n }\n };\n\n assignRef(handlersRef, { increment, decrement });\n\n const controls = (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && max !== undefined && _value >= max)}\n mod={{ direction: 'up' }}\n onMouseDown={(event) => event.preventDefault()}\n onPointerDown={increment}\n >\n <NumberInputChevron direction=\"up\" />\n </UnstyledButton>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && min !== undefined && _value <= min)}\n mod={{ direction: 'down' }}\n onMouseDown={(event) => event.preventDefault()}\n onPointerDown={decrement}\n >\n <NumberInputChevron direction=\"down\" />\n </UnstyledButton>\n </div>\n );\n\n return (\n <InputBase\n component={NumericFormat}\n allowNegative={allowNegative}\n {...others}\n readOnly={readOnly}\n disabled={disabled}\n value={_value}\n getInputRef={ref}\n onValueChange={handleValueChange}\n rightSection={hideControls || readOnly ? rightSection : rightSection || controls}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n __staticSelector=\"NumberInput\"\n decimalScale={allowDecimal ? decimalScale : 0}\n onKeyDown={handleKeyDown}\n rightSectionPointerEvents={rightSectionPointerEvents ?? disabled ? 'none' : undefined}\n onBlur={(event) => {\n onBlur?.(event);\n if (clampBehavior === 'blur' && typeof _value === 'number') {\n setValue(clamp(_value, min, max));\n }\n }}\n isAllowed={(val) => {\n if (clampBehavior === 'strict') {\n if (isAllowed) {\n return isAllowed(val) && isInRange(val.floatValue, min, max);\n }\n\n return isInRange(val.floatValue, min, max);\n }\n\n return isAllowed ? isAllowed(val) : true;\n }}\n />\n );\n});\n\nNumberInput.classes = { ...InputBase.classes, ...classes };\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":["createVarsResolver","getSize","factory","useProps","useStyles","classes","useResolvedStylesApi","useUncontrolled","clamp","assignRef","React","UnstyledButton","NumberInputChevron","InputBase","NumericFormat"],"mappings":"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"}
@@ -92,6 +92,8 @@ const Rating = factory.factory((_props, ref) => {
92
92
  onMouseMove,
93
93
  onHover,
94
94
  onMouseLeave,
95
+ onTouchStart,
96
+ onTouchEnd,
95
97
  size,
96
98
  variant,
97
99
  getSymbolLabel,
@@ -118,6 +120,8 @@ const Rating = factory.factory((_props, ref) => {
118
120
  "onMouseMove",
119
121
  "onHover",
120
122
  "onMouseLeave",
123
+ "onTouchStart",
124
+ "onTouchEnd",
121
125
  "size",
122
126
  "variant",
123
127
  "getSymbolLabel",
@@ -155,6 +159,13 @@ const Rating = factory.factory((_props, ref) => {
155
159
  const decimalUnit = 1 / _fractions;
156
160
  const stableValueRounded = roundValueTo(_value, decimalUnit);
157
161
  const finalValue = hovered !== -1 ? hovered : stableValueRounded;
162
+ const getRatingFromCoordinates = (x) => {
163
+ const { left, right, width } = rootRef.current.getBoundingClientRect();
164
+ const symbolWidth = width / _count;
165
+ const hoverPosition = dir === "rtl" ? right - x : x - left;
166
+ const hoverValue = hoverPosition / symbolWidth;
167
+ return hooks.clamp(roundValueTo(hoverValue + decimalUnit / 2, decimalUnit), decimalUnit, _count);
168
+ };
158
169
  const handleMouseEnter = (event) => {
159
170
  onMouseEnter == null ? void 0 : onMouseEnter(event);
160
171
  !readOnly && setOutside(false);
@@ -164,15 +175,7 @@ const Rating = factory.factory((_props, ref) => {
164
175
  if (readOnly) {
165
176
  return;
166
177
  }
167
- const { left, right, width } = rootRef.current.getBoundingClientRect();
168
- const symbolWidth = width / _count;
169
- const hoverPosition = dir === "rtl" ? right - event.clientX : event.clientX - left;
170
- const hoverValue = hoverPosition / symbolWidth;
171
- const rounded = hooks.clamp(
172
- roundValueTo(hoverValue + decimalUnit / 2, decimalUnit),
173
- decimalUnit,
174
- _count
175
- );
178
+ const rounded = getRatingFromCoordinates(event.clientX);
176
179
  setHovered(rounded);
177
180
  rounded !== hovered && (onHover == null ? void 0 : onHover(rounded));
178
181
  };
@@ -185,7 +188,30 @@ const Rating = factory.factory((_props, ref) => {
185
188
  setOutside(true);
186
189
  hovered !== -1 && (onHover == null ? void 0 : onHover(-1));
187
190
  };
191
+ const handleTouchStart = (event) => {
192
+ event.preventDefault();
193
+ const { touches } = event;
194
+ if (touches.length !== 1) {
195
+ return;
196
+ }
197
+ const touch = touches[0];
198
+ setValue(getRatingFromCoordinates(touch.clientX));
199
+ onTouchStart == null ? void 0 : onTouchStart(event);
200
+ };
201
+ const handleTouchEnd = (event) => {
202
+ event.preventDefault();
203
+ onTouchEnd == null ? void 0 : onTouchEnd(event);
204
+ };
188
205
  const handleItemBlur = () => isOutside && setHovered(-1);
206
+ const handleInputChange = (event) => {
207
+ if (!readOnly) {
208
+ if (typeof event === "number") {
209
+ setHovered(event);
210
+ } else {
211
+ setHovered(parseFloat(event.target.value));
212
+ }
213
+ }
214
+ };
189
215
  const handleChange = (event) => {
190
216
  if (!readOnly) {
191
217
  if (typeof event === "number") {
@@ -225,6 +251,7 @@ const Rating = factory.factory((_props, ref) => {
225
251
  name: _name,
226
252
  onChange: handleChange,
227
253
  onBlur: handleItemBlur,
254
+ onInputChange: handleInputChange,
228
255
  id: `${_id}-${index}-${fractionIndex}`
229
256
  }
230
257
  );
@@ -239,6 +266,8 @@ const Rating = factory.factory((_props, ref) => {
239
266
  onMouseMove: handleMouseMove,
240
267
  onMouseEnter: handleMouseEnter,
241
268
  onMouseLeave: handleMouseLeave,
269
+ onTouchStart: handleTouchStart,
270
+ onTouchEnd: handleTouchEnd,
242
271
  variant,
243
272
  size,
244
273
  id: _id
@@ -1 +1 @@
1
- {"version":3,"file":"Rating.js","sources":["../../../src/components/Rating/Rating.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { clamp, useId, useMergedRef, useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineSize,\n MantineColor,\n useDirection,\n getSize,\n getThemeColor,\n} from '../../core';\nimport { RatingProvider } from './Rating.context';\nimport classes from './Rating.module.css';\nimport { RatingItem } from './RatingItem/RatingItem';\n\nfunction roundValueTo(value: number, to: number) {\n const rounded = Math.round(value / to) * to;\n const precision = `${to}`.split('.')[1]?.length || 0;\n return Number(rounded.toFixed(precision));\n}\n\nexport type RatingStylesNames =\n | 'root'\n | 'starSymbol'\n | 'input'\n | 'label'\n | 'symbolBody'\n | 'symbolGroup';\n\nexport type RatingCssVariables = {\n root: '--rating-size' | '--rating-color';\n};\n\nexport interface RatingProps\n extends BoxProps,\n StylesApiProps<RatingFactory>,\n ElementProps<'div', 'onChange'> {\n /** Default value for uncontrolled component */\n defaultValue?: number;\n\n /** Value for controlled component */\n value?: number;\n\n /** Called when value changes */\n onChange?(value: number): void;\n\n /** The icon that is displayed when symbol is empty */\n emptySymbol?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** This icon that is displayed when symbol is full */\n fullSymbol?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Number of fractions each item can be divided into, 1 by default */\n fractions?: number;\n\n /** Controls component size */\n size?: MantineSize;\n\n /** Number of controls that should be rendered */\n count?: number;\n\n /** Called when item is hovered */\n onHover?(value: number): void;\n\n /** Function should return labelText for the symbols */\n getSymbolLabel?: (value: number) => string;\n\n /** Name of rating, should be unique within the page */\n name?: string;\n\n /** If true, you won't be able to interact */\n readOnly?: boolean;\n\n /** If true, only the selected symbol will change to full symbol */\n highlightSelectedOnly?: boolean;\n\n /** Key of theme.colors or any CSS color value, yellow by default */\n color?: MantineColor;\n}\n\nexport type RatingFactory = Factory<{\n props: RatingProps;\n ref: HTMLDivElement;\n stylesNames: RatingStylesNames;\n vars: RatingCssVariables;\n}>;\n\nconst defaultProps: Partial<RatingProps> = {\n size: 'sm',\n getSymbolLabel: (value) => `${value}`,\n count: 5,\n fractions: 1,\n color: 'yellow',\n};\n\nconst varsResolver = createVarsResolver<RatingFactory>((theme, { size, color }) => ({\n root: {\n '--rating-size': getSize(size, 'rating-size'),\n '--rating-color': getThemeColor(color, theme),\n },\n}));\n\nexport const Rating = factory<RatingFactory>((_props, ref) => {\n const props = useProps('Rating', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n name,\n id,\n value,\n defaultValue,\n onChange,\n fractions,\n count,\n onMouseEnter,\n readOnly,\n onMouseMove,\n onHover,\n onMouseLeave,\n size,\n variant,\n getSymbolLabel,\n color,\n emptySymbol,\n fullSymbol,\n highlightSelectedOnly,\n ...others\n } = props;\n\n const getStyles = useStyles<RatingFactory>({\n name: 'Rating',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { dir } = useDirection();\n\n const _name = useId(name);\n const _id = useId(id);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: 0,\n onChange,\n });\n\n const [hovered, setHovered] = useState(-1);\n const [isOutside, setOutside] = useState(true);\n\n const _fractions = Math.floor(fractions!);\n const _count = Math.floor(count!);\n\n const decimalUnit = 1 / _fractions;\n const stableValueRounded = roundValueTo(_value, decimalUnit);\n const finalValue = hovered !== -1 ? hovered : stableValueRounded;\n\n const handleMouseEnter = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n !readOnly && setOutside(false);\n };\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseMove?.(event);\n\n if (readOnly) {\n return;\n }\n\n const { left, right, width } = rootRef.current!.getBoundingClientRect();\n const symbolWidth = width / _count;\n\n const hoverPosition = dir === 'rtl' ? right - event.clientX : event.clientX - left;\n const hoverValue = hoverPosition / symbolWidth;\n\n const rounded = clamp(\n roundValueTo(hoverValue + decimalUnit / 2, decimalUnit),\n decimalUnit,\n _count\n );\n\n setHovered(rounded);\n rounded !== hovered && onHover?.(rounded);\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n\n if (readOnly) {\n return;\n }\n\n setHovered(-1);\n setOutside(true);\n hovered !== -1 && onHover?.(-1);\n };\n\n const handleItemBlur = () => isOutside && setHovered(-1);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement> | number) => {\n if (!readOnly) {\n if (typeof event === 'number') {\n setValue(event);\n } else {\n setValue(parseFloat(event.target.value));\n }\n }\n };\n\n const items = Array(_count)\n .fill(0)\n .map((_, index) => {\n const integerValue = index + 1;\n const fractionItems = Array.from(new Array(index === 0 ? _fractions + 1 : _fractions));\n const isGroupActive = !readOnly && Math.ceil(hovered) === integerValue;\n\n return (\n <div\n key={integerValue}\n data-active={isGroupActive || undefined}\n {...getStyles('symbolGroup')}\n >\n {fractionItems.map((__, fractionIndex) => {\n const fractionValue = decimalUnit * (index === 0 ? fractionIndex : fractionIndex + 1);\n const symbolValue = roundValueTo(integerValue - 1 + fractionValue, decimalUnit);\n\n return (\n <RatingItem\n key={`${integerValue}-${symbolValue}`}\n size={size!}\n getSymbolLabel={getSymbolLabel}\n emptyIcon={emptySymbol}\n fullIcon={fullSymbol}\n full={\n highlightSelectedOnly ? symbolValue === finalValue : symbolValue <= finalValue\n }\n active={symbolValue === finalValue}\n checked={symbolValue === stableValueRounded}\n readOnly={readOnly}\n fractionValue={fractionValue}\n value={symbolValue}\n name={_name}\n onChange={handleChange}\n onBlur={handleItemBlur}\n id={`${_id}-${index}-${fractionIndex}`}\n />\n );\n })}\n </div>\n );\n });\n\n return (\n <RatingProvider value={{ getStyles }}>\n <Box\n ref={useMergedRef(rootRef, ref)}\n {...getStyles('root')}\n onMouseMove={handleMouseMove}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n variant={variant}\n size={size}\n id={_id}\n {...others}\n >\n {items}\n </Box>\n </RatingProvider>\n );\n});\n\nRating.classes = classes;\nRating.displayName = '@mantine/core/Rating';\n"],"names":["createVarsResolver","getSize","getThemeColor","factory","useProps","useStyles","classes","useDirection","useId","useRef","useUncontrolled","useState","clamp","React","RatingItem","RatingProvider","Box","useMergedRef"],"mappings":"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"}
1
+ {"version":3,"file":"Rating.js","sources":["../../../src/components/Rating/Rating.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { clamp, useId, useMergedRef, useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineSize,\n MantineColor,\n useDirection,\n getSize,\n getThemeColor,\n} from '../../core';\nimport { RatingProvider } from './Rating.context';\nimport classes from './Rating.module.css';\nimport { RatingItem } from './RatingItem/RatingItem';\n\nfunction roundValueTo(value: number, to: number) {\n const rounded = Math.round(value / to) * to;\n const precision = `${to}`.split('.')[1]?.length || 0;\n return Number(rounded.toFixed(precision));\n}\n\nexport type RatingStylesNames =\n | 'root'\n | 'starSymbol'\n | 'input'\n | 'label'\n | 'symbolBody'\n | 'symbolGroup';\n\nexport type RatingCssVariables = {\n root: '--rating-size' | '--rating-color';\n};\n\nexport interface RatingProps\n extends BoxProps,\n StylesApiProps<RatingFactory>,\n ElementProps<'div', 'onChange'> {\n /** Default value for uncontrolled component */\n defaultValue?: number;\n\n /** Value for controlled component */\n value?: number;\n\n /** Called when value changes */\n onChange?(value: number): void;\n\n /** The icon that is displayed when symbol is empty */\n emptySymbol?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** This icon that is displayed when symbol is full */\n fullSymbol?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Number of fractions each item can be divided into, 1 by default */\n fractions?: number;\n\n /** Controls component size */\n size?: MantineSize;\n\n /** Number of controls that should be rendered */\n count?: number;\n\n /** Called when item is hovered */\n onHover?(value: number): void;\n\n /** Function should return labelText for the symbols */\n getSymbolLabel?: (value: number) => string;\n\n /** Name of rating, should be unique within the page */\n name?: string;\n\n /** If true, you won't be able to interact */\n readOnly?: boolean;\n\n /** If true, only the selected symbol will change to full symbol */\n highlightSelectedOnly?: boolean;\n\n /** Key of theme.colors or any CSS color value, yellow by default */\n color?: MantineColor;\n}\n\nexport type RatingFactory = Factory<{\n props: RatingProps;\n ref: HTMLDivElement;\n stylesNames: RatingStylesNames;\n vars: RatingCssVariables;\n}>;\n\nconst defaultProps: Partial<RatingProps> = {\n size: 'sm',\n getSymbolLabel: (value) => `${value}`,\n count: 5,\n fractions: 1,\n color: 'yellow',\n};\n\nconst varsResolver = createVarsResolver<RatingFactory>((theme, { size, color }) => ({\n root: {\n '--rating-size': getSize(size, 'rating-size'),\n '--rating-color': getThemeColor(color, theme),\n },\n}));\n\nexport const Rating = factory<RatingFactory>((_props, ref) => {\n const props = useProps('Rating', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n name,\n id,\n value,\n defaultValue,\n onChange,\n fractions,\n count,\n onMouseEnter,\n readOnly,\n onMouseMove,\n onHover,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n size,\n variant,\n getSymbolLabel,\n color,\n emptySymbol,\n fullSymbol,\n highlightSelectedOnly,\n ...others\n } = props;\n\n const getStyles = useStyles<RatingFactory>({\n name: 'Rating',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { dir } = useDirection();\n\n const _name = useId(name);\n const _id = useId(id);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: 0,\n onChange,\n });\n\n const [hovered, setHovered] = useState(-1);\n const [isOutside, setOutside] = useState(true);\n\n const _fractions = Math.floor(fractions!);\n const _count = Math.floor(count!);\n\n const decimalUnit = 1 / _fractions;\n const stableValueRounded = roundValueTo(_value, decimalUnit);\n const finalValue = hovered !== -1 ? hovered : stableValueRounded;\n\n const getRatingFromCoordinates = (x: number) => {\n const { left, right, width } = rootRef.current!.getBoundingClientRect();\n const symbolWidth = width / _count;\n\n const hoverPosition = dir === 'rtl' ? right - x : x - left;\n const hoverValue = hoverPosition / symbolWidth;\n\n return clamp(roundValueTo(hoverValue + decimalUnit / 2, decimalUnit), decimalUnit, _count);\n };\n\n const handleMouseEnter = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n !readOnly && setOutside(false);\n };\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseMove?.(event);\n\n if (readOnly) {\n return;\n }\n\n const rounded = getRatingFromCoordinates(event.clientX);\n\n setHovered(rounded);\n rounded !== hovered && onHover?.(rounded);\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n\n if (readOnly) {\n return;\n }\n\n setHovered(-1);\n setOutside(true);\n hovered !== -1 && onHover?.(-1);\n };\n\n const handleTouchStart = (event: React.TouchEvent<HTMLDivElement>) => {\n event.preventDefault();\n\n const { touches } = event;\n if (touches.length !== 1) {\n return;\n }\n\n const touch = touches[0];\n setValue(getRatingFromCoordinates(touch.clientX));\n\n onTouchStart?.(event);\n };\n\n const handleTouchEnd = (event: React.TouchEvent<HTMLDivElement>) => {\n event.preventDefault();\n\n onTouchEnd?.(event);\n };\n\n const handleItemBlur = () => isOutside && setHovered(-1);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement> | number) => {\n if (!readOnly) {\n if (typeof event === 'number') {\n setHovered(event);\n } else {\n setHovered(parseFloat(event.target.value));\n }\n }\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement> | number) => {\n if (!readOnly) {\n if (typeof event === 'number') {\n setValue(event);\n } else {\n setValue(parseFloat(event.target.value));\n }\n }\n };\n\n const items = Array(_count)\n .fill(0)\n .map((_, index) => {\n const integerValue = index + 1;\n const fractionItems = Array.from(new Array(index === 0 ? _fractions + 1 : _fractions));\n const isGroupActive = !readOnly && Math.ceil(hovered) === integerValue;\n\n return (\n <div\n key={integerValue}\n data-active={isGroupActive || undefined}\n {...getStyles('symbolGroup')}\n >\n {fractionItems.map((__, fractionIndex) => {\n const fractionValue = decimalUnit * (index === 0 ? fractionIndex : fractionIndex + 1);\n const symbolValue = roundValueTo(integerValue - 1 + fractionValue, decimalUnit);\n\n return (\n <RatingItem\n key={`${integerValue}-${symbolValue}`}\n size={size!}\n getSymbolLabel={getSymbolLabel}\n emptyIcon={emptySymbol}\n fullIcon={fullSymbol}\n full={\n highlightSelectedOnly ? symbolValue === finalValue : symbolValue <= finalValue\n }\n active={symbolValue === finalValue}\n checked={symbolValue === stableValueRounded}\n readOnly={readOnly}\n fractionValue={fractionValue}\n value={symbolValue}\n name={_name}\n onChange={handleChange}\n onBlur={handleItemBlur}\n onInputChange={handleInputChange}\n id={`${_id}-${index}-${fractionIndex}`}\n />\n );\n })}\n </div>\n );\n });\n\n return (\n <RatingProvider value={{ getStyles }}>\n <Box\n ref={useMergedRef(rootRef, ref)}\n {...getStyles('root')}\n onMouseMove={handleMouseMove}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n variant={variant}\n size={size}\n id={_id}\n {...others}\n >\n {items}\n </Box>\n </RatingProvider>\n );\n});\n\nRating.classes = classes;\nRating.displayName = '@mantine/core/Rating';\n"],"names":["createVarsResolver","getSize","getThemeColor","factory","useProps","useStyles","classes","useDirection","useId","useRef","useUncontrolled","useState","clamp","React","RatingItem","RatingProvider","Box","useMergedRef"],"mappings":"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"}
@@ -57,7 +57,9 @@ function RatingItem(_a) {
57
57
  fractionValue,
58
58
  color,
59
59
  id,
60
+ onBlur,
60
61
  onChange,
62
+ onInputChange,
61
63
  style
62
64
  } = _b, others = __objRest(_b, [
63
65
  "size",
@@ -71,7 +73,9 @@ function RatingItem(_a) {
71
73
  "fractionValue",
72
74
  "color",
73
75
  "id",
76
+ "onBlur",
74
77
  "onChange",
78
+ "onInputChange",
75
79
  "style"
76
80
  ]);
77
81
  var _a2;
@@ -88,7 +92,8 @@ function RatingItem(_a) {
88
92
  "data-active": active || void 0,
89
93
  "aria-label": getSymbolLabel == null ? void 0 : getSymbolLabel(value),
90
94
  value,
91
- onChange
95
+ onBlur,
96
+ onChange: onInputChange
92
97
  }), others)
93
98
  ), /* @__PURE__ */ React__default.createElement(
94
99
  Box.Box,
@@ -1 +1 @@
1
- {"version":3,"file":"RatingItem.js","sources":["../../../../src/components/Rating/RatingItem/RatingItem.tsx"],"sourcesContent":["import React from 'react';\nimport { MantineSize, BoxProps, ElementProps, Box, useDirection } from '../../../core';\nimport { StarSymbol } from '../StarSymbol/StarSymbol';\nimport { useRatingContext } from '../Rating.context';\n\nexport interface RatingItemProps extends BoxProps, ElementProps<'input', 'value' | 'size'> {\n size: MantineSize;\n getSymbolLabel: ((value: number) => string) | undefined;\n emptyIcon?: React.ReactNode | ((value: number) => React.ReactNode);\n fullIcon?: React.ReactNode | ((value: number) => React.ReactNode);\n full: boolean;\n active: boolean;\n fractionValue: number;\n value: number;\n id: string;\n onChange(event: React.ChangeEvent<HTMLInputElement> | number): void;\n}\n\nexport function RatingItem({\n size,\n getSymbolLabel,\n emptyIcon,\n fullIcon,\n full,\n active,\n value,\n readOnly,\n fractionValue,\n color,\n id,\n onChange,\n style,\n ...others\n}: RatingItemProps) {\n const ctx = useRatingContext();\n const _fullIcon = typeof fullIcon === 'function' ? fullIcon(value) : fullIcon;\n const _emptyIcon = typeof emptyIcon === 'function' ? emptyIcon(value) : emptyIcon;\n const { dir } = useDirection();\n\n return (\n <>\n {!readOnly && (\n <input\n {...ctx.getStyles('input')}\n onKeyDown={(event) => event.key === ' ' && onChange(value)}\n id={id}\n type=\"radio\"\n data-active={active || undefined}\n aria-label={getSymbolLabel?.(value)}\n value={value}\n onChange={onChange}\n {...others}\n />\n )}\n\n <Box\n component={readOnly ? 'div' : 'label'}\n {...ctx.getStyles('label')}\n data-read-only={readOnly || undefined}\n htmlFor={id}\n onClick={() => onChange(value)}\n __vars={{\n '--rating-item-z-index': (fractionValue === 1 ? undefined : active ? 2 : 0)?.toString(),\n }}\n >\n <Box\n {...ctx.getStyles('symbolBody')}\n __vars={{\n '--rating-symbol-clip-path':\n fractionValue === 1\n ? undefined\n : dir === 'ltr'\n ? `inset(0 ${active ? 100 - fractionValue * 100 : 100}% 0 0)`\n : `inset(0 0 0 ${active ? 100 - fractionValue * 100 : 100}% )`,\n }}\n >\n {full\n ? _fullIcon || <StarSymbol type=\"full\" />\n : _emptyIcon || <StarSymbol type=\"empty\" />}\n </Box>\n </Box>\n </>\n );\n}\n\nRatingItem.displayName = '@mantine/core/RatingItem';\n"],"names":["useRatingContext","useDirection","React","Box","StarSymbol"],"mappings":"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"}
1
+ {"version":3,"file":"RatingItem.js","sources":["../../../../src/components/Rating/RatingItem/RatingItem.tsx"],"sourcesContent":["import React from 'react';\nimport { MantineSize, BoxProps, ElementProps, Box, useDirection } from '../../../core';\nimport { StarSymbol } from '../StarSymbol/StarSymbol';\nimport { useRatingContext } from '../Rating.context';\n\nexport interface RatingItemProps extends BoxProps, ElementProps<'input', 'value' | 'size'> {\n size: MantineSize;\n getSymbolLabel: ((value: number) => string) | undefined;\n emptyIcon?: React.ReactNode | ((value: number) => React.ReactNode);\n fullIcon?: React.ReactNode | ((value: number) => React.ReactNode);\n full: boolean;\n active: boolean;\n fractionValue: number;\n value: number;\n id: string;\n onChange(event: React.ChangeEvent<HTMLInputElement> | number): void;\n onInputChange(event: React.ChangeEvent<HTMLInputElement> | number): void;\n}\n\nexport function RatingItem({\n size,\n getSymbolLabel,\n emptyIcon,\n fullIcon,\n full,\n active,\n value,\n readOnly,\n fractionValue,\n color,\n id,\n onBlur,\n onChange,\n onInputChange,\n style,\n ...others\n}: RatingItemProps) {\n const ctx = useRatingContext();\n const _fullIcon = typeof fullIcon === 'function' ? fullIcon(value) : fullIcon;\n const _emptyIcon = typeof emptyIcon === 'function' ? emptyIcon(value) : emptyIcon;\n const { dir } = useDirection();\n\n return (\n <>\n {!readOnly && (\n <input\n {...ctx.getStyles('input')}\n onKeyDown={(event) => event.key === ' ' && onChange(value)}\n id={id}\n type=\"radio\"\n data-active={active || undefined}\n aria-label={getSymbolLabel?.(value)}\n value={value}\n onBlur={onBlur}\n onChange={onInputChange}\n {...others}\n />\n )}\n\n <Box\n component={readOnly ? 'div' : 'label'}\n {...ctx.getStyles('label')}\n data-read-only={readOnly || undefined}\n htmlFor={id}\n onClick={() => onChange(value)}\n __vars={{\n '--rating-item-z-index': (fractionValue === 1 ? undefined : active ? 2 : 0)?.toString(),\n }}\n >\n <Box\n {...ctx.getStyles('symbolBody')}\n __vars={{\n '--rating-symbol-clip-path':\n fractionValue === 1\n ? undefined\n : dir === 'ltr'\n ? `inset(0 ${active ? 100 - fractionValue * 100 : 100}% 0 0)`\n : `inset(0 0 0 ${active ? 100 - fractionValue * 100 : 100}% )`,\n }}\n >\n {full\n ? _fullIcon || <StarSymbol type=\"full\" />\n : _emptyIcon || <StarSymbol type=\"empty\" />}\n </Box>\n </Box>\n </>\n );\n}\n\nRatingItem.displayName = '@mantine/core/RatingItem';\n"],"names":["useRatingContext","useDirection","React","Box","StarSymbol"],"mappings":"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"}
@@ -184,10 +184,10 @@ const Select = factory.factory((_props, ref) => {
184
184
  if (value === null) {
185
185
  setSearch("");
186
186
  }
187
- if (typeof value === "string" && optionsLockup[value]) {
188
- setSearch(optionsLockup[value].label);
187
+ if (typeof value === "string" && selectedOption) {
188
+ setSearch(selectedOption.label);
189
189
  }
190
- }, [value, optionsLockup]);
190
+ }, [value, selectedOption]);
191
191
  const clearButton = clearable && !!_value && !disabled && !readOnly && /* @__PURE__ */ React__default.createElement(
192
192
  Combobox.Combobox.ClearButton,
193
193
  __spreadProps(__spreadValues({