@aurodesignsystem-dev/auro-formkit 0.0.0-pr1346.13 → 0.0.0-pr1346.14

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.
Files changed (37) hide show
  1. package/components/checkbox/demo/api.min.js +1 -1
  2. package/components/checkbox/demo/index.min.js +1 -1
  3. package/components/checkbox/dist/index.js +1 -1
  4. package/components/checkbox/dist/registered.js +1 -1
  5. package/components/combobox/demo/api.min.js +59 -42
  6. package/components/combobox/demo/index.min.js +59 -42
  7. package/components/combobox/dist/index.js +59 -42
  8. package/components/combobox/dist/registered.js +59 -42
  9. package/components/counter/demo/api.min.js +58 -41
  10. package/components/counter/demo/index.min.js +58 -41
  11. package/components/counter/dist/index.js +58 -41
  12. package/components/counter/dist/registered.js +58 -41
  13. package/components/datepicker/demo/api.min.js +59 -42
  14. package/components/datepicker/demo/index.min.js +59 -42
  15. package/components/datepicker/dist/index.js +59 -42
  16. package/components/datepicker/dist/registered.js +59 -42
  17. package/components/dropdown/demo/api.min.js +57 -40
  18. package/components/dropdown/demo/index.min.js +57 -40
  19. package/components/dropdown/dist/auro-dropdownBib.d.ts +42 -0
  20. package/components/dropdown/dist/index.js +57 -40
  21. package/components/dropdown/dist/registered.js +57 -40
  22. package/components/form/demo/api.min.js +237 -169
  23. package/components/form/demo/index.min.js +237 -169
  24. package/components/input/demo/api.min.js +1 -1
  25. package/components/input/demo/index.min.js +1 -1
  26. package/components/input/dist/index.js +1 -1
  27. package/components/input/dist/registered.js +1 -1
  28. package/components/radio/demo/api.min.js +1 -1
  29. package/components/radio/demo/index.min.js +1 -1
  30. package/components/radio/dist/index.js +1 -1
  31. package/components/radio/dist/registered.js +1 -1
  32. package/components/select/demo/api.min.js +58 -41
  33. package/components/select/demo/index.min.js +58 -41
  34. package/components/select/dist/index.js +58 -41
  35. package/components/select/dist/registered.js +58 -41
  36. package/custom-elements.json +1418 -1390
  37. package/package.json +1 -1
@@ -3156,45 +3156,70 @@ class AuroDropdownBib extends i {
3156
3156
  firstUpdated(changedProperties) {
3157
3157
  super.firstUpdated(changedProperties);
3158
3158
 
3159
- // Handle ESC key via dialog's cancel event
3160
3159
  const dialog = this.shadowRoot.querySelector('dialog');
3160
+ this._setupCancelHandler(dialog);
3161
+ this._setupKeyboardBridge(dialog);
3162
+
3163
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3164
+ bubbles: true,
3165
+ composed: true,
3166
+ detail: {
3167
+ element: this
3168
+ }
3169
+ }));
3170
+ }
3171
+
3172
+ /**
3173
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
3174
+ * an `auro-bib-cancel` custom event so parent components can close.
3175
+ * @param {HTMLDialogElement} dialog
3176
+ * @private
3177
+ */
3178
+ _setupCancelHandler(dialog) {
3161
3179
  dialog.addEventListener('cancel', (event) => {
3162
- // Let parent handle closing
3163
3180
  event.preventDefault();
3164
3181
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
3165
3182
  bubbles: true,
3166
3183
  composed: true
3167
3184
  }));
3168
3185
  });
3186
+ }
3169
3187
 
