diff --git a/packages/webawesome/scripts/build.js b/packages/webawesome/scripts/build.js index 58cda1f2f..7cef82ce2 100644 --- a/packages/webawesome/scripts/build.js +++ b/packages/webawesome/scripts/build.js @@ -218,8 +218,9 @@ export async function build(options = {}) { outdir: getCdnDir(), chunkNames: 'chunks/[name].[hash]', define: { - 'process.env.NODE_ENV': '"production"', // required by Floating UI + 'process.env.NODE_ENV': '"development"', // required by Floating UI }, + conditions: ['development'], bundle: true, splitting: true, minify: false, diff --git a/packages/webawesome/src/components/select/select.ts b/packages/webawesome/src/components/select/select.ts index 4d170a694..9f75fc02c 100644 --- a/packages/webawesome/src/components/select/select.ts +++ b/packages/webawesome/src/components/select/select.ts @@ -773,12 +773,12 @@ export default class WaSelect extends WebAwesomeFormAssociatedElement { }); } - updated(changedProperties: PropertyValues) { - super.updated(changedProperties); - + willUpdate(changedProperties: PropertyValues) { if (changedProperties.has('value')) { this.customStates.set('blank', !this.value); } + + super.willUpdate(changedProperties); } @watch('disabled', { waitUntilFirstUpdate: true }) diff --git a/packages/webawesome/src/internal/webawesome-form-associated-element.ts b/packages/webawesome/src/internal/webawesome-form-associated-element.ts index f84116325..9e3e9535b 100644 --- a/packages/webawesome/src/internal/webawesome-form-associated-element.ts +++ b/packages/webawesome/src/internal/webawesome-form-associated-element.ts @@ -125,6 +125,10 @@ export class WebAwesomeFormAssociatedElement super.connectedCallback(); this.updateValidity(); + setTimeout(() => { + this.updateValidity(); + }) + // Lazily evaluate after the constructor to allow people to override the `assumeInteractionOn` this.assumeInteractionOn.forEach(event => { this.addEventListener(event, this.handleInteraction); @@ -179,8 +183,8 @@ export class WebAwesomeFormAssociatedElement } } - this.updateValidity(); super.willUpdate(changedProperties); + this.updateValidity(); } private handleInteraction = (event: Event) => { @@ -245,8 +249,9 @@ export class WebAwesomeFormAssociatedElement anchor = this.validationTarget; } + const validity = this.internals.validity this.internals.setValidity(flags, message, anchor || undefined); - this.requestUpdate('validity'); + this.requestUpdate('validity', validity); this.setCustomStates(); } diff --git a/packages/webawesome/web-test-runner.config.js b/packages/webawesome/web-test-runner.config.js index d2f444d9c..e5676a6a4 100644 --- a/packages/webawesome/web-test-runner.config.js +++ b/packages/webawesome/web-test-runner.config.js @@ -27,7 +27,8 @@ export default { files: 'src/**/*.test.ts', // "default" group concurrentBrowsers: 3, nodeResolve: { - exportConditions: ['production', 'default'], + // exportConditions: ['production', 'default'], + exportConditions: ['development', 'default'], }, testFramework: { config: { @@ -85,7 +86,7 @@ export default {