@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.0 → 0.0.0-pr1497.2

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 (132) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
  2. package/components/bibtemplate/dist/index.js +9 -1
  3. package/components/bibtemplate/dist/registered.js +9 -1
  4. package/components/checkbox/demo/css-only.html +57 -0
  5. package/components/checkbox/demo/css-only.md +146 -0
  6. package/components/checkbox/demo/customize.min.js +1 -1
  7. package/components/checkbox/demo/getting-started.min.js +1 -1
  8. package/components/checkbox/demo/index.min.js +1 -1
  9. package/components/checkbox/demo/pages.json +1 -1
  10. package/components/checkbox/demo/styles.min.css +1 -1
  11. package/components/checkbox/demo/why-checkbox.html +57 -0
  12. package/components/checkbox/demo/why-checkbox.md +86 -0
  13. package/components/checkbox/dist/index.js +1 -1
  14. package/components/checkbox/dist/registered.js +1 -1
  15. package/components/combobox/demo/css-only.html +57 -0
  16. package/components/combobox/demo/css-only.md +209 -0
  17. package/components/combobox/demo/customize.min.js +250 -16
  18. package/components/combobox/demo/getting-started.min.js +250 -16
  19. package/components/combobox/demo/index.min.js +250 -16
  20. package/components/combobox/demo/pages.json +1 -1
  21. package/components/combobox/demo/styles.min.css +1 -1
  22. package/components/combobox/demo/why-combobox.html +57 -0
  23. package/components/combobox/demo/why-combobox.md +113 -0
  24. package/components/combobox/dist/index.js +250 -16
  25. package/components/combobox/dist/registered.js +250 -16
  26. package/components/counter/demo/css-only.html +57 -0
  27. package/components/counter/demo/css-only.md +184 -0
  28. package/components/counter/demo/customize.min.js +249 -15
  29. package/components/counter/demo/index.min.js +249 -15
  30. package/components/counter/demo/keyboard-behavior.md +1 -0
  31. package/components/counter/demo/pages.json +1 -1
  32. package/components/counter/demo/styles.min.css +1 -1
  33. package/components/counter/demo/why-counter.html +57 -0
  34. package/components/counter/demo/why-counter.md +108 -0
  35. package/components/counter/dist/index.js +10 -2
  36. package/components/counter/dist/registered.js +10 -2
  37. package/components/datepicker/demo/accessibility.md +54 -3
  38. package/components/datepicker/demo/api.md +63 -53
  39. package/components/datepicker/demo/css-only.html +57 -0
  40. package/components/datepicker/demo/css-only.md +151 -0
  41. package/components/datepicker/demo/customize.html +2 -0
  42. package/components/datepicker/demo/customize.js +19 -0
  43. package/components/datepicker/demo/customize.md +56 -0
  44. package/components/datepicker/demo/customize.min.js +36147 -0
  45. package/components/datepicker/demo/design.md +3 -1
  46. package/components/datepicker/demo/index.js +5 -1
  47. package/components/datepicker/demo/index.md +104 -15
  48. package/components/datepicker/demo/index.min.js +2485 -261
  49. package/components/datepicker/demo/keyboard-behavior.md +201 -2
  50. package/components/datepicker/demo/pages.json +1 -1
  51. package/components/datepicker/demo/styles.min.css +1 -1
  52. package/components/datepicker/demo/voiceover.md +21 -12
  53. package/components/datepicker/demo/why-datepicker.html +57 -0
  54. package/components/datepicker/demo/why-datepicker.md +133 -0
  55. package/components/datepicker/dist/index.js +2348 -211
  56. package/components/datepicker/dist/registered.js +2348 -211
  57. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +113 -13
  58. package/components/datepicker/dist/src/auro-calendar-month.d.ts +38 -1
  59. package/components/datepicker/dist/src/auro-calendar.d.ts +258 -0
  60. package/components/datepicker/dist/src/auro-datepicker.d.ts +141 -41
  61. package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
  62. package/components/dropdown/demo/accessibility.md +11 -0
  63. package/components/dropdown/demo/api.md +1 -0
  64. package/components/dropdown/demo/css-only.html +57 -0
  65. package/components/dropdown/demo/css-only.md +219 -0
  66. package/components/dropdown/demo/customize.md +3 -0
  67. package/components/dropdown/demo/customize.min.js +239 -13
  68. package/components/dropdown/demo/getting-started.min.js +239 -13
  69. package/components/dropdown/demo/index.min.js +239 -13
  70. package/components/dropdown/demo/keyboard-behavior.md +1 -0
  71. package/components/dropdown/demo/pages.json +1 -1
  72. package/components/dropdown/demo/styles.min.css +1 -1
  73. package/components/dropdown/demo/why-dropdown.html +57 -0
  74. package/components/dropdown/demo/why-dropdown.md +97 -0
  75. package/components/dropdown/dist/auro-dropdown.d.ts +34 -1
  76. package/components/dropdown/dist/index.js +239 -13
  77. package/components/dropdown/dist/registered.js +239 -13
  78. package/components/form/demo/css-only.html +57 -0
  79. package/components/form/demo/css-only.md +156 -0
  80. package/components/form/demo/customize.min.js +3098 -259
  81. package/components/form/demo/getting-started.min.js +3098 -259
  82. package/components/form/demo/index.min.js +3098 -259
  83. package/components/form/demo/pages.json +1 -1
  84. package/components/form/demo/registerDemoDeps.min.js +3098 -259
  85. package/components/form/demo/styles.min.css +1 -1
  86. package/components/form/demo/why-form.html +57 -0
  87. package/components/form/demo/why-form.md +101 -0
  88. package/components/input/demo/css-only.html +57 -0
  89. package/components/input/demo/css-only.md +199 -0
  90. package/components/input/demo/customize.min.js +1 -1
  91. package/components/input/demo/getting-started.min.js +1 -1
  92. package/components/input/demo/index.min.js +1 -1
  93. package/components/input/demo/pages.json +1 -1
  94. package/components/input/demo/styles.min.css +1 -1
  95. package/components/input/demo/why-input.html +57 -0
  96. package/components/input/demo/why-input.md +121 -0
  97. package/components/input/dist/index.js +1 -1
  98. package/components/input/dist/registered.js +1 -1
  99. package/components/menu/demo/css-only.html +57 -0
  100. package/components/menu/demo/css-only.md +166 -0
  101. package/components/menu/demo/pages.json +1 -1
  102. package/components/menu/demo/styles.min.css +1 -1
  103. package/components/menu/demo/why-menu.html +57 -0
  104. package/components/menu/demo/why-menu.md +104 -0
  105. package/components/radio/demo/css-only.html +57 -0
  106. package/components/radio/demo/css-only.md +151 -0
  107. package/components/radio/demo/customize.min.js +1764 -0
  108. package/components/radio/demo/demo-support.min.js +55807 -0
  109. package/components/radio/demo/getting-started.js +1 -1
  110. package/components/radio/demo/getting-started.md +1 -1
  111. package/components/radio/demo/getting-started.min.js +1783 -0
  112. package/components/radio/demo/index.min.js +1 -1
  113. package/components/radio/demo/pages.json +1 -1
  114. package/components/radio/demo/styles.min.css +1 -1
  115. package/components/radio/demo/why-radio.html +57 -0
  116. package/components/radio/demo/why-radio.md +92 -0
  117. package/components/radio/dist/index.js +1 -1
  118. package/components/radio/dist/registered.js +1 -1
  119. package/components/select/demo/css-only.html +57 -0
  120. package/components/select/demo/css-only.md +203 -0
  121. package/components/select/demo/customize.min.js +249 -15
  122. package/components/select/demo/getting-started.min.js +249 -15
  123. package/components/select/demo/index.min.js +249 -15
  124. package/components/select/demo/keyboard-behavior.md +1 -0
  125. package/components/select/demo/pages.json +1 -1
  126. package/components/select/demo/styles.min.css +1 -1
  127. package/components/select/demo/why-select.html +57 -0
  128. package/components/select/demo/why-select.md +128 -0
  129. package/components/select/dist/index.js +249 -15
  130. package/components/select/dist/registered.js +249 -15
  131. package/custom-elements.json +1171 -92
  132. package/package.json +8 -8
