@ultraviolet/ui 3.18.2 → 3.19.1

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 (101) hide show
  1. package/dist/components/Dialog/index.js +1 -1
  2. package/dist/components/Radio/index.d.ts.map +1 -1
  3. package/dist/components/Radio/index.js +1 -0
  4. package/dist/components/RadioGroup/SingleRadio.js +1 -1
  5. package/dist/components/SelectInput/components/SelectBar/selectBar.css.d.ts.map +1 -1
  6. package/dist/components/SwitchButton/Option.js +1 -1
  7. package/dist/components/TextArea/index.d.ts +1 -0
  8. package/dist/components/TextArea/index.d.ts.map +1 -1
  9. package/dist/components/TextArea/index.js +4 -2
  10. package/dist/components/TextArea/styles.css.d.ts +14 -0
  11. package/dist/components/TextArea/styles.css.d.ts.map +1 -1
  12. package/dist/components/TextArea/styles.css.js +8 -2
  13. package/dist/components/index.js +15 -15
  14. package/dist/components/styles.js +84 -84
  15. package/dist/composition.js +19 -15
  16. package/dist/compositions/EstimateCost/styles.css.js +0 -2
  17. package/dist/compositions/FAQ/index.js +1 -1
  18. package/dist/compositions/Filters/Filters.d.ts +9 -0
  19. package/dist/compositions/Filters/Filters.d.ts.map +1 -0
  20. package/dist/compositions/Filters/Filters.js +36 -0
  21. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/Dropdown.d.ts +16 -0
  22. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/Dropdown.d.ts.map +1 -0
  23. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/Dropdown.js +137 -0
  24. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/FilterDatetimeRange.d.ts +6 -0
  25. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/FilterDatetimeRange.d.ts.map +1 -0
  26. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/FilterDatetimeRange.js +74 -0
  27. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.d.ts +5 -0
  28. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.d.ts.map +1 -0
  29. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.js +16 -0
  30. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.ts.vanilla.js +8 -0
  31. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/type.d.ts +16 -0
  32. package/dist/compositions/Filters/filterTypes/FilterDatetimeRange/type.d.ts.map +1 -0
  33. package/dist/compositions/Filters/filterTypes/FilterMultiSelect.d.ts +5 -0
  34. package/dist/compositions/Filters/filterTypes/FilterMultiSelect.d.ts.map +1 -0
  35. package/dist/compositions/Filters/filterTypes/FilterMultiSelect.js +53 -0
  36. package/dist/compositions/Filters/filterTypes/FilterNumber.d.ts +5 -0
  37. package/dist/compositions/Filters/filterTypes/FilterNumber.d.ts.map +1 -0
  38. package/dist/compositions/Filters/filterTypes/FilterNumber.js +24 -0
  39. package/dist/compositions/Filters/filterTypes/FilterSearch.d.ts +5 -0
  40. package/dist/compositions/Filters/filterTypes/FilterSearch.d.ts.map +1 -0
  41. package/dist/compositions/Filters/filterTypes/FilterSearch.js +42 -0
  42. package/dist/compositions/Filters/filterTypes/FilterSelect.d.ts +6 -0
  43. package/dist/compositions/Filters/filterTypes/FilterSelect.d.ts.map +1 -0
  44. package/dist/compositions/Filters/filterTypes/FilterSelect.js +46 -0
  45. package/dist/compositions/Filters/filterTypes/FilterSlider.d.ts +5 -0
  46. package/dist/compositions/Filters/filterTypes/FilterSlider.d.ts.map +1 -0
  47. package/dist/compositions/Filters/filterTypes/FilterSlider.js +31 -0
  48. package/dist/compositions/Filters/filterTypes/FilterText.d.ts +5 -0
  49. package/dist/compositions/Filters/filterTypes/FilterText.d.ts.map +1 -0
  50. package/dist/compositions/Filters/filterTypes/FilterText.js +42 -0
  51. package/dist/compositions/Filters/index.d.ts +7 -0
  52. package/dist/compositions/Filters/index.d.ts.map +1 -0
  53. package/dist/compositions/Filters/index.js +17 -0
  54. package/dist/compositions/Filters/parts/AbstractFilter.d.ts +8 -0
  55. package/dist/compositions/Filters/parts/AbstractFilter.d.ts.map +1 -0
  56. package/dist/compositions/Filters/parts/AbstractFilter.js +54 -0
  57. package/dist/compositions/Filters/parts/ExpandableFilterGroup.d.ts +9 -0
  58. package/dist/compositions/Filters/parts/ExpandableFilterGroup.d.ts.map +1 -0
  59. package/dist/compositions/Filters/parts/ExpandableFilterGroup.js +59 -0
  60. package/dist/compositions/Filters/parts/FiltersDrawer.d.ts +13 -0
  61. package/dist/compositions/Filters/parts/FiltersDrawer.d.ts.map +1 -0
  62. package/dist/compositions/Filters/parts/FiltersDrawer.js +100 -0
  63. package/dist/compositions/Filters/parts/FiltersMainRow.d.ts +19 -0
  64. package/dist/compositions/Filters/parts/FiltersMainRow.d.ts.map +1 -0
  65. package/dist/compositions/Filters/parts/FiltersMainRow.js +85 -0
  66. package/dist/compositions/Filters/parts/FiltersProvider.d.ts +17 -0
  67. package/dist/compositions/Filters/parts/FiltersProvider.d.ts.map +1 -0
  68. package/dist/compositions/Filters/parts/FiltersProvider.js +55 -0
  69. package/dist/compositions/Filters/parts/helpers.d.ts +5 -0
  70. package/dist/compositions/Filters/parts/helpers.d.ts.map +1 -0
  71. package/dist/compositions/Filters/parts/helpers.js +38 -0
  72. package/dist/compositions/Filters/parts/reducer.d.ts +40 -0
  73. package/dist/compositions/Filters/parts/reducer.d.ts.map +1 -0
  74. package/dist/compositions/Filters/parts/reducer.js +50 -0
  75. package/dist/compositions/Filters/parts/styles.css.d.ts +4 -0
  76. package/dist/compositions/Filters/parts/styles.css.d.ts.map +1 -0
  77. package/dist/compositions/Filters/parts/styles.css.js +13 -0
  78. package/dist/compositions/Filters/parts/styles.css.ts.vanilla.js +8 -0
  79. package/dist/compositions/Filters/parts/useFilters.d.ts +28 -0
  80. package/dist/compositions/Filters/parts/useFilters.d.ts.map +1 -0
  81. package/dist/compositions/Filters/parts/useFilters.js +100 -0
  82. package/dist/compositions/Filters/types.d.ts +80 -0
  83. package/dist/compositions/Filters/types.d.ts.map +1 -0
  84. package/dist/compositions/InfoTable/styles.css.js +82 -82
  85. package/dist/compositions/OfferList/components/Row.d.ts +1 -1
  86. package/dist/compositions/OfferList/components/Row.d.ts.map +1 -1
  87. package/dist/compositions/OfferList/components/Row.js +3 -2
  88. package/dist/compositions/OfferList/components/SelectableCell.js +1 -1
  89. package/dist/compositions/OfferList/index.d.ts +1 -1
  90. package/dist/compositions/OfferList/styles.css.d.ts +1 -5
  91. package/dist/compositions/OfferList/styles.css.d.ts.map +1 -1
  92. package/dist/compositions/OptionSelector/styles.css.js +83 -83
  93. package/dist/compositions/RichTextInput/Toolbar.js +1 -1
  94. package/dist/compositions/RichTextInput/index.js +1 -1
  95. package/dist/compositions/SteppedListCard/styles.css.js +2 -0
  96. package/dist/compositions/index.d.ts +2 -0
  97. package/dist/compositions/index.d.ts.map +1 -1
  98. package/dist/compositions/index.js +6 -0
  99. package/dist/index.js +62 -62
  100. package/dist/ui.css +1 -1
  101. package/package.json +4 -4
