@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
|
@@ -889,9 +889,9 @@ var plusIcon = {"role":"img","color":"currentColor","title":"","desc":"","width"
|
|
|
889
889
|
|
|
890
890
|
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>"};
|
|
891
891
|
|
|
892
|
-
var colorCss$6 = i$5`.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-
|
|
892
|
+
var colorCss$6 = i$5`.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)}`;
|
|
893
893
|
|
|
894
|
-
var styleCss$5 = i$5`.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}`;
|
|
894
|
+
var styleCss$5 = i$5`.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}`;
|
|
895
895
|
|
|
896
896
|
var colorCss$5 = i$5`: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)}`;
|
|
897
897
|
|
|
@@ -1127,7 +1127,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
1127
1127
|
}
|
|
1128
1128
|
};
|
|
1129
1129
|
|
|
1130
|
-
var formkitVersion$1 = '
|
|
1130
|
+
var formkitVersion$1 = '202609021726';
|
|
1131
1131
|
|
|
1132
1132
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1133
1133
|
// See LICENSE in the project root for license information.
|
|
@@ -1485,6 +1485,17 @@ class AuroCounter extends i$2 {
|
|
|
1485
1485
|
this.validation.validate(this, force);
|
|
1486
1486
|
}
|
|
1487
1487
|
|
|
1488
|
+
/**
|
|
1489
|
+
* Resets the counter to its default state, clearing validity/touched state and returning
|
|
1490
|
+
* the value to `min` — matching the clear-on-reset behavior of the other Auro form elements.
|
|
1491
|
+
* @returns {void}
|
|
1492
|
+
*/
|
|
1493
|
+
reset() {
|
|
1494
|
+
// validation.reset() clears validity/touched and sets value to undefined; initValue() then restores the min floor.
|
|
1495
|
+
this.validation.reset(this);
|
|
1496
|
+
this.initValue();
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1488
1499
|
firstUpdated() {
|
|
1489
1500
|
this.initValue();
|
|
1490
1501
|
this.setTagAttribute("auro-counter");
|
|
@@ -4473,7 +4484,7 @@ class AuroFloatingUI {
|
|
|
4473
4484
|
}
|
|
4474
4485
|
|
|
4475
4486
|
// Selectors for focusable elements
|
|
4476
|
-
const FOCUSABLE_SELECTORS = [
|
|
4487
|
+
const FOCUSABLE_SELECTORS$1 = [
|
|
4477
4488
|
"a[href]",
|
|
4478
4489
|
"button:not([disabled])",
|
|
4479
4490
|
"textarea:not([disabled])",
|
|
@@ -4487,7 +4498,7 @@ const FOCUSABLE_SELECTORS = [
|
|
|
4487
4498
|
];
|
|
4488
4499
|
|
|
4489
4500
|
// List of custom components that are known to be focusable
|
|
4490
|
-
const FOCUSABLE_COMPONENTS = [
|
|
4501
|
+
const FOCUSABLE_COMPONENTS$1 = [
|
|
4491
4502
|
"auro-checkbox",
|
|
4492
4503
|
"auro-radio",
|
|
4493
4504
|
"auro-dropdown",
|
|
@@ -4509,12 +4520,12 @@ const FOCUSABLE_COMPONENTS = [
|
|
|
4509
4520
|
* @param {HTMLElement} element The element to check for focusability.
|
|
4510
4521
|
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
4511
4522
|
*/
|
|
4512
|
-
function isFocusableComponent(element) {
|
|
4523
|
+
function isFocusableComponent$1(element) {
|
|
4513
4524
|
const componentName = element.tagName.toLowerCase();
|
|
4514
4525
|
|
|
4515
4526
|
// Guard Clause: Element is a focusable component
|
|
4516
4527
|
if (
|
|
4517
|
-
!FOCUSABLE_COMPONENTS.some(
|
|
4528
|
+
!FOCUSABLE_COMPONENTS$1.some(
|
|
4518
4529
|
(name) => element.hasAttribute(name) || componentName === name,
|
|
4519
4530
|
)
|
|
4520
4531
|
)
|
|
@@ -4538,7 +4549,7 @@ function isFocusableComponent(element) {
|
|
|
4538
4549
|
* @param {HTMLElement} element The element whose tabindex to read.
|
|
4539
4550
|
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
4540
4551
|
*/
|
|
4541
|
-
function getNumericTabIndex(element) {
|
|
4552
|
+
function getNumericTabIndex$1(element) {
|
|
4542
4553
|
const raw = element.getAttribute("tabindex");
|
|
4543
4554
|
if (raw == null) return null;
|
|
4544
4555
|
|
|
@@ -4554,7 +4565,7 @@ function getNumericTabIndex(element) {
|
|
|
4554
4565
|
* @param {HTMLElement} container The container to search within
|
|
4555
4566
|
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
4556
4567
|
*/
|
|
4557
|
-
function getFocusableElements(container) {
|
|
4568
|
+
function getFocusableElements$1(container) {
|
|
4558
4569
|
// Get elements in DOM order by walking the tree
|
|
4559
4570
|
const orderedFocusableElements = [];
|
|
4560
4571
|
|
|
@@ -4563,7 +4574,7 @@ function getFocusableElements(container) {
|
|
|
4563
4574
|
// Check if current element is focusable
|
|
4564
4575
|
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
4565
4576
|
// Check if this is a custom component that is focusable
|
|
4566
|
-
const isComponentFocusable = isFocusableComponent(root);
|
|
4577
|
+
const isComponentFocusable = isFocusableComponent$1(root);
|
|
4567
4578
|
|
|
4568
4579
|
if (isComponentFocusable) {
|
|
4569
4580
|
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
@@ -4572,7 +4583,7 @@ function getFocusableElements(container) {
|
|
|
4572
4583
|
}
|
|
4573
4584
|
|
|
4574
4585
|
// Check if the element itself matches any selector
|
|
4575
|
-
for (const selector of FOCUSABLE_SELECTORS) {
|
|
4586
|
+
for (const selector of FOCUSABLE_SELECTORS$1) {
|
|
4576
4587
|
if (root.matches?.(selector)) {
|
|
4577
4588
|
orderedFocusableElements.push(root);
|
|
4578
4589
|
break; // Once we know it's focusable, no need to check other selectors
|
|
@@ -4626,20 +4637,20 @@ function getFocusableElements(container) {
|
|
|
4626
4637
|
|
|
4627
4638
|
// First extract elements with valid positive tabindex
|
|
4628
4639
|
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
4629
|
-
const tabindex = getNumericTabIndex(el);
|
|
4640
|
+
const tabindex = getNumericTabIndex$1(el);
|
|
4630
4641
|
return tabindex !== null && tabindex > 0;
|
|
4631
4642
|
});
|
|
4632
4643
|
|
|
4633
4644
|
// Sort these elements by their tabindex value
|
|
4634
4645
|
elementsWithTabindex.sort((a, b) => {
|
|
4635
|
-
const aIndex = getNumericTabIndex(a) ?? 0;
|
|
4636
|
-
const bIndex = getNumericTabIndex(b) ?? 0;
|
|
4646
|
+
const aIndex = getNumericTabIndex$1(a) ?? 0;
|
|
4647
|
+
const bIndex = getNumericTabIndex$1(b) ?? 0;
|
|
4637
4648
|
return aIndex - bIndex;
|
|
4638
4649
|
});
|
|
4639
4650
|
|
|
4640
4651
|
// Elements without tabindex (preserving their original order)
|
|
4641
4652
|
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
4642
|
-
const tabindex = getNumericTabIndex(el);
|
|
4653
|
+
const tabindex = getNumericTabIndex$1(el);
|
|
4643
4654
|
|
|
4644
4655
|
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
4645
4656
|
return tabindex === null || tabindex === 0;
|
|
@@ -5434,7 +5445,7 @@ class AuroHelpText extends i$2 {
|
|
|
5434
5445
|
}
|
|
5435
5446
|
}
|
|
5436
5447
|
|
|
5437
|
-
var formkitVersion = '
|
|
5448
|
+
var formkitVersion = '202609021726';
|
|
5438
5449
|
|
|
5439
5450
|
/**
|
|
5440
5451
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -5734,7 +5745,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5734
5745
|
*/
|
|
5735
5746
|
focus() {
|
|
5736
5747
|
if (this.isPopoverVisible && this.bibContent) {
|
|
5737
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
5748
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
5738
5749
|
if (focusables.length > 0) {
|
|
5739
5750
|
focusables[0].focus();
|
|
5740
5751
|
}
|
|
@@ -5766,7 +5777,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5766
5777
|
// wrappers like <div> containing a <button>). If none found, try
|
|
5767
5778
|
// focusing the element directly (works for custom elements like
|
|
5768
5779
|
// auro-input that have delegatesFocus or a custom focus() method).
|
|
5769
|
-
const descendants = getFocusableElements(el);
|
|
5780
|
+
const descendants = getFocusableElements$1(el);
|
|
5770
5781
|
if (descendants.length > 0) {
|
|
5771
5782
|
descendants[0].focus();
|
|
5772
5783
|
return;
|
|
@@ -5778,7 +5789,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5778
5789
|
}
|
|
5779
5790
|
}
|
|
5780
5791
|
// Fallback: try DOM children (non-slotted content)
|
|
5781
|
-
const focusables = getFocusableElements(this.trigger);
|
|
5792
|
+
const focusables = getFocusableElements$1(this.trigger);
|
|
5782
5793
|
if (focusables.length > 0) {
|
|
5783
5794
|
focusables[0].focus();
|
|
5784
5795
|
}
|
|
@@ -6457,7 +6468,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6457
6468
|
}
|
|
6458
6469
|
|
|
6459
6470
|
// Collect focusable elements from the bib content.
|
|
6460
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
6471
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
6461
6472
|
|
|
6462
6473
|
// Fallback: try from slotted content directly
|
|
6463
6474
|
if (!focusables.length) {
|
|
@@ -6466,7 +6477,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6466
6477
|
|
|
6467
6478
|
for (const node of assignedNodes) {
|
|
6468
6479
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
6469
|
-
focusables.push(...getFocusableElements(node));
|
|
6480
|
+
focusables.push(...getFocusableElements$1(node));
|
|
6470
6481
|
}
|
|
6471
6482
|
}
|
|
6472
6483
|
}
|
|
@@ -6526,7 +6537,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6526
6537
|
|
|
6527
6538
|
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
6528
6539
|
requestAnimationFrame(() => {
|
|
6529
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
6540
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
6530
6541
|
if (focusables.length) {
|
|
6531
6542
|
focusables[0].focus();
|
|
6532
6543
|
}
|
|
@@ -6539,7 +6550,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6539
6550
|
// popover asynchronously — a synchronous focus() would target
|
|
6540
6551
|
// zero-dimension elements and be silently ignored.
|
|
6541
6552
|
requestAnimationFrame(() => {
|
|
6542
|
-
const focusables = getFocusableElements(this.bibContent);
|
|
6553
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
6543
6554
|
if (focusables.length) {
|
|
6544
6555
|
focusables[0].focus();
|
|
6545
6556
|
}
|
|
@@ -6757,7 +6768,7 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
6757
6768
|
if (triggerContentNodes) {
|
|
6758
6769
|
|
|
6759
6770
|
// See if any of them are focusable elements
|
|
6760
|
-
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
|
|
6771
|
+
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$1(node).length > 0);
|
|
6761
6772
|
|
|
6762
6773
|
// If any of them are focusable elements
|
|
6763
6774
|
if (this.triggerContentFocusable) {
|
|
@@ -7519,9 +7530,241 @@ class AuroElement extends i$2 {
|
|
|
7519
7530
|
}
|
|
7520
7531
|
}
|
|
7521
7532
|
|
|
7533
|
+
// Selectors for focusable elements
|
|
7534
|
+
const FOCUSABLE_SELECTORS = [
|
|
7535
|
+
"a[href]",
|
|
7536
|
+
"button:not([disabled])",
|
|
7537
|
+
"textarea:not([disabled])",
|
|
7538
|
+
"input:not([disabled])",
|
|
7539
|
+
"select:not([disabled])",
|
|
7540
|
+
'[role="tab"]:not([disabled])',
|
|
7541
|
+
'[role="link"]:not([disabled])',
|
|
7542
|
+
'[role="button"]:not([disabled])',
|
|
7543
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
7544
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
7545
|
+
];
|
|
7546
|
+
|
|
7547
|
+
// List of custom components that are known to be focusable
|
|
7548
|
+
const FOCUSABLE_COMPONENTS = [
|
|
7549
|
+
"auro-checkbox",
|
|
7550
|
+
"auro-radio",
|
|
7551
|
+
"auro-dropdown",
|
|
7552
|
+
"auro-button",
|
|
7553
|
+
"auro-combobox",
|
|
7554
|
+
"auro-input",
|
|
7555
|
+
"auro-counter",
|
|
7556
|
+
// 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
|
|
7557
|
+
"auro-select",
|
|
7558
|
+
"auro-datepicker",
|
|
7559
|
+
"auro-hyperlink",
|
|
7560
|
+
"auro-accordion",
|
|
7561
|
+
];
|
|
7562
|
+
|
|
7563
|
+
/**
|
|
7564
|
+
* Determines if a given element is a custom focusable component.
|
|
7565
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
7566
|
+
*
|
|
7567
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
7568
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
7569
|
+
*/
|
|
7570
|
+
function isFocusableComponent(element) {
|
|
7571
|
+
const componentName = element.tagName.toLowerCase();
|
|
7572
|
+
|
|
7573
|
+
// Guard Clause: Element is a focusable component
|
|
7574
|
+
if (
|
|
7575
|
+
!FOCUSABLE_COMPONENTS.some(
|
|
7576
|
+
(name) => element.hasAttribute(name) || componentName === name,
|
|
7577
|
+
)
|
|
7578
|
+
)
|
|
7579
|
+
return false;
|
|
7580
|
+
|
|
7581
|
+
// Guard Clause: Element is not disabled
|
|
7582
|
+
if (element.hasAttribute("disabled")) return false;
|
|
7583
|
+
|
|
7584
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
7585
|
+
if (componentName.match("hyperlink") && !element.hasAttribute("href"))
|
|
7586
|
+
return false;
|
|
7587
|
+
|
|
7588
|
+
// If all guard clauses pass, the element is a focusable component
|
|
7589
|
+
return true;
|
|
7590
|
+
}
|
|
7591
|
+
|
|
7592
|
+
/**
|
|
7593
|
+
* Safely get a numeric tabindex for an element.
|
|
7594
|
+
* Returns a number if the tabindex is a valid integer, otherwise null.
|
|
7595
|
+
*
|
|
7596
|
+
* @param {HTMLElement} element The element whose tabindex to read.
|
|
7597
|
+
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
7598
|
+
*/
|
|
7599
|
+
function getNumericTabIndex(element) {
|
|
7600
|
+
const raw = element.getAttribute("tabindex");
|
|
7601
|
+
if (raw == null) return null;
|
|
7602
|
+
|
|
7603
|
+
const value = Number.parseInt(raw, 10);
|
|
7604
|
+
return Number.isNaN(value) ? null : value;
|
|
7605
|
+
}
|
|
7606
|
+
|
|
7607
|
+
/**
|
|
7608
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
7609
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
7610
|
+
* Also sorts elements with tabindex first, preserving their order.
|
|
7611
|
+
*
|
|
7612
|
+
* @param {HTMLElement} container The container to search within
|
|
7613
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
7614
|
+
*/
|
|
7615
|
+
function getFocusableElements(container) {
|
|
7616
|
+
// Get elements in DOM order by walking the tree
|
|
7617
|
+
const orderedFocusableElements = [];
|
|
7618
|
+
|
|
7619
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
7620
|
+
const collectFocusableElements = (root) => {
|
|
7621
|
+
// Check if current element is focusable
|
|
7622
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
7623
|
+
// Check if this is a custom component that is focusable
|
|
7624
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
7625
|
+
|
|
7626
|
+
if (isComponentFocusable) {
|
|
7627
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
7628
|
+
orderedFocusableElements.push(root);
|
|
7629
|
+
return; // Skip traversing inside this component
|
|
7630
|
+
}
|
|
7631
|
+
|
|
7632
|
+
// Check if the element itself matches any selector
|
|
7633
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
7634
|
+
if (root.matches?.(selector)) {
|
|
7635
|
+
orderedFocusableElements.push(root);
|
|
7636
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
7637
|
+
}
|
|
7638
|
+
}
|
|
7639
|
+
|
|
7640
|
+
// Process shadow DOM only for non-Auro components
|
|
7641
|
+
if (root.shadowRoot) {
|
|
7642
|
+
// Process shadow DOM children in order
|
|
7643
|
+
if (root.shadowRoot.children) {
|
|
7644
|
+
Array.from(root.shadowRoot.children).forEach((child) => {
|
|
7645
|
+
collectFocusableElements(child);
|
|
7646
|
+
});
|
|
7647
|
+
}
|
|
7648
|
+
}
|
|
7649
|
+
|
|
7650
|
+
// Process slots and their assigned nodes in order
|
|
7651
|
+
if (root.tagName === "SLOT") {
|
|
7652
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
7653
|
+
for (const node of assignedNodes) {
|
|
7654
|
+
collectFocusableElements(node);
|
|
7655
|
+
}
|
|
7656
|
+
} else {
|
|
7657
|
+
// Process light DOM children in order
|
|
7658
|
+
if (root.children) {
|
|
7659
|
+
Array.from(root.children).forEach((child) => {
|
|
7660
|
+
collectFocusableElements(child);
|
|
7661
|
+
});
|
|
7662
|
+
}
|
|
7663
|
+
}
|
|
7664
|
+
}
|
|
7665
|
+
};
|
|
7666
|
+
|
|
7667
|
+
// Start the traversal from the container
|
|
7668
|
+
collectFocusableElements(container);
|
|
7669
|
+
|
|
7670
|
+
// Remove duplicates that might have been collected through different paths
|
|
7671
|
+
// while preserving order
|
|
7672
|
+
const uniqueElements = [];
|
|
7673
|
+
const seen = new Set();
|
|
7674
|
+
|
|
7675
|
+
for (const element of orderedFocusableElements) {
|
|
7676
|
+
if (!seen.has(element)) {
|
|
7677
|
+
seen.add(element);
|
|
7678
|
+
uniqueElements.push(element);
|
|
7679
|
+
}
|
|
7680
|
+
}
|
|
7681
|
+
|
|
7682
|
+
// Move tab-indexed elements to the front while preserving their order
|
|
7683
|
+
// This ensures that elements with tabindex are prioritized in the focus order
|
|
7684
|
+
|
|
7685
|
+
// First extract elements with valid positive tabindex
|
|
7686
|
+
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
7687
|
+
const tabindex = getNumericTabIndex(el);
|
|
7688
|
+
return tabindex !== null && tabindex > 0;
|
|
7689
|
+
});
|
|
7690
|
+
|
|
7691
|
+
// Sort these elements by their tabindex value
|
|
7692
|
+
elementsWithTabindex.sort((a, b) => {
|
|
7693
|
+
const aIndex = getNumericTabIndex(a) ?? 0;
|
|
7694
|
+
const bIndex = getNumericTabIndex(b) ?? 0;
|
|
7695
|
+
return aIndex - bIndex;
|
|
7696
|
+
});
|
|
7697
|
+
|
|
7698
|
+
// Elements without tabindex (preserving their original order)
|
|
7699
|
+
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
7700
|
+
const tabindex = getNumericTabIndex(el);
|
|
7701
|
+
|
|
7702
|
+
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
7703
|
+
return tabindex === null || tabindex === 0;
|
|
7704
|
+
});
|
|
7705
|
+
|
|
7706
|
+
// Combine both arrays with tabindex elements first
|
|
7707
|
+
const tabIndexedUniqueElements = [
|
|
7708
|
+
...elementsWithTabindex,
|
|
7709
|
+
...elementsWithoutTabindex,
|
|
7710
|
+
];
|
|
7711
|
+
|
|
7712
|
+
return tabIndexedUniqueElements;
|
|
7713
|
+
}
|
|
7714
|
+
|
|
7522
7715
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
7523
7716
|
// See LICENSE in the project root for license information.
|
|
7524
7717
|
|
|
7718
|
+
|
|
7719
|
+
/**
|
|
7720
|
+
* Whether `el` is currently visible enough to receive focus. Prefers the
|
|
7721
|
+
* browser's `checkVisibility()`; otherwise combines a display/visibility check
|
|
7722
|
+
* with an ancestor-hidden probe that keeps position:fixed elements visible.
|
|
7723
|
+
* @param {Element} el - The element to test.
|
|
7724
|
+
* @returns {boolean}
|
|
7725
|
+
*/
|
|
7726
|
+
function isVisibleForFocus(el) {
|
|
7727
|
+
if (typeof el.checkVisibility === 'function') {
|
|
7728
|
+
return el.checkVisibility();
|
|
7729
|
+
}
|
|
7730
|
+
const style = el.ownerDocument.defaultView.getComputedStyle(el);
|
|
7731
|
+
if (style.display === 'none' || style.visibility === 'hidden') {
|
|
7732
|
+
return false;
|
|
7733
|
+
}
|
|
7734
|
+
return el.offsetParent !== null || style.position === 'fixed';
|
|
7735
|
+
}
|
|
7736
|
+
|
|
7737
|
+
/**
|
|
7738
|
+
* Return the tab stop that comes before the counter-group in page tab order,
|
|
7739
|
+
* skipping any hidden entries the walker doesn't filter itself. The group host
|
|
7740
|
+
* itself is not a tab stop; its focusables (the internal dropdown and the
|
|
7741
|
+
* counters) are, so anchor the search on the group's earliest focusable.
|
|
7742
|
+
* @param {Element} component - The auro-counter-group host element.
|
|
7743
|
+
* @returns {Element|null}
|
|
7744
|
+
*/
|
|
7745
|
+
function getPreviousTabStop(component) {
|
|
7746
|
+
const tabStops = getFocusableElements(component.ownerDocument.body);
|
|
7747
|
+
const counters = component.counters || [];
|
|
7748
|
+
const owned = [
|
|
7749
|
+
component,
|
|
7750
|
+
component.dropdown,
|
|
7751
|
+
...counters
|
|
7752
|
+
].filter(Boolean);
|
|
7753
|
+
let groupStart = tabStops.length;
|
|
7754
|
+
owned.forEach((node) => {
|
|
7755
|
+
const index = tabStops.indexOf(node);
|
|
7756
|
+
if (index >= 0 && index < groupStart) {
|
|
7757
|
+
groupStart = index;
|
|
7758
|
+
}
|
|
7759
|
+
});
|
|
7760
|
+
for (let index = groupStart - 1; index >= 0; index -= 1) {
|
|
7761
|
+
if (isVisibleForFocus(tabStops[index])) {
|
|
7762
|
+
return tabStops[index];
|
|
7763
|
+
}
|
|
7764
|
+
}
|
|
7765
|
+
return null;
|
|
7766
|
+
}
|
|
7767
|
+
|
|
7525
7768
|
const counterGroupKeyboardStrategy = {
|
|
7526
7769
|
Escape(component, evt) {
|
|
7527
7770
|
if (!component.dropdown || !component.dropdown.isPopoverVisible) {
|
|
@@ -7535,6 +7778,48 @@ const counterGroupKeyboardStrategy = {
|
|
|
7535
7778
|
|
|
7536
7779
|
component.dropdown.hide();
|
|
7537
7780
|
},
|
|
7781
|
+
|
|
7782
|
+
Tab(component, evt, ctx) {
|
|
7783
|
+
// Forward Tab already exits past the bib content and the focusout handler
|
|
7784
|
+
// closes the bib. Fullscreen relies on the dialog's native focus trapping.
|
|
7785
|
+
if (!ctx.isExpanded || ctx.isModal || !evt.shiftKey) {
|
|
7786
|
+
return;
|
|
7787
|
+
}
|
|
7788
|
+
|
|
7789
|
+
// The trigger precedes the bib content in the flattened tab order, so a
|
|
7790
|
+
// native Shift+Tab off the first counter lands back on the trigger and
|
|
7791
|
+
// leaves the bib open. Only intercept when focus is on the first focusable
|
|
7792
|
+
// in the bib; otherwise let the browser move to the previous counter.
|
|
7793
|
+
// `composedPath()` reports the real event origin through every shadow
|
|
7794
|
+
// boundary, unlike `document.activeElement`, which retargets to the first
|
|
7795
|
+
// slotted counter and cannot tell the counters apart.
|
|
7796
|
+
const focusables = getFocusableElements(component.dropdown.bibContent);
|
|
7797
|
+
if (!focusables.length) {
|
|
7798
|
+
return;
|
|
7799
|
+
}
|
|
7800
|
+
|
|
7801
|
+
const path = evt.composedPath();
|
|
7802
|
+
const activeIndex = focusables.findIndex((el) => path.includes(el));
|
|
7803
|
+
if (activeIndex !== 0) {
|
|
7804
|
+
return;
|
|
7805
|
+
}
|
|
7806
|
+
|
|
7807
|
+
const previousTabStop = getPreviousTabStop(component);
|
|
7808
|
+
|
|
7809
|
+
// Always suppress the native Shift+Tab. Otherwise it fires against the bib
|
|
7810
|
+
// as it is torn down and lands focus on the trigger (which precedes the
|
|
7811
|
+
// first counter), re-opening the exact loop this handler prevents. When
|
|
7812
|
+
// nothing precedes the group, focus falls to the body instead of the
|
|
7813
|
+
// trigger, which reads as exiting the group backward.
|
|
7814
|
+
evt.preventDefault();
|
|
7815
|
+
component.hideBib();
|
|
7816
|
+
|
|
7817
|
+
if (!previousTabStop) {
|
|
7818
|
+
return;
|
|
7819
|
+
}
|
|
7820
|
+
|
|
7821
|
+
doubleRaf(() => previousTabStop.focus());
|
|
7822
|
+
},
|
|
7538
7823
|
};
|
|
7539
7824
|
|
|
7540
7825
|
/* 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,
|
|
@@ -7610,16 +7895,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
7610
7895
|
/** @private */
|
|
7611
7896
|
this.updateValidity = this.updateValidity.bind(this);
|
|
7612
7897
|
|
|
7613
|
-
/**
|
|
7614
|
-
* Whether the most recent pointerdown began inside this group's composed tree.
|
|
7615
|
-
* Used to keep the dropdown open when a counter button disables itself on click.
|
|
7616
|
-
* @private
|
|
7617
|
-
*/
|
|
7618
|
-
this.pointerdownInsideGroup = false;
|
|
7619
|
-
|
|
7620
|
-
/** @private */
|
|
7621
|
-
this.trackPointerdown = this.trackPointerdown.bind(this);
|
|
7622
|
-
|
|
7623
7898
|
/**
|
|
7624
7899
|
* Generate unique names for dependency components.
|
|
7625
7900
|
* @private
|
|
@@ -8005,35 +8280,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8005
8280
|
});
|
|
8006
8281
|
}
|
|
8007
8282
|
|
|
8008
|
-
/**
|
|
8009
|
-
* Records whether a pointerdown originated inside this group's composed tree.
|
|
8010
|
-
* @param {PointerEvent} event - The pointerdown event.
|
|
8011
|
-
* @private
|
|
8012
|
-
*/
|
|
8013
|
-
trackPointerdown(event) {
|
|
8014
|
-
this.pointerdownInsideGroup = event.composedPath().includes(this);
|
|
8015
|
-
}
|
|
8016
|
-
|
|
8017
|
-
connectedCallback() {
|
|
8018
|
-
super.connectedCallback();
|
|
8019
|
-
|
|
8020
|
-
// firstUpdated performs the initial pointerdown registration, but it runs
|
|
8021
|
-
// only once per instance and disconnectedCallback removes the listener. On a
|
|
8022
|
-
// later reconnect (SPA route change, keyed remount) firstUpdated does not run
|
|
8023
|
-
// again, so re-add the document-level listener here. hasUpdated is false
|
|
8024
|
-
// during the initial connect — firstUpdated owns that case — and true on any
|
|
8025
|
-
// reconnect. remove-before-add keeps it idempotent. (AB#1634231)
|
|
8026
|
-
if (this.hasUpdated && this.isDropdown) {
|
|
8027
|
-
document.removeEventListener('pointerdown', this.trackPointerdown, true);
|
|
8028
|
-
document.addEventListener('pointerdown', this.trackPointerdown, true);
|
|
8029
|
-
}
|
|
8030
|
-
}
|
|
8031
|
-
|
|
8032
|
-
disconnectedCallback() {
|
|
8033
|
-
super.disconnectedCallback();
|
|
8034
|
-
document.removeEventListener('pointerdown', this.trackPointerdown, true);
|
|
8035
|
-
}
|
|
8036
|
-
|
|
8037
8283
|
/**
|
|
8038
8284
|
* Hides the dropdown bib if its open.
|
|
8039
8285
|
* @returns {void}
|
|
@@ -8201,6 +8447,19 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8201
8447
|
this.validation.validate(this, force);
|
|
8202
8448
|
}
|
|
8203
8449
|
|
|
8450
|
+
/**
|
|
8451
|
+
* Resets the counter group to its initial state by resetting each child counter and clearing validity.
|
|
8452
|
+
* Each child reset dispatches an `input` event, which triggers `updateValue()` to recompute `value`/`total`.
|
|
8453
|
+
* @returns {void}
|
|
8454
|
+
*/
|
|
8455
|
+
reset() {
|
|
8456
|
+
if (this.counters) {
|
|
8457
|
+
this.counters.forEach((counter) => counter.reset());
|
|
8458
|
+
}
|
|
8459
|
+
|
|
8460
|
+
this.validation.reset(this);
|
|
8461
|
+
}
|
|
8462
|
+
|
|
8204
8463
|
updated(changedProperties) {
|
|
8205
8464
|
if (changedProperties.has("value")) {
|
|
8206
8465
|
this.validate();
|
|
@@ -8231,12 +8490,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8231
8490
|
if (this.isDropdown) {
|
|
8232
8491
|
applyKeyboardStrategy$1(this, counterGroupKeyboardStrategy);
|
|
8233
8492
|
|
|
8234
|
-
// Track where the most recent pointer interaction began so the focusout
|
|
8235
|
-
// handler below can tell a counter-button click apart from an outside
|
|
8236
|
-
// click. Capture phase + composedPath so clicks inside the bib's nested
|
|
8237
|
-
// shadow roots still resolve to this group. (AB#1634231)
|
|
8238
|
-
document.addEventListener('pointerdown', this.trackPointerdown, true);
|
|
8239
|
-
|
|
8240
8493
|
// noHideOnThisFocusLoss=true on the dropdown prevents handleFocusLoss from
|
|
8241
8494
|
// closing the bib when focus moves out via Tab. Close explicitly via focusout:
|
|
8242
8495
|
// if relatedTarget is outside the counter-group's light DOM, focus has left.
|
|
@@ -8250,29 +8503,6 @@ class AuroCounterGroup extends AuroElement {
|
|
|
8250
8503
|
return;
|
|
8251
8504
|
}
|
|
8252
8505
|
|
|
8253
|
-
// A null relatedTarget means focus was dropped without landing on a
|
|
8254
|
-
// specific element. This fires when a counter's +/- button becomes
|
|
8255
|
-
// disabled at an extreme immediately after being clicked: the browser
|
|
8256
|
-
// blurs the now-disabled button, closing the bib as an unwanted side
|
|
8257
|
-
// effect of using the counters. If that blur was triggered by a pointer
|
|
8258
|
-
// interaction that began inside the group, keep the bib open. A genuine
|
|
8259
|
-
// outside click also yields a null relatedTarget, but its pointerdown
|
|
8260
|
-
// originated outside the group, so we still close. (AB#1634231)
|
|
8261
|
-
if (!event.relatedTarget) {
|
|
8262
|
-
// Consume the flag: it describes the interaction that just ended, not
|
|
8263
|
-
// a lasting state. Resetting here prevents a later non-pointer focus
|
|
8264
|
-
// loss (a programmatic blur, an a11y focus trap) with no intervening
|
|
8265
|
-
// pointerdown from reading a stale "inside" value and wrongly keeping
|
|
8266
|
-
// the bib open. (#1600)
|
|
8267
|
-
const pointerdownStartedInside = this.pointerdownInsideGroup;
|
|
8268
|
-
this.pointerdownInsideGroup = false;
|
|
8269
|
-
if (pointerdownStartedInside) {
|
|
8270
|
-
return;
|
|
8271
|
-
}
|
|
8272
|
-
this.hideBib();
|
|
8273
|
-
return;
|
|
8274
|
-
}
|
|
8275
|
-
|
|
8276
8506
|
// Focus moved to a known element outside the group (e.g. Tab to the next field).
|
|
8277
8507
|
this.hideBib();
|
|
8278
8508
|
});
|