@epilot/zenith-react 0.1.0-next.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +95 -15
  2. package/dist/components/appearance-boundary/appearance-boundary.js +32 -34
  3. package/dist/components/appearance-boundary/appearance-boundary.js.map +1 -1
  4. package/dist/components/badge/badge.js +1 -1
  5. package/dist/components/badge/badge.js.map +1 -1
  6. package/dist/components/breadcrumb/breadcrumb.js +10 -10
  7. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  8. package/dist/components/button/button.js +28 -28
  9. package/dist/components/button/button.js.map +1 -1
  10. package/dist/components/button-group/button-group.js.map +1 -1
  11. package/dist/components/callout/callout.js +13 -13
  12. package/dist/components/callout/callout.js.map +1 -1
  13. package/dist/components/card/card.js.map +1 -1
  14. package/dist/components/checkbox/checkbox.js +13 -13
  15. package/dist/components/checkbox/checkbox.js.map +1 -1
  16. package/dist/components/code-block/code-block.js +6 -6
  17. package/dist/components/code-block/code-block.js.map +1 -1
  18. package/dist/components/code-editor/code-editor.js +1 -1
  19. package/dist/components/code-editor/code-editor.js.map +1 -1
  20. package/dist/components/code-editor/indent.js.map +1 -1
  21. package/dist/components/command/command.js +7 -13
  22. package/dist/components/command/command.js.map +1 -1
  23. package/dist/components/data-table/data-table-body.js +120 -66
  24. package/dist/components/data-table/data-table-body.js.map +1 -1
  25. package/dist/components/data-table/data-table-column-header.js +7 -7
  26. package/dist/components/data-table/data-table-column-header.js.map +1 -1
  27. package/dist/components/data-table/data-table-column-order.js +277 -0
  28. package/dist/components/data-table/data-table-column-order.js.map +1 -0
  29. package/dist/components/data-table/data-table-content.js +72 -58
  30. package/dist/components/data-table/data-table-content.js.map +1 -1
  31. package/dist/components/data-table/data-table-context.js +8 -4
  32. package/dist/components/data-table/data-table-context.js.map +1 -1
  33. package/dist/components/data-table/data-table-footer.js +31 -0
  34. package/dist/components/data-table/data-table-footer.js.map +1 -0
  35. package/dist/components/data-table/data-table-header-draggable.js +151 -0
  36. package/dist/components/data-table/data-table-header-draggable.js.map +1 -0
  37. package/dist/components/data-table/data-table-header.js +130 -57
  38. package/dist/components/data-table/data-table-header.js.map +1 -1
  39. package/dist/components/data-table/data-table-resize-handle.js +137 -0
  40. package/dist/components/data-table/data-table-resize-handle.js.map +1 -0
  41. package/dist/components/data-table/data-table.js +184 -156
  42. package/dist/components/data-table/data-table.js.map +1 -1
  43. package/dist/components/data-table/hooks/use-data-table-virtualizer.js +9 -0
  44. package/dist/components/data-table/hooks/use-data-table-virtualizer.js.map +1 -0
  45. package/dist/components/date-range-picker/date-range-picker.js +197 -195
  46. package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
  47. package/dist/components/date-time-picker/calendar.js +29 -29
  48. package/dist/components/date-time-picker/calendar.js.map +1 -1
  49. package/dist/components/date-time-picker/time-picker.js +55 -55
  50. package/dist/components/date-time-picker/time-picker.js.map +1 -1
  51. package/dist/components/density-provider/density-provider.js.map +1 -1
  52. package/dist/components/dialog/dialog.js +1 -1
  53. package/dist/components/dialog/dialog.js.map +1 -1
  54. package/dist/components/drawer/drawer.js +5 -5
  55. package/dist/components/drawer/drawer.js.map +1 -1
  56. package/dist/components/dropdown-menu/dropdown-menu.js +36 -36
  57. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  58. package/dist/components/field/field-combobox.js +4 -4
  59. package/dist/components/field/field-combobox.js.map +1 -1
  60. package/dist/components/field/field.js +40 -40
  61. package/dist/components/field/field.js.map +1 -1
  62. package/dist/components/label/label.js +0 -28
  63. package/dist/components/label/label.js.map +1 -1
  64. package/dist/components/list/list.js +42 -52
  65. package/dist/components/list/list.js.map +1 -1
  66. package/dist/components/option-card/option-card.js +27 -25
  67. package/dist/components/option-card/option-card.js.map +1 -1
  68. package/dist/components/pill/pill.js +9 -9
  69. package/dist/components/pill/pill.js.map +1 -1
  70. package/dist/components/radio/radio.js +14 -14
  71. package/dist/components/radio/radio.js.map +1 -1
  72. package/dist/components/scroll-area/scroll-area.js +9 -9
  73. package/dist/components/scroll-area/scroll-area.js.map +1 -1
  74. package/dist/components/segmented-control/segmented-control.js +1 -1
  75. package/dist/components/segmented-control/segmented-control.js.map +1 -1
  76. package/dist/components/select/select.js +11 -11
  77. package/dist/components/select/select.js.map +1 -1
  78. package/dist/components/separator/separator.js.map +1 -1
  79. package/dist/components/skeleton/skeleton.js.map +1 -1
  80. package/dist/components/slot/compose-as-child.js.map +1 -1
  81. package/dist/components/spinner/spinner.js.map +1 -1
  82. package/dist/components/switch/switch.js +11 -11
  83. package/dist/components/switch/switch.js.map +1 -1
  84. package/dist/components/table/table-pagination.js +1 -1
  85. package/dist/components/table/table-pagination.js.map +1 -1
  86. package/dist/components/table/table.js +15 -15
  87. package/dist/components/table/table.js.map +1 -1
  88. package/dist/components/text/text.js +10 -1
  89. package/dist/components/text/text.js.map +1 -1
  90. package/dist/components/toast/toast.js +30 -32
  91. package/dist/components/toast/toast.js.map +1 -1
  92. package/dist/components/toggle/toggle.js +20 -20
  93. package/dist/components/toggle/toggle.js.map +1 -1
  94. package/dist/delivery/index.d.ts +10 -44
  95. package/dist/delivery/index.js +5 -9
  96. package/dist/index.d.ts +1994 -2272
  97. package/dist/index.js +133 -121
  98. package/dist/index.js.map +1 -1
  99. package/dist/lib/clear-button.js.map +1 -1
  100. package/dist/lib/code-highlight.js.map +1 -1
  101. package/dist/lib/code-tokens.js.map +1 -1
  102. package/dist/lib/pagination.js.map +1 -1
  103. package/dist/packages/tokens/dist/delivery/index.js +18 -48
  104. package/dist/packages/tokens/dist/delivery/index.js.map +1 -1
  105. package/dist/packages/tokens/dist/generated/core.generated.js +18 -0
  106. package/dist/packages/tokens/dist/generated/core.generated.js.map +1 -0
  107. package/dist/packages/tokens/dist/generated/palette.generated.js +5 -5
  108. package/dist/packages/tokens/dist/generated/palette.generated.js.map +1 -1
  109. package/dist/packages/tokens/dist/install.js +9 -9
  110. package/dist/packages/tokens/dist/install.js.map +1 -1
  111. package/dist/styles/document-context.js.map +1 -1
  112. package/dist/styles/make-styles.js.map +1 -1
  113. package/dist/tokens/core.meta.generated.js +2 -2
  114. package/dist/tokens/core.meta.generated.js.map +1 -1
  115. package/dist/tokens/index.d.ts +1029 -1104
  116. package/dist/tokens/index.js +1031 -1106
  117. package/dist/tokens/index.js.map +1 -1
  118. package/dist/tokens/palette.generated.js +2 -2
  119. package/dist/tokens/palette.generated.js.map +1 -1
  120. package/dist/tokens/use-palette-tokens.js.map +1 -1
  121. package/dist/tokens.json +605 -755
  122. package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js +385 -340
  123. package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js.map +1 -1
  124. package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js +344 -229
  125. package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -1
  126. package/dist/vendor/.bun/@dnd-kit_utilities@3.2.2_62547eec5a2188e3/vendor/@dnd-kit/utilities/dist/utilities.esm.js +1 -1
  127. package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js +36 -0
  128. package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
  129. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js +450 -0
  130. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
  131. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js +50 -0
  132. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
  133. package/package.json +5 -4
  134. package/scripts/migration-diagnostics-core.mjs +19 -90
  135. package/scripts/migration-diagnostics.mjs +1 -16
  136. package/scripts/migration-sweep.mjs +2 -12
  137. package/ADOPTING.md +0 -73
  138. package/dist/packages/tokens/dist/delivery/internal.js +0 -181
  139. package/dist/packages/tokens/dist/delivery/internal.js.map +0 -1
  140. package/dist/packages/tokens/dist/generated/core.meta.generated.js +0 -10
  141. package/dist/packages/tokens/dist/generated/core.meta.generated.js.map +0 -1
  142. package/dist/token-assets/core/5cd4072decf5df2a664f0b1d5f2ec250a3309101ded3056c1f87c8bbe3738d50.css +0 -22