@@ -128,6 +128,17 @@
128
128
  },
129
129
  "attribute": "isFullscreen",
130
130
  "reflects": true
131
+ },
132
+ {
133
+ "kind": "field",
134
+ "name": "showFooter",
135
+ "privacy": "public",
136
+ "type": {
137
+ "text": "boolean"
138
+ },
139
+ "description": "If declared, the footer slot will be rendered even when not in fullscreen mode.",
140
+ "attribute": "showFooter",
141
+ "reflects": true
131
142
  }
132
143
  ],
133
144
  "events": [
@@ -159,6 +170,14 @@
159
170
  },
160
171
  "default": "false",
161
172
  "fieldName": "large"
173
+ },
174
+ {
175
+ "name": "showFooter",
176
+ "type": {
177
+ "text": "boolean"
178
+ },
179
+ "description": "If declared, the footer slot will be rendered even when not in fullscreen mode.",
180
+ "fieldName": "showFooter"
162
181
  }
163
182
  ],
164
183
  "superclass": {
@@ -4179,13 +4198,6 @@
4179
4198
  "text": "Number"
4180
4199
  }
4181
4200
  },
4182
- {
4183
- "name": "hoveredDate",
4184
- "description": "Hovered date.",
4185
- "type": {
4186
- "text": "Number"
4187
- }
4188
- },
4189
4201
  {
4190
4202
  "name": "day",
4191
4203
  "description": "An object containing the dateFrom and day of month values.",
@@ -4194,7 +4206,7 @@
4194
4206
  }
4195
4207
  }
4196
4208
  ],
4197
- "description": "Handles selected and hovered states of the calendar cell when the date changes.",
4209
+ "description": "Handles selected state of the calendar cell when the selection changes.\nAlso clears any imperative range preview classes so classMap is the\nsole source of truth after a selection update.",
4198
4210
  "privacy": "private",
4199
4211
  "return": {
4200
4212
  "type": {
@@ -4216,7 +4228,18 @@
4216
4228
  {
4217
4229
  "kind": "method",
4218
4230
  "name": "handleHover",
4219
- "description": "Handles user hover events and dispatches a custom event.",
4231
+ "description": "Handles user hover events and dispatches a custom event.\nDoes NOT set any reactive properties — the range preview is handled\nimperatively by the calendar component to avoid O(N) re-renders.",
4232
+ "privacy": "private",
4233
+ "return": {
4234
+ "type": {
4235
+ "text": "void"
4236
+ }
4237
+ }
4238
+ },
4239
+ {
4240
+ "kind": "method",
4241
+ "name": "handleFocus",
4242
+ "description": "Handles focus events on the cell button.\nDispatches a lightweight event for the calendar to handle SR\nannouncements and range preview updates without triggering\nany Lit lifecycle updates.",
4220
4243
  "privacy": "private",
4221
4244
  "return": {
4222
4245
  "type": {
@@ -4224,6 +4247,51 @@
4224
4247
  }
4225
4248
  }
4226
4249
  },
4250
+ {
4251
+ "kind": "method",
4252
+ "name": "isOutOfRange",
4253
+ "parameters": [
4254
+ {
4255
+ "name": "day",
4256
+ "description": "An object containing the dateFrom and day of month values.",
4257
+ "type": {
4258
+ "text": "Object"
4259
+ }
4260
+ },
4261
+ {
4262
+ "name": "min",
4263
+ "description": "The minimum date value.",
4264
+ "type": {
4265
+ "text": "Number"
4266
+ }
4267
+ },
4268
+ {
4269
+ "name": "max",
4270
+ "description": "The maximum date value.",
4271
+ "type": {
4272
+ "text": "Number"
4273
+ }
4274
+ }
4275
+ ],
4276
+ "description": "Checks if the current date is outside the valid min/max range.\nOut-of-range cells are not focusable and are hidden from screen readers.",
4277
+ "privacy": "private",
4278
+ "return": {
4279
+ "type": {
4280
+ "text": "Boolean"
4281
+ }
4282
+ }
4283
+ },
4284
+ {
4285
+ "kind": "method",
4286
+ "name": "isBlackout",
4287
+ "description": "Checks if the current date is a blackout date (in disabledDays but within range).\nBlackout cells are focusable but not selectable.",
4288
+ "privacy": "private",
4289
+ "return": {
4290
+ "type": {
4291
+ "text": "Boolean"
4292
+ }
4293
+ }
4294
+ },
4227
4295
  {
4228
4296
  "kind": "method",
4229
4297
  "name": "isEnabled",
@@ -4257,7 +4325,7 @@
4257
4325
  }
4258
4326
  }
4259
4327
  ],
4260
- "description": "Checks if the current date is a valid date depending on the min and max values.",
4328
+ "description": "Checks if the current date is disabled based on min/max range or the\nlegacy disabledDays timestamp list. Sets the `disabled` attribute on the\nhost when the date falls outside the allowed range or appears in\ndisabledDays. Note: blackout dates are handled separately by `isBlackout()`.",
4261
4329
  "privacy": "private",
4262
4330
  "return": {
4263
4331
  "type": {
@@ -4265,6 +4333,39 @@
4265
4333
  }
4266
4334
  }
4267
4335
  },
4336
+ {
4337
+ "kind": "method",
4338
+ "name": "getCellId",
4339
+ "description": "Generates a unique cell ID in the format cell-YYYY-MM-DD.",
4340
+ "privacy": "private",
4341
+ "return": {
4342
+ "type": {
4343
+ "text": "String"
4344
+ }
4345
+ }
4346
+ },
4347
+ {
4348
+ "kind": "method",
4349
+ "name": "getAriaLabel",
4350
+ "description": "Generates a localized aria-label for the cell button using Intl.DateTimeFormat.\nIncludes range position and blackout status.",
4351
+ "privacy": "private",
4352
+ "return": {
4353
+ "type": {
4354
+ "text": "String"
4355
+ }
4356
+ }
4357
+ },
4358
+ {
4359
+ "kind": "method",
4360
+ "name": "getRangePosition",
4361
+ "description": "Determines the range position of this cell relative to the current selection.",
4362
+ "privacy": "private",
4363
+ "return": {
4364
+ "type": {
4365
+ "text": "String|null"
4366
+ }
4367
+ }
4368
+ },
4268
4369
  {
4269
4370
  "kind": "method",
4270
4371
  "name": "isDepartDate",
@@ -4413,7 +4514,7 @@
4413
4514
  }
4414
4515
  }
4415
4516
  ],
4416
- "description": "Checks if the current date is a highlighted date.",
4517
+ "description": "Checks if the current date is a referenced date.",
4417
4518
  "return": {
4418
4519
  "type": {
4419
4520
  "text": ""
@@ -4462,6 +4563,98 @@
4462
4563
  }
4463
4564
  }
4464
4565
  },
