rails_app_generator 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,285 @@
1
+ <%#
2
+ The components were found here: https://tailwindcss.com/docs/customizing-components/
3
+ Another useful tool for inferring tailwind classes for components is here: https://usewindy.com/
4
+ %>
5
+
6
+ <h2 class="text-3xl leading-tight mb-2">Alerts</h2>
7
+
8
+ <div class="alert alert-primary">
9
+ A simple primary alert‚ check it out!
10
+ </div>
11
+ <div class="alert alert-secondary">
12
+ A simple secondary alert‚ check it out!
13
+ </div>
14
+ <div class="alert alert-success">
15
+ A simple success alert‚ check it out!
16
+ </div>
17
+ <div class="alert alert-danger">
18
+ A simple danger alert‚ check it out!
19
+ </div>
20
+ <div class="alert alert-warning">
21
+ A simple warning alert‚ check it out!
22
+ </div>
23
+ <div class="alert alert-info">
24
+ A simple info alert‚ check it out!
25
+ </div>
26
+
27
+ <h2>Buttons</h2>
28
+
29
+ <button type="button" class="btn btn-primary">Primary</button>
30
+ <button type="button" class="btn btn-secondary">Secondary</button>
31
+ <button type="button" class="btn btn-success">Success</button>
32
+ <button type="button" class="btn btn-danger">Danger</button>
33
+ <button type="button" class="btn btn-warning">Warning</button>
34
+ <button type="button" class="btn btn-info">Info</button>
35
+ <button type="button" class="btn btn-light">Light</button>
36
+ <button type="button" class="btn btn-dark">Dark</button>
37
+ <button type="button" class="btn btn-link">Link</button>
38
+
39
+ <br><br>
40
+
41
+ <h2>Cards</h2>
42
+
43
+ <div class="card" style="width: 18rem;">
44
+ <img src="https://dummyimage.com/640x4:3/" class="card-img-top" alt="...">
45
+ <div class="card-body">
46
+ <h5 class="card-title">Card title</h5>
47
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
48
+ <a href="#" class="btn btn-primary">Go somewhere</a>
49
+ </div>
50
+ </div>
51
+
52
+ <br><br>
53
+
54
+ <div class="card">
55
+ <div class="card-body">
56
+ This is some text within a card body.
57
+ </div>
58
+ </div>
59
+
60
+ <br><br>
61
+
62
+ <div class="card" style="width: 18rem;">
63
+ <div class="card-body">
64
+ <h5 class="card-title">Card title</h5>
65
+ <h6 class="card-subtitle mb-2 text-gray-600">Card subtitle</h6>
66
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
67
+ <a href="#" class="card-link">Card link</a>
68
+ <a href="#" class="card-link">Another link</a>
69
+ </div>
70
+ </div>
71
+
72
+ <br>
73
+
74
+ <h2>Dropdowns</h2>
75
+
76
+ <div class="dropdown">
77
+ <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
78
+ Dropdown button
79
+ </button>
80
+ <div class="dropdown-menu">
81
+ <a class="dropdown-item" href="#">Action</a>
82
+ <a class="dropdown-item" href="#">Another action</a>
83
+ <div class="dropdown-divider"></div>
84
+ <a class="dropdown-item" href="#">Something else here</a>
85
+ </div>
86
+ </div>
87
+
88
+ <br>
89
+
90
+ <h2>Forms</h2>
91
+
92
+ <form>
93
+ <div class="form-group">
94
+ <label for="exampleInputEmail1">Email address</label>
95
+ <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
96
+ <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
97
+ </div>
98
+ <div class="form-group">
99
+ <label for="exampleInputPassword1">Password</label>
100
+ <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
101
+ </div>
102
+ <div class="form-group form-check">
103
+ <input type="checkbox" class="form-check-input" id="exampleCheck1">
104
+ <label class="form-check-label" for="exampleCheck1">Check me out</label>
105
+ </div>
106
+ <button type="submit" class="btn btn-primary">Submit</button>
107
+ </form>
108
+
109
+ <br>
110
+ <br>
111
+
112
+ <h2 class="text-3xl leading-tight mb-2">List Groups</h2>
113
+
114
+ <ul class="list-group">
115
+ <li class="list-group-item active">Cras justo odio</li>
116
+ <li class="list-group-item">Dapibus ac facilisis in</li>
117
+ <li class="list-group-item">Porta ac consectetur ac</li>
118
+ <li class="list-group-item">Vestibulum at eros</li>
119
+ </ul>
120
+
121
+ <br>
122
+ <br>
123
+
124
+ <div class="list-group">
125
+ <a href="#" class="list-group-item list-group-item-action active">
126
+ Cras justo odio
127
+ </a>
128
+ <a href="#" class="list-group-item list-group-item-action">Dapibus ac facilisis in</a>
129
+ <a href="#" class="list-group-item list-group-item-action">Porta ac consectetur ac</a>
130
+ <a href="#" class="list-group-item list-group-item-action disabled" tabindex="-1" aria-disabled="true">Vestibulum at eros</a>
131
+ </div>
132
+
133
+ <br>
134
+ <br>
135
+
136
+ <h2 class="text-3xl leading-tight mb-2">Modals</h2>
137
+
138
+ <div id="myModal" class="modal fade" tabindex="-1" role="dialog">
139
+ <div class="modal-dialog" role="document">
140
+ <div class="modal-content">
141
+ <div class="modal-header">
142
+ <h5 class="modal-title">Modal title</h5>
143
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
144
+ <span aria-hidden="true">&times;</span>
145
+ </button>
146
+ </div>
147
+ <div class="modal-body">
148
+ <p>Modal body text goes here.</p>
149
+ </div>
150
+ <div class="modal-footer">
151
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
152
+ <button type="button" class="btn btn-primary">Save changes</button>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+
158
+ <button type="button" class="btn btn-warning" data-toggle="modal" data-target="#myModal">
159
+ Launch simple modal
160
+ </button>
161
+
162
+ <br>
163
+ <br>
164
+
165
+ <h2>Navbars</h2>
166
+
167
+ <nav class="navbar navbar-expand-lg navbar-light bg-light">
168
+ <a class="navbar-brand" href="#">Navbar</a>
169
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
170
+ <span class="navbar-toggler-icon"></span>
171
+ </button>
172
+ <div class="collapse navbar-collapse show" id="navbarNavAltMarkup">
173
+ <div class="navbar-nav">
174
+ <a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
175
+ <a class="nav-item nav-link" href="#">Features</a>
176
+ <a class="nav-item nav-link" href="#">Pricing</a>
177
+ <a class="nav-item nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
178
+ </div>
179
+ </div>
180
+ </nav>
181
+
182
+ <br>
183
+
184
+ <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
185
+ <a class="navbar-brand" href="#">Navbar</a>
186
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
187
+ <span class="navbar-toggler-icon"></span>
188
+ </button>
189
+ <div class="collapse navbar-collapse show" id="navbarNavAltMarkup">
190
+ <div class="navbar-nav">
191
+ <a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
192
+ <a class="nav-item nav-link" href="#">Features</a>
193
+ <a class="nav-item nav-link" href="#">Pricing</a>
194
+ <a class="nav-item nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
195
+ </div>
196
+ </div>
197
+ </nav>
198
+
199
+ <br>
200
+ <nav class="navbar navbar-light bg-light">
201
+ <a class="navbar-brand">Navbar</a>
202
+ <form class="form-inline">
203
+ <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
204
+ <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
205
+ </form>
206
+ </nav>
207
+
208
+ <br>
209
+
210
+ <nav class="navbar navbar-dark bg-dark">
211
+ <a class="navbar-brand">Navbar</a>
212
+ <form class="form-inline">
213
+ <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
214
+ <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
215
+ </form>
216
+ </nav>
217
+
218
+
219
+ <br>
220
+
221
+ <h2>Tables</h2>
222
+
223
+ <table class="table">
224
+ <thead>
225
+ <tr>
226
+ <th scope="col">#</th>
227
+ <th scope="col">First</th>
228
+ <th scope="col">Last</th>
229
+ <th scope="col">Handle</th>
230
+ </tr>
231
+ </thead>
232
+ <tbody>
233
+ <tr>
234
+ <th scope="row">1</th>
235
+ <td>Mark</td>
236
+ <td>Otto</td>
237
+ <td>@mdo</td>
238
+ </tr>
239
+ <tr>
240
+ <th scope="row">2</th>
241
+ <td>Jacob</td>
242
+ <td>Thornton</td>
243
+ <td>@fat</td>
244
+ </tr>
245
+ <tr>
246
+ <th scope="row">3</th>
247
+ <td>Larry</td>
248
+ <td>the Bird</td>
249
+ <td>@twitter</td>
250
+ </tr>
251
+ </tbody>
252
+ </table>
253
+
254
+
255
+ <br><br>
256
+
257
+ <table class="table table-bordered">
258
+ <thead>
259
+ <tr>
260
+ <th scope="col">#</th>
261
+ <th scope="col">First</th>
262
+ <th scope="col">Last</th>
263
+ <th scope="col">Handle</th>
264
+ </tr>
265
+ </thead>
266
+ <tbody>
267
+ <tr>
268
+ <th scope="row">1</th>
269
+ <td>Mark</td>
270
+ <td>Otto</td>
271
+ <td>@mdo</td>
272
+ </tr>
273
+ <tr>
274
+ <th scope="row">2</th>
275
+ <td>Jacob</td>
276
+ <td>Thornton</td>
277
+ <td>@fat</td>
278
+ </tr>
279
+ <tr>
280
+ <th scope="row">3</th>
281
+ <td colspan="2">Larry the Bird</td>
282
+ <td>@twitter</td>
283
+ </tr>
284
+ </tbody>
285
+ </table>
@@ -0,0 +1,5 @@
1
+ <h1>Bootstrap Only</h1>
2
+
3
+ <p>This page uses Bootstrap 5 and standard Bootstrap components</p>
4
+
5
+ <%=render partial: 'example' %>
@@ -0,0 +1,12 @@
1
+ class HomeController < ApplicationController
2
+ before_action :css_framework_tailwind, only: :tailwind
3
+
4
+ def index
5
+ end
6
+
7
+ def bootstrap
8
+ end
9
+
10
+ def tailwind
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ <h1>Tailwind Only</h1>
2
+
3
+ <p>This Bootstrap look-alike us using Tailwind @apply to emuilate Bootstrap compatiable components</p>
4
+
5
+ <%=render partial: 'example' %>
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Rails 7 using Tailwind CSS and Reusable Styles
4
+
5
+ require 'pry'
6
+
7
+ self.local_template_path = File.join(File.dirname(__FILE__), File.basename(__FILE__, '.*'))
8
+
9
+ gac 'base rails 7 image created'
10
+
11
+ add_controller('home', 'index', 'bootstrap', 'tailwind')
12
+ route("root 'home#index'")
13
+
14
+ css_install('tailwind')
15
+ css_install('bootstrap')
16
+
17
+ force_copy
18
+
19
+ copy_file 'home/index.html.erb' , 'app/views/home/index.html.erb'
20
+ copy_file 'home/bootstrap.html.erb' , 'app/views/home/bootstrap.html.erb'
21
+ copy_file 'home/tailwind.html.erb' , 'app/views/home/tailwind.html.erb'
22
+ copy_file 'home/_example.html.erb' , 'app/views/home/_example.html.erb'
23
+ copy_file 'home/home_controller.rb' , 'app/controllers/home_controller.rb'
24
+
25
+ copy_file 'application.html.erb' , 'app/views/layouts/application.html.erb'
26
+ copy_file 'application_controller.rb' , 'app/controllers/application_controller.rb'
27
+ copy_file 'application.tailwind.css' , 'app/assets/stylesheets/application.tailwind.css'
28
+ copy_file 'Procfile.dev' , 'Procfile.dev'
29
+
30
+ replacement_script = <<-JSON
31
+ "build:css_bootstrap": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application_bootstrap.css --no-source-map --load-path=node_modules",
32
+ "build:css_tailwind": "tailwindcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application_tailwind.css --minify"
33
+ JSON
34
+
35
+ gsub_file 'package.json', /^(.*?)"build:css"(.*?)$/, replacement_script
36
+
37
+
@@ -1,106 +1,109 @@
1
- <mxfile host="jCb">
2
- <diagram id="9If" name="In progress">
1
+ <mxfile host="Sbx">
2
+ <diagram id="h6s" name="In progress">
3
3
  <mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4
