@persona/design-system 0.10.1 → 0.10.2

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 (142) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{CheckboxGroupField-4dc7YXJY.d.mts → CheckboxGroupField-BrPGNIyD.d.mts} +2 -2
  3. package/dist/CheckboxGroupField.d.mts +1 -1
  4. package/dist/{Combobox-CcFJo68g.mjs → Combobox-BXHCfVpE.mjs} +2 -2
  5. package/dist/{Combobox-CcFJo68g.mjs.map → Combobox-BXHCfVpE.mjs.map} +1 -1
  6. package/dist/{Combobox-Bm2eSg56.d.mts → Combobox-D0dMN5eY.d.mts} +3 -3
  7. package/dist/Combobox.d.mts +2 -2
  8. package/dist/{ComboboxBase-B7ZcqU9p.d.mts → ComboboxBase-BlNi9OnF.d.mts} +2 -2
  9. package/dist/ComboboxBase.d.mts +1 -1
  10. package/dist/{ComboboxMultiSelect-BkdRrH6K.d.mts → ComboboxMultiSelect-DbTYO-Yz.d.mts} +2 -2
  11. package/dist/ComboboxMultiSelect.d.mts +1 -1
  12. package/dist/{ComboboxSingleSelect-DIBRZmvS.d.mts → ComboboxSingleSelect-Cd6VYdwr.d.mts} +3 -3
  13. package/dist/ComboboxSingleSelect.d.mts +1 -1
  14. package/dist/{ConfigFormGroup-CidT_cE9.mjs → ConfigFormGroup-BE3yR_VU.mjs} +1 -1
  15. package/dist/{ConfigFormGroup-CidT_cE9.mjs.map → ConfigFormGroup-BE3yR_VU.mjs.map} +1 -1
  16. package/dist/{DataTable--_f1Obhj.d.mts → DataTable-BdKUCgcZ.d.mts} +5 -5
  17. package/dist/{DataTable-BoAAKhVH.mjs → DataTable-F9R-aQCg.mjs} +7 -7
  18. package/dist/{DataTable-BoAAKhVH.mjs.map → DataTable-F9R-aQCg.mjs.map} +1 -1
  19. package/dist/DataTable.d.mts +1 -1
  20. package/dist/{DatePicker-D0cvVbzq.mjs → DatePicker-CkNQjfCN.mjs} +2 -2
  21. package/dist/{DatePicker-D0cvVbzq.mjs.map → DatePicker-CkNQjfCN.mjs.map} +1 -1
  22. package/dist/DropdownButton.d.mts +1 -1
  23. package/dist/{DropdownMenu-Bie2cWjb.d.mts → DropdownMenu-nxFNS1kH.d.mts} +2 -2
  24. package/dist/DropdownMenu.d.mts +1 -1
  25. package/dist/{FormField-C4B2qFgh.mjs → FormField-D0y1uRV5.mjs} +5 -5
  26. package/dist/{FormField-C4B2qFgh.mjs.map → FormField-D0y1uRV5.mjs.map} +1 -1
  27. package/dist/{HoverCopyableField-D-BubaRd.mjs → HoverCopyableField-DkOosH8z.mjs} +2 -2
  28. package/dist/{HoverCopyableField-D-BubaRd.mjs.map → HoverCopyableField-DkOosH8z.mjs.map} +1 -1
  29. package/dist/ImageThumbnail.d.mts +43 -0
  30. package/dist/IndexTableLayout.d.mts +3 -3
  31. package/dist/InlineCombobox.d.mts +1 -1
  32. package/dist/InlineInput.d.mts +1 -1
  33. package/dist/{Link-Cf__H8gD.mjs → Link-BSuXrvTu.mjs} +1 -1
  34. package/dist/{Link-Cf__H8gD.mjs.map → Link-BSuXrvTu.mjs.map} +1 -1
  35. package/dist/{ListBox-eoyBHtnJ.mjs → ListBox-BLoJVezh.mjs} +2 -2
  36. package/dist/{ListBox-eoyBHtnJ.mjs.map → ListBox-BLoJVezh.mjs.map} +1 -1
  37. package/dist/{ListBox-DIk8suJM.d.mts → ListBox-CXFI-0nG.d.mts} +2 -2
  38. package/dist/ListBox.d.mts +1 -1
  39. package/dist/{ListBoxField-DF8rqPsu.d.mts → ListBoxField-BCOrph2k.d.mts} +4 -4
  40. package/dist/ListBoxField.d.mts +1 -1
  41. package/dist/{LogicRow-uxpe1vZ1.d.mts → LogicRow-8oYRkwz5.d.mts} +2 -2
  42. package/dist/LogicRow.d.mts +1 -1
  43. package/dist/MaskedInput.d.mts +1 -1
  44. package/dist/{Menu-CrThaUX2.d.mts → Menu-DHnQZ5yN.d.mts} +2 -2
  45. package/dist/Menu.d.mts +1 -1
  46. package/dist/{Modal-kjUptzg1.mjs → Modal-IJdbLORi.mjs} +1 -1
  47. package/dist/{Modal-kjUptzg1.mjs.map → Modal-IJdbLORi.mjs.map} +1 -1
  48. package/dist/{Pagination-DtK-jbEY.mjs → Pagination-C5ANr9M0.mjs} +2 -2
  49. package/dist/{Pagination-DtK-jbEY.mjs.map → Pagination-C5ANr9M0.mjs.map} +1 -1
  50. package/dist/{Pii-DueIK287.mjs → Pii-G16_b7Yk.mjs} +1 -1
  51. package/dist/{Pii-DueIK287.mjs.map → Pii-G16_b7Yk.mjs.map} +1 -1
  52. package/dist/{Popover-BcII7usF.mjs → Popover-532iYFek.mjs} +1 -1
  53. package/dist/{Popover-BcII7usF.mjs.map → Popover-532iYFek.mjs.map} +1 -1
  54. package/dist/{Select-CsxK6A5m.d.mts → Select-CSbamhJO.d.mts} +2 -2
  55. package/dist/{Select-BJ9ACmRD.mjs → Select-hnXfPywt.mjs} +1 -1
  56. package/dist/{Select-BJ9ACmRD.mjs.map → Select-hnXfPywt.mjs.map} +1 -1
  57. package/dist/Select.d.mts +1 -1
  58. package/dist/SelectionCard.d.mts +51 -0
  59. package/dist/SelectionCardGroup.d.mts +37 -0
  60. package/dist/SmartTextInputField.d.mts +2 -2
  61. package/dist/{Spinner-uVZyOh1T.mjs → Spinner-AnIk8d9M.mjs} +1 -1
  62. package/dist/{Spinner-uVZyOh1T.mjs.map → Spinner-AnIk8d9M.mjs.map} +1 -1
  63. package/dist/{Table--o4ZLRbb.mjs → Table-CmuWqmVN.mjs} +2 -2
  64. package/dist/{Table--o4ZLRbb.mjs.map → Table-CmuWqmVN.mjs.map} +1 -1
  65. package/dist/{TableBox-3qunC9Nl.mjs → TableBox-BRJunn09.mjs} +4 -4
  66. package/dist/{TableBox-3qunC9Nl.mjs.map → TableBox-BRJunn09.mjs.map} +1 -1
  67. package/dist/TableBox.d.mts +1 -1
  68. package/dist/{TableBoxCell-okcOQ5Ec.d.mts → TableBoxCell-Cag3ZYRs.d.mts} +4 -4
  69. package/dist/TableBoxCell.d.mts +1 -1
  70. package/dist/{TableBoxField-DR-SJY9z.d.mts → TableBoxField-C3Cg6Lv5.d.mts} +5 -5
  71. package/dist/TableBoxField.d.mts +1 -1
  72. package/dist/{TableBoxRow-DiuAB_rV.d.mts → TableBoxRow-y5ay5lMt.d.mts} +2 -2
  73. package/dist/TableBoxRow.d.mts +1 -1
  74. package/dist/{TableBoxRowActions-Cm4KJsAD.d.mts → TableBoxRowActions-CDdVjAPQ.d.mts} +2 -2
  75. package/dist/TableBoxRowActions.d.mts +1 -1
  76. package/dist/{TableControls-n16XKO9S.mjs → TableControls-C5fNNdmT.mjs} +64 -25
  77. package/dist/TableControls-C5fNNdmT.mjs.map +1 -0
  78. package/dist/{TableControls-B9bvsNUc.d.mts → TableControls-DCtTiWk6.d.mts} +3 -3
  79. package/dist/TableControls.d.mts +1 -1
  80. package/dist/{TableControlsContext-CZThYoj5.d.mts → TableControlsContext-CzJCMrSe.d.mts} +2 -2
  81. package/dist/TableControlsContext.d.mts +1 -1
  82. package/dist/{TableViewConfigurationDropdown-CvN7tE98.d.mts → TableViewConfigurationDropdown-BvOlDkJy.d.mts} +2 -2
  83. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  84. package/dist/{clientFilterUtils-BXEpzorX.d.mts → clientFilterUtils-BqDn44aM.d.mts} +2 -2
  85. package/dist/clientFilterUtils.d.mts +1 -1
  86. package/dist/components/Combobox/index.d.mts +2 -2
  87. package/dist/components/Combobox/index.mjs +1 -1
  88. package/dist/components/ConfigFormGroup/index.mjs +1 -1
  89. package/dist/components/DataTable/TableControls/index.d.mts +5 -5
  90. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  91. package/dist/components/DataTable/index.d.mts +5 -5
  92. package/dist/components/DataTable/index.mjs +1 -1
  93. package/dist/components/DataTable/types.d.mts +1 -1
  94. package/dist/components/DatePicker/index.mjs +1 -1
  95. package/dist/components/DropdownMenu/index.d.mts +1 -1
  96. package/dist/components/FormField/index.d.mts +4 -4
  97. package/dist/components/FormField/index.mjs +1 -1
  98. package/dist/components/HoverCopyableField/index.mjs +1 -1
  99. package/dist/components/ImageTile/index.mjs +82 -52
  100. package/dist/components/ImageTile/index.mjs.map +1 -1
  101. package/dist/components/Link/index.mjs +1 -1
  102. package/dist/components/ListBox/index.d.mts +3 -3
  103. package/dist/components/ListBox/index.mjs +1 -1
  104. package/dist/components/Menu/index.d.mts +1 -1
  105. package/dist/components/Modal/index.mjs +1 -1
  106. package/dist/components/Pagination/index.mjs +1 -1
  107. package/dist/components/Pii/index.mjs +1 -1
  108. package/dist/components/Popover/index.mjs +1 -1
  109. package/dist/components/Select/index.d.mts +1 -1
  110. package/dist/components/Select/index.mjs +1 -1
  111. package/dist/components/SelectionCard/index.d.mts +3 -0
  112. package/dist/components/SelectionCard/index.mjs +264 -0
  113. package/dist/components/SelectionCard/index.mjs.map +1 -0
  114. package/dist/components/SmartTextInput/index.mjs +1 -1
  115. package/dist/components/Spinner/index.mjs +1 -1
  116. package/dist/components/Table/index.mjs +1 -1
  117. package/dist/components/TableBox/index.d.mts +1 -1
  118. package/dist/components/TableBox/index.mjs +1 -1
  119. package/dist/components/VersionHistory/index.mjs +2 -2
  120. package/dist/fieldPickerOptions.d.mts +1 -1
  121. package/dist/{filters-ogUUmLEf.d.mts → filters-jG9Y3UKb.d.mts} +2 -2
  122. package/dist/filters.d.mts +1 -1
  123. package/dist/{helpers-Dqw5PEva.d.mts → helpers-DCIto6aY.d.mts} +2 -2
  124. package/dist/helpers.d.mts +1 -1
  125. package/dist/{index-Ck939aXd.d.mts → index-C3uFHTo0.d.mts} +3 -3
  126. package/dist/{inputFields-DVLg_2wz.d.mts → inputFields-mUsms2tO.d.mts} +4 -4
  127. package/dist/inputFields.d.mts +1 -1
  128. package/dist/patterns/IndexTableLayout/index.mjs +1 -1
  129. package/dist/patterns/LayoutLoadingShimmer/index.mjs +1 -1
  130. package/dist/patterns/WizardModal/index.mjs +1 -1
  131. package/dist/{types-Bdi8Y7ll.d.mts → types-CrRWZ0Ia.d.mts} +3 -3
  132. package/dist/{types-BQP14Fng.d.mts → types-DxJyE_U8.d.mts} +2 -2
  133. package/dist/types5.d.mts +1 -1
  134. package/dist/useColumnConfiguration.d.mts +2 -2
  135. package/dist/useComboboxFooterAction.d.mts +1 -1
  136. package/dist/{useTableColumns-DdU0CLcU.d.mts → useTableColumns-DSXRInPb.d.mts} +2 -2
  137. package/dist/useTableColumns.d.mts +1 -1
  138. package/dist/useTruncation.d.mts +1 -1
  139. package/package.json +3 -1
  140. package/skills/ui-authoring/COMPONENTS.md +1 -0
  141. package/skills/ui-authoring/PATTERNS.md +5 -1
  142. package/dist/TableControls-n16XKO9S.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import { o as ComboboxOptionsOrGroups } from "./ComboboxBase-B7ZcqU9p.mjs";
