@ulu/frontend 0.1.0-beta.77 → 0.1.0-beta.79

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.
@@ -5196,6 +5196,15 @@
5196
5196
  <div class="toc">
5197
5197
  <ol>
5198
5198
 
5199
+ <li><a href="#0.1.0-beta.79">0.1.0-beta.79</a>
5200
+ </li>
5201
+
5202
+ <li><a href="#0.1.0-beta.78">0.1.0-beta.78</a>
5203
+ </li>
5204
+
5205
+ <li><a href="#0.1.0-beta.77">0.1.0-beta.77</a>
5206
+ </li>
5207
+
5199
5208
  <li><a href="#0.1.0-beta.76">0.1.0-beta.76</a>
5200
5209
  </li>
5201
5210
 
@@ -5472,6 +5481,37 @@
5472
5481
 
5473
5482
  <div class="changelog">
5474
5483
  <h1 id="change-log" tabindex="-1">Change Log</h1>
5484
+ <h2 id="0.1.0-beta.79" tabindex="-1">0.1.0-beta.79</h2>
5485
+ <ul>
5486
+ <li><strong>js/ui/dialog.js</strong>
5487
+ <ul>
5488
+ <li>Move preventScroll logic to utils library, refactor (no api changes)</li>
5489
+ </ul>
5490
+ </li>
5491
+ </ul>
5492
+ <h2 id="0.1.0-beta.78" tabindex="-1">0.1.0-beta.78</h2>
5493
+ <ul>
5494
+ <li><strong>js/ui/modal-builder.js</strong>
5495
+ <ul>
5496
+ <li>Fix unused documented config property <code>titleId</code></li>
5497
+ <li>Document <code>labeledby</code>and `describedby``</li>
5498
+ <li>Code cleanup</li>
5499
+ </ul>
5500
+ </li>
5501
+ </ul>
5502
+ <h2 id="0.1.0-beta.77" tabindex="-1">0.1.0-beta.77</h2>
5503
+ <ul>
5504
+ <li><strong>js</strong>
5505
+ <ul>
5506
+ <li>Move dom utils that were reusable to utils library</li>
5507
+ </ul>
5508
+ </li>
5509
+ <li><strong>docs</strong>
5510
+ <ul>
5511
+ <li>Fix popover fixed demo for fixed strategy</li>
5512
+ </ul>
5513
+ </li>
5514
+ </ul>
5475
5515
  <h2 id="0.1.0-beta.76" tabindex="-1">0.1.0-beta.76</h2>
5476
5516
  <ul>
5477
5517
  <li><strong>scss/components/modal.scss</strong>
@@ -5214,60 +5214,60 @@
5214
5214
  <legend>Elements Visible</legend>
5215
5215
  <div>
5216
5216
  <div class="form-theme__item form-theme__item--checkbox">
5217
- <input type="checkbox" id="live-demo-id-1" name="title" checked="">
5218
- <label for="live-demo-id-1">
5217
+ <input type="checkbox" id="live-demo-id-25" name="title" checked="">
5218
+ <label for="live-demo-id-25">
5219
5219
  Title
5220
5220
  </label>
5221
5221
  </div>
5222
5222
  <div class="form-theme__item form-theme__item--checkbox">
5223
- <input type="checkbox" id="live-demo-id-2" name="body" checked="">
5224
- <label for="live-demo-id-2">
5223
+ <input type="checkbox" id="live-demo-id-26" name="body" checked="">
5224
+ <label for="live-demo-id-26">
5225
5225
  Body
5226
5226
  </label>
5227
5227
  </div>
5228
5228
  <div class="form-theme__item form-theme__item--checkbox">
5229
- <input type="checkbox" id="live-demo-id-3" name="content" checked="">
5230
- <label for="live-demo-id-3">
5229
+ <input type="checkbox" id="live-demo-id-27" name="content" checked="">
5230
+ <label for="live-demo-id-27">
5231
5231
  Content
5232
5232
  </label>
5233
5233
  </div>
5234
5234
  <div class="form-theme__item form-theme__item--checkbox">
5235
- <input type="checkbox" id="live-demo-id-4" name="aside" checked="">
5236
- <label for="live-demo-id-4">
5235
+ <input type="checkbox" id="live-demo-id-28" name="aside" checked="">
5236
+ <label for="live-demo-id-28">
5237
5237
  Aside
5238
5238
  </label>
5239
5239
  </div>
5240
5240
  <div class="form-theme__item form-theme__item--checkbox">
5241
- <input type="checkbox" id="live-demo-id-5" name="footer" checked="">
5242
- <label for="live-demo-id-5">
5241
+ <input type="checkbox" id="live-demo-id-29" name="footer" checked="">
5242
+ <label for="live-demo-id-29">
5243
5243
  Footer
5244
5244
  </label>
5245
5245
  </div>
5246
5246
  </div>
5247
5247
  </fieldset>
5248
5248
  <div class="form-theme__item form-theme__item--select">
5249
- <label for="live-demo-id-6">
5249
+ <label for="live-demo-id-30">
5250
5250
  Action
5251
5251
  <span class="fas fa-info-circle" data-ulu-tooltip="Proxy click only works when title is present"></span>
5252
5252
  </label>
5253
- <select id="live-demo-id-6" name="action">
5253
+ <select id="live-demo-id-30" name="action">
5254
5254
  <option value="">None</option>,<option value="link">Card is Link</option>,<option value="proxy">Proxy Click</option>
5255
5255
  </select>
5256
5256
  </div>
5257
5257
  <div class="form-theme__item form-theme__item--select">
5258
- <label for="live-demo-id-7">
5258
+ <label for="live-demo-id-31">
5259
5259
  Media
5260
5260
  </label>
5261
- <select id="live-demo-id-7" name="media">
5261
+ <select id="live-demo-id-31" name="media">
5262
5262
  <option value="icon">Icon</option>,<option value="image">Image</option>,<option value="imageFit">Image (fit)</option>,<option value="none">No Image</option>
5263
5263
  </select>
5264
5264
  </div>
5265
5265
  <div class="form-theme__item form-theme__item--select">
5266
- <label for="live-demo-id-8">
5266
+ <label for="live-demo-id-32">
5267
5267
  Layout
5268
5268
  <span class="fas fa-info-circle" data-ulu-tooltip="Overlay is not compatible with 'Icon' and 'No Image' options"></span>
5269
5269
  </label>
5270
- <select id="live-demo-id-8" name="layout">
5270
+ <select id="live-demo-id-32" name="layout">
5271
5271
  <option value="">Default</option>,<option value="horizontal">Horizontal</option>,<option value="horizontalCenter">Horizontal Center</option>,<option value="overlay">Overlay</option>
5272
5272
  </select>
5273
5273
  </div>
@@ -5252,178 +5252,178 @@
5252
5252
  </table>
5253
5253
  <h2 class="h2">Complex Table</h2>
5254
5254
  <h2 class="h2">Striped Table</h2>
5255
- <table class="data-table data-table--striped" id="dt-1">
5255
+ <table class="data-table data-table--striped" id="dt-13">
5256
5256
  <caption>
5257
5257
  This Is The Table's Caption
5258
5258
  </caption>
5259
5259
  <thead>
5260
5260
  <tr>
5261
- <th id="dt-1-type" rowspan="2">Type</th>
5262
- <th id="dt-1-group" colspan="2">Group</th>
5263
- <th id="dt-1-details" colspan="2">Details</th>
5264
- <th id="dt-1-id" rowspan="2">Id</th>
5261
+ <th id="dt-13-type" rowspan="2">Type</th>
5262
+ <th id="dt-13-group" colspan="2">Group</th>
5263
+ <th id="dt-13-details" colspan="2">Details</th>
5264
+ <th id="dt-13-id" rowspan="2">Id</th>
5265
5265
  </tr>
5266
5266
  <tr>
5267
- <th headers="dt-1-group" id="dt-1-primary">Primary</th>
5268
- <th headers="dt-1-group" id="dt-1-secondary">Secondary</th>
5269
- <th headers="dt-1-details" id="dt-1-before">Before Task</th>
5270
- <th headers="dt-1-details" id="dt-1-after">After Task</th>
5267
+ <th headers="dt-13-group" id="dt-13-primary">Primary</th>
5268
+ <th headers="dt-13-group" id="dt-13-secondary">Secondary</th>
5269
+ <th headers="dt-13-details" id="dt-13-before">Before Task</th>
5270
+ <th headers="dt-13-details" id="dt-13-after">After Task</th>
5271
5271
  </tr>
5272
5272
  </thead>
5273
5273
  <tbody>
5274
5274
  <tr>
5275
- <th rowspan="3" headers="dt-1-type dt-1-r1" id="dt-1-r1">Default</th>
5276
- <td headers="dt-1-group dt-1-primary dt-1-r1">Lorem Ipsum</td>
5277
- <td headers="dt-1-group dt-1-secondary dt-1-r1">Lorem Ipsum</td>
5278
- <td headers="dt-1-details dt-1-before dt-1-r1">Lorem Ipsum</td>
5279
- <td headers="dt-1-details dt-1-after dt-1-r1">Lorem Ipsum</td>
5280
- <td headers="dt-1-id">OL-53-GHSLE</td>
5275
+ <th rowspan="3" headers="dt-13-type dt-13-r1" id="dt-13-r1">Default</th>
5276
+ <td headers="dt-13-group dt-13-primary dt-13-r1">Lorem Ipsum</td>
5277
+ <td headers="dt-13-group dt-13-secondary dt-13-r1">Lorem Ipsum</td>
5278
+ <td headers="dt-13-details dt-13-before dt-13-r1">Lorem Ipsum</td>
5279
+ <td headers="dt-13-details dt-13-after dt-13-r1">Lorem Ipsum</td>
5280
+ <td headers="dt-13-id">OL-53-GHSLE</td>
5281
5281
  </tr>
5282
5282
  <tr>
5283
- <td headers="dt-1-group dt-1-primary dt-1-r1">Lorem Ipsum</td>
5284
- <td headers="dt-1-group dt-1-secondary dt-1-r1">Lorem Ipsum</td>
5285
- <td headers="dt-1-details dt-1-before dt-1-r1">Lorem Ipsum</td>
5286
- <td headers="dt-1-details dt-1-after dt-1-r1">Lorem Ipsum</td>
5287
- <td headers="dt-1-id">OL-53-GHSLE</td>
5283
+ <td headers="dt-13-group dt-13-primary dt-13-r1">Lorem Ipsum</td>
5284
+ <td headers="dt-13-group dt-13-secondary dt-13-r1">Lorem Ipsum</td>
5285
+ <td headers="dt-13-details dt-13-before dt-13-r1">Lorem Ipsum</td>
5286
+ <td headers="dt-13-details dt-13-after dt-13-r1">Lorem Ipsum</td>
5287
+ <td headers="dt-13-id">OL-53-GHSLE</td>
5288
5288
  </tr>
5289
5289
  <tr>
5290
- <td headers="dt-1-group dt-1-primary dt-1-r1">Lorem Ipsum</td>
5291
- <td headers="dt-1-group dt-1-secondary dt-1-r1">Lorem Ipsum</td>
5292
- <td headers="dt-1-details dt-1-before dt-1-r1">Lorem Ipsum</td>
5293
- <td headers="dt-1-details dt-1-after dt-1-r1">Lorem Ipsum</td>
5294
- <td headers="dt-1-id">OL-53-GHSLE</td>
5290
+ <td headers="dt-13-group dt-13-primary dt-13-r1">Lorem Ipsum</td>
5291
+ <td headers="dt-13-group dt-13-secondary dt-13-r1">Lorem Ipsum</td>
5292
+ <td headers="dt-13-details dt-13-before dt-13-r1">Lorem Ipsum</td>
5293
+ <td headers="dt-13-details dt-13-after dt-13-r1">Lorem Ipsum</td>
5294
+ <td headers="dt-13-id">OL-53-GHSLE</td>
5295
5295
  </tr>
5296
5296
  </tbody>
5297
5297
  </table>
5298
5298
  <h2 class="h2">Large-first Table</h2>
5299
- <table class="data-table data-table--large-first" id="dt-2">
5299
+ <table class="data-table data-table--large-first" id="dt-14">
5300
5300
  <caption>
5301
5301
  This Is The Table's Caption
5302
5302
  </caption>
5303
5303
  <thead>
5304
5304
  <tr>
5305
- <th id="dt-2-type" rowspan="2">Type</th>
5306
- <th id="dt-2-group" colspan="2">Group</th>
5307
- <th id="dt-2-details" colspan="2">Details</th>
5308
- <th id="dt-2-id" rowspan="2">Id</th>
5305
+ <th id="dt-14-type" rowspan="2">Type</th>
5306
+ <th id="dt-14-group" colspan="2">Group</th>
5307
+ <th id="dt-14-details" colspan="2">Details</th>
5308
+ <th id="dt-14-id" rowspan="2">Id</th>
5309
5309
  </tr>
5310
5310
  <tr>
5311
- <th headers="dt-2-group" id="dt-2-primary">Primary</th>
5312
- <th headers="dt-2-group" id="dt-2-secondary">Secondary</th>
5313
- <th headers="dt-2-details" id="dt-2-before">Before Task</th>
5314
- <th headers="dt-2-details" id="dt-2-after">After Task</th>
5311
+ <th headers="dt-14-group" id="dt-14-primary">Primary</th>
5312
+ <th headers="dt-14-group" id="dt-14-secondary">Secondary</th>
5313
+ <th headers="dt-14-details" id="dt-14-before">Before Task</th>
5314
+ <th headers="dt-14-details" id="dt-14-after">After Task</th>
5315
5315
  </tr>
5316
5316
  </thead>
5317
5317
  <tbody>
5318
5318
  <tr>
5319
- <th rowspan="3" headers="dt-2-type dt-2-r1" id="dt-2-r1">Default</th>
5320
- <td headers="dt-2-group dt-2-primary dt-2-r1">Lorem Ipsum</td>
5321
- <td headers="dt-2-group dt-2-secondary dt-2-r1">Lorem Ipsum</td>
5322
- <td headers="dt-2-details dt-2-before dt-2-r1">Lorem Ipsum</td>
5323
- <td headers="dt-2-details dt-2-after dt-2-r1">Lorem Ipsum</td>
5324
- <td headers="dt-2-id">OL-53-GHSLE</td>
5319
+ <th rowspan="3" headers="dt-14-type dt-14-r1" id="dt-14-r1">Default</th>
5320
+ <td headers="dt-14-group dt-14-primary dt-14-r1">Lorem Ipsum</td>
5321
+ <td headers="dt-14-group dt-14-secondary dt-14-r1">Lorem Ipsum</td>
5322
+ <td headers="dt-14-details dt-14-before dt-14-r1">Lorem Ipsum</td>
5323
+ <td headers="dt-14-details dt-14-after dt-14-r1">Lorem Ipsum</td>
5324
+ <td headers="dt-14-id">OL-53-GHSLE</td>
5325
5325
  </tr>
5326
5326
  <tr>
5327
- <td headers="dt-2-group dt-2-primary dt-2-r1">Lorem Ipsum</td>
5328
- <td headers="dt-2-group dt-2-secondary dt-2-r1">Lorem Ipsum</td>
5329
- <td headers="dt-2-details dt-2-before dt-2-r1">Lorem Ipsum</td>
5330
- <td headers="dt-2-details dt-2-after dt-2-r1">Lorem Ipsum</td>
5331
- <td headers="dt-2-id">OL-53-GHSLE</td>
5327
+ <td headers="dt-14-group dt-14-primary dt-14-r1">Lorem Ipsum</td>
5328
+ <td headers="dt-14-group dt-14-secondary dt-14-r1">Lorem Ipsum</td>
5329
+ <td headers="dt-14-details dt-14-before dt-14-r1">Lorem Ipsum</td>
5330
+ <td headers="dt-14-details dt-14-after dt-14-r1">Lorem Ipsum</td>
5331
+ <td headers="dt-14-id">OL-53-GHSLE</td>
5332
5332
  </tr>
5333
5333
  <tr>
5334
- <td headers="dt-2-group dt-2-primary dt-2-r1">Lorem Ipsum</td>
5335
- <td headers="dt-2-group dt-2-secondary dt-2-r1">Lorem Ipsum</td>
5336
- <td headers="dt-2-details dt-2-before dt-2-r1">Lorem Ipsum</td>
5337
- <td headers="dt-2-details dt-2-after dt-2-r1">Lorem Ipsum</td>
5338
- <td headers="dt-2-id">OL-53-GHSLE</td>
5334
+ <td headers="dt-14-group dt-14-primary dt-14-r1">Lorem Ipsum</td>
5335
+ <td headers="dt-14-group dt-14-secondary dt-14-r1">Lorem Ipsum</td>
5336
+ <td headers="dt-14-details dt-14-before dt-14-r1">Lorem Ipsum</td>
5337
+ <td headers="dt-14-details dt-14-after dt-14-r1">Lorem Ipsum</td>
5338
+ <td headers="dt-14-id">OL-53-GHSLE</td>
5339
5339
  </tr>
5340
5340
  </tbody>
5341
5341
  </table>
5342
5342
  <h2 class="h2">Large-header Table</h2>
5343
- <table class="data-table data-table--large-header" id="dt-3">
5343
+ <table class="data-table data-table--large-header" id="dt-15">
5344
5344
  <caption>
5345
5345
  This Is The Table's Caption
5346
5346
  </caption>
5347
5347
  <thead>
5348
5348
  <tr>
5349
- <th id="dt-3-type" rowspan="2">Type</th>
5350
- <th id="dt-3-group" colspan="2">Group</th>
5351
- <th id="dt-3-details" colspan="2">Details</th>
5352
- <th id="dt-3-id" rowspan="2">Id</th>
5349
+ <th id="dt-15-type" rowspan="2">Type</th>
5350
+ <th id="dt-15-group" colspan="2">Group</th>
5351
+ <th id="dt-15-details" colspan="2">Details</th>
5352
+ <th id="dt-15-id" rowspan="2">Id</th>
5353
5353
  </tr>
5354
5354
  <tr>
5355
- <th headers="dt-3-group" id="dt-3-primary">Primary</th>
5356
- <th headers="dt-3-group" id="dt-3-secondary">Secondary</th>
5357
- <th headers="dt-3-details" id="dt-3-before">Before Task</th>
5358
- <th headers="dt-3-details" id="dt-3-after">After Task</th>
5355
+ <th headers="dt-15-group" id="dt-15-primary">Primary</th>
5356
+ <th headers="dt-15-group" id="dt-15-secondary">Secondary</th>
5357
+ <th headers="dt-15-details" id="dt-15-before">Before Task</th>
5358
+ <th headers="dt-15-details" id="dt-15-after">After Task</th>
5359
5359
  </tr>
5360
5360
  </thead>
5361
5361
  <tbody>
5362
5362
  <tr>
5363
- <th rowspan="3" headers="dt-3-type dt-3-r1" id="dt-3-r1">Default</th>
5364
- <td headers="dt-3-group dt-3-primary dt-3-r1">Lorem Ipsum</td>
5365
- <td headers="dt-3-group dt-3-secondary dt-3-r1">Lorem Ipsum</td>
5366
- <td headers="dt-3-details dt-3-before dt-3-r1">Lorem Ipsum</td>
5367
- <td headers="dt-3-details dt-3-after dt-3-r1">Lorem Ipsum</td>
5368
- <td headers="dt-3-id">OL-53-GHSLE</td>
5363
+ <th rowspan="3" headers="dt-15-type dt-15-r1" id="dt-15-r1">Default</th>
5364
+ <td headers="dt-15-group dt-15-primary dt-15-r1">Lorem Ipsum</td>
5365
+ <td headers="dt-15-group dt-15-secondary dt-15-r1">Lorem Ipsum</td>
5366
+ <td headers="dt-15-details dt-15-before dt-15-r1">Lorem Ipsum</td>
5367
+ <td headers="dt-15-details dt-15-after dt-15-r1">Lorem Ipsum</td>
5368
+ <td headers="dt-15-id">OL-53-GHSLE</td>
5369
5369
  </tr>
5370
5370
  <tr>
5371
- <td headers="dt-3-group dt-3-primary dt-3-r1">Lorem Ipsum</td>
5372
- <td headers="dt-3-group dt-3-secondary dt-3-r1">Lorem Ipsum</td>
5373
- <td headers="dt-3-details dt-3-before dt-3-r1">Lorem Ipsum</td>
5374
- <td headers="dt-3-details dt-3-after dt-3-r1">Lorem Ipsum</td>
5375
- <td headers="dt-3-id">OL-53-GHSLE</td>
5371
+ <td headers="dt-15-group dt-15-primary dt-15-r1">Lorem Ipsum</td>
5372
+ <td headers="dt-15-group dt-15-secondary dt-15-r1">Lorem Ipsum</td>
5373
+ <td headers="dt-15-details dt-15-before dt-15-r1">Lorem Ipsum</td>
5374
+ <td headers="dt-15-details dt-15-after dt-15-r1">Lorem Ipsum</td>
5375
+ <td headers="dt-15-id">OL-53-GHSLE</td>
5376
5376
  </tr>
5377
5377
  <tr>
5378
- <td headers="dt-3-group dt-3-primary dt-3-r1">Lorem Ipsum</td>
5379
- <td headers="dt-3-group dt-3-secondary dt-3-r1">Lorem Ipsum</td>
5380
- <td headers="dt-3-details dt-3-before dt-3-r1">Lorem Ipsum</td>
5381
- <td headers="dt-3-details dt-3-after dt-3-r1">Lorem Ipsum</td>
5382
- <td headers="dt-3-id">OL-53-GHSLE</td>
5378
+ <td headers="dt-15-group dt-15-primary dt-15-r1">Lorem Ipsum</td>
5379
+ <td headers="dt-15-group dt-15-secondary dt-15-r1">Lorem Ipsum</td>
5380
+ <td headers="dt-15-details dt-15-before dt-15-r1">Lorem Ipsum</td>
5381
+ <td headers="dt-15-details dt-15-after dt-15-r1">Lorem Ipsum</td>
5382
+ <td headers="dt-15-id">OL-53-GHSLE</td>
5383
5383
  </tr>
5384
5384
  </tbody>
5385
5385
  </table>
5386
5386
  <h2 class="h2">No-border Table</h2>
5387
- <table class="data-table data-table--no-border" id="dt-4">
5387
+ <table class="data-table data-table--no-border" id="dt-16">
5388
5388
  <caption>
5389
5389
  This Is The Table's Caption
5390
5390
  </caption>
5391
5391
  <thead>
5392
5392
  <tr>
5393
- <th id="dt-4-type" rowspan="2">Type</th>
5394
- <th id="dt-4-group" colspan="2">Group</th>
5395
- <th id="dt-4-details" colspan="2">Details</th>
5396
- <th id="dt-4-id" rowspan="2">Id</th>
5393
+ <th id="dt-16-type" rowspan="2">Type</th>
5394
+ <th id="dt-16-group" colspan="2">Group</th>
5395
+ <th id="dt-16-details" colspan="2">Details</th>
5396
+ <th id="dt-16-id" rowspan="2">Id</th>
5397
5397
  </tr>
5398
5398
  <tr>
5399
- <th headers="dt-4-group" id="dt-4-primary">Primary</th>
5400
- <th headers="dt-4-group" id="dt-4-secondary">Secondary</th>
5401
- <th headers="dt-4-details" id="dt-4-before">Before Task</th>
5402
- <th headers="dt-4-details" id="dt-4-after">After Task</th>
5399
+ <th headers="dt-16-group" id="dt-16-primary">Primary</th>
5400
+ <th headers="dt-16-group" id="dt-16-secondary">Secondary</th>
5401
+ <th headers="dt-16-details" id="dt-16-before">Before Task</th>
5402
+ <th headers="dt-16-details" id="dt-16-after">After Task</th>
5403
5403
  </tr>
5404
5404
  </thead>
5405
5405
  <tbody>
5406
5406
  <tr>
5407
- <th rowspan="3" headers="dt-4-type dt-4-r1" id="dt-4-r1">Default</th>
5408
- <td headers="dt-4-group dt-4-primary dt-4-r1">Lorem Ipsum</td>
5409
- <td headers="dt-4-group dt-4-secondary dt-4-r1">Lorem Ipsum</td>
5410
- <td headers="dt-4-details dt-4-before dt-4-r1">Lorem Ipsum</td>
5411
- <td headers="dt-4-details dt-4-after dt-4-r1">Lorem Ipsum</td>
5412
- <td headers="dt-4-id">OL-53-GHSLE</td>
5407
+ <th rowspan="3" headers="dt-16-type dt-16-r1" id="dt-16-r1">Default</th>
5408
+ <td headers="dt-16-group dt-16-primary dt-16-r1">Lorem Ipsum</td>
5409
+ <td headers="dt-16-group dt-16-secondary dt-16-r1">Lorem Ipsum</td>
5410
+ <td headers="dt-16-details dt-16-before dt-16-r1">Lorem Ipsum</td>
5411
+ <td headers="dt-16-details dt-16-after dt-16-r1">Lorem Ipsum</td>
5412
+ <td headers="dt-16-id">OL-53-GHSLE</td>
5413
5413
  </tr>
5414
5414
  <tr>
5415
- <td headers="dt-4-group dt-4-primary dt-4-r1">Lorem Ipsum</td>
5416
- <td headers="dt-4-group dt-4-secondary dt-4-r1">Lorem Ipsum</td>
5417
- <td headers="dt-4-details dt-4-before dt-4-r1">Lorem Ipsum</td>
5418
- <td headers="dt-4-details dt-4-after dt-4-r1">Lorem Ipsum</td>
5419
- <td headers="dt-4-id">OL-53-GHSLE</td>
5415
+ <td headers="dt-16-group dt-16-primary dt-16-r1">Lorem Ipsum</td>
5416
+ <td headers="dt-16-group dt-16-secondary dt-16-r1">Lorem Ipsum</td>
5417
+ <td headers="dt-16-details dt-16-before dt-16-r1">Lorem Ipsum</td>
5418
+ <td headers="dt-16-details dt-16-after dt-16-r1">Lorem Ipsum</td>
5419
+ <td headers="dt-16-id">OL-53-GHSLE</td>
5420
5420
  </tr>
5421
5421
  <tr>
5422
- <td headers="dt-4-group dt-4-primary dt-4-r1">Lorem Ipsum</td>
5423
- <td headers="dt-4-group dt-4-secondary dt-4-r1">Lorem Ipsum</td>
5424
- <td headers="dt-4-details dt-4-before dt-4-r1">Lorem Ipsum</td>
5425
- <td headers="dt-4-details dt-4-after dt-4-r1">Lorem Ipsum</td>
5426
- <td headers="dt-4-id">OL-53-GHSLE</td>
5422
+ <td headers="dt-16-group dt-16-primary dt-16-r1">Lorem Ipsum</td>
5423
+ <td headers="dt-16-group dt-16-secondary dt-16-r1">Lorem Ipsum</td>
5424
+ <td headers="dt-16-details dt-16-before dt-16-r1">Lorem Ipsum</td>
5425
+ <td headers="dt-16-details dt-16-after dt-16-r1">Lorem Ipsum</td>
5426
+ <td headers="dt-16-id">OL-53-GHSLE</td>
5427
5427
  </tr>
5428
5428
  </tbody>
5429
5429
  </table>
@@ -5378,9 +5378,14 @@ in twig for example)</li>
5378
5378
  <td>Extra class/classes to add to title</td>
5379
5379
  </tr>
5380
5380
  <tr>
5381
- <td>titleId</td>
5381
+ <td>labelledby</td>
5382
5382
  <td><code>string</code></td>
5383
- <td>Set the title id (to tie to a custom title implementation, if using built in title this will be set automatically)</td>
5383
+ <td>Set the aria-labelledby attribute to a specific title within the modal, to connect to a custom title implementation, if using built in title this will be set automatically</td>
5384
+ </tr>
5385
+ <tr>
5386
+ <td>describedby</td>
5387
+ <td><code>string</code></td>
5388
+ <td>Set the aria-describedby on the dialog, elements id, to tie a specific part of the content to be the accessible description</td>
5384
5389
  </tr>
5385
5390
  <tr>
5386
5391
  <td>nonModal</td>
package/js/ui/dialog.js CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { ComponentInitializer } from "../utils/system.js";
6
- import { wasClickOutside, getScrollbarWidth } from "@ulu/utils/browser/dom.js";
6
+ import { wasClickOutside, preventScroll as setupPreventScroll } from "@ulu/utils/browser/dom.js";
7
7
  import { pauseVideos as pauseYoutubeVideos, prepVideos as prepYoutubeVideos } from "../utils/pause-youtube-video.js";
8
8
 
9
9
  /**
@@ -130,7 +130,8 @@ export function setupTrigger(trigger, dialogId) {
130
130
  export function setupDialog(dialog, userOptions) {
131
131
  const options = Object.assign({}, currentDefaults, userOptions);
132
132
  const body = document.body;
133
-
133
+ const { preventScrollShift: preventShift } = options;
134
+
134
135
  dialog.addEventListener("click", handleClicks);
135
136
 
136
137
  if (options.documentEnd) {
@@ -143,23 +144,17 @@ export function setupDialog(dialog, userOptions) {
143
144
  // Allow preventScroll if it is a modal dialog
144
145
  // Caching value of overflow before setting so we don't assume what it's initial value is
145
146
  if (!options.nonModal && options.preventScroll) {
146
-
147
- let overflowValue = body.style.overflow;
148
- let paddingRightValue = body.style.paddingRight;
149
-
147
+ // Cache restore function
148
+ let restoreScroll;
149
+
150
+ // Toggle prevent scroll
150
151
  dialog.addEventListener("toggle", (event) => {
151
152
  const isOpen = event.newState === "open";
152
153
  if (isOpen) {
153
- overflowValue = body.style.overflow;
154
- paddingRightValue = body.style.paddingRight;
155
- }
156
-
157
- // This will compensate for scrollbar jump (if user has it enabled)
158
- if (options.preventScrollShift) {
159
- body.style.paddingRight = isOpen ? `${ getScrollbarWidth() }px` : paddingRightValue;
154
+ restoreScroll = setupPreventScroll({ preventShift });
155
+ } else if (restoreScroll) {
156
+ restoreScroll();
160
157
  }
161
-
162
- body.style.overflow = isOpen ? "hidden" : overflowValue;
163
158
  });
164
159
  }
165
160
 
@@ -28,7 +28,8 @@ export const initializer = new ComponentInitializer({
28
28
  * @property {string|null} title - The title of the modal. Defaults to `null`.
29
29
  * @property {string|null} titleIcon - The class name for an icon to display in the title. Defaults to `null`.
30
30
  * @property {string} titleClass - Extra class/classes to add to title
31
- * @property {string} titleId - Set the title id (to tie to a custom title implementation, if using built in title this will be set automatically)
31
+ * @property {string} labelledby - Set the aria-labelledby attribute to a specific title within the modal, to connect to a custom title implementation, if using built in title this will be set automatically
32
+ * @property {string} describedby - Set the aria-describedby on the dialog, elements id, to tie a specific part of the content to be the accessible description
32
33
  * @property {boolean} nonModal - If `true`, the modal will not prevent interaction with elements behind it. Defaults to `false`.
33
34
  * @property {boolean} documentEnd - If `true`, the modal will be appended to the end of the `document.body`. Defaults to `true`.
34
35
  * @property {boolean} allowResize - If `true`, the modal will be resizable. Defaults to `false`.
@@ -93,7 +94,7 @@ export const defaults = {
93
94
  * @returns {String} Markup for modal
94
95
  */
95
96
  template(id, config) {
96
- const { baseClass, describedby, footerElement, footerHtml } = config;
97
+ const { baseClass, describedby, footerHtml } = config;
97
98
  const classes = [
98
99
  baseClass,
99
100
  `${ baseClass }--${ config.position }`,
@@ -180,8 +181,6 @@ export function buildModal(content, options) {
180
181
  if (!content.id) {
181
182
  throw new Error("Missing ID on modal");
182
183
  }
183
-
184
- const { footerHtml, footerElement } = config;
185
184
 
186
185
  const markup = config.template(content.id, config);
187
186
  const modal = createElementFromHtml(markup.trim());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend",
3
- "version": "0.1.0-beta.77",
3
+ "version": "0.1.0-beta.79",
4
4
  "description": "A versatile SCSS and JavaScript component library offering configurable, accessible components and flexible integration into any project, with SCSS modules suitable for modern JS frameworks.",
5
5
  "browser": "js/index.js",
6
6
  "main": "index.js",
@@ -98,7 +98,7 @@
98
98
  },
99
99
  "dependencies": {
100
100
  "@floating-ui/dom": "^1.6.5",
101
- "@ulu/utils": "^0.0.26",
101
+ "@ulu/utils": "^0.0.29",
102
102
  "ally.js": "^1.4.1",
103
103
  "aria-tablist": "^1.2.2",
104
104
  "swipe-listener" : "^1.3.0"
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../js/ui/dialog.js"],"names":[],"mappings":"AA4DA;;GAEG;AACH,gDAEC;AAED;;;GAGG;AACH,6BAqBC;AAED;;;;GAIG;AACH,sCAHW,IAAI,0BA2Bd;AAED;;;GAGG;AACH,oCAFW,IAAI,0BAmDd;AAED;;;;GAIG;AACH,yCAHW,IAAI,OAKd;AAnLD;;GAEG;AACH,8CAA+C;AAE/C;;GAEG;AACH,+CAAuF;AAEvF;;GAEG;AACH,oCAAgE;;;;;;;;;qCAjB3B,oBAAoB"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../js/ui/dialog.js"],"names":[],"mappings":"AA4DA;;GAEG;AACH,gDAEC;AAED;;;GAGG;AACH,6BAqBC;AAED;;;;GAIG;AACH,sCAHW,IAAI,0BA2Bd;AAED;;;GAGG;AACH,oCAFW,IAAI,0BA8Cd;AAED;;;;GAIG;AACH,yCAHW,IAAI,OAKd;AA9KD;;GAEG;AACH,8CAA+C;AAE/C;;GAEG;AACH,+CAAuF;AAEvF;;GAEG;AACH,oCAAgE;;;;;;;;;qCAjB3B,oBAAoB"}
@@ -72,9 +72,13 @@ export type DefaultModalOptions = {
72
72
  */
73
73
  titleClass: string;
74
74
  /**
75
- * - Set the title id (to tie to a custom title implementation, if using built in title this will be set automatically)
75
+ * - Set the aria-labelledby attribute to a specific title within the modal, to connect to a custom title implementation, if using built in title this will be set automatically
76
76
  */
77
- titleId: string;
77
+ labelledby: string;
78
+ /**
79
+ * - Set the aria-describedby on the dialog, elements id, to tie a specific part of the content to be the accessible description
80
+ */
81
+ describedby: string;
78
82
  /**
79
83
  * - If `true`, the modal will not prevent interaction with elements behind it. Defaults to `false`.
80
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"modal-builder.d.ts","sourceRoot":"","sources":["../../js/ui/modal-builder.js"],"names":[],"mappings":"AA+IA;;GAEG;AACH,gDAEC;AAED;;;GAGG;AACH,6BAQC;AAED;;;;GAIG;AACH,oCAHW,IAAI;;EA+Dd;AAxND;;GAEG;AACH,+CAGG;;;;;;;;;;;;;;;;;;;;;;;;IA6DD,uDAGC;IACD,yDAGC;IACD;;;;;OAKG;IACH,0DA2CC;;;;;;;;;;;;WA9GW,MAAM,GAAC,IAAI;;;;eACX,MAAM,GAAC,IAAI;;;;gBACX,MAAM;;;;aACN,MAAM;;;;cACN,OAAO;;;;iBACP,OAAO;;;;iBACP,OAAO;;;;cACP,QAAQ,GAAC,UAAU,GAAC,YAAY,GAAC,WAAW,GAAC,aAAa,GAAC,eAAe,GAAC,cAAc;;;;eACzF,OAAO;;;;gBACP,OAAO;;;;UACP,SAAS,GAAC,OAAO,GAAC,OAAO,GAAC,YAAY;;;;WACtC,OAAO;;;;iBACP,OAAO;;;;WACP,MAAM;;;;eACN,MAAM;;;;oBACN,MAAM;;;;sBACN,MAAM;;;;mBACN,MAAM,GAAC,IAAI;;;;gBACX,MAAM,GAAC,IAAI;;;;WACX,OAAO;;;;8BACE,MAAM,KAAG,MAAM;;;;mBACf,MAAM,KAAG,MAAM;;qCA3CD,oBAAoB"}
1
+ {"version":3,"file":"modal-builder.d.ts","sourceRoot":"","sources":["../../js/ui/modal-builder.js"],"names":[],"mappings":"AAgJA;;GAEG;AACH,gDAEC;AAED;;;GAGG;AACH,6BAQC;AAED;;;;GAIG;AACH,oCAHW,IAAI;;EA6Dd;AAvND;;GAEG;AACH,+CAGG;;;;;;;;;;;;;;;;;;;;;;;;IA8DD,uDAGC;IACD,yDAGC;IACD;;;;;OAKG;IACH,0DA2CC;;;;;;;;;;;;WA/GW,MAAM,GAAC,IAAI;;;;eACX,MAAM,GAAC,IAAI;;;;gBACX,MAAM;;;;gBACN,MAAM;;;;iBACN,MAAM;;;;cACN,OAAO;;;;iBACP,OAAO;;;;iBACP,OAAO;;;;cACP,QAAQ,GAAC,UAAU,GAAC,YAAY,GAAC,WAAW,GAAC,aAAa,GAAC,eAAe,GAAC,cAAc;;;;eACzF,OAAO;;;;gBACP,OAAO;;;;UACP,SAAS,GAAC,OAAO,GAAC,OAAO,GAAC,YAAY;;;;WACtC,OAAO;;;;iBACP,OAAO;;;;WACP,MAAM;;;;eACN,MAAM;;;;oBACN,MAAM;;;;sBACN,MAAM;;;;mBACN,MAAM,GAAC,IAAI;;;;gBACX,MAAM,GAAC,IAAI;;;;WACX,OAAO;;;;8BACE,MAAM,KAAG,MAAM;;;;mBACf,MAAM,KAAG,MAAM;;qCA5CD,oBAAoB"}