@deephaven/components 1.4.1-beta.0 → 1.4.1-react19.43

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 (297) hide show
  1. package/dist/AutoCompleteInput.d.ts +0 -17
  2. package/dist/AutoCompleteInput.d.ts.map +1 -1
  3. package/dist/AutoCompleteInput.js +12 -31
  4. package/dist/AutoCompleteInput.js.map +1 -1
  5. package/dist/AutoResizeTextarea.d.ts +0 -23
  6. package/dist/AutoResizeTextarea.d.ts.map +1 -1
  7. package/dist/AutoResizeTextarea.js +0 -21
  8. package/dist/AutoResizeTextarea.js.map +1 -1
  9. package/dist/BasicModal.d.ts +0 -27
  10. package/dist/BasicModal.d.ts.map +1 -1
  11. package/dist/BasicModal.js +2 -28
  12. package/dist/BasicModal.js.map +1 -1
  13. package/dist/BulkActionBar.js.map +1 -1
  14. package/dist/Button.d.ts +1 -1
  15. package/dist/Button.d.ts.map +1 -1
  16. package/dist/Button.js +2 -79
  17. package/dist/Button.js.map +1 -1
  18. package/dist/CardFlip.d.ts.map +1 -1
  19. package/dist/CardFlip.js +1 -2
  20. package/dist/CardFlip.js.map +1 -1
  21. package/dist/Checkbox.d.ts.map +1 -1
  22. package/dist/Checkbox.js +3 -45
  23. package/dist/Checkbox.js.map +1 -1
  24. package/dist/Collapse.d.ts +6 -13
  25. package/dist/Collapse.d.ts.map +1 -1
  26. package/dist/Collapse.js +40 -30
  27. package/dist/Collapse.js.map +1 -1
  28. package/dist/ComponentUtils.js.map +1 -1
  29. package/dist/CopyButton.js.map +1 -1
  30. package/dist/CustomTimeSelect.js +14 -15
  31. package/dist/CustomTimeSelect.js.map +1 -1
  32. package/dist/DateInput.js.map +1 -1
  33. package/dist/DateInputUtils.js.map +1 -1
  34. package/dist/DateTimeInput.d.ts.map +1 -1
  35. package/dist/DateTimeInput.js +0 -8
  36. package/dist/DateTimeInput.js.map +1 -1
  37. package/dist/DateTimeInputUtils.js.map +1 -1
  38. package/dist/DebouncedSearchInput.js +1 -1
  39. package/dist/DebouncedSearchInput.js.map +1 -1
  40. package/dist/DragUtils.js.map +1 -1
  41. package/dist/DraggableItemList.css.map +1 -1
  42. package/dist/DraggableItemList.d.ts +7 -7
  43. package/dist/DraggableItemList.d.ts.map +1 -1
  44. package/dist/DraggableItemList.js +13 -12
  45. package/dist/DraggableItemList.js.map +1 -1
  46. package/dist/EditableItemList.js +1 -2
  47. package/dist/EditableItemList.js.map +1 -1
  48. package/dist/ErrorBoundary.d.ts.map +1 -1
  49. package/dist/ErrorBoundary.js +3 -2
  50. package/dist/ErrorBoundary.js.map +1 -1
  51. package/dist/ErrorView.js +1 -2
  52. package/dist/ErrorView.js.map +1 -1
  53. package/dist/HierarchicalCheckboxMenu.d.ts +1 -1
  54. package/dist/HierarchicalCheckboxMenu.d.ts.map +1 -1
  55. package/dist/HierarchicalCheckboxMenu.js +1 -2
  56. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  57. package/dist/ItemList.d.ts +1 -1
  58. package/dist/ItemList.d.ts.map +1 -1
  59. package/dist/ItemList.js +14 -14
  60. package/dist/ItemList.js.map +1 -1
  61. package/dist/ItemListItem.js.map +1 -1
  62. package/dist/LoadingOverlay.d.ts.map +1 -1
  63. package/dist/LoadingOverlay.js +5 -3
  64. package/dist/LoadingOverlay.js.map +1 -1
  65. package/dist/LoadingSpinner.js.map +1 -1
  66. package/dist/MaskedInput.d.ts.map +1 -1
  67. package/dist/MaskedInput.js +11 -31
  68. package/dist/MaskedInput.js.map +1 -1
  69. package/dist/MaskedInputUtils.js.map +1 -1
  70. package/dist/Option.js.map +1 -1
  71. package/dist/RadioGroup.js +1 -2
  72. package/dist/RadioGroup.js.map +1 -1
  73. package/dist/RadioItem.d.ts.map +1 -1
  74. package/dist/RadioItem.js +1 -13
  75. package/dist/RadioItem.js.map +1 -1
  76. package/dist/RandomAreaPlotAnimation.d.ts +1 -1
  77. package/dist/RandomAreaPlotAnimation.d.ts.map +1 -1
  78. package/dist/RandomAreaPlotAnimation.js +5 -8
  79. package/dist/RandomAreaPlotAnimation.js.map +1 -1
  80. package/dist/SearchInput.js +3 -5
  81. package/dist/SearchInput.js.map +1 -1
  82. package/dist/SearchableCombobox.js.map +1 -1
  83. package/dist/Select.d.ts +1 -1
  84. package/dist/Select.d.ts.map +1 -1
  85. package/dist/Select.js.map +1 -1
  86. package/dist/SelectValueList.js +9 -9
  87. package/dist/SelectValueList.js.map +1 -1
  88. package/dist/SocketedButton.d.ts +4 -4
  89. package/dist/SocketedButton.d.ts.map +1 -1
  90. package/dist/SocketedButton.js +5 -20
  91. package/dist/SocketedButton.js.map +1 -1
  92. package/dist/SplitButtonGroup.d.ts +2 -18
  93. package/dist/SplitButtonGroup.d.ts.map +1 -1
  94. package/dist/SplitButtonGroup.js +0 -13
  95. package/dist/SplitButtonGroup.js.map +1 -1
  96. package/dist/TableViewEmptyState.js +1 -2
  97. package/dist/TableViewEmptyState.js.map +1 -1
  98. package/dist/TextWithTooltip.js +1 -3
  99. package/dist/TextWithTooltip.js.map +1 -1
  100. package/dist/ThemeExport.js.map +1 -1
  101. package/dist/TimeInput.d.ts.map +1 -1
  102. package/dist/TimeInput.js +7 -17
  103. package/dist/TimeInput.js.map +1 -1
  104. package/dist/TimeSlider.js +3 -6
  105. package/dist/TimeSlider.js.map +1 -1
  106. package/dist/ToastNotification.d.ts +1 -2
  107. package/dist/ToastNotification.d.ts.map +1 -1
  108. package/dist/ToastNotification.js +5 -3
  109. package/dist/ToastNotification.js.map +1 -1
  110. package/dist/UIConstants.js.map +1 -1
  111. package/dist/UISwitch.d.ts.map +1 -1
  112. package/dist/UISwitch.js +18 -14
  113. package/dist/UISwitch.js.map +1 -1
  114. package/dist/XComponent.d.ts +1 -1
  115. package/dist/XComponent.d.ts.map +1 -1
  116. package/dist/XComponent.js.map +1 -1
  117. package/dist/XComponentMap.d.ts +2 -2
  118. package/dist/XComponentMap.d.ts.map +1 -1
  119. package/dist/XComponentMap.js +1 -0
  120. package/dist/XComponentMap.js.map +1 -1
  121. package/dist/actions/ConfirmActionButton.js.map +1 -1
  122. package/dist/actions/IconActionButton.js +1 -2
  123. package/dist/actions/IconActionButton.js.map +1 -1
  124. package/dist/actions/index.js.map +1 -1
  125. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  126. package/dist/context-actions/ContextActions.d.ts +1 -2
  127. package/dist/context-actions/ContextActions.d.ts.map +1 -1
  128. package/dist/context-actions/ContextActions.js +22 -22
  129. package/dist/context-actions/ContextActions.js.map +1 -1
  130. package/dist/context-actions/ContextMenu.js +5 -7
  131. package/dist/context-actions/ContextMenu.js.map +1 -1
  132. package/dist/context-actions/ContextMenuItem.d.ts.map +1 -1
  133. package/dist/context-actions/ContextMenuItem.js +21 -43
  134. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  135. package/dist/context-actions/ContextMenuRoot.js +1 -1
  136. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  137. package/dist/context-actions/GlobalContextAction.js +1 -1
  138. package/dist/context-actions/GlobalContextAction.js.map +1 -1
  139. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  140. package/dist/context-actions/index.js.map +1 -1
  141. package/dist/declaration.d.js.map +1 -1
  142. package/dist/dialogs/ActionButtonDialogTrigger.js +1 -2
  143. package/dist/dialogs/ActionButtonDialogTrigger.js.map +1 -1
  144. package/dist/dialogs/ConfirmationDialog.js +1 -2
  145. package/dist/dialogs/ConfirmationDialog.js.map +1 -1
  146. package/dist/dialogs/index.js.map +1 -1
  147. package/dist/index.js.map +1 -1
  148. package/dist/menu-actions/DropdownMenu.js +2 -2
  149. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  150. package/dist/menu-actions/Menu.js +4 -6
  151. package/dist/menu-actions/Menu.js.map +1 -1
  152. package/dist/menu-actions/index.js.map +1 -1
  153. package/dist/modal/DebouncedModal.js +1 -3
  154. package/dist/modal/DebouncedModal.js.map +1 -1
  155. package/dist/modal/InfoModal.js +1 -2
  156. package/dist/modal/InfoModal.js.map +1 -1
  157. package/dist/modal/Modal.d.ts.map +1 -1
  158. package/dist/modal/Modal.js +6 -3
  159. package/dist/modal/Modal.js.map +1 -1
  160. package/dist/modal/ModalBody.js.map +1 -1
  161. package/dist/modal/ModalFooter.js.map +1 -1
  162. package/dist/modal/ModalHeader.js +1 -2
  163. package/dist/modal/ModalHeader.js.map +1 -1
  164. package/dist/modal/index.js.map +1 -1
  165. package/dist/navigation/DashboardList.js +3 -4
  166. package/dist/navigation/DashboardList.js.map +1 -1
  167. package/dist/navigation/Menu.js.map +1 -1
  168. package/dist/navigation/MenuItem.js +1 -2
  169. package/dist/navigation/MenuItem.js.map +1 -1
  170. package/dist/navigation/NavTab.d.ts +1 -1
  171. package/dist/navigation/NavTab.d.ts.map +1 -1
  172. package/dist/navigation/NavTab.js +5 -6
  173. package/dist/navigation/NavTab.js.map +1 -1
  174. package/dist/navigation/NavTabList.css +1 -1
  175. package/dist/navigation/NavTabList.css.map +1 -1
  176. package/dist/navigation/NavTabList.js +5 -6
  177. package/dist/navigation/NavTabList.js.map +1 -1
  178. package/dist/navigation/Page.js +1 -2
  179. package/dist/navigation/Page.js.map +1 -1
  180. package/dist/navigation/Stack.js +1 -3
  181. package/dist/navigation/Stack.js.map +1 -1
  182. package/dist/navigation/index.js.map +1 -1
  183. package/dist/popper/Popper.d.ts +2 -14
  184. package/dist/popper/Popper.d.ts.map +1 -1
  185. package/dist/popper/Popper.js +21 -29
  186. package/dist/popper/Popper.js.map +1 -1
  187. package/dist/popper/Tooltip.d.ts.map +1 -1
  188. package/dist/popper/Tooltip.js +18 -12
  189. package/dist/popper/Tooltip.js.map +1 -1
  190. package/dist/popper/index.js.map +1 -1
  191. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  192. package/dist/shortcuts/NavigationShortcuts.js +1 -1
  193. package/dist/shortcuts/NavigationShortcuts.js.map +1 -1
  194. package/dist/shortcuts/Shortcut.js +11 -13
  195. package/dist/shortcuts/Shortcut.js.map +1 -1
  196. package/dist/shortcuts/ShortcutRegistry.js +1 -1
  197. package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
  198. package/dist/shortcuts/index.js.map +1 -1
  199. package/dist/spectrum/ActionGroup.js.map +1 -1
  200. package/dist/spectrum/ActionMenu.js.map +1 -1
  201. package/dist/spectrum/CheckboxGroup.js.map +1 -1
  202. package/dist/spectrum/Heading.js.map +1 -1
  203. package/dist/spectrum/ItemContent.js +2 -4
  204. package/dist/spectrum/ItemContent.js.map +1 -1
  205. package/dist/spectrum/ItemTooltip.js.map +1 -1
  206. package/dist/spectrum/ListActionGroup.js.map +1 -1
  207. package/dist/spectrum/ListActionMenu.js.map +1 -1
  208. package/dist/spectrum/TabPanels.d.ts.map +1 -1
  209. package/dist/spectrum/TabPanels.js +8 -5
  210. package/dist/spectrum/TabPanels.js.map +1 -1
  211. package/dist/spectrum/Text.js.map +1 -1
  212. package/dist/spectrum/View.js.map +1 -1
  213. package/dist/spectrum/buttons.js.map +1 -1
  214. package/dist/spectrum/collections.js.map +1 -1
  215. package/dist/spectrum/comboBox/ComboBox.js.map +1 -1
  216. package/dist/spectrum/comboBox/ComboBoxNormalized.js.map +1 -1
  217. package/dist/spectrum/comboBox/index.js.map +1 -1
  218. package/dist/spectrum/content.js.map +1 -1
  219. package/dist/spectrum/dateAndTime.js.map +1 -1
  220. package/dist/spectrum/forms.js.map +1 -1
  221. package/dist/spectrum/icons.js.map +1 -1
  222. package/dist/spectrum/index.js.map +1 -1
  223. package/dist/spectrum/layout.js.map +1 -1
  224. package/dist/spectrum/listView/ListView.js.map +1 -1
  225. package/dist/spectrum/listView/ListViewNormalized.js +1 -2
  226. package/dist/spectrum/listView/ListViewNormalized.js.map +1 -1
  227. package/dist/spectrum/listView/ListViewWrapper.css +6 -6
  228. package/dist/spectrum/listView/ListViewWrapper.css.map +1 -1
  229. package/dist/spectrum/listView/ListViewWrapper.js.map +1 -1
  230. package/dist/spectrum/listView/index.js.map +1 -1
  231. package/dist/spectrum/navigation.js.map +1 -1
  232. package/dist/spectrum/overlays.js.map +1 -1
  233. package/dist/spectrum/picker/Picker.js.map +1 -1
  234. package/dist/spectrum/picker/PickerNormalized.js.map +1 -1
  235. package/dist/spectrum/picker/PickerProps.js.map +1 -1
  236. package/dist/spectrum/picker/index.js.map +1 -1
  237. package/dist/spectrum/picker/usePickerItemScale.js.map +1 -1
  238. package/dist/spectrum/picker/usePickerNormalizedProps.d.ts +1 -2
  239. package/dist/spectrum/picker/usePickerNormalizedProps.d.ts.map +1 -1
  240. package/dist/spectrum/picker/usePickerNormalizedProps.js.map +1 -1
  241. package/dist/spectrum/picker/usePickerProps.js.map +1 -1
  242. package/dist/spectrum/picker/usePickerScrollOnOpen.js +1 -1
  243. package/dist/spectrum/picker/usePickerScrollOnOpen.js.map +1 -1
  244. package/dist/spectrum/shared.js.map +1 -1
  245. package/dist/spectrum/status.js.map +1 -1
  246. package/dist/spectrum/utils/index.js.map +1 -1
  247. package/dist/spectrum/utils/itemUtils.d.ts +2 -2
  248. package/dist/spectrum/utils/itemUtils.d.ts.map +1 -1
  249. package/dist/spectrum/utils/itemUtils.js +5 -1
  250. package/dist/spectrum/utils/itemUtils.js.map +1 -1
  251. package/dist/spectrum/utils/itemWrapperUtils.js +3 -4
  252. package/dist/spectrum/utils/itemWrapperUtils.js.map +1 -1
  253. package/dist/spectrum/utils/propsUtils.js.map +1 -1
  254. package/dist/spectrum/utils/themeUtils.js.map +1 -1
  255. package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js +1 -1
  256. package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js.map +1 -1
  257. package/dist/spectrum/utils/useRenderNormalizedItem.js +1 -2
  258. package/dist/spectrum/utils/useRenderNormalizedItem.js.map +1 -1
  259. package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js +1 -1
  260. package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js.map +1 -1
  261. package/dist/spectrum/utils/useStringifiedMultiSelection.d.ts +1 -1
  262. package/dist/spectrum/utils/useStringifiedMultiSelection.d.ts.map +1 -1
  263. package/dist/spectrum/utils/useStringifiedMultiSelection.js.map +1 -1
  264. package/dist/spectrum/utils/useStringifiedSelection.d.ts +1 -1
  265. package/dist/spectrum/utils/useStringifiedSelection.d.ts.map +1 -1
  266. package/dist/spectrum/utils/useStringifiedSelection.js.map +1 -1
  267. package/dist/theme/Logo.js.map +1 -1
  268. package/dist/theme/SpectrumThemeProvider.js.map +1 -1
  269. package/dist/theme/ThemeModel.js +1 -0
  270. package/dist/theme/ThemeModel.js.map +1 -1
  271. package/dist/theme/ThemePicker.d.ts.map +1 -1
  272. package/dist/theme/ThemePicker.js +3 -1
  273. package/dist/theme/ThemePicker.js.map +1 -1
  274. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  275. package/dist/theme/ThemeProvider.js +2 -3
  276. package/dist/theme/ThemeProvider.js.map +1 -1
  277. package/dist/theme/ThemeUtils.js.map +1 -1
  278. package/dist/theme/colorUtils.js.map +1 -1
  279. package/dist/theme/index.js.map +1 -1
  280. package/dist/theme/theme-dark/index.js.map +1 -1
  281. package/dist/theme/theme-light/index.js.map +1 -1
  282. package/dist/theme/theme-spectrum/index.js.map +1 -1
  283. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css +1 -1
  284. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css.map +1 -1
  285. package/dist/theme/useExternalTheme.js.map +1 -1
  286. package/dist/theme/useSpectrumThemeProvider.js.map +1 -1
  287. package/dist/theme/useTheme.js.map +1 -1
  288. package/dist/transitions/FadeTransition.d.ts +7 -4
  289. package/dist/transitions/FadeTransition.d.ts.map +1 -1
  290. package/dist/transitions/FadeTransition.js +33 -6
  291. package/dist/transitions/FadeTransition.js.map +1 -1
  292. package/dist/transitions/SlideTransition.d.ts +5 -4
  293. package/dist/transitions/SlideTransition.d.ts.map +1 -1
  294. package/dist/transitions/SlideTransition.js +23 -6
  295. package/dist/transitions/SlideTransition.js.map +1 -1
  296. package/dist/transitions/index.js.map +1 -1
  297. package/package.json +12 -13
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonDialogTrigger.js","names":["FontAwesomeIcon","ActionButton","DialogTrigger","Icon","Text","Tooltip","jsx","_jsx","jsxs","_jsxs","ActionButtonDialogTrigger","_ref","ariaLabel","icon","isQuiet","labelText","children","onOpenChange","tooltip","styleProps","_objectWithoutProperties","_excluded","iconClassName","undefined","type","_objectSpread","UNSAFE_className"],"sources":["../../src/dialogs/ActionButtonDialogTrigger.tsx"],"sourcesContent":["import { type ReactElement } from 'react';\nimport type { SpectrumDialogClose } from '@react-types/dialog';\nimport type { StyleProps } from '@react-types/shared';\nimport type { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ActionButton, DialogTrigger, Icon, Text } from '../spectrum';\nimport { Tooltip } from '../popper';\n\nexport interface ActionButtonDialogTriggerProps extends StyleProps {\n icon: IconDefinition;\n isQuiet?: boolean;\n labelText?: string;\n ariaLabel?: string;\n tooltip?: string;\n children: SpectrumDialogClose | ReactElement;\n onOpenChange?: (isOpen: boolean) => void;\n}\n\n/**\n * Dialog trigger based on an ActionButton.\n */\nexport function ActionButtonDialogTrigger({\n ariaLabel,\n icon,\n isQuiet,\n labelText,\n children,\n onOpenChange,\n tooltip,\n ...styleProps\n}: ActionButtonDialogTriggerProps): JSX.Element {\n const iconClassName =\n labelText == null && tooltip != null\n ? 'action-button-icon-with-tooltip'\n : undefined;\n\n return (\n <DialogTrigger type=\"popover\" onOpenChange={onOpenChange}>\n <ActionButton\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...styleProps}\n aria-label={ariaLabel ?? labelText}\n isQuiet={isQuiet}\n >\n <Icon UNSAFE_className={iconClassName}>\n <FontAwesomeIcon icon={icon} />\n </Icon>\n {labelText == null ? null : <Text>{labelText}</Text>}\n {tooltip == null ? null : <Tooltip>{tooltip}</Tooltip>}\n </ActionButton>\n {children}\n </DialogTrigger>\n );\n}\n\nexport default ActionButtonDialogTrigger;\n"],"mappings":";;;;;;;;AAIA,SAASA,eAAe,QAAQ,gCAAgC;AAAC,SACxDC,YAAY,EAAEC,aAAa,EAAEC,IAAI,EAAEC,IAAI;AAAA,SACvCC,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAYhB;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CAAAC,IAAA,EASO;EAAA,IATN;MACxCC,SAAS;MACTC,IAAI;MACJC,OAAO;MACPC,SAAS;MACTC,QAAQ;MACRC,YAAY;MACZC;IAE8B,CAAC,GAAAP,IAAA;IAD5BQ,UAAU,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA;EAEb,IAAMC,aAAa,GACjBP,SAAS,IAAI,IAAI,IAAIG,OAAO,IAAI,IAAI,GAChC,iCAAiC,GACjCK,SAAS;EAEf,oBACEd,KAAA,CAACP,aAAa;IAACsB,IAAI,EAAC,SAAS;IAACP,YAAY,EAAEA,YAAa;IAAAD,QAAA,gBACvDP,KAAA,CAACR;IACC;IAAA,EAAAwB,aAAA,CAAAA,aAAA,KACIN,UAAU;MACd,cAAYP,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIG,SAAU;MACnCD,OAAO,EAAEA,OAAQ;MAAAE,QAAA,gBAEjBT,IAAA,CAACJ,IAAI;QAACuB,gBAAgB,EAAEJ,aAAc;QAAAN,QAAA,eACpCT,IAAA,CAACP,eAAe;UAACa,IAAI,EAAEA;QAAK,CAAE;MAAC,CAC3B,CAAC,EACNE,SAAS,IAAI,IAAI,GAAG,IAAI,gBAAGR,IAAA,CAACH,IAAI;QAAAY,QAAA,EAAED;MAAS,CAAO,CAAC,EACnDG,OAAO,IAAI,IAAI,GAAG,IAAI,gBAAGX,IAAA,CAACF,OAAO;QAAAW,QAAA,EAAEE;MAAO,CAAU,CAAC;IAAA,EAC1C,CAAC,EACdF,QAAQ;EAAA,CACI,CAAC;AAEpB;AAEA,eAAeN,yBAAyB"}
1
+ {"version":3,"file":"ActionButtonDialogTrigger.js","names":["FontAwesomeIcon","ActionButton","DialogTrigger","Icon","Text","Tooltip","jsx","_jsx","jsxs","_jsxs","ActionButtonDialogTrigger","_ref","ariaLabel","icon","isQuiet","labelText","children","onOpenChange","tooltip","styleProps","_objectWithoutProperties","_excluded","iconClassName","undefined","type","_objectSpread","UNSAFE_className"],"sources":["../../src/dialogs/ActionButtonDialogTrigger.tsx"],"sourcesContent":["import { type ReactElement } from 'react';\nimport type { SpectrumDialogClose } from '@react-types/dialog';\nimport type { StyleProps } from '@react-types/shared';\nimport type { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ActionButton, DialogTrigger, Icon, Text } from '../spectrum';\nimport { Tooltip } from '../popper';\n\nexport interface ActionButtonDialogTriggerProps extends StyleProps {\n icon: IconDefinition;\n isQuiet?: boolean;\n labelText?: string;\n ariaLabel?: string;\n tooltip?: string;\n children: SpectrumDialogClose | ReactElement;\n onOpenChange?: (isOpen: boolean) => void;\n}\n\n/**\n * Dialog trigger based on an ActionButton.\n */\nexport function ActionButtonDialogTrigger({\n ariaLabel,\n icon,\n isQuiet,\n labelText,\n children,\n onOpenChange,\n tooltip,\n ...styleProps\n}: ActionButtonDialogTriggerProps): JSX.Element {\n const iconClassName =\n labelText == null && tooltip != null\n ? 'action-button-icon-with-tooltip'\n : undefined;\n\n return (\n <DialogTrigger type=\"popover\" onOpenChange={onOpenChange}>\n <ActionButton\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...styleProps}\n aria-label={ariaLabel ?? labelText}\n isQuiet={isQuiet}\n >\n <Icon UNSAFE_className={iconClassName}>\n <FontAwesomeIcon icon={icon} />\n </Icon>\n {labelText == null ? null : <Text>{labelText}</Text>}\n {tooltip == null ? null : <Tooltip>{tooltip}</Tooltip>}\n </ActionButton>\n {children}\n </DialogTrigger>\n );\n}\n\nexport default ActionButtonDialogTrigger;\n"],"mappings":";;;;;;;;AAIA,SAASA,eAAe,QAAQ,gCAAgC;AAAC,SACxDC,YAAY,EAAEC,aAAa,EAAEC,IAAI,EAAEC,IAAI;AAAA,SACvCC,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYhB;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CAAAC,IAAA,EASO;EAAA,IATN;MACxCC,SAAS;MACTC,IAAI;MACJC,OAAO;MACPC,SAAS;MACTC,QAAQ;MACRC,YAAY;MACZC;IAE8B,CAAC,GAAAP,IAAA;IAD5BQ,UAAU,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA;EAEb,IAAMC,aAAa,GACjBP,SAAS,IAAI,IAAI,IAAIG,OAAO,IAAI,IAAI,GAChC,iCAAiC,GACjCK,SAAS;EAEf,oBACEd,KAAA,CAACP,aAAa;IAACsB,IAAI,EAAC,SAAS;IAACP,YAAY,EAAEA,YAAa;IAAAD,QAAA,gBACvDP,KAAA,CAACR;IACC;IAAA,EAAAwB,aAAA,CAAAA,aAAA,KACIN,UAAU;MACd,cAAYP,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIG,SAAU;MACnCD,OAAO,EAAEA,OAAQ;MAAAE,QAAA,gBAEjBT,IAAA,CAACJ,IAAI;QAACuB,gBAAgB,EAAEJ,aAAc;QAAAN,QAAA,eACpCT,IAAA,CAACP,eAAe;UAACa,IAAI,EAAEA;QAAK,CAAE;MAAC,CAC3B,CAAC,EACNE,SAAS,IAAI,IAAI,GAAG,IAAI,gBAAGR,IAAA,CAACH,IAAI;QAAAY,QAAA,EAAED;MAAS,CAAO,CAAC,EACnDG,OAAO,IAAI,IAAI,GAAG,IAAI,gBAAGX,IAAA,CAACF,OAAO;QAAAW,QAAA,EAAEE;MAAO,CAAU,CAAC;IAAA,EAC1C,CAAC,EACdF,QAAQ;EAAA,CACI,CAAC;AAEpB;AAEA,eAAeN,yBAAyB","ignoreList":[]}
@@ -8,8 +8,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
8
8
  import { useFormWithDetachedSubmitButton } from '@deephaven/react-hooks';