3170
- // showModal() creates a closed focus scope — keyboard events inside
3171
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
3172
- // keydown handlers in the parent shadow DOM. This handler bridges
3173
- // that gap by re-dispatching navigation keys so they cross the
3174
- // shadow boundary and reach the menu navigation logic in the parent
3175
- // component.
3176
- //
3177
- // The trade-off: intercepting these keys means native keyboard
3178
- // behaviors that would normally "just work" must be manually
3179
- // re-implemented here:
3180
- //
3181
- // - Enter on buttons: Custom elements (auro-button) don't get the
3182
- // native Enter→click that <button> provides, so we call .click()
3183
- // directly when Enter is pressed on a button-like element.
3184
- //
3185
- // - Tab: Intercepted and re-dispatched so parent components
3186
- // (select/combobox) can select the active option and close the
3187
- // dialog. The <dialog> provides containment and isolation
3188
- // (inert background, VoiceOver focus trapping, top layer), while
3189
- // the content inside is a role="listbox" navigated via
3190
- // aria-activedescendant (options are not focusable). Tab keyboard
3191
- // behavior follows listbox conventions (select + close) because
3192
- // the dialog's native Tab trap only cycles between the close
3193
- // button and browser chrome.
3194
- //
3195
- // - Escape: The native <dialog> fires a `cancel` event on ESC
3196
- // (handled above), so the re-dispatched Escape is a secondary
3197
- // path for parent components that also listen for Escape keydown.
3188
+ /**
3189
+ * showModal() creates a closed focus scope keyboard events inside
3190
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
3191
+ * keydown handlers in the parent shadow DOM. This handler bridges
3192
+ * that gap by re-dispatching navigation keys so they cross the
3193
+ * shadow boundary and reach the menu navigation logic in the parent
3194
+ * component.
3195
+ *
3196
+ * The trade-off: intercepting these keys means native keyboard
3197
+ * behaviors that would normally "just work" must be manually
3198
+ * re-implemented here:
3199
+ *
3200
+ * - Enter on buttons: Custom elements (auro-button) don't get the
3201
+ * native Enter→click that <button> provides, so we call .click()
3202
+ * directly when Enter is pressed on a button-like element.
3203
+ *
3204
+ * - Tab: Intercepted and re-dispatched so parent components
3205
+ * (select/combobox) can select the active option and close the
3206
+ * dialog. The <dialog> provides containment and isolation
3207
+ * (inert background, VoiceOver focus trapping, top layer), while
3208
+ * the content inside is a role="listbox" navigated via
3209
+ * aria-activedescendant (options are not focusable). Tab keyboard
3210
+ * behavior follows listbox conventions (select + close) because
3211
+ * the dialog's native Tab trap only cycles between the close
3212
+ * button and browser chrome.
3213
+ *
3214
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
3215
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
3216
+ * is a secondary path for parent components that also listen for
3217
+ * Escape keydown.
3218
+ *
3219
+ * @param {HTMLDialogElement} dialog
3220
+ * @private
3221
+ */
3222
+ _setupKeyboardBridge(dialog) {
3198
3223
  const navKeys = new Set([
3199
3224
  'ArrowUp',
3200
3225
  'ArrowDown',
@@ -3202,6 +3227,7 @@ class AuroDropdownBib extends i {
3202
3227
  'Escape',
3203
3228
  'Tab'
3204
3229
  ]);
3230
+
3205
3231
  dialog.addEventListener('keydown', (event) => {
3206
3232
  if (!navKeys.has(event.key)) {
3207
3233
  return;
@@ -3236,15 +3262,6 @@ class AuroDropdownBib extends i {
3236
3262
  });
3237
3263
  this.dispatchEvent(newEvent);
3238
3264
  });
3239
-
3240
- // Dispatch a custom event when the component is connected
3241
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3242
- bubbles: true,
3243
- composed: true,
3244
- detail: {
3245
- element: this
3246
- }
3247
- }));
3248
3265
  }
3249
3266
 
