@c8y/style 1024.10.8 → 1024.14.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.
Files changed (38) hide show
  1. package/README.md +30 -259
  2. package/package.json +2 -2
  3. package/styles/core/overlays/_dropdowns.scss +3 -3
  4. package/variables/dashboard-themes/_branded-dashboard.scss +290 -296
  5. package/helper-scripts/README-variable-imports.md +0 -155
  6. package/helper-scripts/convert-scss-to-less.sh +0 -527
  7. package/helper-scripts/convert-stroke-icons-to-less.js +0 -115
  8. package/helper-scripts/remove-redundant-variable-imports.sh +0 -80
  9. package/helper-scripts/scss-to-less-skip +0 -20
  10. package/helper-scripts/sync-scss-to-less.sh +0 -75
  11. package/markdown-files/MANUAL-SYNC-FILES.md +0 -56
  12. package/styles/_login-app.less +0 -34
  13. package/styles/_mixins.less +0 -47
  14. package/styles/_utilities.less +0 -21
  15. package/styles/animations/_animate.less +0 -653
  16. package/styles/animations/_realtime-animation-list.less +0 -20
  17. package/styles/components/_markdown-content.less +0 -95
  18. package/styles/components/application-and-system/_c8y-cookie-banner.less +0 -36
  19. package/styles/components/data-display-and-visualization/_boxed-label.less +0 -45
  20. package/styles/components/data-display-and-visualization/_c8y-datapoint-pill.less +0 -104
  21. package/styles/components/data-display-and-visualization/_status.less +0 -105
  22. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +0 -31
  23. package/styles/components/data-display-and-visualization/tables/_responsive-grid-table.less +0 -189
  24. package/styles/components/data-input/_c8y-ai-chat.less +0 -258
  25. package/styles/components/data-input/_static-assets-file-picker.less +0 -22
  26. package/styles/components/navigation-and-layout/_c8y-scrollbar.less +0 -118
  27. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +0 -60
  28. package/styles/components/status-feedback-and-notifications/_c8y-message-banner.less +0 -46
  29. package/styles/dashboard/_c8y-dashboard-style.less +0 -565
  30. package/styles/dashboard/_dashboard-widgets.less +0 -46
  31. package/styles/icons/_dlt-c8y-icons-stroke.less +0 -7260
  32. package/styles/icons/_marker-icons.less +0 -32
  33. package/styles/layout/_bottom-drawer.less +0 -70
  34. package/styles/layout/_group-info.less +0 -26
  35. package/styles/mixins/_gradients.less +0 -117
  36. package/styles/mixins/_icon-base.less +0 -29
  37. package/styles/mixins/_vendor-prefixes.less +0 -131
  38. package/variables/_color-defaults.less +0 -110
