-
Notifications
You must be signed in to change notification settings - Fork 8
Prepare for the elements manifest #691
Conversation
🦋 Changeset detectedLatest commit: 0f3be97 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
| . "$(dirname "$0")/_/husky.sh" | ||
|
|
||
| NODE_ENV=production pnpm typecheck && NODE_ENV=production pnpm test | ||
| NODE_ENV=production pnpm start |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
start:production:cem-analyzestart:developmenproduction:ts-morph
Those commands will fail if there's a difference between what they generate and what the developer has committed and is trying to push. So I thought it best to just run all of start:production so failures of those commands happen locally before push.
pnpm start will do more than just run those two commands. It'll also run start:production:components, start:production:storybook, andstart:production:stylesheets.
But I figured we should be running those, too, locally on push. Pushes will be slower. But a slower push is faster than realizing in CI after a push that something failed, eh?
| 'stylelint-use-nesting', | ||
| 'stylelint-use-logical', | ||
| 'stylelint-order', | ||
| './dist/stylelint/plugin', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Back To A Monorepo
Last week, Tony and I were working through converting everything in /.storybook to TypeScript when it occurred to us that the TypeScript problems he was running into were because we're no longer a monorepo.
Ditching the monorepo simplified a lot for us. But we realized last week—especially with the addition of a custom Stylelint rule here and my upcoming additions of ./src/cem-analyzer-plugins and ./src/ts-morph directories to ./src—that at this point we're effectively in a multi-package repository but trying to pretend otherwise.
Our unfortunate conclusion was that we need to move back to a monorepo—and that this time it'll be worth the complication given everything we've added to this repository.
His TypeScript-related .storybook issues will go away. So will the awkwardness above: instead, the Stylelint plugin—like the ESLint one—will be its own package that will handle compilation and then export a compiled plugin that packages/components/.stylelintrc.js imports. Other issues related to the element analyzer will also go away.
|
|
||
| /* Or use a class name <button class="button" */ | ||
| .button { | ||
| background-color: var(--button-background-color); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Best not to reference colors that don't exist.
|
|
||
| ```ts | ||
| // checkbox.ts | ||
| // component.ts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The more generic the better, so the guidance doesn't appear component-specific.
| /* ✅ -- GOOD */ | ||
| .animation { | ||
| background-color: purple; | ||
| transform: translateX(100%); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A more realistic and simplified example that doesn't reference a color people shouldn't use.
| "!dist/*.*.test.*.d.ts", | ||
| "!dist/*.*.test.*.js", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two were missing. Also ran all these lines through VS Code's ascending sort. Did the same for some other lists.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch 👍 . I poke around at https://www.npmjs.com/package/@crowdstrike/glide-core?activeTab=code from time to time to see what's in there
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep! Same.
45bf225 to
fd242d7
Compare
| "format": "per-env", | ||
| "format:development": "prettier . --write && stylelint '**/*.styles.ts' --custom-syntax postcss-lit --fix", | ||
| "format:production": "prettier . --check && stylelint '**/*.styles.ts' --custom-syntax postcss-lit --no-color", | ||
| "format:development": "chokidar '**/*' --ignore 'dist/**' --ignore '.changeset/**' --ignore '.git/**' --ignore 'node_modules/**' --ignore 'pnpm-lock.yaml' --initial --silent --comand 'prettier --write --ignore-unknown {path} && stylelint {path}'", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added Chokidar to watch files for a couple new commands I'll be adding next: start:development:cem-analyze and start:development:ts-morph.
Figured I'd add watching to our other *:development:* commands to match. If we don't want watching locally (I don't), we can just use the production commands.
But at least all our *:development:* commands are in alignment now that they're all long-running:
In general, think of
*:development:*scripts as either long-running (--serve,--watch) or mutative (--fix,--write) and*:production:*scripts as neither.
e78f714 to
5321dfa
Compare
| label?: string; | ||
|
|
||
| /** | ||
| * @default false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| */ | ||
| @property({ reflect: true, type: Boolean }) | ||
| get open() { | ||
| get open(): boolean { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5321dfa to
faed96e
Compare
| button.dispatchEvent( | ||
| new Event('selected', { bubbles: true, composed: true }), | ||
| ); | ||
| button.privateSelect(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@crowdstrike/glide-core/event-dispatch-from-this
The only reliable way to determine a component's events—as far as I can tell—is to always dispatch them directly from this. Dropdown is the most awkward after this change because it has to call a method on its option.
But other cases, like Tab, are less so because they're just a matter of moving the dispatch from the parent (Tab Group) to a setter in the child (Tab). The event was already dispatched from the child—just via the parent. So it probably makes more sense to let the child handle it anyway.
| } | ||
| .checkboxes { | ||
| .default-slot { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No behavioral change. Just for consistency.
| .checked-icon-container { | ||
| --size: 1rem; | ||
| --private-size: 1rem; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
glide-core/no-unprefixed-private-custom-property
Our private custom properties aren't but should be prefixed with "private" to match what we do with private class members and events. The above rule ensures they are.
It produces a warning if a custom property is not inside a :host selector and isn't prefixed with "private". Otherwise, it asks developers to move the custom property inside a :host selector like I did to drawer.styles.ts above.
This pattern of public custom properties on :host and private ones elsewhere gives us the information we need to add public custom properties to the manifest.
| <!-- | ||
| Icons for the selected option or options. Slot one icon per option. \`<value>\` should be equal to the \`value\` of each option. | ||
| @name icon:value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can add a @name tag to override a slot's default name attribute. The JSDoc generation stuff that's on the way will give precedence to @name over the name attribute.
@name can be used with any component. But I added support for it for Dropdown—which is our only component with dynamic slot names. And those don't translate well into documentation.
| <!-- | ||
| An icon before the label | ||
| @type {Element} | ||
| --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a code comment in that PR that explains why JSDoc comments are inside slots rather than above them.
But this is what I came up for annotating slots so we can get them into the manifest. It's just a standard JSDoc comment. For now, we're linting to make sure every slot has one with at least a @type tag. That PR will bring in the manifest, populated with slots.
b703275 to
cb3e502
Compare
| "@web/test-runner-playwright": "^0.11.0", | ||
| "chalk": "^5.3.0", | ||
| "chokidar-cli": "^3.0.0", | ||
| "comment-parser": "^1.4.1", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A pretty widely used library. I'm using it to parse JSDoc-style comments in slots.
| // manually dispatch them. | ||
| this.dispatchEvent( | ||
| new Event(event.type, { bubbles: true, composed: true }), | ||
| new Event('change', { bubbles: true, composed: true }), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@crowdstrike/glide-core/string-event-name
It would be complicated and probably brittle to try to track down in the AST the resultant string of an identifier—even if this case is be simple enough to handle. So we lint against dynamic event names. They then get picked up automatically by the analyzer.
| * with our component. | ||
| * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input | ||
| */ | ||
| export const SUPPORTED_TYPES = [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than write or import another analyzer plugin that expands SUPPORTED_TYPES so type's type gets picked up by the analyzer, I simply nixed it. Similar deal for Toast's Toast interface.
|
|
||
| /** | ||
| * The name of this panel | ||
| * The corresponding <glide-core-tab> will have a `panel` attribute with this name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slot-type comments (below) take the form of {Element | string} and no longer reference the tag name like our current slot comments do. So I updated other comments that I came across—like this one—to match.
| `, | ||
| css` | ||
| :host { | ||
| --padding-inline-end: 0rem; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After I moved these properties from tab-group.styles.ts, the panel- prefix no longer made sense given this is the Tab Panel component. Thus the rename and breaking change.
| `, | ||
| css` | ||
| :host { | ||
| // https://github.com/CrowdStrike/glide-core/pull/307/files#r1718545771 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// caused a parsing error.
| /* | ||
| The placement of the tooltip relative to its target. Automatic placement will | ||
| take over if the tooltip is cut off by the viewport. "bottom" by default. | ||
| */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non JSDoc-style comments won't get picked up by the analyzer.
And attribute defaults, such as "bottom", have a specific notation in JSDoc comments and will be picked up automatically. So descriptions of attributes, like this one, don't need to mention the default.
|
|
||
| @property() | ||
| label = ''; | ||
| label?: string; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditched the default for consistency.
ff8035e to
03df67d
Compare
| "test": "per-env", | ||
| "test:development": "npm-run-all --parallel test:development:serve test:development:web-test-runner start:production:stylesheets", | ||
| "test:development:serve": "npx http-server dist/coverage/lcov-report --silent", | ||
| "test:development:web-test-runner": "web-test-runner --watch", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renamed to test:development:components so it's clear what's under test. Renamed test:development:vitest for the same reason.
03df67d to
0cc744a
Compare
b44b8c2 to
4c62bd4
Compare
4c62bd4 to
42f7cb6
Compare
ynotdraw
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a bunch for doing all of this, it's a lot! This is huge and I'm excited for what this unlocks! 🎉
I found one styling issue with Menu. You can reproduce the issue here. Same issue with Split Button and Tree Item Menu (both also using Menu).
| "!dist/*.*.test.*.d.ts", | ||
| "!dist/*.*.test.*.js", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch 👍 . I poke around at https://www.npmjs.com/package/@crowdstrike/glide-core?activeTab=code from time to time to see what's in there
| "lint:development": "npm-run-all --print-name lint:development:*", | ||
| "lint:development:eslint": "tsc --outDir ./dist && eslint . --fix", | ||
| "lint:development": "npm-run-all --parallel --print-name lint:development:*", | ||
| "lint:development:eslint": "chokidar ./eslint-config.js ./src/eslint/** ./src/*.ts ./src/*.*.ts --initial --silent --command 'tsc --noCheck --outDir ./dist && eslint {path} --fix'", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Running tsc when a file changes improves the lint-rule writing workflow slightly. Previously, you had a manually run tsc before the change would be picked up by your editor.
A very welcome update. Thank you!
| @type {GlideCoreCheckbox} | ||
| @required |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super nit question, but is there a way to auto-sort the order here of @type vs @required? I saw above a case where these two were reversed. I know it doesn't really matter, but just curious 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nits of all shapes and sizes are welcome! We could probably sort these in the existing lint rule. Mind if I take it as a follow-up? In the meantime, I'll push a commit ordering them the same manually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ 35f103a
| /* | ||
| * This is block comment. But it's not a JSDoc one. | ||
| */ | ||
|
|
||
| /** | ||
| * This is a JSDoc one. | ||
| */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TIL!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Love to see custom stylelint rules 🎉
Thanks for the great review! Agreed. Lots we can do with this.
Nice catch. I knew I'd miss at least one custom property. Easy fix: 124ba18. |
|
Web Test Runner is failing to launch in CI. Not yet sure how #693 passed. But I'm going to try overriding Web Test Runner's Playwright. If that doesn't work, I'll try reverting back to |
Overriding Playwright did the trick. We can keep the override in. No reason the version of Playwright we use should be constrained by Web Test Runner. Sound right? |
* Bump eslint-config-prettier from 9.1.0 to 10.0.1 (#639) Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 9.1.0 to 10.0.1. - [Release notes](https://github.com/prettier/eslint-config-prettier/releases) - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](prettier/eslint-config-prettier@v9.1.0...v10.0.1) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump typescript from 5.7.2 to 5.7.3 (#640) Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.7.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](microsoft/TypeScript@v5.7.2...v5.7.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @storybook/theming from 8.5.1 to 8.5.2 (#641) Bumps [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) from 8.5.1 to 8.5.2. - [Release notes](https://github.com/storybookjs/storybook/releases) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.2/code/lib/theming) --- updated-dependencies: - dependency-name: "@storybook/theming" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump vite from 6.0.9 to 6.0.11 (#643) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.9 to 6.0.11. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.0.11/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add Resize Observer directive (#642) * Bump vitest from 2.1.8 to 3.0.4 (#644) Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 2.1.8 to 3.0.4. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.4/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add `@required` decorator (#638) * Add `@final` decorator (#645) * Give Input a minimum width (#647) * Use `@final` decorator everywhere (#648) * Add Label `label` attribute (#646) * Move test-only rules to their own block (#652) * Prevent form control overflow (#650) * Add logo `width` attribute * Make Dropdown's `placeholder` attribute optional (#657) * Added "add" Dropdown event documentation (#660) * Drawer no longer closes on Escape press (#667) * Drawer no longer closing on Esc * Update .changeset/tiny-pens-drop.md Co-authored-by: Dan Wenzel <[email protected]> * Update .changeset/tiny-pens-drop.md Co-authored-by: clintcs <[email protected]> --------- Co-authored-by: Dan Wenzel <[email protected]> Co-authored-by: clintcs <[email protected]> * Add JSDoc comments for multi-word property names (#661) * Upgrade Storybook (#669) * Added severity icon support to Modal (#668) * Added severity icon support to Modal * Apply suggestions from code review Co-authored-by: clintcs <[email protected]> --------- Co-authored-by: clintcs <[email protected]> * Bump lint-staged from 15.2.11 to 15.4.3 (#666) Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.2.11 to 15.4.3. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md) - [Commits](lint-staged/lint-staged@v15.2.11...v15.4.3) --- updated-dependencies: - dependency-name: lint-staged dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rimraf from 5.0.10 to 6.0.1 (#665) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.10 to 6.0.1. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](isaacs/rimraf@v5.0.10...v6.0.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump chalk from 5.3.0 to 5.4.1 (#664) Bumps [chalk](https://github.com/chalk/chalk) from 5.3.0 to 5.4.1. - [Release notes](https://github.com/chalk/chalk/releases) - [Commits](chalk/chalk@v5.3.0...v5.4.1) --- updated-dependencies: - dependency-name: chalk dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump postcss from 8.4.49 to 8.5.1 (#663) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.49 to 8.5.1. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.4.49...8.5.1) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/rule-tester from 8.19.0 to 8.22.0 (#662) * Bump @typescript-eslint/rule-tester from 8.19.0 to 8.22.0 Bumps [@typescript-eslint/rule-tester](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/rule-tester) from 8.19.0 to 8.22.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/rule-tester/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/rule-tester) --- updated-dependencies: - dependency-name: "@typescript-eslint/rule-tester" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Bump @typescript-eslint and related packages --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: clintcs <[email protected]> * Bump vitest from 3.0.4 to 3.0.5 (#676) Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.0.4 to 3.0.5. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.5/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix Popover `<label>` bug (#672) * Radio Group bugfixes (#670) * Fix Tooltip overflow bug (#673) * Clean up tests * Update README and CONTRIBUTING (#684) * Update README and CONTRIBUTING * Update CONTRIBUTING.md Co-authored-by: clintcs <[email protected]> * Update CONTRIBUTING.md Co-authored-by: clintcs <[email protected]> --------- Co-authored-by: clintcs <[email protected]> * Bump esbuild from 0.24.2 to 0.25.0 (#687) Bumps [esbuild](https://github.com/evanw/esbuild) from 0.24.2 to 0.25.0. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md) - [Commits](evanw/esbuild@v0.24.2...v0.25.0) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Tree Item: Prevent prefix icon from shrinking (#686) Wraps the prefix icon slot in a flex container, to prevent slotted SVGs from shrinking at narrow widths * Make use of the new `@required` decorator (#685) * Make use of the new required decorator * Apply suggestions from code review Co-authored-by: clintcs <[email protected]> * Remove unnecessary this.selectedOptions.length > 0 checks * Update CONTRIBUTING.md Co-authored-by: Dan Wenzel <[email protected]> --------- Co-authored-by: clintcs <[email protected]> Co-authored-by: Dan Wenzel <[email protected]> * Remove gap between Checkbox or Toggle and summary, if there is no summary (#688) * Remove gap between Checkbox or Toggle and summary if there is no summary * Update .changeset/cool-hornets-talk.md Co-authored-by: clintcs <[email protected]> --------- Co-authored-by: clintcs <[email protected]> * Add `type="time"` support to Input (#690) * Patch dependencies (#693) * Prepare for the elements manifest (#691) * Clear single-select Dropdown's input field when `value` is emptied (#694) * Add elements manifest and JSDoc generation (#692) * Add a minimum width to filterable Dropdown's input field (#696) * Update Dropdown test * Fix Modal test lint issue * Bump component version in manifest and JSDoc comments --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tony Ward <[email protected]> Co-authored-by: Dan Wenzel <[email protected]>
🚀 Description
:hostand prefixing the rest with "private". This also to helps us populate the manifest.*:development:*commands inpackage.json.📋 Checklist
🔬 How to Test
There's not a ton to test that affects consumers. The things to focus on are the custom property name changes. And of those my renaming of Icon Button's
--sizeand--icon-colorto--private-sizeand--private-icon-color. Spotcheck Inline Alert, Toast, and Tree—which all use Icon Button. Also spotcheck a few icons in those components.I also changed how some events are dispatched. Dropdown's "edit" is now dispatched by Dropdown calling
privateEdit()on its options. And Tab Group and Tree's "selected" event is now dispatched from Tab and Tree Item. The tests for these components should have us covered. But they're worth a spotcheck as well.📸 Images/Videos of Functionality
N/A