4566
+ {
4567
+ "kind": "method",
4568
+ "name": "configurePopover",
4569
+ "description": "Configures the popover instance with the calendar month boundary.\nCalled from firstUpdated and updated because the popover element is only\nrendered after hasPopoverContent becomes true (set by handleSlotContent).",
4570
+ "privacy": "private",
4571
+ "return": {
4572
+ "type": {
4573
+ "text": "void"
4574
+ }
4575
+ }
4576
+ },
4577
+ {
4578
+ "kind": "method",
4579
+ "name": "updateHostAria",
4580
+ "description": "Updates ARIA attributes on the host element so that\nariaActiveDescendantElement can expose cell info to the SR.",
4581
+ "privacy": "private",
4582
+ "return": {
4583
+ "type": {
4584
+ "text": "void"
4585
+ }
4586
+ }
4587
+ },
4588
+ {
4589
+ "kind": "method",
4590
+ "name": "focusButton",
4591
+ "description": "Programmatically focuses the cell's interactive button element.\nUses focusVisible: true so the :focus-visible ring appears even when\nthe bib was opened via mouse click (which sets mouse input modality).",
4592
+ "return": {
4593
+ "type": {
4594
+ "text": "void"
4595
+ }
4596
+ }
4597
+ },
4598
+ {
4599
+ "kind": "method",
4600
+ "name": "setActive",
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
+ "return": {
4603
+ "type": {
4604
+ "text": "void"
4605
+ }
4606
+ }
4607
+ },
4608
+ {
4609
+ "kind": "method",
4610
+ "name": "clearActive",
4611
+ "description": "Imperatively marks this cell as inactive without triggering a Lit re-render.",
4612
+ "return": {
4613
+ "type": {
4614
+ "text": "void"
4615
+ }
4616
+ }
4617
+ },
4618
+ {
4619
+ "kind": "method",
4620
+ "name": "updateRangePreviewClasses",
4621
+ "parameters": [
4622
+ {
4623
+ "name": "hoveredDate",
4624
+ "description": "Unix timestamp of the currently hovered/focused date.",
4625
+ "type": {
4626
+ "text": "Number"
4627
+ }
4628
+ },
4629
+ {
4630
+ "name": "dateFrom",
4631
+ "description": "Unix timestamp of the selected departure date.",
4632
+ "type": {
4633
+ "text": "Number"
4634
+ }
4635
+ }
4636
+ ],
4637
+ "description": "Updates range preview classes imperatively (no Lit re-render).\nCalled by the calendar component when the hovered date changes\nduring range selection (dateFrom set, dateTo not yet set).",
4638
+ "return": {
4639
+ "type": {
4640
+ "text": "void"
4641
+ }
4642
+ }
4643
+ },
4644
+ {
4645
+ "kind": "method",
4646
+ "name": "clearRangePreviewClasses",
4647
+ "description": "Clears all imperative range preview classes from the cell button.\nCalled when a selection occurs so classMap becomes the sole source of truth.",
4648
+ "return": {
4649
+ "type": {
4650
+ "text": "void"
4651
+ }
4652
+ }
4653
+ },
4654
+ {
4655
+ "kind": "method",
4656
+ "name": "renderCellButton"
4657
+ },
4465
4658
  {
4466
4659
  "kind": "field",
4467
4660
  "name": "day",
@@ -4482,16 +4675,6 @@
4482
4675
  "default": "false",
4483
4676
  "attribute": "selected"
4484
4677
  },
4485
- {
4486
- "kind": "field",
4487
- "name": "hovered",
4488
- "privacy": "public",
4489
- "type": {
4490
- "text": "boolean"
4491
- },
4492
- "default": "false",
4493
- "attribute": "hovered"
4494
- },
4495
4678
  {
4496
4679
  "kind": "field",
4497
4680
  "name": "dateTo",
@@ -4563,16 +4746,6 @@
4563
4746
  "default": "[]",
4564
4747
  "attribute": "disabledDays"
4565
4748
  },
4566
- {
4567
- "kind": "field",
4568
- "name": "hoveredDate",
4569
- "privacy": "public",
4570
- "type": {
4571
- "text": "null"
4572
- },
4573
- "default": "null",
4574
- "attribute": "hoveredDate"
4575
- },
4576
4749
  {
4577
4750
  "kind": "field",
4578
4751
  "name": "isCurrentDate",
@@ -4611,6 +4784,24 @@
4611
4784
  "default": "false",
4612
4785
  "attribute": "renderForDateSlot"
4613
4786
  },
4787
+ {
4788
+ "kind": "field",
4789
+ "name": "active",
4790
+ "type": {
4791
+ "text": "boolean"
4792
+ },
4793
+ "default": "false"
4794
+ },
4795
+ {
4796
+ "kind": "field",
4797
+ "name": "hasPopoverContent",
4798
+ "privacy": "public",
4799
+ "type": {
4800
+ "text": "boolean"
4801
+ },
4802
+ "default": "false",
4803
+ "attribute": "hasPopoverContent"
4804
+ },
4614
4805
  {
4615
4806
  "kind": "field",
4616
4807
  "name": "runtimeUtils",
@@ -4622,11 +4813,23 @@
4622
4813
  }
4623
4814
  ],
4624
4815
  "events": [
4816
+ {
4817
+ "name": "calendar-cell-activate",
4818
+ "type": {
4819
+ "text": "CustomEvent"
4820
+ }
4821
+ },
4625
4822
  {
4626
4823
  "name": "date-is-hovered",
4627
4824
  "type": {
4628
4825
  "text": "CustomEvent"
4629
4826
  }
4827
+ },
4828
+ {
4829
+ "name": "calendar-cell-focused",
4830
+ "type": {
4831
+ "text": "CustomEvent"
4832
+ }
4630
4833
  }
4631
4834
  ],
4632
4835
  "attributes": [
@@ -4646,14 +4849,6 @@
4646
4849
  "default": "false",
4647
4850
  "fieldName": "selected"
4648
4851
  },
4649
- {
4650
- "name": "hovered",
4651
- "type": {
4652
- "text": "boolean"
4653
- },
4654
- "default": "false",
4655
- "fieldName": "hovered"
4656
- },
4657
4852
  {
4658
4853
  "name": "dateTo",
4659
4854
  "type": {
@@ -4710,14 +4905,6 @@
4710
4905
  "default": "[]",
4711
4906
  "fieldName": "disabledDays"
4712
4907
  },
4713
- {
4714
- "name": "hoveredDate",
4715
- "type": {
4716
- "text": "null"
4717
- },
4718
- "default": "null",
4719
- "fieldName": "hoveredDate"
4720
- },
4721
4908
  {
4722
4909
  "name": "isCurrentDate",
4723
4910
  "type": {
@@ -4748,6 +4935,14 @@
4748
4935
  },
4749
4936
  "default": "false",
4750
4937
  "fieldName": "renderForDateSlot"
4938
+ },
4939
+ {
4940
+ "name": "hasPopoverContent",
4941
+ "type": {
4942
+ "text": "boolean"
4943
+ },
4944
+ "default": "false",
4945
+ "fieldName": "hasPopoverContent"
4751
4946
  }
4752
4947
  ],
4753
4948
  "superclass": {
@@ -4756,6 +4951,10 @@
4756
4951
  },
4757
4952
  "tagName": "auro-formkit-calendar-cell",
4758
4953
  "customElement": true
4954
+ },
4955
+ {
4956
+ "kind": "variable",
4957
+ "name": "blackout"
4759
4958
  }
4760
4959
  ],
4761
4960
  "exports": [
@@ -4806,19 +5005,107 @@
4806
5005
  }
4807
5006
  }
4808
5007
  },
5008
+ {
5009
+ "kind": "method",
5010
+ "name": "getHeadingId",
5011
+ "description": "Returns the unique heading ID for this month, used by aria-labelledby.",
5012
+ "privacy": "private",
5013
+ "return": {
5014
+ "type": {
5015
+ "text": "String"
5016
+ }
5017
+ }
5018
+ },
4809
5019
  {
4810
5020
  "kind": "method",
4811
5021
  "name": "localeChanged"
4812
5022
  },