4
  <root>
5
- <mxCell id="page_root_9If" parent="9If"/>
6
- <mxCell id="node_root_9If" parent="page_root_9If"/>
7
- <mxCell id="9If-2" value="add profile - rag_tailwind_style_reuse" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_9If">
5
+ <mxCell id="page_root_h6s" parent="h6s"/>
6
+ <mxCell id="node_root_h6s" parent="page_root_h6s"/>
7
+ <mxCell id="h6s-2" value="add profile - rag_tailwind_style_reuse" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_h6s">
8
8
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
9
9
  </mxCell>
10
- <mxCell id="9If-3" value="add profile - rag_tailwind_hotwire_flash" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_9If">
10
+ <mxCell id="h6s-3" value="add profile - rag_tailwind_hotwire_flash" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_h6s">
11
11
  <mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
12
12
  </mxCell>
13
13
  </root>
14
14
  </mxGraphModel>
15
15
  </diagram>
16
- <diagram id="iYl" name="To Do">
16
+ <diagram id="pqv" name="To Do">
17
17
  <mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
18
18
  <root>
19
- <mxCell id="page_root_iYl" parent="iYl"/>
20
- <mxCell id="node_root_iYl" parent="page_root_iYl"/>
21
- <mxCell id="iYl-2" value="generator for new profiles" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
19
+ <mxCell id="page_root_pqv" parent="pqv"/>
20
+ <mxCell id="node_root_pqv" parent="page_root_pqv"/>
21
+ <mxCell id="pqv-2" value="generator for new profiles" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
22
22
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
23
23
  </mxCell>
