@rogieking/figui3 6.21.0 → 6.21.1

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.
package/fig-editor.js CHANGED
@@ -1,6 +1,12 @@
1
1
  import "./fig.js";
2
2
  import "./fig-lab.js";
3
3
 
4
+ function figEditorDefineElement(name, constructor) {
5
+ if (!customElements.get(name)) {
6
+ customElements.define(name, constructor);
7
+ }
8
+ }
9
+
4
10
  function figEditorEscapeAttribute(value) {
5
11
  return String(value ?? "")
6
12
  .replace(/&/g, "&")
@@ -2813,4 +2819,4 @@ class FigFillPicker extends HTMLElement {
2813
2819
  }
2814
2820
  }
2815
2821
  }
2816
- customElements.define("fig-fill-picker", FigFillPicker);
2822
+ figEditorDefineElement("fig-fill-picker", FigFillPicker);
package/fig-lab.js CHANGED
@@ -8,6 +8,12 @@
8
8
  * <script src="fig-lab.js"></script>
9
9
  */
10
10
 
11
+ function figLabDefineElement(name, constructor) {
12
+ if (!customElements.get(name)) {
13
+ customElements.define(name, constructor);
14
+ }
15
+ }
16
+
11
17
  function figLabBooleanAttribute(element, name) {
12
18
  return element.hasAttribute(name) && element.getAttribute(name) !== "false";
13
19
  }
@@ -230,7 +236,7 @@ class PropskitSwitch extends HTMLElement {
230
236
  selected?.focus(options);
231
237
  }
232
238
  }
233
- customElements.define("propskit-switch", PropskitSwitch);
239
+ figLabDefineElement("propskit-switch", PropskitSwitch);
234
240
 
235
241
  /* Field + Color wrapper */
236
242
  class PropskitColor extends HTMLElement {
@@ -516,7 +522,7 @@ class PropskitColor extends HTMLElement {
516
522
  this.#input?.querySelector("input:not([tabindex='-1'])")?.focus(options);
517
523
  }
518
524
  }
519
- customElements.define("propskit-color", PropskitColor);
525
+ figLabDefineElement("propskit-color", PropskitColor);
520
526
 
521
527
  /* Field + Select wrapper */
522
528
  class PropskitSelect extends HTMLElement {
@@ -771,7 +777,7 @@ class PropskitSelect extends HTMLElement {
771
777
  this.#select?.focus(options);
772
778
  }
773
779
  }
774
- customElements.define("propskit-select", PropskitSelect);
780
+ figLabDefineElement("propskit-select", PropskitSelect);
775
781
 
776
782
  /* Field + Text wrapper */
777
783
  class PropskitText extends HTMLElement {
@@ -981,7 +987,7 @@ class PropskitText extends HTMLElement {
981
987
  this.#input?.focus(options);
982
988
  }
983
989
  }
984
- customElements.define("propskit-text", PropskitText);
990
+ figLabDefineElement("propskit-text", PropskitText);
985
991
 
986
992
  /* Field + Number wrapper */
987
993
  class PropskitNumber extends HTMLElement {
@@ -1181,7 +1187,7 @@ class PropskitNumber extends HTMLElement {
1181
1187
  this.#input?.focus(options);
1182
1188
  }
1183
1189
  }
1184
- customElements.define("propskit-number", PropskitNumber);
1190
+ figLabDefineElement("propskit-number", PropskitNumber);
1185
1191
 
1186
1192
  /* Collapsible property group — always collapsible (no collapsible attr). */
1187
1193
  class PropskitGroup extends HTMLElement {
@@ -1572,7 +1578,7 @@ class PropskitGroup extends HTMLElement {
1572
1578
  }
1573
1579
  }
1574
1580
  }
1575
- customElements.define("propskit-group", PropskitGroup);
1581
+ figLabDefineElement("propskit-group", PropskitGroup);
1576
1582
 
1577
1583
  /* Field + Slider wrapper */
1578
1584
  class PropskitSlider extends HTMLElement {
@@ -2192,7 +2198,7 @@ class PropskitSlider extends HTMLElement {
2192
2198
  this.#resetToDefault();
2193
2199
  }
2194
2200
  }
2195
- customElements.define("propskit-slider", PropskitSlider);
2201
+ figLabDefineElement("propskit-slider", PropskitSlider);
2196
2202
 
