formatic 0.2.3 → 0.2.4
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 +4 -4
- data/app/assets/javascript/declarations/date.d.ts +9 -0
- data/app/assets/javascript/declarations/file.d.ts +14 -0
- data/app/assets/javascript/declarations/select.d.ts +15 -0
- data/app/assets/javascript/declarations/setup.d.ts +3 -0
- data/app/assets/javascript/declarations/stepper.d.ts +12 -0
- data/app/assets/javascript/declarations/string.d.ts +14 -0
- data/app/assets/javascript/declarations/textarea.d.ts +15 -0
- data/app/assets/javascript/declarations/toggle.d.ts +8 -0
- data/app/assets/javascript/formatic/date.js +30 -0
- data/app/assets/javascript/formatic/date.js.map +1 -0
- data/app/assets/javascript/formatic/file.js +83 -0
- data/app/assets/javascript/formatic/file.js.map +1 -0
- data/app/assets/javascript/formatic/select.js +81 -0
- data/app/assets/javascript/formatic/select.js.map +1 -0
- data/app/assets/javascript/formatic/setup.js +42 -0
- data/app/assets/javascript/formatic/setup.js.map +1 -0
- data/app/assets/javascript/formatic/stepper.js +67 -0
- data/app/assets/javascript/formatic/stepper.js.map +1 -0
- data/app/assets/javascript/formatic/string.js +71 -0
- data/app/assets/javascript/formatic/string.js.map +1 -0
- data/app/assets/javascript/formatic/textarea.js +81 -0
- data/app/assets/javascript/formatic/textarea.js.map +1 -0
- data/app/assets/javascript/formatic/toggle.js +63 -0
- data/app/assets/javascript/formatic/toggle.js.map +1 -0
- data/app/assets/javascript/src/date.ts +41 -0
- data/app/assets/javascript/src/file.ts +101 -0
- data/app/assets/javascript/src/select.ts +101 -0
- data/app/assets/javascript/src/setup.js +44 -0
- data/app/assets/javascript/src/stepper.ts +80 -0
- data/app/assets/javascript/src/string.ts +89 -0
- data/app/assets/javascript/src/textarea.ts +101 -0
- data/app/assets/javascript/src/toggle.ts +76 -0
- data/app/assets/stylesheets/formatic/components/checklist.css +1 -0
- data/app/assets/stylesheets/formatic/components/checklist.css.map +1 -0
- data/app/assets/stylesheets/formatic/components/date.css +17 -0
- data/app/assets/stylesheets/formatic/components/date.sass +2 -2
- data/app/assets/stylesheets/formatic/components/select.css +17 -0
- data/app/assets/stylesheets/formatic/components/stepper.css +17 -0
- data/app/assets/stylesheets/formatic/components/string.css +17 -0
- data/app/assets/stylesheets/formatic/components/textarea.css +17 -0
- data/app/assets/stylesheets/formatic/components/time.css +17 -0
- data/app/assets/stylesheets/formatic/components/toggle.css +17 -0
- data/app/assets/stylesheets/formatic/components/wrapper.css +17 -0
- data/app/assets/stylesheets/formatic/formatic.css +450 -0
- data/app/assets/stylesheets/formatic/formatic.css.map +1 -0
- data/app/assets/stylesheets/formatic/generics/flip.css +1 -0
- data/app/assets/stylesheets/formatic/generics/flip.css.map +1 -0
- data/app/assets/stylesheets/formatic/scopes/form.css +17 -0
- data/app/assets/stylesheets/formatic/utilities/container.css +1 -0
- data/app/assets/stylesheets/formatic/utilities/container.css.map +1 -0
- data/app/assets/stylesheets/formatic/vendor.css +1107 -0
- data/app/assets/stylesheets/formatic/vendor.css.map +1 -0
- data/app/assets/stylesheets/formatic.css +18 -0
- data/app/assets/stylesheets/formatic.sass +17 -0
- data/app/assets/stylesheets/vendor.css +5 -0
- data/app/assets/stylesheets/vendor.css.map +1 -0
- data/app/assets/stylesheets/vendor.sass +1 -0
- data/app/components/formatic/base.rb +4 -1
- data/app/components/formatic/date.rb +1 -1
- data/app/components/formatic/file.rb +21 -0
- data/app/components/formatic/files.rb +8 -0
- data/app/components/formatic/select.rb +1 -1
- data/app/components/formatic/time.rb +3 -3
- data/config/importmap.rb +11 -0
- data/lib/formatic/choices/options.rb +1 -1
- data/lib/formatic/choices/records.rb +1 -1
- data/lib/formatic/engine.rb +12 -0
- data/lib/formatic/version.rb +1 -1
- data/lib/formatic/wrappers/required.rb +1 -1
- data/lib/formatic.rb +2 -1
- metadata +77 -17
- data/app/assets/javascript/formatic/components/date.ts +0 -54
- data/app/assets/javascript/formatic/components/select.ts +0 -113
- data/app/assets/javascript/formatic/components/stepper.ts +0 -89
- data/app/assets/javascript/formatic/components/string.ts +0 -103
- data/app/assets/javascript/formatic/components/textarea.ts +0 -112
- data/app/assets/javascript/formatic/components/toggle.ts +0 -89
- data/app/assets/javascript/formatic.js +0 -446
- data/app/assets/javascript/formatic.js.map +0 -1
- data/app/assets/stylesheets/formatic/index.sass +0 -17
- data/app/assets/stylesheets/formatic/package.json +0 -5
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export class Toggle {
|
|
2
|
+
|
|
3
|
+
private el: HTMLElement
|
|
4
|
+
|
|
5
|
+
constructor(el: HTMLElement) {
|
|
6
|
+
this.el = el
|
|
7
|
+
this.setupBindings()
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
private setupBindings() {
|
|
11
|
+
this.checkbox.addEventListener('click', (event) => {
|
|
12
|
+
event.preventDefault()
|
|
13
|
+
const box = <HTMLInputElement>event.target
|
|
14
|
+
box.checked ? this.activate(box) : this.deactivate(box)
|
|
15
|
+
})
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
private activate(box: HTMLInputElement) {
|
|
19
|
+
const form = box.closest<HTMLFormElement>('form')
|
|
20
|
+
const data = new FormData(form)
|
|
21
|
+
data.set('_method', 'patch')
|
|
22
|
+
|
|
23
|
+
fetch(form.action, {
|
|
24
|
+
method: 'POST',
|
|
25
|
+
headers: { 'Accept': 'text/javascript' },
|
|
26
|
+
body: data
|
|
27
|
+
})
|
|
28
|
+
.then(response => {
|
|
29
|
+
// For accurate user feedback, we make sure this is not an accidental 200.
|
|
30
|
+
// Your controller needs to respond with 201 on create/update.
|
|
31
|
+
if (response.status == 201) {
|
|
32
|
+
console.debug('Activation confirmed')
|
|
33
|
+
box.checked = true
|
|
34
|
+
} else {
|
|
35
|
+
console.debug('Activation not confirmed')
|
|
36
|
+
console.log("Activation denied")
|
|
37
|
+
}
|
|
38
|
+
}).catch(err => {
|
|
39
|
+
console.warn(err)
|
|
40
|
+
console.debug('Failed badly to activate')
|
|
41
|
+
})
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private deactivate(box: HTMLInputElement) {
|
|
45
|
+
const form = box.closest<HTMLFormElement>('form')
|
|
46
|
+
const data = new FormData(form)
|
|
47
|
+
data.set('_method', 'delete')
|
|
48
|
+
|
|
49
|
+
fetch(form.action, {
|
|
50
|
+
method: 'POST',
|
|
51
|
+
headers: { 'Accept': 'text/javascript' },
|
|
52
|
+
body: data
|
|
53
|
+
})
|
|
54
|
+
.then(response => {
|
|
55
|
+
// Your controller needs to respond with 204 on destroy.
|
|
56
|
+
if (response.status == 204) {
|
|
57
|
+
console.debug('Deactivation confirmed')
|
|
58
|
+
box.checked = false
|
|
59
|
+
} else {
|
|
60
|
+
console.debug('Deactivation not confirmed')
|
|
61
|
+
console.log("Deactivation denied")
|
|
62
|
+
}
|
|
63
|
+
}).catch(err => {
|
|
64
|
+
console.warn(err)
|
|
65
|
+
console.debug('Failed badly to deactivate')
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ------------
|
|
70
|
+
// DOM Elements
|
|
71
|
+
// ------------
|
|
72
|
+
|
|
73
|
+
private get checkbox() {
|
|
74
|
+
return this.el.querySelector<HTMLInputElement>('input[type="checkbox"]')
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.c-formatic-checklist{display:grid;grid-row-gap:.4em}/*# sourceMappingURL=checklist.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["file:///Users/orange/Code/2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/checklist.sass"],"names":[],"mappings":"AAAA,sBACE,aACA","file":"checklist.css","sourcesContent":[".c-formatic-checklist\n display: grid\n grid-row-gap: 0.4em\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 4 | @use "formatic/settings/colors"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/date.sass 4:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 4 \2502 @use \"formatic/settings/colors\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/date.sass 4:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
justify-content: center
|
|
37
37
|
color: colors.$black
|
|
38
38
|
+spacing.margin-right--smaller
|
|
39
|
-
+spacing.padding
|
|
39
|
+
+spacing.padding--tiny
|
|
40
40
|
|
|
41
41
|
&__clear
|
|
42
42
|
+font-size.large
|
|
43
|
-
+spacing.padding
|
|
43
|
+
+spacing.padding--small
|
|
44
44
|
|
|
45
45
|
&__calendar-day-number
|
|
46
46
|
+font-size.default
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 1 | @use "formatic/settings/colors"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/select.sass 1:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 1 \2502 @use \"formatic/settings/colors\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/select.sass 1:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 3 | @use "formatic/settings/colors"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/stepper.sass 3:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 3 \2502 @use \"formatic/settings/colors\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/stepper.sass 3:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 1 | @use "formatic/settings/colors"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/string.sass 1:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 1 \2502 @use \"formatic/settings/colors\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/string.sass 1:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 1 | @use "formatic/tools/cloud"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/textarea.sass 1:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 1 \2502 @use \"formatic/tools/cloud\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/textarea.sass 1:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 3 | @use "formatic/tools/mandatory"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/time.sass 3:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 3 \2502 @use \"formatic/tools/mandatory\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/time.sass 3:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 2 | @use "formatic/settings/colors"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/toggle.sass 2:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 2 \2502 @use \"formatic/settings/colors\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/toggle.sass 2:1 root stylesheet";
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Error: Can't find stylesheet to import.
|
|
2
|
+
* ,
|
|
3
|
+
* 3 | @use "formatic/settings/colors"
|
|
4
|
+
* | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
5
|
+
* '
|
|
6
|
+
* ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/wrapper.sass 3:1 root stylesheet */
|
|
7
|
+
|
|
8
|
+
body::before {
|
|
9
|
+
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
|
|
10
|
+
"Droid Sans Mono", monospace, monospace;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
display: block;
|
|
13
|
+
padding: 1em;
|
|
14
|
+
margin-bottom: 1em;
|
|
15
|
+
border-bottom: 2px solid black;
|
|
16
|
+
content: "Error: Can't find stylesheet to import.\a \2577 \a 3 \2502 @use \"formatic/settings/colors\"\a \2502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\a \2575 \a ../../2-Areas/formatic/formatic/app/assets/stylesheets/formatic/components/wrapper.sass 3:1 root stylesheet";
|
|
17
|
+
}
|