@aurodesignsystem-dev/auro-formkit 0.0.0-pr1510.2 → 0.0.0-pr1511.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.
Files changed (128) hide show
  1. package/components/checkbox/demo/customize.js +22 -0
  2. package/components/checkbox/demo/customize.min.js +1 -1
  3. package/components/checkbox/demo/demo-support.js +1 -0
  4. package/components/checkbox/demo/getting-started.js +22 -0
  5. package/components/checkbox/demo/getting-started.min.js +1 -1
  6. package/components/checkbox/demo/index.js +8 -0
  7. package/components/checkbox/demo/index.min.js +1 -1
  8. package/components/checkbox/demo/styles.scss +1 -0
  9. package/components/checkbox/dist/index.js +1 -1
  10. package/components/checkbox/dist/registered.js +1 -1
  11. package/components/combobox/demo/customize.js +24 -0
  12. package/components/combobox/demo/customize.min.js +4 -3
  13. package/components/combobox/demo/demo-support.js +1 -0
  14. package/components/combobox/demo/getting-started.js +21 -0
  15. package/components/combobox/demo/getting-started.min.js +4 -3
  16. package/components/combobox/demo/index.js +23 -0
  17. package/components/combobox/demo/index.min.js +4 -3
  18. package/components/combobox/demo/styles.scss +1 -0
  19. package/components/combobox/dist/index.js +4 -3
  20. package/components/combobox/dist/registered.js +4 -3
  21. package/components/counter/demo/customize.js +21 -0
  22. package/components/counter/demo/customize.min.js +3 -2
  23. package/components/counter/demo/demo-support.js +1 -0
  24. package/components/counter/demo/index.js +21 -0
  25. package/components/counter/demo/index.min.js +3 -2
  26. package/components/counter/demo/styles.scss +1 -0
  27. package/components/counter/dist/index.js +3 -2
  28. package/components/counter/dist/registered.js +3 -2
  29. package/components/datepicker/demo/accessibility.md +1 -2
  30. package/components/datepicker/demo/api.md +62 -63
  31. package/components/datepicker/demo/customize.js +17 -0
  32. package/components/datepicker/demo/customize.md +1 -12
  33. package/components/datepicker/demo/customize.min.js +207 -601
  34. package/components/datepicker/demo/demo-support.js +1 -0
  35. package/components/datepicker/demo/index.js +23 -0
  36. package/components/datepicker/demo/index.min.js +207 -601
  37. package/components/datepicker/demo/styles.scss +1 -0
  38. package/components/datepicker/dist/index.js +207 -601
  39. package/components/datepicker/dist/registered.js +207 -601
  40. package/components/datepicker/dist/{auro-calendar-cell.d.ts → src/auro-calendar-cell.d.ts} +3 -14
  41. package/components/datepicker/dist/{auro-calendar.d.ts → src/auro-calendar.d.ts} +6 -90
  42. package/components/datepicker/dist/{auro-datepicker.d.ts → src/auro-datepicker.d.ts} +5 -78
  43. package/components/dropdown/demo/customize.js +9 -0
  44. package/components/dropdown/demo/customize.min.js +2 -1
  45. package/components/dropdown/demo/demo-support.js +1 -0
  46. package/components/dropdown/demo/getting-started.js +9 -0
  47. package/components/dropdown/demo/getting-started.min.js +2 -1
  48. package/components/dropdown/demo/index.js +16 -0
  49. package/components/dropdown/demo/index.min.js +2 -1
  50. package/components/dropdown/demo/styles.scss +1 -0
  51. package/components/dropdown/dist/index.js +2 -1
  52. package/components/dropdown/dist/registered.js +2 -1
  53. package/components/form/demo/customize.js +28 -0
  54. package/components/form/demo/customize.min.js +355 -670
  55. package/components/form/demo/demo-support.js +1 -0
  56. package/components/form/demo/getting-started.js +9 -0
  57. package/components/form/demo/getting-started.min.js +355 -670
  58. package/components/form/demo/index.js +5 -0
  59. package/components/form/demo/index.min.js +355 -670
  60. package/components/form/demo/registerDemoDeps.js +23 -0
  61. package/components/form/demo/registerDemoDeps.min.js +355 -670
  62. package/components/form/demo/styles.scss +1 -0
  63. package/components/input/demo/customize.js +25 -0
  64. package/components/input/demo/customize.min.js +1 -1
  65. package/components/input/demo/demo-support.js +1 -0
  66. package/components/input/demo/getting-started.js +8 -0
  67. package/components/input/demo/getting-started.min.js +1 -1
  68. package/components/input/demo/index.js +8 -0
  69. package/components/input/demo/index.min.js +1 -1
  70. package/components/input/demo/styles.css +974 -0
  71. package/components/input/demo/styles.scss +1 -0
  72. package/components/input/dist/index.js +1 -1
  73. package/components/input/dist/registered.js +1 -1
  74. package/components/menu/demo/demo-support.js +1 -0
  75. package/components/menu/demo/index.js +25 -0
  76. package/components/menu/demo/styles.scss +1 -0
  77. package/components/radio/demo/customize.js +22 -0
  78. package/components/radio/demo/customize.min.js +1 -1
  79. package/components/radio/demo/demo-support.js +1 -0
  80. package/components/radio/demo/getting-started.js +24 -0
  81. package/components/radio/demo/getting-started.min.js +1 -1
  82. package/components/radio/demo/index.js +8 -0
  83. package/components/radio/demo/index.min.js +1 -1
  84. package/components/radio/demo/styles.scss +1 -0
  85. package/components/radio/dist/index.js +1 -1
  86. package/components/radio/dist/registered.js +1 -1
  87. package/components/select/demo/customize.js +11 -0
  88. package/components/select/demo/customize.min.js +132 -55
  89. package/components/select/demo/demo-support.js +1 -0
  90. package/components/select/demo/getting-started.js +26 -0
  91. package/components/select/demo/getting-started.min.js +132 -55
  92. package/components/select/demo/index.js +11 -0
  93. package/components/select/demo/index.min.js +132 -55
  94. package/components/select/demo/keyboard-behavior.md +18 -4
  95. package/components/select/demo/styles.scss +1 -0
  96. package/components/select/dist/auro-select.d.ts +20 -8
  97. package/components/select/dist/index.js +132 -55
  98. package/components/select/dist/registered.js +132 -55
  99. package/custom-elements.json +25 -311
  100. package/package.json +2 -6
  101. package/components/datepicker/dist/blackoutUtils.d.ts +0 -43
  102. /package/components/datepicker/dist/{auro-calendar-month.d.ts → src/auro-calendar-month.d.ts} +0 -0
  103. /package/components/datepicker/dist/{buttonVersion.d.ts → src/buttonVersion.d.ts} +0 -0
  104. /package/components/datepicker/dist/{datepickerKeyboardStrategy.d.ts → src/datepickerKeyboardStrategy.d.ts} +0 -0
  105. /package/components/datepicker/dist/{iconVersion.d.ts → src/iconVersion.d.ts} +0 -0
  106. /package/components/datepicker/dist/{index.d.ts → src/index.d.ts} +0 -0
  107. /package/components/datepicker/dist/{popoverVersion.d.ts → src/popoverVersion.d.ts} +0 -0
  108. /package/components/datepicker/dist/{styles → src/styles}/classic/color-css.d.ts +0 -0
  109. /package/components/datepicker/dist/{styles → src/styles}/classic/style-css.d.ts +0 -0
  110. /package/components/datepicker/dist/{styles → src/styles}/color-calendar-css.d.ts +0 -0
  111. /package/components/datepicker/dist/{styles → src/styles}/color-cell-css.d.ts +0 -0
  112. /package/components/datepicker/dist/{styles → src/styles}/color-css.d.ts +0 -0
  113. /package/components/datepicker/dist/{styles → src/styles}/color-month-css.d.ts +0 -0
  114. /package/components/datepicker/dist/{styles → src/styles}/shapeSize-css.d.ts +0 -0
  115. /package/components/datepicker/dist/{styles → src/styles}/snowflake/color-css.d.ts +0 -0
  116. /package/components/datepicker/dist/{styles → src/styles}/snowflake/style-css.d.ts +0 -0
  117. /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-cell-css.d.ts +0 -0
  118. /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-css.d.ts +0 -0
  119. /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-month-css.d.ts +0 -0
  120. /package/components/datepicker/dist/{styles → src/styles}/style-css.d.ts +0 -0
  121. /package/components/datepicker/dist/{styles → src/styles}/tokens-css.d.ts +0 -0
  122. /package/components/datepicker/dist/{utilities.d.ts → src/utilities.d.ts} +0 -0
  123. /package/components/datepicker/dist/{utilitiesCalendar.d.ts → src/utilitiesCalendar.d.ts} +0 -0
  124. /package/components/datepicker/dist/{utilitiesCalendarRender.d.ts → src/utilitiesCalendarRender.d.ts} +0 -0
  125. /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/day.d.ts +0 -0
  126. /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
  127. /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
  128. /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