1
+ import { o as ComboboxOptionsOrGroups } from "./ComboboxBase-BlNi9OnF.mjs";
2
2
  import { a as TableCellProps, i as TableCell } from "./TableCell-4u5_BgTC.mjs";
3
- import { r as TableBoxRowProps } from "./TableBoxRow-DiuAB_rV.mjs";
3
+ import { r as TableBoxRowProps } from "./TableBoxRow-y5ay5lMt.mjs";
4
4
  import { n as ReorderConfig, t as DragDirection } from "./useTableBoxDragAndDrop-CKPIY98e.mjs";
5
- import { t as RowAction } from "./TableBoxRowActions-Cm4KJsAD.mjs";
5
+ import { t as RowAction } from "./TableBoxRowActions-CDdVjAPQ.mjs";
6
6
  import * as _$react from "react";
7
7
  import { ComponentPropsWithoutRef, PropsWithChildren } from "react";
8
8
  import * as _$styled_components0 from "styled-components";
@@ -273,4 +273,4 @@ declare const TableBoxCell: ({
273
273
  }: TableBoxCellProps) => _$react_jsx_runtime0.JSX.Element;
274
274
  //#endregion
275
275
  export { TableBox as a, PinnedActionsCell as i, TableBoxCellProps as n, TableBoxContext as o, InlineEditConfig as r, TableBoxProps as s, TableBoxCell as t };
