@aurodesignsystem-dev/auro-formkit 0.0.0-pr1600.2 → 0.0.0-pr1602.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +110 -4
- package/components/combobox/demo/getting-started.md +49 -0
- package/components/combobox/demo/getting-started.min.js +129 -4
- package/components/combobox/demo/index.min.js +110 -4
- package/components/combobox/dist/auro-combobox.d.ts +22 -0
- package/components/combobox/dist/index.js +94 -4
- package/components/combobox/dist/registered.js +94 -4
- package/components/counter/demo/api.md +2 -0
- package/components/counter/demo/customize.min.js +322 -92
- package/components/counter/demo/getting-started.html +3 -1
- package/components/counter/demo/getting-started.md +49 -0
- package/components/counter/demo/getting-started.min.js +8766 -0
- package/components/counter/demo/index.min.js +322 -92
- package/components/counter/dist/auro-counter-group.d.ts +6 -12
- package/components/counter/dist/auro-counter.d.ts +6 -0
- package/components/counter/dist/counterGroupKeyboardStrategy.d.ts +1 -0
- package/components/counter/dist/index.js +322 -92
- package/components/counter/dist/registered.js +322 -92
- package/components/datepicker/demo/customize.min.js +3 -3
- package/components/datepicker/demo/getting-started.html +3 -1
- package/components/datepicker/demo/getting-started.md +39 -0
- package/components/datepicker/demo/getting-started.min.js +37626 -0
- package/components/datepicker/demo/index.min.js +3 -3
- package/components/datepicker/dist/index.js +3 -3
- package/components/datepicker/dist/registered.js +3 -3
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +2 -2
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +446 -105
- package/components/form/demo/getting-started.min.js +446 -105
- package/components/form/demo/index.min.js +446 -105
- package/components/form/demo/registerDemoDeps.min.js +440 -104
- package/components/form/dist/index.js +6 -1
- package/components/form/dist/registered.js +6 -1
- package/components/input/demo/customize.md +0 -37
- package/components/input/demo/customize.min.js +1 -10
- package/components/input/demo/getting-started.md +33 -0
- package/components/input/demo/getting-started.min.js +21 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/menu/demo/index.min.js +16 -0
- package/components/menu/dist/index.js +16 -0
- package/components/menu/dist/registered.js +16 -0
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +18 -2
- package/components/select/demo/getting-started.md +49 -0
- package/components/select/demo/getting-started.min.js +40 -3
- package/components/select/demo/index.min.js +18 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +41 -26
- package/package.json +1 -1
|
@@ -839,9 +839,9 @@ var plusIcon = {"role":"img","color":"currentColor","title":"","desc":"","width"
|
|
|
839
839
|
|
|
840
840
|
var minusIcon = {"role":"img","color":"currentColor","title":"","desc":"","width":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","height":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","xmlns":"http://www.w3.org/2000/svg","xmlns_xlink":"http://www.w3.org/1999/xlink","viewBox":"0 0 24 24","path":"/icons","style":"ico_squareLarge","type":"icon","name":"minus-lg","category":"interface","deprecated":true,"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" class=\"ico_squareLarge\" data-deprecated=\"true\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><path d=\"M5.75 12.75h12.5a.75.75 0 1 0 0-1.5H5.75a.75.75 0 1 0 0 1.5\"/></svg>"};
|
|
841
841
|
|
|
842
|
-
var colorCss$6 = css`.label{color:var(--ds-auro-counter-label-text-color)}[name=description]::slotted(*){color:var(--ds-auro-counter-description-text-color)}.controlIcon{color:var(--ds-auro-counter-icon-color)}.quantityWrapper{background-color:var(--ds-auro-counter-control-background-color);color:var(--ds-auro-counter-quantity-text-color)}:host::part(counterControl):focus-
|
|
842
|
+
var colorCss$6 = css`.label{color:var(--ds-auro-counter-label-text-color)}[name=description]::slotted(*){color:var(--ds-auro-counter-description-text-color)}.controlIcon{color:var(--ds-auro-counter-icon-color)}.quantityWrapper{background-color:var(--ds-auro-counter-control-background-color);color:var(--ds-auro-counter-quantity-text-color)}:host::part(counterControl):focus-within{outline-color:var(--ds-auro-counter-control-border-color)}[disabled],:host([disabled]){--ds-auro-counter-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-description-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}[onDark],:host([onDark]),[appearance=inverse],:host([appearance=inverse]){--ds-auro-counter-description-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-counter-control-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-counter-control-background-color: var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-counter-icon-color: var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}[onDark][disabled],:host([onDark][disabled]),[appearance=inverse][disabled],:host([appearance=inverse][disabled]){--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-counter-icon-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}`;
|
|
843
843
|
|
|
844
|
-
var styleCss$5 = css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}.counter{display:flex;align-items:center;justify-content:space-between;column-gap:var(--ds-size-150, 0.75rem)}.content{display:flex;flex-flow:column}[name=description]::slotted(*){display:block}.quantityWrapper{width:var(--ds-size-400, 2rem);height:calc(var(--ds-size-25, 0.125rem) + var(--ds-size-400, 2rem));align-content:center;cursor:default;text-align:center}:host{position:relative;text-align:left}:host::part(counterControl){display:flex;border-radius:var(--ds-size-500, 2.5rem);touch-action:manipulation}:host::part(counterControl):focus-visible{outline-offset:0;outline-style:solid;outline-width:var(--ds-size-25, 0.125rem)}:host::part(controlMinus){--ds-auro-counter-control-border-radius: var(--ds-size-500, 2.5rem) 0 0 var(--ds-size-500, 2.5rem);--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem)}:host::part(controlPlus){--ds-auro-counter-control-border-radius: 0 var(--ds-size-500, 2.5rem) var(--ds-size-500, 2.5rem) 0;--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem)}auro-counter-button{display:flex}`;
|
|
844
|
+
var styleCss$5 = css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}.counter{display:flex;align-items:center;justify-content:space-between;column-gap:var(--ds-size-150, 0.75rem)}.content{display:flex;flex-flow:column}[name=description]::slotted(*){display:block}.quantityWrapper{width:var(--ds-size-400, 2rem);height:calc(var(--ds-size-25, 0.125rem) + var(--ds-size-400, 2rem));align-content:center;cursor:default;text-align:center}:host{position:relative;text-align:left}:host::part(counterControl){display:flex;border-radius:var(--ds-size-500, 2.5rem);touch-action:manipulation}:host::part(counterControl):focus-within{outline-offset:0;outline-style:solid;outline-width:var(--ds-size-25, 0.125rem)}:host::part(controlMinus){--ds-auro-counter-control-border-radius: var(--ds-size-500, 2.5rem) 0 0 var(--ds-size-500, 2.5rem);--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem)}:host::part(controlPlus){--ds-auro-counter-control-border-radius: 0 var(--ds-size-500, 2.5rem) var(--ds-size-500, 2.5rem) 0;--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem)}auro-counter-button{display:flex}`;
|
|
845
845
|
|
|
846
846
|
var colorCss$5 = css`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]),:host([appearance=inverse]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]),:host([appearance=inverse][error]){--ds-auro-helptext-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
847
847
|
|
|
@@ -1077,7 +1077,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
1077
1077
|
}
|
|
1078
1078
|
};
|
|
1079
1079
|
|
|
1080
|
-
var formkitVersion$1 = '
|
|
1080
|
+
var formkitVersion$1 = '202609021726';
|
|
1081
1081
|
|
|
1082
1082
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1083
1083
|
// See LICENSE in the project root for license information.
|
|
@@ -1435,6 +1435,17 @@ class AuroCounter extends LitElement {
|
|
|
1435
1435
|
this.validation.validate(this, force);
|
|
1436
1436
|
}
|
|
1437
1437
|
|
|
1438
|
+
/**
|
|
1439
|
+
* Resets the counter to its default state, clearing validity/touched state and returning
|
|
1440
|
+
* the value to `min` — matching the clear-on-reset behavior of the other Auro form elements.
|
|
1441
|
+
* @returns {void}
|
|
1442
|
+
*/
|
|
1443
|
+
reset() {
|
|
1444
|
+
// validation.reset() clears validity/touched and sets value to undefined; initValue() then restores the min floor.
|
|
1445
|
+
this.validation.reset(this);
|
|
1446
|
+
this.initValue();
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1438
1449
|
firstUpdated() {
|
|
1439
1450
|
this.initValue();
|
|
1440
1451
|
this.setTagAttribute("auro-counter");
|
|
@@ -4405,7 +4416,7 @@ class AuroFloatingUI {
|
|
|
4405
4416
|
}
|
|
4406
4417
|
|
|
4407
4418
|
// Selectors for focusable elements
|
|
4408
|
-
const FOCUSABLE_SELECTORS = [
|
|
4419
|
+
const FOCUSABLE_SELECTORS$1 = [
|
|
4409
4420
|
"a[href]",
|
|
4410
4421
|
"button:not([disabled])",
|
|
4411
4422
|
"textarea:not([disabled])",
|
|
@@ -4419,7 +4430,7 @@ const FOCUSABLE_SELECTORS = [
|
|
|
4419
4430
|
];
|
|
4420
4431
|
|
|
4421
4432
|
// List of custom components that are known to be focusable
|
|
4422
|
-
const FOCUSABLE_COMPONENTS = [
|
|
4433
|
+
const FOCUSABLE_COMPONENTS$1 = [
|
|
4423
4434
|
"auro-checkbox",
|
|
4424
4435
|
"auro-radio",
|
|
4425
4436
|
"auro-dropdown",
|
|
@@ -4441,12 +4452,12 @@ const FOCUSABLE_COMPONENTS = [
|
|
|
4441
4452
|
* @param {HTMLElement} element The element to check for focusability.
|
|
4442
4453
|
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
4443
4454
|
*/
|
|
4444
|
-
function isFocusableComponent(element) {
|
|
4455
|
+
function isFocusableComponent$1(element) {
|
|
4445
4456
|
const componentName = element.tagName.toLowerCase();
|
|
4446
4457
|
|
|
4447
4458
|
// Guard Clause: Element is a focusable component
|
|
4448
4459
|
if (
|
|
4449
|
-
!FOCUSABLE_COMPONENTS.some(
|
|
4460
|
+
!FOCUSABLE_COMPONENTS$1.some(
|
|
4450
4461
|
(name) => element.hasAttribute(name) || componentName === name,
|
|
4451
4462
|
)
|
|
4452
4463
|
)
|
|
@@ -4470,7 +4481,7 @@ function isFocusableComponent(element) {
|
|
|
4470
4481
|
* @param {HTMLElement} element The element whose tabindex to read.
|
|
4471
4482
|
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
4472
4483
|
*/
|
|
4473
|
-
function getNumericTabIndex(element) {
|
|
4484
|
+
function getNumericTabIndex$1(element) {
|
|
4474
4485
|
const raw = element.getAttribute("tabindex");
|
|
4475
4486
|
if (raw == null) return null;
|
|
4476
4487
|
|
|
@@ -4486,7 +4497,7 @@ function getNumericTabIndex(element) {
|
|
|
4486
4497
|
* @param {HTMLElement} container The container to search within
|
|
4487
4498
|
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
4488
4499
|
*/
|
|
4489
|
-
function getFocusableElements(container) {
|
|
4500
|
+
function getFocusableElements$1(container) {
|
|
4490
4501
|
// Get elements in DOM order by walking the tree
|
|
4491
4502
|
const orderedFocusableElements = [];
|
|
4492
4503
|
|
|
@@ -4495,7 +4506,7 @@ function getFocusableElements(container) {
|
|
|
4495
4506
|
// Check if current element is focusable
|
|
4496
4507
|
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
4497
4508
|
// Check if this is a custom component that is focusable
|
|
4498
|
-
const isComponentFocusable = isFocusableComponent(root);
|
|
4509
|
+
const isComponentFocusable = isFocusableComponent$1(root);
|
|
4499
4510
|
|
|
4500
4511
|
if (isComponentFocusable) {
|
|
4501
4512
|
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
@@ -4504,7 +4515,7 @@ function getFocusableElements(container) {
|
|
|
4504
4515
|
}
|
|
4505
4516
|
|
|
4506
4517
|
// Check if the element itself matches any selector
|
|
4507
|
-
for (const selector of FOCUSABLE_SELECTORS) {
|
|
4518
|
+
for (const selector of FOCUSABLE_SELECTORS$1) {
|
|
4508
4519
|
if (root.matches?.(selector)) {
|
|
4509
4520
|
orderedFocusableElements.push(root);
|
|
4510
4521
|
break; // Once we know it's focusable, no need to check other selectors
|
|
@@ -4558,20 +4569,20 @@ function getFocusableElements(container) {
|
|
|
4558
4569
|
|
|
4559
4570
|
// First extract elements with valid positive tabindex
|
|
4560
4571
|
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
4561
|
-
const tabindex = getNumericTabIndex(el);
|
|
4572
|
+
const tabindex = getNumericTabIndex$1(el);
|
|
4562
4573
|
return tabindex !== null && tabindex > 0;
|
|
4563
4574
|
});
|
|
4564
4575
|
|
|
4565
4576
|
// Sort these elements by their tabindex value
|
|
4566
4577
|
elementsWithTabindex.sort((a, b) => {
|
|
4567
|
-
const aIndex = getNumericTabIndex(a) ?? 0;
|
|
4568
|
-
const bIndex = getNumericTabIndex(b) ?? 0;
|
|
4578
|
+
const aIndex = getNumericTabIndex$1(a) ?? 0;
|
|
4579
|
+
const bIndex = getNumericTabIndex$1(b) ?? 0;
|
|
4569
4580
|
return aIndex - bIndex;
|
|
4570
4581
|
});
|
|
4571
4582
|
|
|
4572
4583
|
// Elements without tabindex (preserving their original order)
|
|
4573
4584
|
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
4574
|
-
const tabindex = getNumericTabIndex(el);
|
|
4585
|
+
const tabindex = getNumericTabIndex$1(el);
|
|
4575
4586
|
|
|
4576
4587
|
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
4577
4588
|
return tabindex === null || tabindex === 0;
|
|
@@ -5366,7 +5377,7 @@ class AuroHelpText extends LitElement {
|
|
|
5366
5377
|
}
|
|
5367
5378
|
}
|
|
5368
5379
|
|
|
5369
|
-
var formkitVersion = '
|
|
5380
|
+
var formkitVersion = '202609021726';
|
|
5370
5381
|
|
|
5371
5382
|
/**
|
|
5372
5383
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -5666,7 +5677,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5666
5677
|
*/
|
|
5667
5678
|
focus() {
|
|
5668
5679
|
if (this.isPopoverVisible && this.bibContent) {
|
|
5669
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
5680
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
5670
5681
|
if (focusables.length > 0) {
|
|
5671
5682
|
focusables[0].focus();
|
|
5672
5683
|
}
|
|
@@ -5698,7 +5709,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5698
5709
|
// wrappers like <div> containing a <button>). If none found, try
|
|
5699
5710
|
// focusing the element directly (works for custom elements like
|
|
5700
5711
|
// auro-input that have delegatesFocus or a custom focus() method).
|
|
5701
|
-
const descendants = getFocusableElements(el);
|
|
5712
|
+
const descendants = getFocusableElements$1(el);
|
|
5702
5713
|
if (descendants.length > 0) {
|
|
5703
5714
|
descendants[0].focus();
|
|
5704
5715
|
return;
|
|
@@ -5710,7 +5721,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5710
5721
|
}
|
|
5711
5722
|
}
|
|
5712
5723
|
// Fallback: try DOM children (non-slotted content)
|
|
5713
|
-
const focusables = getFocusableElements(this.trigger);
|
|
5724
|
+
const focusables = getFocusableElements$1(this.trigger);
|
|
5714
5725
|
if (focusables.length > 0) {
|
|
5715
5726
|
focusables[0].focus();
|
|
5716
5727
|
}
|
|
@@ -6389,7 +6400,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6389
6400
|
}
|
|
6390
6401
|
|
|
6391
6402
|
// Collect focusable elements from the bib content.
|
|
6392
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
6403
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
6393
6404
|
|
|
6394
6405
|
// Fallback: try from slotted content directly
|
|
6395
6406
|
if (!focusables.length) {
|
|
@@ -6398,7 +6409,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6398
6409
|
|
|
6399
6410
|
for (const node of assignedNodes) {
|
|
6400
6411
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
6401
|
-
focusables.push(...getFocusableElements(node));
|
|
6412
|
+
focusables.push(...getFocusableElements$1(node));
|
|
6402
6413
|
}
|
|
6403
6414
|
}
|
|
6404
6415
|
}
|
|
@@ -6458,7 +6469,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6458
6469
|
|
|
6459
6470
|
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
6460
6471
|
requestAnimationFrame(() => {
|
|
6461
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
6472
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
6462
6473
|
if (focusables.length) {
|
|
6463
6474
|
focusables[0].focus();
|
|
6464
6475
|
}
|
|
@@ -6471,7 +6482,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6471
6482
|
// popover asynchronously — a synchronous focus() would target
|
|
6472
6483
|
// zero-dimension elements and be silently ignored.
|
|
6473
6484
|
requestAnimationFrame(() => {
|
|
6474
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
6485
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
6475
6486
|
if (focusables.length) {
|
|
6476
6487
|
focusables[0].focus();
|
|
6477
6488
|
}
|
|
@@ -6689,7 +6700,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6689
6700
|
if (triggerContentNodes) {
|
|
6690
6701
|
|
|
6691
6702
|
// See if any of them are focusable elements
|
|
6692
|
-
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
|
|
6703
|
+
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$1(node).length > 0);
|
|
6693
6704
|
|
|
6694
6705
|
// If any of them are focusable elements
|
|
6695
6706
|
if (this.triggerContentFocusable) {
|
|
@@ -7451,9 +7462,241 @@ class AuroElement extends LitElement {
|
|
|
7451
7462
|
}
|
|
7452
7463
|
}
|
|
7453
7464
|
|
|
7465
|
+
// Selectors for focusable elements
|
|
7466
|
+
const FOCUSABLE_SELECTORS = [
|
|
7467
|
+
"a[href]",
|
|
7468
|
+
"button:not([disabled])",
|
|
7469
|
+
"textarea:not([disabled])",
|
|
7470
|
+
"input:not([disabled])",
|
|
7471
|
+
"select:not([disabled])",
|
|
7472
|
+
'[role="tab"]:not([disabled])',
|
|
7473
|
+
'[role="link"]:not([disabled])',
|
|
7474
|
+
'[role="button"]:not([disabled])',
|
|
7475
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
7476
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
7477
|
+
];
|
|
7478
|
+
|
|
7479
|
+
// List of custom components that are known to be focusable
|
|
7480
|
+
const FOCUSABLE_COMPONENTS = [
|
|
7481
|
+
"auro-checkbox",
|
|
7482
|
+
"auro-radio",
|
|
7483
|
+
"auro-dropdown",
|
|
7484
|
+
"auro-button",
|
|
7485
|
+
"auro-combobox",
|
|
7486
|
+
"auro-input",
|
|
7487
|
+
"auro-counter",
|
|
7488
|
+
// 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
|
|
7489
|
+
"auro-select",
|
|
7490
|
+
"auro-datepicker",
|
|
7491
|
+
"auro-hyperlink",
|
|
7492
|
+
"auro-accordion",
|
|
7493
|
+
];
|
|
7494
|
+
|
|
7495
|
+
/**
|
|
7496
|
+
* Determines if a given element is a custom focusable component.
|
|
7497
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
7498
|
+
*
|
|
7499
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
7500
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
7501
|
+
*/
|
|
7502
|
+
function isFocusableComponent(element) {
|
|
7503
|
+
const componentName = element.tagName.toLowerCase();
|
|
7504
|
+
|
|
7505
|
+
// Guard Clause: Element is a focusable component
|
|
7506
|
+
if (
|
|
7507
|
+
!FOCUSABLE_COMPONENTS.some(
|
|
7508
|
+
(name) => element.hasAttribute(name) || componentName === name,
|
|
7509
|
+
)
|
|
7510
|
+
)
|
|
7511
|
+
return false;
|
|
7512
|
+
|
|
7513
|
+
// Guard Clause: Element is not disabled
|
|
7514
|
+
if (element.hasAttribute("disabled")) return false;
|
|
7515
|
+
|
|
7516
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
7517
|
+
if (componentName.match("hyperlink") && !element.hasAttribute("href"))
|
|
7518
|
+
return false;
|
|
7519
|
+
|
|
7520
|
+
// If all guard clauses pass, the element is a focusable component
|
|
7521
|
+
return true;
|
|
7522
|
+
}
|
|
7523
|
+
|
|
7524
|
+
/**
|
|
7525
|
+
* Safely get a numeric tabindex for an element.
|
|
7526
|
+
* Returns a number if the tabindex is a valid integer, otherwise null.
|
|
7527
|
+
*
|
|
7528
|
+
* @param {HTMLElement} element The element whose tabindex to read.
|
|
7529
|
+
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
7530
|
+
*/
|
|
7531
|
+
function getNumericTabIndex(element) {
|
|
7532
|
+
const raw = element.getAttribute("tabindex");
|
|
7533
|
+
if (raw == null) return null;
|
|
7534
|
+
|
|
7535
|
+
const value = Number.parseInt(raw, 10);
|
|
7536
|
+
return Number.isNaN(value) ? null : value;
|
|
7537
|
+
}
|
|
7538
|
+
|
|
7539
|
+
/**
|
|
7540
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
7541
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
7542
|
+
* Also sorts elements with tabindex first, preserving their order.
|
|
7543
|
+
*
|
|
7544
|
+
* @param {HTMLElement} container The container to search within
|
|
7545
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
7546
|
+
*/
|
|
7547
|
+
function getFocusableElements(container) {
|
|
7548
|
+
// Get elements in DOM order by walking the tree
|
|
7549
|
+
const orderedFocusableElements = [];
|
|
7550
|
+
|
|
7551
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
7552
|
+
const collectFocusableElements = (root) => {
|
|
7553
|
+
// Check if current element is focusable
|
|
7554
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
7555
|
+
// Check if this is a custom component that is focusable
|
|
7556
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
7557
|
+
|
|
7558
|
+
if (isComponentFocusable) {
|
|
7559
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
7560
|
+
orderedFocusableElements.push(root);
|
|
7561
|
+
return; // Skip traversing inside this component
|
|
7562
|
+
}
|
|
7563
|
+
|
|
7564
|
+
// Check if the element itself matches any selector
|
|
7565
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
7566
|
+
if (root.matches?.(selector)) {
|
|
7567
|
+
orderedFocusableElements.push(root);
|
|
7568
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
7569
|
+
}
|
|
7570
|
+
}
|
|
7571
|
+
|
|
7572
|
+
// Process shadow DOM only for non-Auro components
|
|
7573
|
+
if (root.shadowRoot) {
|
|
7574
|
+
// Process shadow DOM children in order
|
|
7575
|
+
if (root.shadowRoot.children) {
|
|
7576
|
+
Array.from(root.shadowRoot.children).forEach((child) => {
|
|
7577
|
+
collectFocusableElements(child);
|
|
7578
|
+
});
|
|
7579
|
+
}
|
|
7580
|
+
}
|
|
7581
|
+
|
|
7582
|
+
// Process slots and their assigned nodes in order
|
|
7583
|
+
if (root.tagName === "SLOT") {
|
|
7584
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
7585
|
+
for (const node of assignedNodes) {
|
|
7586
|
+
collectFocusableElements(node);
|
|
7587
|
+
}
|
|
7588
|
+
} else {
|
|
7589
|
+
// Process light DOM children in order
|
|
7590
|
+
if (root.children) {
|
|
7591
|
+
Array.from(root.children).forEach((child) => {
|
|
7592
|
+
collectFocusableElements(child);
|
|
7593
|
+
});
|
|
7594
|
+
}
|
|
7595
|
+
}
|
|
7596
|
+
}
|
|
7597
|
+
};
|
|
7598
|
+
|
|
7599
|
+
// Start the traversal from the container
|
|
7600
|
+
collectFocusableElements(container);
|
|
7601
|
+
|
|
7602
|
+
// Remove duplicates that might have been collected through different paths
|
|
7603
|
+
// while preserving order
|
|
7604
|
+
const uniqueElements = [];
|
|
7605
|
+
const seen = new Set();
|
|
7606
|
+
|
|
7607
|
+
for (const element of orderedFocusableElements) {
|
|
7608
|
+
if (!seen.has(element)) {
|
|
7609
|
+
seen.add(element);
|
|
7610
|
+
uniqueElements.push(element);
|
|
7611
|
+
}
|
|
7612
|
+
}
|
|
7613
|
+
|
|
7614
|
+
// Move tab-indexed elements to the front while preserving their order
|
|
7615
|
+
// This ensures that elements with tabindex are prioritized in the focus order
|
|
7616
|
+
|
|
7617
|
+
// First extract elements with valid positive tabindex
|
|
7618
|
+
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
7619
|
+
const tabindex = getNumericTabIndex(el);
|
|
7620
|
+
return tabindex !== null && tabindex > 0;
|
|
7621
|
+
});
|
|
7622
|
+
|
|
7623
|
+
// Sort these elements by their tabindex value
|
|
7624
|
+
elementsWithTabindex.sort((a, b) => {
|
|
7625
|
+
const aIndex = getNumericTabIndex(a) ?? 0;
|
|
7626
|
+
const bIndex = getNumericTabIndex(b) ?? 0;
|
|
7627
|
+
return aIndex - bIndex;
|
|
7628
|
+
});
|
|
7629
|
+
|
|
7630
|
+
// Elements without tabindex (preserving their original order)
|
|
7631
|
+
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
7632
|
+
const tabindex = getNumericTabIndex(el);
|
|
7633
|
+
|
|
7634
|
+
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
7635
|
+
return tabindex === null || tabindex === 0;
|
|
7636
|
+
});
|
|
7637
|
+
|
|
7638
|
+
// Combine both arrays with tabindex elements first
|
|
7639
|
+
const tabIndexedUniqueElements = [
|
|
7640
|
+
...elementsWithTabindex,
|
|
7641
|
+
...elementsWithoutTabindex,
|
|
7642
|
+
];
|
|
7643
|
+
|
|
7644
|
+
return tabIndexedUniqueElements;
|
|
7645
|
+
}
|
|
7646
|
+
|
|
7454
7647
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
7455
7648
|
// See LICENSE in the project root for license information.
|
|
7456
7649
|
|
|
7650
|
+
|
|
7651
|
+
/**
|
|
7652
|
+
* Whether `el` is currently visible enough to receive focus. Prefers the
|
|
7653
|
+
* browser's `checkVisibility()`; otherwise combines a display/visibility check
|
|
7654
|
+
* with an ancestor-hidden probe that keeps position:fixed elements visible.
|
|
7655
|
+
* @param {Element} el - The element to test.
|
|
7656
|
+
* @returns {boolean}
|
|
7657
|
+
*/
|
|
7658
|
+
function isVisibleForFocus(el) {
|
|
7659
|
+
if (typeof el.checkVisibility === 'function') {
|
|
7660
|
+
return el.checkVisibility();
|
|
7661
|
+
}
|
|
7662
|
+
const style = el.ownerDocument.defaultView.getComputedStyle(el);
|
|
7663
|
+
if (style.display === 'none' || style.visibility === 'hidden') {
|
|
7664
|
+
return false;
|
|
7665
|
+
}
|
|
7666
|
+
return el.offsetParent !== null || style.position === 'fixed';
|
|
7667
|
+
}
|
|
7668
|
+
|
|
7669
|
+
/**
|
|
7670
|
+
* Return the tab stop that comes before the counter-group in page tab order,
|
|
7671
|
+
* skipping any hidden entries the walker doesn't filter itself. The group host
|
|
7672
|
+
* itself is not a tab stop; its focusables (the internal dropdown and the
|
|
7673
|
+
* counters) are, so anchor the search on the group's earliest focusable.
|
|
7674
|
+
* @param {Element} component - The auro-counter-group host element.
|
|
7675
|
+
* @returns {Element|null}
|
|
7676
|
+
*/
|
|
7677
|
+
function getPreviousTabStop(component) {
|
|
7678
|
+
const tabStops = getFocusableElements(component.ownerDocument.body);
|
|
7679
|
+
const counters = component.counters || [];
|
|
7680
|
+
const owned = [
|
|
7681
|
+
component,
|
|
7682
|
+
component.dropdown,
|
|
7683
|
+
...counters
|
|
7684
|
+
].filter(Boolean);
|
|
7685
|
+
let groupStart = tabStops.length;
|
|
7686
|
+
owned.forEach((node) => {
|
|
7687
|
+
const index = tabStops.indexOf(node);
|
|
7688
|
+
if (index >= 0 && index < groupStart) {
|
|
7689
|
+
groupStart = index;
|
|
7690
|
+
}
|
|
7691
|
+
});
|
|
7692
|
+
for (let index = groupStart - 1; index >= 0; index -= 1) {
|
|
7693
|
+
if (isVisibleForFocus(tabStops[index])) {
|
|
7694
|
+
return tabStops[index];
|
|
7695
|
+
}
|
|
7696
|
+
}
|
|
7697
|
+
return null;
|
|
7698
|
+
}
|
|
7699
|
+
|
|
7457
7700
|
const counterGroupKeyboardStrategy = {
|
|
7458
7701
|
Escape(component, evt) {
|
|
7459
7702
|
if (!component.dropdown || !component.dropdown.isPopoverVisible) {
|
|
@@ -7467,6 +7710,48 @@ const counterGroupKeyboardStrategy = {
|
|
|
7467
7710
|
|
|
7468
7711
|
component.dropdown.hide();
|
|
7469
7712
|
},
|
|
7713
|
+
|
|
7714
|
+
Tab(component, evt, ctx) {
|
|
7715
|
+
// Forward Tab already exits past the bib content and the focusout handler
|
|
7716
|
+
// closes the bib. Fullscreen relies on the dialog's native focus trapping.
|
|
7717
|
+
if (!ctx.isExpanded || ctx.isModal || !evt.shiftKey) {
|
|
7718
|
+
return;
|
|
7719
|
+
}
|
|
7720
|
+
|
|
7721
|
+
// The trigger precedes the bib content in the flattened tab order, so a
|
|
7722
|
+
// native Shift+Tab off the first counter lands back on the trigger and
|
|
7723
|
+
// leaves the bib open. Only intercept when focus is on the first focusable
|
|
7724
|
+
// in the bib; otherwise let the browser move to the previous counter.
|
|
7725
|
+
// `composedPath()` reports the real event origin through every shadow
|
|
7726
|
+
// boundary, unlike `document.activeElement`, which retargets to the first
|
|
7727
|
+
// slotted counter and cannot tell the counters apart.
|
|
7728
|
+
const focusables = getFocusableElements(component.dropdown.bibContent);
|
|
7729
|
+
if (!focusables.length) {
|
|
7730
|
+
return;
|
|
7731
|
+
}
|
|
7732
|
+
|
|
7733
|
+
const path = evt.composedPath();
|
|
7734
|
+
const activeIndex = focusables.findIndex((el) => path.includes(el));
|
|
7735
|
+
if (activeIndex !== 0) {
|
|
7736
|
+
return;
|
|
7737
|
+
}
|
|
7738
|
+
|
|
7739
|
+
const previousTabStop = getPreviousTabStop(component);
|
|
7740
|
+
|
|
7741
|
+
// Always suppress the native Shift+Tab. Otherwise it fires against the bib
|
|
7742
|
+
// as it is torn down and lands focus on the trigger (which precedes the
|
|
7743
|
+
// first counter), re-opening the exact loop this handler prevents. When
|
|
7744
|
+
// nothing precedes the group, focus falls to the body instead of the
|
|
7745
|
+
// trigger, which reads as exiting the group backward.
|
|
7746
|
+
evt.preventDefault();
|
|
7747
|
+
component.hideBib();
|
|
7748
|
+
|
|
7749
|
+
if (!previousTabStop) {
|
|
7750
|
+
return;
|
|
7751
|
+
}
|
|
7752
|
+
|
|
7753
|
+
doubleRaf(() => previousTabStop.focus());
|
|
7754
|
+
},
|
|
7470
7755
|
};
|
|
7471
7756
|
|
|
7472
7757
|
/* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
|
|
@@ -7542,16 +7827,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
7542
7827
|
/** @private */
|
|
7543
7828
|
this.updateValidity = this.updateValidity.bind(this);
|
|
7544
7829
|
|
|
7545
|
-
/**
|
|
7546
|
-
* Whether the most recent pointerdown began inside this group's composed tree.
|
|
7547
|
-
* Used to keep the dropdown open when a counter button disables itself on click.
|
|
7548
|
-
* @private
|
|
7549
|
-
*/
|
|
7550
|
-
this.pointerdownInsideGroup = false;
|
|
7551
|
-
|
|
7552
|
-
/** @private */
|
|
7553
|
-
this.trackPointerdown = this.trackPointerdown.bind(this);
|
|
7554
|
-
|
|
7555
7830
|
/**
|
|
7556
7831
|
* Generate unique names for dependency components.
|
|
7557
7832
|
* @private
|
|
@@ -7937,35 +8212,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
7937
8212
|
});
|
|
7938
8213
|
}
|
|
7939
8214
|
|
|
7940
|
-
/**
|
|
7941
|
-
* Records whether a pointerdown originated inside this group's composed tree.
|
|
7942
|
-
* @param {PointerEvent} event - The pointerdown event.
|
|
7943
|
-
* @private
|
|
7944
|
-
*/
|
|
7945
|
-
trackPointerdown(event) {
|
|
7946
|
-
this.pointerdownInsideGroup = event.composedPath().includes(this);
|
|
7947
|
-
}
|
|
7948
|
-
|
|
7949
|
-
connectedCallback() {
|
|
7950
|
-
super.connectedCallback();
|
|
7951
|
-
|
|
7952
|
-
// firstUpdated performs the initial pointerdown registration, but it runs
|
|
7953
|
-
// only once per instance and disconnectedCallback removes the listener. On a
|
|
7954
|
-
// later reconnect (SPA route change, keyed remount) firstUpdated does not run
|
|
7955
|
-
// again, so re-add the document-level listener here. hasUpdated is false
|
|
7956
|
-
// during the initial connect — firstUpdated owns that case — and true on any
|
|
7957
|
-
// reconnect. remove-before-add keeps it idempotent. (AB#1634231)
|
|
7958
|
-
if (this.hasUpdated && this.isDropdown) {
|
|
7959
|
-
document.removeEventListener('pointerdown', this.trackPointerdown, true);
|
|
7960
|
-
document.addEventListener('pointerdown', this.trackPointerdown, true);
|
|
7961
|
-
}
|
|
7962
|
-
}
|
|
7963
|
-
|
|
7964
|
-
disconnectedCallback() {
|
|
7965
|
-
super.disconnectedCallback();
|
|
7966
|
-
document.removeEventListener('pointerdown', this.trackPointerdown, true);
|
|
7967
|
-
}
|
|
7968
|
-
|
|
7969
8215
|
/**
|
|
7970
8216
|
* Hides the dropdown bib if its open.
|
|
7971
8217
|
* @returns {void}
|
|
@@ -8133,6 +8379,19 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8133
8379
|
this.validation.validate(this, force);
|
|
8134
8380
|
}
|
|
8135
8381
|
|
|
8382
|
+
/**
|
|
8383
|
+
* Resets the counter group to its initial state by resetting each child counter and clearing validity.
|
|
8384
|
+
* Each child reset dispatches an `input` event, which triggers `updateValue()` to recompute `value`/`total`.
|
|
8385
|
+
* @returns {void}
|
|
8386
|
+
*/
|
|
8387
|
+
reset() {
|
|
8388
|
+
if (this.counters) {
|
|
8389
|
+
this.counters.forEach((counter) => counter.reset());
|
|
8390
|
+
}
|
|
8391
|
+
|
|
8392
|
+
this.validation.reset(this);
|
|
8393
|
+
}
|
|
8394
|
+
|
|
8136
8395
|
updated(changedProperties) {
|
|
8137
8396
|
if (changedProperties.has("value")) {
|
|
8138
8397
|
this.validate();
|
|
@@ -8163,12 +8422,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8163
8422
|
if (this.isDropdown) {
|
|
8164
8423
|
applyKeyboardStrategy$1(this, counterGroupKeyboardStrategy);
|
|
8165
8424
|
|
|
8166
|
-
// Track where the most recent pointer interaction began so the focusout
|
|
8167
|
-
// handler below can tell a counter-button click apart from an outside
|
|
8168
|
-
// click. Capture phase + composedPath so clicks inside the bib's nested
|
|
8169
|
-
// shadow roots still resolve to this group. (AB#1634231)
|
|
8170
|
-
document.addEventListener('pointerdown', this.trackPointerdown, true);
|
|
8171
|
-
|
|
8172
8425
|
// noHideOnThisFocusLoss=true on the dropdown prevents handleFocusLoss from
|
|
8173
8426
|
// closing the bib when focus moves out via Tab. Close explicitly via focusout:
|
|
8174
8427
|
// if relatedTarget is outside the counter-group's light DOM, focus has left.
|
|
@@ -8182,29 +8435,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8182
8435
|
return;
|
|
8183
8436
|
}
|
|
8184
8437
|
|
|
8185
|
-
// A null relatedTarget means focus was dropped without landing on a
|
|
8186
|
-
// specific element. This fires when a counter's +/- button becomes
|
|
8187
|
-
// disabled at an extreme immediately after being clicked: the browser
|
|
8188
|
-
// blurs the now-disabled button, closing the bib as an unwanted side
|
|
8189
|
-
// effect of using the counters. If that blur was triggered by a pointer
|
|
8190
|
-
// interaction that began inside the group, keep the bib open. A genuine
|
|
8191
|
-
// outside click also yields a null relatedTarget, but its pointerdown
|
|
8192
|
-
// originated outside the group, so we still close. (AB#1634231)
|
|
8193
|
-
if (!event.relatedTarget) {
|
|
8194
|
-
// Consume the flag: it describes the interaction that just ended, not
|
|
8195
|
-
// a lasting state. Resetting here prevents a later non-pointer focus
|
|
8196
|
-
// loss (a programmatic blur, an a11y focus trap) with no intervening
|
|
8197
|
-
// pointerdown from reading a stale "inside" value and wrongly keeping
|
|
8198
|
-
// the bib open. (#1600)
|
|
8199
|
-
const pointerdownStartedInside = this.pointerdownInsideGroup;
|
|
8200
|
-
this.pointerdownInsideGroup = false;
|
|
8201
|
-
if (pointerdownStartedInside) {
|
|
8202
|
-
return;
|
|
8203
|
-
}
|
|
8204
|
-
this.hideBib();
|
|
8205
|
-
return;
|
|
8206
|
-
}
|
|
8207
|
-
|
|
8208
8438
|
// Focus moved to a known element outside the group (e.g. Tab to the next field).
|
|
8209
8439
|
this.hideBib();
|
|
8210
8440
|
});
|