json_flit 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +29 -3
  4. data/README.md +3 -5
  5. data/demo/.ruby-version +1 -0
  6. data/demo/Gemfile +73 -0
  7. data/demo/Gemfile.lock +218 -0
  8. data/demo/Procfile.dev +3 -0
  9. data/demo/README.md +24 -0
  10. data/demo/Rakefile +6 -0
  11. data/demo/app/assets/builds/.keep +0 -0
  12. data/demo/app/assets/fonts/Lato-Regular.ttf +0 -0
  13. data/demo/app/assets/fonts/MetalMania-Regular.ttf +0 -0
  14. data/demo/app/assets/images/.keep +0 -0
  15. data/demo/app/assets/images/image1.jpg +0 -0
  16. data/demo/app/assets/images/image10.jpg +0 -0
  17. data/demo/app/assets/images/image11.jpg +0 -0
  18. data/demo/app/assets/images/image12.jpg +0 -0
  19. data/demo/app/assets/images/image13.jpg +0 -0
  20. data/demo/app/assets/images/image14.jpg +0 -0
  21. data/demo/app/assets/images/image15.jpg +0 -0
  22. data/demo/app/assets/images/image16.jpg +0 -0
  23. data/demo/app/assets/images/image17.jpg +0 -0
  24. data/demo/app/assets/images/image2.jpg +0 -0
  25. data/demo/app/assets/images/image3.jpg +0 -0
  26. data/demo/app/assets/images/image4.jpg +0 -0
  27. data/demo/app/assets/images/image5.jpg +0 -0
  28. data/demo/app/assets/images/image6.jpg +0 -0
  29. data/demo/app/assets/images/image7.jpg +0 -0
  30. data/demo/app/assets/images/image8.jpg +0 -0
  31. data/demo/app/assets/images/image9.jpg +0 -0
  32. data/demo/app/assets/images/profile.jpg +0 -0
  33. data/demo/app/assets/images/visa.svg +1 -0
  34. data/demo/app/assets/pages/align.json +182 -0
  35. data/demo/app/assets/pages/animated_align.json +50 -0
  36. data/demo/app/assets/pages/animated_container.json +56 -0
  37. data/demo/app/assets/pages/animated_cross_fade.json +63 -0
  38. data/demo/app/assets/pages/animated_default_text_style.json +53 -0
  39. data/demo/app/assets/pages/animated_opacity.json +49 -0
  40. data/demo/app/assets/pages/animated_padding.json +50 -0
  41. data/demo/app/assets/pages/animated_physical_model.json +73 -0
  42. data/demo/app/assets/pages/animated_positioned.json +54 -0
  43. data/demo/app/assets/pages/animated_positioned_directional.json +60 -0
  44. data/demo/app/assets/pages/animated_size.json +61 -0
  45. data/demo/app/assets/pages/animated_switcher.json +62 -0
  46. data/demo/app/assets/pages/animated_theme.json +52 -0
  47. data/demo/app/assets/pages/aspect_ratio.json +124 -0
  48. data/demo/app/assets/pages/asset_images.json +667 -0
  49. data/demo/app/assets/pages/bank_example.json +913 -0
  50. data/demo/app/assets/pages/baseline.json +81 -0
  51. data/demo/app/assets/pages/buttons.json +139 -0
  52. data/demo/app/assets/pages/card.json +121 -0
  53. data/demo/app/assets/pages/center.json +25 -0
  54. data/demo/app/assets/pages/checkbox.json +77 -0
  55. data/demo/app/assets/pages/circular_progress_indicator.json +45 -0
  56. data/demo/app/assets/pages/clips.json +156 -0
  57. data/demo/app/assets/pages/conditional.json +197 -0
  58. data/demo/app/assets/pages/cupertino_switch.yaml +72 -0
  59. data/demo/app/assets/pages/decorated_box.json +38 -0
  60. data/demo/app/assets/pages/directionality.json +31 -0
  61. data/demo/app/assets/pages/dynamic.json +299 -0
  62. data/demo/app/assets/pages/fitted_box.json +41 -0
  63. data/demo/app/assets/pages/for_each.json +130 -0
  64. data/demo/app/assets/pages/form.json +276 -0
  65. data/demo/app/assets/pages/fractional_translation.json +31 -0
  66. data/demo/app/assets/pages/fractionally_sized_box.json +34 -0
  67. data/demo/app/assets/pages/gestures.json +83 -0
  68. data/demo/app/assets/pages/grid_view.json +217 -0
  69. data/demo/app/assets/pages/image_page.json +32 -0
  70. data/demo/app/assets/pages/images.json +89 -0
  71. data/demo/app/assets/pages/indexed_stack.json +101 -0
  72. data/demo/app/assets/pages/input_error.json +64 -0
  73. data/demo/app/assets/pages/interactive_viewer.json +30 -0
  74. data/demo/app/assets/pages/intrinsic_height.json +63 -0
  75. data/demo/app/assets/pages/intrinsic_width.json +63 -0
  76. data/demo/app/assets/pages/issue_10.json +23 -0
  77. data/demo/app/assets/pages/issue_109.json +65 -0
  78. data/demo/app/assets/pages/issue_11.json +23 -0
  79. data/demo/app/assets/pages/issue_12.json +34 -0
  80. data/demo/app/assets/pages/issue_20_list.json +31 -0
  81. data/demo/app/assets/pages/issue_20_single.json +31 -0
  82. data/demo/app/assets/pages/issue_30.json +35 -0
  83. data/demo/app/assets/pages/layout_builder.json +403 -0
  84. data/demo/app/assets/pages/length.json +125 -0
  85. data/demo/app/assets/pages/limited_box.json +33 -0
  86. data/demo/app/assets/pages/linear_progress_indicator.json +25 -0
  87. data/demo/app/assets/pages/list_view.json +410 -0
  88. data/demo/app/assets/pages/measured.json +266 -0
  89. data/demo/app/assets/pages/offstage.json +50 -0
  90. data/demo/app/assets/pages/opacity.json +136 -0
  91. data/demo/app/assets/pages/overflow_box.json +52 -0
  92. data/demo/app/assets/pages/placeholder.json +57 -0
  93. data/demo/app/assets/pages/popup_menu_button.json +38 -0
  94. data/demo/app/assets/pages/radio.json +60 -0
  95. data/demo/app/assets/pages/rich_text.json +45 -0
  96. data/demo/app/assets/pages/scroll_view.json +974 -0
  97. data/demo/app/assets/pages/semantics.json +212 -0
  98. data/demo/app/assets/pages/set_default_value.json +77 -0
  99. data/demo/app/assets/pages/simple_page.json +25 -0
  100. data/demo/app/assets/pages/slivers.json +268 -0
  101. data/demo/app/assets/pages/switch.json +77 -0
  102. data/demo/app/assets/pages/theme.json +228 -0
  103. data/demo/app/assets/pages/tooltip.json +77 -0
  104. data/demo/app/assets/pages/tween_animation.json +43 -0
  105. data/demo/app/assets/pages/variables.json +64 -0
  106. data/demo/app/assets/pages/wrap.json +117 -0
  107. data/demo/app/assets/stylesheets/application.css +1 -0
  108. data/demo/app/assets/stylesheets/application.tailwind.css +13 -0
  109. data/demo/app/assets/widgets/issue_24.json +42 -0
  110. data/demo/app/channels/application_cable/channel.rb +4 -0
  111. data/demo/app/channels/application_cable/connection.rb +4 -0
  112. data/demo/app/controllers/application_controller.rb +2 -0
  113. data/demo/app/controllers/concerns/.keep +0 -0
  114. data/demo/app/controllers/welcome_controller.rb +22 -0
  115. data/demo/app/helpers/application_helper.rb +2 -0
  116. data/demo/app/helpers/welcome_helper.rb +2 -0
  117. data/demo/app/javascript/application.js +3 -0
  118. data/demo/app/javascript/controllers/application.js +9 -0
  119. data/demo/app/javascript/controllers/hello_controller.js +7 -0
  120. data/demo/app/javascript/controllers/index.js +8 -0
  121. data/demo/app/jobs/application_job.rb +7 -0
  122. data/demo/app/mailers/application_mailer.rb +4 -0
  123. data/demo/app/models/application_record.rb +3 -0
  124. data/demo/app/models/concerns/.keep +0 -0
  125. data/demo/app/views/layouts/application.html.erb +16 -0
  126. data/demo/app/views/layouts/mailer.html.erb +13 -0
  127. data/demo/app/views/layouts/mailer.text.erb +1 -0
  128. data/demo/app/views/welcome/index.html.erb +5 -0
  129. data/demo/app/views/welcome/show.html.erb +6 -0
  130. data/demo/bin/bundle +109 -0
  131. data/demo/bin/dev +8 -0
  132. data/demo/bin/rails +4 -0
  133. data/demo/bin/rake +4 -0
  134. data/demo/bin/setup +33 -0
  135. data/demo/config/application.rb +37 -0
  136. data/demo/config/boot.rb +4 -0
  137. data/demo/config/cable.yml +11 -0
  138. data/demo/config/credentials.yml.enc +1 -0
  139. data/demo/config/database.yml +25 -0
  140. data/demo/config/environment.rb +5 -0
  141. data/demo/config/environments/development.rb +68 -0
  142. data/demo/config/environments/production.rb +87 -0
  143. data/demo/config/environments/test.rb +60 -0
  144. data/demo/config/initializers/assets.rb +12 -0
  145. data/demo/config/initializers/content_security_policy.rb +25 -0
  146. data/demo/config/initializers/filter_parameter_logging.rb +8 -0
  147. data/demo/config/initializers/inflections.rb +16 -0
  148. data/demo/config/initializers/permissions_policy.rb +11 -0
  149. data/demo/config/locales/en.yml +33 -0
  150. data/demo/config/puma.rb +43 -0
  151. data/demo/config/routes.rb +5 -0
  152. data/demo/config/storage.yml +34 -0
  153. data/demo/config/tailwind.config.js +22 -0
  154. data/demo/config.ru +6 -0
  155. data/demo/db/development.sqlite3 +0 -0
  156. data/demo/db/seeds.rb +7 -0
  157. data/demo/lib/assets/.keep +0 -0
  158. data/demo/lib/tasks/.keep +0 -0
  159. data/demo/log/.keep +0 -0
  160. data/demo/public/404.html +67 -0
  161. data/demo/public/422.html +67 -0
  162. data/demo/public/500.html +66 -0
  163. data/demo/public/apple-touch-icon-precomposed.png +0 -0
  164. data/demo/public/apple-touch-icon.png +0 -0
  165. data/demo/public/favicon.ico +0 -0
  166. data/demo/public/robots.txt +1 -0
  167. data/demo/storage/.keep +0 -0
  168. data/demo/tmp/.keep +0 -0
  169. data/demo/tmp/pids/.keep +0 -0
  170. data/demo/tmp/storage/.keep +0 -0
  171. data/demo/vendor/.keep +0 -0
  172. data/lib/json_flit/registry.rb +144 -0
  173. data/lib/json_flit/version.rb +1 -1
  174. metadata +185 -3