@@ -0,0 +1,16 @@
1
+ import type { ComponentProps } from 'react';
2
+ import { DateInput } from '../../../../components/DateInput';
3
+ import type { FilterConfigItemDatetimeRange } from '../../types';
4
+ import type { DatetimeRangeInputValue, DatetimeRangeLocales } from './type';
5
+ type Props = {
6
+ onApply: (newValue: DatetimeRangeInputValue) => void;
7
+ minDate?: Date;
8
+ maxDate?: Date;
9
+ value: DatetimeRangeInputValue;
10
+ dateInputLocale: ComponentProps<typeof DateInput>['locale'];
11
+ relativePresets: FilterConfigItemDatetimeRange['relativePresets'];
12
+ localeTexts: DatetimeRangeLocales;
13
+ };
14
+ export declare const Dropdown: ({ onApply, minDate, maxDate, value, dateInputLocale, relativePresets, localeTexts, }: Props) => import("react").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=Dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../../src/compositions/Filters/filterTypes/FilterDatetimeRange/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAM5D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAE3E,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,KAAK,EAAE,uBAAuB,CAAA;IAC9B,eAAe,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,eAAe,EAAE,6BAA6B,CAAC,iBAAiB,CAAC,CAAA;IACjE,WAAW,EAAE,oBAAoB,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,QAAQ,yFAQlB,KAAK,gCA4GP,CAAA"}
@@ -0,0 +1,137 @@
1
+ import { __esmMin, __name } from "../../../../_virtual/_rolldown/runtime.js";
2
+ import { Stack, init_Stack } from "../../../../components/Stack/index.js";
3
+ import { Button, init_Button } from "../../../../components/Button/index.js";
4
+ import { Row, init_Row } from "../../../../components/Row/index.js";
5
+ import { DateInput, init_DateInput } from "../../../../components/DateInput/index.js";
6
+ import { RadioGroup, init_RadioGroup } from "../../../../components/RadioGroup/index.js";
7
+ import { SwitchButton, init_SwitchButton } from "../../../../components/SwitchButton/index.js";
8
+ import { TimeInput, init_TimeInput } from "../../../../components/TimeInput/index.js";
9
+ import { useState } from "react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+
12
+ //#region src/compositions/Filters/filterTypes/FilterDatetimeRange/Dropdown.tsx
13
+ var Dropdown;
14
+ var init_Dropdown = __esmMin(() => {
15
+ init_Button();
16
+ init_DateInput();
17
+ init_RadioGroup();
18
+ init_Row();
19
+ init_Stack();
20
+ init_SwitchButton();
21
+ init_TimeInput();
22
+ Dropdown = ({ onApply, minDate, maxDate, value, dateInputLocale, relativePresets, localeTexts }) => {
23
+ const [localPreset, setLocalPreset] = useState(value.preset);
24
+ const [localDateRange, setLocalDateRange] = useState([value.startAt, value.endAt]);
25
+ const [localTimeStart, setLocalTimeStart] = useState(() => {
26
+ if (value.startAt) return value.startAt;
27
+ const newDate = /* @__PURE__ */ new Date();
28
+ newDate.setHours(0);
29
+ newDate.setMinutes(0);
30
+ newDate.setSeconds(0);
31
+ return newDate;
32
+ });
33
+ const [localTimeEnd, setLocalTimeEnd] = useState(() => {
34
+ if (value.endAt) return value.endAt;
35
+ const newDate = /* @__PURE__ */ new Date();
36
+ newDate.setHours(23);
37
+ newDate.setMinutes(59);
38
+ newDate.setSeconds(59);
39
+ return newDate;
40
+ });
41
+ const handleApply = () => {
42
+ if (localPreset) onApply({
43
+ endAt: value.endAt,
44
+ preset: localPreset,
45
+ startAt: value.startAt
46
+ });
47
+ else {
48
+ const startAt = localDateRange[0] ? new Date(localDateRange[0]) : null;
49
+ if (startAt && localTimeStart) {
50
+ startAt.setHours(localTimeStart.getHours());
51
+ startAt.setMinutes(localTimeStart.getMinutes());
52
+ startAt.setSeconds(localTimeStart.getSeconds());
53
+ }
54
+ const endAt = localDateRange[1] ? new Date(localDateRange[1]) : null;
55
+ if (endAt && localTimeEnd) {
56
+ endAt.setHours(localTimeEnd.getHours());
57
+ endAt.setMinutes(localTimeEnd.getMinutes());
58
+ endAt.setSeconds(localTimeEnd.getSeconds());
59
+ }
60
+ onApply({
61
+ endAt,
62
+ preset: null,
63
+ startAt
64
+ });
65
+ }
66
+ };
67
+ return /* @__PURE__ */ jsxs(Stack, {
68
+ gap: 1,
69
+ width: "100%",
70
+ children: [
71
+ /* @__PURE__ */ jsxs(SwitchButton, {
72
+ name: "timeType",
73
+ onChange: (event) => {
74
+ if (event.target.value === "relative") setLocalPreset(relativePresets[0].value);
75
+ else setLocalPreset(null);
76
+ },
77
+ value: localPreset ? "relative" : "absolute",
78
+ children: [/* @__PURE__ */ jsx(SwitchButton.Option, {
79
+ value: "relative",
80
+ children: localeTexts.relative
81
+ }), /* @__PURE__ */ jsx(SwitchButton.Option, {
82
+ value: "absolute",
83
+ children: localeTexts.absolute
84
+ })]
85
+ }),
86
+ /* @__PURE__ */ jsx(Stack, { children: localPreset ? /* @__PURE__ */ jsx(Stack, {
87
+ gap: 1,
88
+ children: /* @__PURE__ */ jsx(RadioGroup, {
89
+ onChange: (event) => {
90
+ setLocalPreset(event.target.value);
91
+ },
92
+ value: localPreset,
93
+ children: relativePresets.map((presetObj) => /* @__PURE__ */ jsx(RadioGroup.Radio, {
94
+ label: presetObj.label,
95
+ value: presetObj.value
96
+ }, presetObj.value))
97
+ })
98
+ }) : /* @__PURE__ */ jsxs(Stack, {
99
+ gap: 1,
100
+ children: [/* @__PURE__ */ jsx(DateInput, {
101
+ endDate: localDateRange[1],
102
+ input: "calendar",
103
+ locale: dateInputLocale,
104
+ maxDate,
105
+ minDate,
106
+ onChange: (newDateRange) => {
107
+ setLocalDateRange([newDateRange[0], newDateRange[1]]);
108
+ },
109
+ selectsRange: true,
110
+ startDate: localDateRange[0]
111
+ }), /* @__PURE__ */ jsxs(Row, {
112
+ gap: 2,
113
+ templateColumns: "1fr 1fr",
114
+ children: [/* @__PURE__ */ jsx(TimeInput, {
115
+ label: localeTexts.timeStart,
116
+ onChange: setLocalTimeStart,
117
+ value: localTimeStart
118
+ }), /* @__PURE__ */ jsx(TimeInput, {
119
+ label: localeTexts.timeEnd,
120
+ onChange: setLocalTimeEnd,
121
+ value: localTimeEnd
122
+ })]
123
+ })]
124
+ }) }),
125
+ /* @__PURE__ */ jsx(Button, {
126
+ onClick: handleApply,
127
+ size: "medium",
128
+ children: localeTexts.apply
129
+ })
130
+ ]
131
+ });
132
+ };
133
+ });
134
+
135
+ //#endregion
136
+ init_Dropdown();
137
+ export { Dropdown, init_Dropdown };
@@ -0,0 +1,6 @@
1
+ import type { FilterConfigItemDatetimeRange, FilterComponentProps } from '../../types';
2
+ import type { DatetimeRangeInputValue } from './type';
3
+ type FilterDatetimeRangeProps = FilterComponentProps<DatetimeRangeInputValue, FilterConfigItemDatetimeRange>;
4
+ export declare const FilterDatetimeRange: ({ onChange, value, hideLabel, config, size }: FilterDatetimeRangeProps) => import("react").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=FilterDatetimeRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterDatetimeRange.d.ts","sourceRoot":"","sources":["../../../../../src/compositions/Filters/filterTypes/FilterDatetimeRange/FilterDatetimeRange.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGrD,KAAK,wBAAwB,GAAG,oBAAoB,CAAC,uBAAuB,EAAE,6BAA6B,CAAC,CAAA;AAE5G,eAAO,MAAM,mBAAmB,iDAAkD,wBAAwB,gCAoDzG,CAAA"}
@@ -0,0 +1,74 @@
1
+ import { __esmMin, __name } from "../../../../_virtual/_rolldown/runtime.js";
2
+ import { Stack, init_Stack } from "../../../../components/Stack/index.js";
3
+ import { Button, init_Button } from "../../../../components/Button/index.js";
4
+ import { Label, init_Label } from "../../../../components/Label/index.js";
5
+ import { Popover, init_Popover } from "../../../../components/Popover/index.js";
6
+ import { Dropdown, init_Dropdown } from "./Dropdown.js";
7
+ import { filterDatetimeRangeStyles, init_filterDatetimeRange_styles_css } from "./filterDatetimeRange.styles.css.js";
8
+ import { useMemo, useState } from "react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+
11
+ //#region src/compositions/Filters/filterTypes/FilterDatetimeRange/FilterDatetimeRange.tsx
12
+ var FilterDatetimeRange;
13
+ var init_FilterDatetimeRange = __esmMin(() => {
14
+ init_Button();
15
+ init_Label();
16
+ init_Popover();
17
+ init_Stack();
18
+ init_Dropdown();
19
+ init_filterDatetimeRange_styles_css();
20
+ FilterDatetimeRange = ({ onChange, value, hideLabel, config, size }) => {
21
+ const [isPopupVisible, setIsPopupVisible] = useState(false);
22
+ const formattedValue = useMemo(() => {
23
+ if (value.preset) {
24
+ var _config$relativePrese;
25
+ var _config$relativePrese2;
26
+ return (_config$relativePrese = (_config$relativePrese2 = config.relativePresets.find((item) => item.value === value.preset)) === null || _config$relativePrese2 === void 0 ? void 0 : _config$relativePrese2.label) !== null && _config$relativePrese !== void 0 ? _config$relativePrese : value.preset;
27
+ }
28
+ return `${value.startAt ? config.dateFormatter(value.startAt) : "-"} -> ${value.endAt ? config.dateFormatter(value.endAt) : "Today"}`;
29
+ }, [value, config]);
30
+ return /* @__PURE__ */ jsx(Popover, {
31
+ className: filterDatetimeRangeStyles.popover,
32
+ content: /* @__PURE__ */ jsx(Dropdown, {
33
+ dateInputLocale: config.dateInputLocale,
34
+ localeTexts: config.texts,
35
+ maxDate: config.maxDate,
36
+ minDate: config.minDate,
37
+ onApply: (newValue) => {
38
+ onChange(newValue);
39
+ setIsPopupVisible(false);
40
+ },
41
+ relativePresets: config.relativePresets,
42
+ value
43
+ }),
44
+ onClose: () => {
45
+ setIsPopupVisible(false);
46
+ },
47
+ placement: "bottom",
48
+ title: config.texts.dropdownTitle,
49
+ visible: isPopupVisible,
50
+ children: /* @__PURE__ */ jsxs(Stack, {
51
+ gap: .5,
52
+ width: "100%",
53
+ children: [hideLabel ? null : /* @__PURE__ */ jsx(Label, {
54
+ size,
55
+ children: config.label
56
+ }), /* @__PURE__ */ jsx(Button, {
57
+ className: filterDatetimeRangeStyles.button,
58
+ size,
59
+ fullWidth: true,
60
+ onClick: () => {
61
+ setIsPopupVisible(true);
62
+ },
63
+ sentiment: "neutral",
64
+ variant: "outlined",
65
+ children: formattedValue
66
+ })]
67
+ })
68
+ });
69
+ };
70
+ });
71
+
72
+ //#endregion
73
+ init_FilterDatetimeRange();
74
+ export { FilterDatetimeRange, init_FilterDatetimeRange };
@@ -0,0 +1,5 @@
1
+ export declare const filterDatetimeRangeStyles: {
2
+ popover: string;
3
+ button: string;
4
+ };
5
+ //# sourceMappingURL=filterDatetimeRange.styles.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterDatetimeRange.styles.css.d.ts","sourceRoot":"","sources":["../../../../../src/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,yBAAyB;;;CAGrC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { __esmMin } from "../../../../_virtual/_rolldown/runtime.js";
2
+ import { init_filterDatetimeRange_styles_css_ts_vanilla } from "./filterDatetimeRange.styles.css.ts.vanilla.js";
3
+
4
+ //#region src/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.ts
5
+ var filterDatetimeRangeStyles;
6
+ var init_filterDatetimeRange_styles_css = __esmMin(() => {
7
+ init_filterDatetimeRange_styles_css_ts_vanilla();
8
+ filterDatetimeRangeStyles = {
9
+ popover: "uv_1yrgjra0",
10
+ button: "uv_1yrgjra1"
11
+ };
12
+ });
13
+
14
+ //#endregion
15
+ init_filterDatetimeRange_styles_css();
16
+ export { filterDatetimeRangeStyles, init_filterDatetimeRange_styles_css };
@@ -0,0 +1,8 @@
1
+ import { __esmMin } from "../../../../_virtual/_rolldown/runtime.js";
2
+
3
+ //#region src/compositions/Filters/filterTypes/FilterDatetimeRange/filterDatetimeRange.styles.css.ts.vanilla.css
4
+ var init_filterDatetimeRange_styles_css_ts_vanilla = __esmMin(() => {});
5
+
6
+ //#endregion
7
+ init_filterDatetimeRange_styles_css_ts_vanilla();
8
+ export { init_filterDatetimeRange_styles_css_ts_vanilla };
@@ -0,0 +1,16 @@
1
+ export type DatetimeRangeInputValue = {
2
+ preset: string | null;
3
+ startAt: Date | null;
4
+ endAt: Date | null;
5
+ };
6
+ export type DatetimeRangeLocales = {
7
+ from: string;
8
+ to: string;
9
+ relative: string;
10
+ absolute: string;
11
+ apply: string;
12
+ timeStart: string;
13
+ timeEnd: string;
14
+ dropdownTitle: string;
15
+ };
16
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/compositions/Filters/filterTypes/FilterDatetimeRange/type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { FilterConfigItemMultiSelect, AnyObject, FilterComponentProps } from '../types';
2
+ type FilterMultiSelectProps<Values extends AnyObject> = FilterComponentProps<string[], FilterConfigItemMultiSelect, Values>;
3
+ export declare const FilterMultiSelect: <V extends AnyObject>({ hideLabel, directionContext, config, value, onChange, values, size, }: FilterMultiSelectProps<V>) => import("react").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=FilterMultiSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterMultiSelect.d.ts","sourceRoot":"","sources":["../../../../src/compositions/Filters/filterTypes/FilterMultiSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAG5F,KAAK,sBAAsB,CAAC,MAAM,SAAS,SAAS,IAAI,oBAAoB,CAC1E,MAAM,EAAE,EACR,2BAA2B,EAC3B,MAAM,CACP,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,SAAS,2EAQlD,sBAAsB,CAAC,CAAC,CAAC,gCA+C3B,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { __esmMin, __name } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { Label, init_Label } from "../../../components/Label/index.js";
3
+ import { SelectInput, init_SelectInput } from "../../../components/SelectInput/index.js";
4
+ import { CheckboxGroup, init_CheckboxGroup } from "../../../components/CheckboxGroup/index.js";
5
+ import { init_FilterSelect } from "./FilterSelect.js";
6
+ import { useMemo } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+
9
+ //#region src/compositions/Filters/filterTypes/FilterMultiSelect.tsx
10
+ var FilterMultiSelect;
11
+ var init_FilterMultiSelect = __esmMin(() => {
12
+ init_CheckboxGroup();
13
+ init_Label();
14
+ init_SelectInput();
15
+ init_FilterSelect();
16
+ FilterMultiSelect = ({ hideLabel, directionContext, config, value, onChange, values, size }) => {
17
+ const configOptions = config.options;
18
+ const options = useMemo(() => typeof configOptions === "function" ? configOptions(values) : configOptions, [values, configOptions]);
19
+ if (directionContext === "column" && Array.isArray(options) && options.length < 10) return /* @__PURE__ */ jsx(CheckboxGroup, {
20
+ description: hideLabel ? void 0 : /* @__PURE__ */ jsx(Label, { children: config.label }),
21
+ name: config.name,
22
+ onChange: (event) => {
23
+ if (value.includes(event.currentTarget.value)) onChange(value.filter((currentValue) => currentValue !== event.currentTarget.value));
24
+ else onChange([...value, event.currentTarget.value]);
25
+ },
26
+ value,
27
+ children: options.map((option) => /* @__PURE__ */ jsx(CheckboxGroup.Checkbox, {
28
+ name: config.name,
29
+ value: option.value,
30
+ children: option.label
31
+ }, option.value))
32
+ });
33
+ return /* @__PURE__ */ jsx(SelectInput, {
34
+ "aria-label": hideLabel ? config.label : void 0,
35
+ label: hideLabel ? void 0 : config.label,
36
+ multiselect: true,
37
+ name: config.name,
38
+ size,
39
+ clearable: config.clearable,
40
+ onChange,
41
+ options,
42
+ placeholder: config.placeholder,
43
+ searchable: config.searchable,
44
+ selectAll: config.selectAll,
45
+ selectAllGroup: config.selectAllGroup,
46
+ value
47
+ });
48
+ };
49
+ });
50
+
51
+ //#endregion
52
+ init_FilterMultiSelect();
53
+ export { FilterMultiSelect, init_FilterMultiSelect };
@@ -0,0 +1,5 @@
1
+ import type { FilterComponentProps, FilterConfigItemNumber } from '../types';
2
+ type FilterNumberProps = FilterComponentProps<number | null, FilterConfigItemNumber>;
3
+ export declare const FilterNumber: ({ config, hideLabel, onChange, value, size }: FilterNumberProps) => import("react").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=FilterNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterNumber.d.ts","sourceRoot":"","sources":["../../../../src/compositions/Filters/filterTypes/FilterNumber.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAE5E,KAAK,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAA;AAEpF,eAAO,MAAM,YAAY,iDAAkD,iBAAiB,gCAY3F,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { __esmMin, __name } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { NumberInput, init_NumberInput } from "../../../components/NumberInput/index.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+
5
+ //#region src/compositions/Filters/filterTypes/FilterNumber.tsx
6
+ var FilterNumber;
7
+ var init_FilterNumber = __esmMin(() => {
8
+ init_NumberInput();
9
+ FilterNumber = ({ config, hideLabel, onChange, value, size }) => /* @__PURE__ */ jsx(NumberInput, {
10
+ max: config.max,
11
+ min: config.min,
12
+ "aria-label": hideLabel ? config.label : void 0,
13
+ label: hideLabel ? void 0 : config.label,
14
+ size,
15
+ name: config.name,
16
+ onChange,
17
+ placeholder: config.placeholder,
18
+ value
19
+ });
20
+ });
21
+
22
+ //#endregion
23
+ init_FilterNumber();
24
+ export { FilterNumber, init_FilterNumber };
@@ -0,0 +1,5 @@
1
+ import type { FilterConfigItemSearch, FilterComponentProps } from '../types';
2
+ type FilterSearchProps = FilterComponentProps<string, FilterConfigItemSearch>;
3
+ export declare const FilterSearch: ({ config, hideLabel, onChange, value, size }: FilterSearchProps) => import("react").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=FilterSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSearch.d.ts","sourceRoot":"","sources":["../../../../src/compositions/Filters/filterTypes/FilterSearch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE5E,KAAK,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;AAE7E,eAAO,MAAM,YAAY,iDAAkD,iBAAiB,gCA8B3F,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { __esmMin, __name } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { SearchInput, init_SearchInput } from "../../../components/SearchInput/index.js";
3
+ import { useEffect, useState } from "react";
4
+ import { useDebouncedCallback } from "@ultraviolet/utils";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
+ //#region src/compositions/Filters/filterTypes/FilterSearch.tsx
8
+ var FilterSearch;
9
+ var init_FilterSearch = __esmMin(() => {
10
+ init_SearchInput();
11
+ FilterSearch = ({ config, hideLabel, onChange, value, size }) => {
12
+ var _config$debounceDurat;
13
+ const [tempValue, setTempValue] = useState(value);
14
+ const onSetValueLater = useDebouncedCallback(onChange, (_config$debounceDurat = config.debounceDuration) !== null && _config$debounceDurat !== void 0 ? _config$debounceDurat : 600);
15
+ useEffect(() => {
16
+ setTempValue(value);
17
+ }, [value]);
18
+ return /* @__PURE__ */ jsx(SearchInput, {
19
+ "aria-label": hideLabel ? config.label : void 0,
20
+ label: hideLabel ? void 0 : config.label,
21
+ loading: tempValue !== value,
22
+ name: config.name,
23
+ size,
24
+ onSearch: (searchString) => {
25
+ setTempValue(searchString);
26
+ onSetValueLater(searchString);
27
+ },
28
+ onKeyDown: (event) => {
29
+ if (event.key === "Enter") {
30
+ event.preventDefault();
31
+ event.stopPropagation();
32
+ }
33
+ },
34
+ placeholder: config.placeholder,
35
+ value: tempValue
36
+ });
37
+ };
38
+ });
39
+
40
+ //#endregion
41
+ init_FilterSearch();
42
+ export { FilterSearch, init_FilterSearch };
@@ -0,0 +1,6 @@
1
+ import type { FilterConfigItemSelect, AnyObject, FilterComponentProps } from '../types';
2
+ export declare const SELECT_DISPLAY_THRESHOLD = 10;
3
+ type FilterSelectProps<Values extends AnyObject> = FilterComponentProps<string, FilterConfigItemSelect, Values>;
4
+ export declare const FilterSelect: <V extends AnyObject>({ hideLabel, directionContext, config, value, onChange, values, size, }: FilterSelectProps<V>) => import("react").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=FilterSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSelect.d.ts","sourceRoot":"","sources":["../../../../src/compositions/Filters/filterTypes/FilterSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEvF,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAE1C,KAAK,iBAAiB,CAAC,MAAM,SAAS,SAAS,IAAI,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAA;AAE/G,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,SAAS,2EAQ7C,iBAAiB,CAAC,CAAC,CAAC,gCAqCtB,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { __esmMin, __name } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { Label, init_Label } from "../../../components/Label/index.js";
3
+ import { SelectInput, init_SelectInput } from "../../../components/SelectInput/index.js";
4
+ import { RadioGroup, init_RadioGroup } from "../../../components/RadioGroup/index.js";
5
+ import { useMemo } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+
8
+ //#region src/compositions/Filters/filterTypes/FilterSelect.tsx
9
+ var SELECT_DISPLAY_THRESHOLD, FilterSelect;
10
+ var init_FilterSelect = __esmMin(() => {
11
+ init_Label();
12
+ init_RadioGroup();
13
+ init_SelectInput();
14
+ SELECT_DISPLAY_THRESHOLD = 10;
15
+ FilterSelect = ({ hideLabel, directionContext, config, value, onChange, values, size }) => {
16
+ const configOptions = config.options;
17
+ const options = useMemo(() => typeof configOptions === "function" ? configOptions(values) : configOptions, [values, configOptions]);
18
+ if (directionContext === "column" && Array.isArray(options) && options.length < 10) return /* @__PURE__ */ jsx(RadioGroup, {
19
+ description: hideLabel ? void 0 : /* @__PURE__ */ jsx(Label, { children: config.label }),
20
+ name: config.name,
21
+ onChange: (event) => {
22
+ onChange === null || onChange === void 0 || onChange(event.target.value);
23
+ },
24
+ value,
25
+ children: options.map((option) => /* @__PURE__ */ jsx(RadioGroup.Radio, {
26
+ label: option.label,
27
+ value: option.value
28
+ }, option.value))
29
+ });
30
+ return /* @__PURE__ */ jsx(SelectInput, {
31
+ "aria-label": hideLabel ? config.label : void 0,
32
+ clearable: config.clearable,
33
+ label: hideLabel ? void 0 : config.label,
34
+ size,
35
+ name: config.name,
36
+ onChange,
37
+ options,
38
+ placeholder: config.placeholder,
39
+ value
40
+ });
41
+ };
42
+ });
43
+
44
+ //#endregion
45
+ init_FilterSelect();
46
+ export { FilterSelect, init_FilterSelect };
@@ -0,0 +1,5 @@
1
+ import type { FilterConfigItemSlider, FilterComponentProps } from '../types';
2
+ type FilterSliderProps = FilterComponentProps<number | number[], FilterConfigItemSlider>;
3
+ export declare const FilterSlider: ({ value, onChange, config, hideLabel }: FilterSliderProps) => import("react").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=FilterSlider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSlider.d.ts","sourceRoot":"","sources":["../../../../src/compositions/Filters/filterTypes/FilterSlider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE5E,KAAK,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAA;AAExF,eAAO,MAAM,YAAY,2CAA4C,iBAAiB,gCAmBrF,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { __esmMin, __name } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { _objectSpread2, init_objectSpread2 } from "../../../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
3
+ import { Slider, init_Slider } from "../../../components/Slider/index.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+
6
+ //#region src/compositions/Filters/filterTypes/FilterSlider.tsx
7
+ var FilterSlider;
8
+ var init_FilterSlider = __esmMin(() => {
9
+ init_Slider();
10
+ init_objectSpread2();
11
+ FilterSlider = ({ value, onChange, config, hideLabel }) => {
12
+ const sliderProps = {
13
+ input: true,
14
+ "aria-label": hideLabel ? config.label : void 0,
15
+ label: hideLabel ? void 0 : config.label,
16
+ max: config.max,
17
+ min: config.min,
18
+ name: config.name,
19
+ onChange,
20
+ options: config.options,
21
+ step: config.step,
22
+ unit: config.unit
23
+ };
24
+ if (config.double) return /* @__PURE__ */ jsx(Slider, _objectSpread2(_objectSpread2({ double: true }, sliderProps), {}, { value }));
25
+ return /* @__PURE__ */ jsx(Slider, _objectSpread2(_objectSpread2({}, sliderProps), {}, { value }));
26
+ };
27
+ });
28
+
29
+ //#endregion
30
+ init_FilterSlider();
31
+ export { FilterSlider, init_FilterSlider };
@@ -0,0 +1,5 @@
1
+ import type { FilterConfigItemText, FilterComponentProps } from '../types';
2
+ type FilterTextProps = FilterComponentProps<string, FilterConfigItemText>;
3
+ export declare const FilterText: ({ config, hideLabel, onChange, value, size }: FilterTextProps) => import("react").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=FilterText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterText.d.ts","sourceRoot":"","sources":["../../../../src/compositions/Filters/filterTypes/FilterText.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE1E,KAAK,eAAe,GAAG,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAEzE,eAAO,MAAM,UAAU,iDAAkD,eAAe,gCA8BvF,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { __esmMin, __name } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { TextInput, init_TextInput } from "../../../components/TextInput/index.js";
3
+ import { useEffect, useState } from "react";
4
+ import { useDebouncedCallback } from "@ultraviolet/utils";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
+ //#region src/compositions/Filters/filterTypes/FilterText.tsx
8
+ var FilterText;
9
+ var init_FilterText = __esmMin(() => {
10
+ init_TextInput();
11
+ FilterText = ({ config, hideLabel, onChange, value, size }) => {
12
+ var _config$debounceDurat;
13
+ const [tempValue, setTempValue] = useState(value);
14
+ const onSetValueLater = useDebouncedCallback(onChange, (_config$debounceDurat = config.debounceDuration) !== null && _config$debounceDurat !== void 0 ? _config$debounceDurat : 600);
15
+ useEffect(() => {
16
+ setTempValue(value);
17
+ }, [value]);
18
+ return /* @__PURE__ */ jsx(TextInput, {
19
+ "aria-label": hideLabel ? config.label : void 0,
20
+ label: hideLabel ? void 0 : config.label,
21
+ loading: tempValue !== value,
22
+ name: config.name,
23
+ size,
24
+ onChange: (event) => {
25
+ setTempValue(event.target.value);
26
+ onSetValueLater(event.target.value);
27
+ },
28
+ onKeyDown: (event) => {
29
+ if (event.key === "Enter") {
30
+ event.preventDefault();
31
+ event.stopPropagation();
32
+ }
33
+ },
34
+ placeholder: config.placeholder,
35
+ value: tempValue
36
+ });
37
+ };
38
+ });
39
+
40
+ //#endregion
41
+ init_FilterText();
42
+ export { FilterText, init_FilterText };
@@ -0,0 +1,7 @@
1
+ export { Filters } from './Filters';
2
+ export type { FiltersProps } from './Filters';
3
+ export { useFiltersContext, FiltersProvider } from './parts/FiltersProvider';
4
+ export { FiltersMainRow } from './parts/FiltersMainRow';
5
+ export { FiltersDrawer } from './parts/FiltersDrawer';
6
+ export type { FilterConfig, FilterConfigGroup, FilterConfigItemBase, FilterConfigItem, FilterConfigItemDatetimeRange, FilterConfigItemMultiSelect, FilterConfigItemNumber, FilterConfigItemSelect, FilterConfigItemSlider, FilterConfigItemText, FilterComponentProps, } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compositions/Filters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ import { FiltersProvider, init_FiltersProvider, useFiltersContext } from "./parts/FiltersProvider.js";
3
+ import { FiltersDrawer, init_FiltersDrawer } from "./parts/FiltersDrawer.js";
4
+ import { FiltersMainRow, init_FiltersMainRow } from "./parts/FiltersMainRow.js";
5
+ import { Filters, init_Filters as init_Filters$1 } from "./Filters.js";
6
+
7
+ //#region src/compositions/Filters/index.ts
8
+ var init_Filters = __esmMin(() => {
9
+ init_Filters$1();
10
+ init_FiltersProvider();
11
+ init_FiltersMainRow();
12
+ init_FiltersDrawer();
13
+ });
14
+
15
+ //#endregion
16
+ init_Filters();
17
+ export { Filters, FiltersDrawer, FiltersMainRow, FiltersProvider, init_Filters, useFiltersContext };