@elliemae/ds-shuttle-v2 3.13.0-next.4 → 3.13.1-rc.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 (163) hide show
  1. package/dist/cjs/DSShuttleV2.js +3 -2
  2. package/dist/cjs/DSShuttleV2.js.map +3 -3
  3. package/dist/cjs/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js} +12 -22
  4. package/dist/cjs/config/configureAutoCalculated.js.map +7 -0
  5. package/dist/cjs/config/itemMovementHelpers.js +1 -17
  6. package/dist/cjs/config/itemMovementHelpers.js.map +2 -2
  7. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js +6 -6
  8. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  9. package/dist/cjs/config/useShuttleV2.js +5 -4
  10. package/dist/cjs/config/useShuttleV2.js.map +2 -2
  11. package/dist/cjs/config/useStore/useStore.js +5 -14
  12. package/dist/cjs/config/useStore/useStore.js.map +2 -2
  13. package/dist/cjs/constants/index.js +0 -4
  14. package/dist/cjs/constants/index.js.map +2 -2
  15. package/dist/cjs/index.js +1 -5
  16. package/dist/cjs/index.js.map +2 -2
  17. package/dist/cjs/parts/Header.js +1 -2
  18. package/dist/cjs/parts/Header.js.map +2 -2
  19. package/dist/cjs/parts/Item/Item.js +11 -64
  20. package/dist/cjs/parts/Item/Item.js.map +3 -3
  21. package/dist/cjs/parts/Item/ItemActions/ItemActions.js +9 -10
  22. package/dist/cjs/parts/Item/ItemActions/ItemActions.js.map +2 -2
  23. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js +1 -16
  24. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  25. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js +4 -18
  26. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  27. package/dist/cjs/parts/Item/ItemMiddleSection.js +3 -4
  28. package/dist/cjs/parts/Item/ItemMiddleSection.js.map +2 -2
  29. package/dist/cjs/parts/Item/ItemSelection.js +1 -2
  30. package/dist/cjs/parts/Item/ItemSelection.js.map +2 -2
  31. package/dist/cjs/parts/Item/useItemArrowNavigation.js +0 -7
  32. package/dist/cjs/parts/Item/useItemArrowNavigation.js.map +2 -2
  33. package/dist/cjs/parts/Item/useSelectionLogic.js +1 -12
  34. package/dist/cjs/parts/Item/useSelectionLogic.js.map +2 -2
  35. package/dist/cjs/parts/MainContent.js +1 -2
  36. package/dist/cjs/parts/MainContent.js.map +2 -2
  37. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js +1 -5
  38. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
  39. package/dist/cjs/parts/Panel/bottom/LoadingMore.js +1 -5
  40. package/dist/cjs/parts/Panel/bottom/LoadingMore.js.map +2 -2
  41. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js +1 -2
  42. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
  43. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +1 -14
  44. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  45. package/dist/cjs/parts/Panel/middle/EmptyItems.js +1 -2
  46. package/dist/cjs/parts/Panel/middle/EmptyItems.js.map +2 -2
  47. package/dist/cjs/parts/Panel/middle/ItemListWrapper.js +102 -48
  48. package/dist/cjs/parts/Panel/middle/ItemListWrapper.js.map +2 -2
  49. package/dist/cjs/parts/Panel/middle/LoadingItems.js +1 -2
  50. package/dist/cjs/parts/Panel/middle/LoadingItems.js.map +2 -2
  51. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js +7 -9
  52. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  53. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js +7 -120
  54. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  55. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js +1 -2
  56. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js.map +2 -2
  57. package/dist/cjs/parts/Panel/top/PanelFilterSection.js +2 -3
  58. package/dist/cjs/parts/Panel/top/PanelFilterSection.js.map +2 -2
  59. package/dist/cjs/parts/Panel/top/SelectionHeader.js +3 -7
  60. package/dist/cjs/parts/Panel/top/SelectionHeader.js.map +2 -2
  61. package/dist/cjs/parts/PanelWrapper.js +2 -3
  62. package/dist/cjs/parts/PanelWrapper.js.map +2 -2
  63. package/dist/cjs/react-desc-prop-types.js +2 -14
  64. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  65. package/dist/esm/DSShuttleV2.js +3 -2
  66. package/dist/esm/DSShuttleV2.js.map +3 -3
  67. package/dist/esm/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js} +9 -19
  68. package/dist/esm/config/configureAutoCalculated.js.map +7 -0
  69. package/dist/esm/config/itemMovementHelpers.js +1 -17
  70. package/dist/esm/config/itemMovementHelpers.js.map +2 -2
  71. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js +6 -6
  72. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  73. package/dist/esm/config/useShuttleV2.js +5 -4
  74. package/dist/esm/config/useShuttleV2.js.map +2 -2
  75. package/dist/esm/config/useStore/useStore.js +5 -14
  76. package/dist/esm/config/useStore/useStore.js.map +2 -2
  77. package/dist/esm/constants/index.js +0 -4
  78. package/dist/esm/constants/index.js.map +2 -2
  79. package/dist/esm/index.js +1 -5
  80. package/dist/esm/index.js.map +2 -2
  81. package/dist/esm/parts/Header.js +1 -2
  82. package/dist/esm/parts/Header.js.map +2 -2
  83. package/dist/esm/parts/Item/Item.js +13 -66
  84. package/dist/esm/parts/Item/Item.js.map +2 -2
  85. package/dist/esm/parts/Item/ItemActions/ItemActions.js +9 -10
  86. package/dist/esm/parts/Item/ItemActions/ItemActions.js.map +2 -2
  87. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js +1 -16
  88. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  89. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js +4 -18
  90. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  91. package/dist/esm/parts/Item/ItemMiddleSection.js +3 -4
  92. package/dist/esm/parts/Item/ItemMiddleSection.js.map +2 -2
  93. package/dist/esm/parts/Item/ItemSelection.js +1 -2
  94. package/dist/esm/parts/Item/ItemSelection.js.map +2 -2
  95. package/dist/esm/parts/Item/useItemArrowNavigation.js +0 -7
  96. package/dist/esm/parts/Item/useItemArrowNavigation.js.map +2 -2
  97. package/dist/esm/parts/Item/useSelectionLogic.js +2 -13
  98. package/dist/esm/parts/Item/useSelectionLogic.js.map +2 -2
  99. package/dist/esm/parts/MainContent.js +1 -2
  100. package/dist/esm/parts/MainContent.js.map +2 -2
  101. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js +1 -5
  102. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
  103. package/dist/esm/parts/Panel/bottom/LoadingMore.js +1 -5
  104. package/dist/esm/parts/Panel/bottom/LoadingMore.js.map +2 -2
  105. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js +1 -2
  106. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
  107. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +1 -14
  108. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  109. package/dist/esm/parts/Panel/middle/EmptyItems.js +1 -2
  110. package/dist/esm/parts/Panel/middle/EmptyItems.js.map +2 -2
  111. package/dist/esm/parts/Panel/middle/ItemListWrapper.js +104 -50
  112. package/dist/esm/parts/Panel/middle/ItemListWrapper.js.map +2 -2
  113. package/dist/esm/parts/Panel/middle/LoadingItems.js +1 -2
  114. package/dist/esm/parts/Panel/middle/LoadingItems.js.map +2 -2
  115. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js +7 -9
  116. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  117. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js +9 -122
  118. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  119. package/dist/esm/parts/Panel/top/PanelContentTopSection.js +1 -2
  120. package/dist/esm/parts/Panel/top/PanelContentTopSection.js.map +2 -2
  121. package/dist/esm/parts/Panel/top/PanelFilterSection.js +2 -3
  122. package/dist/esm/parts/Panel/top/PanelFilterSection.js.map +2 -2
  123. package/dist/esm/parts/Panel/top/SelectionHeader.js +3 -7
  124. package/dist/esm/parts/Panel/top/SelectionHeader.js.map +2 -2
  125. package/dist/esm/parts/PanelWrapper.js +2 -3
  126. package/dist/esm/parts/PanelWrapper.js.map +2 -2
  127. package/dist/esm/react-desc-prop-types.js +2 -14
  128. package/dist/esm/react-desc-prop-types.js.map +2 -2
  129. package/package.json +11 -12
  130. package/dist/cjs/config/DSShuttleV2Definitions.js +0 -67
  131. package/dist/cjs/config/DSShuttleV2Definitions.js.map +0 -7
  132. package/dist/cjs/config/useAutoCalculated/index.js +0 -39
  133. package/dist/cjs/config/useAutoCalculated/index.js.map +0 -7
  134. package/dist/cjs/config/useAutoCalculated/useDataStructure.js.map +0 -7
  135. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js +0 -98
  136. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js.map +0 -7
  137. package/dist/cjs/parts/Dnd/DndHandle.js +0 -64
  138. package/dist/cjs/parts/Dnd/DndHandle.js.map +0 -7
  139. package/dist/cjs/parts/Dnd/DropIndicator.js +0 -88
  140. package/dist/cjs/parts/Dnd/DropIndicator.js.map +0 -7
  141. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +0 -90
  142. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +0 -7
  143. package/dist/cjs/parts/HoC/withConditionalUseSortable.js +0 -38
  144. package/dist/cjs/parts/HoC/withConditionalUseSortable.js.map +0 -7
  145. package/dist/cjs/parts/Item/ItemOverlay.js +0 -61
  146. package/dist/cjs/parts/Item/ItemOverlay.js.map +0 -7
  147. package/dist/esm/config/DSShuttleV2Definitions.js +0 -41
  148. package/dist/esm/config/DSShuttleV2Definitions.js.map +0 -7
  149. package/dist/esm/config/useAutoCalculated/index.js +0 -13
  150. package/dist/esm/config/useAutoCalculated/index.js.map +0 -7
  151. package/dist/esm/config/useAutoCalculated/useDataStructure.js.map +0 -7
  152. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js +0 -72
  153. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js.map +0 -7
  154. package/dist/esm/parts/Dnd/DndHandle.js +0 -38
  155. package/dist/esm/parts/Dnd/DndHandle.js.map +0 -7
  156. package/dist/esm/parts/Dnd/DropIndicator.js +0 -62
  157. package/dist/esm/parts/Dnd/DropIndicator.js.map +0 -7
  158. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +0 -64
  159. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +0 -7
  160. package/dist/esm/parts/HoC/withConditionalUseSortable.js +0 -12
  161. package/dist/esm/parts/HoC/withConditionalUseSortable.js.map +0 -7
  162. package/dist/esm/parts/Item/ItemOverlay.js +0 -35
  163. package/dist/esm/parts/Item/ItemOverlay.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Item/ItemActions/ItemActions.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2, BUTTON_SIZES } from '@elliemae/ds-button';\nimport { ArrowShortReturn, ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useActionsHandlers } from './useActionsHandlers';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledItemActions = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_ACTIONS_WRAPPER })``;\nconst StyledItemActionWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_ACTION_WRAPPER })``;\nconst StyledButton = styled(DSButtonV2, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_ACTION_BTN })`\n height: 22px !important;\n svg {\n fill: brand-600;\n }\n :disabled svg {\n fill: neutral-200 !important;\n }\n`;\nconst StyledDrilldownIcon = styled(ArrowShortReturn, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.ITEM_ACTION_BTN_DRILLDOWN_ICON,\n})``;\nconst StyledCloseMediumIcon = styled(CloseMedium, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.ITEM_ACTION_BTN_TO_SOURCE_ICON,\n})``;\nconst StyledArrowShortRightIcon = styled(ArrowShortRight, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.ITEM_ACTION_BTN_TO_DESTINATION_ICON,\n})``;\n\nconst actionsCols = ['20px', '20px'];\n\nexport const ItemActions = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n // withActions is calculated in /src/config/configureAutoCalculated.ts\n const { original, withActions } = item;\n const { preventDrilldown, preventMove } = original;\n const { shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove } =\n useInnerRefHandlers(itemMeta);\n const { handleClickDrilldown, handleClickSingleMove } = useActionsHandlers(itemMeta);\n\n return (\n <StyledItemActions cols={actionsCols} gutter=\"xxs\" pl=\"xs\" pr=\"xxs\" alignItems=\"center\">\n {withActions ? (\n <>\n <StyledItemActionWrapper>\n <StyledButton\n buttonType=\"icon\"\n onClick={handleClickDrilldown}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerDrilldown}\n tabIndex={shouldFocusDrilldown && !preventDrilldown ? 0 : -1}\n disabled={preventDrilldown === true}\n >\n <StyledDrilldownIcon width=\"20px\" height=\"20px\" />\n </StyledButton>\n </StyledItemActionWrapper>\n <StyledItemActionWrapper>\n <StyledButton\n buttonType=\"icon\"\n onClick={handleClickSingleMove}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerMove}\n tabIndex={shouldFocusMove && !preventMove ? 0 : -1}\n disabled={preventMove === true}\n >\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"20px\" height=\"20px\" />\n ) : (\n <StyledArrowShortRightIcon width=\"20px\" height=\"20px\" />\n )}\n </StyledButton>\n </StyledItemActionWrapper>\n </>\n ) : (\n // this is a place-holder used for mantainting the grid spacing\n <>\n <div />\n <div />\n </>\n )}\n </StyledItemActions>\n );\n});\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACgDf,mBAUM,KAVN;AAhDR,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,YAAY,oBAAoB;AACzC,SAAS,kBAAkB,iBAAiB,mBAAmB;AAE/D,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,oBAAoB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,qBAAqB,CAAC;AAC7G,MAAM,0BAA0B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,oBAAoB,CAAC;AAClH,MAAM,eAAe,OAAO,YAAY,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASzG,MAAM,sBAAsB,OAAO,kBAAkB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AACD,MAAM,wBAAwB,OAAO,aAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AACD,MAAM,4BAA4B,OAAO,iBAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAED,MAAM,cAAc,CAAC,QAAQ,MAAM;AAE5B,MAAM,cAAcA,OAAM,KAAK,CAAC,aAAoC;AACzE,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,EAAE,UAAU,YAAY,IAAI;AAClC,QAAM,EAAE,kBAAkB,YAAY,IAAI;AAC1C,QAAM,EAAE,sBAAsB,iBAAiB,0BAA0B,oBAAoB,IAC3F,oBAAoB,QAAQ;AAC9B,QAAM,EAAE,sBAAsB,sBAAsB,IAAI,mBAAmB,QAAQ;AAEnF,SACE,oBAAC,qBAAkB,MAAM,aAAa,QAAO,OAAM,IAAG,MAAK,IAAG,OAAM,YAAW,UAC5E,wBACC,iCACE;AAAA,wBAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,aAAa;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,wBAAwB,CAAC,mBAAmB,IAAI;AAAA,QAC1D,UAAU,qBAAqB;AAAA,QAE/B,8BAAC,uBAAoB,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,IAClD,GACF;AAAA,IACA,oBAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,aAAa;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,mBAAmB,CAAC,cAAc,IAAI;AAAA,QAChD,UAAU,gBAAgB;AAAA,QAEzB,+BACC,oBAAC,yBAAsB,OAAM,QAAO,QAAO,QAAO,IAElD,oBAAC,6BAA0B,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,IAE1D,GACF;AAAA,KACF,IAGA,iCACE;AAAA,wBAAC,SAAI;AAAA,IACL,oBAAC,SAAI;AAAA,KACP,GAEJ;AAEJ,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2, BUTTON_SIZES } from '@elliemae/ds-button';\nimport { ArrowShortReturn, ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useActionsHandlers } from './useActionsHandlers';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\n\nconst StyledItemActions = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-actions-wrapper' })``;\nconst StyledItemActionWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-action-wrapper' })``;\nconst StyledButton = styled(DSButtonV2, { name: 'ds-shuttle-v2', slot: 'item-action-btn' })`\n height: 22px !important;\n svg {\n fill: brand-600;\n }\n :disabled svg {\n fill: neutral-200 !important;\n }\n`;\nconst StyledDrilldownIcon = styled(ArrowShortReturn, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-drilldown-icon',\n})``;\nconst StyledCloseMediumIcon = styled(CloseMedium, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-to-source-icon',\n})``;\nconst StyledArrowShortRightIcon = styled(ArrowShortRight, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-to-destination-icon',\n})``;\n\nconst actionsCols = ['20px', '20px'];\n\nexport const ItemActions = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n // withActions is calculated in /src/config/configureAutoCalculated.ts\n const { original, withActions } = item;\n const { preventDrilldown, preventMove } = original;\n const { shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove } =\n useInnerRefHandlers(itemMeta);\n const { handleClickDrilldown, handleClickSingleMove } = useActionsHandlers(itemMeta);\n\n return (\n <StyledItemActions cols={actionsCols} gutter=\"xxs\" pl=\"xs\" pr=\"xxs\" alignItems=\"center\">\n {withActions ? (\n <>\n <StyledItemActionWrapper>\n <StyledButton\n buttonType=\"icon\"\n onClick={handleClickDrilldown}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerDrilldown}\n tabIndex={shouldFocusDrilldown && !preventDrilldown ? 0 : -1}\n disabled={preventDrilldown === true}\n >\n <StyledDrilldownIcon width=\"20px\" height=\"20px\" />\n </StyledButton>\n </StyledItemActionWrapper>\n <StyledItemActionWrapper>\n <StyledButton\n buttonType=\"icon\"\n onClick={handleClickSingleMove}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerMove}\n tabIndex={shouldFocusMove && !preventMove ? 0 : -1}\n disabled={preventMove === true}\n >\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"20px\" height=\"20px\" />\n ) : (\n <StyledArrowShortRightIcon width=\"20px\" height=\"20px\" />\n )}\n </StyledButton>\n </StyledItemActionWrapper>\n </>\n ) : (\n // this is a place-holder used for mantainting the grid spacing\n <>\n <div />\n <div />\n </>\n )}\n </StyledItemActions>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC+Cf,mBAUM,KAVN;AA/CR,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,YAAY,oBAAoB;AACzC,SAAS,kBAAkB,iBAAiB,mBAAmB;AAE/D,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AAEpC,MAAM,oBAAoB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,uBAAuB,CAAC;AAC9F,MAAM,0BAA0B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,sBAAsB,CAAC;AACnG,MAAM,eAAe,OAAO,YAAY,EAAE,MAAM,iBAAiB,MAAM,kBAAkB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS1F,MAAM,sBAAsB,OAAO,kBAAkB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,wBAAwB,OAAO,aAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,4BAA4B,OAAO,iBAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,cAAc,CAAC,QAAQ,MAAM;AAE5B,MAAM,cAAcA,OAAM,KAAK,CAAC,aAAoC;AACzE,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,EAAE,UAAU,YAAY,IAAI;AAClC,QAAM,EAAE,kBAAkB,YAAY,IAAI;AAC1C,QAAM,EAAE,sBAAsB,iBAAiB,0BAA0B,oBAAoB,IAC3F,oBAAoB,QAAQ;AAC9B,QAAM,EAAE,sBAAsB,sBAAsB,IAAI,mBAAmB,QAAQ;AAEnF,SACE,oBAAC,qBAAkB,MAAM,aAAa,QAAO,OAAM,IAAG,MAAK,IAAG,OAAM,YAAW,UAC5E,wBACC,iCACE;AAAA,wBAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,aAAa;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,wBAAwB,CAAC,mBAAmB,IAAI;AAAA,QAC1D,UAAU,qBAAqB;AAAA,QAE/B,8BAAC,uBAAoB,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,IAClD,GACF;AAAA,IACA,oBAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,aAAa;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,mBAAmB,CAAC,cAAc,IAAI;AAAA,QAChD,UAAU,gBAAgB;AAAA,QAEzB,+BACC,oBAAC,yBAAsB,OAAM,QAAO,QAAO,QAAO,IAElD,oBAAC,6BAA0B,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,IAE1D,GACF;AAAA,KACF,IAGA,iCACE;AAAA,wBAAC,SAAI;AAAA,IACL,oBAAC,SAAI;AAAA,KACP,GAEJ;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -11,9 +11,6 @@ const useActionsLogicHandlers = (itemMeta) => {
