@ulu/frontend 0.1.0-beta.82 → 0.1.0-beta.83

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.
@@ -5200,11 +5200,23 @@
5200
5200
 
5201
5201
  <ol>
5202
5202
 
5203
- <li><a href="#new-exports.resizer(container%2C-control%2C-options)">new exports.Resizer(container, control, options)</a>
5203
+ <li><a href="#new-exports.resizer(container%2C-control%2C-config)">new exports.Resizer(container, control, config)</a>
5204
5204
  </li>
5205
5205
 
5206
5206
  <li><a href="#resizer.destroy()">resizer.destroy()</a>
5207
5207
  </li>
5208
+
5209
+ <li><a href="#resizer.onpointerdown(e)">resizer.onPointerdown(e)</a>
5210
+ </li>
5211
+
5212
+ <li><a href="#resizer.onkeydown(e)">resizer.onKeydown(e)</a>
5213
+ </li>
5214
+
5215
+ <li><a href="#resizer.getarialabel()-%E2%87%92-string">resizer.getAriaLabel() ⇒ string</a>
5216
+ </li>
5217
+
5218
+ <li><a href="#resizer.dispatchevent(type%2C-%5Bdata%5D)">resizer.dispatchEvent(type, [data])</a>
5219
+ </li>
5208
5220
  </ol>
5209
5221
  </li>
5210
5222
 
@@ -5219,6 +5231,24 @@
5219
5231
 
5220
5232
  <li><a href="#ui%2Fresizer~fromy-%3A-%22top%22-%7C-%22bottom%22-%7C-null">ui/resizer~fromY : "top" | "bottom" | null</a>
5221
5233
  </li>
5234
+
5235
+ <li><a href="#ui%2Fresizer~keyboardstep">ui/resizer~keyboardStep</a>
5236
+ </li>
5237
+
5238
+ <li><a href="#ui%2Fresizer~keyboarddebouncetime">ui/resizer~keyboardDebounceTime</a>
5239
+ </li>
5240
+
5241
+ <li><a href="#ui%2Fresizer~manageevents">ui/resizer~manageEvents</a>
5242
+ </li>
5243
+
5244
+ <li><a href="#ui%2Fresizer~managearialabel">ui/resizer~manageAriaLabel</a>
5245
+ </li>
5246
+
5247
+ <li><a href="#ui%2Fresizer~enablepointerresizing">ui/resizer~enablePointerResizing</a>
5248
+ </li>
5249
+
5250
+ <li><a href="#ui%2Fresizer~enablekeyboardresizing">ui/resizer~enableKeyboardResizing</a>
5251
+ </li>
5222
5252
  </ol>
5223
5253
  </div>
5224
5254
  </div>
@@ -5239,8 +5269,12 @@
5239
5269
  <ul>
5240
5270
  <li><a href="#module_ui/resizer.Resizer">.Resizer</a>
5241
5271
  <ul>
5242
- <li><a href="#new_module_ui/resizer.Resizer_new">new exports.Resizer(container, control, options)</a></li>
5272
+ <li><a href="#new_module_ui/resizer.Resizer_new">new exports.Resizer(container, control, config)</a></li>
5243
5273
  <li><a href="#module_ui/resizer.Resizer+destroy">.destroy()</a></li>
5274
+ <li><a href="#module_ui/resizer.Resizer+onPointerdown">.onPointerdown(e)</a></li>
5275
+ <li><a href="#module_ui/resizer.Resizer+onKeydown">.onKeydown(e)</a></li>
5276
+ <li><a href="#module_ui/resizer.Resizer+getAriaLabel">.getAriaLabel()</a> ⇒ <code>string</code></li>
5277
+ <li><a href="#module_ui/resizer.Resizer+dispatchEvent">.dispatchEvent(type, [data])</a></li>
5244
5278
  </ul>
5245
5279
  </li>
5246
5280
  </ul>
@@ -5251,6 +5285,12 @@
5251
5285
  <li><a href="#module_ui/resizer..overrideMaxDimensions">~overrideMaxDimensions</a></li>