@@ -4577,7 +4577,7 @@
4577
4577
  {
4578
4578
  "kind": "method",
4579
4579
  "name": "updateHostAria",
4580
- "description": "Sets host-level ARIA so each cell exposes its date, selection state,\nand blackout status to assistive tech browsing the month grid.",
4580
+ "description": "Updates ARIA attributes on the host element so that\nariaActiveDescendantElement can expose cell info to the SR.",
4581
4581
  "privacy": "private",
4582
4582
  "return": {
4583
4583
  "type": {
@@ -4598,7 +4598,7 @@
4598
4598
  {
4599
4599
  "kind": "method",
4600
4600
  "name": "setActive",
4601
- "description": "Imperatively marks this cell as active without triggering a Lit re-render.\nButtons stay tabindex=\"-1\" because DOM focus stays on the grid wrapper —\narrow keys move the active cell imperatively and the live region carries\nthe SR announcement.",
4601
+ "description": "Imperatively marks this cell as active without triggering a Lit re-render.\nNote: buttons stay tabindex=\"-1\" because the grid uses aria-activedescendant.",
4602
4602
  "return": {
4603
4603
  "type": {
4604
4604
  "text": "void"
@@ -4743,7 +4743,6 @@
4743
4743
  "type": {
4744
4744
  "text": "array"
4745
4745
  },
4746
- "deprecated": "Propagated from the legacy `auro-calendar.disabledDays`\nUnix-timestamp array. The cell honors it for backward compatibility\n(see the divergence-check fallback inside `isBlackout`), but\nconsumers should migrate to `auro-datepicker.blackoutDates`\n(YYYY-MM-DD ISO strings). The calendar emits a one-time\ndeprecation warning the first time a non-empty value is observed.",
4747
4746
  "default": "[]",
4748
4747
  "attribute": "disabledDays"
4749
4748
  },
@@ -4903,7 +4902,6 @@
4903
4902
  "type": {
4904
4903
  "text": "array"
4905
4904
  },
4906
- "deprecated": "Propagated from the legacy `auro-calendar.disabledDays`\nUnix-timestamp array. The cell honors it for backward compatibility\n(see the divergence-check fallback inside `isBlackout`), but\nconsumers should migrate to `auro-datepicker.blackoutDates`\n(YYYY-MM-DD ISO strings). The calendar emits a one-time\ndeprecation warning the first time a non-empty value is observed.",
4907
4905
  "default": "[]",
4908
4906
  "fieldName": "disabledDays"
4909
4907
  },
@@ -5308,26 +5306,6 @@
5308
5306
  }
5309
5307
  }
5310
5308
  },
5311
- {
5312
- "kind": "method",
5313
- "name": "_afterMonthRender",
5314
- "parameters": [
5315
- {
5316
- "name": "callback",
5317
- "description": "Runs once after the month re-render and\nthe cells' button caches have refreshed.",
5318
- "type": {
5319
- "text": "() => void"
5320
- }
5321
- }
5322
- ],
5323
- "description": "Schedules `callback` two animation frames out, giving the child\n`auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements\na full render-and-paint cycle to settle before the callback reads or\nmutates DOM.\n\nWhy two frames, not one:\n1. Lit batches property updates and renders in a microtask, so frame N\n schedules the render but the new DOM may not be painted yet.\n2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,\n which also lands a tick later. Reading buttons from frame N+1\n (after both renders + cache refresh have flushed) reliably hits the\n new month's cells.\n\nUsed by every code path that calls `handleNextMonth`/`handlePrevMonth`\nand then needs to inspect the freshly-rendered cells (cross-month\nkeyboard nav, boundary events, `updateActiveCellForVisibleMonth`).\nDo NOT collapse to a single rAF — it intermittently lands before\n`_cachedButton` is refreshed, which silently breaks focus restoration\nand `setActiveCell` lookups.",
5324
- "privacy": "private",
5325
- "return": {
5326
- "type": {
5327
- "text": "void"
5328
- }
5329
- }
5330
- },
5331
5309
  {
5332
5310
  "kind": "method",
5333
5311
  "name": "renderAllCalendars",
@@ -5379,40 +5357,6 @@
5379
5357
  }
5380
5358
  }