@@ -0,0 +1,43 @@
1
+ # Puma can serve each request in a thread from an internal thread pool.
2
+ # The `threads` method setting takes two numbers: a minimum and maximum.
3
+ # Any libraries that use thread pools should be configured to match
4
+ # the maximum value specified for Puma. Default is set to 5 threads for minimum
5
+ # and maximum; this matches the default thread size of Active Record.
6
+ #
7
+ max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
8
+ min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
9
+ threads min_threads_count, max_threads_count
10
+
11
+ # Specifies the `worker_timeout` threshold that Puma will use to wait before
12
+ # terminating a worker in development environments.
13
+ #
14
+ worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"
15
+
16
+ # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
17
+ #
18
+ port ENV.fetch("PORT") { 3000 }
19
+
20
+ # Specifies the `environment` that Puma will run in.
21
+ #
22
+ environment ENV.fetch("RAILS_ENV") { "development" }
23
+
24
+ # Specifies the `pidfile` that Puma will use.
25
+ pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
26
+
27
+ # Specifies the number of `workers` to boot in clustered mode.
28
+ # Workers are forked web server processes. If using threads and workers together
29
+ # the concurrency of the application would be max `threads` * `workers`.
30
+ # Workers do not work on JRuby or Windows (both of which do not support
31
+ # processes).
32
+ #
33
+ # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
34
+
35
+ # Use the `preload_app!` method when specifying a `workers` number.
36
+ # This directive tells Puma to first boot the application and load code
37
+ # before forking the application. This takes advantage of Copy On Write
38
+ # process behavior so workers use less memory.
39
+ #
40
+ # preload_app!
41
+
42
+ # Allow puma to be restarted by `bin/rails restart` command.
43
+ plugin :tmp_restart
@@ -0,0 +1,5 @@
1
+ Rails.application.routes.draw do
2
+ get '/:page', to: 'welcome#show'
3
+
4
+ root 'welcome#index'
5
+ end
@@ -0,0 +1,34 @@
1
+ test:
2
+ service: Disk
3
+ root: <%= Rails.root.join("tmp/storage") %>
4
+
5
+ local:
6
+ service: Disk
7
+ root: <%= Rails.root.join("storage") %>
8
+
9
+ # Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
10
+ # amazon:
11
+ # service: S3
12
+ # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
13
+ # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
14
+ # region: us-east-1
15
+ # bucket: your_own_bucket-<%= Rails.env %>
16
+
17
+ # Remember not to checkin your GCS keyfile to a repository
18
+ # google:
19
+ # service: GCS
20
+ # project: your_project
21
+ # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
22
+ # bucket: your_own_bucket-<%= Rails.env %>
23
+
24
+ # Use bin/rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
25
+ # microsoft:
26
+ # service: AzureStorage
27
+ # storage_account_name: your_account_name
28
+ # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
29
+ # container: your_container_name-<%= Rails.env %>
30
+
31
+ # mirror:
32
+ # service: Mirror
33
+ # primary: local
34
+ # mirrors: [ amazon, google, microsoft ]
@@ -0,0 +1,22 @@
1
+ const defaultTheme = require('tailwindcss/defaultTheme')
2
+
3
+ module.exports = {
4
+ content: [
5
+ './public/*.html',
6
+ './app/helpers/**/*.rb',
7
+ './app/javascript/**/*.js',
8
+ './app/views/**/*.{erb,haml,html,slim}'
9
+ ],
10
+ theme: {
11
+ extend: {
12
+ fontFamily: {
13
+ sans: ['Inter var', ...defaultTheme.fontFamily.sans],
14
+ },
15
+ },
16
+ },
17
+ plugins: [
18
+ require('@tailwindcss/forms'),
19
+ require('@tailwindcss/aspect-ratio'),
20
+ require('@tailwindcss/typography'),
21
+ ]
22
+ }
data/demo/config.ru ADDED
@@ -0,0 +1,6 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require_relative "config/environment"
4
+
5
+ run Rails.application
6
+ Rails.application.load_server
File without changes
data/demo/db/seeds.rb ADDED
@@ -0,0 +1,7 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }])
7
+ # Character.create(name: "Luke", movie: movies.first)
File without changes
File without changes
data/demo/log/.keep ADDED
File without changes
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ # See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
File without changes
data/demo/tmp/.keep ADDED
File without changes
File without changes
File without changes
data/demo/vendor/.keep ADDED
File without changes
@@ -0,0 +1,144 @@
1
+ module JsonFlit
2
+ class Registry
3
+ DEFAULT_COMPONENT_LIST = {
4
+ 'align' => 'Flit::AlignComponent',
5
+ 'animated_align' => 'Flit::AnimatedAlignComponent',
6
+ 'animated_container' => 'Flit::AnimatedContainerComponent',
7
+ 'animated_cross_fade' => 'Flit::AnimatedCrossFadeComponent',
8
+ 'animated_default_text_style' => 'Flit::AnimatedDefaultTextStyleComponent',
9
+ 'animated_opacity' => 'Flit::AnimatedOpacityComponent',
10
+ 'animated_padding' => 'Flit::AnimatedPaddingComponent',
11
+ 'animated_physical_model' => 'Flit::AnimatedPhysicalModelComponent',
12
+ 'animated_positioned' => 'Flit::AnimatedPositionedComponent',
13
+ 'animated_positioned_directional' => 'Flit::AnimatedPositionedDirectionalComponent',
14
+ 'animated_size' => 'Flit::AnimateSizeComponent',
15
+ 'animated_switcher' => 'Flit::AnimatedSwitcherComponent',
16
+ 'animated_theme' => 'Flit::AnimatedThemeComponent',
17
+ 'app_bar' => 'Flit::AppBarComponent',
18
+ 'aspect_ratio' => 'Flit::AspectRatioComponent',
19
+ 'asset_image' => 'Flit::AssetImageComponent',
20
+ 'base' => 'Flit::BaseComponent',
21
+ 'baseline' => 'Flit::BaselineComponent',
22
+ 'button_bar' => 'Flit::ButtonBarComponent',
23
+ 'card' => 'Flit::CardComponent',
24
+ 'center' => 'Flit::CenterComponent',
25
+ 'checkbox' => 'Flit::CheckboxComponent',
26
+ 'circular_progress_indicator' => 'Flit::CircularProgressIndicatorComponent',
27
+ 'clip_oval' => 'Flit::ClipOvalComponent',
28
+ 'clip_path' => 'Flit::ClipPathComponent',
29
+ 'clip_rect' => 'Flit::ClipRectComponent',
30
+ 'clip_rrect' => 'Flit::ClipRrectComponent',
31
+ 'column' => 'Flit::ColumnComponent',
32
+ 'comment' => 'Flit::CommentComponent',
33
+ 'conditional' => 'Flit::ConditionalComponent',
34
+ 'container' => 'Flit::ContainerComponent',
35
+ 'cupertino_switch' => 'Flit::CupertinoSwitchComponent',
36
+ 'custom_scroll_view' => 'Flit::CustomScrollViewComponent',
37
+ 'directionality' => 'Flit::DirectionalityComponent',
38
+ 'dropdown_button_form_field' => 'Flit::DropdownButtonFormFieldComponent',
39
+ 'dynamic' => 'Flit::DynamicComponent',
40
+ 'elevated_button' => 'Flit::ElevatedComponent',
41
+ 'expanded' => 'Flit::ExpandedComponent',
42
+ 'fitted_box' => 'Flit::FittedBoxComponent',
43
+ 'flexible' => 'Flit::FlexibleComponent',
44
+ 'floating_action_button' => 'Flit::FloatingActionButtonComponent',
45
+ 'form' => 'Flit::FormComponent',
46
+ 'fractional_translation' => 'Flit::FractionalTranslationComponent',
47
+ 'fractionally_sized' => 'Flit::FractionallySizedComponent',
48
+ 'gesture_detector' => 'Flit::GestureDetectorComponent',
49
+ 'grid_view' => 'Flit::GridViewComponent',
50
+ 'hero' => 'Flit::HeroComponent',
51
+ 'icon_button' => 'Flit::IconButtonComponent',
52
+ 'icon' => 'Flit::IconComponent',
53
+ 'ignore_pointer' => 'Flit::IgnorePointerComponent',
54
+ 'indexed_stack' => 'Flit::IndexedStackComponent',
55
+ 'ink_well' => 'Flit::InkWellComponent',
56
+ 'input_error' => 'Flit::InputErrorComponent',
57
+ 'interactive_viewer' => 'Flit::InteractiveViewerComponent',
58
+ 'intrinsic_height' => 'Flit::IntrinsicHeightComponent',
59
+ 'intrinsic_width' => 'Flit::IntinsicWidthComponent',
60
+ 'limited_box' => 'Flit::LimitedBoxComponent',
61
+ 'linear_progress_indicator' => 'Flit::LinearProgressIndidicatorComponent',
62
+ 'list_tile' => 'Flit::ListTileComponent',
63
+ 'list_view' => 'Flit::ListViewComponent',
64
+ 'material' => 'Flit::MaterialComponent',
65
+ 'memory_image' => 'Flit::MemoryImageComponent',
66
+ 'network_image' => 'Flit::NetworkImageComponent',
67
+ 'offstage' => 'Flit::OffstageComponent',
68
+ 'opacity' => 'Flit::OpacityComponent',
69
+ 'outlined_button' => 'Flit::OutlinedButtonComponent',
70
+ 'overflow_box' => 'Flit::OverflowBoxComponent',
71
+ 'padding' => 'Flit::PaddingComponent',
72
+ 'placeholder' => 'Flit::PlaceholderComponent',
73
+ 'popup_menu_button' => 'Flit::PopupMenuButtonComponent',
74
+ 'positioned' => 'Flit::PositionedComponent',
75
+ 'primary_scroll_container' => 'Flit::PrimaryScrollContainerComponent',
76
+ 'radio' => 'Flit::RadioComponent',
77
+ 'rich_text' => 'Flit::RichTextComponent',
78
+ 'row' => 'Flit::RowComponent',
79
+ 'safe_area' => 'Flit::SafeAreaComponent',
80
+ 'save_context' => 'Flit::SaveContextComponent',
81
+ 'scaffold' => 'Flit::ScaffoldComponent',
82
+ 'scroll_configuration' => 'Flit::ScrollConfigurationComponent',
83
+ 'scrollbar' => 'Flit::ScrollbarComponent',
84
+ 'set_default_value' => 'Flit::SetDefaultValueComponent',
85
+ 'set_scroll_container' => 'Flit::SetScrollContainerComponent',
86
+ 'set_value' => 'Flit::SetValueComponent',
87
+ 'single_child_scroll_view' => 'Flit::SingleChildScrollViewComponent',
88
+ 'sized_box' => 'Flit::SizedBoxComponent',
89
+ 'sliver_grid' => 'Flit::SliverGridComponent',
90
+ 'sliver_list' => 'Flit::SliverListComponent',
91
+ 'sliver_padding' => 'Flit::SliverPaddingComponent',
92
+ 'sliver_to_box_adapter' => 'Flit::SliverToBoxAdapterComponent',
93
+ 'stack' => 'Flit::StackComponent',
94
+ 'switch' => 'Flit::SwitchComponent',
95
+ 'text_button' => 'Flit::TextButtonComponent',
96
+ 'text' => 'Flit::TextComponent',
97
+ 'text_form_field' => 'Flit::TextFormFieldComponent',
98
+ 'theme' => 'Flit::ThemeComponent',
99
+ 'tooltip' => 'Flit::TooltipComponent',
100
+ 'tween_animation' => 'Flit::TweenAnimationComponent',
101
+ 'wrap' => 'Flit::WrapComponent'
102
+ }.freeze
103
+
104
+ DEFAULT_METHOD_LIST = {
105
+
106
+ }.freeze
107
+
108
+ def initialize(override_internal_builders = false, override_internal_methods = false)
109
+ @components = DEFAULT_COMPONENT_LIST.dup
110
+ @methods = DEFAULT_METHOD_LIST.dup
111
+ end
112
+
113
+ def register_component(name, component)
114
+ return if @components.key?(name) && !override_internal_builders
115
+ @components[name] = component
116
+ end
117
+
118
+ def register_components(components)
119
+ components.each do |name, component|
120
+ register_component(name, component)
121
+ end
122
+ end
123
+
124
+ def component(name)
125
+ @components[name].constantize
126
+ end
127
+
128
+ def register_method(name, method)
129
+ return if @methods.key?(name) && !override_internal_methods
130
+ @methods[name] = method
131
+ end
132
+
133
+ def register_methods(methods)
134
+ methods.each do |name, method|
135
+ register_method(name, method)
136
+ end
137
+ end
138
+
139
+ def method(name)
140
+ @methods[name]
141
+ end
142
+
143
+ end
144
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsonFlit
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.3"
5
5
  end