11
11
  const currOnChange = usePropsStore(
12
12
  (state) => isDestinationPanel ? state.onDestinationChange : state.onSourceChange
13
13
  );
14
- const currOnRemove = usePropsStore(
15
- (state) => isDestinationPanel ? state.onDestinationRemove : state.onSourceRemove
16
- );
17
14
  const currDrilldown = usePropsStore(
18
15
  (state) => isDestinationPanel ? state.onDestinationDrilldown : state.onSourceDrilldown
19
16
  );
@@ -21,7 +18,6 @@ const useActionsLogicHandlers = (itemMeta) => {
21
18
  const otherPanelOnChange = usePropsStore(
22
19
  (state) => isDestinationPanel ? state.onSourceChange : state.onDestinationChange
23
20
  );
24
- const otherPanelOnAdd = usePropsStore((state) => isDestinationPanel ? state.onSourceAdd : state.onDestinationAdd);
25
21
  const handleDrilldown = React2.useCallback(
26
22
  (event) => {
27
23
  event.preventDefault();
@@ -40,21 +36,10 @@ const useActionsLogicHandlers = (itemMeta) => {
40
36
  currWithSoftDelete,
41
37
  otherData
42
38
  });
43
- currOnRemove([item.original], { event });
44
- otherPanelOnAdd([item.original], { event });
45
39
  currOnChange(newCurrData, { item: item.original, event });
46
40
  otherPanelOnChange(newOtherData, { item: item.original, event });
47
41
  },
48
- [
49
- currData,
50
- currOnChange,
51
- currOnRemove,
52
- currWithSoftDelete,
53
- item.original,
54
- otherData,
55
- otherPanelOnAdd,
56
- otherPanelOnChange
57
- ]
42
+ [currData, currOnChange, currWithSoftDelete, item, otherData, otherPanelOnChange]
58
43
  );
59
44
  return React2.useMemo(() => ({ handleDrilldown, handleSingleMove }), [handleDrilldown, handleSingleMove]);
