neon_sakura 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.ai-reviewer/README.md +182 -0
- data/.ai-reviewer/ai-reviewer.sh +56 -0
- data/.ai-reviewer/build-system-prompt.sh +136 -0
- data/.ai-reviewer/extract-claude-sections.sh +32 -0
- data/.ai-reviewer/test-ai-reviewer.sh +40 -0
- data/.ai-reviewer-config.yml +190 -0
- data/.github/dependabot.yml +12 -0
- data/.github/settings.yml +70 -0
- data/.github/workflows/ai-pr-review-on-comment.yml +384 -0
- data/.github/workflows/ai-pr-review.yml +328 -0
- data/.github/workflows/license-check.yml +78 -0
- data/.github/workflows/lint.yml +79 -0
- data/.github/workflows/security.yml +131 -0
- data/.github/workflows/semgrep.yml +26 -0
- data/.github/workflows/test.yml +44 -0
- data/.gitignore +75 -0
- data/.rubocop.yml +33 -0
- data/.ruby-version +1 -0
- data/.simplecov +14 -0
- data/.stylelintignore +10 -0
- data/.stylelintrc.json +37 -0
- data/AGENTS.md +51 -0
- data/CHANGELOG.md +568 -0
- data/CLAUDE.md +632 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +327 -0
- data/LICENSE +21 -0
- data/README.md +1209 -0
- data/Rakefile +25 -0
- data/app/assets/images/cherry_blossom.svg +1525 -0
- data/app/assets/images/cherry_blossom_tree.png +0 -0
- data/app/assets/images/prysm-icon.png +0 -0
- data/app/assets/stylesheets/base.css +29 -0
- data/app/assets/stylesheets/components.css +1652 -0
- data/app/assets/stylesheets/forms.css +152 -0
- data/app/assets/stylesheets/loading.css +145 -0
- data/app/assets/stylesheets/neon_sakura.css +40 -0
- data/app/assets/stylesheets/pagy-tailwind.css +120 -0
- data/app/assets/stylesheets/theme-default.css +40 -0
- data/app/assets/stylesheets/theme-green.css +84 -0
- data/app/assets/stylesheets/theme-purple.css +94 -0
- data/app/assets/stylesheets/theme-red.css +84 -0
- data/app/assets/stylesheets/utility-borders.css +29 -0
- data/app/assets/stylesheets/utility-colors.css +185 -0
- data/app/assets/stylesheets/utility-effects.css +123 -0
- data/app/assets/stylesheets/utility-gradients.css +158 -0
- data/app/assets/stylesheets/utility-layout.css +132 -0
- data/app/assets/stylesheets/utility-reset.css +13 -0
- data/app/assets/stylesheets/utility-responsive.css +145 -0
- data/app/assets/stylesheets/utility-sizing.css +99 -0
- data/app/assets/stylesheets/utility-spacing.css +174 -0
- data/app/assets/stylesheets/utility-typography.css +97 -0
- data/app/controllers/errors_controller.rb +120 -0
- data/app/controllers/style_guide_controller.rb +117 -0
- data/app/helpers/errors_helper.rb +12 -0
- data/app/helpers/neon_sakura/navbar_helper.rb +43 -0
- data/app/helpers/style_guide_helper.rb +36 -0
- data/app/javascript/neon_sakura/dropdown.js +22 -0
- data/app/javascript/neon_sakura/navbar.js +71 -0
- data/app/javascript/neon_sakura/theme_switcher.js +187 -0
- data/app/views/errors/show.html.erb +105 -0
- data/app/views/layouts/error.html.erb +19 -0
- data/app/views/layouts/mission_control/jobs/_application_selection.html.erb +14 -0
- data/app/views/layouts/mission_control/jobs/_navigation.html.erb +21 -0
- data/app/views/layouts/mission_control/jobs/application.html.erb +453 -0
- data/app/views/layouts/style_guide.html.erb +416 -0
- data/app/views/shared/_file_upload.html.erb +184 -0
- data/app/views/shared/_footer.html.erb +23 -0
- data/app/views/shared/_header.html.erb +42 -0
- data/app/views/shared/_navbar.html.erb +306 -0
- data/app/views/shared/_profile_image_selector.html.erb +165 -0
- data/app/views/shared/_theme_switcher.html.erb +64 -0
- data/app/views/shared/icons/_adjustments.html.erb +10 -0
- data/app/views/shared/icons/_alert_circle.html.erb +3 -0
- data/app/views/shared/icons/_alert_triangle.html.erb +3 -0
- data/app/views/shared/icons/_archive.html.erb +3 -0
- data/app/views/shared/icons/_arrow_down.html.erb +3 -0
- data/app/views/shared/icons/_arrow_left.html.erb +3 -0
- data/app/views/shared/icons/_arrow_up.html.erb +3 -0
- data/app/views/shared/icons/_arrows_pointing_in.html.erb +10 -0
- data/app/views/shared/icons/_arrows_pointing_out.html.erb +10 -0
- data/app/views/shared/icons/_artemis_logo.html.erb +26 -0
- data/app/views/shared/icons/_auth_banner.html.erb +1 -0
- data/app/views/shared/icons/_bars.html.erb +10 -0
- data/app/views/shared/icons/_bell.html.erb +3 -0
- data/app/views/shared/icons/_book.html.erb +3 -0
- data/app/views/shared/icons/_bookmark.html.erb +3 -0
- data/app/views/shared/icons/_box.html.erb +3 -0
- data/app/views/shared/icons/_brain.html.erb +3 -0
- data/app/views/shared/icons/_briefcase.html.erb +3 -0
- data/app/views/shared/icons/_calendar.html.erb +3 -0
- data/app/views/shared/icons/_camera.html.erb +4 -0
- data/app/views/shared/icons/_chart_bar.html.erb +3 -0
- data/app/views/shared/icons/_chart_line.html.erb +10 -0
- data/app/views/shared/icons/_chart_pie.html.erb +11 -0
- data/app/views/shared/icons/_chat.html.erb +3 -0
- data/app/views/shared/icons/_check.html.erb +3 -0
- data/app/views/shared/icons/_check_circle.html.erb +3 -0
- data/app/views/shared/icons/_cherry_blossom.html.erb +1516 -0
- data/app/views/shared/icons/_cherry_blossom_silhouette.html.erb +1016 -0
- data/app/views/shared/icons/_cherry_blossom_single_flower.html.erb +1125 -0
- data/app/views/shared/icons/_cherry_blossom_tree.html.erb +159 -0
- data/app/views/shared/icons/_chevron_down.html.erb +3 -0
- data/app/views/shared/icons/_chevron_right.html.erb +9 -0
- data/app/views/shared/icons/_clipboard.html.erb +3 -0
- data/app/views/shared/icons/_clock.html.erb +3 -0
- data/app/views/shared/icons/_close.html.erb +3 -0
- data/app/views/shared/icons/_cog.html.erb +4 -0
- data/app/views/shared/icons/_crop.html.erb +10 -0
- data/app/views/shared/icons/_crown.html.erb +3 -0
- data/app/views/shared/icons/_disc.html.erb +3 -0
- data/app/views/shared/icons/_download.html.erb +3 -0
- data/app/views/shared/icons/_dragonfly.html.erb +58 -0
- data/app/views/shared/icons/_duplicate.html.erb +4 -0
- data/app/views/shared/icons/_edit.html.erb +3 -0
- data/app/views/shared/icons/_envelope.html.erb +3 -0
- data/app/views/shared/icons/_eraser.html.erb +10 -0
- data/app/views/shared/icons/_external_link.html.erb +3 -0
- data/app/views/shared/icons/_eye.html.erb +4 -0
- data/app/views/shared/icons/_file_csv.html.erb +10 -0
- data/app/views/shared/icons/_file_export.html.erb +10 -0
- data/app/views/shared/icons/_file_image.html.erb +10 -0
- data/app/views/shared/icons/_file_import.html.erb +10 -0
- data/app/views/shared/icons/_file_question.html.erb +6 -0
- data/app/views/shared/icons/_film.html.erb +3 -0
- data/app/views/shared/icons/_filter.html.erb +3 -0
- data/app/views/shared/icons/_folder.html.erb +3 -0
- data/app/views/shared/icons/_folder_open.html.erb +3 -0
- data/app/views/shared/icons/_folder_plus.html.erb +3 -0
- data/app/views/shared/icons/_globe.html.erb +3 -0
- data/app/views/shared/icons/_google.html.erb +11 -0
- data/app/views/shared/icons/_heart.html.erb +3 -0
- data/app/views/shared/icons/_heart_broken.html.erb +11 -0
- data/app/views/shared/icons/_heart_pulse.html.erb +4 -0
- data/app/views/shared/icons/_history.html.erb +11 -0
- data/app/views/shared/icons/_home.html.erb +10 -0
- data/app/views/shared/icons/_image.html.erb +3 -0
- data/app/views/shared/icons/_inbox.html.erb +3 -0
- data/app/views/shared/icons/_info_circle.html.erb +10 -0
- data/app/views/shared/icons/_key.html.erb +3 -0
- data/app/views/shared/icons/_layers.html.erb +10 -0
- data/app/views/shared/icons/_lightbulb.html.erb +10 -0
- data/app/views/shared/icons/_lightning.html.erb +3 -0
- data/app/views/shared/icons/_list.html.erb +3 -0
- data/app/views/shared/icons/_lock.html.erb +3 -0
- data/app/views/shared/icons/_logout.html.erb +3 -0
- data/app/views/shared/icons/_magazine.html.erb +3 -0
- data/app/views/shared/icons/_magic.html.erb +3 -0
- data/app/views/shared/icons/_minus.html.erb +10 -0
- data/app/views/shared/icons/_mobile.html.erb +10 -0
- data/app/views/shared/icons/_moon.html.erb +3 -0
- data/app/views/shared/icons/_network.html.erb +10 -0
- data/app/views/shared/icons/_new_item_banner.html.erb +1 -0
- data/app/views/shared/icons/_ouroboros.html.erb +24 -0
- data/app/views/shared/icons/_package.html.erb +3 -0
- data/app/views/shared/icons/_palette.html.erb +3 -0
- data/app/views/shared/icons/_paper_plane.html.erb +10 -0
- data/app/views/shared/icons/_photo.html.erb +10 -0
- data/app/views/shared/icons/_play.html.erb +4 -0
- data/app/views/shared/icons/_plus.html.erb +3 -0
- data/app/views/shared/icons/_pocket.html.erb +11 -0
- data/app/views/shared/icons/_prysm-icon.html.erb +34 -0
- data/app/views/shared/icons/_prysm.html.erb +13 -0
- data/app/views/shared/icons/_pushbullet-1.html.erb +29 -0
- data/app/views/shared/icons/_pushbullet-2.html.erb +2 -0
- data/app/views/shared/icons/_puzzle.html.erb +10 -0
- data/app/views/shared/icons/_qrcode.html.erb +3 -0
- data/app/views/shared/icons/_question.html.erb +3 -0
- data/app/views/shared/icons/_receipt.html.erb +10 -0
- data/app/views/shared/icons/_redo.html.erb +3 -0
- data/app/views/shared/icons/_refresh.html.erb +3 -0
- data/app/views/shared/icons/_rocket.html.erb +10 -0
- data/app/views/shared/icons/_rss.html.erb +3 -0
- data/app/views/shared/icons/_save.html.erb +3 -0
- data/app/views/shared/icons/_search.html.erb +3 -0
- data/app/views/shared/icons/_search_minus.html.erb +10 -0
- data/app/views/shared/icons/_search_plus.html.erb +10 -0
- data/app/views/shared/icons/_server_error.html.erb +6 -0
- data/app/views/shared/icons/_share.html.erb +3 -0
- data/app/views/shared/icons/_shield_check.html.erb +3 -0
- data/app/views/shared/icons/_sign_in.html.erb +3 -0
- data/app/views/shared/icons/_spinner.html.erb +4 -0
- data/app/views/shared/icons/_star.html.erb +3 -0
- data/app/views/shared/icons/_store.html.erb +10 -0
- data/app/views/shared/icons/_sun.html.erb +3 -0
- data/app/views/shared/icons/_sync.html.erb +3 -0
- data/app/views/shared/icons/_table.html.erb +3 -0
- data/app/views/shared/icons/_tag.html.erb +3 -0
- data/app/views/shared/icons/_tags.html.erb +11 -0
- data/app/views/shared/icons/_tools.html.erb +4 -0
- data/app/views/shared/icons/_trash.html.erb +3 -0
- data/app/views/shared/icons/_undo.html.erb +3 -0
- data/app/views/shared/icons/_unlock.html.erb +3 -0
- data/app/views/shared/icons/_upload.html.erb +3 -0
- data/app/views/shared/icons/_user.html.erb +3 -0
- data/app/views/shared/icons/_user_circle.html.erb +10 -0
- data/app/views/shared/icons/_user_plus.html.erb +10 -0
- data/app/views/shared/icons/_video.html.erb +3 -0
- data/app/views/shared/icons/_wrench.html.erb +11 -0
- data/app/views/style_guide/index.html.erb +77 -0
- data/app/views/style_guide/sections/_alerts.html.erb +114 -0
- data/app/views/style_guide/sections/_badges.html.erb +78 -0
- data/app/views/style_guide/sections/_buttons.html.erb +130 -0
- data/app/views/style_guide/sections/_cards.html.erb +84 -0
- data/app/views/style_guide/sections/_colors.html.erb +106 -0
- data/app/views/style_guide/sections/_file_upload.html.erb +135 -0
- data/app/views/style_guide/sections/_forms.html.erb +129 -0
- data/app/views/style_guide/sections/_gradients.html.erb +253 -0
- data/app/views/style_guide/sections/_header.html.erb +12 -0
- data/app/views/style_guide/sections/_icons.html.erb +55 -0
- data/app/views/style_guide/sections/_images.html.erb +40 -0
- data/app/views/style_guide/sections/_loading.html.erb +242 -0
- data/app/views/style_guide/sections/_pagination.html.erb +212 -0
- data/app/views/style_guide/sections/_profile_components.html.erb +203 -0
- data/app/views/style_guide/sections/_theme_switcher.html.erb +72 -0
- data/app/views/style_guide/sections/_typography.html.erb +65 -0
- data/bin/ai-optimize-claude-md +540 -0
- data/bin/ai-review-local +345 -0
- data/bin/ai-security-review +585 -0
- data/bin/brakeman +9 -0
- data/bin/install-hooks +57 -0
- data/bin/rake +7 -0
- data/bin/rubocop +10 -0
- data/bin/verify_setup.rb +31 -0
- data/config/brakeman.ignore +28 -0
- data/config/initializers/neon_sakura.rb +15 -0
- data/config/license_overrides.yml +13 -0
- data/config/routes.rb +21 -0
- data/config/theme_mappings.yml +61 -0
- data/docs/PRYSM_ASSETS.md +210 -0
- data/docs/plans/extract_ai_reviewer_plan.md +151 -0
- data/docs/plans/neon_sakura_gem_plan.md +138 -0
- data/lib/neon_sakura/configuration.rb +94 -0
- data/lib/neon_sakura/engine.rb +48 -0
- data/lib/neon_sakura/icon_helper.rb +54 -0
- data/lib/neon_sakura/profile_helper.rb +24 -0
- data/lib/neon_sakura/stylesheet_helper.rb +40 -0
- data/lib/neon_sakura/theme_helper.rb +63 -0
- data/lib/neon_sakura/theme_importer.rb +112 -0
- data/lib/neon_sakura/version.rb +5 -0
- data/lib/neon_sakura.rb +13 -0
- data/neon_sakura.gemspec +50 -0
- data/package.json +18 -0
- data/scripts/git-hooks/post-merge +132 -0
- data/scripts/git-hooks/pre-commit +123 -0
- data/scripts/git-hooks/pre-push +127 -0
- data/scripts/license-check.rb +587 -0
- data/settings.local.json +12 -0
- data/yarn.lock +778 -0
- metadata +503 -0
data/.gitignore
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
*.rbc
|
|
2
|
+
capybara-*.html
|
|
3
|
+
.rspec
|
|
4
|
+
/db/*.sqlite3
|
|
5
|
+
/db/*.sqlite3-journal
|
|
6
|
+
/db/*.sqlite3-[0-9]*
|
|
7
|
+
/public/system
|
|
8
|
+
/coverage/
|
|
9
|
+
/spec/tmp
|
|
10
|
+
*.orig
|
|
11
|
+
rerun.txt
|
|
12
|
+
pickle-email-*.html
|
|
13
|
+
|
|
14
|
+
# Ignore all logfiles and tempfiles.
|
|
15
|
+
/log/*
|
|
16
|
+
/tmp/*
|
|
17
|
+
!/log/.keep
|
|
18
|
+
!/tmp/.keep
|
|
19
|
+
|
|
20
|
+
# TODO Comment out this rule if you are OK with secrets being uploaded to the repo
|
|
21
|
+
config/initializers/secret_token.rb
|
|
22
|
+
config/master.key
|
|
23
|
+
|
|
24
|
+
# Only include if you have production secrets in this file, which is no longer a Rails default
|
|
25
|
+
# config/secrets.yml
|
|
26
|
+
|
|
27
|
+
# dotenv, dotenv-rails
|
|
28
|
+
# TODO Comment out these rules if environment variables can be committed
|
|
29
|
+
.env
|
|
30
|
+
.env*.local
|
|
31
|
+
|
|
32
|
+
## Environment normalization:
|
|
33
|
+
/.bundle
|
|
34
|
+
/vendor/bundle
|
|
35
|
+
|
|
36
|
+
# these should all be checked in to normalize the environment:
|
|
37
|
+
# Gemfile.lock, .ruby-version, .ruby-gemset
|
|
38
|
+
|
|
39
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
40
|
+
.rvmrc
|
|
41
|
+
|
|
42
|
+
# if using bower-rails ignore default bower_components path bower.json files
|
|
43
|
+
/vendor/assets/bower_components
|
|
44
|
+
*.bowerrc
|
|
45
|
+
bower.json
|
|
46
|
+
|
|
47
|
+
# Ignore pow environment settings
|
|
48
|
+
.powenv
|
|
49
|
+
|
|
50
|
+
# Ignore Byebug command history file.
|
|
51
|
+
.byebug_history
|
|
52
|
+
|
|
53
|
+
# Ignore node_modules and npm files
|
|
54
|
+
node_modules/
|
|
55
|
+
package-lock.json
|
|
56
|
+
npm-debug.log*
|
|
57
|
+
|
|
58
|
+
# Ignore precompiled javascript packs
|
|
59
|
+
/public/packs
|
|
60
|
+
/public/packs-test
|
|
61
|
+
/public/assets
|
|
62
|
+
|
|
63
|
+
# Ignore yarn files
|
|
64
|
+
/yarn-error.log
|
|
65
|
+
yarn-debug.log*
|
|
66
|
+
.yarn-integrity
|
|
67
|
+
|
|
68
|
+
# Ignore uploaded files in development
|
|
69
|
+
/storage/*
|
|
70
|
+
!/storage/.keep
|
|
71
|
+
/public/uploads
|
|
72
|
+
|
|
73
|
+
# Gemfile files
|
|
74
|
+
*.gem
|
|
75
|
+
.DS_Store
|
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Omakase Ruby styling for Rails
|
|
2
|
+
inherit_gem: { rubocop-rails-omakase: rubocop.yml }
|
|
3
|
+
|
|
4
|
+
# Overwrite or add rules to create your own house style
|
|
5
|
+
#
|
|
6
|
+
# Code Style Standards:
|
|
7
|
+
# - Indentation: 2 spaces (no tabs)
|
|
8
|
+
# - Line length: 120 characters
|
|
9
|
+
# - Consistent spacing and formatting
|
|
10
|
+
|
|
11
|
+
# Enforce 2-space indentation
|
|
12
|
+
Layout/IndentationWidth:
|
|
13
|
+
Width: 2
|
|
14
|
+
|
|
15
|
+
# Use spaces for indentation, not tabs
|
|
16
|
+
Layout/IndentationStyle:
|
|
17
|
+
EnforcedStyle: spaces
|
|
18
|
+
|
|
19
|
+
# Set line length to 120 characters
|
|
20
|
+
Layout/LineLength:
|
|
21
|
+
Max: 120
|
|
22
|
+
|
|
23
|
+
# Ensure consistent spacing
|
|
24
|
+
Layout/SpaceAroundOperators:
|
|
25
|
+
Enabled: true
|
|
26
|
+
|
|
27
|
+
Layout/SpaceInsideBlockBraces:
|
|
28
|
+
Enabled: true
|
|
29
|
+
EnforcedStyle: space
|
|
30
|
+
|
|
31
|
+
Layout/SpaceInsideHashLiteralBraces:
|
|
32
|
+
Enabled: true
|
|
33
|
+
EnforcedStyle: space
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.4.7
|
data/.simplecov
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# SimpleCov configuration for neon_sakura
|
|
4
|
+
SimpleCov.start do
|
|
5
|
+
# Add the test filter to exclude test files from coverage
|
|
6
|
+
add_filter '/test/'
|
|
7
|
+
add_filter '/lib/neon_sakura/version.rb'
|
|
8
|
+
|
|
9
|
+
# Add a more specific filter for the gem structure
|
|
10
|
+
add_filter '/lib/neon_sakura/engine.rb'
|
|
11
|
+
|
|
12
|
+
# Allow merging of coverage from multiple test runs
|
|
13
|
+
merge_timeout 30
|
|
14
|
+
end
|
data/.stylelintignore
ADDED
data/.stylelintrc.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "stylelint-config-standard",
|
|
3
|
+
"rules": {
|
|
4
|
+
"at-rule-no-unknown": [
|
|
5
|
+
true,
|
|
6
|
+
{
|
|
7
|
+
"ignoreAtRules": [
|
|
8
|
+
"tailwind",
|
|
9
|
+
"apply",
|
|
10
|
+
"variants",
|
|
11
|
+
"responsive",
|
|
12
|
+
"screen",
|
|
13
|
+
"layer"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"selector-class-pattern": null,
|
|
18
|
+
"custom-property-pattern": null,
|
|
19
|
+
"declaration-block-no-redundant-longhand-properties": null,
|
|
20
|
+
"color-function-notation": "legacy",
|
|
21
|
+
"alpha-value-notation": "number",
|
|
22
|
+
"property-no-vendor-prefix": null,
|
|
23
|
+
"value-no-vendor-prefix": null,
|
|
24
|
+
"selector-no-vendor-prefix": null,
|
|
25
|
+
"media-feature-name-no-vendor-prefix": null,
|
|
26
|
+
"at-rule-no-vendor-prefix": null,
|
|
27
|
+
"import-notation": "string",
|
|
28
|
+
"selector-pseudo-class-no-unknown": [
|
|
29
|
+
true,
|
|
30
|
+
{
|
|
31
|
+
"ignorePseudoClasses": ["global"]
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"no-descending-specificity": null,
|
|
35
|
+
"no-duplicate-selectors": true
|
|
36
|
+
}
|
|
37
|
+
}
|
data/AGENTS.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document describes how the neon_sakura gem works with agents and workflows to provide reusable styling and theming components for Rails applications.
|
|
6
|
+
|
|
7
|
+
## Shared Icons
|
|
8
|
+
|
|
9
|
+
The gem includes SVG icon components located in `app/views/shared/icons/`. Each icon is a separate partial file with a consistent naming convention (_icon_name.html.erb). These icons are designed to be:
|
|
10
|
+
|
|
11
|
+
- Reusable across multiple projects
|
|
12
|
+
- Consistent in styling
|
|
13
|
+
- Easily customizable through CSS classes
|
|
14
|
+
- Integration-ready with the gem's theming system
|
|
15
|
+
|
|
16
|
+
Examples of icon components:
|
|
17
|
+
- `_clock.html.erb`
|
|
18
|
+
- `_search.html.erb`
|
|
19
|
+
- `_external_link.html.erb`
|
|
20
|
+
- `_artemis_logo.html.erb`
|
|
21
|
+
|
|
22
|
+
To use an icon in a view, call:
|
|
23
|
+
```erb
|
|
24
|
+
<%= render 'shared/icons/icon_name' %>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Architecture
|
|
28
|
+
|
|
29
|
+
The gem follows a standard Rails engine architecture:
|
|
30
|
+
1. **Asset Pipeline Integration** - CSS and JavaScript assets are configured through the engine
|
|
31
|
+
2. **Layout Templates** - Provides consistent application and error layouts
|
|
32
|
+
3. **View Components** - Reusable UI elements including icons and partials
|
|
33
|
+
4. **Theming System** - Dark-themed UI with consistent styling principles
|
|
34
|
+
|
|
35
|
+
## Agent Interactions
|
|
36
|
+
|
|
37
|
+
When used in external applications, agents can:
|
|
38
|
+
- Access the gem's CSS and JS assets through the Rails asset pipeline
|
|
39
|
+
- Render the provided layout templates
|
|
40
|
+
- Use the shared icon components in any view
|
|
41
|
+
- Utilize the component styling to maintain consistent design across applications
|
|
42
|
+
|
|
43
|
+
## Usage Examples
|
|
44
|
+
|
|
45
|
+
Agents using this gem can:
|
|
46
|
+
- Generate consistent UI elements across different Rails applications
|
|
47
|
+
- Share common styling themes
|
|
48
|
+
- Maintain design system consistency
|
|
49
|
+
- Implement rapid UI development with pre-built components
|
|
50
|
+
|
|
51
|
+
Always add newlines at the end of new code files
|