5252
5286
  <li><a href="#module_ui/resizer..fromX">~fromX</a> : <code>&quot;left&quot;</code> | <code>&quot;right&quot;</code> | <code>null</code></li>
5253
5287
  <li><a href="#module_ui/resizer..fromY">~fromY</a> : <code>&quot;top&quot;</code> | <code>&quot;bottom&quot;</code> | <code>null</code></li>
5288
+ <li><a href="#module_ui/resizer..keyboardStep">~keyboardStep</a></li>
5289
+ <li><a href="#module_ui/resizer..keyboardDebounceTime">~keyboardDebounceTime</a></li>
5290
+ <li><a href="#module_ui/resizer..manageEvents">~manageEvents</a></li>
5291
+ <li><a href="#module_ui/resizer..manageAriaLabel">~manageAriaLabel</a></li>
5292
+ <li><a href="#module_ui/resizer..enablePointerResizing">~enablePointerResizing</a></li>
5293
+ <li><a href="#module_ui/resizer..enableKeyboardResizing">~enableKeyboardResizing</a></li>
5254
5294
  </ul>
5255
5295
  </li>
5256
5296
  </ul>
@@ -5258,17 +5298,22 @@
5258
5298
  </ul>
5259
5299
  <p><a name="module_ui/resizer.Resizer"></a></p>
5260
5300
  <h2 id="ui%2Fresizer.resizer" tabindex="-1">ui/resizer.Resizer</h2>
5301
+ <p>Class for creating/controlling a container size with a handle/control</p>
5261
5302
  <p><strong>Kind</strong>: static class of <a href="#module_ui/resizer"><code>ui/resizer</code></a></p>
5262
5303
  <ul>
5263
5304
  <li><a href="#module_ui/resizer.Resizer">.Resizer</a>
5264
5305
  <ul>
5265
- <li><a href="#new_module_ui/resizer.Resizer_new">new exports.Resizer(container, control, options)</a></li>
5306
+ <li><a href="#new_module_ui/resizer.Resizer_new">new exports.Resizer(container, control, config)</a></li>
5266
5307
  <li><a href="#module_ui/resizer.Resizer+destroy">.destroy()</a></li>
5308
+ <li><a href="#module_ui/resizer.Resizer+onPointerdown">.onPointerdown(e)</a></li>
5309
+ <li><a href="#module_ui/resizer.Resizer+onKeydown">.onKeydown(e)</a></li>
5310
+ <li><a href="#module_ui/resizer.Resizer+getAriaLabel">.getAriaLabel()</a> ⇒ <code>string</code></li>
5311
+ <li><a href="#module_ui/resizer.Resizer+dispatchEvent">.dispatchEvent(type, [data])</a></li>
5267
5312
  </ul>
5268
5313
  </li>
5269
5314
  </ul>
5270
5315
  <p><a name="new_module_ui/resizer.Resizer_new"></a></p>
5271
- <h3 id="new-exports.resizer(container%2C-control%2C-options)" tabindex="-1">new exports.Resizer(container, control, options)</h3>
5316
+ <h3 id="new-exports.resizer(container%2C-control%2C-config)" tabindex="-1">new exports.Resizer(container, control, config)</h3>
5272
5317
  <table>
5273
5318
  <thead>
5274
5319
  <tr>
@@ -5287,47 +5332,165 @@
5287
5332
  </tr>
5288
5333
  <tr>
5289
5334
  <td>control</td>
5290
- <td><code>Node</code></td>
5335
+ <td><code>HTMLElement</code></td>
5291
5336
  <td></td>
5292
- <td>Resize handle element</td>
5337
+ <td>Resize handle element (should be focusable like a button)</td>
5293
5338
  </tr>
5294
5339
  <tr>
5295
- <td>options</td>
5340
+ <td>config</td>
5296
5341
  <td><code>Object</code></td>
5297
5342
  <td></td>
5298
5343
  <td>Options to configure the resizer.</td>
5299
5344
  </tr>
5300
5345
  <tr>
5301
- <td>options.debug</td>
5346
+ <td>[config.debug]</td>
5302
5347
  <td><code>Boolean</code></td>
5303
- <td></td>
5348
+ <td><code>false</code></td>
5304
5349
  <td>Enable non-essential debugging logs.</td>