276
- //# sourceMappingURL=TableBoxCell-okcOQ5Ec.d.mts.map
276
+ //# sourceMappingURL=TableBoxCell-Cag3ZYRs.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as TableBoxCellProps, t as TableBoxCell } from "./TableBoxCell-okcOQ5Ec.mjs";
1
+ import { n as TableBoxCellProps, t as TableBoxCell } from "./TableBoxCell-Cag3ZYRs.mjs";
2
2
  export { TableBoxCellProps, TableBoxCell as default };
@@ -1,7 +1,7 @@
1
- import { l as MenuItemProps } from "./Menu-CrThaUX2.mjs";
2
- import { o as ImplementsFormField } from "./inputFields-DVLg_2wz.mjs";
3
- import { r as TableBoxRowProps } from "./TableBoxRow-DiuAB_rV.mjs";
4
- import { n as TableBoxCellProps, s as TableBoxProps } from "./TableBoxCell-okcOQ5Ec.mjs";
1
+ import { l as MenuItemProps } from "./Menu-DHnQZ5yN.mjs";
2
+ import { o as ImplementsFormField } from "./inputFields-mUsms2tO.mjs";
3
+ import { r as TableBoxRowProps } from "./TableBoxRow-y5ay5lMt.mjs";
4
+ import { n as TableBoxCellProps, s as TableBoxProps } from "./TableBoxCell-Cag3ZYRs.mjs";
5
5
  import { MouseEvent, ReactNode } from "react";
