diff --git a/package.json b/package.json
index 95b23d19fd..72a0a0910c 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,8 @@
"format:e2e": "prettier ./e2e/**/*.js --write --ignore-unknown",
"generate": "lerna run generate --loglevel success --scope \"@carbon/ibm-products\" --",
"lint": "run-p -s 'lint:*'",
+ "lint:license": "scripts/check-license.cjs -a",
+ "lint:license:staged": "scripts/check-license.cjs -w",
"lint:js": "eslint packages --fix",
"lint:styles": "stylelint '**/*.scss'",
"prepare": "husky install",
@@ -83,6 +85,8 @@
"eslint": "^8.56.0",
"eslint-config-carbon": "^2.20.0",
"eslint-plugin-ssr-friendly": "^1.3.0",
+ "gitignore-to-glob": "^0.3.0",
+ "globby": "^14.0.0",
"husky": "^9.0.5",
"jest": "^29.7.0",
"jest-canvas-mock": "2.5.2",
@@ -207,7 +211,8 @@
"!(examples/**/*)**/*.{js,jsx,ts,tsx}": [
"npx prettier --cache --write",
"npx eslint --fix",
- "npx cspell --no-must-find-files"
+ "npx cspell --no-must-find-files",
+ "yarn lint:license:staged"
],
"**/*.scss": [
"npx prettier --cache --write",
@@ -215,7 +220,8 @@
],
"!(examples/**/*).md": [
"npx prettier --cache --write",
- "npx cspell --no-must-find-files"
+ "npx cspell --no-must-find-files",
+ "yarn lint:license:staged"
]
},
"dependencies": {
diff --git a/packages/core/src/component-playground/components/Card/index.js b/packages/core/src/component-playground/components/Card/index.js
index d889ba4dda..c7c18795ce 100644
--- a/packages/core/src/component-playground/components/Card/index.js
+++ b/packages/core/src/component-playground/components/Card/index.js
@@ -1,2 +1,9 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import ProductiveCard from './ProductiveCard';
export { ProductiveCard };
diff --git a/packages/core/src/component-playground/components/CreateTearsheet/index.js b/packages/core/src/component-playground/components/CreateTearsheet/index.js
index 63cc53fa4d..579751d6af 100644
--- a/packages/core/src/component-playground/components/CreateTearsheet/index.js
+++ b/packages/core/src/component-playground/components/CreateTearsheet/index.js
@@ -1,2 +1,9 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import MultiStepTearsheetWide from './CreateTearsheetWide';
export { MultiStepTearsheetWide };
diff --git a/packages/core/src/component-playground/components/GlobalHeader/index.js b/packages/core/src/component-playground/components/GlobalHeader/index.js
index 4af9c52cf5..db91be6bba 100644
--- a/packages/core/src/component-playground/components/GlobalHeader/index.js
+++ b/packages/core/src/component-playground/components/GlobalHeader/index.js
@@ -1,2 +1,9 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import GlobalHeader from './GlobalHeader';
export { GlobalHeader };
diff --git a/packages/core/src/component-playground/components/PageHeader/index.js b/packages/core/src/component-playground/components/PageHeader/index.js
index 30ddd64e3d..e63641c961 100644
--- a/packages/core/src/component-playground/components/PageHeader/index.js
+++ b/packages/core/src/component-playground/components/PageHeader/index.js
@@ -1,2 +1,9 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import PageHeader from './PageHeader';
export { PageHeader };
diff --git a/packages/core/src/component-playground/components/SidePanel/index.js b/packages/core/src/component-playground/components/SidePanel/index.js
index 00778be6a7..c899a8208b 100644
--- a/packages/core/src/component-playground/components/SidePanel/index.js
+++ b/packages/core/src/component-playground/components/SidePanel/index.js
@@ -1,2 +1,9 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import SidePanel from './SidePanel';
export { SidePanel };
diff --git a/packages/core/src/component-playground/components/Tearsheet/index.js b/packages/core/src/component-playground/components/Tearsheet/index.js
index d7eccd9a5e..69dc55d5e4 100644
--- a/packages/core/src/component-playground/components/Tearsheet/index.js
+++ b/packages/core/src/component-playground/components/Tearsheet/index.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import TearsheetNarrow from './TearsheetNarrow';
import TearsheetWide from './TearsheetWide';
export { TearsheetNarrow, TearsheetWide };
diff --git a/packages/core/src/component-playground/components/index.js b/packages/core/src/component-playground/components/index.js
index 0ca96f37c1..5d7687a0c8 100644
--- a/packages/core/src/component-playground/components/index.js
+++ b/packages/core/src/component-playground/components/index.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { GlobalHeader } from './GlobalHeader';
export { PageHeader } from './PageHeader';
export { ProductiveCard } from './Card';
diff --git a/packages/core/src/component-playground/data/CardData.js b/packages/core/src/component-playground/data/CardData.js
index 1ed8b256fe..8cd4b28dee 100644
--- a/packages/core/src/component-playground/data/CardData.js
+++ b/packages/core/src/component-playground/data/CardData.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const CardData = {
1: {
label: 'Label 1 encapsulated',
diff --git a/packages/core/src/component-playground/data/index.js b/packages/core/src/component-playground/data/index.js
index 9183c42954..c397b2c371 100644
--- a/packages/core/src/component-playground/data/index.js
+++ b/packages/core/src/component-playground/data/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { CardData } from './CardData';
diff --git a/packages/ibm-products-community/src/components/Example/Example.js b/packages/ibm-products-community/src/components/Example/Example.js
index bf98a8f861..3407687dcf 100644
--- a/packages/ibm-products-community/src/components/Example/Example.js
+++ b/packages/ibm-products-community/src/components/Example/Example.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
const componentName = 'ExampleCommunityComponent';
diff --git a/packages/ibm-products-community/src/components/Example/Example.test.js b/packages/ibm-products-community/src/components/Example/Example.test.js
index 3351c5e18b..2cbd734d72 100644
--- a/packages/ibm-products-community/src/components/Example/Example.test.js
+++ b/packages/ibm-products-community/src/components/Example/Example.test.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { render } from '@testing-library/react';
import { Example } from '.';
diff --git a/packages/ibm-products-community/src/components/Example/_example.scss b/packages/ibm-products-community/src/components/Example/_example.scss
index 92e38457ab..a8c4e3edb1 100644
--- a/packages/ibm-products-community/src/components/Example/_example.scss
+++ b/packages/ibm-products-community/src/components/Example/_example.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
.example {
font-size: inherit;
}
diff --git a/packages/ibm-products-community/src/components/Example/_index.scss b/packages/ibm-products-community/src/components/Example/_index.scss
index ee97ee2faf..b1b86e2d72 100644
--- a/packages/ibm-products-community/src/components/Example/_index.scss
+++ b/packages/ibm-products-community/src/components/Example/_index.scss
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use './example';
diff --git a/packages/ibm-products-community/src/components/Example/index.js b/packages/ibm-products-community/src/components/Example/index.js
index 5415efe6b8..c4103e7047 100644
--- a/packages/ibm-products-community/src/components/Example/index.js
+++ b/packages/ibm-products-community/src/components/Example/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { default as Example } from './Example';
diff --git a/packages/ibm-products-community/src/components/_index.scss b/packages/ibm-products-community/src/components/_index.scss
index 60642e3ba7..e872c6e0fb 100644
--- a/packages/ibm-products-community/src/components/_index.scss
+++ b/packages/ibm-products-community/src/components/_index.scss
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use './Example/';
diff --git a/packages/ibm-products-community/src/index.js b/packages/ibm-products-community/src/index.js
index 8ca597f637..5339345750 100644
--- a/packages/ibm-products-community/src/index.js
+++ b/packages/ibm-products-community/src/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { default as Example } from './components';
diff --git a/packages/ibm-products-community/src/index.scss b/packages/ibm-products-community/src/index.scss
index d7837b399d..c8a7949831 100644
--- a/packages/ibm-products-community/src/index.scss
+++ b/packages/ibm-products-community/src/index.scss
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@forward './components/';
diff --git a/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderCondition.scss b/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderCondition.scss
index 8d73a44203..da4e37f515 100644
--- a/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderCondition.scss
+++ b/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderCondition.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use '@carbon/react/scss/theme' as *;
@use '@carbon/react/scss/spacing' as *;
@use '@carbon/react/scss/motion' as *;
diff --git a/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderItem.scss b/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderItem.scss
index 03916212e3..b58c0f26ea 100644
--- a/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderItem.scss
+++ b/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_conditionBuilderItem.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use 'sass:list';
@use 'sass:math';
@use 'sass:string';
diff --git a/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_index.scss b/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_index.scss
index ff2061bed5..45d615b1ba 100644
--- a/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_index.scss
+++ b/packages/ibm-products-styles/src/components/ConditionBuilder/styles/_index.scss
@@ -1,2 +1,9 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use './conditionBuilderItem';
@use './conditionBuilderCondition';
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useActionsColumn.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useActionsColumn.scss
index 80e981a621..93344f2349 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useActionsColumn.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useActionsColumn.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2021
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '@carbon/styles/scss/spacing' as *;
@use '@carbon/styles/scss/theme';
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useColumnRightAlign.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useColumnRightAlign.scss
index ad7e51009f..502c71282c 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useColumnRightAlign.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useColumnRightAlign.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2020
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use './variables';
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useExpandedRow.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useExpandedRow.scss
index 6338748a3b..c6224ea82a 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useExpandedRow.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useExpandedRow.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2022
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '../../../global/styles/project-settings' as c4p-settings;
@use '@carbon/styles/scss/theme' as *;
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useInlineEdit.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useInlineEdit.scss
index a33d682cef..129cd8fbf7 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useInlineEdit.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useInlineEdit.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2021
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '../../../global/styles/project-settings' as c4p-settings;
@use '@carbon/styles/scss/spacing' as *;
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedRows.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedRows.scss
index 87839f399d..596ebce583 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedRows.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedRows.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2020 - 2022
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '@carbon/styles/scss/theme' as *;
@use '@carbon/styles/scss/spacing' as *;
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedTable.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedTable.scss
index 985b26d7b5..ddebc242dc 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedTable.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useNestedTable.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2020
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '@carbon/styles/scss/theme' as *;
@use '@carbon/styles/scss/spacing' as *;
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/_useStickyColumn.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/_useStickyColumn.scss
index dab856b3c6..a4b820e7e8 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/_useStickyColumn.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/_useStickyColumn.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2021
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '@carbon/styles/scss/theme' as *;
@use '@carbon/styles/scss/spacing' as *;
diff --git a/packages/ibm-products-styles/src/components/Datagrid/styles/addons/_RowSizeDropdown.scss b/packages/ibm-products-styles/src/components/Datagrid/styles/addons/_RowSizeDropdown.scss
index 95d91502e4..e8828ca11a 100644
--- a/packages/ibm-products-styles/src/components/Datagrid/styles/addons/_RowSizeDropdown.scss
+++ b/packages/ibm-products-styles/src/components/Datagrid/styles/addons/_RowSizeDropdown.scss
@@ -1,10 +1,9 @@
-/*
-* Licensed Materials - Property of IBM
-* 5724-Q36
-* (c) Copyright IBM Corp. 2021
-* US Government Users Restricted Rights - Use, duplication or disclosure
-* restricted by GSA ADP Schedule Contract with IBM Corp.
-*/
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use '@carbon/styles/scss/theme' as *;
@use '@carbon/styles/scss/spacing' as *;
diff --git a/packages/ibm-products-styles/src/config-dev.scss b/packages/ibm-products-styles/src/config-dev.scss
index 311d8242ab..5152897865 100644
--- a/packages/ibm-products-styles/src/config-dev.scss
+++ b/packages/ibm-products-styles/src/config-dev.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@forward './global/styles/project-settings' with (
$pkg-prefix: 'dev-prefix--c4p'
);
diff --git a/packages/ibm-products-styles/src/config.scss b/packages/ibm-products-styles/src/config.scss
index 5439e975f3..ee71ac61aa 100644
--- a/packages/ibm-products-styles/src/config.scss
+++ b/packages/ibm-products-styles/src/config.scss
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@forward './global/styles/project-settings';
diff --git a/packages/ibm-products/flags.js b/packages/ibm-products/flags.js
index 213424e50d..620e51a887 100644
--- a/packages/ibm-products/flags.js
+++ b/packages/ibm-products/flags.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const { pkg } = require('./lib/settings.js');
const { component, feature } = pkg;
diff --git a/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.js b/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.js
index 9f2fdb9d3a..cfaf48d228 100644
--- a/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.js
+++ b/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.stories.js b/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.stories.js
index f43ee26ef1..e5f2b4bcd7 100644
--- a/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.stories.js
+++ b/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.stories.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.test.js b/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.test.js
index 1daa889a26..8e93eaab4d 100644
--- a/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.test.js
+++ b/packages/ibm-products/scripts/generate/templates/DISPLAY_NAME.test.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/scripts/generate/templates/_STYLE_NAME.scss b/packages/ibm-products/scripts/generate/templates/_STYLE_NAME.scss
index b876cbd4f8..f5e0a9c386 100644
--- a/packages/ibm-products/scripts/generate/templates/_STYLE_NAME.scss
+++ b/packages/ibm-products/scripts/generate/templates/_STYLE_NAME.scss
@@ -1,9 +1,9 @@
-//
-// Copyright IBM Corp. FULL_YEAR, FULL_YEAR
-//
-// This source code is licensed under the Apache-2.0 license found in the
-// LICENSE file in the root directory of this source tree.
-//
+/**
+ * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
// Standard imports.
@use '../../global/styles/project-settings' as c4p-settings;
diff --git a/packages/ibm-products/scripts/generate/templates/_carbon-imports.scss b/packages/ibm-products/scripts/generate/templates/_carbon-imports.scss
index 6b668ddd78..a903b68538 100644
--- a/packages/ibm-products/scripts/generate/templates/_carbon-imports.scss
+++ b/packages/ibm-products/scripts/generate/templates/_carbon-imports.scss
@@ -1,9 +1,9 @@
-//
-// Copyright IBM Corp. FULL_YEAR, FULL_YEAR
-//
-// This source code is licensed under the Apache-2.0 license found in the
-// LICENSE file in the root directory of this source tree.
-//
+/**
+ * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
// Import any Carbon component styles used from DISPLAY_NAME in this file.
// DISPLAY_NAME uses the following Carbon components:
diff --git a/packages/ibm-products/scripts/generate/templates/_index-with-carbon.scss b/packages/ibm-products/scripts/generate/templates/_index-with-carbon.scss
index 857c44d490..a5e8e010af 100644
--- a/packages/ibm-products/scripts/generate/templates/_index-with-carbon.scss
+++ b/packages/ibm-products/scripts/generate/templates/_index-with-carbon.scss
@@ -1,9 +1,9 @@
-//
-// Copyright IBM Corp. FULL_YEAR, FULL_YEAR
-//
-// This source code is licensed under the Apache-2.0 license found in the
-// LICENSE file in the root directory of this source tree.
-//
+/**
+ * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use './carbon-imports';
@use './STYLE_NAME';
diff --git a/packages/ibm-products/scripts/generate/templates/_index.scss b/packages/ibm-products/scripts/generate/templates/_index.scss
index 03cf695fa8..6419c5ef20 100644
--- a/packages/ibm-products/scripts/generate/templates/_index.scss
+++ b/packages/ibm-products/scripts/generate/templates/_index.scss
@@ -1,8 +1,8 @@
-//
-// Copyright IBM Corp. FULL_YEAR, FULL_YEAR
-//
-// This source code is licensed under the Apache-2.0 license found in the
-// LICENSE file in the root directory of this source tree.
-//
+/**
+ * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@use './STYLE_NAME';
diff --git a/packages/ibm-products/scripts/generate/templates/_storybook-styles.scss b/packages/ibm-products/scripts/generate/templates/_storybook-styles.scss
index 23fd7037b9..1bc4013ac1 100644
--- a/packages/ibm-products/scripts/generate/templates/_storybook-styles.scss
+++ b/packages/ibm-products/scripts/generate/templates/_storybook-styles.scss
@@ -1,9 +1,9 @@
-//
-// Copyright IBM Corp. FULL_YEAR, FULL_YEAR
-//
-// This source code is licensed under the Apache-2.0 license found in the
-// LICENSE file in the root directory of this source tree.
-//
+/**
+ * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
@forward '../../../../ibm-products-styles/src/global/styles/project-settings';
diff --git a/packages/ibm-products/scripts/generate/templates/gallery-example/src/Example/_example.scss b/packages/ibm-products/scripts/generate/templates/gallery-example/src/Example/_example.scss
index 3087b10a98..e3aa44d21e 100644
--- a/packages/ibm-products/scripts/generate/templates/gallery-example/src/Example/_example.scss
+++ b/packages/ibm-products/scripts/generate/templates/gallery-example/src/Example/_example.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use '@carbon/react/scss/spacing' as *;
/* example SCSS */
diff --git a/packages/ibm-products/scripts/generate/templates/index.js b/packages/ibm-products/scripts/generate/templates/index.js
index 4bed7c8dd5..2086b3e894 100644
--- a/packages/ibm-products/scripts/generate/templates/index.js
+++ b/packages/ibm-products/scripts/generate/templates/index.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.docs-page.js b/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.docs-page.js
index 7dc202ae0a..024a70f7f9 100644
--- a/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.docs-page.js
+++ b/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import { useOf } from '@storybook/blocks';
diff --git a/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.types.ts b/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.types.ts
index 0d34d12a95..47f373ffa4 100644
--- a/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.types.ts
+++ b/packages/ibm-products/src/components/APIKeyModal/APIKeyModal.types.ts
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { ReactNode } from 'react';
interface APIKeyModalCommonProps {
diff --git a/packages/ibm-products/src/components/AboutModal/AboutModal.docs-page.js b/packages/ibm-products/src/components/AboutModal/AboutModal.docs-page.js
index 7af54fecae..704307a086 100644
--- a/packages/ibm-products/src/components/AboutModal/AboutModal.docs-page.js
+++ b/packages/ibm-products/src/components/AboutModal/AboutModal.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/AboutModal/AboutModal.stories.jsx b/packages/ibm-products/src/components/AboutModal/AboutModal.stories.jsx
index edaa0b6b05..272cb2d81e 100644
--- a/packages/ibm-products/src/components/AboutModal/AboutModal.stories.jsx
+++ b/packages/ibm-products/src/components/AboutModal/AboutModal.stories.jsx
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. 2020, 2024
+ * Copyright IBM Corp. 2020
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/src/components/ActionBar/ActionBar.tsx b/packages/ibm-products/src/components/ActionBar/ActionBar.tsx
index 2c735954ef..7ca737a097 100644
--- a/packages/ibm-products/src/components/ActionBar/ActionBar.tsx
+++ b/packages/ibm-products/src/components/ActionBar/ActionBar.tsx
@@ -1,5 +1,5 @@
//
-// Copyright IBM Corp. 2020, 2021
+// Copyright IBM Corp. 2020, 2024
//
// This source code is licensed under the Apache-2.0 license found in the
// LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/src/components/AddSelect/AddSelectFormControl.js b/packages/ibm-products/src/components/AddSelect/AddSelectFormControl.js
index 94b42f216c..ca81ae7786 100644
--- a/packages/ibm-products/src/components/AddSelect/AddSelectFormControl.js
+++ b/packages/ibm-products/src/components/AddSelect/AddSelectFormControl.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import {
RadioButton,
diff --git a/packages/ibm-products/src/components/AddSelect/hooks/useFocus.js b/packages/ibm-products/src/components/AddSelect/hooks/useFocus.js
index 29534b9033..ec2126a244 100644
--- a/packages/ibm-products/src/components/AddSelect/hooks/useFocus.js
+++ b/packages/ibm-products/src/components/AddSelect/hooks/useFocus.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { useCallback, useState, useEffect } from 'react';
const useFocus = (size) => {
diff --git a/packages/ibm-products/src/components/AddSelect/types/index.ts b/packages/ibm-products/src/components/AddSelect/types/index.ts
index a7a82bdab6..9ce2fbcdcd 100644
--- a/packages/ibm-products/src/components/AddSelect/types/index.ts
+++ b/packages/ibm-products/src/components/AddSelect/types/index.ts
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { ReactNode } from 'react';
export type Theme = 'light' | 'dark';
diff --git a/packages/ibm-products/src/components/Carousel/Carousel.docs-page.js b/packages/ibm-products/src/components/Carousel/Carousel.docs-page.js
index 8793ad374d..a78f7a113f 100644
--- a/packages/ibm-products/src/components/Carousel/Carousel.docs-page.js
+++ b/packages/ibm-products/src/components/Carousel/Carousel.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/Cascade/Cascade.docs-page.js b/packages/ibm-products/src/components/Cascade/Cascade.docs-page.js
index a609d7e122..37469322e5 100644
--- a/packages/ibm-products/src/components/Cascade/Cascade.docs-page.js
+++ b/packages/ibm-products/src/components/Cascade/Cascade.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './Cascade.stories';
diff --git a/packages/ibm-products/src/components/Cascade/index.js b/packages/ibm-products/src/components/Cascade/index.js
index 9595a1aac2..e7894cb3cc 100644
--- a/packages/ibm-products/src/components/Cascade/index.js
+++ b/packages/ibm-products/src/components/Cascade/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { Cascade } from './Cascade';
diff --git a/packages/ibm-products/src/components/Coachmark/utils/constants.js b/packages/ibm-products/src/components/Coachmark/utils/constants.js
index 45455f724c..e0b00bfd1e 100644
--- a/packages/ibm-products/src/components/Coachmark/utils/constants.js
+++ b/packages/ibm-products/src/components/Coachmark/utils/constants.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { COACHMARK_ALIGNMENT, COACHMARK_OVERLAY_KIND } from './enums';
/**
diff --git a/packages/ibm-products/src/components/Coachmark/utils/context.js b/packages/ibm-products/src/components/Coachmark/utils/context.js
index 3dca7aff0b..057840514f 100644
--- a/packages/ibm-products/src/components/Coachmark/utils/context.js
+++ b/packages/ibm-products/src/components/Coachmark/utils/context.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { createContext, useContext } from 'react';
export const CoachmarkContext = createContext();
diff --git a/packages/ibm-products/src/components/Coachmark/utils/enums.ts b/packages/ibm-products/src/components/Coachmark/utils/enums.ts
index 6047b3c034..29c6cb8b4c 100644
--- a/packages/ibm-products/src/components/Coachmark/utils/enums.ts
+++ b/packages/ibm-products/src/components/Coachmark/utils/enums.ts
@@ -1,5 +1,12 @@
/* eslint-disable max-len */
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
/**
* Reserved for future expansion, i.e. "RING".
*/
diff --git a/packages/ibm-products/src/components/Coachmark/utils/helpers.js b/packages/ibm-products/src/components/Coachmark/utils/helpers.js
index 3bf4d9c479..39f83fe9e1 100644
--- a/packages/ibm-products/src/components/Coachmark/utils/helpers.js
+++ b/packages/ibm-products/src/components/Coachmark/utils/helpers.js
@@ -1,4 +1,10 @@
/* eslint-disable max-len */
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
/**
* Clamp the given value between the upper bound `max` and the lower bound `min`
diff --git a/packages/ibm-products/src/components/Coachmark/utils/hooks.js b/packages/ibm-products/src/components/Coachmark/utils/hooks.js
index 1062c357b5..d59639581c 100644
--- a/packages/ibm-products/src/components/Coachmark/utils/hooks.js
+++ b/packages/ibm-products/src/components/Coachmark/utils/hooks.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { useEffect, useRef, useLayoutEffect } from 'react';
import { COACHMARK_OVERLAY_KIND } from './enums';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBlock/ConditionBlock.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBlock/ConditionBlock.js
index 595cb6ab29..caef918493 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBlock/ConditionBlock.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBlock/ConditionBlock.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useContext, useEffect, useState } from 'react';
import { Close } from '@carbon/react/icons';
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js
index d19a9886ef..e27452e946 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useContext, useState } from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js
index b8c16a2935..3299131923 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useState } from 'react';
import cx from 'classnames';
import { AddAlt, TextNewLine } from '@carbon/react/icons';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js
index b2f117afd7..2aa55d3ce3 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import cx from 'classnames';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js
index 01e98842f9..9c3a5342cc 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useCallback, useContext } from 'react';
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem';
import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js
index 340b3ab13a..f03118ebcd 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useContext } from 'react';
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem';
import {
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js
index d848d1e0b3..8d41384483 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useCallback, useContext, useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { Button } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js
index df3b287e36..5e7b02849b 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { createContext, useState } from 'react';
import PropTypes from 'prop-types';
import uuidv4 from '../../../global/js/utils/uuidv4';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js
index 4a0cb63410..96ca3e2301 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { pkg } from '../../../settings';
export const statementConfig = [
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/translationObject.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/translationObject.js
index fb0b67c4fa..3d05aa4497 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/translationObject.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderContext/translationObject.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export const translationsObject = {
ifText: 'if',
excl_if: 'excl.if',
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js
index b7f5fcd450..854819b3e6 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useState, useRef, useEffect, useContext } from 'react';
import { Popover, PopoverContent, Layer } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js
index 36dba642c1..b8342e9609 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useRef } from 'react';
import { DatePicker, DatePickerInput } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js
index ead15c1be9..56c35cfbf1 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { NumberInput } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js
index f5bf1921c2..52677eaaaf 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useContext, useEffect, useRef, useState } from 'react';
import { Search } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js
index 6646b41a53..e5da69c170 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useContext, useEffect, useRef, useState } from 'react';
import { Search, Button } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js
index c1fb25e6e4..ebd705c3d0 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { TextArea, TextInput } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js
index de94718dbb..36287b5ac7 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useEffect, useState } from 'react';
import { TimePicker, TimePickerSelect, SelectItem } from '@carbon/react';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js
index 6987abd7e8..7c79bcd095 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { Fragment, useContext, useRef, useState } from 'react';
import ConditionBlock from '../ConditionBlock/ConditionBlock';
import PropTypes from 'prop-types';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/ConditionPreview/ConditionPreview.js b/packages/ibm-products/src/components/ConditionBuilder/ConditionPreview/ConditionPreview.js
index bd0249a555..c4c90a2636 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/ConditionPreview/ConditionPreview.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/ConditionPreview/ConditionPreview.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { useEffect, useState } from 'react';
import cx from 'classnames';
import PropTypes from 'prop-types';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/assets/CustomInput.js b/packages/ibm-products/src/components/ConditionBuilder/assets/CustomInput.js
index 69ec2acdaf..c88f508dcf 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/assets/CustomInput.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/assets/CustomInput.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { TextInput } from '@carbon/react';
import PropTypes from 'prop-types';
diff --git a/packages/ibm-products/src/components/ConditionBuilder/assets/SampleData.js b/packages/ibm-products/src/components/ConditionBuilder/assets/SampleData.js
index acaf620f01..a6a8db7a01 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/assets/SampleData.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/assets/SampleData.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import uuidv4 from '../../../global/js/utils/uuidv4';
export const sampleDataStructure_tree = {
diff --git a/packages/ibm-products/src/components/ConditionBuilder/assets/sampleInput.js b/packages/ibm-products/src/components/ConditionBuilder/assets/sampleInput.js
index ad14e3928c..6dc5d0e819 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/assets/sampleInput.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/assets/sampleInput.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import {
Calendar,
ColorPalette,
diff --git a/packages/ibm-products/src/components/ConditionBuilder/utils/handleKeyboardEvents.js b/packages/ibm-products/src/components/ConditionBuilder/utils/handleKeyboardEvents.js
index 718ace846f..8eadf48b3f 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/utils/handleKeyboardEvents.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/utils/handleKeyboardEvents.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { blockClass } from '../ConditionBuilderContext/DataConfigs';
import {
checkForHoldingKey,
diff --git a/packages/ibm-products/src/components/ConditionBuilder/utils/util.js b/packages/ibm-products/src/components/ConditionBuilder/utils/util.js
index 3eee3fb201..e2d041be05 100644
--- a/packages/ibm-products/src/components/ConditionBuilder/utils/util.js
+++ b/packages/ibm-products/src/components/ConditionBuilder/utils/util.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { blockClass } from '../ConditionBuilderContext/DataConfigs';
export const focusThisField = (evt, conditionBuilderRef) => {
diff --git a/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.docs-page.js b/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.docs-page.js
index 4a8b4d5bfa..21d814cf37 100644
--- a/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.docs-page.js
+++ b/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './CreateFullPage.stories';
diff --git a/packages/ibm-products/src/components/CreateModal/CreateModal.docs-page.js b/packages/ibm-products/src/components/CreateModal/CreateModal.docs-page.js
index 0cc6731404..f1cf2fb303 100644
--- a/packages/ibm-products/src/components/CreateModal/CreateModal.docs-page.js
+++ b/packages/ibm-products/src/components/CreateModal/CreateModal.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './CreateModal.stories';
diff --git a/packages/ibm-products/src/components/CreateSidePanel/CreateSidePanel.docs-page.js b/packages/ibm-products/src/components/CreateSidePanel/CreateSidePanel.docs-page.js
index e54b5f055f..b5170f577a 100644
--- a/packages/ibm-products/src/components/CreateSidePanel/CreateSidePanel.docs-page.js
+++ b/packages/ibm-products/src/components/CreateSidePanel/CreateSidePanel.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './CreateSidePanel.stories';
diff --git a/packages/ibm-products/src/components/CreateTearsheet/CreateTearsheet.docs-page.js b/packages/ibm-products/src/components/CreateTearsheet/CreateTearsheet.docs-page.js
index ddf2fae20b..bd5b662744 100644
--- a/packages/ibm-products/src/components/CreateTearsheet/CreateTearsheet.docs-page.js
+++ b/packages/ibm-products/src/components/CreateTearsheet/CreateTearsheet.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './CreateTearsheet.stories';
diff --git a/packages/ibm-products/src/components/DataSpreadsheet/types/index.ts b/packages/ibm-products/src/components/DataSpreadsheet/types/index.ts
index 9809f150e6..5af7c083f7 100644
--- a/packages/ibm-products/src/components/DataSpreadsheet/types/index.ts
+++ b/packages/ibm-products/src/components/DataSpreadsheet/types/index.ts
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export type Size = 'xs' | 'sm' | 'md' | 'lg';
export type Theme = 'light' | 'dark';
diff --git a/packages/ibm-products/src/components/DataSpreadsheet/utils/commonEventHandlers.js b/packages/ibm-products/src/components/DataSpreadsheet/utils/commonEventHandlers.js
index a4691b0d13..f49cc2ff3a 100644
--- a/packages/ibm-products/src/components/DataSpreadsheet/utils/commonEventHandlers.js
+++ b/packages/ibm-products/src/components/DataSpreadsheet/utils/commonEventHandlers.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { pkg } from '../../../settings';
import { checkForHoldingKey } from './checkForHoldingKey';
import { deepCloneObject } from '../../../global/js/utils/deepCloneObject';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.docs-page.js b/packages/ibm-products/src/components/Datagrid/Datagrid.docs-page.js
index 6833251bc7..fa8500f936 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.docs-page.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js
index 77ea472249..569008b766 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const notes = `
# Customizing columns
Customizing columns allows user to reorder and hide certain columns of the datagrid. Consuming component can use the provided callback to save/update according to their persistent strategy.
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js
index bb14a09adc..ac6e9037f9 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const notes = `
# Changing row size (height/density)
Allow users to adjust the data density on datagrid.
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js
index a2aaa7c9b2..5c4e29eb70 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const notes = `
# Select all toggle
Use this feature will allow user to toggle the select all checkbox behavior between selecting all rows **on current page** vs **across all pages**
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js
index aa133af170..1c238f07be 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
// import React, { useState, useEffect } from 'react';
// import { Datagrid, useActionsColumn, useDatagrid, useStickyColumn } from '..';
// import { defaultHeader, makeData, Wrapper } from './common';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/common.js b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/common.js
index 06897c5e1c..cd253d1d6e 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/common.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/common.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import namor from 'namor';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/index.js b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/index.js
index 8c180a0e0b..711a4148d3 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid.stories/index.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid.stories/index.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { story as CustomizeColumnStoryNotes } from './CustomizeColumnStory';
export { default as StickyActionsColumn } from './StickyActionsColumnStory';
export { story as RowSizeDropdownStory } from './RowSizeDropdownStory';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridBody.tsx b/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridBody.tsx
index 678495c1f9..c5ed6068ce 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridBody.tsx
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridBody.tsx
@@ -1,10 +1,10 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
+
import React from 'react';
import DatagridEmptyBody from './DatagridEmptyBody';
import DatagridVirtualBody from './DatagridVirtualBody';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridRefBody.tsx b/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridRefBody.tsx
index f3e2d8b2da..5acdd2a27c 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridRefBody.tsx
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridRefBody.tsx
@@ -1,10 +1,10 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
+
import React from 'react';
import cx from 'classnames';
import { pkg } from '../../../settings';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridSimpleBody.tsx b/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridSimpleBody.tsx
index ee9727770d..5858879809 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridSimpleBody.tsx
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/DatagridSimpleBody.tsx
@@ -1,10 +1,10 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
+
import React from 'react';
import { TableBody } from '@carbon/react';
import cx from 'classnames';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/DraggableElement.tsx b/packages/ibm-products/src/components/Datagrid/Datagrid/DraggableElement.tsx
index bf557091c5..28c7e89df3 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/DraggableElement.tsx
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/DraggableElement.tsx
@@ -1,11 +1,10 @@
-// @flow
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
+
import React, { PropsWithChildren, ReactNode } from 'react';
import PropTypes from 'prop-types';
import { Draggable as DraggableIcon, Locked } from '@carbon/react/icons';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/Filtering/handleCheckboxChange.js b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/Filtering/handleCheckboxChange.js
index 443756836c..437e0d34b8 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/Filtering/handleCheckboxChange.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/Filtering/handleCheckboxChange.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export const handleCheckboxChange = ({
checked,
filtersState,
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js
index 37cfe0f6c7..41d0f6a0d5 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { InlineEditButton } from './InlineEditButton';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js
index f0add13121..81c7273e10 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { InlineEditCell } from './InlineEditCell';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js
index 03731e3895..5c170b9d5f 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js
@@ -1 +1,8 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export { InlineEditProvider, InlineEditContext } from './InlineEditContext';
diff --git a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/RowSize/index.js b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/RowSize/index.js
index 7b948c4c16..7428a38c86 100644
--- a/packages/ibm-products/src/components/Datagrid/Datagrid/addons/RowSize/index.js
+++ b/packages/ibm-products/src/components/Datagrid/Datagrid/addons/RowSize/index.js
@@ -1,9 +1,8 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
export { default as RowSizeDropdown } from './RowSizeDropdown';
diff --git a/packages/ibm-products/src/components/Datagrid/Extensions/EditableCell/EditableCell.docs-page.js b/packages/ibm-products/src/components/Datagrid/Extensions/EditableCell/EditableCell.docs-page.js
index 4d7fe29dd2..896183e9ef 100644
--- a/packages/ibm-products/src/components/Datagrid/Extensions/EditableCell/EditableCell.docs-page.js
+++ b/packages/ibm-products/src/components/Datagrid/Extensions/EditableCell/EditableCell.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../../../global/js/utils/StoryDocsPage';
import {
diff --git a/packages/ibm-products/src/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js b/packages/ibm-products/src/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js
index a4e61ff241..04befbd529 100644
--- a/packages/ibm-products/src/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js
+++ b/packages/ibm-products/src/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/Datagrid/Extensions/RowActionButtons/RowActionButtons.docs-page.js b/packages/ibm-products/src/components/Datagrid/Extensions/RowActionButtons/RowActionButtons.docs-page.js
index 12c69939b6..4ee2983f6f 100644
--- a/packages/ibm-products/src/components/Datagrid/Extensions/RowActionButtons/RowActionButtons.docs-page.js
+++ b/packages/ibm-products/src/components/Datagrid/Extensions/RowActionButtons/RowActionButtons.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/Datagrid/common-column-ids.js b/packages/ibm-products/src/components/Datagrid/common-column-ids.js
index 86b449f3cb..93969b447e 100644
--- a/packages/ibm-products/src/components/Datagrid/common-column-ids.js
+++ b/packages/ibm-products/src/components/Datagrid/common-column-ids.js
@@ -1,9 +1,8 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
export const selectionColumnId = 'datagridSelection';
diff --git a/packages/ibm-products/src/components/Datagrid/types/index.ts b/packages/ibm-products/src/components/Datagrid/types/index.ts
index 55c47d4346..b80d56b7f8 100644
--- a/packages/ibm-products/src/components/Datagrid/types/index.ts
+++ b/packages/ibm-products/src/components/Datagrid/types/index.ts
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { MultiSelectProps } from '@carbon/react/lib/components/MultiSelect/MultiSelect';
import { FormGroupProps } from '@carbon/react/lib/components/FormGroup/FormGroup';
import { RadioButtonProps } from '@carbon/react/lib/components/RadioButton/RadioButton';
diff --git a/packages/ibm-products/src/components/Datagrid/useDatagrid.ts b/packages/ibm-products/src/components/Datagrid/useDatagrid.ts
index 256cef6a5a..50a1884677 100644
--- a/packages/ibm-products/src/components/Datagrid/useDatagrid.ts
+++ b/packages/ibm-products/src/components/Datagrid/useDatagrid.ts
@@ -1,10 +1,10 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2020 - 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
+
import { useMemo } from 'react';
import {
useTable,
diff --git a/packages/ibm-products/src/components/Datagrid/useDefaultStringRenderer.js b/packages/ibm-products/src/components/Datagrid/useDefaultStringRenderer.js
index 78b62d8a36..8fe1b97062 100644
--- a/packages/ibm-products/src/components/Datagrid/useDefaultStringRenderer.js
+++ b/packages/ibm-products/src/components/Datagrid/useDefaultStringRenderer.js
@@ -1,10 +1,10 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
+
import React from 'react';
import cx from 'classnames';
import { pkg } from '../../settings';
diff --git a/packages/ibm-products/src/components/Datagrid/useDisableSelectRows.ts b/packages/ibm-products/src/components/Datagrid/useDisableSelectRows.ts
index 01dbfa6dd7..097d622535 100644
--- a/packages/ibm-products/src/components/Datagrid/useDisableSelectRows.ts
+++ b/packages/ibm-products/src/components/Datagrid/useDisableSelectRows.ts
@@ -1,9 +1,8 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2020, 2024
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2020, 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
import { Hooks, Row, RowPropGetter, TableRowProps } from 'react-table';
diff --git a/packages/ibm-products/src/components/Datagrid/useFloatingScroll.js b/packages/ibm-products/src/components/Datagrid/useFloatingScroll.js
index d7b14863eb..bd30f2de4b 100644
--- a/packages/ibm-products/src/components/Datagrid/useFloatingScroll.js
+++ b/packages/ibm-products/src/components/Datagrid/useFloatingScroll.js
@@ -1,9 +1,8 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2021
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
import { useEffect } from 'react';
import cx from 'classnames';
diff --git a/packages/ibm-products/src/components/Datagrid/useRowIsMouseOver.ts b/packages/ibm-products/src/components/Datagrid/useRowIsMouseOver.ts
index 58e3badfc9..ce1922bd04 100644
--- a/packages/ibm-products/src/components/Datagrid/useRowIsMouseOver.ts
+++ b/packages/ibm-products/src/components/Datagrid/useRowIsMouseOver.ts
@@ -1,9 +1,8 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
import { useState, useCallback } from 'react';
diff --git a/packages/ibm-products/src/components/Datagrid/useRowRenderer.js b/packages/ibm-products/src/components/Datagrid/useRowRenderer.js
index d475368b33..491181b8ee 100644
--- a/packages/ibm-products/src/components/Datagrid/useRowRenderer.js
+++ b/packages/ibm-products/src/components/Datagrid/useRowRenderer.js
@@ -1,9 +1,8 @@
-/*
- * Licensed Materials - Property of IBM
- * 5724-Q36
- * (c) Copyright IBM Corp. 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
import DatagridRow from './Datagrid/DatagridRow';
diff --git a/packages/ibm-products/src/components/Datagrid/utils/ExampleSlug.js b/packages/ibm-products/src/components/Datagrid/utils/ExampleSlug.js
index 0ebdbd8db9..ed2a7ffd45 100644
--- a/packages/ibm-products/src/components/Datagrid/utils/ExampleSlug.js
+++ b/packages/ibm-products/src/components/Datagrid/utils/ExampleSlug.js
@@ -1,4 +1,11 @@
/* eslint-disable react/prop-types */
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
//cspell: disable
import React from 'react';
import { FolderOpen, View, Folders } from '@carbon/react/icons';
diff --git a/packages/ibm-products/src/components/DelimitedList/DelimitedList.docs-page.js b/packages/ibm-products/src/components/DelimitedList/DelimitedList.docs-page.js
index 7992bba2c3..0d0d4235c0 100644
--- a/packages/ibm-products/src/components/DelimitedList/DelimitedList.docs-page.js
+++ b/packages/ibm-products/src/components/DelimitedList/DelimitedList.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/DescriptionList/constants.js b/packages/ibm-products/src/components/DescriptionList/constants.js
index 5abbcd6163..ad60237a3c 100644
--- a/packages/ibm-products/src/components/DescriptionList/constants.js
+++ b/packages/ibm-products/src/components/DescriptionList/constants.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export const DescriptionListSize = {
XSmall: 'xs',
Small: 'sm',
diff --git a/packages/ibm-products/src/components/EditFullPage/EditFullPage.docs-page.js b/packages/ibm-products/src/components/EditFullPage/EditFullPage.docs-page.js
index 2b1b549491..baa4c445db 100644
--- a/packages/ibm-products/src/components/EditFullPage/EditFullPage.docs-page.js
+++ b/packages/ibm-products/src/components/EditFullPage/EditFullPage.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './EditFullPage.stories';
diff --git a/packages/ibm-products/src/components/EditTearsheet/EditTearsheet.docs-page.js b/packages/ibm-products/src/components/EditTearsheet/EditTearsheet.docs-page.js
index d3f5fcbb83..39177b591c 100644
--- a/packages/ibm-products/src/components/EditTearsheet/EditTearsheet.docs-page.js
+++ b/packages/ibm-products/src/components/EditTearsheet/EditTearsheet.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './EditTearsheet.stories';
diff --git a/packages/ibm-products/src/components/EmptyStates/EmptyStateIllustration.js b/packages/ibm-products/src/components/EmptyStates/EmptyStateIllustration.js
index c8dd85dfd8..fec341a287 100644
--- a/packages/ibm-products/src/components/EmptyStates/EmptyStateIllustration.js
+++ b/packages/ibm-products/src/components/EmptyStates/EmptyStateIllustration.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React, { Suspense, lazy } from 'react';
import PropTypes from 'prop-types';
diff --git a/packages/ibm-products/src/components/ExpressiveCard/ExpressiveCard.docs-page.js b/packages/ibm-products/src/components/ExpressiveCard/ExpressiveCard.docs-page.js
index 7c1b0a8f9d..b2bf9962d3 100644
--- a/packages/ibm-products/src/components/ExpressiveCard/ExpressiveCard.docs-page.js
+++ b/packages/ibm-products/src/components/ExpressiveCard/ExpressiveCard.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.test.js b/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.test.js
index f9b37d6443..6618974bca 100644
--- a/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.test.js
+++ b/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.test.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.test.js b/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.test.js
index 95058392c7..74eb982319 100644
--- a/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.test.js
+++ b/packages/ibm-products/src/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.test.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/src/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.test.js b/packages/ibm-products/src/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.test.js
index bf841318bc..84572905f8 100644
--- a/packages/ibm-products/src/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.test.js
+++ b/packages/ibm-products/src/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.test.js
@@ -1,5 +1,5 @@
/**
- * Copyright IBM Corp. FULL_YEAR, FULL_YEAR
+ * Copyright IBM Corp. 2024
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
diff --git a/packages/ibm-products/src/components/Guidebanner/Guidebanner.docs-page.js b/packages/ibm-products/src/components/Guidebanner/Guidebanner.docs-page.js
index 03c48a3c90..3b99e51267 100644
--- a/packages/ibm-products/src/components/Guidebanner/Guidebanner.docs-page.js
+++ b/packages/ibm-products/src/components/Guidebanner/Guidebanner.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/ImportModal/ImportModal.docs-page.js b/packages/ibm-products/src/components/ImportModal/ImportModal.docs-page.js
index 1c68e28f45..a500ac09c3 100644
--- a/packages/ibm-products/src/components/ImportModal/ImportModal.docs-page.js
+++ b/packages/ibm-products/src/components/ImportModal/ImportModal.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import { useOf } from '@storybook/blocks';
diff --git a/packages/ibm-products/src/components/InlineTip/InlineTip.docs-page.js b/packages/ibm-products/src/components/InlineTip/InlineTip.docs-page.js
index b43fd18076..2ef612bacc 100644
--- a/packages/ibm-products/src/components/InlineTip/InlineTip.docs-page.js
+++ b/packages/ibm-products/src/components/InlineTip/InlineTip.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/MultiAddSelect/MultiAddSelect.docs-page.js b/packages/ibm-products/src/components/MultiAddSelect/MultiAddSelect.docs-page.js
index 92ef4e3eb9..6de3d6c30b 100644
--- a/packages/ibm-products/src/components/MultiAddSelect/MultiAddSelect.docs-page.js
+++ b/packages/ibm-products/src/components/MultiAddSelect/MultiAddSelect.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/Nav/NavItemLink.js b/packages/ibm-products/src/components/Nav/NavItemLink.js
index fcb0993307..384147db46 100644
--- a/packages/ibm-products/src/components/Nav/NavItemLink.js
+++ b/packages/ibm-products/src/components/Nav/NavItemLink.js
@@ -1,6 +1,8 @@
/**
- * @file Nav item link.
- * @copyright IBM Security 2019
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
*/
import PropTypes from 'prop-types';
diff --git a/packages/ibm-products/src/components/NonLinearReading/NonLinearReading.docs-page.js b/packages/ibm-products/src/components/NonLinearReading/NonLinearReading.docs-page.js
index e3a407dae9..361f219df1 100644
--- a/packages/ibm-products/src/components/NonLinearReading/NonLinearReading.docs-page.js
+++ b/packages/ibm-products/src/components/NonLinearReading/NonLinearReading.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/OptionsTile/OptionsTile.tsx b/packages/ibm-products/src/components/OptionsTile/OptionsTile.tsx
index 412aecd0ae..18eec47be7 100644
--- a/packages/ibm-products/src/components/OptionsTile/OptionsTile.tsx
+++ b/packages/ibm-products/src/components/OptionsTile/OptionsTile.tsx
@@ -277,10 +277,10 @@ export let OptionsTile = React.forwardRef(
let text = summary;
const summaryClasses = [`${blockClass}__summary`];
if (closing) {
- summaryClasses.push(`${blockClass}__summary--closing`)
+ summaryClasses.push(`${blockClass}__summary--closing`);
}
if (isOpen) {
- summaryClasses.push(`${blockClass}__summary--open`)
+ summaryClasses.push(`${blockClass}__summary--open`);
}
if (invalid) {
@@ -354,10 +354,13 @@ export let OptionsTile = React.forwardRef(
*/
/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */
-
+
{renderTitle()}
}
diff --git a/packages/ibm-products/src/components/PageHeader/PageHeaderTitle.js b/packages/ibm-products/src/components/PageHeader/PageHeaderTitle.js
index 6ed0f8795b..bb28e0adf6 100644
--- a/packages/ibm-products/src/components/PageHeader/PageHeaderTitle.js
+++ b/packages/ibm-products/src/components/PageHeader/PageHeaderTitle.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
diff --git a/packages/ibm-products/src/components/ProductiveCard/ProductiveCard.docs-page.js b/packages/ibm-products/src/components/ProductiveCard/ProductiveCard.docs-page.js
index 91d885ccbe..683a738a3d 100644
--- a/packages/ibm-products/src/components/ProductiveCard/ProductiveCard.docs-page.js
+++ b/packages/ibm-products/src/components/ProductiveCard/ProductiveCard.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/RemoveModal/RemoveModal.docs-page.js b/packages/ibm-products/src/components/RemoveModal/RemoveModal.docs-page.js
index 1c68e28f45..a500ac09c3 100644
--- a/packages/ibm-products/src/components/RemoveModal/RemoveModal.docs-page.js
+++ b/packages/ibm-products/src/components/RemoveModal/RemoveModal.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import { useOf } from '@storybook/blocks';
diff --git a/packages/ibm-products/src/components/ScrollGradient/constants.js b/packages/ibm-products/src/components/ScrollGradient/constants.js
index f51258e9c4..d53af88a6d 100644
--- a/packages/ibm-products/src/components/ScrollGradient/constants.js
+++ b/packages/ibm-products/src/components/ScrollGradient/constants.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { useState, useLayoutEffect, useEffect, useCallback } from 'react';
export const ScrollDirection = { X: 'X', Y: 'Y' };
diff --git a/packages/ibm-products/src/components/ScrollGradient/util.js b/packages/ibm-products/src/components/ScrollGradient/util.js
index e69de29bb2..a246759d63 100644
--- a/packages/ibm-products/src/components/ScrollGradient/util.js
+++ b/packages/ibm-products/src/components/ScrollGradient/util.js
@@ -0,0 +1,6 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.docs-page.js b/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.docs-page.js
index f24ac334b0..b381e3a172 100644
--- a/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.docs-page.js
+++ b/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './SimpleHeader.stories';
diff --git a/packages/ibm-products/src/components/SingleAddSelect/SingleAddSelect.docs-page.js b/packages/ibm-products/src/components/SingleAddSelect/SingleAddSelect.docs-page.js
index 5ff64655d5..b76a4c1c08 100644
--- a/packages/ibm-products/src/components/SingleAddSelect/SingleAddSelect.docs-page.js
+++ b/packages/ibm-products/src/components/SingleAddSelect/SingleAddSelect.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/StatusIcon/StatusIcon.docs-page.js b/packages/ibm-products/src/components/StatusIcon/StatusIcon.docs-page.js
index b742e9ab57..705388c663 100644
--- a/packages/ibm-products/src/components/StatusIcon/StatusIcon.docs-page.js
+++ b/packages/ibm-products/src/components/StatusIcon/StatusIcon.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './StatusIcon.stories';
diff --git a/packages/ibm-products/src/components/SteppedAnimatedMedia/SteppedAnimatedMedia.docs-page.js b/packages/ibm-products/src/components/SteppedAnimatedMedia/SteppedAnimatedMedia.docs-page.js
index b47f19cf74..3291e92a08 100644
--- a/packages/ibm-products/src/components/SteppedAnimatedMedia/SteppedAnimatedMedia.docs-page.js
+++ b/packages/ibm-products/src/components/SteppedAnimatedMedia/SteppedAnimatedMedia.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
diff --git a/packages/ibm-products/src/components/SteppedAnimatedMedia/assets/index.js b/packages/ibm-products/src/components/SteppedAnimatedMedia/assets/index.js
index f8d554a704..16132fc3dc 100644
--- a/packages/ibm-products/src/components/SteppedAnimatedMedia/assets/index.js
+++ b/packages/ibm-products/src/components/SteppedAnimatedMedia/assets/index.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const HowACaseIsCreated1 = new URL(
'./illustrations/how-a-case-is-created-1',
import.meta.url
diff --git a/packages/ibm-products/src/components/StringFormatter/utils/enums.js b/packages/ibm-products/src/components/StringFormatter/utils/enums.js
index 981a405237..5732e2e5bb 100644
--- a/packages/ibm-products/src/components/StringFormatter/utils/enums.js
+++ b/packages/ibm-products/src/components/StringFormatter/utils/enums.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export const deprecated_StringFormatterAlignment = {
TOP: 'top',
TOP_LEFT: 'top-left',
diff --git a/packages/ibm-products/src/components/UserProfileImage/UserProfileImage.docs-page.js b/packages/ibm-products/src/components/UserProfileImage/UserProfileImage.docs-page.js
index 27f4fb13ab..2c620d9dd1 100644
--- a/packages/ibm-products/src/components/UserProfileImage/UserProfileImage.docs-page.js
+++ b/packages/ibm-products/src/components/UserProfileImage/UserProfileImage.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './UserProfileImage.stories';
diff --git a/packages/ibm-products/src/components/WebTerminal/WebTerminal.docs-page.js b/packages/ibm-products/src/components/WebTerminal/WebTerminal.docs-page.js
index 22cc59068e..a7de44fca1 100644
--- a/packages/ibm-products/src/components/WebTerminal/WebTerminal.docs-page.js
+++ b/packages/ibm-products/src/components/WebTerminal/WebTerminal.docs-page.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import { StoryDocsPage } from '../../global/js/utils/StoryDocsPage';
import * as stories from './WebTerminal.stories';
diff --git a/packages/ibm-products/src/custom-typings/index.d.ts b/packages/ibm-products/src/custom-typings/index.d.ts
index 5b69cd9e28..f7eaf51ea4 100644
--- a/packages/ibm-products/src/custom-typings/index.d.ts
+++ b/packages/ibm-products/src/custom-typings/index.d.ts
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
declare module '@carbon/react' {
export {
Accordion,
diff --git a/packages/ibm-products/src/global/js/hooks/useRetrieveFormTitles.js b/packages/ibm-products/src/global/js/hooks/useRetrieveFormTitles.js
index 9fb5e009ad..e7e2efb117 100644
--- a/packages/ibm-products/src/global/js/hooks/useRetrieveFormTitles.js
+++ b/packages/ibm-products/src/global/js/hooks/useRetrieveFormTitles.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { useEffect } from 'react';
export const useRetrieveFormTitles = ({ formContext, formNumber, title }) => {
diff --git a/packages/ibm-products/src/global/js/utils/__tests__/unwrap-if-fragment.test.js b/packages/ibm-products/src/global/js/utils/__tests__/unwrap-if-fragment.test.js
index 9f7f0a95d5..58a3a59248 100644
--- a/packages/ibm-products/src/global/js/utils/__tests__/unwrap-if-fragment.test.js
+++ b/packages/ibm-products/src/global/js/utils/__tests__/unwrap-if-fragment.test.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
import unwrapIfFragment from '../unwrap-if-fragment.js';
diff --git a/packages/ibm-products/src/global/js/utils/getBezierValues.js b/packages/ibm-products/src/global/js/utils/getBezierValues.js
index 02bcd785f6..d0cca070b5 100644
--- a/packages/ibm-products/src/global/js/utils/getBezierValues.js
+++ b/packages/ibm-products/src/global/js/utils/getBezierValues.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { motion } from '@carbon/motion';
/**
diff --git a/packages/ibm-products/src/global/js/utils/scrollableAncestor.js b/packages/ibm-products/src/global/js/utils/scrollableAncestor.js
index 3b79b734f8..8a56448230 100644
--- a/packages/ibm-products/src/global/js/utils/scrollableAncestor.js
+++ b/packages/ibm-products/src/global/js/utils/scrollableAncestor.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
const windowExists = typeof window !== `undefined`;
// determine whether the target is scrollable
diff --git a/packages/ibm-products/src/global/js/utils/unwrap-if-fragment.js b/packages/ibm-products/src/global/js/utils/unwrap-if-fragment.js
index b2a5b3d2f7..8caf3ea7d7 100644
--- a/packages/ibm-products/src/global/js/utils/unwrap-if-fragment.js
+++ b/packages/ibm-products/src/global/js/utils/unwrap-if-fragment.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import React from 'react';
/**
diff --git a/packages/ibm-products/src/global/js/utils/uuidv4.js b/packages/ibm-products/src/global/js/utils/uuidv4.js
index b69d6e11c9..8d0ee8dcf0 100644
--- a/packages/ibm-products/src/global/js/utils/uuidv4.js
+++ b/packages/ibm-products/src/global/js/utils/uuidv4.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
// https://stackoverflow.com/a/2117523
function uuidv4() {
diff --git a/packages/ibm-products/src/global/js/utils/uuidv4.spec.js b/packages/ibm-products/src/global/js/utils/uuidv4.spec.js
index 795235bc1e..1bdbc18837 100644
--- a/packages/ibm-products/src/global/js/utils/uuidv4.spec.js
+++ b/packages/ibm-products/src/global/js/utils/uuidv4.spec.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import uuidv4 from './uuidv4';
describe('uuidv4', () => {
diff --git a/packages/ibm-products/src/global/js/utils/wait.js b/packages/ibm-products/src/global/js/utils/wait.js
index da03507365..575731a2f4 100644
--- a/packages/ibm-products/src/global/js/utils/wait.js
+++ b/packages/ibm-products/src/global/js/utils/wait.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
// utility function for an async timeout
function wait(ms) {
diff --git a/packages/ibm-products/src/global/js/utils/window.js b/packages/ibm-products/src/global/js/utils/window.js
index 7b8ee3ebe7..0fc84abf0f 100644
--- a/packages/ibm-products/src/global/js/utils/window.js
+++ b/packages/ibm-products/src/global/js/utils/window.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
export const hasDocument = () => typeof document !== 'undefined';
export const hasWindow = () => typeof window !== 'undefined';
diff --git a/packages/ibm-products/src/settings.js b/packages/ibm-products/src/settings.js
index e0471c7295..47a64238fb 100644
--- a/packages/ibm-products/src/settings.js
+++ b/packages/ibm-products/src/settings.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { Canary } from './components/_Canary';
import pkgSettings from './global/js/package-settings';
diff --git a/scripts/check-license.cjs b/scripts/check-license.cjs
new file mode 100755
index 0000000000..3a9adb829c
--- /dev/null
+++ b/scripts/check-license.cjs
@@ -0,0 +1,149 @@
+#!/usr/bin/env node
+
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+'use strict';
+
+const fs = require('fs');
+const { promisify } = require('util');
+const { program } = require('commander');
+const { exec } = require('child_process');
+const gitignoreToGlob = require('gitignore-to-glob');
+const path = require('path');
+const reLicense = require('./license-text.cjs');
+
+const readFile = promisify(fs.readFile);
+const writeFile = promisify(fs.writeFile);
+const execPromise = promisify(exec);
+const {
+ currentYear,
+ reLicenseTextCurrentYear,
+ reLicenseTextSingleYear,
+ reLicenseTextRange,
+} = reLicense;
+
+program
+ .option(
+ '-c, --test-current-year',
+ 'Ensures the license header represents the current year'
+ )
+ .option(
+ '-w, --write-current-year',
+ 'Updates the license header to represent the current year'
+ )
+ .option('-a, --check-all-files', 'Grabs all files in the project to check');
+
+program.parse();
+
+/**
+ * Stores the arguments
+ *
+ * @type {{}}
+ */
+const options = program.opts();
+
+/**
+ * Checks files with the given paths for valid license text.
+ *
+ * @param {string[]} paths The file paths to check for valid license text.
+ * @param {object} options The options.
+ * @param {boolean} options.testCurrentYear `true` to see if the license text contains the current year.
+ * @param {boolean} options.writeCurrentYear `true` to update the given file with the current year for the license text.
+ * @param {boolean} options.checkAllFiles `true` to grab all files in the project to check.
+ * @returns {Promise} The promise that is fulfilled when the check finishes.
+ */
+const check = async (paths, options) => {
+ let checkPaths = [];
+ const { globby } = await import ('globby');
+
+ if (options.checkAllFiles) {
+
+ const gitIgnorePath = await globby(
+ path.resolve(__dirname, '../.gitignore'),
+ {
+ cwd: path.resolve(__dirname, '..'),
+ gitignore: true,
+ }
+ );
+
+ checkPaths = await globby(
+ gitIgnorePath.reduce(
+ (acc, item) => acc.concat(gitignoreToGlob(item)),
+ ['**/*.{js,ts,tsx,scss,html}','!**/*.snap.js', '!examples/**', '!packages/ibm-products/scripts/generate/templates/**'],
+ )
+ );
+ } else if (options.writeCurrentYear) {
+ // Get the list of staged files
+ const { stdout } = await execPromise('git diff --cached --name-only');
+ const allPaths = stdout.split('\n').filter(Boolean);
+
+ checkPaths = await globby(
+ allPaths.map(file => path.relative(__dirname, file)),
+ {
+ cwd: path.resolve(__dirname, '..'),
+ gitignore: true,
+ expandDirectories: {
+ files: ['**/*.{js,ts,tsx,scss,html}'],
+ exclude: ['**/*.snap.js', 'examples/**', '!packages/ibm-products/scripts/generate/templates/**'],
+ },
+ }
+ );
+ }
+
+ const checkFiles = checkPaths || paths;
+
+ const filesWithErrors = (
+ await Promise.all(
+ checkFiles.map(async (item) => {
+ if (item.indexOf('.yarn') !== -1) {
+ return;
+ }
+ const contents = await readFile(item, 'utf8');
+ const result = (
+ options.testCurrentYear || options.writeCurrentYear
+ ? reLicenseTextCurrentYear
+ : reLicense
+ ).test(contents);
+ if (!result) {
+ if (options.writeCurrentYear) {
+ const newContents = contents
+ .replace(
+ reLicenseTextSingleYear,
+ (match) => `${match}, ${currentYear}`
+ )
+ .replace(
+ reLicenseTextRange,
+ (match, token) => `${token}${currentYear}`
+ );
+ if (!reLicenseTextCurrentYear.test(newContents)) {
+ return item;
+ }
+ await writeFile(item, newContents, 'utf8');
+ } else {
+ return item;
+ }
+ }
+ })
+ )
+ ).filter(Boolean);
+ if (filesWithErrors.length > 0) {
+ throw new Error(
+ `Cannot find license text in: ${filesWithErrors.join(', ')}`
+ );
+ }
+};
+
+check(program.args, options).then(
+ () => {
+ process.exit(0);
+ },
+ (error) => {
+ console.error(error); // eslint-disable-line no-console
+ process.exit(1);
+ }
+);
diff --git a/scripts/example-gallery-builder/update-example/templates/index.html b/scripts/example-gallery-builder/update-example/templates/index.html
index 56d5e127b5..5d37ff8603 100644
--- a/scripts/example-gallery-builder/update-example/templates/index.html
+++ b/scripts/example-gallery-builder/update-example/templates/index.html
@@ -1,3 +1,12 @@
+
+
diff --git a/scripts/example-gallery-builder/update-example/templates/src/ThemeSelector/_theme-dropdown.scss b/scripts/example-gallery-builder/update-example/templates/src/ThemeSelector/_theme-dropdown.scss
index f19537350d..029432999e 100644
--- a/scripts/example-gallery-builder/update-example/templates/src/ThemeSelector/_theme-dropdown.scss
+++ b/scripts/example-gallery-builder/update-example/templates/src/ThemeSelector/_theme-dropdown.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use '@carbon/styles/scss/theme' as *;
@use '@carbon/styles/scss/themes';
@use '@carbon/styles/scss/type';
diff --git a/scripts/example-gallery-builder/update-example/templates/src/index.scss b/scripts/example-gallery-builder/update-example/templates/src/index.scss
index 8e68104c47..e6245c7956 100644
--- a/scripts/example-gallery-builder/update-example/templates/src/index.scss
+++ b/scripts/example-gallery-builder/update-example/templates/src/index.scss
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
@use '@carbon/react' with (
$font-path: '@ibm/plex'
);
diff --git a/scripts/example-gallery-builder/update-example/templates/vite.config.js b/scripts/example-gallery-builder/update-example/templates/vite.config.js
index a50be4eeb4..5ad2480f5b 100644
--- a/scripts/example-gallery-builder/update-example/templates/vite.config.js
+++ b/scripts/example-gallery-builder/update-example/templates/vite.config.js
@@ -1,3 +1,10 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
diff --git a/scripts/license-text.cjs b/scripts/license-text.cjs
new file mode 100644
index 0000000000..904b3b8406
--- /dev/null
+++ b/scripts/license-text.cjs
@@ -0,0 +1,27 @@
+/**
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+'use strict';
+
+const currentYear = new Date().getFullYear();
+const licenseText = `Copyright IBM Corp\\..* \\d+.*This source code is licensed under the Apache-2\\.0 license found in the
+.*LICENSE file in the root directory of this source tree.`;
+const licenseTextCurrentYear = `Copyright IBM Corp\\. (\\d+, +)?${currentYear}
+.*This source code is licensed under the Apache-2\\.0 license found in the
+.*LICENSE file in the root directory of this source tree.`;
+const licenseTextSingleYear = `Copyright IBM Corp\\. \\d+(?=\\s)`;
+const licenseTextRange = `(Copyright IBM Corp\\. \\d+, )\\d+(?=\\s)`;
+const reLicenseText = new RegExp(licenseText, 's');
+reLicenseText.currentYear = currentYear;
+reLicenseText.reLicenseTextCurrentYear = new RegExp(
+ licenseTextCurrentYear,
+ 's'
+);
+reLicenseText.reLicenseTextSingleYear = new RegExp(licenseTextSingleYear, 's');
+reLicenseText.reLicenseTextRange = new RegExp(licenseTextRange, 's');
+
+module.exports = reLicenseText;
diff --git a/scripts/license.js b/scripts/license.js
new file mode 100644
index 0000000000..5e7a42cabb
--- /dev/null
+++ b/scripts/license.js
@@ -0,0 +1,8 @@
+/**
+ * @license
+ *
+ * Copyright IBM Corp. 2024
+ *
+ * This source code is licensed under the Apache-2.0 license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/yarn.lock b/yarn.lock
index dc1bea8201..bb00db19fa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5363,6 +5363,13 @@ __metadata:
languageName: node
linkType: hard
+"@sindresorhus/merge-streams@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "@sindresorhus/merge-streams@npm:2.3.0"
+ checksum: 798bcb53cd1ace9df84fcdd1ba86afdc9e0cd84f5758d26ae9b1eefd8e8887e5fc30051132b9e74daf01bb41fa5a2faf1369361f83d76a3b3d7ee938058fd71c
+ languageName: node
+ linkType: hard
+
"@sinonjs/commons@npm:^3.0.0":
version: 3.0.1
resolution: "@sinonjs/commons@npm:3.0.1"
@@ -13181,6 +13188,13 @@ __metadata:
languageName: node
linkType: hard
+"gitignore-to-glob@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "gitignore-to-glob@npm:0.3.0"
+ checksum: 4b6f2dbac7232c00579cbee9a7cb24a8495c8c488b4f39c4dc398aab7758cd9010503582be4d99cf25f847d7ca33dab40c01dd5e72ea3721b55a5c3e561afce8
+ languageName: node
+ linkType: hard
+
"glob-parent@npm:5.1.2, glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
@@ -13368,6 +13382,20 @@ __metadata:
languageName: node
linkType: hard
+"globby@npm:^14.0.0":
+ version: 14.0.2
+ resolution: "globby@npm:14.0.2"
+ dependencies:
+ "@sindresorhus/merge-streams": "npm:^2.1.0"
+ fast-glob: "npm:^3.3.2"
+ ignore: "npm:^5.2.4"
+ path-type: "npm:^5.0.0"
+ slash: "npm:^5.1.0"
+ unicorn-magic: "npm:^0.1.0"
+ checksum: 67660da70fc1223f7170c1a62ba6c373385e9e39765d952b6518606dec15ed8c7958e9dae6ba5752a31dbc1e9126f146938b830ad680fe794141734ffc3fbb75
+ languageName: node
+ linkType: hard
+
"globjoin@npm:^0.1.4":
version: 0.1.4
resolution: "globjoin@npm:0.1.4"
@@ -13906,6 +13934,8 @@ __metadata:
eslint: "npm:^8.56.0"
eslint-config-carbon: "npm:^2.20.0"
eslint-plugin-ssr-friendly: "npm:^1.3.0"
+ gitignore-to-glob: "npm:^0.3.0"
+ globby: "npm:^14.0.0"
husky: "npm:^9.0.5"
jest: "npm:^29.7.0"
jest-canvas-mock: "npm:2.5.2"
@@ -19425,6 +19455,13 @@ __metadata:
languageName: node
linkType: hard
+"path-type@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "path-type@npm:5.0.0"
+ checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5
+ languageName: node
+ linkType: hard
+
"pathe@npm:^1.1.2":
version: 1.1.2
resolution: "pathe@npm:1.1.2"
@@ -21608,7 +21645,7 @@ __metadata:
languageName: node
linkType: hard
-"slash@npm:^5.0.0":
+"slash@npm:^5.0.0, slash@npm:^5.1.0":
version: 5.1.0
resolution: "slash@npm:5.1.0"
checksum: 2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4
@@ -23494,6 +23531,13 @@ __metadata:
languageName: node
linkType: hard
+"unicorn-magic@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "unicorn-magic@npm:0.1.0"
+ checksum: 9b4d0e9809807823dc91d0920a4a4c0cff2de3ebc54ee87ac1ee9bc75eafd609b09d1f14495e0173aef26e01118706196b6ab06a75fe0841028b3983a8af313f
+ languageName: node
+ linkType: hard
+
"unified@npm:^11.0.0":
version: 11.0.4
resolution: "unified@npm:11.0.4"