smbls 0.8.37 → 0.8.40

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/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "UI Library built on Scratch and DOMQL",
4
4
  "private": false,
5
5
  "author": "symbo.ls",
6
- "version": "0.8.37",
6
+ "version": "0.8.40",
7
7
  "repository": "https://github.com/symbo-ls/smbls",
8
8
  "main": "src/index.js",
9
9
  "files": [
package/src/Link.js CHANGED
@@ -1,10 +1,8 @@
1
1
  'use strict'
2
2
 
3
3
  import { exec } from '@domql/utils'
4
- import { Shape, Text } from '.'
5
4
 
6
5
  export const Link = {
7
- proto: [Shape, Text],
8
6
  tag: 'a',
9
7
  props: {
10
8
  // theme: 'link',
package/src/Media.js CHANGED
@@ -47,13 +47,15 @@ const convertPropsToClass = (props, result, element) => {
47
47
  const applyMediaProps = (key, props, result, element) => {
48
48
  const mediaName = CONFIG_MEDIA[key.slice(1)]
49
49
  const generatedClass = convertPropsToClass(props, result, element)
50
+
50
51
  const rootState = element.__root ? element.__root.state : element.state
51
52
  const { globalTheme } = rootState
52
53
  const name = key.slice(1)
54
+ const isTheme = ['dark', 'light'].includes(name)
53
55
  const matchesGlobal = name === globalTheme
54
56
 
55
- if (globalTheme) {
56
- if (matchesGlobal) merge(result, generatedClass)
57
+ if (globalTheme && isTheme) {
58
+ if (matchesGlobal) return merge(result, generatedClass)
57
59
  return
58
60
  }
59
61
 
@@ -70,7 +72,8 @@ const applySelectorProps = (key, props, result, element) => {
70
72
 
71
73
  const applyCaseProps = (key, props, result, element) => {
72
74
  const caseKey = key.slice(1)
73
- if (!CONFIG_CASES[caseKey]) return
75
+ const isPropTrue = element.props[caseKey]
76
+ if (!CONFIG_CASES[caseKey] && !isPropTrue) return
74
77
  return merge(result, convertPropsToClass(props, result, element))
75
78
  }
76
79
 
@@ -81,6 +84,8 @@ const applyConditionalCaseProps = (key, props, result, element) => {
81
84
  return merge(result, convertPropsToClass(props, result, element))
82
85
  }
83
86
 
87
+ const applyTrueProps = (props, result, element) => merge(result, convertPropsToClass(props, result, element))
88
+
84
89
  const beforeClassAssign = (element, s) => {
85
90
  const { props, class: className } = element
86
91
 
@@ -115,27 +120,14 @@ export const initUpdate = element => {
115
120
  const setter = keySetters[key.slice(0, 1)]
116
121
  if (key === 'theme') {
117
122
  props.update({ themeModifier: globalTheme }, { preventRecursive: true, ignoreInitUpdate: true })
118
- }
123
+ } else if (key === 'true') applyTrueProps(props[key], CLASS_NAMES, element)
124
+
119
125
  if (setter) setter(key, props[key], CLASS_NAMES, element)
120
126
  }
121
127
 
122
128
  if (Object.keys(CLASS_NAMES.media).length) className.media = CLASS_NAMES.media
123
129
  className.selector = CLASS_NAMES.selector
124
130
  className.case = CLASS_NAMES.case
125
-
126
- // for (const screen in props) {
127
- // if (screen.slice(0, 1) === '@') {
128
- // const mediaName = screen.slice(1)
129
- // const mediaKey = `@media screen and ${CONFIG_MEDIA[mediaName]}`
130
- // if (mediaName === 'dark' || mediaName === 'light') {
131
- // const { MEDIA_FORCE } = className
132
- // if (!MEDIA_FORCE) className.media = {}
133
- // if (globalTheme === mediaName) {
134
- // className.MEDIA_FORCED = className.MEDIA[mediaKey]
135
- // } else className.MEDIA_FORCED = {}
136
- // }
137
- // }
138
- // }
139
131
  }
140
132
 
141
133
  export const Responsive = {