@adcops/autocore-react 3.0.33 → 3.0.36

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 (112) hide show
  1. package/dist/components/BlocklyEditor.css +71 -2
  2. package/dist/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleMono-Italic-VariableFont_wght.ttf +0 -0
  3. package/dist/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleMono-VariableFont_wght.ttf +0 -0
  4. package/dist/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-Italic-VariableFont_wght.ttf +0 -0
  5. package/dist/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-Regular.woff2 +0 -0
  6. package/dist/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-RegularItalic.woff2 +0 -0
  7. package/dist/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-VariableFont_wght.ttf +0 -0
  8. package/dist/themes/adc-dark/blue/theme.css +7097 -0
  9. package/dist/themes/adc-dark/blue/theme.css.map +1 -0
  10. package/package.json +10 -4
  11. package/src/components/BlocklyEditor.css +71 -2
  12. package/src/themes/adc-dark/_extensions.scss +166 -0
  13. package/src/themes/adc-dark/_variables.scss +913 -0
  14. package/src/themes/adc-dark/blue/_fonts.scss +24 -0
  15. package/src/themes/adc-dark/blue/adc_theme.scss +31 -0
  16. package/src/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleMono-Italic-VariableFont_wght.ttf +0 -0
  17. package/src/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleMono-VariableFont_wght.ttf +0 -0
  18. package/src/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-Italic-VariableFont_wght.ttf +0 -0
  19. package/src/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-Regular.woff2 +0 -0
  20. package/src/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-RegularItalic.woff2 +0 -0
  21. package/src/themes/adc-dark/blue/fonts/AtkinsonHyperlegibleNext-VariableFont_wght.ttf +0 -0
  22. package/src/themes/adc-dark/blue/theme.scss +14 -0
  23. package/src/themes/theme-base/_colors.scss +18 -0
  24. package/src/themes/theme-base/_common.scss +75 -0
  25. package/src/themes/theme-base/_components.scss +111 -0
  26. package/src/themes/theme-base/_mixins.scss +243 -0
  27. package/src/themes/theme-base/components/button/_button.scss +644 -0
  28. package/src/themes/theme-base/components/button/_speeddial.scss +91 -0
  29. package/src/themes/theme-base/components/button/_splitbutton.scss +359 -0
  30. package/src/themes/theme-base/components/data/_carousel.scss +39 -0
  31. package/src/themes/theme-base/components/data/_datascroller.scss +47 -0
  32. package/src/themes/theme-base/components/data/_datatable.scss +389 -0
  33. package/src/themes/theme-base/components/data/_dataview.scss +47 -0
  34. package/src/themes/theme-base/components/data/_filter.scss +138 -0
  35. package/src/themes/theme-base/components/data/_orderlist.scss +86 -0
  36. package/src/themes/theme-base/components/data/_organizationchart.scss +50 -0
  37. package/src/themes/theme-base/components/data/_paginator.scss +91 -0
  38. package/src/themes/theme-base/components/data/_picklist.scss +74 -0
  39. package/src/themes/theme-base/components/data/_timeline.scss +38 -0
  40. package/src/themes/theme-base/components/data/_tree.scss +184 -0
  41. package/src/themes/theme-base/components/data/_treetable.scss +431 -0
  42. package/src/themes/theme-base/components/file/_fileupload.scss +41 -0
  43. package/src/themes/theme-base/components/input/_autocomplete.scss +95 -0
  44. package/src/themes/theme-base/components/input/_calendar.scss +251 -0
  45. package/src/themes/theme-base/components/input/_cascadeselect.scss +107 -0
  46. package/src/themes/theme-base/components/input/_checkbox.scss +181 -0
  47. package/src/themes/theme-base/components/input/_chips.scss +102 -0
  48. package/src/themes/theme-base/components/input/_colorpicker.scss +18 -0
  49. package/src/themes/theme-base/components/input/_dropdown.scss +252 -0
  50. package/src/themes/theme-base/components/input/_editor.scss +122 -0
  51. package/src/themes/theme-base/components/input/_iconfield.scss +10 -0
  52. package/src/themes/theme-base/components/input/_inputgroup.scss +74 -0
  53. package/src/themes/theme-base/components/input/_inputicon.scss +15 -0
  54. package/src/themes/theme-base/components/input/_inputnumber.scss +5 -0
  55. package/src/themes/theme-base/components/input/_inputotp.scss +10 -0
  56. package/src/themes/theme-base/components/input/_inputswitch.scss +100 -0
  57. package/src/themes/theme-base/components/input/_inputtext.scss +101 -0
  58. package/src/themes/theme-base/components/input/_listbox.scss +139 -0
  59. package/src/themes/theme-base/components/input/_mention.scss +31 -0
  60. package/src/themes/theme-base/components/input/_multiselect.scss +278 -0
  61. package/src/themes/theme-base/components/input/_password.scss +33 -0
  62. package/src/themes/theme-base/components/input/_radiobutton.scss +170 -0
  63. package/src/themes/theme-base/components/input/_rating.scss +81 -0
  64. package/src/themes/theme-base/components/input/_selectbutton.scss +50 -0
  65. package/src/themes/theme-base/components/input/_slider.scss +49 -0
  66. package/src/themes/theme-base/components/input/_togglebutton.scss +99 -0
  67. package/src/themes/theme-base/components/input/_treeselect.scss +151 -0
  68. package/src/themes/theme-base/components/input/_tristatecheckbox.scss +46 -0
  69. package/src/themes/theme-base/components/menu/_breadcrumb.scss +42 -0
  70. package/src/themes/theme-base/components/menu/_contextmenu.scss +39 -0
  71. package/src/themes/theme-base/components/menu/_dock.scss +109 -0
  72. package/src/themes/theme-base/components/menu/_megamenu.scss +141 -0
  73. package/src/themes/theme-base/components/menu/_menu.scss +33 -0
  74. package/src/themes/theme-base/components/menu/_menubar.scss +216 -0
  75. package/src/themes/theme-base/components/menu/_panelmenu.scss +153 -0
  76. package/src/themes/theme-base/components/menu/_slidemenu.scss +60 -0
  77. package/src/themes/theme-base/components/menu/_steps.scss +57 -0
  78. package/src/themes/theme-base/components/menu/_tabmenu.scss +50 -0
  79. package/src/themes/theme-base/components/menu/_tieredmenu.scss +43 -0
  80. package/src/themes/theme-base/components/messages/_inlinemessage.scss +69 -0
  81. package/src/themes/theme-base/components/messages/_message.scss +107 -0
  82. package/src/themes/theme-base/components/messages/_toast.scss +100 -0
  83. package/src/themes/theme-base/components/misc/_avatar.scss +34 -0
  84. package/src/themes/theme-base/components/misc/_badge.scss +77 -0
  85. package/src/themes/theme-base/components/misc/_blockui.scss +0 -0
  86. package/src/themes/theme-base/components/misc/_chip.scss +39 -0
  87. package/src/themes/theme-base/components/misc/_inplace.scss +17 -0
  88. package/src/themes/theme-base/components/misc/_metergroup.scss +81 -0
  89. package/src/themes/theme-base/components/misc/_progressbar.scss +17 -0
  90. package/src/themes/theme-base/components/misc/_scrolltop.scss +25 -0
  91. package/src/themes/theme-base/components/misc/_skeleton.scss +8 -0
  92. package/src/themes/theme-base/components/misc/_tag.scss +40 -0
  93. package/src/themes/theme-base/components/misc/_terminal.scss +12 -0
  94. package/src/themes/theme-base/components/multimedia/_galleria.scss +153 -0
  95. package/src/themes/theme-base/components/multimedia/_image.scss +54 -0
  96. package/src/themes/theme-base/components/overlay/_confirmpopup.scss +72 -0
  97. package/src/themes/theme-base/components/overlay/_dialog.scss +78 -0
  98. package/src/themes/theme-base/components/overlay/_overlaypanel.scss +64 -0
  99. package/src/themes/theme-base/components/overlay/_sidebar.scss +23 -0
  100. package/src/themes/theme-base/components/overlay/_tooltip.scss +33 -0
  101. package/src/themes/theme-base/components/panel/_accordion.scss +118 -0
  102. package/src/themes/theme-base/components/panel/_card.scss +30 -0
  103. package/src/themes/theme-base/components/panel/_divider.scss +31 -0
  104. package/src/themes/theme-base/components/panel/_fieldset.scss +47 -0
  105. package/src/themes/theme-base/components/panel/_panel.scss +47 -0
  106. package/src/themes/theme-base/components/panel/_scrollpanel.scss +10 -0
  107. package/src/themes/theme-base/components/panel/_splitter.scss +23 -0
  108. package/src/themes/theme-base/components/panel/_stepper.scss +136 -0
  109. package/src/themes/theme-base/components/panel/_tabview.scss +147 -0
  110. package/src/themes/theme-base/components/panel/_toolbar.scss +11 -0
  111. package/tools/build-themes.cjs +66 -0
  112. package/tools/copy-distribution-files.cjs +20 -16
