turbo_boost-elements 0.0.13 → 0.0.15

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.
@@ -0,0 +1 @@
1
+ {"inputs":{"node_modules/@turbo-boost/commands/app/assets/builds/@turbo-boost/commands.js":{"bytes":11151,"imports":[],"format":"esm"},"node_modules/@turbo-boost/devtools/dist/@turbo-boost/devtools.js":{"bytes":19326,"imports":[],"format":"esm"},"app/javascript/elements/turbo_boost_element/index.js":{"bytes":844,"imports":[],"format":"esm"},"app/javascript/elements/toggle_elements/toggle_element/index.js":{"bytes":2193,"imports":[{"path":"app/javascript/elements/turbo_boost_element/index.js","kind":"import-statement","original":"../../turbo_boost_element"}],"format":"esm"},"app/javascript/elements/toggle_elements/target_element/index.js":{"bytes":3370,"imports":[{"path":"app/javascript/elements/toggle_elements/toggle_element/index.js","kind":"import-statement","original":"../toggle_element"}],"format":"esm"},"app/javascript/elements/toggle_elements/trigger_element/focus.js":{"bytes":1585,"imports":[],"format":"esm"},"app/javascript/elements/toggle_elements/trigger_element/index.js":{"bytes":7168,"imports":[{"path":"node_modules/@turbo-boost/devtools/dist/@turbo-boost/devtools.js","kind":"import-statement","original":"@turbo-boost/devtools"},{"path":"app/javascript/elements/toggle_elements/toggle_element/index.js","kind":"import-statement","original":"../toggle_element"},{"path":"app/javascript/elements/toggle_elements/trigger_element/focus.js","kind":"import-statement","original":"./focus"}],"format":"esm"},"app/javascript/elements/index.js":{"bytes":481,"imports":[{"path":"app/javascript/elements/turbo_boost_element/index.js","kind":"import-statement","original":"./turbo_boost_element"},{"path":"app/javascript/elements/toggle_elements/target_element/index.js","kind":"import-statement","original":"./toggle_elements/target_element"},{"path":"app/javascript/elements/toggle_elements/trigger_element/index.js","kind":"import-statement","original":"./toggle_elements/trigger_element"}],"format":"esm"},"app/javascript/index.js":{"bytes":244,"imports":[{"path":"node_modules/@turbo-boost/commands/app/assets/builds/@turbo-boost/commands.js","kind":"import-statement","original":"@turbo-boost/commands"},{"path":"node_modules/@turbo-boost/devtools/dist/@turbo-boost/devtools.js","kind":"import-statement","original":"@turbo-boost/devtools"},{"path":"app/javascript/elements/index.js","kind":"import-statement","original":"./elements"}],"format":"esm"}},"outputs":{"app/assets/builds/@turbo-boost/elements.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":92571},"app/assets/builds/@turbo-boost/elements.js":{"imports":[],"exports":["default"],"entryPoint":"app/javascript/index.js","inputs":{"node_modules/@turbo-boost/commands/app/assets/builds/@turbo-boost/commands.js":{"bytesInOutput":11085},"node_modules/@turbo-boost/devtools/dist/@turbo-boost/devtools.js":{"bytesInOutput":19262},"app/javascript/elements/turbo_boost_element/index.js":{"bytesInOutput":541},"app/javascript/elements/toggle_elements/toggle_element/index.js":{"bytesInOutput":1284},"app/javascript/elements/toggle_elements/target_element/index.js":{"bytesInOutput":2040},"app/javascript/elements/toggle_elements/trigger_element/focus.js":{"bytesInOutput":768},"app/javascript/elements/toggle_elements/trigger_element/index.js":{"bytesInOutput":4299},"app/javascript/elements/index.js":{"bytesInOutput":146},"app/javascript/index.js":{"bytesInOutput":124}},"bytes":39609}}}
@@ -1,7 +1,7 @@
1
1
  import ToggleElement from '../toggle_element'