4813
5023
  {
4814
5024
  "kind": "method",
4815
- "name": "renderDay",
5025
+ "name": "renderDayOfWeek",
4816
5026
  "parameters": [
4817
5027
  {
4818
- "name": "day"
5028
+ "name": "dayOfWeek",
5029
+ "description": "The short day name.",
5030
+ "type": {
5031
+ "text": "String"
5032
+ }
5033
+ },
5034
+ {
5035
+ "name": "index",
5036
+ "description": "The index in the dayNamesOfTheWeek array.",
5037
+ "type": {
5038
+ "text": "Number"
5039
+ }
4819
5040
  }
4820
- ]
4821
- },
5041
+ ],
5042
+ "description": "Renders a day-of-week header with abbr attribute for the full day name.",
5043
+ "privacy": "private",
5044
+ "return": {
5045
+ "type": {
5046
+ "text": "Object"
5047
+ }
5048
+ }
5049
+ },
5050
+ {
5051
+ "kind": "method",
5052
+ "name": "getFocusableCells",
5053
+ "description": "Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.",
5054
+ "return": {
5055
+ "type": {
5056
+ "text": "Array"
5057
+ }
5058
+ }
5059
+ },
5060
+ {
5061
+ "kind": "method",
5062
+ "name": "handleDateHovered",
5063
+ "parameters": [
5064
+ {
5065
+ "name": "event",
5066
+ "description": "The date-is-hovered event from a cell.",
5067
+ "type": {
5068
+ "text": "CustomEvent"
5069
+ }
5070
+ }
5071
+ ],
5072
+ "description": "Overrides the base class handler to prevent setting `this.hoveredDate`\nas a reactive property. Instead, just dispatches the event upward so\nthe calendar can handle range preview imperatively.",
5073
+ "privacy": "private",
5074
+ "return": {
5075
+ "type": {
5076
+ "text": "void"
5077
+ }
5078
+ }
5079
+ },
5080
+ {
5081
+ "kind": "method",
5082
+ "name": "handleTbodyMouseLeave",
5083
+ "description": "Dispatches a bubbling event when the mouse leaves the date grid body\nso the parent calendar can clear the range hover preview.",
5084
+ "privacy": "private",
5085
+ "return": {
5086
+ "type": {
5087
+ "text": "void"
5088
+ }
5089
+ }
5090
+ },
5091
+ {
5092
+ "kind": "method",
5093
+ "name": "renderWeek",
5094
+ "parameters": [
5095
+ {
5096
+ "name": "week"
5097
+ }
5098
+ ]
5099
+ },
5100
+ {
5101
+ "kind": "method",
5102
+ "name": "renderDay",
5103
+ "parameters": [
5104
+ {
5105
+ "name": "day"
5106
+ }
5107
+ ]
5108
+ },
4822
5109
  {
4823
5110
  "kind": "field",
4824
5111
  "name": "monthFirst",
@@ -4836,7 +5123,7 @@
4836
5123
  "type": {
4837
5124
  "text": "string"
4838
5125
  },
4839
- "description": "BCP 47 locale tag (such as `en-US`) for calendar localization.\nas wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.",
5126
+ "description": "BCP 47 locale tag (such as `en-US`) for calendar localization.\nAs wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.",
4840
5127
  "attribute": "localeCode"
4841
5128
  },
4842
5129
  {
@@ -4850,6 +5137,20 @@
4850
5137
  "attribute": "monthNames"
4851
5138
  }
4852
5139
  ],
