xtag-bootstrap 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: fc0a04dcd4ed2333b8dd3a06cdf3e8cd230ac95c96c15ac5b0789600ceeb4c00
4
+ data.tar.gz: 5d68b32f19144c778c7e092e912c76b3afa409b7eb0deb7e7f936672c8c5657b
5
+ SHA512:
6
+ metadata.gz: f76e10eb4165ce0da51f13620af0be09dbaccf77794fd8dc5e8cab94148f631d9cc1d9754b4740ae0da4c7050f9b29342e0782c550f2b7d1537e2fa18c116f96
7
+ data.tar.gz: 7c51aac457ded07fef3a6e88e741310dfb76a333b9d5195da213e800488beda90ee23faa8c8bafb4611e02848de496827328bc2ab2b9cff24e88642fc43b9281
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ # XBS
2
+
3
+ A Bootstrap 5 component library built with [xtag](https://github.com/nicholaides/xtag) for Rails.
4
+
5
+ ## Development
6
+
7
+ ```
8
+ bundle install
9
+ rails test
10
+ bin/component list <name> # list files for a component
11
+ bin/component test <name> # run tests for a component
12
+ bin/component code <name> # open component files in VS Code
13
+ ```
14
+
15
+ ## Showcase
16
+
17
+ The test dummy app at `test/dummy/` provides a showcase for all components.
18
+
19
+ ```
20
+ cd test/dummy
21
+ rails server
22
+ ```
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/setup"
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,20 @@
1
+ export default class XBS {
2
+ static swapClasses(element, from, to) {
3
+ const classes = element.className.split(" ")
4
+ const remove = from.filter(c => !to.includes(c))
5
+ const add = to.filter(c => !from.includes(c))
6
+ this.setClasses(element, classes.filter(c => !remove.includes(c)).concat(add))
7
+ }
8
+
9
+ static addClasses(element, classes) {
10
+ element.classList.add(...classes)
11
+ }
12
+
13
+ static removeClasses(element, classes) {
14
+ element.classList.remove(...classes)
15
+ }
16
+
17
+ static setClasses(element, classes) {
18
+ element.className = classes.join(" ")
19
+ }
20
+ }
data/lib/xbs/engine.rb ADDED
@@ -0,0 +1,21 @@
1
+ module XBS
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace XBS
4
+
5
+ initializer "xbs.fallback_namespaces" do
6
+ Xtag.fallback_namespaces |= ["XBS"]
7
+ end
8
+
9
+ initializer "xbs.importmap" do |app|
10
+ if app.config.respond_to?(:importmap)
11
+ app.config.importmap.paths << Engine.root.join("config/importmap.rb")
12
+ end
13
+ end
14
+
15
+ initializer "xbs.assets" do |app|
16
+ if app.config.respond_to?(:assets)
17
+ app.config.assets.paths << Engine.root.join("app/javascript")
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module XBS
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,9 @@
1
+ require "xbs/version"
2
+ require "xbs/engine"
3
+
4
+ ActiveSupport::Inflector.inflections(:en) do |inflect|
5
+ inflect.acronym "XBS"
6
+ end
7
+
8
+ module XBS
9
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xtag-bootstrap
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ian Terrell
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-03-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 8.1.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 8.1.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: xtag
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: A comprehensive UI component library built with xtag templating and Bootstrap
42
+ 5
43
+ email:
44
+ - cvz5an@virginia.edu
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - README.md
50
+ - Rakefile
51
+ - app/javascript/xbs/xbs.js
52
+ - lib/xbs/engine.rb
53
+ - lib/xbs/version.rb
54
+ - lib/xtag-bootstrap.rb
55
+ homepage: https://github.com/ianterrell/xtag-bootstrap
56
+ licenses: []
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubygems_version: 3.5.23
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Bootstrap 5 component library for Rails, powered by xtag
77
+ test_files: []