bullet_train-fields 1.30.1 → 1.31.0
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10baa4940e255682cde49f971cf31ce5eaa53b05e56ef712ed69d5ca829fef55
|
4
|
+
data.tar.gz: 34385f1e90beb26274e9b83e424e3e6d318c6a67a59d641b3ecd871da045c49e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34d98999defc16059e67e17d66ccd0ff5c52a5f1bd4bbfb7c883c52622a31227126df4b8f4a240c0041507ccc7da2d5ba188849bc4c49aba62436d98a1dd74e7
|
7
|
+
data.tar.gz: c1e44977dbef4e653249ab9ccae9568222cbd5dc436391292167f6dd289f9b51b19456b628bef8c146bbcfec7bd17e6c00cdcaac9f8a2e657481dd12c05a85d1
|
@@ -27,12 +27,10 @@ export default class extends Controller {
|
|
27
27
|
|
28
28
|
connect() {
|
29
29
|
this.loadEditorFramework()
|
30
|
-
this.watchColorScheme()
|
31
30
|
}
|
32
31
|
|
33
32
|
disconnect() {
|
34
33
|
this.teardownCodeEditor()
|
35
|
-
this.unwatchColorScheme()
|
36
34
|
}
|
37
35
|
|
38
36
|
initCodeEditor() {
|
@@ -144,39 +142,17 @@ export default class extends Controller {
|
|
144
142
|
return window.monacoInstance
|
145
143
|
}
|
146
144
|
|
147
|
-
|
148
|
-
this.
|
149
|
-
'(prefers-color-scheme: dark)'
|
150
|
-
)
|
151
|
-
this.userPrefersDarkSchemeQuery.addEventListener(
|
152
|
-
'change',
|
153
|
-
this.updateTheme.bind(this)
|
154
|
-
)
|
155
|
-
}
|
156
|
-
|
157
|
-
unwatchColorScheme() {
|
158
|
-
if (this.userPrefersDarkSchemeQuery === undefined) return
|
159
|
-
this.userPrefersDarkSchemeQuery.removeEventListener(
|
160
|
-
'change',
|
161
|
-
this.updateTheme.bind(this)
|
162
|
-
)
|
163
|
-
this.userPrefersDarkSchemeQuery = undefined
|
145
|
+
updateComponentTheme() {
|
146
|
+
this.codeEditor?.updateOptions({ theme: this.theme })
|
164
147
|
}
|
165
148
|
|
166
|
-
|
167
|
-
|
149
|
+
get colorSchemeIsDark() {
|
150
|
+
return window?.colorScheme?.current === 'dark'
|
168
151
|
}
|
169
152
|
|
170
153
|
get theme() {
|
171
|
-
return this.
|
154
|
+
return this.colorSchemeIsDark
|
172
155
|
? this.themeDarkValue
|
173
156
|
: this.themeLightValue
|
174
157
|
}
|
175
|
-
|
176
|
-
get userPrefersDarkScheme() {
|
177
|
-
if (this.userPrefersDarkSchemeQuery === undefined) {
|
178
|
-
return false
|
179
|
-
}
|
180
|
-
return this.userPrefersDarkSchemeQuery.matches
|
181
|
-
}
|
182
158
|
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { Controller } from "@hotwired/stimulus";
|
2
|
+
|
3
|
+
export default class extends Controller {
|
4
|
+
|
5
|
+
connect() {
|
6
|
+
this.updateRadioButtons()
|
7
|
+
if (window.colorScheme === undefined) {
|
8
|
+
this.hideOptions()
|
9
|
+
console.warn(`window.colorScheme is not defined in the head. Update your local theme's light/layouts/_head.html.erb file.`)
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
// this saves us from manually adding field target to options in the partial
|
14
|
+
get radioButtons() {
|
15
|
+
return Array.from(this.element.querySelectorAll('input[type="radio"]'))
|
16
|
+
}
|
17
|
+
|
18
|
+
updateRadioButtons() {
|
19
|
+
if (!window?.colorScheme) { return }
|
20
|
+
const preference = window?.colorScheme?.preference
|
21
|
+
const button = this.radioButtonWithValue(preference)
|
22
|
+
if (button) {
|
23
|
+
button.checked = true
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
updateColorSchemePreference() {
|
28
|
+
if (!window?.colorScheme) { return }
|
29
|
+
window.colorScheme.preference = this.radioButtons.find(button => button.checked)?.value
|
30
|
+
}
|
31
|
+
|
32
|
+
hideOptions() {
|
33
|
+
this.element.hidden = true
|
34
|
+
}
|
35
|
+
|
36
|
+
radioButtonWithValue(value) {
|
37
|
+
return this.radioButtons.find(button => button.value === value)
|
38
|
+
}
|
39
|
+
}
|
@@ -14,6 +14,7 @@ import SuperSelectController from './fields/super_select_controller'
|
|
14
14
|
import DependableController from './dependable_controller'
|
15
15
|
import DependentFieldsFrameController from './dependent_fields_frame_controller'
|
16
16
|
import CodeEditorController from './fields/code_editor_controller'
|
17
|
+
import ColorSchemePreferenceController from './fields/color_scheme_preference_controller'
|
17
18
|
|
18
19
|
export const controllerDefinitions = [
|
19
20
|
[FieldController, 'fields/field_controller.js'],
|
@@ -30,6 +31,7 @@ export const controllerDefinitions = [
|
|
30
31
|
[DependableController, 'dependable_controller.js'],
|
31
32
|
[DependentFieldsFrameController, 'dependent_fields_frame_controller.js'],
|
32
33
|
[CodeEditorController, 'fields/code_editor_controller.js'],
|
34
|
+
[ColorSchemePreferenceController, 'fields/color_scheme_preference_controller.js'],
|
33
35
|
].map(function(d) {
|
34
36
|
const key = d[1]
|
35
37
|
const controller = d[0]
|
@@ -54,4 +56,5 @@ export {
|
|
54
56
|
DependableController,
|
55
57
|
DependentFieldsFrameController,
|
56
58
|
CodeEditorController,
|
59
|
+
ColorSchemePreferenceController
|
57
60
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet_train-fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.31.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Culver
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- app/javascript/controllers/fields/cloudinary_image_controller.js
|
128
128
|
- app/javascript/controllers/fields/code_editor_controller.js
|
129
129
|
- app/javascript/controllers/fields/color_picker_controller.js
|
130
|
+
- app/javascript/controllers/fields/color_scheme_preference_controller.js
|
130
131
|
- app/javascript/controllers/fields/date_controller.js
|
131
132
|
- app/javascript/controllers/fields/emoji_picker_controller.js
|
132
133
|
- app/javascript/controllers/fields/field_controller.js
|