@@ -0,0 +1,47 @@
1
+ .p-panel {
2
+ .p-panel-header {
3
+ border: $panelHeaderBorder;
4
+ padding: $panelHeaderPadding;
5
+ background: $panelHeaderBg;
6
+ color: $panelHeaderTextColor;
7
+ border-top-right-radius: $borderRadius;
8
+ border-top-left-radius: $borderRadius;
9
+
10
+ .p-panel-title {
11
+ font-weight: $panelHeaderFontWeight;
12
+ }
13
+
14
+ .p-panel-header-icon {
15
+ @include action-icon();
16
+ }
17
+ }
18
+
19
+ &.p-panel-toggleable {
20
+ .p-panel-header {
21
+ padding: $panelToggleableHeaderPadding;
22
+ }
23
+ }
24
+
25
+ &:has(> .p-panel-footer) .p-panel-content {
26
+ border-bottom-left-radius: 0;
27
+ border-bottom-right-radius: 0;
28
+ }
29
+
30
+ .p-panel-content {
31
+ padding: $panelContentPadding;
32
+ border: $panelContentBorder;
33
+ background: $panelContentBg;
34
+ color: $panelContentTextColor;
35
+ border-bottom-right-radius: $borderRadius;
36
+ border-bottom-left-radius: $borderRadius;
37
+ border-top: 0 none;
38
+ }
39
+
40
+ .p-panel-footer {
41
+ padding: $panelFooterPadding;
42
+ border: $panelFooterBorder;
43
+ background: $panelFooterBg;
44
+ color: $panelFooterTextColor;
45
+ border-top: 0 none;
46
+ }
47
+ }
@@ -0,0 +1,10 @@
1
+ .p-scrollpanel {
2
+ .p-scrollpanel-bar {
3
+ background: $scrollPanelTrackBg;
4
+ border: $scrollPanelTrackBorder;
5
+
6
+ &:focus-visible {
7
+ @include focused();
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,23 @@
1
+ .p-splitter {
2
+ border: $panelContentBorder;
3
+ background: $panelContentBg;
4
+ border-radius: $borderRadius;
5
+ color: $panelContentTextColor;
6
+
7
+ .p-splitter-gutter {
8
+ transition: $actionIconTransition;
9
+ background: $splitterGutterBg;
10
+
11
+ .p-splitter-gutter-handle {
12
+ background: $splitterGutterHandleBg;
13
+
14
+ &:focus-visible {
15
+ @include focused();
16
+ }
17
+ }
18
+ }
19
+
20
+ .p-splitter-gutter-resizing {
21
+ background: $splitterGutterHandleBg;
22
+ }
23
+ }
@@ -0,0 +1,136 @@
1
+ @use "sass:math";
2
+
3
+ //theme
4
+ .p-stepper {
5
+ .p-stepper-nav {
6
+ display: flex;
7
+ justify-content: space-between;
8
+ margin: 0;
9
+ padding: 0;
10
+ list-style-type: none;
11
+ }
12
+
13
+ .p-stepper-header {
14
+ padding: $inlineSpacing;
15
+
16
+ .p-stepper-action {
17
+ transition: $listItemTransition;
18
+ border-radius: $borderRadius;
19
+ background: $stepsItemBg;
20
+ outline-color: transparent;
21
+
22
+ .p-stepper-number {
23
+ color: $stepsItemNumberColor;
24
+ border: $stepsItemBorder;
25
+ border-width: 2px;
26
+ background: $stepsItemBg;
27
+ min-width: $stepsItemNumberWidth;
28
+ height: $stepsItemNumberHeight;
29
+ line-height: $stepsItemNumberHeight;
30
+ font-size: $stepsItemNumberFontSize;
31
+ border-radius: $stepsItemNumberBorderRadius;
32
+ transition: $actionIconTransition;
33
+ }
34
+
35
+ .p-stepper-title {
36
+ margin-left: $inlineSpacing;
37
+ color: $stepsItemTextColor;
38
+ font-weight: $stepsItemActiveFontWeight;
39
+ transition: $actionIconTransition;
40
+ }
41
+
42
+ &:not(.p-disabled):focus-visible {
43
+ @include focused();
44
+ }
45
+ }
46
+
47
+ &.p-highlight {
48
+ .p-stepper-number {
49
+ background: $highlightBg;
50
+ color: $highlightTextColor;
51
+ }
52
+
53
+ .p-stepper-title {
54
+ color: $textColor;
55
+ }
56
+ }
57
+
58
+ &:not(.p-disabled):focus-visible {
59
+ @include focused();
60
+ }
61
+
62
+ &:has(~ .p-highlight) {
63
+ @if variable-exists(primaryColor) {
64
+ .p-stepper-separator {
65
+ background-color: $primaryColor;
66
+ }
67
+ }
68
+ }
69
+ }
70
+
71
+ .p-stepper-panels {
72
+ background: $tabviewContentBg;
73
+ padding: $tabviewContentPadding;
74
+ color: $tabviewContentTextColor;
75
+ }
76
+
77
+ .p-stepper-separator {
78
+ background-color: $timelineEventColor;
79
+ width: 100%;
80
+ height: 2px;
81
+ margin-inline-start: calc($inlineSpacing * 2);
82
+ transition: $listItemTransition;
83
+ }
84
+
85
+ &.p-stepper-vertical {
86
+ display: flex;
87
+ flex-direction: column;
88
+
89
+ .p-stepper-toggleable-content {
90
+ display: flex;
91
+ flex: 1 1 auto;
92
+ background: $tabviewContentBg;
93
+ color: $tabviewContentTextColor;
94
+ }
95
+
96
+ .p-stepper-panel {
97
+ display: flex;
98
+ flex-direction: column;
99
+ flex: initial;
100
+
101
+ &.p-stepper-panel-active {
102
+ flex: 1 1 auto;
103
+ }
104
+
105
+ .p-stepper-header {
106
+ flex: initial;
107
+ }
108
+
109
+ .p-stepper-content {
110
+ width: 100%;
111
+ padding-left: calc($inlineSpacing * 2);
112
+ }
113
+
114
+ .p-stepper-separator {
115
+ flex: 0 0 auto;
116
+ width: 2px;
117
+ height: auto;
118
+ margin-inline-start: calc($inlineSpacing * 7 / 2 + 2px);
119
+ }
120
+
121
+ &:has(~ .p-stepper-panel-active) {
122
+ @if variable-exists(primaryColor) {
123
+ .p-stepper-separator {
124
+ background-color: $primaryColor;
125
+ }
126
+ }
127
+ }
128
+
129
+ &:last-of-type {
130
+ .p-stepper-content {
131
+ padding-left: calc($inlineSpacing * 6);
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,147 @@
1
+ //core
2
+ .p-tabview-nav-container {
3
+ position: relative;
4
+ }
5
+
6
+ .p-tabview-scrollable .p-tabview-nav-container {
7
+ overflow: hidden;
8
+ }
9
+
10
+ .p-tabview-nav-content {
11
+ overflow-x: auto;
12
+ overflow-y: hidden;
13
+ scroll-behavior: smooth;
14
+ scrollbar-width: none;
15
+ overscroll-behavior: contain auto;
16
+ position: relative;
17
+ }
18
+
19
+ .p-tabview-nav {
20
+ display: flex;
21
+ margin: 0;
22
+ padding: 0;
23
+ list-style-type: none;
24
+ flex: 1 1 auto;
25
+ }
26
+
27
+ .p-tabview-nav-link {
28
+ cursor: pointer;
29
+ user-select: none;
30
+ display: flex;
31
+ align-items: center;
32
+ position: relative;
33
+ text-decoration: none;
34
+ overflow: hidden;
35
+ }
36
+
37
+ .p-tabview-ink-bar {
38
+ display: none;
39
+ z-index: 1;
40
+ }
41
+
42
+ .p-tabview-nav-link:focus {
43
+ z-index: 1;
44
+ }
45
+
46
+ .p-tabview-close {
47
+ z-index: 1;
48
+ }
49
+
50
+ .p-tabview-title {
51
+ line-height: 1;
52
+ white-space: nowrap;
53
+ }
54
+
55
+ .p-tabview-nav-btn {
56
+ position: absolute;
57
+ top: 0;
58
+ z-index: 2;
59
+ height: 100%;
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ }
64
+
65
+ .p-tabview-nav-prev {
66
+ left: 0;
67
+ }
68
+
69
+ .p-tabview-nav-next {
70
+ right: 0;
71
+ }
72
+
73
+ .p-tabview-nav-content::-webkit-scrollbar {
74
+ display: none;
75
+ }
76
+
77
+ //theme
78
+ .p-tabview {
79
+ .p-tabview-nav {
80
+ background: $tabviewNavBg;
81
+ border: $tabviewNavBorder;
82
+ border-width: $tabviewNavBorderWidth;
83
+
84
+ li {
85
+ margin-right: $tabviewHeaderSpacing;
86
+
87
+ .p-tabview-nav-link {
88
+ border: $tabviewHeaderBorder;
89
+ border-width: $tabviewHeaderBorderWidth;
90
+ border-color: $tabviewHeaderBorderColor;
91
+ background: $tabviewHeaderBg;
92
+ color: $tabviewHeaderTextColor;
93
+ padding: $tabviewHeaderPadding;
94
+ font-weight: $tabviewHeaderFontWeight;
95
+ border-top-right-radius: $borderRadius;
96
+ border-top-left-radius: $borderRadius;
97
+ transition: $listItemTransition;
98
+ margin: $tabviewHeaderMargin;
99
+
100
+ &:not(.p-disabled):focus-visible {
101
+ @include focused-inset();
102
+ }
103
+ }
104
+
105
+ &:not(.p-highlight):not(.p-disabled):hover {
106
+ .p-tabview-nav-link {
107
+ background: $tabviewHeaderHoverBg;
108
+ border-color: $tabviewHeaderHoverBorderColor;
109
+ color: $tabviewHeaderTextHoverColor;
110
+ }
111
+ }
112
+
113
+ &.p-highlight {
114
+ .p-tabview-nav-link {
115
+ background: $tabviewHeaderActiveBg;
116
+ border-color: $tabviewHeaderActiveBorderColor;
117
+ color: $tabviewHeaderTextActiveColor;
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ .p-tabview-close {
124
+ margin-left: $inlineSpacing;
125
+ }
126
+
127
+ .p-tabview-nav-btn.p-link {
128
+ background: $tabviewHeaderActiveBg;
129
+ color: $tabviewHeaderTextActiveColor;
130
+ width: $buttonIconOnlyWidth;
131
+ box-shadow: $raisedButtonShadow;
132
+ border-radius: 0;
133
+
134
+ &:focus-visible {
135
+ @include focused-inset();
136
+ }
137
+ }
138
+
139
+ .p-tabview-panels {
140
+ background: $tabviewContentBg;
141
+ padding: $tabviewContentPadding;
142
+ border: $tabviewContentBorder;
143
+ color: $tabviewContentTextColor;
144
+ border-bottom-right-radius: $borderRadius;
145
+ border-bottom-left-radius: $borderRadius;
146
+ }
147
+ }
@@ -0,0 +1,11 @@
1
+ .p-toolbar {
2
+ background: $panelHeaderBg;
3
+ border: $panelHeaderBorder;
4
+ padding: $panelHeaderPadding;
5
+ border-radius: $borderRadius;
6
+ gap: $inlineSpacing;
7
+
8
+ .p-toolbar-separator {
9
+ margin: 0 $inlineSpacing;
10
+ }
11
+ }
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Copyright (C) 2025 Automated Design Corp.. All Rights Reserved.
3
+ * Created Date: 2025-07-15 15:05:23
4
+ * -----
5
+ * Last Modified: 2025-07-16 07:33:11
6
+ * -----
7
+ *
8
+ */
9
+
10
+
11
+ const { execSync } = require('child_process');
12
+ const path = require('path');
13
+ const fs = require('fs');
14
+
15
+ /**
16
+ *
17
+ * @param {*} input_file Relative path to the source sass file.
18
+ * @param {*} output_file Relative path to the destination file
19
+ */
20
+ function build_theme(input_file, output_file) {
21
+
22
+ // Define absolute paths for input and output files for reliability
23
+ const inputFile = path.resolve(__dirname, input_file);
24
+ const outputFile = path.resolve(__dirname, output_file);
25
+
26
+
27
+ // Get the directory of the output file
28
+ const outputDir = path.dirname(outputFile);
29
+
30
+ try {
31
+ // 1. Ensure the output directory exists.
32
+ // The `recursive: true` option creates parent directories if they don't exist.
33
+ if (!fs.existsSync(outputDir)) {
34
+ fs.mkdirSync(outputDir, { recursive: true });
35
+ console.log(`Created directory: ${outputDir}`);
36
+ }
37
+
38
+ // 2. Construct the sass build command.
39
+ // We use npx to ensure the locally installed sass package is used.
40
+ const command = `npx sass ${inputFile} ${outputFile}`;
41
+
42
+ console.log(`Executing: ${command}`);
43
+
44
+ // 3. Execute the command.
45
+ // `stdio: 'inherit'` pipes the output (and errors) to the current terminal.
46
+ execSync(command, { stdio: 'inherit' });
47
+
48
+ console.log('✅ AutoCore theme built successfully!');
49
+
50
+ } catch (error) {
51
+ console.error('❌ Failed to build AutoCore theme.');
52
+ // Exit the process with an error code to stop the entire build chain if this fails.
53
+ process.exit(1);
54
+ }
55
+
56
+ }
57
+
58
+
59
+
60
+ console.log('Building custom AutoCore theme...');
61
+
62
+ //
63
+ // List the themes to include in the distribution below.
64
+ //
65
+
66
+ build_theme('../src/themes/adc-dark/blue/adc_theme.scss', '../dist/themes/adc-dark/blue/theme.css');
@@ -3,7 +3,7 @@
3
3
  * Created Date: 2024-01-08 13:01:16
4
4
  * Author: Thomas C. Bitsky Jr.
5
5
  * -----
6
- * Last Modified: 2024-03-17 12:37:37
6
+ * Last Modified: 2025-07-16 13:37:05
7
7
  * Modified By: ADC
8
8
  * -----
9
9
  *
@@ -26,10 +26,7 @@ const path = require('path');
26
26
  * @param {*} destDir
27
27
  */
28
28
  function copyFilesByType(srcDir, destDir, extension) {
29
- // Create the destination directory if it doesn't exist
30
- if (!fs.existsSync(destDir)) {
31
- fs.mkdirSync(destDir, { recursive: true });
32
- }
29
+
33
30
 
34
31
  // Read the contents of the source directory
35
32
  fs.readdir(srcDir, { withFileTypes: true }, (err, files) => {
@@ -37,8 +34,8 @@ function copyFilesByType(srcDir, destDir, extension) {
37
34
  console.error('Error reading directory:', err);
38
35
  return;
39
36
  }
40
-
41
- files.forEach(file => {
37
+
38
+ files.forEach(file => {
42
39
  const srcPath = path.join(srcDir, file.name);
43
40
  const destPath = path.join(destDir, file.name);
44
41
 
@@ -46,7 +43,18 @@ function copyFilesByType(srcDir, destDir, extension) {
46
43
  // If it's a directory, recurse into it
47
44
  copyFilesByType(srcPath, destPath, extension);
48
45
  } else if (path.extname(file.name) === `.${extension}`) {
49
- // If it's a CSS file, copy it
46
+
47
+ // If it's a matching type of file file, copy it.
48
+
49
+ //
50
+ // Create the destination directory if it doesn't exist
51
+ // We moved this here so that the directory only gets created if
52
+ // it contains matching file types.
53
+ //
54
+ if (!fs.existsSync(destDir)) {
55
+ fs.mkdirSync(destDir, { recursive: true });
56
+ }
57
+
50
58
  fs.copyFile(srcPath, destPath, err => {
51
59
  if (err) {
52
60
  console.error('Error copying file:', err);
@@ -57,18 +65,14 @@ function copyFilesByType(srcDir, destDir, extension) {
57
65
  });
58
66
  }
59
67
 
60
-
61
- // // destination.txt will be created or overwritten by default.
62
- // fs.copyFile("./package.json", './dist/package.json', (err) =>
63
- // {
64
- // if (err) throw err;
65
- // });
66
-
67
- // copy in the files that won't be included by tsc
68
+ //
69
+ // Specify the file types that won't be included by tsc to be added to the distribution.
70
+ //
68
71
 
69
72
  copyFilesByType("./src", "./dist", "css");
70
73
  copyFilesByType("./src", "./dist", "ttf");
71
74
  copyFilesByType("./src", "./dist", "woff2");
72
75
  copyFilesByType("./src", "./dist", "svg");
76
+
73
77
  // JavaScript files won't be processed by tsc
74
78
  //copyFilesByType("./src", "./dist", "js");