2197
2203
  /* Canvas Control */
2198
2204
  class FigCanvasControl extends HTMLElement {
@@ -3489,7 +3495,7 @@ class FigCanvasControl extends HTMLElement {
3489
3495
  }
3490
3496
  }
3491
3497
  }
3492
- customElements.define("fig-canvas-control", FigCanvasControl);
3498
+ figLabDefineElement("fig-canvas-control", FigCanvasControl);
3493
3499
 
3494
3500
  /* Oscillator Input */
3495
3501
  /**
@@ -4391,7 +4397,7 @@ class PropskitOscillator extends HTMLElement {
4391
4397
  );
4392
4398
  }
4393
4399
  }
4394
- customElements.define("propskit-oscillator", PropskitOscillator);
4400
+ figLabDefineElement("propskit-oscillator", PropskitOscillator);
4395
4401
 
4396
4402
  /* Angle Input */
4397
4403
  /**
@@ -4909,7 +4915,7 @@ class FigInputAngle extends HTMLElement {
4909
4915
  }
4910
4916
  }
4911
4917
  }
4912
- customElements.define("fig-input-angle", FigInputAngle);
4918
+ figLabDefineElement("fig-input-angle", FigInputAngle);
4913
4919
 
4914
4920
  /* Reorder wrapper */
4915
4921
  class FigReorder extends HTMLElement {
@@ -5344,7 +5350,7 @@ class FigReorder extends HTMLElement {
5344
5350
  }
5345
5351
  }
5346
5352
 
5347
- customElements.define("fig-reorder", FigReorder);
5353
+ figLabDefineElement("fig-reorder", FigReorder);
5348
5354
 
5349
5355
  /* Select — dropdown-styled trigger + fig-popup listbox */
5350
5356
  let figLabSelectId = 0;
@@ -5454,7 +5460,7 @@ class FigSelectOption extends HTMLElement {
5454
5460
  }
5455
5461
  }
5456
5462
  }
5457
- customElements.define("fig-select-option", FigSelectOption);
5463
+ figLabDefineElement("fig-select-option", FigSelectOption);
5458
5464
 
5459
5465
  function figLabSyncOverflowState(host, scrollEl, threshold = 2) {
5460
5466
  if (!host || !scrollEl) return false;
@@ -5597,7 +5603,7 @@ class FigSelectOptions extends HTMLElement {
5597
5603
  this.classList.remove("overflow-start", "overflow-end");
5598
5604
  }
5599
5605
  }
5600
- customElements.define("fig-select-options", FigSelectOptions);
5606
+ figLabDefineElement("fig-select-options", FigSelectOptions);
5601
5607
 
5602
5608
  class FigSelect extends HTMLElement {
5603
5609
  #button = null;
@@ -6527,4 +6533,4 @@ class FigSelect extends HTMLElement {
6527
6533
  this.#button?.setAttribute("aria-expanded", "false");
6528
6534
  }
6529
6535
  }
6530
- customElements.define("fig-select", FigSelect);
6536
+ figLabDefineElement("fig-select", FigSelect);
package/fig.js CHANGED
@@ -223,6 +223,12 @@ function figDefineCustomizedBuiltIn(name, constructor, options) {
223
223
  });
224
224
  }
225
225
 
226
+ function figDefineElement(name, constructor) {
227
+ if (!customElements.get(name)) {
228
+ customElements.define(name, constructor);
229
+ }
230
+ }
231
+
226
232
  function figUniqueId() {
227
233
  return Date.now().toString(36) + Math.random().toString(36).substring(2);
228
234
  }
@@ -551,7 +557,7 @@ class FigButton extends HTMLElement {
551
557
  this.removeEventListener("keydown", this.#boundHandleControlKeydown);
552
558
  }
553
559
  }
554
- customElements.define("fig-button", FigButton);
560
+ figDefineElement("fig-button", FigButton);
555
561
 
556
562
  /**
557
563
  * A custom dropdown/select element.
@@ -854,7 +860,7 @@ class FigDropdown extends HTMLElement {
854
860
  }
855
861
  }
856
862
 
857
- customElements.define("fig-dropdown", FigDropdown);
863
+ figDefineElement("fig-dropdown", FigDropdown);
858
864
 
859
865
  /* Tooltip */