5305
5350
  </tr>
5306
5351
  <tr>
5307
- <td>options.overrideMaxDimensions</td>
5352
+ <td>[config.multiplier]</td>
5308
5353
  <td><code>Boolean</code></td>
5309
- <td></td>
5310
- <td>When script is activated by handle, remove the element's max-width/max-height and allow the resize to exceed them (default false).</td>
5354
+ <td><code>1</code></td>
5355
+ <td>Amount to increase size by (ie. pointer movement * multiplier).</td>
5311
5356
  </tr>
5312
5357
  <tr>
5313
- <td>[options.fromX]</td>
5358
+ <td>[config.overrideMaxDimensions]</td>
5359
+ <td><code>Boolean</code></td>
5360
+ <td><code>false</code></td>
5361
+ <td>When script is activated by handle, remove the element's max-width/max-height and allow the resize to exceed them.</td>
5362
+ </tr>
5363
+ <tr>
5364
+ <td>[config.fromX]</td>
5314
5365
  <td><code>&quot;left&quot;</code> | <code>&quot;right&quot;</code> | <code>null</code></td>
5315
5366
  <td><code></code></td>
5316
5367
  <td>Horizontal resizing direction.</td>
5317
5368
  </tr>
5318
5369
  <tr>
5319
- <td>[options.fromY]</td>
5370
+ <td>[config.fromY]</td>
5320
5371
  <td><code>&quot;top&quot;</code> | <code>&quot;bottom&quot;</code> | <code>null</code></td>
5321
5372
  <td><code></code></td>
5322
5373
  <td>Vertical resizing direction.</td>
5323
5374
  </tr>
5375
+ <tr>
5376
+ <td>[config.keyboardStep]</td>
5377
+ <td><code>number</code></td>
5378
+ <td><code>10</code></td>
5379
+ <td>The step in pixels for keyboard resizing.</td>
5380
+ </tr>
5381
+ <tr>
5382
+ <td>[config.keyboardDebounceTime]</td>
5383
+ <td><code>number</code></td>
5384
+ <td><code>200</code></td>
5385
+ <td>Debounce time for keyboard resize end.</td>
5386
+ </tr>
5387
+ <tr>
5388
+ <td>[config.manageEvents]</td>
5389
+ <td><code>boolean</code></td>
5390
+ <td><code>true</code></td>
5391
+ <td>If true, the Resizer will automatically bind its own events.</td>
5392
+ </tr>
5393
+ <tr>
5394
+ <td>[config.manageAriaLabel]</td>
5395
+ <td><code>boolean</code></td>
5396
+ <td><code>false</code></td>
5397
+ <td>If true, the Resizer will manage the control's aria-label.</td>
5398
+ </tr>
5399
+ <tr>
5400
+ <td>[config.enablePointerResizing]</td>
5401
+ <td><code>boolean</code></td>
5402
+ <td><code>true</code></td>
5403
+ <td>If true, pointer events will enable resizing.</td>
5404
+ </tr>
5405
+ <tr>
5406
+ <td>[config.enableKeyboardResizing]</td>
5407
+ <td><code>boolean</code></td>
5408
+ <td><code>true</code></td>
5409
+ <td>If true, keyboard events will enable resizing.</td>
5410
+ </tr>
5324
5411
  </tbody>
5325
5412
  </table>
5326
5413
  <p><a name="module_ui/resizer.Resizer+destroy"></a></p>
5327
5414
  <h3 id="resizer.destroy()" tabindex="-1">resizer.destroy()</h3>
5328
- <p>Cleans up event listeners to prevent memory leaks.</p>
5415
+ <p>Cleans up event listeners and internal state to prevent memory leaks.</p>
5329
5416
  <p><strong>Kind</strong>: instance method of <a href="#module_ui/resizer.Resizer"><code>Resizer</code></a><br>