60
45
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Item/ItemActions/useActionsLogicHandlers.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { usePropsStore } from '../../../config/useStore';\nimport { getNewDatasWithItemMoved } from '../../../config/itemMovementHelpers';\n\nexport const useActionsLogicHandlers = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n\n const currData = usePropsStore((state) => (isDestinationPanel ? state.destinationData : state.sourceData));\n const currWithSoftDelete = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithSoftDelete : state.sourceWithSoftDelete,\n );\n const currOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationChange : state.onSourceChange,\n );\n const currOnRemove = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationRemove : state.onSourceRemove,\n );\n\n const currDrilldown = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationDrilldown : state.onSourceDrilldown,\n );\n\n const otherData = usePropsStore((state) => (isDestinationPanel ? state.sourceData : state.destinationData));\n const otherPanelOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onSourceChange : state.onDestinationChange,\n );\n const otherPanelOnAdd = usePropsStore((state) => (isDestinationPanel ? state.onSourceAdd : state.onDestinationAdd));\n\n const handleDrilldown = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n currDrilldown(item.original, { event });\n },\n [currDrilldown, item],\n );\n\n const handleSingleMove = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const { newCurrData, newOtherData } = getNewDatasWithItemMoved({\n item: item.original,\n currData,\n currWithSoftDelete,\n otherData,\n });\n currOnRemove([item.original], { event });\n otherPanelOnAdd([item.original], { event });\n\n currOnChange(newCurrData, { item: item.original, event });\n otherPanelOnChange(newOtherData, { item: item.original, event });\n },\n [\n currData,\n currOnChange,\n currOnRemove,\n currWithSoftDelete,\n item.original,\n otherData,\n otherPanelOnAdd,\n otherPanelOnChange,\n ],\n );\n return React.useMemo(() => ({ handleDrilldown, handleSingleMove }), [handleDrilldown, handleSingleMove]);\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAElB,SAAS,qBAAqB;AAC9B,SAAS,gCAAgC;AAElC,MAAM,0BAA0B,CAAC,aAAoC;AAC1E,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,WAAW,cAAc,CAAC,UAAW,qBAAqB,MAAM,kBAAkB,MAAM,UAAW;AACzG,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,sBAAsB,MAAM;AAAA,EACzD;AACA,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,sBAAsB,MAAM;AAAA,EACzD;AAEA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,yBAAyB,MAAM;AAAA,EAC5D;AAEA,QAAM,YAAY,cAAc,CAAC,UAAW,qBAAqB,MAAM,aAAa,MAAM,eAAgB;AAC1G,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,iBAAiB,MAAM;AAAA,EACpD;AACA,QAAM,kBAAkB,cAAc,CAAC,UAAW,qBAAqB,MAAM,cAAc,MAAM,gBAAiB;AAElH,QAAM,kBAAkBA,OAAM;AAAA,IAC5B,CAAC,UAAwF;AACvF,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,oBAAc,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,IACxC;AAAA,IACA,CAAC,eAAe,IAAI;AAAA,EACtB;AAEA,QAAM,mBAAmBA,OAAM;AAAA,IAC7B,CAAC,UAAwF;AACvF,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,YAAM,EAAE,aAAa,aAAa,IAAI,yBAAyB;AAAA,QAC7D,MAAM,KAAK;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,mBAAa,CAAC,KAAK,QAAQ,GAAG,EAAE,MAAM,CAAC;AACvC,sBAAgB,CAAC,KAAK,QAAQ,GAAG,EAAE,MAAM,CAAC;AAE1C,mBAAa,aAAa,EAAE,MAAM,KAAK,UAAU,MAAM,CAAC;AACxD,yBAAmB,cAAc,EAAE,MAAM,KAAK,UAAU,MAAM,CAAC;AAAA,IACjE;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAOA,OAAM,QAAQ,OAAO,EAAE,iBAAiB,iBAAiB,IAAI,CAAC,iBAAiB,gBAAgB,CAAC;AACzG;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { usePropsStore } from '../../../config/useStore';\nimport { getNewDatasWithItemMoved } from '../../../config/itemMovementHelpers';\n\nexport const useActionsLogicHandlers = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n\n const currData = usePropsStore((state) => (isDestinationPanel ? state.destinationData : state.sourceData));\n const currWithSoftDelete = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithSoftDelete : state.sourceWithSoftDelete,\n );\n const currOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationChange : state.onSourceChange,\n );\n const currDrilldown = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationDrilldown : state.onSourceDrilldown,\n );\n\n const otherData = usePropsStore((state) => (isDestinationPanel ? state.sourceData : state.destinationData));\n const otherPanelOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onSourceChange : state.onDestinationChange,\n );\n\n const handleDrilldown = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n currDrilldown(item.original, { event });\n },\n [currDrilldown, item],\n );\n\n const handleSingleMove = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const { newCurrData, newOtherData } = getNewDatasWithItemMoved({\n item: item.original,\n currData,\n currWithSoftDelete,\n otherData,\n });\n\n currOnChange(newCurrData, { item: item.original, event });\n otherPanelOnChange(newOtherData, { item: item.original, event });\n },\n [currData, currOnChange, currWithSoftDelete, item, otherData, otherPanelOnChange],\n );\n return React.useMemo(() => ({ handleDrilldown, handleSingleMove }), [handleDrilldown, handleSingleMove]);\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAElB,SAAS,qBAAqB;AAC9B,SAAS,gCAAgC;AAElC,MAAM,0BAA0B,CAAC,aAAoC;AAC1E,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,WAAW,cAAc,CAAC,UAAW,qBAAqB,MAAM,kBAAkB,MAAM,UAAW;AACzG,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,sBAAsB,MAAM;AAAA,EACzD;AACA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,yBAAyB,MAAM;AAAA,EAC5D;AAEA,QAAM,YAAY,cAAc,CAAC,UAAW,qBAAqB,MAAM,aAAa,MAAM,eAAgB;AAC1G,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,iBAAiB,MAAM;AAAA,EACpD;AAEA,QAAM,kBAAkBA,OAAM;AAAA,IAC5B,CAAC,UAAwF;AACvF,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,oBAAc,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,IACxC;AAAA,IACA,CAAC,eAAe,IAAI;AAAA,EACtB;AAEA,QAAM,mBAAmBA,OAAM;AAAA,IAC7B,CAAC,UAAwF;AACvF,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,YAAM,EAAE,aAAa,aAAa,IAAI,yBAAyB;AAAA,QAC7D,MAAM,KAAK;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,mBAAa,aAAa,EAAE,MAAM,KAAK,UAAU,MAAM,CAAC;AACxD,yBAAmB,cAAc,EAAE,MAAM,KAAK,UAAU,MAAM,CAAC;AAAA,IACjE;AAAA,IACA,CAAC,UAAU,cAAc,oBAAoB,MAAM,WAAW,kBAAkB;AAAA,EAClF;AACA,SAAOA,OAAM,QAAQ,OAAO,EAAE,iBAAiB,iBAAiB,IAAI,CAAC,iBAAiB,gBAAgB,CAAC;AACzG;",
6
6
  "names": ["React"]
7
7
  }
@@ -8,11 +8,10 @@ const useInnerRefHandlers = ({ item, isDestinationPanel }) => {
8
8
  const focusItemAction = useInternalStore((state) => state.focusItemAction);
9
9
  const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL_ITEM : REGIONS_FOCUSES.SOURCE_PANEL_ITEM;
10
10
  const currItemId = item.original.id;
11
- const { shouldFocusDrilldown, shouldFocusMove, shouldFocusDnd } = React2.useMemo(
11
+ const { shouldFocusDrilldown, shouldFocusMove } = React2.useMemo(
12
12
  () => ({
13
13
  shouldFocusDrilldown: focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.DRILLDOWN_BTN,
14
- shouldFocusMove: focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.MOVE_BTN,
15
- shouldFocusDnd: focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.DRAG_N_DROP
14
+ shouldFocusMove: focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.MOVE_BTN
16
15
  }),
17
16
  [currItemId, currRegion, focusItem, focusItemAction, focusRegion]
18
17
  );
@@ -30,22 +29,9 @@ const useInnerRefHandlers = ({ item, isDestinationPanel }) => {
30
29
  },
31
30
  [shouldFocusMove]
32
31
  );
33
- const innerRefHandlerDnd = React2.useCallback(
34
- (node) => {
35
- if (shouldFocusDnd)
36
- node?.focus();
37
- },
38
- [shouldFocusDnd]
39
- );
40
32
  return React2.useMemo(
41
- () => ({
42
- shouldFocusDrilldown,
43
- shouldFocusMove,
44
- innerRefHandlerDnd,
45
- innerRefHandlerDrilldown,
46
- innerRefHandlerMove
47
- }),
48
- [innerRefHandlerDrilldown, innerRefHandlerDnd, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove]
33
+ () => ({ shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove }),
34
+ [innerRefHandlerDrilldown, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove]
49
35
  );
50
36
  };
51
37
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Item/ItemActions/useInnerRefHandlers.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInternalStore } from '../../../config/useStore';\nimport { REGIONS_FOCUSES, ACTIONS_FOCUSES } from '../../../constants';\n\nexport const useInnerRefHandlers = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\n const focusRegion = useInternalStore((state) => state.focusRegion);\n const focusItem = useInternalStore((state) => state.focusItem);\n const focusItemAction = useInternalStore((state) => state.focusItemAction);\n const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL_ITEM : REGIONS_FOCUSES.SOURCE_PANEL_ITEM;\n const currItemId = item.original.id;\n const { shouldFocusDrilldown, shouldFocusMove, shouldFocusDnd } = React.useMemo(\n () => ({\n shouldFocusDrilldown:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.DRILLDOWN_BTN,\n shouldFocusMove:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.MOVE_BTN,\n shouldFocusDnd:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.DRAG_N_DROP,\n }),\n [currItemId, currRegion, focusItem, focusItemAction, focusRegion],\n );\n const innerRefHandlerDrilldown = React.useCallback(\n (node: HTMLButtonElement) => {\n if (shouldFocusDrilldown) node?.focus();\n },\n [shouldFocusDrilldown],\n );\n const innerRefHandlerMove = React.useCallback(\n (node: HTMLButtonElement) => {\n if (shouldFocusMove) node?.focus();\n },\n [shouldFocusMove],\n );\n const innerRefHandlerDnd = React.useCallback(\n (node: HTMLDivElement | null) => {\n if (shouldFocusDnd) node?.focus();\n },\n [shouldFocusDnd],\n );\n return React.useMemo(\n () => ({\n shouldFocusDrilldown,\n shouldFocusMove,\n innerRefHandlerDnd,\n innerRefHandlerDrilldown,\n innerRefHandlerMove,\n }),\n [innerRefHandlerDrilldown, innerRefHandlerDnd, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove],\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAElB,SAAS,wBAAwB;AACjC,SAAS,iBAAiB,uBAAuB;AAE1C,MAAM,sBAAsB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AAC1F,QAAM,cAAc,iBAAiB,CAAC,UAAU,MAAM,WAAW;AACjE,QAAM,YAAY,iBAAiB,CAAC,UAAU,MAAM,SAAS;AAC7D,QAAM,kBAAkB,iBAAiB,CAAC,UAAU,MAAM,eAAe;AACzE,QAAM,aAAa,qBAAqB,gBAAgB,yBAAyB,gBAAgB;AACjG,QAAM,aAAa,KAAK,SAAS;AACjC,QAAM,EAAE,sBAAsB,iBAAiB,eAAe,IAAIA,OAAM;AAAA,IACtE,OAAO;AAAA,MACL,sBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,gBAAgB;AAAA,MAChG,iBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,gBAAgB;AAAA,MAChG,gBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,gBAAgB;AAAA,IAClG;AAAA,IACA,CAAC,YAAY,YAAY,WAAW,iBAAiB,WAAW;AAAA,EAClE;AACA,QAAM,2BAA2BA,OAAM;AAAA,IACrC,CAAC,SAA4B;AAC3B,UAAI;AAAsB,cAAM,MAAM;AAAA,IACxC;AAAA,IACA,CAAC,oBAAoB;AAAA,EACvB;AACA,QAAM,sBAAsBA,OAAM;AAAA,IAChC,CAAC,SAA4B;AAC3B,UAAI;AAAiB,cAAM,MAAM;AAAA,IACnC;AAAA,IACA,CAAC,eAAe;AAAA,EAClB;AACA,QAAM,qBAAqBA,OAAM;AAAA,IAC/B,CAAC,SAAgC;AAC/B,UAAI;AAAgB,cAAM,MAAM;AAAA,IAClC;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AACA,SAAOA,OAAM;AAAA,IACX,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,0BAA0B,oBAAoB,qBAAqB,sBAAsB,eAAe;AAAA,EAC3G;AACF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInternalStore } from '../../../config/useStore';\nimport { REGIONS_FOCUSES, ACTIONS_FOCUSES } from '../../../constants';\n\nexport const useInnerRefHandlers = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\n const focusRegion = useInternalStore((state) => state.focusRegion);\n const focusItem = useInternalStore((state) => state.focusItem);\n const focusItemAction = useInternalStore((state) => state.focusItemAction);\n const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL_ITEM : REGIONS_FOCUSES.SOURCE_PANEL_ITEM;\n const currItemId = item.original.id;\n const { shouldFocusDrilldown, shouldFocusMove } = React.useMemo(\n () => ({\n shouldFocusDrilldown:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.DRILLDOWN_BTN,\n shouldFocusMove:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.MOVE_BTN,\n }),\n [currItemId, currRegion, focusItem, focusItemAction, focusRegion],\n );\n const innerRefHandlerDrilldown = React.useCallback(\n (node: HTMLButtonElement) => {\n if (shouldFocusDrilldown) node?.focus();\n },\n [shouldFocusDrilldown],\n );\n const innerRefHandlerMove = React.useCallback(\n (node: HTMLButtonElement) => {\n if (shouldFocusMove) node?.focus();\n },\n [shouldFocusMove],\n );\n return React.useMemo(\n () => ({ shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove }),\n [innerRefHandlerDrilldown, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove],\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAElB,SAAS,wBAAwB;AACjC,SAAS,iBAAiB,uBAAuB;AAE1C,MAAM,sBAAsB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AAC1F,QAAM,cAAc,iBAAiB,CAAC,UAAU,MAAM,WAAW;AACjE,QAAM,YAAY,iBAAiB,CAAC,UAAU,MAAM,SAAS;AAC7D,QAAM,kBAAkB,iBAAiB,CAAC,UAAU,MAAM,eAAe;AACzE,QAAM,aAAa,qBAAqB,gBAAgB,yBAAyB,gBAAgB;AACjG,QAAM,aAAa,KAAK,SAAS;AACjC,QAAM,EAAE,sBAAsB,gBAAgB,IAAIA,OAAM;AAAA,IACtD,OAAO;AAAA,MACL,sBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,gBAAgB;AAAA,MAChG,iBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,gBAAgB;AAAA,IAClG;AAAA,IACA,CAAC,YAAY,YAAY,WAAW,iBAAiB,WAAW;AAAA,EAClE;AACA,QAAM,2BAA2BA,OAAM;AAAA,IACrC,CAAC,SAA4B;AAC3B,UAAI;AAAsB,cAAM,MAAM;AAAA,IACxC;AAAA,IACA,CAAC,oBAAoB;AAAA,EACvB;AACA,QAAM,sBAAsBA,OAAM;AAAA,IAChC,CAAC,SAA4B;AAC3B,UAAI;AAAiB,cAAM,MAAM;AAAA,IACnC;AAAA,IACA,CAAC,eAAe;AAAA,EAClB;AACA,SAAOA,OAAM;AAAA,IACX,OAAO,EAAE,sBAAsB,iBAAiB,0BAA0B,oBAAoB;AAAA,IAC9F,CAAC,0BAA0B,qBAAqB,sBAAsB,eAAe;AAAA,EACvF;AACF;",
6
6
  "names": ["React"]
7
7
  }
