@m3e/core 1.1.2 → 1.1.3

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 (31) hide show
  1. package/dist/custom-elements.json +603 -146
  2. package/dist/html-custom-data.json +6 -1
  3. package/dist/index.js +275 -29
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.js +9 -9
  6. package/dist/index.min.js.map +1 -1
  7. package/dist/src/shared/controllers/AnimationLoopController.d.ts +13 -0
  8. package/dist/src/shared/controllers/AnimationLoopController.d.ts.map +1 -0
  9. package/dist/src/shared/controllers/FocusController.d.ts.map +1 -1
  10. package/dist/src/shared/controllers/index.d.ts +1 -0
  11. package/dist/src/shared/controllers/index.d.ts.map +1 -1
  12. package/dist/src/shared/mixins/HtmlFor.d.ts.map +1 -1
  13. package/dist/src/shared/mixins/KeyboardClick.d.ts.map +1 -1
  14. package/dist/src/shared/primitives/ActionElementBase.d.ts +22 -0
  15. package/dist/src/shared/primitives/ActionElementBase.d.ts.map +1 -0
  16. package/dist/src/shared/primitives/CollapsibleElement.d.ts.map +1 -1
  17. package/dist/src/shared/primitives/StateLayerElement.d.ts +9 -2
  18. package/dist/src/shared/primitives/StateLayerElement.d.ts.map +1 -1
  19. package/dist/src/shared/primitives/index.d.ts +1 -0
  20. package/dist/src/shared/primitives/index.d.ts.map +1 -1
  21. package/dist/src/shared/utils/focusWhenReady.d.ts +8 -0
  22. package/dist/src/shared/utils/focusWhenReady.d.ts.map +1 -0
  23. package/dist/src/shared/utils/index.d.ts +4 -0
  24. package/dist/src/shared/utils/index.d.ts.map +1 -1
  25. package/dist/src/shared/utils/interceptProperty.d.ts +17 -0
  26. package/dist/src/shared/utils/interceptProperty.d.ts.map +1 -0
  27. package/dist/src/shared/utils/resolveElementById.d.ts +8 -0
  28. package/dist/src/shared/utils/resolveElementById.d.ts.map +1 -0
  29. package/dist/src/shared/utils/resolveFragmentUrl.d.ts +22 -0
  30. package/dist/src/shared/utils/resolveFragmentUrl.d.ts.map +1 -0
  31. package/package.json +1 -1
@@ -1180,69 +1180,6 @@
1180
1180
  }
1181
1181
  ]
1182
1182
  },
1183
- {
1184
- "kind": "javascript-module",
1185
- "path": "src/shared/index.ts",
1186
- "declarations": [],
1187
- "exports": [
1188
- {
1189
- "kind": "js",
1190
- "name": "*",
1191
- "declaration": {
1192
- "name": "*",
1193
- "package": "\"./controllers\""
1194
- }
1195
- },
1196
- {
1197
- "kind": "js",
1198
- "name": "*",
1199
- "declaration": {
1200
- "name": "*",
1201
- "package": "\"./decorators\""
1202
- }
1203
- },
1204
- {
1205
- "kind": "js",
1206
- "name": "*",
1207
- "declaration": {
1208
- "name": "*",
1209
- "package": "\"./directives\""
1210
- }
1211
- },
1212
- {
1213
- "kind": "js",
1214
- "name": "*",
1215
- "declaration": {
1216
- "name": "*",
1217
- "package": "\"./mixins\""
1218
- }
1219
- },
1220
- {
1221
- "kind": "js",
1222
- "name": "*",
1223
- "declaration": {
1224
- "name": "*",
1225
- "package": "\"./primitives\""
1226
- }
1227
- },
1228
- {
1229
- "kind": "js",
1230
- "name": "*",
1231
- "declaration": {
1232
- "name": "*",
1233
- "package": "\"./tokens\""
1234
- }
1235
- },
1236
- {
1237
- "kind": "js",
1238
- "name": "*",
1239
- "declaration": {
1240
- "name": "*",
1241
- "package": "\"./utils\""
1242
- }
1243
- }
1244
- ]
1245
- },
1246
1183
  {
1247
1184
  "kind": "javascript-module",
1248
1185
  "path": "src/platform/index.ts",
@@ -1344,6 +1281,69 @@
1344
1281
  }
