@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.2 → 0.0.0-pr1531.1

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 (53) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +3 -3
  7. package/components/combobox/demo/getting-started.min.js +3 -3
  8. package/components/combobox/demo/index.min.js +3 -3
  9. package/components/combobox/dist/index.js +3 -3
  10. package/components/combobox/dist/registered.js +3 -3
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/accessibility.md +8 -17
  16. package/components/datepicker/demo/api.md +1 -1
  17. package/components/datepicker/demo/customize.min.js +29 -175
  18. package/components/datepicker/demo/index.min.js +29 -175
  19. package/components/datepicker/demo/keyboard-behavior.md +3 -3
  20. package/components/datepicker/demo/voiceover.md +4 -4
  21. package/components/datepicker/demo/why-datepicker.md +2 -2
  22. package/components/datepicker/dist/auro-calendar-cell.d.ts +0 -11
  23. package/components/datepicker/dist/auro-calendar.d.ts +2 -26
  24. package/components/datepicker/dist/auro-datepicker.d.ts +1 -9
  25. package/components/datepicker/dist/index.js +29 -175
  26. package/components/datepicker/dist/registered.js +29 -175
  27. package/components/dropdown/demo/customize.min.js +1 -1
  28. package/components/dropdown/demo/getting-started.min.js +1 -1
  29. package/components/dropdown/demo/index.min.js +1 -1
  30. package/components/dropdown/dist/index.js +1 -1
  31. package/components/dropdown/dist/registered.js +1 -1
  32. package/components/form/demo/customize.min.js +53 -245
  33. package/components/form/demo/getting-started.min.js +53 -245
  34. package/components/form/demo/index.min.js +53 -245
  35. package/components/form/demo/registerDemoDeps.min.js +53 -245
  36. package/components/input/demo/customize.min.js +1 -1
  37. package/components/input/demo/getting-started.min.js +1 -1
  38. package/components/input/demo/index.min.js +1 -1
  39. package/components/input/dist/index.js +1 -1
  40. package/components/input/dist/registered.js +1 -1
  41. package/components/radio/demo/customize.min.js +1 -1
  42. package/components/radio/demo/getting-started.min.js +1 -1
  43. package/components/radio/demo/index.min.js +1 -1
  44. package/components/radio/dist/index.js +1 -1
  45. package/components/radio/dist/registered.js +1 -1
  46. package/components/select/demo/customize.min.js +16 -62
  47. package/components/select/demo/getting-started.min.js +16 -62
  48. package/components/select/demo/index.min.js +16 -62
  49. package/components/select/dist/auro-select.d.ts +0 -6
  50. package/components/select/dist/index.js +16 -62
  51. package/components/select/dist/registered.js +16 -62
  52. package/custom-elements.json +8 -38
  53. package/package.json +1 -1
@@ -4621,17 +4621,6 @@
4621
4621
  }
4622
4622
  }
4623
4623
  },
