@adaptabletools/adaptable 23.0.0-canary.6 → 23.0.0-canary.7

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 (332) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +755 -256
  3. package/package.json +1 -1
  4. package/src/AdaptableOptions/DataSetOptions.d.ts +26 -2
  5. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
  6. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +42 -10
  7. package/src/AdaptableState/Common/AdaptableFormat.d.ts +7 -0
  8. package/src/AdaptableState/Common/AdaptableMessageType.d.ts +1 -1
  9. package/src/AdaptableState/Common/Enums.d.ts +1 -1
  10. package/src/AdaptableState/Common/Enums.js +1 -1
  11. package/src/AdaptableState/StyledColumnState.d.ts +2 -2
  12. package/src/Api/Internal/AlertInternalApi.js +1 -1
  13. package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
  14. package/src/Api/Internal/DataSetInternalApi.js +73 -13
  15. package/src/Redux/Store/AdaptableStore.js +6 -4
  16. package/src/Strategy/CalculatedColumnModule.js +1 -0
  17. package/src/Strategy/ColumnFilterModule.js +1 -0
  18. package/src/Strategy/FlashingCellModule.js +6 -2
  19. package/src/Strategy/FormatColumnModule.js +2 -2
  20. package/src/Strategy/FreeTextColumnModule.js +38 -28
  21. package/src/Strategy/Interface/IModule.d.ts +3 -1
  22. package/src/Strategy/LayoutModule.js +15 -66
  23. package/src/Strategy/StyledColumnModule.js +12 -29
  24. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
  25. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
  26. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
  27. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +14 -0
  28. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  29. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +3 -0
  30. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  31. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +105 -0
  32. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  33. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +166 -0
  34. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
  35. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
  36. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
  37. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +85 -0
  38. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  39. package/src/Utilities/Defaults/DefaultSettingsPanel.js +46 -41
  40. package/src/Utilities/Helpers/FormatHelper.js +3 -0
  41. package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
  42. package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
  43. package/src/Utilities/Helpers/StyleHelper.js +27 -0
  44. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +7 -5
  45. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  46. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +15 -0
  47. package/src/Utilities/getScopeViewItems.js +2 -0
  48. package/src/Utilities/wizardSelection.d.ts +10 -0
  49. package/src/Utilities/wizardSelection.js +15 -0
  50. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
  51. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
  52. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
  53. package/src/View/Alert/AlertViewPanel.js +2 -2
  54. package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
  55. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
  56. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +0 -4
  57. package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -1
  58. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  59. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
  60. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  61. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +3 -4
  62. package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
  63. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
  64. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  65. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +31 -7
  66. package/src/View/Alert/Wizard/AlertWizard.js +4 -4
  67. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  68. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -14
  69. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  70. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
  71. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
  73. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  74. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +30 -4
  75. package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
  76. package/src/View/Charting/ShowChartButton.js +8 -8
  77. package/src/View/ColumnInfo/ColumnInfo.js +21 -1
  78. package/src/View/Components/AdaptableObjectCollection/index.js +2 -2
  79. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +1 -1
  80. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +4 -4
  81. package/src/View/Components/AdaptableObjectRow/index.js +2 -2
  82. package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
  83. package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
  84. package/src/View/Components/Buttons/ButtonNew.js +1 -1
  85. package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
  86. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +2 -2
  87. package/src/View/Components/ColumnFilter/ColumnFilter.js +2 -3
  88. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  89. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  90. package/src/View/Components/ColumnSelector/index.js +30 -6
  91. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  92. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  93. package/src/View/Components/NewScopeComponent.js +4 -9
  94. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  95. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  96. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
  97. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  98. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  99. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -3
  100. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -2
  101. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  102. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +1 -0
  103. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  104. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +25 -27
  105. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  106. package/src/View/Components/RangesComponent.d.ts +2 -4
  107. package/src/View/Components/RangesComponent.js +95 -66
  108. package/src/View/Components/ReorderDraggable/index.js +2 -2
  109. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  110. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  111. package/src/View/Components/StyleComponent.js +32 -65
  112. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +10 -7
  113. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  114. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -81
  115. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  116. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +76 -0
  117. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  118. package/src/View/Components/ValueSelector/index.js +113 -30
  119. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  120. package/src/View/Components/wizardColumnListStyles.js +10 -0
  121. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  122. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +5 -7
  123. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  124. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  125. package/src/View/Dashboard/DashboardPopup.js +3 -67
  126. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  127. package/src/View/Dashboard/DashboardPopupSections.js +68 -0
  128. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  129. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  130. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  131. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  132. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +94 -0
  133. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  134. package/src/View/DataChangeHistory/buildActionColumnButton.js +30 -39
  135. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  136. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +37 -0
  137. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  138. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  139. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  140. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  141. package/src/View/Export/ExportDestinationPicker.js +3 -3
  142. package/src/View/Export/ExportViewPanel.js +2 -2
  143. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  144. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +4 -9
  145. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  146. package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -6
  147. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  148. package/src/View/FlashingCell/FlashingCellStyle.js +4 -2
  149. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  150. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +7 -11
  151. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  152. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +5 -0
  153. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  154. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +1 -0
  155. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  156. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +1 -5
  157. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -3
  158. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  159. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +99 -42
  160. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  161. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +0 -4
  162. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +56 -15
  163. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  164. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  165. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -8
  166. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -13
  167. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  168. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  169. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  170. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  171. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -2
  172. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  173. package/src/View/Layout/LayoutViewPanel.js +1 -1
  174. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  175. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  176. package/src/View/Layout/Wizard/sections/AggregationsSection.js +73 -33
  177. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  178. package/src/View/Layout/Wizard/sections/ColumnsSection.js +155 -276
  179. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  180. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +148 -145
  181. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  182. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +24 -12
  183. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  184. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +23 -12
  185. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  186. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +19 -12
  187. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +8 -4
  188. package/src/View/Layout/Wizard/sections/RowSummarySection.js +11 -11
  189. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  190. package/src/View/Layout/Wizard/sections/SortSection.js +41 -17
  191. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  192. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +159 -0
  193. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  194. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +201 -0
  195. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  196. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +63 -0
  197. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  198. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +52 -0
  199. package/src/View/License/LicenseWatermark.js +1 -1
  200. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  201. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  202. package/src/View/Note/NoteEditor.js +2 -2
  203. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  204. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  205. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  206. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  207. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  208. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  209. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  210. package/src/View/StateManagement/components/ExportDropdown.js +12 -12
  211. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  212. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  213. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  214. package/src/View/StatusBar/statusBarPanelHelpers.js +7 -0
  215. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
  216. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +14 -11
  217. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  218. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +137 -119
  219. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +8 -14
  220. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  221. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  222. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +50 -0
  223. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  224. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +26 -5
  225. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +8 -17
  226. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  227. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +46 -28
  228. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +98 -43
  229. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  230. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  231. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +32 -46
  232. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +11 -6
  233. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +94 -7
  234. package/src/View/UIHelper.d.ts +0 -2
  235. package/src/View/UIHelper.js +8 -23
  236. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  237. package/src/View/Wizard/CollapsibleWizardCard.js +81 -0
  238. package/src/View/Wizard/OnePageWizards.js +6 -6
  239. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  240. package/src/View/Wizard/SummaryColorTag.js +67 -0
  241. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  242. package/src/View/Wizard/WizardTypeSelection.js +31 -0
  243. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  244. package/src/View/Wizard/rowGroupSummaryTags.js +14 -0
  245. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  246. package/src/View/Wizard/scopeSummaryTags.js +33 -0
  247. package/src/agGrid/AgGridAdapter.js +0 -5
  248. package/src/agGrid/AgGridColumnAdapter.js +2 -2
  249. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  250. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  251. package/src/components/Card/index.js +5 -6
  252. package/src/components/CheckBox/index.js +2 -3
  253. package/src/components/CodeBlock/index.js +2 -2
  254. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  255. package/src/components/ColorPicker/ColorPicker.js +8 -6
  256. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  257. package/src/components/ColorPicker/OptionalColorPicker.js +26 -0
  258. package/src/components/ColorPicker/index.d.ts +1 -0
  259. package/src/components/ColorPicker/index.js +1 -0
  260. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  261. package/src/components/Combobox/index.js +19 -18
  262. package/src/components/Dashboard/DashboardManager.js +2 -4
  263. package/src/components/Dialog/index.js +4 -4
  264. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  265. package/src/components/DragAndDropContext/DragAndDropContext.js +3 -0
  266. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  267. package/src/components/DragAndDropContext/ModuleManager.js +47 -8
  268. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  269. package/src/components/DragAndDropContext/TabList.js +52 -38
  270. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  271. package/src/components/DragAndDropContext/UnusedPanel.js +15 -11
  272. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  273. package/src/components/DragAndDropContext/dragScope.js +26 -0
  274. package/src/components/DragAndDropContext/types.d.ts +7 -0
  275. package/src/components/DropdownButton/index.d.ts +33 -25
  276. package/src/components/DropdownButton/index.js +24 -158
  277. package/src/components/EmptyContent/index.js +2 -2
  278. package/src/components/ErrorBox/index.js +2 -2
  279. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  280. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  281. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +6 -6
  282. package/src/components/FieldWrap/index.js +2 -2
  283. package/src/components/Flex.js +2 -2
  284. package/src/components/FormLayout/index.d.ts +1 -1
  285. package/src/components/HelpBlock/index.js +3 -3
  286. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  287. package/src/components/IconSelector/IconSelector.js +11 -7
  288. package/src/components/IconSelector/index.d.ts +1 -0
  289. package/src/components/IconSelector/index.js +1 -0
  290. package/src/components/Modal/index.js +2 -2
  291. package/src/components/NewSelect/index.js +11 -1
  292. package/src/components/Panel/index.js +7 -7
  293. package/src/components/Radio/index.d.ts +1 -1
  294. package/src/components/Radio/index.js +8 -6
  295. package/src/components/SimpleButton/index.js +7 -7
  296. package/src/components/StylePreview.js +2 -2
  297. package/src/components/Tabs/index.js +4 -4
  298. package/src/components/Tag/Tag.d.ts +16 -0
  299. package/src/components/Tag/Tag.js +14 -4
  300. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  301. package/src/components/Tag/columnScopeTagHelpers.js +6 -0
  302. package/src/components/Tag/index.d.ts +1 -1
  303. package/src/components/Tag/index.js +1 -1
  304. package/src/components/Textarea/index.js +2 -3
  305. package/src/components/Toggle/Toggle.d.ts +2 -0
  306. package/src/components/Toggle/Toggle.js +14 -7
  307. package/src/components/Toggle/ToggleGroup.js +2 -2
  308. package/src/components/ToggleButton/index.js +4 -4
  309. package/src/components/Tree/TreeDropdown/index.js +3 -4
  310. package/src/components/WarningBox/index.js +2 -2
  311. package/src/components/icons/sort-asc.js +1 -1
  312. package/src/components/ui/button.d.ts +2 -2
  313. package/src/components/ui/combobox.d.ts +3 -1
  314. package/src/components/ui/combobox.js +2 -2
  315. package/src/components/ui/input-group.d.ts +1 -1
  316. package/src/components/ui/select.js +3 -2
  317. package/src/components/ui/textarea.js +1 -1
  318. package/src/env.js +2 -2
  319. package/src/layout-manager/src/index.js +7 -3
  320. package/src/metamodel/adaptable.metamodel.js +1 -1
  321. package/src/types.d.ts +1 -1
  322. package/tsconfig.esm.tsbuildinfo +1 -1
  323. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  324. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -290
  325. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  326. package/src/components/DropdownButton/DropdownButtonItem.js +0 -1
  327. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  328. package/src/components/DropdownButton/renderItem.js +0 -11
  329. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  330. package/src/components/DropdownButton/useExpanded.js +0 -56
  331. package/src/components/NewDropdownButton/index.d.ts +0 -27
  332. package/src/components/NewDropdownButton/index.js +0 -24
