@aurodesignsystem-dev/auro-formkit 0.0.0-pr1422.2 → 0.0.0-pr1424.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 (38) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/README.md +183 -133
  3. package/components/checkbox/demo/api.min.js +1 -1
  4. package/components/checkbox/demo/index.min.js +1 -1
  5. package/components/checkbox/dist/index.js +1 -1
  6. package/components/checkbox/dist/registered.js +1 -1
  7. package/components/combobox/demo/api.min.js +165 -276
  8. package/components/combobox/demo/index.min.js +165 -276
  9. package/components/combobox/dist/index.js +165 -276
  10. package/components/combobox/dist/registered.js +165 -276
  11. package/components/counter/demo/api.min.js +164 -275
  12. package/components/counter/demo/index.min.js +164 -275
  13. package/components/counter/dist/index.js +164 -275
  14. package/components/counter/dist/registered.js +164 -275
  15. package/components/datepicker/demo/api.min.js +165 -276
  16. package/components/datepicker/demo/index.min.js +165 -276
  17. package/components/datepicker/dist/index.js +165 -276
  18. package/components/datepicker/dist/registered.js +165 -276
  19. package/components/dropdown/demo/api.min.js +164 -275
  20. package/components/dropdown/demo/index.min.js +164 -275
  21. package/components/dropdown/dist/index.js +164 -275
  22. package/components/dropdown/dist/registered.js +164 -275
  23. package/components/form/demo/api.md +460 -76
  24. package/components/form/demo/api.min.js +661 -1105
  25. package/components/form/demo/index.min.js +661 -1105
  26. package/components/input/demo/api.min.js +1 -1
  27. package/components/input/demo/index.min.js +1 -1
  28. package/components/input/dist/index.js +1 -1
  29. package/components/input/dist/registered.js +1 -1
  30. package/components/radio/demo/api.min.js +1 -1
  31. package/components/radio/demo/index.min.js +1 -1
  32. package/components/radio/dist/index.js +1 -1
  33. package/components/radio/dist/registered.js +1 -1
  34. package/components/select/demo/api.min.js +164 -275
  35. package/components/select/demo/index.min.js +164 -275
  36. package/components/select/dist/index.js +164 -275
  37. package/components/select/dist/registered.js +164 -275
  38. package/package.json +3 -3
@@ -195,55 +195,247 @@ Finally, a more complex form example with multiple form elements, including a da
195
195
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/complex.html) -->
196
196
  <!-- The below content is automatically added from ./../apiExamples/complex.html -->
197
197
  <style>
198
+ .complex-form {
199
+ display: grid;
200
+ gap: 1.5rem;
201
+ padding: 1.5rem;
202
+ border: 1px solid #2a2a2a;
203
+ border-radius: 1rem;
204
+ background: #fff;
205
+ }
206
+
207
+ .sectionGrid {
208
+ display: grid;
209
+ gap: 1rem;
210
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
211
+ }
212
+
213
+ .sectionCard {
214
+ display: grid;
215
+ gap: 1rem;
216
+ padding: 1rem;
217
+ border: 1px solid #d5d9e0;
218
+ border-radius: 0.75rem;
219
+ background: #fafbfc;
220
+ }
221
+
222
+ .sectionCard h3,
223
+ .sectionCard h4,
224
+ .sectionCard p {
225
+ margin: 0;
226
+ }
227
+
228
+ .sectionCopy {
229
+ color: #3f4854;
230
+ }
231
+
232
+ .stack {
233
+ display: grid;
234
+ gap: 1rem;
235
+ }
236
+
237
+ .counterBlock {
238
+ display: grid;
239
+ gap: 0.75rem;
240
+ }
241
+
198
242
  .submitBlock {
199
243
  margin-top: 1rem;
200
244
  display: flex;
201
245
  justify-content: flex-end;
246
+ flex-wrap: wrap;
202
247
  gap: 1rem;
203
248
  }
204
249
 
