diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000000..155132ce6e5 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,10 @@ +# The files matching the globs will be assigned to the @usernames that follow +.* @benelan @jcfranco +*.json @benelan @jcfranco +CHANGELOG.md @benelan @jcfranco @geospatialem +.github/ @benelan @jcfranco @geospatialem +support/ @benelan @jcfranco +/packages/calcite-components-react @benelan @jcfranco +/packages/eslint-plugin-calcite-components @jcfranco +/packages/calcite-design-tokens @alisonailea + diff --git a/CODEOWNERS b/CODEOWNERS deleted file mode 100644 index 92638df17af..00000000000 --- a/CODEOWNERS +++ /dev/null @@ -1,12 +0,0 @@ -# These owners will be the default owners for everything in the repo. -* @esri/calcite-components-reviewers - -# The files matching the globs will be assigned to the @usernames that follow -.* @benelan @jcfranco @driskull @geospatialem -*.json @benelan @jcfranco @driskull @geospatialem -CHANGELOG.md @benelan @jcfranco @driskull @geospatialem -/packages/calcite-components/readme.md @benelan @jcfranco @driskull @geospatialem -.github/ @benelan @jcfranco @driskull @geospatialem -support/ @benelan @jcfranco @driskull @geospatialem -/packages/calcite-components-react @benelan @jcfranco @driskull @geospatialem -/packages/eslint-plugin-calcite-components @benelan @jcfranco @driskull @geospatialem diff --git a/package-lock.json b/package-lock.json index df9e0d24260..60963c5676c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "change-case": "4.1.2", "cheerio": "1.0.0-rc.12", "chokidar": "3.6.0", - "chromatic": "11.5.4", + "chromatic": "11.5.5", "concurrently": "8.2.2", "conventional-changelog-conventionalcommits": "7.0.2", "cpy": "11.0.1", @@ -73,9 +73,9 @@ "eslint-plugin-jest": "28.6.0", "eslint-plugin-jsdoc": "48.4.0", "eslint-plugin-prettier": "5.1.3", - "eslint-plugin-react": "7.34.3", + "eslint-plugin-react": "7.34.4", "eslint-plugin-unicorn": "54.0.0", - "globby": "14.0.1", + "globby": "14.0.2", "husky": "9.0.11", "jest": "29.7.0", "jest-axe": "9.0.0", @@ -83,7 +83,7 @@ "lerna": "8.1.6", "lint-staged": "15.2.7", "markdownlint-cli": "0.41.0", - "postcss": "8.4.38", + "postcss": "8.4.39", "prettier": "3.3.2", "puppeteer": "21.5.0", "quicktype-core": "23.0.170", @@ -9635,9 +9635,10 @@ } }, "node_modules/chromatic": { - "version": "11.5.4", + "version": "11.5.5", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.5.5.tgz", + "integrity": "sha512-YS0GJwegF0vpMbwZE68/xJlI4SlUGMqI78V2ATAF19YwTHaq8jGP1CPQGKUSlgWUhzPtyu3ELy6Dvv/owYljAg==", "dev": true, - "license": "MIT", "bin": { "chroma": "dist/bin.js", "chromatic": "dist/bin.js", @@ -13056,9 +13057,10 @@ "license": "0BSD" }, "node_modules/eslint-plugin-react": { - "version": "7.34.3", + "version": "7.34.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.4.tgz", + "integrity": "sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -13068,16 +13070,17 @@ "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" @@ -13088,8 +13091,9 @@ }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -13097,8 +13101,9 @@ }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -13108,8 +13113,9 @@ }, "node_modules/eslint-plugin-react/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13119,8 +13125,9 @@ }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -13135,8 +13142,9 @@ }, "node_modules/eslint-plugin-react/node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -14989,9 +14997,10 @@ } }, "node_modules/globby": { - "version": "14.0.1", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, - "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -15009,8 +15018,9 @@ }, "node_modules/globby/node_modules/path-type": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -22893,22 +22903,6 @@ "node": ">= 0.4" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "dev": true, @@ -23967,7 +23961,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "dev": true, "funding": [ { @@ -23983,10 +23979,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -26978,6 +26973,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "dev": true, @@ -31868,7 +31873,7 @@ }, "packages/calcite-components": { "name": "@esri/calcite-components", - "version": "2.11.0-next.13", + "version": "2.11.0-next.14", "license": "SEE LICENSE.md", "dependencies": { "@esri/calcite-ui-icons": "3.29.0", @@ -32968,6 +32973,34 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "packages/calcite-components-angular/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "packages/calcite-components-angular/node_modules/sass": { "version": "1.77.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz", @@ -33586,10 +33619,10 @@ }, "packages/calcite-components-angular/projects/component-library": { "name": "@esri/calcite-components-angular", - "version": "2.11.0-next.13", + "version": "2.11.0-next.14", "license": "SEE LICENSE.md", "dependencies": { - "@esri/calcite-components": "^2.11.0-next.13", + "@esri/calcite-components": "^2.11.0-next.14", "tslib": "2.6.3" }, "peerDependencies": { @@ -33599,10 +33632,10 @@ }, "packages/calcite-components-react": { "name": "@esri/calcite-components-react", - "version": "2.11.0-next.13", + "version": "2.11.0-next.14", "license": "SEE LICENSE.md", "dependencies": { - "@esri/calcite-components": "^2.11.0-next.13" + "@esri/calcite-components": "^2.11.0-next.14" }, "peerDependencies": { "react": ">=16.7", diff --git a/package.json b/package.json index 042381c3f99..8c4aed0fe48 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "change-case": "4.1.2", "cheerio": "1.0.0-rc.12", "chokidar": "3.6.0", - "chromatic": "11.5.4", + "chromatic": "11.5.5", "concurrently": "8.2.2", "conventional-changelog-conventionalcommits": "7.0.2", "cpy": "11.0.1", @@ -88,9 +88,9 @@ "eslint-plugin-jest": "28.6.0", "eslint-plugin-jsdoc": "48.4.0", "eslint-plugin-prettier": "5.1.3", - "eslint-plugin-react": "7.34.3", + "eslint-plugin-react": "7.34.4", "eslint-plugin-unicorn": "54.0.0", - "globby": "14.0.1", + "globby": "14.0.2", "husky": "9.0.11", "jest": "29.7.0", "jest-axe": "9.0.0", @@ -98,7 +98,7 @@ "lerna": "8.1.6", "lint-staged": "15.2.7", "markdownlint-cli": "0.41.0", - "postcss": "8.4.38", + "postcss": "8.4.39", "prettier": "3.3.2", "puppeteer": "21.5.0", "quicktype-core": "23.0.170", diff --git a/packages/calcite-components-angular/projects/component-library/CHANGELOG.md b/packages/calcite-components-angular/projects/component-library/CHANGELOG.md index 0a32aca1df1..73be5e31210 100644 --- a/packages/calcite-components-angular/projects/component-library/CHANGELOG.md +++ b/packages/calcite-components-angular/projects/component-library/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.11.0-next.14](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-angular@2.11.0-next.13...@esri/calcite-components-angular@2.11.0-next.14) (2024-07-16) + +**Note:** Version bump only for package @esri/calcite-components-angular + ## [2.11.0-next.13](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-angular@2.11.0-next.12...@esri/calcite-components-angular@2.11.0-next.13) (2024-07-16) **Note:** Version bump only for package @esri/calcite-components-angular diff --git a/packages/calcite-components-angular/projects/component-library/package.json b/packages/calcite-components-angular/projects/component-library/package.json index cb6d014e379..8150ef727df 100644 --- a/packages/calcite-components-angular/projects/component-library/package.json +++ b/packages/calcite-components-angular/projects/component-library/package.json @@ -1,6 +1,6 @@ { "name": "@esri/calcite-components-angular", - "version": "2.11.0-next.13", + "version": "2.11.0-next.14", "description": "A set of Angular components that wrap Esri's Calcite Components.", "homepage": "https://developers.arcgis.com/calcite-design-system/", "bugs": { @@ -17,7 +17,7 @@ }, "sideEffects": false, "dependencies": { - "@esri/calcite-components": "^2.11.0-next.13", + "@esri/calcite-components": "^2.11.0-next.14", "tslib": "2.6.3" }, "peerDependencies": { diff --git a/packages/calcite-components-react/CHANGELOG.md b/packages/calcite-components-react/CHANGELOG.md index 7ab46b8bdbb..f516303ce95 100644 --- a/packages/calcite-components-react/CHANGELOG.md +++ b/packages/calcite-components-react/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.11.0-next.14](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-react@2.11.0-next.13...@esri/calcite-components-react@2.11.0-next.14) (2024-07-16) + +**Note:** Version bump only for package @esri/calcite-components-react + ## [2.11.0-next.13](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-react@2.11.0-next.12...@esri/calcite-components-react@2.11.0-next.13) (2024-07-16) **Note:** Version bump only for package @esri/calcite-components-react diff --git a/packages/calcite-components-react/package.json b/packages/calcite-components-react/package.json index 41906b8de48..063fbe6e0ae 100644 --- a/packages/calcite-components-react/package.json +++ b/packages/calcite-components-react/package.json @@ -1,6 +1,6 @@ { "name": "@esri/calcite-components-react", - "version": "2.11.0-next.13", + "version": "2.11.0-next.14", "description": "A set of React components that wrap calcite components", "homepage": "https://developers.arcgis.com/calcite-design-system/", "repository": { @@ -28,7 +28,7 @@ "tsc": "tsc" }, "dependencies": { - "@esri/calcite-components": "^2.11.0-next.13" + "@esri/calcite-components": "^2.11.0-next.14" }, "peerDependencies": { "react": ">=16.7", diff --git a/packages/calcite-components/CHANGELOG.md b/packages/calcite-components/CHANGELOG.md index 06eed575c92..334f16ef4fe 100644 --- a/packages/calcite-components/CHANGELOG.md +++ b/packages/calcite-components/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.11.0-next.14](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components@2.11.0-next.13...@esri/calcite-components@2.11.0-next.14) (2024-07-16) + +### Bug Fixes + +- **radio-button-group:** remove blank clickable space outside of label ([#9793](https://github.com/Esri/calcite-design-system/issues/9793)) ([818a33e](https://github.com/Esri/calcite-design-system/commit/818a33edd8a8114b8a8a09f1bb8a5ad78fc9c8a0)), closes [#6703](https://github.com/Esri/calcite-design-system/issues/6703) + ## [2.11.0-next.13](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components@2.11.0-next.12...@esri/calcite-components@2.11.0-next.13) (2024-07-16) ### Bug Fixes diff --git a/packages/calcite-components/package.json b/packages/calcite-components/package.json index fea379a71e4..1627ca42132 100644 --- a/packages/calcite-components/package.json +++ b/packages/calcite-components/package.json @@ -1,6 +1,6 @@ { "name": "@esri/calcite-components", - "version": "2.11.0-next.13", + "version": "2.11.0-next.14", "homepage": "https://developers.arcgis.com/calcite-design-system/", "description": "Web Components for Esri's Calcite Design System.", "main": "dist/index.cjs.js", diff --git a/packages/calcite-components/src/components/combobox-item/combobox-item.e2e.ts b/packages/calcite-components/src/components/combobox-item/combobox-item.e2e.ts index 6402ca27746..c29abf50f0f 100644 --- a/packages/calcite-components/src/components/combobox-item/combobox-item.e2e.ts +++ b/packages/calcite-components/src/components/combobox-item/combobox-item.e2e.ts @@ -1,6 +1,32 @@ -import { disabled, hidden, renders, slots } from "../../tests/commonTests"; +import { defaults, disabled, hidden, reflects, renders, slots } from "../../tests/commonTests"; describe("calcite-combobox-item", () => { + describe("defaults", () => { + defaults("calcite-combobox-item", [ + { propertyName: "active", defaultValue: false }, + { propertyName: "description", defaultValue: undefined }, + { propertyName: "disabled", defaultValue: false }, + { propertyName: "filterDisabled", defaultValue: undefined }, + { propertyName: "icon", defaultValue: undefined }, + { propertyName: "iconFlipRtl", defaultValue: false }, + { propertyName: "selected", defaultValue: false }, + { propertyName: "shortHeading", defaultValue: undefined }, + { propertyName: "textLabel", defaultValue: undefined }, + { propertyName: "value", defaultValue: undefined }, + ]); + }); + + describe("reflects", () => { + reflects("calcite-combobox-item", [ + { propertyName: "active", value: true }, + { propertyName: "disabled", value: true }, + { propertyName: "filterDisabled", value: true }, + { propertyName: "icon", value: "banana" }, + { propertyName: "iconFlipRtl", value: true }, + { propertyName: "selected", value: true }, + ]); + }); + describe("renders", () => { renders("calcite-combobox-item", { display: "flex" }); }); diff --git a/packages/calcite-components/src/components/combobox-item/combobox-item.tsx b/packages/calcite-components/src/components/combobox-item/combobox-item.tsx index b908cbd4855..27b92612e3a 100644 --- a/packages/calcite-components/src/components/combobox-item/combobox-item.tsx +++ b/packages/calcite-components/src/components/combobox-item/combobox-item.tsx @@ -126,7 +126,7 @@ export class ComboboxItem implements ConditionalSlotComponent, InteractiveCompon * * It is recommended to use 5 characters or fewer. */ - @Prop({ reflect: true }) shortHeading: string; + @Prop() shortHeading: string; /** The component's value. */ @Prop() value!: any; diff --git a/packages/calcite-components/src/components/dropdown/dropdown.tsx b/packages/calcite-components/src/components/dropdown/dropdown.tsx index 3a55d64ff5f..cca3ae0ee3d 100644 --- a/packages/calcite-components/src/components/dropdown/dropdown.tsx +++ b/packages/calcite-components/src/components/dropdown/dropdown.tsx @@ -444,22 +444,12 @@ export class Dropdown guid = `calcite-dropdown-${guid()}`; - defaultAssignedElements: Element[] = []; - //-------------------------------------------------------------------------- // // Private Methods // //-------------------------------------------------------------------------- - slotChangeHandler = (event: Event): void => { - this.defaultAssignedElements = (event.target as HTMLSlotElement).assignedElements({ - flatten: true, - }); - - this.updateItems(); - }; - setFilteredPlacements = (): void => { const { el, flipPlacements } = this; diff --git a/packages/calcite-components/src/components/radio-button-group/radio-button-group.e2e.ts b/packages/calcite-components/src/components/radio-button-group/radio-button-group.e2e.ts index 0944a369c0c..d064c8f2856 100644 --- a/packages/calcite-components/src/components/radio-button-group/radio-button-group.e2e.ts +++ b/packages/calcite-components/src/components/radio-button-group/radio-button-group.e2e.ts @@ -336,6 +336,37 @@ describe("calcite-radio-button-group", () => { expect(await second.getProperty("checked")).toBe(false); }); + it("clicking outside of radio button or label text won't update checked status", async () => { + const page = await newE2EPage(); + await page.setContent(html` + + + 1 + + + + 2 + + + + `); + + const first = await page.find("calcite-radio-button#first"); + const second = await page.find("calcite-radio-button#second"); + + await page.mouse.click(0, 0); + await page.waitForChanges(); + + expect(await first.getProperty("checked")).toBe(false); + expect(await second.getProperty("checked")).toBe(true); + + await page.mouse.click(10, 10); + await page.waitForChanges(); + + expect(await first.getProperty("checked")).toBe(true); + expect(await second.getProperty("checked")).toBe(false); + }); + it("programmatically checking a radio button updates the group's state correctly", async () => { const page = await newE2EPage(); await page.setContent(html` diff --git a/packages/calcite-components/src/components/radio-button-group/radio-button-group.scss b/packages/calcite-components/src/components/radio-button-group/radio-button-group.scss index 62d1727b333..60fbe67744c 100644 --- a/packages/calcite-components/src/components/radio-button-group/radio-button-group.scss +++ b/packages/calcite-components/src/components/radio-button-group/radio-button-group.scss @@ -25,6 +25,7 @@ :host([layout="vertical"]) > .item-wrapper { @apply flex-col; + inline-size: fit-content; } :host([scale="s"]) calcite-input-message {