860
866
  /**
@@ -1495,7 +1501,7 @@ class FigTooltip extends HTMLElement {
1495
1501
  }
1496
1502
  }
1497
1503
 
1498
- customElements.define("fig-tooltip", FigTooltip);
1504
+ figDefineElement("fig-tooltip", FigTooltip);
1499
1505
 
1500
1506
  /* Text Truncation */
1501
1507
  class FigTruncate extends HTMLElement {
@@ -1574,7 +1580,7 @@ class FigTruncate extends HTMLElement {
1574
1580
  FigTooltip.hide(this);
1575
1581
  }
1576
1582
  }
1577
- customElements.define("fig-truncate", FigTruncate);
1583
+ figDefineElement("fig-truncate", FigTruncate);
1578
1584
 
1579
1585
  /* Dialog */
1580
1586
  /**
@@ -3868,7 +3874,7 @@ class FigTab extends HTMLElement {
3868
3874
  }
3869
3875
  }
3870
3876
  }
3871
- customElements.define("fig-tab", FigTab);
3877
+ figDefineElement("fig-tab", FigTab);
3872
3878
 
3873
3879
  /**
3874
3880
  * A custom tabs container element.
@@ -4198,7 +4204,7 @@ class FigTabs extends HTMLElement {
4198
4204
  }
4199
4205
  }
4200
4206
  }
4201
- customElements.define("fig-tabs", FigTabs);
4207
+ figDefineElement("fig-tabs", FigTabs);
4202
4208
 
4203
4209
  /* Segmented Control */
4204
4210
  /**
@@ -4286,7 +4292,7 @@ class FigSegment extends HTMLElement {
4286
4292
  }
4287
4293
  }
4288
4294
  }
4289
- customElements.define("fig-segment", FigSegment);
4295
+ figDefineElement("fig-segment", FigSegment);
4290
4296
 
4291
4297
  /**
4292
4298
  * A custom segmented control container element.
@@ -4770,7 +4776,7 @@ class FigSegmentedControl extends HTMLElement {
4770
4776
  }
4771
4777
  }
4772
4778
  }
4773
- customElements.define("fig-segmented-control", FigSegmentedControl);
4779
+ figDefineElement("fig-segmented-control", FigSegmentedControl);
4774
4780
 
4775
4781
  /* Options */
4776
4782
  /**
@@ -5115,7 +5121,7 @@ class FigOptions extends HTMLElement {
5115
5121
  }
5116
5122
  }
5117
5123
  }
5118
- customElements.define("fig-options", FigOptions);
5124
+ figDefineElement("fig-options", FigOptions);
5119
5125
 
5120
5126
  /* Slider */
5121
5127
  /**
@@ -5800,7 +5806,7 @@ class FigSlider extends HTMLElement {
5800
5806
  }
5801
5807
  }
5802
5808
  }
5803
- customElements.define("fig-slider", FigSlider);
5809
+ figDefineElement("fig-slider", FigSlider);
5804
5810
 
5805
5811
  /**
5806
5812
  * A custom text input element.
@@ -6404,7 +6410,7 @@ class FigInputText extends HTMLElement {
6404
6410
  }
6405
6411
  }
6406
6412
  }
6407
- customElements.define("fig-input-text", FigInputText);
6413
+ figDefineElement("fig-input-text", FigInputText);
6408
6414
 
6409
6415
  /**
6410
6416
  * A custom numeric input element that uses type="text" with inputmode="decimal".
@@ -7109,7 +7115,7 @@ class FigInputNumber extends HTMLElement {
7109
7115
  }
7110
7116
  }
7111
7117
  }
7112
- customElements.define("fig-input-number", FigInputNumber);
7118
+ figDefineElement("fig-input-number", FigInputNumber);
7113
7119
 
7114
7120
  /* Avatar */
7115
7121
  class FigAvatar extends HTMLElement {
@@ -7161,7 +7167,7 @@ class FigAvatar extends HTMLElement {
7161
7167
  }
7162
7168
  }
7163
7169
  }
7164
- customElements.define("fig-avatar", FigAvatar);
7170
+ figDefineElement("fig-avatar", FigAvatar);
7165
7171
 
7166
7172
  /* Form Field */