5381
5359
  },
5382
- {
5383
- "kind": "method",
5384
- "name": "pickNearestCell",
5385
- "parameters": [
5386
- {
5387
- "name": "cells",
5388
- "description": "Focusable cells from getAllFocusableCells.",
5389
- "type": {
5390
- "text": "Array"
5391
- }
5392
- },
5393
- {
5394
- "name": "targetTs",
5395
- "description": "Desired Unix timestamp (seconds).",
5396
- "type": {
5397
- "text": "Number"
5398
- }
5399
- },
5400
- {
5401
- "name": "direction",
5402
- "description": "Navigation direction.",
5403
- "type": {
5404
- "text": "'next'|'prev'"
5405
- }
5406
- }
5407
- ],
5408
- "description": "Picks the focusable cell whose date is closest to targetTs. Used as a\nfallback after a month-boundary nav when the exact target date isn't\nfocusable — typically because the month re-render lagged or the date\nwas filtered out by isOutOfRange. When two cells are equidistant, the\nnavigation direction breaks the tie so the user moves the way they\npressed (forward → later cell, backward → earlier cell).",
5409
- "privacy": "private",
5410
- "return": {
5411
- "type": {
5412
- "text": "Object|null"
5413
- }
5414
- }
5415
- },
5416
5360
  {
5417
5361
  "kind": "method",
5418
5362
  "name": "getAllFocusableCells",
@@ -5436,7 +5380,7 @@
5436
5380
  }
