@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.
- package/icons/sort-asc.svg +1 -1
- package/index.css +755 -256
- package/package.json +1 -1
- package/src/AdaptableOptions/DataSetOptions.d.ts +26 -2
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
- package/src/AdaptableOptions/SettingsPanelOptions.d.ts +42 -10
- package/src/AdaptableState/Common/AdaptableFormat.d.ts +7 -0
- package/src/AdaptableState/Common/AdaptableMessageType.d.ts +1 -1
- package/src/AdaptableState/Common/Enums.d.ts +1 -1
- package/src/AdaptableState/Common/Enums.js +1 -1
- package/src/AdaptableState/StyledColumnState.d.ts +2 -2
- package/src/Api/Internal/AlertInternalApi.js +1 -1
- package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
- package/src/Api/Internal/DataSetInternalApi.js +73 -13
- package/src/Redux/Store/AdaptableStore.js +6 -4
- package/src/Strategy/CalculatedColumnModule.js +1 -0
- package/src/Strategy/ColumnFilterModule.js +1 -0
- package/src/Strategy/FlashingCellModule.js +6 -2
- package/src/Strategy/FormatColumnModule.js +2 -2
- package/src/Strategy/FreeTextColumnModule.js +38 -28
- package/src/Strategy/Interface/IModule.d.ts +3 -1
- package/src/Strategy/LayoutModule.js +15 -66
- package/src/Strategy/StyledColumnModule.js +12 -29
- package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
- package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
- package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +14 -0
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +3 -0
- package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
- package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +105 -0
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +166 -0
- package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
- package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
- package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +85 -0
- package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +46 -41
- package/src/Utilities/Helpers/FormatHelper.js +3 -0
- package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
- package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
- package/src/Utilities/Helpers/StyleHelper.js +27 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +7 -5
- package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
- package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +15 -0
- package/src/Utilities/getScopeViewItems.js +2 -0
- package/src/Utilities/wizardSelection.d.ts +10 -0
- package/src/Utilities/wizardSelection.js +15 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
- package/src/View/Alert/AlertViewPanel.js +2 -2
- package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +0 -4
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -1
- package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +3 -4
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
- package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +31 -7
- package/src/View/Alert/Wizard/AlertWizard.js +4 -4
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -14
- package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +30 -4
- package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
- package/src/View/Charting/ShowChartButton.js +8 -8
- package/src/View/ColumnInfo/ColumnInfo.js +21 -1
- package/src/View/Components/AdaptableObjectCollection/index.js +2 -2
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +4 -4
- package/src/View/Components/AdaptableObjectRow/index.js +2 -2
- package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
- package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
- package/src/View/Components/Buttons/ButtonNew.js +1 -1
- package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +2 -2
- package/src/View/Components/ColumnFilter/ColumnFilter.js +2 -3
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
- package/src/View/Components/ColumnSelector/index.d.ts +12 -0
- package/src/View/Components/ColumnSelector/index.js +30 -6
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
- package/src/View/Components/ModuleValueSelector/index.js +2 -1
- package/src/View/Components/NewScopeComponent.js +4 -9
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
- package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -3
- package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -2
- package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
- package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +1 -0
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +25 -27
- package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
- package/src/View/Components/RangesComponent.d.ts +2 -4
- package/src/View/Components/RangesComponent.js +95 -66
- package/src/View/Components/ReorderDraggable/index.js +2 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
- package/src/View/Components/StyleComponent.js +32 -65
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +10 -7
- package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
- package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -81
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +76 -0
- package/src/View/Components/ValueSelector/index.d.ts +29 -0
- package/src/View/Components/ValueSelector/index.js +113 -30
- package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
- package/src/View/Components/wizardColumnListStyles.js +10 -0
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +5 -7
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
- package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
- package/src/View/Dashboard/DashboardPopup.js +3 -67
- package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
- package/src/View/Dashboard/DashboardPopupSections.js +68 -0
- package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
- package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
- package/src/View/DataChangeHistory/DataChangeHistoryTable.js +94 -0
- package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
- package/src/View/DataChangeHistory/buildActionColumnButton.js +30 -39
- package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
- package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +37 -0
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
- package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
- package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
- package/src/View/Export/ExportDestinationPicker.js +3 -3
- package/src/View/Export/ExportViewPanel.js +2 -2
- package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +4 -9
- package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -6
- package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
- package/src/View/FlashingCell/FlashingCellStyle.js +4 -2
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +7 -11
- package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +5 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +1 -0
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +1 -5
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -3
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +99 -42
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +0 -4
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +56 -15
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -8
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -13
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
- package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
- package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
- package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -2
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
- package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +73 -33
- package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +155 -276
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +148 -145
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +24 -12
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +23 -12
- package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +19 -12
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +8 -4
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +11 -11
- package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
- package/src/View/Layout/Wizard/sections/SortSection.js +41 -17
- package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
- package/src/View/Layout/Wizard/sections/columnLayoutCards.js +159 -0
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +201 -0
- package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +63 -0
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +52 -0
- package/src/View/License/LicenseWatermark.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
- package/src/View/Note/NoteEditor.js +2 -2
- package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
- package/src/View/SmartEdit/SmartEditPopup.js +2 -2
- package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
- package/src/View/StateManagement/StateManagementPopup.js +1 -1
- package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
- package/src/View/StateManagement/components/ExportDropdown.js +12 -12
- package/src/View/StatusBar/StatusBarPanel.js +2 -2
- package/src/View/StatusBar/StatusBarPopup.js +33 -5
- package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
- package/src/View/StatusBar/statusBarPanelHelpers.js +7 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +14 -11
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +137 -119
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +8 -14
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +50 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +26 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +8 -17
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +46 -28
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +98 -43
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +32 -46
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +11 -6
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +94 -7
- package/src/View/UIHelper.d.ts +0 -2
- package/src/View/UIHelper.js +8 -23
- package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
- package/src/View/Wizard/CollapsibleWizardCard.js +81 -0
- package/src/View/Wizard/OnePageWizards.js +6 -6
- package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
- package/src/View/Wizard/SummaryColorTag.js +67 -0
- package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
- package/src/View/Wizard/WizardTypeSelection.js +31 -0
- package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
- package/src/View/Wizard/rowGroupSummaryTags.js +14 -0
- package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
- package/src/View/Wizard/scopeSummaryTags.js +33 -0
- package/src/agGrid/AgGridAdapter.js +0 -5
- package/src/agGrid/AgGridColumnAdapter.js +2 -2
- package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
- package/src/components/Card/index.js +5 -6
- package/src/components/CheckBox/index.js +2 -3
- package/src/components/CodeBlock/index.js +2 -2
- package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
- package/src/components/ColorPicker/ColorPicker.js +8 -6
- package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
- package/src/components/ColorPicker/OptionalColorPicker.js +26 -0
- package/src/components/ColorPicker/index.d.ts +1 -0
- package/src/components/ColorPicker/index.js +1 -0
- package/src/components/Combobox/comboboxUtils.d.ts +1 -0
- package/src/components/Combobox/index.js +19 -18
- package/src/components/Dashboard/DashboardManager.js +2 -4
- package/src/components/Dialog/index.js +4 -4
- package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
- package/src/components/DragAndDropContext/DragAndDropContext.js +3 -0
- package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
- package/src/components/DragAndDropContext/ModuleManager.js +47 -8
- package/src/components/DragAndDropContext/TabList.d.ts +11 -4
- package/src/components/DragAndDropContext/TabList.js +52 -38
- package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
- package/src/components/DragAndDropContext/UnusedPanel.js +15 -11
- package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
- package/src/components/DragAndDropContext/dragScope.js +26 -0
- package/src/components/DragAndDropContext/types.d.ts +7 -0
- package/src/components/DropdownButton/index.d.ts +33 -25
- package/src/components/DropdownButton/index.js +24 -158
- package/src/components/EmptyContent/index.js +2 -2
- package/src/components/ErrorBox/index.js +2 -2
- package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +6 -6
- package/src/components/FieldWrap/index.js +2 -2
- package/src/components/Flex.js +2 -2
- package/src/components/FormLayout/index.d.ts +1 -1
- package/src/components/HelpBlock/index.js +3 -3
- package/src/components/IconSelector/IconSelector.d.ts +8 -0
- package/src/components/IconSelector/IconSelector.js +11 -7
- package/src/components/IconSelector/index.d.ts +1 -0
- package/src/components/IconSelector/index.js +1 -0
- package/src/components/Modal/index.js +2 -2
- package/src/components/NewSelect/index.js +11 -1
- package/src/components/Panel/index.js +7 -7
- package/src/components/Radio/index.d.ts +1 -1
- package/src/components/Radio/index.js +8 -6
- package/src/components/SimpleButton/index.js +7 -7
- package/src/components/StylePreview.js +2 -2
- package/src/components/Tabs/index.js +4 -4
- package/src/components/Tag/Tag.d.ts +16 -0
- package/src/components/Tag/Tag.js +14 -4
- package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
- package/src/components/Tag/columnScopeTagHelpers.js +6 -0
- package/src/components/Tag/index.d.ts +1 -1
- package/src/components/Tag/index.js +1 -1
- package/src/components/Textarea/index.js +2 -3
- package/src/components/Toggle/Toggle.d.ts +2 -0
- package/src/components/Toggle/Toggle.js +14 -7
- package/src/components/Toggle/ToggleGroup.js +2 -2
- package/src/components/ToggleButton/index.js +4 -4
- package/src/components/Tree/TreeDropdown/index.js +3 -4
- package/src/components/WarningBox/index.js +2 -2
- package/src/components/icons/sort-asc.js +1 -1
- package/src/components/ui/button.d.ts +2 -2
- package/src/components/ui/combobox.d.ts +3 -1
- package/src/components/ui/combobox.js +2 -2
- package/src/components/ui/input-group.d.ts +1 -1
- package/src/components/ui/select.js +3 -2
- package/src/components/ui/textarea.js +1 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/index.js +7 -3
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -290
- package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
- package/src/components/DropdownButton/DropdownButtonItem.js +0 -1
- package/src/components/DropdownButton/renderItem.d.ts +0 -14
- package/src/components/DropdownButton/renderItem.js +0 -11
- package/src/components/DropdownButton/useExpanded.d.ts +0 -24
- package/src/components/DropdownButton/useExpanded.js +0 -56
- package/src/components/NewDropdownButton/index.d.ts +0 -27
- package/src/components/NewDropdownButton/index.js +0 -24
|
@@ -1,162 +1,28 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
155
|
-
}) })] }), _jsx(Box, { className:
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
6
|
+
return (_jsx(Flex, { flexDirection: "row", alignItems: "center", ...props, className: cn('ab-FieldWrap', targetOwn.focusWithinOutline, props.className) }));
|
|
7
7
|
};
|
|
8
8
|
export default FieldWrap;
|
package/src/components/Flex.js
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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:
|
|
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:
|
|
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
|
|
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:
|
|
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
|
-
|
|
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 }));
|
|
@@ -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:
|
|
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,
|
|
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
|
|
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 =
|
|
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:
|
|
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:
|
|
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 =
|
|
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:
|
|
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:
|
|
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 =
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
};
|