7167
7173
  class FigField extends HTMLElement {
@@ -7360,7 +7366,7 @@ class FigField extends HTMLElement {
7360
7366
  }
7361
7367
  }
7362
7368
  }
7363
- customElements.define("fig-field", FigField);
7369
+ figDefineElement("fig-field", FigField);
7364
7370
 
7365
7371
  /* Color swatch */
7366
7372
  class FigInputColor extends HTMLElement {
@@ -8056,7 +8062,7 @@ class FigInputColor extends HTMLElement {
8056
8062
  return { r, g, b, a };
8057
8063
  }
8058
8064
  }
8059
- customElements.define("fig-input-color", FigInputColor);
8065
+ figDefineElement("fig-input-color", FigInputColor);
8060
8066
 
8061
8067
  /* Input Fill */
8062
8068
  const GRADIENT_INTERPOLATION_SPACES = [
@@ -9157,7 +9163,7 @@ class FigInputFill extends HTMLElement {
9157
9163
  }
9158
9164
  }
9159
9165
  }
9160
- customElements.define("fig-input-fill", FigInputFill);
9166
+ figDefineElement("fig-input-fill", FigInputFill);
9161
9167
 
9162
9168
  /* Input Palette */
9163
9169
  /**
@@ -9617,7 +9623,7 @@ class FigInputPalette extends HTMLElement {
9617
9623
  );
9618
9624
  }
9619
9625
  }
9620
- customElements.define("fig-input-palette", FigInputPalette);
9626
+ figDefineElement("fig-input-palette", FigInputPalette);
9621
9627
 
9622
9628
  /* Input Gradient */
9623
9629
  /**
@@ -10529,7 +10535,7 @@ class FigInputGradient extends HTMLElement {
10529
10535
  }
10530
10536
  }
10531
10537
  }
10532
- customElements.define("fig-input-gradient", FigInputGradient);
10538
+ figDefineElement("fig-input-gradient", FigInputGradient);
10533
10539
 
10534
10540
  /* Checkbox */
10535
10541
  /**
@@ -10767,7 +10773,7 @@ class FigCheckbox extends HTMLElement {
10767
10773
  );
10768
10774
  }
10769
10775
  }
10770
- customElements.define("fig-checkbox", FigCheckbox);
10776
+ figDefineElement("fig-checkbox", FigCheckbox);
10771
10777
 
10772
10778
  /* Radio */
10773
10779
  /**
@@ -10787,7 +10793,7 @@ class FigRadio extends FigCheckbox {
10787
10793
  else this.input.removeAttribute("name");
10788
10794
  }
10789
10795
  }
10790
- customElements.define("fig-radio", FigRadio);
10796
+ figDefineElement("fig-radio", FigRadio);
10791
10797
 
10792
10798
  /* Switch */
10793
10799
  /**
@@ -10804,7 +10810,7 @@ class FigSwitch extends FigCheckbox {
10804
10810
  this.input.setAttribute("role", "switch");
10805
10811
  }
10806
10812
  }
10807
- customElements.define("fig-switch", FigSwitch);
10813
+ figDefineElement("fig-switch", FigSwitch);
10808
10814
 
10809
10815
  /* Combo Input */
10810
10816
  /**
@@ -11099,7 +11105,7 @@ class FigComboInput extends HTMLElement {
11099
11105
  }
11100
11106
  }
11101
11107
  }
11102
- customElements.define("fig-combo-input", FigComboInput);
11108
+ figDefineElement("fig-combo-input", FigComboInput);
11103
11109
 
11104
11110
  /* Swatch */
11105
11111
  /**
@@ -11315,7 +11321,7 @@ class FigSwatch extends HTMLElement {
11315
11321
  }
11316
11322
  }
11317
11323
  }
11318
- customElements.define("fig-swatch", FigSwatch);
11324
+ figDefineElement("fig-swatch", FigSwatch);
11319
11325
 
11320
11326
  /* Media */