5330
- <a name="module_ui/resizer..multiplier"></a></p>
5417
+ <a name="module_ui/resizer.Resizer+onPointerdown"></a></p>
5418
+ <h3 id="resizer.onpointerdown(e)" tabindex="-1">resizer.onPointerdown(e)</h3>
5419
+ <p>Public handler for pointerdown events. Call this method from your own event listeners
5420
+ if <code>manageEvents</code> is false. Its logic will only execute if <code>enablePointerResizing</code> is true.</p>
5421
+ <p><strong>Kind</strong>: instance method of <a href="#module_ui/resizer.Resizer"><code>Resizer</code></a></p>
5422
+ <table>
5423
+ <thead>
5424
+ <tr>
5425
+ <th>Param</th>
5426
+ <th>Type</th>
5427
+ <th>Description</th>
5428
+ </tr>
5429
+ </thead>
5430
+ <tbody>
5431
+ <tr>
5432
+ <td>e</td>
5433
+ <td><code>PointerEvent</code></td>
5434
+ <td>The pointerdown event.</td>
5435
+ </tr>
5436
+ </tbody>
5437
+ </table>
5438
+ <p><a name="module_ui/resizer.Resizer+onKeydown"></a></p>
5439
+ <h3 id="resizer.onkeydown(e)" tabindex="-1">resizer.onKeydown(e)</h3>
5440
+ <p>Public handler for keydown events. Call this method from your own event listeners
5441
+ if <code>manageEvents</code> is false. Its logic will only execute if <code>enableKeyboardResizing</code> is true.</p>
5442
+ <p><strong>Kind</strong>: instance method of <a href="#module_ui/resizer.Resizer"><code>Resizer</code></a></p>
5443
+ <table>
5444
+ <thead>
5445
+ <tr>
5446
+ <th>Param</th>
5447
+ <th>Type</th>
5448
+ <th>Description</th>
5449
+ </tr>
5450
+ </thead>
5451
+ <tbody>
5452
+ <tr>
5453
+ <td>e</td>
5454
+ <td><code>KeyboardEvent</code></td>
5455
+ <td>The keydown event.</td>
5456
+ </tr>
5457
+ </tbody>
5458
+ </table>
5459
+ <p><a name="module_ui/resizer.Resizer+getAriaLabel"></a></p>
5460
+ <h3 id="resizer.getarialabel()-%E2%87%92-string" tabindex="-1">resizer.getAriaLabel() ⇒ <code>string</code></h3>
5461
+ <p>Generates an accessible label for the resize control based on its configuration.
5462
+ This is a convenience function that can be used by the consumer if <code>manageAriaLabel</code> is false.</p>
5463
+ <p><strong>Kind</strong>: instance method of <a href="#module_ui/resizer.Resizer"><code>Resizer</code></a><br>
5464
+ <strong>Returns</strong>: <code>string</code> - The suggested aria-label for the control.<br>
5465
+ <a name="module_ui/resizer.Resizer+dispatchEvent"></a></p>
5466
+ <h3 id="resizer.dispatchevent(type%2C-%5Bdata%5D)" tabindex="-1">resizer.dispatchEvent(type, [data])</h3>
5467
+ <p>Dispatches a custom event on the container element.</p>
5468
+ <p><strong>Kind</strong>: instance method of <a href="#module_ui/resizer.Resizer"><code>Resizer</code></a></p>
5469
+ <table>
5470
+ <thead>
5471
+ <tr>
5472
+ <th>Param</th>
5473
+ <th>Type</th>
5474
+ <th>Default</th>
5475
+ <th>Description</th>
5476
+ </tr>
5477
+ </thead>
5478
+ <tbody>
5479
+ <tr>
5480
+ <td>type</td>
5481
+ <td><code>string</code></td>
5482
+ <td></td>
5483
+ <td>The event type (e.g., &quot;resizer:start&quot;, &quot;resizer:update&quot;, &quot;resizer:end&quot;).</td>
5484
+ </tr>
5485
+ <tr>
5486
+ <td>[data]</td>
5487
+ <td><code>Object</code></td>
5488
+ <td><code>{}</code></td>
5489
+ <td>Optional data to attach to the event's detail property.</td>
5490
+ </tr>
5491
+ </tbody>
5492
+ </table>
5493
+ <p><a name="module_ui/resizer..multiplier"></a></p>
5331
5494
  <h2 id="ui%2Fresizer~multiplier" tabindex="-1">ui/resizer~multiplier</h2>