5437
5381
  }
5438
5382
  ],
5439
- "description": "Sets the active cell across all months. Only one cell has tabindex=\"0\" at a time.\nUses imperative DOM manipulation — no Lit re-render triggered. DOM focus\nstays on the grid wrapper; the live region (see getOrCreateLiveRegion)\nis what announces the active cell to assistive tech.",
5383
+ "description": "Sets the active cell across all months. Only one cell has tabindex=\"0\" at a time.\nUses imperative DOM manipulation — no Lit re-render triggered.\nAlso updates ariaActiveDescendantElement on the grid wrapper so\nscreen readers announce the active cell without moving DOM focus.",
5440
5384
  "return": {
5441
5385
  "type": {
5442
5386
  "text": "void"
@@ -5475,39 +5419,6 @@
5475
5419
  }
5476
5420
  }
5477
5421
  },
5478
- {
5479
- "kind": "method",
5480
- "name": "_getBlackoutSet",
5481
- "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.",
5482
- "privacy": "private",
5483
- "return": {
5484
- "type": {
5485
- "text": "Set<Number>"
5486
- }
5487
- }
5488
- },
5489
- {
5490
- "kind": "field",
5491
- "name": "_warnedDisabledDaysDeprecation",
5492
- "type": {
5493
- "text": "boolean"
5494
- },
5495
- "static": true,
5496
- "default": "false",
5497
- "description": "Per-class flag that gates the `disabledDays` deprecation warning so it\nfires exactly once per page no matter how many calendars or rebuild\ncycles encounter the legacy array.",
5498
- "privacy": "private"
5499
- },
5500
- {
5501
- "kind": "method",
5502
- "name": "_warnDisabledDaysDeprecated",
5503
- "description": "One-time `console.debug` directing consumers from the legacy\n`disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires\nthe first time `_getBlackoutSet` rebuilds from a non-empty\n`disabledDays`; subsequent calls (on this or any other AuroCalendar\ninstance on the page) are silent.",
5504
- "privacy": "private",
5505
- "return": {
5506
- "type": {
5507
- "text": "void"
5508
- }
5509
- }
5510
- },
5511
5422
  {
5512
5423
  "kind": "method",
5513
5424
  "name": "computeActiveDate",
@@ -5562,7 +5473,7 @@
5562
5473
  }
5563
5474
  }
5564
5475
  ],
5565
- "description": "Handles arrow key navigation on the calendar grid wrapper.\nFocus stays on the grid wrapper; only the visual active-cell indicator\nchanges. The live region announces the new active cell.",
5476
+ "description": "Handles arrow key navigation on the calendar grid wrapper.\nFocus stays on the grid wrapper; only ariaActiveDescendantElement\nand the visual active-cell indicator change.",
5566
5477
  "privacy": "private",
5567
5478
  "return": {
5568
5479
  "type": {
@@ -5682,7 +5593,7 @@
5682
5593
  }
5683
5594
  }
5684
5595
  ],
5685
- "description": "Checks whether a given date is a blackout date. Delegates to the\nmemoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the\nlegacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).",
5596
+ "description": "Checks whether a given date is a blackout date.",
5686
5597
  "privacy": "private",
5687
5598
  "return": {
5688
5599
  "type": {
@@ -5793,33 +5704,6 @@
5793
5704
  }
5794
5705
  }
5795
5706
  },