@@ -4,14 +4,13 @@ import React2 from "react";
4
4
  import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
6
  import { DSTypography } from "@elliemae/ds-typography";
7
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../config/DSShuttleV2Definitions";
8
- const IconWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_ICON_WRAPPER })`
7
+ const IconWrapper = styled(Grid, { name: "ds-shuttle-v2", slot: "item-icon-wrapper" })`
9
8
  min-height: 1rem;
10
9
  `;
11
- const LabelWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_LABEL_WRAPPER })`
10
+ const LabelWrapper = styled(Grid, { name: "ds-shuttle-v2", slot: "item-label-wrapper" })`
12
11
  min-height: 1rem;
13
12
  `;
14
- const MidSection = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_MIDSECTION_WRAPPER })`
13
+ const MidSection = styled(Grid, { name: "ds-shuttle-v2", slot: "item-midsection-wrapper" })`
15
14
  min-height: 1rem;
16
15
  ${(props) => {
17
16
  if (props.$softDeleted)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Item/ItemMiddleSection.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSTypography } from '@elliemae/ds-typography';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../config/DSShuttleV2Definitions';\n\nconst IconWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_ICON_WRAPPER })`\n min-height: 1rem;\n`;\nconst LabelWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_LABEL_WRAPPER })`\n min-height: 1rem;\n`;\nconst MidSection = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_MIDSECTION_WRAPPER })`\n min-height: 1rem;\n ${(props) => {\n if (props.$softDeleted)\n return `\n color: ${props.theme.colors.neutral[500]};\n svg {\n fill: ${props.theme.colors.neutral[400]};\n }\n `;\n return '';\n }};\n`;\nconst customMidSectionCols = ['1fr'];\nconst customMidSectionRows = ['1fr'];\n\nconst withSubtitleRows = ['auto', 'auto'];\nconst TextSection = React.memo((props: DSShuttleV2T.ItemMeta) => {\n const { label, subtitle } = props.item.original;\n if (subtitle === undefined)\n return (\n <LabelWrapper alignItems=\"center\">\n <DSTypography variant=\"b1\">{label}</DSTypography>\n </LabelWrapper>\n );\n return (\n <Grid alignItems=\"center\" rows={withSubtitleRows} gutter=\"1px\">\n <DSTypography variant=\"b1\">{label}</DSTypography>\n <DSTypography variant=\"b4\">{subtitle}</DSTypography>\n </Grid>\n );\n});\n\nexport const ItemMiddleSection = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item } = itemMeta;\n const { original } = item;\n const { Icon, CustomRenderer, softDeleted } = original;\n const cols = React.useMemo(() => {\n // if CustomRenderer is defined, shortcircuit\n if (CustomRenderer) return [];\n const dynamicCols = [];\n if (Icon) dynamicCols.push('auto');\n dynamicCols.push('1fr');\n return dynamicCols;\n }, [CustomRenderer, Icon]);\n\n if (CustomRenderer)\n return (\n <MidSection cols={customMidSectionCols} rows={customMidSectionRows} $softDeleted={softDeleted}>\n <CustomRenderer {...itemMeta} />\n </MidSection>\n );\n\n return (\n <MidSection cols={cols} alignItems=\"center\" ml=\"xxs\" $softDeleted={softDeleted}>\n {Icon ? (\n <IconWrapper alignItems=\"center\" mr=\"xxs\">\n <Icon {...itemMeta} />\n </IconWrapper>\n ) : null}\n <TextSection {...itemMeta} />\n </MidSection>\n );\n});\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACmCf,cAIJ,YAJI;AAnCR,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAE7B,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,cAAc,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,kBAAkB,CAAC;AAAA;AAAA;AAGpG,MAAM,eAAe,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,mBAAmB,CAAC;AAAA;AAAA;AAGtG,MAAM,aAAa,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,wBAAwB,CAAC;AAAA;AAAA,IAErG,CAAC,UAAU;AACX,MAAI,MAAM;AACR,WAAO;AAAA,eACE,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAE1B,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAGvC,SAAO;AACT;AAAA;AAEF,MAAM,uBAAuB,CAAC,KAAK;AACnC,MAAM,uBAAuB,CAAC,KAAK;AAEnC,MAAM,mBAAmB,CAAC,QAAQ,MAAM;AACxC,MAAM,cAAcA,OAAM,KAAK,CAAC,UAAiC;AAC/D,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,KAAK;AACvC,MAAI,aAAa;AACf,WACE,oBAAC,gBAAa,YAAW,UACvB,8BAAC,gBAAa,SAAQ,MAAM,iBAAM,GACpC;AAEJ,SACE,qBAAC,QAAK,YAAW,UAAS,MAAM,kBAAkB,QAAO,OACvD;AAAA,wBAAC,gBAAa,SAAQ,MAAM,iBAAM;AAAA,IAClC,oBAAC,gBAAa,SAAQ,MAAM,oBAAS;AAAA,KACvC;AAEJ,CAAC;AAEM,MAAM,oBAAoBA,OAAM,KAAK,CAAC,aAAoC;AAC/E,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,EAAE,MAAM,gBAAgB,YAAY,IAAI;AAC9C,QAAM,OAAOA,OAAM,QAAQ,MAAM;AAE/B,QAAI;AAAgB,aAAO,CAAC;AAC5B,UAAM,cAAc,CAAC;AACrB,QAAI;AAAM,kBAAY,KAAK,MAAM;AACjC,gBAAY,KAAK,KAAK;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,gBAAgB,IAAI,CAAC;AAEzB,MAAI;AACF,WACE,oBAAC,cAAW,MAAM,sBAAsB,MAAM,sBAAsB,cAAc,aAChF,8BAAC,kBAAgB,GAAG,UAAU,GAChC;AAGJ,SACE,qBAAC,cAAW,MAAY,YAAW,UAAS,IAAG,OAAM,cAAc,aAChE;AAAA,WACC,oBAAC,eAAY,YAAW,UAAS,IAAG,OAClC,8BAAC,QAAM,GAAG,UAAU,GACtB,IACE;AAAA,IACJ,oBAAC,eAAa,GAAG,UAAU;AAAA,KAC7B;AAEJ,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSTypography } from '@elliemae/ds-typography';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\n\nconst IconWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-icon-wrapper' })`\n min-height: 1rem;\n`;\nconst LabelWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-label-wrapper' })`\n min-height: 1rem;\n`;\nconst MidSection = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-midsection-wrapper' })`\n min-height: 1rem;\n ${(props) => {\n if (props.$softDeleted)\n return `\n color: ${props.theme.colors.neutral[500]};\n svg {\n fill: ${props.theme.colors.neutral[400]};\n }\n `;\n return '';\n }};\n`;\nconst customMidSectionCols = ['1fr'];\nconst customMidSectionRows = ['1fr'];\n\nconst withSubtitleRows = ['auto', 'auto'];\nconst TextSection = React.memo((props: DSShuttleV2T.ItemMeta) => {\n const { label, subtitle } = props.item.original;\n if (subtitle === undefined)\n return (\n <LabelWrapper alignItems=\"center\">\n <DSTypography variant=\"b1\">{label}</DSTypography>\n </LabelWrapper>\n );\n return (\n <Grid alignItems=\"center\" rows={withSubtitleRows} gutter=\"1px\">\n <DSTypography variant=\"b1\">{label}</DSTypography>\n <DSTypography variant=\"b4\">{subtitle}</DSTypography>\n </Grid>\n );\n});\n\nexport const ItemMiddleSection = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item } = itemMeta;\n const { original } = item;\n const { Icon, CustomRenderer, softDeleted } = original;\n const cols = React.useMemo(() => {\n // if CustomRenderer is defined, shortcircuit\n if (CustomRenderer) return [];\n const dynamicCols = [];\n if (Icon) dynamicCols.push('auto');\n dynamicCols.push('1fr');\n return dynamicCols;\n }, [CustomRenderer, Icon]);\n\n if (CustomRenderer)\n return (\n <MidSection cols={customMidSectionCols} rows={customMidSectionRows} $softDeleted={softDeleted}>\n <CustomRenderer {...itemMeta} />\n </MidSection>\n );\n\n return (\n <MidSection cols={cols} alignItems=\"center\" ml=\"xxs\" $softDeleted={softDeleted}>\n {Icon ? (\n <IconWrapper alignItems=\"center\" mr=\"xxs\">\n <Icon {...itemMeta} />\n </IconWrapper>\n ) : null}\n <TextSection {...itemMeta} />\n </MidSection>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACkCf,cAIJ,YAJI;AAlCR,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAG7B,MAAM,cAAc,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,oBAAoB,CAAC;AAAA;AAAA;AAGrF,MAAM,eAAe,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,qBAAqB,CAAC;AAAA;AAAA;AAGvF,MAAM,aAAa,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,0BAA0B,CAAC;AAAA;AAAA,IAEtF,CAAC,UAAU;AACX,MAAI,MAAM;AACR,WAAO;AAAA,eACE,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAE1B,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAGvC,SAAO;AACT;AAAA;AAEF,MAAM,uBAAuB,CAAC,KAAK;AACnC,MAAM,uBAAuB,CAAC,KAAK;AAEnC,MAAM,mBAAmB,CAAC,QAAQ,MAAM;AACxC,MAAM,cAAcA,OAAM,KAAK,CAAC,UAAiC;AAC/D,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,KAAK;AACvC,MAAI,aAAa;AACf,WACE,oBAAC,gBAAa,YAAW,UACvB,8BAAC,gBAAa,SAAQ,MAAM,iBAAM,GACpC;AAEJ,SACE,qBAAC,QAAK,YAAW,UAAS,MAAM,kBAAkB,QAAO,OACvD;AAAA,wBAAC,gBAAa,SAAQ,MAAM,iBAAM;AAAA,IAClC,oBAAC,gBAAa,SAAQ,MAAM,oBAAS;AAAA,KACvC;AAEJ,CAAC;AAEM,MAAM,oBAAoBA,OAAM,KAAK,CAAC,aAAoC;AAC/E,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,EAAE,MAAM,gBAAgB,YAAY,IAAI;AAC9C,QAAM,OAAOA,OAAM,QAAQ,MAAM;AAE/B,QAAI;AAAgB,aAAO,CAAC;AAC5B,UAAM,cAAc,CAAC;AACrB,QAAI;AAAM,kBAAY,KAAK,MAAM;AACjC,gBAAY,KAAK,KAAK;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,gBAAgB,IAAI,CAAC;AAEzB,MAAI;AACF,WACE,oBAAC,cAAW,MAAM,sBAAsB,MAAM,sBAAsB,cAAc,aAChF,8BAAC,kBAAgB,GAAG,UAAU,GAChC;AAGJ,SACE,qBAAC,cAAW,MAAY,YAAW,UAAS,IAAG,OAAM,cAAc,aAChE;AAAA,WACC,oBAAC,eAAY,YAAW,UAAS,IAAG,OAClC,8BAAC,QAAM,GAAG,UAAU,GACtB,IACE;AAAA,IACJ,oBAAC,eAAa,GAAG,UAAU;AAAA,KAC7B;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -3,8 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  import React2 from "react";
4
4
  import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../config/DSShuttleV2Definitions";
7
- const StyledItemSelection = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_SELECTION })`
6
+ const StyledItemSelection = styled(Grid, { name: "ds-shuttle-v2", slot: "item-selection" })`
8
7
  width: 5px;
9
8
  height: 100%;
10
9
  box-sizing: border-box;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Item/ItemSelection.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../config/DSShuttleV2Definitions';\n\n// border-right: ${(props) => {\n// if (props.$selectionPrevented === true) return `1px solid ${props.theme.colors.neutral['200']}`;\n// return '';\n// }};\n// border-bottom: ${(props) => {\n// if (props.$selectionPrevented === true) return `1px solid ${props.theme.colors.neutral['200']}`;\n// return '';\n// }};\n\nconst StyledItemSelection = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEM_SELECTION })<{\n $isSelected: boolean;\n $selectionPrevented?: boolean;\n}>`\n width: 5px;\n height: 100%;\n box-sizing: border-box;\n background-color: ${(props) => {\n if (props.$isSelected) return props.theme.colors.brand[600];\n if (props.$selectionPrevented === true) return props.theme.colors.neutral['080'];\n return props.theme.colors.brand[300];\n }};\n`;\n\nexport const ItemSelection = React.memo(({ item: { isSelected, selectionPrevented } }: DSShuttleV2T.ItemMeta) => (\n <StyledItemSelection $isSelected={isSelected} $selectionPrevented={selectionPrevented} />\n));\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC8BrB;AA9BF,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,iBAAiB,wBAAwB;AAWlD,MAAM,sBAAsB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA,sBAOnF,CAAC,UAAU;AAC7B,MAAI,MAAM;AAAa,WAAO,MAAM,MAAM,OAAO,MAAM;AACvD,MAAI,MAAM,wBAAwB;AAAM,WAAO,MAAM,MAAM,OAAO,QAAQ;AAC1E,SAAO,MAAM,MAAM,OAAO,MAAM;AAClC;AAAA;AAGK,MAAM,gBAAgBA,OAAM,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,mBAAmB,EAAE,MAClF,oBAAC,uBAAoB,aAAa,YAAY,qBAAqB,oBAAoB,CACxF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\n\n// border-right: ${(props) => {\n// if (props.$selectionPrevented === true) return `1px solid ${props.theme.colors.neutral['200']}`;\n// return '';\n// }};\n// border-bottom: ${(props) => {\n// if (props.$selectionPrevented === true) return `1px solid ${props.theme.colors.neutral['200']}`;\n// return '';\n// }};\n\nconst StyledItemSelection = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-selection' })<{\n $isSelected: boolean;\n $selectionPrevented?: boolean;\n}>`\n width: 5px;\n height: 100%;\n box-sizing: border-box;\n background-color: ${(props) => {\n if (props.$isSelected) return props.theme.colors.brand[600];\n if (props.$selectionPrevented === true) return props.theme.colors.neutral['080'];\n return props.theme.colors.brand[300];\n }};\n`;\n\nexport const ItemSelection = React.memo(({ item: { isSelected, selectionPrevented } }: DSShuttleV2T.ItemMeta) => (\n <StyledItemSelection $isSelected={isSelected} $selectionPrevented={selectionPrevented} />\n));\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC6BrB;AA7BF,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AAYrB,MAAM,sBAAsB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,CAAC;AAAA;AAAA;AAAA;AAAA,sBAOpE,CAAC,UAAU;AAC7B,MAAI,MAAM;AAAa,WAAO,MAAM,MAAM,OAAO,MAAM;AACvD,MAAI,MAAM,wBAAwB;AAAM,WAAO,MAAM,MAAM,OAAO,QAAQ;AAC1E,SAAO,MAAM,MAAM,OAAO,MAAM;AAClC;AAAA;AAGK,MAAM,gBAAgBA,OAAM,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,mBAAmB,EAAE,MAClF,oBAAC,uBAAoB,aAAa,YAAY,qBAAqB,oBAAoB,CACxF;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,20 +1,14 @@