4624
- {
4625
- "kind": "method",
4626
- "name": "_initFromAncestors",
4627
- "description": "Wires the cell to its ancestor calendar-month and calendar (and, via\nthe calendar, to the datepicker). Extracted from firstUpdated() so the\nretry loop can re-attempt without recursively invoking a Lit lifecycle\nmethod (which is outside the framework's contract).",
4628
- "privacy": "private",
4629
- "return": {
4630
- "type": {
4631
- "text": "void"
4632
- }
4633
- }
4634
- },
4635
4624
  {
4636
4625
  "kind": "method",
4637
4626
  "name": "configurePopover",
@@ -5293,25 +5282,6 @@
5293
5282
  "description": "",
5294
5283
  "name": "AuroCalendar",
5295
5284
  "members": [
5296
- {
5297
- "kind": "field",
5298
- "name": "disabledDays",
5299
- "deprecated": "See constructor JSDoc — migrate to\n`auro-datepicker.blackoutDates`. The getter/setter pair exists so the\none-time deprecation warning fires as soon as a consumer assigns a\nnon-empty array (empty assignments are ignored — an empty array is\nindistinguishable from the constructor default and would produce a\nspurious warning), rather than only when `_getBlackoutSet()` happens\nto rebuild.",
5300
- "return": {
5301
- "type": {
5302
- "text": "Array"
5303
- }
5304
- },
5305
- "parameters": [
5306
- {
5307
- "description": "The legacy `disabledDays` array to set.",
5308
- "name": "value",
5309
- "type": {
5310
- "text": "Array"
5311
- }
5312
- }
5313
- ]
5314
- },
5315
5285
  {
5316
5286
  "kind": "field",
5317
5287
  "name": "centralDateObject",
@@ -5586,7 +5556,7 @@
5586
5556
  {
5587
5557
  "kind": "method",
5588
5558
  "name": "_getBlackoutSet",
5589
- "description": "Returns a memoized Set of blackout timestamps (seconds) drawn from both\nthe legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.\n\nThe cache invalidates on **reference identity** — only when the\nconsumer reassigns the array (`el.blackoutDates = [...]`), matching\nLit's own reactivity semantics for array properties. In-place mutations\non the existing array (`push`, `splice`, index assignment) will NOT\ninvalidate the cache and the new entries will be silently ignored.\nConsumers must reassign to update — see the JSDoc on\n`auro-datepicker.blackoutDates` for the recommended pattern.\n\nA shallow-equality tier was considered but rejected: it would run\nO(N) work on every cell render (this method is called per-cell via\n`isBlackout()`) and still wouldn't catch same-length value swaps,\noffering a false sense of safety.",
5559
+ "description": "Returns a memoized Set of blackout timestamps (seconds) drawn from both\nthe legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.\nThe cache invalidates when either source array's reference changes, which\nmatches Lit's own reactive identity semantics for array properties.",
5590
5560
  "privacy": "private",
5591
5561
  "return": {
5592
5562
  "type": {
@@ -5962,7 +5932,7 @@
5962
5932
  }
5963
5933
  }
5964
5934
  ],
5965
- "description": "Debounced version of announceSelection for focus navigation.\nUses the assertive live region with a 150ms debounce so only the\nfinal cell after rapid arrow-key traversal is announced. We\noriginally tried aria-live=\"polite\" here, but VoiceOver treats\npolite as \"wait until idle\" — which never happens during active\nkeyboard navigation — so the announcements were silently dropped.\n\nThis is a documented deviation from WCAG 2.1 SC 4.1.3, which\nprefers `polite` for status messages. See the \"Documented\nDeviation\" section in components/datepicker/docs/pages/accessibility.md.",
5935
+ "description": "Debounced version of announceSelection for focus navigation.\nUses the assertive live region with a 150ms debounce so only the\nfinal cell after rapid arrow-key traversal is announced. We\noriginally tried aria-live=\"polite\" here, but VoiceOver treats\npolite as \"wait until idle\" — which never happens during active\nkeyboard navigation — so the announcements were silently dropped.",
5966
5936
  "privacy": "private",
5967
5937
  "return": {
5968
5938
  "type": {
@@ -6140,7 +6110,7 @@
6140
6110
  },
6141
6111
  {
6142
6112
  "kind": "field",
6143
- "name": "_disabledDays",
6113
+ "name": "disabledDays",
6144
6114
  "type": {
6145
6115
  "text": "array"
6146
6116
  },
@@ -7544,7 +7514,7 @@
7544
7514
  "type": {
7545
7515
  "text": "array"
7546
7516
  },
7547
- "description": "Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).\n\n**Immutable update required.** The datepicker treats this array as\nimmutable and memoizes a lookup Set keyed on the array's reference\nidentity — matching Lit's own reactivity semantics for array\nproperties. In-place mutations (`blackoutDates.push(...)`,\n`blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not\ninvalidate the cache and the new entries will be silently ignored.\nTo update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.",
7517
+ "description": "Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).",
7548
7518
  "default": "[]",
7549
7519
  "attribute": "blackoutDates",
7550
7520
  "reflects": true
@@ -8208,7 +8178,7 @@
8208
8178
  "type": {
8209
8179
  "text": "array"
8210
8180
  },
8211
- "description": "Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).\n\n**Immutable update required.** The datepicker treats this array as\nimmutable and memoizes a lookup Set keyed on the array's reference\nidentity — matching Lit's own reactivity semantics for array\nproperties. In-place mutations (`blackoutDates.push(...)`,\n`blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not\ninvalidate the cache and the new entries will be silently ignored.\nTo update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.",
8181
+ "description": "Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).",
8212
8182
  "default": "[]",
8213
8183
  "fieldName": "blackoutDates"
8214
8184
  },
@@ -8832,7 +8802,7 @@
8832
8802
  "type": {
8833
8803
  "text": "object"
8834
8804
  },
8835
- "default": "{ Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Stop propagation so parent containers (auro-dialog, auro-drawer) // don't also react to Escape. evt.stopPropagation(); evt.preventDefault(); // Signal to the visibility-change handler in auro-datepicker.js that // focus should be restored to the trigger regardless of hasFocus. // hidePopover() (desktop non-modal path) does not auto-restore focus, // and hiding the grid's popover ancestor drops focus to <body>. That // synchronously fires focusout on the datepicker host — clearing // hasFocus — before updated() runs, which would otherwise skip the // input refocus. Native <dialog>.close() (modal path) restores focus // itself, but the flag is harmless there. component._restoreFocusOnClose = true; component.hideBib(); }, Enter(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, ' '(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, }"
8805
+ "default": "{ Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Stop propagation so parent containers (auro-dialog, auro-drawer) // don't also react to Escape. evt.stopPropagation(); evt.preventDefault(); component.hideBib(); }, Enter(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, ' '(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, }"
8836
8806
  }
8837
8807
  ],
8838
8808
  "exports": [
@@ -19198,7 +19168,7 @@
19198
19168
  {
19199
19169
  "kind": "method",
19200
19170
  "name": "configureMenu",
19201
- "description": "Binds all behavior needed to the menu after rendering.\n\nThe `<auro-menu>` reference is captured once and not re-targeted on\n`slotchange`. Runtime option mutations are covered via\n`auroMenu-optionsChange`, so swap options inside the menu freely; do not\nswap the `<auro-menu>` element itself under a live select — remount the\nparent `<auro-select>` instead.",
19171
+ "description": "Binds all behavior needed to the menu after rendering.",
19202
19172
  "privacy": "private",
19203
19173
  "return": {
19204
19174
  "type": {
@@ -20402,7 +20372,7 @@
20402
20372
  "type": {
20403
20373
  "text": "object"
20404
20374
  },
20405
- "default": "{ ArrowDown(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to last enabled option selectKeyboardStrategy.End(component, evt, ctx); } else { navigateArrow(component, 'down', { ctx }); } } else { component.dropdown.show(); } }, ArrowUp(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to first enabled option selectKeyboardStrategy.Home(component, evt, ctx); } else { navigateArrow(component, 'up', { ctx }); } } else { component.dropdown.show(); } }, Escape(component, evt, ctx) { // Always clear the type-ahead buffer — Escape is a universal cancel. // Safe to call when the buffer is empty. // eslint-disable-next-line no-underscore-dangle if (typeof component._clearTypeaheadBuffer === 'function') { // eslint-disable-next-line no-underscore-dangle component._clearTypeaheadBuffer(); } if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); component.dropdown.hide(); }, End(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); // `pop()` is safe here: getActiveOptions returns a fresh filtered array. // Uses \"active\" (not \"enabled\") so hidden and static rows — which a screen // reader must not announce as focused — are skipped. const lastOption = getActiveOptions(component.menu).pop(); if (!lastOption) { return; } // Pre-stash before show() so the auroDropdown-toggled handler's // `!optionActive` guard short-circuits the firstActive/selected fallback — // otherwise show() synchronously fires the handler and writes // aria-activedescendant once before we overwrite it. component.menu.updateActiveOption(lastOption); if (!ctx.isExpanded) { component.dropdown.show(); } }, Enter(component, evt, ctx) { // Prevent the keypress from bubbling to parent containers (e.g., forms) // which could interpret Enter as a submit. Matches APG select-only combobox // and native <select> behavior: Enter opens the listbox when closed, selects // the active option when open — it does not submit a parent form. evt.preventDefault(); evt.stopPropagation(); if (!ctx.isExpanded) { component.dropdown.show(); return; } component.menu.makeSelection(); }, Home(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); const [firstOption] = getActiveOptions(component.menu); if (!firstOption) { return; } // See End() for why this must run before show(). component.menu.updateActiveOption(firstOption); if (!ctx.isExpanded) { component.dropdown.show(); } }, Tab(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Tab selects the focused option and closes the popup per the // WAI-ARIA APG select-only combobox / listbox pattern. if (component.optionActive) { component.menu.makeSelection(); } component.dropdown.hide(); }, default(component, evt, ctx) { // Ignore keys chorded with Ctrl/Meta/Alt so browser/OS shortcuts // (Cmd+C, Ctrl+V, Alt+X, Cmd+Space, …) don't leak into typeahead // or toggle the bib. Native <select> ignores modified keys. // ArrowUp/ArrowDown handle modifier+arrow explicitly above; this // guard only affects the default (printable/Space) branch. if (evt.ctrlKey || evt.metaKey || evt.altKey) { return; } // Space resolves to either typeahead-buffer extension or bib toggle // depending on whether a type-ahead buffer is active. Mirrors native // <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space // is a search character (e.g. \"San Francisco\"); otherwise it toggles. if (evt.key === ' ') { evt.preventDefault(); evt.stopPropagation(); if (component.typeaheadBuffer && component.typeaheadBuffer.length > 0) { component.updateActiveOptionBasedOnKey(evt.key); return; } if (ctx.isExpanded) { component.dropdown.hide(); } else { component.dropdown.show(); } return; } component.updateActiveOptionBasedOnKey(evt.key); }, }"
20375
+ "default": "{ ArrowDown(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to last enabled option selectKeyboardStrategy.End(component, evt, ctx); } else { navigateArrow(component, 'down', { ctx }); } } else { component.dropdown.show(); } }, ArrowUp(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to first enabled option selectKeyboardStrategy.Home(component, evt, ctx); } else { navigateArrow(component, 'up', { ctx }); } } else { component.dropdown.show(); } }, Escape(component, evt, ctx) { // Always clear the type-ahead buffer — Escape is a universal cancel. // Safe to call when the buffer is empty. // eslint-disable-next-line no-underscore-dangle if (typeof component._clearTypeaheadBuffer === 'function') { // eslint-disable-next-line no-underscore-dangle component._clearTypeaheadBuffer(); } if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); component.dropdown.hide(); }, End(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); // `pop()` is safe here: getEnabledOptions returns a fresh filtered array. const lastOption = getEnabledOptions(component.menu).pop(); if (!lastOption) { return; } // Pre-stash before show() so the auroDropdown-toggled handler's // `!optionActive` guard short-circuits the firstActive/selected fallback — // otherwise show() synchronously fires the handler and writes // aria-activedescendant once before we overwrite it. component.menu.updateActiveOption(lastOption); if (!ctx.isExpanded) { component.dropdown.show(); } }, Enter(component, evt, ctx) { // Prevent the keypress from bubbling to parent containers (e.g., forms) // which could interpret Enter as a submit. Matches APG select-only combobox // and native <select> behavior: Enter opens the listbox when closed, selects // the active option when open — it does not submit a parent form. evt.preventDefault(); evt.stopPropagation(); if (!ctx.isExpanded) { component.dropdown.show(); return; } component.menu.makeSelection(); }, Home(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); const [firstOption] = getEnabledOptions(component.menu); if (!firstOption) { return; } // See End() for why this must run before show(). component.menu.updateActiveOption(firstOption); if (!ctx.isExpanded) { component.dropdown.show(); } }, Tab(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Tab selects the focused option and closes the popup per the // WAI-ARIA APG select-only combobox / listbox pattern. if (component.optionActive) { component.menu.makeSelection(); } component.dropdown.hide(); }, default(component, evt, ctx) { // Space resolves to either typeahead-buffer extension or bib toggle // depending on whether a type-ahead buffer is active. Mirrors native // <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space // is a search character (e.g. \"San Francisco\"); otherwise it toggles. if (evt.key === ' ') { evt.preventDefault(); evt.stopPropagation(); if (component.typeaheadBuffer && component.typeaheadBuffer.length > 0) { component.updateActiveOptionBasedOnKey(evt.key); return; } if (ctx.isExpanded) { component.dropdown.hide(); } else { component.dropdown.show(); } return; } component.updateActiveOptionBasedOnKey(evt.key); }, }"
20406
20376
  }
20407
20377
  ],
20408
20378
  "exports": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurodesignsystem-dev/auro-formkit",
3
- "version": "0.0.0-pr1530.2",
3
+ "version": "0.0.0-pr1531.1",
4
4
  "description": "A collection of web components used to build forms.",
5
5
  "homepage": "https://github.com/AlaskaAirlines/auro-formkit#readme",
6
6
  "bugs": {