5796
- {
5797
- "kind": "method",
5798
- "name": "_deliverAnnouncement",
5799
- "parameters": [
5800
- {
5801
- "name": "dateStr",
5802
- "description": "The localized date string to announce.",
5803
- "type": {
5804
- "text": "String"
5805
- }
5806
- },
5807
- {
5808
- "name": "attempts",
5809
- "description": "Number of prior retry attempts.",
5810
- "type": {
5811
- "text": "Number"
5812
- }
5813
- }
5814
- ],
5815
- "description": "Writes `dateStr` to the live region. If the dropdown's dialog hasn't\nmounted yet (so getOrCreateLiveRegion can't attach), retries on the\nnext animation frame up to MAX_LIVE_REGION_RETRIES instead of silently\ndropping the announcement. The retry uses the same `_announceRafId`\nthe double-rAF below uses, so a newer announceSelection call (or\ndisconnectedCallback) cancels any in-flight retry.",
5816
- "privacy": "private",
5817
- "return": {
5818
- "type": {
5819
- "text": "void"
5820
- }
5821
- }
5822
- },
5823
5707
  {
5824
5708
  "kind": "method",
5825
5709
  "name": "announceFocusDebounced",
@@ -6004,7 +5888,7 @@
6004
5888
  "type": {
6005
5889
  "text": "array"
6006
5890
  },
6007
- "deprecated": "Use `auro-datepicker.blackoutDates` (an array of\n`YYYY-MM-DD` ISO strings) instead. This legacy array of Unix\ntimestamps is still honored for backward compatibility but emits a\none-time `console.debug` the first time a non-empty value is observed.\nSupport will be removed in a future major release.",
5891
+ "description": "Legacy array of disabled-date timestamps.",
6008
5892
  "privacy": "private",
6009
5893
  "default": "[]"
6010
5894
  },
@@ -6706,13 +6590,13 @@
6706
6590
  "parameters": [
6707
6591
  {
6708
6592
  "name": "time",
6709
- "description": "Unix timestamp (seconds), local midnight of the day.",
6593
+ "description": "Unix timestamp in seconds.",
6710
6594
  "type": {
6711
6595
  "text": "number"
6712
6596
  }
6713
6597
  }
6714
6598
  ],
6715
- "description": "Converts a Unix timestamp (seconds) from the vendored range-datepicker\n(`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.\n\nTimezone contract:\n- INPUT: `time` is assumed to be the seconds-since-epoch of **local\n midnight** for the intended calendar day. The vendor's Day constructor\n builds it via `date-fns format(date, 't')` from a locally-constructed\n Date, so this assumption currently holds end-to-end.\n- OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local\n getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD\n string matches the local calendar day.\n\nIf the vendor ever switches to emitting UTC-midnight timestamps, this\nconversion will silently shift the returned date by one day in zones\nwest of UTC. Any vendor swap should re-verify this contract; the TZ\nregression suite (`npm run test:hst`, UTC-10) will catch the symptom.",
6599
+ "description": "Converts a Unix timestamp (seconds) from the vendor calendar to an ISO date string.",
6716
6600
  "privacy": "private",
6717
6601
  "return": {
6718
6602
  "type": {
@@ -6988,34 +6872,6 @@
6988
6872
  },
6989
6873
  "readonly": true
6990
6874
  },
6991
- {
6992
- "kind": "field",
6993
- "name": "_warnedInvalidLocales",
6994
- "static": true,
6995
- "default": "new Set()",
6996
- "description": "Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup\nspans every datepicker instance on the page; lives on the class (not\nat module scope) so it stays an encapsulated implementation detail of\nthis component and does not interfere with WCA's class-JSDoc\nattachment.",
6997
- "privacy": "private"
6998
- },
6999
- {
7000
- "kind": "method",
7001
- "name": "_warnInvalidLocale",
7002
- "parameters": [
7003
- {
7004
- "name": "badLocale",
7005
- "description": "The locale value that failed.",
7006
- "type": {
7007
- "text": "string|undefined"
7008
- }
7009
- }
7010
- ],
7011
- "description": "Logs a one-time `console.debug` when an unsupported locale falls back to\nen-US. Deduped by the offending tag so noisy re-renders that resurface\nthe same bad value stay quiet, but each new bad value still signals so\nconsumers can spot the typo or missing tag.",
7012
- "privacy": "private",
7013
- "return": {
7014
- "type": {
7015
- "text": "void"
7016
- }
7017
- }
7018
- },
7019
6875
  {
7020
6876
  "kind": "method",
7021
6877
  "name": "handleSlotToSlot",
@@ -7380,23 +7236,11 @@
7380
7236
  "type": {
7381
7237
  "text": "string"
7382
7238
  },
7383
- "description": "Label announced for cells after a fully selected range (both\n`dateFrom` and `dateTo` are set). While a range is still being\npicked (`dateFrom` set, `dateTo` unset), focused cells past the\nstart use `rangeLabelEndPreview` instead.",
7239
+ "description": "Label announced for cells after the range (or after start when no end is selected).",
7384
7240
  "default": "'after range'",
7385
7241
  "attribute": "rangeLabelAfterRange",
7386
7242
  "reflects": true
7387
7243
  },
