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

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 (396) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +828 -263
  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 +8 -850
  12. package/src/AdaptableState/StyledColumnState.js +1 -9
  13. package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
  14. package/src/AdaptableState/StyledColumns/BadgeStyle.js +9 -0
  15. package/src/AdaptableState/StyledColumns/BulletChartStyle.d.ts +147 -0
  16. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.d.ts +60 -0
  17. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.js +6 -0
  18. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.d.ts +24 -0
  19. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.js +5 -0
  20. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
  21. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +6 -0
  22. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
  23. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +9 -0
  24. package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
  25. package/src/AdaptableState/StyledColumns/GradientStyle.js +1 -0
  26. package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
  27. package/src/AdaptableState/StyledColumns/IconStyle.js +1 -0
  28. package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
  29. package/src/AdaptableState/StyledColumns/PercentBarStyle.js +1 -0
  30. package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
  31. package/src/AdaptableState/StyledColumns/RangeBarStyle.js +1 -0
  32. package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
  33. package/src/AdaptableState/StyledColumns/RatingStyle.js +1 -0
  34. package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
  35. package/src/AdaptableState/StyledColumns/SparklineStyle.js +1 -0
  36. package/src/Api/ColumnScopeApi.d.ts +1 -1
  37. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
  38. package/src/Api/Internal/AlertInternalApi.js +1 -1
  39. package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
  40. package/src/Api/Internal/DataSetInternalApi.js +73 -13
  41. package/src/Api/Internal/StyledColumnInternalApi.d.ts +3 -1
  42. package/src/Redux/Store/AdaptableStore.js +6 -4
  43. package/src/Strategy/CalculatedColumnModule.js +1 -0
  44. package/src/Strategy/ColumnFilterModule.js +1 -0
  45. package/src/Strategy/FlashingCellModule.js +6 -2
  46. package/src/Strategy/FormatColumnModule.js +2 -2
  47. package/src/Strategy/FreeTextColumnModule.js +38 -28
  48. package/src/Strategy/Interface/IModule.d.ts +3 -1
  49. package/src/Strategy/LayoutModule.js +15 -66
  50. package/src/Strategy/StyledColumnModule.js +12 -29
  51. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
  52. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
  53. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
  54. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +14 -0
  55. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  56. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +3 -0
  57. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  58. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +105 -0
  59. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  60. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +166 -0
  61. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
  62. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
  63. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
  64. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +85 -0
  65. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  66. package/src/Utilities/Defaults/DefaultSettingsPanel.js +46 -41
  67. package/src/Utilities/Helpers/FormatHelper.js +3 -0
  68. package/src/Utilities/Helpers/IconStylePresets.d.ts +1 -1
  69. package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
  70. package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
  71. package/src/Utilities/Helpers/StyleHelper.js +27 -0
  72. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +3 -1
  73. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +7 -5
  74. package/src/Utilities/Helpers/barChartCellText.d.ts +63 -0
  75. package/src/Utilities/Helpers/barChartCellText.js +316 -0
  76. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +2 -1
  77. package/src/Utilities/Helpers/percentBarPreviewHelper.js +3 -8
  78. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  79. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +15 -0
  80. package/src/Utilities/getScopeViewItems.js +2 -0
  81. package/src/Utilities/wizardSelection.d.ts +10 -0
  82. package/src/Utilities/wizardSelection.js +15 -0
  83. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
  84. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
  85. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
  86. package/src/View/Alert/AlertViewPanel.js +2 -2
  87. package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
  88. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
  89. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +0 -4
  90. package/src/View/Alert/Wizard/AlertButtonsEditor.js +160 -126
  91. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  92. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
  93. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  94. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +4 -5
  95. package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
  96. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
  97. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  98. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +31 -7
  99. package/src/View/Alert/Wizard/AlertWizard.js +13 -5
  100. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  101. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -14
  102. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  103. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
  104. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  105. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
  106. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  107. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +30 -4
  108. package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
  109. package/src/View/Charting/ShowChartButton.js +8 -8
  110. package/src/View/ColumnInfo/ColumnInfo.js +21 -1
  111. package/src/View/Components/AdaptableObjectCollection/index.js +2 -2
  112. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +3 -2
  113. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +7 -6
  114. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.d.ts +2 -0
  115. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.js +2 -0
  116. package/src/View/Components/AdaptableObjectRow/index.js +2 -2
  117. package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
  118. package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
  119. package/src/View/Components/Buttons/ButtonNew.js +1 -1
  120. package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
  121. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
  122. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +9 -9
  123. package/src/View/Components/ColumnFilter/ColumnFilter.js +16 -4
  124. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  125. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  126. package/src/View/Components/ColumnSelector/index.js +30 -6
  127. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  128. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  129. package/src/View/Components/NewScopeComponent.js +4 -9
  130. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  131. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  132. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
  133. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  134. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  135. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -3
  136. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -2
  137. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  138. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +1 -0
  139. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  140. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +25 -27
  141. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  142. package/src/View/Components/RangesComponent.d.ts +4 -5
  143. package/src/View/Components/RangesComponent.js +95 -66
  144. package/src/View/Components/ReorderDraggable/index.js +2 -2
  145. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  146. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  147. package/src/View/Components/StyleComponent.js +32 -65
  148. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +10 -7
  149. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  150. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -81
  151. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  152. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +76 -0
  153. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  154. package/src/View/Components/ValueSelector/index.js +113 -30
  155. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  156. package/src/View/Components/wizardColumnListStyles.js +10 -0
  157. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  158. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +5 -7
  159. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  160. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  161. package/src/View/Dashboard/DashboardPopup.js +3 -67
  162. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  163. package/src/View/Dashboard/DashboardPopupSections.js +68 -0
  164. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  165. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  166. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  167. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  168. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +94 -0
  169. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  170. package/src/View/DataChangeHistory/buildActionColumnButton.js +30 -39
  171. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  172. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +37 -0
  173. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  174. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  175. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  176. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  177. package/src/View/Export/ExportDestinationPicker.js +3 -3
  178. package/src/View/Export/ExportSchedulesTab.js +3 -4
  179. package/src/View/Export/ExportViewPanel.js +2 -2
  180. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  181. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +4 -9
  182. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  183. package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -6
  184. package/src/View/Filter/FilterViewPanel.js +1 -1
  185. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  186. package/src/View/FlashingCell/FlashingCellStyle.js +4 -2
  187. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  188. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +7 -11
  189. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  190. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +5 -0
  191. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  192. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +1 -0
  193. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  194. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +1 -5
  195. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -3
  196. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  197. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +99 -42
  198. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  199. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +0 -4
  200. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +56 -15
  201. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  202. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  203. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -8
  204. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -13
  205. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  206. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  207. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  208. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  209. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -2
  210. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  211. package/src/View/Layout/LayoutViewPanel.js +1 -1
  212. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  213. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  214. package/src/View/Layout/Wizard/sections/AggregationsSection.js +73 -33
  215. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  216. package/src/View/Layout/Wizard/sections/ColumnsSection.js +155 -276
  217. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  218. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +148 -145
  219. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  220. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +24 -12
  221. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  222. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +23 -12
  223. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  224. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +19 -12
  225. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +8 -4
  226. package/src/View/Layout/Wizard/sections/RowSummarySection.js +132 -106
  227. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  228. package/src/View/Layout/Wizard/sections/SortSection.js +41 -17
  229. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  230. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +159 -0
  231. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  232. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +201 -0
  233. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  234. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +63 -0
  235. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  236. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +52 -0
  237. package/src/View/License/LicenseWatermark.js +1 -1
  238. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  239. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  240. package/src/View/Note/NoteEditor.js +2 -2
  241. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  242. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  243. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  244. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  245. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  246. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  247. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  248. package/src/View/StateManagement/components/ExportDropdown.js +12 -12
  249. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  250. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  251. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  252. package/src/View/StatusBar/statusBarPanelHelpers.js +7 -0
  253. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +3 -1
  254. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +14 -11
  255. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  256. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +143 -119
  257. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +1 -3
  258. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +8 -14
  259. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  260. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  261. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +50 -0
  262. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  263. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +26 -5
  264. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +76 -70
  265. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  266. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +83 -38
  267. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +173 -76
  268. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  269. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  270. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +32 -46
  271. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.d.ts +9 -0
  272. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.js +35 -0
  273. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.d.ts +23 -0
  274. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.js +57 -0
  275. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +1 -1
  276. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +2 -1
  277. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +1 -1
  278. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -2
  279. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +2 -1
  280. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +13 -17
  281. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +2 -1
  282. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +5 -5
  283. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +2 -2
  284. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +14 -7
  285. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +11 -17
  286. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +2 -1
  287. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +27 -58
  288. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +94 -7
  289. package/src/View/UIHelper.d.ts +0 -2
  290. package/src/View/UIHelper.js +8 -23
  291. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  292. package/src/View/Wizard/CollapsibleWizardCard.js +81 -0
  293. package/src/View/Wizard/OnePageWizards.js +6 -6
  294. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  295. package/src/View/Wizard/SummaryColorTag.js +67 -0
  296. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  297. package/src/View/Wizard/WizardTypeSelection.js +31 -0
  298. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  299. package/src/View/Wizard/rowGroupSummaryTags.js +14 -0
  300. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  301. package/src/View/Wizard/scopeSummaryTags.js +33 -0
  302. package/src/agGrid/AgGridAdapter.js +0 -5
  303. package/src/agGrid/AgGridColumnAdapter.js +4 -3
  304. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  305. package/src/agGrid/cellRenderers/BadgeRenderer.js +7 -5
  306. package/src/agGrid/cellRenderers/BulletChartRenderer.js +43 -42
  307. package/src/agGrid/cellRenderers/IconRenderer.d.ts +2 -1
  308. package/src/agGrid/cellRenderers/IconRenderer.js +13 -11
  309. package/src/agGrid/cellRenderers/PercentBarRenderer.js +24 -96
  310. package/src/agGrid/cellRenderers/RangeBarRenderer.js +49 -46
  311. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  312. package/src/components/Card/index.js +5 -6
  313. package/src/components/CheckBox/index.js +2 -3
  314. package/src/components/CodeBlock/index.js +2 -2
  315. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  316. package/src/components/ColorPicker/ColorPicker.js +8 -6
  317. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  318. package/src/components/ColorPicker/OptionalColorPicker.js +26 -0
  319. package/src/components/ColorPicker/index.d.ts +1 -0
  320. package/src/components/ColorPicker/index.js +1 -0
  321. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  322. package/src/components/Combobox/index.js +19 -18
  323. package/src/components/Dashboard/DashboardManager.js +2 -4
  324. package/src/components/Dialog/index.js +4 -4
  325. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  326. package/src/components/DragAndDropContext/DragAndDropContext.js +3 -0
  327. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  328. package/src/components/DragAndDropContext/ModuleManager.js +47 -8
  329. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  330. package/src/components/DragAndDropContext/TabList.js +52 -38
  331. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  332. package/src/components/DragAndDropContext/UnusedPanel.js +15 -11
  333. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  334. package/src/components/DragAndDropContext/dragScope.js +26 -0
  335. package/src/components/DragAndDropContext/types.d.ts +7 -0
  336. package/src/components/DropdownButton/index.d.ts +33 -25
  337. package/src/components/DropdownButton/index.js +24 -158
  338. package/src/components/EmptyContent/index.js +2 -2
  339. package/src/components/ErrorBox/index.js +2 -2
  340. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  341. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  342. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +6 -6
  343. package/src/components/FieldWrap/index.js +2 -2
  344. package/src/components/Flex.js +2 -2
  345. package/src/components/FormLayout/index.d.ts +1 -1
  346. package/src/components/HelpBlock/index.js +3 -3
  347. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  348. package/src/components/IconSelector/IconSelector.js +11 -7
  349. package/src/components/IconSelector/index.d.ts +1 -0
  350. package/src/components/IconSelector/index.js +1 -0
  351. package/src/components/Modal/index.js +2 -2
  352. package/src/components/NewSelect/index.js +11 -1
  353. package/src/components/Panel/index.js +7 -7
  354. package/src/components/Radio/index.d.ts +1 -1
  355. package/src/components/Radio/index.js +8 -6
  356. package/src/components/SimpleButton/index.js +7 -7
  357. package/src/components/StylePreview.js +2 -2
  358. package/src/components/Tabs/index.js +4 -4
  359. package/src/components/Tag/Tag.d.ts +16 -0
  360. package/src/components/Tag/Tag.js +14 -4
  361. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  362. package/src/components/Tag/columnScopeTagHelpers.js +6 -0
  363. package/src/components/Tag/index.d.ts +1 -1
  364. package/src/components/Tag/index.js +1 -1
  365. package/src/components/Textarea/index.js +2 -3
  366. package/src/components/Toggle/Toggle.d.ts +2 -0
  367. package/src/components/Toggle/Toggle.js +14 -7
  368. package/src/components/Toggle/ToggleGroup.js +2 -2
  369. package/src/components/ToggleButton/index.js +4 -4
  370. package/src/components/Tree/TreeDropdown/index.js +3 -4
  371. package/src/components/WarningBox/index.js +2 -2
  372. package/src/components/icons/sort-asc.js +1 -1
  373. package/src/components/ui/button.d.ts +2 -2
  374. package/src/components/ui/combobox.d.ts +3 -1
  375. package/src/components/ui/combobox.js +2 -2
  376. package/src/components/ui/input-group.d.ts +1 -1
  377. package/src/components/ui/select.js +3 -2
  378. package/src/components/ui/textarea.js +1 -1
  379. package/src/env.js +2 -2
  380. package/src/layout-manager/src/index.js +7 -3
  381. package/src/metamodel/adaptable.metamodel.d.ts +80 -14
  382. package/src/metamodel/adaptable.metamodel.js +1 -1
  383. package/src/migration/VersionUpgrade23.d.ts +27 -31
  384. package/src/migration/VersionUpgrade23.js +110 -29
  385. package/src/types.d.ts +13 -2
  386. package/tsconfig.esm.tsbuildinfo +1 -1
  387. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  388. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -290
  389. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  390. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  391. package/src/components/DropdownButton/renderItem.js +0 -11
  392. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  393. package/src/components/DropdownButton/useExpanded.js +0 -56
  394. package/src/components/NewDropdownButton/index.d.ts +0 -27
  395. package/src/components/NewDropdownButton/index.js +0 -24
  396. /package/src/{components/DropdownButton/DropdownButtonItem.js → AdaptableState/StyledColumns/BulletChartStyle.js} +0 -0
