@ohif/app 3.13.0-beta.60 → 3.13.0-beta.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/{1608.bundle.e4aadbf17d38143dacdf.js → 1608.bundle.26306ea38618db59eff7.js} +4 -4
  2. package/dist/{1933.bundle.0055c536e1392867e57c.js → 1933.bundle.82822511235016082da4.js} +2 -2
  3. package/dist/{2701.bundle.b591cf6385ed53ed6093.js → 2701.bundle.6873805ddfdccc7a8b1e.js} +4 -4
  4. package/dist/{2851.bundle.c5202066974b96955c28.js → 2851.bundle.123d7f6fa1186ac1308a.js} +8 -8
  5. package/dist/{3138.bundle.5ed994e6e0ff7c720a75.js → 3138.bundle.bc81953147e0c5f3b23f.js} +4 -4
  6. package/dist/{3461.bundle.54f8d64ed1965c14ec4c.js → 3461.bundle.f65494e79c37a14bc206.js} +2 -2
  7. package/dist/{147.bundle.173b4a11960d03a3b5b0.js → 3754.bundle.fd4b67c2a29c4bc4a840.js} +468 -7
  8. package/dist/{4202.bundle.850a7c7c011800b3daea.js → 4202.bundle.4fcd0de412907efd5b53.js} +2 -2
  9. package/dist/{4819.bundle.fb82fcc8360f4883691e.js → 4819.bundle.23965159795eaeb1ca1b.js} +6 -6
  10. package/dist/{5015.bundle.dda760490cf19777b6b3.js → 5015.bundle.54d7fda0f8e819aaa578.js} +2 -2
  11. package/dist/{5028.bundle.494b6ca9e0f5567c26e2.js → 5028.bundle.b806370179a0f878527b.js} +2 -2
  12. package/dist/{5802.bundle.41cf74cda9aad21601e8.js → 5802.bundle.26f84db0ff8851532c36.js} +2 -2
  13. package/dist/{4688.bundle.e23f20a556dca69540fd.js → 7166.bundle.6334b7a549c8d1f58bfd.js} +92 -11
  14. package/dist/{8305.bundle.21d4c7deff19f6ce9a6a.js → 8305.bundle.7ff9f067007c6fc02eff.js} +4 -4
  15. package/dist/{8499.bundle.dbeca38ee1d1471ce4d8.js → 8499.bundle.b0d3892bff3f3163f747.js} +2 -2
  16. package/dist/{8558.bundle.5c64a061bf4d5d5f6d7a.js → 8558.bundle.ae26725ef258ef186524.js} +1 -1
  17. package/dist/{8583.bundle.a0ccedd0799600ad5fad.js → 8583.bundle.f56d7ead5b46d8d6f294.js} +4 -4
  18. package/dist/{9845.bundle.267831496ba080d9f8da.js → 9845.bundle.8c450e8d65a78a5afcd3.js} +4 -4
  19. package/dist/{9862.bundle.09783830f0cb75a84d2a.js → 9862.bundle.a5f7925840868fa4ecdb.js} +2 -2
  20. package/dist/{app.bundle.348a74b1a7aeb7c8d0a8.js → app.bundle.97f04c5d27e5017d698b.js} +408 -289
  21. package/dist/app.bundle.css +1 -1
  22. package/dist/index.html +1 -1
  23. package/dist/sw.js +1 -1
  24. package/package.json +20 -20
  25. /package/dist/{1459.bundle.ed7323f44e4ff4ecd69a.js → 1459.bundle.4ad39e2c21e35cb2be1c.js} +0 -0
  26. /package/dist/{2018.bundle.ab8f9ceeae0e18eb303b.js → 2018.bundle.6f06faf8d0a5c91f5e7c.js} +0 -0
  27. /package/dist/{213.bundle.18a8b5a1e2f00de7feaf.js → 213.bundle.d8a8ffeec432cd8363c0.js} +0 -0
  28. /package/dist/{2424.bundle.5e858661a06aa36dd859.js → 2424.bundle.c602ad458e7902f7f555.js} +0 -0
  29. /package/dist/{147.css → 3754.css} +0 -0
  30. /package/dist/{4507.bundle.18379f328211aee3aba5.js → 4507.bundle.75bf28fe32a927130dec.js} +0 -0
  31. /package/dist/{5457.bundle.328f29b05df8d287491b.js → 5457.bundle.d1e9be8eab20c1620624.js} +0 -0
  32. /package/dist/{5485.bundle.53614f38e6ee0e052bdc.js → 5485.bundle.7de6ed76c9bf762fd395.js} +0 -0
  33. /package/dist/{6027.bundle.1bfe806a0cb494dfc265.js → 6027.bundle.11c8ba4581dca8a82b91.js} +0 -0
  34. /package/dist/{7639.bundle.2ec2272d8eb08df56b66.js → 7639.bundle.d7571b9b1bdd3c712fa7.js} +0 -0
  35. /package/dist/{85.bundle.e426258a9ad5bcf9bb3e.js → 85.bundle.203f56fd4f235891345a.js} +0 -0
  36. /package/dist/{9927.bundle.3bdd61e78a710e09cc0b.js → 9927.bundle.ceb2c44737524314f168.js} +0 -0
@@ -80772,7 +80772,7 @@ const detectionOptions = {
80772
80772
  }
80773
80773
  });
80774
80774
  ;// ../../i18n/package.json
80775
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.59"}');
80775
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.60"}');
80776
80776
  ;// ../../i18n/src/utils.js