7388
- {
7389
- "kind": "field",
7390
- "name": "rangeLabelEndPreview",
7391
- "privacy": "public",
7392
- "type": {
7393
- "text": "string"
7394
- },
7395
- "description": "Label announced for the focused cell while previewing a range end\n(dateFrom set, dateTo not yet selected). Tells AT users that\npressing Enter would commit this cell as the range end.",
7396
- "default": "'previewing range end'",
7397
- "attribute": "rangeLabelEndPreview",
7398
- "reflects": true
7399
- },
7400
7244
  {
7401
7245
  "kind": "field",
7402
7246
  "name": "blackoutDates",
@@ -7736,13 +7580,6 @@
7736
7580
  "name": "helpTextTag",
7737
7581
  "privacy": "private"
7738
7582
  },
7739
- {
7740
- "kind": "field",
7741
- "name": "_listenerAbortController",
7742
- "description": "Single AbortController shared by every listener registered in the\nconfigure* methods. Lets disconnectedCallback tear all of them down\nwith one abort() call.\n\nThe genuine leak risk is the listeners attached to children that can\noutlive the host if they get reparented — `this.dropdown`,\n`this.calendar`, and the inputs inside the dropdown's slot.\nListeners attached to `this` (e.g. focusin/focusout on the host)\nform a self-contained reference graph that the GC can collect with\nthe host anyway, but they share the same signal so the cleanup\npattern stays uniform across all configure* sites.",
7743
- "privacy": "private",
7744
- "default": "new AbortController()"
7745
- },
7746
7583
  {
7747
7584
  "kind": "field",
7748
7585
  "name": "layout",
@@ -7913,7 +7750,7 @@
7913
7750
  "type": {
7914
7751
  "text": "array"
7915
7752
  },
7916
- "description": "Dates that the user should have for reference as part of their decision-making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
7753
+ "description": "Dates that the user should have for reference as part of their decision making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
7917
7754
  "attribute": "referenceDates",
7918
7755
  "reflects": true
7919
7756
  },
@@ -8353,7 +8190,7 @@
8353
8190
  "type": {
8354
8191
  "text": "string"
8355
8192
  },
8356
- "description": "Label announced for cells after a fully selected range (both\n`dateFrom` and `dateTo` are set). While a range is still being\npicked (`dateFrom` set, `dateTo` unset), focused cells past the\nstart use `rangeLabelEndPreview` instead.",
8193
+ "description": "Label announced for cells after the range (or after start when no end is selected).",
8357
8194
  "default": "'after range'",
8358
8195
  "fieldName": "rangeLabelAfterRange"
8359
8196
  },
@@ -8375,15 +8212,6 @@
8375
8212
  "default": "'range end'",
8376
8213
  "fieldName": "rangeLabelEnd"
8377
8214
  },
8378
- {
8379
- "name": "rangeLabelEndPreview",
8380
- "type": {
8381
- "text": "string"
8382
- },
8383
- "description": "Label announced for the focused cell while previewing a range end\n(dateFrom set, dateTo not yet selected). Tells AT users that\npressing Enter would commit this cell as the range end.",
8384
- "default": "'previewing range end'",
8385
- "fieldName": "rangeLabelEndPreview"
8386
- },
8387
8215
  {
8388
8216
  "name": "rangeLabelInRange",
8389
8217
  "type": {
@@ -8407,7 +8235,7 @@
8407
8235
  "type": {
8408
8236
  "text": "array"
8409
8237
  },
8410
- "description": "Dates that the user should have for reference as part of their decision-making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
8238
+ "description": "Dates that the user should have for reference as part of their decision making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
8411
8239
  "fieldName": "referenceDates"
8412
8240
  },
8413
8241
  {
@@ -8557,116 +8385,6 @@
8557
8385
  }
8558
8386
  ]
8559
8387
  },