5140
+ "events": [
5141
+ {
5142
+ "name": "hovered-date-changed",
5143
+ "type": {
5144
+ "text": "CustomEvent"
5145
+ }
5146
+ },
5147
+ {
5148
+ "name": "calendar-month-mouseleave",
5149
+ "type": {
5150
+ "text": "CustomEvent"
5151
+ }
5152
+ }
5153
+ ],
4853
5154
  "attributes": [
4854
5155
  {
4855
5156
  "name": "monthFirst",
@@ -4863,7 +5164,7 @@
4863
5164
  "type": {
4864
5165
  "text": "string"
4865
5166
  },
4866
- "description": "BCP 47 locale tag (such as `en-US`) for calendar localization.\nas wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.",
5167
+ "description": "BCP 47 locale tag (such as `en-US`) for calendar localization.\nAs wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.",
4867
5168
  "fieldName": "localeCode"
4868
5169
  },
4869
5170
  {
@@ -4944,6 +5245,16 @@
4944
5245
  {
4945
5246
  "kind": "method",
4946
5247
  "name": "handlePrevMonth",
5248
+ "parameters": [
5249
+ {
5250
+ "name": "options",
5251
+ "description": "Optional settings.",
5252
+ "optional": true,
5253
+ "type": {
5254
+ "text": "@param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell\n * recomputation. Used by arrow key handlers that manage the active cell themselves.\n * "
5255
+ }
5256
+ }
5257
+ ],
4947
5258
  "description": "Updates the month and year when the user navigates to the previous calendar month.",
4948
5259
  "privacy": "private",
4949
5260
  "return": {
@@ -4955,6 +5266,16 @@
4955
5266
  {
4956
5267
  "kind": "method",
4957
5268
  "name": "handleNextMonth",
5269
+ "parameters": [
5270
+ {
5271
+ "name": "options",
5272
+ "description": "Optional settings.",
5273
+ "optional": true,
5274
+ "type": {
5275
+ "text": "@param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell\n * recomputation. Used by arrow key handlers that manage the active cell themselves.\n * "
5276
+ }
5277
+ }
5278
+ ],
4958
5279
  "description": "Updates the month and year when the user navigates to the next calendar month.",
4959
5280
  "privacy": "private",
4960
5281
  "return": {
@@ -4963,6 +5284,28 @@
4963
5284
  }
4964
5285
  }
4965
5286
  },
5287
+ {
5288
+ "kind": "method",
5289
+ "name": "announceMonthChange",
5290
+ "description": "Announces the current month and year via the live region after navigation.",
5291
+ "privacy": "private",
5292
+ "return": {
5293
+ "type": {
5294
+ "text": "void"
5295
+ }
5296
+ }
5297
+ },
5298
+ {
5299
+ "kind": "method",
5300
+ "name": "updateActiveCellForVisibleMonth",
5301
+ "description": "Updates the active cell after month navigation (prev/next buttons).\nAlways moves the active cell to the first enabled date in the newly\nvisible months so that tabbing back to the grid lands on an enabled cell.",
5302
+ "privacy": "private",
5303
+ "return": {
5304
+ "type": {
5305
+ "text": "void"
5306
+ }
5307
+ }
5308
+ },
4966
5309
  {
4967
5310
  "kind": "method",
4968
5311
  "name": "renderAllCalendars",
@@ -5003,6 +5346,404 @@
5003
5346
  }
5004
5347
  }
5005
5348
  },
5349
+ {
5350
+ "kind": "method",
5351
+ "name": "getMonthComponents",
5352
+ "description": "Gets all rendered month components.",
5353
+ "privacy": "private",
5354
+ "return": {
5355
+ "type": {
5356
+ "text": "Array"
5357
+ }
5358
+ }
5359
+ },
5360
+ {
5361
+ "kind": "method",
5362
+ "name": "getAllFocusableCells",
5363
+ "description": "Gets all focusable cells across all rendered months.",
5364
+ "privacy": "private",
5365
+ "return": {
5366
+ "type": {
5367
+ "text": "Array"
5368
+ }
5369
+ }
5370
+ },
5371
+ {
5372
+ "kind": "method",
5373
+ "name": "setActiveCell",
5374
+ "parameters": [
5375
+ {
5376
+ "name": "date",
5377
+ "description": "Unix timestamp of the cell to activate.",
5378
+ "type": {
5379
+ "text": "Number"
5380
+ }
5381
+ }
5382
+ ],
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.",
5384
+ "return": {
5385
+ "type": {
5386
+ "text": "void"
5387
+ }
5388
+ }
5389
+ },
5390
+ {
5391
+ "kind": "method",
5392
+ "name": "focusActiveCell",
5393
+ "description": "Focuses the calendar grid wrapper and sets the active cell.\nDOM focus stays on the grid wrapper; the aria-live region\ntells the screen reader which cell is \"active\".",
5394
+ "return": {
5395
+ "type": {
5396
+ "text": "void"
5397
+ }
5398
+ }
5399
+ },
5400
+ {
5401
+ "kind": "method",
5402
+ "name": "handleGridFocusIn",
5403
+ "description": "Shows the activeCell ring when the grid gains focus.",
5404
+ "privacy": "private",
5405
+ "return": {
5406
+ "type": {
5407
+ "text": "void"
5408
+ }
5409
+ }
5410
+ },
5411
+ {
5412
+ "kind": "method",
5413
+ "name": "handleGridFocusOut",
5414
+ "description": "Hides the activeCell ring when the grid loses focus.",
5415
+ "privacy": "private",
5416
+ "return": {
5417
+ "type": {
5418
+ "text": "void"
5419
+ }
5420
+ }
5421
+ },
5422
+ {
5423
+ "kind": "method",
5424
+ "name": "computeActiveDate",
5425
+ "parameters": [
5426
+ {
5427
+ "name": "options",
5428
+ "default": "{}",
5429
+ "description": "Optional settings.",
5430
+ "optional": true,
5431
+ "type": {
5432
+ "text": "@param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date\n * shortcut (step 1). Used after month navigation so the active cell lands in the\n * newly visible month instead of jumping back to the selected date's month.\n * "
5433
+ }
5434
+ }
5435
+ ],
5436
+ "description": "Computes the initial active date from data properties alone — no DOM required.\nPriority:\n 1. Selected date (dateFrom) if within range\n 2. Today's date if not disabled (in-range and not blackout)\n 3. First future non-disabled date (scans day-by-day from today up to 1 year)\n 4. First previous non-disabled date (scans day-by-day from today up to 1 year)\n 5. First enabled date in finite [min, max] range\n 5b. First enabled date scanning forward from finite min (unbounded max)\n 5c. First enabled date scanning backward from finite max (unbounded min)\n 6. First in-range date (even if blackout) so focus can land somewhere\n 7. Undefined — no valid target.",
5437
+ "privacy": "private",
5438
+ "return": {
5439
+ "type": {
5440
+ "text": "Number|undefined"
5441
+ }
5442
+ }
5443
+ },
5444
+ {
5445
+ "kind": "method",
5446
+ "name": "isDateInRange",
5447
+ "parameters": [
5448
+ {
5449
+ "name": "targetTs",
5450
+ "description": "Unix timestamp in seconds.",
5451
+ "type": {
5452
+ "text": "Number"
5453
+ }
5454
+ }
5455
+ ],
5456
+ "description": "Checks if a target date (unix seconds) is within the configured [min, max] range.\nReturns false if the date falls outside the range, preventing navigation\nto months where all dates are disabled.",
5457
+ "privacy": "private",
5458
+ "return": {
5459
+ "type": {
5460
+ "text": "Boolean"
5461
+ }
5462
+ }
5463
+ },
5464
+ {
5465
+ "kind": "method",
5466
+ "name": "handleGridKeyDown",
5467
+ "parameters": [
5468
+ {
5469
+ "name": "event",
5470
+ "description": "The keyboard event.",
5471
+ "type": {
5472
+ "text": "KeyboardEvent"
5473
+ }
5474
+ }
5475
+ ],
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.",
5477
+ "privacy": "private",
5478
+ "return": {
5479
+ "type": {
5480
+ "text": "void"
5481
+ }
5482
+ }
5483
+ },
5484
+ {
5485
+ "kind": "method",
5486
+ "name": "handleMonthBoundary",
5487
+ "parameters": [
5488
+ {
5489
+ "name": "event",
5490
+ "description": "The boundary event with direction and source date info.",
5491
+ "type": {
5492
+ "text": "CustomEvent"
5493
+ }
5494
+ }
5495
+ ],
5496
+ "description": "Handles cross-month boundary navigation events from month components.",
5497
+ "privacy": "private",
5498
+ "return": {
5499
+ "type": {
5500
+ "text": "void"
5501
+ }
5502
+ }
5503
+ },
5504
+ {
5505
+ "kind": "method",
5506
+ "name": "handleCellActivate",
5507
+ "parameters": [
5508
+ {
5509
+ "name": "event",
5510
+ "description": "The activation event with target date.",
5511
+ "type": {
5512
+ "text": "CustomEvent"
5513
+ }
5514
+ }
5515
+ ],
5516
+ "description": "Handles cell activation events from month components.",
5517
+ "privacy": "private",
5518
+ "return": {
5519
+ "type": {
5520
+ "text": "void"
5521
+ }
5522
+ }
5523
+ },
5524
+ {
5525
+ "kind": "method",
5526
+ "name": "handleCellFocused",
5527
+ "parameters": [
5528
+ {
5529
+ "name": "event",
5530
+ "description": "The calendar-cell-focused event.",
5531
+ "type": {
5532
+ "text": "CustomEvent"
5533
+ }
5534
+ }
5535
+ ],
5536
+ "description": "Handles focus events from calendar cells.\nUpdates the live region with an SR announcement and triggers\nthe imperative range preview if applicable.",
5537
+ "privacy": "private",
5538
+ "return": {
5539
+ "type": {
5540
+ "text": "void"
5541
+ }
5542
+ }
5543
+ },
5544
+ {
5545
+ "kind": "method",
5546
+ "name": "buildFocusAnnouncement",
5547
+ "parameters": [
5548
+ {
5549
+ "name": "date",
5550
+ "description": "Unix timestamp (seconds) of the focused cell.",
5551
+ "type": {
5552
+ "text": "Number"
5553
+ }
5554
+ }
5555
+ ],
5556
+ "description": "Builds a full SR announcement string for a focused cell date.\nIncludes the localized date, range position, popover content,\nand blackout status.",
5557
+ "privacy": "private",
5558
+ "return": {
5559
+ "type": {
5560
+ "text": "String"
5561
+ }
5562
+ }
5563
+ },
5564
+ {
5565
+ "kind": "method",
5566
+ "name": "getRangePositionLabel",
5567
+ "parameters": [
5568
+ {
5569
+ "name": "date",
5570
+ "description": "Unix timestamp (seconds).",
5571
+ "type": {
5572
+ "text": "Number"
5573
+ }
5574
+ }
5575
+ ],
5576
+ "description": "Determines the range position label for a given date.",
5577
+ "privacy": "private",
5578
+ "return": {
5579
+ "type": {
5580
+ "text": "String|null"
5581
+ }
5582
+ }
5583
+ },
5584
+ {
5585
+ "kind": "method",
5586
+ "name": "isDateBlackout",
5587
+ "parameters": [
5588
+ {
5589
+ "name": "dateTs",
5590
+ "description": "Unix timestamp (seconds).",
5591
+ "type": {
5592
+ "text": "Number"
5593
+ }
5594
+ }
5595
+ ],
5596
+ "description": "Checks whether a given date is a blackout date.",
5597
+ "privacy": "private",
5598
+ "return": {
5599
+ "type": {
5600
+ "text": "Boolean"
5601
+ }
5602
+ }
5603
+ },
5604
+ {
5605
+ "kind": "method",
5606
+ "name": "updateRangePreview",
5607
+ "parameters": [
5608
+ {
5609
+ "name": "hoveredDate",
5610
+ "description": "Unix timestamp of the hovered/focused date.",
5611
+ "type": {
5612
+ "text": "Number"
5613
+ }
5614
+ }
5615
+ ],
5616
+ "description": "Updates the range preview classes imperatively across all cells.\nOnly active when in range mode with dateFrom set and dateTo not yet set.",
5617
+ "privacy": "private",
5618
+ "return": {
5619
+ "type": {
5620
+ "text": "void"
5621
+ }
5622
+ }
5623
+ },
5624
+ {
5625
+ "kind": "method",
5626
+ "name": "clearRangePreview",
5627
+ "parameters": [
5628
+ {
5629
+ "name": "options",
5630
+ "description": "Optional settings.",
5631
+ "optional": true,
5632
+ "type": {
5633
+ "text": "@param {boolean} [options.force=false] - When true, clears classes even\n * when both dateFrom and dateTo are set. Used by month nav handlers\n * since the subsequent re-render re-applies classMap-managed classes,\n * while `lastHoveredDate` (not in classMap) would otherwise persist.\n * "
5634
+ }
5635
+ }
5636
+ ],
5637
+ "description": "Clears range preview classes from all cells.",
5638
+ "privacy": "private",
5639
+ "return": {
5640
+ "type": {
5641
+ "text": "void"
5642
+ }
5643
+ }
5644
+ },
5645
+ {
5646
+ "kind": "method",
5647
+ "name": "hoveredDateChanged",
5648
+ "parameters": [
5649
+ {
5650
+ "name": "event",
5651
+ "description": "The hovered-date-changed event from a month.",
5652
+ "type": {
5653
+ "text": "CustomEvent"
5654
+ }
5655
+ }
5656
+ ],
5657
+ "description": "Overrides the base class handler to prevent setting `this.hoveredDate`\nas a reactive property. Instead, handles the range preview imperatively.",
5658
+ "privacy": "private",
5659
+ "return": {
5660
+ "type": {
5661
+ "text": "void"
5662
+ }
5663
+ }
5664
+ },
5665
+ {
5666
+ "kind": "method",
5667
+ "name": "scrollToActiveCell",
5668
+ "description": "Scrolls the calendar to ensure the month containing the active cell is visible.",
5669
+ "privacy": "private",
5670
+ "return": {
5671
+ "type": {
5672
+ "text": "void"
5673
+ }
5674
+ }
5675
+ },
5676
+ {
5677
+ "kind": "method",
5678
+ "name": "getOrCreateLiveRegion",
5679
+ "description": "Returns (and lazily creates) an aria-live region inside the dropdown's\n<dialog> element. This placement is critical for two reasons:\n\n1. Inside the dialog's accessible scope — dialog.showModal() makes\n everything outside the top-layer dialog inert, and desktop modal\n mode uses _setPageInert() on document.body siblings. A live region\n on document.body would be invisible to screen readers in both cases.\n\n2. Not nested in shadow DOM — Chrome inconsistently observes aria-live\n mutations inside shadow DOM across machines and versions. The dialog\n element is only one shadow root deep (the dropdown bib's shadow DOM),\n which Chrome handles reliably. The calendar's own shadow DOM (nested\n inside the bib via slotting) is two+ levels deep and unreliable.",
5680
+ "privacy": "private",
5681
+ "return": {
5682
+ "type": {
5683
+ "text": "HTMLElement"
5684
+ }
5685
+ }
5686
+ },
5687
+ {
5688
+ "kind": "method",
5689
+ "name": "announceSelection",
5690
+ "parameters": [
5691
+ {
5692
+ "name": "dateStr",
5693
+ "description": "The localized date string to announce.",
5694
+ "type": {
5695
+ "text": "String"
5696
+ }
5697
+ }
5698
+ ],
5699
+ "description": "Announces a date selection or focus change via the live region.\nUses requestAnimationFrame to ensure the clear and set happen in\nseparate rendering frames — Chrome may coalesce synchronous or\nmicrotask-deferred mutations into a single accessibility tree update.",
5700
+ "privacy": "private",
5701
+ "return": {
5702
+ "type": {
5703
+ "text": "void"
5704
+ }
5705
+ }
5706
+ },
5707
+ {
5708
+ "kind": "method",
5709
+ "name": "announceFocusDebounced",
5710
+ "parameters": [
5711
+ {
5712
+ "name": "dateStr",
5713
+ "description": "The localized date string to announce.",
5714
+ "type": {
5715
+ "text": "String"
5716
+ }
5717
+ }
5718
+ ],
5719
+ "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.",
5720
+ "privacy": "private",
5721
+ "return": {
5722
+ "type": {
5723
+ "text": "void"
5724
+ }
5725
+ }
5726
+ },
5727
+ {
5728
+ "kind": "method",
5729
+ "name": "formatAnnouncementDate",
5730
+ "parameters": [
5731
+ {
5732
+ "name": "timestamp",
5733
+ "description": "Unix timestamp in seconds.",
5734
+ "type": {
5735
+ "text": "String|Number"
5736
+ }
5737
+ }
5738
+ ],
5739
+ "description": "Formats a Unix timestamp (seconds) as a localized date string for SR announcements.",
5740
+ "privacy": "private",
5741
+ "return": {
5742
+ "type": {
5743
+ "text": "String"
5744
+ }
5745
+ }
5746
+ },
5006
5747
  {
5007
5748
  "kind": "method",
5008
5749
  "name": "injectSlot",
@@ -5106,6 +5847,26 @@
5106
5847
  "attribute": "isFullscreen",
5107
5848
  "reflects": true
5108
5849
  },
5850
+ {
5851
+ "kind": "field",
5852
+ "name": "activeCellDate",
5853
+ "type": {
5854
+ "text": "null"
5855
+ },
5856
+ "description": "The date of the currently active cell (Unix timestamp).\nOnly one cell across the entire calendar has tabindex=\"0\" at a time.",
5857
+ "privacy": "private",
5858
+ "default": "null"
5859
+ },
5860
+ {
5861
+ "kind": "field",
5862
+ "name": "_gridHasFocus",
5863
+ "type": {
5864
+ "text": "boolean"
5865
+ },
5866
+ "description": "Whether the #calendarGrid wrapper currently has focus.\nUsed to determine whether the visualFocus ring should be shown.",
5867
+ "privacy": "private",
5868
+ "default": "false"
5869
+ },
5109
5870
  {
5110
5871
  "kind": "field",
5111
5872
  "name": "firstMonthRenderable",
@@ -5121,6 +5882,16 @@
5121
5882
  "privacy": "private",
5122
5883
  "default": "null"
5123
5884
  },
5885
+ {
5886
+ "kind": "field",
5887
+ "name": "disabledDays",
5888
+ "type": {
5889
+ "text": "array"
5890
+ },
5891
+ "description": "Legacy array of disabled-date timestamps.",
5892
+ "privacy": "private",
5893
+ "default": "[]"
5894
+ },
5124
5895
  {
5125
5896
  "kind": "field",
5126
5897
  "name": "numCalendars",
@@ -5162,6 +5933,12 @@
5162
5933
  "default": "undefined",
5163
5934
  "attribute": "dropdown"
5164
5935
  },
5936
+ {
5937
+ "kind": "field",
5938
+ "name": "_calendarInstanceId",
5939
+ "description": "Unique instance ID for the live region element.",
5940
+ "privacy": "private"
5941
+ },
5165
5942
  {
5166
5943
  "kind": "field",
5167
5944
  "name": "calendarEndMonth",
@@ -5872,6 +6649,17 @@
5872
6649
  }
5873
6650
  }
