Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
72
activepieces-fork/packages/server/api/src/app/flags/theme.ts
Normal file
72
activepieces-fork/packages/server/api/src/app/flags/theme.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
import tinycolor from 'tinycolor2'
|
||||
|
||||
function generateColorVariations(defaultColor: string) {
|
||||
const defaultColorObj = tinycolor(defaultColor)
|
||||
|
||||
const darkColor = defaultColorObj.clone().darken(2)
|
||||
const baseLight = tinycolor('#ffffff')
|
||||
const lightColor = tinycolor
|
||||
.mix(baseLight, defaultColorObj.toHex(), 12)
|
||||
.toHexString()
|
||||
const mediumColor = defaultColorObj.clone().lighten(26)
|
||||
|
||||
return {
|
||||
default: defaultColorObj.toHexString(),
|
||||
dark: darkColor.toHexString(),
|
||||
light: lightColor,
|
||||
medium: mediumColor.toHexString(),
|
||||
}
|
||||
}
|
||||
|
||||
function generateSelectionColor(defaultColor: string) {
|
||||
const defaultColorObj = tinycolor(defaultColor)
|
||||
const lightColor = defaultColorObj.lighten(8)
|
||||
return lightColor.toHexString()
|
||||
}
|
||||
|
||||
export function generateTheme({
|
||||
primaryColor,
|
||||
fullLogoUrl,
|
||||
favIconUrl,
|
||||
logoIconUrl,
|
||||
websiteName,
|
||||
}: {
|
||||
primaryColor: string
|
||||
fullLogoUrl: string
|
||||
favIconUrl: string
|
||||
logoIconUrl: string
|
||||
websiteName: string
|
||||
}) {
|
||||
return {
|
||||
websiteName,
|
||||
colors: {
|
||||
avatar: '#515151',
|
||||
'blue-link': '#1890ff',
|
||||
danger: '#f94949',
|
||||
primary: generateColorVariations(primaryColor),
|
||||
warn: {
|
||||
default: '#f78a3b',
|
||||
light: '#fff6e4',
|
||||
dark: '#cc8805',
|
||||
},
|
||||
success: {
|
||||
default: '#14ae5c',
|
||||
light: '#3cad71',
|
||||
},
|
||||
selection: generateSelectionColor(primaryColor),
|
||||
},
|
||||
logos: {
|
||||
fullLogoUrl,
|
||||
favIconUrl,
|
||||
logoIconUrl,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
export const defaultTheme = generateTheme({
|
||||
primaryColor: '#6e41e2',
|
||||
websiteName: 'Activepieces',
|
||||
fullLogoUrl: 'https://cdn.activepieces.com/brand/full-logo.png',
|
||||
favIconUrl: 'https://cdn.activepieces.com/brand/favicon.ico',
|
||||
logoIconUrl: 'https://cdn.activepieces.com/brand/logo.svg',
|
||||
})
|
||||
Reference in New Issue
Block a user