11321
11327
  /**
@@ -12071,21 +12077,21 @@ class FigMedia extends HTMLElement {
12071
12077
  }
12072
12078
  }
12073
12079
 
12074
- customElements.define("fig-media", FigMedia);
12080
+ figDefineElement("fig-media", FigMedia);
12075
12081
 
12076
12082
  class FigImage extends FigMedia {
12077
12083
  get mediaKind() {
12078
12084
  return "image";
12079
12085
  }
12080
12086
  }
12081
- customElements.define("fig-image", FigImage);
12087
+ figDefineElement("fig-image", FigImage);
12082
12088
 
12083
12089
  class FigVideo extends FigMedia {
12084
12090
  get mediaKind() {
12085
12091
  return "video";
12086
12092
  }
12087
12093
  }
12088
- customElements.define("fig-video", FigVideo);
12094
+ figDefineElement("fig-video", FigVideo);
12089
12095
 
12090
12096
  /**
12091
12097
  * <fig-card> — Media card with optional link, selection chrome, and truncated label.
@@ -12358,7 +12364,7 @@ class FigCard extends HTMLElement {
12358
12364
  }
12359
12365
  }
12360
12366
  }
12361
- customElements.define("fig-card", FigCard);
12367
+ figDefineElement("fig-card", FigCard);
12362
12368
 
12363
12369
  /**
12364
12370
  * <fig-media-controls> — Standalone playback controls UI.
@@ -12601,7 +12607,7 @@ class FigMediaControls extends HTMLElement {
12601
12607
  this.toggle();
12602
12608
  }
12603
12609
  }
12604
- customElements.define("fig-media-controls", FigMediaControls);
12610
+ figDefineElement("fig-media-controls", FigMediaControls);
12605
12611
 
12606
12612
  /* File Upload Input */
12607
12613
  class FigInputFile extends HTMLElement {
@@ -12865,7 +12871,7 @@ class FigInputFile extends HTMLElement {
12865
12871
  }
12866
12872
  }
12867
12873
  }
12868
- customElements.define("fig-input-file", FigInputFile);
12874
+ figDefineElement("fig-input-file", FigInputFile);
12869
12875
 
12870
12876
  /**
12871
12877
  * A bezier / spring easing curve editor with draggable control points.
@@ -14002,7 +14008,7 @@ class FigEasingCurve extends HTMLElement {
14002
14008
  document.addEventListener("pointerup", onUp);
14003
14009
  }
14004
14010
  }
14005
- customElements.define("fig-easing-curve", FigEasingCurve);
14011
+ figDefineElement("fig-easing-curve", FigEasingCurve);
14006
14012
 
14007
14013
  /**
14008
14014
  * A 3D rotation control with an interactive cube preview.
@@ -14372,7 +14378,7 @@ class Fig3DRotate extends HTMLElement {
14372
14378
  this.#container.addEventListener("lostpointercapture", onEnd);
14373
14379
  }
14374
14380
  }
14375
- customElements.define("fig-3d-rotate", Fig3DRotate);
14381
+ figDefineElement("fig-3d-rotate", Fig3DRotate);
14376
14382
 
14377
14383
  /**
14378
14384
  * A transform-origin grid control with draggable handle.
@@ -14922,7 +14928,7 @@ class FigOriginGrid extends HTMLElement {
14922
14928
  bindValueInput(this.#yInput, "y");
14923
14929
  }
14924
14930
  }
14925
- customElements.define("fig-origin-grid", FigOriginGrid);
14931
+ figDefineElement("fig-origin-grid", FigOriginGrid);
14926
14932
 
14927
14933
  /**
14928
14934
  * A custom joystick input element.
@@ -15347,7 +15353,7 @@ class FigInputJoystick extends HTMLElement {
15347
15353
  }
15348
15354
  }
15349
15355
 
15350
- customElements.define("fig-joystick", FigInputJoystick);
15356
+ figDefineElement("fig-joystick", FigInputJoystick);
15351
15357
 
15352
15358
 
15353
15359
  // FigInputAngle moved to fig-lab.js
@@ -15404,7 +15410,7 @@ class FigShimmer extends HTMLElement {
15404
15410
  }
15405
15411
  }
15406
15412
  }
15407
- customElements.define("fig-shimmer", FigShimmer);
15413
+ figDefineElement("fig-shimmer", FigShimmer);
15408
15414
 
15409
15415
  // FigSkeleton
15410
15416
  class FigSkeleton extends FigShimmer {
@@ -15414,7 +15420,7 @@ class FigSkeleton extends FigShimmer {
15414
15420
  this.setAttribute("inert", "");
15415
15421
  }
15416
15422
  }
15417
- customElements.define("fig-skeleton", FigSkeleton);
15423
+ figDefineElement("fig-skeleton", FigSkeleton);
15418
15424
 
15419
15425
  // FigGroup
15420
15426
  class FigGroup extends HTMLElement {
@@ -15560,7 +15566,7 @@ class FigGroup extends HTMLElement {
15560
15566
  }
15561
15567
  }
15562
15568
  }
15563
- customElements.define("fig-group", FigGroup);
15569
+ figDefineElement("fig-group", FigGroup);
15564
15570
 
15565
15571
  /**
15566
15572
  * A presentational header element used inside fig-dialog, fig-group, and other containers.
@@ -15570,7 +15576,7 @@ customElements.define("fig-group", FigGroup);
15570
15576
  * @attr {boolean} dialog-header - Marks this as a dialog header (auto-generated by fig-dialog)
15571
15577
  */