5874
6651
  },
6652
+ {
6653
+ "kind": "method",
6654
+ "name": "focusActiveCellWhenReady",
6655
+ "description": "Attempts to focus the active calendar cell using a rAF retry loop.\nShared by both fullscreen and desktop open paths.",
6656
+ "privacy": "private",
6657
+ "return": {
6658
+ "type": {
6659
+ "text": "void"
6660
+ }
6661
+ }
6662
+ },
5875
6663
  {
5876
6664
  "kind": "method",
5877
6665
  "name": "configureDropdown",
@@ -6019,7 +6807,27 @@
6019
6807
  "description": "Clears the current value(s) of the datepicker.",
6020
6808
  "return": {
6021
6809
  "type": {
6022
- "text": "void"
6810
+ "text": "void"
6811
+ }
6812
+ }
6813
+ },
6814
+ {
6815
+ "kind": "method",
6816
+ "name": "isBlackoutDate",
6817
+ "parameters": [
6818
+ {
6819
+ "name": "dateStr",
6820
+ "description": "A date string in the component's configured format.",
6821
+ "type": {
6822
+ "text": "string"
6823
+ }
6824
+ }
6825
+ ],
6826
+ "description": "Checks whether a formatted date string matches a blackout date.",
6827
+ "privacy": "private",
6828
+ "return": {
6829
+ "type": {
6830
+ "text": "boolean"
6023
6831
  }
6024
6832
  }
6025
6833
  },