@@ -0,0 +1,450 @@
1
+ import { memo as u, notUndefined as m, approxEqual as S, debounce as I } from "./utils.js";
2
+ const z = (r) => r, M = (r) => {
3
+ const h = Math.max(r.startIndex - r.overscan, 0), e = Math.min(r.endIndex + r.overscan, r.count - 1), s = [];
4
+ for (let t = h; t <= e; t++)
5
+ s.push(t);
6
+ return s;
7
+ }, R = (r, h) => {
8
+ const e = r.scrollElement;
9
+ if (!e)
10
+ return;
11
+ const s = r.targetWindow;
12
+ if (!s)
13
+ return;
14
+ const t = (n) => {
15
+ const { width: o, height: l } = n;
16
+ h({ width: Math.round(o), height: Math.round(l) });
17
+ };
18
+ if (t(e.getBoundingClientRect()), !s.ResizeObserver)
19
+ return () => {
20
+ };
21
+ const i = new s.ResizeObserver((n) => {
22
+ const o = n[0];
23
+ if (o != null && o.borderBoxSize) {
24
+ const l = o.borderBoxSize[0];
25
+ if (l) {
26
+ t({ width: l.inlineSize, height: l.blockSize });
27
+ return;
28
+ }
29
+ }
30
+ t(e.getBoundingClientRect());
31
+ });
32
+ return i.observe(e, { box: "border-box" }), () => {
33
+ i.unobserve(e);
34
+ };
35
+ }, b = {
36
+ passive: !0
37
+ }, y = typeof window > "u" ? !0 : "onscrollend" in window, _ = (r, h) => {
38
+ const e = r.scrollElement;
39
+ if (!e)
40
+ return;
41
+ const s = r.targetWindow;
42
+ if (!s)
43
+ return;
44
+ let t = 0;
45
+ const i = r.options.useScrollendEvent && y ? () => {
46
+ } : I(
47
+ s,
48
+ () => {
49
+ h(t, !1);
50
+ },
51
+ r.options.isScrollingResetDelay
52
+ ), n = (c) => () => {
53
+ const { horizontal: a, isRtl: d } = r.options;
54
+ t = a ? e.scrollLeft * (d && -1 || 1) : e.scrollTop, i(), h(t, c);
55
+ }, o = n(!0), l = n(!1);
56
+ return l(), e.addEventListener("scroll", o, b), e.addEventListener("scrollend", l, b), () => {
57
+ e.removeEventListener("scroll", o), e.removeEventListener("scrollend", l);
58
+ };
59
+ }, w = (r, h, e) => {
60
+ if (h != null && h.borderBoxSize) {
61
+ const s = h.borderBoxSize[0];
62
+ if (s)
63
+ return Math.round(
64
+ s[e.options.horizontal ? "inlineSize" : "blockSize"]
65
+ );
66
+ }
67
+ return Math.round(
68
+ r.getBoundingClientRect()[e.options.horizontal ? "width" : "height"]
69
+ );
70
+ }, D = (r, {
71
+ adjustments: h = 0,
72
+ behavior: e
73
+ }, s) => {
74
+ var t, i;
75
+ const n = r + h;
76
+ (i = (t = s.scrollElement) == null ? void 0 : t.scrollTo) == null || i.call(t, {
77
+ [s.options.horizontal ? "left" : "top"]: n,
78
+ behavior: e
79
+ });
80
+ };
81
+ class N {
82
+ constructor(h) {
83
+ this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.scrollToIndexTimeoutId = null, this.measurementsCache = [], this.itemSizeCache = /* @__PURE__ */ new Map(), this.pendingMeasuredCacheIndexes = [], this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this.elementsCache = /* @__PURE__ */ new Map(), this.observer = /* @__PURE__ */ (() => {
84
+ let e = null;
85
+ const s = () => e || (!this.targetWindow || !this.targetWindow.ResizeObserver ? null : e = new this.targetWindow.ResizeObserver((t) => {
86
+ t.forEach((i) => {
87
+ this._measureElement(i.target, i);
88
+ });
89
+ }));
90
+ return {
91
+ disconnect: () => {
92
+ var t;
93
+ (t = s()) == null || t.disconnect(), e = null;
94
+ },
95
+ observe: (t) => {
96
+ var i;
97
+ return (i = s()) == null ? void 0 : i.observe(t, { box: "border-box" });
98
+ },
99
+ unobserve: (t) => {
100
+ var i;
101
+ return (i = s()) == null ? void 0 : i.unobserve(t);
102
+ }
103
+ };
104
+ })(), this.range = null, this.setOptions = (e) => {
105
+ Object.entries(e).forEach(([s, t]) => {
106
+ typeof t > "u" && delete e[s];
107
+ }), this.options = {
108
+ debug: !1,
109
+ initialOffset: 0,
110
+ overscan: 1,
111
+ paddingStart: 0,
112
+ paddingEnd: 0,
113
+ scrollPaddingStart: 0,
114
+ scrollPaddingEnd: 0,
115
+ horizontal: !1,
116
+ getItemKey: z,
117
+ rangeExtractor: M,
118
+ onChange: () => {
119
+ },
120
+ measureElement: w,
121
+ initialRect: { width: 0, height: 0 },
122
+ scrollMargin: 0,
123
+ gap: 0,
124
+ indexAttribute: "data-index",
125
+ initialMeasurementsCache: [],
126
+ lanes: 1,
127
+ isScrollingResetDelay: 150,
128
+ enabled: !0,
129
+ isRtl: !1,
130
+ useScrollendEvent: !0,
131
+ ...e
132
+ };
133
+ }, this.notify = (e) => {
134
+ var s, t;
135
+ (t = (s = this.options).onChange) == null || t.call(s, this, e);
136
+ }, this.maybeNotify = u(
137
+ () => (this.calculateRange(), [
138
+ this.isScrolling,
139
+ this.range ? this.range.startIndex : null,
140
+ this.range ? this.range.endIndex : null
141
+ ]),
142
+ (e) => {
143
+ this.notify(e);
144
+ },
145
+ {
146
+ key: process.env.NODE_ENV !== "production" && "maybeNotify",
147
+ debug: () => this.options.debug,
148
+ initialDeps: [
149
+ this.isScrolling,
150
+ this.range ? this.range.startIndex : null,
151
+ this.range ? this.range.endIndex : null
152
+ ]
153
+ }
154
+ ), this.cleanup = () => {
155
+ this.unsubs.filter(Boolean).forEach((e) => e()), this.unsubs = [], this.observer.disconnect(), this.scrollElement = null, this.targetWindow = null;
156
+ }, this._didMount = () => () => {
157
+ this.cleanup();
158
+ }, this._willUpdate = () => {
159
+ var e;
160
+ const s = this.options.enabled ? this.options.getScrollElement() : null;
161
+ if (this.scrollElement !== s) {
162
+ if (this.cleanup(), !s) {
163
+ this.maybeNotify();
164
+ return;
165
+ }
166
+ this.scrollElement = s, this.scrollElement && "ownerDocument" in this.scrollElement ? this.targetWindow = this.scrollElement.ownerDocument.defaultView : this.targetWindow = ((e = this.scrollElement) == null ? void 0 : e.window) ?? null, this.elementsCache.forEach((t) => {
167
+ this.observer.observe(t);
168
+ }), this._scrollToOffset(this.getScrollOffset(), {
169
+ adjustments: void 0,
170
+ behavior: void 0
171
+ }), this.unsubs.push(
172
+ this.options.observeElementRect(this, (t) => {
173
+ this.scrollRect = t, this.maybeNotify();
174
+ })
175
+ ), this.unsubs.push(
176
+ this.options.observeElementOffset(this, (t, i) => {
177
+ this.scrollAdjustments = 0, this.scrollDirection = i ? this.getScrollOffset() < t ? "forward" : "backward" : null, this.scrollOffset = t, this.isScrolling = i, this.maybeNotify();
178
+ })
179
+ );
180
+ }
181
+ }, this.getSize = () => this.options.enabled ? (this.scrollRect = this.scrollRect ?? this.options.initialRect, this.scrollRect[this.options.horizontal ? "width" : "height"]) : (this.scrollRect = null, 0), this.getScrollOffset = () => this.options.enabled ? (this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset == "function" ? this.options.initialOffset() : this.options.initialOffset), this.scrollOffset) : (this.scrollOffset = null, 0), this.getFurthestMeasurement = (e, s) => {
182
+ const t = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
183
+ for (let n = s - 1; n >= 0; n--) {
184
+ const o = e[n];
185
+ if (t.has(o.lane))
186
+ continue;
187
+ const l = i.get(
188
+ o.lane
189
+ );
190
+ if (l == null || o.end > l.end ? i.set(o.lane, o) : o.end < l.end && t.set(o.lane, !0), t.size === this.options.lanes)
191
+ break;
192
+ }
193
+ return i.size === this.options.lanes ? Array.from(i.values()).sort((n, o) => n.end === o.end ? n.index - o.index : n.end - o.end)[0] : void 0;
194
+ }, this.getMeasurementOptions = u(
195
+ () => [
196
+ this.options.count,
197
+ this.options.paddingStart,
198
+ this.options.scrollMargin,
199
+ this.options.getItemKey,
200
+ this.options.enabled
201
+ ],
202
+ (e, s, t, i, n) => (this.pendingMeasuredCacheIndexes = [], {
203
+ count: e,
204
+ paddingStart: s,
205
+ scrollMargin: t,
206
+ getItemKey: i,
207
+ enabled: n
208
+ }),
209
+ {
210
+ key: !1
211
+ }
212
+ ), this.getMeasurements = u(
213
+ () => [this.getMeasurementOptions(), this.itemSizeCache],
214
+ ({ count: e, paddingStart: s, scrollMargin: t, getItemKey: i, enabled: n }, o) => {
215
+ if (!n)
216
+ return this.measurementsCache = [], this.itemSizeCache.clear(), [];
217
+ this.measurementsCache.length === 0 && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((a) => {
218
+ this.itemSizeCache.set(a.key, a.size);
219
+ }));
220
+ const l = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
221
+ this.pendingMeasuredCacheIndexes = [];
222
+ const c = this.measurementsCache.slice(0, l);
223
+ for (let a = l; a < e; a++) {
224
+ const d = i(a), f = this.options.lanes === 1 ? c[a - 1] : this.getFurthestMeasurement(c, a), g = f ? f.end + this.options.gap : s + t, p = o.get(d), v = typeof p == "number" ? p : this.options.estimateSize(a), x = g + v, O = f ? f.lane : a % this.options.lanes;
225
+ c[a] = {
226
+ index: a,
227
+ start: g,
228
+ size: v,
229
+ end: x,
230
+ key: d,
231
+ lane: O
232
+ };
233
+ }
234
+ return this.measurementsCache = c, c;
235
+ },
236
+ {
237
+ key: process.env.NODE_ENV !== "production" && "getMeasurements",
238
+ debug: () => this.options.debug
239
+ }
240
+ ), this.calculateRange = u(
241
+ () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
242
+ (e, s, t) => this.range = e.length > 0 && s > 0 ? C({
243
+ measurements: e,
244
+ outerSize: s,
245
+ scrollOffset: t
246
+ }) : null,
247
+ {
248
+ key: process.env.NODE_ENV !== "production" && "calculateRange",
249
+ debug: () => this.options.debug
250
+ }
251
+ ), this.getIndexes = u(
252
+ () => [
253
+ this.options.rangeExtractor,
254
+ this.calculateRange(),
255
+ this.options.overscan,
256
+ this.options.count
257
+ ],
258
+ (e, s, t, i) => s === null ? [] : e({
259
+ startIndex: s.startIndex,
260
+ endIndex: s.endIndex,
261
+ overscan: t,
262
+ count: i
263
+ }),
264
+ {
265
+ key: process.env.NODE_ENV !== "production" && "getIndexes",
266
+ debug: () => this.options.debug
267
+ }
268
+ ), this.indexFromElement = (e) => {
269
+ const s = this.options.indexAttribute, t = e.getAttribute(s);
270
+ return t ? parseInt(t, 10) : (console.warn(
271
+ `Missing attribute name '${s}={index}' on measured element.`
272
+ ), -1);
273
+ }, this._measureElement = (e, s) => {
274
+ const t = this.indexFromElement(e), i = this.measurementsCache[t];
275
+ if (!i)
276
+ return;
277
+ const n = i.key, o = this.elementsCache.get(n);
278
+ o !== e && (o && this.observer.unobserve(o), this.observer.observe(e), this.elementsCache.set(n, e)), e.isConnected && this.resizeItem(t, this.options.measureElement(e, s, this));
279
+ }, this.resizeItem = (e, s) => {
280
+ const t = this.measurementsCache[e];
281
+ if (!t)
282
+ return;
283
+ const i = this.itemSizeCache.get(t.key) ?? t.size, n = s - i;
284
+ n !== 0 && ((this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(t, n, this) : t.start < this.getScrollOffset() + this.scrollAdjustments) && (process.env.NODE_ENV !== "production" && this.options.debug && console.info("correction", n), this._scrollToOffset(this.getScrollOffset(), {
285
+ adjustments: this.scrollAdjustments += n,
286
+ behavior: void 0
287
+ })), this.pendingMeasuredCacheIndexes.push(t.index), this.itemSizeCache = new Map(this.itemSizeCache.set(t.key, s)), this.notify(!1));
288
+ }, this.measureElement = (e) => {
289
+ if (!e) {
290
+ this.elementsCache.forEach((s, t) => {
291
+ s.isConnected || (this.observer.unobserve(s), this.elementsCache.delete(t));
292
+ });
293
+ return;
294
+ }
295
+ this._measureElement(e, void 0);
296
+ }, this.getVirtualItems = u(
297
+ () => [this.getIndexes(), this.getMeasurements()],
298
+ (e, s) => {
299
+ const t = [];
300
+ for (let i = 0, n = e.length; i < n; i++) {
301
+ const o = e[i], l = s[o];
302
+ t.push(l);
303
+ }
304
+ return t;
305
+ },
306
+ {
307
+ key: process.env.NODE_ENV !== "production" && "getVirtualItems",
308
+ debug: () => this.options.debug
309
+ }
310
+ ), this.getVirtualItemForOffset = (e) => {
311
+ const s = this.getMeasurements();
312
+ if (s.length !== 0)
313
+ return m(
314
+ s[E(
315
+ 0,
316
+ s.length - 1,
317
+ (t) => m(s[t]).start,
318
+ e
319
+ )]
320
+ );
321
+ }, this.getOffsetForAlignment = (e, s) => {
322
+ const t = this.getSize(), i = this.getScrollOffset();
323
+ s === "auto" && e >= i + t && (s = "end"), s === "end" && (e -= t);
324
+ const n = this.options.horizontal ? "scrollWidth" : "scrollHeight", l = (this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[n] : this.scrollElement[n] : 0) - t;
325
+ return Math.max(Math.min(l, e), 0);
326
+ }, this.getOffsetForIndex = (e, s = "auto") => {
327
+ e = Math.max(0, Math.min(e, this.options.count - 1));
328
+ const t = this.measurementsCache[e];
329
+ if (!t)
330
+ return;
331
+ const i = this.getSize(), n = this.getScrollOffset();
332
+ if (s === "auto")
333
+ if (t.end >= n + i - this.options.scrollPaddingEnd)
334
+ s = "end";
335
+ else if (t.start <= n + this.options.scrollPaddingStart)
336
+ s = "start";
337
+ else
338
+ return [n, s];
339
+ const o = t.start - this.options.scrollPaddingStart + (t.size - i) / 2;
340
+ switch (s) {
341
+ case "center":
342
+ return [this.getOffsetForAlignment(o, s), s];
343
+ case "end":
344
+ return [
345
+ this.getOffsetForAlignment(
346
+ t.end + this.options.scrollPaddingEnd,
347
+ s
348
+ ),
349
+ s
350
+ ];
351
+ default:
352
+ return [
353
+ this.getOffsetForAlignment(
354
+ t.start - this.options.scrollPaddingStart,
355
+ s
356
+ ),
357
+ s
358
+ ];
359
+ }
360
+ }, this.isDynamicMode = () => this.elementsCache.size > 0, this.cancelScrollToIndex = () => {
361
+ this.scrollToIndexTimeoutId !== null && this.targetWindow && (this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId), this.scrollToIndexTimeoutId = null);
362
+ }, this.scrollToOffset = (e, { align: s = "start", behavior: t } = {}) => {
363
+ this.cancelScrollToIndex(), t === "smooth" && this.isDynamicMode() && console.warn(
364
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
365
+ ), this._scrollToOffset(this.getOffsetForAlignment(e, s), {
366
+ adjustments: void 0,
367
+ behavior: t
368
+ });
369
+ }, this.scrollToIndex = (e, { align: s = "auto", behavior: t } = {}) => {
370
+ e = Math.max(0, Math.min(e, this.options.count - 1)), this.cancelScrollToIndex(), t === "smooth" && this.isDynamicMode() && console.warn(
371
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
372
+ );
373
+ const i = this.getOffsetForIndex(e, s);
374
+ if (!i) return;
375
+ const [n, o] = i;
376
+ this._scrollToOffset(n, { adjustments: void 0, behavior: t }), t !== "smooth" && this.isDynamicMode() && this.targetWindow && (this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
377
+ if (this.scrollToIndexTimeoutId = null, this.elementsCache.has(
378
+ this.options.getItemKey(e)
379
+ )) {
380
+ const [c] = m(
381
+ this.getOffsetForIndex(e, o)
382
+ );
383
+ S(c, this.getScrollOffset()) || this.scrollToIndex(e, { align: o, behavior: t });
384
+ } else
385
+ this.scrollToIndex(e, { align: o, behavior: t });
386
+ }));
387
+ }, this.scrollBy = (e, { behavior: s } = {}) => {
388
+ this.cancelScrollToIndex(), s === "smooth" && this.isDynamicMode() && console.warn(
389
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
390
+ ), this._scrollToOffset(this.getScrollOffset() + e, {
391
+ adjustments: void 0,
392
+ behavior: s
393
+ });
394
+ }, this.getTotalSize = () => {
395
+ var e;
396
+ const s = this.getMeasurements();
397
+ let t;
398
+ return s.length === 0 ? t = this.options.paddingStart : t = this.options.lanes === 1 ? ((e = s[s.length - 1]) == null ? void 0 : e.end) ?? 0 : Math.max(
399
+ ...s.slice(-this.options.lanes).map((i) => i.end)
400
+ ), Math.max(
401
+ t - this.options.scrollMargin + this.options.paddingEnd,
402
+ 0
403
+ );
404
+ }, this._scrollToOffset = (e, {
405
+ adjustments: s,
406
+ behavior: t
407
+ }) => {
408
+ this.options.scrollToFn(e, { behavior: t, adjustments: s }, this);
409
+ }, this.measure = () => {
410
+ this.itemSizeCache = /* @__PURE__ */ new Map(), this.notify(!1);
411
+ }, this.setOptions(h);
412
+ }
413
+ }
414
+ const E = (r, h, e, s) => {
415
+ for (; r <= h; ) {
416
+ const t = (r + h) / 2 | 0, i = e(t);
417
+ if (i < s)
418
+ r = t + 1;
419
+ else if (i > s)
420
+ h = t - 1;
421
+ else
422
+ return t;
423
+ }
424
+ return r > 0 ? r - 1 : 0;
425
+ };
426
+ function C({
427
+ measurements: r,
428
+ outerSize: h,
429
+ scrollOffset: e
430
+ }) {
431
+ const s = r.length - 1, i = E(0, s, (o) => r[o].start, e);
432
+ let n = i;
433
+ for (; n < s && r[n].end < e + h; )
434
+ n++;
435
+ return { startIndex: i, endIndex: n };
436
+ }
437
+ export {
438
+ N as Virtualizer,
439
+ S as approxEqual,
440
+ I as debounce,
441
+ z as defaultKeyExtractor,
442
+ M as defaultRangeExtractor,
443
+ D as elementScroll,
444
+ w as measureElement,
445
+ u as memo,
446
+ m as notUndefined,
447
+ _ as observeElementOffset,
448
+ R as observeElementRect
449
+ };
450
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../../../../node_modules/.bun/@tanstack+virtual-core@3.11.2/node_modules/@tanstack/virtual-core/dist/esm/index.js"],"sourcesContent":["import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(element.getBoundingClientRect());\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(element.getBoundingClientRect());\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return Math.round(\n element.getBoundingClientRect()[instance.options.horizontal ? \"width\" : \"height\"]\n );\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollToIndexTimeoutId = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n this._measureElement(entry.target, entry);\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: true,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled) => {\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n return [];\n }\n if (this.measurementsCache.length === 0) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],\n (measurements, outerSize, scrollOffset) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getIndexes = memo(\n () => [\n this.options.rangeExtractor,\n this.calculateRange(),\n this.options.overscan,\n this.options.count\n ],\n (rangeExtractor, range, overscan, count) => {\n return range === null ? [] : rangeExtractor({\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getOffsetForAlignment = (toOffset, align) => {\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (toOffset >= scrollOffset + size) {\n align = \"end\";\n }\n }\n if (align === \"end\") {\n toOffset -= size;\n }\n const scrollSizeProp = this.options.horizontal ? \"scrollWidth\" : \"scrollHeight\";\n const scrollSize = this.scrollElement ? \"document\" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;\n const maxOffset = scrollSize - size;\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n const centerOffset = item.start - this.options.scrollPaddingStart + (item.size - size) / 2;\n switch (align) {\n case \"center\":\n return [this.getOffsetForAlignment(centerOffset, align), align];\n case \"end\":\n return [\n this.getOffsetForAlignment(\n item.end + this.options.scrollPaddingEnd,\n align\n ),\n align\n ];\n default:\n return [\n this.getOffsetForAlignment(\n item.start - this.options.scrollPaddingStart,\n align\n ),\n align\n ];\n }\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.cancelScrollToIndex = () => {\n if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {\n this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);\n this.scrollToIndexTimeoutId = null;\n }\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);\n if (!offsetAndAlign) return;\n const [offset, align] = offsetAndAlign;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n if (behavior !== \"smooth\" && this.isDynamicMode() && this.targetWindow) {\n this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {\n this.scrollToIndexTimeoutId = null;\n const elementInDOM = this.elementsCache.has(\n this.options.getItemKey(index)\n );\n if (elementInDOM) {\n const [latestOffset] = notUndefined(\n this.getOffsetForIndex(index, align)\n );\n if (!approxEqual(latestOffset, this.getScrollOffset())) {\n this.scrollToIndex(index, { align, behavior });\n }\n } else {\n this.scrollToIndex(index, { align, behavior });\n }\n });\n }\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else {\n end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(\n ...measurements.slice(-this.options.lanes).map((m) => m.end)\n );\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset\n}) {\n const count = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n"],"names":["defaultKeyExtractor","index","defaultRangeExtractor","range","start","end","arr","i","observeElementRect","instance","cb","element","targetWindow","handler","rect","width","height","observer","entries","entry","box","addEventListenerOptions","supportsScrollend","observeElementOffset","offset","fallback","debounce","createHandler","isScrolling","horizontal","isRtl","endHandler","measureElement","elementScroll","adjustments","behavior","_a","_b","toOffset","Virtualizer","opts","_ro","get","target","opts2","key","value","sync","memo","d","scrollElement","cached","measurements","furthestMeasurementsFound","furthestMeasurements","m","measurement","previousFurthestMeasurement","a","b","count","paddingStart","scrollMargin","getItemKey","enabled","itemSizeCache","item","min","furthestMeasurement","measuredSize","size","lane","outerSize","scrollOffset","calculateRange","rangeExtractor","overscan","node","attributeName","indexStr","prevNode","itemSize","delta","indexes","virtualItems","k","len","notUndefined","findNearestBinarySearch","align","scrollSizeProp","maxOffset","centerOffset","initialAlign","offsetAndAlign","latestOffset","approxEqual","low","high","getCurrentValue","middle","currentValue","startIndex","endIndex"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,50 @@
1
+ function D(n, l, e) {
2
+ let i = e.initialDeps ?? [], t;
3
+ return () => {
4
+ var r, c, h, m;
5
+ let f;
6
+ e.key && ((r = e.debug) != null && r.call(e)) && (f = Date.now());
7
+ const o = n();
8
+ if (!(o.length !== i.length || o.some((a, u) => i[u] !== a)))
9
+ return t;
10
+ i = o;
11
+ let g;
12
+ if (e.key && ((c = e.debug) != null && c.call(e)) && (g = Date.now()), t = l(...o), e.key && ((h = e.debug) != null && h.call(e))) {
13
+ const a = Math.round((Date.now() - f) * 100) / 100, u = Math.round((Date.now() - g) * 100) / 100, w = u / 16, s = (d, b) => {
14
+ for (d = String(d); d.length < b; )
15
+ d = " " + d;
16
+ return d;
17
+ };
18
+ console.info(
19
+ `%c⏱ ${s(u, 5)} /${s(a, 5)} ms`,
20
+ `
21
+ font-size: .6rem;
22
+ font-weight: bold;
23
+ color: hsl(${Math.max(
24
+ 0,
25
+ Math.min(120 - 120 * w, 120)
26
+ )}deg 100% 31%);`,
27
+ e == null ? void 0 : e.key
28
+ );
29
+ }
30
+ return (m = e == null ? void 0 : e.onChange) == null || m.call(e, t), t;
31
+ };
32
+ }
33
+ function T(n, l) {
34
+ if (n === void 0)
35
+ throw new Error("Unexpected undefined");
36
+ return n;
37
+ }
38
+ const y = (n, l) => Math.abs(n - l) < 1, M = (n, l, e) => {
39
+ let i;
40
+ return function(...t) {
41
+ n.clearTimeout(i), i = n.setTimeout(() => l.apply(this, t), e);
42
+ };
43
+ };
44
+ export {
45
+ y as approxEqual,
46
+ M as debounce,
47
+ D as memo,
48
+ T as notUndefined
49
+ };
50
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../../../../../node_modules/.bun/@tanstack+virtual-core@3.11.2/node_modules/@tanstack/virtual-core/dist/esm/utils.js"],"sourcesContent":["function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n return () => {\n var _a, _b, _c, _d;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);\n return result;\n };\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n"],"names":["memo","getDeps","fn","opts","deps","result","_a","_b","_c","_d","depTime","newDeps","dep","index","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","notUndefined","value","msg","approxEqual","a","b","debounce","targetWindow","ms","timeoutId","args"],"mappings":"AAAA,SAASA,EAAKC,GAASC,GAAIC,GAAM;AAC/B,MAAIC,IAAOD,EAAK,eAAe,CAAA,GAC3BE;AACJ,SAAO,MAAM;AACX,QAAIC,GAAIC,GAAIC,GAAIC;AAChB,QAAIC;AACJ,IAAIP,EAAK,SAASG,IAAKH,EAAK,UAAU,QAAgBG,EAAG,KAAKH,CAAI,OAAIO,IAAU,KAAK,IAAG;AACxF,UAAMC,IAAUV,EAAO;AAEvB,QAAI,EADgBU,EAAQ,WAAWP,EAAK,UAAUO,EAAQ,KAAK,CAACC,GAAKC,MAAUT,EAAKS,CAAK,MAAMD,CAAG;AAEpG,aAAOP;AAET,IAAAD,IAAOO;AACP,QAAIG;AAGJ,QAFIX,EAAK,SAASI,IAAKJ,EAAK,UAAU,QAAgBI,EAAG,KAAKJ,CAAI,OAAIW,IAAa,KAAK,IAAG,IAC3FT,IAASH,EAAG,GAAGS,CAAO,GAClBR,EAAK,SAASK,IAAKL,EAAK,UAAU,QAAgBK,EAAG,KAAKL,CAAI,IAAI;AACpE,YAAMY,IAAa,KAAK,OAAO,KAAK,QAAQL,KAAW,GAAG,IAAI,KACxDM,IAAgB,KAAK,OAAO,KAAK,QAAQF,KAAc,GAAG,IAAI,KAC9DG,IAAsBD,IAAgB,IACtCE,IAAM,CAACC,GAAKC,MAAQ;AAExB,aADAD,IAAM,OAAOA,CAAG,GACTA,EAAI,SAASC;AAClB,UAAAD,IAAM,MAAMA;AAEd,eAAOA;AAAA,MACT;AACA,cAAQ;AAAA,QACN,OAAOD,EAAIF,GAAe,CAAC,CAAC,KAAKE,EAAIH,GAAY,CAAC,CAAC;AAAA,QACnD;AAAA;AAAA;AAAA,yBAGiB,KAAK;AAAA,UACpB;AAAA,UACA,KAAK,IAAI,MAAM,MAAME,GAAqB,GAAG;AAAA,QACvD,CAAS;AAAA,QACDd,KAAQ,OAAO,SAASA,EAAK;AAAA,MACrC;AAAA,IACI;AACA,YAACM,IAAKN,KAAQ,OAAO,SAASA,EAAK,aAAa,QAAgBM,EAAG,KAAKN,GAAME,CAAM,GAC7EA;AAAA,EACT;AACF;AACA,SAASgB,EAAaC,GAAOC,GAAK;AAChC,MAAID,MAAU;AACZ,UAAM,IAAI,MAAM,sBAA8C;AAE9D,SAAOA;AAEX;AACK,MAACE,IAAc,CAACC,GAAGC,MAAM,KAAK,IAAID,IAAIC,CAAC,IAAI,GAC1CC,IAAW,CAACC,GAAc1B,GAAI2B,MAAO;AACzC,MAAIC;AACJ,SAAO,YAAYC,GAAM;AACvB,IAAAH,EAAa,aAAaE,CAAS,GACnCA,IAAYF,EAAa,WAAW,MAAM1B,EAAG,MAAM,MAAM6B,CAAI,GAAGF,CAAE;AAAA,EACpE;AACF;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/zenith-react",
3
- "version": "0.1.0-next.0",
3
+ "version": "0.1.0",
4
4
  "description": "Zenith React components, styled with Griffel and designed for isolated micro-frontend delivery",
5
5
  "type": "module",
6
6
  "repository": {
@@ -36,7 +36,6 @@
36
36
  "tokens.js",
37
37
  "tokens.d.ts",
38
38
  "README.md",
39
- "ADOPTING.md",
40
39
  "scripts/migration-sweep.mjs",
41
40
  "scripts/migration-diagnostics.mjs",
42
41
  "scripts/migration-diagnostics-core.mjs"
@@ -74,7 +73,7 @@
74
73
  "verify:consumer": "bun ../../scripts/verify-packed-consumer.ts"
75
74
  },
76
75
  "dependencies": {
77
- "@epilot/zenith-runtime": "0.1.0-next.0"
76
+ "@epilot/zenith-runtime": "0.1.0"
78
77
  },
79
78
  "peerDependencies": {
80
79
  "react": ">=18",
@@ -83,7 +82,8 @@
83
82
  "devDependencies": {
84
83
  "@dnd-kit/core": "6.3.1",
85
84
  "@dnd-kit/sortable": "10.0.0",
86
- "@epilot/zenith-tokens": "0.1.0-next.0",
85
+ "@dnd-kit/utilities": "3.2.2",
86
+ "@epilot/zenith-tokens": "0.1.0",
87
87
  "@radix-ui/react-accordion": "1.2.12",
88
88
  "@radix-ui/react-alert-dialog": "1.1.15",
89
89
  "@radix-ui/react-avatar": "1.1.10",
@@ -101,6 +101,7 @@
101
101
  "@radix-ui/react-toggle-group": "1.1.11",
102
102
  "@radix-ui/react-tooltip": "1.2.8",
103
103
  "@tanstack/react-table": "8.21.3",
104
+ "@tanstack/react-virtual": "3.11.2",
104
105
  "@testing-library/react": "^16.3.2",
105
106
  "@testing-library/user-event": "^14.6.1",
106
107
  "@types/react": "^19.2.4",