15572
15578
  class FigHeader extends HTMLElement {}
15573
- customElements.define("fig-header", FigHeader);
15579
+ figDefineElement("fig-header", FigHeader);
15574
15580
 
15575
15581
  /**
15576
15582
  * fig-footer
@@ -15579,7 +15585,7 @@ customElements.define("fig-header", FigHeader);
15579
15585
  * @attr {boolean} sticky - Pins the footer to the bottom of its scroll container
15580
15586
  */
15581
15587
  class FigFooter extends HTMLElement {}
15582
- customElements.define("fig-footer", FigFooter);
15588
+ figDefineElement("fig-footer", FigFooter);
15583
15589
 
15584
15590
  /* Presentational elements (CSS-only, no behavior) */
15585
15591
  class FigSpinner extends HTMLElement {
@@ -15590,7 +15596,7 @@ class FigSpinner extends HTMLElement {
15590
15596
  }
15591
15597
  }
15592
15598
  }
15593
- customElements.define("fig-spinner", FigSpinner);
15599
+ figDefineElement("fig-spinner", FigSpinner);
15594
15600
 
15595
15601
  /**
15596
15602
  * A styled visual preview layer for arbitrary content such as images, canvas,
@@ -15620,7 +15626,7 @@ class FigPreview extends HTMLElement {
15620
15626
  }
15621
15627
  }
15622
15628
  }
15623
- customElements.define("fig-preview", FigPreview);
15629
+ figDefineElement("fig-preview", FigPreview);
15624
15630
 
15625
15631
  /**
15626
15632
  * Compact swatch previewing gradient color-space interpolation.
@@ -15928,7 +15934,7 @@ class FigInterpolationSwatch extends HTMLElement {
15928
15934
  this.#fillEl.style.background = this.#previewBackground();
15929
15935
  }
15930
15936
  }
15931
- customElements.define("fig-interpolation-swatch", FigInterpolationSwatch);
15937
+ figDefineElement("fig-interpolation-swatch", FigInterpolationSwatch);
15932
15938
 
15933
15939
  /** @type {Record<string, string | { medium: string, small: string }>} */
15934
15940
  const FIG_ICON_TOKENS = {
@@ -16015,19 +16021,19 @@ class FigIcon extends HTMLElement {
16015
16021
  }
16016
16022
  }
16017
16023
  }
16018
- customElements.define("fig-icon", FigIcon);
16024
+ figDefineElement("fig-icon", FigIcon);
16019
16025
 
16020
16026
  class FigContent extends HTMLElement {}
16021
- customElements.define("fig-content", FigContent);
16027
+ figDefineElement("fig-content", FigContent);
16022
16028
 
16023
16029
  class FigTabContent extends HTMLElement {}
16024
- customElements.define("fig-tab-content", FigTabContent);
16030
+ figDefineElement("fig-tab-content", FigTabContent);
16025
16031
 
16026
16032
  class FigButtonCombo extends HTMLElement {}
16027
- customElements.define("fig-button-combo", FigButtonCombo);
16033
+ figDefineElement("fig-button-combo", FigButtonCombo);
16028
16034
 
16029
16035
  class FigInputCombo extends HTMLElement {}
16030
- customElements.define("fig-input-combo", FigInputCombo);
16036
+ figDefineElement("fig-input-combo", FigInputCombo);
16031
16037
 
16032
16038
 
16033
16039
 