6
6
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
7
7
 
@@ -100,4 +100,4 @@ declare const TableBoxField: {
100
100
  };
101
101
  //#endregion
102
102
  export { TableBoxFieldActionGroup as a, TableBoxFieldActionEntry as i, TableBoxField as n, TableBoxFieldAction as r, TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL as t };
103
- //# sourceMappingURL=TableBoxField-DR-SJY9z.d.mts.map
103
+ //# sourceMappingURL=TableBoxField-C3Cg6Lv5.d.mts.map
@@ -1,2 +1,2 @@
1
- import { a as TableBoxFieldActionGroup, i as TableBoxFieldActionEntry, n as TableBoxField, r as TableBoxFieldAction, t as TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL } from "./TableBoxField-DR-SJY9z.mjs";
1
+ import { a as TableBoxFieldActionGroup, i as TableBoxFieldActionEntry, n as TableBoxField, r as TableBoxFieldAction, t as TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL } from "./TableBoxField-C3Cg6Lv5.mjs";
2
2
  export { TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL, TableBoxFieldAction, TableBoxFieldActionEntry, TableBoxFieldActionGroup, TableBoxField as default };
@@ -1,4 +1,4 @@
1
- import { l as MenuItemProps } from "./Menu-CrThaUX2.mjs";
1
+ import { l as MenuItemProps } from "./Menu-DHnQZ5yN.mjs";
2
2
  import { t as TableRow } from "./TableRow-lCsvG0a-.mjs";
