@dreamcommerce/aurora 3.0.0-262 → 3.0.0-264

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 (59) hide show
  1. package/build/cjs/external/fast-equals/dist/esm/index.mjs.js +619 -0
  2. package/build/cjs/external/fast-equals/dist/esm/index.mjs.js.map +1 -0
  3. package/build/cjs/packages/aurora/src/components/color_picker/components/color_picker_mode_toggler.js +22 -10
  4. package/build/cjs/packages/aurora/src/components/color_picker/components/color_picker_mode_toggler.js.map +1 -1
  5. package/build/cjs/packages/aurora/src/components/controls/select_control/select_control.js +3 -3
  6. package/build/cjs/packages/aurora/src/components/select/components/select_content.js +35 -43
  7. package/build/cjs/packages/aurora/src/components/select/components/select_content.js.map +1 -1
  8. package/build/cjs/packages/aurora/src/components/select/components/select_group_label.js +4 -4
  9. package/build/cjs/packages/aurora/src/components/select/components/select_item.js +12 -8
  10. package/build/cjs/packages/aurora/src/components/select/components/select_item.js.map +1 -1
  11. package/build/cjs/packages/aurora/src/components/select/components/select_search.js +36 -0
  12. package/build/cjs/packages/aurora/src/components/select/components/select_search.js.map +1 -0
  13. package/build/cjs/packages/aurora/src/components/select/components/select_trigger.js +7 -4
  14. package/build/cjs/packages/aurora/src/components/select/components/select_trigger.js.map +1 -1
  15. package/build/cjs/packages/aurora/src/components/select/hooks/use_prevent_search_blur.js +49 -0
  16. package/build/cjs/packages/aurora/src/components/select/hooks/use_prevent_search_blur.js.map +1 -0
  17. package/build/cjs/packages/aurora/src/components/select/hooks/use_select_value.js +39 -0
  18. package/build/cjs/packages/aurora/src/components/select/hooks/use_select_value.js.map +1 -0
  19. package/build/cjs/packages/aurora/src/components/select/select.js +56 -83
  20. package/build/cjs/packages/aurora/src/components/select/select.js.map +1 -1
  21. package/build/cjs/packages/aurora/src/components/select/select_utils.js +39 -0
  22. package/build/cjs/packages/aurora/src/components/select/select_utils.js.map +1 -0
  23. package/build/esm/external/fast-equals/dist/esm/index.mjs.js +606 -0
  24. package/build/esm/external/fast-equals/dist/esm/index.mjs.js.map +1 -0
  25. package/build/esm/packages/aurora/src/components/color_picker/components/color_picker_mode_toggler.js +22 -10
  26. package/build/esm/packages/aurora/src/components/color_picker/components/color_picker_mode_toggler.js.map +1 -1
  27. package/build/esm/packages/aurora/src/components/controls/select_control/select_control.js +3 -3
  28. package/build/esm/packages/aurora/src/components/select/components/select_content.js +39 -47
  29. package/build/esm/packages/aurora/src/components/select/components/select_content.js.map +1 -1
  30. package/build/esm/packages/aurora/src/components/select/components/select_group_label.d.ts +2 -2
  31. package/build/esm/packages/aurora/src/components/select/components/select_group_label.js +4 -4
  32. package/build/esm/packages/aurora/src/components/select/components/select_item.js +13 -9
  33. package/build/esm/packages/aurora/src/components/select/components/select_item.js.map +1 -1
  34. package/build/esm/packages/aurora/src/components/select/components/select_search.d.ts +3 -0
  35. package/build/esm/packages/aurora/src/components/select/components/select_search.js +28 -0
  36. package/build/{cjs/packages/aurora/src/components/select/components/select_value.js.map → esm/packages/aurora/src/components/select/components/select_search.js.map} +1 -1
  37. package/build/esm/packages/aurora/src/components/select/components/select_trigger.js +7 -4
  38. package/build/esm/packages/aurora/src/components/select/components/select_trigger.js.map +1 -1
  39. package/build/esm/packages/aurora/src/components/select/hooks/use_prevent_search_blur.d.ts +4 -0
  40. package/build/esm/packages/aurora/src/components/select/hooks/use_prevent_search_blur.js +45 -0
  41. package/build/esm/packages/aurora/src/components/select/hooks/use_prevent_search_blur.js.map +1 -0
  42. package/build/esm/packages/aurora/src/components/select/hooks/use_select_value.d.ts +5 -0
  43. package/build/esm/packages/aurora/src/components/select/hooks/use_select_value.js +35 -0
  44. package/build/esm/packages/aurora/src/components/select/hooks/use_select_value.js.map +1 -0
  45. package/build/esm/packages/aurora/src/components/select/select.d.ts +1 -1
  46. package/build/esm/packages/aurora/src/components/select/select.js +57 -84
  47. package/build/esm/packages/aurora/src/components/select/select.js.map +1 -1
  48. package/build/esm/packages/aurora/src/components/select/select_types.d.ts +23 -7
  49. package/build/esm/packages/aurora/src/components/select/select_types.js +1 -0
  50. package/build/esm/packages/aurora/src/components/select/select_types.js.map +1 -1
  51. package/build/esm/packages/aurora/src/components/select/select_utils.d.ts +6 -0
  52. package/build/esm/packages/aurora/src/components/select/select_utils.js +35 -0
  53. package/build/esm/packages/aurora/src/components/select/select_utils.js.map +1 -0
  54. package/build/index.css +1 -1
  55. package/package.json +2 -1
  56. package/build/cjs/packages/aurora/src/components/select/components/select_value.js +0 -10
  57. package/build/esm/packages/aurora/src/components/select/components/select_value.d.ts +0 -3
  58. package/build/esm/packages/aurora/src/components/select/components/select_value.js +0 -6
  59. package/build/esm/packages/aurora/src/components/select/components/select_value.js.map +0 -1