@@ -1,12 +1,11 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import FormLayout, { FormRow } from '../../../components/FormLayout';
3
- import Input from '../../../components/Input';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
2
  import { Tag } from '../../../components/Tag';
5
3
  import ObjectFactory from '../../../Utilities/ObjectFactory';
6
4
  import { useAdaptable } from '../../AdaptableContext';
7
5
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
8
- import { TypeRadio } from '../../Wizard/TypeRadio';
9
6
  import { Flex, Box } from '../../../components/Flex';
7
+ import { StyledColumnTypeThumbnail } from './StyledColumnTypeThumbnail';
8
+ import { getWizardTypeSelectionGridColumns, WizardNameFieldSection, WizardTypeSelectionCard, WizardTypeSelectionSection, } from '../../Wizard/WizardTypeSelection';
10
9
  const TYPE_LABELS = {
11
10
  Gradient: 'Gradient Column',
12
11
  PercentBar: 'Percent Bar',
@@ -17,6 +16,88 @@ const TYPE_LABELS = {
17
16
  RangeBar: 'Range Bar',
18
17
  Icon: 'Icon',
19
18
  };
19
+ const STYLED_COLUMN_TYPE_GROUPS = [
20
+ {
21
+ title: 'Labels & icons',
22
+ types: ['badge', 'icon', 'rating'],
23
+ },
24
+ {
25
+ title: 'Bars & ranges',
26
+ types: ['percent', 'bullet', 'rangeBar'],
27
+ },
28
+ {
29
+ title: 'Colour',
30
+ types: ['gradient'],
31
+ },
32
+ {
33
+ title: 'Charts',
34
+ types: ['sparkline'],
35
+ },
36
+ ];
37
+ const STYLED_COLUMN_TYPE_OPTIONS = [
38
+ {
39
+ type: 'badge',
40
+ label: 'Badge',
41
+ columnTypes: ['Any Column'],
42
+ description: 'Render cell values as badges',
43
+ isSelected: (data) => Boolean(data.BadgeStyle),
44
+ },
45
+ {
46
+ type: 'icon',
47
+ label: 'Icon',
48
+ columnTypes: ['Any Column'],
49
+ description: 'Map values to icons',
50
+ isSelected: (data) => Boolean(data.IconStyle),
51
+ },
52
+ {
53
+ type: 'rating',
54
+ label: 'Rating',
55
+ columnTypes: ['Numeric Column'],
56
+ description: 'Provide visual rating indicators',
57
+ isSelected: (data) => Boolean(data.RatingStyle),
58
+ },
59
+ {
60
+ type: 'gradient',
61
+ label: 'Gradient',
62
+ columnTypes: ['Numeric Column'],
63
+ description: 'Colour cells by value ranges',
64
+ isSelected: (data) => Boolean(data.GradientStyle),
65
+ },
66
+ {
67
+ type: 'percent',
68
+ label: 'Percent Bar',
69
+ columnTypes: ['Numeric Column'],
70
+ description: 'Draw a bar sized to the value',
71
+ isSelected: (data) => Boolean(data.PercentBarStyle),
72
+ },
73
+ {
74
+ type: 'bullet',
75
+ label: 'Bullet Chart',
76
+ columnTypes: ['Numeric Column'],
77
+ description: 'Bar with target and bands',
78
+ isSelected: (data) => Boolean(data.BulletChartStyle),
79
+ },
80
+ {
81
+ type: 'rangeBar',
82
+ label: 'Range Bar',
83
+ columnTypes: ['Numeric Column'],
84
+ description: 'Show value on a min–max track',
85
+ isSelected: (data) => Boolean(data.RangeBarStyle),
86
+ },
87
+ {
88
+ type: 'sparkline',
89
+ label: 'Sparkline',
90
+ columnTypes: ['Numeric Array Column'],
91
+ description: 'Display a mini chart in the cell',
92
+ isSelected: (data) => Boolean(data.SparklineStyle),
93
+ },
94
+ ];
95
+ const STYLED_COLUMN_TYPE_COUNT = STYLED_COLUMN_TYPE_OPTIONS.length;
96
+ const STYLED_COLUMN_TYPE_OPTION_BY_KEY = STYLED_COLUMN_TYPE_OPTIONS.reduce((map, option) => {
97
+ map.set(option.type, option);
98
+ return map;
99
+ }, new Map());
100
+ const STYLED_COLUMN_TYPE_KEYS = STYLED_COLUMN_TYPE_GROUPS.flatMap((group) => group.types);
20
101
  /**
21
102
  * Wizard-header title for each Styled Column type. Reads as a complete
22
103
  * subject so it works as a top-level title in the wizard frame
@@ -79,6 +160,7 @@ export const renderStyledColumnTypeSummary = renderStyledColumnSettingsSummary;
79
160
  export const StyledColumnWizardTypeSection = (props) => {
80
161
  const { data } = useOnePageAdaptableWizardContext();
81
162
  const adaptable = useAdaptable();
163
+ const sparklinesAvailable = adaptable.api.styledColumnApi.canDisplaySparklines();
82
164
  const onNameChange = (event) => {
83
165
  props.onChange({
84
166
  ...data,
@@ -123,8 +205,6 @@ export const StyledColumnWizardTypeSection = (props) => {
123
205
  newStyledColumn.RatingStyle = {};
124
206
  break;
125
207
  case 'rangeBar':
126
- // Range Bar requires Min and Max — seed sensible defaults so the
127
- // wizard's Style step opens with a valid configuration.
128
208
  newStyledColumn.RangeBarStyle = {
129
209
  Min: 'Col-Min',
130
210
  Max: 'Col-Max',
@@ -139,5 +219,12 @@ export const StyledColumnWizardTypeSection = (props) => {
139
219
  newStyledColumn.ColumnId = null;
140
220
  props.onChange(newStyledColumn);
141
221
  };
142
- return (_jsxs(Flex, { flexDirection: "column", "data-name": "styled-column-type", className: "twa:h-full twa:p-2", children: [_jsx(Box, { className: "twa:text-5 twa:font-medium twa:mb-3", children: "Settings" }), _jsx(Flex, { flexDirection: "row", className: "twa:mb-4", children: _jsx(FormLayout, { className: "twa:max-w-[420px] twa:w-full", children: _jsx(FormRow, { label: "Name", children: _jsx(Input, { className: "twa:w-full", "data-name": "styled-column-name", onChange: onNameChange, value: data?.Name ?? '' }) }) }) }), _jsx(Box, { className: "twa:text-5 twa:font-medium twa:mb-2", children: "Type" }), _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: "Badge", description: "Display the column's values as Badges (All Columns)", checked: Boolean(data.BadgeStyle), onClick: () => handleTypeChange('badge') }), _jsx(TypeRadio, { text: "Rating", description: "Render values as row of icons (or stars, hearts etc.) (Numeric Columns)", checked: Boolean(data.RatingStyle), onClick: () => handleTypeChange('rating') }), _jsx(TypeRadio, { text: "Gradient", description: "Colour each cell in the column using a Gradient value (Numeric Columns)", checked: Boolean(data.GradientStyle), onClick: () => handleTypeChange('gradient') }), _jsx(TypeRadio, { text: "Percent Bar", description: "Display a coloured Bar where the width is based on the cell (Numeric Columns)", checked: Boolean(data.PercentBarStyle), onClick: () => handleTypeChange('percent') }), _jsx(TypeRadio, { text: "Bullet Chart", description: "Show a bar with target marker and qualitative bands per cell (Numeric Columns)", checked: Boolean(data.BulletChartStyle), onClick: () => handleTypeChange('bullet') }), _jsx(TypeRadio, { text: "Range Bar", description: "Show where values sit between Min & Max (per-row or column) (Numeric Columns)", checked: Boolean(data.RangeBarStyle), onClick: () => handleTypeChange('rangeBar') }), _jsx(TypeRadio, { text: "Icon", description: "Map cell values to icons (e.g. flag for country) (All Columns)", checked: Boolean(data.IconStyle), onClick: () => handleTypeChange('icon') }), _jsx(TypeRadio, { text: "Sparkline", description: "Render Column as a Sparkline (Numeric Array Columns)", checked: Boolean(data.SparklineStyle), disabled: !adaptable.api.styledColumnApi.canDisplaySparklines(), disabledTooltip: "Requires the AG Grid Sparklines module to be registered.", onClick: () => handleTypeChange('sparkline') })] })] }));
222
+ return (_jsxs(Flex, { flexDirection: "column", "data-name": "styled-column-type", className: "twa:h-full twa:min-h-0 twa:p-2 twa:gap-2", children: [_jsx(WizardNameFieldSection, { value: data?.Name ?? '', onChange: onNameChange, inputDataName: "styled-column-name" }), _jsx(WizardTypeSelectionSection, { headingId: "styled-column-type-heading", title: "Style Type", dataName: "styled-column-type-grid", columns: getWizardTypeSelectionGridColumns(STYLED_COLUMN_TYPE_COUNT), intro: _jsxs(_Fragment, { children: ["Click a card to choose one of ", STYLED_COLUMN_TYPE_COUNT, " style types for how values in the Column should be rendered"] }), children: STYLED_COLUMN_TYPE_KEYS.map((typeKey) => {
223
+ const option = STYLED_COLUMN_TYPE_OPTION_BY_KEY.get(typeKey);
224
+ const isSparkline = typeKey === 'sparkline';
225
+ const disabled = isSparkline && !sparklinesAvailable;
226
+ return (_jsx(WizardTypeSelectionCard, { label: option.label, description: option.description, selected: option.isSelected(data), disabled: disabled, disabledTooltip: disabled
227
+ ? 'Requires the AG Grid Sparklines module to be registered.'
228
+ : undefined, dataName: `styled-column-type-${option.type}`, minHeightClassName: "twa:min-h-[168px]", onSelect: () => handleTypeChange(option.type), footer: _jsx(StyledColumnTypeThumbnail, { type: option.type }), children: _jsx(Flex, { flexDirection: "row", className: "twa:flex-wrap twa:gap-1", children: option.columnTypes.map((columnType) => (_jsx(Tag, { children: columnType }, columnType))) }) }, option.type));
229
+ }) })] }));
143
230
  };
@@ -26,7 +26,6 @@ export declare function getMessageTypeByStatusColour(statusColour: StatusColour)
26
26
  export declare function getButtonToneByMessageType(messageType: AdaptableMessageType): 'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent';
27
27
  export declare function getGlyphByMessageType(messageType: AdaptableMessageType): AdaptableSystemIconName;
28
28
  export declare function getColorByMessageType(messageType: AdaptableMessageType): string;
29
- export declare function getCSSColorByMessageType(messageType: AdaptableMessageType): string;
30
29
  export declare function getStyleForStatusColour(statusColour: StatusColour): CSSProperties;
31
30
  export declare function getStyleForMessageType(messageType: AdaptableMessageType): CSSProperties;
32
31
  export declare function getGlyphForStatusColour(statusColour: StatusColour): string;
@@ -67,7 +66,6 @@ export declare const UIHelper: {
67
66
  getGlyphForMessageType: typeof getGlyphForMessageType;
68
67
  getStyleForMessageType: typeof getStyleForMessageType;
69
68
  getMessageTypeFromAdaptableAlerts: typeof getMessageTypeFromAdaptableAlerts;
70
- getCSSColorByMessageType: typeof getCSSColorByMessageType;
71
69
  getButtonColourForAdaptableAlerts: typeof getButtonColourForAdaptableAlerts;
72
70
  getButtonTextColourForArrayandMessageType: typeof getButtonTextColourForArrayandMessageType;
73
71
  getButtonTextColourForMessageType: typeof getButtonTextColourForMessageType;
@@ -18,7 +18,7 @@ export function getSwatchColorPaletteEntries() {
18
18
  /** Theme semantic colours for the Colour Picker (resolved at runtime per active theme). */
19
19
  export function getThemeSemanticColorPaletteEntries() {
20
20
  return [
21
- 'var(--ab-color-error)',
21
+ 'var(--ab-color-destructive)',
22
22
  'var(--ab-color-warn)',
23
23
  'var(--ab-color-success)',
24
24
  'var(--ab-color-info)',
@@ -134,7 +134,7 @@ export function getGlyphByMessageType(messageType) {
134
134
  export function getColorByMessageType(messageType) {
135
135
  switch (messageType) {
136
136
  case 'Error':
137
- return 'var(--ab-color-error)';
137
+ return 'var(--ab-color-destructive)';
138
138
  case 'Warning':
139
139
  return 'var(--ab-color-warn)';
140
140
  case 'Success':
@@ -143,20 +143,6 @@ export function getColorByMessageType(messageType) {
143
143
  return 'var(--ab-color-info)';
144
144
  }
145
145
  }
146
- export function getCSSColorByMessageType(messageType) {
147
- switch (messageType) {
148
- case 'Error':
149
- return 'error';
150
- case 'Warning':
151
- return 'warn';
152
- case 'Success':
153
- return 'success';
154
- case 'Info':
155
- return 'info';
156
- default:
157
- return '';
158
- }
159
- }
160
146
  export function getStyleForStatusColour(statusColour) {
161
147
  let result;
162
148
  switch (statusColour) {
@@ -177,7 +163,7 @@ export function getStyleForStatusColour(statusColour) {
177
163
  break;
178
164
  case StatusColour.Error:
179
165
  result = {
180
- fill: 'var(--ab-color-error)',
166
+ fill: 'var(--ab-color-destructive)',
181
167
  };
182
168
  break;
183
169
  }
@@ -206,7 +192,7 @@ export function getStyleForMessageType(messageType) {
206
192
  break;
207
193
  case 'Error':
208
194
  result = {
209
- fill: 'var(--ab-color-error)',
195
+ fill: 'var(--ab-color-destructive)',
210
196
  };
211
197
  break;
212
198
  }
@@ -321,13 +307,13 @@ export function getButtonTextColourForArrayandMessageType(adaptableAlerts, messa
321
307
  export function getButtonTextColourForMessageType(messageType) {
322
308
  switch (messageType) {
323
309
  case 'Info':
324
- return 'var( --ab-color-text-on-info)';
310
+ return 'var( --ab-color-info-foreground)';
325
311
  case 'Success':
326
- return 'var( --ab-color-text-on-success)';
312
+ return 'var( --ab-color-success-foreground)';
327
313
  case 'Warning':
328
- return 'var( --ab-color-text-on-warn)';
314
+ return 'var( --ab-color-warn-foreground)';
329
315
  case 'Error':
330
- return 'var( --ab-color-text-on-error)';
316
+ return 'var( --ab-color-destructive-foreground)';
331
317
  }
332
318
  }
333
319
  function getNumericCSSVariableValue(stringValue, defaultValue) {
@@ -381,7 +367,6 @@ export const UIHelper = {
381
367
  getGlyphForMessageType,
382
368
  getStyleForMessageType,
383
369
  getMessageTypeFromAdaptableAlerts,
384
- getCSSColorByMessageType,
385
370
  getButtonColourForAdaptableAlerts,
386
371
  getButtonTextColourForArrayandMessageType,
387
372
  getButtonTextColourForMessageType,
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ import { type CollapsibleWizardCardSurface } from '../../Utilities/wizardSelection';
3
+ export interface CollapsibleWizardCardProps {
4
+ title: React.ReactNode;
5
+ /** Help text in the header when expanded. */
6
+ help?: React.ReactNode;
7
+ /**
8
+ * Help text in the header when collapsed. Uses `help` when omitted.
9
+ * Pass `false` to hide collapsed header help.
10
+ */
11
+ collapsedHelp?: React.ReactNode | false;
12
+ /** Shown in the card body while collapsed — typically tags or a short value summary. */
13
+ summary: React.ReactNode;
14
+ /** One-line value shown in the header when another card in the accordion is expanded. */
15
+ compactSummary?: React.ReactNode;
16
+ /** When true, `compactSummary` remains interactive (e.g. toggle buttons). */
17
+ compactSummaryInteractive?: boolean;
18
+ /** Full-opacity visual in the header row (all states) — e.g. a live badge preview. */
19
+ headerVisual?: React.ReactNode;
20
+ /** Trailing header controls (all states) — e.g. delete. Clicks do not toggle expand. */
21
+ headerActions?: React.ReactNode;
22
+ children: React.ReactNode;
23
+ defaultExpanded?: boolean;
24
+ expanded?: boolean;
25
+ /** When true, only the header row is shown (another card in the accordion is expanded). */
26
+ compact?: boolean;
27
+ /** When true, the expanded card grows to fill remaining section height (for scrollable lists). */
28
+ fillAvailable?: boolean;
29
+ onExpandedChange?: (expanded: boolean) => void;
30
+ className?: string;
31
+ bodyClassName?: string;
32
+ /** `panel` = Layout wizard (same bg as parent); `popup` = module popups (Dashboard). */
33
+ surface?: CollapsibleWizardCardSurface;
34
+ 'data-name'?: string;
35
+ }
36
+ export type WizardCardAccordionBinding = {
37
+ expanded: boolean;
38
+ compact: boolean;
39
+ fillAvailable: boolean;
40
+ onExpandedChange: (expanded: boolean) => void;
41
+ };
42
+ export type WizardCardAccordionBindCardOptions = {
43
+ /** When expanded, grow to fill remaining section height. Default: false. */
44
+ fillAvailable?: boolean;
45
+ };
46
+ export type WizardCardAccordionOptions = {
47
+ /** Section default for `fillAvailable` when not set per card. Default: false. */
48
+ fillExpandedCard?: boolean;
49
+ };
50
+ export type WizardCardAccordionBindCard = (id: string, options?: WizardCardAccordionBindCardOptions) => WizardCardAccordionBinding;
51
+ export declare function getWizardAccordionSectionClassName(hasExpandedCard: boolean, fillExpandedCard?: boolean): string;
52
+ export declare function renderCompactColumnTags(columnIds: string[], getFriendlyName: (columnId: string) => string, options?: {
53
+ maxVisible?: number;
54
+ emptyLabel?: string;
55
+ }): React.ReactNode;
56
+ export declare const CollapsibleWizardCard: React.FC<CollapsibleWizardCardProps>;
57
+ export declare function useWizardCardAccordion(initialExpandedId: string | null, options?: WizardCardAccordionOptions): {
58
+ expandedId: string;
59
+ hasExpandedCard: boolean;
60
+ expandedFillsSpace: boolean;
61
+ bindCard: WizardCardAccordionBindCard;
62
+ fillExpandedCard: boolean;
63
+ setExpandedId: React.Dispatch<React.SetStateAction<string>>;
64
+ };
65
+ /** Collapsed card body: selected value tag(s) only — no description text. */
66
+ export declare const CollapsibleWizardValueSummary: React.FC<{
67
+ value: React.ReactNode;
68
+ }>;
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { Card } from '../../components/Card';
4
+ import { cn } from '../../lib/utils';
5
+ import { getCollapsibleWizardCardCollapsedClasses, getCollapsibleWizardCardExpandedClasses, } from '../../Utilities/wizardSelection';
6
+ import { Box, Flex } from '../../components/Flex';
7
+ import useProperty from '../../components/utils/useProperty';
8
+ import { ColumnTag, Tag } from '../../components/Tag';
9
+ import { IconComponent } from '../../components/Icon';
10
+ import { targetOwn } from '../../components/twUtils';
11
+ export function getWizardAccordionSectionClassName(hasExpandedCard, fillExpandedCard = true) {
12
+ return cn('twa:h-full twa:min-h-0 twa:flex twa:flex-col twa:gap-2', hasExpandedCard && fillExpandedCard ? 'twa:overflow-hidden' : 'twa:overflow-y-auto');
13
+ }
14
+ export function renderCompactColumnTags(columnIds, getFriendlyName, options) {
15
+ const { maxVisible = 5, emptyLabel = 'None' } = options ?? {};
16
+ if (!columnIds.length) {
17
+ return _jsx(Tag, { children: emptyLabel });
18
+ }
19
+ const visibleIds = columnIds.slice(0, maxVisible);
20
+ const remainder = columnIds.length - visibleIds.length;
21
+ return (_jsxs(Flex, { alignItems: "center", className: "twa:gap-1 twa:min-w-0 twa:overflow-hidden", children: [visibleIds.map((columnId) => (_jsx(ColumnTag, { className: "twa:shrink-0", children: getFriendlyName(columnId) }, columnId))), remainder > 0 ? (_jsxs("span", { className: "twa:text-xs twa:opacity-70 twa:shrink-0", children: ["+", remainder] })) : null] }));
22
+ }
23
+ export const CollapsibleWizardCard = (props) => {
24
+ const { title, help, collapsedHelp, summary, compactSummary, compactSummaryInteractive = false, headerVisual, headerActions, children, defaultExpanded = false, compact = false, fillAvailable = false, className, bodyClassName, surface = 'popup', 'data-name': dataName, } = props;
25
+ const [expanded, setExpanded] = useProperty(props, 'expanded', defaultExpanded, {
26
+ onChange: props.onExpandedChange,
27
+ });
28
+ const showSummary = !expanded && !compact;
29
+ const collapsedHeaderInline = collapsedHelp === false ? undefined : collapsedHelp ?? help;
30
+ const headerInline = expanded ? help : compact ? compactSummary : collapsedHeaderInline;
31
+ const isInteractiveCompactSummary = compact && compactSummaryInteractive;
32
+ const toggleExpanded = () => setExpanded(!expanded);
33
+ const handleTitleKeyDown = (event) => {
34
+ if (event.key === 'Enter' || event.key === ' ') {
35
+ event.preventDefault();
36
+ toggleExpanded();
37
+ }
38
+ };
39
+ return (_jsxs(Card, { shadow: false, className: cn('ab-CollapsibleWizardCard twa:border twa:transition-[border-color,background-color]', expanded
40
+ ? getCollapsibleWizardCardExpandedClasses(surface)
41
+ : getCollapsibleWizardCardCollapsedClasses(surface), compact && 'ab-CollapsibleWizardCard--compact twa:p-0!', fillAvailable
42
+ ? 'twa:flex-1 twa:min-h-0 twa:flex twa:flex-col twa:overflow-hidden'
43
+ : 'twa:shrink-0', className), children: [_jsx(Card.Title, { className: "twa:p-0", border: !compact, children: _jsxs(Box, { className: cn('twa:flex twa:flex-row twa:items-center twa:gap-2 twa:w-full twa:px-2 twa:cursor-pointer twa:rounded-standard twa:hover:bg-primary', { 'twa:py-2': true, 'twa:mb-0.5': !compact && !expanded },
44
+ // `targetOwn.focusOutline` uses a Tailwind `ring` (an *outward* box-shadow).
45
+ // In compact/collapsed mode the card sets `p-0!`, so this header sits flush
46
+ // against the card edge; combined with the card's `overflow-hidden` the
47
+ // outward ring is painted outside the border-box and clipped away. Draw it
48
+ // inset so it stays inside the element and is always visible.
49
+ targetOwn.focusOutline, 'twa:focus-visible:ring-inset'), "data-name": dataName, onClick: toggleExpanded, onKeyDown: handleTitleKeyDown, tabIndex: 0, "aria-expanded": expanded, role: "button", children: [_jsxs(Box, { className: "twa:flex twa:flex-row twa:items-center twa:gap-2 twa:shrink-0 twa:cursor-pointer twa:select-none", children: [_jsx(IconComponent, { icon: { name: expanded ? 'collapse' : 'expand' } }), _jsx(Box, { className: "twa:font-medium", children: title })] }), headerVisual ? (_jsx(Box, { className: "twa:flex-1 twa:min-w-0 twa:flex twa:justify-end twa:items-center twa:overflow-hidden twa:pointer-events-none", children: headerVisual })) : headerInline ? (_jsx(Box, { className: cn('twa:flex-1 twa:min-w-0 twa:font-normal', isInteractiveCompactSummary
50
+ ? 'twa:flex twa:justify-end twa:items-center twa:overflow-visible'
51
+ : cn('twa:text-xs twa:opacity-70 twa:pointer-events-none twa:cursor-default', compact ? 'twa:overflow-hidden' : 'twa:truncate')), children: headerInline })) : (_jsx(Box, { className: "twa:flex-1 twa:min-w-0" })), headerActions ? (_jsx(Box, { className: "twa:shrink-0", onClick: (event) => event.stopPropagation(), children: headerActions })) : null] }) }), expanded ? (_jsx(Card.Body, { className: cn('twa:p-1', bodyClassName, fillAvailable && 'twa:max-h-none! twa:flex-1 twa:min-h-0'), children: children })) : showSummary ? (_jsx(Card.Body, { className: "twa:p-1", gap: 1, children: summary })) : null] }));
52
+ };
53
+ export function useWizardCardAccordion(initialExpandedId, options) {
54
+ const fillExpandedCard = options?.fillExpandedCard ?? false;
55
+ const cardFillByIdRef = React.useRef({});
56
+ const [expandedId, setExpandedId] = React.useState(initialExpandedId);
57
+ const hasExpandedCard = expandedId !== null;
58
+ const bindCard = React.useCallback((id, cardOptions) => {
59
+ const shouldFillWhenExpanded = cardOptions?.fillAvailable ?? fillExpandedCard;
60
+ cardFillByIdRef.current[id] = shouldFillWhenExpanded;
61
+ return {
62
+ expanded: expandedId === id,
63
+ compact: hasExpandedCard && expandedId !== id,
64
+ fillAvailable: expandedId === id && shouldFillWhenExpanded,
65
+ onExpandedChange: (expanded) => {
66
+ setExpandedId(expanded ? id : null);
67
+ },
68
+ };
69
+ }, [expandedId, hasExpandedCard, fillExpandedCard]);
70
+ const expandedFillsSpace = expandedId != null && cardFillByIdRef.current[expandedId] === true;
71
+ return {
72
+ expandedId,
73
+ hasExpandedCard,
74
+ expandedFillsSpace,
75
+ bindCard,
76
+ fillExpandedCard,
77
+ setExpandedId,
78
+ };
79
+ }
80
+ /** Collapsed card body: selected value tag(s) only — no description text. */
81
+ export const CollapsibleWizardValueSummary = ({ value }) => _jsx(_Fragment, { children: value });
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { useState, useRef } from 'react';
4
- import clsx from 'clsx';
4
+ import { cn } from '../../lib/utils';
5
5
  import Dialog from '../../components/Dialog';
6
6
  import SimpleButton from '../../components/SimpleButton';
7
7
  import useProperty from '../../components/utils/useProperty';
@@ -82,7 +82,7 @@ export const OnePageWizard = (props) => {
82
82
  };
83
83
  const handleNavigation = useKeyboardNavigation(setCurrentSection, visibleSections);
84
84
  const selectedNodeRef = useRef(null);
85
- const selectedFeedback = (_jsx("div", { ref: selectedNodeRef, onKeyDown: (event) => handleNavigation(event), tabIndex: 0, className: clsx('ab-OnePageWizard__selected-title-overlay', 'twa:absolute twa:rounded-standard twa:select-none twa:bg-accent twa:transition-top twa:duration-200', targetOwn.focusOutline) }));
85
+ const selectedFeedback = (_jsx("div", { ref: selectedNodeRef, onKeyDown: (event) => handleNavigation(event), tabIndex: 0, className: cn('ab-OnePageWizard__selected-title-overlay', 'twa:absolute twa:rounded-standard twa:select-none twa:bg-accent twa:transition-top twa:duration-200', targetOwn.focusOutline) }));
86
86
  const sizeOwnerRef = useRef(null);
87
87
  const [width, setWidth] = useState(0);
88
88
  useResizeObserver(sizeOwnerRef, ({ width }) => {
@@ -136,7 +136,7 @@ export const OnePageWizard = (props) => {
136
136
  }
137
137
  }
138
138
  }
139
- }, children: _jsxs(Box, { className: clsx('ab-OnePageWizard twa:flex twa:flex-col twa:h-full twa:w-[90vw] twa:max-w-[1200px]', 'twa:bg-primarylight twa:text-primary-foreground'), "data-name": props.name, style: props.style, children: [(props.moduleName || activeSectionDetails) && (_jsxs(Box, { className: clsx('ab-OnePageWizard__header', ONE_PAGE_WIZARD_SECTION_GRID, 'twa:items-start twa:my-3 twa:px-2'), children: [_jsx(Box, { className: "ab-OnePageWizard__module-name twa:min-w-0 twa:pl-3 twa:font-bold", children: props.moduleName }), _jsx(Box, { className: "ab-OnePageWizard__details twa:min-w-0 twa:pr-2 twa:text-4", children: activeSectionDetails })] })), _jsx(Box, { as: "hr", className: "ab-OnePageWizard__module-separator twa:w-full twa:border-0 twa:border-t twa:border-t-input-border twa:mb-2" }), _jsxs(Box, { className: clsx(ONE_PAGE_WIZARD_SECTION_GRID, 'twa:flex-1 twa:min-h-0 twa:overflow-auto twa:items-stretch'), children: [_jsxs(Flex, { flexDirection: "column", className: "ab-OnePageWizard__section-title-container twa:min-h-0 twa:min-w-0 twa:overflow-auto twa:p-3 twa:relative", ref: sizeOwnerRef, style: props.titleContainerStyle, children: [visibleSections.map((section, index) => {
139
+ }, children: _jsxs(Box, { className: cn('ab-OnePageWizard twa:flex twa:flex-col twa:h-full twa:w-[90vw] twa:max-w-[1200px]', 'twa:bg-primarylight twa:text-primary-foreground'), "data-name": props.name, style: props.style, children: [(props.moduleName || activeSectionDetails) && (_jsxs(Box, { className: cn('ab-OnePageWizard__header', ONE_PAGE_WIZARD_SECTION_GRID, 'twa:items-start twa:my-3 twa:px-2'), children: [_jsx(Box, { className: "ab-OnePageWizard__module-name twa:min-w-0 twa:pl-3 twa:font-bold", children: props.moduleName }), _jsx(Box, { className: "ab-OnePageWizard__details twa:min-w-0 twa:pr-2 twa:text-4", children: activeSectionDetails })] })), _jsx(Box, { as: "hr", className: "ab-OnePageWizard__module-separator twa:w-full twa:border-0 twa:border-t twa:border-t-input-border twa:mb-2" }), _jsxs(Box, { className: cn(ONE_PAGE_WIZARD_SECTION_GRID, 'twa:flex-1 twa:min-h-0 twa:overflow-auto twa:items-stretch'), children: [_jsxs(Flex, { flexDirection: "column", className: "ab-OnePageWizard__section-title-container twa:min-h-0 twa:min-w-0 twa:overflow-auto twa:p-3 twa:relative", ref: sizeOwnerRef, style: props.titleContainerStyle, children: [visibleSections.map((section, index) => {
140
140
  if (section === '-') {
141
141
  return (_jsx(Box, { as: "hr", className: "ab-OnePageWizard__section-separator twa:mt-2 twa:w-full twa:border-t twa:border-t-input-border" }, `${index}-`));
142
142
  }
@@ -144,7 +144,7 @@ export const OnePageWizard = (props) => {
144
144
  navIndexMap.set(navIndex, index);
145
145
  const active = index === currentSection;
146
146
  const disabled = false; //!active && !currentSectionValid;
147
- return (_jsxs(Flex, { className: clsx('ab-OnePageWizard__section-title twa:p-2', {
147
+ return (_jsxs(Flex, { className: cn('ab-OnePageWizard__section-title twa:p-2', {
148
148
  'twa:cursor-auto': disabled,
149
149
  'twa:cursor-pointer': !disabled,
150
150
  'twa:z-10': true,
@@ -163,6 +163,6 @@ export const OnePageWizard = (props) => {
163
163
  return;
164
164
  }
165
165
  setCurrentSection(index);
166
- }, children: [_jsx(KeyHint, { className: "twa:mr-2 twa:inline-block twa:text-color-accent-foreground", children: navIndex }), _jsx("div", { className: "twa:flex-1", children: section.title }), _jsx(Icon, { name: "error", className: clsx('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:invisible') })] }, section.title));
167
- }), selectedFeedback, _jsx(Box, { className: "twa:flex-1" }), _jsxs(KeyHint, { className: "ab-OnePageWizard__key-hint twa:leading-normal", children: [isMacLike() ? 'Cmd' : 'Ctrl', " + #", _jsx("br", {}), "or arrow keys", _jsx("br", {}), "to navigate"] })] }), _jsx(Flex, { flexDirection: "column", className: "ab-OnePageWizard__section-container twa:min-h-0 twa:min-w-0 twa:flex-1", children: renderSection(currentSection) })] }), _jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "ab-WizardDialog__footer ab-OnePageWizard__footer twa:p-2", children: [_jsx(SimpleButton, { tone: "neutral", variant: "text", "data-name": "close", onClick: () => props.onHide?.(), tooltip: props.closeTooltip ?? 'Close wizard', accessLevel: ACCESS_LEVEL_FULL, children: props.closeText ?? 'CLOSE' }), _jsx(KeyHint, { className: "twa:ml-2", children: "Esc" }), _jsx(Box, { className: "ab-OnePageWizard__error twa:text-2 twa:mr-3 twa:flex-1 twa:text-error twa:text-end", children: firstErrorMessage }), _jsx(SimpleButton, { tone: "accent", "data-name": "finish", variant: "raised", disabled: canFinish !== true, onClick: () => handleClickFinish(), icon: 'check', accessLevel: ACCESS_LEVEL_FULL, children: props.finishText ?? 'Finish' })] })] }) }) }) }));
166
+ }, children: [_jsx(KeyHint, { className: "twa:mr-2 twa:inline-block twa:text-accent-foreground", children: navIndex }), _jsx("div", { className: "twa:flex-1", children: section.title }), _jsx(Icon, { name: "error", className: cn('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:invisible') })] }, section.title));
167
+ }), selectedFeedback, _jsx(Box, { className: "twa:flex-1" }), _jsxs(KeyHint, { className: "ab-OnePageWizard__key-hint twa:leading-normal", children: [isMacLike() ? 'Cmd' : 'Ctrl', " + #", _jsx("br", {}), "or arrow keys", _jsx("br", {}), "to navigate"] })] }), _jsx(Flex, { flexDirection: "column", className: "ab-OnePageWizard__section-container twa:min-h-0 twa:min-w-0 twa:flex-1", children: renderSection(currentSection) })] }), _jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "ab-WizardDialog__footer ab-OnePageWizard__footer twa:p-2", children: [_jsx(SimpleButton, { tone: "neutral", variant: "text", "data-name": "close", onClick: () => props.onHide?.(), tooltip: props.closeTooltip ?? 'Close wizard', accessLevel: ACCESS_LEVEL_FULL, children: props.closeText ?? 'CLOSE' }), _jsx(KeyHint, { className: "twa:ml-2", children: "Esc" }), _jsx(Box, { className: "ab-OnePageWizard__error twa:text-2 twa:mr-3 twa:flex-1 twa:text-destructive twa:text-end", children: firstErrorMessage }), _jsx(SimpleButton, { tone: "accent", "data-name": "finish", variant: "raised", disabled: canFinish !== true, onClick: () => handleClickFinish(), icon: 'check', accessLevel: ACCESS_LEVEL_FULL, children: props.finishText ?? 'Finish' })] })] }) }) }) }));
168
168
  };
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import type { AdaptableIcon } from '../../types';
3
+ export type SummaryLabelValueItem = {
4
+ label: string;
5
+ value: string;
6
+ /** When set on an Icon summary row, renders the icon glyph instead of the name. */
7
+ icon?: AdaptableIcon;
8
+ };
9
+ export declare const isSummaryColorLabel: (label: string) => boolean;
10
+ /** Labels whose label + value render together inside a single tag (colours, font traits). */
11
+ export declare const isSummaryInTagLabel: (label: string) => boolean;
12
+ export declare const ColorSummarySquare: React.FC<{
13
+ color: string;
14
+ className?: string;
15
+ }>;
16
+ export declare const renderSummaryLabelValueTagContent: (label: string, value: string, icon?: AdaptableIcon) => React.ReactNode;
17
+ export declare const parseSummaryLabelValueString: (item: string) => {
18
+ label: string;
19
+ value: string;
20
+ } | null;
21
+ export declare const renderSummaryStringTagContent: (item: string) => React.ReactNode;
22
+ export declare const renderSummaryStringTags: (items: string[]) => React.JSX.Element;
23
+ export declare const summaryStringsToTagContents: (items: string[]) => React.ReactNode[];
24
+ export declare const renderSummaryLabelValueTags: (items: SummaryLabelValueItem[]) => React.JSX.Element;
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '../../components/Flex';
3
+ import { Tag } from '../../components/Tag';
4
+ import { getVariableColor } from '../../Utilities/Helpers/StyleHelper';
5
+ import { allIcons, Icon } from '../../components/icons';
6
+ import { AdaptableIconComponent } from '../Components/AdaptableIconComponent';
7
+ const COLOR_SQUARE_CLASS = 'twa:h-3 twa:w-3 twa:rounded-sm twa:shrink-0 twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_20%,transparent)]';
8
+ export const isSummaryColorLabel = (label) => /\bColou?r$/i.test(label.trim());
9
+ const isIconSummaryLabel = (label) => label.trim() === 'Icon';
10
+ /** Labels whose label + value render together inside a single tag (colours, font traits). */
11
+ export const isSummaryInTagLabel = (label) => {
12
+ const trimmed = label.trim();
13
+ return (isSummaryColorLabel(trimmed) ||
14
+ isIconSummaryLabel(trimmed) ||
15
+ trimmed === 'Font Weight' ||
16
+ trimmed === 'Font Style');
17
+ };
18
+ export const ColorSummarySquare = ({ color, className, }) => (_jsx(Box, { className: className ?? COLOR_SQUARE_CLASS, style: { background: getVariableColor(color) }, "aria-hidden": true }));
19
+ const SummaryIconVisual = ({ icon, value }) => {
20
+ if (icon) {
21
+ return (_jsx(AdaptableIconComponent, { icon: { ...icon, size: icon.size ?? 14 } }));
22
+ }
23
+ if (value && value in allIcons) {
24
+ return (_jsx(Icon, { "aria-hidden": true, name: value, size: 14, className: "twa:shrink-0" }));
25
+ }
26
+ return null;
27
+ };
28
+ const isSummaryIconVisualAvailable = (icon, value) => Boolean(icon || (value && value in allIcons));
29
+ const isFontWeightLabel = (label) => label.trim() === 'Font Weight';
30
+ const isFontStyleLabel = (label) => label.trim() === 'Font Style';
31
+ export const renderSummaryLabelValueTagContent = (label, value, icon) => {
32
+ if (isSummaryColorLabel(label)) {
33
+ return (_jsxs(Flex, { alignItems: "center", className: "twa:gap-1.5", children: [label, _jsx(ColorSummarySquare, { color: value })] }));
34
+ }
35
+ if (isIconSummaryLabel(label)) {
36
+ if (isSummaryIconVisualAvailable(icon, value)) {
37
+ return (_jsxs(Flex, { alignItems: "center", className: "twa:gap-1.5", children: [label, _jsx(SummaryIconVisual, { icon: icon, value: value })] }));
38
+ }
39
+ }
40
+ if (isFontWeightLabel(label) && value === 'Bold') {
41
+ return _jsx(Box, { className: "twa:font-bold", children: `${label}: ${value}` });
42
+ }
43
+ if (isFontStyleLabel(label) && value === 'Italic') {
44
+ return _jsx(Box, { className: "twa:italic", children: `${label}: ${value}` });
45
+ }
46
+ return `${label}: ${value}`;
47
+ };
48
+ export const parseSummaryLabelValueString = (item) => {
49
+ const colonIndex = item.indexOf(': ');
50
+ if (colonIndex <= 0) {
51
+ return null;
52
+ }
53
+ return {
54
+ label: item.slice(0, colonIndex),
55
+ value: item.slice(colonIndex + 2),
56
+ };
57
+ };
58
+ export const renderSummaryStringTagContent = (item) => {
59
+ const parsed = parseSummaryLabelValueString(item);
60
+ if (!parsed) {
61
+ return item;
62
+ }
63
+ return renderSummaryLabelValueTagContent(parsed.label, parsed.value);
64
+ };
65
+ export const renderSummaryStringTags = (items) => (_jsx(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: items.map((item) => (_jsx(Tag, { children: renderSummaryStringTagContent(item) }, item))) }));
66
+ export const summaryStringsToTagContents = (items) => items.map((item) => renderSummaryStringTagContent(item));
67
+ export const renderSummaryLabelValueTags = (items) => (_jsx(Flex, { alignItems: "center", className: "twa:gap-1 twa:flex-wrap", children: items.map(({ label, value, icon }) => (_jsx(Tag, { children: renderSummaryLabelValueTagContent(label, value, icon) }, `${label}-${value}`))) }));
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ export declare const WIZARD_TYPE_SELECTION_PREVIEW_FRAME_CLASS = "twa:flex twa:w-full twa:min-h-[32px] twa:items-center twa:justify-center twa:overflow-hidden twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)] twa:bg-[color-mix(in_srgb,var(--ab-color-primary)_35%,transparent)] twa:px-2 twa:py-1";
3
+ export declare const getWizardTypeSelectionGridColumns: (choiceCount: number) => 2 | 3;
4
+ export type WizardTypeSelectionCardProps = {
5
+ label: string;
6
+ description?: string;
7
+ selected: boolean;
8
+ disabled?: boolean;
9
+ disabledTooltip?: string;
10
+ dataName: string;
11
+ minHeightClassName?: string;
12
+ onSelect: () => void;
13
+ children?: React.ReactNode;
14
+ footer?: React.ReactNode;
15
+ };
16
+ export declare const WizardTypeSelectionCard: React.FunctionComponent<WizardTypeSelectionCardProps>;
17
+ export type WizardTypeSelectionSectionProps = {
18
+ headingId: string;
19
+ title: string;
20
+ intro: React.ReactNode;
21
+ columns: 2 | 3;
22
+ dataName?: string;
23
+ className?: string;
24
+ children: React.ReactNode;
25
+ };
26
+ export declare const WizardTypeSelectionSection: React.FunctionComponent<WizardTypeSelectionSectionProps>;
27
+ export type WizardNameFieldSectionProps = {
28
+ value: string;
29
+ onChange: (event: React.SyntheticEvent) => void;
30
+ inputDataName?: string;
31
+ placeholder?: string;
32
+ };
33
+ export declare const WizardNameFieldSection: React.FunctionComponent<WizardNameFieldSectionProps>;
34
+ export declare const WizardTypeSelectionPreviewFrame: React.FunctionComponent<React.PropsWithChildren>;
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Input from '../../components/Input';
3
+ import { Box } from '../../components/Flex';
4
+ import { Card } from '../../components/Card';
5
+ import { cn } from '../../lib/utils';
6
+ export const WIZARD_TYPE_SELECTION_PREVIEW_FRAME_CLASS = 'twa:flex twa:w-full twa:min-h-[32px] twa:items-center twa:justify-center twa:overflow-hidden twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)] twa:bg-[color-mix(in_srgb,var(--ab-color-primary)_35%,transparent)] twa:px-2 twa:py-1';
7
+ export const getWizardTypeSelectionGridColumns = (choiceCount) => choiceCount === 4 ? 2 : 3;
8
+ export const WizardTypeSelectionCard = ({ label, description, selected, disabled, disabledTooltip, dataName, minHeightClassName = 'twa:min-h-[108px]', onSelect, children, footer, }) => {
9
+ const handleActivate = () => {
10
+ if (!disabled) {
11
+ onSelect();
12
+ }
13
+ };
14
+ return (_jsxs(Box, { role: "radio", tabIndex: disabled ? -1 : 0, "aria-checked": selected, "aria-disabled": disabled, "data-name": dataName, className: cn('ab-WizardTypeSelectionCard group twa:relative twa:h-full twa:rounded-standard twa:border twa:border-primarydark/32 twa:bg-card twa:text-card-foreground twa:outline-none twa:transition-colors twa:focus-visible:ring-2 twa:focus-visible:ring-accent', minHeightClassName, disabled
15
+ ? 'twa:cursor-not-allowed twa:opacity-60'
16
+ : 'twa:cursor-pointer hover:twa:border-accent/55 hover:twa:bg-accent/5', selected &&
17
+ 'twa:after:pointer-events-none twa:after:absolute twa:after:inset-0 twa:after:rounded-standard twa:after:border-2 twa:after:border-[var(--ab-cmp-wizard-type-selection-card__selected-border)] twa:after:bg-[var(--ab-cmp-wizard-type-selection-card__selected-overlay)]'), onClick: handleActivate, onKeyDown: (event) => {
18
+ if (disabled) {
19
+ return;
20
+ }
21
+ if (event.key === 'Enter' || event.key === ' ') {
22
+ event.preventDefault();
23
+ onSelect();
24
+ }
25
+ }, children: [_jsx(Box, { "aria-hidden": true, className: cn('twa:pointer-events-none twa:absolute twa:top-2.5 twa:right-2.5 twa:z-10 twa:size-4 twa:rounded-full twa:border-2 twa:transition-colors', selected
26
+ ? 'twa:border-[var(--ab-cmp-wizard-type-selection-card__selected-border)] twa:bg-[var(--ab-cmp-wizard-type-selection-card__selected-border)]'
27
+ : 'twa:border-primarydark/35 twa:bg-base group-hover:twa:border-accent/55'), children: selected ? (_jsx(Box, { className: "twa:absolute twa:inset-0 twa:m-auto twa:size-1.5 twa:rounded-full twa:bg-[var(--ab-cmp-wizard-type-selection-card__selected-indicator-inner)]" })) : null }), _jsxs(Card, { shadow: false, style: { backgroundColor: 'transparent' }, className: "twa:flex twa:h-full twa:flex-col twa:justify-between twa:p-3 twa:pr-7", gap: 0, children: [_jsx(Box, { className: "twa:font-medium", children: label }), children, description || disabledTooltip ? (_jsxs(Box, { children: [description ? (_jsx(Box, { className: "twa:text-xs twa:leading-snug twa:opacity-70", children: description })) : null, disabled && disabledTooltip ? (_jsx(Box, { className: "twa:mt-1 twa:text-1 twa:leading-snug twa:italic twa:opacity-80", children: disabledTooltip })) : null] })) : null, footer] })] }));
28
+ };
29
+ export const WizardTypeSelectionSection = ({ headingId, title, intro, columns, dataName, className, children }) => (_jsxs(Card, { shadow: false, gap: 1, className: cn('twa:flex-1 twa:min-h-0', className), children: [_jsxs(Card.Title, { gap: 1, border: false, className: "twa:flex-col twa:items-start twa:px-1 twa:pb-1", children: [_jsx(Box, { id: headingId, className: "twa:font-medium", children: title }), _jsx(Box, { className: "twa:mt-1.5 twa:text-xs twa:font-normal twa:opacity-70", children: intro })] }), _jsx(Card.Body, { className: "twa:min-h-0 twa:overflow-y-auto twa:p-1 twa:pt-0", children: _jsx(Box, { "data-name": dataName, className: cn('twa:grid twa:gap-2', columns === 2 ? 'twa:grid-cols-2' : 'twa:grid-cols-3'), role: "radiogroup", "aria-labelledby": headingId, children: children }) })] }));
30
+ export const WizardNameFieldSection = ({ value, onChange, inputDataName = 'wizard-name', placeholder = 'Enter Name', }) => (_jsxs(Card, { shadow: false, gap: 1, className: "twa:bg-card twa:text-card-foreground", children: [_jsx(Card.Title, { gap: 1, border: false, className: "twa:px-1 twa:pb-1", children: _jsx(Box, { className: "twa:font-medium", children: "Name" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { className: "twa:w-full twa:max-w-[420px]", "data-name": inputDataName, onChange: onChange, placeholder: placeholder, value: value }) })] }));
31
+ export const WizardTypeSelectionPreviewFrame = ({ children, }) => (_jsx(Box, { "aria-hidden": true, className: WIZARD_TYPE_SELECTION_PREVIEW_FRAME_CLASS, children: children }));
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { AdaptableApi, Layout } from '../../types';
3
+ export declare const TableRowGroupSummaryTags: React.FC<{
4
+ layout: Layout;
5
+ api: AdaptableApi;
6
+ }>;
7
+ export declare const PivotRowGroupSummaryTags: React.FC<{
8
+ layout: Layout;
9
+ api: AdaptableApi;
10
+ }>;
11
+ export declare const TableRowGroupSummaryView: React.FC<{
12
+ layout: Layout;
13
+ api: AdaptableApi;
14
+ }>;
15
+ export declare const PivotRowGroupSummaryView: React.FC<{
16
+ layout: Layout;
17
+ api: AdaptableApi;
18
+ }>;