1
1
  import * as React from "react";
2
2
  import React2 from "react";
3
3
  import { useFocusItemTracker, useFocusActionTrackers } from "../../config/useFocusTracker";
4
- import { useInternalStore } from "../../config/useStore";
5
4
  const useItemArrowNavigation = (itemMeta) => {
6
5
  const { mutableFocusItem, trackFocusPrevItem, trackFocusNextItem, trackFocusItem } = useFocusItemTracker();
7
6
  const { trackFocusNextAction, trackFocusPrevAction, trackFocusActionParent } = useFocusActionTrackers();
8
7
  const { item } = itemMeta;
9
8
  const { isFirst, isLast } = item;
10
- const isActive = useInternalStore((state) => state.lastActiveId);
11
9
  const onItemContainerKeyDown = React2.useCallback(
12
10
  (e) => {
13
11
  const { key } = e;
14
- if (isActive) {
15
- e.preventDefault();
16
- return;
17
- }
18
12
  if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key))
19
13
  e.preventDefault();
20
14
  if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key))
@@ -41,7 +35,6 @@ const useItemArrowNavigation = (itemMeta) => {
41
35
  }
42
36
  },
43
37
  [
44
- isActive,
45
38
  mutableFocusItem,
46
39
  isFirst,
47
40
  isLast,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Item/useItemArrowNavigation.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers } from '../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { useInternalStore } from '../../config/useStore';\n\nexport const useItemArrowNavigation = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { mutableFocusItem, trackFocusPrevItem, trackFocusNextItem, trackFocusItem } = useFocusItemTracker();\n const { trackFocusNextAction, trackFocusPrevAction, trackFocusActionParent } = useFocusActionTrackers();\n const { item } = itemMeta;\n const { isFirst, isLast } = item;\n\n const isActive = useInternalStore((state) => state.lastActiveId);\n const onItemContainerKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n if (isActive) {\n e.preventDefault();\n return;\n }\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n if (key === 'ArrowLeft') {\n if ((mutableFocusItem.current === 'first' && isFirst) || (mutableFocusItem.current === 'last' && isLast)) {\n trackFocusItem(item);\n }\n trackFocusPrevAction(itemMeta);\n }\n if (key === 'ArrowRight') {\n if ((mutableFocusItem.current === 'first' && isFirst) || (mutableFocusItem.current === 'last' && isLast)) {\n trackFocusItem(item);\n }\n trackFocusNextAction(itemMeta);\n }\n if (key === 'ArrowUp') {\n trackFocusPrevItem(itemMeta);\n trackFocusActionParent();\n }\n if (key === 'ArrowDown') {\n trackFocusNextItem(itemMeta);\n trackFocusActionParent();\n }\n },\n [\n isActive,\n mutableFocusItem,\n isFirst,\n isLast,\n trackFocusPrevAction,\n itemMeta,\n trackFocusItem,\n item,\n trackFocusNextAction,\n trackFocusPrevItem,\n trackFocusActionParent,\n trackFocusNextItem,\n ],\n );\n\n return React.useMemo(() => ({ onItemContainerKeyDown }), [onItemContainerKeyDown]);\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACCvB,OAAOA,YAAW;AAClB,SAAS,qBAAqB,8BAA8B;AAE5D,SAAS,wBAAwB;AAE1B,MAAM,yBAAyB,CAAC,aAAoC;AACzE,QAAM,EAAE,kBAAkB,oBAAoB,oBAAoB,eAAe,IAAI,oBAAoB;AACzG,QAAM,EAAE,sBAAsB,sBAAsB,uBAAuB,IAAI,uBAAuB;AACtG,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,SAAS,OAAO,IAAI;AAE5B,QAAM,WAAW,iBAAiB,CAAC,UAAU,MAAM,YAAY;AAC/D,QAAM,yBAAyBA,OAAM;AAAA,IACnC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAChB,UAAI,UAAU;AACZ,UAAE,eAAe;AACjB;AAAA,MACF;AAGA,UAAI,CAAC,WAAW,aAAa,aAAa,YAAY,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AACxF,UAAI,CAAC,WAAW,aAAa,aAAa,YAAY,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AACzF,UAAI,QAAQ,aAAa;AACvB,YAAK,iBAAiB,YAAY,WAAW,WAAa,iBAAiB,YAAY,UAAU,QAAS;AACxG,yBAAe,IAAI;AAAA,QACrB;AACA,6BAAqB,QAAQ;AAAA,MAC/B;AACA,UAAI,QAAQ,cAAc;AACxB,YAAK,iBAAiB,YAAY,WAAW,WAAa,iBAAiB,YAAY,UAAU,QAAS;AACxG,yBAAe,IAAI;AAAA,QACrB;AACA,6BAAqB,QAAQ;AAAA,MAC/B;AACA,UAAI,QAAQ,WAAW;AACrB,2BAAmB,QAAQ;AAC3B,+BAAuB;AAAA,MACzB;AACA,UAAI,QAAQ,aAAa;AACvB,2BAAmB,QAAQ;AAC3B,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAOA,OAAM,QAAQ,OAAO,EAAE,uBAAuB,IAAI,CAAC,sBAAsB,CAAC;AACnF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers } from '../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\n\nexport const useItemArrowNavigation = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { mutableFocusItem, trackFocusPrevItem, trackFocusNextItem, trackFocusItem } = useFocusItemTracker();\n const { trackFocusNextAction, trackFocusPrevAction, trackFocusActionParent } = useFocusActionTrackers();\n const { item } = itemMeta;\n const { isFirst, isLast } = item;\n\n const onItemContainerKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n if (key === 'ArrowLeft') {\n if ((mutableFocusItem.current === 'first' && isFirst) || (mutableFocusItem.current === 'last' && isLast)) {\n trackFocusItem(item);\n }\n trackFocusPrevAction(itemMeta);\n }\n if (key === 'ArrowRight') {\n if ((mutableFocusItem.current === 'first' && isFirst) || (mutableFocusItem.current === 'last' && isLast)) {\n trackFocusItem(item);\n }\n trackFocusNextAction(itemMeta);\n }\n if (key === 'ArrowUp') {\n trackFocusPrevItem(itemMeta);\n trackFocusActionParent();\n }\n if (key === 'ArrowDown') {\n trackFocusNextItem(itemMeta);\n trackFocusActionParent();\n }\n },\n [\n mutableFocusItem,\n isFirst,\n isLast,\n trackFocusPrevAction,\n itemMeta,\n trackFocusItem,\n item,\n trackFocusNextAction,\n trackFocusPrevItem,\n trackFocusActionParent,\n trackFocusNextItem,\n ],\n );\n\n return React.useMemo(() => ({ onItemContainerKeyDown }), [onItemContainerKeyDown]);\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACCvB,OAAOA,YAAW;AAClB,SAAS,qBAAqB,8BAA8B;AAGrD,MAAM,yBAAyB,CAAC,aAAoC;AACzE,QAAM,EAAE,kBAAkB,oBAAoB,oBAAoB,eAAe,IAAI,oBAAoB;AACzG,QAAM,EAAE,sBAAsB,sBAAsB,uBAAuB,IAAI,uBAAuB;AACtG,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,SAAS,OAAO,IAAI;AAE5B,QAAM,yBAAyBA,OAAM;AAAA,IACnC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAGhB,UAAI,CAAC,WAAW,aAAa,aAAa,YAAY,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AACxF,UAAI,CAAC,WAAW,aAAa,aAAa,YAAY,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AACzF,UAAI,QAAQ,aAAa;AACvB,YAAK,iBAAiB,YAAY,WAAW,WAAa,iBAAiB,YAAY,UAAU,QAAS;AACxG,yBAAe,IAAI;AAAA,QACrB;AACA,6BAAqB,QAAQ;AAAA,MAC/B;AACA,UAAI,QAAQ,cAAc;AACxB,YAAK,iBAAiB,YAAY,WAAW,WAAa,iBAAiB,YAAY,UAAU,QAAS;AACxG,yBAAe,IAAI;AAAA,QACrB;AACA,6BAAqB,QAAQ;AAAA,MAC/B;AACA,UAAI,QAAQ,WAAW;AACrB,2BAAmB,QAAQ;AAC3B,+BAAuB;AAAA,MACzB;AACA,UAAI,QAAQ,aAAa;AACvB,2BAAmB,QAAQ;AAC3B,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAOA,OAAM,QAAQ,OAAO,EAAE,uBAAuB,IAAI,CAAC,sBAAsB,CAAC;AACnF;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,11 +1,10 @@