3
3
  import { ComponentPropsWithoutRef, ReactNode } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -83,4 +83,4 @@ declare const TableBoxRowOverlay: ({
83
83
  }) => _$react_jsx_runtime0.JSX.Element;
84
84
  //#endregion
85
85
  export { TableBoxRowOverlay as n, TableBoxRowProps as r, TableBoxRow as t };
86
- //# sourceMappingURL=TableBoxRow-DiuAB_rV.d.mts.map
86
+ //# sourceMappingURL=TableBoxRow-y5ay5lMt.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as TableBoxRowOverlay, r as TableBoxRowProps, t as TableBoxRow } from "./TableBoxRow-DiuAB_rV.mjs";
1
+ import { n as TableBoxRowOverlay, r as TableBoxRowProps, t as TableBoxRow } from "./TableBoxRow-y5ay5lMt.mjs";
2
2
  export { TableBoxRowOverlay, TableBoxRowProps, TableBoxRow as default };
@@ -1,4 +1,4 @@
1
- import { l as MenuItemProps } from "./Menu-CrThaUX2.mjs";
1
+ import { l as MenuItemProps } from "./Menu-DHnQZ5yN.mjs";
2
2
  import * as _$styled_components0 from "styled-components";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -54,4 +54,4 @@ declare const RowActions: ({
54
54
  }: RowActionsProps) => _$react_jsx_runtime0.JSX.Element | null;
55
55
  //#endregion
56
56
  export { RowActionsContainerWithFadeWidth as i, RowActions as n, RowActionsContainer as r, RowAction as t };
57
- //# sourceMappingURL=TableBoxRowActions-Cm4KJsAD.d.mts.map
57
+ //# sourceMappingURL=TableBoxRowActions-CDdVjAPQ.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as RowActionsContainerWithFadeWidth, n as RowActions, r as RowActionsContainer, t as RowAction } from "./TableBoxRowActions-Cm4KJsAD.mjs";
1
+ import { i as RowActionsContainerWithFadeWidth, n as RowActions, r as RowActionsContainer, t as RowAction } from "./TableBoxRowActions-CDdVjAPQ.mjs";
2
2
  export { RowAction, RowActions, RowActionsContainer, RowActionsContainerWithFadeWidth };
@@ -23,14 +23,14 @@ import { r as InputGroup } from "./Input-Dap055xf.mjs";
23
23
  import Input_default from "./components/Input/index.mjs";
24
24
  import { c as MenuList, s as MenuItem } from "./Menu-Dw6Rcpk6.mjs";
25
25
  import { n as DropdownMenu_default } from "./DropdownMenu-CedsmO5h.mjs";
26
- import { t as Combobox } from "./Combobox-CcFJo68g.mjs";
27
- import { n as Select, r as SelectHeader, t as Option } from "./Select-BJ9ACmRD.mjs";
28
- import { s as Popover_default } from "./Popover-BcII7usF.mjs";
29
- import { i as Modal_default } from "./Modal-kjUptzg1.mjs";
30
- import { r as DateRangePicker, t as DatePicker } from "./DatePicker-D0cvVbzq.mjs";
31
- import { t as ListBox } from "./ListBox-eoyBHtnJ.mjs";
26
+ import { n as Select, r as SelectHeader, t as Option } from "./Select-hnXfPywt.mjs";
27
+ import { s as Popover_default } from "./Popover-532iYFek.mjs";
28
+ import { i as Modal_default } from "./Modal-IJdbLORi.mjs";
29
+ import { t as Combobox } from "./Combobox-BXHCfVpE.mjs";
30
+ import { r as DateRangePicker, t as DatePicker } from "./DatePicker-CkNQjfCN.mjs";
31
+ import { t as ListBox } from "./ListBox-BLoJVezh.mjs";
32
32
  import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-D0ys8s0D.mjs";
33
- import { m as FormField, o as ComboboxField } from "./FormField-C4B2qFgh.mjs";
33
+ import { m as FormField, o as ComboboxField } from "./FormField-D0y1uRV5.mjs";
34
34
  import { t as Toggle } from "./Toggle-BsqSNYok.mjs";
35
35
  import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
36
36
  import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