9
9
  import { SpectrumButton, ButtonGroup, Content, Dialog, Divider, Form, Heading } from "../spectrum/index.js";
10
10
  import styles from "../SpectrumComponent.module.css";
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
12
  export function ConfirmationDialog(_ref) {
14
13
  var {
15
14
  heading,
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationDialog.js","names":["useFormWithDetachedSubmitButton","SpectrumButton","ButtonGroup","Content","Dialog","Divider","Form","Heading","styles","jsx","_jsx","jsxs","_jsxs","ConfirmationDialog","_ref","heading","confirmationButtonLabel","children","onCancel","onConfirm","formProps","submitButtonProps","level","UNSAFE_className","spectrumDialogComponentHeading","_objectSpread","variant","onPress","style","type"],"sources":["../../src/dialogs/ConfirmationDialog.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { type ReactElement, type ReactNode } from 'react';\nimport type { SpectrumLabelableProps } from '@react-types/shared';\nimport { useFormWithDetachedSubmitButton } from '@deephaven/react-hooks';\nimport {\n SpectrumButton,\n ButtonGroup,\n Content,\n Dialog,\n Divider,\n Form,\n Heading,\n} from '../spectrum';\nimport styles from '../SpectrumComponent.module.scss';\n\nexport interface ConfirmationDialogProps {\n heading: ReactNode;\n confirmationButtonLabel: string;\n children:\n | ReactElement<SpectrumLabelableProps>\n | ReactElement<SpectrumLabelableProps>[];\n onCancel: () => void;\n onConfirm: () => void;\n}\n\nexport function ConfirmationDialog({\n heading,\n confirmationButtonLabel,\n children,\n onCancel,\n onConfirm,\n}: ConfirmationDialogProps): JSX.Element {\n const { formProps, submitButtonProps } = useFormWithDetachedSubmitButton();\n\n return (\n <Dialog>\n <Heading\n level={3}\n UNSAFE_className={styles.spectrumDialogComponentHeading}\n >\n {heading}\n </Heading>\n <Divider />\n <Content>\n <Form\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...formProps}\n >\n {children}\n </Form>\n </Content>\n <ButtonGroup>\n <SpectrumButton variant=\"secondary\" onPress={onCancel}>\n Cancel\n </SpectrumButton>\n <SpectrumButton\n {...submitButtonProps}\n // eslint-disable-next-line react/style-prop-object\n style=\"fill\"\n variant=\"negative\"\n onPress={onConfirm}\n type=\"submit\"\n >\n {confirmationButtonLabel}\n </SpectrumButton>\n </ButtonGroup>\n </Dialog>\n );\n}\n\nexport default ConfirmationDialog;\n"],"mappings":";;;;;AAAA;;AAGA,SAASA,+BAA+B,QAAQ,wBAAwB;AAAC,SAEvEC,cAAc,EACdC,WAAW,EACXC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,OAAO;AAAA,OAEFC,MAAM;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAYb,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAMO;EAAA,IANN;IACjCC,OAAO;IACPC,uBAAuB;IACvBC,QAAQ;IACRC,QAAQ;IACRC;EACuB,CAAC,GAAAL,IAAA;EACxB,IAAM;IAAEM,SAAS;IAAEC;EAAkB,CAAC,GAAGrB,+BAA+B,CAAC,CAAC;EAE1E,oBACEY,KAAA,CAACR,MAAM;IAAAa,QAAA,gBACLP,IAAA,CAACH,OAAO;MACNe,KAAK,EAAE,CAAE;MACTC,gBAAgB,EAAEf,MAAM,CAACgB,8BAA+B;MAAAP,QAAA,EAEvDF;IAAO,CACD,CAAC,eACVL,IAAA,CAACL,OAAO,IAAE,CAAC,eACXK,IAAA,CAACP,OAAO;MAAAc,QAAA,eACNP,IAAA,CAACJ;MACC;MAAA,EAAAmB,aAAA,CAAAA,aAAA,KACIL,SAAS;QAAAH,QAAA,EAEZA;MAAQ,EACL;IAAC,CACA,CAAC,eACVL,KAAA,CAACV,WAAW;MAAAe,QAAA,gBACVP,IAAA,CAACT,cAAc;QAACyB,OAAO,EAAC,WAAW;QAACC,OAAO,EAAET,QAAS;QAAAD,QAAA,EAAC;MAEvD,CAAgB,CAAC,eACjBP,IAAA,CAACT,cAAc,EAAAwB,aAAA,CAAAA,aAAA,KACTJ,iBAAiB;QACrB;QACAO,KAAK,EAAC,MAAM;QACZF,OAAO,EAAC,UAAU;QAClBC,OAAO,EAAER,SAAU;QACnBU,IAAI,EAAC,QAAQ;QAAAZ,QAAA,EAEZD;MAAuB,EACV,CAAC;IAAA,CACN,CAAC;EAAA,CACR,CAAC;AAEb;AAEA,eAAeH,kBAAkB"}
1
+ {"version":3,"file":"ConfirmationDialog.js","names":["useFormWithDetachedSubmitButton","SpectrumButton","ButtonGroup","Content","Dialog","Divider","Form","Heading","styles","jsx","_jsx","jsxs","_jsxs","ConfirmationDialog","_ref","heading","confirmationButtonLabel","children","onCancel","onConfirm","formProps","submitButtonProps","level","UNSAFE_className","spectrumDialogComponentHeading","_objectSpread","variant","onPress","style","type"],"sources":["../../src/dialogs/ConfirmationDialog.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { type ReactElement, type ReactNode } from 'react';\nimport type { SpectrumLabelableProps } from '@react-types/shared';\nimport { useFormWithDetachedSubmitButton } from '@deephaven/react-hooks';\nimport {\n SpectrumButton,\n ButtonGroup,\n Content,\n Dialog,\n Divider,\n Form,\n Heading,\n} from '../spectrum';\nimport styles from '../SpectrumComponent.module.scss';\n\nexport interface ConfirmationDialogProps {\n heading: ReactNode;\n confirmationButtonLabel: string;\n children:\n | ReactElement<SpectrumLabelableProps>\n | ReactElement<SpectrumLabelableProps>[];\n onCancel: () => void;\n onConfirm: () => void;\n}\n\nexport function ConfirmationDialog({\n heading,\n confirmationButtonLabel,\n children,\n onCancel,\n onConfirm,\n}: ConfirmationDialogProps): JSX.Element {\n const { formProps, submitButtonProps } = useFormWithDetachedSubmitButton();\n\n return (\n <Dialog>\n <Heading\n level={3}\n UNSAFE_className={styles.spectrumDialogComponentHeading}\n >\n {heading}\n </Heading>\n <Divider />\n <Content>\n <Form\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...formProps}\n >\n {children}\n </Form>\n </Content>\n <ButtonGroup>\n <SpectrumButton variant=\"secondary\" onPress={onCancel}>\n Cancel\n </SpectrumButton>\n <SpectrumButton\n {...submitButtonProps}\n // eslint-disable-next-line react/style-prop-object\n style=\"fill\"\n variant=\"negative\"\n onPress={onConfirm}\n type=\"submit\"\n >\n {confirmationButtonLabel}\n </SpectrumButton>\n </ButtonGroup>\n </Dialog>\n );\n}\n\nexport default ConfirmationDialog;\n"],"mappings":";;;;;AAAA;;AAGA,SAASA,+BAA+B,QAAQ,wBAAwB;AAAC,SAEvEC,cAAc,EACdC,WAAW,EACXC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,OAAO;AAAA,OAEFC,MAAM;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYb,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAMO;EAAA,IANN;IACjCC,OAAO;IACPC,uBAAuB;IACvBC,QAAQ;IACRC,QAAQ;IACRC;EACuB,CAAC,GAAAL,IAAA;EACxB,IAAM;IAAEM,SAAS;IAAEC;EAAkB,CAAC,GAAGrB,+BAA+B,CAAC,CAAC;EAE1E,oBACEY,KAAA,CAACR,MAAM;IAAAa,QAAA,gBACLP,IAAA,CAACH,OAAO;MACNe,KAAK,EAAE,CAAE;MACTC,gBAAgB,EAAEf,MAAM,CAACgB,8BAA+B;MAAAP,QAAA,EAEvDF;IAAO,CACD,CAAC,eACVL,IAAA,CAACL,OAAO,IAAE,CAAC,eACXK,IAAA,CAACP,OAAO;MAAAc,QAAA,eACNP,IAAA,CAACJ;MACC;MAAA,EAAAmB,aAAA,CAAAA,aAAA,KACIL,SAAS;QAAAH,QAAA,EAEZA;MAAQ,EACL;IAAC,CACA,CAAC,eACVL,KAAA,CAACV,WAAW;MAAAe,QAAA,gBACVP,IAAA,CAACT,cAAc;QAACyB,OAAO,EAAC,WAAW;QAACC,OAAO,EAAET,QAAS;QAAAD,QAAA,EAAC;MAEvD,CAAgB,CAAC,eACjBP,IAAA,CAACT,cAAc,EAAAwB,aAAA,CAAAA,aAAA,KACTJ,iBAAiB;QACrB;QACAO,KAAK,EAAC,MAAM;QACZF,OAAO,EAAC,UAAU;QAClBC,OAAO,EAAER,SAAU;QACnBU,IAAI,EAAC,QAAQ;QAAAZ,QAAA,EAEZD;MAAuB,EACV,CAAC;IAAA,CACN,CAAC;EAAA,CACR,CAAC;AAEb;AAEA,eAAeH,kBAAkB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/dialogs/index.ts"],"sourcesContent":["export * from './ActionButtonDialogTrigger';\nexport * from './ConfirmationDialog';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/dialogs/index.ts"],"sourcesContent":["export * from './ActionButtonDialogTrigger';\nexport * from './ConfirmationDialog';\n"],"mappings":"","ignoreList":[]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","CardFlip","Collapse","Checkbox","CopyButton","CustomTimeSelect","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","ErrorView","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RandomAreaPlotAnimation","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport * from './actions';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport * from './Button';\nexport * from './BulkActionBar';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport * from './ComponentUtils';\nexport { default as CopyButton } from './CopyButton';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport * from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport * from './dialogs';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport * from './ErrorBoundary';\nexport { default as ErrorView } from './ErrorView';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './MaskedInputUtils';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RandomAreaPlotAnimation } from './RandomAreaPlotAnimation';\nexport * from './SearchableCombobox';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport * from './spectrum';\nexport * from './SplitButtonGroup';\nexport * from './TableViewEmptyState';\nexport * from './TextWithTooltip';\nexport * from './theme';\nexport * from './transitions';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport * from './UIConstants';\nexport { default as UISwitch } from './UISwitch';\nexport * from './XComponent';\nexport * from './XComponentMap';\n"],"mappings":";SAESA,OAAO,IAAIC,iBAAiB;AAAA,SAC5BD,OAAO,IAAIE,kBAAkB;AAAA,SAC7BF,OAAO,IAAIG,UAAU;AAAA;AAAA;AAAA,SAGrBH,OAAO,IAAII,QAAQ;AAAA;AAAA,SAEnBJ,OAAO,IAAIK,QAAQ;AAAA,SACnBL,OAAO,IAAIM,QAAQ;AAAA;AAAA,SAEnBN,OAAO,IAAIO,UAAU;AAAA,SACrBP,OAAO,IAAIQ,gBAAgB;AAAA;AAAA,SAE3BR,OAAO,IAAIS,SAAS;AAAA,SACpBT,OAAO,IAAIU,oBAAoB;AAAA;AAAA,SAE/BV,OAAO,IAAIW,iBAAiB;AAAA;AAAA,SAE5BX,OAAO,IAAIY,SAAS;AAAA,SACpBZ,OAAO,IAAIa,gBAAgB;AAAA;AAAA,SAE3Bb,OAAO,IAAIc,SAAS;AAAA,SACpBd,OAAO,IAAIe,wBAAwB;AAAA;AAAA;AAAA,SAGnCf,OAAO,IAAIgB,YAAY;AAAA,SACvBhB,OAAO,IAAIiB,cAAc;AAAA,SACzBjB,OAAO,IAAIkB,cAAc;AAAA,SACzBlB,OAAO,IAAImB,YAAY;AAAA;AAAA,SAEvBnB,OAAO,IAAIoB,WAAW;AAAA;AAAA;AAAA;AAAA,SAItBpB,OAAO,IAAIqB,MAAM;AAAA;AAAA;AAAA,SAGjBrB,OAAO,IAAIsB,uBAAuB;AAAA;AAAA,SAElCtB,OAAO,IAAIuB,MAAM;AAAA,SACjBvB,OAAO,IAAIwB,WAAW;AAAA,SACtBxB,OAAO,IAAIyB,eAAe;AAAA;AAAA;AAAA,SAG1BzB,OAAO,IAAI0B,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOzB1B,OAAO,IAAI2B,WAAW;AAAA,SACtB3B,OAAO,IAAI4B,SAAS;AAAA,SACpB5B,OAAO,IAAI6B,UAAU;AAAA,SACrB7B,OAAO,IAAI8B,iBAAiB;AAAA;AAAA,SAE5B9B,OAAO,IAAI+B,QAAQ;AAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","CardFlip","Collapse","Checkbox","CopyButton","CustomTimeSelect","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","ErrorView","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RandomAreaPlotAnimation","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport * from './actions';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport * from './Button';\nexport * from './BulkActionBar';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport * from './ComponentUtils';\nexport { default as CopyButton } from './CopyButton';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport * from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport * from './dialogs';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport * from './ErrorBoundary';\nexport { default as ErrorView } from './ErrorView';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './MaskedInputUtils';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RandomAreaPlotAnimation } from './RandomAreaPlotAnimation';\nexport * from './SearchableCombobox';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport * from './spectrum';\nexport * from './SplitButtonGroup';\nexport * from './TableViewEmptyState';\nexport * from './TextWithTooltip';\nexport * from './theme';\nexport * from './transitions';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport * from './UIConstants';\nexport { default as UISwitch } from './UISwitch';\nexport * from './XComponent';\nexport * from './XComponentMap';\n"],"mappings":";SAESA,OAAO,IAAIC,iBAAiB;AAAA,SAC5BD,OAAO,IAAIE,kBAAkB;AAAA,SAC7BF,OAAO,IAAIG,UAAU;AAAA;AAAA;AAAA,SAGrBH,OAAO,IAAII,QAAQ;AAAA;AAAA,SAEnBJ,OAAO,IAAIK,QAAQ;AAAA,SACnBL,OAAO,IAAIM,QAAQ;AAAA;AAAA,SAEnBN,OAAO,IAAIO,UAAU;AAAA,SACrBP,OAAO,IAAIQ,gBAAgB;AAAA;AAAA,SAE3BR,OAAO,IAAIS,SAAS;AAAA,SACpBT,OAAO,IAAIU,oBAAoB;AAAA;AAAA,SAE/BV,OAAO,IAAIW,iBAAiB;AAAA;AAAA,SAE5BX,OAAO,IAAIY,SAAS;AAAA,SACpBZ,OAAO,IAAIa,gBAAgB;AAAA;AAAA,SAE3Bb,OAAO,IAAIc,SAAS;AAAA,SACpBd,OAAO,IAAIe,wBAAwB;AAAA;AAAA;AAAA,SAGnCf,OAAO,IAAIgB,YAAY;AAAA,SACvBhB,OAAO,IAAIiB,cAAc;AAAA,SACzBjB,OAAO,IAAIkB,cAAc;AAAA,SACzBlB,OAAO,IAAImB,YAAY;AAAA;AAAA,SAEvBnB,OAAO,IAAIoB,WAAW;AAAA;AAAA;AAAA;AAAA,SAItBpB,OAAO,IAAIqB,MAAM;AAAA;AAAA;AAAA,SAGjBrB,OAAO,IAAIsB,uBAAuB;AAAA;AAAA,SAElCtB,OAAO,IAAIuB,MAAM;AAAA,SACjBvB,OAAO,IAAIwB,WAAW;AAAA,SACtBxB,OAAO,IAAIyB,eAAe;AAAA;AAAA;AAAA,SAG1BzB,OAAO,IAAI0B,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOzB1B,OAAO,IAAI2B,WAAW;AAAA,SACtB3B,OAAO,IAAI4B,SAAS;AAAA,SACpB5B,OAAO,IAAI6B,UAAU;AAAA,SACrB7B,OAAO,IAAI8B,iBAAiB;AAAA;AAAA,SAE5B9B,OAAO,IAAI+B,QAAQ;AAAA;AAAA","ignoreList":[]}
@@ -90,7 +90,7 @@ class DropdownMenu extends PureComponent {
90
90
  }