8560
- {
8561
- "kind": "javascript-module",
8562
- "path": "components/datepicker/src/blackoutUtils.js",
8563
- "declarations": [
8564
- {
8565
- "kind": "function",
8566
- "name": "parseIsoToTimestamp",
8567
- "parameters": [
8568
- {
8569
- "name": "isoStr",
8570
- "description": "Date string in `YYYY-MM-DD` format.",
8571
- "type": {
8572
- "text": "string"
8573
- }
8574
- }
8575
- ],
8576
- "description": "Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)\nrepresenting local midnight on that calendar day. Returns `null` for\ninputs that don't parse to a finite timestamp.\n\nUses the `new Date(year, monthIndex, day)` constructor (NOT\n`new Date(isoStr)`) so the result is local-midnight rather than UTC\nmidnight — required to keep the calendar grid aligned with the user's\nlocal calendar day in negative-offset timezones.",
8577
- "return": {
8578
- "type": {
8579
- "text": "number|null"
8580
- }
8581
- }
8582
- },
8583
- {
8584
- "kind": "function",
8585
- "name": "buildBlackoutSet",
8586
- "parameters": [
8587
- {
8588
- "name": "disabledDays",
8589
- "description": "Legacy timestamp array.",
8590
- "type": {
8591
- "text": "Array<string|number>|undefined"
8592
- }
8593
- },
8594
- {
8595
- "name": "blackoutDates",
8596
- "description": "ISO `YYYY-MM-DD` array.",
8597
- "type": {
8598
- "text": "Array<string>|undefined"
8599
- }
8600
- }
8601
- ],
8602
- "description": "Builds a `Set<number>` of seconds-since-epoch timestamps covering both the\nlegacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`\narray. Use this for O(1) membership checks in hot paths.",
8603
- "return": {
8604
- "type": {
8605
- "text": "Set<number>"
8606
- }
8607
- }
8608
- },
8609
- {
8610
- "kind": "function",
8611
- "name": "isBlackoutTimestamp",
8612
- "parameters": [
8613
- {
8614
- "name": "dateTs",
8615
- "description": "Unix timestamp (seconds) to test.",
8616
- "type": {
8617
- "text": "number"
8618
- }
8619
- },
8620
- {
8621
- "name": "disabledDays",
8622
- "description": "Legacy timestamp array.",
8623
- "type": {
8624
- "text": "Array<string|number>|undefined"
8625
- }
8626
- },
8627
- {
8628
- "name": "blackoutDates",
8629
- "description": "ISO `YYYY-MM-DD` array.",
8630
- "type": {
8631
- "text": "Array<string>|undefined"
8632
- }
8633
- }
8634
- ],
8635
- "description": "One-shot membership test for a single timestamp against both blackout\nsources. Allocates a Set on each call; only use this in cold paths\n(e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the\nSet returned from `buildBlackoutSet` and `.has(ts)` directly.",
8636
- "return": {
8637
- "type": {
8638
- "text": "boolean"
8639
- }
8640
- }
8641
- }
8642
- ],
8643
- "exports": [
8644
- {
8645
- "kind": "js",
8646
- "name": "parseIsoToTimestamp",
8647
- "declaration": {
8648
- "name": "parseIsoToTimestamp",
8649
- "module": "components/datepicker/src/blackoutUtils.js"
8650
- }
8651
- },
8652
- {
8653
- "kind": "js",
8654
- "name": "buildBlackoutSet",
8655
- "declaration": {
8656
- "name": "buildBlackoutSet",
8657
- "module": "components/datepicker/src/blackoutUtils.js"
8658
- }
8659
- },
8660
- {
8661
- "kind": "js",
8662
- "name": "isBlackoutTimestamp",
8663
- "declaration": {
8664
- "name": "isBlackoutTimestamp",
8665
- "module": "components/datepicker/src/blackoutUtils.js"
8666
- }
8667
- }
8668
- ]
8669
- },
8670
8388
  {
8671
8389
  "kind": "javascript-module",
8672
8390
  "path": "components/datepicker/src/buttonVersion.js",
@@ -18917,6 +18635,18 @@
18917
18635
  }
18918
18636
  }
18919
18637
  },
18638
+ {
18639
+ "kind": "method",
18640
+ "name": "_syncLabelText",
18641
+ "description": "Reads the current label slot text and pushes it to the dropdown bib\n(for dialog naming) and the menu (for listbox aria-label). Safe to call\nbefore either child has been wired up — each branch self-guards.",
18642
+ "privacy": "private"
18643
+ },
18644
+ {
18645
+ "kind": "method",
18646
+ "name": "_observeLabelChanges",
18647
+ "description": "Keeps the dialog/menu accessible names in sync when consumers mutate the\nlabel slot at runtime (e.g., i18n locale swap). `slotchange` alone is\ninsufficient — it doesn't fire when textContent of an already-assigned\nslotted node changes, which is the common case. We scope the observer to\nthe label node itself (not the whole host subtree) so option-content\nmutations don't trigger label re-syncs, and re-target on `slotchange`\nwhen consumers add or replace the label element.",
18648
+ "privacy": "private"
18649
+ },
18920
18650
  {
18921
18651
  "kind": "method",
18922
18652
  "name": "register",
@@ -19635,15 +19365,6 @@
19635
19365
  "module": "components/layoutElement/src/auroElement.js"
19636
19366
  }
19637
19367
  },
