@povio/ui 3.3.0-rc.4 → 3.3.0

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 (63) hide show
  1. package/README.md +15 -1
  2. package/dist/components/Breadcrumbs/Breadcrumbs.js +55 -206
  3. package/dist/components/buttons/InlineIconButton/InlineIconButton.js +9 -34
  4. package/dist/components/buttons/shared/ButtonContent.js +22 -80
  5. package/dist/components/inputs/Checkbox/CheckboxCheckmark.js +10 -24
  6. package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +93 -227
  7. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +84 -202
  8. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +60 -132
  9. package/dist/components/inputs/DateTime/shared/Calendar.js +139 -339
  10. package/dist/components/inputs/DateTime/shared/CalendarCell.js +114 -308
  11. package/dist/components/inputs/DateTime/shared/CalendarGrid.js +35 -150
  12. package/dist/components/inputs/DateTime/shared/CalendarHeader.js +95 -229
  13. package/dist/components/inputs/DateTime/shared/CalendarSelectHeader.js +115 -296
  14. package/dist/components/inputs/DateTime/shared/DateField.js +135 -306
  15. package/dist/components/inputs/DateTime/shared/DatePickerInput.js +140 -338
  16. package/dist/components/inputs/DateTime/shared/DateTimeDialogFooter.js +10 -59
  17. package/dist/components/inputs/File/FileUpload.js +1 -1
  18. package/dist/components/inputs/File/InputUpload.js +65 -261
  19. package/dist/components/inputs/File/shared/FileUploadContentEmpty.js +48 -180
  20. package/dist/components/inputs/File/shared/FileUploadContentError.js +95 -265
  21. package/dist/components/inputs/File/shared/FileUploadContentFilled.js +99 -261
  22. package/dist/components/inputs/File/shared/FileUploadContentLoading.js +56 -234
  23. package/dist/components/inputs/File/shared/ProgressBar.js +15 -102
  24. package/dist/components/inputs/FormField/FormField.js +34 -47
  25. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.js +75 -313
  26. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.js +23 -83
  27. package/dist/components/inputs/Selection/Select/QuerySelect.js +30 -96
  28. package/dist/components/inputs/Selection/Select/Select.js +3 -3
  29. package/dist/components/inputs/Selection/shared/SelectInput.js +1 -0
  30. package/dist/components/inputs/Selection/shared/SelectListBox.js +51 -163
  31. package/dist/components/inputs/Selection/shared/useSelectItems.js +48 -108
  32. package/dist/components/inputs/Skeleton/InputFrame.js +177 -552
  33. package/dist/components/inputs/TextEditor/TextEditor.js +87 -389
  34. package/dist/components/inputs/shared/InputClear.js +24 -40
  35. package/dist/components/navigation/Accordion/Accordion.js +22 -69
  36. package/dist/components/navigation/Accordion/AccordionItem.js +41 -86
  37. package/dist/components/navigation/Stepper/Stepper.js +22 -67
  38. package/dist/components/overlays/ActionModal/ActionModal.js +35 -169
  39. package/dist/components/overlays/ResponsivePopover/ResponsivePopover.js +29 -110
  40. package/dist/components/shared/pagination/Pagination.js +22 -108
  41. package/dist/components/status/Alert/Alert.js +30 -97
  42. package/dist/components/table/InfiniteTable.js +16 -67
  43. package/dist/components/table/Table.d.ts +2 -8
  44. package/dist/components/table/Table.js +33 -55
  45. package/dist/components/text/Typography/Typography.js +8 -23
  46. package/dist/config/confirmation.context.js +1 -1
  47. package/dist/config/theme.context.js +45 -98
  48. package/dist/config/uiConfig.context.js +8 -39
  49. package/dist/config/uiOverrides.context.d.ts +0 -1
  50. package/dist/hooks/useDebounceCallback.js +17 -51
  51. package/dist/hooks/useFormAutosave.js +33 -120
  52. package/dist/hooks/useLongPressRepeat.js +20 -55
  53. package/dist/index.d.ts +0 -1
  54. package/dist/index.js +1 -2
  55. package/package.json +2 -2
  56. package/dist/components/inputs/FormField/formField.cva.d.ts +0 -11
  57. package/dist/components/inputs/FormField/formField.cva.js +0 -16
  58. package/dist/components/table/TableColumnFilterInput.d.ts +0 -9
  59. package/dist/components/table/TableColumnFilterInput.js +0 -108
  60. package/dist/components/table/TableColumnFilterPlaceholder.d.ts +0 -5
  61. package/dist/components/table/TableColumnFilterPlaceholder.js +0 -41
  62. package/dist/components/table/TableColumnFilterRow.d.ts +0 -16
  63. package/dist/components/table/TableColumnFilterRow.js +0 -68
