tailwind_dsl 0.0.13 → 0.0.14
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 +4 -4
- data/.builders/boot.rb +1 -0
- data/.builders/generators/utilities.rb +37 -16
- data/CHANGELOG.md +7 -0
- data/lib/tailwind_dsl/etl/component_models/extractor.rb +43 -0
- data/lib/tailwind_dsl/etl/raw_components/director.rb +2 -0
- data/lib/tailwind_dsl/version.rb +1 -1
- data/lib/tailwind_dsl.rb +2 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c311546f3112011590192afd6386ca3e097366b4e32a7d4bdaf90eb2e50bb888
|
4
|
+
data.tar.gz: c0720bf9fc432e6931772d819afebfb4e2fa2aa583bcfb36adf8fc18294f1538
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28c7d5f434fb96350a3bac05180d9e1efc58e3172efc5a9b36c6e14e93359e88c5c3f87ecb14177c7e5a02000f1001871e1b7d388f465572b743ed5b21f7f39c
|
7
|
+
data.tar.gz: 96b446cb33fbb4a976d5187f205357df2439e2699cf37c9d3b886f1734efe3661823ba255923070197155d1eff68ba0335c0af577cccad2c212e27c36bb94ccf
|
data/.builders/boot.rb
CHANGED
@@ -31,6 +31,7 @@ KConfig.configure(CONFIG_KEY) do |config|
|
|
31
31
|
config.target_folders.add(:builder , builder_folder)
|
32
32
|
config.target_folders.add(:data , base_folder, '.data')
|
33
33
|
config.target_folders.add(:components , base_folder, '.components')
|
34
|
+
config.target_folders.add(:component_models , base_folder, '.component_models')
|
34
35
|
|
35
36
|
config.target_folders.add(:template_merakiui , global_template, 'tailwind', 'merakiui')
|
36
37
|
config.target_folders.add(:template_devdojo , global_template, 'tailwind', 'devdojo')
|
@@ -11,21 +11,31 @@ KManager.action :utilities do
|
|
11
11
|
cd(:data)
|
12
12
|
|
13
13
|
# Raw components are source HTML/Tailwind files that have embedded information such as tailwind.config.js and usage instructions
|
14
|
-
|
14
|
+
source_component_path = File.expand_path('~/dev/kgems/k_templates/templates/tailwind')
|
15
15
|
|
16
16
|
# Target components are the processed components that are ready to be consumed by the TailwindDSL
|
17
|
-
|
17
|
+
target_component_path = k_builder.target_folders.get(:components)
|
18
|
+
|
19
|
+
# The component data shapes are reflected model based on the data inside of a HTML templates
|
20
|
+
target_component_model_path = k_builder.target_folders.get(:component_models)
|
18
21
|
|
19
|
-
|
20
|
-
|
22
|
+
# Builds the design_system.json by reading all the HTML templates for every UIKit found the source_component_path
|
23
|
+
uikit = helpers.build_design_systems(source_component_path)
|
21
24
|
|
22
|
-
add('design_system.json', content:
|
25
|
+
add('design_system.json', content: JSON.pretty_generate(uikit.to_h))
|
23
26
|
|
24
|
-
|
27
|
+
# Separate clean and raw components, tailwind configuration, settings into their own folders
|
28
|
+
component_generator = helpers.generate_components(uikit, source_component_path, target_component_path, reset_root_path: false)
|
29
|
+
components = component_generator.components
|
30
|
+
|
31
|
+
# Use GPT3 to extract component models in supervised fashion
|
32
|
+
helpers.extract_next_component_model(components, target_component_model_path, batch_size: 1, use_prompt: true, filter_design_system: 'tui')
|
33
|
+
# puts target_component_path
|
34
|
+
# /Users/davidcruwys/dev/kgems/tailwind_dsl/.components
|
25
35
|
|
26
36
|
# Goals
|
27
37
|
# - Generate a Tailwind component complete design system so that I can see both the component plus the original source code
|
28
|
-
# There should be a deep hierarchy of folders and files in a menu structure
|
38
|
+
# [✔️] There should be a deep hierarchy of folders and files in a menu structure
|
29
39
|
# When you click on a menu item, there should be a preview of the component
|
30
40
|
# The menus should be collapsible
|
31
41
|
# The menus should be searchable
|
@@ -39,21 +49,32 @@ KManager.action :utilities do
|
|
39
49
|
|
40
50
|
end
|
41
51
|
|
42
|
-
def build_design_systems(
|
52
|
+
def build_design_systems(source_component_path)
|
43
53
|
director = TailwindDsl::Etl::RawComponents::Director.new
|
44
54
|
|
45
|
-
director.add_design_system(File.join(
|
46
|
-
# director.add_design_system(File.join(
|
47
|
-
# director.add_design_system(File.join(
|
48
|
-
# director.add_design_system(File.join(
|
49
|
-
# director.add_design_system(File.join(
|
50
|
-
# director.add_design_system(File.join(
|
55
|
+
director.add_design_system(File.join(source_component_path, 'tui'))
|
56
|
+
# director.add_design_system(File.join(source_component_path, 'codepen'))
|
57
|
+
# director.add_design_system(File.join(source_component_path, 'devdojo'))
|
58
|
+
# director.add_design_system(File.join(source_component_path, 'merakiui'))
|
59
|
+
# director.add_design_system(File.join(source_component_path, 'noq'))
|
60
|
+
# director.add_design_system(File.join(source_component_path, 'starter-kit'))
|
51
61
|
director.uikit
|
52
62
|
end
|
53
63
|
|
54
|
-
def generate_components(uikit,
|
55
|
-
generator = TailwindDsl::Etl::ComponentStructures::Generator.new(uikit,
|
64
|
+
def generate_components(uikit, source_component_path, target_folder, reset_root_path: false)
|
65
|
+
generator = TailwindDsl::Etl::ComponentStructures::Generator.new(uikit, source_component_path, target_folder, reset_root_path: reset_root_path)
|
56
66
|
generator.generate
|
67
|
+
generator
|
68
|
+
end
|
69
|
+
|
70
|
+
# Extracts the next component model using GPT3
|
71
|
+
#
|
72
|
+
# This needs to be supervised and verified, so it will only do a few models at a time
|
73
|
+
def extract_next_component_model(components, target_folder, batch_size: 1, use_prompt: false, filter_design_system: nil)
|
74
|
+
puts target_folder
|
75
|
+
extractor = TailwindDsl::Etl::ComponentModels::Extractor.new(components, target_folder, batch_size: batch_size, use_prompt: use_prompt, filter_design_system: filter_design_system)
|
76
|
+
extractor.extract
|
57
77
|
end
|
58
78
|
end
|
79
|
+
|
59
80
|
KManager.opts.sleep = 2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.0.13](https://github.com/klueless-io/tailwind_dsl/compare/v0.0.12...v0.0.13) (2022-10-18)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* refactor tests ([91b730d](https://github.com/klueless-io/tailwind_dsl/commit/91b730d91f99cf06810581d2d1684bb836eae860))
|
7
|
+
|
1
8
|
## [0.0.12](https://github.com/klueless-io/tailwind_dsl/compare/v0.0.11...v0.0.12) (2022-10-14)
|
2
9
|
|
3
10
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TailwindDsl
|
4
|
+
module Etl
|
5
|
+
module ComponentModels
|
6
|
+
# Extract component models by reading the cleansed component HTML and then using GPT3 to infer both the data/model structure.
|
7
|
+
class Extractor
|
8
|
+
attr_reader :uikit
|
9
|
+
attr_reader :target_root_path
|
10
|
+
attr_reader :batch_size
|
11
|
+
attr_reader :use_prompt
|
12
|
+
|
13
|
+
def initialize(uikit, target_root_path, batch_size: 1, use_prompt: false, filter_design_system: nil)
|
14
|
+
@uikit = uikit
|
15
|
+
@target_root_path = target_root_path
|
16
|
+
@batch_size = batch_size
|
17
|
+
@batch_left = batch_size
|
18
|
+
@use_prompt = use_prompt
|
19
|
+
end
|
20
|
+
|
21
|
+
# Goal: Extract the next (batch_size) component models using GPT3 and save them to target_root_path
|
22
|
+
# Create a data file at: design_system.name -> group-hierarchy -> component-name.data.json
|
23
|
+
# Create a model file at: design_system.name -> group-hierarchy -> component-name.model.rb
|
24
|
+
|
25
|
+
# Process: Collect all components and optionally filter them by design system name.
|
26
|
+
# Look for the next component to be processed, if it does not exist in the target folder then process it.
|
27
|
+
# decrement the batch_left counter and continue until batch_left is 0.
|
28
|
+
# if :use_prompt is true then display the input/output files and ask if you wish to process the component or skip.
|
29
|
+
# process the component by calling the GPT3 API and save the results to the target folder.
|
30
|
+
|
31
|
+
def extract; end
|
32
|
+
|
33
|
+
# def components
|
34
|
+
# @components ||= uikit.design_systems.map do |design_system|
|
35
|
+
# design_system.components.map do |component|
|
36
|
+
# Component.new(design_system, component, source_root_path, target_root_path)
|
37
|
+
# end
|
38
|
+
# end.flatten
|
39
|
+
# end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/tailwind_dsl/version.rb
CHANGED
data/lib/tailwind_dsl.rb
CHANGED
@@ -17,6 +17,8 @@ require_relative 'tailwind_dsl/etl/raw_components/schema/uikit'
|
|
17
17
|
|
18
18
|
require_relative 'tailwind_dsl/etl/component_structures/raw_component_query'
|
19
19
|
require_relative 'tailwind_dsl/etl/component_structures/generator'
|
20
|
+
|
21
|
+
require_relative 'tailwind_dsl/etl/component_models/extractor'
|
20
22
|
# require_relative 'tailwind_dsl/astro_demo/generate_astro_page_data'
|
21
23
|
|
22
24
|
module TailwindDsl
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "tailwind_dsl",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.14",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "tailwind_dsl",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.14",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tailwind_dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -2151,6 +2151,7 @@ files:
|
|
2151
2151
|
- lib/_.rb
|
2152
2152
|
- lib/tailwind_dsl.rb
|
2153
2153
|
- lib/tailwind_dsl/astro_demo/generate_astro_page_data.rb
|
2154
|
+
- lib/tailwind_dsl/etl/component_models/extractor.rb
|
2154
2155
|
- lib/tailwind_dsl/etl/component_structures/generator.rb
|
2155
2156
|
- lib/tailwind_dsl/etl/component_structures/raw_component_query.rb
|
2156
2157
|
- lib/tailwind_dsl/etl/element.rb
|