5332
5495
  <p>Amount to increase size by (ie. pointer movement * multiplier)</p>
5333
5496
  <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
@@ -5342,6 +5505,39 @@
5342
5505
  <a name="module_ui/resizer..fromY"></a></p>
5343
5506
  <h2 id="ui%2Fresizer~fromy-%3A-%22top%22-%7C-%22bottom%22-%7C-null" tabindex="-1">ui/resizer~fromY : <code>&quot;top&quot;</code> | <code>&quot;bottom&quot;</code> | <code>null</code></h2>
5344
5507
  <p>Specifies the vertical edge from which resizing occurs.- <code>null</code> means no vertical resizing.- Default null</p>
5508
+ <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
5509
+ <a name="module_ui/resizer..keyboardStep"></a></p>
5510
+ <h2 id="ui%2Fresizer~keyboardstep" tabindex="-1">ui/resizer~keyboardStep</h2>
5511
+ <p>The step in pixels for keyboard resizing with arrow keys.</p>
5512
+ <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
5513
+ <a name="module_ui/resizer..keyboardDebounceTime"></a></p>
5514
+ <h2 id="ui%2Fresizer~keyboarddebouncetime" tabindex="-1">ui/resizer~keyboardDebounceTime</h2>
5515
+ <p>Debounce time in milliseconds for ending a keyboard resize.</p>
5516
+ <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
5517
+ <a name="module_ui/resizer..manageEvents"></a></p>
5518
+ <h2 id="ui%2Fresizer~manageevents" tabindex="-1">ui/resizer~manageEvents</h2>
5519
+ <p>If true, the Resizer instance will automatically bind its own DOM event listeners
5520
+ (pointerdown, keydown) to the control element. If <code>false</code>, the user is
5521
+ responsible for calling <code>resizerInstance.onPointerdown(event)</code> and
5522
+ <code>resizerInstance.onKeydown(event)</code> from their own listeners.
5523
+ Default: true</p>
5524
+ <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
5525
+ <a name="module_ui/resizer..manageAriaLabel"></a></p>
5526
+ <h2 id="ui%2Fresizer~managearialabel" tabindex="-1">ui/resizer~manageAriaLabel</h2>
5527
+ <p>If true, the Resizer instance will automatically manage the <code>aria-label</code>
5528
+ attribute of the control element. If <code>false</code>, the user is responsible
5529
+ for setting this attribute.
5530
+ Default: false</p>
5531
+ <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
5532
+ <a name="module_ui/resizer..enablePointerResizing"></a></p>
5533
+ <h2 id="ui%2Fresizer~enablepointerresizing" tabindex="-1">ui/resizer~enablePointerResizing</h2>
5534
+ <p>If true, pointer events (mouse/touch) will enable resizing.
5535
+ Default: true</p>
5536
+ <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a><br>
5537
+ <a name="module_ui/resizer..enableKeyboardResizing"></a></p>
5538
+ <h2 id="ui%2Fresizer~enablekeyboardresizing" tabindex="-1">ui/resizer~enableKeyboardResizing</h2>
5539
+ <p>If true, keyboard events (arrow keys) will enable resizing.
5540
+ Default: true</p>
5345
5541
  <p><strong>Kind</strong>: inner property of <a href="#module_ui/resizer"><code>ui/resizer</code></a></p>
5346
5542
 
5347
5543
  </div>
@@ -132,9 +132,9 @@ export const defaults = {
132
132
  <div class="${ baseClass }__body" ${ initializer.getAttribute("body") }></div>
133
133
  ${ footerHtml ? `<div class="${ baseClass }__footer">${ footerHtml }</div>`: "" }
134
134
  ${ config.allowResize ?
135
- `<div class="${ baseClass }__resizer" ${ initializer.getAttribute("resizer") }>
135
+ `<button class="${ baseClass }__resizer" type="button" ${ initializer.getAttribute("resizer") }>
136
136
  ${ config.templateResizerIcon(config) }
137
- </div>` : ""
137
+ </button>` : ""
138
138
  }
139
139
  </dialog>
140
140
  `;