rw-elements-tools 1.2.0
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.
- package/LICENSE +22 -0
- package/README.md +1333 -0
- package/bin/cli.js +213 -0
- package/build-properties.js +654 -0
- package/build-shared-hooks.js +253 -0
- package/config.js +148 -0
- package/controls/Animations/AnimationEffects.js +111 -0
- package/controls/Animations/AnimationSettings.js +437 -0
- package/controls/Animations/Reveals.js +168 -0
- package/controls/Animations/ScrollAnimation_Opacity.js +15 -0
- package/controls/Animations/ScrollAnimation_Rotate.js +17 -0
- package/controls/Animations/ScrollAnimation_Scale.js +18 -0
- package/controls/Animations/ScrollAnimation_Translate.js +31 -0
- package/controls/Background/Background.js +66 -0
- package/controls/Background/BackgroundButton.js +69 -0
- package/controls/Background/BackgroundColor.js +28 -0
- package/controls/Background/BackgroundContainer.js +73 -0
- package/controls/Background/BackgroundGradient.js +149 -0
- package/controls/Background/BackgroundImage.js +108 -0
- package/controls/Background/BackgroundOnlyColor.js +53 -0
- package/controls/Background/BackgroundTransparent.js +66 -0
- package/controls/Background/BackgroundVideo.js +9 -0
- package/controls/Background/Color.js +52 -0
- package/controls/Background/Gradient.js +263 -0
- package/controls/Background/GradientContainer.js +263 -0
- package/controls/Background/Image.js +269 -0
- package/controls/Background/Image_CMS.js +305 -0
- package/controls/Background/SVG.js +235 -0
- package/controls/Background/Video.js +29 -0
- package/controls/Borders/Border.js +114 -0
- package/controls/Borders/BorderColor.js +25 -0
- package/controls/Borders/BorderRadius.js +19 -0
- package/controls/Borders/BorderStyle.js +26 -0
- package/controls/Borders/BorderWidth.js +20 -0
- package/controls/Borders/Borders.js +69 -0
- package/controls/Borders/BordersContainer.js +90 -0
- package/controls/Borders/BordersInput.js +107 -0
- package/controls/Borders/Outline.js +100 -0
- package/controls/Borders/OutlineColor.js +25 -0
- package/controls/Borders/OutlineOffset.js +13 -0
- package/controls/Borders/OutlineStyle.js +26 -0
- package/controls/Borders/OutlineWidth.js +13 -0
- package/controls/Effects/BackdropBlur.js +11 -0
- package/controls/Effects/Blur.js +11 -0
- package/controls/Effects/BoxShadow.js +15 -0
- package/controls/Effects/Brightness.js +11 -0
- package/controls/Effects/DropShadow.js +14 -0
- package/controls/Effects/Effects.js +71 -0
- package/controls/Effects/Filters.js +114 -0
- package/controls/Effects/Opacity.js +14 -0
- package/controls/Effects/Saturate.js +11 -0
- package/controls/Layout/AspectRatio.js +53 -0
- package/controls/Layout/Container.js +24 -0
- package/controls/Layout/Hidden.js +9 -0
- package/controls/Layout/Inset.js +15 -0
- package/controls/Layout/Isolation.js +25 -0
- package/controls/Layout/Layout.js +38 -0
- package/controls/Layout/Overflow.js +33 -0
- package/controls/Layout/Position.js +37 -0
- package/controls/Layout/TopRightBottomLeft.js +90 -0
- package/controls/Layout/Visibility.js +25 -0
- package/controls/Layout/ZIndex.js +36 -0
- package/controls/Overlay/Color.js +52 -0
- package/controls/Overlay/Gradient.js +298 -0
- package/controls/Overlay/Image.js +226 -0
- package/controls/Overlay/Overlay.js +66 -0
- package/controls/Sizing/Height.js +18 -0
- package/controls/Sizing/MaxHeight.js +17 -0
- package/controls/Sizing/MaxWidth.js +17 -0
- package/controls/Sizing/MinHeight.js +18 -0
- package/controls/Sizing/MinWidth.js +18 -0
- package/controls/Sizing/Sizing.js +66 -0
- package/controls/Sizing/SizingContainer.js +122 -0
- package/controls/Sizing/SizingImage.js +75 -0
- package/controls/Sizing/SizingInput.js +71 -0
- package/controls/Sizing/SizingSVG.js +74 -0
- package/controls/Sizing/Width.js +18 -0
- package/controls/Spacing/Margin.js +17 -0
- package/controls/Spacing/Padding.js +17 -0
- package/controls/Spacing/Spacing.js +23 -0
- package/controls/Spacing/SpacingButton.js +42 -0
- package/controls/Spacing/SpacingContainer.js +32 -0
- package/controls/Spacing/SpacingInput.js +42 -0
- package/controls/Transforms/Rotate.js +13 -0
- package/controls/Transforms/Scale.js +13 -0
- package/controls/Transforms/Skew.js +25 -0
- package/controls/Transforms/TransformOrigin.js +12 -0
- package/controls/Transforms/Transforms.js +98 -0
- package/controls/Transforms/Translate.js +26 -0
- package/controls/Transitions/Delay.js +13 -0
- package/controls/Transitions/Duration.js +13 -0
- package/controls/Transitions/Property.js +42 -0
- package/controls/Transitions/TimingFunction.js +44 -0
- package/controls/Transitions/Transitions.js +20 -0
- package/controls/alignment/AlignContent.js +48 -0
- package/controls/alignment/AlignItems.js +64 -0
- package/controls/alignment/AlignSelf.js +34 -0
- package/controls/alignment/JustifyContent.js +44 -0
- package/controls/alignment/JustifyItems.js +32 -0
- package/controls/alignment/JustifySelf.js +34 -0
- package/controls/core/CSSClasses.js +11 -0
- package/controls/core/ControlType.js +25 -0
- package/controls/core/HTMLTag.js +80 -0
- package/controls/core/HoverGroup.js +38 -0
- package/controls/core/ID.js +12 -0
- package/controls/core/Image.js +95 -0
- package/controls/core/MenuItem.js +187 -0
- package/controls/core/ObjectFit.js +32 -0
- package/controls/core/ObjectPosition.js +65 -0
- package/controls/grid-flex/ActAsGridOrFlexItem.js +54 -0
- package/controls/grid-flex/ColEnd.js +28 -0
- package/controls/grid-flex/ColStart.js +27 -0
- package/controls/grid-flex/Columns.js +38 -0
- package/controls/grid-flex/FlexDirection.js +27 -0
- package/controls/grid-flex/FlexItem.js +106 -0
- package/controls/grid-flex/GridItem.js +41 -0
- package/controls/grid-flex/Order.js +45 -0
- package/controls/grid-flex/RowEnd.js +28 -0
- package/controls/grid-flex/RowStart.js +27 -0
- package/controls/grid-flex/Rows.js +38 -0
- package/controls/index.js +187 -0
- package/controls/interactive/ButtonFontAndTextStyles.js +208 -0
- package/controls/interactive/Filter.js +54 -0
- package/controls/interactive/InputFontAndTextStyles.js +156 -0
- package/controls/interactive/Link.js +13 -0
- package/controls/typography/HeadingColor.js +112 -0
- package/controls/typography/TextColor.js +51 -0
- package/controls/typography/TextDecoration.js +99 -0
- package/controls/typography/TextFontsAndTextStyles.js +243 -0
- package/controls/typography/TextSimple.js +55 -0
- package/controls/typography/TextStyles.js +55 -0
- package/controls/typography/Typography.js +13 -0
- package/index.js +19 -0
- package/package.json +55 -0
- package/properties/BackgroundType.js +18 -0
- package/properties/ButtonSize.js +19 -0
- package/properties/ContainerHeights.js +23 -0
- package/properties/ContainerWidths.js +27 -0
- package/properties/FontWeight.js +16 -0
- package/properties/GradientDirection.js +39 -0
- package/properties/LetterSpacing.js +13 -0
- package/properties/LineHeight.js +13 -0
- package/properties/RevealAnimations.js +12 -0
- package/properties/Slider.js +10 -0
- package/properties/TextAlign.js +23 -0
- package/properties/TransformOrigins.js +43 -0
- package/properties/TransitionNames.js +20 -0
- package/properties/index.js +13 -0
- package/shared-hooks/animations/globalAnimations.js +141 -0
- package/shared-hooks/animations/globalReveal.js +48 -0
- package/shared-hooks/background/globalBackground.js +306 -0
- package/shared-hooks/background/globalBgImageFetchPriority.js +34 -0
- package/shared-hooks/borders/globalBorders.js +85 -0
- package/shared-hooks/borders/globalOutline.js +39 -0
- package/shared-hooks/core/addPrefixToTailwindClasses.js +24 -0
- package/shared-hooks/core/advancedClasses.js +5 -0
- package/shared-hooks/core/classnames.js +92 -0
- package/shared-hooks/core/getHoverPrefix.js +21 -0
- package/shared-hooks/core/globalHTMLTag.js +17 -0
- package/shared-hooks/core/injectPrefixOnDarkModeColors.js +6 -0
- package/shared-hooks/effects/globalEffects.js +45 -0
- package/shared-hooks/effects/globalFilters.js +80 -0
- package/shared-hooks/effects/globalOverlay.js +166 -0
- package/shared-hooks/interactive/globalFilter.js +24 -0
- package/shared-hooks/interactive/globalLink.js +23 -0
- package/shared-hooks/layout/globalActAsGridOrFlexItem.js +66 -0
- package/shared-hooks/layout/globalLayout.js +50 -0
- package/shared-hooks/navigation/globalMenuItem.js +35 -0
- package/shared-hooks/navigation/globalNavItems.js +60 -0
- package/shared-hooks/navigation/globalNavTitle.js +23 -0
- package/shared-hooks/sizing/aspectRatioClasses.js +20 -0
- package/shared-hooks/sizing/globalSizing.js +19 -0
- package/shared-hooks/sizing/globalSizingContainer.js +40 -0
- package/shared-hooks/sizing/objectClasses.js +9 -0
- package/shared-hooks/spacing/globalSpacing.js +13 -0
- package/shared-hooks/spacing/globalSpacingMargin.js +11 -0
- package/shared-hooks/spacing/globalSpacingPadding.js +11 -0
- package/shared-hooks/transforms/globalTransforms.js +78 -0
- package/shared-hooks/transitions/getAlpineTransitionAttributesDesktop.js +111 -0
- package/shared-hooks/transitions/getAlpineTransitionAttributesMobile.js +110 -0
- package/shared-hooks/transitions/globalTransitions.js +48 -0
- package/shared-hooks/typography/globalButtonFontAndTextStyles.js +65 -0
- package/shared-hooks/typography/globalHeadingColor.js +69 -0
- package/shared-hooks/typography/globalInputFontAndTextStyles.js +40 -0
- package/shared-hooks/typography/globalTextFontsAndTextStyles.js +47 -0
package/bin/cli.js
ADDED
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* rw-elements-tools CLI
|
|
4
|
+
*
|
|
5
|
+
* Build tools for RapidWeaver element packs
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* rw-build <command> [options]
|
|
9
|
+
*
|
|
10
|
+
* Commands:
|
|
11
|
+
* properties Build properties.json files from properties.config.json
|
|
12
|
+
* hooks Build hooks.js files from hooks.source.js
|
|
13
|
+
* all Build both properties and hooks
|
|
14
|
+
*
|
|
15
|
+
* Options:
|
|
16
|
+
* --packs <dir> Override the packs directory
|
|
17
|
+
* --watch, -w Watch for changes
|
|
18
|
+
* --help, -h Show this help message
|
|
19
|
+
* --version, -v Show version number
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { fileURLToPath } from 'url';
|
|
23
|
+
import path from 'path';
|
|
24
|
+
import { resolveConfig } from '../config.js';
|
|
25
|
+
|
|
26
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
27
|
+
const __dirname = path.dirname(__filename);
|
|
28
|
+
const packageRoot = path.join(__dirname, '..');
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Parse command line arguments
|
|
32
|
+
*/
|
|
33
|
+
function parseArgs(args) {
|
|
34
|
+
const result = {
|
|
35
|
+
command: null,
|
|
36
|
+
packs: null,
|
|
37
|
+
watch: false,
|
|
38
|
+
help: false,
|
|
39
|
+
version: false,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
for (let i = 0; i < args.length; i++) {
|
|
43
|
+
const arg = args[i];
|
|
44
|
+
|
|
45
|
+
if (arg === '--help' || arg === '-h') {
|
|
46
|
+
result.help = true;
|
|
47
|
+
} else if (arg === '--version' || arg === '-v') {
|
|
48
|
+
result.version = true;
|
|
49
|
+
} else if (arg === '--watch' || arg === '-w') {
|
|
50
|
+
result.watch = true;
|
|
51
|
+
} else if (arg === '--packs') {
|
|
52
|
+
result.packs = args[++i];
|
|
53
|
+
} else if (arg.startsWith('--packs=')) {
|
|
54
|
+
result.packs = arg.split('=')[1];
|
|
55
|
+
} else if (!arg.startsWith('-') && !result.command) {
|
|
56
|
+
result.command = arg;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Show help message
|
|
65
|
+
*/
|
|
66
|
+
function showHelp() {
|
|
67
|
+
console.log(`
|
|
68
|
+
rw-elements-tools - Build tools for RapidWeaver element packs
|
|
69
|
+
|
|
70
|
+
Usage:
|
|
71
|
+
rw-build <command> [options]
|
|
72
|
+
|
|
73
|
+
Commands:
|
|
74
|
+
properties Build properties.json files from properties.config.json
|
|
75
|
+
hooks Build hooks.js files from hooks.source.js
|
|
76
|
+
all Build both properties and hooks
|
|
77
|
+
|
|
78
|
+
Options:
|
|
79
|
+
--packs <dir> Override the packs directory (default: ./packs)
|
|
80
|
+
--watch, -w Watch for changes
|
|
81
|
+
--help, -h Show this help message
|
|
82
|
+
--version, -v Show version number
|
|
83
|
+
|
|
84
|
+
Configuration:
|
|
85
|
+
The packs directory can be configured via (in priority order):
|
|
86
|
+
1. CLI argument: --packs ./my-elements
|
|
87
|
+
2. Environment variable: RW_PACKS_DIR=./my-elements
|
|
88
|
+
3. package.json: { "rw-elements-tools": { "packsDir": "./my-elements" } }
|
|
89
|
+
4. Config file: rw-elements-tools.config.js
|
|
90
|
+
5. Default: ./packs
|
|
91
|
+
|
|
92
|
+
Examples:
|
|
93
|
+
rw-build all Build everything
|
|
94
|
+
rw-build properties Build properties only
|
|
95
|
+
rw-build hooks --watch Build and watch hooks
|
|
96
|
+
rw-build properties --watch Build and watch properties
|
|
97
|
+
rw-build all --watch Build and watch both hooks and properties
|
|
98
|
+
rw-build all --packs ./my-elements Build with custom packs directory
|
|
99
|
+
`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Show version
|
|
104
|
+
*/
|
|
105
|
+
async function showVersion() {
|
|
106
|
+
try {
|
|
107
|
+
const packageJsonPath = path.join(packageRoot, 'package.json');
|
|
108
|
+
const { default: fs } = await import('fs');
|
|
109
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
110
|
+
console.log(`rw-elements-tools v${pkg.version}`);
|
|
111
|
+
} catch {
|
|
112
|
+
console.log('rw-elements-tools (version unknown)');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Run the properties build
|
|
118
|
+
*/
|
|
119
|
+
async function buildProperties(config, watch = false) {
|
|
120
|
+
console.log(`[rw-build] Building properties${watch ? ' (watch mode)' : ''}...`);
|
|
121
|
+
console.log(`[rw-build] Packs directory: ${config.packsDir}`);
|
|
122
|
+
|
|
123
|
+
const buildModule = await import('../build-properties.js');
|
|
124
|
+
|
|
125
|
+
if (watch) {
|
|
126
|
+
await buildModule.startWatch(config);
|
|
127
|
+
} else {
|
|
128
|
+
await buildModule.buildProperties(config);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Run the hooks build
|
|
134
|
+
*/
|
|
135
|
+
async function buildHooks(config, watch = false) {
|
|
136
|
+
console.log(`[rw-build] Building hooks${watch ? ' (watch mode)' : ''}...`);
|
|
137
|
+
console.log(`[rw-build] Packs directory: ${config.packsDir}`);
|
|
138
|
+
|
|
139
|
+
const buildModule = await import('../build-shared-hooks.js');
|
|
140
|
+
|
|
141
|
+
if (watch) {
|
|
142
|
+
await buildModule.startWatch(config);
|
|
143
|
+
} else {
|
|
144
|
+
await buildModule.buildAll(config);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Main entry point
|
|
150
|
+
*/
|
|
151
|
+
async function main() {
|
|
152
|
+
const args = parseArgs(process.argv.slice(2));
|
|
153
|
+
|
|
154
|
+
if (args.help) {
|
|
155
|
+
showHelp();
|
|
156
|
+
process.exit(0);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (args.version) {
|
|
160
|
+
await showVersion();
|
|
161
|
+
process.exit(0);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (!args.command) {
|
|
165
|
+
console.error('Error: No command specified. Use --help for usage information.');
|
|
166
|
+
process.exit(1);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Resolve configuration
|
|
170
|
+
const config = await resolveConfig({
|
|
171
|
+
packs: args.packs,
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
try {
|
|
175
|
+
switch (args.command) {
|
|
176
|
+
case 'properties':
|
|
177
|
+
await buildProperties(config, args.watch);
|
|
178
|
+
break;
|
|
179
|
+
|
|
180
|
+
case 'hooks':
|
|
181
|
+
await buildHooks(config, args.watch);
|
|
182
|
+
break;
|
|
183
|
+
|
|
184
|
+
case 'all':
|
|
185
|
+
if (args.watch) {
|
|
186
|
+
// In watch mode, start both watchers concurrently
|
|
187
|
+
// They will both run indefinitely, watching for changes
|
|
188
|
+
await Promise.all([
|
|
189
|
+
buildProperties(config, true),
|
|
190
|
+
buildHooks(config, true),
|
|
191
|
+
]);
|
|
192
|
+
} else {
|
|
193
|
+
// One-time build: run sequentially
|
|
194
|
+
await buildProperties(config, false);
|
|
195
|
+
await buildHooks(config, false);
|
|
196
|
+
}
|
|
197
|
+
break;
|
|
198
|
+
|
|
199
|
+
default:
|
|
200
|
+
console.error(`Error: Unknown command '${args.command}'. Use --help for usage information.`);
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
} catch (err) {
|
|
204
|
+
console.error(`[rw-build] Build failed: ${err.message}`);
|
|
205
|
+
if (process.env.DEBUG) {
|
|
206
|
+
console.error(err.stack);
|
|
207
|
+
}
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
main();
|
|
213
|
+
|