Merge branch 'fixes-roundup4' into shigusegubu-themes3

This commit is contained in:
Henry Jameson 2025-02-12 15:46:16 +02:00
commit fe5edb7db9
6 changed files with 48 additions and 31 deletions

View file

@ -762,12 +762,6 @@ option {
margin-left: 0.7em; margin-left: 0.7em;
margin-top: -1em; margin-top: -1em;
} }
&.-neutral {
background-color: var(--badgeNeutral);
color: white;
color: var(--badgeNeutralText, white);
}
} }
.alert { .alert {

View file

@ -2,6 +2,7 @@ export default {
name: 'ButtonUnstyled', name: 'ButtonUnstyled',
selector: '.button-unstyled', selector: '.button-unstyled',
notEditable: true, notEditable: true,
transparent: true,
states: { states: {
toggled: '.toggled', toggled: '.toggled',
disabled: ':disabled', disabled: ':disabled',

View file

@ -2,6 +2,7 @@ export default {
name: 'RichContent', name: 'RichContent',
selector: '.RichContent', selector: '.RichContent',
notEditable: true, notEditable: true,
transparent: true,
validInnerComponents: [ validInnerComponents: [
'Text', 'Text',
'FunText', 'FunText',

View file

@ -2,27 +2,6 @@ export default {
name: 'Root', name: 'Root',
selector: ':root', selector: ':root',
notEditable: true, notEditable: true,
validInnerComponents: [
// These are purely for --parent--text et such to work
'Text',
'Link',
'Border',
'Underlay',
'Modals',
'Popover',
'TopBar',
'Scrollbar',
'ScrollbarElement',
'MobileDrawer',
'Alert',
'Button' // mobile post button
],
validInnerComponentsLite: [
'Underlay',
'Scrollbar',
'ScrollbarElement'
],
defaultRules: [ defaultRules: [
{ {
directives: { directives: {

View file

@ -1,2 +0,0 @@
export const sampleRules = [
]

View file

@ -32,6 +32,7 @@ const components = {
Link: null, Link: null,
Icon: null, Icon: null,
Border: null, Border: null,
PanelHeader: null,
Panel: null, Panel: null,
Chat: null, Chat: null,
ChatMessage: null ChatMessage: null
@ -151,6 +152,25 @@ componentsContext.keys().forEach(key => {
} }
components[component.name] = component components[component.name] = component
}) })
Object.keys(components).forEach(key => {
if (key === 'Root') return
components.Root.validInnerComponents = components.Root.validInnerComponents || []
components.Root.validInnerComponents.push(key)
})
Object.keys(components).forEach(key => {
const component = components[key]
const { validInnerComponents = [] } = component
validInnerComponents.forEach(inner => {
const child = components[inner]
component.possibleChildren = component.possibleChildren || []
component.possibleChildren.push(child)
child.possibleParents = child.possibleParents || []
child.possibleParents.push(component)
})
})
const engineChecksum = sum(components) const engineChecksum = sum(components)
@ -244,7 +264,21 @@ export const init = ({
} }
const virtualComponents = new Set(Object.values(components).filter(c => c.virtual).map(c => c.name)) const virtualComponents = new Set(Object.values(components).filter(c => c.virtual).map(c => c.name))
const transparentComponents = new Set(Object.values(components).filter(c => c.transparent).map(c => c.name))
const nonEditableComponents = new Set(Object.values(components).filter(c => c.notEditable).map(c => c.name)) const nonEditableComponents = new Set(Object.values(components).filter(c => c.notEditable).map(c => c.name))
const extraCompileComponents = new Set([])
Object.values(components).forEach(component => {
const relevantRules = ruleset.filter(r => r.component === component.name)
const backgrounds = relevantRules.map(r => r.directives.background).filter(x => x)
const opacities = relevantRules.map(r => r.directives.opacity).filter(x => x)
if (
backgrounds.some(x => x.match(/--parent/)) ||
opacities.some(x => x != null && x < 1))
{
extraCompileComponents.add(component.name)
}
})
const processCombination = (combination) => { const processCombination = (combination) => {
try { try {
@ -473,11 +507,21 @@ export const init = ({
let validInnerComponents let validInnerComponents
if (editMode) { if (editMode) {
const temp = (component.validInnerComponentsLite || component.validInnerComponents || []) const temp = (component.validInnerComponentsLite || component.validInnerComponents || [])
validInnerComponents = temp.filter(c => virtualComponents.has(c) && !nonEditableComponents.has(c)) validInnerComponents = temp
.filter(c => virtualComponents.has(c) && !nonEditableComponents.has(c))
} else if (liteMode) { } else if (liteMode) {
validInnerComponents = (component.validInnerComponentsLite || component.validInnerComponents || []) validInnerComponents = (component.validInnerComponentsLite || component.validInnerComponents || [])
} else { } else if (component.name === 'Root') {
validInnerComponents = component.validInnerComponents || [] validInnerComponents = component.validInnerComponents || []
} else {
validInnerComponents = component
.validInnerComponents
?.filter(
c => virtualComponents.has(c)
|| transparentComponents.has(c)
|| extraCompileComponents.has(c)
)
|| []
} }
// Normalizing states and variants to always include "normal" // Normalizing states and variants to always include "normal"