@@ -16405,7 +16411,7 @@ class FigColorTip extends HTMLElement {
16405
16411
  this.toggleAttribute("disabled", Boolean(value));
16406
16412
  }
16407
16413
  }
16408
- customElements.define("fig-color-tip", FigColorTip);
16414
+ figDefineElement("fig-color-tip", FigColorTip);
16409
16415
 
16410
16416
  /* Choice */
16411
16417
  /**
@@ -16454,7 +16460,7 @@ class FigChoice extends HTMLElement {
16454
16460
  }
16455
16461
  }
16456
16462
  }
16457
- customElements.define("fig-choice", FigChoice);
16463
+ figDefineElement("fig-choice", FigChoice);
16458
16464
 
16459
16465
  /* Chooser */
16460
16466
  /**
@@ -17059,7 +17065,7 @@ class FigChooser extends HTMLElement {
17059
17065
  this.#mutationObserver.observe(this, { childList: true, subtree: false });
17060
17066
  }
17061
17067
  }
17062
- customElements.define("fig-chooser", FigChooser);
17068
+ figDefineElement("fig-chooser", FigChooser);
17063
17069
 
17064
17070
  /* Handle */
17065
17071
  class FigHandle extends HTMLElement {
@@ -17981,7 +17987,7 @@ class FigHandle extends HTMLElement {
17981
17987
  return { x, y, px, py };
17982
17988
  }
17983
17989
  }
17984
- customElements.define("fig-handle", FigHandle);
17990
+ figDefineElement("fig-handle", FigHandle);
17985
17991
 
17986
17992
  // ─── Menu ────────────────────────────────────────────────────────────────────
17987
17993
 
@@ -18029,7 +18035,7 @@ class FigMenuItem extends HTMLElement {
18029
18035
  }
18030
18036
  }
18031
18037
  }
18032
- customElements.define("fig-menu-item", FigMenuItem);
18038
+ figDefineElement("fig-menu-item", FigMenuItem);
18033
18039
 
18034
18040
  /**
18035
18041
  * Visual divider between menu item groups.
@@ -18067,7 +18073,7 @@ class FigMenuSeparator extends HTMLElement {
18067
18073
  else this.removeAttribute("aria-label");
18068
18074
  }
18069
18075
  }
18070
- customElements.define("fig-menu-separator", FigMenuSeparator);
18076
+ figDefineElement("fig-menu-separator", FigMenuSeparator);
18071
18077
 
18072
18078
  class FigMenu extends HTMLElement {
18073
18079
  #popup = null;
@@ -18510,4 +18516,4 @@ class FigMenu extends HTMLElement {
18510
18516
  this.#trigger?.setAttribute("aria-expanded", "false");
18511
18517
  }
18512
18518
  }
18513
- customElements.define("fig-menu", FigMenu);
18519
+ figDefineElement("fig-menu", FigMenu);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rogieking/figui3",
3
- "version": "6.21.0",
3
+ "version": "6.21.1",
4
4
  "description": "A lightweight web components library for building Figma plugin and widget UIs with native look and feel",
5
5
  "author": "Rogie King",
6
6
  "license": "MIT",
@@ -69,7 +69,7 @@
69
69
  ],
70
70
  "scripts": {
71
71
  "dev": "bun --hot server.ts",
72
- "build": "bun build fig.js --minify --outdir dist && bun build fig-layer.js --minify --outdir dist && bun build fig-editor.js --minify --outdir dist --external ./fig.js && bun build fig-lab.js --minify --outdir dist --external ./fig.js --external ./fig-editor.js && bun build propskit.js --minify --outdir dist && npm run build:css && npm run build:propskit-css",
72
+ "build": "bun build fig.js --minify --outdir dist && bun build fig-layer.js --minify --outdir dist && bun build fig-editor.js --minify --outdir dist --external ./fig.js --external ./fig-lab.js && bun build fig-lab.js --minify --outdir dist --external ./fig.js --external ./fig-editor.js && bun build propskit.js --minify --outdir dist --external ./fig.js --external ./fig-lab.js --external ./fig-editor.js && npm run build:css && npm run build:propskit-css",
73
73
  "build:css": "node scripts/build-css.mjs",
74
74
  "build:propskit-css": "node scripts/build-propskit-css.mjs",
75
75
  "dev:playground": "node playground/dev.mjs",