205
- .datepickerBlock {
206
- margin-top: 1rem;
207
- }
208
-
209
- .complex-form {
210
- display: block;
211
- padding: 1rem;
212
- border: 1px solid #2a2a2a;
213
- border-radius: 1rem;
250
+ @media (max-width: 767px) {
251
+ .complex-form {
252
+ padding: 1rem;
253
+ }
214
254
  }
215
255
  </style>
216
256
  <auro-form class="complex-form">
217
- <auro-input id="first-name" name="firstName" required>
218
- <span slot="label">First Name</span>
219
- </auro-input>
220
- <br />
221
- <auro-input id="last-name" name="lastName" required>
222
- <span slot="label">Last Name</span>
223
- </auro-input>
224
- <br />
225
- <auro-input id="occupation" name="occupation" required>
226
- <span slot="label">Occupation</span>
227
- </auro-input>
228
- <br />
229
- <auro-input-two id="cool-fact" name="coolFact" required>
230
- <span slot="label">Cool Fact</span>
231
- </auro-input-two>
232
- <div class="datepickerBlock">
233
- <h4>Pick a cool date</h4>
234
- <auro-datepicker id="date-example" name="dateExample" required>
235
- <span slot="fromLabel">Choose a date</span>
236
- <span slot="bib.fullscreen.fromLabel">Choose a date</span>
237
- </auro-datepicker>
257
+ <div class="sectionGrid">
258
+ <section class="sectionCard">
259
+ <h3>Traveler Details</h3>
260
+ <p class="sectionCopy">Standard text inputs, a required field, and a disabled state.</p>
261
+ <div class="stack">
262
+ <auro-input id="first-name" name="firstName" required>
263
+ <span slot="label">First Name</span>
264
+ </auro-input>
265
+ <auro-input id="last-name" name="lastName" required>
266
+ <span slot="label">Last Name</span>
267
+ </auro-input>
268
+ <auro-input id="occupation" name="occupation">
269
+ <span slot="label">Occupation</span>
270
+ <span slot="helpText">Optional field for a short role description.</span>
271
+ </auro-input>
272
+ <auro-input id="employee-id" name="employeeId" disabled value="AS-4821">
273
+ <span slot="label">Employee ID</span>
274
+ </auro-input>
275
+ <auro-input-two id="cool-fact" name="coolFact" required>
276
+ <span slot="label">Cool Fact</span>
277
+ </auro-input-two>
278
+ </div>
279
+ </section>
280
+ <section class="sectionCard">
281
+ <h3>Trip Timing</h3>
282
+ <p class="sectionCopy">Single-date and range-date examples inside the same form flow.</p>
283
+ <div class="stack">
284
+ <auro-datepicker id="date-example" name="dateExample" required>
285
+ <span slot="fromLabel">Departure date</span>
286
+ <span slot="bib.fullscreen.fromLabel">Departure date</span>
287
+ </auro-datepicker>
288
+ <auro-datepicker id="date-range" name="dateRange" range>
289
+ <span slot="fromLabel">Trip start</span>
290
+ <span slot="toLabel">Trip end</span>
291
+ <span slot="bib.fullscreen.fromLabel">Trip start</span>
292
+ <span slot="bib.fullscreen.toLabel">Trip end</span>
293
+ </auro-datepicker>
294
+ </div>
295
+ </section>
238
296
  </div>
239
- <div class="datepickerBlock">
240
- <h4>Pick a date range</h4>
241
- <auro-datepicker id="date-range" name="dateRange" required range>
242
- <span slot="fromLabel">Start</span>
243
- <span slot="toLabel">End</span>
244
- <span slot="bib.fullscreen.fromLabel">Start</span>
245
- <span slot="bib.fullscreen.toLabel">End</span>
246
- </auro-datepicker>
297
+ <div class="sectionGrid">
298
+ <section class="sectionCard">
299
+ <h3>Select States</h3>
300
+ <p class="sectionCopy">Required, multiselect, and disabled dropdown patterns.</p>
301
+ <div class="stack">
302
+ <auro-select id="seat-preference" name="seatPreference" required placeholder="Choose a seat preference">
303
+ <span slot="ariaLabel.bib.close">Close seat preference menu</span>
304
+ <span slot="bib.fullscreen.headline">Seat Preference</span>
305
+ <span slot="label">Seat Preference</span>
306
+ <auro-menu>
307
+ <auro-menuoption value="aisle">Aisle</auro-menuoption>
308
+ <auro-menuoption value="window">Window</auro-menuoption>
309
+ <auro-menuoption value="middle">Middle</auro-menuoption>
310
+ <auro-menuoption value="exit-row">Exit row</auro-menuoption>
311
+ </auro-menu>
312
+ </auro-select>
313
+ <auro-select id="trip-features" name="tripFeatures" multiselect value='["wifi","meal"]'>
314
+ <span slot="ariaLabel.bib.close">Close trip feature menu</span>
315
+ <span slot="bib.fullscreen.headline">Trip Features</span>
316
+ <span slot="label">Trip Features</span>
317
+ <span slot="helpText">Preselected values show multiselect state.</span>
318
+ <auro-menu>
319
+ <auro-menuoption value="wifi">Wi-Fi</auro-menuoption>
320
+ <auro-menuoption value="meal">Meal service</auro-menuoption>
321
+ <auro-menuoption value="power">Power outlet</auro-menuoption>
322
+ <auro-menuoption value="streaming">Streaming entertainment</auro-menuoption>
323
+ </auro-menu>
324
+ </auro-select>
325
+ <auro-select id="status-disabled" name="statusDisabled" disabled placeholder="Unavailable while syncing">
326
+ <span slot="ariaLabel.bib.close">Close status menu</span>
327
+ <span slot="bib.fullscreen.headline">Traveler Status</span>
328
+ <span slot="label">Traveler Status</span>
329
+ <auro-menu>
330
+ <auro-menuoption value="mvp">MVP</auro-menuoption>
331
+ <auro-menuoption value="gold">Gold</auro-menuoption>
332
+ <auro-menuoption value="75k">75K</auro-menuoption>
333
+ </auro-menu>
334
+ </auro-select>
335
+ </div>
336
+ </section>
337
+ <section class="sectionCard">
338
+ <h3>Combobox States</h3>
339
+ <p class="sectionCopy">Suggestion, filter validation, and disabled examples.</p>
340
+ <div class="stack">
341
+ <auro-combobox id="favorite-fruit" name="favoriteFruit" behavior="suggestion">
342
+ <span slot="ariaLabel.bib.close">Close combobox</span>
343
+ <span slot="ariaLabel.input.clear">Clear fruit</span>
344
+ <span slot="bib.fullscreen.headline">Favorite Fruit</span>
345
+ <span slot="label">Favorite Fruit</span>
346
+ <auro-menu>
347
+ <auro-menuoption value="Apples">Apples</auro-menuoption>
348
+ <auro-menuoption value="Oranges">Oranges</auro-menuoption>
349
+ <auro-menuoption value="Peaches">Peaches</auro-menuoption>
350
+ <auro-menuoption value="Grapes">Grapes</auro-menuoption>
351
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
352
+ </auro-menu>
353
+ </auro-combobox>
354
+ <auro-combobox
355
+ id="airport-code"
356
+ name="airportCode"
357
+ behavior="filter"
358
+ required
359
+ setCustomValidityValueMissingFilter="Select an airport from the list">
360
+ <span slot="ariaLabel.bib.close">Close airport list</span>
361
+ <span slot="ariaLabel.input.clear">Clear airport</span>
362
+ <span slot="bib.fullscreen.headline">Airport Search</span>
363
+ <span slot="label">Airport Search</span>
364
+ <span slot="helpText">Filter mode requires picking from the menu.</span>
365
+ <auro-menu>
366
+ <auro-menuoption value="SEA">Seattle</auro-menuoption>
367
+ <auro-menuoption value="PDX">Portland</auro-menuoption>
368
+ <auro-menuoption value="SFO">San Francisco</auro-menuoption>
369
+ <auro-menuoption value="LAX">Los Angeles</auro-menuoption>
370
+ <auro-menuoption static nomatch>No matching airport</auro-menuoption>
371
+ </auro-menu>
372
+ </auro-combobox>
373
+ <auro-combobox id="travel-policy" name="travelPolicy" disabled>
374
+ <span slot="ariaLabel.bib.close">Close policy list</span>
375
+ <span slot="ariaLabel.input.clear">Clear policy</span>
376
+ <span slot="bib.fullscreen.headline">Travel Policy</span>
377
+ <span slot="label">Travel Policy</span>
378
+ <auro-menu>
379
+ <auro-menuoption value="standard">Standard</auro-menuoption>
380
+ <auro-menuoption value="executive">Executive</auro-menuoption>
381
+ </auro-menu>
382
+ </auro-combobox>
383
+ </div>
384
+ </section>
385
+ </div>
386
+ <div class="sectionGrid">
387
+ <section class="sectionCard">
388
+ <h3>Choice Controls</h3>
389
+ <p class="sectionCopy">Checkbox and radio groups with required and horizontal states.</p>
390
+ <div class="stack">
391
+ <auro-checkbox-group required setCustomValidityValueMissing="Select at least one travel extra">
392
+ <span slot="legend">Travel Extras</span>
393
+ <span slot="helpText">Pick any extras that apply to this trip.</span>
394
+ <auro-checkbox value="priority-boarding" name="travelExtras" id="extra-priority">Priority boarding</auro-checkbox>
395
+ <auro-checkbox value="lounge" name="travelExtras" id="extra-lounge" checked>Lounge access</auro-checkbox>
396
+ <auro-checkbox value="bags" name="travelExtras" id="extra-bags">Checked bags</auro-checkbox>
397
+ </auro-checkbox-group>
398
+ <auro-radio-group horizontal required setCustomValidityValueMissing="Choose a cabin class">
399
+ <span slot="legend">Cabin Class</span>
400
+ <auro-radio id="cabin-main" label="Main" name="cabinClass" value="main"></auro-radio>
401
+ <auro-radio id="cabin-premium" label="Premium" name="cabinClass" value="premium"></auro-radio>
402
+ <auro-radio id="cabin-first" label="First" name="cabinClass" value="first"></auro-radio>
403
+ </auro-radio-group>
404
+ </div>
405
+ </section>
406
+ <section class="sectionCard">
407
+ <h3>Counter States</h3>
408
+ <p class="sectionCopy">Dropdown counter group plus standalone min/max and disabled states.</p>
409
+ <div class="stack">
410
+ <auro-counter-group id="passenger-counts" isDropdown>
411
+ <span slot="ariaLabel.bib.close">Close passenger selector</span>
412
+ <span slot="bib.fullscreen.headline">Passengers</span>
413
+ <div slot="label">Passengers</div>
414
+ <auro-counter value="1">
415
+ Adults
416
+ <span slot="description">18 years or older</span>
417
+ </auro-counter>
418
+ <auro-counter>
419
+ Children
420
+ <span slot="description">Under 17 years old</span>
421
+ </auro-counter>
422
+ <auro-counter>
423
+ Lap Infants
424
+ <span slot="description">Under 2 years</span>
425
+ </auro-counter>
426
+ </auro-counter-group>
427
+ <div class="counterBlock">
428
+ <auro-counter min="1" max="5" value="2">
429
+ Hotel Rooms
430
+ <span slot="description">Limit 5 rooms per booking</span>
431
+ </auro-counter>
432
+ <auro-counter disabled value="0">
433
+ Upgrade Vouchers
434
+ <span slot="description">Unavailable for this itinerary</span>
435
+ </auro-counter>
436
+ </div>
437
+ </div>
438
+ </section>
247
439
  </div>
248
440
  <div class="submitBlock">
249
441
  <auro-button type="reset">Reset</auro-button>
@@ -259,55 +451,247 @@ Finally, a more complex form example with multiple form elements, including a da
259
451
 
260
452
  ```html
261
453
  <style>
454
+ .complex-form {
455
+ display: grid;
456
+ gap: 1.5rem;
457
+ padding: 1.5rem;
458
+ border: 1px solid #2a2a2a;
459
+ border-radius: 1rem;
460
+ background: #fff;
461
+ }
462
+
463
+ .sectionGrid {
464
+ display: grid;
465
+ gap: 1rem;
466
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
467
+ }
468
+
469
+ .sectionCard {
470
+ display: grid;
471
+ gap: 1rem;
472
+ padding: 1rem;
473
+ border: 1px solid #d5d9e0;
474
+ border-radius: 0.75rem;
475
+ background: #fafbfc;
476
+ }
477
+
478
+ .sectionCard h3,
479
+ .sectionCard h4,
480
+ .sectionCard p {
481
+ margin: 0;
482
+ }
483
+
484
+ .sectionCopy {
485
+ color: #3f4854;
486
+ }
487
+
488
+ .stack {
489
+ display: grid;
490
+ gap: 1rem;
491
+ }
492
+
493
+ .counterBlock {
494
+ display: grid;
495
+ gap: 0.75rem;
496
+ }
497
+
262
498
  .submitBlock {
263
499
  margin-top: 1rem;
264
500
  display: flex;
265
501
  justify-content: flex-end;
502
+ flex-wrap: wrap;
266
503
  gap: 1rem;
267
504
  }
268
505
 
269
- .datepickerBlock {
270
- margin-top: 1rem;
271
- }
272
-
273
- .complex-form {
274
- display: block;
275
- padding: 1rem;
276
- border: 1px solid #2a2a2a;
277
- border-radius: 1rem;
506
+ @media (max-width: 767px) {
507
+ .complex-form {
508
+ padding: 1rem;
509
+ }
278
510
  }
279
511
  </style>
280
512
  <auro-form class="complex-form">
281
- <auro-input id="first-name" name="firstName" required>
282
- <span slot="label">First Name</span>
283
- </auro-input>
284
- <br />
285
- <auro-input id="last-name" name="lastName" required>
286
- <span slot="label">Last Name</span>
287
- </auro-input>
288
- <br />
289
- <auro-input id="occupation" name="occupation" required>
290
- <span slot="label">Occupation</span>
291
- </auro-input>
292
- <br />
293
- <auro-input-two id="cool-fact" name="coolFact" required>
294
- <span slot="label">Cool Fact</span>
295
- </auro-input-two>
296
- <div class="datepickerBlock">
297
- <h4>Pick a cool date</h4>
298
- <auro-datepicker id="date-example" name="dateExample" required>
299
- <span slot="fromLabel">Choose a date</span>
300
- <span slot="bib.fullscreen.fromLabel">Choose a date</span>
301
- </auro-datepicker>
513
+ <div class="sectionGrid">
514
+ <section class="sectionCard">
515
+ <h3>Traveler Details</h3>
516
+ <p class="sectionCopy">Standard text inputs, a required field, and a disabled state.</p>
517
+ <div class="stack">
518
+ <auro-input id="first-name" name="firstName" required>
519
+ <span slot="label">First Name</span>
520
+ </auro-input>
521
+ <auro-input id="last-name" name="lastName" required>
522
+ <span slot="label">Last Name</span>
523
+ </auro-input>
524
+ <auro-input id="occupation" name="occupation">
525
+ <span slot="label">Occupation</span>
526
+ <span slot="helpText">Optional field for a short role description.</span>
527
+ </auro-input>
528
+ <auro-input id="employee-id" name="employeeId" disabled value="AS-4821">
529
+ <span slot="label">Employee ID</span>
530
+ </auro-input>
531
+ <auro-input-two id="cool-fact" name="coolFact" required>
532
+ <span slot="label">Cool Fact</span>
533
+ </auro-input-two>
534
+ </div>
535
+ </section>
536
+ <section class="sectionCard">
537
+ <h3>Trip Timing</h3>
538
+ <p class="sectionCopy">Single-date and range-date examples inside the same form flow.</p>
539
+ <div class="stack">
540
+ <auro-datepicker id="date-example" name="dateExample" required>
541
+ <span slot="fromLabel">Departure date</span>
542
+ <span slot="bib.fullscreen.fromLabel">Departure date</span>
543
+ </auro-datepicker>
544
+ <auro-datepicker id="date-range" name="dateRange" range>
545
+ <span slot="fromLabel">Trip start</span>
546
+ <span slot="toLabel">Trip end</span>
547
+ <span slot="bib.fullscreen.fromLabel">Trip start</span>
548
+ <span slot="bib.fullscreen.toLabel">Trip end</span>
549
+ </auro-datepicker>
550
+ </div>
551
+ </section>
302
552
  </div>
303
- <div class="datepickerBlock">
304
- <h4>Pick a date range</h4>
305
- <auro-datepicker id="date-range" name="dateRange" required range>
306
- <span slot="fromLabel">Start</span>
307
- <span slot="toLabel">End</span>
308
- <span slot="bib.fullscreen.fromLabel">Start</span>
309
- <span slot="bib.fullscreen.toLabel">End</span>
310
- </auro-datepicker>
553
+ <div class="sectionGrid">
554
+ <section class="sectionCard">
555
+ <h3>Select States</h3>
556
+ <p class="sectionCopy">Required, multiselect, and disabled dropdown patterns.</p>
557
+ <div class="stack">
558
+ <auro-select id="seat-preference" name="seatPreference" required placeholder="Choose a seat preference">
559
+ <span slot="ariaLabel.bib.close">Close seat preference menu</span>
560
+ <span slot="bib.fullscreen.headline">Seat Preference</span>
561
+ <span slot="label">Seat Preference</span>
562
+ <auro-menu>
563
+ <auro-menuoption value="aisle">Aisle</auro-menuoption>
564
+ <auro-menuoption value="window">Window</auro-menuoption>
565
+ <auro-menuoption value="middle">Middle</auro-menuoption>
566
+ <auro-menuoption value="exit-row">Exit row</auro-menuoption>
567
+ </auro-menu>
568
+ </auro-select>
569
+ <auro-select id="trip-features" name="tripFeatures" multiselect value='["wifi","meal"]'>
570
+ <span slot="ariaLabel.bib.close">Close trip feature menu</span>
571
+ <span slot="bib.fullscreen.headline">Trip Features</span>
572
+ <span slot="label">Trip Features</span>
573
+ <span slot="helpText">Preselected values show multiselect state.</span>
574
+ <auro-menu>
575
+ <auro-menuoption value="wifi">Wi-Fi</auro-menuoption>
576
+ <auro-menuoption value="meal">Meal service</auro-menuoption>
577
+ <auro-menuoption value="power">Power outlet</auro-menuoption>
578
+ <auro-menuoption value="streaming">Streaming entertainment</auro-menuoption>
579
+ </auro-menu>
580
+ </auro-select>
581
+ <auro-select id="status-disabled" name="statusDisabled" disabled placeholder="Unavailable while syncing">
582
+ <span slot="ariaLabel.bib.close">Close status menu</span>
583
+ <span slot="bib.fullscreen.headline">Traveler Status</span>
584
+ <span slot="label">Traveler Status</span>
585
+ <auro-menu>
586
+ <auro-menuoption value="mvp">MVP</auro-menuoption>
587
+ <auro-menuoption value="gold">Gold</auro-menuoption>
588
+ <auro-menuoption value="75k">75K</auro-menuoption>
589
+ </auro-menu>
590
+ </auro-select>
591
+ </div>
592
+ </section>
593
+ <section class="sectionCard">
594
+ <h3>Combobox States</h3>
595
+ <p class="sectionCopy">Suggestion, filter validation, and disabled examples.</p>
596
+ <div class="stack">
597
+ <auro-combobox id="favorite-fruit" name="favoriteFruit" behavior="suggestion">
598
+ <span slot="ariaLabel.bib.close">Close combobox</span>
599
+ <span slot="ariaLabel.input.clear">Clear fruit</span>
600
+ <span slot="bib.fullscreen.headline">Favorite Fruit</span>
601
+ <span slot="label">Favorite Fruit</span>
602
+ <auro-menu>
603
+ <auro-menuoption value="Apples">Apples</auro-menuoption>
604
+ <auro-menuoption value="Oranges">Oranges</auro-menuoption>
605
+ <auro-menuoption value="Peaches">Peaches</auro-menuoption>
606
+ <auro-menuoption value="Grapes">Grapes</auro-menuoption>
607
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
608
+ </auro-menu>
609
+ </auro-combobox>
610
+ <auro-combobox
611
+ id="airport-code"
612
+ name="airportCode"
613
+ behavior="filter"
614
+ required
615
+ setCustomValidityValueMissingFilter="Select an airport from the list">
616
+ <span slot="ariaLabel.bib.close">Close airport list</span>
617
+ <span slot="ariaLabel.input.clear">Clear airport</span>
618
+ <span slot="bib.fullscreen.headline">Airport Search</span>
619
+ <span slot="label">Airport Search</span>
620
+ <span slot="helpText">Filter mode requires picking from the menu.</span>
621
+ <auro-menu>
622
+ <auro-menuoption value="SEA">Seattle</auro-menuoption>
623
+ <auro-menuoption value="PDX">Portland</auro-menuoption>
624
+ <auro-menuoption value="SFO">San Francisco</auro-menuoption>
625
+ <auro-menuoption value="LAX">Los Angeles</auro-menuoption>
626
+ <auro-menuoption static nomatch>No matching airport</auro-menuoption>
627
+ </auro-menu>
628
+ </auro-combobox>
629
+ <auro-combobox id="travel-policy" name="travelPolicy" disabled>
630
+ <span slot="ariaLabel.bib.close">Close policy list</span>
631
+ <span slot="ariaLabel.input.clear">Clear policy</span>
632
+ <span slot="bib.fullscreen.headline">Travel Policy</span>
633
+ <span slot="label">Travel Policy</span>
634
+ <auro-menu>
635
+ <auro-menuoption value="standard">Standard</auro-menuoption>
636
+ <auro-menuoption value="executive">Executive</auro-menuoption>
637
+ </auro-menu>
638
+ </auro-combobox>
639
+ </div>
640
+ </section>
641
+ </div>
642
+ <div class="sectionGrid">
643
+ <section class="sectionCard">
644
+ <h3>Choice Controls</h3>
645
+ <p class="sectionCopy">Checkbox and radio groups with required and horizontal states.</p>
646
+ <div class="stack">
647
+ <auro-checkbox-group required setCustomValidityValueMissing="Select at least one travel extra">
648
+ <span slot="legend">Travel Extras</span>
649
+ <span slot="helpText">Pick any extras that apply to this trip.</span>
650
+ <auro-checkbox value="priority-boarding" name="travelExtras" id="extra-priority">Priority boarding</auro-checkbox>
651
+ <auro-checkbox value="lounge" name="travelExtras" id="extra-lounge" checked>Lounge access</auro-checkbox>
652
+ <auro-checkbox value="bags" name="travelExtras" id="extra-bags">Checked bags</auro-checkbox>
653
+ </auro-checkbox-group>
654
+ <auro-radio-group horizontal required setCustomValidityValueMissing="Choose a cabin class">
655
+ <span slot="legend">Cabin Class</span>
656
+ <auro-radio id="cabin-main" label="Main" name="cabinClass" value="main"></auro-radio>
657
+ <auro-radio id="cabin-premium" label="Premium" name="cabinClass" value="premium"></auro-radio>
658
+ <auro-radio id="cabin-first" label="First" name="cabinClass" value="first"></auro-radio>
659
+ </auro-radio-group>
660
+ </div>
661
+ </section>
662
+ <section class="sectionCard">
663
+ <h3>Counter States</h3>
664
+ <p class="sectionCopy">Dropdown counter group plus standalone min/max and disabled states.</p>
665
+ <div class="stack">
666
+ <auro-counter-group id="passenger-counts" isDropdown>
667
+ <span slot="ariaLabel.bib.close">Close passenger selector</span>
668
+ <span slot="bib.fullscreen.headline">Passengers</span>
669
+ <div slot="label">Passengers</div>
670
+ <auro-counter value="1">
671
+ Adults
672
+ <span slot="description">18 years or older</span>
673
+ </auro-counter>
674
+ <auro-counter>
675
+ Children
676
+ <span slot="description">Under 17 years old</span>
677
+ </auro-counter>
678
+ <auro-counter>
679
+ Lap Infants
680
+ <span slot="description">Under 2 years</span>
681
+ </auro-counter>
682
+ </auro-counter-group>
683
+ <div class="counterBlock">
684
+ <auro-counter min="1" max="5" value="2">
685
+ Hotel Rooms
686
+ <span slot="description">Limit 5 rooms per booking</span>
687
+ </auro-counter>
688
+ <auro-counter disabled value="0">
689
+ Upgrade Vouchers
690
+ <span slot="description">Unavailable for this itinerary</span>
691
+ </auro-counter>
692
+ </div>
693
+ </div>
694
+ </section>
311
695
  </div>
312
696
  <div class="submitBlock">
313
697
  <auro-button type="reset">Reset</auro-button>