1345
1282
  ]
1346
1283
  },
1284
+ {
1285
+ "kind": "javascript-module",
1286
+ "path": "src/shared/index.ts",
1287
+ "declarations": [],
1288
+ "exports": [
1289
+ {
1290
+ "kind": "js",
1291
+ "name": "*",
1292
+ "declaration": {
1293
+ "name": "*",
1294
+ "package": "\"./controllers\""
1295
+ }
1296
+ },
1297
+ {
1298
+ "kind": "js",
1299
+ "name": "*",
1300
+ "declaration": {
1301
+ "name": "*",
1302
+ "package": "\"./decorators\""
1303
+ }
1304
+ },
1305
+ {
1306
+ "kind": "js",
1307
+ "name": "*",
1308
+ "declaration": {
1309
+ "name": "*",
1310
+ "package": "\"./directives\""
1311
+ }
1312
+ },
1313
+ {
1314
+ "kind": "js",
1315
+ "name": "*",
1316
+ "declaration": {
1317
+ "name": "*",
1318
+ "package": "\"./mixins\""
1319
+ }
1320
+ },
1321
+ {
1322
+ "kind": "js",
1323
+ "name": "*",
1324
+ "declaration": {
1325
+ "name": "*",
1326
+ "package": "\"./primitives\""
1327
+ }
1328
+ },
1329
+ {
1330
+ "kind": "js",
1331
+ "name": "*",
1332
+ "declaration": {
1333
+ "name": "*",
1334
+ "package": "\"./tokens\""
1335
+ }
1336
+ },
1337
+ {
1338
+ "kind": "js",
1339
+ "name": "*",
1340
+ "declaration": {
1341
+ "name": "*",
1342
+ "package": "\"./utils\""
1343
+ }
1344
+ }
1345
+ ]
1346
+ },
1347
1347
  {
1348
1348
  "kind": "javascript-module",
1349
1349
  "path": "src/a11y/keycodes/getKeyCode.ts",
@@ -5507,6 +5507,86 @@
5507
5507
  }
5508
5508
  ]
5509
5509
  },