91
91
  closeMenu() {
92
92
  var _this$popper$current;
93
- (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.hide();
93
+ (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 || _this$popper$current.hide();
94
94
  }
95
95
  openMenu() {
96
96
  if (this.popper.current && !this.isOpen) {
@@ -100,7 +100,7 @@ class DropdownMenu extends PureComponent {
100
100
  }
101
101
  scheduleUpdate() {
102
102
  var _this$popper$current2;
103
- (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.scheduleUpdate();
103
+ (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 || _this$popper$current2.scheduleUpdate();
104
104
  }
105
105
  handleClick(e) {
106
106
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["React","PureComponent","classNames","Popper","Menu","jsx","_jsx","DropdownMenu","constructor","props","_defineProperty","handleClick","bind","handleCloseMenu","handleExited","container","createRef","parent","popper","isOpen","componentDidMount","isShown","_this$container$curre","current","parentElement","addEventListener","openMenu","componentDidUpdate","prevProps","window","requestAnimationFrame","closeMenu","componentWillUnmount","removeEventListener","_this$popper$current","hide","show","scheduleUpdate","_this$popper$current2","e","preventDefault","stopPropagation","onMenuClosed","render","actions","onMenuOpened","popperClassName","dataTestId","menuStyle","options","popperOptions","_objectSpread","placement","separateKeyboardMouse","className","ref","children","onExited","closeOnBlur","interactive","undefined"],"sources":["../../src/menu-actions/DropdownMenu.tsx"],"sourcesContent":["/**\n * Add dropdown menu that you add onto any component.\n *\n * Similar to the context-actions package, accepts list of actions to create a dropdown menu.\n * Note: Does not support nested sub-menus.\n *\n * Usage:\n * let actions = [{\n * title: 'My Action',\n * action: () => { alert('My Action Clicked!') }\n * icon: faPrint, // Limited to FontAwesome icons for now.\n * shortcut: Shortcut, // Shortcut class instance\n * group: ContextActions.groups.default, // What group to group the context action with\n * order: null // Int where to order within group\n * }];\n *\n * Usage:\n * 1. Auto bind click to open event to parent\n * <div>\n * Click in this container\n * <DropdownMenu actions={actions}/>\n * </div>\n *\n * 2. Control via prop\n * <div>\n * DropdownMenu will not react to the click event if isShown prop is used\n * <DropdownMenu actions={actions} isShown={isShown} />\n * </div>\n *\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { type PopperOptions } from 'popper.js';\nimport { Popper } from '../popper';\nimport Menu, { type MenuOptions } from './Menu';\nimport { type ContextAction } from '../context-actions/ContextActionUtils';\nimport './DropdownMenu.scss';\n\nexport type DropdownAction = ContextAction & { actions?: never };\n\nexport type DropdownActions =\n | (() => DropdownAction[])\n | DropdownAction\n | DropdownAction[];\n\ntype DropdownMenuProps = {\n // Override to prevent nested lists\n actions: DropdownActions;\n isShown: boolean | null;\n onMenuClosed: () => void;\n onMenuOpened: () => void;\n options: MenuOptions;\n popperOptions: PopperOptions;\n popperClassName: string;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\nclass DropdownMenu extends PureComponent<DropdownMenuProps> {\n static defaultProps = {\n isShown: null,\n onMenuClosed(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n options: {},\n popperOptions: {},\n popperClassName: '',\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n this.handleExited = this.handleExited.bind(this);\n\n this.container = React.createRef();\n this.parent = null;\n this.popper = React.createRef();\n\n this.isOpen = false;\n }\n\n componentDidMount(): void {\n const { isShown } = this.props;\n\n if (isShown === null) {\n if (this.container.current?.parentElement) {\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('click', this.handleClick);\n }\n } else if (isShown) {\n this.openMenu();\n }\n }\n\n componentDidUpdate(prevProps: DropdownMenuProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown !== null && isShown) {\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.openMenu();\n });\n } else {\n this.closeMenu();\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.parent) {\n this.parent.removeEventListener('click', this.handleClick);\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n parent: Element | null;\n\n popper: React.RefObject<Popper>;\n\n isOpen: boolean;\n\n closeMenu(): void {\n this.popper.current?.hide();\n }\n\n openMenu(): void {\n if (this.popper.current && !this.isOpen) {\n this.popper.current.show();\n this.isOpen = true;\n }\n }\n\n scheduleUpdate(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n\n this.openMenu();\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleExited(): void {\n this.isOpen = false;\n\n const { onMenuClosed } = this.props;\n onMenuClosed();\n }\n\n render(): JSX.Element {\n const {\n actions,\n onMenuOpened,\n popperClassName,\n 'data-testid': dataTestId,\n } = this.props;\n const { menuStyle } = this.props;\n let { options, popperOptions } = this.props;\n popperOptions = { placement: 'bottom', ...popperOptions };\n options = {\n separateKeyboardMouse: true,\n ...options,\n };\n return (\n <div\n className=\"menu-actions-listener\"\n ref={this.container}\n data-testid={dataTestId}\n >\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('menu-popper', popperClassName)}\n onExited={this.handleExited}\n closeOnBlur\n interactive\n >\n <Menu\n actions={actions}\n closeMenu={this.handleCloseMenu}\n onMenuOpened={onMenuOpened}\n options={options}\n menuStyle={menuStyle}\n />\n </Popper>\n </div>\n );\n }\n}\n\nexport default DropdownMenu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.js","names":["React","PureComponent","classNames","Popper","Menu","jsx","_jsx","DropdownMenu","constructor","props","_defineProperty","handleClick","bind","handleCloseMenu","handleExited","container","createRef","parent","popper","isOpen","componentDidMount","isShown","_this$container$curre","current","parentElement","addEventListener","openMenu","componentDidUpdate","prevProps","window","requestAnimationFrame","closeMenu","componentWillUnmount","removeEventListener","_this$popper$current","hide","show","scheduleUpdate","_this$popper$current2","e","preventDefault","stopPropagation","onMenuClosed","render","actions","onMenuOpened","popperClassName","dataTestId","menuStyle","options","popperOptions","_objectSpread","placement","separateKeyboardMouse","className","ref","children","onExited","closeOnBlur","interactive","undefined"],"sources":["../../src/menu-actions/DropdownMenu.tsx"],"sourcesContent":["/**\n * Add dropdown menu that you add onto any component.\n *\n * Similar to the context-actions package, accepts list of actions to create a dropdown menu.\n * Note: Does not support nested sub-menus.\n *\n * Usage:\n * let actions = [{\n * title: 'My Action',\n * action: () => { alert('My Action Clicked!') }\n * icon: faPrint, // Limited to FontAwesome icons for now.\n * shortcut: Shortcut, // Shortcut class instance\n * group: ContextActions.groups.default, // What group to group the context action with\n * order: null // Int where to order within group\n * }];\n *\n * Usage:\n * 1. Auto bind click to open event to parent\n * <div>\n * Click in this container\n * <DropdownMenu actions={actions}/>\n * </div>\n *\n * 2. Control via prop\n * <div>\n * DropdownMenu will not react to the click event if isShown prop is used\n * <DropdownMenu actions={actions} isShown={isShown} />\n * </div>\n *\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { type PopperOptions } from 'popper.js';\nimport { Popper } from '../popper';\nimport Menu, { type MenuOptions } from './Menu';\nimport { type ContextAction } from '../context-actions/ContextActionUtils';\nimport './DropdownMenu.scss';\n\nexport type DropdownAction = ContextAction & { actions?: never };\n\nexport type DropdownActions =\n | (() => DropdownAction[])\n | DropdownAction\n | DropdownAction[];\n\ntype DropdownMenuProps = {\n // Override to prevent nested lists\n actions: DropdownActions;\n isShown: boolean | null;\n onMenuClosed: () => void;\n onMenuOpened: () => void;\n options: MenuOptions;\n popperOptions: PopperOptions;\n popperClassName: string;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\nclass DropdownMenu extends PureComponent<DropdownMenuProps> {\n static defaultProps = {\n isShown: null,\n onMenuClosed(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n options: {},\n popperOptions: {},\n popperClassName: '',\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n this.handleExited = this.handleExited.bind(this);\n\n this.container = React.createRef();\n this.parent = null;\n this.popper = React.createRef();\n\n this.isOpen = false;\n }\n\n componentDidMount(): void {\n const { isShown } = this.props;\n\n if (isShown === null) {\n if (this.container.current?.parentElement) {\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('click', this.handleClick);\n }\n } else if (isShown) {\n this.openMenu();\n }\n }\n\n componentDidUpdate(prevProps: DropdownMenuProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown !== null && isShown) {\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.openMenu();\n });\n } else {\n this.closeMenu();\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.parent) {\n this.parent.removeEventListener('click', this.handleClick);\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n parent: Element | null;\n\n popper: React.RefObject<Popper>;\n\n isOpen: boolean;\n\n closeMenu(): void {\n this.popper.current?.hide();\n }\n\n openMenu(): void {\n if (this.popper.current && !this.isOpen) {\n this.popper.current.show();\n this.isOpen = true;\n }\n }\n\n scheduleUpdate(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n\n this.openMenu();\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleExited(): void {\n this.isOpen = false;\n\n const { onMenuClosed } = this.props;\n onMenuClosed();\n }\n\n render(): JSX.Element {\n const {\n actions,\n onMenuOpened,\n popperClassName,\n 'data-testid': dataTestId,\n } = this.props;\n const { menuStyle } = this.props;\n let { options, popperOptions } = this.props;\n popperOptions = { placement: 'bottom', ...popperOptions };\n options = {\n separateKeyboardMouse: true,\n ...options,\n };\n return (\n <div\n className=\"menu-actions-listener\"\n ref={this.container}\n data-testid={dataTestId}\n >\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('menu-popper', popperClassName)}\n onExited={this.handleExited}\n closeOnBlur\n interactive\n >\n <Menu\n actions={actions}\n closeMenu={this.handleCloseMenu}\n onMenuOpened={onMenuOpened}\n options={options}\n menuStyle={menuStyle}\n />\n </Popper>\n </div>\n );\n }\n}\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -47,7 +47,7 @@ class Menu extends PureComponent {
47
47
  var _this$container$curre;
48
48
  // set initial focus to container so keyboard navigation works
49
49
  // components can still override focus in onMenuOpened callback
50
- (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 ? void 0 : _this$container$curre.focus();
50
+ (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 || _this$container$curre.focus();
51
51
  var {
52
52
  onMenuOpened
53
53
  } = this.props;
@@ -131,11 +131,9 @@ class Menu extends PureComponent {
131
131
  if (e.key === 'Escape') {
132
132
  newFocus = null;
133
133
  } else if (e.key === 'ArrowUp' || e.key === 'Tab' && e.shiftKey === true) {
134
- var _newFocus;
135
- newFocus = ContextActionUtils.getNextMenuItem((_newFocus = newFocus) !== null && _newFocus !== void 0 ? _newFocus : 0, -1, menuItems);
134
+ newFocus = ContextActionUtils.getNextMenuItem(newFocus !== null && newFocus !== void 0 ? newFocus : 0, -1, menuItems);
136
135
  } else if (e.key === 'ArrowDown' || e.key === 'Tab' && e.shiftKey === false) {
137
- var _newFocus2;
138
- newFocus = ContextActionUtils.getNextMenuItem((_newFocus2 = newFocus) !== null && _newFocus2 !== void 0 ? _newFocus2 : 0, 1, menuItems);
136
+ newFocus = ContextActionUtils.getNextMenuItem(newFocus !== null && newFocus !== void 0 ? newFocus : 0, 1, menuItems);
139
137
  }
140
138
  if (oldFocus !== newFocus) {
141
139
  if (newFocus !== null) {
@@ -196,7 +194,7 @@ class Menu extends PureComponent {
196
194
  for (var i = 0; i < menuItems.length; i += 1) {
197
195
  var menuItem = menuItems[i];
198
196
  if (i > 0 && menuItem.group !== menuItems[i - 1].group) {
199
- menuItemElements.push( /*#__PURE__*/_jsx("hr", {}, "".concat(i, ".separator")));
197
+ menuItemElements.push(/*#__PURE__*/_jsx("hr", {}, "".concat(i, ".separator")));
200
198
  }
201
199
  var menuItemElement = /*#__PURE__*/_jsx(ContextMenuItem, {
202
200
  isKeyboardSelected: keyboardIndex === i,
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["React","PureComponent","ContextActionUtils","ContextMenuItem","jsx","_jsx","Menu","constructor","props","_options$initialKeybo","_defineProperty","handleKeyDown","bind","handleMenuItemClick","handleMenuItemMouseMove","handleMouseLeave","handleCloseMenu","container","createRef","oldFocus","document","activeElement","rAF","options","keyboardIndex","initialKeyboardIndex","state","menuItems","mouseIndex","componentDidMount","initMenu","window","requestAnimationFrame","_this$container$curre","current","focus","onMenuOpened","componentDidUpdate","prevProps","actions","componentWillUnmount","cancelAnimationFrame","getKeyboardIndex","separateKeyboardMouse","undefined","getMouseIndex","setKeyboardIndex","index","setState","setMouseIndex","getMenuItems","length","sortActions","concat","e","newFocus","key","shiftKey","_newFocus","getNextMenuItem","_newFocus2","closeMenu","HTMLElement","preventDefault","stopPropagation","closeAll","arguments","onMenuClosed","menuItem","disabled","action","nativeEvent","focusIndex","indexOf","render","menuItemElements","dataTestId","i","group","push","menuItemElement","isKeyboardSelected","isMouseSelected","onMenuItemClick","onMenuItemMouseMove","onMenuItemContextMenu","menuStyle","className","style","_objectSpread","ref","onKeyDown","onMouseLeave","role","tabIndex","children"],"sources":["../../src/menu-actions/Menu.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ContextActionUtils, {\n type ContextAction,\n} from '../context-actions/ContextActionUtils';\nimport ContextMenuItem from '../context-actions/ContextMenuItem';\n\nexport type MenuOptions = {\n doNotVerifyPosition?: boolean;\n separateKeyboardMouse?: boolean;\n initialKeyboardIndex?: number;\n};\n\ntype MenuProps = {\n actions: (() => ContextAction[]) | ContextAction | ContextAction[];\n closeMenu: (closeAll: boolean) => void;\n onMenuClosed: (menu: Menu) => void;\n onMenuOpened: (menu: Menu) => void;\n options: MenuOptions;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\ntype MenuState = {\n menuItems: ContextAction[];\n keyboardIndex: number;\n mouseIndex: number;\n};\n\n/**\n * Do not use this class directly. Use DropdownMenu instead.\n *\n * Generates list from actions for use by DropdownMenu.\n * It has beem split from the context-actions component, due to divergering requirements,\n * but still re-uses styling from context-menu. Depending on how usage evolves, may get split further.\n *\n */\n\nclass Menu extends PureComponent<MenuProps, MenuState> {\n static defaultProps = {\n closeMenu(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n onMenuClosed(): void {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: MenuProps) {\n super(props);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n\n this.container = React.createRef();\n this.oldFocus = document.activeElement;\n this.rAF = 0;\n\n const { options } = props;\n const keyboardIndex = options.initialKeyboardIndex ?? -1;\n this.state = {\n menuItems: [],\n keyboardIndex,\n mouseIndex: -1,\n };\n }\n\n componentDidMount(): void {\n this.initMenu();\n\n this.rAF = window.requestAnimationFrame(() => {\n // set initial focus to container so keyboard navigation works\n // components can still override focus in onMenuOpened callback\n this.container.current?.focus();\n const { onMenuOpened } = this.props;\n onMenuOpened(this);\n });\n }\n\n componentDidUpdate(prevProps: MenuProps): void {\n const { actions } = this.props;\n if (prevProps.actions !== actions) {\n this.initMenu();\n }\n }\n\n componentWillUnmount(): void {\n cancelAnimationFrame(this.rAF);\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n oldFocus: Element | null;\n\n rAF: number;\n\n getKeyboardIndex(): number | null {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n const { keyboardIndex } = this.state;\n return keyboardIndex;\n }\n\n return this.getMouseIndex();\n }\n\n setKeyboardIndex(index: number): void {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n this.setState({ keyboardIndex: index });\n } else {\n this.setMouseIndex(index);\n }\n }\n\n getMouseIndex(): number {\n const { mouseIndex } = this.state;\n return mouseIndex;\n }\n\n setMouseIndex(index: number): void {\n this.setState({ mouseIndex: index });\n }\n\n initMenu(): void {\n // cancel any pending close\n cancelAnimationFrame(this.rAF);\n\n this.setState({\n menuItems: [],\n });\n\n const { actions } = this.props;\n const menuItems = ContextActionUtils.getMenuItems(actions, false);\n\n if (menuItems.length > 0) {\n this.setState(state => ({\n menuItems: ContextActionUtils.sortActions(\n state.menuItems.concat(menuItems)\n ),\n }));\n }\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { menuItems } = this.state;\n const oldFocus = this.getKeyboardIndex();\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus != null && oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n\n if (e.key === 'Escape') {\n newFocus = null;\n } else if (\n e.key === 'ArrowUp' ||\n (e.key === 'Tab' && e.shiftKey === true)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n -1,\n menuItems\n );\n } else if (\n e.key === 'ArrowDown' ||\n (e.key === 'Tab' && e.shiftKey === false)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n 1,\n menuItems\n );\n }\n\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n closeMenu(closeAll = false): void {\n const { closeMenu, onMenuClosed } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleMenuItemClick(menuItem: ContextAction, e: React.SyntheticEvent): void {\n e.preventDefault();\n e.stopPropagation();\n\n if (\n menuItem != null &&\n (menuItem.disabled === undefined || !menuItem.disabled) &&\n menuItem.action != null\n ) {\n menuItem.action(e.nativeEvent);\n this.closeMenu(true);\n }\n }\n\n handleMenuItemMouseMove(menuItem: ContextAction): void {\n const { menuItems } = this.state;\n const focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n }\n\n handleMouseLeave(): void {\n this.setMouseIndex(-1);\n }\n\n render(): JSX.Element {\n const menuItemElements = [];\n const { 'data-testid': dataTestId } = this.props;\n const { keyboardIndex, menuItems, mouseIndex } = this.state;\n for (let i = 0; i < menuItems.length; i += 1) {\n const menuItem = menuItems[i];\n\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push(<hr key={`${i}.separator`} />);\n }\n\n const menuItemElement = (\n <ContextMenuItem\n key={i}\n isKeyboardSelected={keyboardIndex === i}\n isMouseSelected={mouseIndex === i}\n menuItem={menuItem}\n closeMenu={this.handleCloseMenu}\n onMenuItemClick={this.handleMenuItemClick}\n onMenuItemMouseMove={this.handleMenuItemMouseMove}\n onMenuItemContextMenu={() => false}\n />\n );\n\n menuItemElements.push(menuItemElement);\n }\n\n const { menuStyle } = this.props;\n\n return (\n <div\n className=\"context-menu-container\"\n style={{ ...menuStyle }}\n ref={this.container}\n onKeyDown={this.handleKeyDown}\n onMouseLeave={this.handleMouseLeave}\n role=\"menuitem\"\n tabIndex={0}\n data-testid={dataTestId}\n >\n {menuItemElements}\n </div>\n );\n }\n}\n\nexport default Menu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","names":["React","PureComponent","ContextActionUtils","ContextMenuItem","jsx","_jsx","Menu","constructor","props","_options$initialKeybo","_defineProperty","handleKeyDown","bind","handleMenuItemClick","handleMenuItemMouseMove","handleMouseLeave","handleCloseMenu","container","createRef","oldFocus","document","activeElement","rAF","options","keyboardIndex","initialKeyboardIndex","state","menuItems","mouseIndex","componentDidMount","initMenu","window","requestAnimationFrame","_this$container$curre","current","focus","onMenuOpened","componentDidUpdate","prevProps","actions","componentWillUnmount","cancelAnimationFrame","getKeyboardIndex","separateKeyboardMouse","undefined","getMouseIndex","setKeyboardIndex","index","setState","setMouseIndex","getMenuItems","length","sortActions","concat","e","newFocus","key","shiftKey","getNextMenuItem","closeMenu","HTMLElement","preventDefault","stopPropagation","closeAll","arguments","onMenuClosed","menuItem","disabled","action","nativeEvent","focusIndex","indexOf","render","menuItemElements","dataTestId","i","group","push","menuItemElement","isKeyboardSelected","isMouseSelected","onMenuItemClick","onMenuItemMouseMove","onMenuItemContextMenu","menuStyle","className","style","_objectSpread","ref","onKeyDown","onMouseLeave","role","tabIndex","children"],"sources":["../../src/menu-actions/Menu.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ContextActionUtils, {\n type ContextAction,\n} from '../context-actions/ContextActionUtils';\nimport ContextMenuItem from '../context-actions/ContextMenuItem';\n\nexport type MenuOptions = {\n doNotVerifyPosition?: boolean;\n separateKeyboardMouse?: boolean;\n initialKeyboardIndex?: number;\n};\n\ntype MenuProps = {\n actions: (() => ContextAction[]) | ContextAction | ContextAction[];\n closeMenu: (closeAll: boolean) => void;\n onMenuClosed: (menu: Menu) => void;\n onMenuOpened: (menu: Menu) => void;\n options: MenuOptions;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\ntype MenuState = {\n menuItems: ContextAction[];\n keyboardIndex: number;\n mouseIndex: number;\n};\n\n/**\n * Do not use this class directly. Use DropdownMenu instead.\n *\n * Generates list from actions for use by DropdownMenu.\n * It has beem split from the context-actions component, due to divergering requirements,\n * but still re-uses styling from context-menu. Depending on how usage evolves, may get split further.\n *\n */\n\nclass Menu extends PureComponent<MenuProps, MenuState> {\n static defaultProps = {\n closeMenu(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n onMenuClosed(): void {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: MenuProps) {\n super(props);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n\n this.container = React.createRef();\n this.oldFocus = document.activeElement;\n this.rAF = 0;\n\n const { options } = props;\n const keyboardIndex = options.initialKeyboardIndex ?? -1;\n this.state = {\n menuItems: [],\n keyboardIndex,\n mouseIndex: -1,\n };\n }\n\n componentDidMount(): void {\n this.initMenu();\n\n this.rAF = window.requestAnimationFrame(() => {\n // set initial focus to container so keyboard navigation works\n // components can still override focus in onMenuOpened callback\n this.container.current?.focus();\n const { onMenuOpened } = this.props;\n onMenuOpened(this);\n });\n }\n\n componentDidUpdate(prevProps: MenuProps): void {\n const { actions } = this.props;\n if (prevProps.actions !== actions) {\n this.initMenu();\n }\n }\n\n componentWillUnmount(): void {\n cancelAnimationFrame(this.rAF);\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n oldFocus: Element | null;\n\n rAF: number;\n\n getKeyboardIndex(): number | null {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n const { keyboardIndex } = this.state;\n return keyboardIndex;\n }\n\n return this.getMouseIndex();\n }\n\n setKeyboardIndex(index: number): void {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n this.setState({ keyboardIndex: index });\n } else {\n this.setMouseIndex(index);\n }\n }\n\n getMouseIndex(): number {\n const { mouseIndex } = this.state;\n return mouseIndex;\n }\n\n setMouseIndex(index: number): void {\n this.setState({ mouseIndex: index });\n }\n\n initMenu(): void {\n // cancel any pending close\n cancelAnimationFrame(this.rAF);\n\n this.setState({\n menuItems: [],\n });\n\n const { actions } = this.props;\n const menuItems = ContextActionUtils.getMenuItems(actions, false);\n\n if (menuItems.length > 0) {\n this.setState(state => ({\n menuItems: ContextActionUtils.sortActions(\n state.menuItems.concat(menuItems)\n ),\n }));\n }\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { menuItems } = this.state;\n const oldFocus = this.getKeyboardIndex();\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus != null && oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n\n if (e.key === 'Escape') {\n newFocus = null;\n } else if (\n e.key === 'ArrowUp' ||\n (e.key === 'Tab' && e.shiftKey === true)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n -1,\n menuItems\n );\n } else if (\n e.key === 'ArrowDown' ||\n (e.key === 'Tab' && e.shiftKey === false)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n 1,\n menuItems\n );\n }\n\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n closeMenu(closeAll = false): void {\n const { closeMenu, onMenuClosed } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleMenuItemClick(menuItem: ContextAction, e: React.SyntheticEvent): void {\n e.preventDefault();\n e.stopPropagation();\n\n if (\n menuItem != null &&\n (menuItem.disabled === undefined || !menuItem.disabled) &&\n menuItem.action != null\n ) {\n menuItem.action(e.nativeEvent);\n this.closeMenu(true);\n }\n }\n\n handleMenuItemMouseMove(menuItem: ContextAction): void {\n const { menuItems } = this.state;\n const focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n }\n\n handleMouseLeave(): void {\n this.setMouseIndex(-1);\n }\n\n render(): JSX.Element {\n const menuItemElements = [];\n const { 'data-testid': dataTestId } = this.props;\n const { keyboardIndex, menuItems, mouseIndex } = this.state;\n for (let i = 0; i < menuItems.length; i += 1) {\n const menuItem = menuItems[i];\n\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push(<hr key={`${i}.separator`} />);\n }\n\n const menuItemElement = (\n <ContextMenuItem\n key={i}\n isKeyboardSelected={keyboardIndex === i}\n isMouseSelected={mouseIndex === i}\n menuItem={menuItem}\n closeMenu={this.handleCloseMenu}\n onMenuItemClick={this.handleMenuItemClick}\n onMenuItemMouseMove={this.handleMenuItemMouseMove}\n onMenuItemContextMenu={() => false}\n />\n );\n\n menuItemElements.push(menuItemElement);\n }\n\n const { menuStyle } = this.props;\n\n return (\n <div\n className=\"context-menu-container\"\n style={{ ...menuStyle }}\n ref={this.container}\n onKeyDown={this.handleKeyDown}\n onMouseLeave={this.handleMouseLeave}\n role=\"menuitem\"\n tabIndex={0}\n data-testid={dataTestId}\n >\n {menuItemElements}\n </div>\n );\n }\n}\n\nexport default Menu;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DropdownMenu"],"sources":["../../src/menu-actions/index.ts"],"sourcesContent":["import DropdownMenu from './DropdownMenu';\n\nexport default DropdownMenu;\nexport * from './DropdownMenu';\n"],"mappings":"OAAOA,YAAY;AAEnB,eAAeA,YAAY;AAAC"}
1
+ {"version":3,"file":"index.js","names":["DropdownMenu"],"sources":["../../src/menu-actions/index.ts"],"sourcesContent":["import DropdownMenu from './DropdownMenu';\n\nexport default DropdownMenu;\nexport * from './DropdownMenu';\n"],"mappings":"OAAOA,YAAY;AAEnB,eAAeA,YAAY;AAAC","ignoreList":[]}
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useDebouncedValue } from '@deephaven/react-hooks';
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import { Fragment as _Fragment } from "react/jsx-runtime";
5
- import { jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
6
4
  /**
7
5
  * Display a modal after a debounce time. Blocks the screen from interaction immediately,
8
6
  * but then waits the set debounce time before rendering the modal.
@@ -1 +1 @@
1
- {"version":3,"file":"DebouncedModal.js","names":["React","useDebouncedValue","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DebouncedModal","_ref","blockInteraction","children","debounceMs","isOpen","value","debouncedIsOpen","className","style","backgroundColor","cloneElement"],"sources":["../../src/modal/DebouncedModal.tsx"],"sourcesContent":["import React from 'react';\nimport { useDebouncedValue } from '@deephaven/react-hooks';\n\nexport type DebouncedModalProps = {\n /** Whether to block interaction immediately */\n blockInteraction?: boolean;\n\n /** Children to render after the alloted debounce time */\n children: React.ReactElement;\n\n /** Time to debounce */\n debounceMs: number;\n\n /**\n * Will render the `children` `debounceMs` after `isOpen` is set to `true.\n * Will stop rendering immediately after `isOpen` is set to `false`.\n */\n isOpen?: boolean;\n};\n\n/**\n * Display a modal after a debounce time. Blocks the screen from interaction immediately,\n * but then waits the set debounce time before rendering the modal.\n */\nfunction DebouncedModal({\n blockInteraction = true,\n children,\n debounceMs,\n isOpen = false,\n}: DebouncedModalProps): JSX.Element {\n const { value: debouncedIsOpen } = useDebouncedValue(isOpen, debounceMs);\n\n return (\n <>\n {blockInteraction && isOpen && (\n <div\n className=\"modal-backdrop\"\n style={{ backgroundColor: 'transparent' }}\n data-testid=\"debounced-modal-backdrop\"\n />\n )}\n {React.cloneElement(children, { isOpen: isOpen && debouncedIsOpen })}\n </>\n );\n}\n\nexport default DebouncedModal;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iBAAiB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAmB3D;AACA;AACA;AACA;AACA,SAASC,cAAcA,CAAAC,IAAA,EAKc;EAAA,IALb;IACtBC,gBAAgB,GAAG,IAAI;IACvBC,QAAQ;IACRC,UAAU;IACVC,MAAM,GAAG;EACU,CAAC,GAAAJ,IAAA;EACpB,IAAM;IAAEK,KAAK,EAAEC;EAAgB,CAAC,GAAGd,iBAAiB,CAACY,MAAM,EAAED,UAAU,CAAC;EAExE,oBACEL,KAAA,CAAAF,SAAA;IAAAM,QAAA,GACGD,gBAAgB,IAAIG,MAAM,iBACzBV,IAAA;MACEa,SAAS,EAAC,gBAAgB;MAC1BC,KAAK,EAAE;QAAEC,eAAe,EAAE;MAAc,CAAE;MAC1C,eAAY;IAA0B,CACvC,CACF,eACAlB,KAAK,CAACmB,YAAY,CAACR,QAAQ,EAAE;MAAEE,MAAM,EAAEA,MAAM,IAAIE;IAAgB,CAAC,CAAC;EAAA,CACpE,CAAC;AAEP;AAEA,eAAeP,cAAc"}
1
+ {"version":3,"file":"DebouncedModal.js","names":["React","useDebouncedValue","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DebouncedModal","_ref","blockInteraction","children","debounceMs","isOpen","value","debouncedIsOpen","className","style","backgroundColor","cloneElement"],"sources":["../../src/modal/DebouncedModal.tsx"],"sourcesContent":["import React from 'react';\nimport { useDebouncedValue } from '@deephaven/react-hooks';\n\nexport type DebouncedModalProps = {\n /** Whether to block interaction immediately */\n blockInteraction?: boolean;\n\n /** Children to render after the alloted debounce time */\n children: React.ReactElement;\n\n /** Time to debounce */\n debounceMs: number;\n\n /**\n * Will render the `children` `debounceMs` after `isOpen` is set to `true.\n * Will stop rendering immediately after `isOpen` is set to `false`.\n */\n isOpen?: boolean;\n};\n\n/**\n * Display a modal after a debounce time. Blocks the screen from interaction immediately,\n * but then waits the set debounce time before rendering the modal.\n */\nfunction DebouncedModal({\n blockInteraction = true,\n children,\n debounceMs,\n isOpen = false,\n}: DebouncedModalProps): JSX.Element {\n const { value: debouncedIsOpen } = useDebouncedValue(isOpen, debounceMs);\n\n return (\n <>\n {blockInteraction && isOpen && (\n <div\n className=\"modal-backdrop\"\n style={{ backgroundColor: 'transparent' }}\n data-testid=\"debounced-modal-backdrop\"\n />\n )}\n {React.cloneElement(children, { isOpen: isOpen && debouncedIsOpen })}\n </>\n );\n}\n\nexport default DebouncedModal;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iBAAiB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAmB3D;AACA;AACA;AACA;AACA,SAASC,cAAcA,CAAAC,IAAA,EAKc;EAAA,IALb;IACtBC,gBAAgB,GAAG,IAAI;IACvBC,QAAQ;IACRC,UAAU;IACVC,MAAM,GAAG;EACU,CAAC,GAAAJ,IAAA;EACpB,IAAM;IAAEK,KAAK,EAAEC;EAAgB,CAAC,GAAGd,iBAAiB,CAACY,MAAM,EAAED,UAAU,CAAC;EAExE,oBACEL,KAAA,CAAAF,SAAA;IAAAM,QAAA,GACGD,gBAAgB,IAAIG,MAAM,iBACzBV,IAAA;MACEa,SAAS,EAAC,gBAAgB;MAC1BC,KAAK,EAAE;QAAEC,eAAe,EAAE;MAAc,CAAE;MAC1C,eAAY;IAA0B,CACvC,CACF,eACAlB,KAAK,CAACmB,YAAY,CAACR,QAAQ,EAAE;MAAEE,MAAM,EAAEA,MAAM,IAAIE;IAAgB,CAAC,CAAC;EAAA,CACpE,CAAC;AAEP;AAEA,eAAeP,cAAc","ignoreList":[]}
@@ -3,8 +3,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
3
3
  import Modal from "./Modal.js";
4
4
  import ModalBody from "./ModalBody.js";
5
5
  import "./InfoModal.css";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- import { jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
7
  /**
9
8
  * A modal that displays a message with an icon. Can be used for informational messages, warnings, or errors.
10
9
  * Does not have any buttons and cannot be dismissed.
@@ -1 +1 @@
1
- {"version":3,"file":"InfoModal.js","names":["React","FontAwesomeIcon","Modal","ModalBody","jsx","_jsx","jsxs","_jsxs","InfoModal","_ref","className","icon","isOpen","subtitle","title","children"],"sources":["../../src/modal/InfoModal.tsx"],"sourcesContent":["import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type IconProp } from '@fortawesome/fontawesome-svg-core';\nimport Modal from './Modal';\nimport ModalBody from './ModalBody';\nimport './InfoModal.scss';\n\ntype InfoModalProps = {\n /** Class name to give the info modal */\n className?: string;\n\n /** Icon to display in the modal */\n icon?: IconProp;\n\n /** Title to display in the modal */\n title: React.ReactNode;\n\n /** Subtitle/detail to display in the modal */\n subtitle?: React.ReactNode;\n\n /** Whether the modal is open/visible or not. */\n isOpen?: boolean;\n};\n\n/**\n * A modal that displays a message with an icon. Can be used for informational messages, warnings, or errors.\n * Does not have any buttons and cannot be dismissed.\n */\nfunction InfoModal({\n className,\n icon,\n isOpen = false,\n subtitle,\n title,\n}: InfoModalProps): JSX.Element {\n return (\n <Modal isOpen={isOpen} className={className}>\n <ModalBody>\n <div className=\"info-modal\">\n {icon != null && (\n <div className=\"message-icon\">\n <FontAwesomeIcon icon={icon} />\n </div>\n )}\n <div className=\"message-header\">{title}</div>\n {subtitle != null && (\n <div className=\"message-content\">{subtitle}</div>\n )}\n </div>\n </ModalBody>\n </Modal>\n );\n}\n\nexport default InfoModal;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,gCAAgC;AAAC,OAE1DC,KAAK;AAAA,OACLC,SAAS;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAoBhB;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAAC,IAAA,EAMc;EAAA,IANb;IACjBC,SAAS;IACTC,IAAI;IACJC,MAAM,GAAG,KAAK;IACdC,QAAQ;IACRC;EACc,CAAC,GAAAL,IAAA;EACf,oBACEJ,IAAA,CAACH,KAAK;IAACU,MAAM,EAAEA,MAAO;IAACF,SAAS,EAAEA,SAAU;IAAAK,QAAA,eAC1CV,IAAA,CAACF,SAAS;MAAAY,QAAA,eACRR,KAAA;QAAKG,SAAS,EAAC,YAAY;QAAAK,QAAA,GACxBJ,IAAI,IAAI,IAAI,iBACXN,IAAA;UAAKK,SAAS,EAAC,cAAc;UAAAK,QAAA,eAC3BV,IAAA,CAACJ,eAAe;YAACU,IAAI,EAAEA;UAAK,CAAE;QAAC,CAC5B,CACN,eACDN,IAAA;UAAKK,SAAS,EAAC,gBAAgB;UAAAK,QAAA,EAAED;QAAK,CAAM,CAAC,EAC5CD,QAAQ,IAAI,IAAI,iBACfR,IAAA;UAAKK,SAAS,EAAC,iBAAiB;UAAAK,QAAA,EAAEF;QAAQ,CAAM,CACjD;MAAA,CACE;IAAC,CACG;EAAC,CACP,CAAC;AAEZ;AAEA,eAAeL,SAAS"}
1
+ {"version":3,"file":"InfoModal.js","names":["React","FontAwesomeIcon","Modal","ModalBody","jsx","_jsx","jsxs","_jsxs","InfoModal","_ref","className","icon","isOpen","subtitle","title","children"],"sources":["../../src/modal/InfoModal.tsx"],"sourcesContent":["import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type IconProp } from '@fortawesome/fontawesome-svg-core';\nimport Modal from './Modal';\nimport ModalBody from './ModalBody';\nimport './InfoModal.scss';\n\ntype InfoModalProps = {\n /** Class name to give the info modal */\n className?: string;\n\n /** Icon to display in the modal */\n icon?: IconProp;\n\n /** Title to display in the modal */\n title: React.ReactNode;\n\n /** Subtitle/detail to display in the modal */\n subtitle?: React.ReactNode;\n\n /** Whether the modal is open/visible or not. */\n isOpen?: boolean;\n};\n\n/**\n * A modal that displays a message with an icon. Can be used for informational messages, warnings, or errors.\n * Does not have any buttons and cannot be dismissed.\n */\nfunction InfoModal({\n className,\n icon,\n isOpen = false,\n subtitle,\n title,\n}: InfoModalProps): JSX.Element {\n return (\n <Modal isOpen={isOpen} className={className}>\n <ModalBody>\n <div className=\"info-modal\">\n {icon != null && (\n <div className=\"message-icon\">\n <FontAwesomeIcon icon={icon} />\n </div>\n )}\n <div className=\"message-header\">{title}</div>\n {subtitle != null && (\n <div className=\"message-content\">{subtitle}</div>\n )}\n </div>\n </ModalBody>\n </Modal>\n );\n}\n\nexport default InfoModal;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,gCAAgC;AAAC,OAE1DC,KAAK;AAAA,OACLC,SAAS;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAoBhB;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAAC,IAAA,EAMc;EAAA,IANb;IACjBC,SAAS;IACTC,IAAI;IACJC,MAAM,GAAG,KAAK;IACdC,QAAQ;IACRC;EACc,CAAC,GAAAL,IAAA;EACf,oBACEJ,IAAA,CAACH,KAAK;IAACU,MAAM,EAAEA,MAAO;IAACF,SAAS,EAAEA,SAAU;IAAAK,QAAA,eAC1CV,IAAA,CAACF,SAAS;MAAAY,QAAA,eACRR,KAAA;QAAKG,SAAS,EAAC,YAAY;QAAAK,QAAA,GACxBJ,IAAI,IAAI,IAAI,iBACXN,IAAA;UAAKK,SAAS,EAAC,cAAc;UAAAK,QAAA,eAC3BV,IAAA,CAACJ,eAAe;YAACU,IAAI,EAAEA;UAAK,CAAE;QAAC,CAC5B,CACN,eACDN,IAAA;UAAKK,SAAS,EAAC,gBAAgB;UAAAK,QAAA,EAAED;QAAK,CAAM,CAAC,EAC5CD,QAAQ,IAAI,IAAI,iBACfR,IAAA;UAAKK,SAAS,EAAC,iBAAiB;UAAAK,QAAA,EAAEF;QAAQ,CAAM,CACjD;MAAA,CACE;IAAC,CACG;EAAC,CACP,CAAC;AAEZ;AAEA,eAAeL,SAAS","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAMf,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,QAAQ,EACR,IAAa,EACb,QAAe,EACf,YAAmB,EACnB,MAAc,EACd,QAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EAAE,UAAU,GAC1B,EAAE,UAAU,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA8IxC;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAMf,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,QAAQ,EACR,IAAa,EACb,QAAe,EACf,YAAmB,EACnB,MAAc,EACd,QAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EAAE,UAAU,GAC1B,EAAE,UAAU,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAkJxC;AAED,eAAe,KAAK,CAAC"}
@@ -4,8 +4,7 @@ import ReactDOM from 'react-dom';
4
4
  import { CSSTransition } from 'react-transition-group';
5
5
  import ThemeExport from "../ThemeExport.js";
6
6
  import { SpectrumThemeProvider } from "../theme/SpectrumThemeProvider.js";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { jsxs as _jsxs } from "react/jsx-runtime";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
8
  function Modal(_ref) {
10
9
  var {
11
10
  className,
@@ -23,11 +22,12 @@ function Modal(_ref) {
23
22
  } = _ref;
24
23
  var element = useRef();
25
24
  var background = useRef(null);
25
+ var backdropFade = useRef(null);
26
26
  var [backgroundClicked, setBackgroundClicked] = useState(false);
27
27
  var handleKeyDown = useCallback(event => {
28
28
  switch (event.key) {
29
29
  case 'Escape':
30
- toggle === null || toggle === void 0 ? void 0 : toggle();
30
+ toggle === null || toggle === void 0 || toggle();
31
31
  break;
32
32
  default:
33
33
  break;
@@ -80,7 +80,9 @@ function Modal(_ref) {
80
80
  },
81
81
  timeout: ThemeExport.transitionMs,
82
82
  onExited: onExited,
83
+ nodeRef: backdropFade,
83
84
  children: /*#__PURE__*/_jsx("div", {
85
+ ref: backdropFade,
84
86
  className: classNames('modal-backdrop fade'),
85
87
  style: {
86
88
  zIndex: 1050
@@ -96,6 +98,7 @@ function Modal(_ref) {
96
98
  },
97
99
  timeout: ThemeExport.transitionMs,
98
100
  onExited: onExited,
101
+ nodeRef: background,
99
102
  children: /*#__PURE__*/_jsx("div", {
100
103
  ref: background,
101
104
  className: "modal fade",
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["classNames","React","useCallback","useEffect","useRef","useState","ReactDOM","CSSTransition","ThemeExport","SpectrumThemeProvider","jsx","_jsx","jsxs","_jsxs","Modal","_ref","className","children","role","keyboard","clickOutside","isOpen","centered","size","onOpened","onClosed","toggle","dataTestId","element","background","backgroundClicked","setBackgroundClicked","handleKeyDown","event","key","addKeydownEventListener","window","addEventListener","removeEventListener","open","closed","current","document","createElement","setAttribute","body","appendChild","onExited","removeChild","undefined","createPortal","isPortal","zIndex","position","appear","mountOnEnter","unmountOnExit","in","appearActive","appearDone","timeout","transitionMs","style","ref","onMouseDown","e","target","onMouseUp","display"],"sources":["../../src/modal/Modal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React, {\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { CSSTransition } from 'react-transition-group';\nimport ThemeExport from '../ThemeExport';\nimport { SpectrumThemeProvider } from '../theme/SpectrumThemeProvider';\n\ninterface ModalProps {\n className?: string;\n children?: ReactNode;\n role?: string;\n keyboard?: boolean;\n clickOutside?: boolean;\n isOpen?: boolean;\n centered?: boolean;\n size?: 'sm' | 'lg' | 'xl' | undefined;\n onOpened?: () => void;\n onClosed?: () => void;\n toggle?: () => void;\n 'data-testid'?: string;\n}\n\nfunction Modal({\n className,\n children,\n role = 'role',\n keyboard = true,\n clickOutside = true,\n isOpen = false,\n centered = false,\n size,\n onOpened,\n onClosed,\n toggle,\n 'data-testid': dataTestId,\n}: ModalProps): React.ReactElement | null {\n const element = useRef<HTMLElement>();\n const background = useRef<HTMLDivElement>(null);\n const [backgroundClicked, setBackgroundClicked] = useState(false);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent): void => {\n switch (event.key) {\n case 'Escape':\n toggle?.();\n break;\n default:\n break;\n }\n },\n [toggle]\n );\n\n useEffect(\n function addKeydownEventListener() {\n if (isOpen && keyboard) {\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }\n },\n [handleKeyDown, isOpen, keyboard]\n );\n\n useEffect(\n function open() {\n if (isOpen && onOpened) {\n onOpened();\n }\n },\n [onOpened, isOpen]\n );\n\n useEffect(\n function closed() {\n if (!isOpen && onClosed) {\n onClosed();\n }\n },\n [onClosed, isOpen]\n );\n\n if (isOpen && !element.current) {\n element.current = document.createElement('div');\n element.current.setAttribute(\n 'style',\n 'padding-right: 15px; display: block'\n );\n element.current.setAttribute('role', 'presentation');\n document.body.appendChild(element.current);\n }\n\n const onExited = (): void => {\n if (element.current) {\n document.body.removeChild(element.current);\n element.current = undefined;\n }\n };\n\n return element.current\n ? ReactDOM.createPortal(\n // Without the zIndex and position props\n // the modal is rendered on top of nested DatePicker popovers\n <SpectrumThemeProvider isPortal zIndex={0} position=\"relative\">\n <CSSTransition\n appear\n mountOnEnter\n unmountOnExit\n in={isOpen}\n classNames={{\n appearActive: 'show',\n appearDone: 'show',\n }}\n timeout={ThemeExport.transitionMs}\n onExited={onExited}\n >\n <div\n className={classNames('modal-backdrop fade')}\n style={{ zIndex: 1050 }}\n />\n </CSSTransition>\n <CSSTransition\n appear\n mountOnEnter\n unmountOnExit\n in={isOpen}\n classNames={{\n appearDone: 'show',\n }}\n timeout={ThemeExport.transitionMs}\n onExited={onExited}\n >\n <div\n ref={background}\n className=\"modal fade\"\n onMouseDown={e => {\n if (e.target === background.current) {\n setBackgroundClicked(true);\n } else {\n setBackgroundClicked(false);\n }\n }}\n onMouseUp={e => {\n if (\n backgroundClicked &&\n clickOutside &&\n e.target === background.current &&\n toggle !== undefined\n ) {\n toggle();\n }\n }}\n role=\"dialog\"\n style={{ display: 'block' }}\n >\n <div\n className={classNames('modal-dialog', className, {\n 'modal-lg': size === 'lg',\n 'modal-sm': size === 'sm',\n 'modal-xl': size === 'xl',\n 'modal-dialog-centered': centered,\n })}\n style={{ zIndex: 1040 }}\n >\n <div\n className=\"modal-content\"\n role=\"presentation\"\n data-testid={dataTestId}\n >\n {children}\n </div>\n </div>\n </div>\n </CSSTransition>\n </SpectrumThemeProvider>,\n element.current\n )\n : null;\n}\n\nexport default Modal;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["classNames","React","useCallback","useEffect","useRef","useState","ReactDOM","CSSTransition","ThemeExport","SpectrumThemeProvider","jsx","_jsx","jsxs","_jsxs","Modal","_ref","className","children","role","keyboard","clickOutside","isOpen","centered","size","onOpened","onClosed","toggle","dataTestId","element","background","backdropFade","backgroundClicked","setBackgroundClicked","handleKeyDown","event","key","addKeydownEventListener","window","addEventListener","removeEventListener","open","closed","current","document","createElement","setAttribute","body","appendChild","onExited","removeChild","undefined","createPortal","isPortal","zIndex","position","appear","mountOnEnter","unmountOnExit","in","appearActive","appearDone","timeout","transitionMs","nodeRef","ref","style","onMouseDown","e","target","onMouseUp","display"],"sources":["../../src/modal/Modal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React, {\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { CSSTransition } from 'react-transition-group';\nimport ThemeExport from '../ThemeExport';\nimport { SpectrumThemeProvider } from '../theme/SpectrumThemeProvider';\n\ninterface ModalProps {\n className?: string;\n children?: ReactNode;\n role?: string;\n keyboard?: boolean;\n clickOutside?: boolean;\n isOpen?: boolean;\n centered?: boolean;\n size?: 'sm' | 'lg' | 'xl' | undefined;\n onOpened?: () => void;\n onClosed?: () => void;\n toggle?: () => void;\n 'data-testid'?: string;\n}\n\nfunction Modal({\n className,\n children,\n role = 'role',\n keyboard = true,\n clickOutside = true,\n isOpen = false,\n centered = false,\n size,\n onOpened,\n onClosed,\n toggle,\n 'data-testid': dataTestId,\n}: ModalProps): React.ReactElement | null {\n const element = useRef<HTMLElement>();\n const background = useRef<HTMLDivElement>(null);\n const backdropFade = useRef<HTMLDivElement>(null);\n const [backgroundClicked, setBackgroundClicked] = useState(false);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent): void => {\n switch (event.key) {\n case 'Escape':\n toggle?.();\n break;\n default:\n break;\n }\n },\n [toggle]\n );\n\n useEffect(\n function addKeydownEventListener() {\n if (isOpen && keyboard) {\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }\n },\n [handleKeyDown, isOpen, keyboard]\n );\n\n useEffect(\n function open() {\n if (isOpen && onOpened) {\n onOpened();\n }\n },\n [onOpened, isOpen]\n );\n\n useEffect(\n function closed() {\n if (!isOpen && onClosed) {\n onClosed();\n }\n },\n [onClosed, isOpen]\n );\n\n if (isOpen && !element.current) {\n element.current = document.createElement('div');\n element.current.setAttribute(\n 'style',\n 'padding-right: 15px; display: block'\n );\n element.current.setAttribute('role', 'presentation');\n document.body.appendChild(element.current);\n }\n\n const onExited = (): void => {\n if (element.current) {\n document.body.removeChild(element.current);\n element.current = undefined;\n }\n };\n\n return element.current\n ? ReactDOM.createPortal(\n // Without the zIndex and position props\n // the modal is rendered on top of nested DatePicker popovers\n <SpectrumThemeProvider isPortal zIndex={0} position=\"relative\">\n <CSSTransition\n appear\n mountOnEnter\n unmountOnExit\n in={isOpen}\n classNames={{\n appearActive: 'show',\n appearDone: 'show',\n }}\n timeout={ThemeExport.transitionMs}\n onExited={onExited}\n nodeRef={backdropFade}\n >\n <div\n ref={backdropFade}\n className={classNames('modal-backdrop fade')}\n style={{ zIndex: 1050 }}\n />\n </CSSTransition>\n <CSSTransition\n appear\n mountOnEnter\n unmountOnExit\n in={isOpen}\n classNames={{\n appearDone: 'show',\n }}\n timeout={ThemeExport.transitionMs}\n onExited={onExited}\n nodeRef={background}\n >\n <div\n ref={background}\n className=\"modal fade\"\n onMouseDown={e => {\n if (e.target === background.current) {\n setBackgroundClicked(true);\n } else {\n setBackgroundClicked(false);\n }\n }}\n onMouseUp={e => {\n if (\n backgroundClicked &&\n clickOutside &&\n e.target === background.current &&\n toggle !== undefined\n ) {\n toggle();\n }\n }}\n role=\"dialog\"\n style={{ display: 'block' }}\n >\n <div\n className={classNames('modal-dialog', className, {\n 'modal-lg': size === 'lg',\n 'modal-sm': size === 'sm',\n 'modal-xl': size === 'xl',\n 'modal-dialog-centered': centered,\n })}\n style={{ zIndex: 1040 }}\n >\n <div\n className=\"modal-content\"\n role=\"presentation\"\n data-testid={dataTestId}\n >\n {children}\n </div>\n </div>\n </div>\n </CSSTransition>\n </SpectrumThemeProvider>,\n element.current\n )\n : null;\n}\n\nexport default Modal;\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAEVC,WAAW,EACXC,SAAS,EACTC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,OAAOC,QAAQ,MAAM,WAAW;AAChC,SAASC,aAAa,QAAQ,wBAAwB;AAAC,OAChDC,WAAW;AAAA,SACTC,qBAAqB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAiB9B,SAASC,KAAKA,CAAAC,IAAA,EAa4B;EAAA,IAb3B;IACbC,SAAS;IACTC,QAAQ;IACRC,IAAI,GAAG,MAAM;IACbC,QAAQ,GAAG,IAAI;IACfC,YAAY,GAAG,IAAI;IACnBC,MAAM,GAAG,KAAK;IACdC,QAAQ,GAAG,KAAK;IAChBC,IAAI;IACJC,QAAQ;IACRC,QAAQ;IACRC,MAAM;IACN,aAAa,EAAEC;EACL,CAAC,GAAAZ,IAAA;EACX,IAAMa,OAAO,GAAGxB,MAAM,CAAc,CAAC;EACrC,IAAMyB,UAAU,GAAGzB,MAAM,CAAiB,IAAI,CAAC;EAC/C,IAAM0B,YAAY,GAAG1B,MAAM,CAAiB,IAAI,CAAC;EACjD,IAAM,CAAC2B,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG3B,QAAQ,CAAC,KAAK,CAAC;EAEjE,IAAM4B,aAAa,GAAG/B,WAAW,CAC9BgC,KAAoB,IAAW;IAC9B,QAAQA,KAAK,CAACC,GAAG;MACf,KAAK,QAAQ;QACXT,MAAM,aAANA,MAAM,eAANA,MAAM,CAAG,CAAC;QACV;MACF;QACE;IACJ;EACF,CAAC,EACD,CAACA,MAAM,CACT,CAAC;EAEDvB,SAAS,CACP,SAASiC,uBAAuBA,CAAA,EAAG;IACjC,IAAIf,MAAM,IAAIF,QAAQ,EAAE;MACtBkB,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEL,aAAa,CAAC;MACjD,OAAO,MAAMI,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAEN,aAAa,CAAC;IACnE;EACF,CAAC,EACD,CAACA,aAAa,EAAEZ,MAAM,EAAEF,QAAQ,CAClC,CAAC;EAEDhB,SAAS,CACP,SAASqC,IAAIA,CAAA,EAAG;IACd,IAAInB,MAAM,IAAIG,QAAQ,EAAE;MACtBA,QAAQ,CAAC,CAAC;IACZ;EACF,CAAC,EACD,CAACA,QAAQ,EAAEH,MAAM,CACnB,CAAC;EAEDlB,SAAS,CACP,SAASsC,MAAMA,CAAA,EAAG;IAChB,IAAI,CAACpB,MAAM,IAAII,QAAQ,EAAE;MACvBA,QAAQ,CAAC,CAAC;IACZ;EACF,CAAC,EACD,CAACA,QAAQ,EAAEJ,MAAM,CACnB,CAAC;EAED,IAAIA,MAAM,IAAI,CAACO,OAAO,CAACc,OAAO,EAAE;IAC9Bd,OAAO,CAACc,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC/ChB,OAAO,CAACc,OAAO,CAACG,YAAY,CAC1B,OAAO,EACP,qCACF,CAAC;IACDjB,OAAO,CAACc,OAAO,CAACG,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;IACpDF,QAAQ,CAACG,IAAI,CAACC,WAAW,CAACnB,OAAO,CAACc,OAAO,CAAC;EAC5C;EAEA,IAAMM,QAAQ,GAAGA,CAAA,KAAY;IAC3B,IAAIpB,OAAO,CAACc,OAAO,EAAE;MACnBC,QAAQ,CAACG,IAAI,CAACG,WAAW,CAACrB,OAAO,CAACc,OAAO,CAAC;MAC1Cd,OAAO,CAACc,OAAO,GAAGQ,SAAS;IAC7B;EACF,CAAC;EAED,OAAOtB,OAAO,CAACc,OAAO,gBAClBpC,QAAQ,CAAC6C,YAAY;EAAA;EACnB;EACA;EACAtC,KAAA,CAACJ,qBAAqB;IAAC2C,QAAQ;IAACC,MAAM,EAAE,CAAE;IAACC,QAAQ,EAAC,UAAU;IAAArC,QAAA,gBAC5DN,IAAA,CAACJ,aAAa;MACZgD,MAAM;MACNC,YAAY;MACZC,aAAa;MACbC,EAAE,EAAErC,MAAO;MACXrB,UAAU,EAAE;QACV2D,YAAY,EAAE,MAAM;QACpBC,UAAU,EAAE;MACd,CAAE;MACFC,OAAO,EAAErD,WAAW,CAACsD,YAAa;MAClCd,QAAQ,EAAEA,QAAS;MACnBe,OAAO,EAAEjC,YAAa;MAAAb,QAAA,eAEtBN,IAAA;QACEqD,GAAG,EAAElC,YAAa;QAClBd,SAAS,EAAEhB,UAAU,CAAC,qBAAqB,CAAE;QAC7CiE,KAAK,EAAE;UAAEZ,MAAM,EAAE;QAAK;MAAE,CACzB;IAAC,CACW,CAAC,eAChB1C,IAAA,CAACJ,aAAa;MACZgD,MAAM;MACNC,YAAY;MACZC,aAAa;MACbC,EAAE,EAAErC,MAAO;MACXrB,UAAU,EAAE;QACV4D,UAAU,EAAE;MACd,CAAE;MACFC,OAAO,EAAErD,WAAW,CAACsD,YAAa;MAClCd,QAAQ,EAAEA,QAAS;MACnBe,OAAO,EAAElC,UAAW;MAAAZ,QAAA,eAEpBN,IAAA;QACEqD,GAAG,EAAEnC,UAAW;QAChBb,SAAS,EAAC,YAAY;QACtBkD,WAAW,EAAEC,CAAC,IAAI;UAChB,IAAIA,CAAC,CAACC,MAAM,KAAKvC,UAAU,CAACa,OAAO,EAAE;YACnCV,oBAAoB,CAAC,IAAI,CAAC;UAC5B,CAAC,MAAM;YACLA,oBAAoB,CAAC,KAAK,CAAC;UAC7B;QACF,CAAE;QACFqC,SAAS,EAAEF,CAAC,IAAI;UACd,IACEpC,iBAAiB,IACjBX,YAAY,IACZ+C,CAAC,CAACC,MAAM,KAAKvC,UAAU,CAACa,OAAO,IAC/BhB,MAAM,KAAKwB,SAAS,EACpB;YACAxB,MAAM,CAAC,CAAC;UACV;QACF,CAAE;QACFR,IAAI,EAAC,QAAQ;QACb+C,KAAK,EAAE;UAAEK,OAAO,EAAE;QAAQ,CAAE;QAAArD,QAAA,eAE5BN,IAAA;UACEK,SAAS,EAAEhB,UAAU,CAAC,cAAc,EAAEgB,SAAS,EAAE;YAC/C,UAAU,EAAEO,IAAI,KAAK,IAAI;YACzB,UAAU,EAAEA,IAAI,KAAK,IAAI;YACzB,UAAU,EAAEA,IAAI,KAAK,IAAI;YACzB,uBAAuB,EAAED;UAC3B,CAAC,CAAE;UACH2C,KAAK,EAAE;YAAEZ,MAAM,EAAE;UAAK,CAAE;UAAApC,QAAA,eAExBN,IAAA;YACEK,SAAS,EAAC,eAAe;YACzBE,IAAI,EAAC,cAAc;YACnB,eAAaS,UAAW;YAAAV,QAAA,EAEvBA;UAAQ,CACN;QAAC,CACH;MAAC,CACH;IAAC,CACO,CAAC;EAAA,CACK,CAAC,EACxBW,OAAO,CAACc,OACV,CAAC,GACD,IAAI;AACV;AAEA,eAAe5B,KAAK","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalBody.js","names":["React","classNames","jsx","_jsx","ModalBody","_ref","className","style","children","dataTestId"],"sources":["../../src/modal/ModalBody.tsx"],"sourcesContent":["import React, {\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport classNames from 'classnames';\n\ninterface ModalBodyProps {\n className?: string;\n style?: CSSProperties;\n children?: ReactNode;\n 'data-testid'?: string;\n}\n\nfunction ModalBody({\n className,\n style,\n children,\n 'data-testid': dataTestId,\n}: ModalBodyProps): ReactElement {\n return (\n <div\n className={classNames('modal-body', className)}\n data-testid={dataTestId}\n style={style}\n >\n {children}\n </div>\n );\n}\n\nexport default ModalBody;\n"],"mappings":"AAAA,OAAOA,KAAK,MAIL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASpC,SAASC,SAASA,CAAAC,IAAA,EAKe;EAAA,IALd;IACjBC,SAAS;IACTC,KAAK;IACLC,QAAQ;IACR,aAAa,EAAEC;EACD,CAAC,GAAAJ,IAAA;EACf,oBACEF,IAAA;IACEG,SAAS,EAAEL,UAAU,CAAC,YAAY,EAAEK,SAAS,CAAE;IAC/C,eAAaG,UAAW;IACxBF,KAAK,EAAEA,KAAM;IAAAC,QAAA,EAEZA;EAAQ,CACN,CAAC;AAEV;AAEA,eAAeJ,SAAS"}
1
+ {"version":3,"file":"ModalBody.js","names":["React","classNames","jsx","_jsx","ModalBody","_ref","className","style","children","dataTestId"],"sources":["../../src/modal/ModalBody.tsx"],"sourcesContent":["import React, {\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport classNames from 'classnames';\n\ninterface ModalBodyProps {\n className?: string;\n style?: CSSProperties;\n children?: ReactNode;\n 'data-testid'?: string;\n}\n\nfunction ModalBody({\n className,\n style,\n children,\n 'data-testid': dataTestId,\n}: ModalBodyProps): ReactElement {\n return (\n <div\n className={classNames('modal-body', className)}\n data-testid={dataTestId}\n style={style}\n >\n {children}\n </div>\n );\n}\n\nexport default ModalBody;\n"],"mappings":"AAAA,OAAOA,KAAK,MAIL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASpC,SAASC,SAASA,CAAAC,IAAA,EAKe;EAAA,IALd;IACjBC,SAAS;IACTC,KAAK;IACLC,QAAQ;IACR,aAAa,EAAEC;EACD,CAAC,GAAAJ,IAAA;EACf,oBACEF,IAAA;IACEG,SAAS,EAAEL,UAAU,CAAC,YAAY,EAAEK,SAAS,CAAE;IAC/C,eAAaG,UAAW;IACxBF,KAAK,EAAEA,KAAM;IAAAC,QAAA,EAEZA;EAAQ,CACN,CAAC;AAEV;AAEA,eAAeJ,SAAS","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalFooter.js","names":["React","classNames","jsx","_jsx","ModalFooter","_ref","className","children","dataTestId"],"sources":["../../src/modal/ModalFooter.tsx"],"sourcesContent":["import React, { type ReactElement, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\ninterface ModalFooterProps {\n className?: string;\n children?: ReactNode;\n 'data-testid'?: string;\n}\n\nfunction ModalFooter({\n className,\n children,\n 'data-testid': dataTestId,\n}: ModalFooterProps): ReactElement {\n return (\n <div\n className={classNames('modal-footer', className)}\n data-testid={dataTestId}\n >\n {children}\n </div>\n );\n}\n\nexport default ModalFooter;\n"],"mappings":"AAAA,OAAOA,KAAK,MAA6C,OAAO;AAChE,OAAOC,UAAU,MAAM,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQpC,SAASC,WAAWA,CAAAC,IAAA,EAIe;EAAA,IAJd;IACnBC,SAAS;IACTC,QAAQ;IACR,aAAa,EAAEC;EACC,CAAC,GAAAH,IAAA;EACjB,oBACEF,IAAA;IACEG,SAAS,EAAEL,UAAU,CAAC,cAAc,EAAEK,SAAS,CAAE;IACjD,eAAaE,UAAW;IAAAD,QAAA,EAEvBA;EAAQ,CACN,CAAC;AAEV;AAEA,eAAeH,WAAW"}
1
+ {"version":3,"file":"ModalFooter.js","names":["React","classNames","jsx","_jsx","ModalFooter","_ref","className","children","dataTestId"],"sources":["../../src/modal/ModalFooter.tsx"],"sourcesContent":["import React, { type ReactElement, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\ninterface ModalFooterProps {\n className?: string;\n children?: ReactNode;\n 'data-testid'?: string;\n}\n\nfunction ModalFooter({\n className,\n children,\n 'data-testid': dataTestId,\n}: ModalFooterProps): ReactElement {\n return (\n <div\n className={classNames('modal-footer', className)}\n data-testid={dataTestId}\n >\n {children}\n </div>\n );\n}\n\nexport default ModalFooter;\n"],"mappings":"AAAA,OAAOA,KAAK,MAA6C,OAAO;AAChE,OAAOC,UAAU,MAAM,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQpC,SAASC,WAAWA,CAAAC,IAAA,EAIe;EAAA,IAJd;IACnBC,SAAS;IACTC,QAAQ;IACR,aAAa,EAAEC;EACC,CAAC,GAAAH,IAAA;EACjB,oBACEF,IAAA;IACEG,SAAS,EAAEL,UAAU,CAAC,cAAc,EAAEK,SAAS,CAAE;IACjD,eAAaE,UAAW;IAAAD,QAAA,EAEvBA;EAAQ,CACN,CAAC;AAEV;AAEA,eAAeH,WAAW","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import classNames from 'classnames';
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import { jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  function ModalHeader(_ref) {
6
5
  var {
7
6
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.js","names":["React","classNames","jsx","_jsx","jsxs","_jsxs","ModalHeader","_ref","className","children","closeButton","style","toggle","dataTestId","type","onClick"],"sources":["../../src/modal/ModalHeader.tsx"],"sourcesContent":["import React, {\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport classNames from 'classnames';\n\ninterface ModalHeaderProps {\n className?: string;\n children?: ReactNode;\n closeButton?: boolean;\n style?: CSSProperties;\n toggle?: () => void;\n 'data-testid'?: string;\n}\n\nfunction ModalHeader({\n className,\n children,\n closeButton = true,\n style,\n toggle,\n 'data-testid': dataTestId,\n}: ModalHeaderProps): ReactElement {\n return (\n <div className={classNames('modal-header', className)} style={style}>\n <h5 className=\"modal-title\">{children}</h5>\n {closeButton && (\n <button\n type=\"button\"\n className=\"close\"\n data-dismiss=\"modal\"\n aria-label=\"Close\"\n onClick={toggle}\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n )}\n </div>\n );\n}\n\nexport default ModalHeader;\n"],"mappings":"AAAA,OAAOA,KAAK,MAIL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAWpC,SAASC,WAAWA,CAAAC,IAAA,EAOe;EAAA,IAPd;IACnBC,SAAS;IACTC,QAAQ;IACRC,WAAW,GAAG,IAAI;IAClBC,KAAK;IACLC,MAAM;IACN,aAAa,EAAEC;EACC,CAAC,GAAAN,IAAA;EACjB,oBACEF,KAAA;IAAKG,SAAS,EAAEP,UAAU,CAAC,cAAc,EAAEO,SAAS,CAAE;IAACG,KAAK,EAAEA,KAAM;IAAAF,QAAA,gBAClEN,IAAA;MAAIK,SAAS,EAAC,aAAa;MAAAC,QAAA,EAAEA;IAAQ,CAAK,CAAC,EAC1CC,WAAW,iBACVP,IAAA;MACEW,IAAI,EAAC,QAAQ;MACbN,SAAS,EAAC,OAAO;MACjB,gBAAa,OAAO;MACpB,cAAW,OAAO;MAClBO,OAAO,EAAEH,MAAO;MAAAH,QAAA,eAEhBN,IAAA;QAAM,eAAY,MAAM;QAAAM,QAAA,EAAC;MAAO,CAAM;IAAC,CACjC,CACT;EAAA,CACE,CAAC;AAEV;AAEA,eAAeH,WAAW"}
1
+ {"version":3,"file":"ModalHeader.js","names":["React","classNames","jsx","_jsx","jsxs","_jsxs","ModalHeader","_ref","className","children","closeButton","style","toggle","dataTestId","type","onClick"],"sources":["../../src/modal/ModalHeader.tsx"],"sourcesContent":["import React, {\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport classNames from 'classnames';\n\ninterface ModalHeaderProps {\n className?: string;\n children?: ReactNode;\n closeButton?: boolean;\n style?: CSSProperties;\n toggle?: () => void;\n 'data-testid'?: string;\n}\n\nfunction ModalHeader({\n className,\n children,\n closeButton = true,\n style,\n toggle,\n 'data-testid': dataTestId,\n}: ModalHeaderProps): ReactElement {\n return (\n <div className={classNames('modal-header', className)} style={style}>\n <h5 className=\"modal-title\">{children}</h5>\n {closeButton && (\n <button\n type=\"button\"\n className=\"close\"\n data-dismiss=\"modal\"\n aria-label=\"Close\"\n onClick={toggle}\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n )}\n </div>\n );\n}\n\nexport default ModalHeader;\n"],"mappings":"AAAA,OAAOA,KAAK,MAIL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWpC,SAASC,WAAWA,CAAAC,IAAA,EAOe;EAAA,IAPd;IACnBC,SAAS;IACTC,QAAQ;IACRC,WAAW,GAAG,IAAI;IAClBC,KAAK;IACLC,MAAM;IACN,aAAa,EAAEC;EACC,CAAC,GAAAN,IAAA;EACjB,oBACEF,KAAA;IAAKG,SAAS,EAAEP,UAAU,CAAC,cAAc,EAAEO,SAAS,CAAE;IAACG,KAAK,EAAEA,KAAM;IAAAF,QAAA,gBAClEN,IAAA;MAAIK,SAAS,EAAC,aAAa;MAAAC,QAAA,EAAEA;IAAQ,CAAK,CAAC,EAC1CC,WAAW,iBACVP,IAAA;MACEW,IAAI,EAAC,QAAQ;MACbN,SAAS,EAAC,OAAO;MACjB,gBAAa,OAAO;MACpB,cAAW,OAAO;MAClBO,OAAO,EAAEH,MAAO;MAAAH,QAAA,eAEhBN,IAAA;QAAM,eAAY,MAAM;QAAAM,QAAA,EAAC;MAAO,CAAM;IAAC,CACjC,CACT;EAAA,CACE,CAAC;AAEV;AAEA,eAAeH,WAAW","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","DebouncedModal","InfoModal","Modal","ModalBody","ModalHeader","ModalFooter"],"sources":["../../src/modal/index.ts"],"sourcesContent":["export { default as DebouncedModal } from './DebouncedModal';\nexport { default as InfoModal } from './InfoModal';\nexport { default as Modal } from './Modal';\nexport { default as ModalBody } from './ModalBody';\nexport { default as ModalHeader } from './ModalHeader';\nexport { default as ModalFooter } from './ModalFooter';\n"],"mappings":"SAASA,OAAO,IAAIC,cAAc;AAAA,SACzBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,KAAK;AAAA,SAChBH,OAAO,IAAII,SAAS;AAAA,SACpBJ,OAAO,IAAIK,WAAW;AAAA,SACtBL,OAAO,IAAIM,WAAW"}
1
+ {"version":3,"file":"index.js","names":["default","DebouncedModal","InfoModal","Modal","ModalBody","ModalHeader","ModalFooter"],"sources":["../../src/modal/index.ts"],"sourcesContent":["export { default as DebouncedModal } from './DebouncedModal';\nexport { default as InfoModal } from './InfoModal';\nexport { default as Modal } from './Modal';\nexport { default as ModalBody } from './ModalBody';\nexport { default as ModalHeader } from './ModalHeader';\nexport { default as ModalFooter } from './ModalFooter';\n"],"mappings":"SAASA,OAAO,IAAIC,cAAc;AAAA,SACzBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,KAAK;AAAA,SAChBH,OAAO,IAAII,SAAS;AAAA,SACpBJ,OAAO,IAAIK,WAAW;AAAA,SACtBL,OAAO,IAAIM,WAAW","ignoreList":[]}
@@ -5,8 +5,7 @@ import { Button } from "../Button.js";
5
5
  import SearchInput from "../SearchInput.js";
6
6
  import "./DashboardList.css";
7
7
  import { GLOBAL_SHORTCUTS } from "../shortcuts/index.js";
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
9
  /**
11
10
  * Display a search field and a list of dashboard tabs
12
11
  * @param props The tabs and handlers to use for this list
@@ -24,7 +23,7 @@ export function DashboardList(props) {
24
23
  var itemRefs = useRef([]);
25
24
  useEffect(() => {
26
25
  var _searchField$current;
27
- (_searchField$current = searchField.current) === null || _searchField$current === void 0 ? void 0 : _searchField$current.focus();
26
+ (_searchField$current = searchField.current) === null || _searchField$current === void 0 || _searchField$current.focus();
28
27
  }, []);
29
28
  useEffect(() => {
30
29
  setFocusedIndex(0);
@@ -32,7 +31,7 @@ export function DashboardList(props) {
32
31
  useEffect(() => {
33
32
  if (focusedIndex >= 0 && itemRefs.current[focusedIndex]) {
34
33
  var _itemRefs$current$foc;
35
- (_itemRefs$current$foc = itemRefs.current[focusedIndex]) === null || _itemRefs$current$foc === void 0 ? void 0 : _itemRefs$current$foc.scrollIntoView({
34
+ (_itemRefs$current$foc = itemRefs.current[focusedIndex]) === null || _itemRefs$current$foc === void 0 || _itemRefs$current$foc.scrollIntoView({
36
35
  behavior: 'auto',
37
36
  block: 'nearest'
38
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardList.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","FontAwesomeIcon","EMPTY_ARRAY","Button","SearchInput","GLOBAL_SHORTCUTS","jsx","_jsx","jsxs","_jsxs","DashboardList","props","onSelect","tabs","searchText","setSearchText","focusedIndex","setFocusedIndex","searchField","listRef","itemRefs","_searchField$current","current","focus","_itemRefs$current$foc","scrollIntoView","behavior","block","handleSearchChange","e","target","value","handleTabSelect","tab","handleMouseDown","event","preventDefault","filteredTabs","filter","title","toLowerCase","includes","sort","a","b","_a$title$localeCompar","localeCompare","handleSearchKeyDown","key","length","prev","selectedIndex","tabElements","map","index","_tab$key","ref","el","onMouseDown","children","kind","concat","onClick","className","style","transition","icon","isValidElement","errorElement","placeholder","endPlaceholder","OPEN_DASHBOARD_LIST","getDisplayText","onChange","onKeyDown"],"sources":["../../src/navigation/DashboardList.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\nimport { Button } from '../Button';\nimport SearchInput from '../SearchInput';\nimport type { NavTabItem } from './NavTabList';\nimport './DashboardList.scss';\nimport { GLOBAL_SHORTCUTS } from '../shortcuts';\n\nexport interface DashboardListProps {\n onSelect: (tab: NavTabItem) => void;\n tabs?: NavTabItem[];\n}\n\n/**\n * Display a search field and a list of dashboard tabs\n * @param props The tabs and handlers to use for this list\n * @returns A JSX element for the list of dashboard tabs, along with search\n */\nexport function DashboardList(props: DashboardListProps): JSX.Element {\n const { onSelect, tabs = EMPTY_ARRAY } = props;\n const [searchText, setSearchText] = useState('');\n const [focusedIndex, setFocusedIndex] = useState(0);\n const searchField = useRef<SearchInput>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const itemRefs = useRef<(HTMLLIElement | null)[]>([]);\n\n useEffect(() => {\n searchField.current?.focus();\n }, []);\n\n useEffect(() => {\n setFocusedIndex(0);\n }, [searchText]);\n\n useEffect(() => {\n if (focusedIndex >= 0 && itemRefs.current[focusedIndex]) {\n itemRefs.current[focusedIndex]?.scrollIntoView({\n behavior: 'auto',\n block: 'nearest',\n });\n }\n }, [focusedIndex]);\n\n const handleSearchChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n setSearchText(e.target.value);\n }, []);\n\n const handleTabSelect = useCallback(\n (tab: NavTabItem) => {\n onSelect(tab);\n },\n [onSelect]\n );\n\n const handleMouseDown = useCallback((event: React.MouseEvent) => {\n // Prevent mousedown from taking focus away from the search input\n event.preventDefault();\n }, []);\n\n const filteredTabs = useMemo(\n () =>\n tabs.filter(tab =>\n tab.title.toLowerCase().includes(searchText.toLowerCase())\n ),\n [searchText, tabs]\n ).sort((a, b) => a.title.localeCompare(b.title) ?? 0);\n\n const handleSearchKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown' && filteredTabs.length > 0) {\n event.preventDefault();\n setFocusedIndex(prev =>\n prev === -1 ? 0 : (prev + 1) % filteredTabs.length\n );\n } else if (event.key === 'ArrowUp' && filteredTabs.length > 0) {\n event.preventDefault();\n setFocusedIndex(prev => {\n if (prev === -1) return filteredTabs.length - 1;\n return (prev - 1 + filteredTabs.length) % filteredTabs.length;\n });\n } else if (event.key === 'Enter' && filteredTabs.length > 0) {\n event.preventDefault();\n const selectedIndex = focusedIndex >= 0 ? focusedIndex : 0;\n handleTabSelect(filteredTabs[selectedIndex]);\n } else if (event.key === 'Tab') {\n event.preventDefault();\n }\n },\n [filteredTabs, focusedIndex, handleTabSelect]\n );\n\n const tabElements = useMemo(\n () =>\n filteredTabs.map((tab, index) => (\n <li\n key={tab.key}\n ref={(el: HTMLLIElement | null) => {\n itemRefs.current[index] = el;\n }}\n onMouseDown={handleMouseDown}\n >\n <Button\n kind=\"ghost\"\n data-testid={`dashboard-list-item-${tab.key ?? ''}-button`}\n onClick={() => handleTabSelect(tab)}\n className={focusedIndex === index ? 'focused' : ''}\n style={{ transition: 'none' }}\n >\n {tab.icon ? (\n <span className=\"dashboard-list-item-icon\">\n {React.isValidElement(tab.icon) ? (\n tab.icon\n ) : (\n <FontAwesomeIcon icon={tab.icon as IconDefinition} />\n )}\n </span>\n ) : null}\n {tab.title}\n </Button>\n </li>\n )),\n [filteredTabs, handleTabSelect, focusedIndex, handleMouseDown]\n );\n\n const errorElement = useMemo(\n () =>\n tabElements.length === 0 ? <span>No open dashboard found.</span> : null,\n [tabElements]\n );\n\n return (\n <div className=\"dashboard-list-container d-flex flex-column\">\n <div className=\"dashboard-list-header\">\n <SearchInput\n value={searchText}\n placeholder=\"Find open dashboard\"\n endPlaceholder={GLOBAL_SHORTCUTS.OPEN_DASHBOARD_LIST.getDisplayText()}\n onChange={handleSearchChange}\n onKeyDown={handleSearchKeyDown}\n ref={searchField}\n />\n </div>\n <ul className=\"dashboard-list flex-grow-1\" ref={listRef}>\n {errorElement && (\n <li className=\"dashboard-list-message\">{errorElement}</li>\n )}\n {!errorElement && tabElements}\n </ul>\n </div>\n );\n}\n\nexport default DashboardList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DashboardList.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","FontAwesomeIcon","EMPTY_ARRAY","Button","SearchInput","GLOBAL_SHORTCUTS","jsx","_jsx","jsxs","_jsxs","DashboardList","props","onSelect","tabs","searchText","setSearchText","focusedIndex","setFocusedIndex","searchField","listRef","itemRefs","_searchField$current","current","focus","_itemRefs$current$foc","scrollIntoView","behavior","block","handleSearchChange","e","target","value","handleTabSelect","tab","handleMouseDown","event","preventDefault","filteredTabs","filter","title","toLowerCase","includes","sort","a","b","_a$title$localeCompar","localeCompare","handleSearchKeyDown","key","length","prev","selectedIndex","tabElements","map","index","_tab$key","ref","el","onMouseDown","children","kind","concat","onClick","className","style","transition","icon","isValidElement","errorElement","placeholder","endPlaceholder","OPEN_DASHBOARD_LIST","getDisplayText","onChange","onKeyDown"],"sources":["../../src/navigation/DashboardList.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\nimport { Button } from '../Button';\nimport SearchInput from '../SearchInput';\nimport type { NavTabItem } from './NavTabList';\nimport './DashboardList.scss';\nimport { GLOBAL_SHORTCUTS } from '../shortcuts';\n\nexport interface DashboardListProps {\n onSelect: (tab: NavTabItem) => void;\n tabs?: NavTabItem[];\n}\n\n/**\n * Display a search field and a list of dashboard tabs\n * @param props The tabs and handlers to use for this list\n * @returns A JSX element for the list of dashboard tabs, along with search\n */\nexport function DashboardList(props: DashboardListProps): JSX.Element {\n const { onSelect, tabs = EMPTY_ARRAY } = props;\n const [searchText, setSearchText] = useState('');\n const [focusedIndex, setFocusedIndex] = useState(0);\n const searchField = useRef<SearchInput>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const itemRefs = useRef<(HTMLLIElement | null)[]>([]);\n\n useEffect(() => {\n searchField.current?.focus();\n }, []);\n\n useEffect(() => {\n setFocusedIndex(0);\n }, [searchText]);\n\n useEffect(() => {\n if (focusedIndex >= 0 && itemRefs.current[focusedIndex]) {\n itemRefs.current[focusedIndex]?.scrollIntoView({\n behavior: 'auto',\n block: 'nearest',\n });\n }\n }, [focusedIndex]);\n\n const handleSearchChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n setSearchText(e.target.value);\n }, []);\n\n const handleTabSelect = useCallback(\n (tab: NavTabItem) => {\n onSelect(tab);\n },\n [onSelect]\n );\n\n const handleMouseDown = useCallback((event: React.MouseEvent) => {\n // Prevent mousedown from taking focus away from the search input\n event.preventDefault();\n }, []);\n\n const filteredTabs = useMemo(\n () =>\n tabs.filter(tab =>\n tab.title.toLowerCase().includes(searchText.toLowerCase())\n ),\n [searchText, tabs]\n ).sort((a, b) => a.title.localeCompare(b.title) ?? 0);\n\n const handleSearchKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown' && filteredTabs.length > 0) {\n event.preventDefault();\n setFocusedIndex(prev =>\n prev === -1 ? 0 : (prev + 1) % filteredTabs.length\n );\n } else if (event.key === 'ArrowUp' && filteredTabs.length > 0) {\n event.preventDefault();\n setFocusedIndex(prev => {\n if (prev === -1) return filteredTabs.length - 1;\n return (prev - 1 + filteredTabs.length) % filteredTabs.length;\n });\n } else if (event.key === 'Enter' && filteredTabs.length > 0) {\n event.preventDefault();\n const selectedIndex = focusedIndex >= 0 ? focusedIndex : 0;\n handleTabSelect(filteredTabs[selectedIndex]);\n } else if (event.key === 'Tab') {\n event.preventDefault();\n }\n },\n [filteredTabs, focusedIndex, handleTabSelect]\n );\n\n const tabElements = useMemo(\n () =>\n filteredTabs.map((tab, index) => (\n <li\n key={tab.key}\n ref={(el: HTMLLIElement | null) => {\n itemRefs.current[index] = el;\n }}\n onMouseDown={handleMouseDown}\n >\n <Button\n kind=\"ghost\"\n data-testid={`dashboard-list-item-${tab.key ?? ''}-button`}\n onClick={() => handleTabSelect(tab)}\n className={focusedIndex === index ? 'focused' : ''}\n style={{ transition: 'none' }}\n >\n {tab.icon ? (\n <span className=\"dashboard-list-item-icon\">\n {React.isValidElement(tab.icon) ? (\n tab.icon\n ) : (\n <FontAwesomeIcon icon={tab.icon as IconDefinition} />\n )}\n </span>\n ) : null}\n {tab.title}\n </Button>\n </li>\n )),\n [filteredTabs, handleTabSelect, focusedIndex, handleMouseDown]\n );\n\n const errorElement = useMemo(\n () =>\n tabElements.length === 0 ? <span>No open dashboard found.</span> : null,\n [tabElements]\n );\n\n return (\n <div className=\"dashboard-list-container d-flex flex-column\">\n <div className=\"dashboard-list-header\">\n <SearchInput\n value={searchText}\n placeholder=\"Find open dashboard\"\n endPlaceholder={GLOBAL_SHORTCUTS.OPEN_DASHBOARD_LIST.getDisplayText()}\n onChange={handleSearchChange}\n onKeyDown={handleSearchKeyDown}\n ref={searchField}\n />\n </div>\n <ul className=\"dashboard-list flex-grow-1\" ref={listRef}>\n {errorElement && (\n <li className=\"dashboard-list-message\">{errorElement}</li>\n )}\n {!errorElement && tabElements}\n </ul>\n </div>\n );\n}\n\nexport default DashboardList;\n"],"mappings":"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","ignoreList":[]}