1
1
  import * as React from "react";
2
2
  import React2 from "react";
3
3
  import { useInternalStore, usePropsStore } from "../../config/useStore";
4
- import { useFocusItemTracker, useFocusActionTrackers, useFocusTracker } from "../../config/useFocusTracker";
4
+ import { useFocusItemTracker, useFocusActionTrackers } from "../../config/useFocusTracker";
5
5
  const useSelectionLogic = ({ item, isDestinationPanel }) => {
6
6
  const { trackFocusItem } = useFocusItemTracker();
7
7
  const { trackFocusActionParent } = useFocusActionTrackers();
8
- const { trackFocusRegionPanelItem } = useFocusTracker();
9
8
  const destinationSelectionArray = useInternalStore((store) => store.destinationSelectionArray);
10
9
  const sourceSelectionArray = useInternalStore((store) => store.sourceSelectionArray);
11
10
  const panelSelectedItemsArray = isDestinationPanel ? destinationSelectionArray : sourceSelectionArray;
@@ -32,20 +31,10 @@ const useSelectionLogic = ({ item, isDestinationPanel }) => {
32
31
  delete newSelection[id];
33
32
  onSelectionChange(newSelection, { event, item: original });
34
33
  }
35
- trackFocusRegionPanelItem(isDestinationPanel);
36
34
  trackFocusItem(item);
37
35
  trackFocusActionParent();
38
36
  },
39
- [
40
- isDestinationPanel,
41
- item,
42
- onSelectionChange,
43
- panelSelectedItems,
44
- panelSelectedItemsArray,
45
- trackFocusActionParent,
46
- trackFocusItem,
47
- trackFocusRegionPanelItem
48
- ]
37
+ [item, onSelectionChange, panelSelectedItems, panelSelectedItemsArray, trackFocusActionParent, trackFocusItem]
49
38
  );
50
39
  return selectItem;
51
40
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Item/useSelectionLogic.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useInternalStore, usePropsStore } from '../../config/useStore';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { useFocusItemTracker, useFocusActionTrackers, useFocusTracker } from '../../config/useFocusTracker';\nexport const useSelectionLogic = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\n const { trackFocusItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const { trackFocusRegionPanelItem } = useFocusTracker();\n\n const destinationSelectionArray = useInternalStore((store) => store.destinationSelectionArray);\n const sourceSelectionArray = useInternalStore((store) => store.sourceSelectionArray);\n\n const panelSelectedItemsArray = isDestinationPanel ? destinationSelectionArray : sourceSelectionArray;\n const onSelectionChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange,\n );\n const panelSelectedItems = usePropsStore((state) =>\n isDestinationPanel ? state.destinationSelectedItems : state.sourceSelectedItems,\n );\n const selectItem = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement | HTMLButtonElement>) => {\n const { selectionPrevented, original } = item;\n const { id } = original;\n if (!selectionPrevented) {\n const newSelection = { ...panelSelectedItems };\n let isAddition = true;\n panelSelectedItemsArray.forEach((selItem) => {\n if (selItem === id) isAddition = false;\n });\n if (isAddition) newSelection[id] = true;\n else delete newSelection[id];\n onSelectionChange(newSelection, { event, item: original });\n }\n // focus tracking logic\n trackFocusRegionPanelItem(isDestinationPanel);\n trackFocusItem(item);\n trackFocusActionParent();\n },\n [\n isDestinationPanel,\n item,\n onSelectionChange,\n panelSelectedItems,\n panelSelectedItemsArray,\n trackFocusActionParent,\n trackFocusItem,\n trackFocusRegionPanelItem,\n ],\n );\n\n return selectItem;\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,kBAAkB,qBAAqB;AAEhD,SAAS,qBAAqB,wBAAwB,uBAAuB;AACtE,MAAM,oBAAoB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AACxF,QAAM,EAAE,eAAe,IAAI,oBAAoB;AAC/C,QAAM,EAAE,uBAAuB,IAAI,uBAAuB;AAC1D,QAAM,EAAE,0BAA0B,IAAI,gBAAgB;AAEtD,QAAM,4BAA4B,iBAAiB,CAAC,UAAU,MAAM,yBAAyB;AAC7F,QAAM,uBAAuB,iBAAiB,CAAC,UAAU,MAAM,oBAAoB;AAEnF,QAAM,0BAA0B,qBAAqB,4BAA4B;AACjF,QAAM,oBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,aAAaA,OAAM;AAAA,IACvB,CAAC,UAAsG;AACrG,YAAM,EAAE,oBAAoB,SAAS,IAAI;AACzC,YAAM,EAAE,GAAG,IAAI;AACf,UAAI,CAAC,oBAAoB;AACvB,cAAM,eAAe,EAAE,GAAG,mBAAmB;AAC7C,YAAI,aAAa;AACjB,gCAAwB,QAAQ,CAAC,YAAY;AAC3C,cAAI,YAAY;AAAI,yBAAa;AAAA,QACnC,CAAC;AACD,YAAI;AAAY,uBAAa,MAAM;AAAA;AAC9B,iBAAO,aAAa;AACzB,0BAAkB,cAAc,EAAE,OAAO,MAAM,SAAS,CAAC;AAAA,MAC3D;AAEA,gCAA0B,kBAAkB;AAC5C,qBAAe,IAAI;AACnB,6BAAuB;AAAA,IACzB;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useInternalStore, usePropsStore } from '../../config/useStore';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { useFocusItemTracker, useFocusActionTrackers } from '../../config/useFocusTracker';\n\nexport const useSelectionLogic = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\n const { trackFocusItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const destinationSelectionArray = useInternalStore((store) => store.destinationSelectionArray);\n const sourceSelectionArray = useInternalStore((store) => store.sourceSelectionArray);\n\n const panelSelectedItemsArray = isDestinationPanel ? destinationSelectionArray : sourceSelectionArray;\n const onSelectionChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange,\n );\n const panelSelectedItems = usePropsStore((state) =>\n isDestinationPanel ? state.destinationSelectedItems : state.sourceSelectedItems,\n );\n const selectItem = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement | HTMLButtonElement>) => {\n const { selectionPrevented, original } = item;\n const { id } = original;\n if (!selectionPrevented) {\n const newSelection = { ...panelSelectedItems };\n let isAddition = true;\n panelSelectedItemsArray.forEach((selItem) => {\n if (selItem === id) isAddition = false;\n });\n if (isAddition) newSelection[id] = true;\n else delete newSelection[id];\n onSelectionChange(newSelection, { event, item: original });\n }\n // focus tracking logic\n trackFocusItem(item);\n trackFocusActionParent();\n },\n [item, onSelectionChange, panelSelectedItems, panelSelectedItemsArray, trackFocusActionParent, trackFocusItem],\n );\n\n return selectItem;\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,kBAAkB,qBAAqB;AAEhD,SAAS,qBAAqB,8BAA8B;AAErD,MAAM,oBAAoB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AACxF,QAAM,EAAE,eAAe,IAAI,oBAAoB;AAC/C,QAAM,EAAE,uBAAuB,IAAI,uBAAuB;AAC1D,QAAM,4BAA4B,iBAAiB,CAAC,UAAU,MAAM,yBAAyB;AAC7F,QAAM,uBAAuB,iBAAiB,CAAC,UAAU,MAAM,oBAAoB;AAEnF,QAAM,0BAA0B,qBAAqB,4BAA4B;AACjF,QAAM,oBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,aAAaA,OAAM;AAAA,IACvB,CAAC,UAAsG;AACrG,YAAM,EAAE,oBAAoB,SAAS,IAAI;AACzC,YAAM,EAAE,GAAG,IAAI;AACf,UAAI,CAAC,oBAAoB;AACvB,cAAM,eAAe,EAAE,GAAG,mBAAmB;AAC7C,YAAI,aAAa;AACjB,gCAAwB,QAAQ,CAAC,YAAY;AAC3C,cAAI,YAAY;AAAI,yBAAa;AAAA,QACnC,CAAC;AACD,YAAI;AAAY,uBAAa,MAAM;AAAA;AAC9B,iBAAO,aAAa;AACzB,0BAAkB,cAAc,EAAE,OAAO,MAAM,SAAS,CAAC;AAAA,MAC3D;AAEA,qBAAe,IAAI;AACnB,6BAAuB;AAAA,IACzB;AAAA,IACA,CAAC,MAAM,mBAAmB,oBAAoB,yBAAyB,wBAAwB,cAAc;AAAA,EAC/G;AAEA,SAAO;AACT;",
6
6
  "names": ["React"]
7
7
  }
@@ -5,9 +5,8 @@ import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
6
  import { useOnBlurOut } from "@elliemae/ds-utilities";
7
7
  import { PanelWrapper } from "./PanelWrapper";
8
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../config/DSShuttleV2Definitions";
9
8
  import { useFocusTracker } from "../config/useFocusTracker";
10
- const StyledWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.WRAPPER })`
9
+ const StyledWrapper = styled(Grid, { name: "ds-shuttle-v2", slot: "wrapper" })`
11
10
  min-width: 648px;
12
11
  min-height: 296px;
13
12
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/MainContent.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnBlurOut } from '@elliemae/ds-utilities';\nimport { PanelWrapper } from './PanelWrapper';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../config/DSShuttleV2Definitions';\nimport { useFocusTracker } from '../config/useFocusTracker';\n\nconst StyledWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.WRAPPER })`\n min-width: 648px;\n min-height: 296px;\n`;\nconst mainContentCols = ['1fr', '1fr'];\n\nexport const MainContent = React.memo(() => {\n const { trackFocusRegionReset, trackFocusItemReset, trackFocusActionReset } = useFocusTracker();\n const config = React.useMemo(\n () => ({\n onBlur: () => {\n trackFocusRegionReset();\n trackFocusItemReset();\n trackFocusActionReset();\n },\n }),\n [trackFocusActionReset, trackFocusItemReset, trackFocusRegionReset],\n );\n const handleOnBlurOut = useOnBlurOut(config);\n return (\n <StyledWrapper cols={mainContentCols} gutter=\"xs\" p=\"xs\" onBlur={handleOnBlurOut}>\n <PanelWrapper isDestinationPanel={false} />\n <PanelWrapper isDestinationPanel />\n </StyledWrapper>\n );\n});\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC4BnB,SACE,KADF;AA5BJ,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,uBAAuB;AAEhC,MAAM,gBAAgB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAI5F,MAAM,kBAAkB,CAAC,OAAO,KAAK;AAE9B,MAAM,cAAcA,OAAM,KAAK,MAAM;AAC1C,QAAM,EAAE,uBAAuB,qBAAqB,sBAAsB,IAAI,gBAAgB;AAC9F,QAAM,SAASA,OAAM;AAAA,IACnB,OAAO;AAAA,MACL,QAAQ,MAAM;AACZ,8BAAsB;AACtB,4BAAoB;AACpB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB,qBAAqB,qBAAqB;AAAA,EACpE;AACA,QAAM,kBAAkB,aAAa,MAAM;AAC3C,SACE,qBAAC,iBAAc,MAAM,iBAAiB,QAAO,MAAK,GAAE,MAAK,QAAQ,iBAC/D;AAAA,wBAAC,gBAAa,oBAAoB,OAAO;AAAA,IACzC,oBAAC,gBAAa,oBAAkB,MAAC;AAAA,KACnC;AAEJ,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnBlurOut } from '@elliemae/ds-utilities';\nimport { PanelWrapper } from './PanelWrapper';\nimport { useFocusTracker } from '../config/useFocusTracker';\n\nconst StyledWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'wrapper' })`\n min-width: 648px;\n min-height: 296px;\n`;\nconst mainContentCols = ['1fr', '1fr'];\n\nexport const MainContent = React.memo(() => {\n const { trackFocusRegionReset, trackFocusItemReset, trackFocusActionReset } = useFocusTracker();\n const config = React.useMemo(\n () => ({\n onBlur: () => {\n trackFocusRegionReset();\n trackFocusItemReset();\n trackFocusActionReset();\n },\n }),\n [trackFocusActionReset, trackFocusItemReset, trackFocusRegionReset],\n );\n const handleOnBlurOut = useOnBlurOut(config);\n return (\n <StyledWrapper cols={mainContentCols} gutter=\"xs\" p=\"xs\" onBlur={handleOnBlurOut}>\n <PanelWrapper isDestinationPanel={false} />\n <PanelWrapper isDestinationPanel />\n </StyledWrapper>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC2BnB,SACE,KADF;AA3BJ,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAEhC,MAAM,gBAAgB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,UAAU,CAAC;AAAA;AAAA;AAAA;AAI7E,MAAM,kBAAkB,CAAC,OAAO,KAAK;AAE9B,MAAM,cAAcA,OAAM,KAAK,MAAM;AAC1C,QAAM,EAAE,uBAAuB,qBAAqB,sBAAsB,IAAI,gBAAgB;AAC9F,QAAM,SAASA,OAAM;AAAA,IACnB,OAAO;AAAA,MACL,QAAQ,MAAM;AACZ,8BAAsB;AACtB,4BAAoB;AACpB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB,qBAAqB,qBAAqB;AAAA,EACpE;AACA,QAAM,kBAAkB,aAAa,MAAM;AAC3C,SACE,qBAAC,iBAAc,MAAM,iBAAiB,QAAO,MAAK,GAAE,MAAK,QAAQ,iBAC/D;AAAA,wBAAC,gBAAa,oBAAoB,OAAO;AAAA,IACzC,oBAAC,gBAAa,oBAAkB,MAAC;AAAA,KACnC;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -6,11 +6,7 @@ import { DSButtonV2, BUTTON_SIZES } from "@elliemae/ds-button";
6
6
  import { usePropsStore } from "../../../config/useStore";