@@ -1,16 +1,18 @@
1
- import React, { useState, useRef, useEffect } from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2 } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
3
+ import { cn } from '../../utilities/cn.js';
3
4
  import { Root } from '@radix-ui/react-select';
4
5
  import { CloseCircleFillIcon } from '../../assets/icons/close_circle_fill_icon.js';
5
6
  import { SelectContent } from './components/select_content.js';
6
7
  import { SelectTrigger } from './components/select_trigger.js';
7
- import { SelectValue } from './components/select_value.js';
8
+ import { useSelectValue } from './hooks/use_select_value.js';
8
9
 
9
- var _excluded = ["children", "id", "defaultValue", "options", "disabled", "placeholder", "hasSearch", "searchPlaceholder", "hasClearValueButton", "innerAdditionalContent", "errors", "onValueChange", "onScroll"];
10
+ var _excluded = ["children", "id", "value", "options", "disabled", "placeholder", "hasSearch", "searchPlaceholder", "hasClearValueButton", "innerAdditionalContent", "enableLocalSearch", "localSearchNotFoundContent", "errors", "onValueChange", "onScroll", "onSearch", "onClose", "hasError"];
10
11
  var Select = function Select(_ref) {
12
+ var _selectedOption$value;
11
13
  var children = _ref.children,
12
14
  id = _ref.id,
13
- defaultValue = _ref.defaultValue,
15
+ value = _ref.value,
14
16
  options = _ref.options,
15
17
  disabled = _ref.disabled,
16
18
  placeholder = _ref.placeholder,
@@ -18,105 +20,76 @@ var Select = function Select(_ref) {
18
20
  searchPlaceholder = _ref.searchPlaceholder,
19
21
  hasClearValueButton = _ref.hasClearValueButton,
20
22
  innerAdditionalContent = _ref.innerAdditionalContent,
23
+ enableLocalSearch = _ref.enableLocalSearch,
24
+ localSearchNotFoundContent = _ref.localSearchNotFoundContent,
21
25
  errors = _ref.errors,
22
26
  onValueChange = _ref.onValueChange,
23
27
  onScroll = _ref.onScroll,
28
+ onSearch = _ref.onSearch,
29
+ onClose = _ref.onClose,
30
+ hasError = _ref.hasError,
24
31
  props = _objectWithoutProperties(_ref, _excluded);
32
+ var _useSelectValue = useSelectValue({
33
+ value: value,
34
+ options: options
35
+ }),
36
+ selectedOption = _useSelectValue.selectedOption,
37
+ setSelectedOption = _useSelectValue.setSelectedOption;
25
38
  var _useState = useState(''),
26
39
  _useState2 = _slicedToArray(_useState, 2),
27
- filterTerm = _useState2[0],
28
- setFilterTerm = _useState2[1];
29
- var _useState3 = useState(defaultValue),
30
- _useState4 = _slicedToArray(_useState3, 2),
31
- selectedValue = _useState4[0],
32
- setSelectedValue = _useState4[1];
33
- var triggerRef = useRef(null);
34
- var _useState5 = useState(null),
35
- _useState6 = _slicedToArray(_useState5, 2),
36
- triggerWidth = _useState6[0],
37
- setTriggerWidth = _useState6[1];
38
- var _useState7 = useState(false),
39
- _useState8 = _slicedToArray(_useState7, 2),
40
- open = _useState8[0],
41
- setOpen = _useState8[1];
42
- var _useState9 = useState(false),
43
- _useState10 = _slicedToArray(_useState9, 2),
44
- renderContent = _useState10[0],
45
- setRenderContent = _useState10[1];
46
- var clearFilterInputOnClose = function clearFilterInputOnClose(openState) {
47
- if (hasSearch && !openState) setFilterTerm('');
40
+ search = _useState2[0],
41
+ setSearch = _useState2[1];
42
+ var handleSearch = function handleSearch(str) {
43
+ setSearch(str);
44
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(str);
48
45
  };
49
- var filteredOptions = React.useMemo(function () {
50
- if (!hasSearch || !filterTerm) return options;
51
- return options.filter(function (opt) {
52
- return opt.text.toLowerCase().includes(filterTerm.toLowerCase()) || opt.isHeader;
53
- });
54
- }, [filterTerm, options]);
55
- useEffect(function () {
56
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(selectedValue !== null && selectedValue !== void 0 ? selectedValue : '');
57
- }, [selectedValue]);
58
- var getSelectedLabel = function getSelectedLabel(options, selectedValue) {
59
- var _options$find;
60
- return ((_options$find = options.find(function (opt) {
61
- return opt.value === selectedValue;
62
- })) === null || _options$find === void 0 ? void 0 : _options$find.text) || '';
46
+ var handleChange = function handleChange(val) {
47
+ var _option$value;
48
+ var option = val ? options.find(function (opt) {
49
+ return opt.value === val;
50
+ }) : undefined;
51
+ setSelectedOption(option);
52
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange((_option$value = option === null || option === void 0 ? void 0 : option.value) !== null && _option$value !== void 0 ? _option$value : '');
63
53
  };
64
- var handleChange = function handleChange(sufixedValue) {
65
- var cleanValue = sufixedValue.split('-')[0];
66
- setSelectedValue(cleanValue);
54
+ var handleOpenChange = function handleOpenChange(open) {
55
+ if (hasSearch && !open) setSearch('');
56
+ if (onClose && !open) onClose();
67
57
  };
68
- useEffect(function () {
69
- if (!open) {
70
- setRenderContent(false);
71
- return;
72
- }
73
- var timer = setTimeout(function () {
74
- return setRenderContent(true);
75
- }, 10);
76
- return function () {
77
- return clearTimeout(timer);
78
- };
79
- }, [open]);
80
- useEffect(function () {
81
- if (renderContent && triggerRef.current) {
82
- var rect = triggerRef.current.getBoundingClientRect();
83
- setTriggerWidth(rect.width);
84
- }
85
- }, [renderContent]);
58
+ var showPlaceholder = !selectedOption;
86
59
  return /*#__PURE__*/React.createElement(Root, _objectSpread2({
87
- defaultValue: defaultValue,
60
+ value: (_selectedOption$value = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value) !== null && _selectedOption$value !== void 0 ? _selectedOption$value : '',
88
61
  onValueChange: handleChange,
89
62
  disabled: disabled,
90
- onOpenChange: function onOpenChange(openState) {
91
- setOpen(openState);
92
- clearFilterInputOnClose(openState);
93
- }
63
+ onOpenChange: handleOpenChange
94
64
  }, props), /*#__PURE__*/React.createElement("div", {
95
65
  className: "aurora-relative aurora-flex aurora-items-center aurora-flex-col"
96
66
  }, /*#__PURE__*/React.createElement(SelectTrigger, {
97
- ref: triggerRef,
98
67
  id: id,
99
- hasError: !!(errors !== null && errors !== void 0 && errors.length)
100
- }, /*#__PURE__*/React.createElement(SelectValue, {
101
- placeholder: placeholder
102
- }, selectedValue ? getSelectedLabel(options, selectedValue) : placeholder !== null && placeholder !== void 0 ? placeholder : '')), selectedValue && hasClearValueButton && (/*#__PURE__*/React.createElement("div", {
103
- className: "aurora-absolute aurora-top-3 aurora-right-8 aurora-z-10",
104
- onClick: function onClick() {
105
- return setSelectedValue('');
106
- }
107
- }, /*#__PURE__*/React.createElement(CloseCircleFillIcon, {
108
- className: "aurora-h-4 aurora-w-4 aurora-cursor-pointer"
109
- })))), renderContent && (/*#__PURE__*/React.createElement(SelectContent, {
110
- options: filteredOptions,
111
- selectedValue: selectedValue,
68
+ hasError: hasError || !!(errors !== null && errors !== void 0 && errors.length),
69
+ clearValueButton: value && hasClearValueButton && onValueChange && (/*#__PURE__*/React.createElement("div", {
70
+ onPointerDown: function onPointerDown(e) {
71
+ return e.stopPropagation();
72
+ },
73
+ onClick: function onClick() {
74
+ handleChange('');
75
+ },
76
+ className: "aurora-w-5 aurora-h-5 aurora-flex aurora-items-center aurora-justify-center"
77
+ }, /*#__PURE__*/React.createElement(CloseCircleFillIcon, {
78
+ className: "aurora-h-4 aurora-w-4 aurora-cursor-pointer"
79
+ })))
80
+ }, /*#__PURE__*/React.createElement("span", {
81
+ className: cn('aurora-pointer-events-none aurora-select-none', showPlaceholder && 'aurora-text-subtle')
82
+ }, !showPlaceholder ? selectedOption.text : placeholder))), /*#__PURE__*/React.createElement(SelectContent, {
83
+ options: options,
112
84
  hasSearch: hasSearch,
113
85
  searchPlaceholder: searchPlaceholder,
114
86
  innerAdditionalContent: innerAdditionalContent,
115
- filterTerm: filterTerm,
116
- setFilterTerm: setFilterTerm,
117
- triggerWidth: triggerWidth,
118
- onScroll: onScroll
119
- })));
87
+ search: search,
88
+ onSearch: handleSearch,
89
+ onScroll: onScroll,
90
+ enableLocalSearch: enableLocalSearch,
91
+ localSearchNotFoundContent: localSearchNotFoundContent
92
+ }));
120
93
  };