@@ -6192,7 +7000,7 @@
6192
7000
  "parameters": [
6193
7001
  {
6194
7002
  "name": "event",
6195
- "description": "The click event object.",
7003
+ "description": "The mouse event from the clear button click.",
6196
7004
  "type": {
6197
7005
  "text": "MouseEvent"
6198
7006
  }
@@ -6365,6 +7173,126 @@
6365
7173
  "attribute": "range",
6366
7174
  "reflects": true
6367
7175
  },
7176
+ {
7177
+ "kind": "field",
7178
+ "name": "rangeLabelStart",
7179
+ "privacy": "public",
7180
+ "type": {
7181
+ "text": "string"
7182
+ },
7183
+ "description": "Label announced for the range start date cell.",
7184
+ "default": "'range start'",
7185
+ "attribute": "rangeLabelStart",
7186
+ "reflects": true
7187
+ },
7188
+ {
7189
+ "kind": "field",
7190
+ "name": "rangeLabelEnd",
7191
+ "privacy": "public",
7192
+ "type": {
7193
+ "text": "string"
7194
+ },
7195
+ "description": "Label announced for the range end date cell.",
7196
+ "default": "'range end'",
7197
+ "attribute": "rangeLabelEnd",
7198
+ "reflects": true
7199
+ },
7200
+ {
7201
+ "kind": "field",
7202
+ "name": "rangeLabelBeforeRange",
7203
+ "privacy": "public",
7204
+ "type": {
7205
+ "text": "string"
7206
+ },
7207
+ "description": "Label announced for cells before the range start.",
7208
+ "default": "'before range'",
7209
+ "attribute": "rangeLabelBeforeRange",
7210
+ "reflects": true
7211
+ },
7212
+ {
7213
+ "kind": "field",
7214
+ "name": "rangeLabelInRange",
7215
+ "privacy": "public",
7216
+ "type": {
7217
+ "text": "string"
7218
+ },
7219
+ "description": "Label announced for cells within the selected range.",
7220
+ "default": "'in range'",
7221
+ "attribute": "rangeLabelInRange",
7222
+ "reflects": true
7223
+ },
7224
+ {
7225
+ "kind": "field",
7226
+ "name": "rangeLabelAfterRange",
7227
+ "privacy": "public",
7228
+ "type": {
7229
+ "text": "string"
7230
+ },
7231
+ "description": "Label announced for cells after the range (or after start when no end is selected).",
7232
+ "default": "'after range'",
7233
+ "attribute": "rangeLabelAfterRange",
7234
+ "reflects": true
7235
+ },
7236
+ {
7237
+ "kind": "field",
7238
+ "name": "blackoutDates",
7239
+ "privacy": "public",
7240
+ "type": {
7241
+ "text": "array"
7242
+ },
7243
+ "description": "Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).",
7244
+ "default": "[]",
7245
+ "attribute": "blackoutDates",
7246
+ "reflects": true
7247
+ },
7248
+ {
7249
+ "kind": "field",
7250
+ "name": "blackoutLabel",
7251
+ "privacy": "public",
7252
+ "type": {
7253
+ "text": "string"
7254
+ },
7255
+ "description": "Label announced for blackout (disabled but in-range) date cells.",
7256
+ "default": "'unavailable'",
7257
+ "attribute": "blackoutLabel",
7258
+ "reflects": true
7259
+ },
7260
+ {
7261
+ "kind": "field",
7262
+ "name": "navLabelPrevMonth",
7263
+ "privacy": "public",
7264
+ "type": {
7265
+ "text": "string"
7266
+ },
7267
+ "description": "Accessible label for the previous month navigation button.",
7268
+ "default": "'Previous month'",
7269
+ "attribute": "navLabelPrevMonth",
7270
+ "reflects": true
7271
+ },
7272
+ {
7273
+ "kind": "field",
7274
+ "name": "navLabelNextMonth",
7275
+ "privacy": "public",
7276
+ "type": {
7277
+ "text": "string"
7278
+ },
7279
+ "description": "Accessible label for the next month navigation button.",
7280
+ "default": "'Next month'",
7281
+ "attribute": "navLabelNextMonth",
7282
+ "reflects": true
7283
+ },
7284
+ {
7285
+ "kind": "field",
7286
+ "name": "calendarGridLabel",
7287
+ "privacy": "public",
7288
+ "type": {
7289
+ "text": "string"
7290
+ },
7291
+ "description": "Accessible label for the calendar grid containing the days of the month.",
7292
+ "default": "'Calendar days of the month'",
7293
+ "attribute": "calendarGridLabel",
7294
+ "reflects": true
7295
+ },
6368
7296
  {
6369
7297
  "kind": "field",
6370
7298
  "name": "stacked",
@@ -6766,6 +7694,15 @@
6766
7694
  "attribute": "minDate",
6767
7695
  "reflects": true
6768
7696
  },
7697
+ {
7698
+ "kind": "field",
7699
+ "name": "monthFirst",
7700
+ "privacy": "private",
7701
+ "type": {
7702
+ "text": "boolean"
7703
+ },
7704
+ "attribute": "monthFirst"
7705
+ },
6769
7706
  {
6770
7707
  "kind": "field",
6771
7708
  "name": "monthNames",
@@ -6826,7 +7763,7 @@
6826
7763
  "type": {
6827
7764
  "text": "string"
6828
7765
  },
6829
- "description": "Custom help text message to display when validity = `customError`.",
7766
+ "description": "Custom help text message to display when validity = `customError`.\nAlso used as the validation message when a blackout date is typed into the input.",
6830
7767
  "attribute": "setCustomValidityCustomError"
6831
7768
  },
6832
7769
  {
@@ -6929,8 +7866,11 @@
6929
7866
  "description": "Notifies that new slot content has been added to the datepicker."
6930
7867
  },
6931
7868
  {
6932
- "description": "Notifies that the component value(s) have been validated.",
6933
- "name": "auroFormElement-validated"
7869
+ "name": "auroFormElement-validated",
7870
+ "type": {
7871
+ "text": "CustomEvent"
7872
+ },
7873
+ "description": "Notifies that the component value(s) have been validated."
6934
7874
  }
6935
7875
  ],
6936
7876
  "attributes": [
@@ -6952,6 +7892,24 @@
6952
7892
  "default": "false",
6953
7893
  "fieldName": "autoPlacement"
6954
7894
  },