7
7
  import { useInnerRefHandlers } from "./useInnerRefHandlers";
8
8
  import { useFocusTracker } from "../../../config/useFocusTracker";
9
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
10
- const StyledLoadMoreBtn = styled(DSButtonV2, {
11
- name: DSShuttleV2Name,
12
- slot: DSShuttleV2Slots.LIST_BOTTOM_LOAD_MORE_BTN
13
- })`
9
+ const StyledLoadMoreBtn = styled(DSButtonV2, { name: "ds-shuttle-v2", slot: "list-bottom-load-more-btn" })`
14
10
  width: 100%;
15
11
  height: 100%;
16
12
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/bottom/LoadMoreBtn.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSButtonV2, BUTTON_SIZES, type DSButtonT } from '@elliemae/ds-button';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledLoadMoreBtn = styled(DSButtonV2, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.LIST_BOTTOM_LOAD_MORE_BTN,\n})`\n width: 100%;\n height: 100%;\n`;\n\nexport const LoadMoreBtn = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const { trackFocusItemLast, trackFocusActionParent, trackFocusRegionPanelItem } = useFocusTracker();\n const onLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationLoadMore : state.onSourceLoadMore,\n );\n const handleOnClick = React.useCallback(\n (e: Parameters<Required<DSButtonT.Props>['onClick']>[0]) => {\n onLoadMore(e);\n trackFocusItemLast();\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusActionParent();\n },\n [\n onLoadMore,\n panelMetaInfo.isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemLast,\n trackFocusRegionPanelItem,\n ],\n );\n const { innerRefHandlerLoadMoreBtn } = useInnerRefHandlers(panelMetaInfo);\n return (\n <StyledLoadMoreBtn\n buttonType=\"text\"\n onClick={handleOnClick}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerLoadMoreBtn}\n >\n Load More...\n </StyledLoadMoreBtn>\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACwCnB;AAxCJ,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY,oBAAoC;AACzD,SAAS,qBAAqB;AAE9B,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAChC,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,oBAAoB,OAAO,YAAY;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAKM,MAAM,cAAc,CAAC,kBAA8C;AACxE,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,EAAE,oBAAoB,wBAAwB,0BAA0B,IAAI,gBAAgB;AAClG,QAAM,aAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,wBAAwB,MAAM;AAAA,EAC3D;AACA,QAAM,gBAAgBA,OAAM;AAAA,IAC1B,CAAC,MAA2D;AAC1D,iBAAW,CAAC;AACZ,yBAAmB;AACnB,gCAA0B,cAAc,kBAAkB;AAC1D,6BAAuB;AAAA,IACzB;AAAA,IACA;AAAA,MACE;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,2BAA2B,IAAI,oBAAoB,aAAa;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM,aAAa;AAAA,MACnB,UAAU;AAAA,MACX;AAAA;AAAA,EAED;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSButtonV2, BUTTON_SIZES, type DSButtonT } from '@elliemae/ds-button';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\n\nconst StyledLoadMoreBtn = styled(DSButtonV2, { name: 'ds-shuttle-v2', slot: 'list-bottom-load-more-btn' })`\n width: 100%;\n height: 100%;\n`;\n\nexport const LoadMoreBtn = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const { trackFocusItemLast, trackFocusActionParent, trackFocusRegionPanelItem } = useFocusTracker();\n const onLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationLoadMore : state.onSourceLoadMore,\n );\n const handleOnClick = React.useCallback(\n (e: Parameters<Required<DSButtonT.Props>['onClick']>[0]) => {\n onLoadMore(e);\n trackFocusItemLast();\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusActionParent();\n },\n [\n onLoadMore,\n panelMetaInfo.isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemLast,\n trackFocusRegionPanelItem,\n ],\n );\n const { innerRefHandlerLoadMoreBtn } = useInnerRefHandlers(panelMetaInfo);\n return (\n <StyledLoadMoreBtn\n buttonType=\"text\"\n onClick={handleOnClick}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerLoadMoreBtn}\n >\n Load More...\n </StyledLoadMoreBtn>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACoCnB;AApCJ,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY,oBAAoC;AACzD,SAAS,qBAAqB;AAE9B,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAEhC,MAAM,oBAAoB,OAAO,YAAY,EAAE,MAAM,iBAAiB,MAAM,4BAA4B,CAAC;AAAA;AAAA;AAAA;AAKlG,MAAM,cAAc,CAAC,kBAA8C;AACxE,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,EAAE,oBAAoB,wBAAwB,0BAA0B,IAAI,gBAAgB;AAClG,QAAM,aAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,wBAAwB,MAAM;AAAA,EAC3D;AACA,QAAM,gBAAgBA,OAAM;AAAA,IAC1B,CAAC,MAA2D;AAC1D,iBAAW,CAAC;AACZ,yBAAmB;AACnB,gCAA0B,cAAc,kBAAkB;AAC1D,6BAAuB;AAAA,IACzB;AAAA,IACA;AAAA,MACE;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,2BAA2B,IAAI,oBAAoB,aAAa;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM,aAAa;AAAA,MACnB,UAAU;AAAA,MACX;AAAA;AAAA,EAED;AAEJ;",
6
6
  "names": ["React"]
7
7
  }
@@ -3,11 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { styled } from "@elliemae/ds-system";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
5
  import { DSIndeterminateProgressIndicator } from "@elliemae/ds-indeterminate-progress-indicator";
6
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
7
- const StyledBottomLoadingMore = styled(Grid, {
8
- name: DSShuttleV2Name,
9
- slot: DSShuttleV2Slots.LIST_BOTTOM_LOADING_MORE
10
- })``;
6
+ const StyledBottomLoadingMore = styled(Grid, { name: "ds-shuttle-v2", slot: "list-bottom-loading-more" })``;
11
7
  const LoadingMore = (panelMetaInfo) => /* @__PURE__ */ jsx(StyledBottomLoadingMore, { px: "24px", children: /* @__PURE__ */ jsx(DSIndeterminateProgressIndicator, { processing: true, title: "Loading" }) });
12
8
  export {
13
9
  LoadingMore
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/bottom/LoadingMore.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSIndeterminateProgressIndicator } from '@elliemae/ds-indeterminate-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledBottomLoadingMore = styled(Grid, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.LIST_BOTTOM_LOADING_MORE,\n})``;\nexport const LoadingMore = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledBottomLoadingMore px=\"24px\">\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledBottomLoadingMore>\n);\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACcnB;AAZJ,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,wCAAwC;AAEjD,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,0BAA0B,OAAO,MAAM;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AACM,MAAM,cAAc,CAAC,kBAC1B,oBAAC,2BAAwB,IAAG,QAC1B,8BAAC,oCAAiC,YAAU,MAAC,OAAM,WAAU,GAC/D;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSIndeterminateProgressIndicator } from '@elliemae/ds-indeterminate-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\n\nconst StyledBottomLoadingMore = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-bottom-loading-more' })``;\nexport const LoadingMore = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledBottomLoadingMore px=\"24px\">\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledBottomLoadingMore>\n);\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACUnB;AARJ,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,wCAAwC;AAGjD,MAAM,0BAA0B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,2BAA2B,CAAC;AACjG,MAAM,cAAc,CAAC,kBAC1B,oBAAC,2BAAwB,IAAG,QAC1B,8BAAC,oCAAiC,YAAU,MAAC,OAAM,WAAU,GAC/D;",
6
6
  "names": []
7
7
  }
@@ -8,8 +8,7 @@ import { usePropsStore } from "../../../config/useStore";
8
8
  import { LoadMoreBtn } from "./LoadMoreBtn";
9
9
  import { LoadingMore } from "./LoadingMore";
10
10
  import { useLoadMoreBtnArrowNavigation } from "./useLoadMoreBtnArrowNavigation";
11
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
12
- const StyledListWrapperBottom = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_BOTTOM })`
11
+ const StyledListWrapperBottom = styled(Grid, { name: "ds-shuttle-v2", slot: "list-wrapper-bottom" })`
13
12
  min-height: 36px;
14
13
  border-top: 1px solid neutral-400;
