import { PropertyPaneConfig } from "constants/PropertyControlConstants"; import { WidgetConfigProps } from "reducers/entityReducers/widgetConfigReducer"; import { DerivedPropertiesMap } from "utils/WidgetFactory"; import { WidgetFeatures } from "utils/WidgetFeatures"; import { WidgetProps } from "./BaseWidget"; export interface WidgetConfiguration { type: string; name: string; iconSVG?: string; defaults: Partial & WidgetConfigProps; hideCard?: boolean; isDeprecated?: boolean; replacement?: string; isCanvas?: boolean; needsMeta?: boolean; features?: WidgetFeatures; searchTags?: string[]; properties: { config: PropertyPaneConfig[]; default: Record; meta: Record; derived: DerivedPropertiesMap; }; } export const GRID_DENSITY_MIGRATION_V1 = 4; export enum BlueprintOperationTypes { MODIFY_PROPS = "MODIFY_PROPS", ADD_ACTION = "ADD_ACTION", CHILD_OPERATIONS = "CHILD_OPERATIONS", } export type FlattenedWidgetProps = WidgetProps & { children?: string[]; }; export interface DSLWidget extends WidgetProps { children?: DSLWidget[]; } export enum FileDataTypes { Base64 = "Base64", Text = "Text", Binary = "Binary", } export type AlignWidget = "LEFT" | "RIGHT"; export enum AlignWidgetTypes { LEFT = "LEFT", RIGHT = "RIGHT", } // Minimum Rows for Widget Popups export const MinimumPopupRows = 12; // Default boxShadowColor used in theming migration export const rgbaMigrationConstantV56 = "rgba(0, 0, 0, 0.25)"; export const BUTTON_GROUP_CHILD_STYLESHEET = { button: { buttonColor: "{{appsmith.theme.colors.primaryColor}}", }, }; export const TABLE_WIDGET_CHILD_STYLESHEET = { button: { buttonColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, menuButton: { menuColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, iconButton: { menuColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, }; export const JSON_FORM_WIDGET_CHILD_STYLESHEET = { ARRAY: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", cellBorderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", cellBoxShadow: "none", }, OBJECT: { borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", cellBorderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", cellBoxShadow: "none", }, CHECKBOX: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", }, CURRENCY_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, DATEPICKER: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, EMAIL_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, MULTISELECT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, MULTILINE_TEXT_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, NUMBER_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, PASSWORD_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, PHONE_NUMBER_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, RADIO_GROUP: { accentColor: "{{appsmith.theme.colors.primaryColor}}", boxShadow: "none", }, SELECT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, SWITCH: { accentColor: "{{appsmith.theme.colors.primaryColor}}", boxShadow: "none", }, TEXT_INPUT: { accentColor: "{{appsmith.theme.colors.primaryColor}}", borderRadius: "{{appsmith.theme.borderRadius.appBorderRadius}}", boxShadow: "none", }, };