@rfkit/charts 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -79,6 +79,10 @@ var __webpack_modules__ = {
79
79
  module.id,
80
80
  `@layer properties {
81
81
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
82
+ [data-rfkit-charts-root], [data-rfkit-charts-root] {
83
+ --shimmer-angle: 20deg;
84
+ }
85
+
82
86
  [data-rfkit-charts-root] *, [data-rfkit-charts-root] :before, [data-rfkit-charts-root] :after {
83
87
  --tw-animation-delay: 0s;
84
88
  --tw-animation-direction: normal;
@@ -97,6 +101,13 @@ var __webpack_modules__ = {
97
101
  --tw-exit-scale: 1;
98
102
  --tw-exit-translate-x: 0;
99
103
  --tw-exit-translate-y: 0;
104
+ --scroll-fade-t: 0px;
105
+ --scroll-fade-b: 0px;
106
+ --scroll-fade-s: 0px;
107
+ --scroll-fade-e: 0px;
108
+ --scroll-fade-mask: initial;
109
+ --shimmer-image: initial;
110
+ --shimmer-text-fill: initial;
100
111
  --tw-translate-x: 0;
101
112
  --tw-translate-y: 0;
102
113
  --tw-translate-z: 0;
@@ -170,6 +181,13 @@ var __webpack_modules__ = {
170
181
  --tw-exit-scale: 1;
171
182
  --tw-exit-translate-x: 0;
172
183
  --tw-exit-translate-y: 0;
184
+ --scroll-fade-t: 0px;
185
+ --scroll-fade-b: 0px;
186
+ --scroll-fade-s: 0px;
187
+ --scroll-fade-e: 0px;
188
+ --scroll-fade-mask: initial;
189
+ --shimmer-image: initial;
190
+ --shimmer-text-fill: initial;
173
191
  --tw-translate-x: 0;
174
192
  --tw-translate-y: 0;
175
193
  --tw-translate-z: 0;
@@ -367,6 +385,59 @@ var __webpack_modules__ = {
367
385
  initial-value: 0;
368
386
  }
369
387
 
388
+ @property --scroll-fade-t {
389
+ syntax: "<length-percentage>";
390
+ inherits: false;
391
+ initial-value: 0;
392
+ }
393
+
394
+ @property --scroll-fade-b {
395
+ syntax: "<length-percentage>";
396
+ inherits: false;
397
+ initial-value: 0;
398
+ }
399
+
400
+ @property --scroll-fade-s {
401
+ syntax: "<length-percentage>";
402
+ inherits: false;
403
+ initial-value: 0;
404
+ }
405
+
406
+ @property --scroll-fade-e {
407
+ syntax: "<length-percentage>";
408
+ inherits: false;
409
+ initial-value: 0;
410
+ }
411
+
412
+ @property --scroll-fade-mask {
413
+ syntax: "*";
414
+ inherits: false
415
+ }
416
+
417
+ @property --shimmer-angle {
418
+ syntax: "<angle>";
419
+ inherits: true;
420
+ initial-value: 20deg;
421
+ }
422
+
423
+ @property --shimmer-image {
424
+ syntax: "*";
425
+ inherits: false
426
+ }
427
+
428
+ @property --shimmer-text-fill {
429
+ syntax: "*";
430
+ inherits: false
431
+ }
432
+
433
+ @media (prefers-reduced-motion: reduce) {
434
+ [data-rfkit-charts-root] .shimmer {
435
+ -webkit-text-fill-color: currentColor;
436
+ background-image: none;
437
+ animation: none;
438
+ }
439
+ }
440
+
370
441
  [data-rfkit-charts-root] .pointer-events-auto {
371
442
  pointer-events: auto;
372
443
  }
@@ -412,23 +483,15 @@ var __webpack_modules__ = {
412
483
  }
413
484
 
414
485
  [data-rfkit-charts-root] .inset-0 {
415
- inset: calc(var(--spacing) * 0);
486
+ inset: 0;
416
487
  }
417
488
 
418
489
  [data-rfkit-charts-root] .inset-x-0 {
419
- inset-inline: calc(var(--spacing) * 0);
420
- }
421
-
422
- [data-rfkit-charts-root] .start {
423
- inset-inline-start: var(--spacing);
424
- }
425
-
426
- [data-rfkit-charts-root] .end {
427
- inset-inline-end: var(--spacing);
490
+ inset-inline: 0;
428
491
  }
429
492
 
430
493
  [data-rfkit-charts-root] .top-0 {
431
- top: calc(var(--spacing) * 0);
494
+ top: 0;
432
495
  }
433
496
 
434
497
  [data-rfkit-charts-root] .top-1\\/2 {
@@ -460,7 +523,7 @@ var __webpack_modules__ = {
460
523
  }
461
524
 
462
525
  [data-rfkit-charts-root] .right-0 {
463
- right: calc(var(--spacing) * 0);
526
+ right: 0;
464
527
  }
465
528
 
466
529
  [data-rfkit-charts-root] .right-4 {
@@ -480,7 +543,7 @@ var __webpack_modules__ = {
480
543
  }
481
544
 
482
545
  [data-rfkit-charts-root] .bottom-0 {
483
- bottom: calc(var(--spacing) * 0);
546
+ bottom: 0;
484
547
  }
485
548
 
486
549
  [data-rfkit-charts-root] .bottom-5 {
@@ -492,7 +555,7 @@ var __webpack_modules__ = {
492
555
  }
493
556
 
494
557
  [data-rfkit-charts-root] .left-0 {
495
- left: calc(var(--spacing) * 0);
558
+ left: 0;
496
559
  }
497
560
 
498
561
  [data-rfkit-charts-root] .left-1\\/2 {
@@ -622,7 +685,7 @@ var __webpack_modules__ = {
622
685
  }
623
686
 
624
687
  [data-rfkit-charts-root] .m-0 {
625
- margin: calc(var(--spacing) * 0);
688
+ margin: 0;
626
689
  }
627
690
 
628
691
  [data-rfkit-charts-root] .-mx-1 {
@@ -630,11 +693,11 @@ var __webpack_modules__ = {
630
693
  }
631
694
 
632
695
  [data-rfkit-charts-root] .mx-1 {
633
- margin-inline: calc(var(--spacing) * 1);
696
+ margin-inline: var(--spacing);
634
697
  }
635
698
 
636
699
  [data-rfkit-charts-root] .my-1 {
637
- margin-block: calc(var(--spacing) * 1);
700
+ margin-block: var(--spacing);
638
701
  }
639
702
 
640
703
  [data-rfkit-charts-root] .my-\\[calc\\(var\\(--size-gap-base\\)\\/2\\)\\] {
@@ -646,7 +709,7 @@ var __webpack_modules__ = {
646
709
  }
647
710
 
648
711
  [data-rfkit-charts-root] .mt-1 {
649
- margin-top: calc(var(--spacing) * 1);
712
+ margin-top: var(--spacing);
650
713
  }
651
714
 
652
715
  [data-rfkit-charts-root] .mt-2 {
@@ -670,11 +733,11 @@ var __webpack_modules__ = {
670
733
  }
671
734
 
672
735
  [data-rfkit-charts-root] .mr-1 {
673
- margin-right: calc(var(--spacing) * 1);
736
+ margin-right: var(--spacing);
674
737
  }
675
738
 
676
739
  [data-rfkit-charts-root] .mb-1 {
677
- margin-bottom: calc(var(--spacing) * 1);
740
+ margin-bottom: var(--spacing);
678
741
  }
679
742
 
680
743
  [data-rfkit-charts-root] .mb-2 {
@@ -749,7 +812,7 @@ var __webpack_modules__ = {
749
812
  }
750
813
 
751
814
  [data-rfkit-charts-root] .h-0 {
752
- height: calc(var(--spacing) * 0);
815
+ height: 0;
753
816
  }
754
817
 
755
818
  [data-rfkit-charts-root] .h-1\\.5 {
@@ -845,7 +908,7 @@ var __webpack_modules__ = {
845
908
  }
846
909
 
847
910
  [data-rfkit-charts-root] .min-h-0 {
848
- min-height: calc(var(--spacing) * 0);
911
+ min-height: 0;
849
912
  }
850
913
 
851
914
  [data-rfkit-charts-root] .min-h-\\[30\\%\\] {
@@ -873,7 +936,7 @@ var __webpack_modules__ = {
873
936
  }
874
937
 
875
938
  [data-rfkit-charts-root] .w-0 {
876
- width: calc(var(--spacing) * 0);
939
+ width: 0;
877
940
  }
878
941
 
879
942
  [data-rfkit-charts-root] .w-2\\.5 {
@@ -978,7 +1041,7 @@ var __webpack_modules__ = {
978
1041
  }
979
1042
 
980
1043
  [data-rfkit-charts-root] .min-w-0 {
981
- min-width: calc(var(--spacing) * 0);
1044
+ min-width: 0;
982
1045
  }
983
1046
 
984
1047
  [data-rfkit-charts-root] .min-w-4 {
@@ -1060,7 +1123,7 @@ var __webpack_modules__ = {
1060
1123
  }
1061
1124
 
1062
1125
  [data-rfkit-charts-root] .translate-x-0 {
1063
- --tw-translate-x: calc(var(--spacing) * 0);
1126
+ --tw-translate-x: 0;
1064
1127
  translate: var(--tw-translate-x) var(--tw-translate-y);
1065
1128
  }
1066
1129
 
@@ -1075,7 +1138,7 @@ var __webpack_modules__ = {
1075
1138
  }
1076
1139
 
1077
1140
  [data-rfkit-charts-root] .translate-y-0 {
1078
- --tw-translate-y: calc(var(--spacing) * 0);
1141
+ --tw-translate-y: 0;
1079
1142
  translate: var(--tw-translate-x) var(--tw-translate-y);
1080
1143
  }
1081
1144
 
@@ -1201,7 +1264,7 @@ var __webpack_modules__ = {
1201
1264
  }
1202
1265
 
1203
1266
  [data-rfkit-charts-root] .gap-0 {
1204
- gap: calc(var(--spacing) * 0);
1267
+ gap: 0;
1205
1268
  }
1206
1269
 
1207
1270
  [data-rfkit-charts-root] .gap-0\\.5 {
@@ -1209,7 +1272,7 @@ var __webpack_modules__ = {
1209
1272
  }
1210
1273
 
1211
1274
  [data-rfkit-charts-root] .gap-1 {
1212
- gap: calc(var(--spacing) * 1);
1275
+ gap: var(--spacing);
1213
1276
  }
1214
1277
 
1215
1278
  [data-rfkit-charts-root] .gap-1\\.5 {
@@ -1238,8 +1301,8 @@ var __webpack_modules__ = {
1238
1301
 
1239
1302
  [data-rfkit-charts-root] :where(.space-y-1 > :not(:last-child)) {
1240
1303
  --tw-space-y-reverse: 0;
1241
- margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
1242
- margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
1304
+ margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));
1305
+ margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));
1243
1306
  }
1244
1307
 
1245
1308
  [data-rfkit-charts-root] :where(.space-y-2 > :not(:last-child)) {
@@ -1249,7 +1312,7 @@ var __webpack_modules__ = {
1249
1312
  }
1250
1313
 
1251
1314
  [data-rfkit-charts-root] .gap-x-1 {
1252
- column-gap: calc(var(--spacing) * 1);
1315
+ column-gap: var(--spacing);
1253
1316
  }
1254
1317
 
1255
1318
  [data-rfkit-charts-root] .gap-x-3 {
@@ -1265,7 +1328,7 @@ var __webpack_modules__ = {
1265
1328
  }
1266
1329
 
1267
1330
  [data-rfkit-charts-root] .gap-y-1 {
1268
- row-gap: calc(var(--spacing) * 1);
1331
+ row-gap: var(--spacing);
1269
1332
  }
1270
1333
 
1271
1334
  [data-rfkit-charts-root] .gap-y-2 {
@@ -1658,7 +1721,7 @@ var __webpack_modules__ = {
1658
1721
  }
1659
1722
 
1660
1723
  [data-rfkit-charts-root] .p-0 {
1661
- padding: calc(var(--spacing) * 0);
1724
+ padding: 0;
1662
1725
  }
1663
1726
 
1664
1727
  [data-rfkit-charts-root] .p-0\\.5 {
@@ -1666,7 +1729,7 @@ var __webpack_modules__ = {
1666
1729
  }
1667
1730
 
1668
1731
  [data-rfkit-charts-root] .p-1 {
1669
- padding: calc(var(--spacing) * 1);
1732
+ padding: var(--spacing);
1670
1733
  }
1671
1734
 
1672
1735
  [data-rfkit-charts-root] .p-2 {
@@ -1702,7 +1765,7 @@ var __webpack_modules__ = {
1702
1765
  }
1703
1766
 
1704
1767
  [data-rfkit-charts-root] .px-1 {
1705
- padding-inline: calc(var(--spacing) * 1);
1768
+ padding-inline: var(--spacing);
1706
1769
  }
1707
1770
 
1708
1771
  [data-rfkit-charts-root] .px-1\\.5 {
@@ -1742,7 +1805,7 @@ var __webpack_modules__ = {
1742
1805
  }
1743
1806
 
1744
1807
  [data-rfkit-charts-root] .py-1 {
1745
- padding-block: calc(var(--spacing) * 1);
1808
+ padding-block: var(--spacing);
1746
1809
  }
1747
1810
 
1748
1811
  [data-rfkit-charts-root] .py-1\\.5 {
@@ -1758,11 +1821,11 @@ var __webpack_modules__ = {
1758
1821
  }
1759
1822
 
1760
1823
  [data-rfkit-charts-root] .pt-0 {
1761
- padding-top: calc(var(--spacing) * 0);
1824
+ padding-top: 0;
1762
1825
  }
1763
1826
 
1764
1827
  [data-rfkit-charts-root] .pt-1 {
1765
- padding-top: calc(var(--spacing) * 1);
1828
+ padding-top: var(--spacing);
1766
1829
  }
1767
1830
 
1768
1831
  [data-rfkit-charts-root] .pt-\\[calc\\(var\\(--size-gap-base\\)\\/2\\)\\] {
@@ -1770,7 +1833,7 @@ var __webpack_modules__ = {
1770
1833
  }
1771
1834
 
1772
1835
  [data-rfkit-charts-root] .pr-0 {
1773
- padding-right: calc(var(--spacing) * 0);
1836
+ padding-right: 0;
1774
1837
  }
1775
1838
 
1776
1839
  [data-rfkit-charts-root] .pr-0\\.5 {
@@ -1778,7 +1841,7 @@ var __webpack_modules__ = {
1778
1841
  }
1779
1842
 
1780
1843
  [data-rfkit-charts-root] .pr-1 {
1781
- padding-right: calc(var(--spacing) * 1);
1844
+ padding-right: var(--spacing);
1782
1845
  }
1783
1846
 
1784
1847
  [data-rfkit-charts-root] .pr-2 {
@@ -1786,11 +1849,11 @@ var __webpack_modules__ = {
1786
1849
  }
1787
1850
 
1788
1851
  [data-rfkit-charts-root] .pb-0 {
1789
- padding-bottom: calc(var(--spacing) * 0);
1852
+ padding-bottom: 0;
1790
1853
  }
1791
1854
 
1792
1855
  [data-rfkit-charts-root] .pb-1 {
1793
- padding-bottom: calc(var(--spacing) * 1);
1856
+ padding-bottom: var(--spacing);
1794
1857
  }
1795
1858
 
1796
1859
  [data-rfkit-charts-root] .pl-0\\.5 {
@@ -2574,7 +2637,7 @@ var __webpack_modules__ = {
2574
2637
  }
2575
2638
 
2576
2639
  [data-rfkit-charts-root] .data-\\[side\\=bottom\\]\\:translate-y-1[data-side="bottom"] {
2577
- --tw-translate-y: calc(var(--spacing) * 1);
2640
+ --tw-translate-y: var(--spacing);
2578
2641
  translate: var(--tw-translate-x) var(--tw-translate-y);
2579
2642
  }
2580
2643
 
@@ -2592,7 +2655,7 @@ var __webpack_modules__ = {
2592
2655
  }
2593
2656
 
2594
2657
  [data-rfkit-charts-root] .data-\\[side\\=right\\]\\:translate-x-1[data-side="right"] {
2595
- --tw-translate-x: calc(var(--spacing) * 1);
2658
+ --tw-translate-x: var(--spacing);
2596
2659
  translate: var(--tw-translate-x) var(--tw-translate-y);
2597
2660
  }
2598
2661
 
@@ -2700,7 +2763,7 @@ var __webpack_modules__ = {
2700
2763
  }
2701
2764
 
2702
2765
  [data-rfkit-charts-root] .data-\\[state\\=unchecked\\]\\:translate-x-0[data-state="unchecked"] {
2703
- --tw-translate-x: calc(var(--spacing) * 0);
2766
+ --tw-translate-x: 0;
2704
2767
  translate: var(--tw-translate-x) var(--tw-translate-y);
2705
2768
  }
2706
2769
 
@@ -4546,6 +4609,11 @@ var constants_FrequencyUnit = /*#__PURE__*/ function(FrequencyUnit) {
4546
4609
  FrequencyUnit["GHz"] = "GHz";
4547
4610
  return FrequencyUnit;
4548
4611
  }({});
4612
+ var constants_AxisPlacement = /*#__PURE__*/ function(AxisPlacement) {
4613
+ AxisPlacement["Outside"] = "outside";
4614
+ AxisPlacement["Inside"] = "inside";
4615
+ return AxisPlacement;
4616
+ }({});
4549
4617
  var constants_ChartType = /*#__PURE__*/ function(ChartType) {
4550
4618
  ChartType["SingleFrequency"] = "singleFrequency";
4551
4619
  ChartType["Scan"] = "scan";
@@ -5082,7 +5150,9 @@ function isRangeIntersectSegment(range, segment) {
5082
5150
  }
5083
5151
  const isPlainObject = (value1)=>'[object Object]' === Object.prototype.toString.call(value1) && null !== value1;
5084
5152
  const mergeObjects = (source, params)=>{
5085
- const target = source;
5153
+ const target = {
5154
+ ...source
5155
+ };
5086
5156
  Object.keys(target).forEach((key)=>{
5087
5157
  const paramValue = params[key];
5088
5158
  if (isPlainObject(paramValue) && isPlainObject(target[key])) target[key] = {
@@ -5198,6 +5268,66 @@ const convertToTimestampedArrays = (data, timestamps)=>{
5198
5268
  return frame;
5199
5269
  });
5200
5270
  };
5271
+ const BandKind = {
5272
+ Position: 'position',
5273
+ CenterBandwidth: 'centerBandwidth',
5274
+ FrequencyRange: 'frequencyRange'
5275
+ };
5276
+ const DEFAULT_BAND_STATE = {
5277
+ kind: BandKind.Position,
5278
+ show: false,
5279
+ left: void 0,
5280
+ width: 0,
5281
+ color: ''
5282
+ };
5283
+ const hasOwn = (value1, key)=>Object.hasOwn(value1, key);
5284
+ const isFiniteNumber = (value1)=>'number' == typeof value1 && Number.isFinite(value1);
5285
+ const hasValidSharedFields = (input)=>(!hasOwn(input, 'show') || 'boolean' == typeof input.show) && (!hasOwn(input, 'color') || void 0 === input.color || 'string' == typeof input.color);
5286
+ const resolveSharedState = (input, current, strategy)=>({
5287
+ show: 'boolean' == typeof input.show ? input.show : 'merge' === strategy ? current.show : true,
5288
+ color: hasOwn(input, 'color') ? input.color : 'merge' === strategy ? current.color : void 0
5289
+ });
5290
+ function resolveBandState(input, current = DEFAULT_BAND_STATE, strategy = 'replace') {
5291
+ if (!hasValidSharedFields(input)) return current;
5292
+ const hasPosition = hasOwn(input, 'left') || hasOwn(input, 'width');
5293
+ const hasCenter = hasOwn(input, 'frequency') || hasOwn(input, 'bandwidth');
5294
+ const hasRange = hasOwn(input, 'startFrequency') || hasOwn(input, 'stopFrequency');
5295
+ const modeCount = Number(hasPosition) + Number(hasCenter) + Number(hasRange);
5296
+ if (modeCount > 1) return current;
5297
+ const shared = resolveSharedState(input, current, strategy);
5298
+ if (hasCenter) {
5299
+ if (!isFiniteNumber(input.frequency) || !isFiniteNumber(input.bandwidth) || input.bandwidth <= 0) return current;
5300
+ return {
5301
+ kind: BandKind.CenterBandwidth,
5302
+ ...shared,
5303
+ frequency: input.frequency,
5304
+ bandwidth: input.bandwidth
5305
+ };
5306
+ }
5307
+ if (hasRange) {
5308
+ if (!isFiniteNumber(input.startFrequency) || !isFiniteNumber(input.stopFrequency) || input.stopFrequency <= input.startFrequency) return current;
5309
+ return {
5310
+ kind: BandKind.FrequencyRange,
5311
+ ...shared,
5312
+ startFrequency: input.startFrequency,
5313
+ stopFrequency: input.stopFrequency
5314
+ };
5315
+ }
5316
+ if (hasPosition) {
5317
+ if (hasOwn(input, 'left') && void 0 !== input.left && !isFiniteNumber(input.left) || hasOwn(input, 'width') && void 0 !== input.width && !isFiniteNumber(input.width)) return current;
5318
+ const currentPosition = current.kind === BandKind.Position ? current : void 0;
5319
+ return {
5320
+ kind: BandKind.Position,
5321
+ ...shared,
5322
+ left: hasOwn(input, 'left') ? input.left : 'merge' === strategy ? currentPosition?.left : void 0,
5323
+ width: hasOwn(input, 'width') ? input.width ?? 0 : 'merge' === strategy ? currentPosition?.width ?? 0 : 0
5324
+ };
5325
+ }
5326
+ return {
5327
+ ...current,
5328
+ ...shared
5329
+ };
5330
+ }
5201
5331
  const AppContext = __WEBPACK_EXTERNAL_MODULE_react__["default"].createContext(null);
5202
5332
  const store_context = AppContext;
5203
5333
  var heatmap_HeatmapCaptureType = /*#__PURE__*/ function(HeatmapCaptureType) {
@@ -5271,6 +5401,7 @@ function createParams() {
5271
5401
  },
5272
5402
  axisY: {
5273
5403
  show: true,
5404
+ placement: constants_AxisPlacement.Outside,
5274
5405
  disabled: false,
5275
5406
  gradientRibbon: true,
5276
5407
  realRange: constants_RANGE_DEFAULT,
@@ -5380,6 +5511,7 @@ function createParams() {
5380
5511
  onChange: ()=>{}
5381
5512
  },
5382
5513
  band: {
5514
+ kind: BandKind.Position,
5383
5515
  show: false,
5384
5516
  left: void 0,
5385
5517
  width: 0,
@@ -5950,6 +6082,14 @@ const Params_Params = (props)=>{
5950
6082
  const prevValue = prevPropsRef.current[name];
5951
6083
  const stateKey = name;
5952
6084
  if (void 0 !== currentValue && currentValue !== prevValue) {
6085
+ if ('band' === name) {
6086
+ const nextBand = resolveBandState(currentValue, currentState.band, 'merge');
6087
+ if (nextBand !== currentState.band) {
6088
+ payload.band = nextBand;
6089
+ hasChanges = true;
6090
+ }
6091
+ continue;
6092
+ }
5953
6093
  payload[stateKey] = mergeParameter(stateKey, currentValue, currentState);
5954
6094
  hasChanges = true;
5955
6095
  }
@@ -6153,16 +6293,24 @@ function useStore_useSelector(selector) {
6153
6293
  const { store } = useAppContext();
6154
6294
  return (0, __WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(store.subscribe, ()=>selector(store.getState()), ()=>selector(store.getState()));
6155
6295
  }
6296
+ function useStoreApi() {
6297
+ return useAppContext();
6298
+ }
6156
6299
  function useStoreDispatch() {
6157
6300
  return useAppContext().dispatch;
6158
6301
  }
6159
6302
  const Store = (props)=>{
6160
6303
  const { children } = props;
6161
6304
  const initialStateRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
6162
- if (!initialStateRef.current) initialStateRef.current = mergeObjects(createParams(), {
6163
- ...props,
6164
- axisY: normalizeAxisYProps(props.axisY)
6165
- });
6305
+ if (!initialStateRef.current) {
6306
+ const defaultState = createParams();
6307
+ const initialState = mergeObjects(defaultState, {
6308
+ ...props,
6309
+ axisY: normalizeAxisYProps(props.axisY)
6310
+ });
6311
+ if (props.band) initialState.band = resolveBandState(props.band, defaultState.band, 'merge');
6312
+ initialStateRef.current = initialState;
6313
+ }
6166
6314
  const runtimeRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
6167
6315
  if (!runtimeRef.current && initialStateRef.current) runtimeRef.current = createChartRuntime(initialStateRef.current);
6168
6316
  if (!runtimeRef.current) throw new Error('Failed to initialize chart runtime');
@@ -6680,11 +6828,18 @@ const createConfigUtils = (config)=>({
6680
6828
  cache: createLruCache(config.cacheSize),
6681
6829
  parseClassName: createParseClassName(config),
6682
6830
  sortModifiers: createSortModifiers(config),
6831
+ postfixLookupClassGroupIds: createPostfixLookupClassGroupIds(config),
6683
6832
  ...createClassGroupUtils(config)
6684
6833
  });
6834
+ const createPostfixLookupClassGroupIds = (config)=>{
6835
+ const lookup = Object.create(null);
6836
+ const classGroupIds = config.postfixLookupClassGroups;
6837
+ if (classGroupIds) for(let i = 0; i < classGroupIds.length; i++)lookup[classGroupIds[i]] = true;
6838
+ return lookup;
6839
+ };
6685
6840
  const SPLIT_CLASSES_REGEX = /\s+/;
6686
6841
  const mergeClassList = (classList, configUtils)=>{
6687
- const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } = configUtils;
6842
+ const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers, postfixLookupClassGroupIds } = configUtils;
6688
6843
  const classGroupsInConflict = [];
6689
6844
  const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
6690
6845
  let result = '';
@@ -6696,7 +6851,16 @@ const mergeClassList = (classList, configUtils)=>{
6696
6851
  continue;
6697
6852
  }
6698
6853
  let hasPostfixModifier = !!maybePostfixModifierPosition;
6699
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
6854
+ let classGroupId;
6855
+ if (hasPostfixModifier) {
6856
+ const baseClassNameWithoutPostfix = baseClassName.substring(0, maybePostfixModifierPosition);
6857
+ classGroupId = getClassGroupId(baseClassNameWithoutPostfix);
6858
+ const classGroupIdWithPostfix = classGroupId && postfixLookupClassGroupIds[classGroupId] ? getClassGroupId(baseClassName) : void 0;
6859
+ if (classGroupIdWithPostfix && classGroupIdWithPostfix !== classGroupId) {
6860
+ classGroupId = classGroupIdWithPostfix;
6861
+ hasPostfixModifier = false;
6862
+ }
6863
+ } else classGroupId = getClassGroupId(baseClassName);
6700
6864
  if (!classGroupId) {
6701
6865
  if (!hasPostfixModifier) {
6702
6866
  result = originalClassName + (result.length > 0 ? ' ' + result : result);
@@ -6796,6 +6960,7 @@ const isNever = ()=>false;
6796
6960
  const isShadow = (value1)=>shadowRegex.test(value1);
6797
6961
  const isImage = (value1)=>imageRegex.test(value1);
6798
6962
  const isAnyNonArbitrary = (value1)=>!isArbitraryValue(value1) && !isArbitraryVariable(value1);
6963
+ const isNamedContainerQuery = (value1)=>value1.startsWith('@container') && ('/' === value1[10] && void 0 !== value1[11] || 's' === value1[11] && void 0 !== value1[16] && value1.startsWith('-size/', 10) || 'n' === value1[11] && void 0 !== value1[18] && value1.startsWith('-normal/', 10));
6799
6964
  const isArbitrarySize = (value1)=>getIsArbitraryValue(value1, isLabelSize, isNever);
6800
6965
  const isArbitraryValue = (value1)=>arbitraryValueRegex.test(value1);
6801
6966
  const isArbitraryLength = (value1)=>getIsArbitraryValue(value1, isLabelLength, isLengthOnly);
@@ -7234,6 +7399,20 @@ const getDefaultConfig = ()=>{
7234
7399
  container: [
7235
7400
  'container'
7236
7401
  ],
7402
+ 'container-type': [
7403
+ {
7404
+ '@container': [
7405
+ '',
7406
+ 'normal',
7407
+ 'size',
7408
+ isArbitraryVariable,
7409
+ isArbitraryValue
7410
+ ]
7411
+ }
7412
+ ],
7413
+ 'container-named': [
7414
+ isNamedContainerQuery
7415
+ ],
7237
7416
  columns: [
7238
7417
  {
7239
7418
  columns: [
@@ -8155,6 +8334,15 @@ const getDefaultConfig = ()=>{
8155
8334
  indent: scaleUnambiguousSpacing()
8156
8335
  }
8157
8336
  ],
8337
+ 'tab-size': [
8338
+ {
8339
+ tab: [
8340
+ isInteger,
8341
+ isArbitraryVariable,
8342
+ isArbitraryValue
8343
+ ]
8344
+ }
8345
+ ],
8158
8346
  'vertical-align': [
8159
8347
  {
8160
8348
  align: [
@@ -9422,6 +9610,15 @@ const getDefaultConfig = ()=>{
9422
9610
  'translate-none': [
9423
9611
  'translate-none'
9424
9612
  ],
9613
+ zoom: [
9614
+ {
9615
+ zoom: [
9616
+ isInteger,
9617
+ isArbitraryVariable,
9618
+ isArbitraryValue
9619
+ ]
9620
+ }
9621
+ ],
9425
9622
  accent: [
9426
9623
  {
9427
9624
  accent: scaleColor()
@@ -9530,6 +9727,34 @@ const getDefaultConfig = ()=>{
9530
9727
  ]
9531
9728
  }
9532
9729
  ],
9730
+ 'scrollbar-thumb-color': [
9731
+ {
9732
+ 'scrollbar-thumb': scaleColor()
9733
+ }
9734
+ ],
9735
+ 'scrollbar-track-color': [
9736
+ {
9737
+ 'scrollbar-track': scaleColor()
9738
+ }
9739
+ ],
9740
+ 'scrollbar-gutter': [
9741
+ {
9742
+ 'scrollbar-gutter': [
9743
+ 'auto',
9744
+ 'stable',
9745
+ 'both'
9746
+ ]
9747
+ }
9748
+ ],
9749
+ 'scrollbar-w': [
9750
+ {
9751
+ scrollbar: [
9752
+ 'auto',
9753
+ 'thin',
9754
+ 'none'
9755
+ ]
9756
+ }
9757
+ ],
9533
9758
  'scroll-m': [
9534
9759
  {
9535
9760
  'scroll-m': scaleUnambiguousSpacing()
@@ -9764,6 +9989,9 @@ const getDefaultConfig = ()=>{
9764
9989
  ]
9765
9990
  },
9766
9991
  conflictingClassGroups: {
9992
+ 'container-named': [
9993
+ 'container-type'
9994
+ ],
9767
9995
  overflow: [
9768
9996
  'overflow-x',
9769
9997
  'overflow-y'
@@ -10029,6 +10257,9 @@ const getDefaultConfig = ()=>{
10029
10257
  'leading'
10030
10258
  ]
10031
10259
  },
10260
+ postfixLookupClassGroups: [
10261
+ 'container-type'
10262
+ ],
10032
10263
  orderSensitiveModifiers: [
10033
10264
  '*',
10034
10265
  '**',
@@ -10540,7 +10771,7 @@ const TOOLBAR_DROPDOWN_CONTENT_CLASS_NAME = 'border-border/80 bg-secondary/92 te
10540
10771
  function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
10541
10772
  return function(event) {
10542
10773
  originalEventHandler?.(event);
10543
- if (false === checkForDefaultPrevented || !event.defaultPrevented) return ourEventHandler?.(event);
10774
+ if (false === checkForDefaultPrevented || !event || !event.defaultPrevented) return ourEventHandler?.(event);
10544
10775
  };
10545
10776
  }
10546
10777
  function setRef(ref, value1) {
@@ -10571,6 +10802,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
10571
10802
  let defaultContexts = [];
10572
10803
  function createContext3(rootComponentName, defaultContext) {
10573
10804
  const BaseContext = __WEBPACK_EXTERNAL_MODULE_react__.createContext(defaultContext);
10805
+ BaseContext.displayName = rootComponentName + "Context";
10574
10806
  const index = defaultContexts.length;
10575
10807
  defaultContexts = [
10576
10808
  ...defaultContexts,
@@ -10586,11 +10818,13 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
10586
10818
  });
10587
10819
  };
10588
10820
  Provider.displayName = rootComponentName + "Provider";
10589
- function useContext2(consumerName, scope) {
10821
+ function useContext2(consumerName, scope, options = {}) {
10822
+ const { optional = false } = options;
10590
10823
  const Context = scope?.[scopeName]?.[index] || BaseContext;
10591
10824
  const context = __WEBPACK_EXTERNAL_MODULE_react__.useContext(Context);
10592
10825
  if (context) return context;
10593
10826
  if (void 0 !== defaultContext) return defaultContext;
10827
+ if (optional) return;
10594
10828
  throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
10595
10829
  }
10596
10830
  return [
@@ -10715,59 +10949,52 @@ function isFunction(value1) {
10715
10949
  }
10716
10950
  Symbol("RADIX:SYNC_STATE");
10717
10951
  function createSlot(ownerName) {
10718
- const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
10719
10952
  const Slot2 = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
10720
- const { children, ...slotProps } = props;
10721
- const childrenArray = __WEBPACK_EXTERNAL_MODULE_react__.Children.toArray(children);
10722
- const slottable = childrenArray.find(isSlottable);
10723
- if (slottable) {
10724
- const newElement = slottable.props.children;
10725
- const newChildren = childrenArray.map((child)=>{
10726
- if (child !== slottable) return child;
10727
- if (__WEBPACK_EXTERNAL_MODULE_react__.Children.count(newElement) > 1) return __WEBPACK_EXTERNAL_MODULE_react__.Children.only(null);
10728
- return __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(newElement) ? newElement.props.children : null;
10729
- });
10730
- return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(SlotClone, {
10731
- ...slotProps,
10732
- ref: forwardedRef,
10733
- children: __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(newElement) ? __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(newElement, void 0, newChildren) : null
10734
- });
10735
- }
10736
- return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(SlotClone, {
10737
- ...slotProps,
10738
- ref: forwardedRef,
10739
- children
10740
- });
10953
+ let { children, ...slotProps } = props;
10954
+ let slottableElement = null;
10955
+ let hasSlottable = false;
10956
+ const newChildren = [];
10957
+ if (isLazyComponent(children) && "function" == typeof use) children = use(children._payload);
10958
+ __WEBPACK_EXTERNAL_MODULE_react__.Children.forEach(children, (maybeSlottable)=>{
10959
+ if (isSlottable(maybeSlottable)) {
10960
+ hasSlottable = true;
10961
+ const slottable = maybeSlottable;
10962
+ let child = "child" in slottable.props ? slottable.props.child : slottable.props.children;
10963
+ if (isLazyComponent(child) && "function" == typeof use) child = use(child._payload);
10964
+ slottableElement = getSlottableElementFromSlottable(slottable, child);
10965
+ newChildren.push(slottableElement?.props?.children);
10966
+ } else newChildren.push(maybeSlottable);
10967
+ });
10968
+ if (slottableElement) slottableElement = __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(slottableElement, void 0, newChildren);
10969
+ else if (!hasSlottable && 1 === __WEBPACK_EXTERNAL_MODULE_react__.Children.count(children) && __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(children)) slottableElement = children;
10970
+ const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;
10971
+ const composedRef = useComposedRefs(forwardedRef, slottableElementRef);
10972
+ if (!slottableElement) {
10973
+ if (children || 0 === children) throw new Error(hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName));
10974
+ return children;
10975
+ }
10976
+ const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});
10977
+ if (slottableElement.type !== __WEBPACK_EXTERNAL_MODULE_react__.Fragment) mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;
10978
+ return __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(slottableElement, mergedProps);
10741
10979
  });
10742
10980
  Slot2.displayName = `${ownerName}.Slot`;
10743
10981
  return Slot2;
10744
10982
  }
10745
- function createSlotClone(ownerName) {
10746
- const SlotClone = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
10747
- const { children, ...slotProps } = props;
10748
- if (__WEBPACK_EXTERNAL_MODULE_react__.isValidElement(children)) {
10749
- const childrenRef = getElementRef(children);
10750
- const props2 = mergeProps(slotProps, children.props);
10751
- if (children.type !== __WEBPACK_EXTERNAL_MODULE_react__.Fragment) props2.ref = forwardedRef ? dist_composeRefs(forwardedRef, childrenRef) : childrenRef;
10752
- return __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(children, props2);
10753
- }
10754
- return __WEBPACK_EXTERNAL_MODULE_react__.Children.count(children) > 1 ? __WEBPACK_EXTERNAL_MODULE_react__.Children.only(null) : null;
10755
- });
10756
- SlotClone.displayName = `${ownerName}.SlotClone`;
10757
- return SlotClone;
10758
- }
10759
- var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
10983
+ var SLOTTABLE_IDENTIFIER = Symbol.for("radix.slottable");
10760
10984
  function createSlottable(ownerName) {
10761
- const Slottable2 = ({ children })=>/* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
10762
- children
10763
- });
10985
+ const Slottable2 = (props)=>"child" in props ? props.children(props.child) : props.children;
10764
10986
  Slottable2.displayName = `${ownerName}.Slottable`;
10765
10987
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
10766
10988
  return Slottable2;
10767
10989
  }
10768
- function isSlottable(child) {
10769
- return __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(child) && "function" == typeof child.type && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
10770
- }
10990
+ var getSlottableElementFromSlottable = (slottable, child)=>{
10991
+ if ("child" in slottable.props) {
10992
+ const child2 = slottable.props.child;
10993
+ if (!__WEBPACK_EXTERNAL_MODULE_react__.isValidElement(child2)) return null;
10994
+ return __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(child2, void 0, slottable.props.children(child2.props.children));
10995
+ }
10996
+ return __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(child) ? child : null;
10997
+ };
10771
10998
  function mergeProps(slotProps, childProps) {
10772
10999
  const overrideProps = {
10773
11000
  ...childProps
@@ -10806,6 +11033,19 @@ function getElementRef(element) {
10806
11033
  if (mayWarn) return element.props.ref;
10807
11034
  return element.props.ref || element.ref;
10808
11035
  }
11036
+ function isSlottable(child) {
11037
+ return __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(child) && "function" == typeof child.type && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
11038
+ }
11039
+ var REACT_LAZY_TYPE = Symbol.for("react.lazy");
11040
+ function isLazyComponent(element) {
11041
+ return null != element && "object" == typeof element && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload);
11042
+ }
11043
+ function isPromiseLike(value1) {
11044
+ return "object" == typeof value1 && null !== value1 && "then" in value1;
11045
+ }
11046
+ var createSlotError = (ownerName)=>`${ownerName} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`;
11047
+ var createSlottableError = (ownerName)=>`${ownerName} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`;
11048
+ var use = __WEBPACK_EXTERNAL_MODULE_react__[" use ".trim().toString()];
10809
11049
  var NODES = [
10810
11050
  "a",
10811
11051
  "button",
@@ -10857,8 +11097,8 @@ function createCollection(name) {
10857
11097
  });
10858
11098
  const CollectionProvider = (props)=>{
10859
11099
  const { scope, children } = props;
10860
- const ref = __WEBPACK_EXTERNAL_MODULE_react__["default"].useRef(null);
10861
- const itemMap = __WEBPACK_EXTERNAL_MODULE_react__["default"].useRef(/* @__PURE__ */ new Map()).current;
11100
+ const ref = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
11101
+ const itemMap = __WEBPACK_EXTERNAL_MODULE_react__.useRef(/* @__PURE__ */ new Map()).current;
10862
11102
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(CollectionProviderImpl, {
10863
11103
  scope,
10864
11104
  itemMap,
@@ -10869,7 +11109,7 @@ function createCollection(name) {
10869
11109
  CollectionProvider.displayName = PROVIDER_NAME;
10870
11110
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
10871
11111
  const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);
10872
- const CollectionSlot = __WEBPACK_EXTERNAL_MODULE_react__["default"].forwardRef((props, forwardedRef)=>{
11112
+ const CollectionSlot = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
10873
11113
  const { scope, children } = props;
10874
11114
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
10875
11115
  const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
@@ -10882,12 +11122,12 @@ function createCollection(name) {
10882
11122
  const ITEM_SLOT_NAME = name + "CollectionItemSlot";
10883
11123
  const ITEM_DATA_ATTR = "data-radix-collection-item";
10884
11124
  const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);
10885
- const CollectionItemSlot = __WEBPACK_EXTERNAL_MODULE_react__["default"].forwardRef((props, forwardedRef)=>{
11125
+ const CollectionItemSlot = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
10886
11126
  const { scope, children, ...itemData } = props;
10887
- const ref = __WEBPACK_EXTERNAL_MODULE_react__["default"].useRef(null);
11127
+ const ref = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
10888
11128
  const composedRefs = useComposedRefs(forwardedRef, ref);
10889
11129
  const context = useCollectionContext(ITEM_SLOT_NAME, scope);
10890
- __WEBPACK_EXTERNAL_MODULE_react__["default"].useEffect(()=>{
11130
+ __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
10891
11131
  context.itemMap.set(ref, {
10892
11132
  ref,
10893
11133
  ...itemData
@@ -10905,7 +11145,7 @@ function createCollection(name) {
10905
11145
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
10906
11146
  function useCollection(scope) {
10907
11147
  const context = useCollectionContext(name + "CollectionConsumer", scope);
10908
- const getItems = __WEBPACK_EXTERNAL_MODULE_react__["default"].useCallback(()=>{
11148
+ const getItems = __WEBPACK_EXTERNAL_MODULE_react__.useCallback(()=>{
10909
11149
  const collectionNode = context.collectionRef.current;
10910
11150
  if (!collectionNode) return [];
10911
11151
  const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
@@ -10928,6 +11168,7 @@ function createCollection(name) {
10928
11168
  createCollectionScope
10929
11169
  ];
10930
11170
  }
11171
+ "use client";
10931
11172
  var DirectionContext = __WEBPACK_EXTERNAL_MODULE_react__.createContext(void 0);
10932
11173
  function useDirection(localDir) {
10933
11174
  const globalDir = __WEBPACK_EXTERNAL_MODULE_react__.useContext(DirectionContext);
@@ -10940,23 +11181,6 @@ function useCallbackRef(callback) {
10940
11181
  });
10941
11182
  return __WEBPACK_EXTERNAL_MODULE_react__.useMemo(()=>(...args)=>callbackRef.current?.(...args), []);
10942
11183
  }
10943
- function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {
10944
- const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);
10945
- __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
10946
- const handleKeyDown = (event)=>{
10947
- if ("Escape" === event.key) onEscapeKeyDown(event);
10948
- };
10949
- ownerDocument.addEventListener("keydown", handleKeyDown, {
10950
- capture: true
10951
- });
10952
- return ()=>ownerDocument.removeEventListener("keydown", handleKeyDown, {
10953
- capture: true
10954
- });
10955
- }, [
10956
- onEscapeKeyDown,
10957
- ownerDocument
10958
- ]);
10959
- }
10960
11184
  "use client";
10961
11185
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
10962
11186
  var CONTEXT_UPDATE = "dismissableLayer.update";
@@ -10966,34 +11190,47 @@ var originalBodyPointerEvents;
10966
11190
  var DismissableLayerContext = __WEBPACK_EXTERNAL_MODULE_react__.createContext({
10967
11191
  layers: /* @__PURE__ */ new Set(),
10968
11192
  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
10969
- branches: /* @__PURE__ */ new Set()
11193
+ branches: /* @__PURE__ */ new Set(),
11194
+ dismissableSurfaces: /* @__PURE__ */ new Set()
10970
11195
  });
10971
11196
  var DismissableLayer = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
10972
- const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;
11197
+ const { disableOutsidePointerEvents = false, deferPointerDownOutside = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;
10973
11198
  const context = __WEBPACK_EXTERNAL_MODULE_react__.useContext(DismissableLayerContext);
10974
11199
  const [node, setNode] = __WEBPACK_EXTERNAL_MODULE_react__.useState(null);
10975
11200
  const ownerDocument = node?.ownerDocument ?? globalThis?.document;
10976
11201
  const [, force] = __WEBPACK_EXTERNAL_MODULE_react__.useState({});
10977
- const composedRefs = useComposedRefs(forwardedRef, (node2)=>setNode(node2));
11202
+ const composedRefs = useComposedRefs(forwardedRef, setNode);
10978
11203
  const layers = Array.from(context.layers);
10979
11204
  const [highestLayerWithOutsidePointerEventsDisabled] = [
10980
11205
  ...context.layersWithOutsidePointerEventsDisabled
10981
11206
  ].slice(-1);
10982
- const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
11207
+ const highestLayerWithOutsidePointerEventsDisabledIndex = highestLayerWithOutsidePointerEventsDisabled ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled) : -1;
10983
11208
  const index = node ? layers.indexOf(node) : -1;
10984
11209
  const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
10985
11210
  const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
11211
+ const isDeferredPointerDownOutsideRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(false);
10986
11212
  const pointerDownOutside = usePointerDownOutside((event)=>{
10987
- const target = event.target;
10988
- const isPointerDownOnBranch = [
10989
- ...context.branches
10990
- ].some((branch)=>branch.contains(target));
10991
- if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
10992
11213
  onPointerDownOutside?.(event);
10993
11214
  onInteractOutside?.(event);
10994
11215
  if (!event.defaultPrevented) onDismiss?.();
10995
- }, ownerDocument);
11216
+ }, {
11217
+ ownerDocument,
11218
+ deferPointerDownOutside,
11219
+ isDeferredPointerDownOutsideRef,
11220
+ dismissableSurfaces: context.dismissableSurfaces,
11221
+ shouldHandlePointerDownOutside: __WEBPACK_EXTERNAL_MODULE_react__.useCallback((target)=>{
11222
+ if (!(target instanceof Node)) return false;
11223
+ const isPointerDownOnBranch = [
11224
+ ...context.branches
11225
+ ].some((branch)=>branch.contains(target));
11226
+ return isPointerEventsEnabled && !isPointerDownOnBranch;
11227
+ }, [
11228
+ context.branches,
11229
+ isPointerEventsEnabled
11230
+ ])
11231
+ });
10996
11232
  const focusOutside = useFocusOutside((event)=>{
11233
+ if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) return;
10997
11234
  const target = event.target;
10998
11235
  const isFocusInBranch = [
10999
11236
  ...context.branches
@@ -11003,15 +11240,28 @@ var DismissableLayer = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forw
11003
11240
  onInteractOutside?.(event);
11004
11241
  if (!event.defaultPrevented) onDismiss?.();
11005
11242
  }, ownerDocument);
11006
- useEscapeKeydown((event)=>{
11007
- const isHighestLayer = index === context.layers.size - 1;
11008
- if (!isHighestLayer) return;
11243
+ const isHighestLayer = node ? index === layers.length - 1 : false;
11244
+ const handleKeyDown = useCallbackRef((event)=>{
11245
+ if ("Escape" !== event.key) return;
11009
11246
  onEscapeKeyDown?.(event);
11010
11247
  if (!event.defaultPrevented && onDismiss) {
11011
11248
  event.preventDefault();
11012
11249
  onDismiss();
11013
11250
  }
11014
- }, ownerDocument);
11251
+ });
11252
+ __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
11253
+ if (!isHighestLayer) return;
11254
+ ownerDocument.addEventListener("keydown", handleKeyDown, {
11255
+ capture: true
11256
+ });
11257
+ return ()=>ownerDocument.removeEventListener("keydown", handleKeyDown, {
11258
+ capture: true
11259
+ });
11260
+ }, [
11261
+ ownerDocument,
11262
+ isHighestLayer,
11263
+ handleKeyDown
11264
+ ]);
11015
11265
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
11016
11266
  if (!node) return;
11017
11267
  if (disableOutsidePointerEvents) {
@@ -11024,7 +11274,10 @@ var DismissableLayer = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forw
11024
11274
  context.layers.add(node);
11025
11275
  dispatchUpdate();
11026
11276
  return ()=>{
11027
- if (disableOutsidePointerEvents && 1 === context.layersWithOutsidePointerEventsDisabled.size) ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
11277
+ if (disableOutsidePointerEvents) {
11278
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
11279
+ if (0 === context.layersWithOutsidePointerEventsDisabled.size) ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
11280
+ }
11028
11281
  };
11029
11282
  }, [
11030
11283
  node,
@@ -11081,31 +11334,84 @@ var DismissableLayerBranch = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props
11081
11334
  });
11082
11335
  });
11083
11336
  DismissableLayerBranch.displayName = BRANCH_NAME;
11084
- function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
11337
+ var IS_TRUE = ()=>true;
11338
+ function usePointerDownOutside(onPointerDownOutside, args) {
11339
+ const { ownerDocument = globalThis?.document, deferPointerDownOutside = false, isDeferredPointerDownOutsideRef, dismissableSurfaces, shouldHandlePointerDownOutside = IS_TRUE } = args;
11085
11340
  const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
11086
11341
  const isPointerInsideReactTreeRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(false);
11342
+ const isPointerDownOutsideRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(false);
11343
+ const interceptedOutsideInteractionEventsRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(/* @__PURE__ */ new Map());
11087
11344
  const handleClickRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(()=>{});
11088
11345
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
11346
+ function resetOutsideInteraction() {
11347
+ isPointerDownOutsideRef.current = false;
11348
+ isDeferredPointerDownOutsideRef.current = false;
11349
+ interceptedOutsideInteractionEventsRef.current.clear();
11350
+ }
11351
+ function isOutsideInteractionIntercepted() {
11352
+ return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);
11353
+ }
11354
+ function handleInteractionCapture(event) {
11355
+ if (!isPointerDownOutsideRef.current) return;
11356
+ const target = event.target;
11357
+ const isDismissableSurface = target instanceof Node && [
11358
+ ...dismissableSurfaces
11359
+ ].some((surface)=>surface.contains(target));
11360
+ if (!isDismissableSurface) interceptedOutsideInteractionEventsRef.current.set(event.type, true);
11361
+ if ("click" === event.type) window.setTimeout(()=>{
11362
+ if (isPointerDownOutsideRef.current) handleClickRef.current();
11363
+ }, 0);
11364
+ }
11365
+ function handleInteractionBubble(event) {
11366
+ if (isPointerDownOutsideRef.current) interceptedOutsideInteractionEventsRef.current.set(event.type, false);
11367
+ }
11089
11368
  const handlePointerDown = (event)=>{
11090
11369
  if (event.target && !isPointerInsideReactTreeRef.current) {
11091
11370
  let handleAndDispatchPointerDownOutsideEvent2 = function() {
11092
- handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
11371
+ ownerDocument.removeEventListener("click", handleClickRef.current);
11372
+ const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();
11373
+ resetOutsideInteraction();
11374
+ if (!wasOutsideInteractionIntercepted) handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
11093
11375
  discrete: true
11094
11376
  });
11095
11377
  };
11378
+ if (!shouldHandlePointerDownOutside(event.target)) {
11379
+ ownerDocument.removeEventListener("click", handleClickRef.current);
11380
+ resetOutsideInteraction();
11381
+ isPointerInsideReactTreeRef.current = false;
11382
+ return;
11383
+ }
11096
11384
  const eventDetail = {
11097
11385
  originalEvent: event
11098
11386
  };
11099
- if ("touch" === event.pointerType) {
11387
+ isPointerDownOutsideRef.current = true;
11388
+ isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && 0 === event.button;
11389
+ interceptedOutsideInteractionEventsRef.current.clear();
11390
+ if (deferPointerDownOutside && 0 === event.button) {
11100
11391
  ownerDocument.removeEventListener("click", handleClickRef.current);
11101
11392
  handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
11102
11393
  ownerDocument.addEventListener("click", handleClickRef.current, {
11103
11394
  once: true
11104
11395
  });
11105
11396
  } else handleAndDispatchPointerDownOutsideEvent2();
11106
- } else ownerDocument.removeEventListener("click", handleClickRef.current);
11397
+ } else {
11398
+ ownerDocument.removeEventListener("click", handleClickRef.current);
11399
+ resetOutsideInteraction();
11400
+ }
11107
11401
  isPointerInsideReactTreeRef.current = false;
11108
11402
  };
11403
+ const outsideInteractionEvents = [
11404
+ "pointerup",
11405
+ "mousedown",
11406
+ "mouseup",
11407
+ "touchstart",
11408
+ "touchend",
11409
+ "click"
11410
+ ];
11411
+ for (const eventName of outsideInteractionEvents){
11412
+ ownerDocument.addEventListener(eventName, handleInteractionCapture, true);
11413
+ ownerDocument.addEventListener(eventName, handleInteractionBubble);
11414
+ }
11109
11415
  const timerId = window.setTimeout(()=>{
11110
11416
  ownerDocument.addEventListener("pointerdown", handlePointerDown);
11111
11417
  }, 0);
@@ -11113,10 +11419,18 @@ function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?
11113
11419
  window.clearTimeout(timerId);
11114
11420
  ownerDocument.removeEventListener("pointerdown", handlePointerDown);
11115
11421
  ownerDocument.removeEventListener("click", handleClickRef.current);
11422
+ for (const eventName of outsideInteractionEvents){
11423
+ ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);
11424
+ ownerDocument.removeEventListener(eventName, handleInteractionBubble);
11425
+ }
11116
11426
  };
11117
11427
  }, [
11118
11428
  ownerDocument,
11119
- handlePointerDownOutside
11429
+ handlePointerDownOutside,
11430
+ deferPointerDownOutside,
11431
+ isDeferredPointerDownOutsideRef,
11432
+ dismissableSurfaces,
11433
+ shouldHandlePointerDownOutside
11120
11434
  ]);
11121
11435
  return {
11122
11436
  onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true
@@ -11166,15 +11480,24 @@ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
11166
11480
  }
11167
11481
  "use client";
11168
11482
  var dist_count = 0;
11483
+ var guards = null;
11169
11484
  function useFocusGuards() {
11170
11485
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
11171
- const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]");
11172
- document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
11173
- document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
11486
+ if (!guards) guards = {
11487
+ start: createFocusGuard(),
11488
+ end: createFocusGuard()
11489
+ };
11490
+ const { start, end } = guards;
11491
+ if (document.body.firstElementChild !== start) document.body.insertAdjacentElement("afterbegin", start);
11492
+ if (document.body.lastElementChild !== end) document.body.insertAdjacentElement("beforeend", end);
11174
11493
  dist_count++;
11175
11494
  return ()=>{
11176
- if (1 === dist_count) document.querySelectorAll("[data-radix-focus-guard]").forEach((node)=>node.remove());
11177
- dist_count--;
11495
+ if (1 === dist_count) {
11496
+ guards?.start.remove();
11497
+ guards?.end.remove();
11498
+ guards = null;
11499
+ }
11500
+ dist_count = Math.max(0, dist_count - 1);
11178
11501
  };
11179
11502
  }, []);
11180
11503
  }
@@ -11202,7 +11525,7 @@ var FocusScope = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedR
11202
11525
  const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);
11203
11526
  const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);
11204
11527
  const lastFocusedElementRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
11205
- const composedRefs = useComposedRefs(forwardedRef, (node)=>setContainer(node));
11528
+ const composedRefs = useComposedRefs(forwardedRef, setContainer);
11206
11529
  const focusScope = __WEBPACK_EXTERNAL_MODULE_react__.useRef({
11207
11530
  paused: false,
11208
11531
  pause () {
@@ -11355,9 +11678,17 @@ function getTabbableCandidates(container) {
11355
11678
  return nodes;
11356
11679
  }
11357
11680
  function findVisible(elements, container) {
11358
- for (const element of elements)if (!isHidden(element, {
11359
- upTo: container
11360
- })) return element;
11681
+ const canUseCheckVisibility = "function" == typeof container.checkVisibility && container.checkVisibility({
11682
+ checkVisibilityCSS: true
11683
+ });
11684
+ for (const element of elements){
11685
+ const hidden = canUseCheckVisibility ? !element.checkVisibility({
11686
+ checkVisibilityCSS: true
11687
+ }) : isHidden(element, {
11688
+ upTo: container
11689
+ });
11690
+ if (!hidden) return element;
11691
+ }
11361
11692
  }
11362
11693
  function isHidden(node, { upTo }) {
11363
11694
  if ("hidden" === getComputedStyle(node).visibility) return true;
@@ -13085,10 +13416,13 @@ var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
13085
13416
  var Popper = (props)=>{
13086
13417
  const { __scopePopper, children } = props;
13087
13418
  const [anchor, setAnchor] = __WEBPACK_EXTERNAL_MODULE_react__.useState(null);
13419
+ const [placementState, setPlacementState] = __WEBPACK_EXTERNAL_MODULE_react__.useState(void 0);
13088
13420
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(PopperProvider, {
13089
13421
  scope: __scopePopper,
13090
13422
  anchor,
13091
13423
  onAnchorChange: setAnchor,
13424
+ placementState,
13425
+ setPlacementState,
13092
13426
  children
13093
13427
  });
13094
13428
  };
@@ -13098,14 +13432,27 @@ var PopperAnchor = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwarde
13098
13432
  const { __scopePopper, virtualRef, ...anchorProps } = props;
13099
13433
  const context = usePopperContext(ANCHOR_NAME, __scopePopper);
13100
13434
  const ref = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
13101
- const composedRefs = useComposedRefs(forwardedRef, ref);
13435
+ const onAnchorChange = context.onAnchorChange;
13436
+ const callbackRef = __WEBPACK_EXTERNAL_MODULE_react__.useCallback((node)=>{
13437
+ ref.current = node;
13438
+ if (node) onAnchorChange(node);
13439
+ }, [
13440
+ onAnchorChange
13441
+ ]);
13442
+ const composedRefs = useComposedRefs(forwardedRef, callbackRef);
13102
13443
  const anchorRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
13103
13444
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
13445
+ if (!virtualRef) return;
13104
13446
  const previousAnchor = anchorRef.current;
13105
- anchorRef.current = virtualRef?.current || ref.current;
13106
- if (previousAnchor !== anchorRef.current) context.onAnchorChange(anchorRef.current);
13447
+ anchorRef.current = virtualRef.current;
13448
+ if (previousAnchor !== anchorRef.current) onAnchorChange(anchorRef.current);
13107
13449
  });
13450
+ const sideAndAlign = context.placementState && getSideAndAlignFromPlacement(context.placementState);
13451
+ const placedSide = sideAndAlign?.[0];
13452
+ const placedAlign = sideAndAlign?.[1];
13108
13453
  return virtualRef ? null : /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Primitive.div, {
13454
+ "data-radix-popper-side": placedSide,
13455
+ "data-radix-popper-align": placedAlign,
13109
13456
  ...anchorProps,
13110
13457
  ref: composedRefs
13111
13458
  });
@@ -13117,7 +13464,7 @@ var PopperContent = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forward
13117
13464
  const { __scopePopper, side = "bottom", sideOffset = 0, align = "center", alignOffset = 0, arrowPadding = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = "partial", hideWhenDetached = false, updatePositionStrategy = "optimized", onPlaced, ...contentProps } = props;
13118
13465
  const context = usePopperContext(CONTENT_NAME, __scopePopper);
13119
13466
  const [content, setContent] = __WEBPACK_EXTERNAL_MODULE_react__.useState(null);
13120
- const composedRefs = useComposedRefs(forwardedRef, (node)=>setContent(node));
13467
+ const composedRefs = useComposedRefs(forwardedRef, setContent);
13121
13468
  const [arrow, setArrow] = __WEBPACK_EXTERNAL_MODULE_react__.useState(null);
13122
13469
  const arrowSize = useSize(arrow);
13123
13470
  const arrowWidth = arrowSize?.width ?? 0;
@@ -13186,10 +13533,21 @@ var PopperContent = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forward
13186
13533
  }),
13187
13534
  hideWhenDetached && floating_ui_react_dom_hide({
13188
13535
  strategy: "referenceHidden",
13189
- ...detectOverflowOptions
13536
+ ...detectOverflowOptions,
13537
+ boundary: hasExplicitBoundaries ? detectOverflowOptions.boundary : void 0
13190
13538
  })
13191
13539
  ]
13192
13540
  });
13541
+ const setPlacementState = context.setPlacementState;
13542
+ useLayoutEffect2(()=>{
13543
+ setPlacementState(placement);
13544
+ return ()=>{
13545
+ setPlacementState(void 0);
13546
+ };
13547
+ }, [
13548
+ placement,
13549
+ setPlacementState
13550
+ ]);
13193
13551
  const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
13194
13552
  const handlePlaced = useCallbackRef(onPlaced);
13195
13553
  useLayoutEffect2(()=>{
@@ -13215,7 +13573,7 @@ var PopperContent = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forward
13215
13573
  transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
13216
13574
  minWidth: "max-content",
13217
13575
  zIndex: contentZIndex,
13218
- ["--radix-popper-transform-origin"]: [
13576
+ "--radix-popper-transform-origin": [
13219
13577
  middlewareData.transformOrigin?.x,
13220
13578
  middlewareData.transformOrigin?.y
13221
13579
  ].join(" "),
@@ -13228,6 +13586,7 @@ var PopperContent = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forward
13228
13586
  children: /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(PopperContentProvider, {
13229
13587
  scope: __scopePopper,
13230
13588
  placedSide,
13589
+ placedAlign,
13231
13590
  onArrowChange: setArrow,
13232
13591
  arrowX,
13233
13592
  arrowY,
@@ -13350,7 +13709,7 @@ var Portal = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=
13350
13709
  const [mounted, setMounted] = __WEBPACK_EXTERNAL_MODULE_react__.useState(false);
13351
13710
  useLayoutEffect2(()=>setMounted(true), []);
13352
13711
  const container = containerProp || mounted && globalThis?.document?.body;
13353
- return container ? __WEBPACK_EXTERNAL_MODULE_react_dom_7136dc57__["default"].createPortal(/* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Primitive.div, {
13712
+ return container ? __WEBPACK_EXTERNAL_MODULE_react_dom_7136dc57__.createPortal(/* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Primitive.div, {
13354
13713
  ...portalProps,
13355
13714
  ref: forwardedRef
13356
13715
  }), container) : null;
@@ -13369,7 +13728,7 @@ var Presence = (props)=>{
13369
13728
  const child = "function" == typeof children ? children({
13370
13729
  present: presence.isPresent
13371
13730
  }) : __WEBPACK_EXTERNAL_MODULE_react__.Children.only(children);
13372
- const ref = useComposedRefs(presence.ref, dist_getElementRef(child));
13731
+ const ref = useStableComposedRefs(presence.ref, dist_getElementRef(child));
13373
13732
  const forceMount = "function" == typeof children;
13374
13733
  return forceMount || presence.isPresent ? __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(child, {
13375
13734
  ref
@@ -13381,6 +13740,7 @@ function usePresence(present) {
13381
13740
  const stylesRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
13382
13741
  const prevPresentRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(present);
13383
13742
  const prevAnimationNameRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef("none");
13743
+ const mountAnimationNameRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(void 0);
13384
13744
  const initialState = present ? "mounted" : "unmounted";
13385
13745
  const [state, send] = useStateMachine(initialState, {
13386
13746
  mounted: {
@@ -13396,8 +13756,10 @@ function usePresence(present) {
13396
13756
  }
13397
13757
  });
13398
13758
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
13399
- const currentAnimationName = getAnimationName(stylesRef.current);
13400
- prevAnimationNameRef.current = "mounted" === state ? currentAnimationName : "none";
13759
+ if ("mounted" === state) {
13760
+ prevAnimationNameRef.current = mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);
13761
+ mountAnimationNameRef.current = void 0;
13762
+ } else prevAnimationNameRef.current = "none";
13401
13763
  }, [
13402
13764
  state
13403
13765
  ]);
@@ -13408,8 +13770,10 @@ function usePresence(present) {
13408
13770
  if (hasPresentChanged) {
13409
13771
  const prevAnimationName = prevAnimationNameRef.current;
13410
13772
  const currentAnimationName = getAnimationName(styles);
13411
- if (present) send("MOUNT");
13412
- else if ("none" === currentAnimationName || styles?.display === "none") send("UNMOUNT");
13773
+ if (present) {
13774
+ mountAnimationNameRef.current = currentAnimationName;
13775
+ send("MOUNT");
13776
+ } else if ("none" === currentAnimationName || styles?.display === "none") send("UNMOUNT");
13413
13777
  else {
13414
13778
  const isAnimating = prevAnimationName !== currentAnimationName;
13415
13779
  wasPresent && isAnimating ? send("ANIMATION_OUT") : send("UNMOUNT");
@@ -13462,11 +13826,39 @@ function usePresence(present) {
13462
13826
  "unmountSuspended"
13463
13827
  ].includes(state),
13464
13828
  ref: __WEBPACK_EXTERNAL_MODULE_react__.useCallback((node2)=>{
13465
- stylesRef.current = node2 ? getComputedStyle(node2) : null;
13829
+ if (node2) {
13830
+ const styles = getComputedStyle(node2);
13831
+ stylesRef.current = styles;
13832
+ mountAnimationNameRef.current = getAnimationName(styles);
13833
+ } else stylesRef.current = null;
13466
13834
  setNode(node2);
13467
13835
  }, [])
13468
13836
  };
13469
13837
  }
13838
+ function dist_setRef(ref, value1) {
13839
+ if ("function" == typeof ref) return ref(value1);
13840
+ if (null != ref) ref.current = value1;
13841
+ }
13842
+ function useStableComposedRefs(...refs) {
13843
+ const refsRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(refs);
13844
+ refsRef.current = refs;
13845
+ return __WEBPACK_EXTERNAL_MODULE_react__.useCallback((node)=>{
13846
+ const currentRefs = refsRef.current;
13847
+ let hasCleanup = false;
13848
+ const cleanups = currentRefs.map((ref)=>{
13849
+ const cleanup = dist_setRef(ref, node);
13850
+ if (!hasCleanup && "function" == typeof cleanup) hasCleanup = true;
13851
+ return cleanup;
13852
+ });
13853
+ if (hasCleanup) return ()=>{
13854
+ for(let i = 0; i < cleanups.length; i++){
13855
+ const cleanup = cleanups[i];
13856
+ if ("function" == typeof cleanup) cleanup();
13857
+ else dist_setRef(currentRefs[i], null);
13858
+ }
13859
+ };
13860
+ }, []);
13861
+ }
13470
13862
  function getAnimationName(styles) {
13471
13863
  return styles?.animationName || "none";
13472
13864
  }
@@ -13479,6 +13871,25 @@ function dist_getElementRef(element) {
13479
13871
  if (mayWarn) return element.props.ref;
13480
13872
  return element.props.ref || element.ref;
13481
13873
  }
13874
+ var _isHydrated = false;
13875
+ function useIsHydrated() {
13876
+ const [isHydrated, setIsHydrated] = __WEBPACK_EXTERNAL_MODULE_react__.useState(_isHydrated);
13877
+ __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
13878
+ if (!_isHydrated) {
13879
+ _isHydrated = true;
13880
+ setIsHydrated(true);
13881
+ }
13882
+ }, []);
13883
+ return isHydrated;
13884
+ }
13885
+ var useReactSyncExternalStore = __WEBPACK_EXTERNAL_MODULE_react__[" useSyncExternalStore ".trim().toString()];
13886
+ function dist_subscribe() {
13887
+ return ()=>{};
13888
+ }
13889
+ function useIsHydratedModern() {
13890
+ return useReactSyncExternalStore(dist_subscribe, ()=>true, ()=>false);
13891
+ }
13892
+ var useIsHydrated2 = "function" == typeof useReactSyncExternalStore ? useIsHydratedModern : useIsHydrated;
13482
13893
  "use client";
13483
13894
  var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
13484
13895
  var dist_EVENT_OPTIONS = {
@@ -13584,12 +13995,23 @@ var RovingFocusGroupItem = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props,
13584
13995
  const isCurrentTabStop = context.currentTabStopId === id;
13585
13996
  const getItems = dist_useCollection(__scopeRovingFocusGroup);
13586
13997
  const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;
13998
+ const isHydrated = useIsHydrated2();
13999
+ useLayoutEffect2(()=>{
14000
+ if (!isHydrated || !focusable) return;
14001
+ onFocusableItemAdd();
14002
+ return ()=>onFocusableItemRemove();
14003
+ }, [
14004
+ isHydrated,
14005
+ focusable,
14006
+ onFocusableItemAdd,
14007
+ onFocusableItemRemove
14008
+ ]);
13587
14009
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
13588
- if (focusable) {
13589
- onFocusableItemAdd();
13590
- return ()=>onFocusableItemRemove();
13591
- }
14010
+ if (isHydrated || !focusable) return;
14011
+ onFocusableItemAdd();
14012
+ return ()=>onFocusableItemRemove();
13592
14013
  }, [
14014
+ isHydrated,
13593
14015
  focusable,
13594
14016
  onFocusableItemAdd,
13595
14017
  onFocusableItemRemove
@@ -14518,6 +14940,15 @@ var Menu = (props)=>{
14518
14940
  });
14519
14941
  };
14520
14942
  }, []);
14943
+ __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
14944
+ if (!open) return;
14945
+ const handleBlur = ()=>handleOpenChange(false);
14946
+ window.addEventListener("blur", handleBlur);
14947
+ return ()=>window.removeEventListener("blur", handleBlur);
14948
+ }, [
14949
+ open,
14950
+ handleOpenChange
14951
+ ]);
14521
14952
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Root2, {
14522
14953
  ...popperScope,
14523
14954
  children: /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(MenuProvider, {
@@ -14836,8 +15267,9 @@ var MenuItem = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef
14836
15267
  if (!isPointerDownRef.current) event.currentTarget?.click();
14837
15268
  }),
14838
15269
  onKeyDown: composeEventHandlers(props.onKeyDown, (event)=>{
15270
+ if (disabled || event.target !== event.currentTarget) return;
14839
15271
  const isTypingAhead = "" !== contentContext.searchRef.current;
14840
- if (disabled || isTypingAhead && " " === event.key) return;
15272
+ if (isTypingAhead && " " === event.key) return;
14841
15273
  if (SELECTION_KEYS.includes(event.key)) {
14842
15274
  event.currentTarget.click();
14843
15275
  event.preventDefault();
@@ -15056,6 +15488,7 @@ var MenuSubTrigger = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwar
15056
15488
  pointerGraceTimerRef,
15057
15489
  onPointerGraceIntentChange
15058
15490
  ]);
15491
+ const composedRefs = useComposedRefs(forwardedRef, subContext.onTriggerChange);
15059
15492
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(MenuAnchor, {
15060
15493
  asChild: true,
15061
15494
  ...scope,
@@ -15063,10 +15496,10 @@ var MenuSubTrigger = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwar
15063
15496
  id: subContext.triggerId,
15064
15497
  "aria-haspopup": "menu",
15065
15498
  "aria-expanded": context.open,
15066
- "aria-controls": subContext.contentId,
15499
+ "aria-controls": context.open ? subContext.contentId : void 0,
15067
15500
  "data-state": getOpenState(context.open),
15068
15501
  ...props,
15069
- ref: dist_composeRefs(forwardedRef, subContext.onTriggerChange),
15502
+ ref: composedRefs,
15070
15503
  onClick: (event)=>{
15071
15504
  props.onClick?.(event);
15072
15505
  if (props.disabled || event.defaultPrevented) return;
@@ -15127,8 +15560,9 @@ var MenuSubTrigger = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwar
15127
15560
  }
15128
15561
  })),
15129
15562
  onKeyDown: composeEventHandlers(props.onKeyDown, (event)=>{
15563
+ if (props.disabled || event.target !== event.currentTarget) return;
15130
15564
  const isTypingAhead = "" !== contentContext.searchRef.current;
15131
- if (props.disabled || isTypingAhead && " " === event.key) return;
15565
+ if (isTypingAhead && " " === event.key) return;
15132
15566
  if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {
15133
15567
  context.onOpenChange(true);
15134
15568
  context.content?.focus();
@@ -15142,7 +15576,7 @@ MenuSubTrigger.displayName = SUB_TRIGGER_NAME;
15142
15576
  var SUB_CONTENT_NAME = "MenuSubContent";
15143
15577
  var MenuSubContent = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
15144
15578
  const portalContext = usePortalContext(dist_CONTENT_NAME, props.__scopeMenu);
15145
- const { forceMount = portalContext.forceMount, ...subContentProps } = props;
15579
+ const { forceMount = portalContext.forceMount, align = "start", ...subContentProps } = props;
15146
15580
  const context = useMenuContext(dist_CONTENT_NAME, props.__scopeMenu);
15147
15581
  const rootContext = useMenuRootContext(dist_CONTENT_NAME, props.__scopeMenu);
15148
15582
  const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);
@@ -15159,7 +15593,7 @@ var MenuSubContent = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwar
15159
15593
  "aria-labelledby": subContext.triggerId,
15160
15594
  ...subContentProps,
15161
15595
  ref: composedRefs,
15162
- align: "start",
15596
+ align,
15163
15597
  side: "rtl" === rootContext.dir ? "left" : "right",
15164
15598
  disableOutsidePointerEvents: false,
15165
15599
  disableOutsideScroll: false,
@@ -15306,6 +15740,7 @@ var DropdownMenuTrigger = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, f
15306
15740
  const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
15307
15741
  const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
15308
15742
  const menuScope = useMenuScope(__scopeDropdownMenu);
15743
+ const composedRefs = useComposedRefs(forwardedRef, context.triggerRef);
15309
15744
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Anchor2, {
15310
15745
  asChild: true,
15311
15746
  ...menuScope,
@@ -15319,7 +15754,7 @@ var DropdownMenuTrigger = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, f
15319
15754
  "data-disabled": disabled ? "" : void 0,
15320
15755
  disabled,
15321
15756
  ...triggerProps,
15322
- ref: dist_composeRefs(forwardedRef, context.triggerRef),
15757
+ ref: composedRefs,
15323
15758
  onPointerDown: composeEventHandlers(props.onPointerDown, (event)=>{
15324
15759
  if (!disabled && 0 === event.button && false === event.ctrlKey) {
15325
15760
  context.onOpenToggle();
@@ -15617,7 +16052,7 @@ var ScrollArea = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedR
15617
16052
  const [cornerHeight, setCornerHeight] = __WEBPACK_EXTERNAL_MODULE_react__.useState(0);
15618
16053
  const [scrollbarXEnabled, setScrollbarXEnabled] = __WEBPACK_EXTERNAL_MODULE_react__.useState(false);
15619
16054
  const [scrollbarYEnabled, setScrollbarYEnabled] = __WEBPACK_EXTERNAL_MODULE_react__.useState(false);
15620
- const composedRefs = useComposedRefs(forwardedRef, (node)=>setScrollArea(node));
16055
+ const composedRefs = useComposedRefs(forwardedRef, setScrollArea);
15621
16056
  const direction = useDirection(dir);
15622
16057
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ScrollAreaProvider, {
15623
16058
  scope: __scopeScrollArea,
@@ -15645,8 +16080,8 @@ var ScrollArea = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedR
15645
16080
  ref: composedRefs,
15646
16081
  style: {
15647
16082
  position: "relative",
15648
- ["--radix-scroll-area-corner-width"]: cornerWidth + "px",
15649
- ["--radix-scroll-area-corner-height"]: cornerHeight + "px",
16083
+ "--radix-scroll-area-corner-width": cornerWidth + "px",
16084
+ "--radix-scroll-area-corner-height": cornerHeight + "px",
15650
16085
  ...props.style
15651
16086
  }
15652
16087
  })
@@ -15661,10 +16096,7 @@ var ScrollAreaViewport = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, fo
15661
16096
  const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);
15662
16097
  return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
15663
16098
  children: [
15664
- /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("style", {
15665
- dangerouslySetInnerHTML: {
15666
- __html: "[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"
15667
- },
16099
+ /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ScrollAreaViewportStyle, {
15668
16100
  nonce
15669
16101
  }),
15670
16102
  /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Primitive.div, {
@@ -15689,6 +16121,12 @@ var ScrollAreaViewport = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, fo
15689
16121
  });
15690
16122
  });
15691
16123
  ScrollAreaViewport.displayName = VIEWPORT_NAME;
16124
+ var ScrollAreaViewportStyle = __WEBPACK_EXTERNAL_MODULE_react__.memo(({ nonce })=>/* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("style", {
16125
+ dangerouslySetInnerHTML: {
16126
+ __html: "[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"
16127
+ },
16128
+ nonce
16129
+ }), (prevProps, nextProps)=>prevProps.nonce === nextProps.nonce);
15692
16130
  var SCROLLBAR_NAME = "ScrollAreaScrollbar";
15693
16131
  var ScrollAreaScrollbar = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
15694
16132
  const { forceMount, ...scrollbarProps } = props;
@@ -15719,7 +16157,8 @@ var ScrollAreaScrollbar = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, f
15719
16157
  forceMount
15720
16158
  }) : "always" === context.type ? /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ScrollAreaScrollbarVisible, {
15721
16159
  ...scrollbarProps,
15722
- ref: forwardedRef
16160
+ ref: forwardedRef,
16161
+ "data-state": "visible"
15723
16162
  }) : null;
15724
16163
  });
15725
16164
  ScrollAreaScrollbar.displayName = SCROLLBAR_NAME;
@@ -15932,7 +16371,7 @@ var ScrollAreaScrollbarX = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props,
15932
16371
  bottom: 0,
15933
16372
  left: "rtl" === context.dir ? "var(--radix-scroll-area-corner-width)" : 0,
15934
16373
  right: "ltr" === context.dir ? "var(--radix-scroll-area-corner-width)" : 0,
15935
- ["--radix-scroll-area-thumb-width"]: getThumbSize(sizes) + "px",
16374
+ "--radix-scroll-area-thumb-width": getThumbSize(sizes) + "px",
15936
16375
  ...props.style
15937
16376
  },
15938
16377
  onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.x),
@@ -15978,7 +16417,7 @@ var ScrollAreaScrollbarY = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props,
15978
16417
  right: "ltr" === context.dir ? 0 : void 0,
15979
16418
  left: "rtl" === context.dir ? 0 : void 0,
15980
16419
  bottom: "var(--radix-scroll-area-corner-height)",
15981
- ["--radix-scroll-area-thumb-height"]: getThumbSize(sizes) + "px",
16420
+ "--radix-scroll-area-thumb-height": getThumbSize(sizes) + "px",
15982
16421
  ...props.style
15983
16422
  },
15984
16423
  onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.y),
@@ -16008,7 +16447,7 @@ var ScrollAreaScrollbarImpl = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((prop
16008
16447
  const { __scopeScrollArea, sizes, hasThumb, onThumbChange, onThumbPointerUp, onThumbPointerDown, onThumbPositionChange, onDragScroll, onWheelScroll, onResize, ...scrollbarProps } = props;
16009
16448
  const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);
16010
16449
  const [scrollbar, setScrollbar] = __WEBPACK_EXTERNAL_MODULE_react__.useState(null);
16011
- const composeRefs = useComposedRefs(forwardedRef, (node)=>setScrollbar(node));
16450
+ const composeRefs = useComposedRefs(forwardedRef, setScrollbar);
16012
16451
  const rectRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
16013
16452
  const prevWebkitUserSelectRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef("");
16014
16453
  const viewport = context.viewport;
@@ -16105,7 +16544,7 @@ var ScrollAreaThumbImpl = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, f
16105
16544
  const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);
16106
16545
  const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);
16107
16546
  const { onThumbPositionChange } = scrollbarContext;
16108
- const composedRef = useComposedRefs(forwardedRef, (node)=>scrollbarContext.onThumbChange(node));
16547
+ const composedRef = useComposedRefs(forwardedRef, scrollbarContext.onThumbChange);
16109
16548
  const removeUnlinkedScrollListenerRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(void 0);
16110
16549
  const debounceScrollEnd = useDebounceCallback(()=>{
16111
16550
  if (removeUnlinkedScrollListenerRef.current) {
@@ -16173,6 +16612,7 @@ var ScrollAreaCornerImpl = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props,
16173
16612
  const [width, setWidth] = __WEBPACK_EXTERNAL_MODULE_react__.useState(0);
16174
16613
  const [height, setHeight] = __WEBPACK_EXTERNAL_MODULE_react__.useState(0);
16175
16614
  const hasSize = Boolean(width && height);
16615
+ const { onCornerWidthChange, onCornerHeightChange } = context;
16176
16616
  useResizeObserver(context.scrollbarX, ()=>{
16177
16617
  const height2 = context.scrollbarX?.offsetHeight || 0;
16178
16618
  context.onCornerHeightChange(height2);
@@ -16183,6 +16623,13 @@ var ScrollAreaCornerImpl = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props,
16183
16623
  context.onCornerWidthChange(width2);
16184
16624
  setWidth(width2);
16185
16625
  });
16626
+ __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>()=>{
16627
+ onCornerWidthChange(0);
16628
+ onCornerHeightChange(0);
16629
+ }, [
16630
+ onCornerWidthChange,
16631
+ onCornerHeightChange
16632
+ ]);
16186
16633
  return hasSize ? /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Primitive.div, {
16187
16634
  ...cornerProps,
16188
16635
  ref: forwardedRef,
@@ -16405,10 +16852,14 @@ var TooltipProvider = (props)=>{
16405
16852
  isOpenDelayedRef,
16406
16853
  delayDuration,
16407
16854
  onOpen: __WEBPACK_EXTERNAL_MODULE_react__.useCallback(()=>{
16855
+ if (skipDelayDuration <= 0) return;
16408
16856
  window.clearTimeout(skipDelayTimerRef.current);
16409
16857
  isOpenDelayedRef.current = false;
16410
- }, []),
16858
+ }, [
16859
+ skipDelayDuration
16860
+ ]),
16411
16861
  onClose: __WEBPACK_EXTERNAL_MODULE_react__.useCallback(()=>{
16862
+ if (skipDelayDuration <= 0) return;
16412
16863
  window.clearTimeout(skipDelayTimerRef.current);
16413
16864
  skipDelayTimerRef.current = window.setTimeout(()=>isOpenDelayedRef.current = true, skipDelayDuration);
16414
16865
  }, [
@@ -16707,8 +17158,7 @@ var TooltipContentImpl = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, fo
16707
17158
  __WEBPACK_EXTERNAL_MODULE_react__.useEffect(()=>{
16708
17159
  if (context.trigger) {
16709
17160
  const handleScroll = (event)=>{
16710
- const target = event.target;
16711
- if (target?.contains(context.trigger)) onClose();
17161
+ if (event.target instanceof Node && event.target.contains(context.trigger)) onClose();
16712
17162
  };
16713
17163
  window.addEventListener("scroll", handleScroll, {
16714
17164
  capture: true
@@ -17542,7 +17992,7 @@ const ToolbarContentBox = ({ style, className, contentClassName, title, active =
17542
17992
  });
17543
17993
  };
17544
17994
  const primitives_ToolbarContentBox = ToolbarContentBox;
17545
- const ToolbarGlyph = ({ children, className, opticalOffsetX = 0, opticalOffsetY = 0, opticalScale = 1 })=>{
17995
+ const ToolbarGlyph_ToolbarGlyph = ({ children, className, opticalOffsetX = 0, opticalOffsetY = 0, opticalScale = 1 })=>{
17546
17996
  const transforms = [];
17547
17997
  if (0 !== opticalOffsetX || 0 !== opticalOffsetY) transforms.push(`translate(${opticalOffsetX}px, ${opticalOffsetY}px)`);
17548
17998
  if (1 !== opticalScale) transforms.push(`scale(${opticalScale})`);
@@ -17554,137 +18004,7 @@ const ToolbarGlyph = ({ children, className, opticalOffsetX = 0, opticalOffsetY
17554
18004
  children: children
17555
18005
  });
17556
18006
  };
17557
- const primitives_ToolbarGlyph = ToolbarGlyph;
17558
- var REACT_LAZY_TYPE = Symbol.for("react.lazy");
17559
- var use = __WEBPACK_EXTERNAL_MODULE_react__[" use ".trim().toString()];
17560
- function isPromiseLike(value1) {
17561
- return "object" == typeof value1 && null !== value1 && "then" in value1;
17562
- }
17563
- function isLazyComponent(element) {
17564
- return null != element && "object" == typeof element && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload);
17565
- }
17566
- function dist_createSlot(ownerName) {
17567
- const SlotClone = /* @__PURE__ */ dist_createSlotClone(ownerName);
17568
- const Slot2 = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
17569
- let { children, ...slotProps } = props;
17570
- if (isLazyComponent(children) && "function" == typeof use) children = use(children._payload);
17571
- const childrenArray = __WEBPACK_EXTERNAL_MODULE_react__.Children.toArray(children);
17572
- const slottable = childrenArray.find(dist_isSlottable);
17573
- if (slottable) {
17574
- const newElement = slottable.props.children;
17575
- const newChildren = childrenArray.map((child)=>{
17576
- if (child !== slottable) return child;
17577
- if (__WEBPACK_EXTERNAL_MODULE_react__.Children.count(newElement) > 1) return __WEBPACK_EXTERNAL_MODULE_react__.Children.only(null);
17578
- return __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(newElement) ? newElement.props.children : null;
17579
- });
17580
- return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(SlotClone, {
17581
- ...slotProps,
17582
- ref: forwardedRef,
17583
- children: __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(newElement) ? __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(newElement, void 0, newChildren) : null
17584
- });
17585
- }
17586
- return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(SlotClone, {
17587
- ...slotProps,
17588
- ref: forwardedRef,
17589
- children
17590
- });
17591
- });
17592
- Slot2.displayName = `${ownerName}.Slot`;
17593
- return Slot2;
17594
- }
17595
- function dist_createSlotClone(ownerName) {
17596
- const SlotClone = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
17597
- let { children, ...slotProps } = props;
17598
- if (isLazyComponent(children) && "function" == typeof use) children = use(children._payload);
17599
- if (__WEBPACK_EXTERNAL_MODULE_react__.isValidElement(children)) {
17600
- const childrenRef = react_slot_dist_getElementRef(children);
17601
- const props2 = dist_mergeProps(slotProps, children.props);
17602
- if (children.type !== __WEBPACK_EXTERNAL_MODULE_react__.Fragment) props2.ref = forwardedRef ? dist_composeRefs(forwardedRef, childrenRef) : childrenRef;
17603
- return __WEBPACK_EXTERNAL_MODULE_react__.cloneElement(children, props2);
17604
- }
17605
- return __WEBPACK_EXTERNAL_MODULE_react__.Children.count(children) > 1 ? __WEBPACK_EXTERNAL_MODULE_react__.Children.only(null) : null;
17606
- });
17607
- SlotClone.displayName = `${ownerName}.SlotClone`;
17608
- return SlotClone;
17609
- }
17610
- var dist_SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
17611
- function dist_isSlottable(child) {
17612
- return __WEBPACK_EXTERNAL_MODULE_react__.isValidElement(child) && "function" == typeof child.type && "__radixId" in child.type && child.type.__radixId === dist_SLOTTABLE_IDENTIFIER;
17613
- }
17614
- function dist_mergeProps(slotProps, childProps) {
17615
- const overrideProps = {
17616
- ...childProps
17617
- };
17618
- for(const propName in childProps){
17619
- const slotPropValue = slotProps[propName];
17620
- const childPropValue = childProps[propName];
17621
- const isHandler = /^on[A-Z]/.test(propName);
17622
- if (isHandler) {
17623
- if (slotPropValue && childPropValue) overrideProps[propName] = (...args)=>{
17624
- const result = childPropValue(...args);
17625
- slotPropValue(...args);
17626
- return result;
17627
- };
17628
- else if (slotPropValue) overrideProps[propName] = slotPropValue;
17629
- } else if ("style" === propName) overrideProps[propName] = {
17630
- ...slotPropValue,
17631
- ...childPropValue
17632
- };
17633
- else if ("className" === propName) overrideProps[propName] = [
17634
- slotPropValue,
17635
- childPropValue
17636
- ].filter(Boolean).join(" ");
17637
- }
17638
- return {
17639
- ...slotProps,
17640
- ...overrideProps
17641
- };
17642
- }
17643
- function react_slot_dist_getElementRef(element) {
17644
- let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
17645
- let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
17646
- if (mayWarn) return element.ref;
17647
- getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
17648
- mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
17649
- if (mayWarn) return element.props.ref;
17650
- return element.props.ref || element.ref;
17651
- }
17652
- var dist_NODES = [
17653
- "a",
17654
- "button",
17655
- "div",
17656
- "form",
17657
- "h2",
17658
- "h3",
17659
- "img",
17660
- "input",
17661
- "label",
17662
- "li",
17663
- "nav",
17664
- "ol",
17665
- "p",
17666
- "select",
17667
- "span",
17668
- "svg",
17669
- "ul"
17670
- ];
17671
- var dist_Primitive = dist_NODES.reduce((primitive, node)=>{
17672
- const Slot = dist_createSlot(`Primitive.${node}`);
17673
- const Node1 = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwardedRef)=>{
17674
- const { asChild, ...primitiveProps } = props;
17675
- const Comp = asChild ? Slot : node;
17676
- if ("undefined" != typeof window) window[Symbol.for("radix-ui")] = true;
17677
- return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Comp, {
17678
- ...primitiveProps,
17679
- ref: forwardedRef
17680
- });
17681
- });
17682
- Node1.displayName = `Primitive.${node}`;
17683
- return {
17684
- ...primitive,
17685
- [node]: Node1
17686
- };
17687
- }, {});
18007
+ const ToolbarGlyph = ToolbarGlyph_ToolbarGlyph;
17688
18008
  var react_separator_dist_NAME = "Separator";
17689
18009
  var DEFAULT_ORIENTATION = "horizontal";
17690
18010
  var ORIENTATIONS = [
@@ -17701,7 +18021,7 @@ var dist_Separator = __WEBPACK_EXTERNAL_MODULE_react__.forwardRef((props, forwar
17701
18021
  "aria-orientation": ariaOrientation,
17702
18022
  role: "separator"
17703
18023
  };
17704
- return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(dist_Primitive.div, {
18024
+ return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Primitive.div, {
17705
18025
  "data-orientation": orientation,
17706
18026
  ...semanticProps,
17707
18027
  ...domProps,
@@ -17739,7 +18059,7 @@ const ToolbarDropdown = (props)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_rea
17739
18059
  const ToolbarIconDropdown = ({ icon, title, triggerClassName, ...props })=>{
17740
18060
  const iconNode = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
17741
18061
  className: TOOLBAR_TRIGGER_ICON_CLASS_NAME,
17742
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(primitives_ToolbarGlyph, {
18062
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ToolbarGlyph, {
17743
18063
  children: icon
17744
18064
  })
17745
18065
  });
@@ -18150,18 +18470,28 @@ const GaugeChart = (props)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_js
18150
18470
  });
18151
18471
  const charts_Gauge_Gauge = withChartPublisher(GaugeChart, 'Gauge');
18152
18472
  const charts_Gauge = charts_Gauge_Gauge;
18153
- const useAxisYWidth_width = 40;
18154
- function useAxisYWidth_useAxisYWidth() {
18155
- const { state: { system: { padding }, axisY: { show } } } = useStore_useStore();
18156
- const w = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>show ? useAxisYWidth_width : 0, [
18157
- show
18158
- ]);
18473
+ const AXIS_Y_WIDTH = 40;
18474
+ const resolveAxisYLayout = ({ padding, placement, show })=>{
18475
+ const inside = 'inside' === placement;
18476
+ const visualWidth = false === show ? 0 : AXIS_Y_WIDTH;
18477
+ const reservedWidth = inside ? 0 : visualWidth;
18159
18478
  return {
18160
- width: `${w}px`,
18161
- axisYWidth: `${w + padding / 2}px`,
18479
+ axisYWidth: `${visualWidth + padding / 2}px`,
18480
+ inside,
18162
18481
  marginLeft: `${0 - padding / 2}px`,
18163
- pluginBoxWidth: `calc(100% - ${w}px)`
18482
+ pluginBoxWidth: 0 === reservedWidth ? '100%' : `calc(100% - ${reservedWidth}px)`,
18483
+ width: `${reservedWidth}px`
18164
18484
  };
18485
+ };
18486
+ function useAxisYWidth_useAxisYWidth() {
18487
+ const padding = useStore_useSelector((state)=>state.system.padding);
18488
+ const placement = useStore_useSelector((state)=>state.axisY.placement);
18489
+ const show = useStore_useSelector((state)=>state.axisY.show);
18490
+ return resolveAxisYLayout({
18491
+ padding,
18492
+ placement,
18493
+ show
18494
+ });
18165
18495
  }
18166
18496
  const RulerTicks_RulerTicks = ({ length = 10, tickColor = 'var(--chart-grid-strong)', tickHeight = 8, strokeWidth = 1, orientation = 'horizontal', split = 2 })=>{
18167
18497
  const renderTick = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((index)=>{
@@ -18224,7 +18554,7 @@ const RulerTicks_RulerTicks = ({ length = 10, tickColor = 'var(--chart-grid-stro
18224
18554
  });
18225
18555
  };
18226
18556
  const components_RulerTicks = RulerTicks_RulerTicks;
18227
- const ZoomViewportLayer = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, className, style: customStyle }, ref)=>{
18557
+ const ZoomViewportLayer_ZoomViewportLayer = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, className, style: customStyle }, ref)=>{
18228
18558
  const { state: { zoom: { style: zoomStyle } } } = useStore_useStore();
18229
18559
  return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
18230
18560
  ref: ref,
@@ -18237,7 +18567,7 @@ const ZoomViewportLayer = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.fo
18237
18567
  })
18238
18568
  });
18239
18569
  });
18240
- const Zoom_ZoomViewportLayer = ZoomViewportLayer;
18570
+ const ZoomViewportLayer = ZoomViewportLayer_ZoomViewportLayer;
18241
18571
  const AXIS_X_TICKS_LAYER_CLASS_NAME = 'absolute right-0 top-0 flex h-full w-full items-center justify-between text-xs opacity-50';
18242
18572
  const AXIS_X_TICKS_SHELL_CLASS_NAME = 'relative h-6 w-full select-none overflow-hidden text-xs leading-6';
18243
18573
  const MSCAN_SEGMENT_CLASS_NAME = 'flex flex-1 items-center justify-center';
@@ -18379,13 +18709,13 @@ const AxisXTicks = ({ type })=>{
18379
18709
  if (!show) return null;
18380
18710
  return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
18381
18711
  className: AXIS_X_TICKS_SHELL_CLASS_NAME,
18382
- children: type === constants_ChartType.Scan || type === constants_ChartType.ScanDF360 ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(DataNFixedTicks, {}) : type === constants_ChartType.MScan ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
18712
+ children: type === constants_ChartType.Scan || type === constants_ChartType.ScanDF360 ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(DataNFixedTicks, {}) : type === constants_ChartType.MScan ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
18383
18713
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(MScanTicks, {})
18384
18714
  }) : /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ThreeFixedTicks, {})
18385
18715
  });
18386
18716
  };
18387
18717
  const Ticks = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(AxisXTicks);
18388
- const AxisX_AxisX = ({ type })=>{
18718
+ const AxisX = ({ type })=>{
18389
18719
  const { state: { axisX } } = useStore_useStore();
18390
18720
  const { children, unit, ticks } = axisX;
18391
18721
  const { width, pluginBoxWidth } = useAxisYWidth_useAxisYWidth();
@@ -18423,7 +18753,7 @@ const AxisX_AxisX = ({ type })=>{
18423
18753
  })
18424
18754
  });
18425
18755
  };
18426
- const AxisX = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(AxisX_AxisX);
18756
+ const components_AxisX = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(AxisX);
18427
18757
  const FlexBox = (props)=>{
18428
18758
  const { children, className, style } = props;
18429
18759
  return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
@@ -22055,7 +22385,7 @@ const Cursor = ({ id, type })=>{
22055
22385
  type
22056
22386
  ]);
22057
22387
  if (!show || !isEnabled || !active) return null;
22058
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(Zoom_ZoomViewportLayer, {
22388
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(ZoomViewportLayer, {
22059
22389
  className: "z-[6]",
22060
22390
  children: [
22061
22391
  /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
@@ -22268,7 +22598,7 @@ const EventBus_EventBus = ({ id })=>{
22268
22598
  }, [
22269
22599
  handleMouseLeave
22270
22600
  ]);
22271
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
22601
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
22272
22602
  className: "z-[5] pointer-events-auto",
22273
22603
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("button", {
22274
22604
  ref: containerRef,
@@ -22615,7 +22945,7 @@ const Area_Area = (props)=>{
22615
22945
  })
22616
22946
  })
22617
22947
  }),
22618
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
22948
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
22619
22949
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
22620
22950
  style: {
22621
22951
  left: `${areaStyle?.left}%`,
@@ -23313,7 +23643,7 @@ const DragSelectBox = ({ enabled, defaultRect, minSize = 0, minWidth, minHeight,
23313
23643
  const middleInsetX = displayRectBox ? Math.max(0, Math.min(6, displayRectBox.width / 4)) : 6;
23314
23644
  const middleInsetY = displayRectBox ? Math.max(0, Math.min(6, displayRectBox.height / 4)) : 6;
23315
23645
  if (!enabled) return null;
23316
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(Zoom_ZoomViewportLayer, {
23646
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(ZoomViewportLayer, {
23317
23647
  className: cn_cn('left-0 top-0 h-full w-full overflow-hidden', className),
23318
23648
  ref: containerRef,
23319
23649
  style: {
@@ -23824,7 +24154,7 @@ const Heatmap_Chart_Chart = ({ publish, heatmapDefaultData })=>{
23824
24154
  heatmapDefaultData: heatmapDefaultData
23825
24155
  })
23826
24156
  }),
23827
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
24157
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_AxisX, {
23828
24158
  type: constants_ChartType.Scan
23829
24159
  })
23830
24160
  ]
@@ -24323,7 +24653,7 @@ const IQChart = (props)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_r
24323
24653
  const IQ_IQ = withChartPublisher(IQChart, 'IQ');
24324
24654
  const IQ = IQ_IQ;
24325
24655
  const Reset_modes = Object.values(constants_ModuleType);
24326
- const Reset = ()=>{
24656
+ const Reset_Reset = ()=>{
24327
24657
  const { state: { globalID, publish } } = useStore_useStore();
24328
24658
  const handleReset = ()=>{
24329
24659
  publish?.({
@@ -24350,7 +24680,7 @@ const Reset = ()=>{
24350
24680
  })
24351
24681
  });
24352
24682
  };
24353
- const controls_Reset = Reset;
24683
+ const Reset = Reset_Reset;
24354
24684
  const SegmentsDisplayControl_SegmentsDisplayControl = ()=>{
24355
24685
  const { state: { segments, globalID } } = useStore_useStore();
24356
24686
  const [display, setDisplay] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)([]);
@@ -24879,7 +25209,7 @@ const FluorescenceSwitch = ()=>{
24879
25209
  tone: "primary",
24880
25210
  onClick: toggleDisplay,
24881
25211
  title: title,
24882
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(primitives_ToolbarGlyph, {
25212
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ToolbarGlyph, {
24883
25213
  opticalOffsetY: iconOpticalOffsetY,
24884
25214
  opticalScale: iconOpticalScale,
24885
25215
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Icon, {})
@@ -24891,7 +25221,7 @@ const FluorescenceSwitch = ()=>{
24891
25221
  tone: "primary",
24892
25222
  onClick: toggleDisplay,
24893
25223
  title: title,
24894
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(primitives_ToolbarGlyph, {
25224
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ToolbarGlyph, {
24895
25225
  opticalOffsetY: iconOpticalOffsetY,
24896
25226
  opticalScale: iconOpticalScale,
24897
25227
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Icon, {})
@@ -25578,7 +25908,7 @@ const TOOLBAR_ITEM_CONFIGS = [
25578
25908
  ]
25579
25909
  },
25580
25910
  {
25581
- component: controls_Reset,
25911
+ component: Reset,
25582
25912
  toolType: constants_ToolbarItemType.Reset,
25583
25913
  supportedCharts: [],
25584
25914
  excludedCharts: [
@@ -25865,7 +26195,7 @@ class Occupancy extends BaseRenderer {
25865
26195
  });
25866
26196
  }
25867
26197
  }
25868
- const Level = (props)=>{
26198
+ const Level_Level = (props)=>{
25869
26199
  const { opacity } = props;
25870
26200
  const { chart, Chart } = hooks_useChart({
25871
26201
  Render: Occupancy,
@@ -25888,11 +26218,31 @@ const Level = (props)=>{
25888
26218
  style: style
25889
26219
  });
25890
26220
  };
25891
- const modules_Level = Level;
25892
- const LINE_WIDTH_BASE = 0.5;
26221
+ const Level = Level_Level;
25893
26222
  const MAJOR_TICK_LENGTH = 6;
25894
26223
  const MINOR_TICK_LENGTH = 4;
25895
26224
  const TEXT_OFFSET = 8;
26225
+ const resolveAxisYCanvasHorizontalLayout = ({ axisLineWidth, inside, width })=>{
26226
+ if (inside) return {
26227
+ axisX: axisLineWidth,
26228
+ majorTickEndX: MAJOR_TICK_LENGTH,
26229
+ majorTickStartX: 0,
26230
+ minorTickEndX: MINOR_TICK_LENGTH,
26231
+ minorTickStartX: 0,
26232
+ textAlign: 'left',
26233
+ textX: TEXT_OFFSET
26234
+ };
26235
+ return {
26236
+ axisX: width - axisLineWidth,
26237
+ majorTickEndX: width,
26238
+ majorTickStartX: width - MAJOR_TICK_LENGTH,
26239
+ minorTickEndX: width,
26240
+ minorTickStartX: width - MINOR_TICK_LENGTH,
26241
+ textAlign: 'right',
26242
+ textX: width - TEXT_OFFSET
26243
+ };
26244
+ };
26245
+ const LINE_WIDTH_BASE = 0.5;
25896
26246
  const MINOR_TICK_DIVISIONS = 2;
25897
26247
  const MIN_TICK_SPACING = 4;
25898
26248
  const MIN_CONTAINER_HEIGHT = 100;
@@ -25904,7 +26254,8 @@ const AXIS_LINE_WIDTH = LINE_WIDTH_BASE;
25904
26254
  function useCanvasAxisY(options) {
25905
26255
  const { ranging } = options;
25906
26256
  const axisY = useStore_useSelector((state)=>state.axisY);
25907
- const { range: axisYRange, disabled } = axisY;
26257
+ const { range: axisYRange, disabled, placement } = axisY;
26258
+ const inside = 'inside' === placement;
25908
26259
  const canvasRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
25909
26260
  const containerRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
25910
26261
  const [containerHeight, setContainerHeight] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(0);
@@ -26046,6 +26397,11 @@ function useCanvasAxisY(options) {
26046
26397
  const rect = canvas.getBoundingClientRect();
26047
26398
  const width = rect.width;
26048
26399
  const height = containerHeight;
26400
+ const horizontalLayout = resolveAxisYCanvasHorizontalLayout({
26401
+ axisLineWidth: AXIS_LINE_WIDTH,
26402
+ inside,
26403
+ width
26404
+ });
26049
26405
  canvas.width = width * devicePixelRatio;
26050
26406
  canvas.height = height * devicePixelRatio;
26051
26407
  canvas.style.width = `${width}px`;
@@ -26055,18 +26411,18 @@ function useCanvasAxisY(options) {
26055
26411
  ctx.imageSmoothingQuality = 'high';
26056
26412
  ctx.clearRect(0, 0, width, height);
26057
26413
  ctx.font = '12px -apple-system, BlinkMacSystemFont, sans-serif';
26058
- ctx.textAlign = 'right';
26414
+ ctx.textAlign = horizontalLayout.textAlign;
26059
26415
  ctx.textBaseline = 'middle';
26060
26416
  ctx.lineWidth = MAJOR_TICK_LINE_WIDTH;
26061
26417
  const color = getThemeColor('--foreground', 0.5, containerRef.current);
26062
26418
  ticksData.majorTicks.forEach((tick)=>{
26063
26419
  ctx.fillStyle = color;
26064
26420
  ctx.strokeStyle = color;
26065
- ctx.fillText(tick.label, width - TEXT_OFFSET, tick.textPosition);
26421
+ ctx.fillText(tick.label, horizontalLayout.textX, tick.textPosition);
26066
26422
  ctx.beginPath();
26067
26423
  const tickY = alignToDevicePixel(clampTickPosition(tick.position, height, MAJOR_TICK_LINE_WIDTH), MAJOR_TICK_LINE_WIDTH);
26068
- ctx.moveTo(width - MAJOR_TICK_LENGTH, tickY);
26069
- ctx.lineTo(width, tickY);
26424
+ ctx.moveTo(horizontalLayout.majorTickStartX, tickY);
26425
+ ctx.lineTo(horizontalLayout.majorTickEndX, tickY);
26070
26426
  ctx.stroke();
26071
26427
  });
26072
26428
  ctx.strokeStyle = color;
@@ -26074,14 +26430,14 @@ function useCanvasAxisY(options) {
26074
26430
  ticksData.minorTicks.forEach((tick)=>{
26075
26431
  ctx.beginPath();
26076
26432
  const tickY = alignToDevicePixel(clampTickPosition(tick.position, height, MINOR_TICK_LINE_WIDTH), MINOR_TICK_LINE_WIDTH);
26077
- ctx.moveTo(width - MINOR_TICK_LENGTH, tickY);
26078
- ctx.lineTo(width, tickY);
26433
+ ctx.moveTo(horizontalLayout.minorTickStartX, tickY);
26434
+ ctx.lineTo(horizontalLayout.minorTickEndX, tickY);
26079
26435
  ctx.stroke();
26080
26436
  });
26081
26437
  ctx.strokeStyle = color;
26082
26438
  ctx.lineWidth = AXIS_LINE_WIDTH;
26083
26439
  ctx.beginPath();
26084
- const axisX = alignToDevicePixel(width - AXIS_LINE_WIDTH, AXIS_LINE_WIDTH);
26440
+ const axisX = alignToDevicePixel(horizontalLayout.axisX, AXIS_LINE_WIDTH);
26085
26441
  ctx.moveTo(axisX, 0);
26086
26442
  ctx.lineTo(axisX, height);
26087
26443
  ctx.stroke();
@@ -26089,6 +26445,7 @@ function useCanvasAxisY(options) {
26089
26445
  ticksData,
26090
26446
  containerHeight,
26091
26447
  devicePixelRatio,
26448
+ inside,
26092
26449
  alignToDevicePixel,
26093
26450
  clampTickPosition
26094
26451
  ]);
@@ -26165,14 +26522,14 @@ function AxisYCanvas(props) {
26165
26522
  const ranging = spectrum_useRanging({
26166
26523
  chart
26167
26524
  });
26168
- const { axisYWidth, marginLeft } = useAxisYWidth_useAxisYWidth();
26525
+ const { axisYWidth, inside, marginLeft } = useAxisYWidth_useAxisYWidth();
26169
26526
  const { canvasRef, containerRef, isDragging, handleMouseDown, handleMouseMove, handleMouseUp, handleMouseLeave, handleWheel } = useCanvasAxisY({
26170
26527
  ranging
26171
26528
  });
26172
26529
  if (false === show) return null;
26173
26530
  return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
26174
26531
  ref: containerRef,
26175
- className: cn_cn('relative h-full select-none', isDragging ? 'cursor-grabbing' : 'cursor-ns-resize'),
26532
+ className: cn_cn('h-full select-none', inside ? 'absolute left-0 top-0 z-[7]' : 'relative', isDragging ? 'cursor-grabbing' : 'cursor-ns-resize'),
26176
26533
  style: {
26177
26534
  width: axisYWidth,
26178
26535
  marginLeft
@@ -26486,7 +26843,7 @@ const DragFrame = ({ id })=>{
26486
26843
  id
26487
26844
  ]);
26488
26845
  if (!zoom.show) return null;
26489
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
26846
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
26490
26847
  className: "z-[3]",
26491
26848
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
26492
26849
  className: "absolute left-[-100%] top-0 h-full w-0 box-border border-2 border-dashed border-chart-grid-strong bg-chart-surface opacity-40",
@@ -27636,7 +27993,7 @@ const FrequencyTagLine_FrequencyTagLine = (props)=>{
27636
27993
  show
27637
27994
  ]);
27638
27995
  if (!show || !display) return null;
27639
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
27996
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
27640
27997
  className: "z-[3]",
27641
27998
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
27642
27999
  className: "relative flex h-full w-px border-l border-dashed border-chart-highlight/80 opacity-80",
@@ -27867,7 +28224,7 @@ const Limit_Limit = ({ id })=>{
27867
28224
  system.height
27868
28225
  ]);
27869
28226
  if (!show) return null;
27870
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
28227
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
27871
28228
  className: "z-[2]",
27872
28229
  children: segments?.map((i, index)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
27873
28230
  style: {
@@ -29253,7 +29610,7 @@ const Markers = ({ id })=>{
29253
29610
  resetMarkers
29254
29611
  ]);
29255
29612
  if (!show) return null;
29256
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
29613
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
29257
29614
  className: "z-[5]",
29258
29615
  children: markers.map((marker)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Markers_MarkerItem, {
29259
29616
  marker: marker
@@ -29309,7 +29666,7 @@ function useScope_useScope() {
29309
29666
  const Scope = ()=>{
29310
29667
  const { state: { scope: { show, left, width } } } = useStore_useStore();
29311
29668
  if (!show) return null;
29312
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
29669
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
29313
29670
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
29314
29671
  className: "relative flex h-full w-0 box-border border-y border-dashed border-chart-grid bg-chart-surface opacity-50",
29315
29672
  style: {
@@ -29602,7 +29959,7 @@ const Stripe_Stripe = ({ id })=>{
29602
29959
  change
29603
29960
  ]);
29604
29961
  if (!show || left - right === 0 || !display) return null;
29605
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
29962
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
29606
29963
  className: "z-[3]",
29607
29964
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
29608
29965
  className: "relative flex h-full w-px box-border border-x-2 border-dashed border-y-0 border-chart-grid-strong bg-chart-surface opacity-40",
@@ -29614,37 +29971,73 @@ const Stripe_Stripe = ({ id })=>{
29614
29971
  });
29615
29972
  };
29616
29973
  const Stripe = Stripe_Stripe;
29974
+ function resolveBandPositions(band, segments) {
29975
+ if (!band.show) return [];
29976
+ if (band.kind === BandKind.Position) return [
29977
+ {
29978
+ key: BandKind.Position,
29979
+ left: band.left ?? 50 - band.width / 2,
29980
+ width: band.width
29981
+ }
29982
+ ];
29983
+ const range = frequencyCalculation_calculateFrequencyRange(band);
29984
+ if (!range || !segments.length) return [];
29985
+ const totalSegmentPoints = segments.reduce((sum, segment)=>sum + Math.max(0, segment.point), 0);
29986
+ if (totalSegmentPoints <= 0) return [];
29987
+ const positions = [];
29988
+ let segmentLeft = 0;
29989
+ segments.forEach((segment, segmentIndex)=>{
29990
+ const segmentWidth = Math.max(0, segment.point) / totalSegmentPoints * 100;
29991
+ if (segment.point > 0 && segment.frequencyCache?.length && isRangeIntersectSegment(range, segment)) {
29992
+ const localPosition = calculatePositionFromFrequencyRange(range, segment);
29993
+ positions.push({
29994
+ key: `frequency-${segmentIndex}`,
29995
+ left: segmentLeft + localPosition.left / 100 * segmentWidth,
29996
+ width: localPosition.width / 100 * segmentWidth
29997
+ });
29998
+ }
29999
+ segmentLeft += segmentWidth;
30000
+ });
30001
+ return positions;
30002
+ }
29617
30003
  function useBandLayerController() {
29618
- const { state: { band }, dispatch } = useStore_useStore();
30004
+ const { dispatch, store } = useStoreApi();
29619
30005
  const updateBand = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((e)=>{
29620
- const { show = true, width = 0 } = e;
30006
+ const current = store.getState().band;
30007
+ const next = resolveBandState(e, current, 'replace');
30008
+ if (next === current) return;
29621
30009
  dispatch({
29622
30010
  payload: {
29623
- band: {
29624
- ...band,
29625
- show,
29626
- width
29627
- }
30011
+ band: next
29628
30012
  }
29629
30013
  });
29630
30014
  }, [
29631
- band
30015
+ dispatch,
30016
+ store
29632
30017
  ]);
29633
30018
  return updateBand;
29634
30019
  }
29635
30020
  const BandLayer_BandLayer = ()=>{
29636
- const { state: { band: { show, width, left, color } } } = useStore_useStore();
29637
- if (!show) return null;
29638
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
29639
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
29640
- className: "absolute flex h-full w-0 box-border border-y border-dashed opacity-50",
29641
- style: {
29642
- left: void 0 !== left ? `${left}%` : `calc(50% - ${width / 2}%)`,
29643
- width: `${width}%`,
29644
- backgroundColor: `${color}15`,
29645
- borderColor: `${color}`
29646
- }
29647
- })
30021
+ const band = useStore_useSelector((state)=>state.band);
30022
+ const segments = useStore_useSelector((state)=>state.segments);
30023
+ const positions = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>resolveBandPositions(band, segments), [
30024
+ band,
30025
+ segments
30026
+ ]);
30027
+ if (!positions.length) return null;
30028
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
30029
+ children: positions.map((position)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
30030
+ "data-testid": "spectrum-band",
30031
+ "data-band-kind": band.kind,
30032
+ "data-band-key": position.key,
30033
+ className: "absolute flex h-full w-0 box-border border-y border-dashed opacity-50",
30034
+ style: {
30035
+ left: `${position.left}%`,
30036
+ width: `${position.width}%`,
30037
+ backgroundColor: band.color ? `${band.color}40` : void 0,
30038
+ borderColor: band.color
30039
+ }
30040
+ }, position.key))
29648
30041
  });
29649
30042
  };
29650
30043
  const BandLayer = BandLayer_BandLayer;
@@ -29781,7 +30174,7 @@ const LevelStream_Chart_Chart = (props)=>{
29781
30174
  /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_FlexBox, {
29782
30175
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Spectrum, {
29783
30176
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(PluginBox, {
29784
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Level, {
30177
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Level, {
29785
30178
  opacity: 0.5
29786
30179
  })
29787
30180
  })
@@ -30012,7 +30405,7 @@ const Occupancy_Chart_Chart = (props)=>{
30012
30405
  /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_FlexBox, {
30013
30406
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Occupancy, {})
30014
30407
  }),
30015
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
30408
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_AxisX, {
30016
30409
  type: constants_ChartType.Scan
30017
30410
  })
30018
30411
  ]
@@ -30184,7 +30577,7 @@ const HeatmapPortal_Chart = (props)=>{
30184
30577
  type: constants_ChartType.Heatmap
30185
30578
  }),
30186
30579
  /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Heatmap, {}),
30187
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
30580
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_AxisX, {
30188
30581
  type: type
30189
30582
  })
30190
30583
  ]
@@ -30207,7 +30600,7 @@ const OccupancyPortal_Chart = (props)=>{
30207
30600
  type: constants_ChartType.Occupancy
30208
30601
  }),
30209
30602
  /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Occupancy, {}),
30210
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
30603
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_AxisX, {
30211
30604
  type: type
30212
30605
  })
30213
30606
  ]
@@ -30246,7 +30639,7 @@ const Blaze = ()=>{
30246
30639
  globalID
30247
30640
  ]);
30248
30641
  if (!show) return null;
30249
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
30642
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
30250
30643
  children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
30251
30644
  className: "absolute left-[-100%] top-0 flex h-full w-0 opacity-50",
30252
30645
  style: {
@@ -30281,7 +30674,7 @@ const Spectrum_Legend = Legend;
30281
30674
  const SegmentsZebra = ()=>{
30282
30675
  const { state: { segments } } = useStore_useStore();
30283
30676
  const totalPoints = segments.totalPoints ?? 0;
30284
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomViewportLayer, {
30677
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ZoomViewportLayer, {
30285
30678
  className: "z-[0]",
30286
30679
  children: segments.map((i, key)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
30287
30680
  className: "h-full border-x",
@@ -30654,7 +31047,7 @@ const Spectrum_Chart_Chart = (props)=>{
30654
31047
  })
30655
31048
  ]
30656
31049
  }),
30657
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
31050
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_AxisX, {
30658
31051
  type: type
30659
31052
  })
30660
31053
  ]
@@ -30702,4 +31095,4 @@ function initChartsTheme(options = {}) {
30702
31095
  };
30703
31096
  }
30704
31097
  initializeChartsThemeEnvironment();
30705
- export { constants_ChartType as ChartType, charts_Dial as Dial, constants_FrequencyUnit as FrequencyUnit, charts_Gauge as Gauge, charts_Heatmap as Heatmap, heatmap_HeatmapCaptureType as HeatmapCaptureType, IQ, LevelStream, constants_MarkerEventType as MarkerEventType, marker_MarkerMode as MarkerMode, constants_ModuleType as ModuleType, charts_Occupancy as Occupancy, constants_OptionKey as OptionKey, constants_PSType as PSType, constants_SegmentsEvent as SegmentsEvent, constants_SeriesType as SeriesType, signal_SignalDataType as SignalDataType, charts_Spectrum as Spectrum, constants_ToolType as ToolType, constants_ToolbarItemType as ToolbarItemType, formatFrequencyUnit, formatFrequencyUnitFromHz, formatFrequencyUnitFromMHz, getChartsThemeState, initChartsTheme, setFrequencyAllocationChannelsToCache, setFrequencyAllocationToCache, subscribeChartsThemeChange, useSafePublish, withChartPublisher };
31098
+ export { constants_AxisPlacement as AxisPlacement, constants_ChartType as ChartType, charts_Dial as Dial, constants_FrequencyUnit as FrequencyUnit, charts_Gauge as Gauge, charts_Heatmap as Heatmap, heatmap_HeatmapCaptureType as HeatmapCaptureType, IQ, LevelStream, constants_MarkerEventType as MarkerEventType, marker_MarkerMode as MarkerMode, constants_ModuleType as ModuleType, charts_Occupancy as Occupancy, constants_OptionKey as OptionKey, constants_PSType as PSType, constants_SegmentsEvent as SegmentsEvent, constants_SeriesType as SeriesType, signal_SignalDataType as SignalDataType, charts_Spectrum as Spectrum, constants_ToolType as ToolType, constants_ToolbarItemType as ToolbarItemType, formatFrequencyUnit, formatFrequencyUnitFromHz, formatFrequencyUnitFromMHz, getChartsThemeState, initChartsTheme, setFrequencyAllocationChannelsToCache, setFrequencyAllocationToCache, subscribeChartsThemeChange, useSafePublish, withChartPublisher };