24
- <mxCell id="iYl-3" value="add auto open flag to profile and command line" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
24
+ <mxCell id="pqv-3" value="add auto open flag to profile and command line" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
25
25
  <mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
26
26
  </mxCell>
27
- <mxCell id="iYl-4" value="add profile - stimulas" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
27
+ <mxCell id="pqv-4" value="add profile - stimulas" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
28
28
  <mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
29
29
  </mxCell>
30
- <mxCell id="iYl-5" value="add profile - hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
30
+ <mxCell id="pqv-5" value="add profile - hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
31
31
  <mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
32
32
  </mxCell>
33
- <mxCell id="iYl-6" value="add profile - turbo" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
33
+ <mxCell id="pqv-6" value="add profile - turbo" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
34
34
  <mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
35
35
  </mxCell>
36
- <mxCell id="iYl-7" value="add profile - vue" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
36
+ <mxCell id="pqv-7" value="add profile - vue" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
37
37
  <mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
38
38
  </mxCell>
39
- <mxCell id="iYl-8" value="add profile - svelte" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
39
+ <mxCell id="pqv-8" value="add profile - svelte" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
40
40
  <mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
41
41
  </mxCell>
42
- <mxCell id="iYl-9" value="add profile - react" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
42
+ <mxCell id="pqv-9" value="add profile - react" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
43
43
  <mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