@@ -41,11 +41,11 @@ import { CaretDownIcon as CaretDownIcon$1, CircleInfoIcon as CircleInfoIcon$1, L
41
41
  import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
42
42
  import { useId } from "react-aria";
43
43
  import { mergeRefs } from "@react-aria/utils";
44
- import Fuse from "fuse.js";
45
44
  import { DragIcon as DragIcon$1 } from "@persona/icons/24px";
46
45
  import * as PopoverPrimitive from "@radix-ui/react-popover";
47
46
  import { DndContext, PointerSensor, closestCenter, pointerWithin, useSensor, useSensors } from "@dnd-kit/core";
48
47
  import { SortableContext, horizontalListSortingStrategy, useSortable } from "@dnd-kit/sortable";
48
+ import Fuse from "fuse.js";
49
49
  import { parseAbsolute, parseDate, toCalendarDate, toZoned } from "@internationalized/date";
50
50
  import { v4 } from "uuid";
51
51
  import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd";
@@ -696,13 +696,36 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
696
696
  const allViews = views ?? [];
697
697
  return [allViews.filter((view) => !hiddenIds.has(view.id)), allViews.filter((view) => hiddenIds.has(view.id))];
698
698
  }, [views, hiddenViewIds]);
699
+ const shownViewsKey = shownViews.map((view) => view.id).join("\n");
700
+ const [selectedSlot, setSelectedSlot] = useState(null);
701
+ const selectedSlotIndex = selectedSlot != null && selectedSlot.viewId === currentView && selectedSlot.shownViewsKey === shownViewsKey ? selectedSlot.index : null;
702
+ const stripViews = useMemo(() => {
703
+ const selectedView = shownViews.find((view) => view.id === currentView);
704
+ if (selectedSlotIndex == null || !selectedView) return shownViews;
705
+ const otherViews = shownViews.filter((view) => view !== selectedView);
706
+ return [
707
+ ...otherViews.slice(0, selectedSlotIndex),
708
+ selectedView,
709
+ ...otherViews.slice(selectedSlotIndex)
710
+ ];
711
+ }, [
712
+ shownViews,
713
+ currentView,
714
+ selectedSlotIndex
715
+ ]);
699
716
  const onResize = useCallback(() => {
700
717
  if (!tabListRef.current) return;
701
718
  const containerRect = tabListRef.current.getBoundingClientRect();
702
719
  const tabListContainer = tabListRef.current;
703
720
  const firstOverflowIndex = Array.from(tabListContainer.querySelectorAll("[data-tab-view]")).findIndex((el) => !rectContainsRect(containerRect, el.getBoundingClientRect()));
704
- const nextOverflowViews = firstOverflowIndex === -1 ? [] : shownViews.slice(firstOverflowIndex);
721
+ const nextOverflowViews = firstOverflowIndex === -1 ? [] : stripViews.slice(firstOverflowIndex);
705
722
  setOverflowViews((prev) => prev.length === nextOverflowViews.length && prev.every((view, index) => view === nextOverflowViews[index]) ? prev : nextOverflowViews);
723
+ const selectedIndex = stripViews.findIndex((view) => view.id === currentView);
724
+ if (onReorderViews && currentView && firstOverflowIndex > 0 && selectedIndex >= firstOverflowIndex) setSelectedSlot({
725
+ viewId: currentView,
726
+ shownViewsKey,
727
+ index: firstOverflowIndex - 1
728
+ });
706
729
  const firstRowElements = Array.from(tabListContainer.children).filter((el) => el instanceof HTMLElement && el !== tabOverflowRef.current && rectContainsRect(containerRect, el.getBoundingClientRect()));
707
730
  const anchor = firstRowElements[firstRowElements.length - 1];
708
731
  setOverflowLeft(anchor ? anchor.offsetLeft + anchor.offsetWidth + OVERFLOW_GAP : null);
@@ -710,7 +733,12 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
710
733
  setIsAddViewOverflowing(addViewButton instanceof HTMLElement && !firstRowElements.includes(addViewButton));
711
734
  const tabOverflowWidth = tabOverflowRef.current?.getBoundingClientRect().width;
712
735
  if (tabOverflowWidth) setTabOverflowWidth((prev) => prev != null && prev > tabOverflowWidth && prev - tabOverflowWidth < OVERFLOW_WIDTH_SHRINK_THRESHOLD ? prev : tabOverflowWidth);
713
- }, [shownViews]);
736
+ }, [
737
+ currentView,
738
+ onReorderViews,
739
+ shownViewsKey,
740
+ stripViews
741
+ ]);
714
742
  useLayoutEffect(() => {
715
743
  const tabList = tabListRef.current;
716
744
  if (!showViews || !tabList) return;
@@ -735,7 +763,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
735
763
  }, [
736
764
  onResize,
737
765
  showViews,
738
- shownViews
766
+ stripViews
739
767
  ]);
