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 +7 -0
- data/README.md +22 -0
- data/Rakefile +2 -0
- data/app/javascript/xbs/xbs.js +20 -0
- data/lib/xbs/engine.rb +21 -0
- data/lib/xbs/version.rb +3 -0
- data/lib/xtag-bootstrap.rb +9 -0
- metadata +77 -0
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,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
|
data/lib/xbs/version.rb
ADDED
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: []
|