@@ -1,115 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Convert SCSS stroke icons file to LESS
5
- *
6
- * The SCSS version uses SCSS maps and map.get() which LESS doesn't support.
7
- * This script converts it to direct LESS class definitions.
8
- */
9
-
10
- const fs = require('fs');
11
- const path = require('path');
12
-
13
- const scssFile = path.join(__dirname, 'styles/icons/_dlt-c8y-icons-stroke.scss');
14
- const lessFile = path.join(__dirname, 'styles/icons/_dlt-c8y-icons-stroke.less');
15
-
16
- console.log('Converting SCSS stroke icons to LESS...');
17
-
18
- // Read SCSS file
19
- const scssContent = fs.readFileSync(scssFile, 'utf8');
20
-
21
- // Extract the icon map
22
- const mapMatch = scssContent.match(/\$dlt-c8y-icons:\s*\(([\s\S]*?)\);/);
23
- if (!mapMatch) {
24
- console.error('Could not find icon map in SCSS file');
25
- process.exit(1);
26
- }
27
-
28
- // Parse the map entries
29
- const mapContent = mapMatch[1];
30
- const iconEntries = [];
31
- const lines = mapContent.split('\n');
32
-
33
- for (const line of lines) {
34
- const match = line.match(/['"]([^'"]+)['"]\s*:\s*["']([^"']+)["']/);
35
- if (match) {
36
- iconEntries.push({
37
- name: match[1],
38
- unicode: match[2]
39
- });
40
- }
41
- }
42
-
43
- console.log(`Found ${iconEntries.length} icon entries in map`);
44
-
45
- // Extract all icon-stroke mixin calls to get the complete list
46
- const mixinCalls = [];
47
- const mixinCallRegex = /@include icon-stroke\(['"]([^'"]+)['"]\);/g;
48
- let match;
49
- while ((match = mixinCallRegex.exec(scssContent)) !== null) {
50
- mixinCalls.push(match[1]);
51
- }
52
-
53
- console.log(`Found ${mixinCalls.length} mixin calls`);
54
-
55
- // Create a map for quick lookup
56
- const iconMap = new Map();
57
- for (const entry of iconEntries) {
58
- iconMap.set(entry.name, entry.unicode);
59
- }
60
-
61
- // Generate LESS content
62
- let lessContent = `@import "../../variables/index.less";
63
-
64
- /**
65
- * DLT C8Y Icons Stroke - Stroked icon definitions (GENERATED FILE)
66
- *
67
- * Note: This file is auto-generated from the SCSS version by convert-stroke-icons-to-less.js
68
- * DO NOT EDIT MANUALLY - Changes will be overwritten
69
- *
70
- * Intentionally hardcoded values:
71
- * - Stroke width (2px): Icon stroke rendering
72
- * - Unicode icon codes: Icon font character mappings
73
- */
74
-
75
- // Stroked icon styles - CONVERTED FROM SCSS
76
- // Auto-converted from _dlt-c8y-icons-stroke.scss
77
- // DO NOT EDIT MANUALLY - Run 'node convert-stroke-icons-to-less.js' to regenerate
78
-
79
- // Base stroked-icon styles (applies to all icons with .stroked-icon class)
80
- [class^='dlt-c8y-icon-'],
81
- [class*=' dlt-c8y-icon-'] {
82
- &.stroked-icon {
83
- position: relative;
84
- z-index: 0;
85
-
86
- &::before {
87
- position: absolute;
88
- -webkit-text-stroke-width: 2px;
89
- -webkit-text-stroke-color: var(--c8y-icon-stroke-color, @component-background-default);
90
- }
91
-
92
- &::after {
93
- position: relative;
94
- }
95
- }
96
- }
97
-
98
- // Individual icon definitions
99
- `;
100
-
101
- // Generate class definitions for each icon
102
- for (const iconName of mixinCalls) {
103
- const unicode = iconMap.get(iconName);
104
- if (unicode) {
105
- lessContent += `.${iconName}.stroked-icon::after {\n content: "${unicode}";\n}\n\n`;
106
- } else {
107
- console.warn(`Warning: No unicode value found for ${iconName}`);
108
- }
109
- }
110
-
111
- // Write LESS file
112
- fs.writeFileSync(lessFile, lessContent, 'utf8');
113
-
114
- console.log(`✅ Successfully converted to ${lessFile}`);
115
- console.log(` Generated ${mixinCalls.length} icon class definitions`);
@@ -1,80 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Remove redundant variable imports from LESS files
4
- # Variables are imported at entry points (main.less, branding.less, login.less),
5
- # so component files don't need to import them due to LESS's global scope.
6
-
7
- set -e
8
-
9
- cd "$(dirname "$0")/.."
10
-
11
- echo "=============================================="
12
- echo "Removing Redundant Variable Imports"
13
- echo "=============================================="
14
- echo ""
15
- echo "LESS uses global scope, so variables imported at entry points"
16
- echo "are available to all subsequent imports. This is different from"
17
- echo "SCSS's @use module system which requires explicit imports."
18
- echo ""
19
-
20
- # Find all LESS files with variable imports (excluding entry points)
21
- FILES=$(grep -rl '@import.*variables/index\.less' styles --include="*.less" 2>/dev/null || true)
22
-
23
- # Exclude entry points that SHOULD keep variable imports
24
- FILES=$(echo "$FILES" | grep -v "^styles/login-app\.less$" || true)
25
- FILES=$(echo "$FILES" | grep -v "^styles/_login-app\.less$" || true)
26
-
27
- if [ -z "$FILES" ]; then
28
- echo "✅ No redundant variable imports found!"
29
- exit 0
30
- fi
31
-
32
- COUNT=$(echo "$FILES" | wc -l | tr -d ' ')
33
- echo "Found $COUNT file(s) with redundant variable imports:"
34
- echo ""
35
- echo "$FILES" | sed 's/^/ - /'
36
- echo ""
37
-
38
- read -p "Remove redundant imports from these files? [y/N] " -n 1 -r
39
- echo ""
40
-
41
- if [[ ! $REPLY =~ ^[Yy]$ ]]; then
42
- echo "Cancelled - no changes made"
43
- exit 0
44
- fi
45
-
46
- echo ""
47
- echo "Removing redundant variable imports..."
48
- echo ""
49
-
50
- UPDATED=0
51
-
52
- while IFS= read -r file; do
53
- if [ -z "$file" ]; then
54
- continue
55
- fi
56
-
57
- # Remove variable import lines
58
- sed -i.bak -E '/@import[[:space:]]+.*variables\/index\.less/d' "$file"
59
-
60
- # Check if file changed
61
- if ! diff -q "$file" "$file.bak" >/dev/null 2>&1; then
62
- echo " ✅ Updated: $file"
63
- UPDATED=$((UPDATED + 1))
64
- rm "$file.bak"
65
- else
66
- echo " ⏭️ Skipped (no changes): $file"
67
- rm "$file.bak"
68
- fi
69
- done <<< "$FILES"
70
-
71
- echo ""
72
- echo "=============================================="
73
- echo "✅ Updated $UPDATED file(s)"
74
- echo "=============================================="
75
- echo ""
76
- echo "Next steps:"
77
- echo "1. Run: npm test (to verify LESS/SCSS compilation)"
78
- echo "2. Review changes: git diff"
79
- echo "3. Commit if all looks good"
80
- echo ""
@@ -1,20 +0,0 @@
1
- # Files to skip during automatic SCSS to LESS conversion
2
- # These files require manual synchronization due to complex syntax patterns
3
-
4
- # Complex mixin calls with calc()/var() - converter cannot reliably handle parameter separators
5
- styles/core/buttons/_buttons.scss
6
-
7
- # Transform mixins that output CSS functions - converter confuses CSS function commas with mixin parameter separators
8
- styles/mixins/_vendor-prefixes.scss
9
-
10
- # LESS guard syntax - converter incorrectly changes LESS guards to @if
11
- styles/components/application-and-system/_c8y-login.scss
12
-
13
- # math.div() - converter incorrectly changes LESS division to SCSS math.div()
14
- styles/components/data-input/_c8y-range.scss
15
-
16
- # Non-existent mixin - converter incorrectly re-adds removed mixin calls
17
- styles/components/data-input/_dtm-icon-selector.scss
18
-
19
- # Complex @if/@else conditional logic - converter has basic guard support but may need manual review
20
- styles/mixins/_shadows-helper.scss
@@ -1,75 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Enhanced SCSS → LESS sync helper
4
-
5
- echo "==================================="
6
- echo "SCSS → LESS Sync Helper"
7
- echo "==================================="
8
- echo ""
9
-
10
- # Find modified files (both staged and unstaged)
11
- SCSS_FILES=$(git diff --name-only HEAD | grep '\.scss$' || true)
12
- SCSS_STAGED=$(git diff --cached --name-only | grep '\.scss$' || true)
13
- LESS_FILES=$(git diff --name-only HEAD | grep '\.less$' || true)
14
- LESS_STAGED=$(git diff --cached --name-only | grep '\.less$' || true)
15
- ALL_SCSS=$(printf "%s\n%s" "$SCSS_FILES" "$SCSS_STAGED" | sort -u | grep -v '^$' || true)
16
- ALL_LESS=$(printf "%s\n%s" "$LESS_FILES" "$LESS_STAGED" | sort -u | grep -v '^$' || true)
17
-
18
- # Count non-empty lines
19
- if [ -z "$ALL_SCSS" ]; then
20
- SCSS_COUNT=0
21
- else
22
- SCSS_COUNT=$(echo "$ALL_SCSS" | wc -l | tr -d ' ')
23
- fi
24
-
25
- if [ "$SCSS_COUNT" -eq 0 ]; then
26
- echo "✅ No SCSS files modified - no sync needed!"
27
- exit 0
28
- fi
29
-
30
- echo "Found $SCSS_COUNT modified SCSS file(s):"
31
- echo ""
32
-
33
- NEEDS_SYNC=0
34
-
35
- while IFS= read -r file; do
36
- if [ -z "$file" ]; then
37
- continue
38
- fi
39
-
40
- # Strip packages/style/ prefix if present
41
- RELATIVE_FILE="${file#packages/style/}"
42
- LESS_FILE="${RELATIVE_FILE%.scss}.less"
43
-
44
- if [ -f "$LESS_FILE" ]; then
45
- # Check if LESS file also modified
46
- LESS_FULL_PATH="${file%.scss}.less"
47
- if echo "$ALL_LESS" | grep -q "^${LESS_FULL_PATH}$"; then
48
- echo " ✅ $RELATIVE_FILE (LESS already updated)"
49
- else
50
- echo " ⚠️ $RELATIVE_FILE → $LESS_FILE (NEEDS SYNC)"
51
- NEEDS_SYNC=1
52
- fi
53
- else
54
- echo " ⚠️ $RELATIVE_FILE (no corresponding LESS file)"
55
- fi
56
- done <<< "$ALL_SCSS"
57
-
58
- if [ $NEEDS_SYNC -eq 1 ]; then
59
- echo ""
60
- echo "==================================="
61
- echo "⚠️ LESS files need syncing!"
62
- echo "==================================="
63
- echo ""
64
- echo "Options:"
65
- echo "1. Semi-automated: ./helper-scripts/convert-scss-to-less.sh --all"
66
- echo "2. Single file: ./helper-scripts/convert-scss-to-less.sh path/to/file.scss"
67
- echo "3. Manually sync SCSS → LESS"
68
- echo "4. Ask Claude to sync for you"
69
- echo ""
70
- exit 1
71
- fi
72
-
73
- echo ""
74
- echo "✅ All LESS files are in sync!"
75
- exit 0
@@ -1,56 +0,0 @@
1
- # Files Requiring Manual SCSS/LESS Synchronization
2
-
3
- This document lists files that cannot be automatically converted from SCSS to LESS due to complex syntax patterns.
4
-
5
- ## Files List
6
-
7
- ### `styles/core/buttons/_buttons.scss` / `_buttons.less`
8
-
9
- **Reason**: Complex mixin calls with multiple parameters including CSS functions
10
-
11
- **Issues**:
12
- - `.button-size()` mixin calls have 6 parameters
13
- - Contains `calc()` expressions as parameters
14
- - Converter cannot reliably distinguish between:
15
- - Parameter separator commas (need → semicolons for LESS)
16
- - calc() function commas (must remain commas)
17
- - Selector grouping commas (must remain commas)
18
-
19
- **Manual sync required for**:
20
- - Lines ~60: `.button-size(@btn-padding-vertical; calc(@btn-padding-horizontal * 2); ...)`
21
- - Lines ~794-797: `.btn-lg { .button-size(...) }`
22
- - Lines ~800-802: `.btn-sm { .button-size(...) }`
23
- - Lines ~805-807: `.btn-xs { .button-size(...) }`
24
-
25
- **Correct LESS syntax**:
26
- ```less
27
- .button-size(@param1; @param2; @param3; @param4; @param5; @param6);
28
- ```
29
-
30
- **Common mistakes**:
31
- ```less
32
- // WRONG - mixed separators
33
- .button-size(@param1, @param2; @param3, @param4; @param5; @param6);
34
-
35
- // WRONG - all commas
36
- .button-size(@param1, @param2, @param3, @param4, @param5, @param6);
37
- ```
38
-
39
- ## How to Maintain These Files
40
-
41
- 1. **Edit SCSS first**: Make changes to the `.scss` version
42
- 2. **Manually sync to LESS**: Copy changes to `.less` version, converting:
43
- - `$variable` → `@variable`
44
- - `@include mixin()` → `.mixin()`
45
- - `@mixin name()` → `.name()`
46
- - Mixin params: commas → semicolons
47
- - Keep calc/var/rgba commas as-is
48
- 3. **Test compilation**: Run `npm test --workspace=@c8y/style` to verify both compile
49
-
50
- ## Future Improvements
51
-
52
- To make these files auto-convertible:
53
- 1. Simplify mixin calls - put all parameters on one line
54
- 2. Extract calc() to variables before passing to mixins
55
- 3. Reduce number of mixin parameters
56
-
@@ -1,34 +0,0 @@
1
- @import '_mixins.less';
2
- @import 'base/_normalize';
3
- @import 'base/_print';
4
-
5
- // TRANSITIONS & ANIMATION
6
- @import 'animations/_component-animations';
7
- @import 'animations/_animate';
8
-
9
- // CORE CSS
10
- @import 'base/_scaffolding';
11
- @import 'core/feedback/_alerts';
12
- @import 'core/feedback/_badges';
13
- @import 'core/buttons/_buttons';
14
- @import 'core/feedback/_close';
15
- @import 'core/buttons/_button-groups';
16
- @import 'components/status-feedback-and-notifications/_code';
17
- @import 'core/feedback/_tag';
18
- @import 'core/forms/_forms';
19
- @import 'core/forms/_c8y-switch';
20
- @import 'base/_type';
21
- @import 'layout/_grid';
22
-
23
- // @import 'layout/_grid';
24
-
25
- @import 'core/forms/_input-groups';
26
- @import 'components/application-and-system/_c8y-cookie-banner';
27
-
28
- @import 'icons/_c8y-glyphs';
29
- @import 'icons/_c8y-icons';
30
- @import 'icons/_dlt-c8y-icons';
31
- // @import 'icons/_dlt-c8y-icons-stroke';
32
- @import '_utilities.less';
33
-
34
- @import 'components/navigation-and-layout/action-bars/_app-switcher';
@@ -1,47 +0,0 @@
1
- // Utilities
2
- @import 'mixins/_icon-base.less';
3
- @import 'mixins/_hide-text.less';
4
- @import 'mixins/_opacity.less';
5
- @import 'mixins/_image.less';
6
- /* Remove after Codex launch. will be replaced by Tag */
7
- @import 'mixins/_labels.less';
8
- @import 'mixins/_tag.less';
9
- @import 'mixins/_reset-filter.less';
10
- @import 'mixins/_resize.less';
11
- @import 'mixins/_responsive-visibility.less';
12
- @import 'mixins/_size.less';
13
- @import 'mixins/_tab-focus.less';
14
- @import 'mixins/_reset-text.less';
15
- @import 'mixins/_text-emphasis.less';
16
- @import 'mixins/_text-overflow.less';
17
- @import 'mixins/_vendor-prefixes.less';
18
- @import 'mixins/_color-mixins.less';
19
- @import 'mixins/_animation.less';
20
-
21
- // Components
22
- @import 'mixins/_buttons.less';
23
- @import 'mixins/_alert-variant.less';
24
- @import 'mixins/_panels.less';
25
- @import 'mixins/_pagination.less';
26
- @import 'mixins/_list-group.less';
27
- @import 'mixins/_nav-divider.less';
28
- @import 'mixins/_forms.less';
29
- @import 'mixins/_progress-bar.less';
30
- @import 'mixins/_table-row.less';
31
- @import 'mixins/_c8y-scrollbar.less';
32
-
33
- // Skins
34
- @import 'mixins/_background-variant.less';
35
- @import 'mixins/_border-radius.less';
36
- @import 'mixins/_gradients.less';
37
-
38
- // Layout
39
- @import 'mixins/_clearfix.less';
40
- @import 'mixins/_center-block.less';
41
- @import 'mixins/_nav-vertical-align.less';
42
- @import 'mixins/_grid-framework.less';
43
- @import 'mixins/_grid.less';
44
- @import 'mixins/_hide-scrollbars.less';
45
- @import 'mixins/_shadows-helper.less';
46
- @import 'mixins/_element-queries.less';
47
- @import 'mixins/_create-grid.less';
@@ -1,21 +0,0 @@
1
- // Main utility classes
2
-
3
- @import 'utilities/_caret';
4
- @import 'utilities/_text-utils';
5
- @import 'utilities/_contextual-colors';
6
- @import 'utilities/_display';
7
- @import 'utilities/_quickfloats';
8
- @import 'utilities/_margins-paddings';
9
- // Using the grid - mixins/
10
- @import 'utilities/_flex-containers';
11
- @import 'utilities/_flex-items';
12
-
13
- @import 'utilities/_position';
14
- @import 'utilities/_overflows';
15
- @import 'utilities/_separators';
16
- @import 'utilities/_borders';
17
- @import 'utilities/_elevation';
18
- @import 'utilities/_icon-utils';
19
- @import 'utilities/_container-queries';
20
- @import 'utilities/_sizing';
21
- @import 'utilities/_c8y-utils';