740
768
  const isCurrentViewInOverflow = useMemo(() => !!currentView && [...overflowViews, ...hiddenViews].some((view) => view.id === currentView), [
741
769
  currentView,
@@ -781,13 +809,22 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
781
809
  y: 0
782
810
  };
783
811
  }, []);
812
+ const orderedViewIds = useMemo(() => {
813
+ let shownIndex = 0;
814
+ const hiddenIds = new Set(hiddenViews.map((view) => view.id));
815
+ return (views ?? []).map((view) => hiddenIds.has(view.id) ? view.id : stripViews[shownIndex++].id);
816
+ }, [
817
+ views,
818
+ hiddenViews,
819
+ stripViews
820
+ ]);
784
821
  const moveView = (viewId, toIndex) => {
785
822
  if (!views || !onReorderViews) return;
786
- const viewIds = views.map((view) => view.id);
823
+ const viewIds = orderedViewIds;
787
824
  const reordered = moveItemByIndex(viewIds, viewIds.indexOf(viewId), toIndex);
788
825
  if (reordered !== viewIds) onReorderViews(reordered);
789
826
  };
790
- const indexOfView = (viewId) => views?.findIndex((view) => view.id === viewId) ?? -1;
827
+ const indexOfView = (viewId) => orderedViewIds.indexOf(viewId);
791
828
  const openViewFromMenu = (viewId) => {
792
829
  if (hiddenViews.some((view) => view.id === viewId)) onViewHiddenChange?.(viewId, false);
793
830
  moveView(viewId, 0);
@@ -798,7 +835,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
798
835
  };
799
836
  const hideView = (viewId) => {
800
837
  const overflowIds = new Set(overflowViews.map((view) => view.id));
801
- const visibleViews = shownViews.filter((view) => !overflowIds.has(view.id));
838
+ const visibleViews = stripViews.filter((view) => !overflowIds.has(view.id));
802
839
  const index = visibleViews.findIndex((view) => view.id === viewId);
803
840
  const isCurrent = viewId === currentView;
804
841
  const focusTarget = isCurrent || index === -1 ? void 0 : visibleViews[index + 1] ?? visibleViews[index - 1];
@@ -807,8 +844,10 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
807
844
  document.getElementById(`${TAB_ID_PREFIX}${focusTarget ? focusTarget.id : "default"}`)?.focus({ preventScroll: true });
808
845
  };
809
846
  const moveViewWithKeyboard = (viewId, direction) => {
810
- const neighbor = shownViews[shownViews.findIndex((view) => view.id === viewId) + direction];
847
+ const neighbor = stripViews[stripViews.findIndex((view) => view.id === viewId) + direction];
811
848
  if (!neighbor) return;
849
+ const swapIds = [viewId, neighbor.id];
850
+ if (currentView != null && swapIds.includes(currentView) && swapIds.some((id) => overflowViews.some((view) => view.id === id))) return;
812
851
  moveView(viewId, indexOfView(neighbor.id));
813
852
  };
814
853
  const handleAddView = async () => {
@@ -996,10 +1035,10 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
996
1035
  }, view.id);
997
1036
  }),