3250
3267
  /**
@@ -3596,7 +3613,7 @@ class AuroHelpText extends i {
3596
3613
  }
3597
3614
  }
3598
3615
 
3599
- var formkitVersion = '202603091734';
3616
+ var formkitVersion = '202603091748';
3600
3617
 
3601
3618
  class AuroElement extends i {
3602
3619
  static get properties() {
@@ -73,6 +73,48 @@ export class AuroDropdownBib extends LitElement {
73
73
  updated(changedProperties: any): void;
74
74
  bibTemplate: any;
75
75
  firstUpdated(changedProperties: any): void;
76
+ /**
77
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
78
+ * an `auro-bib-cancel` custom event so parent components can close.
79
+ * @param {HTMLDialogElement} dialog
80
+ * @private
81
+ */
82
+ private _setupCancelHandler;
83
+ /**
84
+ * showModal() creates a closed focus scope — keyboard events inside
85
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
86
+ * keydown handlers in the parent shadow DOM. This handler bridges
87
+ * that gap by re-dispatching navigation keys so they cross the
88
+ * shadow boundary and reach the menu navigation logic in the parent
89
+ * component.
90
+ *
91
+ * The trade-off: intercepting these keys means native keyboard
92
+ * behaviors that would normally "just work" must be manually
93
+ * re-implemented here:
94
+ *
95
+ * - Enter on buttons: Custom elements (auro-button) don't get the
96
+ * native Enter→click that <button> provides, so we call .click()
97
+ * directly when Enter is pressed on a button-like element.
98
+ *
99
+ * - Tab: Intercepted and re-dispatched so parent components
100
+ * (select/combobox) can select the active option and close the
101
+ * dialog. The <dialog> provides containment and isolation
102
+ * (inert background, VoiceOver focus trapping, top layer), while
103
+ * the content inside is a role="listbox" navigated via
104
+ * aria-activedescendant (options are not focusable). Tab keyboard
105
+ * behavior follows listbox conventions (select + close) because
106
+ * the dialog's native Tab trap only cycles between the close
107
+ * button and browser chrome.
108
+ *
109
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
110
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
111
+ * is a secondary path for parent components that also listen for
112
+ * Escape keydown.
113
+ *
114
+ * @param {HTMLDialogElement} dialog
115
+ * @private
116
+ */
117
+ private _setupKeyboardBridge;
76
118
  /**
77
119
  * Blocks touch-driven page scroll while a fullscreen modal dialog is open.
78
120
  *
@@ -3065,45 +3065,70 @@ class AuroDropdownBib extends LitElement {
3065
3065
  firstUpdated(changedProperties) {
3066
3066
  super.firstUpdated(changedProperties);
3067
3067
 
3068
- // Handle ESC key via dialog's cancel event
3069
3068
  const dialog = this.shadowRoot.querySelector('dialog');
3069
+ this._setupCancelHandler(dialog);
3070
+ this._setupKeyboardBridge(dialog);
3071
+
3072
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3073
+ bubbles: true,
3074
+ composed: true,
3075
+ detail: {
3076
+ element: this
3077
+ }
3078
+ }));
3079
+ }
3080
+
3081
+ /**
3082
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
3083
+ * an `auro-bib-cancel` custom event so parent components can close.
3084
+ * @param {HTMLDialogElement} dialog
3085
+ * @private
3086
+ */
3087
+ _setupCancelHandler(dialog) {
3070
3088
  dialog.addEventListener('cancel', (event) => {
3071
- // Let parent handle closing
3072
3089
  event.preventDefault();
3073
3090
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
3074
3091
  bubbles: true,
3075
3092
  composed: true
3076
3093
  }));
3077
3094
  });
3095
+ }
3078
3096
 
