@refraction-ui/react 0.22.0 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-V24GDHUX.js → chunk-4ACSHPCM.js} +2 -2
- package/dist/{chunk-SDAJVXD4.js → chunk-5P56PN3J.js} +2 -2
- package/dist/chunk-75BKRTPO.js +417 -0
- package/dist/{chunk-2Q6HHFAN.js.map → chunk-75BKRTPO.js.map} +1 -1
- package/dist/chunk-7P7EJ56S.js +7 -0
- package/dist/{chunk-QPCKJ2YR.js → chunk-GG6MZDGV.js} +2 -2
- package/dist/{chunk-QDMLIDYN.js → chunk-GU5MI7FX.js} +2 -2
- package/dist/{chunk-3Y2T26QD.js → chunk-JZQ5ZL46.js} +6 -4
- package/dist/{chunk-3Y2T26QD.js.map → chunk-JZQ5ZL46.js.map} +2 -2
- package/dist/{chunk-RSWOLRIC.js → chunk-KIZD73DK.js} +2 -2
- package/dist/{chunk-XMFNBOPO.js → chunk-PY2TIFCT.js} +2 -2
- package/dist/{chunk-XWP763SH.js → chunk-V727VZOE.js} +4 -2
- package/dist/{chunk-XWP763SH.js.map → chunk-V727VZOE.js.map} +2 -2
- package/dist/{chunk-3I3DYDHR.js → chunk-WNLYPQOS.js} +2 -2
- package/dist/{chunk-63N4PZUJ.js → chunk-X6HEKRWE.js} +2 -2
- package/dist/{chunk-WYKPPK3W.js → chunk-XAJDSVZR.js} +2 -2
- package/dist/faro-engine-VIUXJAPH-FSARIABU.js +3 -0
- package/dist/{faro-engine-47HGRAQH-JKINJPMH.js.map → faro-engine-VIUXJAPH-FSARIABU.js.map} +1 -1
- package/dist/index.cjs +736 -274
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/internal/avatar/index.d.cts +4 -1
- package/dist/internal/avatar/index.d.ts +4 -1
- package/dist/internal/data-table/index.d.cts +48 -3
- package/dist/internal/data-table/index.d.ts +48 -3
- package/dist/internal/line-chart/index.d.ts +17 -3
- package/dist/internal/native-select/index.d.ts +21 -0
- package/dist/internal/react-avatar/index.d.cts +4 -2
- package/dist/internal/react-avatar/index.d.ts +4 -2
- package/dist/internal/react-command/index.d.cts +13 -2
- package/dist/internal/react-command/index.d.ts +13 -2
- package/dist/internal/react-data-table/index.d.cts +27 -9
- package/dist/internal/react-data-table/index.d.ts +27 -9
- package/dist/internal/react-dialog/index.d.cts +5 -0
- package/dist/internal/react-dialog/index.d.ts +5 -0
- package/dist/internal/react-dropdown-menu/index.d.cts +19 -1
- package/dist/internal/react-dropdown-menu/index.d.ts +19 -1
- package/dist/internal/react-line-chart/index.d.ts +7 -2
- package/dist/internal/react-native-select/index.d.ts +19 -0
- package/dist/internal/react-stat-grid/index.d.ts +22 -11
- package/dist/internal/react-table/index.d.ts +39 -0
- package/dist/internal/stat-grid/index.d.ts +49 -7
- package/dist/internal/table/index.d.ts +46 -0
- package/dist/react-accordion.js +1 -1
- package/dist/react-action-list.js +1 -1
- package/dist/react-ai.js +1 -1
- package/dist/react-analytics.js +16 -4
- package/dist/react-analytics.js.map +2 -2
- package/dist/react-animated-text.js +1 -1
- package/dist/react-app-shell.js +1 -1
- package/dist/react-audience-feature-card.js +1 -1
- package/dist/react-audio-room.js +1 -1
- package/dist/react-auth.js +1 -1
- package/dist/react-avatar-group.js +1 -1
- package/dist/react-avatar.js +13 -9
- package/dist/react-avatar.js.map +2 -2
- package/dist/react-badge.js +1 -1
- package/dist/react-bottom-nav.js +1 -1
- package/dist/react-brand-network-cell.js +1 -1
- package/dist/react-breadcrumbs.js +1 -1
- package/dist/react-browser-chrome-mock.js +1 -1
- package/dist/react-button.js +3 -3
- package/dist/react-calendar.js +1 -1
- package/dist/react-call-controls.js +1 -1
- package/dist/react-callout.js +1 -1
- package/dist/react-card-grid.js +1 -1
- package/dist/react-card.js +1 -1
- package/dist/react-carousel.js +1 -1
- package/dist/react-charts.js +1 -1
- package/dist/react-checkbox.js +1 -1
- package/dist/react-checklist.js +1 -1
- package/dist/react-code-block.js +1 -1
- package/dist/react-code-editor.js +1 -1
- package/dist/react-collapsible.js +1 -1
- package/dist/react-combobox.js +1 -1
- package/dist/react-command-input.js +1 -1
- package/dist/react-command.js +115 -70
- package/dist/react-command.js.map +3 -3
- package/dist/react-composer.js +3 -3
- package/dist/react-content-protection.js +1 -1
- package/dist/react-conversation.js +5 -5
- package/dist/react-cookie-consent.js +1 -1
- package/dist/react-data-table.js +125 -114
- package/dist/react-data-table.js.map +2 -2
- package/dist/react-date-picker.js +1 -1
- package/dist/react-device-frame.js +1 -1
- package/dist/react-dialog.js +33 -9
- package/dist/react-dialog.js.map +2 -2
- package/dist/react-diff-viewer.js +1 -1
- package/dist/react-dropdown-menu.js +61 -8
- package/dist/react-dropdown-menu.js.map +3 -3
- package/dist/react-editor-status-bar.js +1 -1
- package/dist/react-editor-tabs.js +1 -1
- package/dist/react-emoji-picker.js +2 -2
- package/dist/react-empty-state.js +1 -1
- package/dist/react-feedback-dialog.js +2 -2
- package/dist/react-file-tree.js +1 -1
- package/dist/react-file-upload.js +1 -1
- package/dist/react-floating-reactions.js +1 -1
- package/dist/react-flow-editor.js +2 -2
- package/dist/react-footer.js +1 -1
- package/dist/react-funnel-chart.js +1 -1
- package/dist/react-graph-view.js +2 -2
- package/dist/react-infinite-canvas.js +2 -2
- package/dist/react-inline-editor.js +1 -1
- package/dist/react-input-group.js +1 -1
- package/dist/react-input.js +2 -2
- package/dist/react-install-prompt.js +1 -1
- package/dist/react-kanban-board.js +1 -1
- package/dist/react-keyboard-shortcut.js +2 -2
- package/dist/react-language-selector.js +1 -1
- package/dist/react-line-chart.js +49 -11
- package/dist/react-line-chart.js.map +2 -2
- package/dist/react-link-card.js +1 -1
- package/dist/react-live-captions.js +1 -1
- package/dist/react-live-cursors.js +1 -1
- package/dist/react-live-transcript.js +1 -1
- package/dist/react-location-selector.js +1 -1
- package/dist/react-logger.js +3 -3
- package/dist/react-markdown-renderer.js +2 -2
- package/dist/react-marquee-strip.js +1 -1
- package/dist/react-mascot.js +1 -1
- package/dist/react-mastery-bar.js +1 -1
- package/dist/react-mini-map.js +1 -1
- package/dist/react-mobile-nav.js +1 -1
- package/dist/react-native-select.js +52 -0
- package/dist/react-native-select.js.map +7 -0
- package/dist/react-navbar.js +1 -1
- package/dist/react-numbered-steps.js +1 -1
- package/dist/react-otp-input.js +1 -1
- package/dist/react-page-header.js +1 -1
- package/dist/react-pagination.js +1 -1
- package/dist/react-password-input.js +2 -2
- package/dist/react-payment.js +1 -1
- package/dist/react-popover.js +1 -1
- package/dist/react-pre-call-lobby.js +1 -1
- package/dist/react-presence-indicator.js +1 -1
- package/dist/react-pricing-card.js +1 -1
- package/dist/react-progress-display.js +1 -1
- package/dist/react-radial-gauge.js +1 -1
- package/dist/react-radio.js +1 -1
- package/dist/react-rating-scale.js +1 -1
- package/dist/react-reaction-bar.js +1 -1
- package/dist/react-resizable-layout.js +1 -1
- package/dist/react-search-bar.js +1 -1
- package/dist/react-section-head.js +1 -1
- package/dist/react-segmented-control.js +1 -1
- package/dist/react-select.js +1 -1
- package/dist/react-separator.js +1 -1
- package/dist/react-sheet.js +1 -1
- package/dist/react-sidebar.js +1 -1
- package/dist/react-skeleton.js +1 -1
- package/dist/react-skip-to-content.js +1 -1
- package/dist/react-slide-viewer.js +1 -1
- package/dist/react-slider.js +1 -1
- package/dist/react-slot-picker.js +1 -1
- package/dist/react-social-auth-button.js +3 -3
- package/dist/react-sortable-list.js +1 -1
- package/dist/react-stat-grid.js +91 -22
- package/dist/react-stat-grid.js.map +2 -2
- package/dist/react-status-indicator.js +1 -1
- package/dist/react-steps.js +1 -1
- package/dist/react-sticky-note.js +1 -1
- package/dist/react-switch.js +1 -1
- package/dist/react-table-of-contents.js +1 -1
- package/dist/react-table.js +148 -0
- package/dist/react-table.js.map +7 -0
- package/dist/react-tabs.js +35 -6
- package/dist/react-tabs.js.map +2 -2
- package/dist/react-terminal.js +1 -1
- package/dist/react-test-results.js +1 -1
- package/dist/react-textarea.js +1 -1
- package/dist/react-thread-view.js +2 -2
- package/dist/react-timeline.js +1 -1
- package/dist/react-toast.js +1 -1
- package/dist/react-tooltip.js +1 -1
- package/dist/react-version-selector.js +1 -1
- package/dist/react-video-grid.js +2 -2
- package/dist/react-video-player.js +1 -1
- package/dist/react-video-tile.js +2 -2
- package/dist/react-voice-pill.js +1 -1
- package/dist/react-waveform.js +1 -1
- package/dist/react-wizard.js +1 -1
- package/dist/shared.js +53 -0
- package/dist/shared.js.map +7 -0
- package/package.json +3 -1
- package/dist/chunk-2Q6HHFAN.js +0 -164
- package/dist/chunk-SDZ3LROZ.js +0 -7
- package/dist/faro-engine-47HGRAQH-JKINJPMH.js +0 -3
- /package/dist/{chunk-V24GDHUX.js.map → chunk-4ACSHPCM.js.map} +0 -0
- /package/dist/{chunk-SDAJVXD4.js.map → chunk-5P56PN3J.js.map} +0 -0
- /package/dist/{chunk-SDZ3LROZ.js.map → chunk-7P7EJ56S.js.map} +0 -0
- /package/dist/{chunk-QPCKJ2YR.js.map → chunk-GG6MZDGV.js.map} +0 -0
- /package/dist/{chunk-QDMLIDYN.js.map → chunk-GU5MI7FX.js.map} +0 -0
- /package/dist/{chunk-RSWOLRIC.js.map → chunk-KIZD73DK.js.map} +0 -0
- /package/dist/{chunk-XMFNBOPO.js.map → chunk-PY2TIFCT.js.map} +0 -0
- /package/dist/{chunk-3I3DYDHR.js.map → chunk-WNLYPQOS.js.map} +0 -0
- /package/dist/{chunk-63N4PZUJ.js.map → chunk-X6HEKRWE.js.map} +0 -0
- /package/dist/{chunk-WYKPPK3W.js.map → chunk-XAJDSVZR.js.map} +0 -0
package/dist/index.cjs
CHANGED
|
@@ -767,7 +767,7 @@ var init_dist = __esm({
|
|
|
767
767
|
}
|
|
768
768
|
});
|
|
769
769
|
|
|
770
|
-
// ../logger/dist/chunk-
|
|
770
|
+
// ../logger/dist/chunk-OEINJBSK.js
|
|
771
771
|
async function createFaroSink(opts) {
|
|
772
772
|
const transport = opts.transport ?? await loadFaroTransport(opts);
|
|
773
773
|
if (!transport) return null;
|
|
@@ -788,10 +788,12 @@ async function loadFaroTransport(opts) {
|
|
|
788
788
|
const sdkName = "@grafana/faro-web-sdk";
|
|
789
789
|
const tracingName = "@grafana/faro-web-tracing";
|
|
790
790
|
const sdk = await import(
|
|
791
|
+
/* webpackIgnore: true */
|
|
791
792
|
/* @vite-ignore */
|
|
792
793
|
sdkName
|
|
793
794
|
);
|
|
794
795
|
const tracing = await import(
|
|
796
|
+
/* webpackIgnore: true */
|
|
795
797
|
/* @vite-ignore */
|
|
796
798
|
tracingName
|
|
797
799
|
);
|
|
@@ -833,8 +835,8 @@ function flatten(ctx) {
|
|
|
833
835
|
return out;
|
|
834
836
|
}
|
|
835
837
|
var FARO_LEVEL;
|
|
836
|
-
var
|
|
837
|
-
"../logger/dist/chunk-
|
|
838
|
+
var init_chunk_OEINJBSK = __esm({
|
|
839
|
+
"../logger/dist/chunk-OEINJBSK.js"() {
|
|
838
840
|
FARO_LEVEL = {
|
|
839
841
|
debug: "debug",
|
|
840
842
|
info: "info",
|
|
@@ -845,14 +847,14 @@ var init_chunk_57LG5ZUS = __esm({
|
|
|
845
847
|
}
|
|
846
848
|
});
|
|
847
849
|
|
|
848
|
-
// ../logger/dist/faro-engine-
|
|
849
|
-
var
|
|
850
|
-
__export(
|
|
850
|
+
// ../logger/dist/faro-engine-VIUXJAPH.js
|
|
851
|
+
var faro_engine_VIUXJAPH_exports = {};
|
|
852
|
+
__export(faro_engine_VIUXJAPH_exports, {
|
|
851
853
|
createFaroSink: () => createFaroSink
|
|
852
854
|
});
|
|
853
|
-
var
|
|
854
|
-
"../logger/dist/faro-engine-
|
|
855
|
-
|
|
855
|
+
var init_faro_engine_VIUXJAPH = __esm({
|
|
856
|
+
"../logger/dist/faro-engine-VIUXJAPH.js"() {
|
|
857
|
+
init_chunk_OEINJBSK();
|
|
856
858
|
}
|
|
857
859
|
});
|
|
858
860
|
|
|
@@ -2419,7 +2421,9 @@ var Button = React52__namespace.forwardRef(
|
|
|
2419
2421
|
return React52__namespace.cloneElement(children, {
|
|
2420
2422
|
ref: mergedRef,
|
|
2421
2423
|
className: cn(classes, children.props.className, "relative"),
|
|
2422
|
-
type
|
|
2424
|
+
// `type` is only meaningful on a <button>; forcing type="button" onto
|
|
2425
|
+
// an <a> changes its semantics (it becomes a MIME-type hint).
|
|
2426
|
+
...children.type === "button" || props.type ? { type: getButtonType({ type: props.type }) } : {},
|
|
2423
2427
|
...api.ariaProps,
|
|
2424
2428
|
...api.dataAttributes,
|
|
2425
2429
|
...props,
|
|
@@ -4307,26 +4311,49 @@ function useCommandContext() {
|
|
|
4307
4311
|
}
|
|
4308
4312
|
return ctx;
|
|
4309
4313
|
}
|
|
4314
|
+
function itemValueOf(value, children) {
|
|
4315
|
+
if (value !== void 0) return value;
|
|
4316
|
+
if (typeof children === "string" || typeof children === "number") return String(children);
|
|
4317
|
+
return "";
|
|
4318
|
+
}
|
|
4319
|
+
function collectItems(node, into) {
|
|
4320
|
+
React52__namespace.Children.forEach(node, (child) => {
|
|
4321
|
+
if (!React52__namespace.isValidElement(child)) return;
|
|
4322
|
+
if (child.type === CommandItem) {
|
|
4323
|
+
const value = itemValueOf(child.props.value, child.props.children);
|
|
4324
|
+
into.push({ id: value, value, label: value, disabled: child.props.disabled });
|
|
4325
|
+
return;
|
|
4326
|
+
}
|
|
4327
|
+
collectItems(child.props.children, into);
|
|
4328
|
+
});
|
|
4329
|
+
return into;
|
|
4330
|
+
}
|
|
4331
|
+
var defaultFilter3 = (value, search) => value.toLowerCase().includes(search.toLowerCase());
|
|
4310
4332
|
function Command({
|
|
4311
4333
|
open,
|
|
4312
4334
|
onOpenChange,
|
|
4313
|
-
filter,
|
|
4335
|
+
filter = defaultFilter3,
|
|
4314
4336
|
className,
|
|
4315
4337
|
children
|
|
4316
4338
|
}) {
|
|
4317
|
-
const [
|
|
4339
|
+
const [registered, setRegistered] = React52__namespace.useState(() => /* @__PURE__ */ new Map());
|
|
4318
4340
|
const [search, setSearch] = React52__namespace.useState("");
|
|
4319
4341
|
const [selectedIndex, setSelectedIndex] = React52__namespace.useState(0);
|
|
4320
|
-
const
|
|
4321
|
-
const
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4342
|
+
const uid = React52__namespace.useId().replace(/:/g, "");
|
|
4343
|
+
const listId = `rfr-cmd-list-${uid}`;
|
|
4344
|
+
const inputId = `rfr-cmd-input-${uid}`;
|
|
4345
|
+
const api = React52__namespace.useMemo(() => createCommand({ open, onOpenChange, filter }), [open, onOpenChange, filter]);
|
|
4346
|
+
const items = React52__namespace.useMemo(() => {
|
|
4347
|
+
const all = collectItems(children, []);
|
|
4348
|
+
const known = new Set(all.map((i) => i.value));
|
|
4349
|
+
for (const [value, item] of registered) {
|
|
4350
|
+
if (!known.has(value)) all.push({ id: value, value, label: value, disabled: item.disabled });
|
|
4351
|
+
}
|
|
4352
|
+
return all;
|
|
4353
|
+
}, [children, registered]);
|
|
4354
|
+
const matches = React52__namespace.useCallback((value) => !search || filter(value, search), [filter, search]);
|
|
4355
|
+
const filteredItems = React52__namespace.useMemo(() => items.filter((i) => matches(i.value)), [items, matches]);
|
|
4356
|
+
const highlighted = filteredItems[selectedIndex];
|
|
4330
4357
|
const handleSearch = React52__namespace.useCallback((query) => {
|
|
4331
4358
|
setSearch(query);
|
|
4332
4359
|
setSelectedIndex(0);
|
|
@@ -4334,57 +4361,59 @@ function Command({
|
|
|
4334
4361
|
const handleSelect = React52__namespace.useCallback((index2) => {
|
|
4335
4362
|
setSelectedIndex(index2);
|
|
4336
4363
|
}, []);
|
|
4337
|
-
const registerItem = React52__namespace.useCallback((item) => {
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
return
|
|
4364
|
+
const registerItem = React52__namespace.useCallback((value, item) => {
|
|
4365
|
+
setRegistered((prev) => {
|
|
4366
|
+
const current = prev.get(value);
|
|
4367
|
+
if (current && current.domId === item.domId && current.disabled === item.disabled) return prev;
|
|
4368
|
+
const next = new Map(prev);
|
|
4369
|
+
next.set(value, item);
|
|
4370
|
+
return next;
|
|
4341
4371
|
});
|
|
4342
4372
|
}, []);
|
|
4343
|
-
const unregisterItem = React52__namespace.useCallback((
|
|
4344
|
-
|
|
4373
|
+
const unregisterItem = React52__namespace.useCallback((value) => {
|
|
4374
|
+
setRegistered((prev) => {
|
|
4375
|
+
if (!prev.has(value)) return prev;
|
|
4376
|
+
const next = new Map(prev);
|
|
4377
|
+
next.delete(value);
|
|
4378
|
+
return next;
|
|
4379
|
+
});
|
|
4345
4380
|
}, []);
|
|
4346
|
-
const handleKeyDown =
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
unregisterItem,
|
|
4383
|
-
listId: api.ids.list,
|
|
4384
|
-
inputId: api.ids.input
|
|
4385
|
-
}),
|
|
4386
|
-
[search, handleSearch, selectedIndex, handleSelect, items, filteredItems, registerItem, unregisterItem, api.ids.list, api.ids.input]
|
|
4387
|
-
);
|
|
4381
|
+
const handleKeyDown = (e) => {
|
|
4382
|
+
const count = filteredItems.length;
|
|
4383
|
+
const handler = createKeyboardHandler({
|
|
4384
|
+
[Keys.ArrowDown]: (ev) => {
|
|
4385
|
+
ev.preventDefault();
|
|
4386
|
+
if (count > 0) setSelectedIndex((prev) => (prev + 1) % count);
|
|
4387
|
+
},
|
|
4388
|
+
[Keys.ArrowUp]: (ev) => {
|
|
4389
|
+
ev.preventDefault();
|
|
4390
|
+
if (count > 0) setSelectedIndex((prev) => (prev - 1 + count) % count);
|
|
4391
|
+
},
|
|
4392
|
+
[Keys.Enter]: (ev) => {
|
|
4393
|
+
ev.preventDefault();
|
|
4394
|
+
if (highlighted && !highlighted.disabled) registered.get(highlighted.value)?.select();
|
|
4395
|
+
},
|
|
4396
|
+
[Keys.Escape]: (ev) => {
|
|
4397
|
+
ev.preventDefault();
|
|
4398
|
+
onOpenChange?.(false);
|
|
4399
|
+
}
|
|
4400
|
+
});
|
|
4401
|
+
handler(e.nativeEvent);
|
|
4402
|
+
};
|
|
4403
|
+
const ctx = {
|
|
4404
|
+
search,
|
|
4405
|
+
onSearch: handleSearch,
|
|
4406
|
+
selectedIndex,
|
|
4407
|
+
onSelect: handleSelect,
|
|
4408
|
+
items,
|
|
4409
|
+
filteredItems,
|
|
4410
|
+
matches,
|
|
4411
|
+
registerItem,
|
|
4412
|
+
unregisterItem,
|
|
4413
|
+
activeDescendant: highlighted ? registered.get(highlighted.value)?.domId : void 0,
|
|
4414
|
+
listId,
|
|
4415
|
+
inputId
|
|
4416
|
+
};
|
|
4388
4417
|
return React52__namespace.createElement(
|
|
4389
4418
|
CommandContext.Provider,
|
|
4390
4419
|
{ value: ctx },
|
|
@@ -4393,6 +4422,8 @@ function Command({
|
|
|
4393
4422
|
{
|
|
4394
4423
|
className: cn(commandVariants(), className),
|
|
4395
4424
|
...api.ariaProps,
|
|
4425
|
+
"aria-owns": listId,
|
|
4426
|
+
id: `rfr-cmd-${uid}`,
|
|
4396
4427
|
onKeyDown: handleKeyDown
|
|
4397
4428
|
},
|
|
4398
4429
|
children
|
|
@@ -4401,7 +4432,7 @@ function Command({
|
|
|
4401
4432
|
}
|
|
4402
4433
|
var CommandInput = React52__namespace.forwardRef(
|
|
4403
4434
|
function CommandInput2({ className, onChange, ...props }, ref) {
|
|
4404
|
-
const { search, onSearch, inputId, listId } = useCommandContext();
|
|
4435
|
+
const { search, onSearch, inputId, listId, activeDescendant } = useCommandContext();
|
|
4405
4436
|
const handleChange = (e) => {
|
|
4406
4437
|
onSearch(e.target.value);
|
|
4407
4438
|
onChange?.(e);
|
|
@@ -4413,6 +4444,7 @@ var CommandInput = React52__namespace.forwardRef(
|
|
|
4413
4444
|
role: "searchbox",
|
|
4414
4445
|
"aria-autocomplete": "list",
|
|
4415
4446
|
"aria-controls": listId,
|
|
4447
|
+
"aria-activedescendant": activeDescendant,
|
|
4416
4448
|
value: search,
|
|
4417
4449
|
onChange: handleChange,
|
|
4418
4450
|
className: cn(commandInputVariants(), className),
|
|
@@ -4474,21 +4506,38 @@ var CommandGroup = React52__namespace.forwardRef(
|
|
|
4474
4506
|
}
|
|
4475
4507
|
);
|
|
4476
4508
|
var CommandItem = React52__namespace.forwardRef(
|
|
4477
|
-
function CommandItem2({ className, value, disabled, onSelect: onItemSelect, children, ...props }, ref) {
|
|
4478
|
-
const
|
|
4509
|
+
function CommandItem2({ className, value, disabled = false, onSelect: onItemSelect, onClick, onMouseMove, children, ...props }, ref) {
|
|
4510
|
+
const { matches, filteredItems, selectedIndex, onSelect, registerItem, unregisterItem } = useCommandContext();
|
|
4511
|
+
const itemValue = itemValueOf(value, children);
|
|
4512
|
+
const domId = `rfr-cmd-item-${React52__namespace.useId().replace(/:/g, "")}`;
|
|
4513
|
+
const onSelectRef = React52__namespace.useRef(onItemSelect);
|
|
4514
|
+
onSelectRef.current = onItemSelect;
|
|
4515
|
+
React52__namespace.useEffect(() => {
|
|
4516
|
+
registerItem(itemValue, { domId, disabled, select: () => onSelectRef.current?.() });
|
|
4517
|
+
}, [registerItem, itemValue, domId, disabled]);
|
|
4518
|
+
React52__namespace.useEffect(() => () => unregisterItem(itemValue), [unregisterItem, itemValue]);
|
|
4519
|
+
if (!matches(itemValue)) return null;
|
|
4520
|
+
const index2 = filteredItems.findIndex((i) => i.value === itemValue);
|
|
4521
|
+
const isSelected = index2 !== -1 && index2 === selectedIndex;
|
|
4522
|
+
const state = disabled ? "disabled" : isSelected ? "selected" : "default";
|
|
4479
4523
|
return React52__namespace.createElement(
|
|
4480
4524
|
"div",
|
|
4481
4525
|
{
|
|
4482
4526
|
ref,
|
|
4527
|
+
id: domId,
|
|
4483
4528
|
role: "option",
|
|
4484
|
-
"aria-selected":
|
|
4485
|
-
"aria-disabled": disabled
|
|
4486
|
-
"data-value":
|
|
4529
|
+
"aria-selected": isSelected,
|
|
4530
|
+
"aria-disabled": disabled,
|
|
4531
|
+
"data-value": itemValue,
|
|
4532
|
+
"data-selected": isSelected ? "" : void 0,
|
|
4487
4533
|
className: cn(commandItemVariants({ state }), className),
|
|
4488
|
-
onClick: () => {
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4534
|
+
onClick: (e) => {
|
|
4535
|
+
onClick?.(e);
|
|
4536
|
+
if (!disabled && !e.defaultPrevented) onItemSelect?.();
|
|
4537
|
+
},
|
|
4538
|
+
onMouseMove: (e) => {
|
|
4539
|
+
onMouseMove?.(e);
|
|
4540
|
+
if (index2 !== -1 && index2 !== selectedIndex) onSelect(index2);
|
|
4492
4541
|
},
|
|
4493
4542
|
...props
|
|
4494
4543
|
},
|
|
@@ -10205,11 +10254,11 @@ function MessageBody({ message }) {
|
|
|
10205
10254
|
message.status === "error" ? h2("div", { className: "mt-1 text-xs text-destructive", role: "alert" }, message.error ?? "Failed to send.") : null
|
|
10206
10255
|
);
|
|
10207
10256
|
}
|
|
10208
|
-
function Reactions({ message, onReact, align }) {
|
|
10257
|
+
function Reactions({ message, onReact, align: align2 }) {
|
|
10209
10258
|
if (!message.reactions || message.reactions.length === 0) return null;
|
|
10210
10259
|
return h2(
|
|
10211
10260
|
"div",
|
|
10212
|
-
{ className: cn("mt-1 flex flex-wrap gap-1",
|
|
10261
|
+
{ className: cn("mt-1 flex flex-wrap gap-1", align2 === "end" && "justify-end") },
|
|
10213
10262
|
...message.reactions.map(
|
|
10214
10263
|
(r) => h2(
|
|
10215
10264
|
"button",
|
|
@@ -10246,7 +10295,7 @@ function HoverActions({
|
|
|
10246
10295
|
isOwn,
|
|
10247
10296
|
onEdit,
|
|
10248
10297
|
onToggleEmojis,
|
|
10249
|
-
align
|
|
10298
|
+
align: align2
|
|
10250
10299
|
}) {
|
|
10251
10300
|
const { replyTo, deleteMessage } = conversation;
|
|
10252
10301
|
return h2(
|
|
@@ -10254,7 +10303,7 @@ function HoverActions({
|
|
|
10254
10303
|
{
|
|
10255
10304
|
className: cn(
|
|
10256
10305
|
"mt-1 flex items-center gap-3 text-xs text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100",
|
|
10257
|
-
|
|
10306
|
+
align2 === "end" && "justify-end"
|
|
10258
10307
|
)
|
|
10259
10308
|
},
|
|
10260
10309
|
// Reply targets this specific message but groups under the originating root.
|
|
@@ -10264,10 +10313,10 @@ function HoverActions({
|
|
|
10264
10313
|
isOwn ? h2("button", { type: "button", className: "hover:text-destructive", onClick: () => deleteMessage(message.id) }, "Delete") : null
|
|
10265
10314
|
);
|
|
10266
10315
|
}
|
|
10267
|
-
function EmojiRow({ onPick, align }) {
|
|
10316
|
+
function EmojiRow({ onPick, align: align2 }) {
|
|
10268
10317
|
return h2(
|
|
10269
10318
|
"div",
|
|
10270
|
-
{ className: cn("mt-1 flex gap-1",
|
|
10319
|
+
{ className: cn("mt-1 flex gap-1", align2 === "end" && "justify-end") },
|
|
10271
10320
|
...QUICK_EMOJIS.map(
|
|
10272
10321
|
(emoji) => h2("button", { key: emoji, type: "button", className: "rounded px-1 text-base hover:bg-accent", onClick: () => onPick(emoji) }, emoji)
|
|
10273
10322
|
)
|
|
@@ -10316,25 +10365,25 @@ function MessageRow({
|
|
|
10316
10365
|
const [editing, setEditing] = React52__namespace.useState(false);
|
|
10317
10366
|
const isUser = currentUserId ? message.author.id === currentUserId : message.role === "user";
|
|
10318
10367
|
const replyCount = getReplyCount(state.messages, message.id);
|
|
10319
|
-
const
|
|
10368
|
+
const align2 = isUser ? "end" : "start";
|
|
10320
10369
|
const inner = h2(
|
|
10321
10370
|
React52__namespace.Fragment,
|
|
10322
10371
|
null,
|
|
10323
10372
|
quotedParent ? h2(QuotedParent, { parent: quotedParent, onClick: () => openThread(rootIdOf(state.messages, quotedParent.id)) }) : null,
|
|
10324
10373
|
editing ? h2(EditField, { message, conversation, onDone: () => setEditing(false) }) : isUser ? h2("div", { className: "inline-block rounded-2xl rounded-br-sm bg-primary/10 px-3 py-2 text-left" }, h2(MessageBody, { message })) : h2(MessageBody, { message }),
|
|
10325
|
-
h2(Reactions, { message, onReact: (e) => react(message.id, e), align }),
|
|
10374
|
+
h2(Reactions, { message, onReact: (e) => react(message.id, e), align: align2 }),
|
|
10326
10375
|
showThreadAffordance && replyCount > 0 ? h2(
|
|
10327
10376
|
"button",
|
|
10328
|
-
{ type: "button", className: cn("mt-1 text-xs font-medium text-primary hover:underline",
|
|
10377
|
+
{ type: "button", className: cn("mt-1 text-xs font-medium text-primary hover:underline", align2 === "end" && "self-end"), onClick: () => openThread(message.id) },
|
|
10329
10378
|
`\u{1F4AC} ${replyCount} ${replyCount === 1 ? "reply" : "replies"}`
|
|
10330
10379
|
) : null,
|
|
10331
|
-
h2(HoverActions, { message, conversation, isOwn: isUser, onEdit: () => setEditing(true), onToggleEmojis: () => setShowEmojis((v2) => !v2), align }),
|
|
10380
|
+
h2(HoverActions, { message, conversation, isOwn: isUser, onEdit: () => setEditing(true), onToggleEmojis: () => setShowEmojis((v2) => !v2), align: align2 }),
|
|
10332
10381
|
showEmojis ? h2(EmojiRow, {
|
|
10333
10382
|
onPick: (e) => {
|
|
10334
10383
|
react(message.id, e);
|
|
10335
10384
|
setShowEmojis(false);
|
|
10336
10385
|
},
|
|
10337
|
-
align
|
|
10386
|
+
align: align2
|
|
10338
10387
|
}) : null
|
|
10339
10388
|
);
|
|
10340
10389
|
if (!isUser) {
|
|
@@ -10927,6 +10976,15 @@ var CookieConsent = React52__namespace.forwardRef(
|
|
|
10927
10976
|
);
|
|
10928
10977
|
|
|
10929
10978
|
// ../data-table/dist/index.js
|
|
10979
|
+
function resolveColumnAlign(col) {
|
|
10980
|
+
return col.align ?? (col.numeric ? "end" : "start");
|
|
10981
|
+
}
|
|
10982
|
+
function getColumnValue(col, row) {
|
|
10983
|
+
return col.accessor ? col.accessor(row) : void 0;
|
|
10984
|
+
}
|
|
10985
|
+
function resolveRowKey(row, index2, getRowKey) {
|
|
10986
|
+
return getRowKey ? getRowKey(row, index2) : index2;
|
|
10987
|
+
}
|
|
10930
10988
|
function createDataTable(props) {
|
|
10931
10989
|
const {
|
|
10932
10990
|
columns,
|
|
@@ -10944,10 +11002,10 @@ function createDataTable(props) {
|
|
|
10944
11002
|
for (const [columnId, filterValue] of Object.entries(filters)) {
|
|
10945
11003
|
if (!filterValue) continue;
|
|
10946
11004
|
const col = columns.find((c) => c.id === columnId);
|
|
10947
|
-
if (!col) continue;
|
|
11005
|
+
if (!col?.accessor) continue;
|
|
10948
11006
|
const lowerFilter = filterValue.toLowerCase();
|
|
10949
11007
|
result = result.filter((row) => {
|
|
10950
|
-
const cellValue = col
|
|
11008
|
+
const cellValue = getColumnValue(col, row);
|
|
10951
11009
|
return String(cellValue ?? "").toLowerCase().includes(lowerFilter);
|
|
10952
11010
|
});
|
|
10953
11011
|
}
|
|
@@ -10957,10 +11015,10 @@ function createDataTable(props) {
|
|
|
10957
11015
|
const filtered = getFilteredData();
|
|
10958
11016
|
if (!sortBy) return filtered;
|
|
10959
11017
|
const col = columns.find((c) => c.id === sortBy);
|
|
10960
|
-
if (!col) return filtered;
|
|
11018
|
+
if (!col?.accessor) return filtered;
|
|
10961
11019
|
return [...filtered].sort((a, b) => {
|
|
10962
|
-
const aVal = col
|
|
10963
|
-
const bVal = col
|
|
11020
|
+
const aVal = getColumnValue(col, a);
|
|
11021
|
+
const bVal = getColumnValue(col, b);
|
|
10964
11022
|
const aStr = String(aVal ?? "");
|
|
10965
11023
|
const bStr = String(bVal ?? "");
|
|
10966
11024
|
const cmp = aStr.localeCompare(bStr, void 0, { numeric: true });
|
|
@@ -11080,8 +11138,18 @@ var rowVariants = cva({
|
|
|
11080
11138
|
selected: "false"
|
|
11081
11139
|
}
|
|
11082
11140
|
});
|
|
11083
|
-
|
|
11084
|
-
|
|
11141
|
+
var dataTableAlignClass = {
|
|
11142
|
+
start: "text-start",
|
|
11143
|
+
center: "text-center",
|
|
11144
|
+
end: "text-end"
|
|
11145
|
+
};
|
|
11146
|
+
var dataTableNumericClass = "tabular-nums whitespace-nowrap";
|
|
11147
|
+
var dataTableSortButtonClass = "inline-flex items-center gap-1 rounded-sm font-inherit text-inherit focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
|
|
11148
|
+
var dataTableActionRowClass = "cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring";
|
|
11149
|
+
var ACTIVATION_KEYS = /* @__PURE__ */ new Set(["Enter", " "]);
|
|
11150
|
+
function filterLabel(header, id) {
|
|
11151
|
+
return typeof header === "string" || typeof header === "number" ? String(header) : id;
|
|
11152
|
+
}
|
|
11085
11153
|
function DataTable({
|
|
11086
11154
|
columns,
|
|
11087
11155
|
data,
|
|
@@ -11090,13 +11158,21 @@ function DataTable({
|
|
|
11090
11158
|
onSort,
|
|
11091
11159
|
filters: controlledFilters,
|
|
11092
11160
|
className,
|
|
11093
|
-
emptyMessage = "No data available"
|
|
11161
|
+
emptyMessage = "No data available",
|
|
11162
|
+
getRowKey,
|
|
11163
|
+
getRowProps,
|
|
11164
|
+
onRowClick,
|
|
11165
|
+
caption,
|
|
11166
|
+
wrapperClassName,
|
|
11167
|
+
...tableProps
|
|
11094
11168
|
}) {
|
|
11095
11169
|
const [sortBy, setSortBy] = React52__namespace.useState(controlledSortBy ?? null);
|
|
11096
11170
|
const [sortDir, setSortDir] = React52__namespace.useState(controlledSortDir);
|
|
11097
11171
|
const [filters, setFilters] = React52__namespace.useState(controlledFilters ?? {});
|
|
11098
11172
|
const api = React52__namespace.useMemo(
|
|
11099
11173
|
() => createDataTable({
|
|
11174
|
+
// The core only reads id/accessor/sortable/filterable; header and cell
|
|
11175
|
+
// are rendered here.
|
|
11100
11176
|
columns,
|
|
11101
11177
|
data,
|
|
11102
11178
|
sortBy: sortBy ?? void 0,
|
|
@@ -11106,119 +11182,100 @@ function DataTable({
|
|
|
11106
11182
|
}),
|
|
11107
11183
|
[columns, data, sortBy, sortDir, onSort, filters]
|
|
11108
11184
|
);
|
|
11109
|
-
const handleSort =
|
|
11110
|
-
(
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
|
|
11115
|
-
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
|
|
11119
|
-
|
|
11120
|
-
|
|
11121
|
-
[columns, sortBy, sortDir, onSort]
|
|
11122
|
-
);
|
|
11123
|
-
const handleFilter = React52__namespace.useCallback(
|
|
11124
|
-
(columnId, value) => {
|
|
11125
|
-
setFilters((prev) => ({ ...prev, [columnId]: value }));
|
|
11126
|
-
},
|
|
11127
|
-
[]
|
|
11128
|
-
);
|
|
11129
|
-
const sortedData = api.state.sortedData;
|
|
11185
|
+
const handleSort = (columnId) => {
|
|
11186
|
+
const col = columns.find((c) => c.id === columnId);
|
|
11187
|
+
if (!col?.sortable) return;
|
|
11188
|
+
const newDir = sortBy === columnId && sortDir === "asc" ? "desc" : "asc";
|
|
11189
|
+
setSortBy(columnId);
|
|
11190
|
+
setSortDir(newDir);
|
|
11191
|
+
onSort?.(columnId, newDir);
|
|
11192
|
+
};
|
|
11193
|
+
const handleFilter = (columnId, value) => {
|
|
11194
|
+
setFilters((prev) => ({ ...prev, [columnId]: value }));
|
|
11195
|
+
};
|
|
11196
|
+
const rows = api.state.sortedData;
|
|
11130
11197
|
const hasFilterable = columns.some((c) => c.filterable);
|
|
11131
|
-
|
|
11132
|
-
|
|
11133
|
-
|
|
11134
|
-
|
|
11135
|
-
|
|
11136
|
-
|
|
11137
|
-
|
|
11138
|
-
|
|
11198
|
+
const rowElementProps = (row, index2) => {
|
|
11199
|
+
const extra = getRowProps?.(row, index2) ?? {};
|
|
11200
|
+
if (!onRowClick) return extra;
|
|
11201
|
+
return {
|
|
11202
|
+
tabIndex: 0,
|
|
11203
|
+
...extra,
|
|
11204
|
+
className: cn(dataTableActionRowClass, extra.className),
|
|
11205
|
+
onClick: (e) => {
|
|
11206
|
+
extra.onClick?.(e);
|
|
11207
|
+
if (!e.defaultPrevented) onRowClick(row, index2);
|
|
11139
11208
|
},
|
|
11140
|
-
|
|
11141
|
-
|
|
11142
|
-
|
|
11143
|
-
|
|
11144
|
-
|
|
11145
|
-
|
|
11146
|
-
|
|
11147
|
-
|
|
11148
|
-
|
|
11149
|
-
|
|
11150
|
-
|
|
11151
|
-
|
|
11152
|
-
|
|
11153
|
-
|
|
11154
|
-
|
|
11155
|
-
|
|
11156
|
-
|
|
11157
|
-
|
|
11209
|
+
onKeyDown: (e) => {
|
|
11210
|
+
extra.onKeyDown?.(e);
|
|
11211
|
+
if (e.defaultPrevented || e.target !== e.currentTarget || !ACTIVATION_KEYS.has(e.key)) return;
|
|
11212
|
+
e.preventDefault();
|
|
11213
|
+
onRowClick(row, index2);
|
|
11214
|
+
}
|
|
11215
|
+
};
|
|
11216
|
+
};
|
|
11217
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative w-full overflow-auto", wrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: cn(tableVariants(), className), role: "table", ...tableProps, children: [
|
|
11218
|
+
caption != null && /* @__PURE__ */ jsxRuntime.jsx("caption", { className: "mt-2 caption-bottom text-xs text-muted-foreground", children: caption }),
|
|
11219
|
+
/* @__PURE__ */ jsxRuntime.jsxs("thead", { children: [
|
|
11220
|
+
/* @__PURE__ */ jsxRuntime.jsx("tr", { role: "row", children: columns.map((col) => {
|
|
11221
|
+
const headerProps = api.getHeaderProps(col);
|
|
11222
|
+
const align2 = resolveColumnAlign(col);
|
|
11223
|
+
const indicator = col.sortable && sortBy === col.id ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: sortDir === "asc" ? "\u2191" : "\u2193" }) : null;
|
|
11224
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11225
|
+
"th",
|
|
11226
|
+
{
|
|
11227
|
+
...headerProps,
|
|
11228
|
+
className: cn(
|
|
11229
|
+
headerVariants({ sortable: col.sortable ? "true" : "false" }),
|
|
11230
|
+
dataTableAlignClass[align2],
|
|
11231
|
+
col.headerClassName
|
|
11232
|
+
),
|
|
11233
|
+
children: col.sortable ? /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: dataTableSortButtonClass, onClick: () => handleSort(col.id), children: [
|
|
11158
11234
|
col.header,
|
|
11159
|
-
|
|
11160
|
-
)
|
|
11161
|
-
}
|
|
11162
|
-
|
|
11163
|
-
|
|
11164
|
-
|
|
11165
|
-
|
|
11166
|
-
|
|
11167
|
-
|
|
11168
|
-
|
|
11169
|
-
|
|
11170
|
-
|
|
11171
|
-
|
|
11172
|
-
|
|
11173
|
-
|
|
11174
|
-
|
|
11175
|
-
|
|
11176
|
-
|
|
11177
|
-
|
|
11178
|
-
|
|
11179
|
-
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11184
|
-
|
|
11185
|
-
null,
|
|
11186
|
-
sortedData.length === 0 ? React52__namespace.createElement(
|
|
11187
|
-
"tr",
|
|
11188
|
-
{ role: "row" },
|
|
11189
|
-
React52__namespace.createElement(
|
|
11235
|
+
indicator
|
|
11236
|
+
] }) : col.header
|
|
11237
|
+
},
|
|
11238
|
+
col.id
|
|
11239
|
+
);
|
|
11240
|
+
}) }),
|
|
11241
|
+
hasFilterable && /* @__PURE__ */ jsxRuntime.jsx("tr", { role: "row", "data-filter-row": "true", children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx("th", { children: col.filterable ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
11242
|
+
"input",
|
|
11243
|
+
{
|
|
11244
|
+
type: "text",
|
|
11245
|
+
"aria-label": `Filter ${filterLabel(col.header, col.id)}`,
|
|
11246
|
+
value: filters[col.id] ?? "",
|
|
11247
|
+
onChange: (e) => handleFilter(col.id, e.target.value),
|
|
11248
|
+
placeholder: "Filter..."
|
|
11249
|
+
}
|
|
11250
|
+
) : null }, `filter-${col.id}`)) })
|
|
11251
|
+
] }),
|
|
11252
|
+
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("tr", { role: "row", children: /* @__PURE__ */ jsxRuntime.jsx("td", { colSpan: columns.length, className: "text-center p-4 text-muted-foreground", role: "cell", children: emptyMessage }) }) : rows.map((row, rowIndex) => {
|
|
11253
|
+
const rowProps = rowElementProps(row, rowIndex);
|
|
11254
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11255
|
+
"tr",
|
|
11256
|
+
{
|
|
11257
|
+
...api.getRowProps(row, rowIndex),
|
|
11258
|
+
...rowProps,
|
|
11259
|
+
className: cn(rowVariants(), rowProps.className),
|
|
11260
|
+
children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
11190
11261
|
"td",
|
|
11191
11262
|
{
|
|
11192
|
-
|
|
11193
|
-
className:
|
|
11194
|
-
|
|
11195
|
-
|
|
11196
|
-
|
|
11197
|
-
|
|
11198
|
-
|
|
11199
|
-
|
|
11200
|
-
"tr",
|
|
11201
|
-
{
|
|
11202
|
-
key: rowIndex,
|
|
11203
|
-
...api.getRowProps(row, rowIndex),
|
|
11204
|
-
className: rowVariants()
|
|
11263
|
+
...api.getCellProps(col, row),
|
|
11264
|
+
className: cn(
|
|
11265
|
+
cellVariants(),
|
|
11266
|
+
dataTableAlignClass[resolveColumnAlign(col)],
|
|
11267
|
+
col.numeric && dataTableNumericClass,
|
|
11268
|
+
col.className
|
|
11269
|
+
),
|
|
11270
|
+
children: col.cell ? col.cell(row, rowIndex) : String(getColumnValue(col, row) ?? "")
|
|
11205
11271
|
},
|
|
11206
|
-
|
|
11207
|
-
|
|
11208
|
-
|
|
11209
|
-
|
|
11210
|
-
|
|
11211
|
-
|
|
11212
|
-
|
|
11213
|
-
},
|
|
11214
|
-
String(col.accessor(row) ?? "")
|
|
11215
|
-
)
|
|
11216
|
-
)
|
|
11217
|
-
)
|
|
11218
|
-
)
|
|
11219
|
-
)
|
|
11220
|
-
)
|
|
11221
|
-
);
|
|
11272
|
+
col.id
|
|
11273
|
+
))
|
|
11274
|
+
},
|
|
11275
|
+
resolveRowKey(row, rowIndex, getRowKey)
|
|
11276
|
+
);
|
|
11277
|
+
}) })
|
|
11278
|
+
] }) });
|
|
11222
11279
|
}
|
|
11223
11280
|
|
|
11224
11281
|
// ../device-frame/dist/index.js
|
|
@@ -11462,6 +11519,8 @@ function Dialog({
|
|
|
11462
11519
|
apiRef.current = createDialog({ open, modal });
|
|
11463
11520
|
}
|
|
11464
11521
|
const api = apiRef.current;
|
|
11522
|
+
const [hasTitle, setHasTitle] = React52__namespace.useState(false);
|
|
11523
|
+
const [hasDescription, setHasDescription] = React52__namespace.useState(false);
|
|
11465
11524
|
const ctx = React52__namespace.useMemo(
|
|
11466
11525
|
() => ({
|
|
11467
11526
|
open,
|
|
@@ -11469,9 +11528,13 @@ function Dialog({
|
|
|
11469
11528
|
modal,
|
|
11470
11529
|
contentId: api.ids.content,
|
|
11471
11530
|
titleId: api.ids.title,
|
|
11472
|
-
descriptionId: api.ids.description
|
|
11531
|
+
descriptionId: api.ids.description,
|
|
11532
|
+
hasTitle,
|
|
11533
|
+
hasDescription,
|
|
11534
|
+
setHasTitle,
|
|
11535
|
+
setHasDescription
|
|
11473
11536
|
}),
|
|
11474
|
-
[open, handleOpenChange, modal, api.ids.content, api.ids.title, api.ids.description]
|
|
11537
|
+
[open, handleOpenChange, modal, api.ids.content, api.ids.title, api.ids.description, hasTitle, hasDescription]
|
|
11475
11538
|
);
|
|
11476
11539
|
return React52__namespace.createElement(DialogContext.Provider, { value: ctx }, children);
|
|
11477
11540
|
}
|
|
@@ -11516,9 +11579,17 @@ var DialogOverlay = React52__namespace.forwardRef(
|
|
|
11516
11579
|
});
|
|
11517
11580
|
}
|
|
11518
11581
|
);
|
|
11582
|
+
function containsElement(node, type) {
|
|
11583
|
+
let found = false;
|
|
11584
|
+
React52__namespace.Children.forEach(node, (child) => {
|
|
11585
|
+
if (found || !React52__namespace.isValidElement(child)) return;
|
|
11586
|
+
found = child.type === type || containsElement(child.props.children, type);
|
|
11587
|
+
});
|
|
11588
|
+
return found;
|
|
11589
|
+
}
|
|
11519
11590
|
var DialogContent = React52__namespace.forwardRef(
|
|
11520
11591
|
function DialogContent2({ className, children, onKeyDown, ...props }, ref) {
|
|
11521
|
-
const { open, onOpenChange, modal, contentId, titleId, descriptionId } = useDialogContext();
|
|
11592
|
+
const { open, onOpenChange, modal, contentId, titleId, descriptionId, hasTitle, hasDescription } = useDialogContext();
|
|
11522
11593
|
React52__namespace.useMemo(
|
|
11523
11594
|
() => createDialog({ open, modal }),
|
|
11524
11595
|
[open, modal]
|
|
@@ -11540,8 +11611,10 @@ var DialogContent = React52__namespace.forwardRef(
|
|
|
11540
11611
|
ref,
|
|
11541
11612
|
role: "dialog",
|
|
11542
11613
|
"aria-modal": modal,
|
|
11543
|
-
|
|
11544
|
-
|
|
11614
|
+
// Reference only parts that exist: an id pointing at nothing leaves the
|
|
11615
|
+
// dialog unnamed while looking labelled.
|
|
11616
|
+
"aria-labelledby": hasTitle || containsElement(children, DialogTitle) ? titleId : void 0,
|
|
11617
|
+
"aria-describedby": hasDescription || containsElement(children, DialogDescription) ? descriptionId : void 0,
|
|
11545
11618
|
id: contentId,
|
|
11546
11619
|
className: cn(dialogContentVariants(), className),
|
|
11547
11620
|
onKeyDown: handleKeyDown,
|
|
@@ -11579,7 +11652,11 @@ var DialogFooter = React52__namespace.forwardRef(
|
|
|
11579
11652
|
);
|
|
11580
11653
|
var DialogTitle = React52__namespace.forwardRef(
|
|
11581
11654
|
function DialogTitle2({ className, ...props }, ref) {
|
|
11582
|
-
const { titleId } = useDialogContext();
|
|
11655
|
+
const { titleId, setHasTitle } = useDialogContext();
|
|
11656
|
+
React52__namespace.useEffect(() => {
|
|
11657
|
+
setHasTitle(true);
|
|
11658
|
+
return () => setHasTitle(false);
|
|
11659
|
+
}, [setHasTitle]);
|
|
11583
11660
|
return React52__namespace.createElement("h2", {
|
|
11584
11661
|
ref,
|
|
11585
11662
|
id: titleId,
|
|
@@ -11589,7 +11666,11 @@ var DialogTitle = React52__namespace.forwardRef(
|
|
|
11589
11666
|
}
|
|
11590
11667
|
);
|
|
11591
11668
|
var DialogDescription = React52__namespace.forwardRef(function DialogDescription2({ className, ...props }, ref) {
|
|
11592
|
-
const { descriptionId } = useDialogContext();
|
|
11669
|
+
const { descriptionId, setHasDescription } = useDialogContext();
|
|
11670
|
+
React52__namespace.useEffect(() => {
|
|
11671
|
+
setHasDescription(true);
|
|
11672
|
+
return () => setHasDescription(false);
|
|
11673
|
+
}, [setHasDescription]);
|
|
11593
11674
|
return React52__namespace.createElement("p", {
|
|
11594
11675
|
ref,
|
|
11595
11676
|
id: descriptionId,
|
|
@@ -11743,11 +11824,13 @@ function DropdownMenu({
|
|
|
11743
11824
|
apiRef.current = createDropdownMenu({ open });
|
|
11744
11825
|
}
|
|
11745
11826
|
const api = apiRef.current;
|
|
11827
|
+
const triggerRef = React52__namespace.useRef(null);
|
|
11746
11828
|
const ctx = React52__namespace.useMemo(
|
|
11747
11829
|
() => ({
|
|
11748
11830
|
open,
|
|
11749
11831
|
onOpenChange: handleOpenChange,
|
|
11750
|
-
contentId: api.ids.content
|
|
11832
|
+
contentId: api.ids.content,
|
|
11833
|
+
triggerRef
|
|
11751
11834
|
}),
|
|
11752
11835
|
[open, handleOpenChange, api.ids.content]
|
|
11753
11836
|
);
|
|
@@ -11755,7 +11838,12 @@ function DropdownMenu({
|
|
|
11755
11838
|
}
|
|
11756
11839
|
var DropdownMenuTrigger = React52__namespace.forwardRef(
|
|
11757
11840
|
function DropdownMenuTrigger2({ asChild = false, onClick, children, ...props }, ref) {
|
|
11758
|
-
const { open, onOpenChange, contentId } = useDropdownMenuContext();
|
|
11841
|
+
const { open, onOpenChange, contentId, triggerRef } = useDropdownMenuContext();
|
|
11842
|
+
const setRefs = (node) => {
|
|
11843
|
+
triggerRef.current = node;
|
|
11844
|
+
if (typeof ref === "function") ref(node);
|
|
11845
|
+
else if (ref) ref.current = node;
|
|
11846
|
+
};
|
|
11759
11847
|
const handleClick = (e) => {
|
|
11760
11848
|
onOpenChange(!open);
|
|
11761
11849
|
onClick?.(e);
|
|
@@ -11786,20 +11874,63 @@ var DropdownMenuTrigger = React52__namespace.forwardRef(
|
|
|
11786
11874
|
if (!e.defaultPrevented) handleClick(e);
|
|
11787
11875
|
},
|
|
11788
11876
|
ref: (node) => {
|
|
11789
|
-
|
|
11790
|
-
else if (ref) ref.current = node;
|
|
11877
|
+
setRefs(node);
|
|
11791
11878
|
if (typeof childRef === "function") childRef(node);
|
|
11792
11879
|
else if (childRef) childRef.current = node;
|
|
11793
11880
|
}
|
|
11794
11881
|
};
|
|
11795
11882
|
return React52__namespace.cloneElement(child, mergedProps);
|
|
11796
11883
|
}
|
|
11797
|
-
return React52__namespace.createElement("button", { ref, ...triggerProps }, children);
|
|
11884
|
+
return React52__namespace.createElement("button", { ref: setRefs, ...triggerProps }, children);
|
|
11798
11885
|
}
|
|
11799
11886
|
);
|
|
11887
|
+
var DEFAULT_SIDE_OFFSET = 4;
|
|
11888
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React52__namespace.useLayoutEffect : React52__namespace.useEffect;
|
|
11889
|
+
function computeMenuPosition(trigger, contentWidth, align2, sideOffset) {
|
|
11890
|
+
const left = align2 === "end" ? trigger.right - contentWidth : align2 === "center" ? trigger.left + trigger.width / 2 - contentWidth / 2 : trigger.left;
|
|
11891
|
+
return { position: "fixed", top: trigger.bottom + sideOffset, left: Math.max(0, left), minWidth: trigger.width };
|
|
11892
|
+
}
|
|
11800
11893
|
var DropdownMenuContent = React52__namespace.forwardRef(
|
|
11801
|
-
function DropdownMenuContent2({ className, children, onKeyDown, ...props },
|
|
11802
|
-
const { open, onOpenChange, contentId } = useDropdownMenuContext();
|
|
11894
|
+
function DropdownMenuContent2({ className, children, onKeyDown, align: align2 = "start", sideOffset = DEFAULT_SIDE_OFFSET, style, ...props }, forwardedRef) {
|
|
11895
|
+
const { open, onOpenChange, contentId, triggerRef } = useDropdownMenuContext();
|
|
11896
|
+
const contentRef = React52__namespace.useRef(null);
|
|
11897
|
+
const ref = React52__namespace.useCallback(
|
|
11898
|
+
(node) => {
|
|
11899
|
+
contentRef.current = node;
|
|
11900
|
+
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
11901
|
+
else if (forwardedRef) forwardedRef.current = node;
|
|
11902
|
+
},
|
|
11903
|
+
[forwardedRef]
|
|
11904
|
+
);
|
|
11905
|
+
const [position, setPosition] = React52__namespace.useState(null);
|
|
11906
|
+
useIsomorphicLayoutEffect(() => {
|
|
11907
|
+
if (!open) return;
|
|
11908
|
+
const update = () => {
|
|
11909
|
+
const trigger = triggerRef.current;
|
|
11910
|
+
const content2 = contentRef.current;
|
|
11911
|
+
if (!trigger) return;
|
|
11912
|
+
setPosition(
|
|
11913
|
+
computeMenuPosition(trigger.getBoundingClientRect(), content2?.offsetWidth ?? 0, align2, sideOffset)
|
|
11914
|
+
);
|
|
11915
|
+
};
|
|
11916
|
+
update();
|
|
11917
|
+
window.addEventListener("resize", update);
|
|
11918
|
+
window.addEventListener("scroll", update, true);
|
|
11919
|
+
return () => {
|
|
11920
|
+
window.removeEventListener("resize", update);
|
|
11921
|
+
window.removeEventListener("scroll", update, true);
|
|
11922
|
+
};
|
|
11923
|
+
}, [open, align2, sideOffset, triggerRef]);
|
|
11924
|
+
React52__namespace.useEffect(() => {
|
|
11925
|
+
if (!open) return;
|
|
11926
|
+
const onPointerDown = (event) => {
|
|
11927
|
+
const target = event.target;
|
|
11928
|
+
if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;
|
|
11929
|
+
onOpenChange(false);
|
|
11930
|
+
};
|
|
11931
|
+
document.addEventListener("pointerdown", onPointerDown);
|
|
11932
|
+
return () => document.removeEventListener("pointerdown", onPointerDown);
|
|
11933
|
+
}, [open, onOpenChange, triggerRef]);
|
|
11803
11934
|
const handleKeyDown = (e) => {
|
|
11804
11935
|
const handler = createKeyboardHandler({
|
|
11805
11936
|
Escape: (ev) => {
|
|
@@ -11819,6 +11950,8 @@ var DropdownMenuContent = React52__namespace.forwardRef(
|
|
|
11819
11950
|
id: contentId,
|
|
11820
11951
|
"data-state": open ? "open" : "closed",
|
|
11821
11952
|
className: cn(menuContentVariants(), className),
|
|
11953
|
+
style: position ? { ...position, ...style } : style,
|
|
11954
|
+
"data-align": align2,
|
|
11822
11955
|
onKeyDown: handleKeyDown,
|
|
11823
11956
|
tabIndex: -1,
|
|
11824
11957
|
...props
|
|
@@ -14652,14 +14785,31 @@ var Tabs = React52__namespace.forwardRef(
|
|
|
14652
14785
|
apiRef.current = createTabs({ value, orientation });
|
|
14653
14786
|
}
|
|
14654
14787
|
const api = apiRef.current;
|
|
14788
|
+
const [panels, setPanels] = React52__namespace.useState(() => /* @__PURE__ */ new Set());
|
|
14789
|
+
const registerPanel = React52__namespace.useCallback((panelValue) => {
|
|
14790
|
+
setPanels((prev) => prev.has(panelValue) ? prev : new Set(prev).add(panelValue));
|
|
14791
|
+
return () => setPanels((prev) => {
|
|
14792
|
+
if (!prev.has(panelValue)) return prev;
|
|
14793
|
+
const next = new Set(prev);
|
|
14794
|
+
next.delete(panelValue);
|
|
14795
|
+
return next;
|
|
14796
|
+
});
|
|
14797
|
+
}, []);
|
|
14798
|
+
const allPanels = React52__namespace.useMemo(() => {
|
|
14799
|
+
const found = new Set(panels);
|
|
14800
|
+
collectPanelValues(children, found);
|
|
14801
|
+
return found;
|
|
14802
|
+
}, [children, panels]);
|
|
14655
14803
|
const ctx = React52__namespace.useMemo(
|
|
14656
14804
|
() => ({
|
|
14657
14805
|
value,
|
|
14658
14806
|
onValueChange: handleValueChange,
|
|
14659
14807
|
orientation,
|
|
14660
|
-
idPrefix: api.idPrefix
|
|
14808
|
+
idPrefix: api.idPrefix,
|
|
14809
|
+
panels: allPanels,
|
|
14810
|
+
registerPanel
|
|
14661
14811
|
}),
|
|
14662
|
-
[value, handleValueChange, orientation, api.idPrefix]
|
|
14812
|
+
[value, handleValueChange, orientation, api.idPrefix, allPanels, registerPanel]
|
|
14663
14813
|
);
|
|
14664
14814
|
return React52__namespace.createElement(
|
|
14665
14815
|
"div",
|
|
@@ -14668,6 +14818,16 @@ var Tabs = React52__namespace.forwardRef(
|
|
|
14668
14818
|
);
|
|
14669
14819
|
}
|
|
14670
14820
|
);
|
|
14821
|
+
function collectPanelValues(node, into) {
|
|
14822
|
+
React52__namespace.Children.forEach(node, (child) => {
|
|
14823
|
+
if (!React52__namespace.isValidElement(child)) return;
|
|
14824
|
+
if (child.type === TabsContent && typeof child.props.value === "string") {
|
|
14825
|
+
into.add(child.props.value);
|
|
14826
|
+
return;
|
|
14827
|
+
}
|
|
14828
|
+
collectPanelValues(child.props.children, into);
|
|
14829
|
+
});
|
|
14830
|
+
}
|
|
14671
14831
|
var TabsList = React52__namespace.forwardRef(
|
|
14672
14832
|
function TabsList2({ className, onKeyDown, ...props }, forwardedRef) {
|
|
14673
14833
|
const { orientation } = useTabsContext();
|
|
@@ -14713,7 +14873,7 @@ function enabledTabs(list) {
|
|
|
14713
14873
|
}
|
|
14714
14874
|
var TabsTrigger = React52__namespace.forwardRef(
|
|
14715
14875
|
function TabsTrigger2({ value, className, onClick, onKeyDown, children, ...props }, ref) {
|
|
14716
|
-
const { value: activeValue, onValueChange,
|
|
14876
|
+
const { value: activeValue, onValueChange, idPrefix, panels } = useTabsContext();
|
|
14717
14877
|
const isSelected = activeValue === value;
|
|
14718
14878
|
const tabId = `${idPrefix}-tab-${value}`;
|
|
14719
14879
|
const panelId = `${idPrefix}-panel-${value}`;
|
|
@@ -14731,7 +14891,8 @@ var TabsTrigger = React52__namespace.forwardRef(
|
|
|
14731
14891
|
type: "button",
|
|
14732
14892
|
role: "tab",
|
|
14733
14893
|
"aria-selected": isSelected,
|
|
14734
|
-
|
|
14894
|
+
// Only the selected panel is rendered; never reference a missing element.
|
|
14895
|
+
"aria-controls": isSelected && panels.has(value) ? panelId : void 0,
|
|
14735
14896
|
tabIndex: isSelected ? 0 : -1,
|
|
14736
14897
|
id: tabId,
|
|
14737
14898
|
"data-state": isSelected ? "active" : "inactive",
|
|
@@ -14746,7 +14907,8 @@ var TabsTrigger = React52__namespace.forwardRef(
|
|
|
14746
14907
|
);
|
|
14747
14908
|
var TabsContent = React52__namespace.forwardRef(
|
|
14748
14909
|
function TabsContent2({ value, className, children, ...props }, ref) {
|
|
14749
|
-
const { value: activeValue, idPrefix } = useTabsContext();
|
|
14910
|
+
const { value: activeValue, idPrefix, registerPanel } = useTabsContext();
|
|
14911
|
+
React52__namespace.useEffect(() => registerPanel(value), [registerPanel, value]);
|
|
14750
14912
|
const isSelected = activeValue === value;
|
|
14751
14913
|
const tabId = `${idPrefix}-tab-${value}`;
|
|
14752
14914
|
const panelId = `${idPrefix}-panel-${value}`;
|
|
@@ -18568,10 +18730,9 @@ function getInitials(name) {
|
|
|
18568
18730
|
}
|
|
18569
18731
|
function createAvatar(props = {}) {
|
|
18570
18732
|
const { src, alt = "", fallback = "", size = "md" } = props;
|
|
18571
|
-
const ariaProps = {
|
|
18572
|
-
role: "img"
|
|
18573
|
-
};
|
|
18733
|
+
const ariaProps = {};
|
|
18574
18734
|
if (alt) {
|
|
18735
|
+
ariaProps.role = "img";
|
|
18575
18736
|
ariaProps["aria-label"] = alt;
|
|
18576
18737
|
}
|
|
18577
18738
|
const fallbackText = fallback ? getInitials(fallback) : alt ? getInitials(alt) : "";
|
|
@@ -18601,8 +18762,12 @@ var avatarTokens = {
|
|
|
18601
18762
|
}
|
|
18602
18763
|
};
|
|
18603
18764
|
var avatarVariants = cva({
|
|
18604
|
-
base: "relative flex shrink-0 overflow-hidden
|
|
18765
|
+
base: "relative flex shrink-0 overflow-hidden",
|
|
18605
18766
|
variants: {
|
|
18767
|
+
shape: {
|
|
18768
|
+
circle: "rounded-full",
|
|
18769
|
+
square: "rounded-md"
|
|
18770
|
+
},
|
|
18606
18771
|
size: {
|
|
18607
18772
|
xs: "h-6 w-6",
|
|
18608
18773
|
sm: "h-8 w-8",
|
|
@@ -18612,6 +18777,7 @@ var avatarVariants = cva({
|
|
|
18612
18777
|
}
|
|
18613
18778
|
},
|
|
18614
18779
|
defaultVariants: {
|
|
18780
|
+
shape: "circle",
|
|
18615
18781
|
size: "md"
|
|
18616
18782
|
}
|
|
18617
18783
|
});
|
|
@@ -18619,7 +18785,7 @@ var avatarImageVariants = cva({
|
|
|
18619
18785
|
base: "aspect-square h-full w-full object-cover"
|
|
18620
18786
|
});
|
|
18621
18787
|
var avatarFallbackVariants = cva({
|
|
18622
|
-
base: "flex h-full w-full items-center justify-center rounded-
|
|
18788
|
+
base: "flex h-full w-full items-center justify-center rounded-[inherit] bg-muted text-muted-foreground",
|
|
18623
18789
|
variants: {
|
|
18624
18790
|
size: {
|
|
18625
18791
|
xs: "text-xs",
|
|
@@ -18643,15 +18809,15 @@ var AvatarContext = React52__namespace.createContext({
|
|
|
18643
18809
|
}
|
|
18644
18810
|
});
|
|
18645
18811
|
var Avatar2 = React52__namespace.forwardRef(
|
|
18646
|
-
function Avatar22({ size = "md", className, children, ...props }, ref) {
|
|
18812
|
+
function Avatar22({ size = "md", shape = "circle", className, children, ...props }, ref) {
|
|
18647
18813
|
const [imageLoaded, setImageLoaded] = React52__namespace.useState(false);
|
|
18648
18814
|
const [imageError, setImageError] = React52__namespace.useState(false);
|
|
18649
|
-
const api = createAvatar({ size });
|
|
18815
|
+
const api = createAvatar({ size, alt: props["aria-label"] });
|
|
18650
18816
|
return /* @__PURE__ */ jsxRuntime.jsx(AvatarContext.Provider, { value: { size, imageLoaded, imageError, setImageLoaded, setImageError }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
18651
18817
|
"span",
|
|
18652
18818
|
{
|
|
18653
18819
|
ref,
|
|
18654
|
-
className: cn(avatarVariants({ size }), className),
|
|
18820
|
+
className: cn(avatarVariants({ size, shape }), className),
|
|
18655
18821
|
...api.ariaProps,
|
|
18656
18822
|
...api.dataAttributes,
|
|
18657
18823
|
...props,
|
|
@@ -22588,7 +22754,7 @@ React52__namespace.forwardRef(
|
|
|
22588
22754
|
);
|
|
22589
22755
|
|
|
22590
22756
|
// ../logger/dist/index.js
|
|
22591
|
-
|
|
22757
|
+
init_chunk_OEINJBSK();
|
|
22592
22758
|
var LEVEL_ORDER = {
|
|
22593
22759
|
debug: 10,
|
|
22594
22760
|
info: 20,
|
|
@@ -22739,7 +22905,7 @@ function createTelemetry(config3) {
|
|
|
22739
22905
|
addSinkInternal(createConsoleSink({ pretty: preset.pretty }));
|
|
22740
22906
|
if (config3.endpoint) {
|
|
22741
22907
|
const endpoint = config3.endpoint;
|
|
22742
|
-
void Promise.resolve().then(() => (
|
|
22908
|
+
void Promise.resolve().then(() => (init_faro_engine_VIUXJAPH(), faro_engine_VIUXJAPH_exports)).then(({ createFaroSink: createFaroSink2 }) => createFaroSink2({ app: config3.app, endpoint })).then((faro) => {
|
|
22743
22909
|
if (faro) addSinkInternal(faro);
|
|
22744
22910
|
}).catch(() => {
|
|
22745
22911
|
});
|
|
@@ -24122,7 +24288,11 @@ function createClientSdkSink(opts) {
|
|
|
24122
24288
|
});
|
|
24123
24289
|
return instance;
|
|
24124
24290
|
}
|
|
24125
|
-
const mod = await import(
|
|
24291
|
+
const mod = await import(
|
|
24292
|
+
/* webpackIgnore: true */
|
|
24293
|
+
/* @vite-ignore */
|
|
24294
|
+
appInsightsWebSpecifier
|
|
24295
|
+
);
|
|
24126
24296
|
const ai = new mod.ApplicationInsights({
|
|
24127
24297
|
config: {
|
|
24128
24298
|
connectionString: opts.connectionString,
|
|
@@ -24473,7 +24643,11 @@ function createPostHogHttpSink(options) {
|
|
|
24473
24643
|
}
|
|
24474
24644
|
var posthogJsSpecifier = "posthog-js";
|
|
24475
24645
|
async function defaultLoad() {
|
|
24476
|
-
const mod = await import(
|
|
24646
|
+
const mod = await import(
|
|
24647
|
+
/* webpackIgnore: true */
|
|
24648
|
+
/* @vite-ignore */
|
|
24649
|
+
posthogJsSpecifier
|
|
24650
|
+
);
|
|
24477
24651
|
return "default" in mod ? mod.default : mod;
|
|
24478
24652
|
}
|
|
24479
24653
|
function createPostHogClientSdkSink(options) {
|
|
@@ -24565,7 +24739,11 @@ function createPostHogSink(options) {
|
|
|
24565
24739
|
// ../analytics-sink-posthog/dist/replay.js
|
|
24566
24740
|
var posthogJsSpecifier2 = "posthog-js";
|
|
24567
24741
|
async function defaultLoad2() {
|
|
24568
|
-
const mod = await import(
|
|
24742
|
+
const mod = await import(
|
|
24743
|
+
/* webpackIgnore: true */
|
|
24744
|
+
/* @vite-ignore */
|
|
24745
|
+
posthogJsSpecifier2
|
|
24746
|
+
);
|
|
24569
24747
|
return "default" in mod ? mod.default : mod;
|
|
24570
24748
|
}
|
|
24571
24749
|
async function startSessionReplay(options) {
|
|
@@ -28651,9 +28829,9 @@ var MiniMap = React52__namespace.forwardRef(
|
|
|
28651
28829
|
|
|
28652
28830
|
// ../section-head/dist/index.js
|
|
28653
28831
|
function createSectionHead(props = {}) {
|
|
28654
|
-
const { align = "center" } = props;
|
|
28832
|
+
const { align: align2 = "center" } = props;
|
|
28655
28833
|
const dataAttributes = {
|
|
28656
|
-
"data-align":
|
|
28834
|
+
"data-align": align2
|
|
28657
28835
|
};
|
|
28658
28836
|
return { dataAttributes };
|
|
28659
28837
|
}
|
|
@@ -28677,17 +28855,17 @@ var SectionHead = React52__namespace.forwardRef(
|
|
|
28677
28855
|
kicker,
|
|
28678
28856
|
title,
|
|
28679
28857
|
lede,
|
|
28680
|
-
align = "center",
|
|
28858
|
+
align: align2 = "center",
|
|
28681
28859
|
as: Tag = "h2",
|
|
28682
28860
|
className,
|
|
28683
28861
|
...props
|
|
28684
28862
|
}, ref) {
|
|
28685
|
-
const { dataAttributes } = createSectionHead({ align });
|
|
28863
|
+
const { dataAttributes } = createSectionHead({ align: align2 });
|
|
28686
28864
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28687
28865
|
"div",
|
|
28688
28866
|
{
|
|
28689
28867
|
ref,
|
|
28690
|
-
className: cn(sectionHeadVariants({ align }), className),
|
|
28868
|
+
className: cn(sectionHeadVariants({ align: align2 }), className),
|
|
28691
28869
|
...dataAttributes,
|
|
28692
28870
|
...props,
|
|
28693
28871
|
children: [
|
|
@@ -28702,10 +28880,13 @@ var SectionHead = React52__namespace.forwardRef(
|
|
|
28702
28880
|
|
|
28703
28881
|
// ../stat-grid/dist/index.js
|
|
28704
28882
|
function statColumns(count, max = 3) {
|
|
28705
|
-
if (count <=
|
|
28706
|
-
if (count === 1) return 1;
|
|
28883
|
+
if (count <= 1) return 1;
|
|
28707
28884
|
if (count === 2) return 2;
|
|
28708
|
-
return Math.min(count, max);
|
|
28885
|
+
return Math.min(count, max, 4);
|
|
28886
|
+
}
|
|
28887
|
+
function statColumnsKey(columns) {
|
|
28888
|
+
if (columns === "auto") return "auto";
|
|
28889
|
+
return String(Math.min(Math.max(Math.round(columns), 1), 4));
|
|
28709
28890
|
}
|
|
28710
28891
|
function createStatGrid() {
|
|
28711
28892
|
return {
|
|
@@ -28714,41 +28895,107 @@ function createStatGrid() {
|
|
|
28714
28895
|
};
|
|
28715
28896
|
}
|
|
28716
28897
|
var statGridVariants = cva({
|
|
28717
|
-
base: "grid
|
|
28898
|
+
base: "grid",
|
|
28718
28899
|
variants: {
|
|
28719
28900
|
columns: {
|
|
28720
28901
|
"1": "grid-cols-1",
|
|
28721
|
-
"2": "grid-cols-2",
|
|
28722
|
-
"3": "grid-cols-3"
|
|
28902
|
+
"2": "grid-cols-1 sm:grid-cols-2",
|
|
28903
|
+
"3": "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
28904
|
+
"4": "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
|
|
28905
|
+
auto: "grid-cols-[repeat(auto-fill,minmax(12rem,1fr))]"
|
|
28906
|
+
},
|
|
28907
|
+
variant: {
|
|
28908
|
+
plain: "gap-8",
|
|
28909
|
+
card: "gap-3"
|
|
28723
28910
|
}
|
|
28724
28911
|
},
|
|
28725
28912
|
defaultVariants: {
|
|
28726
|
-
columns: "3"
|
|
28913
|
+
columns: "3",
|
|
28914
|
+
variant: "plain"
|
|
28915
|
+
}
|
|
28916
|
+
});
|
|
28917
|
+
var statItemVariants = cva({
|
|
28918
|
+
base: "flex min-w-0 flex-col",
|
|
28919
|
+
variants: {
|
|
28920
|
+
variant: {
|
|
28921
|
+
plain: "",
|
|
28922
|
+
card: "gap-1 rounded-lg border border-border bg-card p-4 text-card-foreground"
|
|
28923
|
+
}
|
|
28924
|
+
},
|
|
28925
|
+
defaultVariants: {
|
|
28926
|
+
variant: "plain"
|
|
28927
|
+
}
|
|
28928
|
+
});
|
|
28929
|
+
var statValueVariants = cva({
|
|
28930
|
+
base: "font-bold tabular-nums",
|
|
28931
|
+
variants: {
|
|
28932
|
+
variant: {
|
|
28933
|
+
plain: "text-xl sm:text-2xl",
|
|
28934
|
+
card: "text-2xl leading-tight"
|
|
28935
|
+
},
|
|
28936
|
+
tone: {
|
|
28937
|
+
default: "",
|
|
28938
|
+
positive: "text-success",
|
|
28939
|
+
negative: "text-destructive",
|
|
28940
|
+
caution: "text-warning"
|
|
28941
|
+
}
|
|
28942
|
+
},
|
|
28943
|
+
compoundVariants: [
|
|
28944
|
+
{ variant: "plain", tone: "default", class: "text-primary" },
|
|
28945
|
+
{ variant: "card", tone: "default", class: "text-foreground" }
|
|
28946
|
+
],
|
|
28947
|
+
defaultVariants: {
|
|
28948
|
+
variant: "plain",
|
|
28949
|
+
tone: "default"
|
|
28727
28950
|
}
|
|
28728
28951
|
});
|
|
28729
|
-
var
|
|
28730
|
-
|
|
28731
|
-
|
|
28952
|
+
var statLabelVariants = cva({
|
|
28953
|
+
base: "text-muted-foreground",
|
|
28954
|
+
variants: {
|
|
28955
|
+
layout: {
|
|
28956
|
+
"value-first": "mt-1 text-sm leading-snug",
|
|
28957
|
+
"label-first": "text-xs uppercase tracking-wide"
|
|
28958
|
+
}
|
|
28959
|
+
},
|
|
28960
|
+
defaultVariants: {
|
|
28961
|
+
layout: "value-first"
|
|
28962
|
+
}
|
|
28963
|
+
});
|
|
28964
|
+
var statDescriptionClass = "text-xs leading-snug text-muted-foreground";
|
|
28732
28965
|
var StatGrid = React52__namespace.forwardRef(
|
|
28733
|
-
function StatGrid2({ items, columns, className, ...props }, ref) {
|
|
28734
|
-
const cols = columns ?? statColumns(items.length);
|
|
28966
|
+
function StatGrid2({ items, columns, variant = "plain", layout = "value-first", className, ...props }, ref) {
|
|
28967
|
+
const cols = statColumnsKey(columns ?? statColumns(items.length));
|
|
28735
28968
|
const { ariaProps, dataAttributes } = createStatGrid();
|
|
28736
28969
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28737
28970
|
"div",
|
|
28738
28971
|
{
|
|
28739
28972
|
ref,
|
|
28740
|
-
className: cn(
|
|
28741
|
-
|
|
28742
|
-
|
|
28743
|
-
),
|
|
28744
|
-
style: { gridTemplateColumns: `repeat(${cols}, 1fr)` },
|
|
28973
|
+
className: cn(statGridVariants({ columns: cols, variant }), className),
|
|
28974
|
+
"data-variant": variant,
|
|
28975
|
+
"data-layout": layout,
|
|
28745
28976
|
...ariaProps,
|
|
28746
28977
|
...dataAttributes,
|
|
28747
28978
|
...props,
|
|
28748
|
-
children: items.map((item, index2) =>
|
|
28749
|
-
|
|
28750
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
28751
|
-
|
|
28979
|
+
children: items.map((item, index2) => {
|
|
28980
|
+
const { className: itemClassName, ...itemProps } = item.props ?? {};
|
|
28981
|
+
const label = /* @__PURE__ */ jsxRuntime.jsx("span", { className: statLabelVariants({ layout }), children: item.label });
|
|
28982
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28983
|
+
"div",
|
|
28984
|
+
{
|
|
28985
|
+
role: "listitem",
|
|
28986
|
+
className: cn(statItemVariants({ variant }), itemClassName),
|
|
28987
|
+
"data-tone": item.tone ?? "default",
|
|
28988
|
+
...itemProps,
|
|
28989
|
+
children: [
|
|
28990
|
+
layout === "label-first" && label,
|
|
28991
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: statValueVariants({ variant, tone: item.tone ?? "default" }), children: item.value }),
|
|
28992
|
+
layout === "value-first" && label,
|
|
28993
|
+
item.description != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: statDescriptionClass, children: item.description })
|
|
28994
|
+
]
|
|
28995
|
+
},
|
|
28996
|
+
item.id ?? index2
|
|
28997
|
+
);
|
|
28998
|
+
})
|
|
28752
28999
|
}
|
|
28753
29000
|
);
|
|
28754
29001
|
}
|
|
@@ -29962,11 +30209,24 @@ var DEFAULT_LINE_CHART_WIDTH = 760;
|
|
|
29962
30209
|
var DEFAULT_LINE_CHART_HEIGHT = 230;
|
|
29963
30210
|
var DEFAULT_TICK_COUNT = 4;
|
|
29964
30211
|
var DEFAULT_HEADROOM = 1.08;
|
|
29965
|
-
var
|
|
30212
|
+
var MIN_LABEL_SPACING = 48;
|
|
29966
30213
|
var CHART_TOKEN_COUNT = 5;
|
|
29967
30214
|
function lineChartColor(index2) {
|
|
29968
30215
|
return `hsl(var(--chart-${index2 % CHART_TOKEN_COUNT + 1}))`;
|
|
29969
30216
|
}
|
|
30217
|
+
var NICE_STEPS = [1, 2, 5, 10];
|
|
30218
|
+
function niceScale(rawMax, tickCount) {
|
|
30219
|
+
const intervals = Math.max(1, Math.floor(tickCount));
|
|
30220
|
+
if (!(rawMax > 0)) return { max: 1, step: 1 / intervals, ticks: Array.from({ length: intervals + 1 }, (_2, i) => i / intervals) };
|
|
30221
|
+
const target = rawMax / intervals;
|
|
30222
|
+
const magnitude = 10 ** Math.floor(Math.log10(target));
|
|
30223
|
+
const step = NICE_STEPS.map((m) => m * magnitude).find((candidate) => candidate >= target) ?? 10 * magnitude;
|
|
30224
|
+
const count = Math.ceil(rawMax / step - 1e-9);
|
|
30225
|
+
const decimals = Math.max(0, -Math.floor(Math.log10(step)));
|
|
30226
|
+
const clean = (value) => Number(value.toFixed(decimals));
|
|
30227
|
+
const ticks = Array.from({ length: count + 1 }, (_2, i) => clean(i * step));
|
|
30228
|
+
return { max: ticks[ticks.length - 1], step: clean(step), ticks };
|
|
30229
|
+
}
|
|
29970
30230
|
function pathFrom(points) {
|
|
29971
30231
|
return points.map(([px, py], i) => (i ? "L" : "M") + px.toFixed(1) + " " + py.toFixed(1)).join(" ");
|
|
29972
30232
|
}
|
|
@@ -29977,24 +30237,22 @@ function computeLineChart(options) {
|
|
|
29977
30237
|
width,
|
|
29978
30238
|
height,
|
|
29979
30239
|
tickCount = DEFAULT_TICK_COUNT,
|
|
29980
|
-
headroom = DEFAULT_HEADROOM
|
|
29981
|
-
labelEvery = DEFAULT_LABEL_EVERY
|
|
30240
|
+
headroom = DEFAULT_HEADROOM
|
|
29982
30241
|
} = options;
|
|
29983
30242
|
const padding = { ...DEFAULT_LINE_CHART_PADDING, ...options.padding };
|
|
29984
30243
|
const n = labels.length;
|
|
29985
30244
|
const values = series.flatMap((s) => s.data);
|
|
29986
30245
|
const peak = values.length ? Math.max(...values) : 0;
|
|
29987
|
-
const
|
|
30246
|
+
const scale = niceScale(peak > 0 ? peak * headroom : 0, tickCount);
|
|
30247
|
+
const max = scale.max;
|
|
29988
30248
|
const plotW = width - padding.left - padding.right;
|
|
29989
30249
|
const plotTop = padding.top;
|
|
29990
30250
|
const plotBottom = height - padding.bottom;
|
|
29991
30251
|
const plotH = plotBottom - plotTop;
|
|
30252
|
+
const labelEvery = options.labelEvery ?? Math.max(1, Math.ceil(n / Math.max(1, Math.floor(plotW / MIN_LABEL_SPACING))));
|
|
29992
30253
|
const x = (index2) => padding.left + (n > 1 ? index2 / (n - 1) * plotW : plotW / 2);
|
|
29993
30254
|
const y = (value) => plotTop + (1 - value / max) * plotH;
|
|
29994
|
-
const ticks =
|
|
29995
|
-
const value = max / tickCount * t;
|
|
29996
|
-
return { value, y: y(value) };
|
|
29997
|
-
});
|
|
30255
|
+
const ticks = scale.ticks.map((value) => ({ value, y: y(value) }));
|
|
29998
30256
|
const xLabels = labels.map((label, index2) => ({ index: index2, label, x: x(index2) })).filter(({ index: index2 }) => index2 % labelEvery === 0 || index2 === n - 1);
|
|
29999
30257
|
const paths = series.map((s, si) => {
|
|
30000
30258
|
const points = s.data.map((v2, i) => [x(i), y(v2)]);
|
|
@@ -30050,19 +30308,46 @@ var defaultFormat = (value) => String(Math.round(value));
|
|
|
30050
30308
|
var MARKER_RADIUS = 3.5;
|
|
30051
30309
|
var STROKE_WIDTH = 2.2;
|
|
30052
30310
|
var TOOLTIP_TOP_PX = 8;
|
|
30311
|
+
var useIsomorphicLayoutEffect2 = typeof window !== "undefined" ? React52__namespace.useLayoutEffect : React52__namespace.useEffect;
|
|
30312
|
+
function useMeasuredWidth(ref) {
|
|
30313
|
+
const [measured, setMeasured] = React52__namespace.useState(null);
|
|
30314
|
+
useIsomorphicLayoutEffect2(() => {
|
|
30315
|
+
const node = ref.current;
|
|
30316
|
+
if (!node || typeof ResizeObserver === "undefined") return;
|
|
30317
|
+
const apply = (w) => {
|
|
30318
|
+
const rounded = Math.round(w);
|
|
30319
|
+
if (rounded > 0) setMeasured((prev) => prev === rounded ? prev : rounded);
|
|
30320
|
+
};
|
|
30321
|
+
apply(node.getBoundingClientRect().width);
|
|
30322
|
+
const observer = new ResizeObserver((entries) => apply(entries[0]?.contentRect.width ?? 0));
|
|
30323
|
+
observer.observe(node);
|
|
30324
|
+
return () => observer.disconnect();
|
|
30325
|
+
}, [ref]);
|
|
30326
|
+
return measured;
|
|
30327
|
+
}
|
|
30053
30328
|
var LineChart = React52__namespace.forwardRef(function LineChart2({
|
|
30054
30329
|
series,
|
|
30055
30330
|
labels,
|
|
30056
30331
|
ariaLabel,
|
|
30057
30332
|
height = DEFAULT_LINE_CHART_HEIGHT,
|
|
30058
|
-
width = DEFAULT_LINE_CHART_WIDTH,
|
|
30333
|
+
width: fallbackWidth = DEFAULT_LINE_CHART_WIDTH,
|
|
30059
30334
|
formatValue = defaultFormat,
|
|
30060
30335
|
formatTick: formatTick2,
|
|
30061
30336
|
area,
|
|
30062
30337
|
showLegend = true,
|
|
30063
30338
|
className,
|
|
30064
30339
|
...rest
|
|
30065
|
-
},
|
|
30340
|
+
}, forwardedRef) {
|
|
30341
|
+
const rootRef = React52__namespace.useRef(null);
|
|
30342
|
+
const ref = React52__namespace.useCallback(
|
|
30343
|
+
(node) => {
|
|
30344
|
+
rootRef.current = node;
|
|
30345
|
+
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
30346
|
+
else if (forwardedRef) forwardedRef.current = node;
|
|
30347
|
+
},
|
|
30348
|
+
[forwardedRef]
|
|
30349
|
+
);
|
|
30350
|
+
const width = useMeasuredWidth(rootRef) ?? fallbackWidth;
|
|
30066
30351
|
const [active, setActive] = React52__namespace.useState(null);
|
|
30067
30352
|
const gradientBase = React52__namespace.useId().replace(/:/g, "");
|
|
30068
30353
|
const geo = React52__namespace.useMemo(
|
|
@@ -30207,6 +30492,172 @@ var PageHeader = React52__namespace.forwardRef(function PageHeader2({ kicker, ti
|
|
|
30207
30492
|
] });
|
|
30208
30493
|
});
|
|
30209
30494
|
|
|
30495
|
+
// ../table/dist/index.js
|
|
30496
|
+
function createTable(props = {}) {
|
|
30497
|
+
return {
|
|
30498
|
+
dataAttributes: {
|
|
30499
|
+
"data-slot": "table",
|
|
30500
|
+
"data-density": props.density ?? "default",
|
|
30501
|
+
"data-head-tone": props.headTone ?? "default"
|
|
30502
|
+
}
|
|
30503
|
+
};
|
|
30504
|
+
}
|
|
30505
|
+
var tableContainerClass = "relative w-full overflow-x-auto";
|
|
30506
|
+
var tableRootVariants = cva({
|
|
30507
|
+
base: "w-full caption-bottom border-collapse text-sm",
|
|
30508
|
+
variants: {
|
|
30509
|
+
fixed: {
|
|
30510
|
+
true: "table-fixed",
|
|
30511
|
+
false: ""
|
|
30512
|
+
}
|
|
30513
|
+
},
|
|
30514
|
+
defaultVariants: {
|
|
30515
|
+
fixed: "false"
|
|
30516
|
+
}
|
|
30517
|
+
});
|
|
30518
|
+
var tableCaptionClass = "mt-2 text-xs text-muted-foreground";
|
|
30519
|
+
var tableRowClass = "border-b border-border-subtle last:border-b-0";
|
|
30520
|
+
var align = {
|
|
30521
|
+
start: "text-start",
|
|
30522
|
+
center: "text-center",
|
|
30523
|
+
end: "text-end"
|
|
30524
|
+
};
|
|
30525
|
+
var tableHeadVariants = cva({
|
|
30526
|
+
base: "border-b border-border-subtle bg-surface-subtle align-middle",
|
|
30527
|
+
variants: {
|
|
30528
|
+
align,
|
|
30529
|
+
tone: {
|
|
30530
|
+
default: "text-xs font-medium text-muted-foreground",
|
|
30531
|
+
eyebrow: "text-[11px] font-semibold uppercase tracking-wider text-muted-foreground"
|
|
30532
|
+
},
|
|
30533
|
+
density: {
|
|
30534
|
+
compact: "h-8 px-2",
|
|
30535
|
+
default: "h-9 px-3"
|
|
30536
|
+
}
|
|
30537
|
+
},
|
|
30538
|
+
defaultVariants: {
|
|
30539
|
+
align: "start",
|
|
30540
|
+
tone: "default",
|
|
30541
|
+
density: "default"
|
|
30542
|
+
}
|
|
30543
|
+
});
|
|
30544
|
+
var tableCellVariants = cva({
|
|
30545
|
+
base: "align-middle",
|
|
30546
|
+
variants: {
|
|
30547
|
+
align,
|
|
30548
|
+
density: {
|
|
30549
|
+
compact: "px-2 py-1.5",
|
|
30550
|
+
default: "px-3 py-2.5"
|
|
30551
|
+
},
|
|
30552
|
+
numeric: {
|
|
30553
|
+
true: "tabular-nums whitespace-nowrap",
|
|
30554
|
+
false: ""
|
|
30555
|
+
}
|
|
30556
|
+
},
|
|
30557
|
+
defaultVariants: {
|
|
30558
|
+
align: "start",
|
|
30559
|
+
density: "default",
|
|
30560
|
+
numeric: "false"
|
|
30561
|
+
}
|
|
30562
|
+
});
|
|
30563
|
+
var TableContext = React52__namespace.createContext({ density: "default", headTone: "default" });
|
|
30564
|
+
var Table = React52__namespace.forwardRef(function Table2({ density = "default", headTone = "default", fixed = false, containerClassName, className, ...props }, ref) {
|
|
30565
|
+
const ctx = React52__namespace.useMemo(() => ({ density, headTone }), [density, headTone]);
|
|
30566
|
+
const { dataAttributes } = createTable({ density, headTone });
|
|
30567
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TableContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(tableContainerClass, containerClassName), "data-slot": "table-container", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
30568
|
+
"table",
|
|
30569
|
+
{
|
|
30570
|
+
ref,
|
|
30571
|
+
className: cn(tableRootVariants({ fixed: fixed ? "true" : "false" }), className),
|
|
30572
|
+
...dataAttributes,
|
|
30573
|
+
...props
|
|
30574
|
+
}
|
|
30575
|
+
) }) });
|
|
30576
|
+
});
|
|
30577
|
+
var TableHeader = React52__namespace.forwardRef(
|
|
30578
|
+
function TableHeader2(props, ref) {
|
|
30579
|
+
return /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, "data-slot": "table-header", ...props });
|
|
30580
|
+
}
|
|
30581
|
+
);
|
|
30582
|
+
var TableBody = React52__namespace.forwardRef(
|
|
30583
|
+
function TableBody2(props, ref) {
|
|
30584
|
+
return /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, "data-slot": "table-body", ...props });
|
|
30585
|
+
}
|
|
30586
|
+
);
|
|
30587
|
+
var TableRow = React52__namespace.forwardRef(
|
|
30588
|
+
function TableRow2({ className, ...props }, ref) {
|
|
30589
|
+
return /* @__PURE__ */ jsxRuntime.jsx("tr", { ref, className: cn(tableRowClass, className), "data-slot": "table-row", ...props });
|
|
30590
|
+
}
|
|
30591
|
+
);
|
|
30592
|
+
var TableHead = React52__namespace.forwardRef(function TableHead2({ align: align2, scope = "col", className, ...props }, ref) {
|
|
30593
|
+
const { density, headTone } = React52__namespace.useContext(TableContext);
|
|
30594
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30595
|
+
"th",
|
|
30596
|
+
{
|
|
30597
|
+
ref,
|
|
30598
|
+
scope,
|
|
30599
|
+
className: cn(tableHeadVariants({ align: align2, density, tone: headTone }), className),
|
|
30600
|
+
"data-slot": "table-head",
|
|
30601
|
+
...props
|
|
30602
|
+
}
|
|
30603
|
+
);
|
|
30604
|
+
});
|
|
30605
|
+
var TableCell = React52__namespace.forwardRef(function TableCell2({ align: align2, numeric = false, className, ...props }, ref) {
|
|
30606
|
+
const { density } = React52__namespace.useContext(TableContext);
|
|
30607
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30608
|
+
"td",
|
|
30609
|
+
{
|
|
30610
|
+
ref,
|
|
30611
|
+
className: cn(tableCellVariants({ align: align2, density, numeric: numeric ? "true" : "false" }), className),
|
|
30612
|
+
"data-slot": "table-cell",
|
|
30613
|
+
...props
|
|
30614
|
+
}
|
|
30615
|
+
);
|
|
30616
|
+
});
|
|
30617
|
+
var TableCaption = React52__namespace.forwardRef(
|
|
30618
|
+
function TableCaption2({ className, ...props }, ref) {
|
|
30619
|
+
return /* @__PURE__ */ jsxRuntime.jsx("caption", { ref, className: cn(tableCaptionClass, className), "data-slot": "table-caption", ...props });
|
|
30620
|
+
}
|
|
30621
|
+
);
|
|
30622
|
+
|
|
30623
|
+
// ../native-select/dist/index.js
|
|
30624
|
+
var nativeSelectChevronPath = "m6 9 6 6 6-6";
|
|
30625
|
+
var nativeSelectWrapperClass = "relative inline-flex min-w-0 items-center";
|
|
30626
|
+
var nativeSelectVariants = cva({
|
|
30627
|
+
base: "w-full cursor-pointer appearance-none rounded-md border border-input bg-background text-foreground shadow-sm ring-offset-background focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
30628
|
+
variants: {
|
|
30629
|
+
size: {
|
|
30630
|
+
sm: "h-8 pl-2.5 pr-8 text-xs",
|
|
30631
|
+
default: "h-9 pl-3 pr-9 text-sm",
|
|
30632
|
+
lg: "h-10 pl-3 pr-10 text-base"
|
|
30633
|
+
}
|
|
30634
|
+
},
|
|
30635
|
+
defaultVariants: {
|
|
30636
|
+
size: "default"
|
|
30637
|
+
}
|
|
30638
|
+
});
|
|
30639
|
+
var nativeSelectIconClass = "pointer-events-none absolute right-2.5 h-4 w-4 shrink-0 text-muted-foreground";
|
|
30640
|
+
var NativeSelect = React52__namespace.forwardRef(function NativeSelect2({ size = "default", className, containerClassName, children, ...props }, ref) {
|
|
30641
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn(nativeSelectWrapperClass, containerClassName), "data-slot": "native-select", children: [
|
|
30642
|
+
/* @__PURE__ */ jsxRuntime.jsx("select", { ref, className: cn(nativeSelectVariants({ size }), className), ...props, children }),
|
|
30643
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30644
|
+
"svg",
|
|
30645
|
+
{
|
|
30646
|
+
className: nativeSelectIconClass,
|
|
30647
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
30648
|
+
viewBox: "0 0 24 24",
|
|
30649
|
+
fill: "none",
|
|
30650
|
+
stroke: "currentColor",
|
|
30651
|
+
strokeWidth: "2",
|
|
30652
|
+
strokeLinecap: "round",
|
|
30653
|
+
strokeLinejoin: "round",
|
|
30654
|
+
"aria-hidden": "true",
|
|
30655
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: nativeSelectChevronPath })
|
|
30656
|
+
}
|
|
30657
|
+
)
|
|
30658
|
+
] });
|
|
30659
|
+
});
|
|
30660
|
+
|
|
30210
30661
|
exports.AIProvider = AIProvider;
|
|
30211
30662
|
exports.Accordion = Accordion;
|
|
30212
30663
|
exports.AccordionContent = AccordionContent;
|
|
@@ -30365,6 +30816,7 @@ exports.MobileNav = MobileNav;
|
|
|
30365
30816
|
exports.MobileNavContent = MobileNavContent;
|
|
30366
30817
|
exports.MobileNavLink = MobileNavLink;
|
|
30367
30818
|
exports.MobileNavTrigger = MobileNavTrigger;
|
|
30819
|
+
exports.NativeSelect = NativeSelect;
|
|
30368
30820
|
exports.Navbar = Navbar;
|
|
30369
30821
|
exports.NumberedSteps = NumberedSteps;
|
|
30370
30822
|
exports.OtpInput = OtpInput;
|
|
@@ -30451,7 +30903,14 @@ exports.Steps = Steps;
|
|
|
30451
30903
|
exports.StickyNote = StickyNote;
|
|
30452
30904
|
exports.Switch = Switch;
|
|
30453
30905
|
exports.TTSProvider = TTSProvider;
|
|
30906
|
+
exports.Table = Table;
|
|
30907
|
+
exports.TableBody = TableBody;
|
|
30908
|
+
exports.TableCaption = TableCaption;
|
|
30909
|
+
exports.TableCell = TableCell;
|
|
30910
|
+
exports.TableHead = TableHead;
|
|
30911
|
+
exports.TableHeader = TableHeader;
|
|
30454
30912
|
exports.TableOfContents = TableOfContents;
|
|
30913
|
+
exports.TableRow = TableRow;
|
|
30455
30914
|
exports.Tabs = Tabs;
|
|
30456
30915
|
exports.TabsContent = TabsContent;
|
|
30457
30916
|
exports.TabsList = TabsList;
|
|
@@ -30513,6 +30972,7 @@ exports.checkIconPath = checkIconPath;
|
|
|
30513
30972
|
exports.checkboxTokens = checkboxTokens;
|
|
30514
30973
|
exports.checkboxVariants = checkboxVariants;
|
|
30515
30974
|
exports.clampVoicePillIntensity = clampVoicePillIntensity;
|
|
30975
|
+
exports.cn = cn;
|
|
30516
30976
|
exports.codeEditorTokens = codeEditorTokens;
|
|
30517
30977
|
exports.codeEditorVariants = codeEditorVariants;
|
|
30518
30978
|
exports.collapsibleContentVariants = collapsibleContentVariants;
|
|
@@ -30537,6 +30997,7 @@ exports.composerPrimaryActionVariants = composerPrimaryActionVariants;
|
|
|
30537
30997
|
exports.composerSurfaceVariants = composerSurfaceVariants;
|
|
30538
30998
|
exports.composerTokenPillClass = composerTokenPillClass;
|
|
30539
30999
|
exports.composerTrayClass = composerTrayClass;
|
|
31000
|
+
exports.computeMenuPosition = computeMenuPosition;
|
|
30540
31001
|
exports.contentProtectionVariants = contentProtectionVariants;
|
|
30541
31002
|
exports.controlsVariants = controlsVariants;
|
|
30542
31003
|
exports.createAnalytics = createAnalytics;
|
|
@@ -30562,6 +31023,7 @@ exports.createTelemetry = createTelemetry;
|
|
|
30562
31023
|
exports.createTwemojiRenderer = createTwemojiRenderer;
|
|
30563
31024
|
exports.createVoicePill = createVoicePill;
|
|
30564
31025
|
exports.createWaveform = createWaveform;
|
|
31026
|
+
exports.cva = cva;
|
|
30565
31027
|
exports.dayVariants = dayVariants;
|
|
30566
31028
|
exports.defaultStickerRenderer = defaultStickerRenderer;
|
|
30567
31029
|
exports.deviceFrameVariants = deviceFrameVariants;
|