80777
80777
  const languagesMap = {
80778
80778
  ar: 'Arabic',
@@ -82141,7 +82141,7 @@ i18next/* default */.A.currentLanguage = () => ({
82141
82141
 
82142
82142
  /***/ },
82143
82143
 
82144
- /***/ 15953
82144
+ /***/ 564
82145
82145
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
82146
82146
 
82147
82147
  "use strict";
@@ -82219,6 +82219,11 @@ __webpack_require__.d(__webpack_exports__, {
82219
82219
  wvv: () => (/* reexport */ Separator_Separator),
82220
82220
  wv: () => (/* reexport */ SidePanel),
82221
82221
  Apm: () => (/* reexport */ Slider_Slider),
82222
+ IN7: () => (/* reexport */ SmartScrollbar),
82223
+ ult: () => (/* reexport */ SmartScrollbarEndpoints),
82224
+ pSN: () => (/* reexport */ SmartScrollbarFill),
82225
+ RY_: () => (/* reexport */ SmartScrollbarIndicator),
82226
+ dLR: () => (/* reexport */ SmartScrollbarTrack),
82222
82227
  M4o: () => (/* reexport */ StudyBrowser),
82223
82228
  u3f: () => (/* reexport */ StudySummary),
82224
82229
  dOG: () => (/* reexport */ Switch_Switch),
@@ -82255,6 +82260,7 @@ __webpack_require__.d(__webpack_exports__, {
82255
82260
  cn: () => (/* reexport */ cn),
82256
82261
  yFj: () => (/* reexport */ formatDICOMDate),
82257
82262
  oRP: () => (/* reexport */ dist_ue),
82263
+ Pcq: () => (/* reexport */ useByteArray),
82258
82264
  tqw: () => (/* reexport */ useCine),
82259
82265
  n1D: () => (/* reexport */ useIconPresentation),
82260
82266
  Bzx: () => (/* reexport */ useImageViewer),
@@ -82268,7 +82274,7 @@ __webpack_require__.d(__webpack_exports__, {
82268
82274
  WpD: () => (/* reexport */ src_utils_namespaceObject)
82269
82275
  });
82270
82276
 
82271
- // UNUSED EXPORTS: BackItem, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisplaySetMessageListTooltip, DividerItem, DoubleSlider, DropdownMenuCheckboxItem, DropdownMenuGroup, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuShortcut, HeaderItem, HorizontalDirection, IconMenu, ImageViewerContext, InputNumber, Item, ItemPanel, Menu, PanelSelector, PatientInfo, ScrollBar, SmartScrollbar, SmartScrollbarEndpoints, SmartScrollbarFill, SmartScrollbarIndicator, SmartScrollbarTrack, StudyBrowserSort, StudyBrowserViewOptions, StudyItem, SubMenu, Thumbnail, ThumbnailList, Toaster, Toggle, ToolboxUI, Types, VerticalDirection, ViewportActionBar, ViewportActionCornersLocations, ViewportGridContext, WindowLevelHistogram, buttonVariants, toggleVariants, useByteArray, useDialog, useDynamicMaxHeight, useNotification, useSegmentStatistics, useSmartScrollbarLayoutContext, useSmartScrollbarScrollContext
82277
+ // UNUSED EXPORTS: BackItem, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisplaySetMessageListTooltip, DividerItem, DoubleSlider, DropdownMenuCheckboxItem, DropdownMenuGroup, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuShortcut, HeaderItem, HorizontalDirection, IconMenu, ImageViewerContext, InputNumber, Item, ItemPanel, Menu, PanelSelector, PatientInfo, ScrollBar, StudyBrowserSort, StudyBrowserViewOptions, StudyItem, SubMenu, Thumbnail, ThumbnailList, Toaster, Toggle, ToolboxUI, Types, VerticalDirection, ViewportActionBar, ViewportActionCornersLocations, ViewportGridContext, WindowLevelHistogram, buttonVariants, toggleVariants, useDialog, useDynamicMaxHeight, useNotification, useSegmentStatistics, useSmartScrollbarLayoutContext, useSmartScrollbarScrollContext
82272
82278
 
82273
82279
  // NAMESPACE OBJECT: ../../ui-next/src/utils/index.ts
82274
82280
  var src_utils_namespaceObject = {};
@@ -85206,6 +85212,46 @@ function computeContiguousRuns(bytes) {
85206
85212
  return runs;
85207
85213
  }
85208
85214
 
85215
+ /**
85216
+ * When `total >= pixelRowCount`: half-open item index range `[itemStart, itemEnd)`
85217
+ * covered by fill pixel row `pixelIndex`. `pixelRowCount` is `floor(pixelCount)` from callers.
85218
+ * Shared by `computePixelFilledFromMarked` and `computeIndicatorTopOffsetInFill` — keep in sync.
85219
+ */
85220
+ function itemRangeForPixelRow(pixelIndex, total, pixelRowCount) {
85221
+ const itemStart = Math.floor(pixelIndex * total / pixelRowCount);
85222
+ const itemEnd = Math.floor((pixelIndex + 1) * total / pixelRowCount);
85223
+ return {
85224
+ itemStart,
85225
+ itemEnd
85226
+ };
85227
+ }
85228
+
85229
+ /**
85230
+ * When `total >= pixelRowCount`: which fill pixel row owns `itemIndex` for the same
85231
+ * partition as `itemRangeForPixelRow` (inverse of scanning rows until
85232
+ * `itemIndex ∈ [itemStart, itemEnd)`).
85233
+ *
85234
+ * Readable form: `ceil((itemIndex + 1) * pixelRowCount / total) - 1`, clamped to `[0, pixelRowCount - 1]`.
85235
+ */
85236
+ function pixelRowIndexForItemDownsample(itemIndex, total, pixelRowCount) {
85237
+ const rowIndex = Math.ceil((itemIndex + 1) * pixelRowCount / total) - 1;
85238
+ return Math.max(0, Math.min(pixelRowCount - 1, rowIndex));
85239
+ }
85240
+
85241
+ /**
85242
+ * When `pixelRowCount > total`: half-open pixel row range `[pixelStart, pixelEnd)`
85243
+ * covered by `itemIndex`. `pixelRowCount` is `floor(pixelCount)` from callers.
85244
+ * Shared by `computePixelFilledFromMarked` and `computeIndicatorTopOffsetInFill` — keep in sync.
85245
+ */
85246
+ function pixelSpanForItem(itemIndex, total, pixelRowCount) {
85247
+ const pixelStart = Math.floor(itemIndex * pixelRowCount / total);
85248
+ const pixelEnd = Math.floor((itemIndex + 1) * pixelRowCount / total);
85249
+ return {
85250
+ pixelStart,
85251
+ pixelEnd
85252
+ };
85253
+ }
85254
+
85209
85255
  /**
85210
85256
  * Convert marked items (0/1 bytes) into a per-pixel fill mask (0/1 bytes).
85211
85257
  * The result is conservative in the sense that a pixel row is filled only when
@@ -85218,17 +85264,19 @@ function computeContiguousRuns(bytes) {
85218
85264
  */
85219
85265
  function computePixelFilledFromMarked(marked, pixelCount) {
85220
85266
  const total = marked.length;
85221
- const count = Math.max(0, Math.floor(pixelCount));
85222
- if (count === 0 || total <= 0) return new Uint8Array(0);
85223
- const pixelFilled = new Uint8Array(count);
85224
- if (total >= count) {
85225
- for (let pixelIndex = 0; pixelIndex < count; pixelIndex++) {
85226
- const start = Math.floor(pixelIndex * total / count);
85227
- const end = Math.floor((pixelIndex + 1) * total / count);
85228
- if (end <= start) continue;
85267
+ const pixelRowCount = Math.max(0, Math.floor(pixelCount));
85268
+ if (pixelRowCount === 0 || total <= 0) return new Uint8Array(0);
85269
+ const pixelFilled = new Uint8Array(pixelRowCount);
85270
+ if (total >= pixelRowCount) {
85271
+ for (let pixelIndex = 0; pixelIndex < pixelRowCount; pixelIndex++) {
85272
+ const {
85273
+ itemStart,
85274
+ itemEnd
85275
+ } = itemRangeForPixelRow(pixelIndex, total, pixelRowCount);
85276
+ if (itemEnd <= itemStart) continue;
85229
85277
  let filled = 1;
85230
- for (let itemIndex = start; itemIndex < end; itemIndex++) {
85231
- if (marked[itemIndex] === 0) {
85278
+ for (let i = itemStart; i < itemEnd; i++) {
85279
+ if (marked[i] === 0) {
85232
85280
  filled = 0;
85233
85281
  break;
85234
85282
  }
@@ -85238,9 +85286,11 @@ function computePixelFilledFromMarked(marked, pixelCount) {
85238
85286
  } else {
85239
85287
  for (let itemIndex = 0; itemIndex < total; itemIndex++) {
85240
85288
  if (marked[itemIndex] === 0) continue;
85241
- const topPx = Math.floor(itemIndex * count / total);
85242
- const bottomPx = Math.floor((itemIndex + 1) * count / total);
85243
- for (let pixel = topPx; pixel < bottomPx; pixel++) {
85289
+ const {
85290
+ pixelStart,
85291
+ pixelEnd
85292
+ } = pixelSpanForItem(itemIndex, total, pixelRowCount);
85293
+ for (let pixel = pixelStart; pixel < pixelEnd; pixel++) {
85244
85294
  pixelFilled[pixel] = 1;
85245
85295
  }
85246
85296
  }
@@ -85249,39 +85299,50 @@ function computePixelFilledFromMarked(marked, pixelCount) {
85249
85299
  }
85250
85300
 
85251
85301
  /**
85252
- * Compute the indicator's total visual dimensions and horizontal position.
85253
- * Design 27: pill shape, center position, 1px border.
85302
+ * Vertical offset (px) of the indicator within the fill strip `[0, pixelCount)`,
85303
+ * clamped so the indicator stays inside the track.
85304
+ *
85305
+ * - When `total >= pixelCount` (many slices, few pixel rows): same partition as
85306
+ * `computePixelFilledFromMarked` (per-pixel item buckets); **top-align** the
85307
+ * indicator to that row (then clamp so the thumb does not overflow the strip).
85308
+ * - When `pixelCount > total`: same per-item pixel spans as the fill’s upsample
85309
+ * branch; first item top-aligned, last bottom-aligned, middle centered in bucket.
85310
+ * - Zero-height bucket (upsample only): top-aligned `pixelStart` from `pixelSpanForItem`.
85254
85311
  */
85255
- function getIndicatorLayout(trackWidth, indicatorSize, borderWidth) {
85256
- const visualSize = indicatorSize * 1.25;
85257
- const fillWidth = visualSize;
85258
- const fillHeight = Math.round(visualSize / 2); // pill = half height
85259
- const totalWidth = fillWidth + borderWidth * 2;
85260
- const totalHeight = fillHeight + borderWidth * 2;
85261
- const centerX = trackWidth / 2;
85262
- const leftPos = centerX - totalWidth / 2;
85263
- return {
85264
- totalWidth,
85265
- totalHeight,
85266
- fillWidth,
85267
- fillHeight,
85268
- leftPos
85269
- };
85312
+ function computeIndicatorTopOffsetInFill(itemIndex, total, pixelCount, indicatorHeight) {
85313
+ const pixelRowCount = Math.max(0, Math.floor(pixelCount));
85314
+ const indicatorHeightPx = Math.max(0, Math.floor(indicatorHeight));
85315
+ const maxTopInFill = Math.max(0, pixelRowCount - indicatorHeightPx);
85316
+ if (pixelRowCount === 0 || total <= 0) {
85317
+ return 0;
85318
+ }
85319
+ const clamp = x => Math.max(0, Math.min(maxTopInFill, x));
85320
+ if (total >= pixelRowCount) {
85321
+ const pixelRowIndex = pixelRowIndexForItemDownsample(itemIndex, total, pixelRowCount);
85322
+ return clamp(pixelRowIndex);
85323
+ } else {
85324
+ const {
85325
+ pixelStart,
85326
+ pixelEnd
85327
+ } = pixelSpanForItem(itemIndex, total, pixelRowCount);
85328
+ const bucketHeight = pixelEnd - pixelStart;
85329
+ let topOffset;
85330
+ if (bucketHeight <= 0) {
85331
+ topOffset = pixelStart;
85332
+ } else if (itemIndex === 0) {
85333
+ topOffset = pixelStart;
85334
+ } else if (itemIndex === total - 1) {
85335
+ topOffset = pixelEnd - indicatorHeightPx;
85336
+ } else {
85337
+ topOffset = pixelStart + Math.floor((bucketHeight - indicatorHeightPx) / 2);
85338
+ }
85339
+ return clamp(topOffset);
85340
+ }
85270
85341
  }
85271
85342
  ;// ../../ui-next/src/components/SmartScrollbar/SmartScrollbarIndicator.tsx
85272
- /* unused harmony import specifier */ var React;
85273
- /* unused harmony import specifier */ var useSmartScrollbarLayoutContext;
85274
- /* unused harmony import specifier */ var useSmartScrollbarScrollContext;
85275
- /* unused harmony import specifier */ var SmartScrollbarIndicator_getIndicatorLayout;
85276
85343
 
85277
85344
 
85278
85345
 
85279
-
85280
- // ── Indicator dimensions and colors ─────────────────────────────
85281
- const INDICATOR_SIZE = 8;
85282
- const BORDER_WIDTH = 1;
85283
- const INDICATOR_COLOR = 'hsl(var(--foreground) / 0.9)';
85284
- const BORDER_COLOR = 'hsl(var(--neutral) / 0.9)';
85285
85346
  function SmartScrollbarIndicator({
85286
85347
  className
85287
85348
  }) {
@@ -85289,73 +85350,78 @@ function SmartScrollbarIndicator({
85289
85350
  total,
85290
85351
  trackHeight,
85291
85352
  effectiveWidth,
85292
- fillPadding
85353
+ fillPadding,
85354
+ indicatorTotalWidth,
85355
+ indicatorTotalHeight,
85356
+ renderIndicator
85293
85357
  } = useSmartScrollbarLayoutContext();
85294
85358
  const value = useSmartScrollbarScrollContext();
85295
- if (trackHeight === 0 || total <= 1) return null;
85296
- const {
85297
- totalWidth,
85298
- totalHeight,
85299
- fillWidth,
85300
- fillHeight,
85301
- leftPos
85302
- } = SmartScrollbarIndicator_getIndicatorLayout(effectiveWidth, INDICATOR_SIZE, BORDER_WIDTH);
85303
- const offsetY = (totalHeight - INDICATOR_SIZE) / 2;
85359
+ if (trackHeight === 0 || total <= 1) {
85360
+ return null;
85361
+ }
85362
+
85363
+ // Horizontal: center on the contracting inner width (not the full physical track).
85364
+ const leftPos = effectiveWidth / 2 - indicatorTotalWidth / 2;
85304
85365
  const fillAreaTop = fillPadding;
85366
+ // Vertical: same fill strip as SmartScrollbarFill — full track height minus padding.
85305
85367
  const pixelCount = Math.max(0, Math.floor(trackHeight - fillPadding * 2));
85306
- if (pixelCount === 0) return null;
85307
-
85308
- // Align the indicator with the item’s pixel bucket(s) so it sits “over” the
85309
- // same pixel-space mapping used by fill/endpoints.
85368
+ if (pixelCount === 0) {
85369
+ return null;
85370
+ }
85310
85371
  const clampedValue = Math.max(0, Math.min(total - 1, value));
85311
- const itemStartPx = Math.floor(clampedValue * pixelCount / total);
85312
- const maxTopInFill = Math.max(0, pixelCount - INDICATOR_SIZE);
85313
- const topInFill = Math.max(0, Math.min(maxTopInFill, itemStartPx));
85314
- const y = fillAreaTop + topInFill;
85315
- return /*#__PURE__*/React.createElement("div", {
85372
+ const topOffsetInFill = computeIndicatorTopOffsetInFill(clampedValue, total, pixelCount, indicatorTotalHeight);
85373
+ const topPos = fillAreaTop + topOffsetInFill;
85374
+ return /*#__PURE__*/react.createElement("div", {
85316
85375
  className: `pointer-events-none absolute ${className ?? ''}`,
85317
85376
  style: {
85318
85377
  left: leftPos,
85319
- top: y - offsetY,
85320
- width: totalWidth,
85321
- height: totalHeight,
85378
+ top: topPos,
85379
+ width: indicatorTotalWidth,
85380
+ height: indicatorTotalHeight,
85322
85381
  transition: 'left 300ms ease, opacity 300ms ease'
85323
85382
  }
85324
- }, /*#__PURE__*/React.createElement("svg", {
85325
- width: totalWidth,
85326
- height: totalHeight,
85327
- viewBox: `0 0 ${totalWidth} ${totalHeight}`
85328
- }, /*#__PURE__*/React.createElement("rect", {
85383
+ }, renderIndicator(react));
85384
+ }
85385
+ ;// ../../ui-next/src/components/SmartScrollbar/defaultSmartScrollbarIndicatorConfig.tsx
85386
+
85387
+ /** Ring inset for the default pill SVG (outer size is indicator total width × height). */
85388
+ const BORDER_WIDTH = 1;
85389
+ const INDICATOR_COLOR = 'hsl(var(--foreground) / 0.9)';
85390
+ const BORDER_COLOR = 'hsl(var(--neutral) / 0.9)';
85391
+ const TOTAL_WIDTH = 12;
85392
+ const TOTAL_HEIGHT = 7;
85393
+ function DefaultIndicator() {
85394
+ const borderWidth = BORDER_WIDTH;
85395
+ const fillWidth = Math.max(0, TOTAL_WIDTH - borderWidth * 2);
85396
+ const fillHeight = Math.max(0, TOTAL_HEIGHT - borderWidth * 2);
85397
+ return /*#__PURE__*/react.createElement("svg", {
85398
+ width: TOTAL_WIDTH,
85399
+ height: TOTAL_HEIGHT,
85400
+ viewBox: `0 0 ${TOTAL_WIDTH} ${TOTAL_HEIGHT}`
85401
+ }, /*#__PURE__*/react.createElement("rect", {
85329
85402
  x: 0,
85330
85403
  y: 0,
85331
- width: totalWidth,
85332
- height: totalHeight,
85333
- rx: totalHeight / 2,
85334
- ry: totalHeight / 2,
85404
+ width: TOTAL_WIDTH,
85405
+ height: TOTAL_HEIGHT,
85406
+ rx: TOTAL_HEIGHT / 2,
85407
+ ry: TOTAL_HEIGHT / 2,
85335
85408
  fill: BORDER_COLOR
85336
- }), /*#__PURE__*/React.createElement("rect", {
85337
- x: BORDER_WIDTH,
85338
- y: BORDER_WIDTH,
85409
+ }), /*#__PURE__*/react.createElement("rect", {
85410
+ x: borderWidth,
85411
+ y: borderWidth,
85339
85412
  width: fillWidth,
85340
85413
  height: fillHeight,
85341
85414
  rx: fillHeight / 2,
85342
85415
  ry: fillHeight / 2,
85343
85416
  fill: INDICATOR_COLOR
85344
- })));
85417
+ }));
85345
85418
  }
85419
+ const DEFAULT_INDICATOR_CONFIG = {
85420
+ totalWidth: TOTAL_WIDTH,
85421
+ totalHeight: TOTAL_HEIGHT,
85422
+ renderIndicator: _react => /*#__PURE__*/react.createElement(DefaultIndicator, null)
85423
+ };
85346
85424
  ;// ../../ui-next/src/components/SmartScrollbar/SmartScrollbar.tsx
85347
- /* unused harmony import specifier */ var Children;
85348
- /* unused harmony import specifier */ var isValidElement;
85349
- /* unused harmony import specifier */ var createContext;
85350
- /* unused harmony import specifier */ var useContext;
85351
- /* unused harmony import specifier */ var useRef;
85352
- /* unused harmony import specifier */ var useState;
85353
- /* unused harmony import specifier */ var useEffect;
85354
- /* unused harmony import specifier */ var useCallback;
85355
- /* unused harmony import specifier */ var useMemo;
85356
- /* unused harmony import specifier */ var SmartScrollbar_React;
85357
- /* unused harmony import specifier */ var SmartScrollbar_getIndicatorLayout;
85358
- /* unused harmony import specifier */ var SmartScrollbar_SmartScrollbarIndicator;
85359
85425
 
85360
85426
 
85361
85427
 
@@ -85363,9 +85429,9 @@ function SmartScrollbarIndicator({
85363
85429
  // ── Child validation ────────────────────────────────────────────
85364
85430
  function validateChildren(children) {
85365
85431
  let hasIndicator = false;
85366
- Children.forEach(children, child => {
85367
- if (! /*#__PURE__*/isValidElement(child)) return;
85368
- if (child.type === SmartScrollbar_SmartScrollbarIndicator) hasIndicator = true;
85432
+ react.Children.forEach(children, child => {
85433
+ if (! /*#__PURE__*/(0,react.isValidElement)(child)) return;
85434
+ if (child.type === SmartScrollbarIndicator) hasIndicator = true;
85369
85435
  });
85370
85436
  if (!hasIndicator) {
85371
85437
  throw new Error('SmartScrollbar: <SmartScrollbarIndicator> is a required child. ' + 'Users will not see their current scroll position without it.');
@@ -85376,21 +85442,45 @@ function validateChildren(children) {
85376
85442
  const TRACK_WIDTH = 8;
85377
85443
  const RESTING_WIDTH = 4;
85378
85444
  const FILL_PADDING = 3;
85379
- const SmartScrollbar_INDICATOR_SIZE = 8;
85380
- const INDICATOR_BORDER_WIDTH = 1;
85381
85445
  const SETTLE_DELAY = 600;
85382
85446
 
85447
+ /** Package-internal type; not re-exported from `@ohif/ui-next` barrels. */
85448
+
85449
+ /**
85450
+ * Maps a raw record payload into partial `SmartScrollbarIndicatorConfig`.
85451
+ *
85452
+ * Supported keys on `raw`:
85453
+ * - `totalWidth`, `totalHeight` — positive numbers
85454
+ * - `renderIndicator` — `(React) => ReactNode`
85455
+ */
85456
+ function normalizeIndicatorRecord(raw) {
85457
+ if (raw == null) {
85458
+ return {};
85459
+ }
85460
+ const config = {};
85461
+ if (typeof raw.totalWidth === 'number' && raw.totalWidth > 0) {
85462
+ config.totalWidth = raw.totalWidth;
85463
+ }
85464
+ if (typeof raw.totalHeight === 'number' && raw.totalHeight > 0) {
85465
+ config.totalHeight = raw.totalHeight;
85466
+ }
85467
+ if (typeof raw.renderIndicator === 'function') {
85468
+ config.renderIndicator = raw.renderIndicator;
85469
+ }
85470
+ return config;
85471
+ }
85472
+
85383
85473
  // ── Contexts ───────────────────────────────────────────────────
85384
85474
 
85385
- const SmartScrollbarLayoutContext = /*#__PURE__*/(/* unused pure expression or super */ null && (createContext(null)));
85386
- const SmartScrollbarScrollContext = /*#__PURE__*/(/* unused pure expression or super */ null && (createContext(null)));
85387
- function SmartScrollbar_useSmartScrollbarLayoutContext() {
85388
- const ctx = useContext(SmartScrollbarLayoutContext);
85475
+ const SmartScrollbarLayoutContext = /*#__PURE__*/(0,react.createContext)(null);
85476
+ const SmartScrollbarScrollContext = /*#__PURE__*/(0,react.createContext)(null);
85477
+ function useSmartScrollbarLayoutContext() {
85478
+ const ctx = (0,react.useContext)(SmartScrollbarLayoutContext);
85389
85479
  if (!ctx) throw new Error('SmartScrollbar compound components must be used inside <SmartScrollbar>');
85390
85480
  return ctx;
85391
85481
  }
85392
- function SmartScrollbar_useSmartScrollbarScrollContext() {
85393
- const value = useContext(SmartScrollbarScrollContext);
85482
+ function useSmartScrollbarScrollContext() {
85483
+ const value = (0,react.useContext)(SmartScrollbarScrollContext);
85394
85484
  if (value === null) throw new Error('SmartScrollbar compound components must be used inside <SmartScrollbar>');
85395
85485
  return value;
85396
85486
  }
@@ -85406,16 +85496,35 @@ function SmartScrollbar({
85406
85496
  enableKeyboardNavigation = false,
85407
85497
  'aria-label': ariaLabel = 'Scroll position',
85408
85498
  className,
85499
+ indicator,
85409
85500
  children
85410
85501
  }) {
85411
85502
  validateChildren(children);
85503
+ const resolvedIndicator = (0,react.useMemo)(() => {
85504
+ const defaultIndicatorConfig = DEFAULT_INDICATOR_CONFIG;
85505
+ const parsed = normalizeIndicatorRecord(indicator);
85506
+ if (parsed.totalWidth && parsed.totalHeight && parsed.renderIndicator) {
85507
+ return {
85508
+ totalWidth: parsed.totalWidth,
85509
+ totalHeight: parsed.totalHeight,
85510
+ renderIndicator: parsed.renderIndicator
85511
+ };
85512
+ }
85513
+ return defaultIndicatorConfig;
85514
+ }, [indicator]);
85412
85515
 
85413
85516
  // ── ResizeObserver for trackHeight ───────────────────────────
85414
- const containerRef = useRef(null);
85415
- const [trackHeight, setTrackHeight] = useState(0);
85416
- useEffect(() => {
85517
+ const containerRef = (0,react.useRef)(null);
85518
+ const [trackHeight, setTrackHeight] = (0,react.useState)(0);
85519
+ (0,react.useEffect)(() => {
85417
85520
  const el = containerRef.current;
85418
85521
  if (!el) return;
85522
+ const syncTrackHeight = () => {
85523
+ const measuredHeight = el.getBoundingClientRect().height;
85524
+ setTrackHeight(prev => prev === measuredHeight ? prev : measuredHeight);
85525
+ };
85526
+ // Capture an immediate measurement so we don't rely solely on async ResizeObserver delivery.
85527
+ syncTrackHeight();
85419
85528
  const ro = new ResizeObserver(([entry]) => {
85420
85529
  setTrackHeight(entry.contentRect.height);
85421
85530
  });
@@ -85424,15 +85533,15 @@ function SmartScrollbar({
85424
85533
  }, []);
85425
85534
 
85426
85535
  // ── Contraction state ────────────────────────────────────────
85427
- const [isHovered, setIsHovered] = useState(false);
85428
- const [isDragging, setIsDragging] = useState(false);
85429
- const isDraggingRef = useRef(false);
85430
- const trackTopRef = useRef(0);
85536
+ const [isHovered, setIsHovered] = (0,react.useState)(false);
85537
+ const [isDragging, setIsDragging] = (0,react.useState)(false);
85538
+ const isDraggingRef = (0,react.useRef)(false);
85539
+ const trackTopRef = (0,react.useRef)(0);
85431
85540
 
85432
85541
  // Settle delay — only contract after a real loading→done transition
85433
- const [hasSettled, setHasSettled] = useState(false);
85434
- const wasEverLoading = useRef(false);
85435
- useEffect(() => {
85542
+ const [hasSettled, setHasSettled] = (0,react.useState)(false);
85543
+ const wasEverLoading = (0,react.useRef)(false);
85544
+ (0,react.useEffect)(() => {
85436
85545
  if (isLoading) {
85437
85546
  wasEverLoading.current = true;
85438
85547
  setHasSettled(false);
@@ -85444,35 +85553,45 @@ function SmartScrollbar({
85444
85553
  const isExpanded = !hasSettled || isHovered || isDragging;
85445
85554
  const effectiveWidth = isExpanded ? TRACK_WIDTH : RESTING_WIDTH;
85446
85555
 
85447
- // ── Hit zone extension ───────────────────────────────────────
85448
- const {
85449
- leftPos
85450
- } = SmartScrollbar_getIndicatorLayout(TRACK_WIDTH, SmartScrollbar_INDICATOR_SIZE, INDICATOR_BORDER_WIDTH);
85451
- const hitZoneLeftExtension = Math.max(0, -leftPos);
85556
+ // ── Hit zone: extend past `TRACK_WIDTH` on both sides when the pill is wider than the track ──
85557
+ const hitZoneSideExtension = Math.max(0, resolvedIndicator.totalWidth / 2 - TRACK_WIDTH / 2);
85452
85558
 
85453
85559
  // ── Stable layer (for elements that shouldn't move during contraction) ──
85454
85560
  // Uses useState + callback ref so React triggers a re-render when the
85455
85561
  // DOM node mounts — ensuring endpoints render on the first valid pass.
85456
- const [stableLayerEl, setStableLayerEl] = useState(null);
85562
+ const [stableLayerEl, setStableLayerEl] = (0,react.useState)(null);
85457
85563
 
85458
85564
  // ── Pointer helpers ──────────────────────────────────────────
85459
- const clamp = useCallback(val => Math.max(0, Math.min(total - 1, val)), [total]);
85460
- const indexFromPointerY = useCallback(clientY => {
85461
- const ratio = Math.max(0, Math.min(1, (clientY - trackTopRef.current) / trackHeight));
85565
+ const clamp = (0,react.useCallback)(val => Math.max(0, Math.min(total - 1, val)), [total]);
85566
+ const indexFromPointerY = (0,react.useCallback)(clientY => {
85567
+ if (trackHeight <= 0) {
85568
+ return 0;
85569
+ }
85570
+
85571
+ // Map pointer Y within the same padded fill strip used by fill/indicator.
85572
+ const fillTop = trackTopRef.current + FILL_PADDING;
85573
+ const fillHeight = trackHeight - FILL_PADDING * 2;
85574
+ if (fillHeight <= 0) {
85575
+ return 0;
85576
+ }
85577
+ const ratio = Math.max(0, Math.min(1, (clientY - fillTop) / fillHeight));
85462
85578
  return Math.round(ratio * (total - 1));
85463
85579
  }, [trackHeight, total]);
85464
- const handlePointerDown = useCallback(e => {
85580
+ const handlePointerDown = (0,react.useCallback)(e => {
85465
85581
  trackTopRef.current = e.currentTarget.getBoundingClientRect().top;
85582
+ if (trackHeight <= 0) {
85583
+ return;
85584
+ }
85466
85585
  isDraggingRef.current = true;
85467
85586
  setIsDragging(true);
85468
85587
  e.currentTarget.setPointerCapture(e.pointerId);
85469
85588
  onValueChange(clamp(indexFromPointerY(e.clientY)));
85470
- }, [clamp, indexFromPointerY, onValueChange]);
85471
- const handlePointerMove = useCallback(e => {
85589
+ }, [clamp, indexFromPointerY, onValueChange, trackHeight]);
85590
+ const handlePointerMove = (0,react.useCallback)(e => {
85472
85591
  if (!isDraggingRef.current) return;
85473
85592
  onValueChange(clamp(indexFromPointerY(e.clientY)));
85474
85593
  }, [clamp, indexFromPointerY, onValueChange]);
85475
- const handlePointerUp = useCallback(e => {
85594
+ const handlePointerUp = (0,react.useCallback)(e => {
85476
85595
  isDraggingRef.current = false;
85477
85596
  setIsDragging(false);
85478
85597
  e.currentTarget.releasePointerCapture(e.pointerId);
@@ -85480,7 +85599,7 @@ function SmartScrollbar({
85480
85599
 
85481
85600
  // ── Keyboard interaction (WAI-ARIA slider spec) ────────────
85482
85601
  const PAGE_STEP = 10;
85483
- const handleKeyDown = useCallback(e => {
85602
+ const handleKeyDown = (0,react.useCallback)(e => {
85484
85603
  let next = null;
85485
85604
  switch (e.key) {
85486
85605
  case 'ArrowUp':
@@ -85511,20 +85630,24 @@ function SmartScrollbar({
85511
85630
  }, [value, total, clamp, onValueChange]);
85512
85631
 
85513
85632
  // ── Context values ───────────────────────────────────────────
85514
- const layoutCtx = useMemo(() => ({
85633
+ const layoutCtx = (0,react.useMemo)(() => ({
85515
85634
  total,
85516
85635
  trackHeight,
85517
85636
  isLoading,
85637
+ isDragging,
85518
85638
  effectiveWidth,
85519
85639
  trackWidth: TRACK_WIDTH,
85520
85640
  fillPadding: FILL_PADDING,
85521
- stableLayerEl
85522
- }), [total, trackHeight, isLoading, effectiveWidth, stableLayerEl]);
85523
- return /*#__PURE__*/SmartScrollbar_React.createElement(SmartScrollbarLayoutContext.Provider, {
85641
+ stableLayerEl,
85642
+ indicatorTotalWidth: resolvedIndicator.totalWidth,
85643
+ indicatorTotalHeight: resolvedIndicator.totalHeight,
85644
+ renderIndicator: resolvedIndicator.renderIndicator
85645
+ }), [total, trackHeight, isLoading, isDragging, effectiveWidth, stableLayerEl, resolvedIndicator.totalWidth, resolvedIndicator.totalHeight, resolvedIndicator.renderIndicator]);
85646
+ return /*#__PURE__*/react.createElement(SmartScrollbarLayoutContext.Provider, {
85524
85647
  value: layoutCtx
85525
- }, /*#__PURE__*/SmartScrollbar_React.createElement(SmartScrollbarScrollContext.Provider, {
85648
+ }, /*#__PURE__*/react.createElement(SmartScrollbarScrollContext.Provider, {
85526
85649
  value: value
85527
- }, /*#__PURE__*/SmartScrollbar_React.createElement("div", {
85650
+ }, /*#__PURE__*/react.createElement("div", {
85528
85651
  ref: containerRef,
85529
85652
  role: "slider",
85530
85653
  "aria-valuenow": value,
@@ -85535,10 +85658,10 @@ function SmartScrollbar({
85535
85658
  tabIndex: 0,
85536
85659
  className: className,
85537
85660
  style: {
85538
- width: TRACK_WIDTH + hitZoneLeftExtension,
85661
+ width: TRACK_WIDTH + hitZoneSideExtension * 2,
85539
85662
  height: '100%',
85540
85663
  position: 'relative',
85541
- marginLeft: -hitZoneLeftExtension,
85664
+ marginLeft: -hitZoneSideExtension,
85542
85665
  cursor: isDragging ? 'grabbing' : 'grab',
85543
85666
  touchAction: 'none'
85544
85667
  },
@@ -85549,24 +85672,24 @@ function SmartScrollbar({
85549
85672
  onPointerUp: handlePointerUp,
85550
85673
  onPointerCancel: handlePointerUp,
85551
85674
  onKeyDown: enableKeyboardNavigation ? handleKeyDown : undefined
85552
- }, trackHeight > 0 && /*#__PURE__*/SmartScrollbar_React.createElement("div", {
85675
+ }, trackHeight > 0 && /*#__PURE__*/react.createElement("div", {
85553
85676
  style: {
85554
85677
  position: 'absolute',
85555
- right: 0,
85678
+ right: hitZoneSideExtension,
85556
85679
  top: 0,
85557
85680
  width: TRACK_WIDTH,
85558
85681
  height: trackHeight,
85559
85682
  display: 'flex',
85560
85683
  justifyContent: 'center'
85561
85684
  }
85562
- }, /*#__PURE__*/SmartScrollbar_React.createElement("div", {
85685
+ }, /*#__PURE__*/react.createElement("div", {
85563
85686
  className: "relative",
85564
85687
  style: {
85565
85688
  width: effectiveWidth,
85566
85689
  height: trackHeight,
85567
85690
  transition: 'width 300ms ease'
85568
85691
  }
85569
- }, children), /*#__PURE__*/SmartScrollbar_React.createElement("div", {
85692
+ }, children), /*#__PURE__*/react.createElement("div", {
85570
85693
  ref: setStableLayerEl,
85571
85694
  style: {
85572
85695
  position: 'absolute',
@@ -85576,11 +85699,6 @@ function SmartScrollbar({
85576
85699
  })))));
85577
85700
  }
85578
85701
  ;// ../../ui-next/src/components/SmartScrollbar/SmartScrollbarTrack.tsx
85579
- /* unused harmony import specifier */ var SmartScrollbarTrack_React;
85580
- /* unused harmony import specifier */ var useId;
85581
- /* unused harmony import specifier */ var SmartScrollbarTrack_useState;
85582
- /* unused harmony import specifier */ var SmartScrollbarTrack_useEffect;
85583
- /* unused harmony import specifier */ var SmartScrollbarTrack_useSmartScrollbarLayoutContext;
85584
85702
 
85585
85703
 
85586
85704
 
@@ -85596,28 +85714,28 @@ function DotGrid({
85596
85714
  patternId
85597
85715
  }) {
85598
85716
  const dotColor = `hsl(var(--neutral) / 0.5)`;
85599
- return /*#__PURE__*/SmartScrollbarTrack_React.createElement("svg", {
85717
+ return /*#__PURE__*/react.createElement("svg", {
85600
85718
  width: w,
85601
85719
  height: h,
85602
85720
  className: "absolute inset-0"
85603
- }, /*#__PURE__*/SmartScrollbarTrack_React.createElement("defs", null, /*#__PURE__*/SmartScrollbarTrack_React.createElement("pattern", {
85721
+ }, /*#__PURE__*/react.createElement("defs", null, /*#__PURE__*/react.createElement("pattern", {
85604
85722
  id: patternId,
85605
85723
  width: DOT_STEP,
85606
85724
  height: DOT_STEP,
85607
85725
  patternUnits: "userSpaceOnUse"
85608
- }, /*#__PURE__*/SmartScrollbarTrack_React.createElement("circle", {
85726
+ }, /*#__PURE__*/react.createElement("circle", {
85609
85727
  cx: DOT_RADIUS,
85610
85728
  cy: DOT_RADIUS,
85611
85729
  r: DOT_RADIUS,
85612
85730
  fill: dotColor
85613
- })), /*#__PURE__*/SmartScrollbarTrack_React.createElement("clipPath", {
85731
+ })), /*#__PURE__*/react.createElement("clipPath", {
85614
85732
  id: `${patternId}-clip`
85615
- }, /*#__PURE__*/SmartScrollbarTrack_React.createElement("rect", {
85733
+ }, /*#__PURE__*/react.createElement("rect", {
85616
85734
  x: 0,
85617
85735
  y: 0,
85618
85736
  width: w,
85619
85737
  height: h
85620
- }))), /*#__PURE__*/SmartScrollbarTrack_React.createElement("rect", {
85738
+ }))), /*#__PURE__*/react.createElement("rect", {
85621
85739
  x: 0,
85622
85740
  y: 0,
85623
85741
  width: w,
@@ -85626,7 +85744,7 @@ function DotGrid({
85626
85744
  clipPath: `url(#${patternId}-clip)`
85627
85745
  }));
85628
85746
  }
85629
- const SmartScrollbarTrack = /*#__PURE__*/(/* unused pure expression or super */ null && (SmartScrollbarTrack_React.memo(function SmartScrollbarTrack({
85747
+ const SmartScrollbarTrack = /*#__PURE__*/react.memo(function SmartScrollbarTrack({
85630
85748
  className,
85631
85749
  children
85632
85750
  }) {
@@ -85634,12 +85752,12 @@ const SmartScrollbarTrack = /*#__PURE__*/(/* unused pure expression or super */
85634
85752
  trackHeight,
85635
85753
  effectiveWidth,
85636
85754
  isLoading
85637
- } = SmartScrollbarTrack_useSmartScrollbarLayoutContext();
85638
- const patternId = useId();
85755
+ } = useSmartScrollbarLayoutContext();
85756
+ const patternId = (0,react.useId)();
85639
85757
 
85640
85758
  // Keep the dot grid mounted long enough to fade out, then unmount entirely.
85641
- const [dotGridMounted, setDotGridMounted] = SmartScrollbarTrack_useState(isLoading);
85642
- SmartScrollbarTrack_useEffect(() => {
85759
+ const [dotGridMounted, setDotGridMounted] = (0,react.useState)(isLoading);
85760
+ (0,react.useEffect)(() => {
85643
85761
  if (isLoading) {
85644
85762
  setDotGridMounted(true);
85645
85763
  return;
@@ -85650,9 +85768,9 @@ const SmartScrollbarTrack = /*#__PURE__*/(/* unused pure expression or super */
85650
85768
  if (trackHeight === 0) return null;
85651
85769
  const w = effectiveWidth;
85652
85770
  const h = trackHeight;
85653
- return /*#__PURE__*/SmartScrollbarTrack_React.createElement("div", {
85771
+ return /*#__PURE__*/react.createElement("div", {
85654
85772
  className: `absolute inset-0 ${className ?? ''}`
85655
- }, dotGridMounted && /*#__PURE__*/SmartScrollbarTrack_React.createElement("div", {
85773
+ }, dotGridMounted && /*#__PURE__*/react.createElement("div", {
85656
85774
  className: "absolute inset-0",
85657
85775
  style: {
85658
85776
  width: w,
@@ -85660,47 +85778,42 @@ const SmartScrollbarTrack = /*#__PURE__*/(/* unused pure expression or super */
85660
85778
  opacity: isLoading ? 1 : 0,
85661
85779
  transition: `opacity ${FADE_DURATION_MS}ms ease`
85662
85780
  }
85663
- }, /*#__PURE__*/SmartScrollbarTrack_React.createElement(DotGrid, {
85781
+ }, /*#__PURE__*/react.createElement(DotGrid, {
85664
85782
  w: w,
85665
85783
  h: h,
85666
85784
  patternId: patternId
85667
85785
  })), children);
85668
- })));
85786
+ });
85669
85787
  ;// ../../ui-next/src/components/SmartScrollbar/SmartScrollbarFill.tsx
85670
- /* unused harmony import specifier */ var SmartScrollbarFill_React;
85671
- /* unused harmony import specifier */ var SmartScrollbarFill_useMemo;
85672
- /* unused harmony import specifier */ var SmartScrollbarFill_useSmartScrollbarLayoutContext;
85673
- /* unused harmony import specifier */ var SmartScrollbarFill_computePixelFilledFromMarked;
85674
- /* unused harmony import specifier */ var SmartScrollbarFill_computeContiguousRuns;
85675
85788
 
85676
85789
 
85677
85790
 
85678
- const SmartScrollbarFill = /*#__PURE__*/(/* unused pure expression or super */ null && (SmartScrollbarFill_React.memo(function SmartScrollbarFill({
85791
+ const SmartScrollbarFill = /*#__PURE__*/react.memo(function SmartScrollbarFill({
85679
85792
  marked,
85680
85793
  version,
85681
- className,
85682
- loadingClassName
85794
+ className = 'bg-neutral/25',
85795
+ loadingClassName = 'bg-neutral/50'
85683
85796
  }) {
85684
85797
  const {
85685
85798
  trackHeight,
85686
85799
  effectiveWidth,
85687
85800
  fillPadding,
85688
85801
  isLoading
85689
- } = SmartScrollbarFill_useSmartScrollbarLayoutContext();
85690
- const runs = SmartScrollbarFill_useMemo(() => {
85802
+ } = useSmartScrollbarLayoutContext();
85803
+ const runs = (0,react.useMemo)(() => {
85691
85804
  // Render fill in pixel space so the fill never overstates coverage when
85692
85805
  // many indices map into a single pixel row (subpixel heights).
85693
85806
  const pixelCount = Math.max(0, Math.floor(trackHeight - fillPadding * 2));
85694
- const pixelFilled = SmartScrollbarFill_computePixelFilledFromMarked(marked, pixelCount);
85695
- return SmartScrollbarFill_computeContiguousRuns(pixelFilled);
85807
+ const pixelFilled = computePixelFilledFromMarked(marked, pixelCount);
85808
+ return computeContiguousRuns(pixelFilled);
85696
85809
  }, [marked, version, trackHeight, fillPadding]);
85697
85810
  if (runs.length === 0 || trackHeight === 0) return null;
85698
85811
  const fillAreaTop = fillPadding;
85699
85812
  const activeClass = isLoading && loadingClassName ? loadingClassName : className;
85700
- return /*#__PURE__*/SmartScrollbarFill_React.createElement(SmartScrollbarFill_React.Fragment, null, runs.map((run, index) => {
85813
+ return /*#__PURE__*/react.createElement(react.Fragment, null, runs.map((run, index) => {
85701
85814
  const top = fillAreaTop + run.start;
85702
85815
  const height = run.length;
85703
- return /*#__PURE__*/SmartScrollbarFill_React.createElement("div", {
85816
+ return /*#__PURE__*/react.createElement("div", {
85704
85817
  key: index,
85705
85818
  className: `absolute ${activeClass ?? ''}`,
85706
85819
  style: {
@@ -85712,14 +85825,10 @@ const SmartScrollbarFill = /*#__PURE__*/(/* unused pure expression or super */ n
85712
85825
  }
85713
85826
  });
85714
85827
  }));
85715
- })));
85828
+ });
85716
85829
  // EXTERNAL MODULE: ../../../node_modules/react-dom/index.js
85717
85830
  var react_dom = __webpack_require__(35623);
85718
85831
  ;// ../../ui-next/src/components/SmartScrollbar/SmartScrollbarEndpoints.tsx
85719
- /* unused harmony import specifier */ var SmartScrollbarEndpoints_React;
85720
- /* unused harmony import specifier */ var createPortal;
85721
- /* unused harmony import specifier */ var SmartScrollbarEndpoints_useSmartScrollbarLayoutContext;
85722
- /* unused harmony import specifier */ var SmartScrollbarEndpoints_computePixelFilledFromMarked;
85723
85832
 
85724
85833
 
85725
85834
 
@@ -85729,7 +85838,7 @@ var react_dom = __webpack_require__(35623);
85729
85838
  const CAP_SIZE = 4;
85730
85839
  const CAP_HEIGHT = CAP_SIZE / 2 + 1; // 3
85731
85840
  const CAP_COLOR = 'hsl(var(--neutral) / 1.0)';
85732
- const SmartScrollbarEndpoints = /*#__PURE__*/(/* unused pure expression or super */ null && (SmartScrollbarEndpoints_React.memo(function SmartScrollbarEndpoints({
85841
+ const SmartScrollbarEndpoints = /*#__PURE__*/react.memo(function SmartScrollbarEndpoints({
85733
85842
  marked,
85734
85843
  // `marked` is mutated in-place (stable reference). We accept `version` only to
85735
85844
  // invalidate React.memo and force a re-render when the bytes change. The
@@ -85742,11 +85851,11 @@ const SmartScrollbarEndpoints = /*#__PURE__*/(/* unused pure expression or super
85742
85851
  trackWidth,
85743
85852
  fillPadding,
85744
85853
  stableLayerEl
85745
- } = SmartScrollbarEndpoints_useSmartScrollbarLayoutContext();
85854
+ } = useSmartScrollbarLayoutContext();
85746
85855
  const fillAreaTop = fillPadding;
85747
85856
  const pixelCount = Math.max(0, Math.floor(trackHeight - fillPadding * 2));
85748
85857
  if (pixelCount === 0) return null;
85749
- const pixelFilled = SmartScrollbarEndpoints_computePixelFilledFromMarked(marked, pixelCount);
85858
+ const pixelFilled = computePixelFilledFromMarked(marked, pixelCount);
85750
85859
 
85751
85860
  // Scan for the first and last filled pixel row in O(n) so endpoints align
85752
85861
  // exactly with the fill rendering in pixel space.
@@ -85775,90 +85884,103 @@ const SmartScrollbarEndpoints = /*#__PURE__*/(/* unused pure expression or super
85775
85884
 
85776
85885
  // Portal into the stable layer so position isn't affected by the
85777
85886
  // contracting track div's width transition.
85778
- return /*#__PURE__*/createPortal(/*#__PURE__*/SmartScrollbarEndpoints_React.createElement("svg", {
85887
+ return /*#__PURE__*/(0,react_dom.createPortal)(/*#__PURE__*/react.createElement("svg", {
85779
85888
  width: trackWidth,
85780
85889
  height: trackHeight,
85781
85890
  className: `pointer-events-none absolute inset-0 ${className ?? ''}`
85782
- }, /*#__PURE__*/SmartScrollbarEndpoints_React.createElement("rect", {
85891
+ }, /*#__PURE__*/react.createElement("rect", {
85783
85892
  x: cx - halfCap,
85784
85893
  y: topEdge - CAP_HEIGHT,
85785
85894
  width: CAP_SIZE,
85786
85895
  height: CAP_HEIGHT,
85787
85896
  fill: CAP_COLOR
85788
- }), /*#__PURE__*/SmartScrollbarEndpoints_React.createElement("rect", {
85897
+ }), /*#__PURE__*/react.createElement("rect", {
85789
85898
  x: cx - halfCap,
85790
85899
  y: bottomEdge,
85791
85900
  width: CAP_SIZE,
85792
85901
  height: CAP_HEIGHT,
85793
85902
  fill: CAP_COLOR
85794
85903
  })), stableLayerEl);
85795
- })));
85796
- // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
85797
- var lodash_debounce = __webpack_require__(62051);
85798
- var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
85904
+ });
85799
85905
  ;// ../../ui-next/src/components/SmartScrollbar/useByteArray.ts
85800
- /* unused harmony import specifier */ var debounce;
85801
- /* unused harmony import specifier */ var useByteArray_useRef;
85802
- /* unused harmony import specifier */ var useByteArray_useState;
85803
- /* unused harmony import specifier */ var useByteArray_useMemo;
85804
- /* unused harmony import specifier */ var useByteArray_useEffect;
85805
- /* unused harmony import specifier */ var useByteArray_useCallback;
85806
-
85807
85906
 
85808
85907
  /**
85809
85908
  * Manages a mutable Uint8Array (one byte per position) with React change
85810
85909
  * detection via an incrementing version counter.
85811
85910
  *
85812
85911
  * @param size - Number of positions (e.g. total slices in a viewport).
85813
- * @param debounceMs - When > 0, version bumps are debounced by this many
85814
- * milliseconds. Byte writes are always immediate. Use for
85815
- * high-frequency sources (cache prefetch) to batch renders.
85816
- * Omit or pass 0 for immediate re-renders (e.g. viewed tracking).
85817
- */
85818
- function useByteArray(size, debounceMs = 0) {
85819
- const bytesRef = useByteArray_useRef(new Uint8Array(size));
85820
- const countRef = useByteArray_useRef(0);
85821
- const [version, setVersion] = useByteArray_useState(0);
85822
-
85823
- // Debounced bump — recreated when debounceMs changes; cancelled on unmount
85824
- // or when debounceMs changes, following the lodash.debounce pattern used
85825
- // throughout ui-next (InputFilter, CinePlayer).
85826
- const debouncedBump = useByteArray_useMemo(() => debounceMs > 0 ? debounce(() => setVersion(v => v + 1), debounceMs) : null, [debounceMs]);
85827
- useByteArray_useEffect(() => {
85828
- return () => debouncedBump?.cancel();
85829
- }, [debouncedBump]);
85912
+ * @param batchIntervalMs - When > 0, writes are coalesced into a scheduled
85913
+ * flush: the first write starts a timer, the next
85914
+ * flush bumps `version`, and the timer stops. New
85915
+ * writes start a new interval window. Omit or pass 0
85916
+ * for immediate re-renders on every write.
85917
+ */
85918
+ function useByteArray(size, batchIntervalMs = 0) {
85919
+ const bytesRef = (0,react.useRef)(new Uint8Array(size));
85920
+ const countRef = (0,react.useRef)(0);
85921
+ const [version, setVersion] = (0,react.useState)(0);
85922
+ const timeoutIdRef = (0,react.useRef)(null);
85923
+ const clearScheduledFlush = (0,react.useCallback)(() => {
85924
+ if (timeoutIdRef.current !== null) {
85925
+ window.clearTimeout(timeoutIdRef.current);
85926
+ timeoutIdRef.current = null;
85927
+ }
85928
+ }, []);
85929
+ const flushScheduledVersion = (0,react.useCallback)(() => {
85930
+ // End this timeout window after the scheduled flush.
85931
+ clearScheduledFlush();
85932
+ setVersion(v => v + 1);
85933
+ }, [clearScheduledFlush]);
85830
85934
 
85831
85935
  // Reset array only when size actually changes — skip on initial mount since
85832
85936
  // bytesRef is already initialised to the correct size via useRef.
85833
- useByteArray_useEffect(() => {
85937
+ (0,react.useEffect)(() => {
85834
85938
  if (bytesRef.current.length === size) return;
85835
- debouncedBump?.cancel();
85939
+ // Drop any in-flight timeout window when resetting the underlying array.
85940
+ clearScheduledFlush();
85836
85941
  bytesRef.current = new Uint8Array(size);
85837
85942
  countRef.current = 0;
85838
85943
  setVersion(v => v + 1);
85839
- }, [size, debouncedBump]);
85840
- const bump = useByteArray_useCallback(() => {
85841
- if (debouncedBump) {
85842
- debouncedBump();
85843
- } else {
85944
+ }, [size, clearScheduledFlush]);
85945
+ (0,react.useEffect)(() => {
85946
+ // If timing changes mid-window, restart that timeout using the new timing.
85947
+ const pendingTimeoutId = timeoutIdRef.current;
85948
+ clearScheduledFlush();
85949
+ if (batchIntervalMs <= 0) {
85950
+ if (pendingTimeoutId !== null) {
85951
+ setVersion(v => v + 1);
85952
+ }
85953
+ return;
85954
+ }
85955
+ if (pendingTimeoutId !== null) {
85956
+ timeoutIdRef.current = window.setTimeout(flushScheduledVersion, batchIntervalMs);
85957
+ }
85958
+ return () => clearScheduledFlush();
85959
+ }, [batchIntervalMs, clearScheduledFlush, flushScheduledVersion]);
85960
+ const bump = (0,react.useCallback)(() => {
85961
+ if (batchIntervalMs <= 0) {
85844
85962
  setVersion(v => v + 1);
85963
+ return;
85964
+ }
85965
+ if (timeoutIdRef.current === null) {
85966
+ timeoutIdRef.current = window.setTimeout(flushScheduledVersion, batchIntervalMs);
85845
85967
  }
85846
- }, [debouncedBump]);
85847
- const setByte = useByteArray_useCallback(index => {
85968
+ }, [batchIntervalMs, flushScheduledVersion]);
85969
+ const setByte = (0,react.useCallback)(index => {
85848
85970
  const bytes = bytesRef.current;
85849
85971
  if (index < 0 || index >= bytes.length || bytes[index] === 1) return;
85850
85972
  bytes[index] = 1;
85851
85973
  countRef.current++;
85852
85974
  bump();
85853
85975
  }, [bump]);
85854
- const clearByte = useByteArray_useCallback(index => {
85976
+ const clearByte = (0,react.useCallback)(index => {
85855
85977
  const bytes = bytesRef.current;
85856
85978
  if (index < 0 || index >= bytes.length || bytes[index] === 0) return;
85857
85979
  bytes[index] = 0;
85858
85980
  countRef.current--;
85859
85981
  bump();
85860
85982
  }, [bump]);
85861
- const resetWith = useByteArray_useCallback(populate => {
85983
+ const resetWith = (0,react.useCallback)(populate => {
85862
85984
  const bytes = bytesRef.current;
85863
85985
  bytes.fill(0);
85864
85986
  populate(bytes);
@@ -86014,7 +86136,7 @@ var useLayoutEffect2 = globalThis?.document ? react.useLayoutEffect : () => {
86014
86136
 
86015
86137
  var useReactId = react_namespaceObject[" useId ".trim().toString()] || (() => void 0);
86016
86138
  var count = 0;
86017
- function dist_useId(deterministicId) {
86139
+ function useId(deterministicId) {
86018
86140
  const [id, setId] = react.useState(useReactId());
86019
86141
  useLayoutEffect2(() => {
86020
86142
  if (!deterministicId) setId((reactId) => reactId ?? String(count++));
@@ -86026,7 +86148,7 @@ function dist_useId(deterministicId) {
86026
86148
 
86027
86149
  ;// ../../../node_modules/@radix-ui/react-use-effect-event/dist/index.mjs
86028
86150
  /* unused harmony import specifier */ var useLayoutEffect;
86029
- /* unused harmony import specifier */ var dist_React;
86151
+ /* unused harmony import specifier */ var React;
86030
86152
  // src/use-effect-event.tsx
86031
86153
 
86032
86154
 
@@ -86036,7 +86158,7 @@ function useEffectEvent(callback) {
86036
86158
  if (typeof useReactEffectEvent === "function") {
86037
86159
  return useReactEffectEvent(callback);
86038
86160
  }
86039
- const ref = dist_React.useRef(() => {
86161
+ const ref = React.useRef(() => {
86040
86162
  throw new Error("Cannot call an event handler while rendering.");
86041
86163
  });
86042
86164
  if (typeof useReactInsertionEffect === "function") {
@@ -86048,7 +86170,7 @@ function useEffectEvent(callback) {
86048
86170
  ref.current = callback;
86049
86171
  });
86050
86172
  }
86051
- return dist_React.useMemo(() => (...args) => ref.current?.(...args), []);
86173
+ return React.useMemo(() => (...args) => ref.current?.(...args), []);
86052
86174
  }
86053
86175
 
86054
86176
  //# sourceMappingURL=index.mjs.map
@@ -87183,8 +87305,8 @@ var env = {
87183
87305
  };
87184
87306
 
87185
87307
  ;// ../../../node_modules/use-sidecar/dist/es2015/hook.js
87186
- /* unused harmony import specifier */ var hook_useState;
87187
- /* unused harmony import specifier */ var hook_useEffect;
87308
+ /* unused harmony import specifier */ var useState;
87309
+ /* unused harmony import specifier */ var useEffect;
87188
87310
  /* unused harmony import specifier */ var hook_env;
87189
87311
 
87190
87312
 
@@ -87201,9 +87323,9 @@ function useSidecar(importer, effect) {
87201
87323
  function useRealSidecar(importer, effect) {
87202
87324
  var options = (effect && effect.options) || NO_OPTIONS;
87203
87325
  var couldUseCache = hook_env.forceCache || (hook_env.isNode && !!options.ssr) || !options.async;
87204
- var _a = hook_useState(couldUseCache ? function () { return cache.get(importer); } : undefined), Car = _a[0], setCar = _a[1];
87205
- var _b = hook_useState(null), error = _b[0], setError = _b[1];
87206
- hook_useEffect(function () {
87326
+ var _a = useState(couldUseCache ? function () { return cache.get(importer); } : undefined), Car = _a[0], setCar = _a[1];
87327
+ var _b = useState(null), error = _b[0], setError = _b[1];
87328
+ useEffect(function () {
87207
87329
  if (!Car) {
87208
87330
  importer().then(function (car) {
87209
87331
  var resolved = effect ? effect.read() : car.default || car;
@@ -87339,7 +87461,7 @@ function createSidecarMedium(options) {
87339
87461
  ;// ../../../node_modules/use-sidecar/dist/es2015/renderProp.js
87340
87462
  /* unused harmony import specifier */ var renderProp_assign;
87341
87463
  /* unused harmony import specifier */ var renderProp_React;
87342
- /* unused harmony import specifier */ var renderProp_useCallback;
87464
+ /* unused harmony import specifier */ var useCallback;
87343
87465
  /* unused harmony import specifier */ var renderProp_useLayoutEffect;
87344
87466
  /* unused harmony import specifier */ var renderProp_useState;
87345
87467
  /* unused harmony import specifier */ var renderProp_useEffect;
@@ -87349,7 +87471,7 @@ function createSidecarMedium(options) {
87349
87471
  function renderCar(WrappedComponent, defaults) {
87350
87472
  function State(_a) {
87351
87473
  var stateRef = _a.stateRef, props = _a.props;
87352
- var renderTarget = renderProp_useCallback(function SideTarget() {
87474
+ var renderTarget = useCallback(function SideTarget() {
87353
87475
  var args = [];
87354
87476
  for (var _i = 0; _i < arguments.length; _i++) {
87355
87477
  args[_i] = arguments[_i];
@@ -88178,9 +88300,9 @@ var Dialog = (props) => {
88178
88300
  scope: __scopeDialog,
88179
88301
  triggerRef,
88180
88302
  contentRef,
88181
- contentId: dist_useId(),
88182
- titleId: dist_useId(),
88183
- descriptionId: dist_useId(),
88303
+ contentId: useId(),
88304
+ titleId: useId(),
88305
+ descriptionId: useId(),
88184
88306
  open,
88185
88307
  onOpenChange: setOpen,
88186
88308
  onOpenToggle: react.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
@@ -88458,7 +88580,7 @@ var Close = DialogClose;
88458
88580
  //# sourceMappingURL=index.mjs.map
88459
88581
 
88460
88582
  ;// ../../../node_modules/cmdk/dist/index.mjs
88461
- "use client";var N='[cmdk-group=""]',dist_Y='[cmdk-group-items=""]',be='[cmdk-group-heading=""]',le='[cmdk-item=""]',ce=`${le}:not([aria-disabled="true"])`,Z="cmdk-item-select",T="data-value",Re=(r,o,n)=>W(r,o,n),ue=react.createContext(void 0),dist_K=()=>react.useContext(ue),de=react.createContext(void 0),ee=()=>react.useContext(de),fe=react.createContext(void 0),me=react.forwardRef((r,o)=>{let n=L(()=>{var e,a;return{search:"",value:(a=(e=r.value)!=null?e:r.defaultValue)!=null?a:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),u=L(()=>new Set),c=L(()=>new Map),d=L(()=>new Map),f=L(()=>new Set),p=pe(r),{label:b,children:m,value:R,onValueChange:x,filter:C,shouldFilter:S,loop:A,disablePointerSelection:ge=!1,vimBindings:j=!0,...O}=r,$=dist_useId(),q=dist_useId(),_=dist_useId(),I=react.useRef(null),v=ke();dist_k(()=>{if(R!==void 0){let e=R.trim();n.current.value=e,E.emit()}},[R]),dist_k(()=>{v(6,ne)},[]);let E=react.useMemo(()=>({subscribe:e=>(f.current.add(e),()=>f.current.delete(e)),snapshot:()=>n.current,setState:(e,a,s)=>{var i,l,g,y;if(!Object.is(n.current[e],a)){if(n.current[e]=a,e==="search")J(),z(),v(1,W);else if(e==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let h=document.getElementById(_);h?h.focus():(i=document.getElementById($))==null||i.focus()}if(v(7,()=>{var h;n.current.selectedItemId=(h=M())==null?void 0:h.id,E.emit()}),s||v(5,ne),((l=p.current)==null?void 0:l.value)!==void 0){let h=a!=null?a:"";(y=(g=p.current).onValueChange)==null||y.call(g,h);return}}E.emit()}},emit:()=>{f.current.forEach(e=>e())}}),[]),U=react.useMemo(()=>({value:(e,a,s)=>{var i;a!==((i=d.current.get(e))==null?void 0:i.value)&&(d.current.set(e,{value:a,keywords:s}),n.current.filtered.items.set(e,te(a,s)),v(2,()=>{z(),E.emit()}))},item:(e,a)=>(u.current.add(e),a&&(c.current.has(a)?c.current.get(a).add(e):c.current.set(a,new Set([e]))),v(3,()=>{J(),z(),n.current.value||W(),E.emit()}),()=>{d.current.delete(e),u.current.delete(e),n.current.filtered.items.delete(e);let s=M();v(4,()=>{J(),(s==null?void 0:s.getAttribute("id"))===e&&W(),E.emit()})}),group:e=>(c.current.has(e)||c.current.set(e,new Set),()=>{d.current.delete(e),c.current.delete(e)}),filter:()=>p.current.shouldFilter,label:b||r["aria-label"],getDisablePointerSelection:()=>p.current.disablePointerSelection,listId:$,inputId:_,labelId:q,listInnerRef:I}),[]);function te(e,a){var i,l;let s=(l=(i=p.current)==null?void 0:i.filter)!=null?l:Re;return e?s(e,n.current.search,a):0}function z(){if(!n.current.search||p.current.shouldFilter===!1)return;let e=n.current.filtered.items,a=[];n.current.filtered.groups.forEach(i=>{let l=c.current.get(i),g=0;l.forEach(y=>{let h=e.get(y);g=Math.max(h,g)}),a.push([i,g])});let s=I.current;V().sort((i,l)=>{var h,F;let g=i.getAttribute("id"),y=l.getAttribute("id");return((h=e.get(y))!=null?h:0)-((F=e.get(g))!=null?F:0)}).forEach(i=>{let l=i.closest(dist_Y);l?l.appendChild(i.parentElement===l?i:i.closest(`${dist_Y} > *`)):s.appendChild(i.parentElement===s?i:i.closest(`${dist_Y} > *`))}),a.sort((i,l)=>l[1]-i[1]).forEach(i=>{var g;let l=(g=I.current)==null?void 0:g.querySelector(`${N}[${T}="${encodeURIComponent(i[0])}"]`);l==null||l.parentElement.appendChild(l)})}function W(){let e=V().find(s=>s.getAttribute("aria-disabled")!=="true"),a=e==null?void 0:e.getAttribute(T);E.setState("value",a||void 0)}function J(){var a,s,i,l;if(!n.current.search||p.current.shouldFilter===!1){n.current.filtered.count=u.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let g of u.current){let y=(s=(a=d.current.get(g))==null?void 0:a.value)!=null?s:"",h=(l=(i=d.current.get(g))==null?void 0:i.keywords)!=null?l:[],F=te(y,h);n.current.filtered.items.set(g,F),F>0&&e++}for(let[g,y]of c.current)for(let h of y)if(n.current.filtered.items.get(h)>0){n.current.filtered.groups.add(g);break}n.current.filtered.count=e}function ne(){var a,s,i;let e=M();e&&(((a=e.parentElement)==null?void 0:a.firstChild)===e&&((i=(s=e.closest(N))==null?void 0:s.querySelector(be))==null||i.scrollIntoView({block:"nearest"})),e.scrollIntoView({block:"nearest"}))}function M(){var e;return(e=I.current)==null?void 0:e.querySelector(`${le}[aria-selected="true"]`)}function V(){var e;return Array.from(((e=I.current)==null?void 0:e.querySelectorAll(ce))||[])}function X(e){let s=V()[e];s&&E.setState("value",s.getAttribute(T))}function Q(e){var g;let a=M(),s=V(),i=s.findIndex(y=>y===a),l=s[i+e];(g=p.current)!=null&&g.loop&&(l=i+e<0?s[s.length-1]:i+e===s.length?s[0]:s[i+e]),l&&E.setState("value",l.getAttribute(T))}function re(e){let a=M(),s=a==null?void 0:a.closest(N),i;for(;s&&!i;)s=e>0?we(s,N):De(s,N),i=s==null?void 0:s.querySelector(ce);i?E.setState("value",i.getAttribute(T)):Q(e)}let oe=()=>X(V().length-1),ie=e=>{e.preventDefault(),e.metaKey?oe():e.altKey?re(1):Q(1)},se=e=>{e.preventDefault(),e.metaKey?X(0):e.altKey?re(-1):Q(-1)};return react.createElement(Primitive.div,{ref:o,tabIndex:-1,...O,"cmdk-root":"",onKeyDown:e=>{var s;(s=O.onKeyDown)==null||s.call(O,e);let a=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||a))switch(e.key){case"n":case"j":{j&&e.ctrlKey&&ie(e);break}case"ArrowDown":{ie(e);break}case"p":case"k":{j&&e.ctrlKey&&se(e);break}case"ArrowUp":{se(e);break}case"Home":{e.preventDefault(),X(0);break}case"End":{e.preventDefault(),oe();break}case"Enter":{e.preventDefault();let i=M();if(i){let l=new Event(Z);i.dispatchEvent(l)}}}}},react.createElement("label",{"cmdk-label":"",htmlFor:U.inputId,id:U.labelId,style:Te},b),dist_B(r,e=>react.createElement(de.Provider,{value:E},react.createElement(ue.Provider,{value:U},e))))}),he=react.forwardRef((r,o)=>{var _,I;let n=dist_useId(),u=react.useRef(null),c=react.useContext(fe),d=dist_K(),f=pe(r),p=(I=(_=f.current)==null?void 0:_.forceMount)!=null?I:c==null?void 0:c.forceMount;dist_k(()=>{if(!p)return d.item(n,c==null?void 0:c.id)},[p]);let b=ve(n,u,[r.value,r.children,u],r.keywords),m=ee(),R=P(v=>v.value&&v.value===b.current),x=P(v=>p||d.filter()===!1?!0:v.search?v.filtered.items.get(n)>0:!0);react.useEffect(()=>{let v=u.current;if(!(!v||r.disabled))return v.addEventListener(Z,C),()=>v.removeEventListener(Z,C)},[x,r.onSelect,r.disabled]);function C(){var v,E;S(),(E=(v=f.current).onSelect)==null||E.call(v,b.current)}function S(){m.setState("value",b.current,!0)}if(!x)return null;let{disabled:A,value:ge,onSelect:j,forceMount:O,keywords:$,...q}=r;return react.createElement(Primitive.div,{ref:composeRefs(u,o),...q,id:n,"cmdk-item":"",role:"option","aria-disabled":!!A,"aria-selected":!!R,"data-disabled":!!A,"data-selected":!!R,onPointerMove:A||d.getDisablePointerSelection()?void 0:S,onClick:A?void 0:C},r.children)}),Ee=react.forwardRef((r,o)=>{let{heading:n,children:u,forceMount:c,...d}=r,f=dist_useId(),p=react.useRef(null),b=react.useRef(null),m=dist_useId(),R=dist_K(),x=P(S=>c||R.filter()===!1?!0:S.search?S.filtered.groups.has(f):!0);dist_k(()=>R.group(f),[]),ve(f,p,[r.value,r.heading,b]);let C=react.useMemo(()=>({id:f,forceMount:c}),[c]);return react.createElement(Primitive.div,{ref:composeRefs(p,o),...d,"cmdk-group":"",role:"presentation",hidden:x?void 0:!0},n&&react.createElement("div",{ref:b,"cmdk-group-heading":"","aria-hidden":!0,id:m},n),dist_B(r,S=>react.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?m:void 0},react.createElement(fe.Provider,{value:C},S))))}),ye=react.forwardRef((r,o)=>{let{alwaysRender:n,...u}=r,c=react.useRef(null),d=P(f=>!f.search);return!n&&!d?null:react.createElement(Primitive.div,{ref:composeRefs(c,o),...u,"cmdk-separator":"",role:"separator"})}),Se=react.forwardRef((r,o)=>{let{onValueChange:n,...u}=r,c=r.value!=null,d=ee(),f=P(m=>m.search),p=P(m=>m.selectedItemId),b=dist_K();return react.useEffect(()=>{r.value!=null&&d.setState("search",r.value)},[r.value]),react.createElement(Primitive.input,{ref:o,...u,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":b.listId,"aria-labelledby":b.labelId,"aria-activedescendant":p,id:b.inputId,type:"text",value:c?r.value:f,onChange:m=>{c||d.setState("search",m.target.value),n==null||n(m.target.value)}})}),Ce=react.forwardRef((r,o)=>{let{children:n,label:u="Suggestions",...c}=r,d=react.useRef(null),f=react.useRef(null),p=P(m=>m.selectedItemId),b=dist_K();return react.useEffect(()=>{if(f.current&&d.current){let m=f.current,R=d.current,x,C=new ResizeObserver(()=>{x=requestAnimationFrame(()=>{let S=m.offsetHeight;R.style.setProperty("--cmdk-list-height",S.toFixed(1)+"px")})});return C.observe(m),()=>{cancelAnimationFrame(x),C.unobserve(m)}}},[]),react.createElement(Primitive.div,{ref:composeRefs(d,o),...c,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":p,"aria-label":u,id:b.listId},dist_B(r,m=>react.createElement("div",{ref:composeRefs(f,b.listInnerRef),"cmdk-list-sizer":""},m)))}),xe=react.forwardRef((r,o)=>{let{open:n,onOpenChange:u,overlayClassName:c,contentClassName:d,container:f,...p}=r;return react.createElement(react_dialog_dist_Root,{open:n,onOpenChange:u},react.createElement(dist_Portal,{container:f},react.createElement(Overlay,{"cmdk-overlay":"",className:c}),react.createElement(Content,{"aria-label":r.label,"cmdk-dialog":"",className:d},react.createElement(me,{ref:o,...p}))))}),Ie=react.forwardRef((r,o)=>P(u=>u.filtered.count===0)?react.createElement(Primitive.div,{ref:o,...r,"cmdk-empty":"",role:"presentation"}):null),Pe=react.forwardRef((r,o)=>{let{progress:n,children:u,label:c="Loading...",...d}=r;return react.createElement(Primitive.div,{ref:o,...d,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":c},dist_B(r,f=>react.createElement("div",{"aria-hidden":!0},f)))}),_e=Object.assign(me,{List:Ce,Item:he,Input:Se,Group:Ee,Separator:ye,Dialog:xe,Empty:Ie,Loading:Pe});function we(r,o){let n=r.nextElementSibling;for(;n;){if(n.matches(o))return n;n=n.nextElementSibling}}function De(r,o){let n=r.previousElementSibling;for(;n;){if(n.matches(o))return n;n=n.previousElementSibling}}function pe(r){let o=react.useRef(r);return dist_k(()=>{o.current=r}),o}var dist_k=typeof window=="undefined"?react.useEffect:react.useLayoutEffect;function L(r){let o=react.useRef();return o.current===void 0&&(o.current=r()),o}function P(r){let o=ee(),n=()=>r(o.snapshot());return react.useSyncExternalStore(o.subscribe,n,n)}function ve(r,o,n,u=[]){let c=react.useRef(),d=dist_K();return dist_k(()=>{var b;let f=(()=>{var m;for(let R of n){if(typeof R=="string")return R.trim();if(typeof R=="object"&&"current"in R)return R.current?(m=R.current.textContent)==null?void 0:m.trim():c.current}})(),p=u.map(m=>m.trim());d.value(r,f,p),(b=o.current)==null||b.setAttribute(T,f),c.current=f}),c}var ke=()=>{let[r,o]=react.useState(),n=L(()=>new Map);return dist_k(()=>{n.current.forEach(u=>u()),n.current=new Map},[r]),(u,c)=>{n.current.set(u,c),o({})}};function Me(r){let o=r.type;return typeof o=="function"?o(r.props):"render"in o?o.render(r.props):r}function dist_B({asChild:r,children:o},n){return r&&react.isValidElement(o)?react.cloneElement(Me(o),{ref:o.ref},n(o.props.children)):n(o)}var Te={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};
88583
+ "use client";var N='[cmdk-group=""]',dist_Y='[cmdk-group-items=""]',be='[cmdk-group-heading=""]',le='[cmdk-item=""]',ce=`${le}:not([aria-disabled="true"])`,Z="cmdk-item-select",T="data-value",Re=(r,o,n)=>W(r,o,n),ue=react.createContext(void 0),dist_K=()=>react.useContext(ue),de=react.createContext(void 0),ee=()=>react.useContext(de),fe=react.createContext(void 0),me=react.forwardRef((r,o)=>{let n=L(()=>{var e,a;return{search:"",value:(a=(e=r.value)!=null?e:r.defaultValue)!=null?a:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),u=L(()=>new Set),c=L(()=>new Map),d=L(()=>new Map),f=L(()=>new Set),p=pe(r),{label:b,children:m,value:R,onValueChange:x,filter:C,shouldFilter:S,loop:A,disablePointerSelection:ge=!1,vimBindings:j=!0,...O}=r,$=useId(),q=useId(),_=useId(),I=react.useRef(null),v=ke();dist_k(()=>{if(R!==void 0){let e=R.trim();n.current.value=e,E.emit()}},[R]),dist_k(()=>{v(6,ne)},[]);let E=react.useMemo(()=>({subscribe:e=>(f.current.add(e),()=>f.current.delete(e)),snapshot:()=>n.current,setState:(e,a,s)=>{var i,l,g,y;if(!Object.is(n.current[e],a)){if(n.current[e]=a,e==="search")J(),z(),v(1,W);else if(e==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let h=document.getElementById(_);h?h.focus():(i=document.getElementById($))==null||i.focus()}if(v(7,()=>{var h;n.current.selectedItemId=(h=M())==null?void 0:h.id,E.emit()}),s||v(5,ne),((l=p.current)==null?void 0:l.value)!==void 0){let h=a!=null?a:"";(y=(g=p.current).onValueChange)==null||y.call(g,h);return}}E.emit()}},emit:()=>{f.current.forEach(e=>e())}}),[]),U=react.useMemo(()=>({value:(e,a,s)=>{var i;a!==((i=d.current.get(e))==null?void 0:i.value)&&(d.current.set(e,{value:a,keywords:s}),n.current.filtered.items.set(e,te(a,s)),v(2,()=>{z(),E.emit()}))},item:(e,a)=>(u.current.add(e),a&&(c.current.has(a)?c.current.get(a).add(e):c.current.set(a,new Set([e]))),v(3,()=>{J(),z(),n.current.value||W(),E.emit()}),()=>{d.current.delete(e),u.current.delete(e),n.current.filtered.items.delete(e);let s=M();v(4,()=>{J(),(s==null?void 0:s.getAttribute("id"))===e&&W(),E.emit()})}),group:e=>(c.current.has(e)||c.current.set(e,new Set),()=>{d.current.delete(e),c.current.delete(e)}),filter:()=>p.current.shouldFilter,label:b||r["aria-label"],getDisablePointerSelection:()=>p.current.disablePointerSelection,listId:$,inputId:_,labelId:q,listInnerRef:I}),[]);function te(e,a){var i,l;let s=(l=(i=p.current)==null?void 0:i.filter)!=null?l:Re;return e?s(e,n.current.search,a):0}function z(){if(!n.current.search||p.current.shouldFilter===!1)return;let e=n.current.filtered.items,a=[];n.current.filtered.groups.forEach(i=>{let l=c.current.get(i),g=0;l.forEach(y=>{let h=e.get(y);g=Math.max(h,g)}),a.push([i,g])});let s=I.current;V().sort((i,l)=>{var h,F;let g=i.getAttribute("id"),y=l.getAttribute("id");return((h=e.get(y))!=null?h:0)-((F=e.get(g))!=null?F:0)}).forEach(i=>{let l=i.closest(dist_Y);l?l.appendChild(i.parentElement===l?i:i.closest(`${dist_Y} > *`)):s.appendChild(i.parentElement===s?i:i.closest(`${dist_Y} > *`))}),a.sort((i,l)=>l[1]-i[1]).forEach(i=>{var g;let l=(g=I.current)==null?void 0:g.querySelector(`${N}[${T}="${encodeURIComponent(i[0])}"]`);l==null||l.parentElement.appendChild(l)})}function W(){let e=V().find(s=>s.getAttribute("aria-disabled")!=="true"),a=e==null?void 0:e.getAttribute(T);E.setState("value",a||void 0)}function J(){var a,s,i,l;if(!n.current.search||p.current.shouldFilter===!1){n.current.filtered.count=u.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let g of u.current){let y=(s=(a=d.current.get(g))==null?void 0:a.value)!=null?s:"",h=(l=(i=d.current.get(g))==null?void 0:i.keywords)!=null?l:[],F=te(y,h);n.current.filtered.items.set(g,F),F>0&&e++}for(let[g,y]of c.current)for(let h of y)if(n.current.filtered.items.get(h)>0){n.current.filtered.groups.add(g);break}n.current.filtered.count=e}function ne(){var a,s,i;let e=M();e&&(((a=e.parentElement)==null?void 0:a.firstChild)===e&&((i=(s=e.closest(N))==null?void 0:s.querySelector(be))==null||i.scrollIntoView({block:"nearest"})),e.scrollIntoView({block:"nearest"}))}function M(){var e;return(e=I.current)==null?void 0:e.querySelector(`${le}[aria-selected="true"]`)}function V(){var e;return Array.from(((e=I.current)==null?void 0:e.querySelectorAll(ce))||[])}function X(e){let s=V()[e];s&&E.setState("value",s.getAttribute(T))}function Q(e){var g;let a=M(),s=V(),i=s.findIndex(y=>y===a),l=s[i+e];(g=p.current)!=null&&g.loop&&(l=i+e<0?s[s.length-1]:i+e===s.length?s[0]:s[i+e]),l&&E.setState("value",l.getAttribute(T))}function re(e){let a=M(),s=a==null?void 0:a.closest(N),i;for(;s&&!i;)s=e>0?we(s,N):De(s,N),i=s==null?void 0:s.querySelector(ce);i?E.setState("value",i.getAttribute(T)):Q(e)}let oe=()=>X(V().length-1),ie=e=>{e.preventDefault(),e.metaKey?oe():e.altKey?re(1):Q(1)},se=e=>{e.preventDefault(),e.metaKey?X(0):e.altKey?re(-1):Q(-1)};return react.createElement(Primitive.div,{ref:o,tabIndex:-1,...O,"cmdk-root":"",onKeyDown:e=>{var s;(s=O.onKeyDown)==null||s.call(O,e);let a=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||a))switch(e.key){case"n":case"j":{j&&e.ctrlKey&&ie(e);break}case"ArrowDown":{ie(e);break}case"p":case"k":{j&&e.ctrlKey&&se(e);break}case"ArrowUp":{se(e);break}case"Home":{e.preventDefault(),X(0);break}case"End":{e.preventDefault(),oe();break}case"Enter":{e.preventDefault();let i=M();if(i){let l=new Event(Z);i.dispatchEvent(l)}}}}},react.createElement("label",{"cmdk-label":"",htmlFor:U.inputId,id:U.labelId,style:Te},b),dist_B(r,e=>react.createElement(de.Provider,{value:E},react.createElement(ue.Provider,{value:U},e))))}),he=react.forwardRef((r,o)=>{var _,I;let n=useId(),u=react.useRef(null),c=react.useContext(fe),d=dist_K(),f=pe(r),p=(I=(_=f.current)==null?void 0:_.forceMount)!=null?I:c==null?void 0:c.forceMount;dist_k(()=>{if(!p)return d.item(n,c==null?void 0:c.id)},[p]);let b=ve(n,u,[r.value,r.children,u],r.keywords),m=ee(),R=P(v=>v.value&&v.value===b.current),x=P(v=>p||d.filter()===!1?!0:v.search?v.filtered.items.get(n)>0:!0);react.useEffect(()=>{let v=u.current;if(!(!v||r.disabled))return v.addEventListener(Z,C),()=>v.removeEventListener(Z,C)},[x,r.onSelect,r.disabled]);function C(){var v,E;S(),(E=(v=f.current).onSelect)==null||E.call(v,b.current)}function S(){m.setState("value",b.current,!0)}if(!x)return null;let{disabled:A,value:ge,onSelect:j,forceMount:O,keywords:$,...q}=r;return react.createElement(Primitive.div,{ref:composeRefs(u,o),...q,id:n,"cmdk-item":"",role:"option","aria-disabled":!!A,"aria-selected":!!R,"data-disabled":!!A,"data-selected":!!R,onPointerMove:A||d.getDisablePointerSelection()?void 0:S,onClick:A?void 0:C},r.children)}),Ee=react.forwardRef((r,o)=>{let{heading:n,children:u,forceMount:c,...d}=r,f=useId(),p=react.useRef(null),b=react.useRef(null),m=useId(),R=dist_K(),x=P(S=>c||R.filter()===!1?!0:S.search?S.filtered.groups.has(f):!0);dist_k(()=>R.group(f),[]),ve(f,p,[r.value,r.heading,b]);let C=react.useMemo(()=>({id:f,forceMount:c}),[c]);return react.createElement(Primitive.div,{ref:composeRefs(p,o),...d,"cmdk-group":"",role:"presentation",hidden:x?void 0:!0},n&&react.createElement("div",{ref:b,"cmdk-group-heading":"","aria-hidden":!0,id:m},n),dist_B(r,S=>react.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?m:void 0},react.createElement(fe.Provider,{value:C},S))))}),ye=react.forwardRef((r,o)=>{let{alwaysRender:n,...u}=r,c=react.useRef(null),d=P(f=>!f.search);return!n&&!d?null:react.createElement(Primitive.div,{ref:composeRefs(c,o),...u,"cmdk-separator":"",role:"separator"})}),Se=react.forwardRef((r,o)=>{let{onValueChange:n,...u}=r,c=r.value!=null,d=ee(),f=P(m=>m.search),p=P(m=>m.selectedItemId),b=dist_K();return react.useEffect(()=>{r.value!=null&&d.setState("search",r.value)},[r.value]),react.createElement(Primitive.input,{ref:o,...u,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":b.listId,"aria-labelledby":b.labelId,"aria-activedescendant":p,id:b.inputId,type:"text",value:c?r.value:f,onChange:m=>{c||d.setState("search",m.target.value),n==null||n(m.target.value)}})}),Ce=react.forwardRef((r,o)=>{let{children:n,label:u="Suggestions",...c}=r,d=react.useRef(null),f=react.useRef(null),p=P(m=>m.selectedItemId),b=dist_K();return react.useEffect(()=>{if(f.current&&d.current){let m=f.current,R=d.current,x,C=new ResizeObserver(()=>{x=requestAnimationFrame(()=>{let S=m.offsetHeight;R.style.setProperty("--cmdk-list-height",S.toFixed(1)+"px")})});return C.observe(m),()=>{cancelAnimationFrame(x),C.unobserve(m)}}},[]),react.createElement(Primitive.div,{ref:composeRefs(d,o),...c,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":p,"aria-label":u,id:b.listId},dist_B(r,m=>react.createElement("div",{ref:composeRefs(f,b.listInnerRef),"cmdk-list-sizer":""},m)))}),xe=react.forwardRef((r,o)=>{let{open:n,onOpenChange:u,overlayClassName:c,contentClassName:d,container:f,...p}=r;return react.createElement(react_dialog_dist_Root,{open:n,onOpenChange:u},react.createElement(dist_Portal,{container:f},react.createElement(Overlay,{"cmdk-overlay":"",className:c}),react.createElement(Content,{"aria-label":r.label,"cmdk-dialog":"",className:d},react.createElement(me,{ref:o,...p}))))}),Ie=react.forwardRef((r,o)=>P(u=>u.filtered.count===0)?react.createElement(Primitive.div,{ref:o,...r,"cmdk-empty":"",role:"presentation"}):null),Pe=react.forwardRef((r,o)=>{let{progress:n,children:u,label:c="Loading...",...d}=r;return react.createElement(Primitive.div,{ref:o,...d,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":c},dist_B(r,f=>react.createElement("div",{"aria-hidden":!0},f)))}),_e=Object.assign(me,{List:Ce,Item:he,Input:Se,Group:Ee,Separator:ye,Dialog:xe,Empty:Ie,Loading:Pe});function we(r,o){let n=r.nextElementSibling;for(;n;){if(n.matches(o))return n;n=n.nextElementSibling}}function De(r,o){let n=r.previousElementSibling;for(;n;){if(n.matches(o))return n;n=n.previousElementSibling}}function pe(r){let o=react.useRef(r);return dist_k(()=>{o.current=r}),o}var dist_k=typeof window=="undefined"?react.useEffect:react.useLayoutEffect;function L(r){let o=react.useRef();return o.current===void 0&&(o.current=r()),o}function P(r){let o=ee(),n=()=>r(o.snapshot());return react.useSyncExternalStore(o.subscribe,n,n)}function ve(r,o,n,u=[]){let c=react.useRef(),d=dist_K();return dist_k(()=>{var b;let f=(()=>{var m;for(let R of n){if(typeof R=="string")return R.trim();if(typeof R=="object"&&"current"in R)return R.current?(m=R.current.textContent)==null?void 0:m.trim():c.current}})(),p=u.map(m=>m.trim());d.value(r,f,p),(b=o.current)==null||b.setAttribute(T,f),c.current=f}),c}var ke=()=>{let[r,o]=react.useState(),n=L(()=>new Map);return dist_k(()=>{n.current.forEach(u=>u()),n.current=new Map},[r]),(u,c)=>{n.current.set(u,c),o({})}};function Me(r){let o=r.type;return typeof o=="function"?o(r.props):"render"in o?o.render(r.props):r}function dist_B({asChild:r,children:o},n){return r&&react.isValidElement(o)?react.cloneElement(Me(o),{ref:o.ref},n(o.props.children)):n(o)}var Te={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};
88462
88584
 
88463
88585
  ;// ../../ui-next/src/components/Dialog/useDraggable.ts
88464
88586
 
@@ -90190,7 +90312,7 @@ var Select = (props) => {
90190
90312
  onValueNodeChange: setValueNode,
90191
90313
  valueNodeHasChildren,
90192
90314
  onValueNodeHasChildrenChange: setValueNodeHasChildren,
90193
- contentId: dist_useId(),
90315
+ contentId: useId(),
90194
90316
  value,
90195
90317
  onValueChange: setValue,
90196
90318
  open,
@@ -90882,7 +91004,7 @@ var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GR
90882
91004
  var SelectGroup = react.forwardRef(
90883
91005
  (props, forwardedRef) => {
90884
91006
  const { __scopeSelect, ...groupProps } = props;
90885
- const groupId = dist_useId();
91007
+ const groupId = useId();
90886
91008
  return /* @__PURE__ */ (0,jsx_runtime.jsx)(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ (0,jsx_runtime.jsx)(Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
90887
91009
  }
90888
91010
  );
@@ -90916,7 +91038,7 @@ var SelectItem = react.forwardRef(
90916
91038
  forwardedRef,
90917
91039
  (node) => contentContext.itemRefCallback?.(node, value, disabled)
90918
91040
  );
90919
- const textId = dist_useId();
91041
+ const textId = useId();
90920
91042
  const pointerTypeRef = react.useRef("touch");
90921
91043
  const handleSelect = () => {
90922
91044
  if (!disabled) {
@@ -135157,7 +135279,7 @@ var Popover = (props) => {
135157
135279
  PopoverProvider,
135158
135280
  {
135159
135281
  scope: __scopePopover,
135160
- contentId: dist_useId(),
135282
+ contentId: useId(),
135161
135283
  triggerRef,
135162
135284
  open,
135163
135285
  onOpenChange: setOpen,
@@ -202002,6 +202124,9 @@ Calendar_Calendar.displayName = 'Calendar';
202002
202124
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
202003
202125
  var prop_types = __webpack_require__(97598);
202004
202126
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
202127
+ // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
202128
+ var lodash_debounce = __webpack_require__(62051);
202129
+ var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
202005
202130
  ;// ../../ui-next/src/components/Input/Input.tsx
202006
202131
  function Input_extends() { return Input_extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, Input_extends.apply(null, arguments); }
202007
202132
 
@@ -203554,7 +203679,7 @@ var RovingFocusGroupItem = react.forwardRef(
203554
203679
  children,
203555
203680
  ...itemProps
203556
203681
  } = props;
203557
- const autoId = dist_useId();
203682
+ const autoId = useId();
203558
203683
  const id = tabStopId || autoId;
203559
203684
  const context = useRovingFocusContext(dist_ITEM_NAME, __scopeRovingFocusGroup);
203560
203685
  const isCurrentTabStop = context.currentTabStopId === id;
@@ -203694,7 +203819,7 @@ var Tabs = react.forwardRef(
203694
203819
  TabsProvider,
203695
203820
  {
203696
203821
  scope: __scopeTabs,
203697
- baseId: dist_useId(),
203822
+ baseId: useId(),
203698
203823
  value,
203699
203824
  onValueChange: setValue,
203700
203825
  orientation,
@@ -205915,7 +206040,7 @@ var Collapsible = react.forwardRef(
205915
206040
  {
205916
206041
  scope: __scopeCollapsible,
205917
206042
  disabled,
205918
- contentId: dist_useId(),
206043
+ contentId: useId(),
205919
206044
  open,
205920
206045
  onOpenToggle: react.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
205921
206046
  children: /* @__PURE__ */ (0,jsx_runtime.jsx)(
@@ -206224,7 +206349,7 @@ var AccordionItem = react.forwardRef(
206224
206349
  const accordionContext = useAccordionContext(react_accordion_dist_ITEM_NAME, __scopeAccordion);
206225
206350
  const valueContext = useAccordionValueContext(react_accordion_dist_ITEM_NAME, __scopeAccordion);
206226
206351
  const collapsibleScope = useCollapsibleScope(__scopeAccordion);
206227
- const triggerId = dist_useId();
206352
+ const triggerId = useId();
206228
206353
  const open = value && valueContext.value.includes(value) || false;
206229
206354
  const disabled = accordionContext.disabled || props.disabled;
206230
206355
  return /* @__PURE__ */ (0,jsx_runtime.jsx)(
@@ -206465,7 +206590,7 @@ var Tooltip = (props) => {
206465
206590
  const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
206466
206591
  const popperScope = react_tooltip_dist_usePopperScope(__scopeTooltip);
206467
206592
  const [trigger, setTrigger] = react.useState(null);
206468
- const contentId = dist_useId();
206593
+ const contentId = useId();
206469
206594
  const openTimerRef = react.useRef(0);
206470
206595
  const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
206471
206596
  const delayDuration = delayDurationProp ?? providerContext.delayDuration;
@@ -213678,8 +213803,8 @@ var MenuSub = (props) => {
213678
213803
  MenuSubProvider,
213679
213804
  {
213680
213805
  scope: __scopeMenu,
213681
- contentId: dist_useId(),
213682
- triggerId: dist_useId(),
213806
+ contentId: useId(),
213807
+ triggerId: useId(),
213683
213808
  trigger,
213684
213809
  onTriggerChange: setTrigger,
213685
213810
  children
@@ -213955,9 +214080,9 @@ var DropdownMenu = (props) => {
213955
214080
  DropdownMenuProvider,
213956
214081
  {
213957
214082
  scope: __scopeDropdownMenu,
213958
- triggerId: dist_useId(),
214083
+ triggerId: useId(),
213959
214084
  triggerRef,
213960
- contentId: dist_useId(),
214085
+ contentId: useId(),
213961
214086
  open,
213962
214087
  onOpenChange: setOpen,
213963
214088
  onOpenToggle: react.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
@@ -219516,13 +219641,13 @@ const ManagedDialog = /*#__PURE__*/(0,react.forwardRef)(({
219516
219641
  ManagedDialog.displayName = 'ManagedDialog';
219517
219642
  /* harmony default export */ const contextProviders_ManagedDialog = (ManagedDialog);
219518
219643
  ;// ../../ui-next/src/contextProviders/DialogProvider.tsx
219519
- /* unused harmony import specifier */ var DialogProvider_useContext;
219644
+ /* unused harmony import specifier */ var useContext;
219520
219645
  function DialogProvider_extends() { return DialogProvider_extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, DialogProvider_extends.apply(null, arguments); }
219521
219646
 
219522
219647
 
219523
219648
  const DialogProvider_DialogContext = /*#__PURE__*/(0,react.createContext)(null);
219524
219649
  const useDialog = () => {
219525
- const context = DialogProvider_useContext(DialogProvider_DialogContext);
219650
+ const context = useContext(DialogProvider_DialogContext);
219526
219651
  if (!context) {
219527
219652
  throw new Error('useDialog must be used within a DialogProvider');
219528
219653
  }
@@ -221987,15 +222112,15 @@ let ViewportActionCornersLocations = /*#__PURE__*/function (ViewportActionCorner
221987
222112
  const commonClasses = 'pointer-events-auto flex items-center';
221988
222113
  const locationClasses = {
221989
222114
  [ViewportActionCornersLocations.topLeft]: classnames_default()(commonClasses, 'absolute top-[4px] left-[0px] pl-[4px]'),
221990
- [ViewportActionCornersLocations.topRight]: classnames_default()(commonClasses, 'absolute top-[4px] right-[16px] right-viewport-scrollbar'),
222115
+ [ViewportActionCornersLocations.topRight]: classnames_default()(commonClasses, 'absolute top-[4px] right-viewport-scrollbar'),
221991
222116
  [ViewportActionCornersLocations.bottomLeft]: classnames_default()(commonClasses, 'absolute bottom-[3px] left-[0px] pl-[4px]'),
221992
- [ViewportActionCornersLocations.bottomRight]: classnames_default()(commonClasses, 'absolute bottom-[3px] right-[16px] right-viewport-scrollbar'),
222117
+ [ViewportActionCornersLocations.bottomRight]: classnames_default()(commonClasses, 'absolute bottom-[3px] right-viewport-scrollbar'),
221993
222118
  [ViewportActionCornersLocations.topMiddle]: classnames_default()(commonClasses,
221994
222119
  // Todo: to place on right side of the viewport orientation label
221995
222120
  'absolute top-[25px] left-1/2 -translate-x-1/2'),
221996
222121
  [ViewportActionCornersLocations.bottomMiddle]: classnames_default()(commonClasses, 'absolute bottom-[3px] left-1/2 -translate-x-1/2'),
221997
222122
  [ViewportActionCornersLocations.leftMiddle]: classnames_default()(commonClasses, 'absolute left-[20px] top-[calc(50%+2px)] -translate-y-1/2 pl-[4px]'),
221998
- [ViewportActionCornersLocations.rightMiddle]: classnames_default()(commonClasses, 'absolute right-[16px] top-1/2 -translate-y-1/2 right-viewport-scrollbar')
222123
+ [ViewportActionCornersLocations.rightMiddle]: classnames_default()(commonClasses, 'absolute top-1/2 -translate-y-1/2 right-viewport-scrollbar')
221999
222124
  };
222000
222125
  const ViewportActionCornersContext = /*#__PURE__*/(0,react.createContext)(null);
222001
222126
  function ViewportActionCorners_Container({
@@ -222160,16 +222285,10 @@ function ViewportOverlay({
222160
222285
  className: classnames_default()(overlay, ViewportOverlay_classes.topLeft)
222161
222286
  }, topLeft), /*#__PURE__*/react.createElement("div", {
222162
222287
  "data-cy": "viewport-overlay-top-right",
222163
- className: classnames_default()(overlay, ViewportOverlay_classes.topRight),
222164
- style: {
222165
- transform: 'translateX(9px)'
222166
- }
222288
+ className: classnames_default()(overlay, ViewportOverlay_classes.topRight)
222167
222289
  }, topRight), /*#__PURE__*/react.createElement("div", {
222168
222290
  "data-cy": "viewport-overlay-bottom-right",
222169
- className: classnames_default()(overlay, ViewportOverlay_classes.bottomRight),
222170
- style: {
222171
- transform: 'translateX(6px)'
222172
- }
222291
+ className: classnames_default()(overlay, ViewportOverlay_classes.bottomRight)
222173
222292
  }, bottomRight), /*#__PURE__*/react.createElement("div", {
222174
222293
  "data-cy": "viewport-overlay-bottom-left",
222175
222294
  className: classnames_default()(overlay, ViewportOverlay_classes.bottomLeft)
@@ -223134,7 +223253,7 @@ DataRow.Status = Status;
223134
223253
 
223135
223254
  // https://github.com/reach/reach-ui/blob/dev/packages/utils/src/context.tsx
223136
223255
 
223137
- function createContext_createContext(rootComponentName, defaultContext) {
223256
+ function createContext(rootComponentName, defaultContext) {
223138
223257
  const Ctx = /*#__PURE__*/react.createContext(defaultContext);
223139
223258
  function Provider(props) {
223140
223259
  const {
@@ -223168,7 +223287,7 @@ function createContext_createContext(rootComponentName, defaultContext) {
223168
223287
 
223169
223288
 
223170
223289
 
223171
- const [MeasurementTableProvider, useMeasurementTableContext] = createContext_createContext('MeasurementTable', {
223290
+ const [MeasurementTableProvider, useMeasurementTableContext] = createContext('MeasurementTable', {
223172
223291
  data: [],
223173
223292
  isExpanded: true
223174
223293
  });
@@ -231736,8 +231855,8 @@ Typography.propTypes = {
231736
231855
  ;// ../../ui/src/components/Typography/index.js
231737
231856
 
231738
231857
  /* harmony default export */ const components_Typography = (Typography_Typography);
231739
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 3084 modules
231740
- var src = __webpack_require__(15953);
231858
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 3085 modules
231859
+ var src = __webpack_require__(564);
231741
231860
  ;// ../../ui/src/components/EmptyStudies/EmptyStudies.tsx
231742
231861
 
231743
231862
 
@@ -240422,8 +240541,8 @@ Compose.propTypes = {
240422
240541
  };
240423
240542
  // EXTERNAL MODULE: ../../core/src/index.ts + 69 modules
240424
240543
  var core_src = __webpack_require__(42356);
240425
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 3084 modules
240426
- var ui_next_src = __webpack_require__(15953);
240544
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 3085 modules
240545
+ var ui_next_src = __webpack_require__(564);
240427
240546
  // EXTERNAL MODULE: ./state/index.js + 1 modules
240428
240547
  var state = __webpack_require__(45981);
240429
240548
  // EXTERNAL MODULE: ../../../node_modules/react-router/dist/index.js
@@ -242308,27 +242427,27 @@ async function loadModule(module) {
242308
242427
  return imported.default;
242309
242428
  }
242310
242429
  if (module === "@ohif/extension-cornerstone") {
242311
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(4972)]).then(__webpack_require__.bind(__webpack_require__, 24688));
242430
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(4972)]).then(__webpack_require__.bind(__webpack_require__, 87166));
242312
242431
  return imported.default;
242313
242432
  }
242314
242433
  if (module === "@ohif/extension-measurement-tracking") {
242315
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(5261), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(4819)]).then(__webpack_require__.bind(__webpack_require__, 8877));
242434
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(5261), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(3461), __webpack_require__.e(4819)]).then(__webpack_require__.bind(__webpack_require__, 8877));
242316
242435
  return imported.default;
242317
242436
  }
242318
242437
  if (module === "@ohif/extension-cornerstone-dicom-sr") {
242319
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(7829)]).then(__webpack_require__.bind(__webpack_require__, 93461));
242438
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(3461), __webpack_require__.e(7829)]).then(__webpack_require__.bind(__webpack_require__, 93461));
242320
242439
  return imported.default;
242321
242440
  }
242322
242441
  if (module === "@ohif/extension-cornerstone-dicom-seg") {
242323
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(8305)]).then(__webpack_require__.bind(__webpack_require__, 9099));
242442
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(8305)]).then(__webpack_require__.bind(__webpack_require__, 9099));
242324
242443
  return imported.default;
242325
242444
  }
242326
242445
  if (module === "@ohif/extension-cornerstone-dicom-pmap") {
242327
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(5028)]).then(__webpack_require__.bind(__webpack_require__, 82098));
242446
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(5028)]).then(__webpack_require__.bind(__webpack_require__, 82098));
242328
242447
  return imported.default;
242329
242448
  }
242330
242449
  if (module === "@ohif/extension-cornerstone-dynamic-volume") {
242331
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(3138)]).then(__webpack_require__.bind(__webpack_require__, 14696));
242450
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(3138)]).then(__webpack_require__.bind(__webpack_require__, 14696));
242332
242451
  return imported.default;
242333
242452
  }
242334
242453
  if (module === "@ohif/extension-dicom-microscopy") {
@@ -242344,11 +242463,11 @@ async function loadModule(module) {
242344
242463
  return imported.default;
242345
242464
  }
242346
242465
  if (module === "@ohif/extension-tmtv") {
242347
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(8583)]).then(__webpack_require__.bind(__webpack_require__, 57289));
242466
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(8583)]).then(__webpack_require__.bind(__webpack_require__, 57289));
242348
242467
  return imported.default;
242349
242468
  }
242350
242469
  if (module === "@ohif/extension-test") {
242351
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(8499)]).then(__webpack_require__.bind(__webpack_require__, 94285));
242470
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(7166), __webpack_require__.e(8499)]).then(__webpack_require__.bind(__webpack_require__, 94285));
242352
242471
  return imported.default;
242353
242472
  }
242354
242473
  if (module === "@ohif/extension-cornerstone-dicom-rt") {
@@ -397438,7 +397557,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397438
397557
  /******/ // This function allow to reference async chunks
397439
397558
  /******/ __webpack_require__.u = (chunkId) => {
397440
397559
  /******/ // return url for filenames based on template
397441
- /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"e426258a9ad5bcf9bb3e","147":"173b4a11960d03a3b5b0","213":"18a8b5a1e2f00de7feaf","572":"be57af5b834dd833a418","732":"ea6f9d8504e37e01a208","1459":"ed7323f44e4ff4ecd69a","1608":"e4aadbf17d38143dacdf","1927":"be67b3aafe238ca9f191","1933":"0055c536e1392867e57c","2007":"2559b710030605fc2bc6","2018":"ab8f9ceeae0e18eb303b","2075":"23265b8e7597c398db4f","2108":"aea8d3b39486dd5ab39e","2424":"5e858661a06aa36dd859","2701":"b591cf6385ed53ed6093","2851":"c5202066974b96955c28","3054":"a2a50c4674d99c619ca7","3138":"5ed994e6e0ff7c720a75","3461":"54f8d64ed1965c14ec4c","3694":"a41ec0ba4f935200ab93","4202":"850a7c7c011800b3daea","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"18379f328211aee3aba5","4579":"0a6b2f49a7e136a79e37","4688":"e23f20a556dca69540fd","4819":"fb82fcc8360f4883691e","5015":"dda760490cf19777b6b3","5028":"494b6ca9e0f5567c26e2","5261":"2655560097e9250eac44","5457":"328f29b05df8d287491b","5485":"53614f38e6ee0e052bdc","5802":"41cf74cda9aad21601e8","6027":"1bfe806a0cb494dfc265","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7431":"5e14641f2c71e852abe7","7639":"2ec2272d8eb08df56b66","8094":"148a66619607e37cbf19","8305":"21d4c7deff19f6ce9a6a","8499":"dbeca38ee1d1471ce4d8","8558":"5c64a061bf4d5d5f6d7a","8583":"a0ccedd0799600ad5fad","9205":"315c3b56464a7590235a","9567":"be350438bed4e656f278","9845":"267831496ba080d9f8da","9862":"09783830f0cb75a84d2a","9927":"3bdd61e78a710e09cc0b"}[chunkId] + ".js";
397560
+ /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"203f56fd4f235891345a","213":"d8a8ffeec432cd8363c0","572":"be57af5b834dd833a418","732":"ea6f9d8504e37e01a208","1459":"4ad39e2c21e35cb2be1c","1608":"26306ea38618db59eff7","1927":"be67b3aafe238ca9f191","1933":"82822511235016082da4","2007":"2559b710030605fc2bc6","2018":"6f06faf8d0a5c91f5e7c","2075":"23265b8e7597c398db4f","2108":"aea8d3b39486dd5ab39e","2424":"c602ad458e7902f7f555","2701":"6873805ddfdccc7a8b1e","2851":"123d7f6fa1186ac1308a","3054":"a2a50c4674d99c619ca7","3138":"bc81953147e0c5f3b23f","3461":"f65494e79c37a14bc206","3694":"a41ec0ba4f935200ab93","3754":"fd4b67c2a29c4bc4a840","4202":"4fcd0de412907efd5b53","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"75bf28fe32a927130dec","4579":"0a6b2f49a7e136a79e37","4819":"23965159795eaeb1ca1b","5015":"54d7fda0f8e819aaa578","5028":"b806370179a0f878527b","5261":"2655560097e9250eac44","5457":"d1e9be8eab20c1620624","5485":"7de6ed76c9bf762fd395","5802":"26f84db0ff8851532c36","6027":"11c8ba4581dca8a82b91","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7166":"6334b7a549c8d1f58bfd","7431":"5e14641f2c71e852abe7","7639":"d7571b9b1bdd3c712fa7","8094":"148a66619607e37cbf19","8305":"7ff9f067007c6fc02eff","8499":"b0d3892bff3f3163f747","8558":"ae26725ef258ef186524","8583":"f56d7ead5b46d8d6f294","9205":"315c3b56464a7590235a","9567":"be350438bed4e656f278","9845":"8c450e8d65a78a5afcd3","9862":"a5f7925840868fa4ecdb","9927":"ceb2c44737524314f168"}[chunkId] + ".js";
397442
397561
  /******/ };
397443
397562
  /******/ })();
397444
397563
  /******/
@@ -397599,7 +397718,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397599
397718
  /******/ };
397600
397719
  /******/
397601
397720
  /******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
397602
- /******/ var cssChunks = {"147":1,"1608":1,"1933":1,"2591":1,"3138":1,"4819":1,"4972":1,"5028":1,"5802":1,"7159":1,"7829":1,"8305":1,"8499":1,"8583":1};
397721
+ /******/ var cssChunks = {"1608":1,"1933":1,"2591":1,"3138":1,"3754":1,"4819":1,"4972":1,"5028":1,"5802":1,"7159":1,"7829":1,"8305":1,"8499":1,"8583":1};
397603
397722
  /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
397604
397723
  /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
397605
397724
  /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
@@ -397614,7 +397733,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397614
397733
  /******/ // no hmr
397615
397734
  /******/
397616
397735
  /******/ __webpack_require__.F.miniCss = (chunkId) => {
397617
- /******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && /^(1(47|608|933)|8(305|499|583)|(481|715|782)9|2591|3138|3524|4972|5028|5802)$/.test(chunkId)) {
397736
+ /******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && /^(3(138|524|754)|8(305|499|583)|(481|715|782)9|1608|1933|2591|4972|5028|5802)$/.test(chunkId)) {
397618
397737
  /******/ installedCssChunks[chunkId] = null;
397619
397738
  /******/ var link = document.createElement('link');
397620
397739
  /******/
@@ -397753,46 +397872,46 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397753
397872
  /******/ 6939
397754
397873
  /******/ ],
397755
397874
  /******/ "1608": [
397756
- /******/ 147
397875
+ /******/ 3754
397757
397876
  /******/ ],
397758
397877
  /******/ "2424": [
397759
397878
  /******/ 7159
397760
397879
  /******/ ],
397761
397880
  /******/ "3138": [
397762
- /******/ 147
397881
+ /******/ 3754
397763
397882
  /******/ ],
397764
397883
  /******/ "4819": [
397765
- /******/ 147,
397884
+ /******/ 3754,
397766
397885
  /******/ 2701,
397767
397886
  /******/ 9862
397768
397887
  /******/ ],
397769
397888
  /******/ "4972": [
397770
- /******/ 147
397889
+ /******/ 3754
397771
397890
  /******/ ],
397772
397891
  /******/ "5028": [
397773
- /******/ 147,
397892
+ /******/ 3754,
397774
397893
  /******/ 4202
397775
397894
  /******/ ],
397776
397895
  /******/ "7829": [
397777
- /******/ 147,
397896
+ /******/ 3754,
397778
397897
  /******/ 2701
397779
397898
  /******/ ],
397780
397899
  /******/ "8305": [
397781
- /******/ 147,
397900
+ /******/ 3754,
397782
397901
  /******/ 9845
397783
397902
  /******/ ],
397784
397903
  /******/ "8499": [
397785
- /******/ 147
397904
+ /******/ 3754
397786
397905
  /******/ ],
397787
397906
  /******/ "8558": [
397788
397907
  /******/ 2108,
397789
397908
  /******/ 7431,
397790
397909
  /******/ 2851,
397791
- /******/ 4688,
397910
+ /******/ 7166,
397792
397911
  /******/ 1608
397793
397912
  /******/ ],
397794
397913
  /******/ "8583": [
397795
- /******/ 147
397914
+ /******/ 3754
397796
397915
  /******/ ]
397797
397916
  /******/ };
397798
397917
  /******/ __webpack_require__.f.prefetch = (chunkId, promises) => (Promise.all(promises).then(() => {