tailwind_dsl 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.builders/generators/domain-model.rb +30 -28
- data/.builders/generators/utilities.rb +19 -17
- data/CHANGELOG.md +7 -0
- data/docs/domain-model.drawio +49 -46
- data/docs/domain-model.json +144 -121
- data/docs/domain-model.svg +1 -1
- data/lib/tailwind_dsl/etl/component_structures/raw_component_query.rb +197 -0
- data/lib/tailwind_dsl/version.rb +1 -1
- data/lib/tailwind_dsl.rb +1 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +3 -50
- data/.components/tui/application-ui/component/data-display/calendar/01.clean.html +0 -204
- data/.components/tui/application-ui/component/data-display/calendar/01.html +0 -243
- data/.components/tui/application-ui/component/data-display/calendar/01.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/02.clean.html +0 -496
- data/.components/tui/application-ui/component/data-display/calendar/02.html +0 -551
- data/.components/tui/application-ui/component/data-display/calendar/02.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/03.clean.html +0 -240
- data/.components/tui/application-ui/component/data-display/calendar/03.html +0 -274
- data/.components/tui/application-ui/component/data-display/calendar/03.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/04.clean.html +0 -385
- data/.components/tui/application-ui/component/data-display/calendar/04.html +0 -439
- data/.components/tui/application-ui/component/data-display/calendar/04.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/05.clean.html +0 -211
- data/.components/tui/application-ui/component/data-display/calendar/05.html +0 -254
- data/.components/tui/application-ui/component/data-display/calendar/05.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/06.clean.html +0 -320
- data/.components/tui/application-ui/component/data-display/calendar/06.html +0 -336
- data/.components/tui/application-ui/component/data-display/calendar/06.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/07.clean.html +0 -266
- data/.components/tui/application-ui/component/data-display/calendar/07.html +0 -294
- data/.components/tui/application-ui/component/data-display/calendar/07.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/calendar/08.clean.html +0 -268
- data/.components/tui/application-ui/component/data-display/calendar/08.html +0 -296
- data/.components/tui/application-ui/component/data-display/calendar/08.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/description-list/01.clean.html +0 -59
- data/.components/tui/application-ui/component/data-display/description-list/01.html +0 -61
- data/.components/tui/application-ui/component/data-display/description-list/01.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/description-list/02.clean.html +0 -59
- data/.components/tui/application-ui/component/data-display/description-list/02.html +0 -61
- data/.components/tui/application-ui/component/data-display/description-list/02.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/description-list/03.clean.html +0 -86
- data/.components/tui/application-ui/component/data-display/description-list/03.html +0 -88
- data/.components/tui/application-ui/component/data-display/description-list/03.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/description-list/04.clean.html +0 -59
- data/.components/tui/application-ui/component/data-display/description-list/04.html +0 -61
- data/.components/tui/application-ui/component/data-display/description-list/04.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/description-list/05.clean.html +0 -59
- data/.components/tui/application-ui/component/data-display/description-list/05.html +0 -61
- data/.components/tui/application-ui/component/data-display/description-list/05.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/stats/01.clean.html +0 -17
- data/.components/tui/application-ui/component/data-display/stats/01.html +0 -19
- data/.components/tui/application-ui/component/data-display/stats/01.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/stats/02.clean.html +0 -80
- data/.components/tui/application-ui/component/data-display/stats/02.html +0 -89
- data/.components/tui/application-ui/component/data-display/stats/02.settings.json +0 -9
- data/.components/tui/application-ui/component/data-display/stats/03.clean.html +0 -53
- data/.components/tui/application-ui/component/data-display/stats/03.html +0 -61
- data/.components/tui/application-ui/component/data-display/stats/03.settings.json +0 -9
data/docs/domain-model.svg
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1322px" height="727px" viewBox="-0.5 -0.5 1322 727"><defs/><g><rect x="5" y="0" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 6px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind GEM</div></div></div></foreignObject><text x="110" y="27" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind GEM</text></switch></g><rect x="225" y="0" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 226px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Configuration</div></div></div></foreignObject><text x="330" y="27" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Configuration</text></switch></g><rect x="450" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 450px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Configuration</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">collections: Collections</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">themes: Themes</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shapes: DataShapes</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_groups: ComponentGroups</p></div></div></div></foreignObject><text x="450" y="109" fill="#333333" font-family="Helvetica" font-size="12px">Configuration...</text></switch></g><rect x="670" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 670px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Collection</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_groups: ComponentGroups</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">default_themes: Themes</p></div></div></div></foreignObject><text x="670" y="109" fill="#333333" font-family="Helvetica" font-size="12px">Collection...</text></switch></g><rect x="890" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Theme</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p></div></div></div></foreignObject><text x="890" y="109" fill="#333333" font-family="Helvetica" font-size="12px">Theme...</text></switch></g><rect x="1110" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 1110px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>DataShape</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p></div></div></div></foreignObject><text x="1110" y="109" fill="#333333" font-family="Helvetica" font-size="12px">DataShape...</text></switch></g><rect x="10" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 10px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>ComponentGroup</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">collection: Collection</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">components: Components</p></div></div></div></foreignObject><text x="10" y="289" fill="#333333" font-family="Helvetica" font-size="12px">ComponentGroup...</text></switch></g><rect x="230" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 230px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Component</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shape: DataShape</p></div></div></div></foreignObject><text x="230" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Component...</text></switch></g><path d="M 650 105 Q 650 105 667.76 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661.88 108.5 L 668.88 105 L 661.88 101.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 105 Q 650 105 887.76 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.88 108.5 L 888.88 105 L 881.88 101.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 105 Q 650 105 1107.76 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1101.88 108.5 L 1108.88 105 L 1101.88 101.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 105 Q 660 105 660 150 Q 660 195 330 195 Q 0 195 0 240 Q 0 285 7.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1.88 288.5 L 8.88 285 L 1.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 210 285 Q 210 285 227.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 221.88 288.5 L 228.88 285 L 221.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 230 285 Q 220 285 220 240 Q 220 195 770 195 Q 1320 195 1320 150 Q 1320 105 1312.24 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1318.12 101.5 L 1311.12 105 L 1318.12 108.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 670 105 Q 660 105 660 60 Q 660 15 770 15 Q 880 15 880 105 Q 880 195 990 195 Q 1100 195 1100 150 Q 1100 105 1092.24 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1098.12 101.5 L 1091.12 105 L 1098.12 108.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><rect x="445" y="180" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 187px; margin-left: 446px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Schema</div></div></div></foreignObject><text x="550" y="207" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Schema</text></switch></g><rect x="670" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 670px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>WebSite</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">target_folder: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">base_collection: Collection</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">theme: Theme</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">root: Page</p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">favourite_components() : Components</p></div></div></div></foreignObject><text x="670" y="289" fill="#333333" font-family="Helvetica" font-size="12px">WebSite...</text></switch></g><rect x="890" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Page</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">sub_folder: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">level: Integer</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">pages: Pages</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">components: Components</p></div></div></div></foreignObject><text x="890" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Page...</text></switch></g><rect x="1110" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 1110px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Component</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_group: ComponentGroup</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shape: DataShape</p></div></div></div></foreignObject><text x="1110" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Component...</text></switch></g><path d="M 870 285 Q 870 285 887.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.88 288.5 L 888.88 285 L 881.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 1090 285 Q 1090 285 1107.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1101.88 288.5 L 1108.88 285 L 1101.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 1090 285 Q 1090 285 991.75 363.6" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 994.15 357.2 L 990.87 364.3 L 998.53 362.66" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><rect x="5" y="360" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 367px; margin-left: 6px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind Generator</div></div></div></foreignObject><text x="110" y="387" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind Generator</text></switch></g><rect x="225" y="360" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 367px; margin-left: 226px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind DSL</div></div></div></foreignObject><text x="330" y="387" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind DSL</text></switch></g><rect x="450" y="385" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 385px; margin-left: 450px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>TailwindDsl</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">website()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">page()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">save()</p></div></div></div></foreignObject><text x="450" y="469" fill="#333333" font-family="Helvetica" font-size="12px">TailwindDsl...</text></switch></g><rect x="665" y="360" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 367px; margin-left: 666px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataBuilder</div></div></div></foreignObject><text x="770" y="387" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">DataBuilder</text></switch></g><rect x="890" y="385" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 385px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>BaseDataBuilder</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">obj: Hash</p></div></div></div></foreignObject><text x="890" y="469" fill="#333333" font-family="Helvetica" font-size="12px">BaseDataBuilder...</text></switch></g><rect x="1130" y="385" width="160" height="160" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 162px; height: 160px; padding-top: 385px; margin-left: 1130px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 160px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><i><< MixIn >></i></p><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Factory</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">data()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_instance()</p></div></div></div></foreignObject><text x="1130" y="469" fill="#333333" font-family="Helvetica" font-size="12px"><< MixIn >>...</text></switch></g><rect x="10" y="565" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 565px; margin-left: 10px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Root</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">design_systems: Types::Strict::Array.of(DesignSystem)</p></div></div></div></foreignObject><text x="10" y="649" fill="#333333" font-family="Helvetica" font-size="12px">Root...</text></switch></g><rect x="230" y="565" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 565px; margin-left: 230px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>DesignSystem</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">path: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">stats: Types::Strict::Hash</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">groups: Types::Strict::Array.of(Group)</p></div></div></div></foreignObject><text x="230" y="649" fill="#333333" font-family="Helvetica" font-size="12px">DesignSystem...</text></switch></g><rect x="450" y="565" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 565px; margin-left: 450px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Group</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">type: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">folder: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">sub_keys: Types::Array.of(Types::Strict:'Types::Strict::String')</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">files: Types::Strict::Array.of(SourceFile)</p></div></div></div></foreignObject><text x="450" y="649" fill="#333333" font-family="Helvetica" font-size="12px">Group...</text></switch></g><rect x="670" y="565" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 565px; margin-left: 670px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>SourceFile</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">file_name: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">file_name_only: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">absolute_file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">target: TailwindDsl::XTransformers::RawComponents::TargetFile</p></div></div></div></foreignObject><text x="670" y="649" fill="#333333" font-family="Helvetica" font-size="12px">SourceFile...</text></switch></g><rect x="890" y="565" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 565px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>TargetFile</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">html_file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">clean_html_file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">tailwind_config_file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">settings_file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_file: Types::Strict::String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">astro_file: Types::Strict::String</p></div></div></div></foreignObject><text x="890" y="649" fill="#333333" font-family="Helvetica" font-size="12px">TargetFile...</text></switch></g><path d="M 210 645 Q 210 645 227.76 645" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 221.88 648.5 L 228.88 645 L 221.88 641.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 430 645 Q 430 645 447.76 645" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 441.88 648.5 L 448.88 645 L 441.88 641.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 645 Q 650 645 667.76 645" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661.88 648.5 L 668.88 645 L 661.88 641.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 870 645 Q 870 645 887.76 645" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.88 648.5 L 888.88 645 L 881.88 641.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1322px" height="772px" viewBox="-0.5 -0.5 1322 772"><defs/><g><rect x="5" y="0" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 6px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind GEM</div></div></div></foreignObject><text x="110" y="27" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind GEM</text></switch></g><rect x="225" y="0" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 226px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Configuration</div></div></div></foreignObject><text x="330" y="27" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Configuration</text></switch></g><rect x="450" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 450px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Configuration</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">collections: Collections</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">themes: Themes</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shapes: DataShapes</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_groups: ComponentGroups</p></div></div></div></foreignObject><text x="450" y="109" fill="#333333" font-family="Helvetica" font-size="12px">Configuration...</text></switch></g><rect x="670" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 670px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Collection</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_groups: ComponentGroups</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">default_themes: Themes</p></div></div></div></foreignObject><text x="670" y="109" fill="#333333" font-family="Helvetica" font-size="12px">Collection...</text></switch></g><rect x="890" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Theme</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p></div></div></div></foreignObject><text x="890" y="109" fill="#333333" font-family="Helvetica" font-size="12px">Theme...</text></switch></g><rect x="1110" y="25" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 25px; margin-left: 1110px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>DataShape</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p></div></div></div></foreignObject><text x="1110" y="109" fill="#333333" font-family="Helvetica" font-size="12px">DataShape...</text></switch></g><rect x="10" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 10px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>ComponentGroup</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">collection: Collection</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">components: Components</p></div></div></div></foreignObject><text x="10" y="289" fill="#333333" font-family="Helvetica" font-size="12px">ComponentGroup...</text></switch></g><rect x="230" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 230px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Component</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shape: DataShape</p></div></div></div></foreignObject><text x="230" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Component...</text></switch></g><path d="M 650 105 Q 650 105 667.76 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661.88 108.5 L 668.88 105 L 661.88 101.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 105 Q 650 105 887.76 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.88 108.5 L 888.88 105 L 881.88 101.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 105 Q 650 105 1107.76 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1101.88 108.5 L 1108.88 105 L 1101.88 101.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 105 Q 660 105 660 150 Q 660 195 330 195 Q 0 195 0 240 Q 0 285 7.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1.88 288.5 L 8.88 285 L 1.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 210 285 Q 210 285 227.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 221.88 288.5 L 228.88 285 L 221.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 230 285 Q 220 285 220 240 Q 220 195 770 195 Q 1320 195 1320 150 Q 1320 105 1312.24 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1318.12 101.5 L 1311.12 105 L 1318.12 108.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 670 105 Q 660 105 660 60 Q 660 15 770 15 Q 880 15 880 105 Q 880 195 990 195 Q 1100 195 1100 150 Q 1100 105 1092.24 105" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1098.12 101.5 L 1091.12 105 L 1098.12 108.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><rect x="445" y="180" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 187px; margin-left: 446px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Schema</div></div></div></foreignObject><text x="550" y="207" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Schema</text></switch></g><rect x="670" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 670px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>WebSite</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">target_folder: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">base_collection: Collection</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">theme: Theme</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">root: Page</p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">favourite_components() : Components</p></div></div></div></foreignObject><text x="670" y="289" fill="#333333" font-family="Helvetica" font-size="12px">WebSite...</text></switch></g><rect x="890" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Page</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">sub_folder: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">level: Integer</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">pages: Pages</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">components: Components</p></div></div></div></foreignObject><text x="890" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Page...</text></switch></g><rect x="1110" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 1110px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Component</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_group: ComponentGroup</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shape: DataShape</p></div></div></div></foreignObject><text x="1110" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Component...</text></switch></g><path d="M 870 285 Q 870 285 887.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.88 288.5 L 888.88 285 L 881.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 1090 285 Q 1090 285 1107.76 285" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1101.88 288.5 L 1108.88 285 L 1101.88 281.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 1090 285 Q 1090 285 991.75 363.6" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 994.15 357.2 L 990.87 364.3 L 998.53 362.66" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><rect x="5" y="360" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 367px; margin-left: 6px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind Generator</div></div></div></foreignObject><text x="110" y="387" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind Generator</text></switch></g><rect x="225" y="360" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 367px; margin-left: 226px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind DSL</div></div></div></foreignObject><text x="330" y="387" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind DSL</text></switch></g><rect x="450" y="385" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 385px; margin-left: 450px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>TailwindDsl</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">website()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">page()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">save()</p></div></div></div></foreignObject><text x="450" y="469" fill="#333333" font-family="Helvetica" font-size="12px">TailwindDsl...</text></switch></g><rect x="665" y="360" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 367px; margin-left: 666px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataBuilder</div></div></div></foreignObject><text x="770" y="387" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">DataBuilder</text></switch></g><rect x="890" y="385" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 385px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>BaseDataBuilder</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">obj: Hash</p></div></div></div></foreignObject><text x="890" y="469" fill="#333333" font-family="Helvetica" font-size="12px">BaseDataBuilder...</text></switch></g><rect x="1130" y="385" width="160" height="160" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 162px; height: 160px; padding-top: 385px; margin-left: 1130px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 160px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><i><< MixIn >></i></p><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Factory</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">data()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_instance()</p></div></div></div></foreignObject><text x="1130" y="469" fill="#333333" font-family="Helvetica" font-size="12px"><< MixIn >>...</text></switch></g><rect x="5" y="560" width="210" height="210" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 567px; margin-left: 6px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Raw Component Transformers</div></div></div></foreignObject><text x="110" y="587" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Raw Component Transfo...</text></switch></g><rect x="230" y="585" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 585px; margin-left: 230px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>UiKit</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">design_systems: DesignSystem[]</p></div></div></div></foreignObject><text x="230" y="669" fill="#333333" font-family="Helvetica" font-size="12px">UiKit...</text></switch></g><rect x="450" y="585" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 585px; margin-left: 450px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>DesignSystem</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">stats: Hash</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">groups: Group[]</p></div></div></div></foreignObject><text x="450" y="669" fill="#333333" font-family="Helvetica" font-size="12px">DesignSystem...</text></switch></g><rect x="670" y="585" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 585px; margin-left: 670px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Group</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">type: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">folder: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">sub_keys: string[]</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">files: SourceFile[]</p></div></div></div></foreignObject><text x="670" y="669" fill="#333333" font-family="Helvetica" font-size="12px">Group...</text></switch></g><rect x="890" y="585" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 585px; margin-left: 890px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>SourceFile</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">file_name: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">file_name_only: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">file: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">target: TargetFile</p></div></div></div></foreignObject><text x="890" y="669" fill="#333333" font-family="Helvetica" font-size="12px">SourceFile...</text></switch></g><rect x="1110" y="585" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 585px; margin-left: 1110px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>TargetFile</b></p><hr size="1" /><p style="margin:0px;margin-left:4px;margin-bottom:4px">html_file: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">clean_html_file: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">tailwind_config_file: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">settings_file: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_file: string</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">astro_file: string</p></div></div></div></foreignObject><text x="1110" y="669" fill="#333333" font-family="Helvetica" font-size="12px">TargetFile...</text></switch></g><path d="M 430 665 Q 430 665 447.76 665" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 441.88 668.5 L 448.88 665 L 441.88 661.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 665 Q 650 665 667.76 665" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661.88 668.5 L 668.88 665 L 661.88 661.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 870 665 Q 870 665 887.76 665" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.88 668.5 L 888.88 665 L 881.88 661.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 1090 665 Q 1090 665 1107.76 665" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1101.88 668.5 L 1108.88 665 L 1101.88 661.5" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
@@ -0,0 +1,197 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TailwindDsl
|
4
|
+
module Etl
|
5
|
+
module ComponentStructures
|
6
|
+
# Raw Component Query will return a list of raw components that are available for processing
|
7
|
+
#
|
8
|
+
# This is a two pass process:
|
9
|
+
# 1. Query the raw component folder for all files that match the pattern and build up a graph with required information
|
10
|
+
# 2. Flatten the graph into a list of rows
|
11
|
+
#
|
12
|
+
# If you need to debug, then pass in the debug flag and it will output the graph to the console
|
13
|
+
class RawComponentQuery
|
14
|
+
DesignSystem = Struct.new(
|
15
|
+
:name,
|
16
|
+
:source_path,
|
17
|
+
:target_path,
|
18
|
+
keyword_init: true
|
19
|
+
)
|
20
|
+
|
21
|
+
ComponentGroup = Struct.new(
|
22
|
+
:key,
|
23
|
+
:type,
|
24
|
+
:sub_keys,
|
25
|
+
:folder,
|
26
|
+
keyword_init: true
|
27
|
+
)
|
28
|
+
ComponentInfo = Struct.new(
|
29
|
+
:source_file,
|
30
|
+
:target_html_file,
|
31
|
+
:target_clean_html_file,
|
32
|
+
:target_tailwind_config_file,
|
33
|
+
:target_settings_file,
|
34
|
+
:target_data_file,
|
35
|
+
:target_astro_file, keyword_init: true
|
36
|
+
)
|
37
|
+
|
38
|
+
class Record
|
39
|
+
attr_reader :design_system
|
40
|
+
attr_reader :component_group
|
41
|
+
attr_reader :absolute_component
|
42
|
+
attr_reader :relative_component
|
43
|
+
|
44
|
+
def initialize(design_system:, component_group:, absolute_component:, relative_component:)
|
45
|
+
@design_system = design_system
|
46
|
+
@component_group = component_group
|
47
|
+
@absolute_component = absolute_component
|
48
|
+
@relative_component = relative_component
|
49
|
+
end
|
50
|
+
|
51
|
+
def to_h
|
52
|
+
{
|
53
|
+
design_system: design_system.to_h,
|
54
|
+
component_group: component_group.to_h,
|
55
|
+
absolute_component: absolute_component.to_h,
|
56
|
+
relative_component: relative_component.to_h
|
57
|
+
}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
attr_reader :uikit
|
62
|
+
attr_reader :raw_component_root_path
|
63
|
+
attr_reader :component_structure_root_path
|
64
|
+
attr_reader :current_design_system
|
65
|
+
attr_reader :debug
|
66
|
+
|
67
|
+
def initialize(uikit, **args)
|
68
|
+
@uikit = uikit
|
69
|
+
@raw_component_root_path = args[:raw_component_root_path] || raise(ArgumentError, 'Missing raw_component_root_path')
|
70
|
+
@component_structure_root_path = args[:component_structure_root_path] || raise(ArgumentError, 'Missing component_structure_root_path')
|
71
|
+
@debug = args[:debug] || false
|
72
|
+
end
|
73
|
+
|
74
|
+
class << self
|
75
|
+
def query(uikit, raw_component_root_path:, component_structure_root_path:, debug: false)
|
76
|
+
instance = new(uikit, raw_component_root_path: raw_component_root_path, component_structure_root_path: component_structure_root_path, debug: debug)
|
77
|
+
instance.call
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def call
|
82
|
+
run_query
|
83
|
+
# puts JSON.pretty_generate(graph) if debug
|
84
|
+
# {
|
85
|
+
# list: list.map(&:to_h)
|
86
|
+
# }
|
87
|
+
self
|
88
|
+
end
|
89
|
+
|
90
|
+
# Flattened list of records in hash format
|
91
|
+
# @return [Array<Hash>] list
|
92
|
+
def to_h
|
93
|
+
@list.map(&:to_h)
|
94
|
+
end
|
95
|
+
|
96
|
+
# Flattened list of records
|
97
|
+
#
|
98
|
+
# @return [Array<Record>] list
|
99
|
+
def records
|
100
|
+
@list
|
101
|
+
end
|
102
|
+
|
103
|
+
# Graph hierarchy is kept in deep nested format
|
104
|
+
#
|
105
|
+
# @return [Array<Hash>] graph
|
106
|
+
def graph
|
107
|
+
return @graph if defined? @graph
|
108
|
+
|
109
|
+
@graph = build_graph
|
110
|
+
end
|
111
|
+
|
112
|
+
private
|
113
|
+
|
114
|
+
def build_graph
|
115
|
+
uikit.design_systems.map do |design_system|
|
116
|
+
@current_design_system = design_system
|
117
|
+
map_design_system
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def map_design_system
|
122
|
+
{
|
123
|
+
name: current_design_system.name,
|
124
|
+
source_path: source_path,
|
125
|
+
target_path: target_path,
|
126
|
+
groups: current_design_system.groups.map do |group|
|
127
|
+
map_group(group)
|
128
|
+
end
|
129
|
+
}
|
130
|
+
end
|
131
|
+
|
132
|
+
def map_group(group)
|
133
|
+
{
|
134
|
+
key: group.key,
|
135
|
+
type: group.type,
|
136
|
+
sub_keys: group.sub_keys,
|
137
|
+
files: group.files.map do |file|
|
138
|
+
map_file(file)
|
139
|
+
end
|
140
|
+
}
|
141
|
+
end
|
142
|
+
|
143
|
+
# rubocop:disable Metrics/AbcSize
|
144
|
+
def map_file(file)
|
145
|
+
{
|
146
|
+
relative: {
|
147
|
+
source_file: file.file,
|
148
|
+
target_html_file: file.target.html_file,
|
149
|
+
target_clean_html_file: file.target.clean_html_file,
|
150
|
+
target_tailwind_config_file: file.target.tailwind_config_file,
|
151
|
+
target_settings_file: file.target.settings_file,
|
152
|
+
target_data_file: file.target.data_file,
|
153
|
+
target_astro_file: file.target.astro_file
|
154
|
+
},
|
155
|
+
absolute: {
|
156
|
+
source_file: File.join(source_path, file.file),
|
157
|
+
target_html_file: File.join(target_path, file.target.html_file),
|
158
|
+
target_clean_html_file: File.join(target_path, file.target.clean_html_file),
|
159
|
+
target_tailwind_config_file: File.join(target_path, file.target.tailwind_config_file),
|
160
|
+
target_settings_file: File.join(target_path, file.target.settings_file),
|
161
|
+
target_data_file: File.join(target_path, file.target.data_file),
|
162
|
+
target_astro_file: File.join(target_path, file.target.astro_file)
|
163
|
+
}
|
164
|
+
}
|
165
|
+
end
|
166
|
+
# rubocop:enable Metrics/AbcSize
|
167
|
+
|
168
|
+
def design_system_name
|
169
|
+
current_design_system.name
|
170
|
+
end
|
171
|
+
|
172
|
+
def source_path
|
173
|
+
File.join(raw_component_root_path, current_design_system.name)
|
174
|
+
end
|
175
|
+
|
176
|
+
def target_path
|
177
|
+
File.join(component_structure_root_path, current_design_system.name)
|
178
|
+
end
|
179
|
+
|
180
|
+
def run_query
|
181
|
+
@list = graph.flat_map do |design_system|
|
182
|
+
design_system[:groups].flat_map do |group|
|
183
|
+
group[:files].map do |file|
|
184
|
+
Record.new(
|
185
|
+
design_system: DesignSystem.new(**design_system.slice(:name, :source_path, :target_path)),
|
186
|
+
component_group: ComponentGroup.new(**group.slice(:key, :type, :sub_keys)),
|
187
|
+
absolute_component: ComponentInfo.new(**file[:absolute]),
|
188
|
+
relative_component: ComponentInfo.new(**file[:relative])
|
189
|
+
)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
data/lib/tailwind_dsl/version.rb
CHANGED
data/lib/tailwind_dsl.rb
CHANGED
@@ -16,6 +16,7 @@ require_relative 'tailwind_dsl/etl/raw_components/schema/design_system'
|
|
16
16
|
require_relative 'tailwind_dsl/etl/raw_components/schema/uikit'
|
17
17
|
|
18
18
|
require_relative 'tailwind_dsl/etl/component_structures/data'
|
19
|
+
require_relative 'tailwind_dsl/etl/component_structures/raw_component_query'
|
19
20
|
require_relative 'tailwind_dsl/etl/component_structures/generator'
|
20
21
|
# require_relative 'tailwind_dsl/astro_demo/generate_astro_page_data'
|
21
22
|
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "tailwind_dsl",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.11",
|
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.11",
|
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,14 +1,14 @@
|
|
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.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cmdlet
|
@@ -139,54 +139,6 @@ files:
|
|
139
139
|
- ".components/tui/application-ui/application-shells/stacked/09.html"
|
140
140
|
- ".components/tui/application-ui/application-shells/stacked/09.settings.json"
|
141
141
|
- ".components/tui/application-ui/application-shells/stacked/09.tailwind.config.js"
|
142
|
-
- ".components/tui/application-ui/component/data-display/calendar/01.clean.html"
|
143
|
-
- ".components/tui/application-ui/component/data-display/calendar/01.html"
|
144
|
-
- ".components/tui/application-ui/component/data-display/calendar/01.settings.json"
|
145
|
-
- ".components/tui/application-ui/component/data-display/calendar/02.clean.html"
|
146
|
-
- ".components/tui/application-ui/component/data-display/calendar/02.html"
|
147
|
-
- ".components/tui/application-ui/component/data-display/calendar/02.settings.json"
|
148
|
-
- ".components/tui/application-ui/component/data-display/calendar/03.clean.html"
|
149
|
-
- ".components/tui/application-ui/component/data-display/calendar/03.html"
|
150
|
-
- ".components/tui/application-ui/component/data-display/calendar/03.settings.json"
|
151
|
-
- ".components/tui/application-ui/component/data-display/calendar/04.clean.html"
|
152
|
-
- ".components/tui/application-ui/component/data-display/calendar/04.html"
|
153
|
-
- ".components/tui/application-ui/component/data-display/calendar/04.settings.json"
|
154
|
-
- ".components/tui/application-ui/component/data-display/calendar/05.clean.html"
|
155
|
-
- ".components/tui/application-ui/component/data-display/calendar/05.html"
|
156
|
-
- ".components/tui/application-ui/component/data-display/calendar/05.settings.json"
|
157
|
-
- ".components/tui/application-ui/component/data-display/calendar/06.clean.html"
|
158
|
-
- ".components/tui/application-ui/component/data-display/calendar/06.html"
|
159
|
-
- ".components/tui/application-ui/component/data-display/calendar/06.settings.json"
|
160
|
-
- ".components/tui/application-ui/component/data-display/calendar/07.clean.html"
|
161
|
-
- ".components/tui/application-ui/component/data-display/calendar/07.html"
|
162
|
-
- ".components/tui/application-ui/component/data-display/calendar/07.settings.json"
|
163
|
-
- ".components/tui/application-ui/component/data-display/calendar/08.clean.html"
|
164
|
-
- ".components/tui/application-ui/component/data-display/calendar/08.html"
|
165
|
-
- ".components/tui/application-ui/component/data-display/calendar/08.settings.json"
|
166
|
-
- ".components/tui/application-ui/component/data-display/description-list/01.clean.html"
|
167
|
-
- ".components/tui/application-ui/component/data-display/description-list/01.html"
|
168
|
-
- ".components/tui/application-ui/component/data-display/description-list/01.settings.json"
|
169
|
-
- ".components/tui/application-ui/component/data-display/description-list/02.clean.html"
|
170
|
-
- ".components/tui/application-ui/component/data-display/description-list/02.html"
|
171
|
-
- ".components/tui/application-ui/component/data-display/description-list/02.settings.json"
|
172
|
-
- ".components/tui/application-ui/component/data-display/description-list/03.clean.html"
|
173
|
-
- ".components/tui/application-ui/component/data-display/description-list/03.html"
|
174
|
-
- ".components/tui/application-ui/component/data-display/description-list/03.settings.json"
|
175
|
-
- ".components/tui/application-ui/component/data-display/description-list/04.clean.html"
|
176
|
-
- ".components/tui/application-ui/component/data-display/description-list/04.html"
|
177
|
-
- ".components/tui/application-ui/component/data-display/description-list/04.settings.json"
|
178
|
-
- ".components/tui/application-ui/component/data-display/description-list/05.clean.html"
|
179
|
-
- ".components/tui/application-ui/component/data-display/description-list/05.html"
|
180
|
-
- ".components/tui/application-ui/component/data-display/description-list/05.settings.json"
|
181
|
-
- ".components/tui/application-ui/component/data-display/stats/01.clean.html"
|
182
|
-
- ".components/tui/application-ui/component/data-display/stats/01.html"
|
183
|
-
- ".components/tui/application-ui/component/data-display/stats/01.settings.json"
|
184
|
-
- ".components/tui/application-ui/component/data-display/stats/02.clean.html"
|
185
|
-
- ".components/tui/application-ui/component/data-display/stats/02.html"
|
186
|
-
- ".components/tui/application-ui/component/data-display/stats/02.settings.json"
|
187
|
-
- ".components/tui/application-ui/component/data-display/stats/03.clean.html"
|
188
|
-
- ".components/tui/application-ui/component/data-display/stats/03.html"
|
189
|
-
- ".components/tui/application-ui/component/data-display/stats/03.settings.json"
|
190
142
|
- ".components/tui/application-ui/component/element/avatars/01.clean.html"
|
191
143
|
- ".components/tui/application-ui/component/element/avatars/01.html"
|
192
144
|
- ".components/tui/application-ui/component/element/avatars/01.settings.json"
|
@@ -2201,6 +2153,7 @@ files:
|
|
2201
2153
|
- lib/tailwind_dsl/astro_demo/generate_astro_page_data.rb
|
2202
2154
|
- lib/tailwind_dsl/etl/component_structures/data.rb
|
2203
2155
|
- lib/tailwind_dsl/etl/component_structures/generator.rb
|
2156
|
+
- lib/tailwind_dsl/etl/component_structures/raw_component_query.rb
|
2204
2157
|
- lib/tailwind_dsl/etl/element.rb
|
2205
2158
|
- lib/tailwind_dsl/etl/raw_components/director.rb
|
2206
2159
|
- lib/tailwind_dsl/etl/raw_components/schema/design_system.rb
|