998
1037
  onReorderViews ? /* @__PURE__ */ jsx(SortableContext, {
999
- items: shownViews.map((view) => view.id),
1038
+ items: stripViews.map((view) => view.id),
1000
1039
  strategy: horizontalListSortingStrategy,
1001
- children: shownViews.map((view) => /* @__PURE__ */ jsx(SortableSavedViewTab, { ...getSavedViewTabProps(view) }, view.id))
1002
- }) : shownViews.map((view) => /* @__PURE__ */ jsx(SavedViewTabSlot, { ...getSavedViewTabProps(view) }, view.id)),
1040
+ children: stripViews.map((view) => /* @__PURE__ */ jsx(SortableSavedViewTab, { ...getSavedViewTabProps(view) }, view.id))
1041
+ }) : stripViews.map((view) => /* @__PURE__ */ jsx(SavedViewTabSlot, { ...getSavedViewTabProps(view) }, view.id)),
1003
1042
  canEditViews && onAddView && /* @__PURE__ */ jsx(AddViewButton, {
1004
1043
  id: ADD_VIEW_BUTTON_ID,
1005
1044
  size: "md",
@@ -1174,7 +1213,7 @@ const FilterCombobox = styled.div`
1174
1213
  `}
1175
1214
  `;
1176
1215
  const InputFilter = ({ config, compact, onActiveChange }) => {
1177
- const [value, setValue] = useState(config.value);
1216
+ const [value, setValue] = useState(config.value ?? "");
1178
1217
  const onChangeRef = useRef(config.onChange);
1179
1218
  onChangeRef.current = config.onChange;
1180
1219
  const onActiveChangeRef = useRef(onActiveChange);
@@ -1183,13 +1222,13 @@ const InputFilter = ({ config, compact, onActiveChange }) => {
1183
1222
  onActiveChangeRef.current(nextValue.length > 0);
1184
1223
  onChangeRef.current(nextValue);
1185
1224
  }, 300), []);
1186
- useEffect(() => setValue(config.value), [config.value]);
1225
+ useEffect(() => setValue(config.value ?? ""), [config.value]);
1187
1226
  useEffect(() => () => debouncedOnChange.cancel(), [debouncedOnChange]);
1188
1227
  return /* @__PURE__ */ jsx(Input_default, {
1189
1228
  "aria-label": config.name,
1190
1229
  placeholder: config.placeholder,
1191
1230
  size: compact ? "sm" : void 0,
1192
- value,
1231
+ value: value ?? "",
1193
1232
  onChange: ({ target: { value: nextValue } }) => {
1194
1233
  setValue(nextValue);
1195
1234
  debouncedOnChange(nextValue);
@@ -1201,7 +1240,7 @@ const SelectFilter = ({ config, compact, onActiveChange }) => {
1201
1240
  return /* @__PURE__ */ jsx(Select, {
1202
1241
  "aria-label": config.name,
1203
1242
  placeholder: config.placeholder ?? strings.selectFilterOption,
1204
- value: config.value,
1243
+ value: config.value ?? null,
1205
1244
  width: "auto",
1206
1245
  minWidth: 150,
1207
1246
  size: compact ? "sm" : void 0,
@@ -1382,7 +1421,7 @@ const synchronizeActiveFilters = (filters, activeFilters, filterResolver) => {
1382
1421
  ...activeFromConfig,
1383
1422
  ...retainedDefaultVisible,
1384
1423
  ...configuring
1385
- ].sort((first, second) => first.id - second.id);
1424
+ ].filter((active, index, all) => all.findIndex((other) => other.id === active.id) === index).sort((first, second) => first.id - second.id);
1386
1425
  return next.length === 0 ? [createUnsetFilter(activeFilters)] : next;
1387
1426
  };
1388
1427
  const Filter = ({ config, compact, hideFilterSelection, filterResolver }) => {
@@ -1452,7 +1491,7 @@ const FilterSelection = ({ value, disabled, compact, filterResolver }) => {
1452
1491
  width: "auto",
1453
1492
  minWidth: 120,
1454
1493
  placeholder: strings.selectFilterType,
1455
- value,
1494
+ value: value ?? null,
1456
1495
  size: compact ? "sm" : void 0,
1457
1496
  disabled,
1458
1497
  onValueChange: replaceFilter,
@@ -5504,4 +5543,4 @@ function decodeBase64(input) {
5504
5543
  //#endregion
5505
5544
  export { isNumericComparisonOperator as A, useTableControls as B, useFilterBarSize as C, getOperatorsForField as D, getDefaultOperatorForType as E, getActiveFilters as F, DataTableCompactBar as H, isFilterActive as I, resolveFilterTypeDefinition as L, isValuelessOperator as M, reconcileValueForOperator as N, getOperatorsForType as O, FiltersContainer as P, TableControlsContext as R, FILTER_SIZE_TOKENS as S, emptyValueForRule as T, ControlBar as V, EMPTY_FILTER_STATE as _, encodeFilterStateToUrlParam as a, resolveValueControl as b, FilterBar_default as c, TableViewConfiguration as d, TableViewConfigurationDropdown as f, pruneToRegistry as g, isFilterStateV2 as h, decodeFilterStateFromUrl as i, isRangeOperator as j, isCompleteDateRange as k, resolveDateRangeRuleValue as l, hasCompleteValue as m, applyFilterStateToSearchParams as n, FieldRegistry as o, useFilterStateV2 as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, TableControls as u, isEmptyState as v, NUMERIC_COMPARISON_OPERATORS as w, dateRuleIntent as x, PillShell as y, TableControlsProvider as z };
5506
5545
 
5507
- //# sourceMappingURL=TableControls-n16XKO9S.mjs.map
5546
+ //# sourceMappingURL=TableControls-C5fNNdmT.mjs.map