3079
- // showModal() creates a closed focus scope — keyboard events inside
3080
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
3081
- // keydown handlers in the parent shadow DOM. This handler bridges
3082
- // that gap by re-dispatching navigation keys so they cross the
3083
- // shadow boundary and reach the menu navigation logic in the parent
3084
- // component.
3085
- //
3086
- // The trade-off: intercepting these keys means native keyboard
3087
- // behaviors that would normally "just work" must be manually
3088
- // re-implemented here:
3089
- //
3090
- // - Enter on buttons: Custom elements (auro-button) don't get the
3091
- // native Enter→click that <button> provides, so we call .click()
3092
- // directly when Enter is pressed on a button-like element.
3093
- //
3094
- // - Tab: Intercepted and re-dispatched so parent components
3095
- // (select/combobox) can select the active option and close the
3096
- // dialog. The <dialog> provides containment and isolation
3097
- // (inert background, VoiceOver focus trapping, top layer), while
3098
- // the content inside is a role="listbox" navigated via
3099
- // aria-activedescendant (options are not focusable). Tab keyboard
3100
- // behavior follows listbox conventions (select + close) because
3101
- // the dialog's native Tab trap only cycles between the close
3102
- // button and browser chrome.
3103
- //
3104
- // - Escape: The native <dialog> fires a `cancel` event on ESC
3105
- // (handled above), so the re-dispatched Escape is a secondary
3106
- // path for parent components that also listen for Escape keydown.
3097
+ /**
3098
+ * showModal() creates a closed focus scope keyboard events inside
3099
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
3100
+ * keydown handlers in the parent shadow DOM. This handler bridges
3101
+ * that gap by re-dispatching navigation keys so they cross the
3102
+ * shadow boundary and reach the menu navigation logic in the parent
3103
+ * component.
3104
+ *
3105
+ * The trade-off: intercepting these keys means native keyboard
3106
+ * behaviors that would normally "just work" must be manually
3107
+ * re-implemented here:
3108
+ *
3109
+ * - Enter on buttons: Custom elements (auro-button) don't get the
3110
+ * native Enter→click that <button> provides, so we call .click()
3111
+ * directly when Enter is pressed on a button-like element.
3112
+ *
3113
+ * - Tab: Intercepted and re-dispatched so parent components
3114
+ * (select/combobox) can select the active option and close the
3115
+ * dialog. The <dialog> provides containment and isolation
3116
+ * (inert background, VoiceOver focus trapping, top layer), while
3117
+ * the content inside is a role="listbox" navigated via
3118
+ * aria-activedescendant (options are not focusable). Tab keyboard
3119
+ * behavior follows listbox conventions (select + close) because
3120
+ * the dialog's native Tab trap only cycles between the close
3121
+ * button and browser chrome.
3122
+ *
3123
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
3124
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
3125
+ * is a secondary path for parent components that also listen for
3126
+ * Escape keydown.
3127
+ *
3128
+ * @param {HTMLDialogElement} dialog
3129
+ * @private
3130
+ */
3131
+ _setupKeyboardBridge(dialog) {
3107
3132
  const navKeys = new Set([
3108
3133
  'ArrowUp',
3109
3134
  'ArrowDown',
@@ -3111,6 +3136,7 @@ class AuroDropdownBib extends LitElement {
3111
3136
  'Escape',
3112
3137
  'Tab'
3113
3138
  ]);
3139
+
3114
3140
  dialog.addEventListener('keydown', (event) => {
3115
3141
  if (!navKeys.has(event.key)) {
3116
3142
  return;
@@ -3145,15 +3171,6 @@ class AuroDropdownBib extends LitElement {
3145
3171
  });
3146
3172
  this.dispatchEvent(newEvent);
3147
3173
  });
3148
-
3149
- // Dispatch a custom event when the component is connected
3150
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3151
- bubbles: true,
3152
- composed: true,
3153
- detail: {
3154
- element: this
3155
- }
3156
- }));
3157
3174
  }
3158
3175
 
3159
3176
  /**
@@ -3505,7 +3522,7 @@ class AuroHelpText extends LitElement {
3505
3522
  }
3506
3523
  }
3507
3524
 
3508
- var formkitVersion = '202603091734';
3525
+ var formkitVersion = '202603091748';
3509
3526
 
3510
3527
  class AuroElement extends LitElement {
3511
3528
  static get properties() {
@@ -3065,45 +3065,70 @@ class AuroDropdownBib extends LitElement {
3065
3065
  firstUpdated(changedProperties) {
3066
3066
  super.firstUpdated(changedProperties);
3067
3067
 
3068
- // Handle ESC key via dialog's cancel event
3069
3068
  const dialog = this.shadowRoot.querySelector('dialog');
3069
+ this._setupCancelHandler(dialog);
3070
+ this._setupKeyboardBridge(dialog);
3071
+
3072
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3073
+ bubbles: true,
3074
+ composed: true,
3075
+ detail: {
3076
+ element: this
3077
+ }
3078
+ }));
3079
+ }
3080
+
3081
+ /**
3082
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
3083
+ * an `auro-bib-cancel` custom event so parent components can close.
3084
+ * @param {HTMLDialogElement} dialog
3085
+ * @private
3086
+ */
3087
+ _setupCancelHandler(dialog) {
3070
3088
  dialog.addEventListener('cancel', (event) => {
3071
- // Let parent handle closing
3072
3089
  event.preventDefault();
3073
3090
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
3074
3091
  bubbles: true,
3075
3092
  composed: true
3076
3093
  }));
3077
3094
  });
3095
+ }
3078
3096
 
