@flamingo-stack/openframe-frontend-core 0.0.717 → 0.0.718
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-3MJPCKB6.js → chunk-45F7PXUI.js} +2 -2
- package/dist/{chunk-TYVS64YN.js → chunk-67QBMN4R.js} +1 -1
- package/dist/{chunk-3RKBJT6K.cjs → chunk-6A43ZDWV.cjs} +2 -2
- package/dist/chunk-A6P6DHEZ.cjs +130 -0
- package/dist/{chunk-M2A5SC6H.cjs → chunk-BOTM373R.cjs} +2 -2
- package/dist/{chunk-X3RVDBXU.cjs → chunk-BWIN42ZA.cjs} +15 -15
- package/dist/{chunk-6MZI5SQ4.js → chunk-DCD5WZUF.js} +3 -3
- package/dist/{chunk-2EK7PA73.js → chunk-DEZDMTBM.js} +4 -4
- package/dist/{chunk-NB6EWUDE.cjs → chunk-DXCBOZVT.cjs} +13 -13
- package/dist/{chunk-J3Q53TWW.cjs → chunk-EZC2F5OT.cjs} +22 -22
- package/dist/{chunk-2AI2E3O2.cjs → chunk-GN4A7PMB.cjs} +27 -27
- package/dist/{chunk-6T3BTD6Q.js → chunk-IWCPXJEE.js} +201 -327
- package/dist/{chunk-2X2P3VHF.js → chunk-JIWMBIVZ.js} +4 -4
- package/dist/{chunk-NPAQSMRY.js → chunk-LOYPRJWA.js} +1053 -357
- package/dist/{chunk-U3TP4UGA.cjs → chunk-MIQLUUVF.cjs} +6 -6
- package/dist/{chunk-FGKSAQR3.js → chunk-MM7MCIXL.js} +4 -4
- package/dist/{chunk-B5XU6KOA.js → chunk-N2PF5CFX.js} +4836 -5424
- package/dist/{chunk-LANNTTKP.cjs → chunk-NDZ5ZXOQ.cjs} +6 -6
- package/dist/{chunk-WH5GJSID.js → chunk-PQ6HBLZ7.js} +3 -3
- package/dist/{chunk-FROXS52D.cjs → chunk-QBCDSTLE.cjs} +2 -2
- package/dist/{chunk-NQWJAOHO.js → chunk-QXZCLQNV.js} +1 -1
- package/dist/{chunk-3QAMMWV2.cjs → chunk-S2FUFMLW.cjs} +20 -20
- package/dist/{chunk-PD4W2VMH.js → chunk-SGFTTJKO.js} +1 -1
- package/dist/{chunk-E6FLX4TX.js → chunk-TBCZCRQ5.js} +5 -5
- package/dist/{chunk-OHLBO4LM.cjs → chunk-WALCXC7J.cjs} +3 -3
- package/dist/{chunk-VZI5BA4L.js → chunk-XGHGGBM3.js} +1 -1
- package/dist/{chunk-VYKFM2NB.cjs → chunk-YC5COB5V.cjs} +32 -32
- package/dist/{chunk-47FISYO5.js → chunk-YEMCCYIF.js} +2 -2
- package/dist/chunk-YYYVS7CX.js +130 -0
- package/dist/{chunk-5MF3NMYC.cjs → chunk-Z3CVSPO3.cjs} +581 -1169
- package/dist/{chunk-PPXR22YC.cjs → chunk-Z5UWW3Z2.cjs} +707 -11
- package/dist/{chunk-JO5TLJPM.cjs → chunk-ZXCZYMN4.cjs} +37 -163
- package/dist/{cloud-tenants-KDWTVHSI.cjs → cloud-tenants-PFDF7O5U.cjs} +5 -4
- package/dist/{cloud-tenants-LNC26WY2.js → cloud-tenants-TAKOWXLD.js} +4 -3
- package/dist/components/case-studies/index.cjs +13 -12
- package/dist/components/case-studies/index.js +5 -4
- package/dist/components/contact/index.cjs +6 -5
- package/dist/components/contact/index.js +5 -4
- package/dist/components/docs/index.cjs +8 -7
- package/dist/components/docs/index.js +7 -6
- package/dist/components/embeds/index.cjs +6 -5
- package/dist/components/embeds/index.js +5 -4
- package/dist/components/faq/index.cjs +6 -5
- package/dist/components/faq/index.js +5 -4
- package/dist/components/features/index.cjs +9 -4
- package/dist/components/features/index.js +8 -3
- package/dist/components/features/remote-session/index.d.ts +2 -0
- package/dist/components/features/remote-session/index.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +3 -3
- package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts +29 -0
- package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +48 -47
- package/dist/components/help-center-pages/index.js +14 -13
- package/dist/components/index.cjs +30 -25
- package/dist/components/index.js +19 -14
- package/dist/components/meeting-scheduler/index.cjs +25 -24
- package/dist/components/meeting-scheduler/index.js +4 -3
- package/dist/components/navigation/index.cjs +6 -5
- package/dist/components/navigation/index.js +5 -4
- package/dist/components/onboarding-guides/index.cjs +8 -7
- package/dist/components/onboarding-guides/index.js +7 -6
- package/dist/components/product-demo/index.cjs +7 -7
- package/dist/components/product-demo/index.js +7 -7
- package/dist/components/tickets/index.cjs +8 -7
- package/dist/components/tickets/index.js +7 -6
- package/dist/components/ui/autocomplete.d.ts +6 -0
- package/dist/components/ui/autocomplete.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +7 -6
- package/dist/components/ui/index.js +6 -5
- package/dist/{devices-ATHYJUVQ.cjs → devices-KRCGZMGA.cjs} +6 -5
- package/dist/{devices-NYCRQ3PG.js → devices-LHEX7O5T.js} +4 -3
- package/dist/hooks/index.cjs +6 -4
- package/dist/hooks/index.js +5 -3
- package/dist/index.cjs +14 -8
- package/dist/index.js +15 -9
- package/dist/{knowledge-EHNRYT7U.cjs → knowledge-KLVPVEYZ.cjs} +5 -4
- package/dist/{knowledge-DEKYJXBS.js → knowledge-RZSFNR33.js} +4 -3
- package/dist/{logs-Q7YFIVYI.js → logs-E5DOV5JO.js} +4 -3
- package/dist/{logs-3V765P7O.cjs → logs-OX3XTVL2.cjs} +13 -12
- package/dist/{policies-TXU5AIXS.cjs → policies-FOSCIZGK.cjs} +9 -8
- package/dist/{policies-BTIENK5A.js → policies-MC2S4S5G.js} +4 -3
- package/dist/{remote-session-R6VAFESR.cjs → remote-session-DRFE5XZE.cjs} +4 -3
- package/dist/{remote-session-GSGZOFDX.js → remote-session-JQ2BPIE3.js} +2 -1
- package/dist/{software-update-SW2HOBHW.js → software-update-D4OEIH65.js} +6 -4
- package/dist/{software-update-MINTICZY.cjs → software-update-HOBSTWVO.cjs} +11 -9
- package/package.json +1 -1
- package/src/components/features/remote-session/index.ts +2 -0
- package/src/components/features/remote-session/remote-session-keep-modals.tsx +4 -4
- package/src/components/features/remote-session/remote-session-ticket-modals.tsx +140 -0
- package/src/components/ui/autocomplete.tsx +18 -4
|
@@ -22,9 +22,9 @@ var _chunkDEY6XXGOcjs = require('./chunk-DEY6XXGO.cjs');
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
var _chunkPPXR22YCcjs = require('./chunk-PPXR22YC.cjs');
|
|
26
25
|
|
|
27
26
|
|
|
27
|
+
var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
@@ -36,13 +36,17 @@ var _chunkPPXR22YCcjs = require('./chunk-PPXR22YC.cjs');
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
var
|
|
39
|
+
var _chunkZXCZYMN4cjs = require('./chunk-ZXCZYMN4.cjs');
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
var _chunkB4NCVYEQcjs = require('./chunk-B4NCVYEQ.cjs');
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
var _chunkA6P6DHEZcjs = require('./chunk-A6P6DHEZ.cjs');
|
|
48
|
+
|
|
49
|
+
|
|
46
50
|
var _chunkWBNAEYTQcjs = require('./chunk-WBNAEYTQ.cjs');
|
|
47
51
|
|
|
48
52
|
|
|
@@ -603,596 +607,6 @@ function AnnouncementBarView({
|
|
|
603
607
|
] });
|
|
604
608
|
}
|
|
605
609
|
|
|
606
|
-
// src/components/ui/autocomplete.tsx
|
|
607
|
-
var _reactpopover = require('@radix-ui/react-popover'); var PopoverPrimitive = _interopRequireWildcard(_reactpopover); var Popover = _interopRequireWildcard(_reactpopover); var PopoverPrimitive2 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive3 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive4 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive5 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive6 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive7 = _interopRequireWildcard(_reactpopover);
|
|
608
|
-
var _reactscrollarea = require('@radix-ui/react-scroll-area'); var ScrollAreaPrimitive = _interopRequireWildcard(_reactscrollarea); var ScrollAreaPrimitive2 = _interopRequireWildcard(_reactscrollarea); var ScrollAreaPrimitive3 = _interopRequireWildcard(_reactscrollarea);
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
// src/components/ui/hidden-tags-popup.tsx
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
var HiddenTagsPopup = _react.forwardRef.call(void 0, function HiddenTagsPopupImpl({ items, onRemove, disabled, className, style }, ref) {
|
|
623
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
624
|
-
"div",
|
|
625
|
-
{
|
|
626
|
-
ref,
|
|
627
|
-
style,
|
|
628
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
629
|
-
// Base positioning is neutral (left-anchored); consumers override via
|
|
630
|
-
// `style.left` (search-input, tag-search-input) or `className` (autocomplete).
|
|
631
|
-
"absolute left-0 top-full z-50 mt-1 min-w-[200px]",
|
|
632
|
-
"rounded-[6px] border border-ods-border bg-ods-card shadow-lg",
|
|
633
|
-
"duration-150 animate-in fade-in-0 zoom-in-95",
|
|
634
|
-
className
|
|
635
|
-
),
|
|
636
|
-
children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
637
|
-
"div",
|
|
638
|
-
{
|
|
639
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
640
|
-
"flex h-11 items-center justify-between gap-3 px-3 md:h-12",
|
|
641
|
-
"border-b border-ods-border last:border-b-0"
|
|
642
|
-
),
|
|
643
|
-
children: [
|
|
644
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
645
|
-
"span",
|
|
646
|
-
{
|
|
647
|
-
className: "min-w-0 flex-1 truncate uppercase text-ods-text-primary text-h5",
|
|
648
|
-
title: typeof item.label === "string" ? item.label : void 0,
|
|
649
|
-
children: item.label
|
|
650
|
-
}
|
|
651
|
-
),
|
|
652
|
-
!disabled && onRemove && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
653
|
-
"button",
|
|
654
|
-
{
|
|
655
|
-
type: "button",
|
|
656
|
-
onClick: (e) => {
|
|
657
|
-
e.stopPropagation();
|
|
658
|
-
onRemove(item.value);
|
|
659
|
-
},
|
|
660
|
-
className: "shrink-0 text-ods-text-secondary transition-colors hover:text-ods-text-primary",
|
|
661
|
-
"aria-label": `Remove ${String(item.label)}`,
|
|
662
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.XmarkCircleIcon, { size: 20 })
|
|
663
|
-
}
|
|
664
|
-
)
|
|
665
|
-
]
|
|
666
|
-
},
|
|
667
|
-
String(item.value)
|
|
668
|
-
))
|
|
669
|
-
}
|
|
670
|
-
);
|
|
671
|
-
});
|
|
672
|
-
HiddenTagsPopup.displayName = "HiddenTagsPopup";
|
|
673
|
-
|
|
674
|
-
// src/components/ui/autocomplete.tsx
|
|
675
|
-
|
|
676
|
-
var innerInputStyles = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
677
|
-
"min-w-[60px] flex-1 border-none bg-transparent outline-none",
|
|
678
|
-
"text-h4",
|
|
679
|
-
"text-ods-text-primary placeholder:text-ods-text-secondary",
|
|
680
|
-
// Disabled - match Input exactly (value greys out, placeholder dims further)
|
|
681
|
-
"disabled:cursor-not-allowed disabled:text-ods-text-disabled disabled:placeholder:text-ods-border"
|
|
682
|
-
);
|
|
683
|
-
function AutocompleteInner(props, ref) {
|
|
684
|
-
const {
|
|
685
|
-
options,
|
|
686
|
-
disabled = false,
|
|
687
|
-
startAdornment,
|
|
688
|
-
showClearAll = true,
|
|
689
|
-
className,
|
|
690
|
-
dropdownClassName,
|
|
691
|
-
freeSolo = false,
|
|
692
|
-
label,
|
|
693
|
-
labelVariant,
|
|
694
|
-
error,
|
|
695
|
-
filterOptions,
|
|
696
|
-
renderOption,
|
|
697
|
-
invalid = false,
|
|
698
|
-
noOptionsText = "No options",
|
|
699
|
-
inputValue: inputValueProp,
|
|
700
|
-
onInputChange,
|
|
701
|
-
loading = false,
|
|
702
|
-
loadingText = "Loading...",
|
|
703
|
-
creatable = false,
|
|
704
|
-
onCreateOption,
|
|
705
|
-
maxCreateLength,
|
|
706
|
-
onDeleteOption,
|
|
707
|
-
isDeletingOption = false,
|
|
708
|
-
disableClientFilter = false,
|
|
709
|
-
showChevron = true,
|
|
710
|
-
clearOnOpen = true
|
|
711
|
-
} = props;
|
|
712
|
-
const multiple = _nullishCoalesce(props.multiple, () => ( false));
|
|
713
|
-
const placeholder = _nullishCoalesce(props.placeholder, () => ( (multiple ? "Add More..." : "Select...")));
|
|
714
|
-
const maxItems = multiple ? props.maxItems : void 0;
|
|
715
|
-
const renderTag = multiple ? props.renderTag : void 0;
|
|
716
|
-
const limitTagsProp = multiple ? _nullishCoalesce(props.limitTags, () => ( "auto")) : "auto";
|
|
717
|
-
const getLimitTagsText = multiple ? _nullishCoalesce(props.getLimitTagsText, () => ( ((more) => `+${more}`))) : (more) => `+${more}`;
|
|
718
|
-
const valueArray = _react.useMemo.call(void 0,
|
|
719
|
-
() => multiple ? props.value : props.value != null ? [props.value] : [],
|
|
720
|
-
[multiple, props.value]
|
|
721
|
-
);
|
|
722
|
-
const [internalInputValue, setInternalInputValue] = _react.useState.call(void 0, "");
|
|
723
|
-
const isInputControlled = inputValueProp !== void 0;
|
|
724
|
-
const inputValue = isInputControlled ? inputValueProp : internalInputValue;
|
|
725
|
-
const updateInputValue = (value, reason) => {
|
|
726
|
-
if (!isInputControlled) {
|
|
727
|
-
setInternalInputValue(value);
|
|
728
|
-
}
|
|
729
|
-
_optionalChain([onInputChange, 'optionalCall', _2 => _2(value, reason)]);
|
|
730
|
-
};
|
|
731
|
-
const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
|
|
732
|
-
const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
|
|
733
|
-
const keyboardPadding = _chunkJO5TLJPMcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
734
|
-
const containerRef = _react.useRef.call(void 0, null);
|
|
735
|
-
const hiddenTagsPopupRef = _react.useRef.call(void 0, null);
|
|
736
|
-
const isInvalid = invalid || !!error;
|
|
737
|
-
_react.useImperativeHandle.call(void 0, ref, () => containerRef.current);
|
|
738
|
-
const selectedOptions = _react.useMemo.call(void 0, () => {
|
|
739
|
-
return valueArray.map((v) => _nullishCoalesce(options.find((opt) => opt.value === v), () => ( { label: String(v), value: v })));
|
|
740
|
-
}, [valueArray, options]);
|
|
741
|
-
const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
|
|
742
|
-
const resolvedStartAdornment = _nullishCoalesce(_nullishCoalesce(startAdornment, () => ( _optionalChain([selectedOption, 'optionalAccess', _3 => _3.icon]))), () => ( null));
|
|
743
|
-
const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
|
|
744
|
-
const {
|
|
745
|
-
visibleCount: autoVisibleCount,
|
|
746
|
-
middleRef,
|
|
747
|
-
measureRef,
|
|
748
|
-
textMeasureRef,
|
|
749
|
-
badgeRef,
|
|
750
|
-
inputRef
|
|
751
|
-
} = _chunkJO5TLJPMcjs.useAutoLimitTags.call(void 0, {
|
|
752
|
-
count: multiple ? selectedOptions.length : 0,
|
|
753
|
-
limitTags: multiple ? limitTagsProp : 0,
|
|
754
|
-
placeholder: inputPlaceholder
|
|
755
|
-
});
|
|
756
|
-
const visibleCount = multiple ? autoVisibleCount : 0;
|
|
757
|
-
const visibleTags = multiple ? selectedOptions.slice(0, visibleCount) : [];
|
|
758
|
-
const hiddenTags = multiple ? selectedOptions.slice(visibleCount) : [];
|
|
759
|
-
const hiddenTagsCount = multiple ? selectedOptions.length - visibleCount : 0;
|
|
760
|
-
const [showHiddenTags, setShowHiddenTags] = _react.useState.call(void 0, false);
|
|
761
|
-
const hiddenTagsRef = _react.useRef.call(void 0, null);
|
|
762
|
-
_react.useEffect.call(void 0, () => {
|
|
763
|
-
if (!showHiddenTags) return void 0;
|
|
764
|
-
const handleClick = (e) => {
|
|
765
|
-
const target = e.target;
|
|
766
|
-
const inButton = _optionalChain([hiddenTagsRef, 'access', _4 => _4.current, 'optionalAccess', _5 => _5.contains, 'call', _6 => _6(target)]);
|
|
767
|
-
const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _7 => _7.current, 'optionalAccess', _8 => _8.contains, 'call', _9 => _9(target)]);
|
|
768
|
-
if (!inButton && !inPopup) {
|
|
769
|
-
setShowHiddenTags(false);
|
|
770
|
-
}
|
|
771
|
-
};
|
|
772
|
-
document.addEventListener("mousedown", handleClick);
|
|
773
|
-
return () => document.removeEventListener("mousedown", handleClick);
|
|
774
|
-
}, [showHiddenTags]);
|
|
775
|
-
const openDropdown = () => {
|
|
776
|
-
if (!multiple && !clearOnOpen && selectedOption) {
|
|
777
|
-
updateInputValue(selectedOption.label, "reset");
|
|
778
|
-
}
|
|
779
|
-
setShowHiddenTags(false);
|
|
780
|
-
setIsOpen(true);
|
|
781
|
-
};
|
|
782
|
-
const inputDisplayValue = !multiple && !isOpen && selectedOption ? selectedOption.label : inputValue;
|
|
783
|
-
const filteredOptions = _react.useMemo.call(void 0, () => {
|
|
784
|
-
if (disableClientFilter) {
|
|
785
|
-
return options;
|
|
786
|
-
}
|
|
787
|
-
if (filterOptions) {
|
|
788
|
-
return filterOptions(options, inputValue);
|
|
789
|
-
}
|
|
790
|
-
if (!inputValue.trim()) {
|
|
791
|
-
return options;
|
|
792
|
-
}
|
|
793
|
-
const lowerInput = inputValue.toLowerCase();
|
|
794
|
-
return options.filter((opt) => opt.label.toLowerCase().includes(lowerInput));
|
|
795
|
-
}, [options, inputValue, filterOptions, disableClientFilter]);
|
|
796
|
-
const showCreateOption = creatable && inputValue.trim().length > 0 && filteredOptions.length === 0;
|
|
797
|
-
const isCreateTooLong = maxCreateLength != null && inputValue.trim().length > maxCreateLength;
|
|
798
|
-
const handleCreate = () => {
|
|
799
|
-
const trimmed = inputValue.trim();
|
|
800
|
-
if (!trimmed || maxCreateLength != null && trimmed.length > maxCreateLength) return;
|
|
801
|
-
const newValue = trimmed;
|
|
802
|
-
if (multiple) {
|
|
803
|
-
if (maxItems && valueArray.length >= maxItems) return;
|
|
804
|
-
props.onChange([...valueArray, newValue]);
|
|
805
|
-
} else {
|
|
806
|
-
props.onChange(newValue);
|
|
807
|
-
}
|
|
808
|
-
updateInputValue("", "reset");
|
|
809
|
-
setIsOpen(false);
|
|
810
|
-
_optionalChain([onCreateOption, 'optionalCall', _10 => _10(trimmed)]);
|
|
811
|
-
};
|
|
812
|
-
const [highlightedFor, setHighlightedFor] = _react.useState.call(void 0, filteredOptions.length);
|
|
813
|
-
if (highlightedFor !== filteredOptions.length) {
|
|
814
|
-
setHighlightedFor(filteredOptions.length);
|
|
815
|
-
setHighlightedIndex(-1);
|
|
816
|
-
}
|
|
817
|
-
const handleInputChange = (e) => {
|
|
818
|
-
updateInputValue(e.target.value, "input");
|
|
819
|
-
if (!isOpen) {
|
|
820
|
-
setIsOpen(true);
|
|
821
|
-
}
|
|
822
|
-
setHighlightedIndex(-1);
|
|
823
|
-
};
|
|
824
|
-
const handleSelect = (option) => {
|
|
825
|
-
if (multiple) {
|
|
826
|
-
const isSelected = valueArray.includes(option.value);
|
|
827
|
-
if (isSelected) {
|
|
828
|
-
props.onChange(valueArray.filter((v) => v !== option.value));
|
|
829
|
-
} else {
|
|
830
|
-
if (maxItems && valueArray.length >= maxItems) {
|
|
831
|
-
return;
|
|
832
|
-
}
|
|
833
|
-
props.onChange([...valueArray, option.value]);
|
|
834
|
-
}
|
|
835
|
-
updateInputValue("", "reset");
|
|
836
|
-
_optionalChain([inputRef, 'access', _11 => _11.current, 'optionalAccess', _12 => _12.focus, 'call', _13 => _13()]);
|
|
837
|
-
} else {
|
|
838
|
-
props.onChange(option.value);
|
|
839
|
-
updateInputValue(clearOnOpen ? "" : option.label, "reset");
|
|
840
|
-
setIsOpen(false);
|
|
841
|
-
}
|
|
842
|
-
};
|
|
843
|
-
const handleClearAll = (e) => {
|
|
844
|
-
e.stopPropagation();
|
|
845
|
-
e.preventDefault();
|
|
846
|
-
if (multiple) {
|
|
847
|
-
props.onChange([]);
|
|
848
|
-
} else {
|
|
849
|
-
props.onChange(null);
|
|
850
|
-
}
|
|
851
|
-
if (!isInputControlled) {
|
|
852
|
-
setInternalInputValue("");
|
|
853
|
-
}
|
|
854
|
-
_optionalChain([onInputChange, 'optionalCall', _14 => _14("", "clear")]);
|
|
855
|
-
setIsOpen(false);
|
|
856
|
-
};
|
|
857
|
-
const handleKeyDown = (e) => {
|
|
858
|
-
switch (e.key) {
|
|
859
|
-
case "ArrowDown":
|
|
860
|
-
e.preventDefault();
|
|
861
|
-
if (!isOpen) {
|
|
862
|
-
openDropdown();
|
|
863
|
-
}
|
|
864
|
-
setHighlightedIndex((prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0);
|
|
865
|
-
break;
|
|
866
|
-
case "ArrowUp":
|
|
867
|
-
e.preventDefault();
|
|
868
|
-
setHighlightedIndex((prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1);
|
|
869
|
-
break;
|
|
870
|
-
case "Enter":
|
|
871
|
-
e.preventDefault();
|
|
872
|
-
if (showCreateOption) {
|
|
873
|
-
handleCreate();
|
|
874
|
-
} else if (highlightedIndex >= 0 && filteredOptions[highlightedIndex]) {
|
|
875
|
-
handleSelect(filteredOptions[highlightedIndex]);
|
|
876
|
-
} else if (freeSolo && inputValue.trim()) {
|
|
877
|
-
const newOption = {
|
|
878
|
-
label: inputValue.trim(),
|
|
879
|
-
value: inputValue.trim()
|
|
880
|
-
};
|
|
881
|
-
handleSelect(newOption);
|
|
882
|
-
}
|
|
883
|
-
break;
|
|
884
|
-
case "Escape": {
|
|
885
|
-
const resetValue = !multiple && !clearOnOpen && selectedOption ? selectedOption.label : "";
|
|
886
|
-
updateInputValue(resetValue, "reset");
|
|
887
|
-
setIsOpen(false);
|
|
888
|
-
setHighlightedIndex(-1);
|
|
889
|
-
break;
|
|
890
|
-
}
|
|
891
|
-
case "Backspace":
|
|
892
|
-
break;
|
|
893
|
-
}
|
|
894
|
-
};
|
|
895
|
-
const handleOpenChange = (open) => {
|
|
896
|
-
if (open) {
|
|
897
|
-
openDropdown();
|
|
898
|
-
} else {
|
|
899
|
-
const resetValue = !multiple && !clearOnOpen && selectedOption ? selectedOption.label : "";
|
|
900
|
-
updateInputValue(resetValue, "reset");
|
|
901
|
-
setIsOpen(false);
|
|
902
|
-
}
|
|
903
|
-
};
|
|
904
|
-
const canAddMore = multiple ? !maxItems || valueArray.length < maxItems : true;
|
|
905
|
-
const hasValue = valueArray.length > 0;
|
|
906
|
-
const popover = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive.Root, { open: isOpen, onOpenChange: handleOpenChange, modal: false, children: [
|
|
907
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
908
|
-
"div",
|
|
909
|
-
{
|
|
910
|
-
"data-invalid": isInvalid || void 0,
|
|
911
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
912
|
-
// Layout — single line, no wrapping
|
|
913
|
-
"flex min-h-11 cursor-text items-center rounded-[6px] border md:min-h-12",
|
|
914
|
-
"focus-within:outline-none",
|
|
915
|
-
"transition-colors duration-200",
|
|
916
|
-
"border-ods-border bg-ods-card",
|
|
917
|
-
"group",
|
|
918
|
-
!disabled && "hover:border-ods-border-hover hover:bg-ods-bg-hover active:border-ods-border-active active:bg-ods-bg-active",
|
|
919
|
-
disabled && "!cursor-not-allowed bg-ods-bg",
|
|
920
|
-
// Adornments / chevron carry their own colour — grey them with the
|
|
921
|
-
// value so a disabled field reads as one flat colour. Scoped to the
|
|
922
|
-
// DIRECT span child (the start adornment) on purpose: as a descendant
|
|
923
|
-
// rule it also hit the selected `Tag` chips in the middle zone, whose
|
|
924
|
-
// label is a span, and they went invisible against their own fill in
|
|
925
|
-
// the light theme. Anything nested inside the adornment that sets its
|
|
926
|
-
// own colour keeps it; anything that doesn't inherits the grey.
|
|
927
|
-
"has-[:disabled]:[&>span]:text-ods-text-disabled has-[:disabled]:[&_svg]:text-ods-text-disabled",
|
|
928
|
-
isOpen && !isInvalid && "border-ods-accent hover:border-ods-accent",
|
|
929
|
-
isInvalid && "border-ods-error hover:border-ods-error"
|
|
930
|
-
),
|
|
931
|
-
onClick: () => {
|
|
932
|
-
if (!disabled) {
|
|
933
|
-
_optionalChain([inputRef, 'access', _15 => _15.current, 'optionalAccess', _16 => _16.focus, 'call', _17 => _17()]);
|
|
934
|
-
openDropdown();
|
|
935
|
-
}
|
|
936
|
-
},
|
|
937
|
-
children: [
|
|
938
|
-
resolvedStartAdornment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
939
|
-
"span",
|
|
940
|
-
{
|
|
941
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
942
|
-
// Images are sized alongside svgs: an entity adornment is
|
|
943
|
-
// usually a flag or a crest, and an unconstrained <img> lays
|
|
944
|
-
// out at 0x0 inside this flex row.
|
|
945
|
-
"flex-shrink-0 pl-3 text-ods-text-secondary transition-colors duration-200",
|
|
946
|
-
"[&_img]:size-4 [&_img]:object-contain md:[&_img]:size-6 [&_svg]:size-4 md:[&_svg]:size-6",
|
|
947
|
-
isOpen && !isInvalid && "text-ods-accent",
|
|
948
|
-
isInvalid && "text-ods-error"
|
|
949
|
-
),
|
|
950
|
-
children: resolvedStartAdornment
|
|
951
|
-
}
|
|
952
|
-
),
|
|
953
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
|
|
954
|
-
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
955
|
-
_chunkF5BPGWGTcjs.Tag,
|
|
956
|
-
{
|
|
957
|
-
variant: "outline",
|
|
958
|
-
labelClassName: "max-w-[90px] truncate",
|
|
959
|
-
label: renderTag ? renderTag(option) : option.label,
|
|
960
|
-
onClose: !disabled ? () => {
|
|
961
|
-
props.onChange(valueArray.filter((v) => v !== option.value));
|
|
962
|
-
} : void 0
|
|
963
|
-
},
|
|
964
|
-
String(option.value)
|
|
965
|
-
)),
|
|
966
|
-
multiple && hiddenTagsCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: hiddenTagsRef, className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
967
|
-
"button",
|
|
968
|
-
{
|
|
969
|
-
ref: badgeRef,
|
|
970
|
-
type: "button",
|
|
971
|
-
onClick: (e) => {
|
|
972
|
-
e.stopPropagation();
|
|
973
|
-
setShowHiddenTags((prev) => {
|
|
974
|
-
if (!prev) setIsOpen(false);
|
|
975
|
-
return !prev;
|
|
976
|
-
});
|
|
977
|
-
},
|
|
978
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
979
|
-
"flex h-8 items-center px-2",
|
|
980
|
-
"rounded-[6px] border border-ods-border bg-ods-card",
|
|
981
|
-
"text-ods-text-secondary text-h5",
|
|
982
|
-
"cursor-pointer transition-colors hover:bg-ods-bg-hover"
|
|
983
|
-
),
|
|
984
|
-
children: getLimitTagsText(hiddenTagsCount)
|
|
985
|
-
}
|
|
986
|
-
) }),
|
|
987
|
-
canAddMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
988
|
-
"input",
|
|
989
|
-
{
|
|
990
|
-
ref: inputRef,
|
|
991
|
-
type: "text",
|
|
992
|
-
value: inputDisplayValue,
|
|
993
|
-
onChange: handleInputChange,
|
|
994
|
-
onKeyDown: handleKeyDown,
|
|
995
|
-
onFocus: () => openDropdown(),
|
|
996
|
-
placeholder: inputPlaceholder,
|
|
997
|
-
disabled,
|
|
998
|
-
className: innerInputStyles
|
|
999
|
-
}
|
|
1000
|
-
)
|
|
1001
|
-
] }),
|
|
1002
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-1 pr-3", children: [
|
|
1003
|
-
showClearAll && (hasValue || inputValue.length > 0) && !disabled && isOpen && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1004
|
-
"button",
|
|
1005
|
-
{
|
|
1006
|
-
type: "button",
|
|
1007
|
-
onClick: handleClearAll,
|
|
1008
|
-
className: "flex items-center justify-center transition-opacity hover:opacity-70",
|
|
1009
|
-
"aria-label": "Clear all",
|
|
1010
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.XmarkCircleIcon, { className: "size-4 text-ods-text-secondary md:size-6" })
|
|
1011
|
-
}
|
|
1012
|
-
),
|
|
1013
|
-
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1014
|
-
_lucidereact.Loader2,
|
|
1015
|
-
{
|
|
1016
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
1017
|
-
"size-4 animate-spin md:size-6",
|
|
1018
|
-
isInvalid ? "text-ods-error" : isOpen ? "text-ods-accent" : "text-ods-text-secondary"
|
|
1019
|
-
)
|
|
1020
|
-
}
|
|
1021
|
-
) : showChevron && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1022
|
-
_chunkVX4E6YSBcjs.Chevron02DownIcon,
|
|
1023
|
-
{
|
|
1024
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
1025
|
-
"size-4 transition-all duration-200 md:size-6",
|
|
1026
|
-
"text-ods-text-secondary",
|
|
1027
|
-
isOpen && "rotate-180",
|
|
1028
|
-
isOpen && !isInvalid && "text-ods-accent",
|
|
1029
|
-
isInvalid && "text-ods-error"
|
|
1030
|
-
)
|
|
1031
|
-
}
|
|
1032
|
-
)
|
|
1033
|
-
] })
|
|
1034
|
-
]
|
|
1035
|
-
}
|
|
1036
|
-
) }),
|
|
1037
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1038
|
-
PopoverPrimitive.Content,
|
|
1039
|
-
{
|
|
1040
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
1041
|
-
"z-50 mt-1 w-[var(--radix-popover-trigger-width)]",
|
|
1042
|
-
"rounded-[4px] border border-ods-border bg-ods-card",
|
|
1043
|
-
"flex max-h-[var(--radix-popper-available-height)] flex-col overflow-hidden",
|
|
1044
|
-
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
1045
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1046
|
-
dropdownClassName
|
|
1047
|
-
),
|
|
1048
|
-
sideOffset: 4,
|
|
1049
|
-
align: "start",
|
|
1050
|
-
collisionPadding: { bottom: keyboardPadding },
|
|
1051
|
-
onOpenAutoFocus: (e) => {
|
|
1052
|
-
e.preventDefault();
|
|
1053
|
-
_optionalChain([inputRef, 'access', _18 => _18.current, 'optionalAccess', _19 => _19.focus, 'call', _20 => _20()]);
|
|
1054
|
-
},
|
|
1055
|
-
onInteractOutside: (e) => {
|
|
1056
|
-
if (_optionalChain([containerRef, 'access', _21 => _21.current, 'optionalAccess', _22 => _22.contains, 'call', _23 => _23(e.target)])) {
|
|
1057
|
-
e.preventDefault();
|
|
1058
|
-
}
|
|
1059
|
-
},
|
|
1060
|
-
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ScrollAreaPrimitive.Root, { className: "flex min-h-0 flex-col overflow-hidden", children: [
|
|
1061
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Viewport, { className: "max-h-[240px] min-h-0 w-full [&>div]:!block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "listbox", children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-2 text-ods-text-secondary text-h6", children: loadingText }) : filteredOptions.length === 0 ? showCreateOption ? isCreateTooLong ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-11 min-w-0 items-center px-[var(--spacing-system-mf)] text-ods-error text-h5 md:h-12", children: [
|
|
1062
|
-
"Maximum ",
|
|
1063
|
-
maxCreateLength,
|
|
1064
|
-
" characters"
|
|
1065
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1066
|
-
"div",
|
|
1067
|
-
{
|
|
1068
|
-
role: "option",
|
|
1069
|
-
"aria-selected": false,
|
|
1070
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
1071
|
-
"flex h-11 min-w-0 cursor-pointer items-center px-[var(--spacing-system-mf)] transition-colors md:h-12",
|
|
1072
|
-
"text-ods-accent text-h4",
|
|
1073
|
-
"hover:bg-ods-bg-hover"
|
|
1074
|
-
),
|
|
1075
|
-
onClick: handleCreate,
|
|
1076
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.TruncateText, { className: "text-current", children: `+ Create "${inputValue.trim()}"` })
|
|
1077
|
-
}
|
|
1078
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-2 text-ods-text-secondary text-h6", children: freeSolo && inputValue.trim() ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
|
|
1079
|
-
'Press Enter to add "',
|
|
1080
|
-
inputValue,
|
|
1081
|
-
'"'
|
|
1082
|
-
] }) : noOptionsText }) : filteredOptions.map((option, index) => {
|
|
1083
|
-
const isSelected = valueArray.includes(option.value);
|
|
1084
|
-
const isHighlighted = index === highlightedIndex;
|
|
1085
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1086
|
-
"div",
|
|
1087
|
-
{
|
|
1088
|
-
role: "option",
|
|
1089
|
-
"aria-selected": isSelected,
|
|
1090
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
1091
|
-
// `min-h` rather than a fixed height: an option may carry
|
|
1092
|
-
// a second line, and a clipped one is worse than a taller row.
|
|
1093
|
-
"group/item flex min-h-11 cursor-pointer items-center border-b border-ods-border px-[var(--spacing-system-mf)] py-[var(--spacing-system-xsf)] transition-colors last:border-b-0 md:min-h-12",
|
|
1094
|
-
"text-h4",
|
|
1095
|
-
isHighlighted && "bg-ods-bg-surface",
|
|
1096
|
-
isSelected ? "text-ods-accent" : "text-ods-text-primary",
|
|
1097
|
-
!isHighlighted && "hover:bg-ods-bg-hover"
|
|
1098
|
-
),
|
|
1099
|
-
onClick: () => handleSelect(option),
|
|
1100
|
-
onMouseEnter: () => setHighlightedIndex(index),
|
|
1101
|
-
children: renderOption ? renderOption(option, isSelected) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
|
|
1102
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
1103
|
-
option.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex size-5 shrink-0 items-center justify-center overflow-hidden [&_img]:size-full [&_img]:object-contain [&_svg]:size-full", children: option.icon }),
|
|
1104
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
1105
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.TruncateText, { className: "text-current", children: option.label }),
|
|
1106
|
-
typeof option.description === "string" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.TruncateText, { tone: "secondary", variant: "h6", children: option.description }) : option.description
|
|
1107
|
-
] })
|
|
1108
|
-
] }),
|
|
1109
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
1110
|
-
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckIcon, { className: "text-ods-accent", size: 20 }),
|
|
1111
|
-
onDeleteOption && !isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1112
|
-
"button",
|
|
1113
|
-
{
|
|
1114
|
-
type: "button",
|
|
1115
|
-
"aria-label": `Delete ${option.label}`,
|
|
1116
|
-
onClick: (e) => {
|
|
1117
|
-
e.stopPropagation();
|
|
1118
|
-
onDeleteOption(option.value);
|
|
1119
|
-
},
|
|
1120
|
-
disabled: isDeletingOption,
|
|
1121
|
-
className: "opacity-0 transition-opacity focus-visible:opacity-100 disabled:pointer-events-none disabled:opacity-50 group-hover/item:opacity-100",
|
|
1122
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrashIcon, { className: "size-4 text-ods-error" })
|
|
1123
|
-
}
|
|
1124
|
-
)
|
|
1125
|
-
] })
|
|
1126
|
-
] })
|
|
1127
|
-
},
|
|
1128
|
-
String(option.value)
|
|
1129
|
-
);
|
|
1130
|
-
}) }) }),
|
|
1131
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Scrollbar, { className: "hidden", orientation: "vertical", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Thumb, {}) })
|
|
1132
|
-
] })
|
|
1133
|
-
}
|
|
1134
|
-
)
|
|
1135
|
-
] });
|
|
1136
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1137
|
-
_chunkXXBLN4BPcjs.FieldWrapper,
|
|
1138
|
-
{
|
|
1139
|
-
label,
|
|
1140
|
-
labelVariant,
|
|
1141
|
-
error,
|
|
1142
|
-
errorSlot: "error" in props,
|
|
1143
|
-
className,
|
|
1144
|
-
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", ref: containerRef, children: [
|
|
1145
|
-
popover,
|
|
1146
|
-
multiple && showHiddenTags && hiddenTagsCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1147
|
-
HiddenTagsPopup,
|
|
1148
|
-
{
|
|
1149
|
-
ref: hiddenTagsPopupRef,
|
|
1150
|
-
items: hiddenTags,
|
|
1151
|
-
disabled,
|
|
1152
|
-
className: "left-auto right-0 max-w-full",
|
|
1153
|
-
onRemove: (value) => {
|
|
1154
|
-
const newValue = valueArray.filter((v) => v !== value);
|
|
1155
|
-
props.onChange(newValue);
|
|
1156
|
-
if (typeof limitTagsProp === "number" && newValue.length <= limitTagsProp) setShowHiddenTags(false);
|
|
1157
|
-
}
|
|
1158
|
-
}
|
|
1159
|
-
),
|
|
1160
|
-
multiple && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1161
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1162
|
-
"span",
|
|
1163
|
-
{
|
|
1164
|
-
ref: textMeasureRef,
|
|
1165
|
-
"aria-hidden": "true",
|
|
1166
|
-
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 whitespace-nowrap text-h4",
|
|
1167
|
-
children: inputPlaceholder
|
|
1168
|
-
}
|
|
1169
|
-
),
|
|
1170
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1171
|
-
"div",
|
|
1172
|
-
{
|
|
1173
|
-
ref: measureRef,
|
|
1174
|
-
"aria-hidden": "true",
|
|
1175
|
-
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
1176
|
-
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1177
|
-
_chunkF5BPGWGTcjs.Tag,
|
|
1178
|
-
{
|
|
1179
|
-
variant: "outline",
|
|
1180
|
-
labelClassName: "max-w-[90px] truncate",
|
|
1181
|
-
label: renderTag ? renderTag(option) : option.label,
|
|
1182
|
-
onClose: () => {
|
|
1183
|
-
}
|
|
1184
|
-
},
|
|
1185
|
-
`m-${String(option.value)}`
|
|
1186
|
-
))
|
|
1187
|
-
}
|
|
1188
|
-
)
|
|
1189
|
-
] })
|
|
1190
|
-
] })
|
|
1191
|
-
}
|
|
1192
|
-
);
|
|
1193
|
-
}
|
|
1194
|
-
var Autocomplete = _react.forwardRef.call(void 0, AutocompleteInner);
|
|
1195
|
-
|
|
1196
610
|
// src/components/ui/timezone-select.tsx
|
|
1197
611
|
|
|
1198
612
|
|
|
@@ -1203,7 +617,7 @@ function timezoneLabel(tz) {
|
|
|
1203
617
|
timeZone: tz,
|
|
1204
618
|
timeZoneName: "shortOffset"
|
|
1205
619
|
}).formatToParts(/* @__PURE__ */ new Date());
|
|
1206
|
-
const offset = _nullishCoalesce(_optionalChain([parts, 'access',
|
|
620
|
+
const offset = _nullishCoalesce(_optionalChain([parts, 'access', _2 => _2.find, 'call', _3 => _3((p) => p.type === "timeZoneName"), 'optionalAccess', _4 => _4.value]), () => ( ""));
|
|
1207
621
|
return offset ? `${name} (${offset})` : name;
|
|
1208
622
|
} catch (e2) {
|
|
1209
623
|
return name;
|
|
@@ -1230,7 +644,7 @@ function TimezoneSelect({
|
|
|
1230
644
|
}) {
|
|
1231
645
|
const options = _react.useMemo.call(void 0, () => timezoneOptions(value), [value]);
|
|
1232
646
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1233
|
-
Autocomplete,
|
|
647
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
1234
648
|
{
|
|
1235
649
|
className,
|
|
1236
650
|
value: value || null,
|
|
@@ -1405,14 +819,14 @@ var CheckboxWithDescription = _react.forwardRef.call(void 0,
|
|
|
1405
819
|
CheckboxWithDescription.displayName = "CheckboxWithDescription";
|
|
1406
820
|
|
|
1407
821
|
// src/components/ui/date-picker.tsx
|
|
1408
|
-
|
|
822
|
+
var _reactpopover = require('@radix-ui/react-popover'); var Popover = _interopRequireWildcard(_reactpopover); var PopoverPrimitive = _interopRequireWildcard(_reactpopover); var PopoverPrimitive2 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive3 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive4 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive5 = _interopRequireWildcard(_reactpopover); var PopoverPrimitive6 = _interopRequireWildcard(_reactpopover);
|
|
1409
823
|
|
|
1410
824
|
|
|
1411
825
|
var _reactdaypicker = require('react-day-picker');
|
|
1412
826
|
|
|
1413
827
|
var defaultFormatDate = (date) => _chunkF5BPGWGTcjs.formatDateWithTimezone.call(void 0, date, _chunkF5BPGWGTcjs.VIEWER_TIMEZONE, "numeric");
|
|
1414
828
|
var formatDateRange = (range, formatFn) => {
|
|
1415
|
-
if (!_optionalChain([range, 'optionalAccess',
|
|
829
|
+
if (!_optionalChain([range, 'optionalAccess', _5 => _5.from])) return "";
|
|
1416
830
|
if (!range.to) return formatFn(range.from);
|
|
1417
831
|
return `${formatFn(range.from)} - ${formatFn(range.to)}`;
|
|
1418
832
|
};
|
|
@@ -1460,16 +874,16 @@ function DatePickerCalendar({
|
|
|
1460
874
|
}
|
|
1461
875
|
}
|
|
1462
876
|
const rangeSelected = draftRange;
|
|
1463
|
-
const hasCompleteRange = mode === "range" && !!_optionalChain([rangeSelected, 'optionalAccess',
|
|
877
|
+
const hasCompleteRange = mode === "range" && !!_optionalChain([rangeSelected, 'optionalAccess', _6 => _6.from]) && !!_optionalChain([rangeSelected, 'optionalAccess', _7 => _7.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
|
|
1464
878
|
const isPreviewDate = (date) => {
|
|
1465
|
-
if (!_optionalChain([draftRange, 'optionalAccess',
|
|
879
|
+
if (!_optionalChain([draftRange, 'optionalAccess', _8 => _8.from]) || draftRange.to || !hoveredDate) return false;
|
|
1466
880
|
const start = Math.min(draftRange.from.getTime(), hoveredDate.getTime());
|
|
1467
881
|
const end = Math.max(draftRange.from.getTime(), hoveredDate.getTime());
|
|
1468
882
|
return date.getTime() >= start && date.getTime() <= end;
|
|
1469
883
|
};
|
|
1470
884
|
const handleRangeSelect = (triggerDate) => {
|
|
1471
885
|
if (!triggerDate) return;
|
|
1472
|
-
if (!_optionalChain([draftRange, 'optionalAccess',
|
|
886
|
+
if (!_optionalChain([draftRange, 'optionalAccess', _9 => _9.from]) || draftRange.to) {
|
|
1473
887
|
const started = { from: triggerDate, to: void 0 };
|
|
1474
888
|
setDraftRange(started);
|
|
1475
889
|
onSelect(started);
|
|
@@ -1495,7 +909,7 @@ function DatePickerCalendar({
|
|
|
1495
909
|
return !!picked && dayNumber(picked) === n;
|
|
1496
910
|
}
|
|
1497
911
|
const range = rangeSelected;
|
|
1498
|
-
if (!_optionalChain([range, 'optionalAccess',
|
|
912
|
+
if (!_optionalChain([range, 'optionalAccess', _10 => _10.from])) return false;
|
|
1499
913
|
if (!range.to) return dayNumber(range.from) === n;
|
|
1500
914
|
return n >= dayNumber(range.from) && n <= dayNumber(range.to);
|
|
1501
915
|
};
|
|
@@ -1584,12 +998,12 @@ function DatePickerCalendar({
|
|
|
1584
998
|
range_middle: "range-middle !bg-ods-open-yellow-light !text-ods-card !font-medium !rounded-none hover:!bg-ods-open-yellow-light"
|
|
1585
999
|
};
|
|
1586
1000
|
const [uncontrolledMonth, setUncontrolledMonth] = _react.useState.call(void 0,
|
|
1587
|
-
mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess',
|
|
1001
|
+
mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _11 => _11.from]) || today
|
|
1588
1002
|
);
|
|
1589
1003
|
const month = _nullishCoalesce(monthProp, () => ( uncontrolledMonth));
|
|
1590
1004
|
const changeMonth = (next) => {
|
|
1591
1005
|
setUncontrolledMonth(next);
|
|
1592
|
-
_optionalChain([onMonthChange, 'optionalCall',
|
|
1006
|
+
_optionalChain([onMonthChange, 'optionalCall', _12 => _12(next)]);
|
|
1593
1007
|
};
|
|
1594
1008
|
const disabledDays = _react.useMemo.call(void 0, () => {
|
|
1595
1009
|
const matchers = [];
|
|
@@ -1831,14 +1245,14 @@ function DatePicker(props) {
|
|
|
1831
1245
|
}, [props.mode, props.value, formatDate3]);
|
|
1832
1246
|
const handleSelect = (value) => {
|
|
1833
1247
|
if (props.mode === "single") {
|
|
1834
|
-
_optionalChain([props, 'access',
|
|
1248
|
+
_optionalChain([props, 'access', _13 => _13.onChange, 'optionalCall', _14 => _14(value)]);
|
|
1835
1249
|
if (value) {
|
|
1836
1250
|
setOpen(false);
|
|
1837
1251
|
}
|
|
1838
1252
|
} else {
|
|
1839
1253
|
const range = value;
|
|
1840
|
-
_optionalChain([props, 'access',
|
|
1841
|
-
if (_optionalChain([range, 'optionalAccess',
|
|
1254
|
+
_optionalChain([props, 'access', _15 => _15.onChange, 'optionalCall', _16 => _16(range)]);
|
|
1255
|
+
if (_optionalChain([range, 'optionalAccess', _17 => _17.from]) && _optionalChain([range, 'optionalAccess', _18 => _18.to])) {
|
|
1842
1256
|
setOpen(false);
|
|
1843
1257
|
}
|
|
1844
1258
|
}
|
|
@@ -1953,7 +1367,7 @@ function DatePickerInput(props) {
|
|
|
1953
1367
|
if (newDate && value) {
|
|
1954
1368
|
newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
|
|
1955
1369
|
}
|
|
1956
|
-
_optionalChain([onChange, 'optionalCall',
|
|
1370
|
+
_optionalChain([onChange, 'optionalCall', _19 => _19(newDate)]);
|
|
1957
1371
|
if (newDate) {
|
|
1958
1372
|
setOpen(false);
|
|
1959
1373
|
}
|
|
@@ -1970,12 +1384,12 @@ function DatePickerInput(props) {
|
|
|
1970
1384
|
}
|
|
1971
1385
|
}
|
|
1972
1386
|
date.setHours(hours);
|
|
1973
|
-
_optionalChain([onChange, 'optionalCall',
|
|
1387
|
+
_optionalChain([onChange, 'optionalCall', _20 => _20(date)]);
|
|
1974
1388
|
};
|
|
1975
1389
|
const handleMinuteChange = (newMinute) => {
|
|
1976
1390
|
const date = value ? new Date(value) : /* @__PURE__ */ new Date();
|
|
1977
1391
|
date.setMinutes(parseInt(newMinute, 10));
|
|
1978
|
-
_optionalChain([onChange, 'optionalCall',
|
|
1392
|
+
_optionalChain([onChange, 'optionalCall', _21 => _21(date)]);
|
|
1979
1393
|
};
|
|
1980
1394
|
const handlePeriodChange = (newPeriod) => {
|
|
1981
1395
|
const date = value ? new Date(value) : /* @__PURE__ */ new Date();
|
|
@@ -1986,7 +1400,7 @@ function DatePickerInput(props) {
|
|
|
1986
1400
|
hours += 12;
|
|
1987
1401
|
}
|
|
1988
1402
|
date.setHours(hours);
|
|
1989
|
-
_optionalChain([onChange, 'optionalCall',
|
|
1403
|
+
_optionalChain([onChange, 'optionalCall', _22 => _22(date)]);
|
|
1990
1404
|
};
|
|
1991
1405
|
const hourOptions = _react.useMemo.call(void 0, () => generateHourOptions(use24HourFormat), [use24HourFormat]);
|
|
1992
1406
|
const minuteOptions = _react.useMemo.call(void 0, () => generateMinuteOptions(), []);
|
|
@@ -2048,20 +1462,20 @@ function DatePickerInput(props) {
|
|
|
2048
1462
|
) })
|
|
2049
1463
|
] }),
|
|
2050
1464
|
showTime && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1", children: [
|
|
2051
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2052
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2053
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1465
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: hour, onValueChange: handleHourChange, disabled, children: [
|
|
1466
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: _chunk3ATAYP36cjs.cn.call(void 0, timeSelectTriggerStyles, "w-[80px]"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "HH" }) }),
|
|
1467
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: hourOptions.map((h) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: h, children: h }, h)) })
|
|
2054
1468
|
] }),
|
|
2055
1469
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: ":" }),
|
|
2056
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2057
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2058
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1470
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: minute, onValueChange: handleMinuteChange, disabled, children: [
|
|
1471
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: _chunk3ATAYP36cjs.cn.call(void 0, timeSelectTriggerStyles, "w-[80px]"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "MM" }) }),
|
|
1472
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: minuteOptions.map((m) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: m, children: m }, m)) })
|
|
2059
1473
|
] }),
|
|
2060
|
-
!use24HourFormat && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2061
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2062
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2063
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2064
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1474
|
+
!use24HourFormat && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: period, onValueChange: (val) => handlePeriodChange(val), disabled, children: [
|
|
1475
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: _chunk3ATAYP36cjs.cn.call(void 0, timeSelectTriggerStyles, "w-[80px]"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "AM" }) }),
|
|
1476
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: [
|
|
1477
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "AM", children: "AM" }),
|
|
1478
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "PM", children: "PM" })
|
|
2065
1479
|
] })
|
|
2066
1480
|
] })
|
|
2067
1481
|
] })
|
|
@@ -2131,7 +1545,7 @@ function DatePickerInputSimple(props) {
|
|
|
2131
1545
|
if (newDate && value) {
|
|
2132
1546
|
newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
|
|
2133
1547
|
}
|
|
2134
|
-
_optionalChain([onChange, 'optionalCall',
|
|
1548
|
+
_optionalChain([onChange, 'optionalCall', _23 => _23(newDate)]);
|
|
2135
1549
|
if (newDate) {
|
|
2136
1550
|
setOpen(false);
|
|
2137
1551
|
}
|
|
@@ -2140,7 +1554,7 @@ function DatePickerInputSimple(props) {
|
|
|
2140
1554
|
const [hours, minutes] = newTime.split(":").map(Number);
|
|
2141
1555
|
const date = value ? new Date(value) : /* @__PURE__ */ new Date();
|
|
2142
1556
|
date.setHours(hours, minutes, 0, 0);
|
|
2143
|
-
_optionalChain([onChange, 'optionalCall',
|
|
1557
|
+
_optionalChain([onChange, 'optionalCall', _24 => _24(date)]);
|
|
2144
1558
|
};
|
|
2145
1559
|
const timeOptions = _react.useMemo.call(void 0,
|
|
2146
1560
|
() => generateTimeOptions(timeInterval, use24HourFormat),
|
|
@@ -2203,9 +1617,9 @@ function DatePickerInputSimple(props) {
|
|
|
2203
1617
|
}
|
|
2204
1618
|
) })
|
|
2205
1619
|
] }),
|
|
2206
|
-
showTime && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2207
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2208
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1620
|
+
showTime && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: timeValue, onValueChange: handleTimeChange, disabled, children: [
|
|
1621
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: _chunk3ATAYP36cjs.cn.call(void 0, timeSelectTriggerStyles, "flex-1"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "Select time", children: timeDisplayLabel || "Select time" }) }),
|
|
1622
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: timeOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
2209
1623
|
] })
|
|
2210
1624
|
] });
|
|
2211
1625
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.FieldWrapper, { label, error, errorSlot: "error" in props, className, children: content });
|
|
@@ -2224,14 +1638,14 @@ function DateFilterPanel({
|
|
|
2224
1638
|
className
|
|
2225
1639
|
}) {
|
|
2226
1640
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col gap-4", className), children: [
|
|
2227
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2228
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1641
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: sort, onValueChange: (value) => onSortChange(value), children: [
|
|
1642
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "gap-2", "aria-label": "Sort direction", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
2229
1643
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArrowUpDown, { className: "size-6 shrink-0 text-ods-text-secondary" }),
|
|
2230
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1644
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) })
|
|
2231
1645
|
] }) }),
|
|
2232
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2233
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2234
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1646
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: [
|
|
1647
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "asc", children: ascLabel }),
|
|
1648
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "desc", children: descLabel })
|
|
2235
1649
|
] })
|
|
2236
1650
|
] }),
|
|
2237
1651
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -2279,25 +1693,25 @@ function DateFilterMenu({
|
|
|
2279
1693
|
if (next) {
|
|
2280
1694
|
resetDraft();
|
|
2281
1695
|
} else {
|
|
2282
|
-
_optionalChain([onClose, 'optionalCall',
|
|
1696
|
+
_optionalChain([onClose, 'optionalCall', _25 => _25()]);
|
|
2283
1697
|
}
|
|
2284
1698
|
setOpen(next);
|
|
2285
1699
|
};
|
|
2286
1700
|
const handleApply = () => {
|
|
2287
1701
|
const result = mode === "single" ? { sort: draftSort, date: draftSelected } : { sort: draftSort, range: draftSelected };
|
|
2288
|
-
_optionalChain([onApply, 'optionalCall',
|
|
1702
|
+
_optionalChain([onApply, 'optionalCall', _26 => _26(result)]);
|
|
2289
1703
|
setOpen(false);
|
|
2290
1704
|
};
|
|
2291
1705
|
const handleClose = () => {
|
|
2292
|
-
_optionalChain([onClose, 'optionalCall',
|
|
1706
|
+
_optionalChain([onClose, 'optionalCall', _27 => _27()]);
|
|
2293
1707
|
setOpen(false);
|
|
2294
1708
|
};
|
|
2295
|
-
const hasSelection = mode === "single" ? Boolean(draftSelected) : Boolean(_optionalChain([draftSelected, 'optionalAccess',
|
|
1709
|
+
const hasSelection = mode === "single" ? Boolean(draftSelected) : Boolean(_optionalChain([draftSelected, 'optionalAccess', _28 => _28.from]));
|
|
2296
1710
|
const hasChanges = hasSelection || draftSort !== defaultSort;
|
|
2297
1711
|
const handleReset = () => {
|
|
2298
1712
|
setDraftSort(defaultSort);
|
|
2299
1713
|
setDraftSelected(void 0);
|
|
2300
|
-
_optionalChain([onApply, 'optionalCall',
|
|
1714
|
+
_optionalChain([onApply, 'optionalCall', _29 => _29(mode === "single" ? { sort: defaultSort, date: void 0 } : { sort: defaultSort, range: void 0 })]);
|
|
2301
1715
|
};
|
|
2302
1716
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Popover.Root, { open, onOpenChange: handleOpenChange, children: [
|
|
2303
1717
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Popover.Trigger, { asChild: true, children: _nullishCoalesce(trigger, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -2374,7 +1788,7 @@ function DurationInput({ value, onChange, invalid, className }) {
|
|
|
2374
1788
|
setSegments((prev) => compose(prev) === value ? prev : split(value));
|
|
2375
1789
|
}
|
|
2376
1790
|
const focusSegment = (i) => {
|
|
2377
|
-
const el = _optionalChain([refs, 'access',
|
|
1791
|
+
const el = _optionalChain([refs, 'access', _30 => _30[i], 'optionalAccess', _31 => _31.current]);
|
|
2378
1792
|
if (!el) return;
|
|
2379
1793
|
el.focus();
|
|
2380
1794
|
el.select();
|
|
@@ -2690,7 +2104,7 @@ function InfoCardFooter({ footer }) {
|
|
|
2690
2104
|
] });
|
|
2691
2105
|
}
|
|
2692
2106
|
function InfoCardValueRow({ label, value, showLabel, copyable, icon, copyAriaLabel }) {
|
|
2693
|
-
const { copy, copied } =
|
|
2107
|
+
const { copy, copied } = _chunkZXCZYMN4cjs.useCopyToClipboard.call(void 0, );
|
|
2694
2108
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 w-full items-center gap-[var(--spacing-system-xs)] self-stretch", children: [
|
|
2695
2109
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-primary text-h4", children: showLabel ? label : "" }),
|
|
2696
2110
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-divider" }),
|
|
@@ -2752,7 +2166,7 @@ function SearchableSelect({
|
|
|
2752
2166
|
}) {
|
|
2753
2167
|
const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
|
|
2754
2168
|
const [search, setSearch] = _react.useState.call(void 0, "");
|
|
2755
|
-
const keyboardPadding =
|
|
2169
|
+
const keyboardPadding = _chunkA6P6DHEZcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
2756
2170
|
if (!isOpen && search !== "") setSearch("");
|
|
2757
2171
|
const filtered = _react.useMemo.call(void 0, () => {
|
|
2758
2172
|
const q = search.trim().toLowerCase();
|
|
@@ -2795,10 +2209,10 @@ function SearchableSelect({
|
|
|
2795
2209
|
]
|
|
2796
2210
|
}
|
|
2797
2211
|
);
|
|
2798
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2799
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2800
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2801
|
-
|
|
2212
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive.Root, { open: isOpen, onOpenChange: disabled ? void 0 : setIsOpen, modal: false, children: [
|
|
2213
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive.Trigger, { asChild: true, children: _nullishCoalesce(trigger, () => ( defaultTrigger)) }),
|
|
2214
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive.Portal, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2215
|
+
PopoverPrimitive.Content,
|
|
2802
2216
|
{
|
|
2803
2217
|
align,
|
|
2804
2218
|
sideOffset: 6,
|
|
@@ -2892,7 +2306,7 @@ function CompactAssigneeDropdown({
|
|
|
2892
2306
|
return [current, ...withAvatars.filter((o) => o.value !== currentAssignee.id)];
|
|
2893
2307
|
}, [options, currentAssignee]);
|
|
2894
2308
|
const handleSelect = (userId) => {
|
|
2895
|
-
onAssign(_optionalChain([currentAssignee, 'optionalAccess',
|
|
2309
|
+
onAssign(_optionalChain([currentAssignee, 'optionalAccess', _32 => _32.id]) === userId ? null : userId);
|
|
2896
2310
|
};
|
|
2897
2311
|
const handleTriggerClick = onTriggerClick ? (event) => {
|
|
2898
2312
|
event.preventDefault();
|
|
@@ -2940,7 +2354,7 @@ function CompactAssigneeDropdown({
|
|
|
2940
2354
|
SearchableSelect,
|
|
2941
2355
|
{
|
|
2942
2356
|
options: orderedOptions,
|
|
2943
|
-
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess',
|
|
2357
|
+
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _33 => _33.id]), () => ( null)),
|
|
2944
2358
|
onValueChange: handleSelect,
|
|
2945
2359
|
searchPlaceholder: "Search users...",
|
|
2946
2360
|
emptyText: "No users found",
|
|
@@ -2974,10 +2388,10 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
|
|
|
2974
2388
|
if (isEditing) {
|
|
2975
2389
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "min-w-0", className), children: [
|
|
2976
2390
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2977
|
-
Autocomplete,
|
|
2391
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
2978
2392
|
{
|
|
2979
2393
|
options,
|
|
2980
|
-
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess',
|
|
2394
|
+
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _34 => _34.id]), () => ( null)),
|
|
2981
2395
|
onChange: (val) => {
|
|
2982
2396
|
onAssign(val);
|
|
2983
2397
|
setIsEditing(false);
|
|
@@ -3210,15 +2624,15 @@ function MediaTypeSelector({
|
|
|
3210
2624
|
// changed) and cost an extra render pass on every change to say what the
|
|
3211
2625
|
// prop already said.
|
|
3212
2626
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3213
|
-
|
|
2627
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
3214
2628
|
{
|
|
3215
2629
|
value: value || void 0,
|
|
3216
2630
|
onValueChange,
|
|
3217
2631
|
disabled,
|
|
3218
2632
|
defaultValue: value,
|
|
3219
2633
|
children: [
|
|
3220
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3221
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2634
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder }) }),
|
|
2635
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: mediaTypeOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: option.value, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
3222
2636
|
option.icon,
|
|
3223
2637
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: option.label })
|
|
3224
2638
|
] }) }, option.value)) })
|
|
@@ -3336,7 +2750,7 @@ var NoData = _react2.default.forwardRef(function NoDataImpl({
|
|
|
3336
2750
|
...props
|
|
3337
2751
|
}, ref) {
|
|
3338
2752
|
const hasMessage = !!(icon || title || description);
|
|
3339
|
-
const hasActions = !!_optionalChain([actions, 'optionalAccess',
|
|
2753
|
+
const hasActions = !!_optionalChain([actions, 'optionalAccess', _35 => _35.length]);
|
|
3340
2754
|
const footerButton = _nullishCoalesce(button, () => ( (buttonLabel != null ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3341
2755
|
_chunkDFQYAYBHcjs.Button,
|
|
3342
2756
|
{
|
|
@@ -3344,7 +2758,7 @@ var NoData = _react2.default.forwardRef(function NoDataImpl({
|
|
|
3344
2758
|
leftIcon: buttonIcon,
|
|
3345
2759
|
onClick: onButtonClick,
|
|
3346
2760
|
...buttonProps,
|
|
3347
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full content-md:w-auto", _optionalChain([buttonProps, 'optionalAccess',
|
|
2761
|
+
className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full content-md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _36 => _36.className])),
|
|
3348
2762
|
children: buttonLabel
|
|
3349
2763
|
}
|
|
3350
2764
|
) : null)));
|
|
@@ -3584,7 +2998,7 @@ var Switch = _react.forwardRef.call(void 0, ({ className, checked, onCheckedChan
|
|
|
3584
2998
|
}, [checked]);
|
|
3585
2999
|
const handleCheckedChange = (newChecked) => {
|
|
3586
3000
|
setIsChecked(newChecked);
|
|
3587
|
-
_optionalChain([onCheckedChange, 'optionalCall',
|
|
3001
|
+
_optionalChain([onCheckedChange, 'optionalCall', _37 => _37(newChecked)]);
|
|
3588
3002
|
};
|
|
3589
3003
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3590
3004
|
SwitchPrimitives.Root,
|
|
@@ -3636,7 +3050,7 @@ function TagSelectDropdown({
|
|
|
3636
3050
|
}) {
|
|
3637
3051
|
const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
|
|
3638
3052
|
const [search, setSearch] = _react.useState.call(void 0, "");
|
|
3639
|
-
const keyboardPadding =
|
|
3053
|
+
const keyboardPadding = _chunkA6P6DHEZcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
3640
3054
|
if (!isOpen && search !== "") setSearch("");
|
|
3641
3055
|
const query = search.trim();
|
|
3642
3056
|
const filtered = _react.useMemo.call(void 0, () => {
|
|
@@ -3660,8 +3074,8 @@ function TagSelectDropdown({
|
|
|
3660
3074
|
onCreate(query);
|
|
3661
3075
|
setSearch("");
|
|
3662
3076
|
};
|
|
3663
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3664
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3077
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive2.Root, { open: isOpen, onOpenChange: setIsOpen, modal: false, children: [
|
|
3078
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive2.Trigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3665
3079
|
_chunkDFQYAYBHcjs.Button,
|
|
3666
3080
|
{
|
|
3667
3081
|
type: "button",
|
|
@@ -3673,8 +3087,8 @@ function TagSelectDropdown({
|
|
|
3673
3087
|
children: triggerLabel
|
|
3674
3088
|
}
|
|
3675
3089
|
) }),
|
|
3676
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3677
|
-
|
|
3090
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive2.Portal, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3091
|
+
PopoverPrimitive2.Content,
|
|
3678
3092
|
{
|
|
3679
3093
|
align,
|
|
3680
3094
|
sideOffset: 6,
|
|
@@ -3908,7 +3322,7 @@ function TagsInput({
|
|
|
3908
3322
|
|
|
3909
3323
|
// src/components/ui/tags-manager.tsx
|
|
3910
3324
|
|
|
3911
|
-
|
|
3325
|
+
var _reactscrollarea = require('@radix-ui/react-scroll-area'); var ScrollAreaPrimitive = _interopRequireWildcard(_reactscrollarea); var ScrollAreaPrimitive2 = _interopRequireWildcard(_reactscrollarea);
|
|
3912
3326
|
|
|
3913
3327
|
|
|
3914
3328
|
function TagsManager({
|
|
@@ -3928,7 +3342,7 @@ function TagsManager({
|
|
|
3928
3342
|
}) {
|
|
3929
3343
|
const [open, setOpen] = _react.useState.call(void 0, false);
|
|
3930
3344
|
const [search, setSearch] = _react.useState.call(void 0, "");
|
|
3931
|
-
const keyboardPadding =
|
|
3345
|
+
const keyboardPadding = _chunkA6P6DHEZcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
3932
3346
|
const [editingId, setEditingId] = _react.useState.call(void 0, null);
|
|
3933
3347
|
const [editingName, setEditingName] = _react.useState.call(void 0, "");
|
|
3934
3348
|
const editInputRef = _react.useRef.call(void 0, null);
|
|
@@ -3953,7 +3367,7 @@ function TagsManager({
|
|
|
3953
3367
|
if (!name) return;
|
|
3954
3368
|
try {
|
|
3955
3369
|
const result = await onCreateTag(name);
|
|
3956
|
-
if (_optionalChain([result, 'optionalAccess',
|
|
3370
|
+
if (_optionalChain([result, 'optionalAccess', _38 => _38.id])) {
|
|
3957
3371
|
onChange([...selectedIds, result.id]);
|
|
3958
3372
|
setSearch("");
|
|
3959
3373
|
}
|
|
@@ -3964,7 +3378,7 @@ function TagsManager({
|
|
|
3964
3378
|
const startEdit = _react.useCallback.call(void 0, (id, name) => {
|
|
3965
3379
|
setEditingId(id);
|
|
3966
3380
|
setEditingName(name);
|
|
3967
|
-
setTimeout(() => _optionalChain([editInputRef, 'access',
|
|
3381
|
+
setTimeout(() => _optionalChain([editInputRef, 'access', _39 => _39.current, 'optionalAccess', _40 => _40.focus, 'call', _41 => _41()]), 0);
|
|
3968
3382
|
}, []);
|
|
3969
3383
|
const confirmEdit = _react.useCallback.call(void 0, async () => {
|
|
3970
3384
|
if (!onUpdateTag || !editingId || !editingName.trim()) return;
|
|
@@ -3999,12 +3413,12 @@ function TagsManager({
|
|
|
3999
3413
|
e.stopPropagation();
|
|
4000
3414
|
onChange([]);
|
|
4001
3415
|
setSearch("");
|
|
4002
|
-
_optionalChain([inputRef, 'access',
|
|
3416
|
+
_optionalChain([inputRef, 'access', _42 => _42.current, 'optionalAccess', _43 => _43.focus, 'call', _44 => _44()]);
|
|
4003
3417
|
},
|
|
4004
3418
|
[onChange]
|
|
4005
3419
|
);
|
|
4006
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.FieldWrapper, { label, className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative", ref: containerRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4007
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3420
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.FieldWrapper, { label, className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative", ref: containerRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive3.Root, { open, onOpenChange: setOpen, children: [
|
|
3421
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive3.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4008
3422
|
"label",
|
|
4009
3423
|
{
|
|
4010
3424
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
@@ -4084,7 +3498,7 @@ function TagsManager({
|
|
|
4084
3498
|
}
|
|
4085
3499
|
) }),
|
|
4086
3500
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4087
|
-
|
|
3501
|
+
PopoverPrimitive3.Content,
|
|
4088
3502
|
{
|
|
4089
3503
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
4090
3504
|
"z-50 mt-1 w-[var(--radix-popover-trigger-width)]",
|
|
@@ -4100,15 +3514,15 @@ function TagsManager({
|
|
|
4100
3514
|
collisionPadding: { bottom: keyboardPadding },
|
|
4101
3515
|
onOpenAutoFocus: (e) => {
|
|
4102
3516
|
e.preventDefault();
|
|
4103
|
-
_optionalChain([inputRef, 'access',
|
|
3517
|
+
_optionalChain([inputRef, 'access', _45 => _45.current, 'optionalAccess', _46 => _46.focus, 'call', _47 => _47()]);
|
|
4104
3518
|
},
|
|
4105
3519
|
onInteractOutside: (e) => {
|
|
4106
|
-
if (_optionalChain([containerRef, 'access',
|
|
3520
|
+
if (_optionalChain([containerRef, 'access', _48 => _48.current, 'optionalAccess', _49 => _49.contains, 'call', _50 => _50(e.target)])) {
|
|
4107
3521
|
e.preventDefault();
|
|
4108
3522
|
}
|
|
4109
3523
|
},
|
|
4110
|
-
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4111
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3524
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ScrollAreaPrimitive.Root, { className: "flex min-h-0 flex-col overflow-hidden", children: [
|
|
3525
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Viewport, { className: "max-h-60 min-h-0 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { role: "listbox", children: [
|
|
4112
3526
|
filtered.map((tag) => {
|
|
4113
3527
|
const isSelected = selectedIds.includes(tag.id);
|
|
4114
3528
|
const isEditing = editingId === tag.id;
|
|
@@ -4236,7 +3650,7 @@ function TagsManager({
|
|
|
4236
3650
|
),
|
|
4237
3651
|
filtered.length === 0 && !showCreateOption && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-4 py-2 text-ods-text-secondary text-h6", children: "No tags found" })
|
|
4238
3652
|
] }) }),
|
|
4239
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3653
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Scrollbar, { className: "hidden", orientation: "vertical", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Thumb, {}) })
|
|
4240
3654
|
] })
|
|
4241
3655
|
}
|
|
4242
3656
|
)
|
|
@@ -4362,7 +3776,7 @@ var Textarea = _react.forwardRef.call(void 0, (allProps, ref) => {
|
|
|
4362
3776
|
"button",
|
|
4363
3777
|
{
|
|
4364
3778
|
type: "button",
|
|
4365
|
-
"aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess',
|
|
3779
|
+
"aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _51 => _51["aria-label"]]), () => ( "Submit")),
|
|
4366
3780
|
...endIconButtonProps,
|
|
4367
3781
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
4368
3782
|
// `h-6` matches the textarea's `leading-6` line box so the icon's
|
|
@@ -4376,7 +3790,7 @@ var Textarea = _react.forwardRef.call(void 0, (allProps, ref) => {
|
|
|
4376
3790
|
"cursor-pointer hover:text-ods-text-primary",
|
|
4377
3791
|
"focus-visible:text-ods-accent focus-visible:outline-none",
|
|
4378
3792
|
"disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:text-ods-text-secondary",
|
|
4379
|
-
_optionalChain([endIconButtonProps, 'optionalAccess',
|
|
3793
|
+
_optionalChain([endIconButtonProps, 'optionalAccess', _52 => _52.className])
|
|
4380
3794
|
),
|
|
4381
3795
|
children: endIcon
|
|
4382
3796
|
}
|
|
@@ -4563,14 +3977,14 @@ function useConfirm() {
|
|
|
4563
3977
|
askingRef.current = false;
|
|
4564
3978
|
pendingRef.current = null;
|
|
4565
3979
|
setOpen(false);
|
|
4566
|
-
_optionalChain([pending, 'optionalAccess',
|
|
3980
|
+
_optionalChain([pending, 'optionalAccess', _53 => _53.resolve, 'call', _54 => _54(ok)]);
|
|
4567
3981
|
setPending(null);
|
|
4568
3982
|
},
|
|
4569
3983
|
[pending]
|
|
4570
3984
|
);
|
|
4571
3985
|
_react.useEffect.call(void 0,
|
|
4572
3986
|
() => () => {
|
|
4573
|
-
_optionalChain([pendingRef, 'access',
|
|
3987
|
+
_optionalChain([pendingRef, 'access', _55 => _55.current, 'optionalAccess', _56 => _56.resolve, 'call', _57 => _57(false)]);
|
|
4574
3988
|
pendingRef.current = null;
|
|
4575
3989
|
askingRef.current = false;
|
|
4576
3990
|
},
|
|
@@ -4664,7 +4078,7 @@ function AdminFormDrawer({
|
|
|
4664
4078
|
if (canSave && !saving) onSave();
|
|
4665
4079
|
},
|
|
4666
4080
|
onKeyDown: (e) => {
|
|
4667
|
-
if (e.key === "Enter" && _optionalChain([e, 'access',
|
|
4081
|
+
if (e.key === "Enter" && _optionalChain([e, 'access', _58 => _58.target, 'optionalAccess', _59 => _59.dataset, 'optionalAccess', _60 => _60.noSubmitOnEnter]) === "true") {
|
|
4668
4082
|
e.preventDefault();
|
|
4669
4083
|
}
|
|
4670
4084
|
},
|
|
@@ -4800,7 +4214,7 @@ function AdminFormModal({
|
|
|
4800
4214
|
if (canSave && !saving) onSave();
|
|
4801
4215
|
},
|
|
4802
4216
|
onKeyDown: (e) => {
|
|
4803
|
-
if (e.key === "Enter" && _optionalChain([e, 'access',
|
|
4217
|
+
if (e.key === "Enter" && _optionalChain([e, 'access', _61 => _61.target, 'optionalAccess', _62 => _62.dataset, 'optionalAccess', _63 => _63.noSubmitOnEnter]) === "true") {
|
|
4804
4218
|
e.preventDefault();
|
|
4805
4219
|
}
|
|
4806
4220
|
},
|
|
@@ -5400,9 +4814,9 @@ var TabBar = _react.memo.call(void 0, function TabBarImpl({
|
|
|
5400
4814
|
});
|
|
5401
4815
|
ro.observe(el);
|
|
5402
4816
|
let cancelled = false;
|
|
5403
|
-
_optionalChain([document, 'access',
|
|
4817
|
+
_optionalChain([document, 'access', _64 => _64.fonts, 'optionalAccess', _65 => _65.ready, 'access', _66 => _66.then, 'call', _67 => _67(() => {
|
|
5404
4818
|
if (!cancelled) measureIndicator();
|
|
5405
|
-
}), 'access',
|
|
4819
|
+
}), 'access', _68 => _68.catch, 'call', _69 => _69(() => {
|
|
5406
4820
|
})]);
|
|
5407
4821
|
return () => {
|
|
5408
4822
|
cancelled = true;
|
|
@@ -5443,7 +4857,7 @@ var TabBar = _react.memo.call(void 0, function TabBarImpl({
|
|
|
5443
4857
|
return { background: c };
|
|
5444
4858
|
}, [leftFade, rightFade]);
|
|
5445
4859
|
const isPlaced = indicator.width > 0;
|
|
5446
|
-
const activeProgress = _optionalChain([tabs, 'access',
|
|
4860
|
+
const activeProgress = _optionalChain([tabs, 'access', _70 => _70.find, 'call', _71 => _71((tab) => tab.id === activeTab), 'optionalAccess', _72 => _72.progress]);
|
|
5447
4861
|
const hasProgress = typeof activeProgress === "number";
|
|
5448
4862
|
const progress = hasProgress ? Math.max(0, Math.min(1, activeProgress)) : 1;
|
|
5449
4863
|
const indicatorStyle = {
|
|
@@ -5620,8 +5034,8 @@ function TabNavigation({
|
|
|
5620
5034
|
const paramName = typeof urlSync === "object" ? urlSync.paramName || "tab" : "tab";
|
|
5621
5035
|
const replaceState = typeof urlSync === "object" ? urlSync.replaceState !== false : true;
|
|
5622
5036
|
const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
|
|
5623
|
-
const fallbackTab = defaultTab || _optionalChain([tabs, 'access',
|
|
5624
|
-
const urlTab = isUrlSyncEnabled ? _optionalChain([searchParams, 'optionalAccess',
|
|
5037
|
+
const fallbackTab = defaultTab || _optionalChain([tabs, 'access', _73 => _73[0], 'optionalAccess', _74 => _74.id]) || "";
|
|
5038
|
+
const urlTab = isUrlSyncEnabled ? _optionalChain([searchParams, 'optionalAccess', _75 => _75.get, 'call', _76 => _76(paramName)]) || "" : "";
|
|
5625
5039
|
const getInitialTab = () => {
|
|
5626
5040
|
if (isUrlSyncEnabled && validTabIds.has(urlTab)) return urlTab;
|
|
5627
5041
|
return fallbackTab;
|
|
@@ -5654,19 +5068,19 @@ function TabNavigation({
|
|
|
5654
5068
|
(tabId) => {
|
|
5655
5069
|
const nav = navRef.current;
|
|
5656
5070
|
if (!nav.isUrlSyncEnabled) {
|
|
5657
|
-
_optionalChain([nav, 'access',
|
|
5071
|
+
_optionalChain([nav, 'access', _77 => _77.controlledOnTabChange, 'optionalCall', _78 => _78(tabId)]);
|
|
5658
5072
|
return;
|
|
5659
5073
|
}
|
|
5660
5074
|
setInternalActiveTab(tabId);
|
|
5661
5075
|
const inFlight = inFlightUrlTabsRef.current;
|
|
5662
5076
|
if (inFlight[inFlight.length - 1] !== tabId) inFlight.push(tabId);
|
|
5663
|
-
const params = new URLSearchParams(_optionalChain([nav, 'access',
|
|
5077
|
+
const params = new URLSearchParams(_optionalChain([nav, 'access', _79 => _79.searchParams, 'optionalAccess', _80 => _80.toString, 'call', _81 => _81()]));
|
|
5664
5078
|
params.set(nav.paramName, tabId);
|
|
5665
5079
|
const method = nav.replaceState ? "replace" : "push";
|
|
5666
5080
|
_react.startTransition.call(void 0, () => {
|
|
5667
5081
|
router[method](`${nav.pathname}?${params.toString()}`, { scroll: false });
|
|
5668
5082
|
});
|
|
5669
|
-
_optionalChain([nav, 'access',
|
|
5083
|
+
_optionalChain([nav, 'access', _82 => _82.controlledOnTabChange, 'optionalCall', _83 => _83(tabId)]);
|
|
5670
5084
|
},
|
|
5671
5085
|
[router]
|
|
5672
5086
|
);
|
|
@@ -5694,7 +5108,7 @@ function TabNavigation({
|
|
|
5694
5108
|
var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
|
|
5695
5109
|
var getTabComponent = (tabs, tabId) => {
|
|
5696
5110
|
const tab = getTabById(tabs, tabId);
|
|
5697
|
-
return _optionalChain([tab, 'optionalAccess',
|
|
5111
|
+
return _optionalChain([tab, 'optionalAccess', _84 => _84.component]) || null;
|
|
5698
5112
|
};
|
|
5699
5113
|
|
|
5700
5114
|
// src/components/ui/alert.tsx
|
|
@@ -5785,10 +5199,10 @@ function FadePreview({
|
|
|
5785
5199
|
return;
|
|
5786
5200
|
}
|
|
5787
5201
|
if (itemMode) {
|
|
5788
|
-
const items = _optionalChain([el, 'access',
|
|
5789
|
-
const count = _nullishCoalesce(_optionalChain([items, 'optionalAccess',
|
|
5202
|
+
const items = _optionalChain([el, 'access', _85 => _85.firstElementChild, 'optionalAccess', _86 => _86.children]);
|
|
5203
|
+
const count = _nullishCoalesce(_optionalChain([items, 'optionalAccess', _87 => _87.length]), () => ( 0));
|
|
5790
5204
|
if (count !== itemCount) setItemCount(count);
|
|
5791
|
-
const last = count >= visible ? _optionalChain([items, 'optionalAccess',
|
|
5205
|
+
const last = count >= visible ? _optionalChain([items, 'optionalAccess', _88 => _88[visible - 1]]) : void 0;
|
|
5792
5206
|
if (last) {
|
|
5793
5207
|
const next = Math.round(last.getBoundingClientRect().bottom - el.getBoundingClientRect().top + el.scrollTop);
|
|
5794
5208
|
if (next !== itemsHeight) setItemsHeight(next);
|
|
@@ -5806,7 +5220,7 @@ function FadePreview({
|
|
|
5806
5220
|
const observer = new ResizeObserver(() => {
|
|
5807
5221
|
if (expanded) return;
|
|
5808
5222
|
setOverflows(el.scrollHeight > el.clientHeight + 1);
|
|
5809
|
-
const items = itemMode ? _optionalChain([el, 'access',
|
|
5223
|
+
const items = itemMode ? _optionalChain([el, 'access', _89 => _89.firstElementChild, 'optionalAccess', _90 => _90.children]) : void 0;
|
|
5810
5224
|
const last = items && items.length >= visible ? items[visible - 1] : void 0;
|
|
5811
5225
|
if (last)
|
|
5812
5226
|
setItemsHeight(Math.round(last.getBoundingClientRect().bottom - el.getBoundingClientRect().top + el.scrollTop));
|
|
@@ -5819,8 +5233,8 @@ function FadePreview({
|
|
|
5819
5233
|
const hidden = itemMode && hiddenCount <= 0 ? Math.max(0, itemCount - visible) : hiddenCount;
|
|
5820
5234
|
if (!fixed && !needsFade) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
|
|
5821
5235
|
const showToggle = needsFade || expanded;
|
|
5822
|
-
const moreLabel = _nullishCoalesce(_optionalChain([labels, 'optionalAccess',
|
|
5823
|
-
const lessLabel = _nullishCoalesce(_optionalChain([labels, 'optionalAccess',
|
|
5236
|
+
const moreLabel = _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _91 => _91.more]), () => ( `Show ${hidden} more`));
|
|
5237
|
+
const lessLabel = _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _92 => _92.less]), () => ( "Show less"));
|
|
5824
5238
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", children: [
|
|
5825
5239
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5826
5240
|
"div",
|
|
@@ -5988,7 +5402,7 @@ function EmbedIframe({
|
|
|
5988
5402
|
allow,
|
|
5989
5403
|
referrerPolicy,
|
|
5990
5404
|
loading,
|
|
5991
|
-
allowFullScreen: _optionalChain([allow, 'optionalAccess',
|
|
5405
|
+
allowFullScreen: _optionalChain([allow, 'optionalAccess', _93 => _93.includes, 'call', _94 => _94("fullscreen")]) ? void 0 : allowFullScreen,
|
|
5992
5406
|
sandbox
|
|
5993
5407
|
},
|
|
5994
5408
|
src
|
|
@@ -6033,7 +5447,7 @@ function EmbedViewerFrame({
|
|
|
6033
5447
|
controller.detach();
|
|
6034
5448
|
};
|
|
6035
5449
|
}, [fullscreenControl]);
|
|
6036
|
-
const toggleFullscreen = () => _optionalChain([controllerRef, 'access',
|
|
5450
|
+
const toggleFullscreen = () => _optionalChain([controllerRef, 'access', _95 => _95.current, 'optionalAccess', _96 => _96.toggle, 'call', _97 => _97()]);
|
|
6037
5451
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
6038
5452
|
"div",
|
|
6039
5453
|
{
|
|
@@ -6116,7 +5530,7 @@ var KIND_HEADING = {
|
|
|
6116
5530
|
design: "Claude Design"
|
|
6117
5531
|
};
|
|
6118
5532
|
function ClaudeEmbed({ url, kind = "artifact", title, height, loading = "lazy" }) {
|
|
6119
|
-
const { src: mirrorSrc, status } =
|
|
5533
|
+
const { src: mirrorSrc, status } = _chunkZXCZYMN4cjs.useClaudeMirrorSrc.call(void 0, url);
|
|
6120
5534
|
const isProbing = status === "probing";
|
|
6121
5535
|
const embedUrl = isProbing ? null : _nullishCoalesce(mirrorSrc, () => ( _chunkGQ7JJUITcjs.toClaudeEmbedUrl.call(void 0, url)));
|
|
6122
5536
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -6124,7 +5538,7 @@ function ClaudeEmbed({ url, kind = "artifact", title, height, loading = "lazy" }
|
|
|
6124
5538
|
{
|
|
6125
5539
|
className: "my-6 space-y-3",
|
|
6126
5540
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.ClaudeIcon, { className: "h-5 w-5 shrink-0" }),
|
|
6127
|
-
title: _optionalChain([title, 'optionalAccess',
|
|
5541
|
+
title: _optionalChain([title, 'optionalAccess', _98 => _98.trim, 'call', _99 => _99()]) || KIND_HEADING[kind],
|
|
6128
5542
|
titleVariant: "h6",
|
|
6129
5543
|
isLoading: isProbing,
|
|
6130
5544
|
actions: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -6381,7 +5795,7 @@ var DISPLAY_W = 768;
|
|
|
6381
5795
|
function MarkdownImage({ src, alt }) {
|
|
6382
5796
|
const { transformImageSrc } = useRichMarkdownRuntime();
|
|
6383
5797
|
const [probed, setProbed] = _react.useState.call(void 0, null);
|
|
6384
|
-
const ratio = _optionalChain([probed, 'optionalAccess',
|
|
5798
|
+
const ratio = _optionalChain([probed, 'optionalAccess', _100 => _100.src]) === src ? probed.ratio : null;
|
|
6385
5799
|
_react.useEffect.call(void 0, () => {
|
|
6386
5800
|
let cancelled = false;
|
|
6387
5801
|
const probeSrc = _nullishCoalesce(transformImageSrc(src, { width: 48, resize: "contain", quality: 20 }), () => ( src));
|
|
@@ -6532,7 +5946,7 @@ var OGLinkPreview = ({
|
|
|
6532
5946
|
if (response.ok) {
|
|
6533
5947
|
const data = await response.json();
|
|
6534
5948
|
if (cancelled) return;
|
|
6535
|
-
if (_optionalChain([data, 'optionalAccess',
|
|
5949
|
+
if (_optionalChain([data, 'optionalAccess', _101 => _101.title]) && data.title !== "Link Preview Unavailable") {
|
|
6536
5950
|
setOgData({
|
|
6537
5951
|
title: data.title,
|
|
6538
5952
|
description: _nullishCoalesce(data.description, () => ( "")),
|
|
@@ -6571,18 +5985,18 @@ var OGLinkPreview = ({
|
|
|
6571
5985
|
type: "website",
|
|
6572
5986
|
favicon: `https://www.google.com/s2/favicons?domain=${domain}&sz=32`
|
|
6573
5987
|
} : null)));
|
|
6574
|
-
const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess',
|
|
5988
|
+
const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _102 => _102.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
|
|
6575
5989
|
const imageCandidates = [
|
|
6576
5990
|
{ source: "curated", url: curatedImage },
|
|
6577
|
-
{ source: "og", url: _optionalChain([effectiveData, 'optionalAccess',
|
|
6578
|
-
{ source: "og-original", url: _optionalChain([effectiveData, 'optionalAccess',
|
|
5991
|
+
{ source: "og", url: _optionalChain([effectiveData, 'optionalAccess', _103 => _103.image]) },
|
|
5992
|
+
{ source: "og-original", url: _optionalChain([effectiveData, 'optionalAccess', _104 => _104.originalImage]) },
|
|
6579
5993
|
{ source: "placeholder", url: placeholderImageUrl }
|
|
6580
5994
|
];
|
|
6581
5995
|
const resolvedImage = _nullishCoalesce(imageCandidates.find((c) => !!c.url && !failedImages.has(c.url)), () => ( null));
|
|
6582
|
-
const resolvedImageUrl = _nullishCoalesce(_optionalChain([resolvedImage, 'optionalAccess',
|
|
5996
|
+
const resolvedImageUrl = _nullishCoalesce(_optionalChain([resolvedImage, 'optionalAccess', _105 => _105.url]), () => ( null));
|
|
6583
5997
|
const hasImage = !!resolvedImageUrl;
|
|
6584
|
-
const isCuratedImage = _optionalChain([resolvedImage, 'optionalAccess',
|
|
6585
|
-
const isPlaceholder = _optionalChain([resolvedImage, 'optionalAccess',
|
|
5998
|
+
const isCuratedImage = _optionalChain([resolvedImage, 'optionalAccess', _106 => _106.source]) === "curated";
|
|
5999
|
+
const isPlaceholder = _optionalChain([resolvedImage, 'optionalAccess', _107 => _107.source]) === "placeholder";
|
|
6586
6000
|
const bgColor = _chunkAECTRMGQcjs.useImageEdgeColor.call(void 0, _nullishCoalesce(resolvedImageUrl, () => ( null)), "var(--color-bg-surface)");
|
|
6587
6001
|
const renderSkeleton = () => isCompact ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "my-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[120px] flex-row overflow-hidden rounded-lg border border-ods-border bg-ods-card", children: [
|
|
6588
6002
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full w-[200px] flex-shrink-0 animate-pulse bg-ods-border" }),
|
|
@@ -7191,7 +6605,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
|
|
|
7191
6605
|
apiEndpoint: redditProxyUrl,
|
|
7192
6606
|
dataValidator: validateRedditData,
|
|
7193
6607
|
onDataUpdate: (data) => {
|
|
7194
|
-
if (isCurrent() && _optionalChain([data, 'access',
|
|
6608
|
+
if (isCurrent() && _optionalChain([data, 'access', _108 => _108[0], 'optionalAccess', _109 => _109.data, 'optionalAccess', _110 => _110.children, 'optionalAccess', _111 => _111[0], 'optionalAccess', _112 => _112.data])) {
|
|
7195
6609
|
setRedditData(data[0].data.children[0].data);
|
|
7196
6610
|
}
|
|
7197
6611
|
},
|
|
@@ -7266,11 +6680,11 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
|
|
|
7266
6680
|
gallery_data: redditData.gallery_data,
|
|
7267
6681
|
media_metadata: redditData.media_metadata
|
|
7268
6682
|
});
|
|
7269
|
-
const video = _optionalChain([redditData, 'access',
|
|
6683
|
+
const video = _optionalChain([redditData, 'access', _113 => _113.media, 'optionalAccess', _114 => _114.reddit_video]) || _optionalChain([redditData, 'access', _115 => _115.secure_media, 'optionalAccess', _116 => _116.reddit_video]);
|
|
7270
6684
|
if (video && video.fallback_url) {
|
|
7271
6685
|
console.log("\u{1F4F9} Found Reddit video:", video);
|
|
7272
6686
|
let posterUrl = "";
|
|
7273
|
-
if (_optionalChain([redditData, 'access',
|
|
6687
|
+
if (_optionalChain([redditData, 'access', _117 => _117.preview, 'optionalAccess', _118 => _118.images, 'optionalAccess', _119 => _119[0], 'optionalAccess', _120 => _120.source, 'optionalAccess', _121 => _121.url])) {
|
|
7274
6688
|
posterUrl = redditData.preview.images[0].source.url.replace(/&/g, "&");
|
|
7275
6689
|
console.log("\u2705 Using preview image as video poster:", posterUrl);
|
|
7276
6690
|
} else {
|
|
@@ -7322,7 +6736,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
|
|
|
7322
6736
|
return media;
|
|
7323
6737
|
}
|
|
7324
6738
|
}
|
|
7325
|
-
if (_optionalChain([redditData, 'access',
|
|
6739
|
+
if (_optionalChain([redditData, 'access', _122 => _122.preview, 'optionalAccess', _123 => _123.images, 'optionalAccess', _124 => _124[0]]) && !redditData.is_video) {
|
|
7326
6740
|
const imageData = redditData.preview.images[0];
|
|
7327
6741
|
console.log("\u{1F5BC}\uFE0F Found preview image data:", imageData);
|
|
7328
6742
|
let source = imageData.source;
|
|
@@ -7357,7 +6771,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
|
|
|
7357
6771
|
} else if (directUrl.match(/\.(mp4|webm|mov|avi)(\?.*)?$/i)) {
|
|
7358
6772
|
console.log("\u{1F3AC} Found direct video URL");
|
|
7359
6773
|
let posterUrl = "";
|
|
7360
|
-
if (_optionalChain([redditData, 'access',
|
|
6774
|
+
if (_optionalChain([redditData, 'access', _125 => _125.preview, 'optionalAccess', _126 => _126.images, 'optionalAccess', _127 => _127[0], 'optionalAccess', _128 => _128.source, 'optionalAccess', _129 => _129.url])) {
|
|
7361
6775
|
posterUrl = redditData.preview.images[0].source.url.replace(/&/g, "&");
|
|
7362
6776
|
}
|
|
7363
6777
|
media.push({
|
|
@@ -7370,7 +6784,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
|
|
|
7370
6784
|
});
|
|
7371
6785
|
} else if (directUrl.includes("imgur.com") && !directUrl.includes(".gifv")) {
|
|
7372
6786
|
console.log("\u{1F310} Found Imgur link");
|
|
7373
|
-
const imgurId = _optionalChain([directUrl, 'access',
|
|
6787
|
+
const imgurId = _optionalChain([directUrl, 'access', _130 => _130.match, 'call', _131 => _131(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _132 => _132[1]]);
|
|
7374
6788
|
if (imgurId && !directUrl.includes("/a/") && !directUrl.includes("/gallery/")) {
|
|
7375
6789
|
media.push({
|
|
7376
6790
|
type: "image",
|
|
@@ -7503,7 +6917,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
|
|
|
7503
6917
|
const [fetchLoading, setLoading] = _react.useState.call(void 0, true);
|
|
7504
6918
|
const [fetchError, setError] = _react.useState.call(void 0, null);
|
|
7505
6919
|
const fetchedForRef = _react.useRef.call(void 0, null);
|
|
7506
|
-
const extractedTweetId = tweetId || _optionalChain([url, 'access',
|
|
6920
|
+
const extractedTweetId = tweetId || _optionalChain([url, 'access', _133 => _133.match, 'call', _134 => _134(/status\/(\d+)/), 'optionalAccess', _135 => _135[1]]);
|
|
7507
6921
|
const error = extractedTweetId ? fetchError : "Invalid tweet URL or ID";
|
|
7508
6922
|
const loading = extractedTweetId ? fetchLoading : false;
|
|
7509
6923
|
const tweetUrl = url.includes("twitter.com") || url.includes("x.com") ? url : `https://twitter.com/twitter/status/${extractedTweetId}`;
|
|
@@ -7575,10 +6989,10 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
|
|
|
7575
6989
|
const parser = new DOMParser();
|
|
7576
6990
|
const doc = parser.parseFromString(tweetData.html, "text/html");
|
|
7577
6991
|
const blockquote = doc.querySelector("blockquote");
|
|
7578
|
-
const fullText = _optionalChain([blockquote, 'optionalAccess',
|
|
6992
|
+
const fullText = _optionalChain([blockquote, 'optionalAccess', _136 => _136.textContent]) || "";
|
|
7579
6993
|
const tweetText = fullText.replace(/- .* \(@.*\).*$/, "").trim();
|
|
7580
6994
|
const username = tweetData.author_url ? tweetData.author_url.split("/").pop() : "";
|
|
7581
|
-
const links = Array.from(_optionalChain([blockquote, 'optionalAccess',
|
|
6995
|
+
const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _137 => _137.querySelectorAll, 'call', _138 => _138("a")]) || []).map((link) => ({
|
|
7582
6996
|
url: link.href,
|
|
7583
6997
|
text: link.textContent || link.href
|
|
7584
6998
|
})).filter((link) => !link.url.includes("twitter.com") && !link.url.includes("x.com"));
|
|
@@ -7887,7 +7301,7 @@ var processShortcodes = (content) => {
|
|
|
7887
7301
|
}).replace(
|
|
7888
7302
|
/\{\{claude-(artifact|design):([^|}]+)(?:\|([^}]*))?\}\}/g,
|
|
7889
7303
|
(match, kind, url, title) => {
|
|
7890
|
-
const name = _optionalChain([title, 'optionalAccess',
|
|
7304
|
+
const name = _optionalChain([title, 'optionalAccess', _139 => _139.trim, 'call', _140 => _140()]);
|
|
7891
7305
|
const titleAttr = name ? ` data-title="${escapeAttr(name)}"` : "";
|
|
7892
7306
|
return `
|
|
7893
7307
|
|
|
@@ -8988,9 +8402,9 @@ function FilterModal({
|
|
|
8988
8402
|
return { ...currentFilters };
|
|
8989
8403
|
});
|
|
8990
8404
|
const [pendingTags, setPendingTags] = _react.useState.call(void 0, _nullishCoalesce(selectedTags, () => ( [])));
|
|
8991
|
-
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess',
|
|
8992
|
-
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess',
|
|
8993
|
-
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess',
|
|
8405
|
+
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _141 => _141.defaultSort]), () => ( "desc"));
|
|
8406
|
+
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _142 => _142.sort]), () => ( dateDefaultSort)));
|
|
8407
|
+
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _143 => _143.range]));
|
|
8994
8408
|
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkUWQWMGJ7cjs.useScrollFade.call(void 0, );
|
|
8995
8409
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8996
8410
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
@@ -9002,8 +8416,8 @@ function FilterModal({
|
|
|
9002
8416
|
const seed = seedSourceRef.current;
|
|
9003
8417
|
setSelectedFilters({ ...seed.currentFilters });
|
|
9004
8418
|
setPendingTags(_nullishCoalesce(seed.selectedTags, () => ( [])));
|
|
9005
|
-
setDraftDateSort(_nullishCoalesce(_optionalChain([seed, 'access',
|
|
9006
|
-
setDraftDateRange(_optionalChain([seed, 'access',
|
|
8419
|
+
setDraftDateSort(_nullishCoalesce(_optionalChain([seed, 'access', _144 => _144.dateFilter, 'optionalAccess', _145 => _145.sort]), () => ( seed.dateDefaultSort)));
|
|
8420
|
+
setDraftDateRange(_optionalChain([seed, 'access', _146 => _146.dateFilter, 'optionalAccess', _147 => _147.range]));
|
|
9007
8421
|
}, [isOpen, seedKey]);
|
|
9008
8422
|
const handleFilterToggle = (groupId, optionId, checked) => {
|
|
9009
8423
|
setSelectedFilters((prev) => {
|
|
@@ -9019,18 +8433,18 @@ function FilterModal({
|
|
|
9019
8433
|
};
|
|
9020
8434
|
const handleReset = () => {
|
|
9021
8435
|
onFilterChange({});
|
|
9022
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
9023
|
-
_optionalChain([dateFilter, 'optionalAccess',
|
|
8436
|
+
_optionalChain([onTagsChange, 'optionalCall', _148 => _148([])]);
|
|
8437
|
+
_optionalChain([dateFilter, 'optionalAccess', _149 => _149.onChange, 'call', _150 => _150({ sort: dateDefaultSort, range: void 0 })]);
|
|
9024
8438
|
onClose();
|
|
9025
8439
|
};
|
|
9026
8440
|
const handleApply = () => {
|
|
9027
8441
|
onFilterChange(selectedFilters);
|
|
9028
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
9029
|
-
_optionalChain([dateFilter, 'optionalAccess',
|
|
8442
|
+
_optionalChain([onTagsChange, 'optionalCall', _151 => _151(pendingTags)]);
|
|
8443
|
+
_optionalChain([dateFilter, 'optionalAccess', _152 => _152.onChange, 'call', _153 => _153({ sort: draftDateSort, range: draftDateRange })]);
|
|
9030
8444
|
onClose();
|
|
9031
8445
|
};
|
|
9032
8446
|
const getColumnDirection = (columnKey) => {
|
|
9033
|
-
return _optionalChain([sortConfig, 'optionalAccess',
|
|
8447
|
+
return _optionalChain([sortConfig, 'optionalAccess', _154 => _154.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
|
|
9034
8448
|
};
|
|
9035
8449
|
const hasSort = !!sortConfig && sortConfig.columns.length > 0;
|
|
9036
8450
|
const hasFilterGroups = filterGroups.length > 0;
|
|
@@ -9086,7 +8500,7 @@ function FilterModal({
|
|
|
9086
8500
|
{
|
|
9087
8501
|
column,
|
|
9088
8502
|
currentDirection: getColumnDirection(column.key),
|
|
9089
|
-
onSort: (direction) => _optionalChain([onSort, 'optionalCall',
|
|
8503
|
+
onSort: (direction) => _optionalChain([onSort, 'optionalCall', _155 => _155(column.key, direction)]),
|
|
9090
8504
|
onClear: onSortClear ? () => onSortClear(column.key) : void 0
|
|
9091
8505
|
},
|
|
9092
8506
|
column.key
|
|
@@ -9204,7 +8618,7 @@ function renderAdvancedPageContainer({
|
|
|
9204
8618
|
};
|
|
9205
8619
|
const renderActions = () => {
|
|
9206
8620
|
if (!actions || actions.length === 0) return null;
|
|
9207
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8621
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.PageActions, { variant: getActionsVariant(), actions, menuActions });
|
|
9208
8622
|
};
|
|
9209
8623
|
const needsBottomPadding = actions && actions.length > 0 && getActionsVariant() === "primary-buttons";
|
|
9210
8624
|
const paddingClasses = {
|
|
@@ -9227,7 +8641,7 @@ function renderAdvancedPageContainer({
|
|
|
9227
8641
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between gap-4 content-md:flex-col content-md:items-start content-md:justify-start content-lg:flex-row content-lg:items-end content-lg:justify-between", children: [
|
|
9228
8642
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
9229
8643
|
backButton && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9230
|
-
|
|
8644
|
+
_chunkZ5UWW3Z2cjs.BackButton,
|
|
9231
8645
|
{
|
|
9232
8646
|
onClick: backButton.onClick,
|
|
9233
8647
|
label: backButton.label,
|
|
@@ -9247,7 +8661,7 @@ function renderAdvancedPageContainer({
|
|
|
9247
8661
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4 content-md:flex-col content-md:items-start content-md:justify-start content-lg:flex-row content-lg:items-center content-lg:justify-between", children: [
|
|
9248
8662
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
9249
8663
|
backButton && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9250
|
-
|
|
8664
|
+
_chunkZ5UWW3Z2cjs.BackButton,
|
|
9251
8665
|
{
|
|
9252
8666
|
onClick: backButton.onClick,
|
|
9253
8667
|
label: backButton.label,
|
|
@@ -9267,7 +8681,7 @@ function renderAdvancedPageContainer({
|
|
|
9267
8681
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between gap-4 content-md:flex-col content-md:items-start content-md:justify-start content-lg:flex-row content-lg:items-end content-lg:justify-between", children: [
|
|
9268
8682
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
9269
8683
|
backButton && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9270
|
-
|
|
8684
|
+
_chunkZ5UWW3Z2cjs.BackButton,
|
|
9271
8685
|
{
|
|
9272
8686
|
onClick: backButton.onClick,
|
|
9273
8687
|
label: backButton.label,
|
|
@@ -10125,26 +9539,26 @@ function DeviceCard({
|
|
|
10125
9539
|
] }),
|
|
10126
9540
|
device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", title: device.organization, children: device.organization })
|
|
10127
9541
|
] }),
|
|
10128
|
-
_optionalChain([actions, 'access',
|
|
9542
|
+
_optionalChain([actions, 'access', _156 => _156.moreButton, 'optionalAccess', _157 => _157.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10129
9543
|
"div",
|
|
10130
9544
|
{
|
|
10131
9545
|
className: "flex shrink-0 cursor-pointer items-center justify-center rounded-[6px] border border-ods-border p-3 transition-colors hover:bg-ods-bg-hover",
|
|
10132
9546
|
onClick: (e) => {
|
|
10133
9547
|
e.stopPropagation();
|
|
10134
|
-
_optionalChain([actions, 'access',
|
|
9548
|
+
_optionalChain([actions, 'access', _158 => _158.moreButton, 'optionalAccess', _159 => _159.onClick, 'optionalCall', _160 => _160()]);
|
|
10135
9549
|
},
|
|
10136
9550
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
|
|
10137
9551
|
}
|
|
10138
9552
|
),
|
|
10139
|
-
_optionalChain([actions, 'access',
|
|
10140
|
-
_optionalChain([actions, 'access',
|
|
9553
|
+
_optionalChain([actions, 'access', _161 => _161.detailsButton, 'optionalAccess', _162 => _162.visible]) !== false && _optionalChain([actions, 'access', _163 => _163.detailsButton, 'optionalAccess', _164 => _164.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
|
|
9554
|
+
_optionalChain([actions, 'access', _165 => _165.customActions, 'optionalAccess', _166 => _166.map, 'call', _167 => _167(
|
|
10141
9555
|
(action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10142
9556
|
"div",
|
|
10143
9557
|
{
|
|
10144
9558
|
className: "flex shrink-0 cursor-pointer items-center justify-center rounded-[6px] border border-ods-border px-4 py-3 transition-colors hover:bg-ods-bg-hover",
|
|
10145
9559
|
onClick: (e) => {
|
|
10146
9560
|
e.stopPropagation();
|
|
10147
|
-
_optionalChain([action, 'access',
|
|
9561
|
+
_optionalChain([action, 'access', _168 => _168.onClick, 'optionalCall', _169 => _169()]);
|
|
10148
9562
|
},
|
|
10149
9563
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-nowrap text-ods-text-primary text-h3", children: action.label })
|
|
10150
9564
|
},
|
|
@@ -10754,7 +10168,7 @@ function MoreActionsMenu({
|
|
|
10754
10168
|
] });
|
|
10755
10169
|
const handleActivate = (e) => {
|
|
10756
10170
|
e.stopPropagation();
|
|
10757
|
-
if (!item.disabled) _optionalChain([item, 'access',
|
|
10171
|
+
if (!item.disabled) _optionalChain([item, 'access', _170 => _170.onClick, 'optionalCall', _171 => _171()]);
|
|
10758
10172
|
};
|
|
10759
10173
|
if (item.href) {
|
|
10760
10174
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2Y7QZAB2cjs.DropdownMenuItem, { asChild: true, disabled: item.disabled, className: itemClassName, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10810,7 +10224,7 @@ function OrganizationCard({
|
|
|
10810
10224
|
const handleActionClick = (e) => {
|
|
10811
10225
|
e.preventDefault();
|
|
10812
10226
|
e.stopPropagation();
|
|
10813
|
-
_optionalChain([actionButton, 'optionalAccess',
|
|
10227
|
+
_optionalChain([actionButton, 'optionalAccess', _172 => _172.onClick, 'call', _173 => _173(organization, e)]);
|
|
10814
10228
|
};
|
|
10815
10229
|
const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10816
10230
|
"div",
|
|
@@ -10843,7 +10257,7 @@ function OrganizationCard({
|
|
|
10843
10257
|
}
|
|
10844
10258
|
),
|
|
10845
10259
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start gap-3", children: [
|
|
10846
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10260
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.EntityImage, { src: fetchedImageUrl || organization.imageUrl, alt: organization.name }),
|
|
10847
10261
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center py-2", children: [
|
|
10848
10262
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "truncate text-ods-text-primary transition-colors text-h3", title: organization.name, children: organization.name }),
|
|
10849
10263
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10893,8 +10307,8 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
|
|
|
10893
10307
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
10894
10308
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-md border border-ods-border bg-ods-bg", children: resolvedIcon }),
|
|
10895
10309
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0", children: [
|
|
10896
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10897
|
-
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10310
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h3", children: title }),
|
|
10311
|
+
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: subtitle })
|
|
10898
10312
|
] })
|
|
10899
10313
|
] }),
|
|
10900
10314
|
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "self-start whitespace-nowrap rounded-full border border-ods-border bg-ods-bg px-3 py-1 font-semibold text-ods-text-primary text-h6", children: tag.label })
|
|
@@ -10904,7 +10318,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
|
|
|
10904
10318
|
}
|
|
10905
10319
|
function ServiceCardRowItem({ row }) {
|
|
10906
10320
|
const [revealed, setRevealed] = _react.useState.call(void 0, false);
|
|
10907
|
-
const { copy, copied } =
|
|
10321
|
+
const { copy, copied } = _chunkZXCZYMN4cjs.useCopyToClipboard.call(void 0, );
|
|
10908
10322
|
const { ref: valueRef, isTruncated: valueTruncated } = _chunkULWVKHSIcjs.useIsTruncated.call(void 0, row.value);
|
|
10909
10323
|
const actions = _react.useMemo.call(void 0,
|
|
10910
10324
|
() => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }),
|
|
@@ -10982,7 +10396,7 @@ var Slider = _react.forwardRef.call(void 0,
|
|
|
10982
10396
|
({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
|
|
10983
10397
|
const handleChange = (e) => {
|
|
10984
10398
|
const newValue = [Number(e.target.value)];
|
|
10985
|
-
_optionalChain([onValueChange, 'optionalCall',
|
|
10399
|
+
_optionalChain([onValueChange, 'optionalCall', _174 => _174(newValue)]);
|
|
10986
10400
|
};
|
|
10987
10401
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10988
10402
|
"input",
|
|
@@ -11028,14 +10442,14 @@ function PersonCell({
|
|
|
11028
10442
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF5BPGWGTcjs.SquareAvatar, { size: scale.avatar, src: _nullishCoalesce(avatarUrl, () => ( void 0)), alt: displayName, fallback: displayName }),
|
|
11029
10443
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
|
|
11030
10444
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11031
|
-
|
|
10445
|
+
_chunkZ5UWW3Z2cjs.TruncateText,
|
|
11032
10446
|
{
|
|
11033
10447
|
variant: scale.primary,
|
|
11034
10448
|
className: onClick ? "text-ods-accent group-hover/person-cell:underline" : void 0,
|
|
11035
10449
|
children: displayName
|
|
11036
10450
|
}
|
|
11037
10451
|
),
|
|
11038
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10452
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: secondary === void 0 ? "\xA0" : secondary || "\xB7" })
|
|
11039
10453
|
] })
|
|
11040
10454
|
] });
|
|
11041
10455
|
if (!onClick) return row;
|
|
@@ -11057,8 +10471,8 @@ function PeopleCell({ people, fallbackName = "Unassigned" }) {
|
|
|
11057
10471
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11058
10472
|
PersonCell,
|
|
11059
10473
|
{
|
|
11060
|
-
name: _optionalChain([person, 'optionalAccess',
|
|
11061
|
-
avatarUrl: _optionalChain([person, 'optionalAccess',
|
|
10474
|
+
name: _optionalChain([person, 'optionalAccess', _175 => _175.name]),
|
|
10475
|
+
avatarUrl: _optionalChain([person, 'optionalAccess', _176 => _176.avatarUrl]),
|
|
11062
10476
|
secondary: person ? person.secondary : void 0,
|
|
11063
10477
|
fallbackName
|
|
11064
10478
|
}
|
|
@@ -11299,7 +10713,7 @@ function CursorPaginationSimple({
|
|
|
11299
10713
|
{
|
|
11300
10714
|
variant: "transparent",
|
|
11301
10715
|
size: "icon",
|
|
11302
|
-
onClick: () => _optionalChain([onPrevious, 'optionalCall',
|
|
10716
|
+
onClick: () => _optionalChain([onPrevious, 'optionalCall', _177 => _177("")]),
|
|
11303
10717
|
disabled: !hasPreviousPage || loading,
|
|
11304
10718
|
className: "h-8 w-8",
|
|
11305
10719
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -11311,7 +10725,7 @@ function CursorPaginationSimple({
|
|
|
11311
10725
|
{
|
|
11312
10726
|
variant: "transparent",
|
|
11313
10727
|
size: "icon",
|
|
11314
|
-
onClick: () => _optionalChain([onNext, 'optionalCall',
|
|
10728
|
+
onClick: () => _optionalChain([onNext, 'optionalCall', _178 => _178("")]),
|
|
11315
10729
|
disabled: !hasNextPage || loading,
|
|
11316
10730
|
className: "h-8 w-8",
|
|
11317
10731
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -11448,7 +10862,7 @@ var ROW_STACK_CLASSES = "flex w-full flex-col gap-[var(--spacing-system-xsf)]";
|
|
|
11448
10862
|
function DataTableSkeleton({ rows = 10, className, rowClassName, rowHeightClassName }) {
|
|
11449
10863
|
const table = useDataTableContext();
|
|
11450
10864
|
const columns = table.getVisibleFlatColumns();
|
|
11451
|
-
const firstColumnId = _optionalChain([columns, 'access',
|
|
10865
|
+
const firstColumnId = _optionalChain([columns, 'access', _179 => _179[0], 'optionalAccess', _180 => _180.id]);
|
|
11452
10866
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
11453
10867
|
"div",
|
|
11454
10868
|
{
|
|
@@ -11475,13 +10889,13 @@ function DataTableSkeleton({ rows = 10, className, rowClassName, rowHeightClassN
|
|
|
11475
10889
|
{
|
|
11476
10890
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
11477
10891
|
"flex shrink-0 flex-col justify-center",
|
|
11478
|
-
_optionalChain([meta, 'optionalAccess',
|
|
10892
|
+
_optionalChain([meta, 'optionalAccess', _181 => _181.width]) || "flex-1",
|
|
11479
10893
|
// Same responsive hiding the real header and row apply.
|
|
11480
10894
|
// Without it a `hideAt` column was drawn in the skeleton and
|
|
11481
10895
|
// absent from the loaded table, so below that breakpoint the
|
|
11482
10896
|
// remaining columns were sized against a different total and
|
|
11483
10897
|
// the whole row re-laid-out the moment data arrived.
|
|
11484
|
-
getHideClasses(_optionalChain([meta, 'optionalAccess',
|
|
10898
|
+
getHideClasses(_optionalChain([meta, 'optionalAccess', _182 => _182.hideAt]))
|
|
11485
10899
|
),
|
|
11486
10900
|
children: [
|
|
11487
10901
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-[var(--spacing-system-xxs)] h-5 w-3/4 rounded-sm bg-ods-bg-surface" }),
|
|
@@ -11585,8 +10999,8 @@ function TableEmptyState({ message, description, emptyState, icon, action, class
|
|
|
11585
10999
|
icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4GFNWALLcjs.SearchIcon, {}))),
|
|
11586
11000
|
title: _nullishCoalesce(message, () => ( "No results found")),
|
|
11587
11001
|
description: _nullishCoalesce(description, () => ( (message == null ? "Try adjusting your search or filters" : void 0))),
|
|
11588
|
-
buttonLabel: _optionalChain([action, 'optionalAccess',
|
|
11589
|
-
onButtonClick: _optionalChain([action, 'optionalAccess',
|
|
11002
|
+
buttonLabel: _optionalChain([action, 'optionalAccess', _183 => _183.label]),
|
|
11003
|
+
onButtonClick: _optionalChain([action, 'optionalAccess', _184 => _184.onClick]),
|
|
11590
11004
|
className: _chunk3ATAYP36cjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className),
|
|
11591
11005
|
...emptyState
|
|
11592
11006
|
}
|
|
@@ -11604,7 +11018,7 @@ function TableColumnFilterDropdown({
|
|
|
11604
11018
|
placement = "bottom-start",
|
|
11605
11019
|
dropdownClassName = "min-w-[240px]"
|
|
11606
11020
|
}) {
|
|
11607
|
-
const activeCount = _optionalChain([filters, 'optionalAccess',
|
|
11021
|
+
const activeCount = _optionalChain([filters, 'optionalAccess', _185 => _185[columnKey], 'optionalAccess', _186 => _186.length]) || 0;
|
|
11608
11022
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11609
11023
|
FiltersDropdown,
|
|
11610
11024
|
{
|
|
@@ -11644,7 +11058,7 @@ function TableColumnFilterDropdown({
|
|
|
11644
11058
|
delete newFilters[columnKey];
|
|
11645
11059
|
onFilterChange(newFilters);
|
|
11646
11060
|
},
|
|
11647
|
-
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess',
|
|
11061
|
+
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _187 => _187[columnKey]]) || [] },
|
|
11648
11062
|
placement,
|
|
11649
11063
|
dropdownClassName
|
|
11650
11064
|
}
|
|
@@ -11848,7 +11262,7 @@ function TableCardSkeleton({
|
|
|
11848
11262
|
className,
|
|
11849
11263
|
rowClassName
|
|
11850
11264
|
}) {
|
|
11851
|
-
const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess',
|
|
11265
|
+
const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess', _188 => _188.key]);
|
|
11852
11266
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
11853
11267
|
"div",
|
|
11854
11268
|
{
|
|
@@ -12033,7 +11447,7 @@ function useTableMotion(enabled) {
|
|
|
12033
11447
|
// src/components/ui/table/table.tsx
|
|
12034
11448
|
|
|
12035
11449
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref, actionsColumnWidth) {
|
|
12036
|
-
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess',
|
|
11450
|
+
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _189 => _189.length])) || Boolean(renderRowActions);
|
|
12037
11451
|
const result = [...columns];
|
|
12038
11452
|
const actions = _nullishCoalesce(rowActions, () => ( []));
|
|
12039
11453
|
if (hasActions) {
|
|
@@ -12140,7 +11554,7 @@ function Table({
|
|
|
12140
11554
|
return rowKey(item);
|
|
12141
11555
|
}
|
|
12142
11556
|
const key = item[rowKey];
|
|
12143
|
-
return _optionalChain([key, 'optionalAccess',
|
|
11557
|
+
return _optionalChain([key, 'optionalAccess', _190 => _190.toString, 'call', _191 => _191()]) || index.toString();
|
|
12144
11558
|
};
|
|
12145
11559
|
const getRowClassName = (item, index) => {
|
|
12146
11560
|
if (typeof rowClassName === "function") {
|
|
@@ -12174,25 +11588,25 @@ function Table({
|
|
|
12174
11588
|
const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
|
|
12175
11589
|
const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
12176
11590
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
12177
|
-
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess',
|
|
11591
|
+
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _192 => _192.onLoadMore]));
|
|
12178
11592
|
_react.useEffect.call(void 0, () => {
|
|
12179
|
-
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess',
|
|
11593
|
+
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _193 => _193.onLoadMore]);
|
|
12180
11594
|
});
|
|
12181
11595
|
_react.useEffect.call(void 0, () => {
|
|
12182
|
-
if (!_optionalChain([infiniteScroll, 'optionalAccess',
|
|
11596
|
+
if (!_optionalChain([infiniteScroll, 'optionalAccess', _194 => _194.hasNextPage]) || infiniteScroll.isFetchingNextPage) return void 0;
|
|
12183
11597
|
const sentinel = sentinelRef.current;
|
|
12184
11598
|
if (!sentinel) return void 0;
|
|
12185
11599
|
const observer = new IntersectionObserver(
|
|
12186
11600
|
(entries) => {
|
|
12187
|
-
if (_optionalChain([entries, 'access',
|
|
12188
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
11601
|
+
if (_optionalChain([entries, 'access', _195 => _195[0], 'optionalAccess', _196 => _196.isIntersecting])) {
|
|
11602
|
+
_optionalChain([onLoadMoreRef, 'access', _197 => _197.current, 'optionalCall', _198 => _198()]);
|
|
12189
11603
|
}
|
|
12190
11604
|
},
|
|
12191
11605
|
{ rootMargin: "200px" }
|
|
12192
11606
|
);
|
|
12193
11607
|
observer.observe(sentinel);
|
|
12194
11608
|
return () => observer.disconnect();
|
|
12195
|
-
}, [_optionalChain([infiniteScroll, 'optionalAccess',
|
|
11609
|
+
}, [_optionalChain([infiniteScroll, 'optionalAccess', _199 => _199.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _200 => _200.isFetchingNextPage])]);
|
|
12196
11610
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full flex-col gap-1", containerClassName), children: [
|
|
12197
11611
|
showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-2 flex items-center justify-between rounded-[6px] border border-ods-border bg-ods-card p-3", children: [
|
|
12198
11612
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: [
|
|
@@ -12244,7 +11658,7 @@ function Table({
|
|
|
12244
11658
|
columns,
|
|
12245
11659
|
rows: skeletonRows,
|
|
12246
11660
|
compact,
|
|
12247
|
-
hasActions: (_nullishCoalesce(_optionalChain([rowActions, 'optionalAccess',
|
|
11661
|
+
hasActions: (_nullishCoalesce(_optionalChain([rowActions, 'optionalAccess', _201 => _201.length]), () => ( 0))) > 0,
|
|
12248
11662
|
hasChevron: Boolean(rowHref)
|
|
12249
11663
|
}
|
|
12250
11664
|
) : data.length === 0 ? (
|
|
@@ -12278,23 +11692,23 @@ function Table({
|
|
|
12278
11692
|
selected: isRowSelected(item),
|
|
12279
11693
|
onSelect: handleSelectRow,
|
|
12280
11694
|
animateRowReorder,
|
|
12281
|
-
motionDiv: _optionalChain([tableMotion, 'optionalAccess',
|
|
11695
|
+
motionDiv: _optionalChain([tableMotion, 'optionalAccess', _202 => _202.motionDiv])
|
|
12282
11696
|
},
|
|
12283
11697
|
getRowKey(item, index)
|
|
12284
11698
|
));
|
|
12285
|
-
const LayoutGroup = _optionalChain([tableMotion, 'optionalAccess',
|
|
11699
|
+
const LayoutGroup = _optionalChain([tableMotion, 'optionalAccess', _203 => _203.LayoutGroup]);
|
|
12286
11700
|
return animateRowReorder && LayoutGroup ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LayoutGroup, { children: rows }) : rows;
|
|
12287
11701
|
})(),
|
|
12288
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
11702
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _204 => _204.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12289
11703
|
TableCardSkeleton,
|
|
12290
11704
|
{
|
|
12291
11705
|
columns,
|
|
12292
11706
|
rows: _nullishCoalesce(infiniteScroll.skeletonRows, () => ( 3)),
|
|
12293
|
-
hasActions: (_nullishCoalesce(_optionalChain([rowActions, 'optionalAccess',
|
|
11707
|
+
hasActions: (_nullishCoalesce(_optionalChain([rowActions, 'optionalAccess', _205 => _205.length]), () => ( 0))) > 0,
|
|
12294
11708
|
hasChevron: Boolean(rowHref)
|
|
12295
11709
|
}
|
|
12296
11710
|
),
|
|
12297
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
11711
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _206 => _206.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
|
|
12298
11712
|
!infiniteScroll && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12299
11713
|
PlaceholderRows,
|
|
12300
11714
|
{
|
|
@@ -12569,7 +11983,7 @@ function QueryReportTable({
|
|
|
12569
11983
|
const columns = _react.useMemo.call(void 0, () => deriveColumns(data, columnOrder), [data, columnOrder]);
|
|
12570
11984
|
const handleExport = () => {
|
|
12571
11985
|
exportToCSV(data, columns, exportFilename);
|
|
12572
|
-
_optionalChain([onExport, 'optionalCall',
|
|
11986
|
+
_optionalChain([onExport, 'optionalCall', _207 => _207()]);
|
|
12573
11987
|
};
|
|
12574
11988
|
const tableMinWidth = columns.length * (columnWidth + 16);
|
|
12575
11989
|
const {
|
|
@@ -12699,7 +12113,7 @@ function DataTableRowImpl({
|
|
|
12699
12113
|
const handleClick = _react.useCallback.call(void 0,
|
|
12700
12114
|
(e) => {
|
|
12701
12115
|
const target = e.target;
|
|
12702
|
-
if (!_optionalChain([containerRef, 'access',
|
|
12116
|
+
if (!_optionalChain([containerRef, 'access', _208 => _208.current, 'optionalAccess', _209 => _209.contains, 'call', _210 => _210(target)])) {
|
|
12703
12117
|
if (isLinkMode) e.preventDefault();
|
|
12704
12118
|
return;
|
|
12705
12119
|
}
|
|
@@ -12707,7 +12121,7 @@ function DataTableRowImpl({
|
|
|
12707
12121
|
if (isLinkMode) e.preventDefault();
|
|
12708
12122
|
return;
|
|
12709
12123
|
}
|
|
12710
|
-
_optionalChain([onClick, 'optionalCall',
|
|
12124
|
+
_optionalChain([onClick, 'optionalCall', _211 => _211(row.original)]);
|
|
12711
12125
|
},
|
|
12712
12126
|
[onClick, row.original, isLinkMode]
|
|
12713
12127
|
);
|
|
@@ -12747,10 +12161,10 @@ function DataTableRowImpl({
|
|
|
12747
12161
|
{
|
|
12748
12162
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
12749
12163
|
"flex flex-col overflow-hidden",
|
|
12750
|
-
alignJustify(_optionalChain([meta, 'optionalAccess',
|
|
12751
|
-
_optionalChain([meta, 'optionalAccess',
|
|
12752
|
-
_optionalChain([meta, 'optionalAccess',
|
|
12753
|
-
getHideClasses(_optionalChain([meta, 'optionalAccess',
|
|
12164
|
+
alignJustify(_optionalChain([meta, 'optionalAccess', _212 => _212.align])),
|
|
12165
|
+
_optionalChain([meta, 'optionalAccess', _213 => _213.width]) || "min-w-0 flex-1",
|
|
12166
|
+
_optionalChain([meta, 'optionalAccess', _214 => _214.cellClassName]),
|
|
12167
|
+
getHideClasses(_optionalChain([meta, 'optionalAccess', _215 => _215.hideAt]))
|
|
12754
12168
|
),
|
|
12755
12169
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
|
|
12756
12170
|
},
|
|
@@ -12858,7 +12272,7 @@ function DataTableBody({
|
|
|
12858
12272
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, ROW_STACK_CLASSES, className), children: [
|
|
12859
12273
|
rows.map((row, index) => {
|
|
12860
12274
|
const item = row.original;
|
|
12861
|
-
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall',
|
|
12275
|
+
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _216 => _216(item)]), () => ( void 0));
|
|
12862
12276
|
const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
|
|
12863
12277
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12864
12278
|
DataTableRow,
|
|
@@ -12869,7 +12283,7 @@ function DataTableBody({
|
|
|
12869
12283
|
compact,
|
|
12870
12284
|
rowHeightClassName,
|
|
12871
12285
|
className: cls,
|
|
12872
|
-
subRow: _optionalChain([renderSubRow, 'optionalCall',
|
|
12286
|
+
subRow: _optionalChain([renderSubRow, 'optionalCall', _217 => _217(item)])
|
|
12873
12287
|
},
|
|
12874
12288
|
row.id
|
|
12875
12289
|
);
|
|
@@ -12921,7 +12335,7 @@ function DataTableColumnFilter({
|
|
|
12921
12335
|
pending = false
|
|
12922
12336
|
}) {
|
|
12923
12337
|
const currentValue = column.getFilterValue();
|
|
12924
|
-
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess',
|
|
12338
|
+
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _218 => _218.length]), () => ( 0));
|
|
12925
12339
|
const sections = _react.useMemo.call(void 0,
|
|
12926
12340
|
() => [
|
|
12927
12341
|
{
|
|
@@ -13053,7 +12467,7 @@ function DataTableHeader({
|
|
|
13053
12467
|
);
|
|
13054
12468
|
}
|
|
13055
12469
|
function keepsCellOnTablet(meta) {
|
|
13056
|
-
return Boolean(_optionalChain([meta, 'optionalAccess',
|
|
12470
|
+
return Boolean(_optionalChain([meta, 'optionalAccess', _219 => _219.filter])) || _optionalChain([meta, 'optionalAccess', _220 => _220.sortable]) === true || _optionalChain([meta, 'optionalAccess', _221 => _221.alwaysShowHeader]) === true;
|
|
13057
12471
|
}
|
|
13058
12472
|
var SHOW_FROM = {
|
|
13059
12473
|
md: "content-md:flex",
|
|
@@ -13091,11 +12505,11 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
13091
12505
|
if (header.isPlaceholder) return null;
|
|
13092
12506
|
const column = header.column;
|
|
13093
12507
|
const meta = column.columnDef.meta;
|
|
13094
|
-
const filter = _optionalChain([meta, 'optionalAccess',
|
|
12508
|
+
const filter = _optionalChain([meta, 'optionalAccess', _222 => _222.filter]);
|
|
13095
12509
|
const keepOnTablet = keepsCellOnTablet(meta);
|
|
13096
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
13097
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
13098
|
-
const sortDir = _optionalChain([sort, 'optionalAccess',
|
|
12510
|
+
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _223 => _223.align]), () => ( "left"));
|
|
12511
|
+
const canSort = _optionalChain([meta, 'optionalAccess', _224 => _224.sortable]) === true;
|
|
12512
|
+
const sortDir = _optionalChain([sort, 'optionalAccess', _225 => _225.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
|
|
13099
12513
|
const filterTrigger = filter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13100
12514
|
DataTableColumnFilter,
|
|
13101
12515
|
{
|
|
@@ -13114,7 +12528,7 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
13114
12528
|
"items-stretch",
|
|
13115
12529
|
// Cells are hidden rather than dropped from the tree, so which columns
|
|
13116
12530
|
// exist never depends on when an effect ran.
|
|
13117
|
-
getCellVisibilityClasses(keepOnTablet, _optionalChain([meta, 'optionalAccess',
|
|
12531
|
+
getCellVisibilityClasses(keepOnTablet, _optionalChain([meta, 'optionalAccess', _226 => _226.hideAt])),
|
|
13118
12532
|
// Width applies from lg only. Stated as "always, neutralized below lg"
|
|
13119
12533
|
// because `meta.width` is an opaque consumer string that cannot be
|
|
13120
12534
|
// prefixed. Only `keepOnTablet` cells need the override — the rest are
|
|
@@ -13132,15 +12546,15 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
13132
12546
|
// Specificity rather than `!important`: it stays a normal declaration, so a
|
|
13133
12547
|
// consumer that genuinely needs a tablet width can still take it back with a
|
|
13134
12548
|
// more specific rule — `!important` could only be answered with another one.
|
|
13135
|
-
_optionalChain([meta, 'optionalAccess',
|
|
12549
|
+
_optionalChain([meta, 'optionalAccess', _227 => _227.width]) || "min-w-0 flex-1",
|
|
13136
12550
|
keepOnTablet && "content-max-lg:[&&]:w-auto content-max-lg:[&&]:flex-none content-max-lg:[&&]:basis-auto",
|
|
13137
|
-
_optionalChain([meta, 'optionalAccess',
|
|
12551
|
+
_optionalChain([meta, 'optionalAccess', _228 => _228.headerClassName])
|
|
13138
12552
|
),
|
|
13139
12553
|
children: filterTrigger ? (
|
|
13140
12554
|
// Only a column that HAS a hint gets the extra row, so every existing
|
|
13141
12555
|
// filter header keeps its exact structure — the trigger stays a direct
|
|
13142
12556
|
// child of the cell.
|
|
13143
|
-
_optionalChain([meta, 'optionalAccess',
|
|
12557
|
+
_optionalChain([meta, 'optionalAccess', _229 => _229.hint]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-xxs)]", children: [
|
|
13144
12558
|
filterTrigger,
|
|
13145
12559
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUWQWMGJ7cjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
|
|
13146
12560
|
] }) : filterTrigger
|
|
@@ -13156,9 +12570,9 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
13156
12570
|
keepOnTablet && "content-max-lg:justify-start",
|
|
13157
12571
|
canSort && "group cursor-pointer"
|
|
13158
12572
|
),
|
|
13159
|
-
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall',
|
|
12573
|
+
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _230 => _230(column.id)]) : void 0,
|
|
13160
12574
|
children: [
|
|
13161
|
-
_optionalChain([meta, 'optionalAccess',
|
|
12575
|
+
_optionalChain([meta, 'optionalAccess', _231 => _231.hint]) ? (
|
|
13162
12576
|
// The hint shares a LABEL GROUP with the text, pinned to the FIRST
|
|
13163
12577
|
// line (`items-start`): on a label that breaks onto a second line it
|
|
13164
12578
|
// reads beside the opening word instead of floating in the gap
|
|
@@ -13229,9 +12643,9 @@ function DataTableInfiniteFooter({
|
|
|
13229
12643
|
loadMore.setSkeletonRows(requestedRows);
|
|
13230
12644
|
return () => loadMore.setSkeletonRows(0);
|
|
13231
12645
|
}, [loadMore, requestedRows]);
|
|
13232
|
-
const tableRows = _optionalChain([useOptionalDataTableContext, 'call',
|
|
13233
|
-
const progressCount = _nullishCoalesce(loadedCount, () => ( _optionalChain([tableRows, 'optionalAccess',
|
|
13234
|
-
const lastRowId = _nullishCoalesce(_optionalChain([tableRows, 'optionalAccess',
|
|
12646
|
+
const tableRows = _optionalChain([useOptionalDataTableContext, 'call', _232 => _232(), 'optionalAccess', _233 => _233.getRowModel, 'call', _234 => _234(), 'access', _235 => _235.rows]);
|
|
12647
|
+
const progressCount = _nullishCoalesce(loadedCount, () => ( _optionalChain([tableRows, 'optionalAccess', _236 => _236.length])));
|
|
12648
|
+
const lastRowId = _nullishCoalesce(_optionalChain([tableRows, 'optionalAccess', _237 => _237[tableRows.length - 1], 'optionalAccess', _238 => _238.id]), () => ( ""));
|
|
13235
12649
|
const tail = progressCount === void 0 ? null : `${progressCount}:${lastRowId}`;
|
|
13236
12650
|
const [wasFetching, setWasFetching] = _react.useState.call(void 0, isFetchingNextPage);
|
|
13237
12651
|
const [tailAtFetchStart, setTailAtFetchStart] = _react.useState.call(void 0, null);
|
|
@@ -13252,7 +12666,7 @@ function DataTableInfiniteFooter({
|
|
|
13252
12666
|
if (!sentinel) return void 0;
|
|
13253
12667
|
const observer = new IntersectionObserver(
|
|
13254
12668
|
(entries) => {
|
|
13255
|
-
if (_optionalChain([entries, 'access',
|
|
12669
|
+
if (_optionalChain([entries, 'access', _239 => _239[0], 'optionalAccess', _240 => _240.isIntersecting])) onLoadMoreRef.current();
|
|
13256
12670
|
},
|
|
13257
12671
|
{ root: findScrollParent(sentinel), rootMargin }
|
|
13258
12672
|
);
|
|
@@ -13279,7 +12693,7 @@ function DataTableRowCount({
|
|
|
13279
12693
|
const table = useDataTableContext();
|
|
13280
12694
|
const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
|
|
13281
12695
|
if (hideWhenEmpty && count === 0) return null;
|
|
13282
|
-
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall',
|
|
12696
|
+
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _241 => _241(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
|
|
13283
12697
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "whitespace-nowrap text-ods-text-secondary text-h6", className), children: [
|
|
13284
12698
|
count,
|
|
13285
12699
|
" ",
|
|
@@ -13398,12 +12812,12 @@ function PhoneInput({
|
|
|
13398
12812
|
(phone) => {
|
|
13399
12813
|
if (!phone || digitCount(phone) === 0) {
|
|
13400
12814
|
setIsInvalid(false);
|
|
13401
|
-
_optionalChain([onValidationChange, 'optionalCall',
|
|
12815
|
+
_optionalChain([onValidationChange, 'optionalCall', _242 => _242(false)]);
|
|
13402
12816
|
return;
|
|
13403
12817
|
}
|
|
13404
12818
|
const invalid = !_chunkUWQWMGJ7cjs.validatePhoneNumber.call(void 0, phone, countryCode);
|
|
13405
12819
|
setIsInvalid(invalid);
|
|
13406
|
-
_optionalChain([onValidationChange, 'optionalCall',
|
|
12820
|
+
_optionalChain([onValidationChange, 'optionalCall', _243 => _243(invalid)]);
|
|
13407
12821
|
},
|
|
13408
12822
|
[countryCode, digitCount, onValidationChange]
|
|
13409
12823
|
);
|
|
@@ -13421,7 +12835,7 @@ function PhoneInput({
|
|
|
13421
12835
|
}, []);
|
|
13422
12836
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 gap-2", children: [
|
|
13423
12837
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13424
|
-
|
|
12838
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
13425
12839
|
{
|
|
13426
12840
|
value: countryCode,
|
|
13427
12841
|
onValueChange: (val) => {
|
|
@@ -13432,14 +12846,14 @@ function PhoneInput({
|
|
|
13432
12846
|
},
|
|
13433
12847
|
disabled,
|
|
13434
12848
|
children: [
|
|
13435
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12849
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "w-[130px] shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { children: selectedCountry && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1.5", children: [
|
|
13436
12850
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: selectedCountry.flag }),
|
|
13437
12851
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: selectedCountry.dialCode })
|
|
13438
12852
|
] }) }) }),
|
|
13439
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13440
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13441
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13442
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12853
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { className: "max-h-[300px] !w-[280px]", children: [
|
|
12854
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectGroup, { children: priority.map((country) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CountryOption, { country }, country.code)) }),
|
|
12855
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectSeparator, {}),
|
|
12856
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectGroup, { children: others.map((country) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CountryOption, { country }, country.code)) })
|
|
13443
12857
|
] })
|
|
13444
12858
|
]
|
|
13445
12859
|
}
|
|
@@ -13457,7 +12871,7 @@ function PhoneInput({
|
|
|
13457
12871
|
debouncedValidation(val);
|
|
13458
12872
|
} else if (digitCount(val) === 0) {
|
|
13459
12873
|
setIsInvalid(false);
|
|
13460
|
-
_optionalChain([onValidationChange, 'optionalCall',
|
|
12874
|
+
_optionalChain([onValidationChange, 'optionalCall', _244 => _244(false)]);
|
|
13461
12875
|
}
|
|
13462
12876
|
}
|
|
13463
12877
|
},
|
|
@@ -13471,7 +12885,7 @@ function PhoneInput({
|
|
|
13471
12885
|
] });
|
|
13472
12886
|
}
|
|
13473
12887
|
function CountryOption({ country }) {
|
|
13474
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12888
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: country.code, textValue: country.name, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
13475
12889
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: country.flag }),
|
|
13476
12890
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary", children: country.dialCode }),
|
|
13477
12891
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-block max-w-[140px] overflow-hidden text-ellipsis whitespace-nowrap", children: country.name })
|
|
@@ -13497,7 +12911,7 @@ var containerStyles = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
|
13497
12911
|
// Theme palette — matches lib Input component
|
|
13498
12912
|
"border-ods-border bg-ods-card has-[:focus]:border-ods-accent"
|
|
13499
12913
|
);
|
|
13500
|
-
var
|
|
12914
|
+
var innerInputStyles = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
13501
12915
|
"min-w-[60px] flex-1 border-none bg-transparent outline-none",
|
|
13502
12916
|
"text-h4",
|
|
13503
12917
|
"text-ods-text-primary placeholder:text-ods-text-secondary",
|
|
@@ -13549,7 +12963,7 @@ function SearchInput({
|
|
|
13549
12963
|
const debouncedValue = _chunkGQ7JJUITcjs.useDebounce.call(void 0, currentValue, debounceMs);
|
|
13550
12964
|
const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
|
|
13551
12965
|
const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
|
|
13552
|
-
const keyboardPadding =
|
|
12966
|
+
const keyboardPadding = _chunkA6P6DHEZcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
13553
12967
|
const containerRef = _react.useRef.call(void 0, null);
|
|
13554
12968
|
const currentPlaceholder = filterChips.length > 0 ? "Add filter..." : placeholder;
|
|
13555
12969
|
const {
|
|
@@ -13559,7 +12973,7 @@ function SearchInput({
|
|
|
13559
12973
|
textMeasureRef,
|
|
13560
12974
|
badgeRef,
|
|
13561
12975
|
inputRef
|
|
13562
|
-
} =
|
|
12976
|
+
} = _chunkA6P6DHEZcjs.useAutoLimitTags.call(void 0, {
|
|
13563
12977
|
count: filterChips.length,
|
|
13564
12978
|
limitTags,
|
|
13565
12979
|
// When chips exist, pass empty placeholder so the hook only reserves input minWidth,
|
|
@@ -13574,7 +12988,7 @@ function SearchInput({
|
|
|
13574
12988
|
if (!showHiddenTags) return void 0;
|
|
13575
12989
|
const handleClick = (e) => {
|
|
13576
12990
|
const target = e.target;
|
|
13577
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
12991
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _245 => _245.current, 'optionalAccess', _246 => _246.contains, 'call', _247 => _247(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _248 => _248.current, 'optionalAccess', _249 => _249.contains, 'call', _250 => _250(target)])) {
|
|
13578
12992
|
setShowHiddenTags(false);
|
|
13579
12993
|
}
|
|
13580
12994
|
};
|
|
@@ -13585,7 +12999,7 @@ function SearchInput({
|
|
|
13585
12999
|
const popup = hiddenTagsPopupRef.current;
|
|
13586
13000
|
const badge = badgeRef.current;
|
|
13587
13001
|
if (!popup || !badge) return;
|
|
13588
|
-
const originLeft = _nullishCoalesce(_optionalChain([containerRef, 'access',
|
|
13002
|
+
const originLeft = _nullishCoalesce(_optionalChain([containerRef, 'access', _251 => _251.current, 'optionalAccess', _252 => _252.getBoundingClientRect, 'call', _253 => _253(), 'access', _254 => _254.left]), () => ( 0));
|
|
13589
13003
|
popup.style.left = `${badge.getBoundingClientRect().left - originLeft}px`;
|
|
13590
13004
|
});
|
|
13591
13005
|
const hiddenCount = filterChips.length - visibleCount;
|
|
@@ -13620,7 +13034,7 @@ function SearchInput({
|
|
|
13620
13034
|
} else {
|
|
13621
13035
|
setInternalValue(newVal);
|
|
13622
13036
|
}
|
|
13623
|
-
if (newVal === "" && currentValue !== "") _optionalChain([onSubmit, 'optionalCall',
|
|
13037
|
+
if (newVal === "" && currentValue !== "") _optionalChain([onSubmit, 'optionalCall', _255 => _255("")]);
|
|
13624
13038
|
if (!isOpen) setIsOpen(true);
|
|
13625
13039
|
setHighlightedIndex(-1);
|
|
13626
13040
|
};
|
|
@@ -13632,11 +13046,11 @@ function SearchInput({
|
|
|
13632
13046
|
} else {
|
|
13633
13047
|
setInternalValue("");
|
|
13634
13048
|
}
|
|
13635
|
-
if (currentValue !== "") _optionalChain([onSubmit, 'optionalCall',
|
|
13636
|
-
_optionalChain([inputRef, 'access',
|
|
13049
|
+
if (currentValue !== "") _optionalChain([onSubmit, 'optionalCall', _256 => _256("")]);
|
|
13050
|
+
_optionalChain([inputRef, 'access', _257 => _257.current, 'optionalAccess', _258 => _258.focus, 'call', _259 => _259()]);
|
|
13637
13051
|
};
|
|
13638
13052
|
const handleResultClick = (result, e) => {
|
|
13639
|
-
_optionalChain([onResultSelect, 'optionalCall',
|
|
13053
|
+
_optionalChain([onResultSelect, 'optionalCall', _260 => _260(
|
|
13640
13054
|
result,
|
|
13641
13055
|
e ? {
|
|
13642
13056
|
metaKey: e.metaKey,
|
|
@@ -13664,7 +13078,7 @@ function SearchInput({
|
|
|
13664
13078
|
if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
|
|
13665
13079
|
handleResultClick(flatResults[highlightedIndex]);
|
|
13666
13080
|
} else {
|
|
13667
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
13081
|
+
_optionalChain([onSubmit, 'optionalCall', _261 => _261(currentValue)]);
|
|
13668
13082
|
}
|
|
13669
13083
|
break;
|
|
13670
13084
|
case "Escape":
|
|
@@ -13736,8 +13150,8 @@ function SearchInput({
|
|
|
13736
13150
|
};
|
|
13737
13151
|
const hasValue = currentValue.length > 0;
|
|
13738
13152
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "relative", className), ref: containerRef, children: [
|
|
13739
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13740
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13153
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive4.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
|
|
13154
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive4.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13741
13155
|
"div",
|
|
13742
13156
|
{
|
|
13743
13157
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
@@ -13747,7 +13161,7 @@ function SearchInput({
|
|
|
13747
13161
|
),
|
|
13748
13162
|
onClick: () => {
|
|
13749
13163
|
if (disabled) return;
|
|
13750
|
-
_optionalChain([inputRef, 'access',
|
|
13164
|
+
_optionalChain([inputRef, 'access', _262 => _262.current, 'optionalAccess', _263 => _263.focus, 'call', _264 => _264()]);
|
|
13751
13165
|
setIsOpen(true);
|
|
13752
13166
|
},
|
|
13753
13167
|
children: [
|
|
@@ -13797,7 +13211,7 @@ function SearchInput({
|
|
|
13797
13211
|
setShowHiddenTags(false);
|
|
13798
13212
|
},
|
|
13799
13213
|
placeholder: currentPlaceholder,
|
|
13800
|
-
className:
|
|
13214
|
+
className: innerInputStyles
|
|
13801
13215
|
}
|
|
13802
13216
|
)
|
|
13803
13217
|
] }),
|
|
@@ -13818,7 +13232,7 @@ function SearchInput({
|
|
|
13818
13232
|
}
|
|
13819
13233
|
) }),
|
|
13820
13234
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13821
|
-
|
|
13235
|
+
PopoverPrimitive4.Content,
|
|
13822
13236
|
{
|
|
13823
13237
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
13824
13238
|
"z-50 mt-1 w-[var(--radix-popover-trigger-width)]",
|
|
@@ -13835,27 +13249,27 @@ function SearchInput({
|
|
|
13835
13249
|
collisionPadding: { bottom: keyboardPadding },
|
|
13836
13250
|
onOpenAutoFocus: (e) => {
|
|
13837
13251
|
e.preventDefault();
|
|
13838
|
-
_optionalChain([inputRef, 'access',
|
|
13252
|
+
_optionalChain([inputRef, 'access', _265 => _265.current, 'optionalAccess', _266 => _266.focus, 'call', _267 => _267()]);
|
|
13839
13253
|
},
|
|
13840
13254
|
onInteractOutside: (e) => {
|
|
13841
|
-
if (_optionalChain([containerRef, 'access',
|
|
13255
|
+
if (_optionalChain([containerRef, 'access', _268 => _268.current, 'optionalAccess', _269 => _269.contains, 'call', _270 => _270(e.target)])) {
|
|
13842
13256
|
e.preventDefault();
|
|
13843
13257
|
}
|
|
13844
13258
|
},
|
|
13845
|
-
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13846
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13847
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13259
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ScrollAreaPrimitive2.Root, { className: "flex min-h-0 flex-col overflow-hidden", children: [
|
|
13260
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive2.Viewport, { className: "max-h-[320px] min-h-0 w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "listbox", children: renderDropdownContent() }) }),
|
|
13261
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive2.Scrollbar, { className: "hidden", orientation: "vertical", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive2.Thumb, {}) })
|
|
13848
13262
|
] })
|
|
13849
13263
|
}
|
|
13850
13264
|
)
|
|
13851
13265
|
] }),
|
|
13852
13266
|
showHiddenTags && hiddenCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13853
|
-
HiddenTagsPopup,
|
|
13267
|
+
_chunkZ5UWW3Z2cjs.HiddenTagsPopup,
|
|
13854
13268
|
{
|
|
13855
13269
|
ref: hiddenTagsPopupRef,
|
|
13856
13270
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
13857
13271
|
onRemove: (removedTag) => {
|
|
13858
|
-
_optionalChain([onFilterRemove, 'optionalCall',
|
|
13272
|
+
_optionalChain([onFilterRemove, 'optionalCall', _271 => _271(removedTag)]);
|
|
13859
13273
|
if (hiddenCount <= 1) setShowHiddenTags(false);
|
|
13860
13274
|
}
|
|
13861
13275
|
}
|
|
@@ -13897,7 +13311,7 @@ function FilterListItem({
|
|
|
13897
13311
|
}) {
|
|
13898
13312
|
const handleToggle = () => {
|
|
13899
13313
|
if (disabled) return;
|
|
13900
|
-
_optionalChain([onToggle, 'optionalCall',
|
|
13314
|
+
_optionalChain([onToggle, 'optionalCall', _272 => _272(!selected)]);
|
|
13901
13315
|
};
|
|
13902
13316
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13903
13317
|
"div",
|
|
@@ -13944,7 +13358,7 @@ function FilterListItem({
|
|
|
13944
13358
|
CheckboxPrimitive4.Root,
|
|
13945
13359
|
{
|
|
13946
13360
|
checked: selected,
|
|
13947
|
-
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall',
|
|
13361
|
+
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _273 => _273(c === true)]),
|
|
13948
13362
|
onClick: (e) => e.stopPropagation(),
|
|
13949
13363
|
disabled,
|
|
13950
13364
|
"aria-label": title,
|
|
@@ -14012,7 +13426,7 @@ function TagSearchInput({
|
|
|
14012
13426
|
limitTags = "auto"
|
|
14013
13427
|
}) {
|
|
14014
13428
|
const currentPlaceholder = tags.length === 0 ? placeholder : addMorePlaceholder;
|
|
14015
|
-
const { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef } =
|
|
13429
|
+
const { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef } = _chunkA6P6DHEZcjs.useAutoLimitTags.call(void 0, {
|
|
14016
13430
|
count: tags.length,
|
|
14017
13431
|
limitTags,
|
|
14018
13432
|
placeholder: currentPlaceholder
|
|
@@ -14025,7 +13439,7 @@ function TagSearchInput({
|
|
|
14025
13439
|
if (!showHiddenTags) return void 0;
|
|
14026
13440
|
const handleClick = (e) => {
|
|
14027
13441
|
const target = e.target;
|
|
14028
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
13442
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _274 => _274.current, 'optionalAccess', _275 => _275.contains, 'call', _276 => _276(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _277 => _277.current, 'optionalAccess', _278 => _278.contains, 'call', _279 => _279(target)])) {
|
|
14029
13443
|
setShowHiddenTags(false);
|
|
14030
13444
|
}
|
|
14031
13445
|
};
|
|
@@ -14036,7 +13450,7 @@ function TagSearchInput({
|
|
|
14036
13450
|
const popup = hiddenTagsPopupRef.current;
|
|
14037
13451
|
const badge = badgeRef.current;
|
|
14038
13452
|
if (!popup || !badge) return;
|
|
14039
|
-
const originLeft = _nullishCoalesce(_optionalChain([wrapperRef, 'access',
|
|
13453
|
+
const originLeft = _nullishCoalesce(_optionalChain([wrapperRef, 'access', _280 => _280.current, 'optionalAccess', _281 => _281.getBoundingClientRect, 'call', _282 => _282(), 'access', _283 => _283.left]), () => ( 0));
|
|
14040
13454
|
popup.style.left = `${badge.getBoundingClientRect().left - originLeft}px`;
|
|
14041
13455
|
});
|
|
14042
13456
|
const hiddenCount = tags.length - visibleCount;
|
|
@@ -14048,13 +13462,13 @@ function TagSearchInput({
|
|
|
14048
13462
|
e.preventDefault();
|
|
14049
13463
|
onSubmit(searchValue);
|
|
14050
13464
|
}
|
|
14051
|
-
_optionalChain([onKeyDown, 'optionalCall',
|
|
13465
|
+
_optionalChain([onKeyDown, 'optionalCall', _284 => _284(e)]);
|
|
14052
13466
|
};
|
|
14053
13467
|
const handleClearAll = (e) => {
|
|
14054
13468
|
e.stopPropagation();
|
|
14055
13469
|
e.preventDefault();
|
|
14056
|
-
_optionalChain([onClearAll, 'optionalCall',
|
|
14057
|
-
_optionalChain([inputRef, 'access',
|
|
13470
|
+
_optionalChain([onClearAll, 'optionalCall', _285 => _285()]);
|
|
13471
|
+
_optionalChain([inputRef, 'access', _286 => _286.current, 'optionalAccess', _287 => _287.focus, 'call', _288 => _288()]);
|
|
14058
13472
|
};
|
|
14059
13473
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
|
|
14060
13474
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -14077,7 +13491,7 @@ function TagSearchInput({
|
|
|
14077
13491
|
className
|
|
14078
13492
|
),
|
|
14079
13493
|
onClick: () => {
|
|
14080
|
-
if (!disabled) _optionalChain([inputRef, 'access',
|
|
13494
|
+
if (!disabled) _optionalChain([inputRef, 'access', _289 => _289.current, 'optionalAccess', _290 => _290.focus, 'call', _291 => _291()]);
|
|
14081
13495
|
},
|
|
14082
13496
|
children: [
|
|
14083
13497
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4GFNWALLcjs.SearchIcon, { className: "size-4 text-ods-text-secondary content-md:size-6" }) }),
|
|
@@ -14144,7 +13558,7 @@ function TagSearchInput({
|
|
|
14144
13558
|
}
|
|
14145
13559
|
),
|
|
14146
13560
|
showHiddenTags && hiddenCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14147
|
-
HiddenTagsPopup,
|
|
13561
|
+
_chunkZ5UWW3Z2cjs.HiddenTagsPopup,
|
|
14148
13562
|
{
|
|
14149
13563
|
ref: hiddenTagsPopupRef,
|
|
14150
13564
|
items: hiddenTags,
|
|
@@ -14293,7 +13707,7 @@ function MarkdownEditor({
|
|
|
14293
13707
|
try {
|
|
14294
13708
|
const mod = await Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor")));
|
|
14295
13709
|
if (cancelled) return;
|
|
14296
|
-
if (_optionalChain([mod, 'access',
|
|
13710
|
+
if (_optionalChain([mod, 'access', _292 => _292.commands, 'optionalAccess', _293 => _293.getExtraCommands])) {
|
|
14297
13711
|
setDefaultExtraCommands(mod.commands.getExtraCommands());
|
|
14298
13712
|
}
|
|
14299
13713
|
} catch (error) {
|
|
@@ -14331,7 +13745,7 @@ function MarkdownEditor({
|
|
|
14331
13745
|
const isImage = _chunkETYLOZOBcjs.fileMediaType.call(void 0, file) === "image";
|
|
14332
13746
|
const markdown = isImage ? `` : `[${file.name}](${url})`;
|
|
14333
13747
|
insertTextAtCursor(markdown);
|
|
14334
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
13748
|
+
_optionalChain([onFileUploaded, 'optionalCall', _294 => _294(url, file.name)]);
|
|
14335
13749
|
} catch (error) {
|
|
14336
13750
|
console.error("File upload failed:", error);
|
|
14337
13751
|
setUploadProgress("Upload failed. Please try again.");
|
|
@@ -14345,7 +13759,7 @@ function MarkdownEditor({
|
|
|
14345
13759
|
const handleFileInputChange = _react.useCallback.call(void 0,
|
|
14346
13760
|
(e) => {
|
|
14347
13761
|
const input = e.target;
|
|
14348
|
-
const file = _optionalChain([input, 'access',
|
|
13762
|
+
const file = _optionalChain([input, 'access', _295 => _295.files, 'optionalAccess', _296 => _296[0]]);
|
|
14349
13763
|
if (file) {
|
|
14350
13764
|
void handleFileUpload(file);
|
|
14351
13765
|
input.value = "";
|
|
@@ -14356,7 +13770,7 @@ function MarkdownEditor({
|
|
|
14356
13770
|
const handlePaste = _react.useCallback.call(void 0,
|
|
14357
13771
|
(e) => {
|
|
14358
13772
|
if (!onUploadFile) return;
|
|
14359
|
-
const items = _optionalChain([e, 'access',
|
|
13773
|
+
const items = _optionalChain([e, 'access', _297 => _297.clipboardData, 'optionalAccess', _298 => _298.items]);
|
|
14360
13774
|
if (!items) return;
|
|
14361
13775
|
for (const item of items) {
|
|
14362
13776
|
if (item.type.startsWith("image/")) {
|
|
@@ -14381,7 +13795,7 @@ function MarkdownEditor({
|
|
|
14381
13795
|
buttonProps: { "aria-label": "Upload file", title: "Upload file" },
|
|
14382
13796
|
icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-3 w-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-3 w-3" }),
|
|
14383
13797
|
execute: () => {
|
|
14384
|
-
_optionalChain([fileInputRef, 'access',
|
|
13798
|
+
_optionalChain([fileInputRef, 'access', _299 => _299.current, 'optionalAccess', _300 => _300.click, 'call', _301 => _301()]);
|
|
14385
13799
|
}
|
|
14386
13800
|
} : null;
|
|
14387
13801
|
const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
|
|
@@ -14393,7 +13807,7 @@ function MarkdownEditor({
|
|
|
14393
13807
|
const EDGE_ZONE = 60;
|
|
14394
13808
|
const MAX_SCROLL_SPEED = 15;
|
|
14395
13809
|
const findScrollParent2 = _react.useCallback.call(void 0, (el) => {
|
|
14396
|
-
let node = _optionalChain([el, 'optionalAccess',
|
|
13810
|
+
let node = _optionalChain([el, 'optionalAccess', _302 => _302.parentElement]);
|
|
14397
13811
|
while (node && node !== document.documentElement) {
|
|
14398
13812
|
const { overflowY } = window.getComputedStyle(node);
|
|
14399
13813
|
if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
|
|
@@ -14532,7 +13946,7 @@ function matchesAccept(file, accept) {
|
|
|
14532
13946
|
});
|
|
14533
13947
|
}
|
|
14534
13948
|
function dragHasFiles(e) {
|
|
14535
|
-
const types = _optionalChain([e, 'access',
|
|
13949
|
+
const types = _optionalChain([e, 'access', _303 => _303.dataTransfer, 'optionalAccess', _304 => _304.types]);
|
|
14536
13950
|
if (!types) return false;
|
|
14537
13951
|
for (let i = 0; i < types.length; i++) {
|
|
14538
13952
|
if (types[i] === "Files") return true;
|
|
@@ -14631,7 +14045,7 @@ function FileUpload({
|
|
|
14631
14045
|
e.stopPropagation();
|
|
14632
14046
|
setDragActive(false);
|
|
14633
14047
|
if (disabled) return;
|
|
14634
|
-
if (_optionalChain([e, 'access',
|
|
14048
|
+
if (_optionalChain([e, 'access', _305 => _305.dataTransfer, 'access', _306 => _306.files, 'optionalAccess', _307 => _307.length])) {
|
|
14635
14049
|
handleFiles(e.dataTransfer.files);
|
|
14636
14050
|
}
|
|
14637
14051
|
};
|
|
@@ -14659,7 +14073,7 @@ function FileUpload({
|
|
|
14659
14073
|
e.preventDefault();
|
|
14660
14074
|
dragCounter = 0;
|
|
14661
14075
|
setDragActive(false);
|
|
14662
|
-
if (_optionalChain([e, 'access',
|
|
14076
|
+
if (_optionalChain([e, 'access', _308 => _308.dataTransfer, 'optionalAccess', _309 => _309.files, 'optionalAccess', _310 => _310.length])) {
|
|
14663
14077
|
handleFilesRef.current(e.dataTransfer.files);
|
|
14664
14078
|
}
|
|
14665
14079
|
};
|
|
@@ -14681,7 +14095,7 @@ function FileUpload({
|
|
|
14681
14095
|
};
|
|
14682
14096
|
}, [acceptWindowDrops, disabled]);
|
|
14683
14097
|
const handleFileSelect = (e) => {
|
|
14684
|
-
if (_optionalChain([e, 'access',
|
|
14098
|
+
if (_optionalChain([e, 'access', _311 => _311.target, 'access', _312 => _312.files, 'optionalAccess', _313 => _313.length])) {
|
|
14685
14099
|
handleFiles(e.target.files);
|
|
14686
14100
|
}
|
|
14687
14101
|
};
|
|
@@ -14699,7 +14113,7 @@ function FileUpload({
|
|
|
14699
14113
|
const openDialog = async () => {
|
|
14700
14114
|
if (disabled) return;
|
|
14701
14115
|
if (!pickFiles) {
|
|
14702
|
-
_optionalChain([fileInputRef, 'access',
|
|
14116
|
+
_optionalChain([fileInputRef, 'access', _314 => _314.current, 'optionalAccess', _315 => _315.click, 'call', _316 => _316()]);
|
|
14703
14117
|
return;
|
|
14704
14118
|
}
|
|
14705
14119
|
try {
|
|
@@ -14772,7 +14186,7 @@ function FileUpload({
|
|
|
14772
14186
|
"button",
|
|
14773
14187
|
{
|
|
14774
14188
|
type: "button",
|
|
14775
|
-
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall',
|
|
14189
|
+
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _317 => _317(entry.id)]),
|
|
14776
14190
|
className: "shrink-0 text-ods-error transition-opacity hover:opacity-80",
|
|
14777
14191
|
"aria-label": `Remove ${entry.fileName}`,
|
|
14778
14192
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrashIcon, { className: "size-6" })
|
|
@@ -14904,7 +14318,7 @@ function ImageUploader({
|
|
|
14904
14318
|
onChange(file);
|
|
14905
14319
|
};
|
|
14906
14320
|
const handleFileSelect = (e) => {
|
|
14907
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
14321
|
+
validateAndEmit(_optionalChain([e, 'access', _318 => _318.target, 'access', _319 => _319.files, 'optionalAccess', _320 => _320[0]]));
|
|
14908
14322
|
if (inputRef.current) inputRef.current.value = "";
|
|
14909
14323
|
};
|
|
14910
14324
|
const handleDrag = (e) => {
|
|
@@ -14919,11 +14333,11 @@ function ImageUploader({
|
|
|
14919
14333
|
e.stopPropagation();
|
|
14920
14334
|
setDragActive(false);
|
|
14921
14335
|
if (!interactive) return;
|
|
14922
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
14336
|
+
validateAndEmit(_optionalChain([e, 'access', _321 => _321.dataTransfer, 'access', _322 => _322.files, 'optionalAccess', _323 => _323[0]]));
|
|
14923
14337
|
};
|
|
14924
14338
|
const openDialog = () => {
|
|
14925
14339
|
if (!interactive) return;
|
|
14926
|
-
_optionalChain([inputRef, 'access',
|
|
14340
|
+
_optionalChain([inputRef, 'access', _324 => _324.current, 'optionalAccess', _325 => _325.click, 'call', _326 => _326()]);
|
|
14927
14341
|
};
|
|
14928
14342
|
const handleRootKeyDown = (e) => {
|
|
14929
14343
|
if (hasImage || !interactive) return;
|
|
@@ -15043,12 +14457,12 @@ var _reactcolorful = require('react-colorful');
|
|
|
15043
14457
|
|
|
15044
14458
|
|
|
15045
14459
|
|
|
15046
|
-
var Popover2 =
|
|
15047
|
-
var PopoverTrigger =
|
|
14460
|
+
var Popover2 = PopoverPrimitive5.Root;
|
|
14461
|
+
var PopoverTrigger = PopoverPrimitive5.Trigger;
|
|
15048
14462
|
var PopoverContent = _react.forwardRef.call(void 0, ({ className, align = "center", sideOffset = 4, collisionPadding, ...props }, ref) => {
|
|
15049
|
-
const keyboardPadding =
|
|
15050
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15051
|
-
|
|
14463
|
+
const keyboardPadding = _chunkA6P6DHEZcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
14464
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive5.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14465
|
+
PopoverPrimitive5.Content,
|
|
15052
14466
|
{
|
|
15053
14467
|
ref,
|
|
15054
14468
|
align,
|
|
@@ -15062,7 +14476,7 @@ var PopoverContent = _react.forwardRef.call(void 0, ({ className, align = "cente
|
|
|
15062
14476
|
}
|
|
15063
14477
|
) });
|
|
15064
14478
|
});
|
|
15065
|
-
PopoverContent.displayName =
|
|
14479
|
+
PopoverContent.displayName = PopoverPrimitive5.Content.displayName;
|
|
15066
14480
|
|
|
15067
14481
|
// src/components/ui/color-preset-select.tsx
|
|
15068
14482
|
|
|
@@ -15095,8 +14509,8 @@ function ColorPresetSelect({
|
|
|
15095
14509
|
}) {
|
|
15096
14510
|
const selectedPreset = presets.find((p) => p.key === presetKey);
|
|
15097
14511
|
const isCustom = !selectedPreset;
|
|
15098
|
-
const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess',
|
|
15099
|
-
const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess',
|
|
14512
|
+
const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _327 => _327.label]), () => ( "Custom"));
|
|
14513
|
+
const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _328 => _328.color]), () => ( value));
|
|
15100
14514
|
const groups = [
|
|
15101
14515
|
{
|
|
15102
14516
|
items: [
|
|
@@ -15392,7 +14806,7 @@ function TicketStatusConfigRow({
|
|
|
15392
14806
|
{
|
|
15393
14807
|
id: nameInputId,
|
|
15394
14808
|
value: name,
|
|
15395
|
-
onChange: (e) => _optionalChain([onNameChange, 'optionalCall',
|
|
14809
|
+
onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _329 => _329(e.target.value)]),
|
|
15396
14810
|
disabled: isSystem,
|
|
15397
14811
|
readOnly: isSystem,
|
|
15398
14812
|
maxLength: 50
|
|
@@ -15524,7 +14938,7 @@ function TestResultsTable({ rows, loading }) {
|
|
|
15524
14938
|
] }) }) });
|
|
15525
14939
|
}
|
|
15526
14940
|
function TestRunErrorBanner({ error, className }) {
|
|
15527
|
-
const { copy } =
|
|
14941
|
+
const { copy } = _chunkZXCZYMN4cjs.useCopyToClipboard.call(void 0, { successDescription: "Error message copied to clipboard" });
|
|
15528
14942
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
15529
14943
|
"div",
|
|
15530
14944
|
{
|
|
@@ -15934,14 +15348,14 @@ function TicketInfoSection({
|
|
|
15934
15348
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15935
15349
|
_chunkF5BPGWGTcjs.SquareAvatar,
|
|
15936
15350
|
{
|
|
15937
|
-
src: _optionalChain([organization, 'optionalAccess',
|
|
15938
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
15939
|
-
fallback: _optionalChain([organization, 'optionalAccess',
|
|
15351
|
+
src: _optionalChain([organization, 'optionalAccess', _330 => _330.imageSrc]),
|
|
15352
|
+
alt: _optionalChain([organization, 'optionalAccess', _331 => _331.name]),
|
|
15353
|
+
fallback: _optionalChain([organization, 'optionalAccess', _332 => _332.name]) || "Org",
|
|
15940
15354
|
size: "md",
|
|
15941
15355
|
className: "shrink-0"
|
|
15942
15356
|
}
|
|
15943
15357
|
),
|
|
15944
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([organization, 'optionalAccess',
|
|
15358
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([organization, 'optionalAccess', _333 => _333.name]) || "Unassigned", label: "Organization" })
|
|
15945
15359
|
] }),
|
|
15946
15360
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15947
15361
|
AssigneeDropdown,
|
|
@@ -15959,7 +15373,7 @@ function TicketInfoSection({
|
|
|
15959
15373
|
] }),
|
|
15960
15374
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block truncate text-ods-text-secondary text-h6", children: "Assigned" })
|
|
15961
15375
|
] }) }),
|
|
15962
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess',
|
|
15376
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _334 => _334.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _335 => _335.icon]), onClick: _optionalChain([device, 'optionalAccess', _336 => _336.onClick]) }),
|
|
15963
15377
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
15964
15378
|
(status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15965
15379
|
_chunkKT3U3ZRPcjs.TicketStatusTag,
|
|
@@ -16027,7 +15441,7 @@ function renderTicketStatusOption(option, isSelected) {
|
|
|
16027
15441
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-[var(--spacing-system-xs)]", children: [
|
|
16028
15442
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16029
15443
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKT3U3ZRPcjs.ColorSwatch, { color }),
|
|
16030
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15444
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { className: "text-inherit", children: label }) })
|
|
16031
15445
|
] }),
|
|
16032
15446
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
16033
15447
|
] });
|
|
@@ -16037,7 +15451,7 @@ function renderTicketAssigneeOption(option, isSelected) {
|
|
|
16037
15451
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-[var(--spacing-system-xs)]", children: [
|
|
16038
15452
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16039
15453
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF5BPGWGTcjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "round" }),
|
|
16040
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15454
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { className: "text-inherit", children: label }) })
|
|
16041
15455
|
] }),
|
|
16042
15456
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
16043
15457
|
] });
|
|
@@ -16064,7 +15478,7 @@ function TakeOverTicketModal({
|
|
|
16064
15478
|
setAssigneeId(_nullishCoalesce(initialAssigneeId, () => ( null)));
|
|
16065
15479
|
}
|
|
16066
15480
|
}
|
|
16067
|
-
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access',
|
|
15481
|
+
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _337 => _337[0], 'optionalAccess', _338 => _338.value]))), () => ( null));
|
|
16068
15482
|
const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
|
|
16069
15483
|
const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
|
|
16070
15484
|
const handleConfirm = () => {
|
|
@@ -16081,7 +15495,7 @@ function TakeOverTicketModal({
|
|
|
16081
15495
|
] }),
|
|
16082
15496
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-l)] md:flex-row", children: [
|
|
16083
15497
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16084
|
-
Autocomplete,
|
|
15498
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
16085
15499
|
{
|
|
16086
15500
|
label: "Status",
|
|
16087
15501
|
options: statusOptions,
|
|
@@ -16093,7 +15507,7 @@ function TakeOverTicketModal({
|
|
|
16093
15507
|
}
|
|
16094
15508
|
) }),
|
|
16095
15509
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16096
|
-
Autocomplete,
|
|
15510
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
16097
15511
|
{
|
|
16098
15512
|
label: "Assigned",
|
|
16099
15513
|
options: assigneeOptions,
|
|
@@ -16162,7 +15576,7 @@ function ReopenTicketModal({
|
|
|
16162
15576
|
setReason("");
|
|
16163
15577
|
}
|
|
16164
15578
|
}
|
|
16165
|
-
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access',
|
|
15579
|
+
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _339 => _339[0], 'optionalAccess', _340 => _340.value]))), () => ( null));
|
|
16166
15580
|
const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
|
|
16167
15581
|
const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
|
|
16168
15582
|
const handleConfirm = () => {
|
|
@@ -16184,7 +15598,7 @@ function ReopenTicketModal({
|
|
|
16184
15598
|
] }),
|
|
16185
15599
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-l)] md:flex-row", children: [
|
|
16186
15600
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16187
|
-
Autocomplete,
|
|
15601
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
16188
15602
|
{
|
|
16189
15603
|
label: "Status",
|
|
16190
15604
|
options: statusOptions,
|
|
@@ -16196,7 +15610,7 @@ function ReopenTicketModal({
|
|
|
16196
15610
|
}
|
|
16197
15611
|
) }),
|
|
16198
15612
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16199
|
-
Autocomplete,
|
|
15613
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
16200
15614
|
{
|
|
16201
15615
|
label: "Assigned",
|
|
16202
15616
|
options: assigneeOptions,
|
|
@@ -16396,7 +15810,7 @@ function usePhotoOrientations(urls) {
|
|
|
16396
15810
|
}
|
|
16397
15811
|
};
|
|
16398
15812
|
}, [key]);
|
|
16399
|
-
return _optionalChain([measured, 'optionalAccess',
|
|
15813
|
+
return _optionalChain([measured, 'optionalAccess', _341 => _341.key]) === key ? measured.byUrl : null;
|
|
16400
15814
|
}
|
|
16401
15815
|
function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, loading = false }) {
|
|
16402
15816
|
const rootRef = _react.useRef.call(void 0, null);
|
|
@@ -16405,7 +15819,7 @@ function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, load
|
|
|
16405
15819
|
const root = rootRef.current;
|
|
16406
15820
|
if (!root) return void 0;
|
|
16407
15821
|
const read = () => setBox(
|
|
16408
|
-
(previous) => _optionalChain([previous, 'optionalAccess',
|
|
15822
|
+
(previous) => _optionalChain([previous, 'optionalAccess', _342 => _342.width]) === root.clientWidth && previous.height === root.clientHeight ? previous : { width: root.clientWidth, height: root.clientHeight }
|
|
16409
15823
|
);
|
|
16410
15824
|
read();
|
|
16411
15825
|
if (typeof ResizeObserver === "undefined") return void 0;
|
|
@@ -16442,7 +15856,7 @@ function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, load
|
|
|
16442
15856
|
if (images.length === 0 && !loading) return null;
|
|
16443
15857
|
const columnsToDraw = loading ? null : layout;
|
|
16444
15858
|
const gridStyle = {
|
|
16445
|
-
gridTemplateColumns: `repeat(${_optionalChain([columnsToDraw, 'optionalAccess',
|
|
15859
|
+
gridTemplateColumns: `repeat(${_optionalChain([columnsToDraw, 'optionalAccess', _343 => _343.length]) || columns}, minmax(0, 1fr))`,
|
|
16446
15860
|
gap: COLUMN_GAP_PX
|
|
16447
15861
|
};
|
|
16448
15862
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootRef, "aria-hidden": "true", className: _chunk3ATAYP36cjs.cn.call(void 0, "grid overflow-hidden", className), style: gridStyle, children: columnsToDraw ? columnsToDraw.map((column, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16741,7 +16155,7 @@ function SnapCarousel({
|
|
|
16741
16155
|
const auto = _chunkGQ7JJUITcjs.useAutoplay.call(void 0, inView);
|
|
16742
16156
|
const count = items.length;
|
|
16743
16157
|
const slideStep = _react.useCallback.call(void 0, () => {
|
|
16744
|
-
const first = _optionalChain([trackRef, 'access',
|
|
16158
|
+
const first = _optionalChain([trackRef, 'access', _344 => _344.current, 'optionalAccess', _345 => _345.firstElementChild]);
|
|
16745
16159
|
return first ? first.offsetWidth + GAP_PX : 0;
|
|
16746
16160
|
}, []);
|
|
16747
16161
|
const goTo = _react.useCallback.call(void 0,
|
|
@@ -17148,10 +16562,10 @@ function AccountDetailsFields({
|
|
|
17148
16562
|
onKeyDown,
|
|
17149
16563
|
layout = "stacked"
|
|
17150
16564
|
}) {
|
|
17151
|
-
const firstNameErr =
|
|
17152
|
-
const lastNameErr =
|
|
17153
|
-
const passwordErr =
|
|
17154
|
-
const confirmErr =
|
|
16565
|
+
const firstNameErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _346 => _346.firstName]), firstName);
|
|
16566
|
+
const lastNameErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _347 => _347.lastName]), lastName);
|
|
16567
|
+
const passwordErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _348 => _348.password]), password);
|
|
16568
|
+
const confirmErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _349 => _349.confirmPassword]), confirmPassword);
|
|
17155
16569
|
const names = [
|
|
17156
16570
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17157
16571
|
_chunkXXBLN4BPcjs.Input,
|
|
@@ -17409,7 +16823,7 @@ function SsoProviderButtons({
|
|
|
17409
16823
|
disabled: disabled || (enabledProviders ? !enabledProviders.includes(provider) : false),
|
|
17410
16824
|
className: "disabled:bg-ods-bg",
|
|
17411
16825
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "h-5 w-5" }),
|
|
17412
|
-
onClick: () => _optionalChain([onSsoClick, 'optionalCall',
|
|
16826
|
+
onClick: () => _optionalChain([onSsoClick, 'optionalCall', _350 => _350(provider)]),
|
|
17413
16827
|
children: `${actionLabel} ${meta.name}`
|
|
17414
16828
|
},
|
|
17415
16829
|
provider
|
|
@@ -17591,9 +17005,9 @@ function CreateOrganizationForm({
|
|
|
17591
17005
|
}) {
|
|
17592
17006
|
const hasSso = !!ssoProviders && ssoProviders.length > 0;
|
|
17593
17007
|
const fieldsDisabled = disabled || loading;
|
|
17594
|
-
const emailErr =
|
|
17595
|
-
const orgNameErr =
|
|
17596
|
-
const domainErr =
|
|
17008
|
+
const emailErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _351 => _351.email]), _nullishCoalesce(email, () => ( "")));
|
|
17009
|
+
const orgNameErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _352 => _352.organizationName]), organizationName);
|
|
17010
|
+
const domainErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _353 => _353.domain]), domain);
|
|
17597
17011
|
const handleKeyDown = (event) => {
|
|
17598
17012
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
17599
17013
|
onSubmit();
|
|
@@ -17618,11 +17032,11 @@ function CreateOrganizationForm({
|
|
|
17618
17032
|
label: "Email",
|
|
17619
17033
|
placeholder: "username@mail.com",
|
|
17620
17034
|
value: email,
|
|
17621
|
-
error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess',
|
|
17622
|
-
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess',
|
|
17035
|
+
error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _354 => _354.message]))),
|
|
17036
|
+
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _355 => _355.variant]),
|
|
17623
17037
|
disabled: fieldsDisabled,
|
|
17624
17038
|
onBlur: emailErr.onBlur,
|
|
17625
|
-
onChange: (event) => _optionalChain([onEmailChange, 'optionalCall',
|
|
17039
|
+
onChange: (event) => _optionalChain([onEmailChange, 'optionalCall', _356 => _356(event.target.value)]),
|
|
17626
17040
|
onKeyDown: handleKeyDown
|
|
17627
17041
|
}
|
|
17628
17042
|
),
|
|
@@ -17646,8 +17060,8 @@ function CreateOrganizationForm({
|
|
|
17646
17060
|
label: "Domain",
|
|
17647
17061
|
placeholder: domainPlaceholder,
|
|
17648
17062
|
value: domain,
|
|
17649
|
-
error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess',
|
|
17650
|
-
errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess',
|
|
17063
|
+
error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _357 => _357.message]))),
|
|
17064
|
+
errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _358 => _358.variant]),
|
|
17651
17065
|
disabled: fieldsDisabled,
|
|
17652
17066
|
onBlur: domainErr.onBlur,
|
|
17653
17067
|
endAdornment: domainSuffix ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: domainSuffix }) : void 0,
|
|
@@ -17682,7 +17096,7 @@ function CreateOrganizationForm({
|
|
|
17682
17096
|
label: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TermsAgreementLabel, { termsUrl, privacyPolicyUrl }),
|
|
17683
17097
|
checked: agreedToTerms,
|
|
17684
17098
|
disabled: fieldsDisabled,
|
|
17685
|
-
error: _optionalChain([errors, 'optionalAccess',
|
|
17099
|
+
error: _optionalChain([errors, 'optionalAccess', _359 => _359.terms]),
|
|
17686
17100
|
onCheckedChange: onAgreedToTermsChange
|
|
17687
17101
|
}
|
|
17688
17102
|
),
|
|
@@ -17809,10 +17223,10 @@ function LoginForm({
|
|
|
17809
17223
|
className
|
|
17810
17224
|
}) {
|
|
17811
17225
|
const fieldDisabled = disabled || loading;
|
|
17812
|
-
const emailErr =
|
|
17226
|
+
const emailErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _360 => _360.email]), email);
|
|
17813
17227
|
const handleKeyDown = (event) => {
|
|
17814
17228
|
if (event.key !== "Enter" || fieldDisabled || submitDisabled) return;
|
|
17815
|
-
_optionalChain([onSubmitClick, 'optionalCall',
|
|
17229
|
+
_optionalChain([onSubmitClick, 'optionalCall', _361 => _361()]);
|
|
17816
17230
|
};
|
|
17817
17231
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17818
17232
|
"div",
|
|
@@ -17844,8 +17258,8 @@ function LoginForm({
|
|
|
17844
17258
|
label: "Email",
|
|
17845
17259
|
placeholder: emailPlaceholder,
|
|
17846
17260
|
value: email,
|
|
17847
|
-
error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess',
|
|
17848
|
-
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess',
|
|
17261
|
+
error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _362 => _362.message]))),
|
|
17262
|
+
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _363 => _363.variant]),
|
|
17849
17263
|
disabled: fieldDisabled,
|
|
17850
17264
|
onBlur: emailErr.onBlur,
|
|
17851
17265
|
onChange: (event) => onEmailChange(event.target.value),
|
|
@@ -17951,8 +17365,8 @@ function OpenFrameSsoLoginForm({
|
|
|
17951
17365
|
className
|
|
17952
17366
|
}) {
|
|
17953
17367
|
const fieldsDisabled = disabled || loading;
|
|
17954
|
-
const emailErr =
|
|
17955
|
-
const passwordErr =
|
|
17368
|
+
const emailErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _364 => _364.email]), email);
|
|
17369
|
+
const passwordErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _365 => _365.password]), password);
|
|
17956
17370
|
const handleKeyDown = (event) => {
|
|
17957
17371
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
17958
17372
|
onSubmit();
|
|
@@ -18057,7 +17471,7 @@ function OpenFrameSsoSignUpForm({
|
|
|
18057
17471
|
className
|
|
18058
17472
|
}) {
|
|
18059
17473
|
const fieldsDisabled = disabled || loading;
|
|
18060
|
-
const emailErr =
|
|
17474
|
+
const emailErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _366 => _366.email]), email);
|
|
18061
17475
|
const handleKeyDown = (event) => {
|
|
18062
17476
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18063
17477
|
onSubmit();
|
|
@@ -18162,8 +17576,8 @@ function PasswordResetForm({
|
|
|
18162
17576
|
className
|
|
18163
17577
|
}) {
|
|
18164
17578
|
const fieldsDisabled = disabled || loading;
|
|
18165
|
-
const passwordErr =
|
|
18166
|
-
const confirmErr =
|
|
17579
|
+
const passwordErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _367 => _367.password]), password);
|
|
17580
|
+
const confirmErr = _chunkZXCZYMN4cjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _368 => _368.confirmPassword]), confirmPassword);
|
|
18167
17581
|
const handleKeyDown = (event) => {
|
|
18168
17582
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18169
17583
|
onSubmit();
|
|
@@ -18285,7 +17699,7 @@ function SsoJoinForm({
|
|
|
18285
17699
|
className
|
|
18286
17700
|
}) {
|
|
18287
17701
|
const fieldsDisabled = disabled || loading;
|
|
18288
|
-
const displayName = _optionalChain([name, 'optionalAccess',
|
|
17702
|
+
const displayName = _optionalChain([name, 'optionalAccess', _369 => _369.trim, 'call', _370 => _370()]) || _optionalChain([email, 'optionalAccess', _371 => _371.trim, 'call', _372 => _372()]) || "";
|
|
18289
17703
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18290
17704
|
"div",
|
|
18291
17705
|
{
|
|
@@ -18468,7 +17882,7 @@ function ChangelogManager({
|
|
|
18468
17882
|
descriptionLabel = "Description",
|
|
18469
17883
|
descriptionPlaceholder = "Detailed explanation of the change..."
|
|
18470
17884
|
}) {
|
|
18471
|
-
const tagLabelOf = (value) => _optionalChain([tagOptions, 'optionalAccess',
|
|
17885
|
+
const tagLabelOf = (value) => _optionalChain([tagOptions, 'optionalAccess', _373 => _373.find, 'call', _374 => _374((o) => o.value === value), 'optionalAccess', _375 => _375.label]);
|
|
18472
17886
|
const entryCount = entries.length;
|
|
18473
17887
|
const allExpanded = () => new Set(Array.from({ length: entryCount }, (_, i) => i));
|
|
18474
17888
|
const [expandedIndices, setExpandedIndices] = _react.useState.call(void 0,
|
|
@@ -18486,7 +17900,7 @@ function ChangelogManager({
|
|
|
18486
17900
|
title: "",
|
|
18487
17901
|
description: "",
|
|
18488
17902
|
...showVisibilityToggle && { visibility: "public" },
|
|
18489
|
-
..._optionalChain([tagOptions, 'optionalAccess',
|
|
17903
|
+
..._optionalChain([tagOptions, 'optionalAccess', _376 => _376.length]) && { tag: tagOptions[0].value }
|
|
18490
17904
|
};
|
|
18491
17905
|
onChange([...entries, newEntry]);
|
|
18492
17906
|
setExpandedIndices((prev) => /* @__PURE__ */ new Set([...prev, entries.length]));
|
|
@@ -18622,9 +18036,9 @@ function ChangelogManager({
|
|
|
18622
18036
|
] }),
|
|
18623
18037
|
tagOptions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
|
|
18624
18038
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.Label, { className: "text-ods-text-secondary", children: tagLabel }),
|
|
18625
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18626
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18627
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18039
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: _nullishCoalesce(entry.tag, () => ( "")), onValueChange: (value) => updateEntry(index, "tag", value), children: [
|
|
18040
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: tagLabel }) }),
|
|
18041
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: tagOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
18628
18042
|
] })
|
|
18629
18043
|
] })
|
|
18630
18044
|
] })
|
|
@@ -18981,13 +18395,13 @@ var SectionSelector = ({
|
|
|
18981
18395
|
const listRef = _react.useRef.call(void 0, null);
|
|
18982
18396
|
_react.useEffect.call(void 0, () => {
|
|
18983
18397
|
const list = listRef.current;
|
|
18984
|
-
const active = _optionalChain([list, 'optionalAccess',
|
|
18398
|
+
const active = _optionalChain([list, 'optionalAccess', _377 => _377.querySelector, 'call', _378 => _378('[role="tab"][aria-selected="true"]')]);
|
|
18985
18399
|
if (!list || !active || list.scrollWidth <= list.clientWidth) return;
|
|
18986
18400
|
const offset = active.getBoundingClientRect().left - list.getBoundingClientRect().left;
|
|
18987
18401
|
list.scrollLeft += offset - (list.clientWidth - active.clientWidth) / 2;
|
|
18988
18402
|
}, [activeSection]);
|
|
18989
18403
|
const enabled = sections.filter((section) => !section.disabled && !disabled);
|
|
18990
|
-
const tabStopId = enabled.some((section) => section.id === activeSection) ? activeSection : _optionalChain([enabled, 'access',
|
|
18404
|
+
const tabStopId = enabled.some((section) => section.id === activeSection) ? activeSection : _optionalChain([enabled, 'access', _379 => _379[0], 'optionalAccess', _380 => _380.id]);
|
|
18991
18405
|
const onKeyDown = (event) => {
|
|
18992
18406
|
const step = event.key === "ArrowRight" || event.key === "ArrowDown" ? 1 : event.key === "ArrowLeft" || event.key === "ArrowUp" ? -1 : 0;
|
|
18993
18407
|
if (!step && event.key !== "Home" && event.key !== "End") return;
|
|
@@ -19000,7 +18414,7 @@ var SectionSelector = ({
|
|
|
19000
18414
|
const next = event.key === "Home" ? enabled[0] : event.key === "End" ? enabled[enabled.length - 1] : enabled[(at + step + enabled.length) % enabled.length];
|
|
19001
18415
|
onSectionChange(next.id);
|
|
19002
18416
|
requestAnimationFrame(
|
|
19003
|
-
() => _optionalChain([listRef, 'access',
|
|
18417
|
+
() => _optionalChain([listRef, 'access', _381 => _381.current, 'optionalAccess', _382 => _382.querySelector, 'call', _383 => _383('[role="tab"][aria-selected="true"]'), 'optionalAccess', _384 => _384.focus, 'call', _385 => _385()])
|
|
19004
18418
|
);
|
|
19005
18419
|
};
|
|
19006
18420
|
const getButtonWidthClasses = () => {
|
|
@@ -19043,10 +18457,10 @@ var getContentDimensions = (config) => {
|
|
|
19043
18457
|
const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
|
|
19044
18458
|
const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
|
|
19045
18459
|
const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
|
|
19046
|
-
const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess',
|
|
19047
|
-
const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess',
|
|
19048
|
-
const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess',
|
|
19049
|
-
const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess',
|
|
18460
|
+
const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _386 => _386.mobileContentDimensions, 'optionalAccess', _387 => _387.width]))), () => ( defaultMobile.width));
|
|
18461
|
+
const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _388 => _388.mobileContentDimensions, 'optionalAccess', _389 => _389.height]))), () => ( defaultMobile.height));
|
|
18462
|
+
const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _390 => _390.desktopContentDimensions, 'optionalAccess', _391 => _391.width]))), () => ( defaultDesktop.width));
|
|
18463
|
+
const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _392 => _392.desktopContentDimensions, 'optionalAccess', _393 => _393.height]))), () => ( defaultDesktop.height));
|
|
19050
18464
|
return {
|
|
19051
18465
|
mobile: { width: mobileWidth, height: mobileHeight },
|
|
19052
18466
|
desktop: { width: desktopWidth, height: desktopHeight }
|
|
@@ -19205,7 +18619,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19205
18619
|
const contentDimensions = getContentDimensions(config);
|
|
19206
18620
|
const mobileHeight = contentDimensions.mobile.height;
|
|
19207
18621
|
const calculatedHeight = Math.max(mobileHeight + 100, 400);
|
|
19208
|
-
return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess',
|
|
18622
|
+
return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _394 => _394.innerHeight]) * 0.85 || 650)}px`;
|
|
19209
18623
|
})(),
|
|
19210
18624
|
minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
|
|
19211
18625
|
const contentDimensions = getContentDimensions(config);
|
|
@@ -19308,7 +18722,7 @@ var FigmaPrototypeViewer = ({
|
|
|
19308
18722
|
const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
|
|
19309
18723
|
const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
|
|
19310
18724
|
const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
|
|
19311
|
-
config.defaultSectionId || _optionalChain([config, 'access',
|
|
18725
|
+
config.defaultSectionId || _optionalChain([config, 'access', _395 => _395.sections, 'access', _396 => _396[0], 'optionalAccess', _397 => _397.id]) || ""
|
|
19312
18726
|
);
|
|
19313
18727
|
const activeSection = externalActiveSection || internalActiveSection;
|
|
19314
18728
|
const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
|
|
@@ -19406,19 +18820,19 @@ var FigmaPrototypeViewer = ({
|
|
|
19406
18820
|
setIframeState("READY");
|
|
19407
18821
|
break;
|
|
19408
18822
|
case "PRESENTED_NODE_CHANGED":
|
|
19409
|
-
if (_optionalChain([figmaEvent, 'access',
|
|
18823
|
+
if (_optionalChain([figmaEvent, 'access', _398 => _398.data, 'optionalAccess', _399 => _399.presentedNodeId])) {
|
|
19410
18824
|
setCurrentNodeId(figmaEvent.data.presentedNodeId);
|
|
19411
18825
|
if (!isNavigating) {
|
|
19412
18826
|
const matchingSection = configSections.find((s) => {
|
|
19413
|
-
const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access',
|
|
19414
|
-
const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access',
|
|
18827
|
+
const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _400 => _400.data, 'optionalAccess', _401 => _401.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _402 => _402.data, 'optionalAccess', _403 => _403.presentedNodeId]);
|
|
18828
|
+
const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _404 => _404.data, 'optionalAccess', _405 => _405.presentedNodeId]) || _optionalChain([s, 'access', _406 => _406.mobileStartingNodeId, 'optionalAccess', _407 => _407.replace, 'call', _408 => _408(":", "-")]) === _optionalChain([figmaEvent, 'access', _409 => _409.data, 'optionalAccess', _410 => _410.presentedNodeId]);
|
|
19415
18829
|
return desktopMatch || mobileMatch;
|
|
19416
18830
|
});
|
|
19417
18831
|
if (matchingSection && matchingSection.id !== activeSection) {
|
|
19418
18832
|
if (!externalActiveSection) {
|
|
19419
18833
|
setInternalActiveSection(matchingSection.id);
|
|
19420
18834
|
}
|
|
19421
|
-
_optionalChain([onSectionChange, 'optionalCall',
|
|
18835
|
+
_optionalChain([onSectionChange, 'optionalCall', _411 => _411(matchingSection.id)]);
|
|
19422
18836
|
}
|
|
19423
18837
|
}
|
|
19424
18838
|
}
|
|
@@ -19432,7 +18846,7 @@ var FigmaPrototypeViewer = ({
|
|
|
19432
18846
|
const navigateToSection = _react.useCallback.call(void 0,
|
|
19433
18847
|
(sectionId) => {
|
|
19434
18848
|
const section = config.sections.find((s) => s.id === sectionId);
|
|
19435
|
-
if (!section || !_optionalChain([iframeRef, 'access',
|
|
18849
|
+
if (!section || !_optionalChain([iframeRef, 'access', _412 => _412.current, 'optionalAccess', _413 => _413.contentWindow]) || !isInitialized) {
|
|
19436
18850
|
return;
|
|
19437
18851
|
}
|
|
19438
18852
|
setIsNavigating(true);
|
|
@@ -19440,7 +18854,7 @@ var FigmaPrototypeViewer = ({
|
|
|
19440
18854
|
if (!externalActiveSection) {
|
|
19441
18855
|
setInternalActiveSection(sectionId);
|
|
19442
18856
|
}
|
|
19443
|
-
_optionalChain([config, 'access',
|
|
18857
|
+
_optionalChain([config, 'access', _414 => _414.onSectionChange, 'optionalCall', _415 => _415(sectionId)]);
|
|
19444
18858
|
const command = {
|
|
19445
18859
|
type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
|
|
19446
18860
|
data: { nodeId }
|
|
@@ -19779,7 +19193,7 @@ var FiltersDropdown = ({
|
|
|
19779
19193
|
defaults[section.id] = section.defaultSelected || [];
|
|
19780
19194
|
});
|
|
19781
19195
|
setSelectedFilters(defaults);
|
|
19782
|
-
_optionalChain([onReset, 'optionalCall',
|
|
19196
|
+
_optionalChain([onReset, 'optionalCall', _416 => _416()]);
|
|
19783
19197
|
setIsOpen(false);
|
|
19784
19198
|
};
|
|
19785
19199
|
const handleApply = () => {
|
|
@@ -20067,7 +19481,7 @@ function useMediaIntake({ existing, onUpload, onUploaded, kinds = "both" }) {
|
|
|
20067
19481
|
try {
|
|
20068
19482
|
const url = await onUpload(file, mediaType);
|
|
20069
19483
|
if (!url) throw new Error("no URL");
|
|
20070
|
-
_optionalChain([onUploaded, 'optionalCall',
|
|
19484
|
+
_optionalChain([onUploaded, 'optionalCall', _417 => _417({ file, mediaType, url })]);
|
|
20071
19485
|
} catch (error) {
|
|
20072
19486
|
console.error("Upload failed:", error);
|
|
20073
19487
|
failed.push(file.name);
|
|
@@ -20090,7 +19504,7 @@ function useMediaIntake({ existing, onUpload, onUploaded, kinds = "both" }) {
|
|
|
20090
19504
|
notice,
|
|
20091
19505
|
busy: pending.length > 0,
|
|
20092
19506
|
dropActive,
|
|
20093
|
-
open: () => _optionalChain([inputRef, 'access',
|
|
19507
|
+
open: () => _optionalChain([inputRef, 'access', _418 => _418.current, 'optionalAccess', _419 => _419.click, 'call', _420 => _420()]),
|
|
20094
19508
|
/** Spread on the element files may be dropped on (the area itself, or a whole gallery). */
|
|
20095
19509
|
dropHandlers: {
|
|
20096
19510
|
onDragOver: (event) => {
|
|
@@ -20275,17 +19689,17 @@ function MediaGalleryManager({
|
|
|
20275
19689
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
20276
19690
|
isVideoItem(item) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-5 w-5 text-ods-text-secondary" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Image, { className: "h-5 w-5 text-ods-text-secondary" }),
|
|
20277
19691
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20278
|
-
|
|
19692
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
20279
19693
|
{
|
|
20280
19694
|
value: item.media_type,
|
|
20281
19695
|
onValueChange: (value) => update(index, { media_type: value }),
|
|
20282
19696
|
children: [
|
|
20283
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20284
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20285
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20286
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20287
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20288
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19697
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "h-8 bg-ods-bg text-h6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
19698
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { className: "bg-ods-card", children: [
|
|
19699
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "image", children: "Image" }),
|
|
19700
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "video", children: "Video" }),
|
|
19701
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "screenshot", children: "Screenshot" }),
|
|
19702
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "demo", children: "Demo" })
|
|
20289
19703
|
] })
|
|
20290
19704
|
]
|
|
20291
19705
|
}
|
|
@@ -22258,9 +21672,9 @@ function PushButtonSelector({
|
|
|
22258
21672
|
}) {
|
|
22259
21673
|
const scrollRef = _react.useRef.call(void 0, null);
|
|
22260
21674
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
22261
|
-
const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess',
|
|
22262
|
-
const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess',
|
|
22263
|
-
const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess',
|
|
21675
|
+
const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _421 => _421.hasMore]), () => ( false));
|
|
21676
|
+
const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _422 => _422.isFetchingMore]), () => ( false));
|
|
21677
|
+
const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _423 => _423.onLoadMore]);
|
|
22264
21678
|
const optionCount = options.length;
|
|
22265
21679
|
_react.useEffect.call(void 0, () => {
|
|
22266
21680
|
const sentinel = sentinelRef.current;
|
|
@@ -22590,7 +22004,7 @@ function SEOEditorPreview({
|
|
|
22590
22004
|
const displayImage = hasOgImage || hasFeaturedImage;
|
|
22591
22005
|
const handleImageUpload = async (event) => {
|
|
22592
22006
|
if (!onOgImageUpload) return;
|
|
22593
|
-
const file = _optionalChain([event, 'access',
|
|
22007
|
+
const file = _optionalChain([event, 'access', _424 => _424.target, 'access', _425 => _425.files, 'optionalAccess', _426 => _426[0]]);
|
|
22594
22008
|
if (!file) return;
|
|
22595
22009
|
setIsUploading(true);
|
|
22596
22010
|
try {
|
|
@@ -22747,7 +22161,7 @@ function SEOEditorPreview({
|
|
|
22747
22161
|
type: "button",
|
|
22748
22162
|
variant: "outline",
|
|
22749
22163
|
size: "icon",
|
|
22750
|
-
onClick: () => _optionalChain([fileInputRef, 'optionalAccess',
|
|
22164
|
+
onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _427 => _427.click, 'call', _428 => _428()]),
|
|
22751
22165
|
disabled: disabled || isUploading,
|
|
22752
22166
|
className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
|
|
22753
22167
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
|
|
@@ -22773,7 +22187,7 @@ function SEOEditorPreview({
|
|
|
22773
22187
|
SEO_MEDIA_BOX_HEIGHT,
|
|
22774
22188
|
"flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
|
|
22775
22189
|
),
|
|
22776
|
-
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess',
|
|
22190
|
+
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _429 => _429.click, 'call', _430 => _430()]),
|
|
22777
22191
|
children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
22778
22192
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
|
|
22779
22193
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
@@ -22934,7 +22348,7 @@ function SocialLinksManager({
|
|
|
22934
22348
|
className = ""
|
|
22935
22349
|
}) {
|
|
22936
22350
|
const addLink = () => {
|
|
22937
|
-
const firstPlatform = _optionalChain([platforms, 'access',
|
|
22351
|
+
const firstPlatform = _optionalChain([platforms, 'access', _431 => _431[0], 'optionalAccess', _432 => _432.name]) || "website";
|
|
22938
22352
|
onChange([...links, { platform: firstPlatform, url: "" }]);
|
|
22939
22353
|
};
|
|
22940
22354
|
const removeLink = (index) => {
|
|
@@ -22946,7 +22360,7 @@ function SocialLinksManager({
|
|
|
22946
22360
|
onChange(updated);
|
|
22947
22361
|
};
|
|
22948
22362
|
const getIcon = (link, platform) => {
|
|
22949
|
-
const iconKey = _optionalChain([platform, 'optionalAccess',
|
|
22363
|
+
const iconKey = _optionalChain([platform, 'optionalAccess', _433 => _433.icon_name]) || link.platform;
|
|
22950
22364
|
const key = _chunkUWQWMGJ7cjs.normalizeSocialPlatform.call(void 0, iconKey);
|
|
22951
22365
|
if (!key) return null;
|
|
22952
22366
|
const IconComponent = SOCIAL_ICON_COMPONENTS[key];
|
|
@@ -22963,14 +22377,14 @@ function SocialLinksManager({
|
|
|
22963
22377
|
children: [
|
|
22964
22378
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-8 w-8 items-center justify-center", children: Icon }),
|
|
22965
22379
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid flex-1 grid-cols-2 gap-3", children: [
|
|
22966
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22967
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22968
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22380
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: link.platform, onValueChange: (value) => updateLink(index, "platform", value), children: [
|
|
22381
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
22382
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: platforms.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: p.name, children: p.display_name }, p.name)) })
|
|
22969
22383
|
] }) }),
|
|
22970
22384
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22971
22385
|
_chunkXXBLN4BPcjs.Input,
|
|
22972
22386
|
{
|
|
22973
|
-
placeholder: _optionalChain([platform, 'optionalAccess',
|
|
22387
|
+
placeholder: _optionalChain([platform, 'optionalAccess', _434 => _434.placeholder]) || "Profile URL",
|
|
22974
22388
|
value: link.url,
|
|
22975
22389
|
onChange: (e) => updateLink(index, "url", e.target.value),
|
|
22976
22390
|
onKeyDown: (e) => {
|
|
@@ -22983,15 +22397,15 @@ function SocialLinksManager({
|
|
|
22983
22397
|
)
|
|
22984
22398
|
] }),
|
|
22985
22399
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22986
|
-
|
|
22400
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
22987
22401
|
{
|
|
22988
22402
|
value: _nullishCoalesce(link.visibility, () => ( "external")),
|
|
22989
22403
|
onValueChange: (value) => updateLink(index, "visibility", value),
|
|
22990
22404
|
children: [
|
|
22991
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22992
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22993
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22994
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22405
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "w-[120px] shrink-0", "aria-label": "Social link visibility", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
22406
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: [
|
|
22407
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "external", children: "Public" }),
|
|
22408
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "internal", children: "Internal" })
|
|
22995
22409
|
] })
|
|
22996
22410
|
]
|
|
22997
22411
|
}
|
|
@@ -23366,8 +22780,8 @@ function VideoBitesDisplay({
|
|
|
23366
22780
|
|
|
23367
22781
|
var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
|
|
23368
22782
|
function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
|
|
23369
|
-
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
23370
|
-
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
22783
|
+
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _435 => _435.getCurrentTime, 'call', _436 => _436()]), () => ( 0));
|
|
22784
|
+
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _437 => _437.getDuration, 'call', _438 => _438()]), () => ( 0)), time);
|
|
23371
22785
|
return {
|
|
23372
22786
|
// At end -> start over, never rewind to an unrelated older anchor.
|
|
23373
22787
|
time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
|
|
@@ -23400,11 +22814,11 @@ function WalkthroughVideo({
|
|
|
23400
22814
|
const inline = placement === "inline";
|
|
23401
22815
|
const dismissEnabled = dismissal !== false;
|
|
23402
22816
|
const storageKey = dismissEnabled && dismissal.storageKey || _chunkUWQWMGJ7cjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
|
|
23403
|
-
const dismissalId = _optionalChain([video, 'optionalAccess',
|
|
22817
|
+
const dismissalId = _optionalChain([video, 'optionalAccess', _439 => _439.id]) != null ? String(video.id) : "dismissed";
|
|
23404
22818
|
const [mounted, setMounted] = _react.useState.call(void 0, false);
|
|
23405
22819
|
const [dismissed, setDismissed] = _react.useState.call(void 0, false);
|
|
23406
22820
|
const hasVideo = video != null;
|
|
23407
|
-
const videoId = _optionalChain([video, 'optionalAccess',
|
|
22821
|
+
const videoId = _optionalChain([video, 'optionalAccess', _440 => _440.id]);
|
|
23408
22822
|
_react.useEffect.call(void 0, () => {
|
|
23409
22823
|
let idleHandle = null;
|
|
23410
22824
|
if (!hasVideo) return void 0;
|
|
@@ -23431,9 +22845,9 @@ function WalkthroughVideo({
|
|
|
23431
22845
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
23432
22846
|
if (!hydrated) return false;
|
|
23433
22847
|
try {
|
|
23434
|
-
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access',
|
|
22848
|
+
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _441 => _441.matchMedia, 'optionalCall', _442 => _442("(prefers-reduced-motion: reduce)"), 'access', _443 => _443.matches]), () => ( false));
|
|
23435
22849
|
const conn = navigator.connection;
|
|
23436
|
-
const saveData = _optionalChain([conn, 'optionalAccess',
|
|
22850
|
+
const saveData = _optionalChain([conn, 'optionalAccess', _444 => _444.saveData]) === true || _optionalChain([conn, 'optionalAccess', _445 => _445.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _446 => _446.effectiveType]) === "slow-2g";
|
|
23437
22851
|
return Boolean(reducedMotion || saveData);
|
|
23438
22852
|
} catch (e15) {
|
|
23439
22853
|
return false;
|
|
@@ -23459,7 +22873,7 @@ function WalkthroughVideo({
|
|
|
23459
22873
|
const endedLatchRef = _react.useRef.call(void 0, false);
|
|
23460
22874
|
const [hovered, setHovered] = _react.useState.call(void 0, false);
|
|
23461
22875
|
const [handoff, setHandoff] = _react.useState.call(void 0,
|
|
23462
|
-
() => autoPlayCard && !_optionalChain([video, 'optionalAccess',
|
|
22876
|
+
() => autoPlayCard && !_optionalChain([video, 'optionalAccess', _447 => _447.youtubeUrl]) ? { time: 0, muted: true, playing: true } : null
|
|
23463
22877
|
);
|
|
23464
22878
|
const [suspended, setSuspended] = _react.useState.call(void 0, false);
|
|
23465
22879
|
const [theaterStart, setTheaterStart] = _react.useState.call(void 0, { time: 0, muted: false });
|
|
@@ -23468,18 +22882,18 @@ function WalkthroughVideo({
|
|
|
23468
22882
|
const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
|
|
23469
22883
|
const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
|
|
23470
22884
|
const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
|
|
23471
|
-
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess',
|
|
22885
|
+
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _448 => _448.youtubeUrl]));
|
|
23472
22886
|
const resumeMode = !open && handoff !== null && !isYouTube;
|
|
23473
22887
|
const previewAllowed = !previewSuppressed && !isYouTube;
|
|
23474
22888
|
const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
|
|
23475
|
-
const footerHidden = _optionalChain([footerObservation, 'optionalAccess',
|
|
22889
|
+
const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _449 => _449.key]) === footerFadeKey && footerObservation.hidden;
|
|
23476
22890
|
_react.useEffect.call(void 0, () => {
|
|
23477
22891
|
if (!mounted) return void 0;
|
|
23478
22892
|
if (inline) return void 0;
|
|
23479
22893
|
const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
|
|
23480
22894
|
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
23481
22895
|
const io = new IntersectionObserver(
|
|
23482
|
-
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access',
|
|
22896
|
+
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _450 => _450[0], 'optionalAccess', _451 => _451.isIntersecting]), () => ( false)) }),
|
|
23483
22897
|
{ rootMargin: "0px 0px -40px 0px" }
|
|
23484
22898
|
);
|
|
23485
22899
|
io.observe(el);
|
|
@@ -23505,7 +22919,7 @@ function WalkthroughVideo({
|
|
|
23505
22919
|
if (!footerHidden) return;
|
|
23506
22920
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
23507
22921
|
try {
|
|
23508
|
-
_optionalChain([h, 'optionalAccess',
|
|
22922
|
+
_optionalChain([h, 'optionalAccess', _452 => _452.pause, 'call', _453 => _453()]);
|
|
23509
22923
|
} catch (e17) {
|
|
23510
22924
|
}
|
|
23511
22925
|
}, [footerHidden, resumeMode, hovered]);
|
|
@@ -23524,30 +22938,30 @@ function WalkthroughVideo({
|
|
|
23524
22938
|
}, 400);
|
|
23525
22939
|
}
|
|
23526
22940
|
if (openProp === void 0) setOpenState(next);
|
|
23527
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
22941
|
+
_optionalChain([onOpenChange, 'optionalCall', _454 => _454(next)]);
|
|
23528
22942
|
},
|
|
23529
22943
|
[openProp, onOpenChange]
|
|
23530
22944
|
);
|
|
23531
22945
|
const pausePreviewNow = _react.useCallback.call(void 0, () => {
|
|
23532
22946
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
23533
22947
|
try {
|
|
23534
|
-
_optionalChain([h, 'optionalAccess',
|
|
22948
|
+
_optionalChain([h, 'optionalAccess', _455 => _455.pause, 'call', _456 => _456()]);
|
|
23535
22949
|
} catch (e18) {
|
|
23536
22950
|
}
|
|
23537
22951
|
setCardPaused(true);
|
|
23538
22952
|
}, [setCardPaused]);
|
|
23539
22953
|
const openTheater = _react.useCallback.call(void 0, () => {
|
|
23540
22954
|
const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
23541
|
-
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess',
|
|
22955
|
+
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _457 => _457.getPaused, 'call', _458 => _458()]) === false;
|
|
23542
22956
|
pausePreviewNow();
|
|
23543
22957
|
const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
|
|
23544
|
-
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
23545
|
-
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
22958
|
+
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _459 => _459.getCurrentTime, 'call', _460 => _460()]), () => ( 0));
|
|
22959
|
+
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _461 => _461.getDuration, 'call', _462 => _462()]), () => ( 0));
|
|
23546
22960
|
const liveAtEnd = isAtEnd(liveDuration, liveTime);
|
|
23547
22961
|
const start = {
|
|
23548
22962
|
// At end -> start over. Falling back to `handoff.time` here would rewind
|
|
23549
22963
|
// to an unrelated older anchor (e.g. 3:20) instead of restarting.
|
|
23550
|
-
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
22964
|
+
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _463 => _463.time]), () => ( 0)),
|
|
23551
22965
|
// Live element wins over remembered intent (the theater's own chrome may
|
|
23552
22966
|
// have changed it) — EXCEPT when the element is muted only because
|
|
23553
22967
|
// autoplay policy forced it, which is not intent.
|
|
@@ -23575,7 +22989,7 @@ function WalkthroughVideo({
|
|
|
23575
22989
|
const selfDriven = selfDrivenFor === open;
|
|
23576
22990
|
if (openProp !== void 0 && !selfDriven) {
|
|
23577
22991
|
if (open) {
|
|
23578
|
-
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
22992
|
+
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _464 => _464.time]), () => ( 0)), userMuted));
|
|
23579
22993
|
setHovered(false);
|
|
23580
22994
|
setSuspended(false);
|
|
23581
22995
|
setHandoff(null);
|
|
@@ -23661,8 +23075,8 @@ function WalkthroughVideo({
|
|
|
23661
23075
|
});
|
|
23662
23076
|
_react.useEffect.call(void 0, () => {
|
|
23663
23077
|
if (resumeMode) {
|
|
23664
|
-
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access',
|
|
23665
|
-
setCardPaused(_optionalChain([handoffRef, 'access',
|
|
23078
|
+
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _465 => _465.current, 'optionalAccess', _466 => _466.muted]), () => ( false)));
|
|
23079
|
+
setCardPaused(_optionalChain([handoffRef, 'access', _467 => _467.current, 'optionalAccess', _468 => _468.playing]) === false);
|
|
23666
23080
|
}
|
|
23667
23081
|
}, [resumeMode]);
|
|
23668
23082
|
const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
|
|
@@ -23744,11 +23158,11 @@ function WalkthroughVideo({
|
|
|
23744
23158
|
},
|
|
23745
23159
|
[cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
|
|
23746
23160
|
);
|
|
23747
|
-
const summaryTitle = _optionalChain([video, 'optionalAccess',
|
|
23748
|
-
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
23161
|
+
const summaryTitle = _optionalChain([video, 'optionalAccess', _469 => _469.title]) || void 0;
|
|
23162
|
+
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _470 => _470.presenterAvatarUrl]), () => ( null));
|
|
23749
23163
|
const embedUrlKey = _react.useMemo.call(void 0,
|
|
23750
|
-
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
23751
|
-
[_optionalChain([video, 'optionalAccess',
|
|
23164
|
+
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _471 => _471.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _472 => _472.youtubeUrl]), () => ( ""))}`,
|
|
23165
|
+
[_optionalChain([video, 'optionalAccess', _473 => _473.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _474 => _474.youtubeUrl])]
|
|
23752
23166
|
);
|
|
23753
23167
|
const cardActive = !open && previewAllowed && hovered && !resumeMode;
|
|
23754
23168
|
const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
|
|
@@ -23807,7 +23221,7 @@ function WalkthroughVideo({
|
|
|
23807
23221
|
const el = e.target;
|
|
23808
23222
|
let keyboard = false;
|
|
23809
23223
|
try {
|
|
23810
|
-
keyboard = _nullishCoalesce(_optionalChain([el, 'access',
|
|
23224
|
+
keyboard = _nullishCoalesce(_optionalChain([el, 'access', _475 => _475.matches, 'optionalCall', _476 => _476(":focus-visible")]), () => ( false));
|
|
23811
23225
|
} catch (e23) {
|
|
23812
23226
|
keyboard = false;
|
|
23813
23227
|
}
|
|
@@ -23841,9 +23255,9 @@ function WalkthroughVideo({
|
|
|
23841
23255
|
previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
|
|
23842
23256
|
mutedIntent: userMuted,
|
|
23843
23257
|
continuation: cardMode === "resume",
|
|
23844
|
-
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess',
|
|
23845
|
-
startTime: _optionalChain([resumeHandoff, 'optionalAccess',
|
|
23846
|
-
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess',
|
|
23258
|
+
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _477 => _477.playing]) !== false && !footerHidden,
|
|
23259
|
+
startTime: _optionalChain([resumeHandoff, 'optionalAccess', _478 => _478.time]),
|
|
23260
|
+
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _479 => _479.muted]), () => ( false)),
|
|
23847
23261
|
onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
|
|
23848
23262
|
},
|
|
23849
23263
|
`card-${embedUrlKey}`
|
|
@@ -23940,7 +23354,7 @@ function WalkthroughVideo({
|
|
|
23940
23354
|
{
|
|
23941
23355
|
onOpenAutoFocus: (e) => {
|
|
23942
23356
|
e.preventDefault();
|
|
23943
|
-
_optionalChain([closeButtonRef, 'access',
|
|
23357
|
+
_optionalChain([closeButtonRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.focus, 'call', _482 => _482()]);
|
|
23944
23358
|
},
|
|
23945
23359
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
23946
23360
|
// PURE theater: just the video, centered on a dimmed backdrop.
|
|
@@ -24034,14 +23448,14 @@ function useWalkthroughVideo(opts) {
|
|
|
24034
23448
|
if (res.status === 404) return null;
|
|
24035
23449
|
if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
|
|
24036
23450
|
const body = await res.json();
|
|
24037
|
-
return _nullishCoalesce(_optionalChain([body, 'optionalAccess',
|
|
23451
|
+
return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _483 => _483.walkthroughVideo]), () => ( null));
|
|
24038
23452
|
},
|
|
24039
23453
|
// Per-observer transform — NEVER mutate the cached data. `select` also runs
|
|
24040
23454
|
// over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
|
|
24041
23455
|
// rewrite here (not in queryFn) means a second consumer of the same
|
|
24042
23456
|
// endpoint can't inherit this observer's proxied captionsUrl from the cache.
|
|
24043
23457
|
select: (video) => {
|
|
24044
|
-
if (!_optionalChain([video, 'optionalAccess',
|
|
23458
|
+
if (!_optionalChain([video, 'optionalAccess', _484 => _484.captionsUrl])) return video;
|
|
24045
23459
|
if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
|
|
24046
23460
|
return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
|
|
24047
23461
|
}
|
|
@@ -24088,7 +23502,7 @@ function VideoSourceSelector({
|
|
|
24088
23502
|
input.accept = "video/*";
|
|
24089
23503
|
input.onchange = async (e) => {
|
|
24090
23504
|
const target = e.target;
|
|
24091
|
-
const file = _optionalChain([target, 'access',
|
|
23505
|
+
const file = _optionalChain([target, 'access', _485 => _485.files, 'optionalAccess', _486 => _486[0]]);
|
|
24092
23506
|
if (!file) return;
|
|
24093
23507
|
setIsUploading(true);
|
|
24094
23508
|
setUploadProgress(0);
|
|
@@ -24264,7 +23678,7 @@ function SubtitlesEditor({
|
|
|
24264
23678
|
{
|
|
24265
23679
|
id,
|
|
24266
23680
|
value: subtitles || "",
|
|
24267
|
-
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall',
|
|
23681
|
+
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _487 => _487(e.target.value)]),
|
|
24268
23682
|
placeholder,
|
|
24269
23683
|
disabled: disabled || !onSubtitlesChange,
|
|
24270
23684
|
className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
|
|
@@ -24493,7 +23907,7 @@ var AIEnrichSection = ({
|
|
|
24493
23907
|
}) => {
|
|
24494
23908
|
const hasResults = status === "success" || status === "error";
|
|
24495
23909
|
const shouldDisable = disabled || !canEnrich;
|
|
24496
|
-
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess',
|
|
23910
|
+
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _488 => _488.filter, 'call', _489 => _489((f) => !f.isFilled)]) || [];
|
|
24497
23911
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24498
23912
|
"div",
|
|
24499
23913
|
{
|
|
@@ -24525,7 +23939,7 @@ var AIEnrichSection = ({
|
|
|
24525
23939
|
{
|
|
24526
23940
|
id: "ai-enrich-custom-instructions",
|
|
24527
23941
|
value: _nullishCoalesce(customInstructions, () => ( "")),
|
|
24528
|
-
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall',
|
|
23942
|
+
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _490 => _490(e.target.value)]),
|
|
24529
23943
|
placeholder: customInstructionsPlaceholder,
|
|
24530
23944
|
disabled: loading,
|
|
24531
23945
|
maxLength: customInstructionsMaxLength,
|
|
@@ -24647,7 +24061,7 @@ function HighlightVideoSection({
|
|
|
24647
24061
|
input.accept = "video/*";
|
|
24648
24062
|
input.onchange = async (e) => {
|
|
24649
24063
|
const target = e.target;
|
|
24650
|
-
const file = _optionalChain([target, 'access',
|
|
24064
|
+
const file = _optionalChain([target, 'access', _491 => _491.files, 'optionalAccess', _492 => _492[0]]);
|
|
24651
24065
|
if (!file) return;
|
|
24652
24066
|
setUploadError(null);
|
|
24653
24067
|
try {
|
|
@@ -24667,19 +24081,19 @@ function HighlightVideoSection({
|
|
|
24667
24081
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 rounded-lg border border-ods-border bg-ods-card p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
24668
24082
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.Label, { children: "Target Duration" }),
|
|
24669
24083
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24670
|
-
|
|
24084
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
24671
24085
|
{
|
|
24672
24086
|
value: targetDurationSeconds.toString(),
|
|
24673
24087
|
onValueChange: (value) => onTargetDurationChange(parseInt(value)),
|
|
24674
24088
|
disabled,
|
|
24675
24089
|
children: [
|
|
24676
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24677
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24678
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24679
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24680
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24681
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24682
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24090
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { className: "mt-1 bg-ods-bg-surface", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
24091
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { className: "bg-ods-card", children: [
|
|
24092
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "60", children: "1 minute" }),
|
|
24093
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "120", children: "2 minutes" }),
|
|
24094
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "180", children: "3 minutes (Recommended)" }),
|
|
24095
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "240", children: "4 minutes" }),
|
|
24096
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "300", children: "5 minutes" })
|
|
24683
24097
|
] })
|
|
24684
24098
|
]
|
|
24685
24099
|
}
|
|
@@ -24765,19 +24179,19 @@ function HighlightConfigSection({
|
|
|
24765
24179
|
className = ""
|
|
24766
24180
|
}) {
|
|
24767
24181
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `space-y-3 rounded-lg border border-ods-border bg-ods-card p-4 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUWQWMGJ7cjs.Field, { label: "Target Duration", children: (f) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24768
|
-
|
|
24182
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
24769
24183
|
{
|
|
24770
24184
|
value: targetDurationSeconds.toString(),
|
|
24771
24185
|
onValueChange: (value) => onTargetDurationChange(parseInt(value)),
|
|
24772
24186
|
disabled,
|
|
24773
24187
|
children: [
|
|
24774
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24775
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24776
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24777
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24778
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24779
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24780
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24188
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { id: f.id, className: "bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
24189
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { className: "bg-ods-card", children: [
|
|
24190
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "60", children: "1 minute" }),
|
|
24191
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "120", children: "2 minutes" }),
|
|
24192
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "180", children: "3 minutes (Recommended)" }),
|
|
24193
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "240", children: "4 minutes" }),
|
|
24194
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: "300", children: "5 minutes" })
|
|
24781
24195
|
] })
|
|
24782
24196
|
]
|
|
24783
24197
|
}
|
|
@@ -25083,7 +24497,7 @@ function HighlightVideoPreview({
|
|
|
25083
24497
|
input.accept = "video/*";
|
|
25084
24498
|
input.onchange = async (e) => {
|
|
25085
24499
|
const target = e.target;
|
|
25086
|
-
const file = _optionalChain([target, 'access',
|
|
24500
|
+
const file = _optionalChain([target, 'access', _493 => _493.files, 'optionalAccess', _494 => _494[0]]);
|
|
25087
24501
|
if (!file) return;
|
|
25088
24502
|
await onUpload(file);
|
|
25089
24503
|
};
|
|
@@ -25262,7 +24676,7 @@ function HighlightVideoCombinedSection({
|
|
|
25262
24676
|
input.accept = "video/*";
|
|
25263
24677
|
input.onchange = async (e) => {
|
|
25264
24678
|
const target = e.target;
|
|
25265
|
-
const file = _optionalChain([target, 'access',
|
|
24679
|
+
const file = _optionalChain([target, 'access', _495 => _495.files, 'optionalAccess', _496 => _496[0]]);
|
|
25266
24680
|
if (!file) return;
|
|
25267
24681
|
await onUpload(file);
|
|
25268
24682
|
};
|
|
@@ -25468,7 +24882,7 @@ function ApprovalLevelView({
|
|
|
25468
24882
|
value,
|
|
25469
24883
|
disabled,
|
|
25470
24884
|
onValueChange: (next) => {
|
|
25471
|
-
if (next && next !== value) _optionalChain([onChange, 'optionalCall',
|
|
24885
|
+
if (next && next !== value) _optionalChain([onChange, 'optionalCall', _497 => _497(next)]);
|
|
25472
24886
|
},
|
|
25473
24887
|
"aria-labelledby": labelledBy,
|
|
25474
24888
|
children: APPROVAL_LEVELS.map((level) => {
|
|
@@ -25506,7 +24920,7 @@ function ApprovalLevelView({
|
|
|
25506
24920
|
var approvalLevelOptions = APPROVAL_LEVELS.map((value) => ({ value, label: APPROVAL_LEVEL_META[value].label }));
|
|
25507
24921
|
var POLICY_LEVEL_WIDTH = "w-[180px]";
|
|
25508
24922
|
var CATEGORY_LEVEL_WIDTH = "w-[256px]";
|
|
25509
|
-
var getApprovalLevelLabel = (level) => _nullishCoalesce(_optionalChain([APPROVAL_LEVEL_META, 'access',
|
|
24923
|
+
var getApprovalLevelLabel = (level) => _nullishCoalesce(_optionalChain([APPROVAL_LEVEL_META, 'access', _498 => _498[level], 'optionalAccess', _499 => _499.label]), () => ( level));
|
|
25510
24924
|
var ApprovalLevelDropdown = ({ value, onChange, allowClear = false, triggerClassName, contentClassName }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2Y7QZAB2cjs.DropdownMenu, { children: [
|
|
25511
24925
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2Y7QZAB2cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25512
24926
|
_chunkDFQYAYBHcjs.Button,
|
|
@@ -25730,8 +25144,8 @@ function PoliciesTable({
|
|
|
25730
25144
|
accessorKey: "name",
|
|
25731
25145
|
header: "Name",
|
|
25732
25146
|
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-[60px] min-w-0 flex-col justify-center gap-1 py-2", children: [
|
|
25733
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25734
|
-
row.original.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25147
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: row.original.name }),
|
|
25148
|
+
row.original.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: row.original.description })
|
|
25735
25149
|
] }),
|
|
25736
25150
|
meta: { width: "flex-1 min-w-0" }
|
|
25737
25151
|
},
|
|
@@ -25903,7 +25317,7 @@ var POLICY_STATUS_CONFIG = {
|
|
|
25903
25317
|
};
|
|
25904
25318
|
function missingHostCount(policy) {
|
|
25905
25319
|
const responded = policy.passing_host_count + policy.failing_host_count;
|
|
25906
|
-
return (_nullishCoalesce(_optionalChain([policy, 'access',
|
|
25320
|
+
return (_nullishCoalesce(_optionalChain([policy, 'access', _500 => _500.hosts_include_any, 'optionalAccess', _501 => _501.length]), () => ( 0))) - responded;
|
|
25907
25321
|
}
|
|
25908
25322
|
function getPolicyStatus(policy) {
|
|
25909
25323
|
const failing = policy.failing_host_count;
|
|
@@ -26014,7 +25428,7 @@ function usersCountLabel(count) {
|
|
|
26014
25428
|
function TenantAccessCell({ accessState, lastReadAt: lastReadAt2, now }) {
|
|
26015
25429
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col justify-center gap-[var(--spacing-system-xxs)]", children: [
|
|
26016
25430
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF5BPGWGTcjs.Tag, { ...accessStateTag(accessState), className: "self-start" }),
|
|
26017
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25431
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: `Last read: ${formatLastRead(lastReadAt2, now)}` })
|
|
26018
25432
|
] });
|
|
26019
25433
|
}
|
|
26020
25434
|
|
|
@@ -26025,9 +25439,9 @@ function TenantCell({ provider, name, domain }) {
|
|
|
26025
25439
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col justify-center", children: [
|
|
26026
25440
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
26027
25441
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Logo, { size: 24, role: "img", "aria-label": label, className: "shrink-0" }),
|
|
26028
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25442
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: name })
|
|
26029
25443
|
] }),
|
|
26030
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25444
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: _nullishCoalesce(domain, () => ( TENANT_EMPTY_VALUE)) })
|
|
26031
25445
|
] });
|
|
26032
25446
|
}
|
|
26033
25447
|
|
|
@@ -26037,9 +25451,9 @@ function TenantCustomerCell({ name, imageUrl, userCount }) {
|
|
|
26037
25451
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col justify-center", children: [
|
|
26038
25452
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
26039
25453
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF5BPGWGTcjs.SquareAvatar, { src: _nullishCoalesce(imageUrl, () => ( void 0)), alt: name, fallback: name, size: "xs", variant: "square" }),
|
|
26040
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25454
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: name })
|
|
26041
25455
|
] }),
|
|
26042
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25456
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: usersCountLabel(userCount) })
|
|
26043
25457
|
] });
|
|
26044
25458
|
}
|
|
26045
25459
|
|
|
@@ -26189,13 +25603,13 @@ function WaitlistForm({
|
|
|
26189
25603
|
const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
|
|
26190
25604
|
const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
|
|
26191
25605
|
const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
|
|
26192
|
-
const { toast } =
|
|
26193
|
-
const { honeypotInputProps, getSignals, resetSignals } =
|
|
25606
|
+
const { toast } = _chunkZXCZYMN4cjs.useToast.call(void 0, );
|
|
25607
|
+
const { honeypotInputProps, getSignals, resetSignals } = _chunkZXCZYMN4cjs.useHumanitySignals.call(void 0, );
|
|
26194
25608
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
26195
25609
|
const isClient = _chunkUWQWMGJ7cjs.useIsHydrated.call(void 0, );
|
|
26196
25610
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
26197
25611
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
26198
|
-
const rescue =
|
|
25612
|
+
const rescue = _chunkZXCZYMN4cjs.useFormRescue.call(void 0, {
|
|
26199
25613
|
form: rescueForm,
|
|
26200
25614
|
// The phone is reported as filled only; its value never leaves the form early.
|
|
26201
25615
|
fieldNames: ["email", "phone"],
|
|
@@ -26501,19 +25915,19 @@ function NotificationsProvider({
|
|
|
26501
25915
|
}, []);
|
|
26502
25916
|
const markRead = _react.useCallback.call(void 0, (id) => {
|
|
26503
25917
|
dispatch({ type: "markRead", id });
|
|
26504
|
-
void _optionalChain([actionsRef, 'access',
|
|
25918
|
+
void _optionalChain([actionsRef, 'access', _502 => _502.current, 'optionalAccess', _503 => _503.onMarkRead, 'optionalCall', _504 => _504(id)]);
|
|
26505
25919
|
}, []);
|
|
26506
25920
|
const markAllRead = _react.useCallback.call(void 0, () => {
|
|
26507
25921
|
dispatch({ type: "markAllRead" });
|
|
26508
|
-
void _optionalChain([actionsRef, 'access',
|
|
25922
|
+
void _optionalChain([actionsRef, 'access', _505 => _505.current, 'optionalAccess', _506 => _506.onMarkAllRead, 'optionalCall', _507 => _507()]);
|
|
26509
25923
|
}, []);
|
|
26510
25924
|
const markSettled = _react.useCallback.call(void 0, (id) => {
|
|
26511
25925
|
dispatch({ type: "markSettled", id });
|
|
26512
|
-
void _optionalChain([actionsRef, 'access',
|
|
25926
|
+
void _optionalChain([actionsRef, 'access', _508 => _508.current, 'optionalAccess', _509 => _509.onMarkSettled, 'optionalCall', _510 => _510(id)]);
|
|
26513
25927
|
}, []);
|
|
26514
25928
|
const remove = _react.useCallback.call(void 0, (id) => {
|
|
26515
25929
|
dispatch({ type: "remove", id });
|
|
26516
|
-
void _optionalChain([actionsRef, 'access',
|
|
25930
|
+
void _optionalChain([actionsRef, 'access', _511 => _511.current, 'optionalAccess', _512 => _512.onRemove, 'optionalCall', _513 => _513(id)]);
|
|
26517
25931
|
}, []);
|
|
26518
25932
|
const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
|
|
26519
25933
|
const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
|
|
@@ -26522,14 +25936,14 @@ function NotificationsProvider({
|
|
|
26522
25936
|
const setShowPopups = _react.useCallback.call(void 0,
|
|
26523
25937
|
(value2) => {
|
|
26524
25938
|
setShowPopupsState(value2);
|
|
26525
|
-
_optionalChain([onShowPopupsChange, 'optionalCall',
|
|
25939
|
+
_optionalChain([onShowPopupsChange, 'optionalCall', _514 => _514(value2)]);
|
|
26526
25940
|
},
|
|
26527
25941
|
[onShowPopupsChange]
|
|
26528
25942
|
);
|
|
26529
25943
|
const setShowDesktopPopups = _react.useCallback.call(void 0,
|
|
26530
25944
|
(value2) => {
|
|
26531
25945
|
setShowDesktopPopupsState(value2);
|
|
26532
|
-
_optionalChain([onShowDesktopPopupsChange, 'optionalCall',
|
|
25946
|
+
_optionalChain([onShowDesktopPopupsChange, 'optionalCall', _515 => _515(value2)]);
|
|
26533
25947
|
},
|
|
26534
25948
|
[onShowDesktopPopupsChange]
|
|
26535
25949
|
);
|
|
@@ -26645,7 +26059,7 @@ var AppLayoutDrawerRoot = ({
|
|
|
26645
26059
|
const handleOpenChange = _react.useCallback.call(void 0,
|
|
26646
26060
|
(next) => {
|
|
26647
26061
|
if (!isControlled) setInternalOpen(next);
|
|
26648
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
26062
|
+
_optionalChain([onOpenChange, 'optionalCall', _516 => _516(next)]);
|
|
26649
26063
|
},
|
|
26650
26064
|
[isControlled, onOpenChange]
|
|
26651
26065
|
);
|
|
@@ -26662,9 +26076,9 @@ var AppLayoutDrawerRoot = ({
|
|
|
26662
26076
|
}
|
|
26663
26077
|
}));
|
|
26664
26078
|
_react.useEffect.call(void 0, () => {
|
|
26665
|
-
if (open) _optionalChain([coordination, 'optionalAccess',
|
|
26079
|
+
if (open) _optionalChain([coordination, 'optionalAccess', _517 => _517.notifyDrawerDidOpen, 'call', _518 => _518(selfHandle)]);
|
|
26666
26080
|
}, [open, coordination, selfHandle]);
|
|
26667
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
26081
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _519 => _519.registerDrawer, 'call', _520 => _520(selfHandle)]), [coordination, selfHandle]);
|
|
26668
26082
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
|
|
26669
26083
|
};
|
|
26670
26084
|
AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
|
|
@@ -26886,10 +26300,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
26886
26300
|
),
|
|
26887
26301
|
style,
|
|
26888
26302
|
onInteractOutside: (event) => {
|
|
26889
|
-
_optionalChain([onInteractOutside, 'optionalCall',
|
|
26303
|
+
_optionalChain([onInteractOutside, 'optionalCall', _521 => _521(event)]);
|
|
26890
26304
|
if (event.defaultPrevented) return;
|
|
26891
26305
|
const target = event.target;
|
|
26892
|
-
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess',
|
|
26306
|
+
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _522 => _522.contains, 'call', _523 => _523(target)]);
|
|
26893
26307
|
if (!isInsideContainer) {
|
|
26894
26308
|
event.preventDefault();
|
|
26895
26309
|
return;
|
|
@@ -26961,7 +26375,7 @@ var typeColorByVariant = {
|
|
|
26961
26375
|
error: "text-ods-error"
|
|
26962
26376
|
};
|
|
26963
26377
|
var progressColorByVariant2 = {
|
|
26964
|
-
...
|
|
26378
|
+
..._chunkZXCZYMN4cjs.progressColorByVariant,
|
|
26965
26379
|
default: "bg-ods-accent",
|
|
26966
26380
|
info: "bg-ods-accent"
|
|
26967
26381
|
};
|
|
@@ -27005,7 +26419,7 @@ function NotificationTile({
|
|
|
27005
26419
|
if (!counting) return void 0;
|
|
27006
26420
|
const remaining = Math.max(0, liveDurationMs - initialElapsed);
|
|
27007
26421
|
const timer = window.setTimeout(() => {
|
|
27008
|
-
_optionalChain([onSettle, 'optionalCall',
|
|
26422
|
+
_optionalChain([onSettle, 'optionalCall', _524 => _524(id)]);
|
|
27009
26423
|
}, remaining);
|
|
27010
26424
|
return () => window.clearTimeout(timer);
|
|
27011
26425
|
}, [id, counting, initialElapsed, liveDurationMs, onSettle]);
|
|
@@ -27038,7 +26452,7 @@ function NotificationTile({
|
|
|
27038
26452
|
height: 16,
|
|
27039
26453
|
unoptimized: true
|
|
27040
26454
|
}
|
|
27041
|
-
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "size-1.5 rounded-full",
|
|
26455
|
+
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "size-1.5 rounded-full", _chunkZXCZYMN4cjs.dotColorByVariant[accentVariant]) }))) }),
|
|
27042
26456
|
type ? lockscreen ? (
|
|
27043
26457
|
// A phone names the sender in plain words and never cuts them.
|
|
27044
26458
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 break-words text-ods-text-secondary text-h6", children: type })
|
|
@@ -27056,7 +26470,7 @@ function NotificationTile({
|
|
|
27056
26470
|
active: isLive,
|
|
27057
26471
|
label: "Dismiss notification",
|
|
27058
26472
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.XmarkIcon, { size: 16 }),
|
|
27059
|
-
onClick: () => _optionalChain([onSettle, 'optionalCall',
|
|
26473
|
+
onClick: () => _optionalChain([onSettle, 'optionalCall', _525 => _525(id)])
|
|
27060
26474
|
},
|
|
27061
26475
|
{
|
|
27062
26476
|
active: !isLive,
|
|
@@ -27254,7 +26668,7 @@ function DrawerScrollList({
|
|
|
27254
26668
|
if (!sentinel || !root) return void 0;
|
|
27255
26669
|
const observer = new IntersectionObserver(
|
|
27256
26670
|
(entries) => {
|
|
27257
|
-
if (_optionalChain([entries, 'access',
|
|
26671
|
+
if (_optionalChain([entries, 'access', _526 => _526[0], 'optionalAccess', _527 => _527.isIntersecting])) _optionalChain([loadMoreRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
|
|
27258
26672
|
},
|
|
27259
26673
|
{ root, rootMargin: loadMoreRootMargin }
|
|
27260
26674
|
);
|
|
@@ -27269,7 +26683,7 @@ function DrawerScrollList({
|
|
|
27269
26683
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
27270
26684
|
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
27271
26685
|
unreadNotifications.map((n) => {
|
|
27272
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
26686
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _530 => _530(n, { onComplete, onSettle, liveDurationMs })]);
|
|
27273
26687
|
if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
|
|
27274
26688
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27275
26689
|
NotificationTile,
|
|
@@ -27322,7 +26736,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
|
|
|
27322
26736
|
] });
|
|
27323
26737
|
}
|
|
27324
26738
|
function DesktopNotificationsToggleRow({ checked, onChange }) {
|
|
27325
|
-
const { supported, permission, request } =
|
|
26739
|
+
const { supported, permission, request } = _chunkZXCZYMN4cjs.useNotificationPermission.call(void 0, );
|
|
27326
26740
|
if (!supported) return null;
|
|
27327
26741
|
const blocked = permission === "denied";
|
|
27328
26742
|
const handleChange = async (value) => {
|
|
@@ -27389,7 +26803,7 @@ function NotificationPopups({
|
|
|
27389
26803
|
}) {
|
|
27390
26804
|
const ctx = useOptionalNotifications();
|
|
27391
26805
|
const [now, setNow] = _react.useState.call(void 0, () => Date.now());
|
|
27392
|
-
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess',
|
|
26806
|
+
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _531 => _531.notifications, 'access', _532 => _532.some, 'call', _533 => _533((n) => !n.read && !n.settled)]));
|
|
27393
26807
|
_react.useEffect.call(void 0, () => {
|
|
27394
26808
|
if (!hasAgeingNotifications) return void 0;
|
|
27395
26809
|
const id = setInterval(() => setNow(Date.now()), 500);
|
|
@@ -27432,7 +26846,7 @@ function NotificationPopups({
|
|
|
27432
26846
|
className
|
|
27433
26847
|
),
|
|
27434
26848
|
children: live.map((n) => {
|
|
27435
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
26849
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _534 => _534(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
|
|
27436
26850
|
if (custom) {
|
|
27437
26851
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
|
|
27438
26852
|
}
|
|
@@ -27479,21 +26893,21 @@ function isApprovalNotificationType(type) {
|
|
|
27479
26893
|
return typeof type === "string" && APPROVAL_REQUEST_TYPES.has(type);
|
|
27480
26894
|
}
|
|
27481
26895
|
function isApprovalNotification(notification) {
|
|
27482
|
-
return isApprovalNotificationType(_optionalChain([notification, 'access',
|
|
26896
|
+
return isApprovalNotificationType(_optionalChain([notification, 'access', _535 => _535.meta, 'optionalAccess', _536 => _536.notificationType]));
|
|
27483
26897
|
}
|
|
27484
26898
|
function getApprovalMeta(notification) {
|
|
27485
26899
|
if (!isApprovalNotification(notification)) return null;
|
|
27486
26900
|
const meta = notification.meta;
|
|
27487
|
-
const approvalRequestId = _optionalChain([meta, 'optionalAccess',
|
|
27488
|
-
const toolCalls = _optionalChain([meta, 'optionalAccess',
|
|
26901
|
+
const approvalRequestId = _optionalChain([meta, 'optionalAccess', _537 => _537.approvalRequestId]);
|
|
26902
|
+
const toolCalls = _optionalChain([meta, 'optionalAccess', _538 => _538.toolCalls]);
|
|
27489
26903
|
if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
|
|
27490
26904
|
return {
|
|
27491
26905
|
approvalRequestId,
|
|
27492
|
-
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27493
|
-
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27494
|
-
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27495
|
-
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27496
|
-
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
26906
|
+
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _539 => _539.dialogId]), () => ( null)),
|
|
26907
|
+
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _540 => _540.ticketId]), () => ( null)),
|
|
26908
|
+
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _541 => _541.approvalType]), () => ( null)),
|
|
26909
|
+
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _542 => _542.resolution]), () => ( null)),
|
|
26910
|
+
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _543 => _543.resolvedByName]), () => ( null)),
|
|
27497
26911
|
toolCalls
|
|
27498
26912
|
};
|
|
27499
26913
|
}
|
|
@@ -27549,7 +26963,7 @@ function ApprovalRequestNotificationTile({
|
|
|
27549
26963
|
const [processing, setProcessing] = _react.useState.call(void 0, false);
|
|
27550
26964
|
const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
|
|
27551
26965
|
const approval = getApprovalMeta(notification);
|
|
27552
|
-
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess',
|
|
26966
|
+
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _544 => _544.resolution]));
|
|
27553
26967
|
const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
|
|
27554
26968
|
const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
|
|
27555
26969
|
const { innerRef, containerStyle } = _chunkKT3U3ZRPcjs.useCollapsible.call(void 0, { expanded });
|
|
@@ -27875,7 +27289,7 @@ function TimeTrackerPanel({
|
|
|
27875
27289
|
] }),
|
|
27876
27290
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "grid gap-[var(--spacing-system-m)]", showCustomer && "grid-cols-2"), children: [
|
|
27877
27291
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27878
|
-
Autocomplete,
|
|
27292
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
27879
27293
|
{
|
|
27880
27294
|
value: selectedTicketId,
|
|
27881
27295
|
onChange: onSelectedTicketChange,
|
|
@@ -27886,12 +27300,12 @@ function TimeTrackerPanel({
|
|
|
27886
27300
|
error: showFieldError ? "Required if no notes added" : void 0,
|
|
27887
27301
|
disableClientFilter: !!onTicketSearch,
|
|
27888
27302
|
onInputChange: (value, reason) => {
|
|
27889
|
-
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall',
|
|
27303
|
+
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _545 => _545(value)]);
|
|
27890
27304
|
}
|
|
27891
27305
|
}
|
|
27892
27306
|
),
|
|
27893
27307
|
showCustomer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27894
|
-
Autocomplete,
|
|
27308
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
27895
27309
|
{
|
|
27896
27310
|
value: _nullishCoalesce(selectedCustomerId, () => ( null)),
|
|
27897
27311
|
onChange: onSelectedCustomerChange,
|
|
@@ -27901,7 +27315,7 @@ function TimeTrackerPanel({
|
|
|
27901
27315
|
disabled: customerLocked,
|
|
27902
27316
|
disableClientFilter: !!onCustomerSearch,
|
|
27903
27317
|
onInputChange: (value, reason) => {
|
|
27904
|
-
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall',
|
|
27318
|
+
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _546 => _546(value)]);
|
|
27905
27319
|
},
|
|
27906
27320
|
startAdornment: customerStartAdornment,
|
|
27907
27321
|
renderOption: renderCustomerOption
|
|
@@ -28003,7 +27417,7 @@ function LastEntryRow({ entry, onClick }) {
|
|
|
28003
27417
|
{
|
|
28004
27418
|
variant: "outline",
|
|
28005
27419
|
size: "icon",
|
|
28006
|
-
onClick: () => _optionalChain([onClick, 'optionalCall',
|
|
27420
|
+
onClick: () => _optionalChain([onClick, 'optionalCall', _547 => _547(entry)]),
|
|
28007
27421
|
disabled: !onClick,
|
|
28008
27422
|
"aria-label": `Open entry: ${entry.title}`,
|
|
28009
27423
|
className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
|
|
@@ -28087,34 +27501,34 @@ function HeaderButton({
|
|
|
28087
27501
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
28088
27502
|
const ctx = useOptionalTimeTracker();
|
|
28089
27503
|
const elapsedLabel = useTrackerClock({
|
|
28090
|
-
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
28091
|
-
runningSince: _optionalChain([ctx, 'optionalAccess',
|
|
28092
|
-
accumulatedMs: _optionalChain([ctx, 'optionalAccess',
|
|
27504
|
+
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _548 => _548.status]), () => ( "ready")),
|
|
27505
|
+
runningSince: _optionalChain([ctx, 'optionalAccess', _549 => _549.runningSince]),
|
|
27506
|
+
accumulatedMs: _optionalChain([ctx, 'optionalAccess', _550 => _550.accumulatedMs])
|
|
28093
27507
|
});
|
|
28094
27508
|
const layoutContainer = useAppLayoutDrawerContainer();
|
|
28095
27509
|
const coordination = useAppLayoutDrawerCoordination();
|
|
28096
|
-
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
27510
|
+
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _551 => _551.isOpen]), () => ( false));
|
|
28097
27511
|
const isOpenRef = _react.useRef.call(void 0, isOpen);
|
|
28098
|
-
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess',
|
|
27512
|
+
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _552 => _552.close]));
|
|
28099
27513
|
_react.useEffect.call(void 0, () => {
|
|
28100
27514
|
isOpenRef.current = isOpen;
|
|
28101
|
-
closeRef.current = _optionalChain([ctx, 'optionalAccess',
|
|
27515
|
+
closeRef.current = _optionalChain([ctx, 'optionalAccess', _553 => _553.close]);
|
|
28102
27516
|
});
|
|
28103
27517
|
const [selfHandle] = _react.useState.call(void 0, () => ({
|
|
28104
27518
|
close: () => {
|
|
28105
|
-
if (isOpenRef.current) _optionalChain([closeRef, 'access',
|
|
27519
|
+
if (isOpenRef.current) _optionalChain([closeRef, 'access', _554 => _554.current, 'optionalCall', _555 => _555()]);
|
|
28106
27520
|
}
|
|
28107
27521
|
}));
|
|
28108
27522
|
_react.useEffect.call(void 0, () => {
|
|
28109
|
-
if (isOpen) _optionalChain([coordination, 'optionalAccess',
|
|
27523
|
+
if (isOpen) _optionalChain([coordination, 'optionalAccess', _556 => _556.notifyDrawerDidOpen, 'call', _557 => _557(selfHandle)]);
|
|
28110
27524
|
}, [isOpen, coordination, selfHandle]);
|
|
28111
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
27525
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _558 => _558.registerDrawer, 'call', _559 => _559(selfHandle)]), [coordination, selfHandle]);
|
|
28112
27526
|
if (!ctx) return null;
|
|
28113
27527
|
const { open, close, status } = ctx;
|
|
28114
27528
|
const isPaused = status === "paused";
|
|
28115
27529
|
const isActive = status === "tracking" || isPaused;
|
|
28116
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
28117
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27530
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive6.Root, { open: isOpen, onOpenChange: (next) => next ? open() : close(), children: [
|
|
27531
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Trigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28118
27532
|
HeaderButton,
|
|
28119
27533
|
{
|
|
28120
27534
|
"aria-label": "Time tracker",
|
|
@@ -28148,7 +27562,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
28148
27562
|
] })
|
|
28149
27563
|
}
|
|
28150
27564
|
) }),
|
|
28151
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27565
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Portal, { container: _nullishCoalesce(layoutContainer, () => ( void 0)), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28152
27566
|
"div",
|
|
28153
27567
|
{
|
|
28154
27568
|
"aria-hidden": "true",
|
|
@@ -28161,8 +27575,8 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
28161
27575
|
)
|
|
28162
27576
|
}
|
|
28163
27577
|
) }),
|
|
28164
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28165
|
-
|
|
27578
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27579
|
+
PopoverPrimitive6.Content,
|
|
28166
27580
|
{
|
|
28167
27581
|
align: "end",
|
|
28168
27582
|
sideOffset: 8,
|
|
@@ -28186,12 +27600,12 @@ function formatLastOnline(lastSeen) {
|
|
|
28186
27600
|
|
|
28187
27601
|
// src/components/features/devices/device-name.ts
|
|
28188
27602
|
function getDeviceName(device) {
|
|
28189
|
-
return _optionalChain([device, 'optionalAccess',
|
|
27603
|
+
return _optionalChain([device, 'optionalAccess', _560 => _560.nickname]) || _optionalChain([device, 'optionalAccess', _561 => _561.displayName]) || _optionalChain([device, 'optionalAccess', _562 => _562.hostname]) || "";
|
|
28190
27604
|
}
|
|
28191
27605
|
function matchesDeviceName(device, search = "") {
|
|
28192
27606
|
const needle = search.trim().toLowerCase();
|
|
28193
27607
|
if (!needle) return true;
|
|
28194
|
-
return getDeviceName(device).toLowerCase().includes(needle) || (_nullishCoalesce(_optionalChain([device, 'optionalAccess',
|
|
27608
|
+
return getDeviceName(device).toLowerCase().includes(needle) || (_nullishCoalesce(_optionalChain([device, 'optionalAccess', _563 => _563.hostname]), () => ( ""))).toLowerCase().includes(needle);
|
|
28195
27609
|
}
|
|
28196
27610
|
|
|
28197
27611
|
// src/components/features/devices/devices-view-config.tsx
|
|
@@ -28384,7 +27798,7 @@ var HIDDEN_DEVICE_STATUSES = [DEVICE_STATUS.ARCHIVED, DEVICE_STATUS.DELETED];
|
|
|
28384
27798
|
|
|
28385
27799
|
var DEFAULT_CLASS_NAME = "w-6 h-6 text-ods-text-secondary";
|
|
28386
27800
|
function renderDeviceTypeIcon(type, className = DEFAULT_CLASS_NAME) {
|
|
28387
|
-
switch (_optionalChain([type, 'optionalAccess',
|
|
27801
|
+
switch (_optionalChain([type, 'optionalAccess', _564 => _564.toLowerCase, 'call', _565 => _565()])) {
|
|
28388
27802
|
case "desktop":
|
|
28389
27803
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRDW5JAMEcjs.MonitorIcon, { className });
|
|
28390
27804
|
case "laptop":
|
|
@@ -28526,7 +27940,7 @@ function getDeviceActionsColumn(renderRowActions) {
|
|
|
28526
27940
|
}
|
|
28527
27941
|
function OpenDeviceButton({ device }) {
|
|
28528
27942
|
const { getDeviceHref } = useDevicesViewConfig();
|
|
28529
|
-
const href = _optionalChain([getDeviceHref, 'optionalCall',
|
|
27943
|
+
const href = _optionalChain([getDeviceHref, 'optionalCall', _566 => _566(device)]);
|
|
28530
27944
|
const open = (event) => {
|
|
28531
27945
|
event.preventDefault();
|
|
28532
27946
|
if (href) window.open(href, "_blank", "noopener,noreferrer");
|
|
@@ -28612,15 +28026,15 @@ function DevicesTableBody({
|
|
|
28612
28026
|
function OrganizationCell({ device }) {
|
|
28613
28027
|
const fullImageUrl = useDeviceImageUrl(device.organizationImageUrl, device.organizationImageHash);
|
|
28614
28028
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
28615
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.EntityImage, { src: fullImageUrl, alt: device.organization || "Customer", className: "size-12 content-md:size-12" }),
|
|
28616
28030
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "break-words text-ods-text-primary text-h4", children: device.organization || "" }) })
|
|
28617
28031
|
] });
|
|
28618
28032
|
}
|
|
28619
28033
|
function buildDeviceFilterOptions(deviceFilters) {
|
|
28620
|
-
const status = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess',
|
|
28621
|
-
const os = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess',
|
|
28034
|
+
const status = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _567 => _567.statuses]), () => ( []))).filter((s) => DEFAULT_VISIBLE_STATUSES.includes(s.value)).map((s) => ({ id: s.value, label: getDeviceStatusConfig(s.value).label, value: s.value, count: s.count }));
|
|
28035
|
+
const os = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _568 => _568.osTypes]), () => ( []))).map((o) => ({ id: o.value, label: o.value, value: o.value, count: o.count }));
|
|
28622
28036
|
const organization = uniqueById(
|
|
28623
|
-
(_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess',
|
|
28037
|
+
(_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _569 => _569.organizationIds]), () => ( []))).map((org) => ({
|
|
28624
28038
|
id: org.value,
|
|
28625
28039
|
label: org.label,
|
|
28626
28040
|
value: org.value,
|
|
@@ -28656,7 +28070,7 @@ function getDeviceTableColumns(deviceFilters, filtersPending) {
|
|
|
28656
28070
|
const device = row.original;
|
|
28657
28071
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative box-border flex h-20 w-full shrink-0 content-stretch items-center justify-start gap-4 py-0", children: [
|
|
28658
28072
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeviceTypeTile, { type: device.type }),
|
|
28659
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28073
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: getDeviceName(device) }) })
|
|
28660
28074
|
] });
|
|
28661
28075
|
},
|
|
28662
28076
|
meta: { width: "flex-1 content-md:w-1/4" }
|
|
@@ -28714,7 +28128,7 @@ function isCompleteTag(tag) {
|
|
|
28714
28128
|
const i = tag.indexOf(":");
|
|
28715
28129
|
return i > 0 && i < tag.length - 1;
|
|
28716
28130
|
}
|
|
28717
|
-
var scrollMainToTop = () => _optionalChain([document, 'access',
|
|
28131
|
+
var scrollMainToTop = () => _optionalChain([document, 'access', _570 => _570.querySelector, 'call', _571 => _571("main"), 'optionalAccess', _572 => _572.scrollTo, 'call', _573 => _573({ top: 0, behavior: "instant" })]);
|
|
28718
28132
|
function useTagFilterModal({
|
|
28719
28133
|
tags,
|
|
28720
28134
|
deviceFilters,
|
|
@@ -28736,7 +28150,7 @@ function useTagFilterModal({
|
|
|
28736
28150
|
}));
|
|
28737
28151
|
}, [columns, isMdUp]);
|
|
28738
28152
|
const tagFilterKeys = _react.useMemo.call(void 0, () => {
|
|
28739
|
-
if (!_optionalChain([deviceFilters, 'optionalAccess',
|
|
28153
|
+
if (!_optionalChain([deviceFilters, 'optionalAccess', _574 => _574.tagKeys])) return [];
|
|
28740
28154
|
const grouped = /* @__PURE__ */ new Map();
|
|
28741
28155
|
for (const tag of deviceFilters.tagKeys) {
|
|
28742
28156
|
if (tag.key === "null") continue;
|
|
@@ -28827,7 +28241,7 @@ function CustomerCell({ device }) {
|
|
|
28827
28241
|
const fullImageUrl = useDeviceImageUrl(device.organizationImageUrl, device.organizationImageHash);
|
|
28828
28242
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
28829
28243
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28830
|
-
|
|
28244
|
+
_chunkZ5UWW3Z2cjs.EntityImage,
|
|
28831
28245
|
{
|
|
28832
28246
|
src: fullImageUrl,
|
|
28833
28247
|
alt: device.organization || "Customer",
|
|
@@ -28835,8 +28249,8 @@ function CustomerCell({ device }) {
|
|
|
28835
28249
|
}
|
|
28836
28250
|
),
|
|
28837
28251
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col justify-center", children: [
|
|
28838
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28839
|
-
device.organizationEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28252
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: device.organization || "" }),
|
|
28253
|
+
device.organizationEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: device.organizationEmail })
|
|
28840
28254
|
] })
|
|
28841
28255
|
] });
|
|
28842
28256
|
}
|
|
@@ -28904,7 +28318,7 @@ function DeviceSelector({
|
|
|
28904
28318
|
const clientToggleDevice = _react.useCallback.call(void 0,
|
|
28905
28319
|
(device) => {
|
|
28906
28320
|
if (disabled) return;
|
|
28907
|
-
if (_optionalChain([isDeviceDisabled, 'optionalCall',
|
|
28321
|
+
if (_optionalChain([isDeviceDisabled, 'optionalCall', _575 => _575(device)])) return;
|
|
28908
28322
|
const key = getDeviceKey(device);
|
|
28909
28323
|
if (key === void 0) return;
|
|
28910
28324
|
const current = selectedIdsRef.current;
|
|
@@ -28929,7 +28343,7 @@ function DeviceSelector({
|
|
|
28929
28343
|
return;
|
|
28930
28344
|
}
|
|
28931
28345
|
if (disabled) return;
|
|
28932
|
-
if (_optionalChain([isDeviceDisabled, 'optionalCall',
|
|
28346
|
+
if (_optionalChain([isDeviceDisabled, 'optionalCall', _576 => _576(device)])) return;
|
|
28933
28347
|
if (server.activeTab === "selected") {
|
|
28934
28348
|
server.onRemove(device);
|
|
28935
28349
|
return;
|
|
@@ -28990,7 +28404,7 @@ function DeviceSelector({
|
|
|
28990
28404
|
const base = addAllBehavior === "replace" ? /* @__PURE__ */ new Set() : new Set(selectedIds);
|
|
28991
28405
|
for (const d of client.filteredDevices) {
|
|
28992
28406
|
if (!matchesVisibleFilters(d)) continue;
|
|
28993
|
-
if (_optionalChain([isDeviceDisabled, 'optionalCall',
|
|
28407
|
+
if (_optionalChain([isDeviceDisabled, 'optionalCall', _577 => _577(d)])) continue;
|
|
28994
28408
|
const key = getDeviceKey(d);
|
|
28995
28409
|
if (key !== void 0) {
|
|
28996
28410
|
base.add(key);
|
|
@@ -29019,7 +28433,7 @@ function DeviceSelector({
|
|
|
29019
28433
|
const orgKey = _nullishCoalesce(d.organizationId, () => ( d.organization));
|
|
29020
28434
|
if (orgKey) {
|
|
29021
28435
|
const existing = orgCounts.get(orgKey);
|
|
29022
|
-
orgCounts.set(orgKey, { label: _nullishCoalesce(d.organization, () => ( orgKey)), count: (_nullishCoalesce(_optionalChain([existing, 'optionalAccess',
|
|
28436
|
+
orgCounts.set(orgKey, { label: _nullishCoalesce(d.organization, () => ( orgKey)), count: (_nullishCoalesce(_optionalChain([existing, 'optionalAccess', _578 => _578.count]), () => ( 0))) + 1 });
|
|
29023
28437
|
}
|
|
29024
28438
|
for (const tag of _nullishCoalesce(d.tags, () => ( []))) {
|
|
29025
28439
|
const vc = _nullishCoalesce(tagSeen.get(tag.key), () => ( /* @__PURE__ */ new Map()));
|
|
@@ -29042,18 +28456,18 @@ function DeviceSelector({
|
|
|
29042
28456
|
filteredCount: devices.length
|
|
29043
28457
|
};
|
|
29044
28458
|
}, [devices]);
|
|
29045
|
-
const deviceFilters = _nullishCoalesce(_optionalChain([server, 'optionalAccess',
|
|
29046
|
-
const serverFaceted = Boolean(_optionalChain([server, 'optionalAccess',
|
|
28459
|
+
const deviceFilters = _nullishCoalesce(_optionalChain([server, 'optionalAccess', _579 => _579.filterOptions]), () => ( clientDeviceFilters));
|
|
28460
|
+
const serverFaceted = Boolean(_optionalChain([server, 'optionalAccess', _580 => _580.filterOptions]));
|
|
29047
28461
|
const filterColumns = _react.useMemo.call(void 0, () => {
|
|
29048
28462
|
const columns2 = getDeviceFilterColumns(deviceFilters);
|
|
29049
28463
|
if (serverFaceted) return columns2;
|
|
29050
28464
|
return columns2.map((column) => ({
|
|
29051
28465
|
...column,
|
|
29052
|
-
filterOptions: _optionalChain([column, 'access',
|
|
28466
|
+
filterOptions: _optionalChain([column, 'access', _581 => _581.filterOptions, 'optionalAccess', _582 => _582.map, 'call', _583 => _583(({ count: _count, ...option }) => option)])
|
|
29053
28467
|
}));
|
|
29054
28468
|
}, [deviceFilters, serverFaceted]);
|
|
29055
28469
|
const statusFilterOptions = _react.useMemo.call(void 0, () => {
|
|
29056
|
-
const options = _nullishCoalesce(_optionalChain([filterColumns, 'access',
|
|
28470
|
+
const options = _nullishCoalesce(_optionalChain([filterColumns, 'access', _584 => _584.find, 'call', _585 => _585((column) => column.key === "status"), 'optionalAccess', _586 => _586.filterOptions]), () => ( []));
|
|
29057
28471
|
return [...options].sort((a, b) => {
|
|
29058
28472
|
if (a.value === DEVICE_STATUS.ARCHIVED) return 1;
|
|
29059
28473
|
if (b.value === DEVICE_STATUS.ARCHIVED) return -1;
|
|
@@ -29061,15 +28475,15 @@ function DeviceSelector({
|
|
|
29061
28475
|
});
|
|
29062
28476
|
}, [filterColumns]);
|
|
29063
28477
|
const orgFilterOptions = _react.useMemo.call(void 0,
|
|
29064
|
-
() => _nullishCoalesce(_optionalChain([filterColumns, 'access',
|
|
28478
|
+
() => _nullishCoalesce(_optionalChain([filterColumns, 'access', _587 => _587.find, 'call', _588 => _588((column) => column.key === "organization"), 'optionalAccess', _589 => _589.filterOptions]), () => ( [])),
|
|
29065
28479
|
[filterColumns]
|
|
29066
28480
|
);
|
|
29067
28481
|
const handleSetParams = _react.useCallback.call(void 0,
|
|
29068
28482
|
(params) => {
|
|
29069
28483
|
setColumnFilters([
|
|
29070
|
-
..._optionalChain([params, 'access',
|
|
29071
|
-
..._optionalChain([params, 'access',
|
|
29072
|
-
..._optionalChain([params, 'access',
|
|
28484
|
+
..._optionalChain([params, 'access', _590 => _590.statuses, 'optionalAccess', _591 => _591.length]) ? [{ id: "status", value: params.statuses }] : [],
|
|
28485
|
+
..._optionalChain([params, 'access', _592 => _592.osTypes, 'optionalAccess', _593 => _593.length]) ? [{ id: "os", value: params.osTypes }] : [],
|
|
28486
|
+
..._optionalChain([params, 'access', _594 => _594.organizationIds, 'optionalAccess', _595 => _595.length]) ? [{ id: "organization", value: params.organizationIds }] : []
|
|
29073
28487
|
]);
|
|
29074
28488
|
setSelectedTags(_nullishCoalesce(params.tags, () => ( [])));
|
|
29075
28489
|
},
|
|
@@ -29093,9 +28507,9 @@ function DeviceSelector({
|
|
|
29093
28507
|
const tagOptions = _react.useMemo.call(void 0, () => selectedTags.map((t) => ({ label: t, value: t })), [selectedTags]);
|
|
29094
28508
|
const tableFilters = _react.useMemo.call(void 0,
|
|
29095
28509
|
() => ({
|
|
29096
|
-
status: _nullishCoalesce(_optionalChain([columnFilters, 'access',
|
|
29097
|
-
os: _nullishCoalesce(_optionalChain([columnFilters, 'access',
|
|
29098
|
-
organization: _nullishCoalesce(_optionalChain([columnFilters, 'access',
|
|
28510
|
+
status: _nullishCoalesce(_optionalChain([columnFilters, 'access', _596 => _596.find, 'call', _597 => _597((f) => f.id === "status"), 'optionalAccess', _598 => _598.value]), () => ( [])),
|
|
28511
|
+
os: _nullishCoalesce(_optionalChain([columnFilters, 'access', _599 => _599.find, 'call', _600 => _600((f) => f.id === "os"), 'optionalAccess', _601 => _601.value]), () => ( [])),
|
|
28512
|
+
organization: _nullishCoalesce(_optionalChain([columnFilters, 'access', _602 => _602.find, 'call', _603 => _603((f) => f.id === "organization"), 'optionalAccess', _604 => _604.value]), () => ( []))
|
|
29099
28513
|
}),
|
|
29100
28514
|
[columnFilters]
|
|
29101
28515
|
);
|
|
@@ -29130,8 +28544,8 @@ function DeviceSelector({
|
|
|
29130
28544
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-20 items-center gap-3", children: [
|
|
29131
28545
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeviceTypeTile, { type: device.type }),
|
|
29132
28546
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
|
|
29133
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29134
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28547
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: getDeviceName(device) }),
|
|
28548
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: formatLastOnline(lastSeen) })
|
|
29135
28549
|
] })
|
|
29136
28550
|
] });
|
|
29137
28551
|
},
|
|
@@ -29178,7 +28592,7 @@ function DeviceSelector({
|
|
|
29178
28592
|
id: "actions",
|
|
29179
28593
|
cell: ({ row }) => {
|
|
29180
28594
|
const device = row.original;
|
|
29181
|
-
const disabledReason = _optionalChain([isDeviceDisabled, 'optionalCall',
|
|
28595
|
+
const disabledReason = _optionalChain([isDeviceDisabled, 'optionalCall', _605 => _605(device)]);
|
|
29182
28596
|
if (disabledReason) {
|
|
29183
28597
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex w-full items-center justify-end gap-2", children: [
|
|
29184
28598
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-line text-right text-ods-text-secondary text-h6 content-max-md:hidden", children: disabledReason }),
|
|
@@ -29309,7 +28723,7 @@ function DeviceSelector({
|
|
|
29309
28723
|
showHeader && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29310
28724
|
DataTable.Header,
|
|
29311
28725
|
{
|
|
29312
|
-
rightSlot: _nullishCoalesce(bulkAction, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.RowCount, { itemName: "device", totalCount: _nullishCoalesce(totalCount, () => ( _optionalChain([server, 'optionalAccess',
|
|
28726
|
+
rightSlot: _nullishCoalesce(bulkAction, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.RowCount, { itemName: "device", totalCount: _nullishCoalesce(totalCount, () => ( _optionalChain([server, 'optionalAccess', _606 => _606.totalCount]))) })))
|
|
29313
28727
|
}
|
|
29314
28728
|
),
|
|
29315
28729
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -29400,7 +28814,7 @@ function DeviceSelectorSkeleton(props) {
|
|
|
29400
28814
|
// src/components/features/devices/device-selector/narrowing.ts
|
|
29401
28815
|
var EMPTY_NARROWING = { columnFilters: [], tags: [] };
|
|
29402
28816
|
function narrowingToFilter(narrowing) {
|
|
29403
|
-
const column = (id) => _optionalChain([narrowing, 'access',
|
|
28817
|
+
const column = (id) => _optionalChain([narrowing, 'access', _607 => _607.columnFilters, 'access', _608 => _608.find, 'call', _609 => _609((f) => f.id === id), 'optionalAccess', _610 => _610.value]);
|
|
29404
28818
|
const tagPairs = narrowing.tags.flatMap((t) => {
|
|
29405
28819
|
const i = t.indexOf(":");
|
|
29406
28820
|
return i > 0 ? [{ key: t.slice(0, i), value: t.slice(i + 1) }] : [];
|
|
@@ -29409,9 +28823,9 @@ function narrowingToFilter(narrowing) {
|
|
|
29409
28823
|
const statuses = column("status");
|
|
29410
28824
|
const osTypes = column("os");
|
|
29411
28825
|
const organizationIds = column("organization");
|
|
29412
|
-
if (_optionalChain([statuses, 'optionalAccess',
|
|
29413
|
-
if (_optionalChain([osTypes, 'optionalAccess',
|
|
29414
|
-
if (_optionalChain([organizationIds, 'optionalAccess',
|
|
28826
|
+
if (_optionalChain([statuses, 'optionalAccess', _611 => _611.length])) filter.statuses = statuses;
|
|
28827
|
+
if (_optionalChain([osTypes, 'optionalAccess', _612 => _612.length])) filter.osTypes = osTypes;
|
|
28828
|
+
if (_optionalChain([organizationIds, 'optionalAccess', _613 => _613.length])) filter.organizationIds = organizationIds;
|
|
29415
28829
|
if (tagPairs.length) {
|
|
29416
28830
|
filter.tagKeys = tagPairs.map((t) => t.key);
|
|
29417
28831
|
filter.tagValues = tagPairs.map((t) => t.value);
|
|
@@ -29432,7 +28846,7 @@ function DevicesGrid({
|
|
|
29432
28846
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
29433
28847
|
const { getDeviceHref } = useDevicesViewConfig();
|
|
29434
28848
|
const handleDeviceClick = (device) => {
|
|
29435
|
-
const href = device.machineId || device.id ? _optionalChain([getDeviceHref, 'optionalCall',
|
|
28849
|
+
const href = device.machineId || device.id ? _optionalChain([getDeviceHref, 'optionalCall', _614 => _614(device)]) : void 0;
|
|
29436
28850
|
if (href) router.push(href);
|
|
29437
28851
|
};
|
|
29438
28852
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: isLoading && devices.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeviceCardSkeletonGrid, { count: 12 }) : devices.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-64 items-center justify-center rounded-[6px] border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: emptyMessage }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -29595,7 +29009,7 @@ function DevicesList({
|
|
|
29595
29009
|
const onColumnFiltersChange = _react.useCallback.call(void 0,
|
|
29596
29010
|
(updater) => {
|
|
29597
29011
|
const next = typeof updater === "function" ? updater(columnFilters) : updater;
|
|
29598
|
-
const pick = (id) => _nullishCoalesce(_optionalChain([next, 'access',
|
|
29012
|
+
const pick = (id) => _nullishCoalesce(_optionalChain([next, 'access', _615 => _615.find, 'call', _616 => _616((f) => f.id === id), 'optionalAccess', _617 => _617.value]), () => ( []));
|
|
29599
29013
|
patch({ statuses: pick("status"), osTypes: pick("os"), organizationIds: pick("organization") });
|
|
29600
29014
|
},
|
|
29601
29015
|
[columnFilters, patch]
|
|
@@ -29647,7 +29061,7 @@ function DevicesList({
|
|
|
29647
29061
|
const handleClearAll = _react.useCallback.call(void 0, () => patch({ search: "", tags: [] }), [patch]);
|
|
29648
29062
|
const narrowed = isNarrowed(narrowing);
|
|
29649
29063
|
const isEmptyState = !isLoading && !isPending && !narrowed && devices.length === 0;
|
|
29650
|
-
const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } =
|
|
29064
|
+
const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } = _chunkZXCZYMN4cjs.useStickyToolbar.call(void 0, );
|
|
29651
29065
|
const headerOffset = _nullishCoalesce(stickyHeaderOffset, () => ( (stickyToolbar ? measuredOffset : void 0)));
|
|
29652
29066
|
const actionsColumn = _react.useMemo.call(void 0, () => rowActions ? getDeviceActionsColumn(rowActions) : void 0, [rowActions]);
|
|
29653
29067
|
return (
|
|
@@ -29815,7 +29229,7 @@ function DevicesPanelView({
|
|
|
29815
29229
|
onLoadMore = noop,
|
|
29816
29230
|
gridSentinelRef
|
|
29817
29231
|
}) {
|
|
29818
|
-
const gridColumns = _nullishCoalesce(filterColumns, () => ( getDeviceFilterColumns(deviceFilters).filter((column) => !_optionalChain([hideFilters, 'optionalAccess',
|
|
29232
|
+
const gridColumns = _nullishCoalesce(filterColumns, () => ( getDeviceFilterColumns(deviceFilters).filter((column) => !_optionalChain([hideFilters, 'optionalAccess', _618 => _618.includes, 'call', _619 => _619(column.key)]))));
|
|
29819
29233
|
const list = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
29820
29234
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DevicesFilterToolbar, { ...toolbar, isLoading: loading }),
|
|
29821
29235
|
viewMode === "table" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -29869,7 +29283,7 @@ function DevicesPanelView({
|
|
|
29869
29283
|
] })
|
|
29870
29284
|
] });
|
|
29871
29285
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
29872
|
-
|
|
29286
|
+
_chunkZ5UWW3Z2cjs.PageLayout,
|
|
29873
29287
|
{
|
|
29874
29288
|
title,
|
|
29875
29289
|
backButton,
|
|
@@ -29880,7 +29294,7 @@ function DevicesPanelView({
|
|
|
29880
29294
|
_chunkUWQWMGJ7cjs.TabSelector,
|
|
29881
29295
|
{
|
|
29882
29296
|
value: viewMode,
|
|
29883
|
-
onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall',
|
|
29297
|
+
onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall', _620 => _620(value)]),
|
|
29884
29298
|
items: DEVICE_VIEW_MODE_ITEMS,
|
|
29885
29299
|
disabled: loading
|
|
29886
29300
|
}
|
|
@@ -29943,7 +29357,7 @@ var PACKAGE_SEARCH_LABEL = "Software Name";
|
|
|
29943
29357
|
var PACKAGE_SEARCH_PLACEHOLDER = "Search for Software";
|
|
29944
29358
|
function PackageSearchFieldPlaceholder({ error }) {
|
|
29945
29359
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29946
|
-
Autocomplete,
|
|
29360
|
+
_chunkZ5UWW3Z2cjs.Autocomplete,
|
|
29947
29361
|
{
|
|
29948
29362
|
label: PACKAGE_SEARCH_LABEL,
|
|
29949
29363
|
labelVariant: "large",
|
|
@@ -29998,16 +29412,16 @@ function SoftwareScheduleFields({
|
|
|
29998
29412
|
] }),
|
|
29999
29413
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
30000
29414
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.Label, { className: "text-h4", children: "Time" }),
|
|
30001
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
30002
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30003
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29415
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: time, onValueChange: onTimeChange, children: [
|
|
29416
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "Select time" }) }),
|
|
29417
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: timeOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
30004
29418
|
] })
|
|
30005
29419
|
] }),
|
|
30006
29420
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
30007
29421
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.Label, { className: "text-h4", children: "Timezone" }),
|
|
30008
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
30009
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30010
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29422
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { value: timeReference, onValueChange: (value) => onTimeReferenceChange(value), children: [
|
|
29423
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
29424
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: timing.timeReferenceOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
30011
29425
|
] })
|
|
30012
29426
|
] })
|
|
30013
29427
|
]
|
|
@@ -30073,22 +29487,22 @@ function newSoftwareRow(key) {
|
|
|
30073
29487
|
|
|
30074
29488
|
function InfoCell2({ value, label }) {
|
|
30075
29489
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
30076
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xxs)]", children: value ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29490
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xxs)]", children: value ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: value }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary", children: "\u2014" }) }) }),
|
|
30077
29491
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: label })
|
|
30078
29492
|
] });
|
|
30079
29493
|
}
|
|
30080
29494
|
function SoftwareRowFields({ row, removable, onChange, onRemove, renderPackageSearch }) {
|
|
30081
29495
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-l)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-l)] content-lg:flex-row content-lg:items-end", children: [
|
|
30082
29496
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
30083
|
-
|
|
29497
|
+
_chunkZ5UWW3Z2cjs.Select,
|
|
30084
29498
|
{
|
|
30085
29499
|
value: row.packageManager,
|
|
30086
29500
|
onValueChange: (value) => onChange({ ...row, packageManager: value, pkg: null }),
|
|
30087
29501
|
children: [
|
|
30088
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30089
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29502
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectTrigger, { label: "Package Manager", labelVariant: "large", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, {}) }),
|
|
29503
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: PACKAGE_MANAGERS.map((manager) => {
|
|
30090
29504
|
const Icon = PACKAGE_MANAGER_ICON[manager];
|
|
30091
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29505
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: manager, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
30092
29506
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { size: 20, className: "shrink-0 text-ods-text-secondary" }),
|
|
30093
29507
|
PACKAGE_MANAGER_LABEL[manager]
|
|
30094
29508
|
] }) }, manager);
|
|
@@ -30101,9 +29515,9 @@ function SoftwareRowFields({ row, removable, onChange, onRemove, renderPackageSe
|
|
|
30101
29515
|
value: row.pkg,
|
|
30102
29516
|
onChange: (pkg) => onChange({ ...row, pkg })
|
|
30103
29517
|
}) }),
|
|
30104
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access',
|
|
29518
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access', _621 => _621.pkg, 'optionalAccess', _622 => _622.description]), label: "Description" }),
|
|
30105
29519
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-end gap-[var(--spacing-system-lf)]", children: [
|
|
30106
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access',
|
|
29520
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access', _623 => _623.pkg, 'optionalAccess', _624 => _624.version]), label: "Current Version" }),
|
|
30107
29521
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30108
29522
|
_chunkDFQYAYBHcjs.Button,
|
|
30109
29523
|
{
|
|
@@ -30186,7 +29600,7 @@ function SoftwareActionForm({
|
|
|
30186
29600
|
}
|
|
30187
29601
|
);
|
|
30188
29602
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
30189
|
-
|
|
29603
|
+
_chunkZ5UWW3Z2cjs.PageLayout,
|
|
30190
29604
|
{
|
|
30191
29605
|
title: copy.formTitle,
|
|
30192
29606
|
backButton: onBack ? { label: "Back", onClick: onBack } : void 0,
|
|
@@ -30275,7 +29689,7 @@ function LogDrawer({
|
|
|
30275
29689
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-0 flex-1 space-y-4 overflow-y-auto", children: [
|
|
30276
29690
|
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AppLayoutDrawerDescription, { asChild: true, className: "leading-6 text-ods-text-primary text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: description }) }),
|
|
30277
29691
|
infoFields && infoFields.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-3 rounded-[6px] border border-ods-border bg-ods-card p-4", children: infoFields.map((field) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-0.5", children: [
|
|
30278
|
-
typeof field.value === "string" ? field.value === "" || field.value === EMPTY_MARK ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyMark, {}) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29692
|
+
typeof field.value === "string" ? field.value === "" || field.value === EMPTY_MARK ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyMark, {}) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: field.value }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-primary text-h4", children: field.value === null || field.value === void 0 || field.value === false ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyMark, {}) : field.value }),
|
|
30279
29693
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: field.label })
|
|
30280
29694
|
] }, typeof field.label === "string" ? field.label : "")) }),
|
|
30281
29695
|
children
|
|
@@ -30323,7 +29737,7 @@ function LogsPageView({
|
|
|
30323
29737
|
],
|
|
30324
29738
|
[onRefresh]
|
|
30325
29739
|
);
|
|
30326
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
29740
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.PageLayout, { title: "Logs", actions, showHeader, className, children: [
|
|
30327
29741
|
!hideSearch && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "sticky top-0 z-20 -my-[var(--spacing-system-l)] flex items-center gap-[var(--spacing-system-m)] bg-ods-bg py-[var(--spacing-system-l)]", children: [
|
|
30328
29742
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30329
29743
|
_chunkXXBLN4BPcjs.Input,
|
|
@@ -30473,8 +29887,8 @@ function LogsTableView({
|
|
|
30473
29887
|
accessorKey: "logId",
|
|
30474
29888
|
header: logIdHeader ? () => logIdHeader : "Log ID",
|
|
30475
29889
|
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 flex-col justify-center", children: [
|
|
30476
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30477
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29890
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: row.original.timestamp }),
|
|
29891
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: row.original.logId })
|
|
30478
29892
|
] }),
|
|
30479
29893
|
enableSorting: false,
|
|
30480
29894
|
meta: { width: LOG_COLUMN_WIDTHS.logId, alwaysShowHeader: true }
|
|
@@ -30488,7 +29902,7 @@ function LogsTableView({
|
|
|
30488
29902
|
meta: {
|
|
30489
29903
|
width: LOG_COLUMN_WIDTHS.status,
|
|
30490
29904
|
filter: {
|
|
30491
|
-
options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess',
|
|
29905
|
+
options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _625 => _625.severities, 'access', _626 => _626.map, 'call', _627 => _627((severity) => ({
|
|
30492
29906
|
id: severity,
|
|
30493
29907
|
label: severity.charAt(0).toUpperCase() + severity.slice(1).toLowerCase(),
|
|
30494
29908
|
value: severity
|
|
@@ -30512,7 +29926,7 @@ function LogsTableView({
|
|
|
30512
29926
|
width: LOG_COLUMN_WIDTHS.tool,
|
|
30513
29927
|
hideAt: "md",
|
|
30514
29928
|
filter: {
|
|
30515
|
-
options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess',
|
|
29929
|
+
options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _628 => _628.toolTypes, 'access', _629 => _629.map, 'call', _630 => _630((toolType) => ({
|
|
30516
29930
|
id: toolType,
|
|
30517
29931
|
label: _chunkUWQWMGJ7cjs.toToolLabel.call(void 0, toolType),
|
|
30518
29932
|
value: toolType
|
|
@@ -30526,8 +29940,8 @@ function LogsTableView({
|
|
|
30526
29940
|
cell: ({ row }) => {
|
|
30527
29941
|
const { deviceName, organization } = logSourceLabels(row.original.device);
|
|
30528
29942
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-[60px] flex-col justify-center gap-1 py-2", children: [
|
|
30529
|
-
deviceName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30530
|
-
organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29943
|
+
deviceName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: deviceName }),
|
|
29944
|
+
organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: organization })
|
|
30531
29945
|
] });
|
|
30532
29946
|
},
|
|
30533
29947
|
enableSorting: false,
|
|
@@ -30535,19 +29949,19 @@ function LogsTableView({
|
|
|
30535
29949
|
meta: {
|
|
30536
29950
|
width: LOG_COLUMN_WIDTHS.source,
|
|
30537
29951
|
hideAt: "md",
|
|
30538
|
-
filter: organizationLocked ? void 0 : { options: [..._nullishCoalesce(_optionalChain([facets, 'optionalAccess',
|
|
29952
|
+
filter: organizationLocked ? void 0 : { options: [..._nullishCoalesce(_optionalChain([facets, 'optionalAccess', _631 => _631.organizations]), () => ( []))] }
|
|
30539
29953
|
}
|
|
30540
29954
|
},
|
|
30541
29955
|
{
|
|
30542
29956
|
accessorKey: "description",
|
|
30543
29957
|
header: "Log Details",
|
|
30544
|
-
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29958
|
+
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { lines: 3, className: "text-ods-text-secondary text-h6", children: row.original.description.title }),
|
|
30545
29959
|
enableSorting: false,
|
|
30546
29960
|
meta: { width: LOG_COLUMN_WIDTHS.description, hideAt: "lg" }
|
|
30547
29961
|
},
|
|
30548
29962
|
{
|
|
30549
29963
|
id: "copy",
|
|
30550
|
-
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: _optionalChain([renderCopyAction, 'optionalCall',
|
|
29964
|
+
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: _optionalChain([renderCopyAction, 'optionalCall', _632 => _632(row.original)]) }),
|
|
30551
29965
|
enableSorting: false,
|
|
30552
29966
|
meta: { width: `${LOG_COLUMN_WIDTHS.action} ml-auto`, align: "right" }
|
|
30553
29967
|
},
|
|
@@ -30556,7 +29970,7 @@ function LogsTableView({
|
|
|
30556
29970
|
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30557
29971
|
_chunkDFQYAYBHcjs.Button,
|
|
30558
29972
|
{
|
|
30559
|
-
onClick: () => _optionalChain([onQuickView, 'optionalCall',
|
|
29973
|
+
onClick: () => _optionalChain([onQuickView, 'optionalCall', _633 => _633(row.original)]),
|
|
30560
29974
|
variant: "outline",
|
|
30561
29975
|
size: "icon",
|
|
30562
29976
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { className: "h-5 w-5" }),
|
|
@@ -30584,14 +29998,14 @@ function LogsTableView({
|
|
|
30584
29998
|
meta: { width: LOG_COLUMN_WIDTHS.action, hideAt: "md", align: "right" }
|
|
30585
29999
|
}
|
|
30586
30000
|
];
|
|
30587
|
-
if (!_optionalChain([hiddenColumns, 'optionalAccess',
|
|
30001
|
+
if (!_optionalChain([hiddenColumns, 'optionalAccess', _634 => _634.length])) return all;
|
|
30588
30002
|
return all.filter((column) => !hiddenColumns.includes(columnId(column)));
|
|
30589
30003
|
}, [facets, getLogHref, organizationLocked, logIdHeader, renderCopyAction, onQuickView, hiddenColumns]);
|
|
30590
30004
|
const filterGroups = _react.useMemo.call(void 0,
|
|
30591
|
-
() => columns.filter((column) => _optionalChain([column, 'access',
|
|
30005
|
+
() => columns.filter((column) => _optionalChain([column, 'access', _635 => _635.meta, 'optionalAccess', _636 => _636.filter, 'optionalAccess', _637 => _637.options])).map((column) => ({
|
|
30592
30006
|
id: columnId(column),
|
|
30593
30007
|
title: typeof column.header === "string" ? column.header : "",
|
|
30594
|
-
options: _optionalChain([column, 'access',
|
|
30008
|
+
options: _optionalChain([column, 'access', _638 => _638.meta, 'optionalAccess', _639 => _639.filter, 'optionalAccess', _640 => _640.options]) || []
|
|
30595
30009
|
})),
|
|
30596
30010
|
[columns]
|
|
30597
30011
|
);
|
|
@@ -30620,14 +30034,14 @@ function LogsTableView({
|
|
|
30620
30034
|
onColumnFiltersChange: handleColumnFiltersChange
|
|
30621
30035
|
});
|
|
30622
30036
|
const hasActiveFilters = Object.values(filters).some((values) => values.length > 0);
|
|
30623
|
-
const hasQuery = Boolean(search) || hasActiveFilters || Boolean(_optionalChain([dateFilter, 'optionalAccess',
|
|
30037
|
+
const hasQuery = Boolean(search) || hasActiveFilters || Boolean(_optionalChain([dateFilter, 'optionalAccess', _641 => _641.range]));
|
|
30624
30038
|
const noRows = !loading && logs.length === 0;
|
|
30625
30039
|
const showEmptyState = !organizationLocked && !hasQuery && noRows;
|
|
30626
30040
|
const scoped = deviceScoped || organizationLocked;
|
|
30627
30041
|
const scopedEmpty = scoped && noRows;
|
|
30628
30042
|
const hideSearch = showEmptyState || scopedEmpty && !hasQuery;
|
|
30629
30043
|
_react.useEffect.call(void 0, () => {
|
|
30630
|
-
_optionalChain([onHideSearchChange, 'optionalCall',
|
|
30044
|
+
_optionalChain([onHideSearchChange, 'optionalCall', _642 => _642(hideSearch)]);
|
|
30631
30045
|
}, [hideSearch, onHideSearchChange]);
|
|
30632
30046
|
if (showEmptyState) {
|
|
30633
30047
|
const emptyProps = deviceScoped ? { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ClipboardListIcon, {}), title: EMPTY_TITLE, description: EMPTY_DESCRIPTION } : {
|
|
@@ -30827,7 +30241,7 @@ function getKnowledgeBaseColumns(mode) {
|
|
|
30827
30241
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] border border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { size: 16, className: "shrink-0 text-ods-text-secondary" }) }),
|
|
30828
30242
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
30829
30243
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
30830
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30244
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: item.name }) }),
|
|
30831
30245
|
tagStatus && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30832
30246
|
_chunkF5BPGWGTcjs.Tag,
|
|
30833
30247
|
{
|
|
@@ -30837,7 +30251,7 @@ function getKnowledgeBaseColumns(mode) {
|
|
|
30837
30251
|
}
|
|
30838
30252
|
)
|
|
30839
30253
|
] }),
|
|
30840
|
-
item.type === "ARTICLE" && item.summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30254
|
+
item.type === "ARTICLE" && item.summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: item.summary })
|
|
30841
30255
|
] })
|
|
30842
30256
|
] });
|
|
30843
30257
|
},
|
|
@@ -30917,7 +30331,7 @@ function KnowledgeBaseArticleView({
|
|
|
30917
30331
|
className = "px-[var(--spacing-system-l)] pb-[var(--spacing-system-l)]"
|
|
30918
30332
|
}) {
|
|
30919
30333
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
30920
|
-
|
|
30334
|
+
_chunkZ5UWW3Z2cjs.PageLayout,
|
|
30921
30335
|
{
|
|
30922
30336
|
title,
|
|
30923
30337
|
backButton: onBack ? { label: "Back", onClick: onBack } : void 0,
|
|
@@ -30940,12 +30354,12 @@ function KnowledgeBaseArticleView({
|
|
|
30940
30354
|
}
|
|
30941
30355
|
),
|
|
30942
30356
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
30943
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30357
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { className: author.deleted ? "text-ods-error" : void 0, children: _nullishCoalesce(author.name, () => ( "Unknown")) }),
|
|
30944
30358
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-heading-5 text-ods-text-secondary", children: "Author" })
|
|
30945
30359
|
] })
|
|
30946
30360
|
] }),
|
|
30947
30361
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-20 min-w-0 flex-col justify-center", children: [
|
|
30948
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30362
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { children: updatedLabel }),
|
|
30949
30363
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-heading-5 text-ods-text-secondary", children: "Updated" })
|
|
30950
30364
|
] }),
|
|
30951
30365
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -31061,13 +30475,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
31061
30475
|
const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
|
|
31062
30476
|
const flipTimer = _react.useRef.call(void 0, null);
|
|
31063
30477
|
const readItems = _react.useCallback.call(void 0,
|
|
31064
|
-
() => [..._nullishCoalesce(_optionalChain([listRef, 'access',
|
|
30478
|
+
() => [..._nullishCoalesce(_optionalChain([listRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.querySelectorAll, 'call', _645 => _645(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
|
|
31065
30479
|
[]
|
|
31066
30480
|
);
|
|
31067
30481
|
const reorder = _react.useCallback.call(void 0,
|
|
31068
30482
|
(from, to) => {
|
|
31069
30483
|
if (from === to) return;
|
|
31070
|
-
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access',
|
|
30484
|
+
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _646 => _646.current, 'optionalCall', _647 => _647(from)]), () => ( "Item"));
|
|
31071
30485
|
setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
|
|
31072
30486
|
onReorderRef.current(from, to);
|
|
31073
30487
|
},
|
|
@@ -31155,7 +30569,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
31155
30569
|
moving.push(item);
|
|
31156
30570
|
}
|
|
31157
30571
|
if (moving.length === 0) return;
|
|
31158
|
-
void _optionalChain([listRef, 'access',
|
|
30572
|
+
void _optionalChain([listRef, 'access', _648 => _648.current, 'optionalAccess', _649 => _649.offsetHeight]);
|
|
31159
30573
|
for (const item of moving) {
|
|
31160
30574
|
item.style.transition = `transform ${DROP_MS}ms ${EASING}`;
|
|
31161
30575
|
item.style.transform = "";
|
|
@@ -31192,8 +30606,8 @@ function SortableMoveButtons({ index, count, label, className }) {
|
|
|
31192
30606
|
if (to < 0 || to >= count) return;
|
|
31193
30607
|
reorder(index, to);
|
|
31194
30608
|
requestAnimationFrame(() => {
|
|
31195
|
-
if (step === -1 && to === 0) _optionalChain([downRef, 'access',
|
|
31196
|
-
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access',
|
|
30609
|
+
if (step === -1 && to === 0) _optionalChain([downRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.focus, 'call', _652 => _652()]);
|
|
30610
|
+
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _653 => _653.current, 'optionalAccess', _654 => _654.focus, 'call', _655 => _655()]);
|
|
31197
30611
|
});
|
|
31198
30612
|
};
|
|
31199
30613
|
const subject = _nullishCoalesce(label, () => ( "item"));
|
|
@@ -31241,7 +30655,7 @@ function useSortableItem() {
|
|
|
31241
30655
|
const [handle, setHandle] = _react.useState.call(void 0, null);
|
|
31242
30656
|
const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
|
|
31243
30657
|
const itemRef = _react.useCallback.call(void 0, (node) => {
|
|
31244
|
-
_optionalChain([node, 'optionalAccess',
|
|
30658
|
+
_optionalChain([node, 'optionalAccess', _656 => _656.setAttribute, 'call', _657 => _657(SORTABLE_ITEM_ATTRIBUTE, "")]);
|
|
31245
30659
|
setItem(node);
|
|
31246
30660
|
}, []);
|
|
31247
30661
|
_react.useEffect.call(void 0, () => {
|
|
@@ -31271,7 +30685,7 @@ function useSortableItem() {
|
|
|
31271
30685
|
if (from < 0 || to < 0 || to >= items.length) return;
|
|
31272
30686
|
event.preventDefault();
|
|
31273
30687
|
reorder(from, to);
|
|
31274
|
-
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess',
|
|
30688
|
+
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _658 => _658.focus, 'call', _659 => _659()]));
|
|
31275
30689
|
},
|
|
31276
30690
|
[inert, readItems, reorder, handle]
|
|
31277
30691
|
);
|
|
@@ -31293,7 +30707,7 @@ function TicketStatusConfigList({
|
|
|
31293
30707
|
onReorder,
|
|
31294
30708
|
getItemLabel,
|
|
31295
30709
|
className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
|
|
31296
|
-
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall',
|
|
30710
|
+
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _660 => _660(index)]), children: (args) => renderRow(item, args) }, item.id))
|
|
31297
30711
|
}
|
|
31298
30712
|
);
|
|
31299
30713
|
}
|
|
@@ -31396,7 +30810,7 @@ function Highlights({ items, className }) {
|
|
|
31396
30810
|
if (items.length === 0) return null;
|
|
31397
30811
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: _chunk3ATAYP36cjs.cn.call(void 0, "grid grid-cols-1 gap-2", className), children: items.slice(0, 3).map((text) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "flex min-w-0 items-center gap-2.5", children: [
|
|
31398
30812
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckIcon, { size: 16, className: "shrink-0 text-ods-flamingo-cyan" }),
|
|
31399
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30813
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", triggerClassName: "flex-1", children: text })
|
|
31400
30814
|
] }, text)) });
|
|
31401
30815
|
}
|
|
31402
30816
|
function Example({
|
|
@@ -31422,19 +30836,19 @@ function Example({
|
|
|
31422
30836
|
),
|
|
31423
30837
|
children: [
|
|
31424
30838
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 gap-2.5", children: [
|
|
31425
|
-
mark(_nullishCoalesce(_optionalChain([requester, 'optionalAccess',
|
|
30839
|
+
mark(_nullishCoalesce(_optionalChain([requester, 'optionalAccess', _661 => _661.mark]), () => ( requesterMark))),
|
|
31426
30840
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
31427
|
-
who(_nullishCoalesce(_optionalChain([requester, 'optionalAccess',
|
|
31428
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30841
|
+
who(_nullishCoalesce(_optionalChain([requester, 'optionalAccess', _662 => _662.name]), () => ( labels.requester)), _nullishCoalesce(_optionalChain([requester, 'optionalAccess', _663 => _663.note]), () => ( labels.requesterNote))),
|
|
30842
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { lines: 2, variant: "h4", className: "min-h-[2lh]", children: `\u201C${example.request}\u201D` })
|
|
31429
30843
|
] })
|
|
31430
30844
|
] }),
|
|
31431
30845
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 gap-2.5 border-t border-ods-border pt-3", children: [
|
|
31432
|
-
mark(_nullishCoalesce(_optionalChain([responder, 'optionalAccess',
|
|
30846
|
+
mark(_nullishCoalesce(_optionalChain([responder, 'optionalAccess', _664 => _664.mark]), () => ( responderMark))),
|
|
31433
30847
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
31434
|
-
who(_nullishCoalesce(_optionalChain([responder, 'optionalAccess',
|
|
30848
|
+
who(_nullishCoalesce(_optionalChain([responder, 'optionalAccess', _665 => _665.name]), () => ( labels.responder)), _nullishCoalesce(_optionalChain([responder, 'optionalAccess', _666 => _666.note]), () => ( labels.responderNote))),
|
|
31435
30849
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-start gap-2", children: [
|
|
31436
30850
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckIcon, { size: 16, className: "mt-0.5 shrink-0 text-ods-flamingo-cyan" }),
|
|
31437
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30851
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { lines: 2, variant: "h6", tone: "secondary", className: "min-h-[2lh]", triggerClassName: "flex-1", children: example.outcome })
|
|
31438
30852
|
] })
|
|
31439
30853
|
] })
|
|
31440
30854
|
] })
|
|
@@ -31486,13 +30900,13 @@ function CapabilityExplorer({
|
|
|
31486
30900
|
item.iconName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex size-9 shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg text-ods-flamingo-cyan", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkETYLOZOBcjs.EntityIcon, { icon: { name: item.iconName }, size: 18 }) }),
|
|
31487
30901
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
|
|
31488
30902
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "flex min-w-0 items-center gap-2 text-ods-text-primary text-h4", children: [
|
|
31489
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30903
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { as: "span", variant: "h4", triggerClassName: "flex-1", children: item.title }),
|
|
31490
30904
|
item.badge
|
|
31491
30905
|
] }),
|
|
31492
|
-
item.caption && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30906
|
+
item.caption && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { variant: "h6", tone: "secondary", children: item.caption })
|
|
31493
30907
|
] })
|
|
31494
30908
|
] }),
|
|
31495
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30909
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { lines: 3, variant: "h6", tone: "secondary", className: "min-h-[3lh]", children: item.intro }),
|
|
31496
30910
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 overflow-hidden rounded-lg border border-ods-border", children: renderScreen(item, { compact: true }) }),
|
|
31497
30911
|
item.example && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31498
30912
|
Example,
|
|
@@ -31523,7 +30937,7 @@ function CapabilityExplorer({
|
|
|
31523
30937
|
if (next === null) return;
|
|
31524
30938
|
event.preventDefault();
|
|
31525
30939
|
onActiveChange(items[next].id);
|
|
31526
|
-
_optionalChain([listRef, 'access',
|
|
30940
|
+
_optionalChain([listRef, 'access', _667 => _667.current, 'optionalAccess', _668 => _668.querySelectorAll, 'call', _669 => _669('[role="tab"]'), 'access', _670 => _670[next], 'optionalAccess', _671 => _671.focus, 'call', _672 => _672()]);
|
|
31527
30941
|
};
|
|
31528
30942
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
31529
30943
|
"div",
|
|
@@ -31620,8 +31034,8 @@ function CapabilityExplorer({
|
|
|
31620
31034
|
),
|
|
31621
31035
|
children: [
|
|
31622
31036
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col overflow-hidden", children: [
|
|
31623
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31624
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31037
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { lines: 2, variant: "h2", className: "mb-2", children: active.title }),
|
|
31038
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.TruncateText, { lines: 3, variant: "h4", tone: "secondary", className: "min-h-[3lh]", children: active.intro }),
|
|
31625
31039
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Highlights, { items: _nullishCoalesce(active.highlights, () => ( [])), className: "mt-auto" })
|
|
31626
31040
|
] }),
|
|
31627
31041
|
active.example && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -32234,6 +31648,4 @@ function CapabilityExplorer({
|
|
|
32234
31648
|
|
|
32235
31649
|
|
|
32236
31650
|
|
|
32237
|
-
|
|
32238
|
-
|
|
32239
|
-
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.Autocomplete = Autocomplete; exports.timezoneLabel = timezoneLabel; exports.timezoneOptions = timezoneOptions; exports.TimezoneSelect = TimezoneSelect; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormDrawer = AdminFormDrawer; exports.PlaybackToggle = PlaybackToggle; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.AppStoreBadge = AppStoreBadge; exports.GooglePlayBadge = GooglePlayBadge; exports.StoreBadgeLinks = StoreBadgeLinks; exports.StatusIndicator = StatusIndicator; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.benefitCardBorderClass = benefitCardBorderClass; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.DataAttribution = DataAttribution; exports.ComplianceBadge = ComplianceBadge; exports.ComplianceLogo = ComplianceLogo; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.PersonCell = PersonCell; exports.PeopleCell = PeopleCell; exports.TitleContentBlock = TitleContentBlock; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.CompactAuthShell = CompactAuthShell; exports.LabeledDivider = LabeledDivider; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.PolicyLink = PolicyLink; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LegalLinks = LegalLinks; exports.LoginForm = LoginForm; exports.NoAccountNotice = NoAccountNotice; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.SsoJoinForm = SsoJoinForm; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.useMediaIntake = useMediaIntake; exports.MediaUploadArea = MediaUploadArea; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SOCIAL_ICON_COMPONENTS = SOCIAL_ICON_COMPONENTS; exports.SocialIconRow = SocialIconRow; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.APPROVAL_LEVELS = APPROVAL_LEVELS; exports.APPROVAL_LEVEL_META = APPROVAL_LEVEL_META; exports.ApprovalLevelView = ApprovalLevelView; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.DataTableEmpty = DataTableEmpty; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DATA_TABLE_HEADER_LABEL_CLASS = DATA_TABLE_HEADER_LABEL_CLASS; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.PoliciesTable = PoliciesTable; exports.PolicySummaryCards = PolicySummaryCards; exports.POLICY_STATUS_CONFIG = POLICY_STATUS_CONFIG; exports.getPolicyStatus = getPolicyStatus; exports.getPolicyTableStatus = getPolicyTableStatus; exports.computePolicySummary = computePolicySummary; exports.TENANT_EMPTY_VALUE = TENANT_EMPTY_VALUE; exports.accessStateTag = accessStateTag; exports.providerMark = providerMark; exports.lastReadAt = lastReadAt; exports.formatLastRead = formatLastRead; exports.usersCountLabel = usersCountLabel; exports.TenantAccessCell = TenantAccessCell; exports.TenantCell = TenantCell; exports.TenantCustomerCell = TenantCustomerCell; exports.TENANT_COLUMNS = TENANT_COLUMNS; exports.TENANTS_TABLE_COLUMNS = TENANTS_TABLE_COLUMNS; exports.TenantsTableView = TenantsTableView; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.TICKET_APPROVAL_REQUEST_TYPE = TICKET_APPROVAL_REQUEST_TYPE; exports.MINGO_APPROVAL_REQUEST_TYPE = MINGO_APPROVAL_REQUEST_TYPE; exports.isApprovalNotificationType = isApprovalNotificationType; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.formatLastOnline = formatLastOnline; exports.getDeviceName = getDeviceName; exports.matchesDeviceName = matchesDeviceName; exports.DevicesViewConfigProvider = DevicesViewConfigProvider; exports.useDevicesViewConfig = useDevicesViewConfig; exports.useDeviceImageUrl = useDeviceImageUrl; exports.DeviceSelectionModeRadio = DeviceSelectionModeRadio; exports.getDeviceStatusConfig = getDeviceStatusConfig; exports.getDeviceOperatingSystem = getDeviceOperatingSystem; exports.DEVICE_STATUS = DEVICE_STATUS; exports.DEFAULT_VISIBLE_STATUSES = DEFAULT_VISIBLE_STATUSES; exports.DEFAULT_DASHBOARD_STATUSES = DEFAULT_DASHBOARD_STATUSES; exports.DEFAULT_DEVICES_LIST_STATUSES = DEFAULT_DEVICES_LIST_STATUSES; exports.DEVICE_ENRICHMENT_STATUSES = DEVICE_ENRICHMENT_STATUSES; exports.DEVICE_ENRICHMENT_FILTER = DEVICE_ENRICHMENT_FILTER; exports.HIDDEN_DEVICE_STATUSES = HIDDEN_DEVICE_STATUSES; exports.renderDeviceTypeIcon = renderDeviceTypeIcon; exports.DeviceTypeTile = DeviceTypeTile; exports.DeviceTagsFilterButton = DeviceTagsFilterButton; exports.DevicesFilterToolbar = DevicesFilterToolbar; exports.getDeviceActionsColumn = getDeviceActionsColumn; exports.getDeviceOpenColumn = getDeviceOpenColumn; exports.DevicesTableBody = DevicesTableBody; exports.getDeviceFilterColumns = getDeviceFilterColumns; exports.getDeviceTableColumns = getDeviceTableColumns; exports.useTagFilterModal = useTagFilterModal; exports.DeviceSelector = DeviceSelector; exports.DeviceSelectorSkeleton = DeviceSelectorSkeleton; exports.EMPTY_NARROWING = EMPTY_NARROWING; exports.narrowingToFilter = narrowingToFilter; exports.DevicesGrid = DevicesGrid; exports.DevicesGridFilters = DevicesGridFilters; exports.EMPTY_DEVICES_NARROWING = EMPTY_DEVICES_NARROWING; exports.isNarrowed = isNarrowed; exports.DevicesList = DevicesList; exports.DEVICE_VIEW_MODE_ITEMS = DEVICE_VIEW_MODE_ITEMS; exports.buildDevicePanelActions = buildDevicePanelActions; exports.IDLE_DEVICES_TOOLBAR = IDLE_DEVICES_TOOLBAR; exports.DevicesPanelView = DevicesPanelView; exports.PACKAGE_MANAGERS = PACKAGE_MANAGERS; exports.PACKAGE_MANAGER_LABEL = PACKAGE_MANAGER_LABEL; exports.PACKAGE_MANAGER_ICON = PACKAGE_MANAGER_ICON; exports.PACKAGE_MANAGER_OS = PACKAGE_MANAGER_OS; exports.packageManagerLabel = packageManagerLabel; exports.SOFTWARE_SOURCE_LABEL = SOFTWARE_SOURCE_LABEL; exports.PACKAGE_SEARCH_LABEL = PACKAGE_SEARCH_LABEL; exports.PACKAGE_SEARCH_PLACEHOLDER = PACKAGE_SEARCH_PLACEHOLDER; exports.PackageSearchFieldPlaceholder = PackageSearchFieldPlaceholder; exports.SoftwareScheduleFields = SoftwareScheduleFields; exports.SOFTWARE_ACTION_COPY = SOFTWARE_ACTION_COPY; exports.SOFTWARE_ACTION_DETAIL_TITLE = SOFTWARE_ACTION_DETAIL_TITLE; exports.softwareActionCopy = softwareActionCopy; exports.newSoftwareRow = newSoftwareRow; exports.SoftwareRowFields = SoftwareRowFields; exports.SoftwareActionForm = SoftwareActionForm; exports.LogDrawer = LogDrawer; exports.SYSTEM_SOURCE_LABEL = SYSTEM_SOURCE_LABEL; exports.logSourceLabels = logSourceLabels; exports.LogsPageView = LogsPageView; exports.LogCopyIconButton = LogCopyIconButton; exports.LOG_COLUMN_WIDTHS = LOG_COLUMN_WIDTHS; exports.ToolBadge = ToolBadge; exports.LogsTableView = LogsTableView; exports.LogsTableSkeleton = LogsTableSkeleton; exports.logSeverityVariant = logSeverityVariant; exports.KNOWLEDGE_BASE_ITEM_ICON = KNOWLEDGE_BASE_ITEM_ICON; exports.getKnowledgeBaseOpenColumn = getKnowledgeBaseOpenColumn; exports.getKnowledgeBaseColumns = getKnowledgeBaseColumns; exports.KnowledgeBaseTableBody = KnowledgeBaseTableBody; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.KnowledgeBaseArticleView = KnowledgeBaseArticleView; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableDragHandle = SortableDragHandle; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.ConversationCard = ConversationCard; exports.SnapCarouselControlsSkeleton = SnapCarouselControlsSkeleton; exports.SnapCarousel = SnapCarousel; exports.capabilityTabId = capabilityTabId; exports.CapabilityExplorerSkeleton = CapabilityExplorerSkeleton; exports.CapabilityExplorer = CapabilityExplorer; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.PHOTO_WALL_FRAME = PHOTO_WALL_FRAME; exports.photoOrientation = photoOrientation; exports.arrangePhotoWall = arrangePhotoWall; exports.PhotoWall = PhotoWall; exports.FilterPillRow = FilterPillRow; exports.LazyMount = LazyMount; exports.AppWindowFrame = AppWindowFrame; exports.PhoneFrame = PhoneFrame; exports.AnalyzingState = AnalyzingState; exports.IncidentStatusLine = IncidentStatusLine; exports.IncidentFeed = IncidentFeed; exports.useBetweenAnchors = useBetweenAnchors; exports.StickyActionBar = StickyActionBar; exports.IconTile = IconTile;
|
|
31651
|
+
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.timezoneLabel = timezoneLabel; exports.timezoneOptions = timezoneOptions; exports.TimezoneSelect = TimezoneSelect; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormDrawer = AdminFormDrawer; exports.PlaybackToggle = PlaybackToggle; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.AppStoreBadge = AppStoreBadge; exports.GooglePlayBadge = GooglePlayBadge; exports.StoreBadgeLinks = StoreBadgeLinks; exports.StatusIndicator = StatusIndicator; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.benefitCardBorderClass = benefitCardBorderClass; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.DataAttribution = DataAttribution; exports.ComplianceBadge = ComplianceBadge; exports.ComplianceLogo = ComplianceLogo; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.PersonCell = PersonCell; exports.PeopleCell = PeopleCell; exports.TitleContentBlock = TitleContentBlock; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.CompactAuthShell = CompactAuthShell; exports.LabeledDivider = LabeledDivider; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.PolicyLink = PolicyLink; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LegalLinks = LegalLinks; exports.LoginForm = LoginForm; exports.NoAccountNotice = NoAccountNotice; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.SsoJoinForm = SsoJoinForm; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.useMediaIntake = useMediaIntake; exports.MediaUploadArea = MediaUploadArea; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SOCIAL_ICON_COMPONENTS = SOCIAL_ICON_COMPONENTS; exports.SocialIconRow = SocialIconRow; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.APPROVAL_LEVELS = APPROVAL_LEVELS; exports.APPROVAL_LEVEL_META = APPROVAL_LEVEL_META; exports.ApprovalLevelView = ApprovalLevelView; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.DataTableEmpty = DataTableEmpty; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DATA_TABLE_HEADER_LABEL_CLASS = DATA_TABLE_HEADER_LABEL_CLASS; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.PoliciesTable = PoliciesTable; exports.PolicySummaryCards = PolicySummaryCards; exports.POLICY_STATUS_CONFIG = POLICY_STATUS_CONFIG; exports.getPolicyStatus = getPolicyStatus; exports.getPolicyTableStatus = getPolicyTableStatus; exports.computePolicySummary = computePolicySummary; exports.TENANT_EMPTY_VALUE = TENANT_EMPTY_VALUE; exports.accessStateTag = accessStateTag; exports.providerMark = providerMark; exports.lastReadAt = lastReadAt; exports.formatLastRead = formatLastRead; exports.usersCountLabel = usersCountLabel; exports.TenantAccessCell = TenantAccessCell; exports.TenantCell = TenantCell; exports.TenantCustomerCell = TenantCustomerCell; exports.TENANT_COLUMNS = TENANT_COLUMNS; exports.TENANTS_TABLE_COLUMNS = TENANTS_TABLE_COLUMNS; exports.TenantsTableView = TenantsTableView; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.TICKET_APPROVAL_REQUEST_TYPE = TICKET_APPROVAL_REQUEST_TYPE; exports.MINGO_APPROVAL_REQUEST_TYPE = MINGO_APPROVAL_REQUEST_TYPE; exports.isApprovalNotificationType = isApprovalNotificationType; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.formatLastOnline = formatLastOnline; exports.getDeviceName = getDeviceName; exports.matchesDeviceName = matchesDeviceName; exports.DevicesViewConfigProvider = DevicesViewConfigProvider; exports.useDevicesViewConfig = useDevicesViewConfig; exports.useDeviceImageUrl = useDeviceImageUrl; exports.DeviceSelectionModeRadio = DeviceSelectionModeRadio; exports.getDeviceStatusConfig = getDeviceStatusConfig; exports.getDeviceOperatingSystem = getDeviceOperatingSystem; exports.DEVICE_STATUS = DEVICE_STATUS; exports.DEFAULT_VISIBLE_STATUSES = DEFAULT_VISIBLE_STATUSES; exports.DEFAULT_DASHBOARD_STATUSES = DEFAULT_DASHBOARD_STATUSES; exports.DEFAULT_DEVICES_LIST_STATUSES = DEFAULT_DEVICES_LIST_STATUSES; exports.DEVICE_ENRICHMENT_STATUSES = DEVICE_ENRICHMENT_STATUSES; exports.DEVICE_ENRICHMENT_FILTER = DEVICE_ENRICHMENT_FILTER; exports.HIDDEN_DEVICE_STATUSES = HIDDEN_DEVICE_STATUSES; exports.renderDeviceTypeIcon = renderDeviceTypeIcon; exports.DeviceTypeTile = DeviceTypeTile; exports.DeviceTagsFilterButton = DeviceTagsFilterButton; exports.DevicesFilterToolbar = DevicesFilterToolbar; exports.getDeviceActionsColumn = getDeviceActionsColumn; exports.getDeviceOpenColumn = getDeviceOpenColumn; exports.DevicesTableBody = DevicesTableBody; exports.getDeviceFilterColumns = getDeviceFilterColumns; exports.getDeviceTableColumns = getDeviceTableColumns; exports.useTagFilterModal = useTagFilterModal; exports.DeviceSelector = DeviceSelector; exports.DeviceSelectorSkeleton = DeviceSelectorSkeleton; exports.EMPTY_NARROWING = EMPTY_NARROWING; exports.narrowingToFilter = narrowingToFilter; exports.DevicesGrid = DevicesGrid; exports.DevicesGridFilters = DevicesGridFilters; exports.EMPTY_DEVICES_NARROWING = EMPTY_DEVICES_NARROWING; exports.isNarrowed = isNarrowed; exports.DevicesList = DevicesList; exports.DEVICE_VIEW_MODE_ITEMS = DEVICE_VIEW_MODE_ITEMS; exports.buildDevicePanelActions = buildDevicePanelActions; exports.IDLE_DEVICES_TOOLBAR = IDLE_DEVICES_TOOLBAR; exports.DevicesPanelView = DevicesPanelView; exports.PACKAGE_MANAGERS = PACKAGE_MANAGERS; exports.PACKAGE_MANAGER_LABEL = PACKAGE_MANAGER_LABEL; exports.PACKAGE_MANAGER_ICON = PACKAGE_MANAGER_ICON; exports.PACKAGE_MANAGER_OS = PACKAGE_MANAGER_OS; exports.packageManagerLabel = packageManagerLabel; exports.SOFTWARE_SOURCE_LABEL = SOFTWARE_SOURCE_LABEL; exports.PACKAGE_SEARCH_LABEL = PACKAGE_SEARCH_LABEL; exports.PACKAGE_SEARCH_PLACEHOLDER = PACKAGE_SEARCH_PLACEHOLDER; exports.PackageSearchFieldPlaceholder = PackageSearchFieldPlaceholder; exports.SoftwareScheduleFields = SoftwareScheduleFields; exports.SOFTWARE_ACTION_COPY = SOFTWARE_ACTION_COPY; exports.SOFTWARE_ACTION_DETAIL_TITLE = SOFTWARE_ACTION_DETAIL_TITLE; exports.softwareActionCopy = softwareActionCopy; exports.newSoftwareRow = newSoftwareRow; exports.SoftwareRowFields = SoftwareRowFields; exports.SoftwareActionForm = SoftwareActionForm; exports.LogDrawer = LogDrawer; exports.SYSTEM_SOURCE_LABEL = SYSTEM_SOURCE_LABEL; exports.logSourceLabels = logSourceLabels; exports.LogsPageView = LogsPageView; exports.LogCopyIconButton = LogCopyIconButton; exports.LOG_COLUMN_WIDTHS = LOG_COLUMN_WIDTHS; exports.ToolBadge = ToolBadge; exports.LogsTableView = LogsTableView; exports.LogsTableSkeleton = LogsTableSkeleton; exports.logSeverityVariant = logSeverityVariant; exports.KNOWLEDGE_BASE_ITEM_ICON = KNOWLEDGE_BASE_ITEM_ICON; exports.getKnowledgeBaseOpenColumn = getKnowledgeBaseOpenColumn; exports.getKnowledgeBaseColumns = getKnowledgeBaseColumns; exports.KnowledgeBaseTableBody = KnowledgeBaseTableBody; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.KnowledgeBaseArticleView = KnowledgeBaseArticleView; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableDragHandle = SortableDragHandle; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.ConversationCard = ConversationCard; exports.SnapCarouselControlsSkeleton = SnapCarouselControlsSkeleton; exports.SnapCarousel = SnapCarousel; exports.capabilityTabId = capabilityTabId; exports.CapabilityExplorerSkeleton = CapabilityExplorerSkeleton; exports.CapabilityExplorer = CapabilityExplorer; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.PHOTO_WALL_FRAME = PHOTO_WALL_FRAME; exports.photoOrientation = photoOrientation; exports.arrangePhotoWall = arrangePhotoWall; exports.PhotoWall = PhotoWall; exports.FilterPillRow = FilterPillRow; exports.LazyMount = LazyMount; exports.AppWindowFrame = AppWindowFrame; exports.PhoneFrame = PhoneFrame; exports.AnalyzingState = AnalyzingState; exports.IncidentStatusLine = IncidentStatusLine; exports.IncidentFeed = IncidentFeed; exports.useBetweenAnchors = useBetweenAnchors; exports.StickyActionBar = StickyActionBar; exports.IconTile = IconTile;
|