44
44
  </mxCell>
45
- <mxCell id="iYl-10" value="add profile - vite" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
45
+ <mxCell id="pqv-10" value="add profile - vite" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
46
46
  <mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
47
47
  </mxCell>
48
- <mxCell id="iYl-11" value="add profile - docker" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
48
+ <mxCell id="pqv-11" value="add profile - docker" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
49
49
  <mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
50
50
  </mxCell>
51
- <mxCell id="iYl-12" value="add encryption - https://youtu.be/ZmwNzod1trk?t=701" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
51
+ <mxCell id="pqv-12" value="add encryption - https://youtu.be/ZmwNzod1trk?t=701" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
52
52
  <mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
53
53
  </mxCell>
54
- <mxCell id="iYl-13" value="cli help support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
54
+ <mxCell id="pqv-13" value="cli help support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
55
55
  <mxGeometry x="650" y="250" width="300" height="60" as="geometry"/>
56
56
  </mxCell>
57
- <mxCell id="iYl-14" value="cli support for rails new (rag new should work like rails new) - buggy, need to work through" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
57
+ <mxCell id="pqv-14" value="cli support for rails new (rag new should work like rails new) - buggy, need to work through" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
58
58
  <mxGeometry x="10" y="330" width="300" height="60" as="geometry"/>
59
59
  </mxCell>
60
- <mxCell id="iYl-15" value="need an option for deleting target project path" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_iYl">
60
+ <mxCell id="pqv-15" value="need an option for deleting target project path" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_pqv">
61
61
  <mxGeometry x="330" y="330" width="300" height="60" as="geometry"/>
62
62
  </mxCell>
63
63
  </root>
64
64
  </mxGraphModel>
65
65
  </diagram>
66
- <diagram id="1ja" name="Done">
66
+ <diagram id="Pwy" name="Done">
67
67
  <mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
68
68
  <root>
69
- <mxCell id="page_root_1ja" parent="1ja"/>
70
- <mxCell id="node_root_1ja" parent="page_root_1ja"/>
71
- <mxCell id="1ja-2" value="add profile - tailwind_hotwire_form_search" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
69
+ <mxCell id="page_root_Pwy" parent="Pwy"/>
70
+ <mxCell id="node_root_Pwy" parent="page_root_Pwy"/>
71
+ <mxCell id="Pwy-2" value="add profile - tailwind-emulating-bootstrap" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
72
72
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
73
73
  </mxCell>
74
- <mxCell id="1ja-3" value="add profile - tailwind_hotwire_form" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
74
+ <mxCell id="Pwy-3" value="add profile - tailwind-hotwire-form-search" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
75
75
  <mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
76
76
  </mxCell>
77
- <mxCell id="1ja-4" value="add profile - tailwind_hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
77
+ <mxCell id="Pwy-4" value="add profile - tailwind-hotwire-form" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
78
78
  <mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