19638
- {
19639
- "kind": "field",
19640
- "name": "options",
19641
- "privacy": "private",
19642
- "type": {
19643
- "text": "array"
19644
- },
19645
- "attribute": "options"
19646
- },
19647
19368
  {
19648
19369
  "kind": "field",
19649
19370
  "name": "optionSelected",
@@ -20012,13 +19733,6 @@
20012
19733
  "description": "DEPRECATED - use `appearance=\"inverse\"` instead.",
20013
19734
  "fieldName": "onDark"
20014
19735
  },
20015
- {
20016
- "name": "options",
20017
- "type": {
20018
- "text": "array"
20019
- },
20020
- "fieldName": "options"
20021
- },
20022
19736
  {
20023
19737
  "name": "optionSelected",
20024
19738
  "type": {
@@ -20196,7 +19910,7 @@
20196
19910
  "type": {
20197
19911
  "text": "object"
20198
19912
  },
20199
- "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) { if (!ctx.isExpanded) { return; } evt.preventDefault(); evt.stopPropagation(); // `pop()` is safe here: getEnabledOptions returns a fresh filtered array. const lastOption = getEnabledOptions(component.menu).pop(); if (lastOption) { component.menu.updateActiveOption(lastOption); } }, Enter(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); if (!ctx.isExpanded) { component.dropdown.show(); return; } component.menu.makeSelection(); }, Home(component, evt, ctx) { if (!ctx.isExpanded) { return; } evt.preventDefault(); evt.stopPropagation(); const [firstOption] = getEnabledOptions(component.menu); if (firstOption) { component.menu.updateActiveOption(firstOption); } }, 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); }, }"
19913
+ "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; } if (!ctx.isExpanded) { component.dropdown.show(); } component.menu.updateActiveOption(lastOption); }, 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; } if (!ctx.isExpanded) { component.dropdown.show(); } component.menu.updateActiveOption(firstOption); }, 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); }, }"
20200
19914
  }
20201
19915
  ],
20202
19916
  "exports": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurodesignsystem-dev/auro-formkit",
3
- "version": "0.0.0-pr1510.2",
3
+ "version": "0.0.0-pr1511.0",
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": {
@@ -27,10 +27,7 @@
27
27
  ],
28
28
  "files": [
29
29
  "components/*/dist/**/*",
30
- "components/*/demo/**/*.md",
31
- "components/*/demo/**/*.html",
32
- "components/*/demo/**/*.min.*",
33
- "components/*/demo/**/*.json",
30
+ "components/*/demo/**/*",
34
31
  "CHANGELOG.md",
35
32
  "README.md",
36
33
  "LICENSE",
@@ -158,7 +155,6 @@
158
155
  "concat": "^1.0.3",
159
156
  "concurrently": "^9.2.1",
160
157
  "core-js": "^3.49.0",
161
- "cross-env": "^10.1.0",
162
158
  "date-fns": "^4.1.0",
163
159
  "eslint": "^10.2.1",
164
160
  "eslint-plugin-jsdoc": "^62.9.0",
@@ -1,43 +0,0 @@
1
- /**
2
- * Single source of truth for parsing and matching blackout dates across the
3
- * datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
4
- * pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
5
- * helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
6
- * `disabledDays` rules are defined exactly once.
7
- */
8
- /**
9
- * Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
10
- * representing local midnight on that calendar day. Returns `null` for
11
- * inputs that don't parse to a finite timestamp.
12
- *
13
- * Uses the `new Date(year, monthIndex, day)` constructor (NOT
14
- * `new Date(isoStr)`) so the result is local-midnight rather than UTC
15
- * midnight — required to keep the calendar grid aligned with the user's
16
- * local calendar day in negative-offset timezones.
17
- *
18
- * @param {string} isoStr - Date string in `YYYY-MM-DD` format.
19
- * @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
20
- */
21
- export function parseIsoToTimestamp(isoStr: string): number | null;
22
- /**
23
- * Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
24
- * legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
25
- * array. Use this for O(1) membership checks in hot paths.
26
- *
27
- * @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
28
- * @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
29
- * @returns {Set<number>}
30
- */
31
- export function buildBlackoutSet(disabledDays: Array<string | number> | undefined, blackoutDates: Array<string> | undefined): Set<number>;
32
- /**
33
- * One-shot membership test for a single timestamp against both blackout
34
- * sources. Allocates a Set on each call; only use this in cold paths
35
- * (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
36
- * Set returned from `buildBlackoutSet` and `.has(ts)` directly.
37
- *
38
- * @param {number} dateTs - Unix timestamp (seconds) to test.
39
- * @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
40
- * @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
41
- * @returns {boolean}
42
- */
43
- export function isBlackoutTimestamp(dateTs: number, disabledDays: Array<string | number> | undefined, blackoutDates: Array<string> | undefined): boolean;