7895
+ {
7896
+ "name": "blackoutDates",
7897
+ "type": {
7898
+ "text": "array"
7899
+ },
7900
+ "description": "Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).",
7901
+ "default": "[]",
7902
+ "fieldName": "blackoutDates"
7903
+ },
7904
+ {
7905
+ "name": "blackoutLabel",
7906
+ "type": {
7907
+ "text": "string"
7908
+ },
7909
+ "description": "Label announced for blackout (disabled but in-range) date cells.",
7910
+ "default": "'unavailable'",
7911
+ "fieldName": "blackoutLabel"
7912
+ },
6955
7913
  {
6956
7914
  "name": "calendarEndDate",
6957
7915
  "type": {
@@ -6961,6 +7919,15 @@
6961
7919
  "default": "undefined",
6962
7920
  "fieldName": "calendarEndDate"
6963
7921
  },
7922
+ {
7923
+ "name": "calendarGridLabel",
7924
+ "type": {
7925
+ "text": "string"
7926
+ },
7927
+ "description": "Accessible label for the calendar grid containing the days of the month.",
7928
+ "default": "'Calendar days of the month'",
7929
+ "fieldName": "calendarGridLabel"
7930
+ },
6964
7931
  {
6965
7932
  "name": "calendarFocusDate",
6966
7933
  "type": {
@@ -7012,30 +7979,6 @@
7012
7979
  "description": "When defined, sets persistent validity to `customError` and sets the validation message to the attribute value.",
7013
7980
  "fieldName": "error"
7014
7981
  },
7015
- {
7016
- "name": "hasFocus",
7017
- "type": {
7018
- "text": "boolean"
7019
- },
7020
- "default": "false",
7021
- "fieldName": "hasFocus"
7022
- },
7023
- {
7024
- "name": "hasValue",
7025
- "type": {
7026
- "text": "boolean"
7027
- },
7028
- "default": "false",
7029
- "fieldName": "hasValue"
7030
- },
7031
- {
7032
- "name": "hasAllValues",
7033
- "type": {
7034
- "text": "boolean"
7035
- },
7036
- "default": "false",
7037
- "fieldName": "hasAllValues"
7038
- },
7039
7982
  {
7040
7983
  "name": "format",
7041
7984
  "type": {
@@ -7061,6 +8004,30 @@
7061
8004
  "default": "'sm'",
7062
8005
  "fieldName": "fullscreenBreakpoint"
7063
8006
  },
8007
+ {
8008
+ "name": "hasAllValues",
8009
+ "type": {
8010
+ "text": "boolean"
8011
+ },
8012
+ "default": "false",
8013
+ "fieldName": "hasAllValues"
8014
+ },
8015
+ {
8016
+ "name": "hasFocus",
8017
+ "type": {
8018
+ "text": "boolean"
8019
+ },
8020
+ "default": "false",
8021
+ "fieldName": "hasFocus"
8022
+ },
8023
+ {
8024
+ "name": "hasValue",
8025
+ "type": {
8026
+ "text": "boolean"
8027
+ },
8028
+ "default": "false",
8029
+ "fieldName": "hasValue"
8030
+ },
7064
8031
  {
7065
8032
  "name": "inputmode",
7066
8033
  "type": {
@@ -7107,6 +8074,13 @@
7107
8074
  "description": "Minimum date. All dates before will be disabled.",
7108
8075
  "fieldName": "minDate"
7109
8076
  },
8077
+ {
8078
+ "name": "monthFirst",
8079
+ "type": {
8080
+ "text": "boolean"
8081
+ },
8082
+ "fieldName": "monthFirst"
8083
+ },
7110
8084
  {
7111
8085
  "name": "monthNames",
7112
8086
  "type": {
@@ -7116,22 +8090,31 @@
7116
8090
  "fieldName": "monthNames"
7117
8091
  },
7118
8092
  {
7119
- "name": "noFlip",
8093
+ "name": "navLabelNextMonth",
7120
8094
  "type": {
7121
- "text": "boolean"
8095
+ "text": "string"
7122
8096
  },
7123
- "description": "If declared, the bib will NOT flip to an alternate position\nwhen there isn't enough space in the specified `placement`.",
7124
- "default": "false",
7125
- "fieldName": "noFlip"
8097
+ "description": "Accessible label for the next month navigation button.",
8098
+ "default": "'Next month'",
8099
+ "fieldName": "navLabelNextMonth"
7126
8100
  },
7127
8101
  {
7128
- "name": "shift",
8102
+ "name": "navLabelPrevMonth",
8103
+ "type": {
8104
+ "text": "string"
8105
+ },
8106
+ "description": "Accessible label for the previous month navigation button.",
8107
+ "default": "'Previous month'",
8108
+ "fieldName": "navLabelPrevMonth"
8109
+ },
8110
+ {
8111
+ "name": "noFlip",
7129
8112
  "type": {
7130
8113
  "text": "boolean"
7131
8114
  },
7132
- "description": "If declared, the dropdown will shift its position to avoid being cut off by the viewport.",
8115
+ "description": "If declared, the bib will NOT flip to an alternate position\nwhen there isn't enough space in the specified `placement`.",
7133
8116
  "default": "false",
7134
- "fieldName": "shift"
8117
+ "fieldName": "noFlip"
7135
8118
  },
7136
8119
  {
7137
8120
  "name": "noValidate",
@@ -7194,6 +8177,51 @@
7194
8177
  "default": "false",
7195
8178
  "fieldName": "range"
7196
8179
  },
8180
+ {
8181
+ "name": "rangeLabelAfterRange",
8182
+ "type": {
8183
+ "text": "string"
8184
+ },
8185
+ "description": "Label announced for cells after the range (or after start when no end is selected).",
8186
+ "default": "'after range'",
8187
+ "fieldName": "rangeLabelAfterRange"
8188
+ },
8189
+ {
8190
+ "name": "rangeLabelBeforeRange",
8191
+ "type": {
8192
+ "text": "string"
8193
+ },
8194
+ "description": "Label announced for cells before the range start.",
8195
+ "default": "'before range'",
8196
+ "fieldName": "rangeLabelBeforeRange"
8197
+ },
8198
+ {
8199
+ "name": "rangeLabelEnd",
8200
+ "type": {
8201
+ "text": "string"
8202
+ },
8203
+ "description": "Label announced for the range end date cell.",
8204
+ "default": "'range end'",
8205
+ "fieldName": "rangeLabelEnd"
8206
+ },
8207
+ {
8208
+ "name": "rangeLabelInRange",
8209
+ "type": {
8210
+ "text": "string"
8211
+ },
8212
+ "description": "Label announced for cells within the selected range.",
8213
+ "default": "'in range'",
8214
+ "fieldName": "rangeLabelInRange"
8215
+ },
8216
+ {
8217
+ "name": "rangeLabelStart",
8218
+ "type": {
8219
+ "text": "string"
8220
+ },
8221
+ "description": "Label announced for the range start date cell.",
8222
+ "default": "'range start'",
8223
+ "fieldName": "rangeLabelStart"
8224
+ },
7197
8225
  {
7198
8226
  "name": "referenceDates",
7199
8227
  "type": {
@@ -7224,7 +8252,7 @@
7224
8252
  "type": {
7225
8253
  "text": "string"
7226
8254
  },
7227
- "description": "Custom help text message to display when validity = `customError`.",
8255
+ "description": "Custom help text message to display when validity = `customError`.\nAlso used as the validation message when a blackout date is typed into the input.",
7228
8256
  "fieldName": "setCustomValidityCustomError"
7229
8257
  },
7230
8258
  {
@@ -7251,6 +8279,15 @@
7251
8279
  "description": "Custom help text message to display when validity = `valueMissing`.",
7252
8280
  "fieldName": "setCustomValidityValueMissing"
7253
8281
  },
8282
+ {
8283
+ "name": "shift",
8284
+ "type": {
8285
+ "text": "boolean"
8286
+ },
8287
+ "description": "If declared, the dropdown will shift its position to avoid being cut off by the viewport.",
8288
+ "default": "false",
8289
+ "fieldName": "shift"
8290
+ },
7254
8291
  {
7255
8292
  "name": "stacked",
7256
8293
  "type": {
@@ -7365,7 +8402,7 @@
7365
8402
  "type": {
7366
8403
  "text": "object"
7367
8404
  },
7368
- "default": "{ Escape(component, evt) { if (!component.dropdown || !component.dropdown.isPopoverVisible) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups. // Because stopPropagation prevents the document-level floatingUI keydown handler from // seeing this event, we must also close the dropdown explicitly. evt.stopPropagation(); component.dropdown.hide(); }, }"
8405
+ "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(); }, }"
7369
8406
  }
7370
8407
  ],
7371
8408
  "exports": [
@@ -8064,6 +9101,29 @@
8064
9101
  "name": "updateFocusTrap",
8065
9102
  "privacy": "private"
8066
9103
  },
9104
+ {
9105
+ "kind": "method",
9106
+ "name": "_getActiveElements",
9107
+ "description": "Returns the chain of active (focused) elements through shadow roots.",
9108
+ "privacy": "private",
9109
+ "return": {
9110
+ "type": {
9111
+ "text": "Array<HTMLElement>"
9112
+ }
9113
+ }
9114
+ },
9115
+ {
9116
+ "kind": "method",
9117
+ "name": "_setPageInert",
9118
+ "description": "Sets `inert` on sibling elements of the dropdown's top-level host\nso that content outside the dropdown is not interactive while the modal is open.\nWalks up through shadow DOM boundaries to find the outermost host element\nin the light DOM, then sets `inert` on siblings at each ancestor level\nto ensure all page content outside the host subtree is inert.",
9119
+ "privacy": "private"
9120
+ },
9121
+ {
9122
+ "kind": "method",
9123
+ "name": "_clearPageInert",
9124
+ "description": "Restores `inert` state on siblings that were tracked by `_setPageInert`.\nUses reference counting so inert is only cleared when the last modal\ndropdown releases a given element. Preserves the original inert state\nso externally-inerted elements are not inadvertently re-enabled.",
9125
+ "privacy": "private"
9126
+ },
8067
9127
  {
8068
9128
  "kind": "method",
8069
9129
  "name": "handleFocusout",
@@ -8370,6 +9430,17 @@
8370
9430
  "attribute": "autoPlacement",
8371
9431
  "reflects": true
8372
9432
  },
9433
+ {
9434
+ "kind": "field",
9435
+ "name": "desktopModal",
9436
+ "privacy": "public",
9437
+ "type": {
9438
+ "text": "boolean"
9439
+ },
9440
+ "description": "If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.",
9441
+ "attribute": "desktopModal",
9442
+ "reflects": true
9443
+ },
8373
9444
  {
8374
9445
  "kind": "field",
8375
9446
  "name": "disableEventShow",
@@ -8676,6 +9747,14 @@
8676
9747
  "description": "If declared, bib's position will be automatically calculated where to appear.",
8677
9748
  "fieldName": "autoPlacement"
8678
9749
  },
9750
+ {
9751
+ "name": "desktopModal",
9752
+ "type": {
9753
+ "text": "boolean"
9754
+ },
9755
+ "description": "If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.",
9756
+ "fieldName": "desktopModal"
9757
+ },
8679
9758
  {
8680
9759
  "name": "disableEventShow",
8681
9760
  "type": {