79
79
  </mxCell>
80
- <mxCell id="1ja-5" value="add profile - import_map" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
80
+ <mxCell id="Pwy-5" value="add profile - tailwind-hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
81
81
  <mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
82
82
  </mxCell>
83
- <mxCell id="1ja-6" value="profile - fix the bootstrap profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
83
+ <mxCell id="Pwy-6" value="add profile - import-map" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
84
84
  <mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
85
85
  </mxCell>
86
- <mxCell id="1ja-7" value="cli support for profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
86
+ <mxCell id="Pwy-7" value="profile - fix the bootstrap profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
87
87
  <mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
88
88
  </mxCell>
89
- <mxCell id="1ja-8" value="separate CLI methods into include modules" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
89
+ <mxCell id="Pwy-8" value="cli support for profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
90
90
  <mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
91
91
  </mxCell>
92
- <mxCell id="1ja-9" value="cli support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
92
+ <mxCell id="Pwy-9" value="separate CLI methods into include modules" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
93
93
  <mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
94
94
  </mxCell>
95
- <mxCell id="1ja-10" value="add diff tool - open in editor" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
95
+ <mxCell id="Pwy-10" value="cli support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
96
96
  <mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
97
97
  </mxCell>
98
- <mxCell id="1ja-11" value="add diff tool supporting lhs only, rhs only, same and different" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
98
+ <mxCell id="Pwy-11" value="add diff tool - open in editor" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
99
99
  <mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
100
100
  </mxCell>
101
- <mxCell id="1ja-12" value="add project plan to do list" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1ja">
101
+ <mxCell id="Pwy-12" value="add diff tool supporting lhs only, rhs only, same and different" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
102
102
  <mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
103
103
  </mxCell>
104
+ <mxCell id="Pwy-13" value="add project plan to do list" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Pwy">
105
+ <mxGeometry x="650" y="250" width="300" height="60" as="geometry"/>
106
+ </mxCell>
104
107
  </root>
105
108
  </mxGraphModel>
106
109
  </diagram>
@@ -1,3 +1,3 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="302px" viewBox="-0.5 -0.5 942 302"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind_hotwire_form_search</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind_hotwire_form_search</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind_hotwire_form</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind_hotwire_form</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind_hotwire</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind_hotwire</text></switch></g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - import_map</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - import_map</text></switch></g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">profile - fix the bootstrap profile</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">profile - fix the bootstrap profile</text></switch></g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for profile</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for profile</text></switch></g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">separate CLI methods into include modules</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">separate CLI methods into include modules</text></switch></g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for diff</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for diff</text></switch></g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool - open in editor</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool - open in editor</text></switch></g><rect x="0" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 239 Q -1 239 -1 250.15 L -1 264 Q 150 282 301 264 L 301 250.15 Q 301 239 289.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool supporting lhs only, rhs only, same and different</div></div></div></foreignObject><text x="150" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool supporting lhs only, rhs only, same...</text></switch></g><rect x="320" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 239 Q 319 239 319 250.15 L 319 264 Q 470 282 621 264 L 621 250.15 Q 621 239 609.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add project plan to do list</div></div></div></foreignObject><text x="470" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add project plan to do list</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="302px" viewBox="-0.5 -0.5 942 302"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind-emulating-bootstrap</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind-emulating-bootstrap</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind-hotwire-form-search</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind-hotwire-form-search</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind-hotwire-form</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind-hotwire-form</text></switch></g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind-hotwire</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind-hotwire</text></switch></g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - import-map</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - import-map</text></switch></g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">profile - fix the bootstrap profile</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">profile - fix the bootstrap profile</text></switch></g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for profile</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for profile</text></switch></g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">separate CLI methods into include modules</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">separate CLI methods into include modules</text></switch></g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for diff</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for diff</text></switch></g><rect x="0" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 239 Q -1 239 -1 250.15 L -1 264 Q 150 282 301 264 L 301 250.15 Q 301 239 289.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool - open in editor</div></div></div></foreignObject><text x="150" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool - open in editor</text></switch></g><rect x="320" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 239 Q 319 239 319 250.15 L 319 264 Q 470 282 621 264 L 621 250.15 Q 621 239 609.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool supporting lhs only, rhs only, same and different</div></div></div></foreignObject><text x="470" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool supporting lhs only, rhs only, same...</text></switch></g><rect x="640" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 239 Q 639 239 639 250.15 L 639 264 Q 790 282 941 264 L 941 250.15 Q 941 239 929.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add project plan to do list</div></div></div></foreignObject><text x="790" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add project plan to do list</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>