5510
+ {
5511
+ "kind": "javascript-module",
5512
+ "path": "src/shared/controllers/AnimationLoopController.ts",
5513
+ "declarations": [
5514
+ {
5515
+ "kind": "class",
5516
+ "description": "A `ReactiveController` used to execute a function in an animation loop.",
5517
+ "name": "AnimationLoopController",
5518
+ "members": [
5519
+ {
5520
+ "kind": "field",
5521
+ "name": "#frameId",
5522
+ "privacy": "private",
5523
+ "type": {
5524
+ "text": "number | null"
5525
+ },
5526
+ "default": "null"
5527
+ },
5528
+ {
5529
+ "kind": "field",
5530
+ "name": "#lastTime",
5531
+ "privacy": "private",
5532
+ "type": {
5533
+ "text": "number"
5534
+ },
5535
+ "default": "0"
5536
+ },
5537
+ {
5538
+ "kind": "field",
5539
+ "name": "#running",
5540
+ "privacy": "private",
5541
+ "type": {
5542
+ "text": "boolean"
5543
+ },
5544
+ "default": "false"
5545
+ },
5546
+ {
5547
+ "kind": "field",
5548
+ "name": "#callback",
5549
+ "privacy": "private",
5550
+ "type": {
5551
+ "text": "(deltaTime: number, elapsedTime: number) => void"
5552
+ },
5553
+ "readonly": true,
5554
+ "default": "callback"
5555
+ },
5556
+ {
5557
+ "kind": "field",
5558
+ "name": "#loop",
5559
+ "privacy": "private",
5560
+ "readonly": true
5561
+ },
5562
+ {
5563
+ "kind": "method",
5564
+ "name": "hostDisconnected"
5565
+ },
5566
+ {
5567
+ "kind": "method",
5568
+ "name": "start",
5569
+ "description": "Starts the animation loop."
5570
+ },
5571
+ {
5572
+ "kind": "method",
5573
+ "name": "stop",
5574
+ "description": "Stops the animation loop."
5575
+ }
5576
+ ]
5577
+ }
5578
+ ],
5579
+ "exports": [
5580
+ {
5581
+ "kind": "js",
5582
+ "name": "AnimationLoopController",
5583
+ "declaration": {
5584
+ "name": "AnimationLoopController",
5585
+ "module": "src/shared/controllers/AnimationLoopController.ts"
5586
+ }
5587
+ }
5588
+ ]
5589
+ },
5510
5590
  {
5511
5591
  "kind": "javascript-module",
5512
5592
  "path": "src/shared/controllers/FocusController.ts",
@@ -5516,6 +5596,15 @@
5516
5596
  "description": "A `ReactiveController` used to monitor the focused state of one or more elements.",
5517
5597
  "name": "FocusController",
5518
5598
  "members": [
5599
+ {
5600
+ "kind": "field",
5601
+ "name": "#touch",
5602
+ "privacy": "private",
5603
+ "type": {
5604
+ "text": "boolean"
5605
+ },
5606
+ "default": "false"
5607
+ },
5519
5608
  {
5520
5609
  "kind": "field",
5521
5610
  "name": "#callback",
@@ -5525,6 +5614,12 @@
5525
5614
  },
5526
5615
  "readonly": true
5527
5616
  },
5617
+ {
5618
+ "kind": "field",
5619
+ "name": "#keyDownHandler",
5620
+ "privacy": "private",
5621
+ "readonly": true
5622
+ },
5528
5623
  {
5529
5624
  "kind": "field",
5530
5625
  "name": "#focusInHandler",
@@ -5537,6 +5632,18 @@
5537
5632
  "privacy": "private",
5538
5633
  "readonly": true
5539
5634
  },
5635
+ {
5636
+ "kind": "field",
5637
+ "name": "#touchStartHandler",
5638
+ "privacy": "private",
5639
+ "readonly": true
5640
+ },
5641
+ {
5642
+ "kind": "field",
5643
+ "name": "#touchEndHandler",
5644
+ "privacy": "private",
5645
+ "readonly": true
5646
+ },
5540
5647
  {
5541
5648
  "kind": "method",
5542
5649
  "name": "_observe",
@@ -5585,6 +5692,24 @@
5585
5692
  "module": "src/shared/controllers/MonitorControllerBase.ts"
5586
5693
  }
5587
5694
  },