@@ -313,6 +313,7 @@ var SelectInput = (t0) => {
313
313
  ...fieldProps,
314
314
  children: [(as === "floating" && isEmpty || isMultiple && !isEmpty) && /* @__PURE__ */ jsx(Fragment, { children: "\xA0" }), (isEmpty || !isMultiple) && (as !== "floating" || !isEmpty) && /* @__PURE__ */ jsxs(Typography, {
315
315
  size: "label-1",
316
+ as: "span",
316
317
  className: clsx("truncate empty:before:inline-block empty:before:content-['']", isEmpty && "text-text-default-3 group-disabled/select-trigger:text-interactive-text-secondary-disabled"),
317
318
  children: [isEmpty && placeholder, !isEmpty && (showSelectionContent ? selectedItems[0].content : selectedItems[0].label)]
318
319
  })]
@@ -3,185 +3,73 @@ import { SelectContext } from "./select.context.js";
3
3
  import { SelectListBoxItem } from "./SelectListBoxItem.js";
4
4
  import { SelectListBoxItemSelectAll } from "./SelectListBoxItemSelectAll.js";
5
5
  import { SelectListBoxLoadingItem } from "./SelectListBoxLoadingItem.js";
6
- import { c } from "react/compiler-runtime";
7
6
  import { jsx } from "react/jsx-runtime";
8
7
  import { clsx } from "clsx";
9
8
  import { ListBox, ListLayout, Virtualizer } from "react-aria-components";
10
9
  //#region src/components/inputs/Selection/shared/SelectListBox.tsx
11
- var SelectListBox = (t0) => {
12
- const $ = c(51);
13
- let className;
14
- let isSearchable;
15
- let label;
16
- let newItemRender;
17
- let onClose;
18
- let onLoadMore;
19
- let props;
20
- let selectionMode;
21
- let t1;
22
- let totalItems;
23
- let virtualizerOptions;
24
- if ($[0] !== t0) {
25
- ({label, selectionMode, isSearchable, isScrollable: t1, virtualizerOptions, totalItems, newItemRender, onLoadMore, className, onClose, ...props} = t0);
26
- $[0] = t0;
27
- $[1] = className;
28
- $[2] = isSearchable;
29
- $[3] = label;
30
- $[4] = newItemRender;
31
- $[5] = onClose;
32
- $[6] = onLoadMore;
33
- $[7] = props;
34
- $[8] = selectionMode;
35
- $[9] = t1;
36
- $[10] = totalItems;
37
- $[11] = virtualizerOptions;
38
- } else {
39
- className = $[1];
40
- isSearchable = $[2];
41
- label = $[3];
42
- newItemRender = $[4];
43
- onClose = $[5];
44
- onLoadMore = $[6];
45
- props = $[7];
46
- selectionMode = $[8];
47
- t1 = $[9];
48
- totalItems = $[10];
49
- virtualizerOptions = $[11];
50
- }
51
- const isScrollable = t1 === void 0 ? true : t1;
10
+ var SelectListBox = ({ label, selectionMode, isSearchable, isScrollable = true, virtualizerOptions, totalItems, newItemRender, onLoadMore, className, onClose, ...props }) => {
52
11
  const { fieldState, onChange, listItems, selectableListItems, selectedIds, isMultiple, onClear, onSelectAll, hasLoadMore } = SelectContext.useSelect();
53
- let t2;
54
- if ($[12] !== fieldState || $[13] !== isMultiple || $[14] !== onChange || $[15] !== onClear || $[16] !== onClose || $[17] !== onSelectAll || $[18] !== selectableListItems) {
55
- t2 = (value) => {
56
- const ids = Array.from(value);
57
- if (!isMultiple && ids.length === 0) {
58
- if (fieldState.value) {
59
- onClose?.();
60
- onChange(fieldState.value);
61
- }
62
- return;
63
- }
64
- if (isMultiple && ids.includes("all-item-id")) {
65
- if (ids.length > selectableListItems.length) onClear();
66
- else onSelectAll();
67
- return;
68
- }
69
- if (isMultiple) onChange(ids);
70
- else {
12
+ const onSelectionChange = (value) => {
13
+ const ids = Array.from(value);
14
+ if (!isMultiple && ids.length === 0) {
15
+ if (fieldState.value) {
71
16
  onClose?.();
72
- onChange(ids[0]);
17
+ onChange(fieldState.value);
73
18
  }
74
- };
75
- $[12] = fieldState;
76
- $[13] = isMultiple;
77
- $[14] = onChange;
78
- $[15] = onClear;
79
- $[16] = onClose;
80
- $[17] = onSelectAll;
81
- $[18] = selectableListItems;
82
- $[19] = t2;
83
- } else t2 = $[19];
84
- const onSelectionChange = t2;
85
- let t3;
86
- if ($[20] !== isSearchable || $[21] !== newItemRender || $[22] !== onLoadMore) {
87
- t3 = (item) => {
88
- if (item.isSelectAllItem) return /* @__PURE__ */ jsx(SelectListBoxItemSelectAll, { ...item }, item.id);
89
- if (item.isLoadingItem) return /* @__PURE__ */ jsx(SelectListBoxLoadingItem, {
90
- ...item,
91
- onLoadMore
92
- }, item.id);
93
- return /* @__PURE__ */ jsx(SelectListBoxItem, {
94
- ...item,
95
- isSearchable,
96
- isNewItem: item.isNewItem,
97
- newItemRender
98
- }, item.id);
99
- };
100
- $[20] = isSearchable;
101
- $[21] = newItemRender;
102
- $[22] = onLoadMore;
103
- $[23] = t3;
104
- } else t3 = $[23];
105
- const renderItem = t3;
106
- if (virtualizerOptions || (totalItems ?? listItems.length) > 100 || hasLoadMore) {
107
- const t4 = isScrollable ? "max-h-full overflow-y-auto overflow-x-hidden" : "overflow-hidden";
108
- let t5;
109
- if ($[24] !== className || $[25] !== t4) {
110
- t5 = clsx("flex-1 outline-none [&>div:last-child>*]:border-b-0", t4, className);
111
- $[24] = className;
112
- $[25] = t4;
113
- $[26] = t5;
114
- } else t5 = $[26];
115
- let t6;
116
- if ($[27] !== label || $[28] !== listItems || $[29] !== onSelectionChange || $[30] !== props || $[31] !== renderItem || $[32] !== selectedIds || $[33] !== selectionMode || $[34] !== t5) {
117
- t6 = /* @__PURE__ */ jsx(ListBox, {
118
- ...props,
119
- "aria-label": label,
120
- selectionMode,
121
- className: t5,
122
- items: listItems,
123
- selectedKeys: selectedIds,
124
- onSelectionChange,
125
- escapeKeyBehavior: "none",
126
- shouldSelectOnPressUp: true,
127
- children: renderItem
128
- });
129
- $[27] = label;
130
- $[28] = listItems;
131
- $[29] = onSelectionChange;
132
- $[30] = props;
133
- $[31] = renderItem;
134
- $[32] = selectedIds;
135
- $[33] = selectionMode;
136
- $[34] = t5;
137
- $[35] = t6;
138
- } else t6 = $[35];
139
- let t7;
140
- if ($[36] !== t6 || $[37] !== virtualizerOptions) {
141
- t7 = /* @__PURE__ */ jsx(Virtualizer, {
142
- layout: ListLayout,
143
- layoutOptions: virtualizerOptions,
144
- children: t6
145
- });
146
- $[36] = t6;
147
- $[37] = virtualizerOptions;
148
- $[38] = t7;
149
- } else t7 = $[38];
150
- return t7;
151
- }
152
- const t4 = isScrollable ? "max-h-full overflow-y-auto overflow-x-hidden" : "overflow-hidden";
153
- let t5;
154
- if ($[39] !== className || $[40] !== t4) {
155
- t5 = clsx("flex-1 outline-none [&>div:last-child]:border-b-0", t4, className);
156
- $[39] = className;
157
- $[40] = t4;
158
- $[41] = t5;
159
- } else t5 = $[41];
160
- let t6;
161
- if ($[42] !== label || $[43] !== listItems || $[44] !== onSelectionChange || $[45] !== props || $[46] !== renderItem || $[47] !== selectedIds || $[48] !== selectionMode || $[49] !== t5) {
162
- t6 = /* @__PURE__ */ jsx(ListBox, {
19
+ return;
20
+ }
21
+ if (isMultiple && ids.includes("all-item-id")) {
22
+ if (ids.length > selectableListItems.length) onClear();
23
+ else onSelectAll();
24
+ return;
25
+ }
26
+ if (isMultiple) onChange(ids);
27
+ else {
28
+ onClose?.();
29
+ onChange(ids[0]);
30
+ }
31
+ };
32
+ const renderItem = (item) => {
33
+ if (item.isSelectAllItem) return /* @__PURE__ */ jsx(SelectListBoxItemSelectAll, { ...item }, item.id);
34
+ if (item.isLoadingItem) return /* @__PURE__ */ jsx(SelectListBoxLoadingItem, {
35
+ ...item,
36
+ onLoadMore
37
+ }, item.id);
38
+ return /* @__PURE__ */ jsx(SelectListBoxItem, {
39
+ ...item,
40
+ isSearchable,
41
+ isNewItem: item.isNewItem,
42
+ newItemRender
43
+ }, item.id);
44
+ };
45
+ if (virtualizerOptions || (totalItems ?? listItems.length) > 100 || hasLoadMore) return /* @__PURE__ */ jsx(Virtualizer, {
46
+ layout: ListLayout,
47
+ layoutOptions: virtualizerOptions,
48
+ children: /* @__PURE__ */ jsx(ListBox, {
163
49
  ...props,
164
50
  "aria-label": label,
165
51
  selectionMode,
166
- className: t5,
52
+ className: clsx("flex-1 outline-none [&>div:last-child>*]:border-b-0", isScrollable ? "max-h-full overflow-y-auto overflow-x-hidden" : "overflow-hidden", className),
167
53
  items: listItems,
168
54
  selectedKeys: selectedIds,
169
55
  onSelectionChange,
170
56
  escapeKeyBehavior: "none",
171
57
  shouldSelectOnPressUp: true,
172
58
  children: renderItem
173
- });
174
- $[42] = label;
175
- $[43] = listItems;
176
- $[44] = onSelectionChange;
177
- $[45] = props;
178
- $[46] = renderItem;
179
- $[47] = selectedIds;
180
- $[48] = selectionMode;
181
- $[49] = t5;
182
- $[50] = t6;
183
- } else t6 = $[50];
184
- return t6;
59
+ })
60
+ });
61
+ return /* @__PURE__ */ jsx(ListBox, {
62
+ ...props,
63
+ "aria-label": label,
64
+ selectionMode,
65
+ className: clsx("flex-1 outline-none [&>div:last-child]:border-b-0", isScrollable ? "max-h-full overflow-y-auto overflow-x-hidden" : "overflow-hidden", className),
66
+ items: listItems,
67
+ selectedKeys: selectedIds,
68
+ onSelectionChange,
69
+ escapeKeyBehavior: "none",
70
+ shouldSelectOnPressUp: true,
71
+ children: renderItem
72
+ });
185
73
  };
186
74
  //#endregion
187
75
  export { SelectListBox };
@@ -1,4 +1,4 @@
1
- import { c } from "react/compiler-runtime";
1
+ import { useMemo } from "react";
2
2
  import { useFilter } from "react-aria-components";
3
3
  //#region src/components/inputs/Selection/shared/useSelectItems.tsx
4
4
  var SelectAllItemId = "all-item-id";
@@ -24,121 +24,61 @@ var ReservedItemIds = [
24
24
  NewItemId,
25
25
  LoadingItemId
26
26
  ];
27
- function useSelectItems(t0) {
28
- const $ = c(37);
29
- const { initialSelectedItems, selectedItems, cachedItems, inputValue, showAll, isMultiple, showSelectAllOption, showNewItemOption, newItemMinLength: t1, isLoading, hasLoadMore, isClientSearchDisabled } = t0;
30
- const newItemMinLength = t1 === void 0 ? 3 : t1;
31
- let t2;
32
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
33
- t2 = { sensitivity: "base" };
34
- $[0] = t2;
35
- } else t2 = $[0];
36
- const { contains } = useFilter(t2);
37
- const showSelectAllItem = isMultiple && showSelectAllOption && inputValue.length === 0 && !hasLoadMore;
38
- let t3;
39
- if ($[1] !== cachedItems || $[2] !== contains || $[3] !== inputValue || $[4] !== newItemMinLength || $[5] !== showNewItemOption) {
40
- t3 = showNewItemOption && inputValue.length >= newItemMinLength && !cachedItems.find((item) => contains(item.label, inputValue));
41
- $[1] = cachedItems;
42
- $[2] = contains;
43
- $[3] = inputValue;
44
- $[4] = newItemMinLength;
45
- $[5] = showNewItemOption;
46
- $[6] = t3;
47
- } else t3 = $[6];
48
- const showNewItem = t3;
49
- const showLoadingItem = isLoading || hasLoadMore;
50
- let t4;
51
- if ($[7] !== inputValue || $[8] !== showSelectAllItem) {
52
- t4 = showSelectAllItem ? [SelectAllItem(inputValue)] : [];
53
- $[7] = inputValue;
54
- $[8] = showSelectAllItem;
55
- $[9] = t4;
56
- } else t4 = $[9];
57
- let t5;
58
- if ($[10] !== inputValue || $[11] !== showNewItem) {
59
- t5 = showNewItem ? [NewItem(inputValue)] : [];
60
- $[10] = inputValue;
61
- $[11] = showNewItem;
62
- $[12] = t5;
63
- } else t5 = $[12];
64
- let t6;
65
- if ($[13] !== inputValue || $[14] !== showLoadingItem) {
66
- t6 = showLoadingItem ? [LoadingItem(inputValue)] : [];
67
- $[13] = inputValue;
68
- $[14] = showLoadingItem;
69
- $[15] = t6;
70
- } else t6 = $[15];
71
- let t7;
72
- if ($[16] !== cachedItems || $[17] !== t4 || $[18] !== t5 || $[19] !== t6) {
73
- t7 = [
74
- ...t4,
27
+ function useSelectItems({ initialSelectedItems, selectedItems, cachedItems, inputValue, showAll, isMultiple, showSelectAllOption, showNewItemOption, newItemMinLength = 3, isLoading, hasLoadMore, isClientSearchDisabled }) {
28
+ const { contains } = useFilter({ sensitivity: "base" });
29
+ const allListItems = useMemo(() => {
30
+ const showSelectAllItem = isMultiple && showSelectAllOption && inputValue.length === 0 && !hasLoadMore;
31
+ const showNewItem = showNewItemOption && inputValue.length >= newItemMinLength && !cachedItems.find((item) => contains(item.label, inputValue));
32
+ const showLoadingItem = isLoading || hasLoadMore;
33
+ return [
34
+ ...showSelectAllItem ? [SelectAllItem(inputValue)] : [],
75
35
  ...cachedItems,
76
- ...t5,
77
- ...t6
36
+ ...showNewItem ? [NewItem(inputValue)] : [],
37
+ ...showLoadingItem ? [LoadingItem(inputValue)] : []
78
38
  ];
79
- $[16] = cachedItems;
80
- $[17] = t4;
81
- $[18] = t5;
82
- $[19] = t6;
83
- $[20] = t7;
84
- } else t7 = $[20];
85
- const allListItems = t7;
86
- let t8;
87
- if ($[21] !== allListItems || $[22] !== initialSelectedItems || $[23] !== selectedItems) {
39
+ }, [
40
+ isMultiple,
41
+ showNewItemOption,
42
+ inputValue,
43
+ newItemMinLength,
44
+ cachedItems,
45
+ contains,
46
+ isLoading,
47
+ hasLoadMore,
48
+ showSelectAllOption
49
+ ]);
50
+ const allItems = useMemo(() => {
88
51
  const items = [
89
52
  ...Array.isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems],
90
53
  ...Array.isArray(selectedItems) ? selectedItems : [selectedItems],
91
54
  ...allListItems
92
- ].filter(_temp);
55
+ ].filter((item_0) => !!item_0);
93
56
  const allItemsMap = /* @__PURE__ */ new Map();
94
57
  items.forEach((item_1) => allItemsMap.set(item_1.id, item_1));
95
- t8 = Array.from(allItemsMap.values());
96
- $[21] = allListItems;
97
- $[22] = initialSelectedItems;
98
- $[23] = selectedItems;
99
- $[24] = t8;
100
- } else t8 = $[24];
101
- const allItems = t8;
102
- let t9;
103
- if ($[25] !== allListItems || $[26] !== contains || $[27] !== inputValue) {
104
- t9 = allListItems.filter((item_2) => contains(item_2.label, inputValue));
105
- $[25] = allListItems;
106
- $[26] = contains;
107
- $[27] = inputValue;
108
- $[28] = t9;
109
- } else t9 = $[28];
110
- const filteredListItems = t9;
111
- const listItems = showAll || isClientSearchDisabled ? allListItems : filteredListItems;
112
- let t10;
113
- if ($[29] !== listItems) {
114
- t10 = listItems.filter(_temp2);
115
- $[29] = listItems;
116
- $[30] = t10;
117
- } else t10 = $[30];
118
- const selectableListItems = t10;
119
- let t11;
120
- if ($[31] !== allItems || $[32] !== allListItems || $[33] !== filteredListItems || $[34] !== listItems || $[35] !== selectableListItems) {
121
- t11 = {
122
- allItems,
123
- allListItems,
124
- filteredListItems,
125
- listItems,
126
- selectableListItems
127
- };
128
- $[31] = allItems;
129
- $[32] = allListItems;
130
- $[33] = filteredListItems;
131
- $[34] = listItems;
132
- $[35] = selectableListItems;
133
- $[36] = t11;
134
- } else t11 = $[36];
135
- return t11;
136
- }
137
- function _temp2(item_3) {
138
- return !item_3.isDisabled && !ReservedItemIds.includes(String(item_3.id));
139
- }
140
- function _temp(item_0) {
141
- return !!item_0;
58
+ return Array.from(allItemsMap.values());
59
+ }, [
60
+ allListItems,
61
+ initialSelectedItems,
62
+ selectedItems
63
+ ]);
64
+ const filteredListItems = useMemo(() => allListItems.filter((item_2) => contains(item_2.label, inputValue)), [
65
+ allListItems,
66
+ contains,
67
+ inputValue
68
+ ]);
69
+ const listItems = useMemo(() => showAll || isClientSearchDisabled ? allListItems : filteredListItems, [
70
+ showAll,
71
+ isClientSearchDisabled,
72
+ allListItems,
73
+ filteredListItems
74
+ ]);
75
+ return {
76
+ allItems,
77
+ allListItems,
78
+ filteredListItems,
79
+ listItems,
80
+ selectableListItems: useMemo(() => listItems.filter((item_3) => !item_3.isDisabled && !ReservedItemIds.includes(String(item_3.id))), [listItems])
81
+ };
142
82
  }
143
83
  //#endregion
144
84
  export { NewItemId, SelectAllItemId, useSelectItems };