@tutorialkit-rb/cli 1.5.2-rb.0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/index.js +1384 -0
  4. package/package.json +66 -0
  5. package/template/.gitignore +13 -0
  6. package/template/.vscode/extensions.json +4 -0
  7. package/template/.vscode/launch.json +11 -0
  8. package/template/README.md +179 -0
  9. package/template/astro.config.ts +21 -0
  10. package/template/bin/build-wasm +30 -0
  11. package/template/icons/languages/css.svg +1 -0
  12. package/template/icons/languages/html.svg +1 -0
  13. package/template/icons/languages/js.svg +1 -0
  14. package/template/icons/languages/json.svg +1 -0
  15. package/template/icons/languages/markdown.svg +1 -0
  16. package/template/icons/languages/ruby.svg +1 -0
  17. package/template/icons/languages/sass.svg +1 -0
  18. package/template/icons/languages/ts.svg +1 -0
  19. package/template/icons/phosphor/file-erb.svg +1 -0
  20. package/template/icons/phosphor/file-rb.svg +5 -0
  21. package/template/package.json +37 -0
  22. package/template/package.json.bak +37 -0
  23. package/template/public/favicon.svg +4 -0
  24. package/template/public/logo-dark.svg +4 -0
  25. package/template/public/logo.svg +4 -0
  26. package/template/ruby-wasm/.railsrc +12 -0
  27. package/template/ruby-wasm/Gemfile +22 -0
  28. package/template/ruby-wasm/Gemfile.lock +292 -0
  29. package/template/ruby-wasm/README.md +19 -0
  30. package/template/ruby-wasm/bin/pack +16 -0
  31. package/template/ruby-wasm/boot.rb +32 -0
  32. package/template/ruby-wasm/config/wasmify.yml +23 -0
  33. package/template/src/components/FileManager.tsx +116 -0
  34. package/template/src/components/GitHubLink.astro +17 -0
  35. package/template/src/components/HeadTags.astro +65 -0
  36. package/template/src/components/HelpDropdown.tsx +72 -0
  37. package/template/src/components/RailsPathLinkHandler.tsx +107 -0
  38. package/template/src/components/ShellConfigurator.tsx +95 -0
  39. package/template/src/components/TopBar.astro +48 -0
  40. package/template/src/content/config.ts +9 -0
  41. package/template/src/content/tutorial/1-getting-started/1-creating-your-first-rails-app/_files/workspace/.keep +0 -0
  42. package/template/src/content/tutorial/1-getting-started/1-creating-your-first-rails-app/content.md +34 -0
  43. package/template/src/content/tutorial/1-getting-started/2-rails-console/_files/.tk-config.json +3 -0
  44. package/template/src/content/tutorial/1-getting-started/2-rails-console/_files/workspace/.keep +0 -0
  45. package/template/src/content/tutorial/1-getting-started/2-rails-console/content.md +37 -0
  46. package/template/src/content/tutorial/1-getting-started/meta.md +4 -0
  47. package/template/src/content/tutorial/2-controllers/2-crud-operations/_files/.tk-config.json +3 -0
  48. package/template/src/content/tutorial/2-controllers/2-crud-operations/_files/workspace/.keep +0 -0
  49. package/template/src/content/tutorial/2-controllers/2-crud-operations/content.md +99 -0
  50. package/template/src/content/tutorial/2-controllers/meta.md +4 -0
  51. package/template/src/content/tutorial/meta.md +18 -0
  52. package/template/src/env.d.ts +3 -0
  53. package/template/src/plugins/remarkRailsPathLinks.ts +39 -0
  54. package/template/src/templates/crud-products/.tk-config.json +3 -0
  55. package/template/src/templates/crud-products/workspace/.keep +0 -0
  56. package/template/src/templates/crud-products/workspace/store/app/controllers/products_controller.rb +48 -0
  57. package/template/src/templates/crud-products/workspace/store/app/models/product.rb +3 -0
  58. package/template/src/templates/crud-products/workspace/store/app/views/products/_form.html.erb +10 -0
  59. package/template/src/templates/crud-products/workspace/store/app/views/products/edit.html.erb +4 -0
  60. package/template/src/templates/crud-products/workspace/store/app/views/products/index.html.erb +11 -0
  61. package/template/src/templates/crud-products/workspace/store/app/views/products/new.html.erb +4 -0
  62. package/template/src/templates/crud-products/workspace/store/app/views/products/show.html.erb +5 -0
  63. package/template/src/templates/crud-products/workspace/store/config/routes.rb +6 -0
  64. package/template/src/templates/crud-products/workspace/store/db/migrate/20250521010850_create_products.rb +9 -0
  65. package/template/src/templates/crud-products/workspace/store/db/schema.rb +22 -0
  66. package/template/src/templates/crud-products/workspace/store/db/seeds.rb +3 -0
  67. package/template/src/templates/crud-products/workspace/store/test/fixtures/products.yml +7 -0
  68. package/template/src/templates/crud-products/workspace/store/test/models/product_test.rb +7 -0
  69. package/template/src/templates/default/bin/console +9 -0
  70. package/template/src/templates/default/bin/rackup +11 -0
  71. package/template/src/templates/default/bin/rails +41 -0
  72. package/template/src/templates/default/bin/ruby +37 -0
  73. package/template/src/templates/default/lib/commands.js +39 -0
  74. package/template/src/templates/default/lib/database.js +46 -0
  75. package/template/src/templates/default/lib/irb.js +110 -0
  76. package/template/src/templates/default/lib/patches/app_generator.rb +43 -0
  77. package/template/src/templates/default/lib/patches/authentication.rb +24 -0
  78. package/template/src/templates/default/lib/rails.js +69 -0
  79. package/template/src/templates/default/lib/server/frame_location_middleware.js +77 -0
  80. package/template/src/templates/default/lib/server.js +307 -0
  81. package/template/src/templates/default/package-lock.json +1830 -0
  82. package/template/src/templates/default/package.json +23 -0
  83. package/template/src/templates/default/pgdata/.keep +0 -0
  84. package/template/src/templates/default/scripts/createdb.js +7 -0
  85. package/template/src/templates/default/scripts/rails.js +52 -0
  86. package/template/src/templates/default/scripts/wait-for-wasm.js +103 -0
  87. package/template/src/templates/default/workspace/.keep +0 -0
  88. package/template/src/templates/rails-app/workspace/store/.ruby-version +1 -0
  89. package/template/src/templates/rails-app/workspace/store/Gemfile +37 -0
  90. package/template/src/templates/rails-app/workspace/store/README.md +24 -0
  91. package/template/src/templates/rails-app/workspace/store/Rakefile +6 -0
  92. package/template/src/templates/rails-app/workspace/store/app/assets/images/.keep +0 -0
  93. package/template/src/templates/rails-app/workspace/store/app/assets/stylesheets/application.css +10 -0
  94. package/template/src/templates/rails-app/workspace/store/app/controllers/application_controller.rb +4 -0
  95. package/template/src/templates/rails-app/workspace/store/app/helpers/application_helper.rb +2 -0
  96. package/template/src/templates/rails-app/workspace/store/app/javascript/application.js +4 -0
  97. package/template/src/templates/rails-app/workspace/store/app/javascript/controllers/application.js +9 -0
  98. package/template/src/templates/rails-app/workspace/store/app/javascript/controllers/index.js +4 -0
  99. package/template/src/templates/rails-app/workspace/store/app/jobs/application_job.rb +7 -0
  100. package/template/src/templates/rails-app/workspace/store/app/mailers/application_mailer.rb +4 -0
  101. package/template/src/templates/rails-app/workspace/store/app/models/application_record.rb +3 -0
  102. package/template/src/templates/rails-app/workspace/store/app/models/concerns/.keep +0 -0
  103. package/template/src/templates/rails-app/workspace/store/app/views/layouts/application.html.erb +28 -0
  104. package/template/src/templates/rails-app/workspace/store/app/views/layouts/mailer.html.erb +13 -0
  105. package/template/src/templates/rails-app/workspace/store/app/views/layouts/mailer.text.erb +1 -0
  106. package/template/src/templates/rails-app/workspace/store/app/views/pwa/manifest.json.erb +22 -0
  107. package/template/src/templates/rails-app/workspace/store/app/views/pwa/service-worker.js +26 -0
  108. package/template/src/templates/rails-app/workspace/store/bin/importmap +4 -0
  109. package/template/src/templates/rails-app/workspace/store/bin/rails +4 -0
  110. package/template/src/templates/rails-app/workspace/store/config/application.rb +30 -0
  111. package/template/src/templates/rails-app/workspace/store/config/boot.rb +3 -0
  112. package/template/src/templates/rails-app/workspace/store/config/cable.yml +10 -0
  113. package/template/src/templates/rails-app/workspace/store/config/credentials.yml.enc +1 -0
  114. package/template/src/templates/rails-app/workspace/store/config/database.yml +32 -0
  115. package/template/src/templates/rails-app/workspace/store/config/environment.rb +5 -0
  116. package/template/src/templates/rails-app/workspace/store/config/environments/development.rb +69 -0
  117. package/template/src/templates/rails-app/workspace/store/config/environments/production.rb +89 -0
  118. package/template/src/templates/rails-app/workspace/store/config/environments/test.rb +53 -0
  119. package/template/src/templates/rails-app/workspace/store/config/importmap.rb +9 -0
  120. package/template/src/templates/rails-app/workspace/store/config/initializers/assets.rb +7 -0
  121. package/template/src/templates/rails-app/workspace/store/config/initializers/content_security_policy.rb +25 -0
  122. package/template/src/templates/rails-app/workspace/store/config/initializers/filter_parameter_logging.rb +8 -0
  123. package/template/src/templates/rails-app/workspace/store/config/initializers/inflections.rb +16 -0
  124. package/template/src/templates/rails-app/workspace/store/config/locales/en.yml +31 -0
  125. package/template/src/templates/rails-app/workspace/store/config/master.key +1 -0
  126. package/template/src/templates/rails-app/workspace/store/config/puma.rb +41 -0
  127. package/template/src/templates/rails-app/workspace/store/config/routes.rb +4 -0
  128. package/template/src/templates/rails-app/workspace/store/config/storage.yml +34 -0
  129. package/template/src/templates/rails-app/workspace/store/config.ru +6 -0
  130. package/template/src/templates/rails-app/workspace/store/db/seeds.rb +9 -0
  131. package/template/src/templates/rails-app/workspace/store/log/.keep +0 -0
  132. package/template/src/templates/rails-app/workspace/store/public/400.html +114 -0
  133. package/template/src/templates/rails-app/workspace/store/public/404.html +114 -0
  134. package/template/src/templates/rails-app/workspace/store/public/406-unsupported-browser.html +114 -0
  135. package/template/src/templates/rails-app/workspace/store/public/422.html +114 -0
  136. package/template/src/templates/rails-app/workspace/store/public/500.html +114 -0
  137. package/template/src/templates/rails-app/workspace/store/public/icon.png +0 -0
  138. package/template/src/templates/rails-app/workspace/store/public/icon.svg +3 -0
  139. package/template/src/templates/rails-app/workspace/store/public/robots.txt +1 -0
  140. package/template/src/templates/rails-app/workspace/store/script/.keep +0 -0
  141. package/template/src/templates/rails-app/workspace/store/storage/.keep +0 -0
  142. package/template/src/templates/rails-app/workspace/store/test/controllers/.keep +0 -0
  143. package/template/src/templates/rails-app/workspace/store/test/helpers/.keep +0 -0
  144. package/template/src/templates/rails-app/workspace/store/test/integration/.keep +0 -0
  145. package/template/src/templates/rails-app/workspace/store/test/test_helper.rb +15 -0
  146. package/template/src/templates/rails-app/workspace/store/tmp/.keep +0 -0
  147. package/template/src/templates/rails-app/workspace/store/tmp/pids/.keep +0 -0
  148. package/template/src/templates/rails-app/workspace/store/tmp/storage/.keep +0 -0
  149. package/template/src/templates/rails-app/workspace/store/vendor/javascripts/.keep +0 -0
  150. package/template/tsconfig.json +16 -0
  151. package/template/uno.config.ts +10 -0
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@tutorialkit-rb/cli",
3
+ "version": "1.5.2-rb.0.1.0",
4
+ "description": "Interactive tutorials powered by WebContainer API",
5
+ "author": "StackBlitz Inc.",
6
+ "type": "module",
7
+ "bugs": "https://github.com/stackblitz/tutorialkit/issues",
8
+ "homepage": "https://github.com/stackblitz/tutorialkit",
9
+ "license": "MIT",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/Bakaface/tutorialkit.rb",
13
+ "directory": "packages/cli"
14
+ },
15
+ "bin": {
16
+ "tutorialkit": "dist/index.js"
17
+ },
18
+ "main": "./dist/index.js",
19
+ "exports": {
20
+ ".": "./dist/index.js"
21
+ },
22
+ "scripts": {
23
+ "build": "node scripts/build.js",
24
+ "build-release": "node scripts/build-release.js",
25
+ "test": "vitest --testTimeout=300000"
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "template",
30
+ "template/.gitignore"
31
+ ],
32
+ "dependencies": {
33
+ "@babel/generator": "7.24.5",
34
+ "@babel/parser": "7.24.5",
35
+ "@babel/traverse": "7.24.5",
36
+ "@babel/types": "7.24.5",
37
+ "@clack/prompts": "^0.7.0",
38
+ "chalk": "^5.3.0",
39
+ "detect-indent": "7.0.1",
40
+ "execa": "^9.2.0",
41
+ "ignore": "^5.3.1",
42
+ "lookpath": "^1.2.2",
43
+ "which-pm": "2.2.0",
44
+ "yargs-parser": "^21.1.1"
45
+ },
46
+ "devDependencies": {
47
+ "@types/babel__generator": "7.6.8",
48
+ "@types/babel__traverse": "7.20.5",
49
+ "@types/fs-extra": "^11.0.4",
50
+ "@types/node": "^20.14.6",
51
+ "@types/yargs-parser": "^21.0.3",
52
+ "esbuild": "^0.20.2",
53
+ "esbuild-node-externals": "^1.13.1",
54
+ "fs-extra": "^11.2.0",
55
+ "tempy": "^3.1.0",
56
+ "vitest": "^3.0.5"
57
+ },
58
+ "engines": {
59
+ "node": ">=18.18.0"
60
+ },
61
+ "keywords": [
62
+ "ruby",
63
+ "rails",
64
+ "wasm"
65
+ ]
66
+ }
@@ -0,0 +1,13 @@
1
+ dist
2
+ .astro
3
+ node_modules
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ pnpm-debug.log*
8
+ .env
9
+ .env.production
10
+ .DS_Store
11
+ .idea
12
+
13
+ public/ruby.wasm
@@ -0,0 +1,4 @@
1
+ {
2
+ "recommendations": ["astro-build.astro-vscode", "StackBlitz.tutorialkit", "unifiedjs.vscode-mdx"],
3
+ "unwantedRecommendations": []
4
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "command": "./node_modules/.bin/astro dev",
6
+ "name": "Development Server",
7
+ "request": "launch",
8
+ "type": "node-terminal"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,179 @@
1
+ # TutorialKit Starter
2
+
3
+ 👋 Welcome to TutorialKit!
4
+
5
+ This README includes everything you need to start writing your tutorial content quickly.
6
+
7
+ ## Project Structure
8
+
9
+ ```bash
10
+ .
11
+ ├── astro.config.mjs # TutorialKit uses Astro 🚀 (https://astro.build)
12
+ ├── src │ ├── ...
13
+ │ ├── content
14
+ │ │ └── tutorial # Your tutorial content lives here
15
+ │ └── templates # Your templates (see below for more information)
16
+ ├── public
17
+ │ ├── favicon.svg
18
+ │ └── logo.svg # Default logo used in top left for your tutorial
19
+ ├── ...
20
+ ├── theme.ts # Customize the theme of the tutorial
21
+ └── uno.config.ts # UnoCSS config (https://unocss.dev/)
22
+ ```
23
+
24
+ ## Getting Started
25
+
26
+ Make sure you have all dependencies installed and started the dev server:
27
+
28
+ ```bash
29
+ <% pkgManager %> install
30
+ <% pkgManager %> run dev
31
+ ```
32
+
33
+ ## Ruby on Rails WebAssembly Support
34
+
35
+ This TutorialKit template includes support for running Ruby on Rails applications directly in the browser using WebAssembly. This enables you to create interactive Rails tutorials without requiring any server-side infrastructure.
36
+
37
+ ### Setting Up Ruby WASM
38
+
39
+ 1. **Configure Dependencies**: Edit `ruby-wasm/Gemfile` to add the Ruby gems needed for your tutorial
40
+ 2. **Build WASM Module**: Run the build command to compile Ruby and your dependencies:
41
+ ```bash
42
+ <% pkgManager %> run build:wasm
43
+ ```
44
+ 3. **Start Development**: Run the dev server as usual:
45
+ ```bash
46
+ <% pkgManager %> run dev
47
+ ```
48
+
49
+ ### How It Works
50
+
51
+ The Ruby WASM build pipeline (`ruby-wasm/` directory):
52
+ - Compiles the Ruby interpreter to WebAssembly
53
+ - Bundles Rails framework and all specified gems
54
+ - Creates a self-contained WASM module that runs entirely in the browser
55
+ - Integrates seamlessly with WebContainers for file system and terminal operations
56
+
57
+ ### Features
58
+
59
+ - **Full Rails Environment**: Run complete Rails applications client-side
60
+ - **Interactive Terminal**: Execute Rails commands (rails new, generate, migrate, etc.)
61
+ - **Live Code Editing**: Edit Ruby/Rails code with instant feedback
62
+ - **No Backend Required**: Everything runs in the user's browser
63
+
64
+ ## UI Structure
65
+
66
+ ```markdown
67
+ ┌─────────────────────────────────────────────────────┐
68
+ │ ● ● ● │
69
+ ├───────────────────────────┬─────────────────────────┤
70
+ │ │ │
71
+ │ │ │
72
+ │ │ │
73
+ │ │ │
74
+ │ │ Code Editor │
75
+ │ │ │
76
+ │ │ │
77
+ │ │ │
78
+ │ │ │
79
+ │ Content ├─────────────────────────┤
80
+ │ │ │
81
+ │ │ │
82
+ │ │ Preview & Boot Screen │
83
+ │ │ │
84
+ │ │ │
85
+ │ ├─────────────────────────┤
86
+ │ │ │
87
+ │ │ Terminal │
88
+ │ │ │
89
+ └───────────────────────────┴─────────────────────────┘
90
+ ```
91
+
92
+ ## Authoring Content
93
+
94
+ A tutorial consists of parts, chapters, and lessons. For example:
95
+
96
+ - Part 1: Basics of Vite
97
+ - Chapter 1: Introduction
98
+ - Lesson 1: Welcome!
99
+ - Lesson 2: Why Vite?
100
+ - …
101
+ - Chapter 2: Your first Vite project
102
+ - Part 2: CLI
103
+ - …
104
+
105
+ Your content is organized into lessons, with chapters and parts providing a structure and defining common metadata for these lessons.
106
+
107
+ Here’s an example of how it would look like in `src/content/tutorial`:
108
+
109
+ ```bash
110
+ tutorial
111
+ ├── 1-basics-of-vite
112
+ │ ├── 1-introduction
113
+ │ │ ├── 1-welcome
114
+ │ │ │ ├── content.md # The content of your lesson
115
+ │ │ │ ├── _files # Initial set of files
116
+ │ │ │ │ └── ...
117
+ │ │ │ └── _solution # Solution of the lesson
118
+ │ │ │ └── ...
119
+ │ │ ├── 2-why-vite
120
+ │ │ │ ├── content.md
121
+ │ │ │ └── _files
122
+ │ │ │ └── ...
123
+ │ │ └── meta.md # Metadata for the chapter
124
+ │ └── meta.md # Metadata for the part
125
+ ├── 2-advanced
126
+ │ ├── ...
127
+ │ └── meta.md
128
+ └── meta.md # Metadata for the tutorial
129
+ ```
130
+
131
+ ### Supported Content Formats
132
+
133
+ Content can be either written as Markdown (`.md`) files or using [MDX](https://mdxjs.com/) (`.mdx`). Files have a Front Matter at the top that contains the metadata and everything that comes after is the content of your lesson.
134
+
135
+ **Example**
136
+
137
+ ```markdown
138
+ ---
139
+ type: lesson
140
+ title: Welcome!
141
+ ---
142
+
143
+ # Welcome to TutorialKit!
144
+
145
+ In this tutorial we'll walk you through how to setup your environment to
146
+ write your first tutorial 🤩
147
+ ```
148
+
149
+ The metadata file (`meta.md`) of parts, chapters, and lessons do not contain any content. It only contains the Front Matter for configuration.
150
+
151
+ ### Metadata
152
+
153
+ Here is an overview of the properties that can be used as part of the Front Matter:
154
+
155
+ | Property | Required | Type | Inherited | Description |
156
+ | --------------- | -------- | --------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
157
+ | type | ✅ | `part \| chapter \| lesson` | ❌ | The type of the metadata. |
158
+ | title | ✅ | `string` | ❌ | The title of the part, chapter, or lesson. |
159
+ | slug | | `string` | ❌ | Let’s you customize the URL pathname which is `/:partSlug/:chapterSlug/:lessonSlug`. |
160
+ | previews | | `Preview[]` | ✅ | Configure which ports should be used for the previews. If not specified, the lowest port will be used. |
161
+ | autoReload | | `boolean` | ✅ | Navigating to a lesson that specifies `autoReload` will always reload the preview. This is typically only needed if your server does not support HMR. |
162
+ | prepareCommands | | `Command[]` | ✅ | List of commands to execute sequentially. They are typically used to install dependencies or to run scripts. |
163
+ | mainCommand | | `Command` | ✅ | The main command to be executed. This command will run after the `prepareCommands`. |
164
+
165
+ A `Command` has the following shape:
166
+
167
+ ```ts
168
+ string | [command: string, title: string] | { command: string, title: string }
169
+ ```
170
+
171
+ The `title` is used as part of the boot screen (see [UI Structure](#ui-structure)).
172
+
173
+ A `Preview` has the following shape:
174
+
175
+ ```ts
176
+ string | [port: number, title: string] | { port: number, title: string }
177
+ ```
178
+
179
+ In most cases, metadata is inherited. For example, if you specify a `mainCommand` on a chapter without specifying it on any of its lessons, each lesson will use the `mainCommand` from its respective chapter. This extends to chapter and parts as well.
@@ -0,0 +1,21 @@
1
+ import tutorialkit from '@tutorialkit-rb/astro';
2
+ import { defineConfig } from 'astro/config';
3
+ import remarkRailsPathLinks from './src/plugins/remarkRailsPathLinks';
4
+
5
+ export default defineConfig({
6
+ devToolbar: {
7
+ enabled: false,
8
+ },
9
+ integrations: [
10
+ tutorialkit({
11
+ components: {
12
+ TopBar: './src/components/TopBar.astro',
13
+ HeadTags: './src/components/HeadTags.astro',
14
+ },
15
+ defaultRoutes: true,
16
+ }),
17
+ ],
18
+ markdown: {
19
+ remarkPlugins: [remarkRailsPathLinks],
20
+ },
21
+ });
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ echo "Building Ruby WASM module..."
6
+
7
+ # Check if ruby-wasm directory exists
8
+ if [ ! -d "ruby-wasm" ]; then
9
+ echo "Error: ruby-wasm directory not found. Make sure you're running this from the template root."
10
+ exit 1
11
+ fi
12
+
13
+ # Change to ruby-wasm directory
14
+ cd ruby-wasm
15
+
16
+ echo "Installing Ruby gems..."
17
+ # Install gems using bundle install
18
+ bundle install --path vendor/bundle
19
+
20
+ echo "Building WASM module..."
21
+ # Run the pack script to build ruby.wasm
22
+ ./bin/pack
23
+
24
+ echo "WASM build completed successfully!"
25
+ echo "ruby.wasm is now available at ruby-wasm/dist/ruby.wasm"
26
+
27
+ # Copy the built ruby.wasm to the public directory
28
+ echo "Copying ruby.wasm to public directory..."
29
+ cp dist/ruby.wasm ../public/
30
+ echo "ruby.wasm copied to public directory."
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#529BBA" d="M10.3 23.3l.8-4H8.6v-2.1h3l.5-2.5H9.5v-2.1h3.1l.8-3.9h2.8l-.8 3.9h2.8l.8-3.9h2.8l-.8 3.9h2.5v2.1h-2.9l-.6 2.5h2.6v2.1h-3l-.8 4H16l.8-4H14l-.8 4h-2.9zm6.9-6.1l.5-2.5h-2.8l-.5 2.5h2.8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#EF7623" d="M8 15l6-5.6V12l-4.5 4 4.5 4v2.6L8 17v-2zm16 2.1l-6 5.6V20l4.6-4-4.6-4V9.3l6 5.6v2.2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#F1DD3F" d="M11.4 10h2.7v7.6c0 3.4-1.6 4.6-4.3 4.6-.6 0-1.5-.1-2-.3l.3-2.2c.4.2.9.3 1.4.3 1.1 0 1.9-.5 1.9-2.4V10zm5.1 9.2c.7.4 1.9.8 3 .8 1.3 0 1.9-.5 1.9-1.3s-.6-1.2-2-1.7c-2-.7-3.3-1.8-3.3-3.6 0-2.1 1.7-3.6 4.6-3.6 1.4 0 2.4.3 3.1.6l-.6 2.2c-.5-.2-1.3-.6-2.5-.6s-1.8.5-1.8 1.2c0 .8.7 1.1 2.2 1.7 2.1.8 3.1 1.9 3.1 3.6 0 2-1.6 3.7-4.9 3.7-1.4 0-2.7-.4-3.4-.7l.6-2.3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#DBCD68" d="M7.5 15.1c1.5 0 1.7-.8 1.7-1.5 0-.6-.1-1.1-.1-1.7S9 10.7 9 10.2c0-2.1 1.3-3 3.4-3h.8v1.9h-.4c-1 0-1.3.6-1.3 1.6 0 .4.1.8.1 1.3 0 .4.1.9.1 1.5 0 1.7-.7 2.3-1.9 2.6 1.2.3 1.9.9 1.9 2.6 0 .6-.1 1.1-.1 1.5 0 .4-.1.9-.1 1.2 0 1 .3 1.6 1.3 1.6h.4v1.9h-.8c-2 0-3.3-.8-3.3-3 0-.6 0-1.1.1-1.7.1-.6.1-1.2.1-1.7 0-.6-.2-1.5-1.7-1.5l-.1-1.9zm17 1.7c-1.5 0-1.7.9-1.7 1.5s.1 1.1.1 1.7c.1.6.1 1.2.1 1.7 0 2.2-1.4 3-3.4 3h-.8V23h.4c1 0 1.3-.6 1.3-1.6 0-.4 0-.8-.1-1.2 0-.5-.1-1-.1-1.5 0-1.7.7-2.3 1.9-2.6-1.2-.3-1.9-.9-1.9-2.6 0-.6.1-1.1.1-1.5.1-.5.1-.9.1-1.3 0-1-.4-1.5-1.3-1.6h-.4V7.2h.8c2.1 0 3.4.9 3.4 3 0 .6-.1 1.1-.1 1.7-.1.6-.1 1.2-.1 1.7 0 .7.2 1.5 1.7 1.5v1.7z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#529BBA" d="M20.7 6.7v9.9h3.8c-2.9 3-5.8 5.9-8.7 8.8-2.7-2.8-5.6-5.8-8.4-8.7h3.5V6.6c1.3.9 4.4 3.1 5 3.1.6 0 3.6-2.2 4.8-3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 7.19l6.64 6.64h.72L15 7.19v-.72l-3.32-3.32-.36-.15H4.68l-.36.15L1 6.47v.72zm7 5.56L2.08 6.83 4.89 4h6.22l2.81 2.83L8 12.75zm0-7.73h2.69l1.81 1.81-4.5 4.4V5.02z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#CF6499" d="M18 17.3c-1.1.7-2.4 1.5-3.5 2.2.4.9.4 1.8.1 2.7-.5 1.6-1.7 2.5-3.2 2.7-.4.1-.8 0-1.1-.1-.4-.1-.6-.4-.7-.7-.4-.9-.3-1.7.3-2.4.4-.4.8-.9 1.3-1.2.5-.4 1.2-.7 1.8-1.1.1-.1.2-.1.4-.2-.3-.2-.4-.4-.6-.4-.8-.5-1.6-1.1-2.3-1.8-.4-.4-.8-.8-1.1-1.3-.9-.7-1-1.7-.5-2.6.4-1 1.1-1.8 1.8-2.5 1.6-1.4 3.4-2.4 5.4-3.1 1.4-.5 2.8-.7 4.2-.5.4.2 1 .3 1.4.5 1.5.6 2.1 1.8 1.6 3.4-.4 1.3-1.2 2.4-2.4 3.1-1.6 1-3.2 1.4-5.1 1.1-.6-.1-1.1-.4-1.6-.9-.1-.2-.2-.4-.3-.5 0 0 0-.1.1-.2 0 0 .1 0 .2.1.8.8 1.7.9 2.6.7 1.7-.3 3.2-.9 4.3-2.2.4-.5.8-1.1 1-1.8.2-.8-.2-1.4-.9-1.8-.8-.4-1.6-.4-2.4-.3-2 .3-3.8 1.1-5.4 2.1-.9.5-1.7 1.1-2.3 1.9-.3.4-.5.8-.7 1.2-.3.8-.2 1.6.4 2.2.4.4.8.8 1.2 1.1.6.5 1.3 1.1 1.9 1.6.1 0 .2.1.3 0 .3-.2.5-.3.8-.4.9-.5 1.8-.9 2.8-1.1 0 .4.1.4.2.5 0-.1 0-.1 0 0zm-4.3 2.5c-.9.5-1.6 1-2.3 1.7-.4.4-.6.8-.7 1.3-.1.6.3.9.9.8.8-.2 1.4-.7 1.8-1.3.5-.8.5-1.5.3-2.5z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M15.6 11.8h-3.4V22H9.7V11.8H6.3V10h9.2v1.8zm7.7 7.1c0-.5-.2-.8-.5-1.1-.3-.3-.9-.5-1.7-.8-1.4-.4-2.5-.9-3.3-1.5-.7-.6-1.1-1.3-1.1-2.3 0-1 .4-1.8 1.3-2.4.8-.6 1.9-.9 3.2-.9 1.3 0 2.4.4 3.2 1.1.8.7 1.2 1.6 1.2 2.6h-2.3c0-.6-.2-1-.6-1.4-.4-.3-.9-.5-1.6-.5-.6 0-1.1.1-1.5.4-.4.3-.5.7-.5 1.1 0 .4.2.7.6 1 .4.3 1 .5 2 .8 1.3.4 2.3.9 3 1.5.7.6 1 1.4 1 2.4s-.4 1.9-1.2 2.4c-.8.6-1.9.9-3.2.9-1.3 0-2.5-.3-3.4-1s-1.5-1.6-1.4-2.9h2.4c0 .7.2 1.2.7 1.6.4.3 1.1.5 1.8.5s1.2-.1 1.5-.4c.2-.3.4-.7.4-1.1z" fill="#529BBA"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><rect width="256" height="256" fill="none"/><path d="M48,120V40a8,8,0,0,1,8-8h96l56,56v32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="160" x2="24" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60" y1="160" x2="60" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="160" x2="100" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="160" x2="84" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60" y1="184" x2="24" y2="184" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="140 208 140 160 164 192 188 160 188 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 160 216 208 244 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>
@@ -0,0 +1,5 @@
1
+ <svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M26.7075 10.2925L19.7075 3.2925C19.6146 3.19967 19.5042 3.12605 19.3829 3.07586C19.2615 3.02568 19.1314 2.9999 19 3H7C6.46957 3 5.96086 3.21071 5.58579 3.58579C5.21071 3.96086 5 4.46957 5 5V14C5 14.2652 5.10536 14.5196 5.29289 14.7071C5.48043 14.8946 5.73478 15 6 15C6.26522 15 6.51957 14.8946 6.70711 14.7071C6.89464 14.5196 7 14.2652 7 14V5H18V11C18 11.2652 18.1054 11.5196 18.2929 11.7071C18.4804 11.8946 18.7348 12 19 12H25V27H23C22.7348 27 22.4804 27.1054 22.2929 27.2929C22.1054 27.4804 22 27.7348 22 28C22 28.2652 22.1054 28.5196 22.2929 28.7071C22.4804 28.8946 22.7348 29 23 29H25C25.5304 29 26.0391 28.7893 26.4142 28.4142C26.7893 28.0391 27 27.5304 27 27V11C27.0001 10.8686 26.9743 10.7385 26.9241 10.6172C26.8739 10.4958 26.8003 10.3854 26.7075 10.2925ZM20 6.41375L23.5863 10H20V6.41375ZM8 18H6C5.73478 18 5.48043 18.1054 5.29289 18.2929C5.10536 18.4804 5 18.7348 5 19V26C5 26.2652 5.10536 26.5196 5.29289 26.7071C5.48043 26.8946 5.73478 27 6 27C6.26522 27 6.51957 26.8946 6.70711 26.7071C6.89464 26.5196 7 26.2652 7 26V25H8C8.24063 24.9997 8.48061 24.975 8.71625 24.9263L9.63625 26.5C9.77724 26.7117 9.9936 26.8617 10.2413 26.9195C10.489 26.9773 10.7494 26.9386 10.9696 26.8112C11.1897 26.6837 11.353 26.4772 11.4262 26.2336C11.4995 25.99 11.4771 25.7277 11.3638 25.5L10.475 23.9725C10.9637 23.4829 11.4309 22.1809 11.4309 22.1809L11.2311 20.1601C11.2311 20.1601 10.518 18.9748 9.94295 18.5903C9.36787 18.2059 8.69176 18.0004 8 18ZM7 23V20H8C8.39782 20 8.77936 20.158 9.06066 20.4393C9.34196 20.7206 9.5 21.1022 9.5 21.5C9.5 21.8978 9.34196 22.2794 9.06066 22.5607C8.77936 22.842 8.39782 23 8 23H7Z" fill="currentColor" />
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M14.5691 18H16.5691C17.2609 18.0004 17.937 18.2059 18.5121 18.5903C19.0872 18.9748 19.8002 20.1601 19.8002 20.1601L20 22.2963C20 22.2963 19.5328 23.1138 19.0441 23.6035H16.5691H13.5691V19C13.5691 18.7348 13.6745 18.4804 13.862 18.2929C14.0495 18.1054 14.3039 18 14.5691 18ZM15.5678 22.2963L15.5691 20H16.5691C16.9669 20 17.3485 20.158 17.6298 20.4393C17.9111 20.7206 18.0691 21.1022 18.0691 21.5C18.0691 21.8978 17.9111 22.015 17.6298 22.2963C17 22.2963 16.9669 22.2963 16.5691 22.2963H15.5678Z" />
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M15.5678 23L15.5691 23.2153C16.2609 23.2157 18.5 24.0698 18.5 22.5C19.0751 22.8845 20 23.6035 20 23.6035L19.8002 25.238C19.8002 25.238 19.5328 26.5104 19.0441 27H13.5691V23.6035C14 23.6035 14 23 14.5 23C14.8842 23 15.3025 23 15.5678 23ZM15.5691 25.8718V23.2153L16.6452 23.1768C17.0431 23.1768 17.5 23.2241 17.6284 23.3111C17.9097 23.5924 18.0678 23.974 18.0678 24.3718C18.0678 24.7696 17.9097 25.1511 17.6284 25.4324C17.3471 25.7138 16.9656 25.8718 16.5678 25.8718H15.5691Z"/>
5
+ </svg>
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "tutorialkit-rb-starter",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "private": true,
6
+ "scripts": {
7
+ "astro": "astro",
8
+ "build": "astro check && astro build",
9
+ "build:wasm": "./bin/build-wasm",
10
+ "dev": "astro dev",
11
+ "preview": "astro preview",
12
+ "start": "astro dev"
13
+ },
14
+ "dependencies": {
15
+ "@codemirror/lang-yaml": "^6.1.2",
16
+ "@codemirror/legacy-modes": "^6.5.1",
17
+ "@nanostores/react": "0.7.2",
18
+ "@tutorialkit-rb/react": "1.5.2-rb.0.1.0",
19
+ "nanostores": "^0.10.3",
20
+ "react": "^18.3.1",
21
+ "react-dom": "^18.3.1"
22
+ },
23
+ "devDependencies": {
24
+ "@astrojs/check": "^0.7.0",
25
+ "@astrojs/react": "^3.6.0",
26
+ "@tutorialkit-rb/astro": "1.5.2-rb.0.1.0",
27
+ "@tutorialkit-rb/theme": "1.5.2-rb.0.1.0",
28
+ "@tutorialkit-rb/types": "1.5.2-rb.0.1.0",
29
+ "@types/mdast": "^4.0.4",
30
+ "@types/node": "^20.14.6",
31
+ "@types/react": "^18.3.3",
32
+ "astro": "^4.15.0",
33
+ "prettier-plugin-astro": "^0.14.1",
34
+ "typescript": "^5.4.5",
35
+ "unist-util-visit": "^5.0.0"
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "tutorialkit-rb-starter",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "private": true,
6
+ "scripts": {
7
+ "astro": "astro",
8
+ "build": "astro check && astro build",
9
+ "build:wasm": "./bin/build-wasm",
10
+ "dev": "astro dev",
11
+ "preview": "astro preview",
12
+ "start": "astro dev"
13
+ },
14
+ "dependencies": {
15
+ "@codemirror/lang-yaml": "^6.1.2",
16
+ "@codemirror/legacy-modes": "^6.5.1",
17
+ "@nanostores/react": "0.7.2",
18
+ "@tutorialkit-rb/react": "workspace:*",
19
+ "nanostores": "^0.10.3",
20
+ "react": "^18.3.1",
21
+ "react-dom": "^18.3.1"
22
+ },
23
+ "devDependencies": {
24
+ "@astrojs/check": "^0.7.0",
25
+ "@astrojs/react": "^3.6.0",
26
+ "@tutorialkit-rb/astro": "workspace:*",
27
+ "@tutorialkit-rb/theme": "workspace:*",
28
+ "@tutorialkit-rb/types": "workspace:*",
29
+ "@types/mdast": "^4.0.4",
30
+ "@types/node": "^20.14.6",
31
+ "@types/react": "^18.3.3",
32
+ "astro": "^4.15.0",
33
+ "prettier-plugin-astro": "^0.14.1",
34
+ "typescript": "^5.4.5",
35
+ "unist-util-visit": "^5.0.0"
36
+ }
37
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
2
+ <rect width="16" height="16" rx="2" fill="#1389fd" />
3
+ <path d="M7.398 9.091h-3.58L10.364 2 8.602 6.909h3.58L5.636 14l1.762-4.909Z" fill="#fff" />
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg viewBox="0 0 95 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M60.5 14.0002V6.4002H62.6V14.0002H60.5ZM61.6 5.4002C61.3 5.4002 61 5.3002 60.8 5.1002C60.6 4.9002 60.5 4.6002 60.5 4.3002C60.5 4.0002 60.6 3.8002 60.8 3.5002C61 3.3002 61.3 3.2002 61.6 3.2002C61.9 3.2002 62.2 3.3002 62.4 3.5002C62.6 3.7002 62.7 4.0002 62.7 4.3002C62.7 4.6002 62.6 4.8002 62.4 5.1002C62.2 5.3002 61.9 5.4002 61.6 5.4002ZM86.4 14.0002V6.4002H88.5V14.0002H86.4ZM87.5 5.4002C87.2 5.4002 86.9 5.3002 86.7 5.1002C86.5 4.9002 86.4 4.6002 86.4 4.3002C86.4 4.0002 86.5 3.8002 86.7 3.5002C86.9 3.3002 87.2 3.2002 87.5 3.2002C87.8 3.2002 88.1 3.3002 88.3 3.5002C88.5 3.7002 88.6 4.0002 88.6 4.3002C88.6 4.6002 88.5 4.8002 88.3 5.1002C88.1 5.3002 87.8 5.4002 87.5 5.4002ZM94.3 6.4002V8.0002H92.9V11.7002C92.9 11.9002 92.9 12.0002 93 12.2002C93.1 12.3002 93.1 12.4002 93.2 12.4002C93.3 12.4002 93.4 12.5002 93.6 12.5002C93.7 12.5002 93.8 12.5002 93.9 12.5002C94 12.5002 94.1 12.5002 94.1 12.5002L94.4 14.1002C94.3 14.1002 94.1 14.2002 94 14.2002C93.8 14.2002 93.6 14.3002 93.3 14.3002C92.8 14.3002 92.3 14.3002 92 14.1002C91.6 13.9002 91.3 13.7002 91.1 13.4002C90.9 13.1002 90.8 12.7002 90.8 12.2002V8.0002H89.8V6.4002H90.8V4.5002H92.9V6.3002H94.3V6.4002ZM76.3 3.8002V14.0002H78.5V11.1002L79.6 9.8002L82.4 14.0002H85L81.2 8.4002L85 3.8002H82.4L78.7 8.3002H78.6V3.8002H76.3ZM74.6 3.8002V14.0002H72.5V3.8002H74.6ZM65.2 13.9002C65.6 14.1002 66 14.2002 66.5 14.2002C66.9 14.2002 67.2 14.2002 67.5 14.1002C67.8 14.0002 68 13.9002 68.2 13.7002C68.4 13.5002 68.6 13.3002 68.7 13.1002H68.8V14.0002H70.8V8.8002C70.8 8.3002 70.7 8.00019 70.5 7.60019C70.3 7.30019 70.1 7.0002 69.8 6.8002C69.5 6.6002 69.2 6.4002 68.8 6.3002C68.4 6.2002 68 6.2002 67.6 6.2002C67 6.2002 66.5 6.3002 66 6.5002C65.5 6.7002 65.2 6.9002 64.9 7.3002C64.6 7.6002 64.4 8.0002 64.3 8.5002L66.3 8.7002C66.4 8.4002 66.5 8.2002 66.7 8.1002C66.9 7.9002 67.2 7.8002 67.6 7.8002C68 7.8002 68.2 7.9002 68.4 8.1002C68.6 8.3002 68.7 8.5002 68.7 8.8002C68.7 9.0002 68.6 9.1002 68.5 9.2002C68.4 9.3002 68.2 9.3002 67.9 9.4002C67.6 9.4002 67.3 9.5002 66.8 9.5002C66.4 9.5002 66.1 9.6002 65.7 9.7002C65.4 9.8002 65.1 9.9002 64.8 10.1002C64.5 10.3002 64.3 10.5002 64.2 10.8002C64 11.1002 64 11.4002 64 11.9002C64 12.4002 64.1 12.8002 64.3 13.2002C64.5 13.5002 64.8 13.7002 65.2 13.9002ZM68 12.5002C67.8 12.6002 67.5 12.7002 67.2 12.7002C66.9 12.7002 66.6 12.6002 66.4 12.5002C66.2 12.3002 66.1 12.1002 66.1 11.8002C66.1 11.6002 66.2 11.4002 66.3 11.3002C66.4 11.2002 66.5 11.1002 66.7 11.0002C66.9 10.9002 67.1 10.9002 67.4 10.8002C67.5 10.8002 67.6 10.8002 67.8 10.7002C67.9 10.7002 68.1 10.7002 68.2 10.6002C68.3 10.6002 68.5 10.5002 68.6 10.5002C68.7 10.5002 68.8 10.4002 68.9 10.4002V11.2002C68.9 11.5002 68.8 11.7002 68.7 11.9002C68.6 12.1002 68.2 12.4002 68 12.5002ZM54.8 6.4002V14.0002H56.9V9.7002C56.9 9.4002 57 9.1002 57.1 8.9002C57.2 8.7002 57.4 8.5002 57.7 8.3002C57.9 8.2002 58.2 8.1002 58.5 8.1002C58.6 8.1002 58.8 8.1002 59 8.1002C59.2 8.1002 59.3 8.1002 59.4 8.2002V6.3002C59.3 6.3002 59.2 6.3002 59.1 6.2002C59 6.2002 58.9 6.2002 58.8 6.2002C58.4 6.2002 58 6.3002 57.7 6.6002C57.4 6.8002 57.1 7.2002 57 7.7002H56.9V6.4002H54.8ZM49.7 14.1002C48.9 14.1002 48.3 13.9002 47.7 13.6002C47.1 13.3002 46.7 12.8002 46.4 12.2002C46.1 11.6002 45.9 10.9002 45.9 10.1002C45.9 9.3002 46.1 8.6002 46.4 8.0002C46.7 7.4002 47.1 6.9002 47.7 6.6002C48.3 6.3002 48.9 6.1002 49.7 6.1002C50.5 6.1002 51.1 6.3002 51.7 6.6002C52.3 6.9002 52.7 7.4002 53 8.0002C53.3 8.6002 53.5 9.3002 53.5 10.1002C53.5 10.9002 53.3 11.6002 53 12.2002C52.7 12.8002 52.3 13.3002 51.7 13.6002C51.1 14.0002 50.4 14.1002 49.7 14.1002ZM49.7 12.5002C50.1 12.5002 50.3 12.4002 50.6 12.2002C50.8 12.0002 51 11.7002 51.1 11.4002C51.2 11.1002 51.3 10.7002 51.3 10.2002C51.3 9.8002 51.2 9.4002 51.1 9.0002C51 8.7002 50.8 8.4002 50.6 8.2002C50.3 8.0002 50 7.9002 49.7 7.9002C49.3 7.9002 49 8.0002 48.8 8.2002C48.6 8.4002 48.4 8.7002 48.3 9.0002C48.2 9.3002 48.1 9.7002 48.1 10.2002C48.1 10.6002 48.2 11.0002 48.3 11.4002C48.4 11.7002 48.6 12.0002 48.8 12.2002C49 12.4002 49.3 12.5002 49.7 12.5002ZM44.9 8.0002V6.4002H43.5V4.5002H41.4V6.3002H40.4V8.0002H41.4V12.0002C41.4 12.5002 41.5 12.9002 41.7 13.2002C41.9 13.5002 42.2 13.8002 42.6 13.9002C43 14.1002 43.4 14.1002 43.9 14.1002C44.2 14.1002 44.4 14.1002 44.6 14.0002C44.8 14.0002 44.9 13.9002 45 13.9002L44.7 12.3002C44.6 12.3002 44.6 12.3002 44.5 12.3002C44.4 12.3002 44.3 12.3002 44.2 12.3002C44.1 12.3002 43.9 12.3002 43.8 12.2002C43.7 12.2002 43.6 12.1002 43.6 12.0002C43.5 11.9002 43.5 11.7002 43.5 11.5002V8.0002H44.9ZM37.1 10.7002V6.4002H39.2V14.0002H37.2V12.6002H37.1C36.9 13.0002 36.6 13.4002 36.2 13.7002C35.8 14.0002 35.3 14.1002 34.7 14.1002C34.2 14.1002 33.7 14.0002 33.4 13.8002C33 13.6002 32.7 13.2002 32.5 12.8002C32.3 12.4002 32.2 11.9002 32.2 11.3002V6.4002H34.3V10.9002C34.3 11.4002 34.4 11.7002 34.7 12.0002C34.9 12.3002 35.3 12.4002 35.7 12.4002C36 12.4002 36.2 12.3002 36.4 12.2002C36.6 12.1002 36.8 11.9002 36.9 11.7002C37 11.4002 37.1 11.1002 37.1 10.7002ZM23.5 3.8002V5.6002H26.6V14.0002H28.7V5.6002H31.8V3.8002H23.5Z" fill="#E4E6E9"/>
3
+ <path d="M0 4.6V8.4L5.6 5.6V7.3L9.4 5.5V0L0 4.6ZM5.6 9.5L16 4.5V8.3L5.6 13.4V9.5ZM13.7 11.6L8.5 14.1L16 16V12.2L13.7 11.6Z" fill="#E4E6E9"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg viewBox="0 0 95 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M60.5 14.0002V6.4002H62.6V14.0002H60.5ZM61.6 5.4002C61.3 5.4002 61 5.3002 60.8 5.1002C60.6 4.9002 60.5 4.6002 60.5 4.3002C60.5 4.0002 60.6 3.8002 60.8 3.5002C61 3.3002 61.3 3.2002 61.6 3.2002C61.9 3.2002 62.2 3.3002 62.4 3.5002C62.6 3.7002 62.7 4.0002 62.7 4.3002C62.7 4.6002 62.6 4.8002 62.4 5.1002C62.2 5.3002 61.9 5.4002 61.6 5.4002ZM86.4 14.0002V6.4002H88.5V14.0002H86.4ZM87.5 5.4002C87.2 5.4002 86.9 5.3002 86.7 5.1002C86.5 4.9002 86.4 4.6002 86.4 4.3002C86.4 4.0002 86.5 3.8002 86.7 3.5002C86.9 3.3002 87.2 3.2002 87.5 3.2002C87.8 3.2002 88.1 3.3002 88.3 3.5002C88.5 3.7002 88.6 4.0002 88.6 4.3002C88.6 4.6002 88.5 4.8002 88.3 5.1002C88.1 5.3002 87.8 5.4002 87.5 5.4002ZM94.3 6.4002V8.0002H92.9V11.7002C92.9 11.9002 92.9 12.0002 93 12.2002C93.1 12.3002 93.1 12.4002 93.2 12.4002C93.3 12.4002 93.4 12.5002 93.6 12.5002C93.7 12.5002 93.8 12.5002 93.9 12.5002C94 12.5002 94.1 12.5002 94.1 12.5002L94.4 14.1002C94.3 14.1002 94.1 14.2002 94 14.2002C93.8 14.2002 93.6 14.3002 93.3 14.3002C92.8 14.3002 92.3 14.3002 92 14.1002C91.6 13.9002 91.3 13.7002 91.1 13.4002C90.9 13.1002 90.8 12.7002 90.8 12.2002V8.0002H89.8V6.4002H90.8V4.5002H92.9V6.3002H94.3V6.4002ZM76.3 3.8002V14.0002H78.5V11.1002L79.6 9.8002L82.4 14.0002H85L81.2 8.4002L85 3.8002H82.4L78.7 8.3002H78.6V3.8002H76.3ZM74.6 3.8002V14.0002H72.5V3.8002H74.6ZM65.2 13.9002C65.6 14.1002 66 14.2002 66.5 14.2002C66.9 14.2002 67.2 14.2002 67.5 14.1002C67.8 14.0002 68 13.9002 68.2 13.7002C68.4 13.5002 68.6 13.3002 68.7 13.1002H68.8V14.0002H70.8V8.8002C70.8 8.3002 70.7 8.00019 70.5 7.60019C70.3 7.30019 70.1 7.0002 69.8 6.8002C69.5 6.6002 69.2 6.4002 68.8 6.3002C68.4 6.2002 68 6.2002 67.6 6.2002C67 6.2002 66.5 6.3002 66 6.5002C65.5 6.7002 65.2 6.9002 64.9 7.3002C64.6 7.6002 64.4 8.0002 64.3 8.5002L66.3 8.7002C66.4 8.4002 66.5 8.2002 66.7 8.1002C66.9 7.9002 67.2 7.8002 67.6 7.8002C68 7.8002 68.2 7.9002 68.4 8.1002C68.6 8.3002 68.7 8.5002 68.7 8.8002C68.7 9.0002 68.6 9.1002 68.5 9.2002C68.4 9.3002 68.2 9.3002 67.9 9.4002C67.6 9.4002 67.3 9.5002 66.8 9.5002C66.4 9.5002 66.1 9.6002 65.7 9.7002C65.4 9.8002 65.1 9.9002 64.8 10.1002C64.5 10.3002 64.3 10.5002 64.2 10.8002C64 11.1002 64 11.4002 64 11.9002C64 12.4002 64.1 12.8002 64.3 13.2002C64.5 13.5002 64.8 13.7002 65.2 13.9002ZM68 12.5002C67.8 12.6002 67.5 12.7002 67.2 12.7002C66.9 12.7002 66.6 12.6002 66.4 12.5002C66.2 12.3002 66.1 12.1002 66.1 11.8002C66.1 11.6002 66.2 11.4002 66.3 11.3002C66.4 11.2002 66.5 11.1002 66.7 11.0002C66.9 10.9002 67.1 10.9002 67.4 10.8002C67.5 10.8002 67.6 10.8002 67.8 10.7002C67.9 10.7002 68.1 10.7002 68.2 10.6002C68.3 10.6002 68.5 10.5002 68.6 10.5002C68.7 10.5002 68.8 10.4002 68.9 10.4002V11.2002C68.9 11.5002 68.8 11.7002 68.7 11.9002C68.6 12.1002 68.2 12.4002 68 12.5002ZM54.8 6.4002V14.0002H56.9V9.7002C56.9 9.4002 57 9.1002 57.1 8.9002C57.2 8.7002 57.4 8.5002 57.7 8.3002C57.9 8.2002 58.2 8.1002 58.5 8.1002C58.6 8.1002 58.8 8.1002 59 8.1002C59.2 8.1002 59.3 8.1002 59.4 8.2002V6.3002C59.3 6.3002 59.2 6.3002 59.1 6.2002C59 6.2002 58.9 6.2002 58.8 6.2002C58.4 6.2002 58 6.3002 57.7 6.6002C57.4 6.8002 57.1 7.2002 57 7.7002H56.9V6.4002H54.8ZM49.7 14.1002C48.9 14.1002 48.3 13.9002 47.7 13.6002C47.1 13.3002 46.7 12.8002 46.4 12.2002C46.1 11.6002 45.9 10.9002 45.9 10.1002C45.9 9.3002 46.1 8.6002 46.4 8.0002C46.7 7.4002 47.1 6.9002 47.7 6.6002C48.3 6.3002 48.9 6.1002 49.7 6.1002C50.5 6.1002 51.1 6.3002 51.7 6.6002C52.3 6.9002 52.7 7.4002 53 8.0002C53.3 8.6002 53.5 9.3002 53.5 10.1002C53.5 10.9002 53.3 11.6002 53 12.2002C52.7 12.8002 52.3 13.3002 51.7 13.6002C51.1 14.0002 50.4 14.1002 49.7 14.1002ZM49.7 12.5002C50.1 12.5002 50.3 12.4002 50.6 12.2002C50.8 12.0002 51 11.7002 51.1 11.4002C51.2 11.1002 51.3 10.7002 51.3 10.2002C51.3 9.8002 51.2 9.4002 51.1 9.0002C51 8.7002 50.8 8.4002 50.6 8.2002C50.3 8.0002 50 7.9002 49.7 7.9002C49.3 7.9002 49 8.0002 48.8 8.2002C48.6 8.4002 48.4 8.7002 48.3 9.0002C48.2 9.3002 48.1 9.7002 48.1 10.2002C48.1 10.6002 48.2 11.0002 48.3 11.4002C48.4 11.7002 48.6 12.0002 48.8 12.2002C49 12.4002 49.3 12.5002 49.7 12.5002ZM44.9 8.0002V6.4002H43.5V4.5002H41.4V6.3002H40.4V8.0002H41.4V12.0002C41.4 12.5002 41.5 12.9002 41.7 13.2002C41.9 13.5002 42.2 13.8002 42.6 13.9002C43 14.1002 43.4 14.1002 43.9 14.1002C44.2 14.1002 44.4 14.1002 44.6 14.0002C44.8 14.0002 44.9 13.9002 45 13.9002L44.7 12.3002C44.6 12.3002 44.6 12.3002 44.5 12.3002C44.4 12.3002 44.3 12.3002 44.2 12.3002C44.1 12.3002 43.9 12.3002 43.8 12.2002C43.7 12.2002 43.6 12.1002 43.6 12.0002C43.5 11.9002 43.5 11.7002 43.5 11.5002V8.0002H44.9ZM37.1 10.7002V6.4002H39.2V14.0002H37.2V12.6002H37.1C36.9 13.0002 36.6 13.4002 36.2 13.7002C35.8 14.0002 35.3 14.1002 34.7 14.1002C34.2 14.1002 33.7 14.0002 33.4 13.8002C33 13.6002 32.7 13.2002 32.5 12.8002C32.3 12.4002 32.2 11.9002 32.2 11.3002V6.4002H34.3V10.9002C34.3 11.4002 34.4 11.7002 34.7 12.0002C34.9 12.3002 35.3 12.4002 35.7 12.4002C36 12.4002 36.2 12.3002 36.4 12.2002C36.6 12.1002 36.8 11.9002 36.9 11.7002C37 11.4002 37.1 11.1002 37.1 10.7002ZM23.5 3.8002V5.6002H26.6V14.0002H28.7V5.6002H31.8V3.8002H23.5Z" fill="#31343B"/>
3
+ <path d="M0 4.6V8.4L5.6 5.6V7.3L9.4 5.5V0L0 4.6ZM5.6 9.5L16 4.5V8.3L5.6 13.4V9.5ZM13.7 11.6L8.5 14.1L16 16V12.2L13.7 11.6Z" fill="#31343B"/>
4
+ </svg>
@@ -0,0 +1,12 @@
1
+ --skip-bundle
2
+ --skip-git
3
+ --skip-decrypted-diffs
4
+ --skip-bootsnap
5
+ --skip-brakeman
6
+ --skip-dev-gems
7
+ --skip-kamal
8
+ --skip-thruster
9
+ --skip-docker
10
+ --skip-system-test
11
+ --skip-dev-gems
12
+ --skip-rubocop
@@ -0,0 +1,22 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "wasmify-rails", "~> 0.4.0"
4
+
5
+ gem "rails", "~> 8.0.0"
6
+
7
+ # rails new gems
8
+ gem "propshaft"
9
+ gem "importmap-rails"
10
+ gem "turbo-rails"
11
+ gem "stimulus-rails"
12
+ gem "jbuilder"
13
+
14
+ gem "bcrypt", "~> 3.1.7"
15
+
16
+ gem "solid_cache"
17
+ gem "solid_queue"
18
+ gem "solid_cable"
19
+
20
+ gem "image_processing", "~> 1.2"
21
+
22
+ gem "tzinfo-data"