5695
+ {
5696
+ "kind": "method",
5697
+ "name": "#handleKeyDown",
5698
+ "privacy": "private",
5699
+ "return": {
5700
+ "type": {
5701
+ "text": "void"
5702
+ }
5703
+ },
5704
+ "parameters": [
5705
+ {
5706
+ "name": "e",
5707
+ "type": {
5708
+ "text": "Event"
5709
+ }
5710
+ }
5711
+ ]
5712
+ },
5588
5713
  {
5589
5714
  "kind": "method",
5590
5715
  "name": "#handleFocusIn",
@@ -6214,6 +6339,14 @@
6214
6339
  "path": "src/shared/controllers/index.ts",
6215
6340
  "declarations": [],
6216
6341
  "exports": [
6342
+ {
6343
+ "kind": "js",
6344
+ "name": "*",
6345
+ "declaration": {
6346
+ "name": "*",
6347
+ "package": "\"./AnimationLoopController\""
6348
+ }
6349
+ },
6217
6350
  {
6218
6351
  "kind": "js",
6219
6352
  "name": "*",
@@ -8473,20 +8606,142 @@
8473
8606
  },
8474
8607
  {
8475
8608
  "kind": "javascript-module",
8476
- "path": "src/shared/primitives/CollapsibleElement.ts",
8477
- "declarations": [
8609
+ "path": "src/shared/directives/index.ts",
8610
+ "declarations": [],
8611
+ "exports": [
8478
8612
  {
8479
- "kind": "class",
8480
- "description": "A container used to expand and collapse content.",
8481
- "name": "M3eCollapsibleElement",
8482
- "cssProperties": [
8483
- {
8484
- "description": "The duration of the expand / collapse animation.",
8485
- "name": "--m3e-collapsible-animation-duration"
8486
- }
8487
- ],
8488
- "slots": [
8489
- {
8613
+ "kind": "js",
8614
+ "name": "*",
8615
+ "declaration": {
8616
+ "name": "*",
8617
+ "package": "\"./safeStyleMap\""
8618
+ }
8619
+ }
8620
+ ]
8621
+ },
8622
+ {
8623
+ "kind": "javascript-module",
8624
+ "path": "src/shared/directives/safeStyleMap.ts",
8625
+ "declarations": [
8626
+ {
8627
+ "kind": "class",
8628
+ "description": "",
8629
+ "name": "SafeStyleMapDirective",
8630
+ "members": [
8631
+ {
8632
+ "kind": "field",
8633
+ "name": "_previousStyleProperties",
8634
+ "type": {
8635
+ "text": "Set<string> | undefined"
8636
+ },
8637
+ "privacy": "private"
8638
+ }
8639
+ ],
8640
+ "superclass": {
8641
+ "name": "Directive",
8642
+ "package": "lit/directive.js"
8643
+ }
8644
+ },
8645
+ {
8646
+ "kind": "variable",
8647
+ "name": "safeStyleMap",
8648
+ "description": "A directive that applies CSS properties to an element.\r\n\r\n`safeStyleMap` can only be used in the `style` attribute and must be the only\r\nexpression in the attribute. It takes the property names in the\r\nStyleInfostyleInfo object and adds the properties to the inline\r\nstyle of the element.\r\n\r\nProperty names with dashes (`-`) are assumed to be valid CSS\r\nproperty names and set on the element's style object using `setProperty()`.\r\nNames without dashes are assumed to be camelCased JavaScript property names\r\nand set on the element's style object using property assignment, allowing the\r\nstyle object to translate JavaScript-style names to CSS property names.\r\n\r\nFor example `safeStyleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\r\n'0'})` sets the `background-color`, `border-top` and `--size` properties.",
8649
+ "parameters": [
8650
+ {
8651
+ "name": "styleInfo"
8652
+ }
8653
+ ]
8654
+ }
8655
+ ],
8656
+ "exports": [
8657
+ {
8658
+ "kind": "js",
8659
+ "name": "safeStyleMap",
8660
+ "declaration": {
8661
+ "name": "safeStyleMap",
8662
+ "module": "src/shared/directives/safeStyleMap.ts"
8663
+ }
8664
+ },
8665
+ {
8666
+ "kind": "js",
8667
+ "name": "SafeStyleMapDirective",
8668
+ "declaration": {
8669
+ "name": "SafeStyleMapDirective",
8670
+ "module": "src/shared/directives/safeStyleMap.ts"
8671
+ }
8672
+ }
8673
+ ]
8674
+ },
8675
+ {
8676
+ "kind": "javascript-module",
8677
+ "path": "src/shared/primitives/ActionElementBase.ts",
8678
+ "declarations": [
8679
+ {
8680
+ "kind": "class",
8681
+ "description": "A base implementation for an element, nested within a clickable element, used to\r\nperform an action. This class must be inherited.",
8682
+ "name": "ActionElementBase",
8683
+ "members": [
8684
+ {
8685
+ "kind": "field",
8686
+ "name": "#clickHandler",
8687
+ "privacy": "private",
8688
+ "readonly": true
8689
+ },
8690
+ {
8691
+ "kind": "method",
8692
+ "name": "_onClick",
8693
+ "privacy": "protected",
8694
+ "return": {
8695
+ "type": {
8696
+ "text": "void"
8697
+ }
8698
+ },
8699
+ "parameters": [
8700
+ {
8701
+ "name": "e",
8702
+ "type": {
8703
+ "text": "Event"
8704
+ },
8705
+ "description": "The click event to handle."
8706
+ }
8707
+ ],
8708
+ "description": "When implemented by a derived class, handles the specified click event."
8709
+ }
8710
+ ],
8711
+ "superclass": {
8712
+ "name": "LitElement",
8713
+ "package": "lit"
8714
+ },
8715
+ "customElement": true
8716
+ }
8717
+ ],
8718
+ "exports": [
8719
+ {
8720
+ "kind": "js",
8721
+ "name": "ActionElementBase",
8722
+ "declaration": {
8723
+ "name": "ActionElementBase",
8724
+ "module": "src/shared/primitives/ActionElementBase.ts"
8725
+ }
8726
+ }
8727
+ ]
8728
+ },
8729
+ {
8730
+ "kind": "javascript-module",
8731
+ "path": "src/shared/primitives/CollapsibleElement.ts",
8732
+ "declarations": [
8733
+ {
8734
+ "kind": "class",
8735
+ "description": "A container used to expand and collapse content.",
8736
+ "name": "M3eCollapsibleElement",
8737
+ "cssProperties": [
8738
+ {
8739
+ "description": "The duration of the expand / collapse animation.",
8740
+ "name": "--m3e-collapsible-animation-duration"
8741
+ }
8742
+ ],
8743
+ "slots": [
8744
+ {
8490
8745
  "description": "Renders the collapsible content.",
8491
8746
  "name": ""
8492
8747
  }
@@ -9228,6 +9483,14 @@
9228
9483
  "path": "src/shared/primitives/index.ts",
9229
9484
  "declarations": [],
9230
9485
  "exports": [
9486
+ {
9487
+ "kind": "js",
9488
+ "name": "*",
9489
+ "declaration": {
9490
+ "name": "*",
9491
+ "package": "\"./ActionElementBase\""
9492
+ }
9493
+ },
9231
9494
  {
9232
9495
  "kind": "js",
9233
9496
  "name": "*",
@@ -10326,10 +10589,21 @@
10326
10589
  "text": "boolean"
10327
10590
  },
10328
10591
  "default": "false",
10329
- "description": "Whether hover and focus event will not trigger the state layer. State layers can still\r\nbe controlled manually using the `show` and `hide` methods.",
10592
+ "description": "Whether hover and focus events will not trigger the state layer. State layers can still\r\nbe controlled manually using the `show` and `hide` methods.",
10330
10593
  "attribute": "disabled",
10331
10594
  "reflects": true
10332
10595
  },
10596
+ {
10597
+ "kind": "field",
10598
+ "name": "disableHover",
10599
+ "type": {
10600
+ "text": "boolean"
10601
+ },
10602
+ "default": "false",
10603
+ "description": "Whether hover events will not trigger the state layer. State layers can still\r\nbe controlled manually using the `show` and `hide` methods.",
10604
+ "attribute": "disable-hover",
10605
+ "reflects": true
10606
+ },
10333
10607
  {
10334
10608
  "kind": "method",
10335
10609
  "name": "show",
@@ -10493,7 +10767,7 @@
10493
10767
  ],
10494
10768
  "attributes": [
10495
10769
  {
10496
- "description": "Whether hover and focus event will not trigger the state layer. State layers can still\r\nbe controlled manually using the `show` and `hide` methods.",
10770
+ "description": "Whether hover and focus events will not trigger the state layer. State layers can still\r\nbe controlled manually using the `show` and `hide` methods.",
10497
10771
  "name": "disabled",
10498
10772
  "type": {
10499
10773
  "text": "boolean"
@@ -10501,6 +10775,15 @@
10501
10775
  "default": "false",
10502
10776
  "fieldName": "disabled"
10503
10777
  },
10778
+ {
10779
+ "description": "Whether hover events will not trigger the state layer. State layers can still\r\nbe controlled manually using the `show` and `hide` methods.",
10780
+ "name": "disable-hover",
10781
+ "type": {
10782
+ "text": "boolean"
10783
+ },
10784
+ "default": "false",
10785
+ "fieldName": "disableHover"
10786
+ },
10504
10787
  {
10505
10788
  "name": "for",
10506
10789
  "type": {
@@ -10831,74 +11114,6 @@
10831
11114
  }
10832
11115
  ]
10833
11116
  },
10834
- {
10835
- "kind": "javascript-module",
10836
- "path": "src/shared/directives/index.ts",
10837
- "declarations": [],
10838
- "exports": [
10839
- {
10840
- "kind": "js",
10841
- "name": "*",
10842
- "declaration": {
10843
- "name": "*",
10844
- "package": "\"./safeStyleMap\""
10845
- }
10846
- }
10847
- ]
10848
- },
10849
- {
10850
- "kind": "javascript-module",
10851
- "path": "src/shared/directives/safeStyleMap.ts",
10852
- "declarations": [
10853
- {
10854
- "kind": "class",
10855
- "description": "",
10856
- "name": "SafeStyleMapDirective",
10857
- "members": [
10858
- {
10859
- "kind": "field",
10860
- "name": "_previousStyleProperties",
10861
- "type": {
10862
- "text": "Set<string> | undefined"
10863
- },
10864
- "privacy": "private"
10865
- }
10866
- ],
10867
- "superclass": {
10868
- "name": "Directive",
10869
- "package": "lit/directive.js"
10870
- }
10871
- },
10872
- {
10873
- "kind": "variable",
10874
- "name": "safeStyleMap",
10875
- "description": "A directive that applies CSS properties to an element.\r\n\r\n`safeStyleMap` can only be used in the `style` attribute and must be the only\r\nexpression in the attribute. It takes the property names in the\r\nStyleInfostyleInfo object and adds the properties to the inline\r\nstyle of the element.\r\n\r\nProperty names with dashes (`-`) are assumed to be valid CSS\r\nproperty names and set on the element's style object using `setProperty()`.\r\nNames without dashes are assumed to be camelCased JavaScript property names\r\nand set on the element's style object using property assignment, allowing the\r\nstyle object to translate JavaScript-style names to CSS property names.\r\n\r\nFor example `safeStyleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\r\n'0'})` sets the `background-color`, `border-top` and `--size` properties.",
10876
- "parameters": [
10877
- {
10878
- "name": "styleInfo"
10879
- }
10880
- ]
10881
- }
10882
- ],
10883
- "exports": [
10884
- {
10885
- "kind": "js",
10886
- "name": "safeStyleMap",
10887
- "declaration": {
10888
- "name": "safeStyleMap",
10889
- "module": "src/shared/directives/safeStyleMap.ts"
10890
- }
10891
- },
10892
- {
10893
- "kind": "js",
10894
- "name": "SafeStyleMapDirective",
10895
- "declaration": {
10896
- "name": "SafeStyleMapDirective",
10897
- "module": "src/shared/directives/safeStyleMap.ts"
10898
- }
10899
- }
10900
- ]
10901
- },
10902
11117
  {
10903
11118
  "kind": "javascript-module",
10904
11119
  "path": "src/shared/tokens/ColorToken.ts",
@@ -12769,12 +12984,51 @@
12769
12984
  "description": "Mixin to augment an element with behavior emits a click event on keyboard events.",
12770
12985
  "name": "KeyboardClick",
12771
12986
  "members": [
12987
+ {
12988
+ "kind": "field",
12989
+ "name": "#keyPressed",
12990
+ "privacy": "private",
12991
+ "type": {
12992
+ "text": "boolean"
12993
+ },
12994
+ "default": "false"
12995
+ },
12996
+ {
12997
+ "kind": "field",
12998
+ "name": "#keyDownHandler",
12999
+ "privacy": "private",
13000
+ "readonly": true
13001
+ },
12772
13002
  {
12773
13003
  "kind": "field",
12774
13004
  "name": "#keyUpHandler",
12775
13005
  "privacy": "private",
12776
13006
  "readonly": true
12777
13007
  },
13008
+ {
13009
+ "kind": "field",
13010
+ "name": "#focusOutHandler",
13011
+ "privacy": "private",
13012
+ "readonly": true
13013
+ },
13014
+ {
13015
+ "kind": "method",
13016
+ "name": "#handleKeyDown",
13017
+ "privacy": "private",
13018
+ "return": {
13019
+ "type": {
13020
+ "text": "void"
13021
+ }
13022
+ },
13023
+ "parameters": [
13024
+ {
13025
+ "name": "e",
13026
+ "type": {
13027
+ "text": "KeyboardEvent"
13028
+ }
13029
+ }
13030
+ ]
13031
+ },
12778
13032
  {
12779
13033
  "kind": "method",
12780
13034
  "name": "#handleKeyUp",
@@ -13681,6 +13935,50 @@
13681
13935
  }
13682
13936
  ]
13683
13937
  },
13938
+ {
13939
+ "kind": "javascript-module",
13940
+ "path": "src/shared/utils/focusWhenReady.ts",
13941
+ "declarations": [
13942
+ {
13943
+ "kind": "function",
13944
+ "name": "focusWhenReady",
13945
+ "return": {
13946
+ "type": {
13947
+ "text": "Promise<boolean>"
13948
+ }
13949
+ },
13950
+ "parameters": [
13951
+ {
13952
+ "name": "element",
13953
+ "type": {
13954
+ "text": "HTMLElement"
13955
+ },
13956
+ "description": "The element to to focus."
13957
+ },
13958
+ {
13959
+ "name": "timeout",
13960
+ "default": "200",
13961
+ "type": {
13962
+ "text": "number"
13963
+ },
13964
+ "description": "The maximum amount of time to attempt to focus `el`.",
13965
+ "optional": true
13966
+ }
13967
+ ],
13968
+ "description": "Asynchronously attempts to focus an element once it becomes focusable."
13969
+ }
13970
+ ],
13971
+ "exports": [
13972
+ {
13973
+ "kind": "js",
13974
+ "name": "focusWhenReady",
13975
+ "declaration": {
13976
+ "name": "focusWhenReady",
13977
+ "module": "src/shared/utils/focusWhenReady.ts"
13978
+ }
13979
+ }
13980
+ ]
13981
+ },
13684
13982
  {
13685
13983
  "kind": "javascript-module",
13686
13984
  "path": "src/shared/utils/forcedColorsActive.ts",
@@ -13859,6 +14157,14 @@
13859
14157
  "path": "src/shared/utils/index.ts",
13860
14158
  "declarations": [],
13861
14159
  "exports": [
14160
+ {
14161
+ "kind": "js",
14162
+ "name": "*",
14163
+ "declaration": {
14164
+ "name": "*",
14165
+ "package": "\"./focusWhenReady\""
14166
+ }
14167
+ },
13862
14168
  {
13863
14169
  "kind": "js",
13864
14170
  "name": "*",
@@ -13899,6 +14205,14 @@
13899
14205
  "package": "\"./hasAssignedNodes\""
13900
14206
  }
13901
14207
  },
14208
+ {
14209
+ "kind": "js",
14210
+ "name": "*",
14211
+ "declaration": {
14212
+ "name": "*",
14213
+ "package": "\"./interceptProperty\""
14214
+ }
14215
+ },
13902
14216
  {
13903
14217
  "kind": "js",
13904
14218
  "name": "*",
@@ -13907,6 +14221,22 @@
13907
14221
  "package": "\"./prefersReducedMotion\""
13908
14222
  }
13909
14223
  },
14224
+ {
14225
+ "kind": "js",
14226
+ "name": "*",
14227
+ "declaration": {
14228
+ "name": "*",
14229
+ "package": "\"./resolveElementById\""
14230
+ }
14231
+ },
14232
+ {
14233
+ "kind": "js",
14234
+ "name": "*",
14235
+ "declaration": {
14236
+ "name": "*",
14237
+ "package": "\"./resolveFragmentUrl\""
14238
+ }
14239
+ },
13910
14240
  {
13911
14241
  "kind": "js",
13912
14242
  "name": "*",
@@ -13917,6 +14247,55 @@
13917
14247
  }
13918
14248
  ]
13919
14249
  },
14250
+ {
14251
+ "kind": "javascript-module",
14252
+ "path": "src/shared/utils/interceptProperty.ts",
14253
+ "declarations": [
14254
+ {
14255
+ "kind": "function",
14256
+ "name": "interceptProperty",
14257
+ "return": {
14258
+ "type": {
14259
+ "text": ""
14260
+ }
14261
+ },
14262
+ "parameters": [
14263
+ {
14264
+ "name": "target",
14265
+ "type": {
14266
+ "text": "T"
14267
+ },
14268
+ "description": "The object whose property should be intercepted."
14269
+ },
14270
+ {
14271
+ "name": "prop",
14272
+ "type": {
14273
+ "text": "K"
14274
+ },
14275
+ "description": "The property key to intercept."
14276
+ },
14277
+ {
14278
+ "name": "options",
14279
+ "type": {
14280
+ "text": "{\r\n get?: (getter: () => T[K]) => T[K];\r\n set?: (value: T[K], setter: (v: T[K]) => void) => void;\r\n }"
14281
+ },
14282
+ "description": "Configuration object for interceptor callbacks."
14283
+ }
14284
+ ],
14285
+ "description": "Intercepts property access and mutations on a target object, allowing custom logic\r\nto run when the property is read or written to."
14286
+ }
14287
+ ],
14288
+ "exports": [
14289
+ {
14290
+ "kind": "js",
14291
+ "name": "interceptProperty",
14292
+ "declaration": {
14293
+ "name": "interceptProperty",
14294
+ "module": "src/shared/utils/interceptProperty.ts"
14295
+ }
14296
+ }
14297
+ ]
14298
+ },
13920
14299
  {
13921
14300
  "kind": "javascript-module",
13922
14301
  "path": "src/shared/utils/prefersReducedMotion.ts",
@@ -13943,6 +14322,84 @@
13943
14322
  }
13944
14323
  ]
13945
14324
  },
14325
+ {
14326
+ "kind": "javascript-module",
14327
+ "path": "src/shared/utils/resolveElementById.ts",
14328
+ "declarations": [
14329
+ {
14330
+ "kind": "function",
14331
+ "name": "resolveElementById",
14332
+ "return": {
14333
+ "type": {
14334
+ "text": "Promise<T | null>"
14335
+ }
14336
+ },
14337
+ "parameters": [
14338
+ {
14339
+ "name": "id",
14340
+ "type": {
14341
+ "text": "string"
14342
+ },
14343
+ "description": "The element ID to resolve."
14344
+ },
14345
+ {
14346
+ "name": "root",
14347
+ "default": "document",
14348
+ "type": {
14349
+ "text": "ParentNode"
14350
+ },
14351
+ "description": "Optional root node to query from (defaults to document)."
14352
+ }
14353
+ ],
14354
+ "description": "Resolves an element by ID, waiting for document readiness if needed."
14355
+ }
14356
+ ],
14357
+ "exports": [
14358
+ {
14359
+ "kind": "js",
14360
+ "name": "resolveElementById",
14361
+ "declaration": {
14362
+ "name": "resolveElementById",
14363
+ "module": "src/shared/utils/resolveElementById.ts"
14364
+ }
14365
+ }
14366
+ ]
14367
+ },
14368
+ {
14369
+ "kind": "javascript-module",
14370
+ "path": "src/shared/utils/resolveFragmentUrl.ts",
14371
+ "declarations": [
14372
+ {
14373
+ "kind": "function",
14374
+ "name": "resolveFragmentUrl",
14375
+ "return": {
14376
+ "type": {
14377
+ "text": ""
14378
+ }
14379
+ },
14380
+ "parameters": [
14381
+ {
14382
+ "name": "id",
14383
+ "type": {
14384
+ "text": "string"
14385
+ },
14386
+ "description": "The fragment identifier to append (e.g., an SVG element's ID)."
14387
+ }
14388
+ ],
14389
+ "description": "Resolves a URL fragment reference (`url(path#id)`) based on the current document location.\r\n\r\nThis helper is typically used when constructing fragment-based URLs for SVG\r\nreferences (e.g., masks, clipPaths, filters) where the browser requires a fully\r\nqualified `url(...)` value that includes the current path.\r\n\r\nHow it works:\r\n- Safely reads `document.location` (guarded for SSR environments).\r\n- Extracts the current page's path + query string.\r\n- Removes any existing hash fragment from the URL.\r\n- Appends `#${id}` to produce a stable fragment reference.\r\n\r\nExample:\r\n // If the current page is /viewer/page?mode=edit#section2\r\n resolveFragmentUrl(\"clip\") → \"url(/viewer/page?mode=edit#clip)\""
14390
+ }
14391
+ ],
14392
+ "exports": [
14393
+ {
14394
+ "kind": "js",
14395
+ "name": "resolveFragmentUrl",
14396
+ "declaration": {
14397
+ "name": "resolveFragmentUrl",
14398
+ "module": "src/shared/utils/resolveFragmentUrl.ts"
14399
+ }
14400
+ }
14401
+ ]
14402
+ },
13946
14403
  {
13947
14404
  "kind": "javascript-module",
13948
14405
  "path": "src/shared/utils/scrollIntoViewIfNeeded.ts",