@@ -1,162 +1,28 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import { cloneElement, useRef } from 'react';
4
- import join from '../utils/join';
3
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '../ui/dropdown-menu';
4
+ import { NewTooltip } from '../NewTooltip';
5
+ import { cn } from '../../lib/utils';
6
+ import { ChevronDownIcon } from 'lucide-react';
5
7
  import SimpleButton from '../SimpleButton';
6
- import useExpanded from './useExpanded';
7
- import renderItem from './renderItem';
8
- import OverlayTrigger from '../OverlayTrigger';
9
- import clsx from 'clsx';
10
- export const DROPDOWN_ICON = (_jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", children: _jsx("path", { d: "M7 10l5 5 5-5H7z" }) }));
11
- const spacer = _jsx("div", { className: "twa:flex-1" });
12
- const baseClassName = 'ab-DropdownButton';
13
- const defaultListItemStyle = {
14
- padding: 'var(--ab-cmp-dropdownbutton-list-item__padding)',
15
- };
16
- const DropdownButton = React.forwardRef((props, theRef) => {
17
- let { columns, overlayProps, listOffset = 10, collapseOnItemClick = true, focusOnClear = true, idProperty = 'id', isItemDisabled, items, children, listMinWidth = 100, listStyle, listItemStyle, listItemClassName, constrainTo, showClearButton = false, onClear, clearButtonProps, onExpand, onCollapse, showToggleIcon = true, ...domProps } = props;
18
- isItemDisabled = isItemDisabled || ((item) => item.disabled);
19
- if (!columns) {
20
- columns = ['icon', 'label'];
21
- }
22
- let content;
23
- if (Array.isArray(items)) {
24
- content = items.map((item, index) => {
25
- if (item.separator) {
26
- return (_jsx("tr", { className: `${baseClassName}__separator`, children: _jsx("td", { colSpan: 2 }) }, index));
27
- }
28
- if (typeof listItemStyle === 'function') {
29
- listItemStyle = listItemStyle(item, index);
30
- }
31
- const disabled = isItemDisabled(item);
32
- const itemStyle = { ...defaultListItemStyle, ...listItemStyle };
33
- const itemClassName = join(`${baseClassName}__list-item`, item.clickable === false || disabled
34
- ? `${baseClassName}__list-item--not-clickable`
35
- : `${baseClassName}__list-item--clickable`, disabled ? `${baseClassName}__list-item--disabled` : '', listItemClassName);
36
- const getItemHandler = (eventName) => {
37
- return (e) => {
38
- if (!disabled) {
39
- if (item[eventName]) {
40
- item[eventName](e, item);
41
- }
8
+ export const NewDropdownButton = React.forwardRef((props, ref) => {
9
+ const { items, children, className, disabled, tooltip, variant = 'text', accessLevel, side = 'bottom', align = 'start', 'data-name': dataName, tone = 'neutral', showDivider = true, id, 'data-id': dataId, 'data-value': dataValue, 'aria-label': ariaLabel, onMouseDown, } = props;
10
+ const isHidden = accessLevel === 'Hidden';
11
+ const isReadOnly = accessLevel === 'ReadOnly';
12
+ const isDisabled = disabled || isHidden || isReadOnly;
13
+ const trigger = (_jsxs(DropdownMenuTrigger, { render: _jsx(SimpleButton, { ref: ref, tone: tone, variant: variant, disabled: isDisabled, className: cn(className, 'twa:pr-1 twa:active:translate-y-0 twa:flex-row twa:flex-none', variant !== 'text' ? 'twa:gap-1' : 'twa:gap-0.5'), "data-name": dataName, id: id, "data-id": dataId, "data-value": dataValue, "aria-label": ariaLabel, onMouseDown: onMouseDown }), children: [children, showDivider && (_jsx("div", { className: cn('twa:h-full twa:my-1', variant !== 'text' ? 'twa:border-l twa:border-border' : '') })), _jsx(ChevronDownIcon, { className: "twa:size-3.5 twa:opacity-60 twa:transition-transform twa:duration-200 twa:[[data-popup-open]_&]:rotate-180" })] }));
14
+ const maxLabelLength = items.reduce((max, item) => Math.max(max, typeof item.label === 'string'
15
+ ? item.label.length
16
+ : typeof item.tooltip === 'string'
17
+ ? item.tooltip.length
18
+ : 0), 0);
19
+ return (_jsxs(DropdownMenu, { children: [tooltip ? _jsx(NewTooltip, { label: tooltip, children: trigger }) : trigger, _jsx(DropdownMenuContent, { side: side, align: align, style: {
20
+ // minWidth: `min(max(${maxLabelLength + 5}ch, calc(var(--ab-base-space) * 32)),80vw)`,
21
+ width: `max(${maxLabelLength + (props.extraWidthChars ?? 3)}ch, calc(var(--ab-base-space) * 20), var(--anchor-width))`,
22
+ }, children: items.map((item, index) => {
23
+ if (item.separator) {
24
+ return _jsx(DropdownMenuSeparator, {}, index);
42
25
  }
43
- if (collapseOnItemClick) {
44
- if (!disabled) {
45
- setExpanded(false);
46
- }
47
- buttonRef.current?.focus();
48
- }
49
- else {
50
- e.nativeEvent.preventCollapse = true;
51
- }
52
- };
53
- };
54
- const domProps = {};
55
- if (item.onChange) {
56
- domProps.onChange = getItemHandler('onChange');
57
- }
58
- const itemDataName = item['dataName'] || (typeof item['label'] === 'string' ? item['label'] : undefined);
59
- if (itemDataName) {
60
- domProps['data-name'] = itemDataName;
61
- }
62
- return renderItem({
63
- index,
64
- idProperty,
65
- onItemClick: getItemHandler('onClick'),
66
- domProps,
67
- className: itemClassName,
68
- style: itemStyle,
69
- item,
70
- columns: columns,
71
- });
72
- });
73
- content = (_jsx("table", { className: `${baseClassName}__content`, children: _jsx("tbody", { children: content }) }));
74
- }
75
- const dropdownButtonClassName = props.className;
76
- const className = join(props.className, baseClassName);
77
- const positionerRef = useRef(null);
78
- const { expanded, toggle, setExpanded, positionInfo } = useExpanded(props, positionerRef);
79
- const { maxHeight: maxListHeight, maxWidth: maxListWidth } = positionInfo;
80
- listStyle = {
81
- minWidth: typeof maxListWidth === 'number' ? Math.min(listMinWidth, maxListWidth) : listMinWidth,
82
- maxHeight: maxListHeight,
83
- maxWidth: maxListWidth,
84
- ...listStyle,
85
- };
86
- let icon = expanded
87
- ? cloneElement(DROPDOWN_ICON, {
88
- style: {
89
- ...DROPDOWN_ICON.props.style,
90
- transform: 'rotate(180deg) translate3d(0px, -2px, 0px)',
91
- },
92
- })
93
- : DROPDOWN_ICON;
94
- const hasClearButton = onClear || showClearButton;
95
- const clearButton = hasClearButton ? (_jsx(SimpleButton, { disabled: domProps.disabled, as: "div", onClick: (event) => {
96
- event.stopPropagation();
97
- if (onClear) {
98
- onClear();
99
- }
100
- buttonRef.current?.focus();
101
- }, className: "twa:ml-2 twa:p-0", variant: 'text', icon: "close", ...clearButtonProps, style: {
102
- ...clearButtonProps?.style,
103
- visibility: showClearButton ? 'visible' : 'hidden',
104
- } })) : null;
105
- icon = (_jsxs(_Fragment, { children: [spacer, hasClearButton ? clearButton : null, icon] }));
106
- const buttonRef = useRef(null);
107
- return (_jsx(OverlayTrigger, { visible: expanded, targetOffset: listOffset, render: () => {
108
- return (_jsx("div", { "data-name": `${dropdownButtonClassName || 'dropdown-button-list'}`, style: listStyle, className: `${baseClassName}__list`, onMouseDownCapture: (e) => {
109
- /**
110
- * This stops popups register clicks inside the dropdown
111
- * This is needed for column filter dropdows when redenred
112
- * inside ag-grid column filter
113
- */
114
- if (props.stopPropagationOnOverlay) {
115
- e.stopPropagation();
116
- }
117
- }, children: content }));
118
- }, ...overlayProps, children: _jsxs(SimpleButton, { iconPosition: "end", ...(showToggleIcon && { icon }), ...domProps, ref: (btn) => {
119
- buttonRef.current = btn;
120
- if (!theRef) {
121
- return;
122
- }
123
- if (typeof theRef === 'function') {
124
- theRef(btn);
125
- }
126
- else {
127
- theRef.current = btn;
128
- }
129
- }, style: domProps.style, className: clsx(className, {
130
- 'twa:pr-0': showToggleIcon,
131
- }), onClick: (e) => {
132
- if (domProps.onClick) {
133
- domProps.onClick(e);
134
- }
135
- if (e.nativeEvent.preventCollapse && expanded) {
136
- return;
137
- }
138
- toggle();
139
- }, onKeyDown: (e) => {
140
- if (domProps.onKeyDown) {
141
- domProps.onKeyDown(e);
142
- }
143
- if (expanded && e.key === 'Escape') {
144
- toggle();
145
- }
146
- }, onBlur: (e) => {
147
- if (domProps.onBlur) {
148
- domProps.onBlur(e);
149
- }
150
- setExpanded(false);
151
- }, children: [_jsx("div", { ref: positionerRef, tabIndex: -1, style: {
152
- position: 'absolute',
153
- height: '100%',
154
- width: '100%',
155
- zIndex: -1,
156
- pointerEvents: 'none',
157
- opacity: 0,
158
- top: 0,
159
- left: 0,
160
- } }), children] }) }));
26
+ return (_jsxs(DropdownMenuItem, { disabled: item.disabled, "data-name": item.dataName, closeOnClick: item.closeOnClick, onClick: (e) => item.onClick?.(e), children: [item.icon, item.label] }, item.dataName ?? index));
27
+ }) })] }));
161
28
  });
162
- export default DropdownButton;
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
2
3
  import { Box, Flex } from '../Flex';
3
- import clsx from 'clsx';
4
4
  const baseClassName = 'ab-EmptyContent';
5
5
  const EmptyContent = ({ children, className, style, ...flexProps }) => {
6
6
  if (typeof children === 'string') {
7
7
  children = _jsx("p", { children: children });
8
8
  }
9
- return (_jsx(Box, { className: `${baseClassName}__wrapper twa:flex-1 twa:relative twa:size-full`, children: _jsx(Flex, { alignItems: "center", justifyContent: "center", flexDirection: "column", ...flexProps, className: clsx('twa:absolute twa:inset-0 twa:text-3 twa:text-center twa:p-4', 'twa:[&_p]:text-primary-foreground', baseClassName, className), style: style, children: children }) }));
9
+ return (_jsx(Box, { className: `${baseClassName}__wrapper twa:flex-1 twa:relative twa:size-full`, children: _jsx(Flex, { alignItems: "center", justifyContent: "center", flexDirection: "column", ...flexProps, className: cn('twa:absolute twa:inset-0 twa:text-3 twa:text-center twa:p-4', 'twa:[&_p]:text-primary-foreground', baseClassName, className), style: style, children: children }) }));
10
10
  };
11
11
  export default EmptyContent;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
2
3
  import { Box } from '../Flex';
3
- import clsx from 'clsx';
4
4
  export const baseClassName = 'ab-ErrorBox';
5
5
  const ErrorBox = (props) => {
6
- return (_jsx(Box, { ...props, className: clsx('twa:p-3 twa:rounded-standard twa:bg-error twa:text-text-on-error', props.className, baseClassName) }));
6
+ return (_jsx(Box, { ...props, className: cn('twa:p-3 twa:rounded-standard twa:bg-destructive twa:text-destructive-foreground', props.className, baseClassName) }));
7
7
  };
8
8
  export default ErrorBox;
@@ -1,5 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as parser from '../../parser/src';
3
+ import { cn } from '../../lib/utils';
3
4
  import * as React from 'react';
4
5
  import ErrorBox from '../ErrorBox';
5
6
  import { useSelectionRange } from '../utils/useSelectionRange';
@@ -21,7 +22,6 @@ import StringExtensions from '../../Utilities/Extensions/StringExtensions';
21
22
  import Radio from '../Radio';
22
23
  import { Box, Flex } from '../Flex';
23
24
  import { AdaptableFormControlTextClear } from '../../View/Components/Forms/AdaptableFormControlTextClear';
24
- import clsx from 'clsx';
25
25
  const filterableCategories = [
26
26
  'dates',
27
27
  'logical',
@@ -151,8 +151,8 @@ const FunctionsDropdown = ({ expressionFunctions, baseClassName }) => {
151
151
  return (_jsx(Box, { onMouseEnter: () => setOverFunction(functionName), onClick: () => hidePopup(), children: functionName === 'VAR' ? (_jsx(VarEditorButton, { className: buttonClassName }, functionName)) : (_jsx(EditorButton, { data: getEditorButtonData(functionName), className: buttonClassName, children: functionName }, functionName)) }, functionName));
152
152
  })
153
153
  .filter(Boolean);
154
- return (_jsxs(Box, { className: clsx('twa:mb-2 twa:mx-1', fns.length === 0 ? 'twa:hidden' : ''), children: [_jsx(Tag, { className: "twa:mb-1 twa:bg-primarylight twa:text-primary-foreground twa:w-full", children: StringExtensions.Humanize(groupName) }), fns] }, groupName));
155
- }) })] }), _jsx(Box, { className: clsx(`${baseClassName}__dropdown-functions-description `, `twa:flex-1 twa:p-2 twa:w-[600px] twa:max-w-[60vw]`, `twa:rounded-standard twa:shadow-sm twa:overflow-auto twa:h-auto`, 'twa:bg-primarylight twa:text-primary-foreground'), children: overFunction ? (_jsxs(_Fragment, { children: [_jsx(Tag, { className: "twa:bg-accent twa:text-accent-foreground", children: overFunction }), _jsx(ExpressionFunctionDocumentation, { expressionFunction: expressionFunctions[overFunction] })] })) : (_jsx(Flex, { className: "twa:size-full twa:items-center twa:justify-center twa:text-2 twa:italic", children: _jsxs("ul", { children: [_jsxs("li", { children: ["Hover over a Function to learn more", _jsx("br", {}), _jsx("br", {})] }), _jsx("li", { children: "Click a Function to add it to the Expression in the Editor" })] }) })) })] })] })), children: _jsx(SimpleButton, { "data-name": "expression-dropdown", icon: "arrow-down", iconPosition: 'end', className: "twa:mr-1", children: _jsx(Flex, { className: "twa:mr-1 twa:text-2", children: _jsx(Icon, { name: "equation" }) }) }) }));
154
+ return (_jsxs(Box, { className: cn('twa:mb-2 twa:mx-1', fns.length === 0 ? 'twa:hidden' : ''), children: [_jsx(Tag, { className: "twa:mb-1 twa:bg-primarylight twa:text-primary-foreground twa:w-full", children: StringExtensions.Humanize(groupName) }), fns] }, groupName));
155
+ }) })] }), _jsx(Box, { className: cn(`${baseClassName}__dropdown-functions-description `, `twa:flex-1 twa:p-2 twa:w-[600px] twa:max-w-[60vw]`, `twa:rounded-standard twa:shadow-sm twa:overflow-auto twa:h-auto`, 'twa:bg-primarylight twa:text-primary-foreground'), children: overFunction ? (_jsxs(_Fragment, { children: [_jsx(Tag, { className: "twa:bg-accent twa:text-accent-foreground", children: overFunction }), _jsx(ExpressionFunctionDocumentation, { expressionFunction: expressionFunctions[overFunction] })] })) : (_jsx(Flex, { className: "twa:size-full twa:items-center twa:justify-center twa:text-2 twa:italic", children: _jsxs("ul", { children: [_jsxs("li", { children: ["Hover over a Function to learn more", _jsx("br", {}), _jsx("br", {})] }), _jsx("li", { children: "Click a Function to add it to the Expression in the Editor" })] }) })) })] })] })), children: _jsx(SimpleButton, { "data-name": "expression-dropdown", icon: "arrow-down", iconPosition: 'end', className: "twa:mr-1", children: _jsx(Flex, { className: "twa:mr-1 twa:text-2", children: _jsx(Icon, { name: "equation" }) }) }) }));
156
156
  };