2
2
 
3
3
  export default class ToggleTargetElement extends ToggleElement {
4
- connectedCallback () {
4
+ connectedCallback() {
5
5
  super.connectedCallback()
6
6
 
7
7
  this.mouseenterHandler = this.onMouseenter.bind(this)
@@ -23,7 +23,7 @@ export default class ToggleTargetElement extends ToggleElement {
23
23
  })
24
24
  }
25
25
 
26
- disconnectedCallback () {
26
+ disconnectedCallback() {
27
27
  this.removeEventListener('mouseenter', this.mouseenterHandler)
28
28
 
29
29
  this.collapseOn.forEach(entry => {
@@ -43,26 +43,26 @@ export default class ToggleTargetElement extends ToggleElement {
43
43
  // perhaps use a mechanic other than morph
44
44
 
45
45
  // TODO: implement cache (similar to Turbo Drive restoration visit)
46
- cacheHTML () {
46
+ cacheHTML() {
47
47
  // this.cachedHTML = this.innerHTML
48
48
  }
49
49
 
50
50
  // TODO: implement cache (similar to Turbo Drive restoration visit)
51
- renderCachedHTML () {
51
+ renderCachedHTML() {
52
52
  // if (!this.cachedHTML) return
53
53
  // this.innerHTML = this.cachedHTML
54
54
  }
55
55
 
56
- onMouseenter () {
56
+ onMouseenter() {
57
57
  clearTimeout(this.collapseTimeout)
58
58
  }
59
59
 
60
- collapse (delay = 250) {
60
+ collapse(delay = 250) {
61
61
  clearTimeout(this.collapseTimeout)
62
+ if (this.busy) return
62
63
  if (typeof delay !== 'number') delay = 250
63
64
 
64
- if (delay > 0)
65
- return (this.collapseTimeout = setTimeout(() => this.collapse(0), delay))
65
+ if (delay > 0) return (this.collapseTimeout = setTimeout(() => this.collapse(0), delay))
66
66
 
67
67
  this.innerHTML = ''
68
68
  try {
@@ -71,52 +71,60 @@ export default class ToggleTargetElement extends ToggleElement {
71
71
  } catch {}
72
72
  }
73
73
 
74
- collapseNow (event) {
74
+ collapseNow(event) {
75
75
  if (event.target.closest('turbo-boost-devtool-tooltip')) return
76
76
  this.collapse(0)
77
77
  }
78
78
 
79
- collapseMatches () {
79
+ collapseMatches() {
80
80
  document.querySelectorAll(this.collapseSelector).forEach(el => {
81
- if (el === this) return
81
+ if (el.id === this.id) return
82
82
  if (el.collapse) el.collapse(0)
83
83
  })
84
84
  }
85
85
 
86
- get collapseSelector () {
87
- return (
88
- this.triggerElement.collapseSelector ||
89
- this.getAttribute('collapse-selector')
90
- )
86
+ get collapseSelector() {
87
+ return this.triggerElement.collapseSelector || this.getAttribute('collapse-selector')
91
88
  }
92
89
 
93
- get focusSelector () {
90
+ get focusSelector() {
94
91
  return this.getAttribute('focus-selector')
95
92
  }
96
93
 
97
- get triggerElement () {
94
+ // the active trigger
95
+ get triggerElement() {
98
96
  return document.getElementById(this.labeledBy)
99
97
  }
100
98
 
101
- get labeledBy () {
99
+ // all triggers
100
+ get triggerElements() {
101
+ return document.querySelectorAll(`[aria-controls="${this.id}"]`)
102
+ }
103
+
104
+ // the dom id of the active trigger
105
+ get labeledBy() {
102
106
  return this.getAttribute('aria-labeledby')
103
107
  }
104
108
 
105
- set labeledBy (value) {
109
+ set labeledBy(value) {
106
110
  return this.setAttribute('aria-labeledby', value)
107
111
  }
108
112
 
109
- get collapseOn () {
113
+ get collapseOn() {
110
114
  const value = this.getAttribute('collapse-on')
111
115
  if (!value) return []
112
116
  return JSON.parse(value)
113
117
  }
114
118
 
115
- get expanded () {
116
- return this.triggerElement.expanded
119
+ get expanded() {
120
+ return this.triggerElement ? this.triggerElement.expanded : false
121
+ }
122
+
123
+ set expanded(value) {
124
+ this.triggerElements.forEach(el => (el.expanded = value))
117
125
  }
118
126
 
119
- set expanded (value) {
120
- return (this.triggerElement.expanded = value)
127
+ get busy() {
128
+ return this.triggerElement && this.triggerElement.busy
121
129
  }
122
130
  }
@@ -11,13 +11,13 @@ export const busyDelay = 100 // milliseconds - time to wait before showing busy
11
11
  export const busyDuration = 400 // milliseconds - minimum time that busy element is shown
12
12
 
13
13
  export default class ToggleElement extends TurboBoostElement {
14
- constructor () {
14
+ constructor() {
15
15
  super(html)
16
16
  }
17
17
 
18
18
  // TODO: Should we timeout after a theoretical max wait time?
19
19
  // The idea being that a server error occurred and the toggle failed.
20
- showBusyElement () {
20
+ showBusyElement() {
21
21
  clearTimeout(this.showBusyElementTimeout)
22
22
  clearTimeout(this.hideBusyElementTimeout)
23
23
 
@@ -30,7 +30,7 @@ export default class ToggleElement extends TurboBoostElement {
30
30
  }, busyDelay)
31
31
  }
32
32
 
33
- hideBusyElement () {
33
+ hideBusyElement() {
34
34
  clearTimeout(this.showBusyElementTimeout)
35
35
  clearTimeout(this.hideBusyElementTimeout)
36
36
 
@@ -46,25 +46,25 @@ export default class ToggleElement extends TurboBoostElement {
46
46
  }, delay)
47
47
  }
48
48
 
49
- get busyElement () {
49
+ get busyElement() {
50
50
  return this.querySelector(':scope > [slot="busy"]')
51
51
  }
52
52
 
53
- get busySlotElement () {
53
+ get busySlotElement() {
54
54
  return this.shadowRoot.querySelector('slot[name="busy"]')
55
55
  }
56
56
 
57
- get defaultSlotElement () {
57
+ get defaultSlotElement() {
58
58
  return this.shadowRoot.querySelector('slot:not([name])')
59
59
  }
60
60
 
61
61
  // indicates if an rpc call is active/busy
62
- get busy () {
62
+ get busy() {
63
63
  return this.getAttribute('busy') === 'true'
64
64
  }
65
65
 
66
66
  // indicates if an rpc call is active/busy
67
- set busy (value) {
67
+ set busy(value) {
68
68
  value = !!value
69
69
  if (this.busy === value) return
70
70
  this.setAttribute('busy', value)
@@ -72,12 +72,12 @@ export default class ToggleElement extends TurboBoostElement {
72
72
  else this.hideBusyElement()
73
73
  }
74
74
 
75
- get busyStartedAt () {
75
+ get busyStartedAt() {
76
76
  if (!this.dataset.busyStartedAt) return 0
77
77
  return Number(this.dataset.busyStartedAt)
78
78
  }
79
79
 
80
- set busyStartedAt (value) {
80
+ set busyStartedAt(value) {
81
81
  this.dataset.busyStartedAt = value
82
82
  }
83
83
  }
@@ -1,31 +1,18 @@
1
1
  let focusTimeout
2
2
 
3
- function deactivateTrixAttributes (editor) {
4
- const attributes = [
5
- 'bold',
6
- 'bullet',
7
- 'code',
8
- 'heading1',
9
- 'href',
10
- 'italic',
11
- 'number',
12
- 'quote',
13
- 'strike'
14
- ]
3
+ function deactivateTrixAttributes(editor) {
4
+ const attributes = ['bold', 'bullet', 'code', 'heading1', 'href', 'italic', 'number', 'quote', 'strike']
15
5
  attributes.forEach(name => editor.deactivateAttribute(name))
16
6
  }
17
7
 
18
- function focusTrixEditorElement (element) {
8
+ function focusTrixEditorElement(element) {
19
9
  if (element.value.length === 0) return
20
10
 
21
11
  const editor = element.editor
22
12
 
23
13
  // move cursor to the end
24
14
  let lastRange = []
25
- while (
26
- lastRange[0] !== editor.getSelectedRange()[0] &&
27
- lastRange[1] !== editor.getSelectedRange()[1]
28
- ) {
15
+ while (lastRange[0] !== editor.getSelectedRange()[0] && lastRange[1] !== editor.getSelectedRange()[1]) {
29
16
  lastRange = editor.getSelectedRange()
30
17
  editor.moveCursorInDirection('forward')
31
18
  }
@@ -39,13 +26,10 @@ function focusTrixEditorElement (element) {
39
26
  deactivateTrixAttributes(editor)
40
27
 
41
28
  // move cursor to end and collapse the selection
42
- editor.setSelectedRange([
43
- editor.getSelectedRange()[1],
44
- editor.getSelectedRange()[1]
45
- ])
29
+ editor.setSelectedRange([editor.getSelectedRange()[1], editor.getSelectedRange()[1]])
46
30
  }
47
31
 
48
- function debouncedFocus (element) {
32
+ function debouncedFocus(element) {
49
33
  clearTimeout(focusTimeout)
50
34
 
51
35
  focusTimeout = setTimeout(() => {
@@ -1,11 +1,20 @@
1
+ import { Devtool, decorateElementWithDevtool } from '@turbo-boost/devtools'
2
+
1
3
  import ToggleElement, { busyDuration } from '../toggle_element'
2
- import Devtool from './devtool'
3
4
  import focus from './focus'
4
5
 
6
+ document.addEventListener('turbo-boost:devtools-start', () => Devtool.register('toggle', 'toggles'))
7
+
5
8
  let currentFocusSelector
6
9
 
7
10
  export default class ToggleTriggerElement extends ToggleElement {
8
- connectedCallback () {
11
+ constructor() {
12
+ super()
13
+
14
+ decorateElementWithDevtool(this, 'toggle', 'toggles')
15
+ }
16
+
17
+ connectedCallback() {
9
18
  super.connectedCallback()
10
19
 
11
20
  const { start: commandStartEvent } = TurboBoost.Commands.events
@@ -24,7 +33,7 @@ export default class ToggleTriggerElement extends ToggleElement {
24
33
  this.initializeDevtool()
25
34
  }
26
35
 
27
- disconnectedCallback () {
36
+ disconnectedCallback() {
28
37
  // delay cleanup because the trigger may have been morphed out of the DOM,
29
38
  // but it's needed to apply behavior like focus etc...
30
39
  setTimeout(() => {
@@ -34,47 +43,20 @@ export default class ToggleTriggerElement extends ToggleElement {
34
43
  const { before: beforeInvokeEvent } = TurboBoost.Streams.invokeEvents
35
44
  removeEventListener(beforeInvokeEvent, this.beforeInvokeHandler)
36
45
 
37
- this.devtool.hide({ active: false })
38
- this.devtool.unregisterEventListeners()
39
- delete this.devtool
46
+ this.removeDevtool()
40
47
  }, 1000)
41
48
  }
42
49
 
43
- initializeDevtool () {
44
- const mouseenter = () => this.devtool.show()
45
-
46
- addEventListener('turbo-boost:devtools-start', () => {
47
- this.devtool = new Devtool(this)
48
- this.addEventListener('mouseenter', mouseenter)
49
- })
50
-
51
- addEventListener('turbo-boost:devtools-stop', () => {
52
- this.removeEventListener('mouseenter', mouseenter)
53
- this.devtool.hide({ active: false })
54
- this.devtool.unregisterEventListeners()
55
- delete this.devtool
56
- })
57
-
58
- this.dispatchEvent(
59
- new CustomEvent('turbo-boost:devtools-connect', { bubbles: true })
60
- )
61
- }
62
-
63
- hideDevtool () {
64
- if (this.devtool) this.devtool.hide({ active: false })
65
- }
66
-
67
- onCommandStart (event) {
50
+ onCommandStart(event) {
68
51
  currentFocusSelector = this.focusSelector
69
52
  this.targetElement.labeledBy = this.id
70
53
  this.targetElement.collapseMatches()
71
- this.targetElement.busy = true
72
54
  this.busy = true
73
55
  // TODO: implement cache - this.targetElement.renderCachedHTML()
74
56
  }
75
57
 
76
58
  // runs before an invoke turbo stream is executed
77
- onBeforeInvoke (event) {
59
+ onBeforeInvoke(event) {
78
60
  // return early if we're not the element responsible for this invoke
79
61
  if (event.detail.method !== 'morph') return
80
62
  if (event.target.id !== this.morphs) return
@@ -92,19 +74,15 @@ export default class ToggleTriggerElement extends ToggleElement {
92
74
  // runs before the morph is executed
93
75
  setTimeout(() => {
94
76
  this.busy = false
95
- this.targetElement.busy = false
96
- this.morphToggleElements.forEach(el => (el.busy = false))
77
+ this.morphToggleTriggerElements.forEach(el => (el.busy = false))
97
78
  }, delay - 10)
98
79
 
99
80
  // runs after the morph is executed
100
- setTimeout(
101
- () => focus(this.targetElement.querySelector(currentFocusSelector)),
102
- delay + 100
103
- )
81
+ setTimeout(() => focus(this.targetElement.querySelector(currentFocusSelector)), delay + 100)
104
82
  }
105
83
 
106
84
  // a list of views shared between the trigger and target
107
- get sharedViews () {
85
+ get sharedViews() {
108
86
  if (!this.targetElement) return []
109
87
  if (!this.targetElement.viewStack) return []
110
88
  const reducer = (memo, view) => {
@@ -115,71 +93,125 @@ export default class ToggleTriggerElement extends ToggleElement {
115
93
  }
116
94
 
117
95
  // the partial to render
118
- get renders () {
96
+ get renders() {
119
97
  return this.getAttribute('renders')
120
98
  }
121
99
 
122
100
  // the renderered partial's top wrapping dom_id
123
- get morphs () {
101
+ get morphs() {
124
102
  return this.getAttribute('morphs')
125
103
  }
126
104
 
127
- // the morph element
128
- get morphElement () {
129
- if (!this.morphs) return null
130
- return document.getElementById(this.morphs)
131
- }
132
-
133
105
  // all toggle elements contained by the `morphElement`
134
- get morphToggleElements () {
135
- return Array.from(
136
- this.morphElement.querySelectorAll(
137
- 'turbo-boost-toggle-trigger,turbo-boost-toggle-target'
138
- )
139
- )
106
+ get morphToggleTriggerElements() {
107
+ return Array.from(this.morphElement.querySelectorAll('turbo-boost-toggle-trigger'))
140
108
  }
141
109
 
142
110
  // the target's dom_id
143
- get controls () {
111
+ get controls() {
144
112
  return this.getAttribute('aria-controls')
145
113
  }
146
114
 
147
- // the target element
148
- get targetElement () {
149
- if (!this.controls) return null
150
- return document.getElementById(this.controls)
151
- }
152
-
153
- get collapseSelector () {
115
+ get collapseSelector() {
154
116
  return this.getAttribute('collapse-selector')
155
117
  }
156
118
 
157
- get focusSelector () {
158
- return (
159
- this.getAttribute('focus-selector') || this.targetElement.focusSelector
160
- )
119
+ get focusSelector() {
120
+ return this.getAttribute('focus-selector') || this.targetElement.focusSelector
161
121
  }
162
122
 
163
123
  // indicates if the toggle state should be remembered across requests
164
- get remember () {
124
+ get remember() {
165
125
  return this.getAttribute('remember') === 'true'
166
126
  }
167
127
 
168
- set remember (value) {
128
+ set remember(value) {
169
129
  return this.setAttribute('remember', !!value)
170
130
  }
171
131
 
172
132
  // indicates if the target is expanded
173
- get expanded () {
133
+ get expanded() {
174
134
  return this.getAttribute('aria-expanded') === 'true'
175
135
  }
176
136
 
177
- set expanded (value) {
137
+ set expanded(value) {
178
138
  this.setAttribute('aria-expanded', !!value)
179
139
  }
180
140
 
181
141
  // indicates if the target is expanded
182
- get collapsed () {
142
+ get collapsed() {
183
143
  return !this.expanded
184
144
  }
145
+
146
+ // ------ DevToolDelegate ------
147
+ get command() {
148
+ return this.dataset.turboCommand
149
+ }
150
+
151
+ get renderingLineLabel() {
152
+ return 'renders & morphs'
153
+ }
154
+
155
+ // the morph element
156
+ get morphElement() {
157
+ if (!this.morphs) return null
158
+ return document.getElementById(this.morphs)
159
+ }
160
+
161
+ // the target element
162
+ get targetElement() {
163
+ if (!this.controls) return null
164
+ return document.getElementById(this.controls)
165
+ }
166
+
167
+ get triggerTooltipData() {
168
+ let content = this.triggerElement.viewStack
169
+ .reverse()
170
+ .map((view, index) => {
171
+ return this.triggerElement.sharedViews.includes(view)
172
+ ? `<div slot="content">${index + 1}. ${view}</div>`
173
+ : `<div slot="content-bottom">${index + 1}. ${view}</div>`
174
+ }, this)
175
+ .join('')
176
+
177
+ return {
178
+ subtitle: `
179
+ <b>id</b>: ${this.triggerElement.id}<br>
180
+ <b>aria-controls</b>: ${this.triggerElement.controls}<br>
181
+ <b>aria-expanded</b>: ${this.triggerElement.expanded}<br>
182
+ <b>remember</b>: ${this.triggerElement.remember}<br>
183
+ `,
184
+ content: `
185
+ <div slot="content-top">
186
+ <svg xmlns="http://www.w3.org/2000/svg" style="display:inline-block;" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
187
+ <b>View Stack</b>
188
+ </div>
189
+ ${content}
190
+ `
191
+ }
192
+ }
193
+
194
+ get targetTooltipData() {
195
+ let content = this.targetElement.viewStack
196
+ .reverse()
197
+ .map((view, index) => {
198
+ return this.triggerElement.sharedViews.includes(view)
199
+ ? `<div slot="content">${index + 1}. ${view}</div>`
200
+ : `<div slot="content-bottom">${index + 1}. ${view}</div>`
201
+ }, this)
202
+ .join('')
203
+
204
+ return {
205
+ subtitle: `<b>id</b>: ${this.targetElement.id}<br>
206
+ <b>aria-labeled-by</b>: ${this.targetElement.labeledBy}<br>
207
+ `,
208
+ content: `
209
+ <div slot="content-top">
210
+ <svg xmlns="http://www.w3.org/2000/svg" style="display:inline-block;" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
211
+ <b>View Stack</b>
212
+ </div>
213
+ ${content}
214
+ `
215
+ }
216
+ }
185
217
  }
@@ -1,37 +1,34 @@
1
1
  export default class TurboBoostElement extends HTMLElement {
2
- constructor (html) {
2
+ constructor(html) {
3
3
  super()
4
4
  this.devtool = 'unknown'
5
5
  this.attachShadow({ mode: 'open' })
6
6
  this.shadowRoot.innerHTML = html || '<slot></slot>'
7
7
  }
8
8
 
9
- connectedCallback () {
9
+ connectedCallback() {
10
10
  this.ensureId()
11
11
  }
12
12
 
13
- ensureId () {
13
+ ensureId() {
14
14
  if (this.id.trim().length) return
15
15
  this.id = `${this.tagName}-${this.uuidv4()}`.toLowerCase()
16
16
  }
17
17
 
18
18
  // SEE: https://stackoverflow.com/questions/105034/how-do-i-create-a-guid-uuid
19
- uuidv4 () {
19
+ uuidv4() {
20
20
  return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
21
- (
22
- c ^
23
- (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))
24
- ).toString(16)
21
+ (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
25
22
  )
26
23
  }
27
24
 
28
- get viewStack () {
25
+ get viewStack() {
29
26
  const value = this.getAttribute('view-stack')
30
27
  if (!value) return []
31
28
  return JSON.parse(value)
32
29
  }
33
30
 
34
- get partial () {
31
+ get partial() {
35
32
  return this.viewStack[0]
36
33
  }
37
34
  }
@@ -1,6 +1,6 @@
1
1
  import '@turbo-boost/commands'
2
+ import devtools from '@turbo-boost/devtools'
2
3
  import './elements'
3
- import devtools from './devtools'
4
4
 
5
5
  self.TurboBoost = self.TurboBoost || {}
6
6
  self.TurboBoost.devtools = devtools
@@ -2,6 +2,6 @@
2
2
 
3
3
  module TurboBoost
4
4
  module Elements
5
- VERSION = "0.0.13"
5
+ VERSION = "0.0.15"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo_boost-elements
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nate Hopkins (hopsoft)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-08 00:00:00.000000000 Z
11
+ date: 2023-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -132,26 +132,20 @@ extra_rdoc_files: []
132
132
  files:
133
133
  - MIT-LICENSE
134
134
  - README.md
135
+ - app/assets/builds/@turbo-boost/commands.metafile.json
135
136
  - app/assets/builds/@turbo-boost/elements.js
136
137
  - app/assets/builds/@turbo-boost/elements.js.map
138
+ - app/assets/builds/@turbo-boost/elements.metafile.json
137
139
  - app/commands/turbo_boost/elements/application_command.rb
138
140
  - app/commands/turbo_boost/elements/toggle_command.rb
139
141
  - app/helpers/turbo_boost/elements/application_helper.rb
140
- - app/javascript/devtools/dependencies.js
141
- - app/javascript/devtools/elements/devtool_element.js
142
- - app/javascript/devtools/elements/supervisor_element.js
143
- - app/javascript/devtools/elements/tooltip_element.js
144
- - app/javascript/devtools/index.js
145
- - app/javascript/devtools/supervisor.js
146
142
  - app/javascript/elements/index.js
147
143
  - app/javascript/elements/toggle_elements/target_element/index.js
148
144
  - app/javascript/elements/toggle_elements/toggle_element/index.js
149
- - app/javascript/elements/toggle_elements/trigger_element/devtool.js
150
145
  - app/javascript/elements/toggle_elements/trigger_element/focus.js
151
146
  - app/javascript/elements/toggle_elements/trigger_element/index.js
152
147
  - app/javascript/elements/turbo_boost_element/index.js
153
148
  - app/javascript/index.js
154
- - app/javascript/utils/dom.js
155
149
  - lib/turbo_boost/elements.rb
156
150
  - lib/turbo_boost/elements/engine.rb
157
151
  - lib/turbo_boost/elements/tag_builders.rb
@@ -180,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
174
  - !ruby/object:Gem::Version
181
175
  version: '0'
182
176
  requirements: []
183
- rubygems_version: 3.3.7
177
+ rubygems_version: 3.4.10
184
178
  signing_key:
185
179
  specification_version: 4
186
180
  summary: Pre-built easy to use reactive TurboBoost elements for Rails/Hotwire apps.