15
14
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/bottom/PanelContentBottomSection.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { LoadMoreBtn } from './LoadMoreBtn';\nimport { LoadingMore } from './LoadingMore';\nimport { useLoadMoreBtnArrowNavigation } from './useLoadMoreBtnArrowNavigation';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledListWrapperBottom = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_BOTTOM })`\n min-height: 36px;\n border-top: 1px solid neutral-400;\n`;\nconst wrapperColsRows = ['1fr'];\n\nexport const PanelContentBottomSection = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const isLoadingMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationIsLoadingMore : state.sourceIsLoadingMore,\n );\n const { trackFocusRegionBottom, trackFocusLoadMoreBtn, trackFocusActionReset } = useFocusTracker();\n const onBottomSectionFocus = React.useCallback(() => {\n trackFocusRegionBottom(isDestinationPanel);\n trackFocusLoadMoreBtn();\n trackFocusActionReset();\n }, [isDestinationPanel, trackFocusActionReset, trackFocusLoadMoreBtn, trackFocusRegionBottom]);\n\n // this 3 booleans MUST be auto-exclusives with each other\n const shouldDisplayLoadingMore = isLoadingMore;\n const shouldDisplayLoadMoreBtn = withLoadMore && !isLoadingMore;\n const shouldNotTakeSpace = !withLoadMore && !isLoadingMore;\n const { onLoadMoreButtonKeyDown } = useLoadMoreBtnArrowNavigation(panelMetaInfo);\n\n if (shouldNotTakeSpace) return <div />;\n return (\n <StyledListWrapperBottom\n cols={wrapperColsRows}\n rows={wrapperColsRows}\n onFocus={onBottomSectionFocus}\n onKeyDown={onLoadMoreButtonKeyDown}\n >\n {shouldDisplayLoadingMore ? <LoadingMore {...panelMetaInfo} /> : null}\n {shouldDisplayLoadMoreBtn ? <LoadMoreBtn {...panelMetaInfo} /> : null}\n </StyledListWrapperBottom>\n );\n});\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACwCU,cAE7B,YAF6B;AAtCjC,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,qCAAqC;AAC9C,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,0BAA0B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,oBAAoB,CAAC;AAAA;AAAA;AAAA;AAIlH,MAAM,kBAAkB,CAAC,KAAK;AAEvB,MAAM,4BAA4BA,OAAM,KAAK,CAAC,kBAA8C;AACjG,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AACA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,EAAE,wBAAwB,uBAAuB,sBAAsB,IAAI,gBAAgB;AACjG,QAAM,uBAAuBA,OAAM,YAAY,MAAM;AACnD,2BAAuB,kBAAkB;AACzC,0BAAsB;AACtB,0BAAsB;AAAA,EACxB,GAAG,CAAC,oBAAoB,uBAAuB,uBAAuB,sBAAsB,CAAC;AAG7F,QAAM,2BAA2B;AACjC,QAAM,2BAA2B,gBAAgB,CAAC;AAClD,QAAM,qBAAqB,CAAC,gBAAgB,CAAC;AAC7C,QAAM,EAAE,wBAAwB,IAAI,8BAA8B,aAAa;AAE/E,MAAI;AAAoB,WAAO,oBAAC,SAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MAEV;AAAA,mCAA2B,oBAAC,eAAa,GAAG,eAAe,IAAK;AAAA,QAChE,2BAA2B,oBAAC,eAAa,GAAG,eAAe,IAAK;AAAA;AAAA;AAAA,EACnE;AAEJ,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { LoadMoreBtn } from './LoadMoreBtn';\nimport { LoadingMore } from './LoadingMore';\nimport { useLoadMoreBtnArrowNavigation } from './useLoadMoreBtnArrowNavigation';\n\nconst StyledListWrapperBottom = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-wrapper-bottom' })`\n min-height: 36px;\n border-top: 1px solid neutral-400;\n`;\nconst wrapperColsRows = ['1fr'];\n\nexport const PanelContentBottomSection = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const isLoadingMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationIsLoadingMore : state.sourceIsLoadingMore,\n );\n const { trackFocusRegionBottom, trackFocusLoadMoreBtn, trackFocusActionReset } = useFocusTracker();\n const onBottomSectionFocus = React.useCallback(() => {\n trackFocusRegionBottom(isDestinationPanel);\n trackFocusLoadMoreBtn();\n trackFocusActionReset();\n }, [isDestinationPanel, trackFocusActionReset, trackFocusLoadMoreBtn, trackFocusRegionBottom]);\n\n // this 3 booleans MUST be auto-exclusives with each other\n const shouldDisplayLoadingMore = isLoadingMore;\n const shouldDisplayLoadMoreBtn = withLoadMore && !isLoadingMore;\n const shouldNotTakeSpace = !withLoadMore && !isLoadingMore;\n const { onLoadMoreButtonKeyDown } = useLoadMoreBtnArrowNavigation(panelMetaInfo);\n\n if (shouldNotTakeSpace) return <div />;\n return (\n <StyledListWrapperBottom\n cols={wrapperColsRows}\n rows={wrapperColsRows}\n onFocus={onBottomSectionFocus}\n onKeyDown={onLoadMoreButtonKeyDown}\n >\n {shouldDisplayLoadingMore ? <LoadingMore {...panelMetaInfo} /> : null}\n {shouldDisplayLoadMoreBtn ? <LoadMoreBtn {...panelMetaInfo} /> : null}\n </StyledListWrapperBottom>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACuCU,cAE7B,YAF6B;AArCjC,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,qCAAqC;AAE9C,MAAM,0BAA0B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAInG,MAAM,kBAAkB,CAAC,KAAK;AAEvB,MAAM,4BAA4BA,OAAM,KAAK,CAAC,kBAA8C;AACjG,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AACA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,EAAE,wBAAwB,uBAAuB,sBAAsB,IAAI,gBAAgB;AACjG,QAAM,uBAAuBA,OAAM,YAAY,MAAM;AACnD,2BAAuB,kBAAkB;AACzC,0BAAsB;AACtB,0BAAsB;AAAA,EACxB,GAAG,CAAC,oBAAoB,uBAAuB,uBAAuB,sBAAsB,CAAC;AAG7F,QAAM,2BAA2B;AACjC,QAAM,2BAA2B,gBAAgB,CAAC;AAClD,QAAM,qBAAqB,CAAC,gBAAgB,CAAC;AAC7C,QAAM,EAAE,wBAAwB,IAAI,8BAA8B,aAAa;AAE/E,MAAI;AAAoB,WAAO,oBAAC,SAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MAEV;AAAA,mCAA2B,oBAAC,eAAa,GAAG,eAAe,IAAK;AAAA,QAChE,2BAA2B,oBAAC,eAAa,GAAG,eAAe,IAAK;AAAA;AAAA;AAAA,EACnE;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,19 +1,13 @@
1
1
  import * as React from "react";
2
2
  import React2 from "react";
3
3
  import { useFocusItemTracker, useFocusActionTrackers, useFocusRegionTrackers } from "../../../config/useFocusTracker";
4
- import { useInternalStore } from "../../../config/useStore";
5
4
  const useLoadMoreBtnArrowNavigation = (panelMetaInfo) => {
6
5
  const { trackFocusPrevItem, trackFocusNextItem } = useFocusItemTracker();
7
6
  const { trackFocusActionParent } = useFocusActionTrackers();
8
7
  const { trackFocusRegionPanelItem } = useFocusRegionTrackers();
9
- const isActive = useInternalStore((state) => state.lastActiveId);
10
8
  const onLoadMoreButtonKeyDown = React2.useCallback(
11
9
  (e) => {
12
10
  const { key } = e;
13
- if (isActive) {
14
- e.preventDefault();
15
- return;
16
- }
17
11
  if (["ArrowUp", "ArrowDown"].includes(key))
18
12
  e.preventDefault();
19
13
  if (["ArrowUp", "ArrowDown"].includes(key))
@@ -29,14 +23,7 @@ const useLoadMoreBtnArrowNavigation = (panelMetaInfo) => {
29
23
  trackFocusActionParent();
30
24
  }
31
25
  },
32
- [
33
- isActive,
34
- trackFocusRegionPanelItem,
35
- panelMetaInfo,
36
- trackFocusNextItem,
37
- trackFocusActionParent,
38
- trackFocusPrevItem
39
- ]
26
+ [trackFocusRegionPanelItem, panelMetaInfo, trackFocusNextItem, trackFocusActionParent, trackFocusPrevItem]
40
27
  );
41
28
  return React2.useMemo(() => ({ onLoadMoreButtonKeyDown }), [onLoadMoreButtonKeyDown]);
42
29
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers, useFocusRegionTrackers } from '../../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInternalStore } from '../../../config/useStore';\n\nexport const useLoadMoreBtnArrowNavigation = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { trackFocusPrevItem, trackFocusNextItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const { trackFocusRegionPanelItem } = useFocusRegionTrackers();\n const isActive = useInternalStore((state) => state.lastActiveId);\n\n const onLoadMoreButtonKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n if (isActive) {\n e.preventDefault();\n return;\n }\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.stopPropagation();\n\n // =============================================================================\n // THIS IS NOT LIKE /src/parts/Item/useItemArrowNavigation.tsx\n // THIS IS INVERTED BY DESIGN AND DESIRED TO BE INVERTED\n // =============================================================================\n // load-more-btn -> last element\n if (key === 'ArrowUp') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusNextItem(panelMetaInfo); // this results in \"Last\" element of the list\n trackFocusActionParent();\n }\n // load-more-btn -> first element\n if (key === 'ArrowDown') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusPrevItem(panelMetaInfo); // this results in \"First\" element of the list\n trackFocusActionParent();\n }\n },\n [\n isActive,\n trackFocusRegionPanelItem,\n panelMetaInfo,\n trackFocusNextItem,\n trackFocusActionParent,\n trackFocusPrevItem,\n ],\n );\n\n return React.useMemo(() => ({ onLoadMoreButtonKeyDown }), [onLoadMoreButtonKeyDown]);\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,qBAAqB,wBAAwB,8BAA8B;AAEpF,SAAS,wBAAwB;AAE1B,MAAM,gCAAgC,CAAC,kBAA8C;AAC1F,QAAM,EAAE,oBAAoB,mBAAmB,IAAI,oBAAoB;AACvE,QAAM,EAAE,uBAAuB,IAAI,uBAAuB;AAC1D,QAAM,EAAE,0BAA0B,IAAI,uBAAuB;AAC7D,QAAM,WAAW,iBAAiB,CAAC,UAAU,MAAM,YAAY;AAE/D,QAAM,0BAA0BA,OAAM;AAAA,IACpC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAChB,UAAI,UAAU;AACZ,UAAE,eAAe;AACjB;AAAA,MACF;AAGA,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AAC7D,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AAO9D,UAAI,QAAQ,WAAW;AACrB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAEA,UAAI,QAAQ,aAAa;AACvB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAOA,OAAM,QAAQ,OAAO,EAAE,wBAAwB,IAAI,CAAC,uBAAuB,CAAC;AACrF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers, useFocusRegionTrackers } from '../../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\n\nexport const useLoadMoreBtnArrowNavigation = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { trackFocusPrevItem, trackFocusNextItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const { trackFocusRegionPanelItem } = useFocusRegionTrackers();\n\n const onLoadMoreButtonKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.stopPropagation();\n\n // =============================================================================\n // THIS IS NOT LIKE /src/parts/Item/useItemArrowNavigation.tsx\n // THIS IS INVERTED BY DESIGN AND DESIRED TO BE INVERTED\n // =============================================================================\n // load-more-btn -> last element\n if (key === 'ArrowUp') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusNextItem(panelMetaInfo); // this results in \"Last\" element of the list\n trackFocusActionParent();\n }\n // load-more-btn -> first element\n if (key === 'ArrowDown') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusPrevItem(panelMetaInfo); // this results in \"First\" element of the list\n trackFocusActionParent();\n }\n },\n [trackFocusRegionPanelItem, panelMetaInfo, trackFocusNextItem, trackFocusActionParent, trackFocusPrevItem],\n );\n\n return React.useMemo(() => ({ onLoadMoreButtonKeyDown }), [onLoadMoreButtonKeyDown]);\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,qBAAqB,wBAAwB,8BAA8B;AAG7E,MAAM,gCAAgC,CAAC,kBAA8C;AAC1F,QAAM,EAAE,oBAAoB,mBAAmB,IAAI,oBAAoB;AACvE,QAAM,EAAE,uBAAuB,IAAI,uBAAuB;AAC1D,QAAM,EAAE,0BAA0B,IAAI,uBAAuB;AAE7D,QAAM,0BAA0BA,OAAM;AAAA,IACpC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAGhB,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AAC7D,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AAO9D,UAAI,QAAQ,WAAW;AACrB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAEA,UAAI,QAAQ,aAAa;AACvB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA,CAAC,2BAA2B,eAAe,oBAAoB,wBAAwB,kBAAkB;AAAA,EAC3G;AAEA,SAAOA,OAAM,QAAQ,OAAO,EAAE,wBAAwB,IAAI,CAAC,uBAAuB,CAAC;AACrF;",
6
6
  "names": ["React"]
7
7
  }
@@ -2,8 +2,7 @@ import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { styled } from "@elliemae/ds-system";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
6
- const StyledEmptyListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.EMPTY_LIST_WRAPPER })`
5
+ const StyledEmptyListWrapper = styled(Grid, { name: "ds-shuttle-v2", slot: "empty-list-wrapper" })`
7
6
  color: neutral-500;
8
7
  `;
9
8
  const EmptyItems = (panelMetaInfo) => /* @__PURE__ */ jsx(StyledEmptyListWrapper, { alignItems: "center", justifyContent: "center", children: "There are no items to display" });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/middle/EmptyItems.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledEmptyListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.EMPTY_LIST_WRAPPER })`\n color: neutral-500;\n`;\nexport const EmptyItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledEmptyListWrapper alignItems=\"center\" justifyContent=\"center\">\n There are no items to display\n </StyledEmptyListWrapper>\n);\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACYrB;AATF,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,yBAAyB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,mBAAmB,CAAC;AAAA;AAAA;AAGzG,MAAM,aAAa,CAAC,kBACzB,oBAAC,0BAAuB,YAAW,UAAS,gBAAe,UAAS,2CAEpE;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\n\nconst StyledEmptyListWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'empty-list-wrapper' })`\n color: neutral-500;\n`;\nexport const EmptyItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledEmptyListWrapper alignItems=\"center\" justifyContent=\"center\">\n There are no items to display\n </StyledEmptyListWrapper>\n);\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACWrB;AARF,SAAS,cAAc;AACvB,SAAS,YAAY;AAGrB,MAAM,yBAAyB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,qBAAqB,CAAC;AAAA;AAAA;AAG1F,MAAM,aAAa,CAAC,kBACzB,oBAAC,0BAAuB,YAAW,UAAS,gBAAe,UAAS,2CAEpE;",
6
6
  "names": []
7
7
  }