157
157
  export function BaseEditorInput(props) {
158
158
  const { expressionFunctions, testData, style, type } = props;
@@ -8,7 +8,7 @@ import { ColumnSelector } from '../../../View/Components/Selectors/ColumnSelecto
8
8
  import { FieldSelector } from '../../../View/Components/Selectors/FieldSelector';
9
9
  import { PermittedValuesSelector } from '../../../View/Components/Selectors/PermittedValuesSelector';
10
10
  import { CheckBox } from '../../CheckBox';
11
- import DropdownButton from '../../DropdownButton';
11
+ import { NewDropdownButton } from '../../DropdownButton';
12
12
  import { Icon } from '../../icons';
13
13
  import { InputGroup } from '../../InputGroup';
14
14
  import { useQueryBuilderContext } from './QueryBuilder';
@@ -178,7 +178,7 @@ const SymbolToIcon = (props) => {
178
178
  export const ExpressionSelector = (props) => {
179
179
  const { getExpressions } = useQueryBuilderContext();
180
180
  const expressions = props.dataType ? getExpressions(props.dataType) : [];
181
- return (_jsx(DropdownButton, { "data-id": "expression-selector", "data-value": props.value, variant: "raised", tone: 'accent', columns: ['label'], items: expressions.map((expression) => ({
181
+ return (_jsx(NewDropdownButton, { "data-id": "expression-selector", className: "twa:min-h-input", "data-value": props.value, variant: "raised", tone: 'accent', items: expressions.map((expression) => ({
182
182
  label: _jsx(SymbolToIcon, { symbol: getQlPredicateSymbol(expression) }),
183
183
  onClick: () => {
184
184
  if (expression !== props.value) {
@@ -188,7 +188,7 @@ export const ExpressionSelector = (props) => {
188
188
  })), children: _jsx(SymbolToIcon, { symbol: getQlPredicateSymbol(props.value) ?? 'Select Operator' }) }));
189
189
  };
190
190
  export const CombinatorSelector = (props) => {
191
- return (_jsx(DropdownButton, { "data-id": "combinator-selector", "data-value": props.value, columns: ['label'], variant: "raised", tone: "accent", items: [
191
+ return (_jsx(NewDropdownButton, { className: "twa:min-h-input", "data-id": "combinator-selector", "data-value": props.value, variant: "raised", tone: "accent", items: [
192
192
  { label: 'AND', onClick: () => props.onChange('AND') },
193
193
  { label: 'OR', onClick: () => props.onChange('OR') },
194
194
  ], children: props.value }));
@@ -1,23 +1,23 @@
1
1
  import { createElement as _createElement } from "react";
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { defaultDragProxyMove, DragList } from '../../dnd';
4
+ import { cn } from '../../../lib/utils';
4
5
  import { isArgumentColumnOrField, isQlLogicalOperator, } from '../../../parser/src/predicate';
5
6
  import { mapColumnDataTypeToExpressionFunctionType } from '../../../Utilities/adaptableQlUtils';
6
7
  import { booleanExpressionFunctions } from '../../../Utilities/ExpressionFunctions/booleanExpressionFunctions';
7
8
  import { useAdaptable } from '../../../View/AdaptableContext';
8
- import DropdownButton from '../../DropdownButton';
9
+ import { NewDropdownButton } from '../../DropdownButton';
9
10
  import ErrorBox from '../../ErrorBox';
10
11
  import { Icon } from '../../icons';
11
12
  import SimpleButton from '../../SimpleButton';
12
13
  import { CombinatorSelector, ExpressionSelector, PrimitiveValueInput, PrimitiveColumnOrFieldSelector, PrimitiveMultiValueInput, } from './QueryBuilderInputs';
13
14
  import { getOperatorMatchingInputs as getFunctionMatchingInputTypes, mapExpressionToFieldValue, } from './utils';
14
15
  import { Box, Flex } from '../../Flex';
15
- import clsx from 'clsx';
16
16
  const ITEM_HEIGHT = 36;
17
17
  const BASE_CLASS_NAME = 'ab-QueryBuilder-predicate-editor';
18
18
  const Handle = (props) => (_jsx(Flex, { className: `${BASE_CLASS_NAME}__handle twa:mr-1`, style: { height: ITEM_HEIGHT }, alignItems: "center", ...props, children: _jsx(Icon, { name: "drag" }) }));
19
19
  const QueryPredicateButtons = (props) => {
20
- return (_jsxs(_Fragment, { children: [!props.hideAdd && (_jsx(DropdownButton, { listMinWidth: 150, columns: ['label'], items: [
20
+ return (_jsxs(_Fragment, { children: [!props.hideAdd && (_jsx(NewDropdownButton, { items: [
21
21
  { label: 'Condition', onClick: () => props.onNewPredicate('filter') },
22
22
  { label: 'AND / OR Group', onClick: () => props.onNewPredicate('group') },
23
23
  ], variant: "text", children: _jsx(Icon, { name: "plus" }) })), !props.hideDelete && (_jsx(SimpleButton, { icon: "delete", variant: "text", onClick: () => {
@@ -38,7 +38,7 @@ const LogicalFunctionEditor = (props) => {
38
38
  props.onChange({ ...props.predicate, args: newArgs });
39
39
  };
40
40
  const getCombinatorEl = (handleProps) => (_jsx(DragList, { dragListId: props.id, orientation: "vertical", onDrop: handleDrop, onDragProxyMove: defaultDragProxyMove, children: (listDomProps) => {
41
- return (_jsxs("div", { ...listDomProps, className: clsx(listDomProps.className), children: [_jsxs(Flex, { children: [props.isRoot ? null : _jsx(Handle, { ...handleProps }), _jsxs(Flex, { className: "twa:flex-1 twa:mb-2", alignItems: "center", height: ITEM_HEIGHT, children: [_jsx(CombinatorSelector, { value: props.predicate.operator, onChange: (combinator) => {
41
+ return (_jsxs("div", { ...listDomProps, className: cn(listDomProps.className), children: [_jsxs(Flex, { children: [props.isRoot ? null : _jsx(Handle, { ...handleProps }), _jsxs(Flex, { className: "twa:flex-1 twa:mb-2", alignItems: "center", height: ITEM_HEIGHT, children: [_jsx(CombinatorSelector, { value: props.predicate.operator, onChange: (combinator) => {
42
42
  props.onChange({
43
43
  ...props.predicate,
44
44
  operator: combinator,
@@ -94,7 +94,7 @@ const LogicalFunctionEditor = (props) => {
94
94
  }
95
95
  return (_jsx(DragList.DraggableItem, { id: props.id, children: (itemDomProps) => {
96
96
  const { onPointerDown, ...restDomProps } = itemDomProps;
97
- return (_jsx("div", { ...restDomProps, className: clsx(className, restDomProps.className), children: getCombinatorEl({ onPointerDown }) }));
97
+ return (_jsx("div", { ...restDomProps, className: cn(className, restDomProps.className), children: getCombinatorEl({ onPointerDown }) }));
98
98
  } }));
99
99
  };
100
100
  const PrimitiveFunctionEditor = (props) => {
@@ -129,7 +129,7 @@ const PrimitiveFunctionEditor = (props) => {
129
129
  const level = props.id.split('/').length - 1;
130
130
  return (_jsx(DragList.DraggableItem, { id: props.id, children: (itemDomProps) => {
131
131
  const { onPointerDown, ...restDomProps } = itemDomProps;
132
- return (_jsxs(Flex, { ...restDomProps, className: clsx(`twa:pb-2 ${BASE_CLASS_NAME} ${BASE_CLASS_NAME}-level-${level} ${BASE_CLASS_NAME}-primitive ${props.lastChild ? `${BASE_CLASS_NAME}--last-child` : ''}`, restDomProps.className), style: { minHeight: ITEM_HEIGHT }, children: [_jsx(Handle, { onPointerDown: onPointerDown }), _jsxs(Flex, { alignItems: "center", style: { height: ITEM_HEIGHT }, className: "twa:gap-0.5 twa:w-full", children: [_jsx(Box, { children: _jsx(PrimitiveColumnOrFieldSelector, { onChange: (colOrField) => {
132
+ return (_jsxs(Flex, { ...restDomProps, className: cn(`twa:pb-2 ${BASE_CLASS_NAME} ${BASE_CLASS_NAME}-level-${level} ${BASE_CLASS_NAME}-primitive ${props.lastChild ? `${BASE_CLASS_NAME}--last-child` : ''}`, restDomProps.className), style: { minHeight: ITEM_HEIGHT }, children: [_jsx(Handle, { onPointerDown: onPointerDown }), _jsxs(Flex, { alignItems: "center", style: { height: ITEM_HEIGHT }, className: "twa:gap-0.5 twa:w-full", children: [_jsx(Box, { children: _jsx(PrimitiveColumnOrFieldSelector, { onChange: (colOrField) => {
133
133
  props.onChange({
134
134
  ...props.predicate,
135
135
  args: [colOrField],
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
2
3
  import { Flex } from '../Flex';
3
- import clsx from 'clsx';
4
4
  import { targetOwn } from '../twUtils';
5
5
  const FieldWrap = (props) => {
6
- return (_jsx(Flex, { flexDirection: "row", alignItems: "center", ...props, className: clsx('ab-FieldWrap', targetOwn.focusWithinOutline, props.className) }));
6
+ return (_jsx(Flex, { flexDirection: "row", alignItems: "center", ...props, className: cn('ab-FieldWrap', targetOwn.focusWithinOutline, props.className) }));
7
7
  };
8
8
  export default FieldWrap;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import clsx from 'clsx';
4
3
  import { twMerge } from '../twMerge';
4
+ import { cn } from '../lib/utils';
5
5
  const ALIGN_ITEMS_MAP = {
6
6
  center: 'twa:items-center',
7
7
  'flex-start': 'twa:items-start',
@@ -30,7 +30,7 @@ const FLEX_WRAP_MAP = {
30
30
  };
31
31
  export const Flex = React.forwardRef((props, ref) => {
32
32
  const { className: _, flexDirection, alignItems, justifyContent, flexWrap, as, ...domProps } = props;
33
- const className = clsx('twa:flex', 'twa:box-border', FLEX_DIRECTION_MAP[flexDirection], ALIGN_ITEMS_MAP[alignItems], JUSTIFY_CONTENT_MAP[justifyContent], FLEX_WRAP_MAP[flexWrap]);
33
+ const className = cn('twa:flex', 'twa:box-border', FLEX_DIRECTION_MAP[flexDirection], ALIGN_ITEMS_MAP[alignItems], JUSTIFY_CONTENT_MAP[justifyContent], FLEX_WRAP_MAP[flexWrap]);
34
34
  const Cmp = (as || 'div');
35
35
  return (_jsx(Cmp, { ref: ref, ...domProps, className: twMerge(className, props.className) }));
36
36
  });
@@ -13,7 +13,7 @@ type TypeFormLayout = {
13
13
  defaultComponent?: React.ComponentType<any>;
14
14
  columns?: (string | number | FormColumn)[];
15
15
  placeholder?: ReactNode;
16
- sizes?: (string | number)[];
16
+ sizes?: readonly (string | number)[];
17
17
  style?: React.CSSProperties;
18
18
  gridRowGap?: string | number;
19
19
  gridColumnGap?: string | number;
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
2
3
  import { Box } from '../Flex';
3
- import clsx from 'clsx';
4
4
  export const baseClassName = 'ab-HelpBlock';
5
- export const HelpBlockClassName = clsx('twa:text-2/relaxed twa:p-2 twa:rounded-standard', 'twa:bg-primarylight twa:text-primary-foreground', baseClassName);
5
+ export const HelpBlockClassName = cn('twa:text-2/relaxed twa:p-2 twa:rounded-standard', 'twa:bg-primarylight twa:text-primary-foreground', baseClassName);
6
6
  const HelpBlock = (props) => {
7
- return _jsx(Box, { ...props, className: clsx(HelpBlockClassName, props.className) });
7
+ return _jsx(Box, { ...props, className: cn(HelpBlockClassName, props.className) });
8
8
  };
9
9
  export default HelpBlock;
@@ -1,5 +1,13 @@
1
1
  import { FunctionComponent } from 'react';
2
2
  import { CustomIcon } from '../../types';
3
+ export interface IconSelectorPanelProps {
4
+ customIcons?: CustomIcon[];
5
+ value?: string;
6
+ onChange: (iconName: string) => void;
7
+ className?: string;
8
+ showTitle?: boolean;
9
+ }
10
+ export declare const IconSelectorPanel: FunctionComponent<IconSelectorPanelProps>;
3
11
  export interface IconSelectorProps {
4
12
  customIcons?: CustomIcon[];
5
13
  value?: string;
@@ -1,15 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
+ import { cn } from '../../lib/utils';
3
4
  import AdaptableInput from '../../View/Components/AdaptableInput';
4
5
  import { IconComponent } from '../Icon';
5
6
  import { allIcons, Icon } from '../icons';
6
7
  import OverlayTrigger from '../OverlayTrigger';
7
8
  import SimpleButton from '../SimpleButton';
8
9
  import { Box, Flex } from '../Flex';
10
+ import { wizardSelectionButtonClassName } from '../../Utilities/wizardSelection';
11
+ const ICON_GRID_BUTTON_CLASS = 'twa:!min-w-[36px] twa:!w-9 twa:!h-9 twa:!p-0 twa:justify-center twa:items-center';
9
12
  const IconButton = (props) => {
10
- return (_jsx(SimpleButton, { onClick: () => props.onClick(), className: "twa:p-2", variant: props.active ? 'raised' : 'text', tone: props.active ? 'accent' : 'none', icon: props.icon, children: props.children }));
13
+ return (_jsx(SimpleButton, { onClick: () => props.onClick(), className: wizardSelectionButtonClassName(props.active, ICON_GRID_BUTTON_CLASS), variant: props.active ? 'outlined' : 'text', tone: "none", icon: props.icon, children: props.children }));
11
14
  };
12
- export const IconSelector = (props) => {
15
+ export const IconSelectorPanel = (props) => {
13
16
  const [query, setQuery] = React.useState('');
14
17
  const allIconsNames = Object.keys(allIcons);
15
18
  const filteredIcons = query
@@ -17,13 +20,14 @@ export const IconSelector = (props) => {
17
20
  return iconName.toLowerCase().includes(query.toLowerCase());
18
21
  })
19
22
  : allIconsNames;
20
- const iconsElements = filteredIcons.map((iconName) => {
21
- return (_jsx(Flex, { children: _jsx(IconButton, { onClick: () => props.onChange(iconName), active: iconName === props.value, icon: iconName }) }, iconName));
22
- });
23
+ const iconsElements = filteredIcons.map((iconName) => (_jsx(IconButton, { onClick: () => props.onChange(iconName), active: iconName === props.value, icon: iconName }, iconName)));
23
24
  const customIconsElements = props.customIcons?.map((def) => {
24
- return (_jsx(IconButton, { active: false, onClick: () => props.onChange(def.name), children: _jsx(IconComponent, { icon: def.icon }, def.name) }, def.name));
25
+ return (_jsx(IconButton, { active: def.name === props.value, onClick: () => props.onChange(def.name), children: _jsx(IconComponent, { icon: def.icon }, def.name) }, def.name));
25
26
  });
26
- const popup = (_jsxs(Box, { className: "ab-IconSelector__Popup", children: [_jsxs(Box, { className: "twa:mb-2", children: [_jsx(Box, { className: "twa:mb-2 twa:text-4", children: "Select an Icon" }), _jsx(AdaptableInput, { value: query, onChange: (event) => setQuery(event.target.value ?? ''), className: "twa:w-full" })] }), _jsxs(Flex, { className: "twa:p-2 twa:w-[300px] twa:max-h-[300px] twa:overflow-auto twa:flex-wrap", children: [iconsElements, " ", customIconsElements] })] }));
27
+ return (_jsxs(Box, { className: cn('ab-IconSelector__Popup', props.className), children: [_jsxs(Box, { className: "twa:mb-2", children: [props.showTitle ? (_jsx(Box, { className: "twa:mb-2 twa:text-4", children: "Select an Icon" })) : null, _jsx(AdaptableInput, { value: query, onChange: (event) => setQuery(event.target.value ?? ''), className: "twa:w-full", placeholder: "Search Icons" })] }), _jsxs(Flex, { flexDirection: "row", flexWrap: "wrap", className: "twa:p-2 twa:w-[300px] twa:max-w-full twa:max-h-[300px] twa:overflow-auto twa:gap-0.5", children: [iconsElements, customIconsElements] })] }));
28
+ };
29
+ export const IconSelector = (props) => {
30
+ const popup = (_jsx(IconSelectorPanel, { customIcons: props.customIcons, value: props.value, onChange: props.onChange, showTitle: true }));
27
31
  let value = 'No Icon Selected';
28
32
  if (props.value in allIcons) {
29
33
  value = (_jsx(Icon, { style: { display: 'inline-block' }, name: props.value }));
@@ -1 +1,2 @@
1
1
  export * from './IconSelector';
2
+ export { IconSelectorPanel } from './IconSelector';
@@ -1 +1,2 @@
1
1
  export * from './IconSelector';
2
+ export { IconSelectorPanel } from './IconSelector';
@@ -2,12 +2,12 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { createPortal } from 'react-dom';
3
3
  import { useMemo } from 'react';
4
4
  import { RemoveScroll } from 'react-remove-scroll';
5
+ import { cn } from '../../lib/utils';
5
6
  import { baseClassName, default as Backdrop } from './Backdrop';
6
7
  import { createUuid } from '../utils/uuid';
7
8
  import { isBrowserDocumentAvailable } from '../../View/UIHelper';
8
9
  import { useStacking } from '../WindowModal/useStacking';
9
10
  import { Flex } from '../Flex';
10
- import clsx from 'clsx';
11
11
  let portalElement;
12
12
  let loadingScreenPortalElement;
13
13
  export const ensurePortalElement = () => {
@@ -42,5 +42,5 @@ export const Modal = (props) => {
42
42
  const backdropZIndexOffset = 1;
43
43
  const stacking = useStacking();
44
44
  const zIndex = stacking.zIndex;
45
- return createPortal(isOpen ? (_jsxs(_Fragment, { children: [_jsx(Backdrop, { timestamp: openTimestamp, uuid: uuid, zIndex: zIndex - backdropZIndexOffset, onBringToFront: onBringToFront }), _jsx(RemoveScroll, { children: _jsx(Flex, { alignItems: "center", justifyContent: "center", flexDirection: "column", ...boxProps, style: { zIndex, ...style }, className: clsx('twa:fixed twa:inset-0 twa:z-1000 twa:font-(family-name:--ab__font-family)', baseClassName, className), children: children }) })] })) : null, portalElement);
45
+ return createPortal(isOpen ? (_jsxs(_Fragment, { children: [_jsx(Backdrop, { timestamp: openTimestamp, uuid: uuid, zIndex: zIndex - backdropZIndexOffset, onBringToFront: onBringToFront }), _jsx(RemoveScroll, { children: _jsx(Flex, { alignItems: "center", justifyContent: "center", flexDirection: "column", ...boxProps, style: { zIndex, ...style }, className: cn('twa:fixed twa:inset-0 twa:z-1000 twa:font-(family-name:--ab__font-family)', baseClassName, className), children: children }) })] })) : null, portalElement);
46
46
  };
@@ -52,7 +52,17 @@ const NewSelect = (props) => {
52
52
  return item !== undefined ? renderValueProp(item) : undefined;
53
53
  }
54
54
  : undefined;
55
- return (_jsxs(Select, { multiple: props.multiple, open: props.open, onOpenChange: props.onOpenChange, isItemEqualToValue: isItemEqualToValue, items: allItems, disabled: props.disabled, value: props.value, onValueChange: props.onValueChange, "aria-label": props.ariaLabel, defaultValue: props.defaultValue, children: [_jsx(SelectTrigger, { size: props.size === 'small' ? 'sm' : 'default', className: cn('twa:max-w-80 ab-Select', props.className), "aria-invalid": isInvalid, "aria-label": props.ariaLabel, "data-name": props['data-name'], icon: props.chevronIcon, children: _jsx(SelectValue, { placeholder: props.placeholder, className: 'twa:truncate twa:block!', children: renderValueChild }) }), _jsx(SelectContent, { "aria-label": props.ariaLabel ? `${props.ariaLabel} content` : undefined, alignItemWithTrigger: false, container: props.container, stopMouseDownPropagation: props.stopMouseDownPropagation, style: contentStyle, children: groups.map((group, index) => {
55
+ return (_jsxs(Select, { multiple: props.multiple, open: props.open, onOpenChange: props.onOpenChange, isItemEqualToValue: isItemEqualToValue, items: allItems, disabled: props.disabled, value: props.value, onValueChange: props.onValueChange, "aria-label": props.ariaLabel, defaultValue: props.defaultValue, children: [_jsx(SelectTrigger, { size: props.size === 'small' ? 'sm' : 'default', className: cn('twa:max-w-80 ab-Select', props.className), "aria-invalid": isInvalid, "aria-label": props.ariaLabel, "data-name": props['data-name'], icon: props.chevronIcon, onMouseDown: props.stopMouseDownPropagation
56
+ ? (e) => {
57
+ e.stopPropagation();
58
+ e.nativeEvent?.stopPropagation?.();
59
+ }
60
+ : undefined, onClick: props.stopMouseDownPropagation
61
+ ? (e) => {
62
+ e.stopPropagation();
63
+ e.nativeEvent?.stopPropagation?.();
64
+ }
65
+ : undefined, children: _jsx(SelectValue, { placeholder: props.placeholder, className: 'twa:truncate twa:block!', children: renderValueChild }) }), _jsx(SelectContent, { "aria-label": props.ariaLabel ? `${props.ariaLabel} content` : undefined, alignItemWithTrigger: false, container: props.container, stopMouseDownPropagation: props.stopMouseDownPropagation, style: contentStyle, children: groups.map((group, index) => {
56
66
  return (_jsxs(React.Fragment, { children: [_jsxs(SelectGroup, { children: [group.label && _jsx(SelectLabel, { children: group.label }), group.items.map((item) => {
57
67
  const itemTitle = getItemTitle(item.label, item.value);
58
68
  const tooltipText = props.showItemTooltip ? itemTitle : undefined;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import clsx from 'clsx';
3
+ import { cn } from '../../lib/utils';
4
4
  import { Box, Flex } from '../Flex';
5
5
  import { twMerge } from '../../twMerge';
6
6
  export const baseClassName = 'ab-Panel';
@@ -18,16 +18,16 @@ const Body = ({ children, bodyScroll, variant, className, style, }) => {
18
18
  if (bodyScroll === true) {
19
19
  bodyScroll = 'auto';
20
20
  }
21
- const bodyCls = clsx(DEFAULT_BODY_CLS, `${baseClassName}__body`, variant && `${baseClassName}__body--variant-${variant}`, bodyScroll ? `twa:overflow-auto` : null, {
21
+ const bodyCls = cn(DEFAULT_BODY_CLS, `${baseClassName}__body`, variant && `${baseClassName}__body--variant-${variant}`, bodyScroll ? `twa:overflow-auto` : null, {
22
22
  'twa:bg-primarylight twa:text-primary-foreground twa:border-0': variant === 'modern',
23
23
  }, className);
24
24
  return (_jsx(Box, { style: style, className: bodyCls, children: children }));
25
25
  };
26
26
  const PlainHeader = ({ children, className }) => {
27
- return (_jsx(Box, { className: clsx(`${baseClassName}__header`, `${baseClassName}__header--variant-plain`, className), children: children }));
27
+ return (_jsx(Box, { className: cn(`${baseClassName}__header`, `${baseClassName}__header--variant-plain`, className), children: children }));
28
28
  };
29
29
  const FlexBody = ({ children, className }) => {
30
- return (_jsx(Box, { className: clsx(DEFAULT_BODY_CLS, `${baseClassName}__body`, `${baseClassName}__body--variant-flex`, 'twa:overflow-auto twa:min-h-0', 'twa:flex-1 twa:flex twa:flex-col', className), children: children }));
30
+ return (_jsx(Box, { className: cn(DEFAULT_BODY_CLS, `${baseClassName}__body`, `${baseClassName}__body--variant-flex`, 'twa:overflow-auto twa:min-h-0', 'twa:flex-1 twa:flex twa:flex-col', className), children: children }));
31
31
  };
32
32
  const Panel = (props) => {
33
33
  const { border, className, header, children, headerProps, bodyProps, bodyScroll, variant = 'default', ...boxProps } = props;
@@ -40,7 +40,7 @@ const Panel = (props) => {
40
40
  border,
41
41
  ...(bodyProps ? bodyProps.style : null),
42
42
  };
43
- const cls = twMerge(clsx(baseClassName, `${baseClassName}--variant-${variant}`, !header ? `${baseClassName}--no-header` : `${baseClassName}--with-header`, 'twa:rounded-standard', 'twa:flex twa:flex-col'), className);
43
+ const cls = cn(baseClassName, `${baseClassName}--variant-${variant}`, !header ? `${baseClassName}--no-header` : `${baseClassName}--with-header`, 'twa:rounded-standard', 'twa:flex twa:flex-col', className);
44
44
  let headerCls = headerProps?.className;
45
45
  if (cls.includes('twa:rounded-none')) {
46
46
  headerCls = twMerge(headerCls, 'twa:rounded-none');
@@ -65,10 +65,10 @@ const Panel = (props) => {
65
65
  });
66
66
  if (theHeader) {
67
67
  childrenArr = childrenArr.filter((child) => child !== theHeader);
68
- theHeader = (_jsx(PlainHeader, { ...theHeader.props, className: clsx(headerCls, theHeader.props.className ?? '') }));
68
+ theHeader = (_jsx(PlainHeader, { ...theHeader.props, className: cn(headerCls, theHeader.props.className ?? '') }));
69
69
  }
70
70
  if (theBody) {
71
- theBody = (_jsx(FlexBody, { ...theBody.props, className: clsx(bodyCls, theBody.props.className ?? '') }));
71
+ theBody = (_jsx(FlexBody, { ...theBody.props, className: cn(bodyCls, theBody.props.className ?? '') }));
72
72
  }
73
73
  return (_jsxs(Box, { ...boxProps, style: { ...style, ...boxProps.style }, className: cls, children: [theHeader ?? (_jsx(Header, { ...headerProps, style: headerStyle, variant: variant, className: headerCls, children: header })), theBody ??
74
74
  (childrenArr.length > 0 ? (_jsx(Body, { ...bodyProps, style: bodyStyle, bodyScroll: bodyScroll, variant: variant, className: twMerge(bodyCls), children: childrenArr })) : null)] }));
@@ -9,7 +9,7 @@ type TypeProps = {
9
9
  value?: any;
10
10
  onChange?: (checked: boolean, event?: SyntheticEvent | any) => void;
11
11
  children?: ReactNode | React.JSX.Element;
12
- gapDistance?: number;
12
+ gapDistance?: number | string;
13
13
  childrenPosition?: 'start' | 'end';
14
14
  variant?: Variant;
15
15
  };
@@ -4,8 +4,8 @@ import { useState } from 'react';
4
4
  import useProperty from '../utils/useProperty';
5
5
  import { Box, Flex } from '../Flex';
6
6
  import { twMerge } from '../../twMerge';
7
- import clsx from 'clsx';
8
7
  import { targetChildren, targetOwn } from '../twUtils';
8
+ import { cn } from '../../lib/utils';
9
9
  const RadioContext = React.createContext({
10
10
  value: null,
11
11
  name: '',
@@ -15,7 +15,7 @@ const RadioContext = React.createContext({
15
15
  export const useRadioContext = () => {
16
16
  return React.useContext(RadioContext);
17
17
  };
18
- const Radio = ({ children, checked, onChange, value, name, gapDistance = 10, childrenPosition = 'end', as = 'label', id, tabIndex, disabled, ...props }) => {
18
+ const Radio = ({ children, checked, onChange, value, name, gapDistance = 'var(--ab-radio-gap)', childrenPosition = 'end', as = 'label', id, tabIndex, disabled, ...props }) => {
19
19
  const context = useRadioContext();
20
20
  const { value: contextValue, onChange: contextOnChange, name: contextName, variant } = context;
21
21
  const [stateChecked, setStateChecked] = useState(false);
@@ -41,7 +41,7 @@ const Radio = ({ children, checked, onChange, value, name, gapDistance = 10, chi
41
41
  const beforeGap = childrenPosition === 'start' ? gap : null;
42
42
  const after = childrenPosition === 'end' ? children : null;
43
43
  const afterGap = childrenPosition === 'end' ? gap : null;
44
- return (_jsxs(Box, { ...props, className: twMerge(`ab-Radio twa:my-2 twa:inline-flex twa:flex-row twa:items-center twa:cursor-pointer twa:relative`, props.className), "data-checked": computedChecked, as: as, children: [before, beforeGap, _jsx("input", { disabled: disabled, className: clsx('ab-Radio-input', targetOwn.focusOutline, 'twa:align-middle', 'twa:m-0', 'twa:rounded-full', 'twa:cursor-pointer', 'twa:position-relative', 'twa:w-[1rem]', 'twa:h-[1rem]', 'twa:min-w-[1rem]', 'twa:min-h-[1rem]', variant === 'default' && 'ab-Radio-input--default', variant === 'text-only' && 'ab-Radio-input--text-only twa:size-0 twa:opacity-0'), id: id, checked: computedChecked, type: "radio", name: name ?? contextName, value: value, tabIndex: tabIndex, onChange: onInputChange }), afterGap, after] }));
44
+ return (_jsxs(Box, { ...props, className: twMerge(`ab-Radio twa:my-2 twa:inline-flex twa:flex-row twa:items-center twa:cursor-pointer twa:relative`, props.className), "data-checked": computedChecked, as: as, children: [before, beforeGap, _jsx("input", { disabled: disabled, className: cn('ab-Radio-input', targetOwn.focusOutline, 'twa:align-middle', 'twa:m-0', 'twa:rounded-full', 'twa:cursor-pointer', 'twa:position-relative', 'twa:w-[1rem]', 'twa:h-[1rem]', 'twa:min-w-[1rem]', 'twa:min-h-[1rem]', variant === 'default' && 'ab-Radio-input--default', variant === 'text-only' && 'ab-Radio-input--text-only twa:size-0 twa:opacity-0'), id: id, checked: computedChecked, type: "radio", name: name ?? contextName, value: value, tabIndex: tabIndex, onChange: onInputChange }), afterGap, after] }));
45
45
  };
46
46
  export const RadioGroup = (props) => {
47
47
  const { orientation, value: _value, name, onRadioChange, children, variant = 'default' } = props;
@@ -50,12 +50,14 @@ export const RadioGroup = (props) => {
50
50
  onRadioChange(value);
51
51
  },
52
52
  });
53
- return (_jsx(RadioContext.Provider, { value: { value, onChange: setValue, name, variant }, children: _jsx(Flex, { className: clsx('ab-RadioGroup', props.className), flexDirection: orientation == 'horizontal' ? 'row' : 'column', alignItems: orientation == 'horizontal' ? 'center' : 'flex-start', children: children }) }));
53
+ return (_jsx(RadioContext.Provider, { value: { value, onChange: setValue, name, variant }, children: _jsx(Flex, { className: cn('ab-RadioGroup', props.className), flexDirection: orientation == 'horizontal' ? 'row' : 'column', alignItems: orientation == 'horizontal' ? 'center' : 'flex-start', children: children }) }));
54
54
  };
55
55
  export const radioGroupStyling = {
56
- horizontalTextOnly: clsx('twa:bg-primarylight twa:rounded-standard twa:p-1 twa:gap-5', {
57
- 'twa:*:flex-1 twa:*:rounded-standard twa:*:p-1 twa:*:m-0': 'default styles for all the radio buttons',
56
+ horizontalTextOnly: cn('twa:bg-primarylight twa:rounded-standard twa:p-1 twa:gap-5', {
57
+ 'twa:*:flex-1 twa:*:shrink-0 twa:*:min-w-fit twa:*:rounded-standard twa:*:p-1 twa:*:m-0 twa:*:px-4': 'default styles for all the radio buttons',
58
58
  'twa:*:data-[checked=true]:bg-accent twa:*:data-[checked=true]:text-accent-foreground': 'style the checked state',
59
+ 'twa:[--ab-radio-gap:0]': 'remove the gap between the radio input and its label',
60
+ 'twa:[&_input]:size-0 twa:[&_input]:min-w-0 twa:[&_input]:min-h-0 twa:[&_input]:border-0 twa:[&_input]:p-0': 'collapse any nested radio inputs to zero size (overriding their fixed min-w/min-h)',
59
61
  [targetChildren.focusWithinOutline]: 'styles for when a radio is currently focused - show a ring, so people know they can do keyboard nav with left/right arrow keys',
60
62
  }),
61
63
  };