3079
- // showModal() creates a closed focus scope — keyboard events inside
3080
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
3081
- // keydown handlers in the parent shadow DOM. This handler bridges
3082
- // that gap by re-dispatching navigation keys so they cross the
3083
- // shadow boundary and reach the menu navigation logic in the parent
3084
- // component.
3085
- //
3086
- // The trade-off: intercepting these keys means native keyboard
3087
- // behaviors that would normally "just work" must be manually
3088
- // re-implemented here:
3089
- //
3090
- // - Enter on buttons: Custom elements (auro-button) don't get the
3091
- // native Enter→click that <button> provides, so we call .click()
3092
- // directly when Enter is pressed on a button-like element.
3093
- //
3094
- // - Tab: Intercepted and re-dispatched so parent components
3095
- // (select/combobox) can select the active option and close the
3096
- // dialog. The <dialog> provides containment and isolation
3097
- // (inert background, VoiceOver focus trapping, top layer), while
3098
- // the content inside is a role="listbox" navigated via
3099
- // aria-activedescendant (options are not focusable). Tab keyboard
3100
- // behavior follows listbox conventions (select + close) because
3101
- // the dialog's native Tab trap only cycles between the close
3102
- // button and browser chrome.
3103
- //
3104
- // - Escape: The native <dialog> fires a `cancel` event on ESC
3105
- // (handled above), so the re-dispatched Escape is a secondary
3106
- // path for parent components that also listen for Escape keydown.
3097
+ /**
3098
+ * showModal() creates a closed focus scope keyboard events inside
3099
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
3100
+ * keydown handlers in the parent shadow DOM. This handler bridges
3101
+ * that gap by re-dispatching navigation keys so they cross the
3102
+ * shadow boundary and reach the menu navigation logic in the parent
3103
+ * component.
3104
+ *
3105
+ * The trade-off: intercepting these keys means native keyboard
3106
+ * behaviors that would normally "just work" must be manually
3107
+ * re-implemented here:
3108
+ *
3109
+ * - Enter on buttons: Custom elements (auro-button) don't get the
3110
+ * native Enter→click that <button> provides, so we call .click()
3111
+ * directly when Enter is pressed on a button-like element.
3112
+ *
3113
+ * - Tab: Intercepted and re-dispatched so parent components
3114
+ * (select/combobox) can select the active option and close the
3115
+ * dialog. The <dialog> provides containment and isolation
3116
+ * (inert background, VoiceOver focus trapping, top layer), while
3117
+ * the content inside is a role="listbox" navigated via
3118
+ * aria-activedescendant (options are not focusable). Tab keyboard
3119
+ * behavior follows listbox conventions (select + close) because
3120
+ * the dialog's native Tab trap only cycles between the close
3121
+ * button and browser chrome.
3122
+ *
3123
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
3124
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
3125
+ * is a secondary path for parent components that also listen for
3126
+ * Escape keydown.
3127
+ *
3128
+ * @param {HTMLDialogElement} dialog
3129
+ * @private
3130
+ */
3131
+ _setupKeyboardBridge(dialog) {
3107
3132
  const navKeys = new Set([
3108
3133
  'ArrowUp',
3109
3134
  'ArrowDown',
@@ -3111,6 +3136,7 @@ class AuroDropdownBib extends LitElement {
3111
3136
  'Escape',
3112
3137
  'Tab'
3113
3138
  ]);
3139
+
3114
3140
  dialog.addEventListener('keydown', (event) => {
3115
3141
  if (!navKeys.has(event.key)) {
3116
3142
  return;
@@ -3145,15 +3171,6 @@ class AuroDropdownBib extends LitElement {
3145
3171
  });
3146
3172
  this.dispatchEvent(newEvent);
3147
3173
  });
3148
-
3149
- // Dispatch a custom event when the component is connected
3150
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3151
- bubbles: true,
3152
- composed: true,
3153
- detail: {
3154
- element: this
3155
- }
3156
- }));
3157
3174
  }
3158
3175
 
3159
3176
  /**
@@ -3505,7 +3522,7 @@ class AuroHelpText extends LitElement {
3505
3522
  }
3506
3523
  }
3507
3524
 
3508
- var formkitVersion = '202603091734';
3525
+ var formkitVersion = '202603091748';
3509
3526
 
3510
3527
  class AuroElement extends LitElement {
3511
3528
  static get properties() {