121
94
  Select.displayName = Root.displayName;
122
95
 
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,7 +1,9 @@
1
1
  import * as SelectPrimitive from '@radix-ui/react-select';
2
- import { Dispatch, ReactNode, SetStateAction } from 'react';
2
+ import { ReactNode, RefObject } from 'react';
3
+ import { TInputProps } from "../input/input_types";
3
4
  export interface TSelectTriggerProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
4
5
  hasError?: boolean;
6
+ clearValueButton?: ReactNode;
5
7
  }
6
8
  export declare type TSelectOption = {
7
9
  text: string;
@@ -11,23 +13,25 @@ export declare type TSelectOption = {
11
13
  isDisabled?: boolean;
12
14
  isReadonly?: boolean;
13
15
  };
16
+ export interface TSelectSearchProps extends TInputProps {
17
+ options: TSelectOption[];
18
+ }
14
19
  export interface TSelectContentProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {
15
20
  options: TSelectOption[];
16
- selectedValue?: string;
17
21
  hasSearch?: boolean;
18
22
  searchPlaceholder?: string;
19
23
  innerAdditionalContent?: ReactNode;
20
- filterTerm: string;
21
- triggerWidth?: number | null;
22
- setFilterTerm?: Dispatch<SetStateAction<string>>;
24
+ search: string;
25
+ onSearch?: (str: string) => void;
26
+ enableLocalSearch?: boolean;
27
+ localSearchNotFoundContent?: ReactNode;
23
28
  }
24
29
  export interface TSelectItemProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> {
25
30
  isDisabled?: boolean;
26
31
  isReadonly?: boolean;
27
- isSelected?: boolean;
28
32
  additionalInfo?: string;
29
33
  }
30
- export interface TSelectProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root> {
34
+ export interface TSelectProps extends Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root>, 'defaultValue'> {
31
35
  id: string;
32
36
  options: TSelectOption[];
33
37
  placeholder?: string;
@@ -37,5 +41,17 @@ export interface TSelectProps extends React.ComponentPropsWithoutRef<typeof Sele
37
41
  hasClearValueButton?: boolean;
38
42
  errors?: string | string[];
39
43
  hasError?: boolean;
44
+ enableLocalSearch?: boolean;
45
+ localSearchNotFoundContent?: ReactNode;
40
46
  onScroll?: (event: React.UIEvent<HTMLElement>) => void;
47
+ onSearch?: (str: string) => void;
48
+ onClose?: () => void;
49
+ }
50
+ export interface TUseSelectValueProps {
51
+ value: string | undefined;
52
+ options: TSelectOption[];
53
+ }
54
+ export interface TUsePreventSearchBlurProps {
55
+ inputRef: RefObject<HTMLInputElement | null>;
56
+ options: TSelectOption[];
41
57
  }
@@ -1,3 +1,4 @@
1
1
  import '@radix-ui/react-select';
2
2
  import 'react';
3
+ import '@auroraComponents/input/input_types';
3
4
  //# sourceMappingURL=select_types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select_types.js","sourceRoot":"","sources":["../../../../../../../src/components/select/select_types.ts"],"names":[],"mappings":"AAAA,OAAiC,wBAAwB,CAAC;AAE1D,OAAoD,OAAO,CAAC"}
1
+ {"version":3,"file":"select_types.js","sourceRoot":"","sources":["../../../../../../../src/components/select/select_types.ts"],"names":[],"mappings":"AAAA,OAAiC,wBAAwB,CAAC;AAE1D,OAAqC,OAAO,CAAC;AAC7C,OAA4B,qCAAqC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TSelectOption } from "./select_types";
2
+ export declare class SelectUtils {
3
+ static localSearchIsOptionVisible: (option: TSelectOption, search: string) => boolean;
4
+ static localSearchIsHeaderVisible: (search: string, options: TSelectOption[], index: number) => boolean;
5
+ static findValueInOptions: (value: string | undefined, options: TSelectOption[]) => TSelectOption | undefined;
6
+ }
@@ -0,0 +1,35 @@
1
+ import { createClass as _createClass, classCallCheck as _classCallCheck, defineProperty as _defineProperty } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+
3
+ var _SelectUtils;
4
+ var SelectUtils = /*#__PURE__*/_createClass(function SelectUtils() {
5
+ _classCallCheck(this, SelectUtils);
6
+ });
7
+ _SelectUtils = SelectUtils;
8
+ _defineProperty(SelectUtils, "localSearchIsOptionVisible", function (option, search) {
9
+ return option.text.toLocaleLowerCase().includes(search.toLocaleLowerCase());
10
+ });
11
+ _defineProperty(SelectUtils, "localSearchIsHeaderVisible", function (search, options, index) {
12
+ var visible = false;
13
+ var i = index + 1;
14
+ while (options[i]) {
15
+ var curr = options[i];
16
+ if (curr.isHeader) {
17
+ break;
18
+ }
19
+ if (_SelectUtils.localSearchIsOptionVisible(curr, search)) {
20
+ visible = true;
21
+ break;
22
+ }
23
+ i++;
24
+ }
25
+ return visible;
26
+ });
27
+ _defineProperty(SelectUtils, "findValueInOptions", function (value, options) {
28
+ if (!value) return undefined;
29
+ return options.find(function (opt) {
30
+ return opt.value === value;
31
+ });
32
+ });
33
+
34
+ export { SelectUtils };
35
+ //# sourceMappingURL=select_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}